Skip to main content

Class: Core

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

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

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


camera

camera: PerspectiveCamera

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

The main camera for rendering.


context

context: Context

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

Manages agent-facing observations of the app/session.


depth

depth: Depth

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


deviceCamera?

optional deviceCamera: XRDeviceCamera

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


effects?

optional effects: XREffects

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


gestureRecognition?

optional gestureRecognition: GestureRecognition

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


input

input: Input

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

Manages hand, mouse, gaze inputs.


lighting?

optional lighting: Lighting

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


options

options: Options

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


permissionsManager

permissionsManager: PermissionsManager

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


physics?

optional physics: Physics

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


poseEstimation?

optional poseEstimation: PoseEstimator

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


registry

registry: Registry

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

Registry used for dependency injection on existing subsystems.


renderSceneOverride()?

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

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

Parameters

renderer

WebGLRenderer

scene

Scene

camera

Camera

Returns

void


scene

scene: Scene<Object3DEventMap>

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

The root scene graph for all objects.


screenshotSynthesizer

screenshotSynthesizer: ScreenshotSynthesizer

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

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


scriptsManager

scriptsManager: ScriptsManager

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


simulator?

optional simulator: Simulator

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

The desktop XR simulator after its runtime chunk has loaded.


simulatorRunning

simulatorRunning: boolean = false

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

Whether the XR simulator is currently active.


sound

sound: CoreSound

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

Manages all (spatial) audio playback.


textureLoader

textureLoader: TextureLoader

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

A shared texture loader.


timer

timer: Timer

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

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


transition?

optional transition: XRTransition

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


user

user: User

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

Represents the user in the XR scene.


waitFrame

waitFrame: WaitFrame

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

Component responsible for waiting for the next frame.


webXRSessionManager?

optional webXRSessionManager: WebXRSessionManager

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


world

world: World

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

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


xrButton?

optional xrButton: XRButton

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


xrReferenceSpaceCache

xrReferenceSpaceCache: XRReferenceSpaceCache

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

Caches WebXR reference spaces for the active session.


xrSystemsGroup

xrSystemsGroup: XRSystems

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

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


instance?

static optional instance: Core

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

Accessors

currentFrame

Get Signature

get currentFrame(): XRFrame | undefined

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

Returns

XRFrame | undefined


elapsedTime

Get Signature

get elapsedTime(): number

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

Returns

number


isPaused

Get Signature

get isPaused(): boolean

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

Returns

boolean


lifecycle

Get Signature

get lifecycle(): CoreLifecycleState

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

Current state of this terminal Core lifetime.

Returns

CoreLifecycleState


renderer

Get Signature

get renderer(): WebGLRenderer

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

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

Returns

WebGLRenderer

Set Signature

set renderer(renderer): void

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

Parameters
renderer

WebGLRenderer

Returns

void

Methods

dispose()

dispose(): Promise<void>

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

Returns

Promise<void>


init()

init(options): Promise<void>

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

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

Returns

void


resume()

resume(): void

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

Returns

void


startSimulator()

startSimulator(): Promise<Simulator>

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

Returns

Promise<Simulator>


stepFrame()

stepFrame(dtMs): void

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

Parameters

dtMs

number = 16.67

Returns

void