Class: World
Defined in: packages/core/src/ecs/world.ts:81
World is the root ECS container, Three.js scene/renderer owner, and XR session gateway.
Remarks
- Construct a world with World.create (recommended) which wires the renderer, scene, default systems (Input, UI, Audio, Level) and starts the render loop.
- The world exposes convenience handles like input, player (the persistent player/XR origin), and World.assetManager.
- Feature systems (Grabbing, Locomotion) are opt‑in via WorldOptions.features.
Example
import { World, SessionMode } from '@iwsdk/core';
const container = document.getElementById('scene-container') as HTMLDivElement;
const world = await World.create(container, {
xr: { sessionMode: SessionMode.ImmersiveVR },
features: { enableLocomotion: true, enableGrabbing: true },
level: '/glxf/Composition.glxf'
});Extends
World
Constructors
Constructor
new World():
World
Defined in: packages/core/src/ecs/world.ts:118
Returns
World
Overrides
ElicsWorld.constructor
Properties
_resolveLevelLoad()
_resolveLevelLoad: () =>
void
Defined in: packages/core/src/ecs/world.ts:95
Returns
void
activeLevel
activeLevel:
Signal<Entity>
Defined in: packages/core/src/ecs/world.ts:87
activeLevelId
activeLevelId:
string='level:default'
Defined in: packages/core/src/ecs/world.ts:88
assetManager
assetManager: typeof
AssetManager
Defined in: packages/core/src/ecs/world.ts:84
camera
camera:
PerspectiveCamera
Defined in: packages/core/src/ecs/world.ts:89
cameraEntity
cameraEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:90
input
input:
InputManager
Defined in: packages/core/src/ecs/world.ts:82
mcpRuntime?
optionalmcpRuntime:MCPRuntime
Defined in: packages/core/src/ecs/world.ts:99
MCP runtime for framework-specific tools. Set automatically during World.create().
player
player:
XROrigin
Defined in: packages/core/src/ecs/world.ts:83
playerEntity
playerEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:107
Entity wrapping the XROrigin Group (persistent, survives level changes).
playerHeadEntity
playerHeadEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:109
Entity wrapping the player head Group (persistent).
playerSpaceEntities
playerSpaceEntities:
object
Defined in: packages/core/src/ecs/world.ts:111
Entities for all XR input space Groups under the player rig (all persistent).
gripSpaces
gripSpaces:
object
gripSpaces.left
left:
Entity
gripSpaces.right
right:
Entity
head
head:
Entity
indexTipSpaces
indexTipSpaces:
object
indexTipSpaces.left
left:
Entity
indexTipSpaces.right
right:
Entity
raySpaces
raySpaces:
object
raySpaces.left
left:
Entity
raySpaces.right
right:
Entity
renderer
renderer:
WebGLRenderer
Defined in: packages/core/src/ecs/world.ts:91
requestedLevelUrl
requestedLevelUrl:
string
Defined in: packages/core/src/ecs/world.ts:94
scene
scene:
Scene
Defined in: packages/core/src/ecs/world.ts:85
sceneEntity
sceneEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:86
session
session:
XRSession
Defined in: packages/core/src/ecs/world.ts:92
visibilityState
visibilityState:
Signal<VisibilityState>
Defined in: packages/core/src/ecs/world.ts:93
xrDefaults
xrDefaults:
XROptions
Defined in: packages/core/src/ecs/world.ts:97
Default XR options used when calling World.launchXR without overrides.
Methods
createEntity()
createEntity():
Entity
Defined in: packages/core/src/ecs/world.ts:176
Returns
Entity
Overrides
ElicsWorld.createEntity
createTransformEntity()
createTransformEntity(
object?,parentOrOptions?):Entity
Defined in: packages/core/src/ecs/world.ts:180
Parameters
object?
Object3D
parentOrOptions?
Entity | { parent?: Entity; persistent?: boolean; }
Returns
Entity
destroy()
destroy():
void
Defined in: packages/core/src/ecs/world.ts:269
Tear down the world: destroy all registered systems (running their cleanupFuncs), then run world-level teardown callbacks (stop the render loop, remove the window resize listener). After calling this the world instance should be discarded.
Returns
void
Remarks
Not invoked during normal single-world app usage (where the world lives for the page lifetime); provided so tests, hot-reload, and multi-world hosts can release the render loop, listeners, and per-system subscriptions instead of leaking them. Individual failures are caught so one bad teardown does not block the rest.
exitXR()
exitXR():
void
Defined in: packages/core/src/ecs/world.ts:241
Returns
void
getActiveRoot()
getActiveRoot():
Object3D
Defined in: packages/core/src/ecs/world.ts:302
Returns
Object3D
getPersistentRoot()
getPersistentRoot():
Object3D
Defined in: packages/core/src/ecs/world.ts:306
Returns
Object3D
launchXR()
launchXR(
xrOptions?):void
Defined in: packages/core/src/ecs/world.ts:229
Parameters
xrOptions?
Partial<XROptions>
Returns
void
loadLevel()
loadLevel(
url?):Promise<void>
Defined in: packages/core/src/ecs/world.ts:234
Request a level change; LevelSystem performs the work and resolves.
Parameters
url?
string
Returns
Promise<void>
registerComponent()
registerComponent(
component):this
Defined in: packages/core/src/ecs/world.ts:297
Parameters
component
Component
Returns
this
Overrides
ElicsWorld.registerComponent
update()
update(
delta,time):void
Defined in: packages/core/src/ecs/world.ts:293
Parameters
delta
number
time
number
Returns
void
Overrides
ElicsWorld.update
create()
staticcreate(container,options?):Promise<World>
Defined in: packages/core/src/ecs/world.ts:331
Initialize a new WebXR world with renderer, scene, default systems, and optional level.
Parameters
container
HTMLDivElement
HTML container to which the renderer canvas will be appended.
options?
Runtime configuration, see WorldOptions.
Returns
Promise<World>
A promise that resolves to the initialized World.
Remarks
- This call enables the Input, UI and Audio systems by default.
- Use WorldOptions.features to enable Locomotion or Grabbing.
- If WorldOptions.level is provided, the LevelSystem will load it after assets are preloaded.
See
/getting-started/01-hello-xr