displayxr-demos/
CLAUDE.md ← rules every agent reads (this file)
CHANGES-NEEDED.md ← requested changes to packages/, one note per request
assets/LICENSES.md ← one entry per asset
.env.example ← every key any app reads; copy to .env (never committed)
packages/core/ ← display page, WebSocket bridge, agent adapters
packages/importer/ ← dxr-import (Sketchfab, KitBash, Smithsonian)
apps/energy-grid/ ← Future Grids Training (grid digital twin)
apps/music-visualizer/
apps/4dv-player/ ← 4DV.ai volumetric video player (own CLAUDE.md)
apps/splat-call/ ← Splat Call 3D: live Gaussian-splat video calls (own CLAUDE.md)
apps/creator-hub/ ← Material Forge, Vehicle Studio, Terra Studio + Push to HQ
apps/battleship/ ← redirect stub (moved to the displayxr-battleship repo)
apps/agent-voice/ ← Muse, Dot, Claude voice demo
apps/aviation-coach/
apps/playground-port/
apps/world-gen/ ← World Labs Marble
The inline-3D page rules that cause most “3D is broken” reports are in
DisplayXR/displayxr-web → docs/woven-canvas-rules.md (one session per document, never remount
a woven canvas, cover until firstWoven, no CSS effects on a woven canvas or its ancestors). Read it
before writing any page that hosts a woven canvas. API: the .d.ts files at that repo’s root.