How a twin is wired together
The mental model, models, objects, variables, and the things that drive them.
Every Machinery Twin project is built from the same four layers. Once you see them, every panel in the app has an obvious place.
3D models (GLB / STEP / FBX files)
│ attached to
▼
Objects (scene items with pose + kinematics: paths, cranks, linkages, arms)
│ properties bound to
▼
Variables (named numbers, recomputed every frame)
▲ written by
│
Drivers (functions · motion cams · state machines · PLC tags)1. Models
Imported CAD files, the visual geometry. A model does nothing by itself; it is attached to an object (or to one link of a mechanism object). See Importing models.
2. Objects
Objects are what lives in the scene tree. Every object has a world pose (position, rotation, scale) and an optional model. What makes the product tick is that many object types have built-in kinematics: a path follower computes its own position from a single input value; a four-bar linkage solves its joint angles from one crank angle; a robot arm runs forward or inverse kinematics over its joints. See the object type reference.
3. Variables
Every dynamic property, whether an object's X position, a joint angle, a color, a visibility flag, or a mechanism's input, is bound to a variable by ID. Variables are just named numbers recomputed each frame. This indirection is the whole trick: objects never know where a value comes from.
4. Drivers
Something has to produce the values. In Simulation mode: constants, math functions (sine, master clock…), motion cam profiles, or state machines that sequence values over time. In Online mode: the same options, plus values read live from a PLC.
Why this architecture pays off
- Swap the driver, keep the machine. A conveyor driven by a simulated master clock in the office is driven by the PLC's real axis position on site, same project, just one variable's Online config changed.
- Compose freely. A state machine writes a target, a trapezoid profile moves toward it, a cam maps that master to three slave axes, each slave drives a different mechanism. Every arrow in that chain is just a variable binding.
- Debuggable. The Signal trace tool walks any variable's dependency graph with live values.