Five prototypes, honest status.
Working internal artifacts that should ship as public XRAI decoders. Each one is graded by the same 3-gate SHIP_READY criteria the rest of the project uses: G1 auto editor visual, G2 user step test, G3 local build / deploy. No item is marked SHIP unless all three pass.
1 · Voxel world generator
SHIP"Explode a galaxy of cyan voxels around me" — procedural voxel plant generator with LOD + wind simulation. Sparse intent → thousands of GPU voxels at 60 FPS via the Keijiro pattern. Same XRAI doc 12 renders here in browser and on iPhone.
G1 · auto visual
Vite build clean (640 ms), 25/25 Playwright PASS at deploy.
G2 · user step
Open the page, drag to orbit, observe wind on plants. Self-evident pass.
G3 · build/deploy
Shipped at imclab.github.io/xra1/voxel/.
2 · Spatial MCP server
SHIPMake XRAI readable/writable by any MCP-compatible AI agent — Claude Desktop, Cursor, Cline, OpenAI agents, Gemini-with-MCP-shim. Tool calls and chain-of-thought roll onto the bus as deltas; the agent consumes scene state and emits edits.
Quickstart · Claude Desktop
// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "xrai": { "command": "npx", "args": ["-y", "@h3m/spatial-intelligence-mcp"] } } }
Restart Claude Desktop → the 8 tools (compose_scene, add_object, query_scene, modify_object, export_xrai, get_capabilities, paint_emit_stroke, paint_emit_parametric) appear in any conversation.
G1 · auto visual
npm package builds + publishes; 8/11 tools tested in unit suite.
G2 · user step
Drop the JSON config, restart Claude Desktop, ask "compose a campfire scene" → bus emits valid XRAI.
G3 · publish
npm registry public; README + tool catalog.
3 · DynGsplat 4D viewer
PARTIAL · web stubRender published 4D Gaussian datasets (DyNeRF / Plenoptic Video / D-NeRF / MEGA pretrained) live. Cross-platform: gsplat-unity (iOS app) + GaussianSplats3D (web) + MetalSplatter (visionOS). Niantic SPZ as interchange.
G1 · auto visual
Unity Editor renders static splats today. 4D temporal sequencing untested headless.
G2 · user step
Awaits physical iPhone trip per device queue.
G3 · publish
Web wrapper waits on dataset selection + GaussianSplats3D wiring (~2 h).
4 · Conducting orchestration (example 13)
QUEUED"Let me conduct the swarm" — per-finger pointing rays + open-hand arc + tempo envelope drive a 1200-particle agent swarm. Optional symphonic harp cue. No mouse, no menu. XRAI doc 13 already valid; web decoder needs WebXR hand-tracking surface (or MediaPipe webcam fallback).
G1 · auto visual
Unity-side particle system shipped (HandVFXController).
G2 · user step
Awaits hand-tracking decoder; doc 13 Editor playback verified.
G3 · publish
Web decoder ~6 h: MediaPipe Hands + Three.js particle pool + tone.js audio cue.
5 · Persistent anchor (example 7)
QUEUEDSave/reload XRAI doc keyed by ARKit world-anchor UUID. Web equivalent uses WebXR XRAnchor API (Chrome Android + Quest browser today; iOS Safari pending). localStorage round-trip viable as a v1 demo — ships the concept while real WebXR anchors mature.
G1 · auto visual
iOS Unity ARKit world-map anchor verified at last-working-rec02=b1c1c56cc.
G2 · user step
Awaits device trip + reopen-app round-trip.
G3 · publish
Web v1 decoder ~3 h: localStorage stub + Three.js scene reload demo.
How to promote a prototype to SHIP
Each card flips from QUEUED → PARTIAL → SHIP by closing all three gates documented in /ship-status:
- G1 — an automated visual / Playwright test runs green and is part of the regression baseline.
- G2 — a user has run the manual step test and recorded the confirmation in
SHIP_READY_QUEUE. - G3 — a build artifact is hosted (xra1 site, npm, app store, or GitHub release).
Code-complete is not shipped. A feat() commit alone fails G2 + G3.