Class: World
Defined in: packages/core/src/ecs/world.ts:70
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:102
Returns
World
Overrides
ElicsWorld.constructor
Properties
_resolveLevelLoad()
_resolveLevelLoad: () =>
void
Defined in: packages/core/src/ecs/world.ts:84
Returns
void
activeLevel
activeLevel:
Signal<Entity>
Defined in: packages/core/src/ecs/world.ts:76
activeLevelId
activeLevelId:
string='level:default'
Defined in: packages/core/src/ecs/world.ts:77
assetManager
assetManager: typeof
AssetManager
Defined in: packages/core/src/ecs/world.ts:73
camera
camera:
PerspectiveCamera
Defined in: packages/core/src/ecs/world.ts:78
cameraEntity
cameraEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:79
input
input:
InputManager
Defined in: packages/core/src/ecs/world.ts:71
mcpRuntime?
optionalmcpRuntime:MCPRuntime
Defined in: packages/core/src/ecs/world.ts:88
MCP runtime for framework-specific tools. Set automatically during World.create().
player
player:
XROrigin
Defined in: packages/core/src/ecs/world.ts:72
playerEntity
playerEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:91
Entity wrapping the XROrigin Group (persistent, survives level changes).
playerHeadEntity
playerHeadEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:93
Entity wrapping the player head Group (persistent).
playerSpaceEntities
playerSpaceEntities:
object
Defined in: packages/core/src/ecs/world.ts:95
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:80
requestedLevelUrl
requestedLevelUrl:
string
Defined in: packages/core/src/ecs/world.ts:83
scene
scene:
Scene
Defined in: packages/core/src/ecs/world.ts:74
sceneEntity
sceneEntity:
Entity
Defined in: packages/core/src/ecs/world.ts:75
session
session:
XRSession
Defined in: packages/core/src/ecs/world.ts:81
visibilityState
visibilityState:
Signal<VisibilityState>
Defined in: packages/core/src/ecs/world.ts:82
xrDefaults
xrDefaults:
XROptions
Defined in: packages/core/src/ecs/world.ts:86
Default XR options used when calling World.launchXR without overrides.
Methods
createEntity()
createEntity():
Entity
Defined in: packages/core/src/ecs/world.ts:160
Returns
Entity
Overrides
ElicsWorld.createEntity
createTransformEntity()
createTransformEntity(
object?,parentOrOptions?):Entity
Defined in: packages/core/src/ecs/world.ts:164
Parameters
object?
Object3D
parentOrOptions?
Entity | { parent?: Entity; persistent?: boolean; }
Returns
Entity
exitXR()
exitXR():
void
Defined in: packages/core/src/ecs/world.ts:225
Returns
void
getActiveRoot()
getActiveRoot():
Object3D
Defined in: packages/core/src/ecs/world.ts:238
Returns
Object3D
getPersistentRoot()
getPersistentRoot():
Object3D
Defined in: packages/core/src/ecs/world.ts:242
Returns
Object3D
launchXR()
launchXR(
xrOptions?):void
Defined in: packages/core/src/ecs/world.ts:213
Parameters
xrOptions?
Partial<XROptions>
Returns
void
loadLevel()
loadLevel(
url?):Promise<void>
Defined in: packages/core/src/ecs/world.ts:218
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:233
Parameters
component
Component
Returns
this
Overrides
ElicsWorld.registerComponent
update()
update(
delta,time):void
Defined in: packages/core/src/ecs/world.ts:229
Parameters
delta
number
time
number
Returns
void
Overrides
ElicsWorld.update
create()
staticcreate(container,options?):Promise<World>
Defined in: packages/core/src/ecs/world.ts:267
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