Target: WebXR Device API, modern browsers. Uses Three.js runtime under the hood — this directory holds the AR/VR-session bootstrap glue.
import { parseXrai, buildScene } from '@xrai/threejs';
import { enterXrai } from '@xrai/webxr';
const graph = await parseXrai(jsonText);
const scene = buildScene(graph);
await enterXrai(scene, { mode: 'immersive-ar' | 'immersive-vr' | 'inline' });
graph.scene.anchorsif (navigator.xr?.isSessionSupported('immersive-ar')) {
enterXrai(scene, { mode: 'immersive-ar' });
} else if (navigator.xr?.isSessionSupported('immersive-vr')) {
enterXrai(scene, { mode: 'immersive-vr' });
} else {
// 2D preview in <canvas>
render2DPreview(scene);
}