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