Skip to content

Class: World

Defined in: packages/core/src/ecs/world.ts:67

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 (XRInputManager), player (XROrigin), 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:84

Returns

World

Overrides

ElicsWorld.constructor

Properties

_resolveLevelLoad()

_resolveLevelLoad: () => void

Defined in: packages/core/src/ecs/world.ts:80

Returns

void


activeLevel

activeLevel: Signal<Entity>

Defined in: packages/core/src/ecs/world.ts:73


activeLevelId

activeLevelId: string = 'level:default'

Defined in: packages/core/src/ecs/world.ts:74


assetManager

assetManager: typeof AssetManager

Defined in: packages/core/src/ecs/world.ts:70


camera

camera: PerspectiveCamera

Defined in: packages/core/src/ecs/world.ts:75


input

input: XRInputManager

Defined in: packages/core/src/ecs/world.ts:68


player

player: XROrigin

Defined in: packages/core/src/ecs/world.ts:69


renderer

renderer: WebGLRenderer

Defined in: packages/core/src/ecs/world.ts:76


requestedLevelUrl

requestedLevelUrl: string

Defined in: packages/core/src/ecs/world.ts:79


scene

scene: Scene

Defined in: packages/core/src/ecs/world.ts:71


sceneEntity

sceneEntity: Entity

Defined in: packages/core/src/ecs/world.ts:72


session

session: XRSession

Defined in: packages/core/src/ecs/world.ts:77


visibilityState

visibilityState: Signal<VisibilityState>

Defined in: packages/core/src/ecs/world.ts:78


xrDefaults

xrDefaults: XROptions

Defined in: packages/core/src/ecs/world.ts:82

Default XR options used when calling World.launchXR without overrides.

Methods

createEntity()

createEntity(): Entity

Defined in: packages/core/src/ecs/world.ts:96

Returns

Entity

Overrides

ElicsWorld.createEntity


createTransformEntity()

createTransformEntity(object?, parentOrOptions?): Entity

Defined in: packages/core/src/ecs/world.ts:100

Parameters

object?

Object3D

parentOrOptions?

Entity | { parent?: Entity; persistent?: boolean; }

Returns

Entity


exitXR()

exitXR(): void

Defined in: packages/core/src/ecs/world.ts:161

Returns

void


getActiveRoot()

getActiveRoot(): Object3D

Defined in: packages/core/src/ecs/world.ts:174

Returns

Object3D


getPersistentRoot()

getPersistentRoot(): Object3D

Defined in: packages/core/src/ecs/world.ts:178

Returns

Object3D


launchXR()

launchXR(xrOptions?): void

Defined in: packages/core/src/ecs/world.ts:149

Parameters

xrOptions?

Partial<XROptions>

Returns

void


loadLevel()

loadLevel(url?): Promise<void>

Defined in: packages/core/src/ecs/world.ts:154

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:169

Parameters

component

Component

Returns

this

Overrides

ElicsWorld.registerComponent


update()

update(delta, time): void

Defined in: packages/core/src/ecs/world.ts:165

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:203

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