Class: Options
Defined in: src/core/Options.ts:58
A central configuration class for the entire XR Blocks system. It aggregates all settings and provides chainable methods for enabling common features.
Constructors
Constructor
new Options(
options?):Options
Defined in: src/core/Options.ts:144
Constructs the Options object by merging default values with provided custom options.
Parameters
options?
A custom options object to override the defaults.
ai?
{ enabled?: boolean; gemini?: { apiKey?: string; config?: { }; enabled?: boolean; keyValid?: boolean; live?: { audioConfig?: { autoGainControl?: ... | ... | ...; channelCount?: ... | ...; echoCancellation?: ... | ... | ...; noiseSuppression?: ... | ... | ...; sampleRate?: ... | ...; }; enabled?: boolean; endOfSpeechSensitivity?: "LOW" | "HIGH"; model?: string; screenshotInterval?: number; startOfSpeechSensitivity?: "LOW" | "HIGH"; voiceName?: string; }; model?: string; urlParam?: string; }; globalUrlParams?: { key?: string; }; model?: AIModel; openai?: { apiKey?: string; enabled?: boolean; model?: string; urlParam?: string; }; } = ...
ai.enabled?
boolean = false
ai.gemini?
{ apiKey?: string; config?: { }; enabled?: boolean; keyValid?: boolean; live?: { audioConfig?: { autoGainControl?: ... | ... | ...; channelCount?: ... | ...; echoCancellation?: ... | ... | ...; noiseSuppression?: ... | ... | ...; sampleRate?: ... | ...; }; enabled?: boolean; endOfSpeechSensitivity?: "LOW" | "HIGH"; model?: string; screenshotInterval?: number; startOfSpeechSensitivity?: "LOW" | "HIGH"; voiceName?: string; }; model?: string; urlParam?: string; } = ...
ai.gemini.apiKey?
string = ''
ai.gemini.config?
{ } = {}
ai.gemini.enabled?
boolean = false
ai.gemini.keyValid?
boolean = false
ai.gemini.live?
{ audioConfig?: { autoGainControl?: ... | ... | ...; channelCount?: ... | ...; echoCancellation?: ... | ... | ...; noiseSuppression?: ... | ... | ...; sampleRate?: ... | ...; }; enabled?: boolean; endOfSpeechSensitivity?: "LOW" | "HIGH"; model?: string; screenshotInterval?: number; startOfSpeechSensitivity?: "LOW" | "HIGH"; voiceName?: string; } = ...
ai.gemini.live.audioConfig?
{ autoGainControl?: ... | ... | ...; channelCount?: ... | ...; echoCancellation?: ... | ... | ...; noiseSuppression?: ... | ... | ...; sampleRate?: ... | ...; }
ai.gemini.live.audioConfig.autoGainControl?
... | ... | ...
ai.gemini.live.audioConfig.channelCount?
... | ...
ai.gemini.live.audioConfig.echoCancellation?
... | ... | ...
ai.gemini.live.audioConfig.noiseSuppression?
... | ... | ...
ai.gemini.live.audioConfig.sampleRate?
... | ...
ai.gemini.live.enabled?
boolean
ai.gemini.live.endOfSpeechSensitivity?
"LOW" | "HIGH"
ai.gemini.live.model?
string
ai.gemini.live.screenshotInterval?
number
ai.gemini.live.startOfSpeechSensitivity?
"LOW" | "HIGH"
ai.gemini.live.voiceName?
string
ai.gemini.model?
string = 'gemini-2.0-flash'
ai.gemini.urlParam?
string = 'geminiKey'
ai.globalUrlParams?
{ key?: string; } = ...
ai.globalUrlParams.key?
string = 'key'
ai.model?
AIModel = 'gemini'
ai.openai?
{ apiKey?: string; enabled?: boolean; model?: string; urlParam?: string; } = ...
ai.openai.apiKey?
string = ''
ai.openai.enabled?
boolean = false
ai.openai.model?
string = 'gpt-4.1'
ai.openai.urlParam?
string = 'openaiKey'
antialias?
boolean = true
Whether to use antialiasing.
camera?
{ far?: number; near?: number; } = ...
camera.far?
number = 500
camera.near?
number = 0.01
canvas?
{ }
Canvas element to use for rendering. If not defined, a new element will be added to document body.
controllers?
{ debug?: boolean; enabled?: boolean; enabledMouse?: boolean; visualization?: boolean; visualizeRays?: boolean; } = ...
controllers.debug?
boolean = false
Whether to enable debugging features for controllers.
controllers.enabled?
boolean = true
Whether controller input is enabled.
controllers.enabledMouse?
boolean = true
Whether mouse input should act as a controller on desktop.
controllers.visualization?
boolean = false
Whether to show controller models.
controllers.visualizeRays?
boolean = false
Whether to show the ray lines extending from the controllers.
debugging?
boolean = false
Global flag for enabling various debugging features.
depth?
{ debugging?: boolean; depthMesh?: { colliderUpdateFps?: number; enabled?: boolean; opacity?: number; patchHoles?: boolean; patchHolesUpper?: boolean; renderShadow?: boolean; shadowOpacity?: number; showDebugTexture?: boolean; updateFullResolutionGeometry?: boolean; updateVertexNormals?: boolean; useDepthTexture?: boolean; useDownsampledGeometry?: boolean; useDualCollider?: boolean; }; depthTexture?: { applyGaussianBlur?: boolean; applyKawaseBlur?: boolean; constantKernel?: boolean; enabled?: boolean; }; depthTypeRequest?: readonly (undefined | XRDepthType)[]; enabled?: boolean; matchDepthView?: boolean; occlusion?: { enabled?: boolean; }; useFloat32?: boolean; } = ...
depth.debugging?
boolean = false
depth.depthMesh?
{ colliderUpdateFps?: number; enabled?: boolean; opacity?: number; patchHoles?: boolean; patchHolesUpper?: boolean; renderShadow?: boolean; shadowOpacity?: number; showDebugTexture?: boolean; updateFullResolutionGeometry?: boolean; updateVertexNormals?: boolean; useDepthTexture?: boolean; useDownsampledGeometry?: boolean; useDualCollider?: boolean; } = ...
depth.depthMesh.colliderUpdateFps?
number = 5
depth.depthMesh.enabled?
boolean = false
depth.depthMesh.opacity?
number = 1.0
depth.depthMesh.patchHoles?
boolean = false
depth.depthMesh.patchHolesUpper?
boolean = false
depth.depthMesh.renderShadow?
boolean = false
depth.depthMesh.shadowOpacity?
number = 0.25
depth.depthMesh.showDebugTexture?
boolean = false
depth.depthMesh.updateFullResolutionGeometry?
boolean = false
depth.depthMesh.updateVertexNormals?
boolean = false
depth.depthMesh.useDepthTexture?
boolean = false
depth.depthMesh.useDownsampledGeometry?
boolean = true
depth.depthMesh.useDualCollider?
boolean = false
depth.depthTexture?
{ applyGaussianBlur?: boolean; applyKawaseBlur?: boolean; constantKernel?: boolean; enabled?: boolean; } = ...
depth.depthTexture.applyGaussianBlur?
boolean = false
depth.depthTexture.applyKawaseBlur?
boolean = false
depth.depthTexture.constantKernel?
boolean = false
depth.depthTexture.enabled?
boolean = false
depth.depthTypeRequest?
readonly (undefined | XRDepthType)[] = ...
depth.enabled?
boolean = false
depth.matchDepthView?
boolean = true
depth.occlusion?
{ enabled?: boolean; } = ...
depth.occlusion.enabled?
boolean = false
depth.useFloat32?
boolean = true
deviceCamera?
{ enabled?: boolean; rgbToDepthParams?: { k1?: number; k2?: number; k3?: number; p1?: number; p2?: number; scale?: number; scaleX?: number; scaleY?: number; translateU?: number; translateV?: number; xc?: number; yc?: number; }; videoConstraints?: { }; willCaptureFrequently?: boolean; } = ...
deviceCamera.enabled?
boolean = false
deviceCamera.rgbToDepthParams?
{ k1?: number; k2?: number; k3?: number; p1?: number; p2?: number; scale?: number; scaleX?: number; scaleY?: number; translateU?: number; translateV?: number; xc?: number; yc?: number; } = ...
Parameters for RGB to depth UV mapping given different aspect ratios.
deviceCamera.rgbToDepthParams.k1?
number
deviceCamera.rgbToDepthParams.k2?
number
deviceCamera.rgbToDepthParams.k3?
number
deviceCamera.rgbToDepthParams.p1?
number
deviceCamera.rgbToDepthParams.p2?
number
deviceCamera.rgbToDepthParams.scale?
number
deviceCamera.rgbToDepthParams.scaleX?
number
deviceCamera.rgbToDepthParams.scaleY?
number
deviceCamera.rgbToDepthParams.translateU?
number
deviceCamera.rgbToDepthParams.translateV?
number
deviceCamera.rgbToDepthParams.xc?
number
deviceCamera.rgbToDepthParams.yc?
number
deviceCamera.videoConstraints?
{ }
Constraints for getUserMedia. This will guide the initial camera
selection.
deviceCamera.willCaptureFrequently?
boolean = false
Hint for performance optimization on frequent captures.
enableAI?
() => Options
enableCamera?
(facingMode) => Options
enableDepth?
() => Options
enableGestures?
() => Options
enableHandRays?
() => Options
enableHands?
() => Options
enableObjectDetection?
() => Options
enablePlaneDetection?
() => Options
enableReticles?
() => Options
enableSimulator?
boolean = true
enableUI?
() => Options
enableXRTransitions?
() => Options
gestures?
{ enable?: () => GestureRecognitionOptions; enabled?: boolean; gestures?: { fist?: { enabled?: boolean; threshold?: number; }; open-palm?: { enabled?: boolean; threshold?: number; }; pinch?: { enabled?: boolean; threshold?: number; }; point?: { enabled?: boolean; threshold?: number; }; spread?: { enabled?: boolean; threshold?: number; }; thumbs-up?: { enabled?: boolean; threshold?: number; }; }; minimumConfidence?: number; provider?: GestureProvider; setGestureEnabled?: (name, enabled) => GestureRecognitionOptions; updateIntervalMs?: number; } = ...
gestures.enable?
() => GestureRecognitionOptions
gestures.enabled?
boolean = false
Master switch for the gesture recognition block.
gestures.gestures?
{ fist?: { enabled?: boolean; threshold?: number; }; open-palm?: { enabled?: boolean; threshold?: number; }; pinch?: { enabled?: boolean; threshold?: number; }; point?: { enabled?: boolean; threshold?: number; }; spread?: { enabled?: boolean; threshold?: number; }; thumbs-up?: { enabled?: boolean; threshold?: number; }; } = ...
Default gesture catalogue.
gestures.gestures.fist?
{ enabled?: boolean; threshold?: number; }
gestures.gestures.fist.enabled?
boolean
gestures.gestures.fist.threshold?
number
Optional override for gesture-specific score thresholds. For distance based gestures this is treated as a maximum distance; for confidence based gestures it is treated as a minimum score.
gestures.gestures.open-palm?
{ enabled?: boolean; threshold?: number; }
gestures.gestures.open-palm.enabled?
boolean
gestures.gestures.open-palm.threshold?
number
Optional override for gesture-specific score thresholds. For distance based gestures this is treated as a maximum distance; for confidence based gestures it is treated as a minimum score.
gestures.gestures.pinch?
{ enabled?: boolean; threshold?: number; }
gestures.gestures.pinch.enabled?
boolean
gestures.gestures.pinch.threshold?
number
Optional override for gesture-specific score thresholds. For distance based gestures this is treated as a maximum distance; for confidence based gestures it is treated as a minimum score.
gestures.gestures.point?
{ enabled?: boolean; threshold?: number; }
gestures.gestures.point.enabled?
boolean
gestures.gestures.point.threshold?
number
Optional override for gesture-specific score thresholds. For distance based gestures this is treated as a maximum distance; for confidence based gestures it is treated as a minimum score.
gestures.gestures.spread?
{ enabled?: boolean; threshold?: number; }
gestures.gestures.spread.enabled?
boolean
gestures.gestures.spread.threshold?
number
Optional override for gesture-specific score thresholds. For distance based gestures this is treated as a maximum distance; for confidence based gestures it is treated as a minimum score.
gestures.gestures.thumbs-up?
{ enabled?: boolean; threshold?: number; }
gestures.gestures.thumbs-up.enabled?
boolean
gestures.gestures.thumbs-up.threshold?
number
Optional override for gesture-specific score thresholds. For distance based gestures this is treated as a maximum distance; for confidence based gestures it is treated as a minimum score.
gestures.minimumConfidence?
number = 0.6
Minimum confidence score to emit gesture events. Different providers map to different score domains so this value is normalised to [0-1].
gestures.provider?
GestureProvider = 'heuristics'
Backing provider that extracts gesture information.
- 'heuristics': WebXR joint heuristics only (no external ML dependency).
- 'mediapipe': MediaPipe Hands running via Web APIs / wasm.
- 'tfjs': TensorFlow.js hand-pose-detection models.
gestures.setGestureEnabled?
(name, enabled) => GestureRecognitionOptions
gestures.updateIntervalMs?
number = 33
Optional throttle window for expensive providers.
hands?
{ debugging?: boolean; enabled?: boolean; enableHands?: () => HandsOptions; enableHandsVisualization?: () => HandsOptions; visualization?: boolean; visualizeJoints?: boolean; visualizeMeshes?: boolean; } = ...
hands.debugging?
boolean = false
hands.enabled?
boolean = false
Whether hand tracking is enabled.
hands.enableHands?
() => HandsOptions
hands.enableHandsVisualization?
() => HandsOptions
hands.visualization?
boolean = false
Whether to show any hand visualization.
hands.visualizeJoints?
boolean = false
Whether to show the tracked hand joints.
hands.visualizeMeshes?
boolean = false
Whether to show the virtual hand meshes.
lighting?
{ castDirectionalLightShadow?: boolean; debugging?: boolean; enabled?: boolean; useAmbientSH?: boolean; useDirectionalLight?: boolean; useDynamicSoftShadow?: boolean; } = ...
lighting.castDirectionalLightShadow?
boolean = false
Cast shadows using diretional light.
lighting.debugging?
boolean = false
Enables debugging renders and logs.
lighting.enabled?
boolean = false
Enables XR lighting.
lighting.useAmbientSH?
boolean = false
Add ambient spherical harmonics to lighting.
lighting.useDirectionalLight?
boolean = false
Add main diredtional light to lighting.
lighting.useDynamicSoftShadow?
boolean = false
Adjust hardness of shadows according to relative brightness of main light.
logarithmicDepthBuffer?
boolean = false
Whether to use a logarithmic depth buffer. Useful for depth-aware occlusions.
permissions?
{ camera?: boolean; geolocation?: boolean; microphone?: boolean; } = ...
Which permissions to request before entering the XR session.
permissions.camera?
boolean = false
permissions.geolocation?
boolean = false
permissions.microphone?
boolean = false
physics?
{ fps?: number; gravity?: { x?: number; y?: number; z?: number; }; RAPIER?: { init?: () => Promise<void>; }; useEventQueue?: boolean; worldStep?: boolean; } = ...
physics.fps?
number = 45
The target frames per second for the physics simulation loop.
physics.gravity?
{ x?: number; y?: number; z?: number; } = ...
The global gravity vector applied to the physics world.
physics.gravity.x?
number = 0.0
physics.gravity.y?
number = -9.81
physics.gravity.z?
number = 0.0
physics.RAPIER?
{ init?: () => Promise<void>; }
Instance of RAPIER.
physics.RAPIER.init?
() => Promise<void>
physics.useEventQueue?
boolean = false
If true, an event queue will be created and passed to world.step(),
enabling the handling of collision and contact events.
physics.worldStep?
boolean = true
If true, the Physics manager will automatically call world.step()
on its fixed interval. Set to false if you want to control the
simulation step manually.
referenceSpaceType?
XRReferenceSpaceType = 'local-floor'
reticles?
{ enabled?: boolean; } = ...
reticles.enabled?
boolean = true
simulator?
{ blendingMode?: "normal" | "screen"; defaultHand?: Handedness; defaultMode?: SimulatorMode; geminiLivePanel?: { element?: string; enabled?: boolean; }; handPosePanel?: { element?: string; enabled?: boolean; }; initialCameraPosition?: { x?: number; y?: number; z?: number; }; initialScenePosition?: { x?: number; y?: number; z?: number; }; instructions?: { customInstructions?: readonly (undefined | { description?: ... | ... | ...; header?: ... | ... | ...; videoSrc?: ... | ...; })[]; element?: string; enabled?: boolean; }; modeIndicator?: { element?: string; enabled?: boolean; }; renderToRenderTexture?: boolean; scenePath?: string; stereo?: { enabled?: boolean; }; videoPath?: string; } = ...
simulator.blendingMode?
"normal" | "screen" = 'normal'
simulator.defaultHand?
Handedness = Handedness.LEFT
simulator.defaultMode?
SimulatorMode = SimulatorMode.USER
simulator.geminiLivePanel?
{ element?: string; enabled?: boolean; } = ...
simulator.geminiLivePanel.element?
string = 'xrblocks-simulator-geminilive'
simulator.geminiLivePanel.enabled?
boolean = false
simulator.handPosePanel?
{ element?: string; enabled?: boolean; } = ...
simulator.handPosePanel.element?
string = 'xrblocks-simulator-hand-pose-panel'
simulator.handPosePanel.enabled?
boolean = true
simulator.initialCameraPosition?
{ x?: number; y?: number; z?: number; } = ...
simulator.initialCameraPosition.x?
number = 0
simulator.initialCameraPosition.y?
number = 1.5
simulator.initialCameraPosition.z?
number = 0
simulator.initialScenePosition?
{ x?: number; y?: number; z?: number; } = ...
simulator.initialScenePosition.x?
number = -1.6
simulator.initialScenePosition.y?
number = 0.3
simulator.initialScenePosition.z?
number = 0
simulator.instructions?
{ customInstructions?: readonly (undefined | { description?: ... | ... | ...; header?: ... | ... | ...; videoSrc?: ... | ...; })[]; element?: string; enabled?: boolean; } = ...
simulator.instructions.customInstructions?
readonly (undefined | { description?: ... | ... | ...; header?: ... | ... | ...; videoSrc?: ... | ...; })[] = ...
simulator.instructions.element?
string = 'xrblocks-simulator-instructions'
simulator.instructions.enabled?
boolean = true
simulator.modeIndicator?
{ element?: string; enabled?: boolean; } = ...
simulator.modeIndicator.element?
string = 'xrblocks-simulator-mode-indicator'
simulator.modeIndicator.enabled?
boolean = true
simulator.renderToRenderTexture?
boolean = true
simulator.scenePath?
string = ...
simulator.stereo?
{ enabled?: boolean; } = ...
simulator.stereo.enabled?
boolean = false
simulator.videoPath?
string = undefined
sound?
{ speechRecognizer?: { commandConfidenceThreshold?: number; commands?: readonly (undefined | string)[]; continuous?: boolean; enabled?: boolean; interimResults?: boolean; lang?: string; playSimulatorActivationSounds?: boolean; }; speechSynthesizer?: { allowInterruptions?: boolean; enabled?: boolean; }; } = ...
sound.speechRecognizer?
{ commandConfidenceThreshold?: number; commands?: readonly (undefined | string)[]; continuous?: boolean; enabled?: boolean; interimResults?: boolean; lang?: string; playSimulatorActivationSounds?: boolean; } = ...
sound.speechRecognizer.commandConfidenceThreshold?
number = 0.7
Minimum confidence (0-1) for a command.
sound.speechRecognizer.commands?
readonly (undefined | string)[] = []
Keywords to detect as commands.
sound.speechRecognizer.continuous?
boolean = false
If true, recognition continues after a pause.
sound.speechRecognizer.enabled?
boolean = true
sound.speechRecognizer.interimResults?
boolean = false
If true, provides interim results.
sound.speechRecognizer.lang?
string = 'en-US'
Recognition language (e.g., 'en-US').
sound.speechRecognizer.playSimulatorActivationSounds?
boolean = true
If true, play activation sounds in simulator.
sound.speechSynthesizer?
{ allowInterruptions?: boolean; enabled?: boolean; } = ...
sound.speechSynthesizer.allowInterruptions?
boolean = false
If true, a new call to speak() will interrupt any ongoing speech.
sound.speechSynthesizer.enabled?
boolean = false
stencil?
boolean = false
Whether to request a stencil buffer.
transition?
{ defaultBackgroundColor?: number; enabled?: boolean; transitionTime?: number; } = ...
transition.defaultBackgroundColor?
number = 0xffffff
The default background color for VR transitions.
transition.enabled?
boolean = false
Whether the transition effect is enabled.
transition.transitionTime?
number = 0.5
The duration of the transition in seconds.
usePostprocessing?
boolean = false
Whether to use post-processing effects.
webxrRequiredFeatures?
readonly (undefined | string)[] = []
Any additional required features when initializing webxr.
world?
{ debugging?: boolean; enabled?: boolean; enableObjectDetection?: () => WorldOptions; enablePlaneDetection?: () => WorldOptions; objects?: { backendConfig?: { activeBackend?: "gemini" | "mediapipe"; gemini?: { responseSchema?: ... | ...; systemInstruction?: ... | ...; }; mediapipe?: { }; }; debugging?: boolean; enable?: () => ObjectsOptions; enabled?: boolean; objectImageMargin?: number; showDebugVisualizations?: boolean; }; planes?: { debugging?: boolean; enable?: () => PlanesOptions; enabled?: boolean; showDebugVisualizations?: boolean; }; } = ...
world.debugging?
boolean = false
world.enabled?
boolean = false
world.enableObjectDetection?
() => WorldOptions
world.enablePlaneDetection?
() => WorldOptions
world.objects?
{ backendConfig?: { activeBackend?: "gemini" | "mediapipe"; gemini?: { responseSchema?: ... | ...; systemInstruction?: ... | ...; }; mediapipe?: { }; }; debugging?: boolean; enable?: () => ObjectsOptions; enabled?: boolean; objectImageMargin?: number; showDebugVisualizations?: boolean; } = ...
world.objects.backendConfig?
{ activeBackend?: "gemini" | "mediapipe"; gemini?: { responseSchema?: ... | ...; systemInstruction?: ... | ...; }; mediapipe?: { }; } = ...
Configuration for the detection backends.
world.objects.backendConfig.activeBackend?
"gemini" | "mediapipe" = ...
The active backend to use for detection.
world.objects.backendConfig.gemini?
{ responseSchema?: ... | ...; systemInstruction?: ... | ...; } = ...
world.objects.backendConfig.gemini.responseSchema?
... | ... = ...
world.objects.backendConfig.gemini.systemInstruction?
... | ... = ...
world.objects.backendConfig.mediapipe?
{ } = {}
Placeholder for a future MediaPipe backend configuration.
world.objects.debugging?
boolean = false
world.objects.enable?
() => ObjectsOptions
world.objects.enabled?
boolean = false
world.objects.objectImageMargin?
number = 0.05
Margin to add when cropping the object image, as a percentage of image size.
world.objects.showDebugVisualizations?
boolean = false
world.planes?
{ debugging?: boolean; enable?: () => PlanesOptions; enabled?: boolean; showDebugVisualizations?: boolean; } = ...
world.planes.debugging?
boolean = false
world.planes.enable?
() => PlanesOptions
world.planes.enabled?
boolean = false
world.planes.showDebugVisualizations?
boolean = false
xrButton?
{ alwaysAutostartSimulator?: boolean; enabled?: boolean; endText?: string; invalidText?: string; showEnterSimulatorButton?: boolean; startSimulatorText?: string; startText?: string; } = ...
Configuration for the XR session button.
xrButton.alwaysAutostartSimulator?
boolean = false
xrButton.enabled?
boolean = true
xrButton.endText?
string = 'Exit XR'
xrButton.invalidText?
string = 'XR Not Supported'
xrButton.showEnterSimulatorButton?
boolean = false
xrButton.startSimulatorText?
string = 'Enter Simulator'
xrButton.startText?
string = 'Enter XR'
Returns
Options
Properties
ai
ai:
AIOptions
Defined in: src/core/Options.ts:99
antialias
antialias:
boolean=true
Defined in: src/core/Options.ts:62
Whether to use antialiasing.
camera
camera:
object
Defined in: src/core/Options.ts:104
far
far:
number=500
near
near:
number=0.01
canvas?
optionalcanvas:HTMLCanvasElement
Defined in: src/core/Options.ts:80
Canvas element to use for rendering. If not defined, a new element will be added to document body.
controllers
controllers:
InputOptions
Defined in: src/core/Options.ts:91
debugging
debugging:
boolean=false
Defined in: src/core/Options.ts:71
Global flag for enabling various debugging features.
depth
depth:
DepthOptions
Defined in: src/core/Options.ts:92
deviceCamera
deviceCamera:
DeviceCameraOptions
Defined in: src/core/Options.ts:94
enableSimulator
enableSimulator:
boolean=true
Defined in: src/core/Options.ts:114
gestures
gestures:
GestureRecognitionOptions
Defined in: src/core/Options.ts:96
hands
hands:
HandsOptions
Defined in: src/core/Options.ts:95
lighting
lighting:
LightingOptions
Defined in: src/core/Options.ts:93
logarithmicDepthBuffer
logarithmicDepthBuffer:
boolean=false
Defined in: src/core/Options.ts:67
Whether to use a logarithmic depth buffer. Useful for depth-aware occlusions.
permissions
permissions:
object
Defined in: src/core/Options.ts:133
Which permissions to request before entering the XR session.
camera
camera:
boolean=false
geolocation
geolocation:
boolean=false
microphone
microphone:
boolean=false
physics
physics:
PhysicsOptions
Defined in: src/core/Options.ts:102
referenceSpaceType
referenceSpaceType:
XRReferenceSpaceType='local-floor'
Defined in: src/core/Options.ts:89
reticles
reticles:
ReticleOptions
Defined in: src/core/Options.ts:97
simulator
simulator:
SimulatorOptions
Defined in: src/core/Options.ts:100
sound
sound:
SoundOptions
Defined in: src/core/Options.ts:98
stencil
stencil:
boolean=false
Defined in: src/core/Options.ts:75
Whether to request a stencil buffer.
transition
transition:
XRTransitionOptions
Defined in: src/core/Options.ts:103
usePostprocessing
usePostprocessing:
boolean=false
Defined in: src/core/Options.ts:112
Whether to use post-processing effects.
webxrRequiredFeatures
webxrRequiredFeatures:
string[] =[]
Defined in: src/core/Options.ts:85
Any additional required features when initializing webxr.
world
world:
WorldOptions
Defined in: src/core/Options.ts:101
xrButton
xrButton:
object
Defined in: src/core/Options.ts:119
Configuration for the XR session button.
alwaysAutostartSimulator
alwaysAutostartSimulator:
boolean=false
enabled
enabled:
boolean=true
endText
endText:
string='Exit XR'
invalidText
invalidText:
string='XR Not Supported'
showEnterSimulatorButton
showEnterSimulatorButton:
boolean=false
startSimulatorText
startSimulatorText:
string='Enter Simulator'
startText
startText:
string='Enter XR'
Methods
enableAI()
enableAI():
Options
Defined in: src/core/Options.ts:243
Enables a standard set of AI features, including Gemini Live.
Returns
Options
The instance for chaining.
enableCamera()
enableCamera(
facingMode):Options
Defined in: src/core/Options.ts:201
Enables device camera (passthrough) with a specific facing mode.
Parameters
facingMode
The desired camera facing mode, either 'environment' or 'user'.
"user" | "environment"
Returns
Options
The instance for chaining.
enableDepth()
enableDepth():
Options
Defined in: src/core/Options.ts:171
Enables depth sensing in WebXR with default options.
Returns
Options
The instance for chaining.
enableGestures()
enableGestures():
Options
Defined in: src/core/Options.ts:224
Enables the gesture recognition block and ensures hands are available.
Returns
Options
The instance for chaining.
enableHandRays()
enableHandRays():
Options
Defined in: src/core/Options.ts:234
Enables the visualization of rays for hand tracking.
Returns
Options
The instance for chaining.
enableHands()
enableHands():
Options
Defined in: src/core/Options.ts:215
Enables hand tracking.
Returns
Options
The instance for chaining.
enableObjectDetection()
enableObjectDetection():
Options
Defined in: src/core/Options.ts:189
Enables object detection.
Returns
Options
The instance for chaining.
enablePlaneDetection()
enablePlaneDetection():
Options
Defined in: src/core/Options.ts:180
Enables plane detection.
Returns
Options
The instance for chaining.
enableReticles()
enableReticles():
Options
Defined in: src/core/Options.ts:162
Enables reticles for visualizing targets of hand rays in WebXR.
Returns
Options
The instance for chaining.
enableUI()
enableUI():
Options
Defined in: src/core/Options.ts:152
Enables a standard set of options for a UI-focused experience.
Returns
Options
The instance for chaining.
enableXRTransitions()
enableXRTransitions():
Options
Defined in: src/core/Options.ts:254
Enables the XR transition component for toggling VR.
Returns
Options
The instance for chaining.