Skip to main content


XrController.configure({ disableWorldTracking, enableLighting, enableWorldPoints, enableVps, imageTargets: [], leftHandedAxes, mirroredDisplay, projectWayspots, scale })


Configures the processing performed by XrController (some settings may have performance implications).


disableWorldTracking [Optional]BooleanfalseIf true, turn off SLAM tracking for efficiency. This needs to be done BEFORE is called.
enableLighting [Optional]BooleanfalseIf true, lighting will be provided by XR8.XrController.pipelineModule() as
enableWorldPoints [Optional]BooleanfalseIf true, worldPoints will be provided by XR8.XrController.pipelineModule() as processCpuResult.reality.worldPoints.
enableVps [Optional]BooleanfalseIf true, look for Project Wayspots and a mesh. The mesh that is returned has no relation to Project Wayspots and will be returned even if no Project Wayspots are configured. Enabling VPS overrides settings for scale and disableWorldTracking.
imageTargets [Optional]ArrayList of names of the image target to detect. Can be modified at runtime. Note: All currently active image targets will be replaced with the ones specified in this list.
leftHandedAxes [Optional]BooleanfalseIf true, use left-handed coordinates.
mirroredDisplay [Optional]BooleanfalseIf true, flip left and right in the output.
projectWayspots [Optional]Array[]Subset of Project Wayspot names to exclusively localize against. If an empty array is passed, we will localize all nearby Project Wayspots.
scale [Optional]StringresponsiveEither responsive or absolute. responsive will return values so that the camera on frame 1 is at the origin defined via XR8.XrController.updateCameraProjectionMatrix(). absolute will return the camera, image targets, etc in meters. When using absolute the x-position, z-position, and rotation of the starting pose will respect the parameters set in XR8.XrController.updateCameraProjectionMatrix() once scale has been estimated. The y-position will depend on the camera's physical height from the ground plane.

IMPORTANT: disableWorldTracking: true needs to be set BEFORE both XR8.XrController.pipelineModule() and are called and cannot be modifed while the engine is running.




XR8.XrController.configure({enableLighting: true, disableWorldTracking: false, scale: 'absolute'})

Example - Enable VPS

XR8.XrController.configure({enableVps: true})

Example - Disable world tracking

// Disable world tracking (SLAM)
XR8.XrController.configure({disableWorldTracking: true})
// Open the camera and start running the camera run loop{canvas: document.getElementById('camerafeed')})

Example - Change active image target set

XR8.XrController.configure({imageTargets: ['image-target1', 'image-target2', 'image-target3']})