This page is a real three.js scene, not a render. The district below is generated from a seed: streets, kerbs, paving, ~50 buildings with lit windows. Drag to orbit, scroll to zoom, hover a building to read its place path, click to cut it open and walk its floors.
This demo needs WebGL
Your browser did not expose a WebGL context, so the 3D district and the room viewer cannot be drawn. Everything else on the page still works.
- Enable hardware acceleration in your browser settings, then reload.
- Or open this page in a current version of Chrome, Edge, Firefox or Safari.
One room, every object under contract
A single authored room — sofa, armchair, coffee table, bookshelf, bed, door, window, rug, lamp. Click any object to read its record. The door and the window are articulated, so the record includes an axis, a range and a current value — and the control below drives the same transform the record describes.
Structured space, not just pictures
Addressable places
Every entity resolves to a path like city/block-2/building-4/floor-2/living-room/sofa-01. An agent can be told to go there — or told where it already is.
Objects with affordances
uses, material, state and accessPoint answer the questions a planner actually asks: what is this for, can it move, and where do I stand.
Articulation as data
A hinge is not an animation — it is an axis, a range and a current value. The same numbers drive the mesh and the plan.
Collision you can trust
Each record carries a collision shape, so navigation, reachability and line-of-sight are computed, not guessed.