Standing Up Straight
glTF scene-node transforms now apply on import: assets arrive in the pose and place their file declares. The battle-damaged helmet finally faces the camera, visor HUD glowing, and multi-part scenes assemble instead of collapsing onto the origin.


Last release the helmet got its textures back. It celebrated by lying face-down on the floor:

The file was, once again, innocent. A glTF scene is a tree of nodes, each with a transform, and the helmet’s single node says: rotate me upright. Lux read the mesh table directly and ignored the tree entirely, so every asset arrived in whatever local space its author modelled in. One helmet face-down is comedy; a multi-part scene where every piece lands on the origin in its modelling pose is a deal-breaker for imported sets.
The tree is now consulted
On import, Lux walks the scene hierarchy, composes each node’s transform with its ancestors, and bakes the result into the vertices: positions through the full matrix, normals through the inverse-transpose so non-uniform scale doesn’t shear your lighting, tangents along for the ride. Skinned characters are deliberately exempt, because in glTF a skinned mesh’s placement belongs to its skeleton, not its node; our walking man kept walking through every test, identical to the pixel.

The unglamorous image above is the gate that keeps this honest: a generated two-node asset where the parent rotates 90 degrees and its child carries a sideways offset. If composition is right, the offset rotates with the parent and blue lands on top of red. If someone ever flattens the hierarchy by accident, blue slides off to the side and the test fails with a message explaining exactly which mistake they made.
The helmet’s own gate now demands the canonical look: visor facing the camera, cyan HUD emissive visible, gold chin guard present. The fixture also picked up a proper studio environment along the way, because metal without an environment to reflect renders as a philosophical statement about emptiness, and we are running a visuals tool here.