Player, physics and animation
Studio preview
Use 🎮 in the top bar. Preview consumes the accepted resolved scene. The first eligible visible human becomes the default controllable actor; a suitable dog can follow with delay. Actual clips are chosen from manifest animation evidence, not invented. In first-person, left/right turn and up/down move forward/back; other views use their documented directional mapping. Click a ground destination for bounded planar navigation.
Number keys 1–4 select available game views; camera ownership can disable user switching. Use reset to restore authored initial poses. Closing preview restores editor ownership. Navigation avoids supported obstacles but does not implement arbitrary stairs, dynamic navmesh rebuilding or animation retargeting.
Physical components
Motion (static/dynamic/kinematic), collision (solid/sensor/none), controller, semantic role and interaction capabilities are separate. Precedence: instance override → accepted asset override → scene profile → validated inference → conservative fallback. Collider selection uses valid authored/fitted/compound/convex/decomposition/static-mesh evidence with explicit degraded fallbacks.
Rapier is an optional adapter. SceneDocumentV2 contains engine-neutral prepared data, never Rapier handles. Fixed timestep is bounded; exact bitwise determinism across engines/platforms is not promised. Sleep, CCD and contact handling cannot rescue an invalid collider or impossible authored overlap.
Lifecycle and ownership
Load → prepare → Play → Pause/Step → Reset/Stop → Dispose. Runtime transforms are transient. Exactly one owner controls an instance root. Grab/move/release acts through runtime APIs; Reset restores initial authoring. Explicit capture produces authoring data to validate, not a silent semantic edit. Collision/contact/sensor events are observations, not proof that an authored on/inside relation changed.
Static projection does not import physics or compiler packages. Interactive runtime loads resolved data; it does not need OpenAI or FastAPI. Supplied scenes, cameras and renderers remain host-owned. Dispose resources owned by the layer that created them.
Animation boundaries
Instances have independent skeletons, mixers and clocks. In-place animation avoids root-motion ownership conflict. Verified articulated parts can animate where the GLB structure permits; a recognizable but fused drawer is not a mechanism. Dynamic roots and animation ownership cannot compete. No automatic T-pose correction, IK or retargeting is promised.