A digital twin of our house, built from the drawings

Walk through a full 3D model of a new-build home and its street, switch between construction stages (slab, frame, finished), and mark up where you want things to go. It runs in the browser, on desktop or phone, with nothing to install.
This one is private, and it is staying that way. A model this complete (the house, the street, the estate around it) would make our address trivial to work out, so I am not sharing the model or its link. What you see here are screenshots and a top-down floor plan, which is as far as I am comfortable going. The ideas are the interesting part anyway, and they transfer to any house.
Generated, not drawn
The model is generated from code, not clicked together by hand. A semantic schema and a set of parameters describe the house, and scripts turn them into walls, framing, roofs, fit-out, electrical and furniture. The same pipeline builds the surrounding street and estate, and it runs inside Fusion and Blender.
Every element has a stable ID. A change shows up as a diff, and the model rebuilds identically from the same inputs. That one property is what makes everything below possible.
What you can do with it
- Walk or fly through the whole house in a Rust/Bevy viewer compiled to WebGPU, with a WebGL2 fallback for phones.
- Switch construction stages and toggle layers: roof and ceilings, interior, fit-out, electrical, fences, and future neighbouring stages.
- Review electrical placement. Family members mark power points on specific walls. Markers attach to an element ID and a local position, so they survive the model being regenerated. Every export is flagged as needing an electrician’s review, so nothing reads as compliant by default.
- Try furniture layouts. Open-plan, retreat and dining variants use measured furniture sizes, and yes, there is a chairs-tucked toggle.
- See day and night lighting, with smart-light room scenes, a real star catalogue and a daylight-inside mode.
- Plan the landscape. A garden and landscape study kit with scenario files, a rule checker, an in-browser garden editor and a plant and vehicle catalogue. Drive mode lets you run a ute and trailer through the site with physics, to test turning circles and access down the side. (The picture at the top of this post is drive mode: a ute and a caravan, parked where they would actually fit.)
- Turn a view into a picture. Any camera pose in the viewer can be handed to an image model (Meta’s Muse Image) together with a material board made from the signed colour selection. It returns a photographic visualisation of the garden proposal from exactly that viewpoint. Drag the slider to compare:
Engine frameAI visualisation - Compare against captured reality. A Gaussian-splat pipeline is meant to show the site as photographed, registered to the CAD with published residuals. It never gets baked into the model: the splat is optional and the product ships without it.
Why bother
Decisions become visible before they are expensive. Where the outlets, lights, furniture and fences go, and whether a car and trailer actually fit, are much cheaper to argue about in a model than on site.
Collaboration is a link. The family opens it on a phone and comments. Nobody installs anything. (The link sits behind a sign-in; it is for us, not the internet.)
Trust is explicit. The project separates planned, observed, measured and verified as built, and keeps evidence status separate from review status. A thing being in the model does not mean anyone has checked it.
Quality is measured both ways. Validation scripts check precision (does what is modelled match the drawing?) and recall (is everything the drawing shows actually there, and can you walk into every room?). Each gate prints what it does not cover, so a green tick never overclaims.
It is reusable. The house is data, not baked into the product, so the same platform could take another property.
It is good for physics too
Because the walls, doorways and furniture are data, the model can feed other tools. I sliced it at head height and ran an airflow simulation on it, to work out where a fan should go to push the split system’s cold air down the hallway. It runs live in the browser: choosing a quiet fan with physics.
How it was built
Like everything else I am working on at the moment, this was planned as beads and built by a herd of agents working through the ready queue, with me reviewing the diffs and walking the model. The stable element IDs turned out to matter as much for the agents as for the family: a bead can point at wall.kitchen.north and mean exactly one thing.