Digital twin / Industrial data
A live 3D twin of a
natural gas compressor
A 3 stage reciprocating compressor package, built in Blender, rendered in the browser with Three.js and driven by real Modbus TCP registers from a PLC style simulator.
Scroll to take it apart
01 / The machine
Engine, frame, three stages
A gas engine (D-001) turns a 4 throw balanced opposed frame (K-100) at 1200 rpm. Gas is squeezed in three steps, from 3.5 barg to 69 barg, and cooled between stages by the fin fan cooler E-400.
- Stage 1C-101A/B3.5 to 13 barg
- Stage 2C-20112.6 to 36 barg
- Stage 3C-30135.3 to 69 barg
02 / The data
29 tags, one register map
Every pressure, temperature, vibration, speed and level transmitter is a node in the 3D model with the same tag as the P&ID. A Python simulator serves them as Modbus input registers; a bridge polls at 5 Hz and streams JSON over a WebSocket.
03 / The gas path
Follow the gas
Scrubber, suction bottle, cylinder, discharge bottle, cooler, next scrubber. The glowing lines ride on the real pipe centre lines exported from Blender; speed follows the flow meter and colour follows the line temperature.
04 / Catch it early
Flag the drift before the alarm
The PLC only trips on fixed limits. The bridge learns a rolling baseline for every tag and flags a deviation as soon as it is statistically real, then fits the trend to estimate the time left until the alarm limit.
Recorded from the simulator: bearing wear on the frame drive end. Anomaly flagged about 10 s before the 10 mm/s vibration alarm.
05 / Your turn
Break it yourself
Drag to orbit, click any equipment or transmitter for its data card, and inject a fault from the panel. With the simulator running locally the twin is live; otherwise it replays a recorded session.
