Skip to content

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

ts
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?

optional mcpRuntime: 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: 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()

static create(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?

WorldOptions

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

Privacy | Terms