Class: SceneUnderstandingSystem
Defined in: packages/core/src/scene-understanding/scene-understanding-system.ts:73
Manages WebXR scene understanding features including plane detection, mesh detection, and anchoring.
Remarks
- Automatically detects and visualizes real‑world planes and meshes in AR/VR environments.
- Creates entities with XRPlane components for detected planes (floors, walls, ceilings).
- Creates entities with XRMesh components for detected 3D geometry.
- Supports anchoring objects to real‑world positions using XRAnchor components.
- Requires WebXR session features: 'plane‑detection', 'mesh‑detection', 'anchor' when using the related features.
- Automatically manages entity lifecycle as real‑world geometry changes.
- Provides optional visual feedback with wireframe meshes for detected geometry.
- Objects with XRAnchor are automatically attached to a stable world‑anchored group.
Examples
// WebXR session must request required features
World.create(document.getElementById('scene-container'), {
assets,
xr: {
sessionMode: SessionMode.ImmersiveAR,
features: { planeDetection: true, meshDetection: true, anchors: true },
}
})
// Add to your world to enable scene understanding
world.addSystem(SceneUnderstandingSystem)const cube = world.createTransformEntity(cubeObject)
cube.addComponent(XRAnchor) // Will be anchored to real-world position// Planes are automatically created as entities with XRPlane component
system.query({ required: [XRPlane] }).subscribe('qualify', (entity) => {
const plane = entity.getValue(XRPlane, '_plane')
console.log('New plane detected:', plane.orientation)
})See
Extends
System<{showWireFrame: {default:false;type:Boolean; }; }, {anchoredEntities: {required:Component<{attached: {default:false;type:Boolean; }; }>[]; };meshEntities: {required:Component<{_mesh: {default:any;type:Object; };dimensions: {default: [number,number,number];type:Vec3; };isBounded3D: {default:false;type:Boolean; };max: {default: [number,number,number];type:Vec3; };min: {default: [number,number,number];type:Vec3; };semanticLabel: {default:string;type:String; }; }>[]; };planeEntities: {required:Component<{_plane: {default:any;type:Object; }; }>[]; }; },this>
Constructors
Constructor
new SceneUnderstandingSystem(
_w,_qm,_p):SceneUnderstandingSystem
Defined in: node_modules/.pnpm/elics@3.3.0/node_modules/elics/lib/system.d.ts:73
Parameters
_w
_qm
QueryManager
_p
number
Returns
SceneUnderstandingSystem
Inherited from
createSystem( { planeEntities: { required: [XRPlane] }, meshEntities: { required: [XRMesh] }, anchoredEntities: { required: [XRAnchor] }, }, { showWireFrame: { type: Types.Boolean, default: false }, }, ).constructor
Properties
camera
readonlycamera:PerspectiveCamera
Defined in: packages/core/src/ecs/system.ts:60
Inherited from
cleanupFuncs
readonlycleanupFuncs: () =>void[]
Defined in: packages/core/src/ecs/system.ts:63
Returns
void
Inherited from
config
config:
SystemConfigSignals<S>
Defined in: packages/core/src/ecs/system.ts:48
Inherited from
createEntity()
createEntity: () =>
Entity
Defined in: packages/core/src/ecs/system.ts:69
Returns
Entity
Inherited from
globals
globals:
Record<string,any>
Defined in: packages/core/src/ecs/system.ts:53
Inherited from
input
readonlyinput:XRInputManager
Defined in: packages/core/src/ecs/system.ts:58
Inherited from
isPaused
isPaused:
boolean
Defined in: packages/core/src/ecs/system.ts:47
Inherited from
player
readonlyplayer:XROrigin
Defined in: packages/core/src/ecs/system.ts:57
Inherited from
priority
priority:
number
Defined in: packages/core/src/ecs/system.ts:52
Inherited from
queries
queries:
Record<keyofQ,Query>
Defined in: packages/core/src/ecs/system.ts:49
Inherited from
queryManager
queryManager:
QueryManager
Defined in: packages/core/src/ecs/system.ts:51
Inherited from
renderer
readonlyrenderer:WebGLRenderer
Defined in: packages/core/src/ecs/system.ts:61
Inherited from
scene
readonlyscene:Scene
Defined in: packages/core/src/ecs/system.ts:59
Inherited from
visibilityState
readonlyvisibilityState:Signal<VisibilityState>
Defined in: packages/core/src/ecs/system.ts:62
Inherited from
world
world:
World
Defined in: packages/core/src/ecs/system.ts:50
Inherited from
xrFrame
xrFrame:
XRFrame
Defined in: packages/core/src/ecs/system.ts:55
Inherited from
xrManager
xrManager:
WebXRManager
Defined in: packages/core/src/ecs/system.ts:54
Inherited from
Methods
init()
init():
void
Defined in: packages/core/src/scene-understanding/scene-understanding-system.ts:94
Returns
void
Overrides
play()
play():
void
Defined in: packages/core/src/ecs/system.ts:67
Returns
void
Inherited from
stop()
stop():
void
Defined in: packages/core/src/ecs/system.ts:68
Returns
void
Inherited from
update()
update(
_delta,_time):void
Defined in: packages/core/src/scene-understanding/scene-understanding-system.ts:128
Parameters
_delta
number
_time
number
Returns
void