Skip to main content

Class: Core

Defined in: src/core/Core.ts:81

Core is the central engine of the XR Blocks framework, acting as a singleton manager for all XR subsystems. Its primary goal is to abstract low-level WebXR and THREE.js details, providing a simplified and powerful API for developers and AI agents to build interactive XR applications.

Constructors​

Constructor​

new Core(simulatorLoader): Core

Defined in: src/core/Core.ts:284

Core is a singleton manager that manages all XR "blocks". It initializes core components and abstractions like the scene, camera, user, UI, AI, and input managers.

Parameters​

simulatorLoader​

SimulatorLoader = loadSimulatorModule

Returns​

Core

Properties​

ai​

ai: AI

Defined in: src/core/Core.ts:189


camera​

camera: PerspectiveCamera

Defined in: src/core/Core.ts:110

The main camera for rendering.


context​

context: Context

Defined in: src/core/Core.ts:147

Manages agent-facing observations of the app/session.


depth​

depth: Depth

Defined in: src/core/Core.ts:184


deviceCamera?​

optional deviceCamera: XRDeviceCamera

Defined in: src/core/Core.ts:183


effects?​

optional effects: XREffects

Defined in: src/core/Core.ts:188


gestureRecognition?​

optional gestureRecognition: GestureRecognition

Defined in: src/core/Core.ts:191


input​

input: Input

Defined in: src/core/Core.ts:107

Manages hand, mouse, gaze inputs.


lighting?​

optional lighting: Lighting

Defined in: src/core/Core.ts:185


options​

options: Options

Defined in: src/core/Core.ts:182


permissionsManager​

permissionsManager: PermissionsManager

Defined in: src/core/Core.ts:208


physics?​

optional physics: Physics

Defined in: src/core/Core.ts:186


poseEstimation?​

optional poseEstimation: PoseEstimator

Defined in: src/core/Core.ts:190


registry​

registry: Registry

Defined in: src/core/Core.ts:98

Registry used for dependency injection on existing subsystems.


renderSceneOverride()?​

optional renderSceneOverride: (renderer, scene, camera) => void

Defined in: src/core/Core.ts:202

Parameters​

renderer​

WebGLOrWebGPURenderer

scene​

Scene

camera​

Camera

Returns​

void


scene​

scene: Scene<Object3DEventMap>

Defined in: src/core/Core.ts:113

The root scene graph for all objects.


screenshotSynthesizer​

screenshotSynthesizer: ScreenshotSynthesizer

Defined in: src/core/Core.ts:86

Component responsible for capturing screenshots of the XR scene for AI.


scriptsManager​

scriptsManager: ScriptsManager

Defined in: src/core/Core.ts:196


simulator?​

optional simulator: Simulator

Defined in: src/core/Core.ts:128

The desktop XR simulator after its runtime chunk has loaded.


simulatorRunning​

simulatorRunning: boolean = false

Defined in: src/core/Core.ts:156

Whether the XR simulator is currently active.


sound​

sound: CoreSound

Defined in: src/core/Core.ts:119

Manages all (spatial) audio playback.


textureLoader​

textureLoader: TextureLoader

Defined in: src/core/Core.ts:150

A shared texture loader.


timer​

timer: Timer

Defined in: src/core/Core.ts:103

A timer for tracking time deltas. Call timer.getDelta() or getDeltaTime().


transition?​

optional transition: XRTransition

Defined in: src/core/Core.ts:192


user​

user: User

Defined in: src/core/Core.ts:116

Represents the user in the XR scene.


waitFrame​

waitFrame: WaitFrame

Defined in: src/core/Core.ts:90

Component responsible for waiting for the next frame.


webXRSessionManager?​

optional webXRSessionManager: WebXRSessionManager

Defined in: src/core/Core.ts:207


world​

world: World

Defined in: src/core/Core.ts:144

Manages real-world understanding: planes, meshes, objects, and sounds.


xrButton?​

optional xrButton: XRButton

Defined in: src/core/Core.ts:187


xrReferenceSpaceCache​

xrReferenceSpaceCache: XRReferenceSpaceCache

Defined in: src/core/Core.ts:94

Caches WebXR reference spaces for the active session.


xrSystemsGroup​

xrSystemsGroup: XRSystems

Defined in: src/core/Core.ts:122

A container to hold all the systems in the scene hierarchy.


instance?​

static optional instance: Core

Defined in: src/core/Core.ts:82

Accessors​

currentFrame​

Get Signature​

get currentFrame(): XRFrame | null | undefined

Defined in: src/core/Core.ts:193

Returns​

XRFrame | null | undefined


elapsedTime​

Get Signature​

get elapsedTime(): number

Defined in: src/core/Core.ts:232

Returns​

number


isPaused​

Get Signature​

get isPaused(): boolean

Defined in: src/core/Core.ts:228

Returns​

boolean


lifecycle​

Get Signature​

get lifecycle(): CoreLifecycleState

Defined in: src/core/Core.ts:237

Current state of this terminal Core lifetime.

Returns​

CoreLifecycleState


renderer​

Get Signature​

get renderer(): WebGLOrWebGPURenderer

Defined in: src/core/Core.ts:214

The WebGL or WebGPU renderer, created during Core.init. Reading it before init() has run returns undefined and logs a one-time warning.

Returns​

WebGLOrWebGPURenderer

Set Signature​

set renderer(renderer): void

Defined in: src/core/Core.ts:224

Parameters​
renderer​

WebGLOrWebGPURenderer

Returns​

void

Methods​

dispose()​

dispose(): Promise<void>

Defined in: src/core/Core.ts:335

Returns​

Promise<void>


init()​

init(options): Promise<void>

Defined in: src/core/Core.ts:449

Initializes the Core system with a given set of options. This includes setting up the renderer, enabling features like controllers, depth sensing, and physics, and starting the render loop.

Parameters​

options​

Options = ...

Configuration options for the session.

Returns​

Promise<void>


pause()​

pause(): void

Defined in: src/core/Core.ts:241

Returns​

void


resume()​

resume(): void

Defined in: src/core/Core.ts:246

Returns​

void


startSimulator()​

startSimulator(): Promise<Simulator>

Defined in: src/core/Core.ts:917

Returns​

Promise<Simulator>


stepFrame()​

stepFrame(dtMs): void

Defined in: src/core/Core.ts:250

Parameters​

dtMs​

number = 16.67

Returns​

void