Develop

IWSDK Concepts

Updated: Sep 4, 2026
IWSDK combines an entity-component-system (ECS) runtime with Three.js, WebXR input, interaction systems, native scene files, and spatial UI.
Use these concept pages to understand how the parts fit together before you customize a starter project.
Native scene and assets
        ↓
World and ECS systems
        ↓
Three.js scene, input, interaction, and rendering

ECS

The World owns entities, components, systems, and live queries. Transform entities connect ECS data to Three.js objects through synchronized position, orientation, and scale values.
Start with ECS 101, then use the focused pages for components, systems, queries, lifecycle, and common patterns.

Three.js

IWSDK exports the Three.js classes used by the runtime. You can create geometry, materials, and object hierarchies with Three.js while IWSDK manages the render loop and ECS integration.

XR input

The input stack provides controller and hand visuals, action mappings, stateful gamepad access, and ray, grab, and touch pointers.

Grabbing and locomotion

Grabbing adds one-hand, two-hand, and distance manipulation. Locomotion provides slide, teleport, and turn behavior through one parent locomotion system.

Spatial UI

UIKit renders three-dimensional interface elements. UIKitML provides strict HTML- and CSS-like authoring. IWSDK loads .uikitml source files at runtime and exposes the result as a UIKitMLAsset with DOM-like query helpers.

Scenes and assets

IWSDK loads native .iwsdk.scene.json or .scene.json files. Scene files place assets and components, while application code implements procedural behavior and systems.
Continue with the IWSDK guide overview to build an experience.