Articulated Steam Locomotive
An articulated (e.g. Mallet) steam locomotive with multiple engine sets.
- Kind:
ArticulatedSteamLocomotive - Extends: SteamLocomotive
Fields
Section titled “Fields”All SteamLocomotive fields are inherited. Additional fields:
articulationType
ArticulationType = Simple Steam flow arrangement.
Direct child of the model root holding the main body — boiler, cab, and the rear engine. Required;
each engine set’s own bodyTransform names a sibling of it. See Model structure
below.
engineSets
EngineSet[] = [] Additional engine sections.
Model structure
Section titled “Model structure”An articulated locomotive is modeled as a single asset. The model root carries no geometry of its own — each section that pivots independently, the main body and every engine set, is a direct child of it:
my-mallet (model root)├── body (main body: boiler, cab, rear engine)└── front (front engine set)bodyTransform and each engine set’s own bodyTransform point at those children, one level deep:
"modelIdentifier": "./my-mallet","bodyTransform": { "path": ["body"] },"engineSets": [ { "identifier": "front", "bodyTransform": { "path": ["front"] } }]bodyTransform is required. Without it, the model root would double as the body, nesting every
engine set inside it instead of beside it.
Each section has its own AnimationMap and Animator — animations and wheelset transforms are
looked up within the section that uses them. That includes components: parent one to
@engineSet:front and its animations come from the front section. To pose linkage that follows
the reverser on an engine set, such as a front power reverser, use a
PropertyAnimation on the reverser key. The model root
must carry no Rigidbody, and section transforms must stay unrotated and unscaled; the game
normalizes them at load, so bake scale and orientation into the model itself.
EngineSet
Section titled “EngineSet”Each engine set defines an independently-pivoting engine section.
The direct child of the model root holding this engine set.
Brake rig animations.
Index of main driver in this set’s wheelsets.
identifier
string Engine set ID (e.g. "front-engine").
maximumBoilerPressure
float Steam pressure (PSI).
phaseOffset
float Wheel rotation phase offset (0—1).
pistonDiameterInches
float Cylinder bore (inches).
pistonStrokeInches
float Piston stroke (inches).
pivotOffset
float Offset from main pivot (meters). See Car Geometry.
weightOnDrivers
float Weight on drivers (pounds).
wheelsets
Wheelset[] = [] Wheelsets for this engine section. Each wheelset’s own transform names its wheels and rods within
this section — never the section’s bodyTransform itself. See
Car Geometry for how pivotOffset places them.
ArticulationType
Section titled “ArticulationType”Simple — Both engines receive high-pressure steam.
Compound — Mallet arrangement: high-pressure rear, exhaust-fed front.
© 2026 Giraffe Lab LLC. All rights reserved.