Concepts
Runtime Model
How one String3D module instance manages the renderer, scene, synchronizer, and DOM-connected objects.
Runtime Model
String3D is one module instance inside the StringTune runtime, not a separate app-level scene manager you create by hand.
Main participants
String3Downs settings, provider bootstrap, and the frame hook.String3DRendererowns the render surface and frame output.String3DSceneowns created 3D objects.String3DSynchronizertranslates DOM state into 3D transforms and style-driven changes.DirtySyncManageroptionally narrows updates to changed elements.
Initialization flow
StringTunestarts.String3D.onInit()runs.- The module bootstraps the provider and creates the renderer, camera, scene, and synchronizer.
- Connected DOM objects are flushed into the scene.
Frame flow
Each frame:
- the module batches layout reads
- synchronizers update root objects and children
- filter targets are collected
- the renderer draws the final frame
Why this matters
This explains two important behaviors:
- DOM size and computed style are the input contract
- scene mutations are derived from markup instead of being authored as independent mesh code
When settings take effect
Module settings such as container, zIndex, useDirtySync, styleReadIntervalMs, and layoutReadIntervalMs are read from this.settings and can be re-applied through onSettingsChange().