Skip to content
P4R1HPublic

About

Architectural floor plans rendered as a navigable 3D model in the browser, with a real solar model, dimension checking, and lots more.

Resources

Stars

68 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Naksha

Hindi for the plan. (Dutch will be pleased.)

Architectural floor plans rendered as a navigable 3D model in the browser, with a real solar model, dimension checking, and the original drawing available as an overlay to verify against. Built with Claude Code.

The plan is data in src/data/floors.js; geometry, schedules and validation all derive from it. Pointing this at another building means replacing that data, not editing the renderer.

npm install
npm run dev

No API keys, no accounts, no network requests at runtime.

WORKFLOW.md is the part worth reading — how to do this for your own drawings, how the repository is organised, and the pitfalls.


Invariants

These hold throughout. Breaking one breaks something else.

  1. All dimensions are inches. No unit conversion anywhere except at display time.

  2. src/data/floors.js is the single source of truth. Geometry, room schedules, the minimap, click-to-identify, every checker and the drawing overlay derive from it. No dimension is written down twice.

  3. Walls are centrelines, not boxes. Authored as [x1, y1, x2, y2, thickness] and solved into mitred polygons. Two boxes meeting at a corner leave a triangular gap; the solver exists to prevent it.

  4. Openings sit on a wall centreline and are subtracted from whichever wall they touch. Moving a door edits two numbers and never the wall array.

  5. Furniture is anchored, not positioned. A piece states which wall it is against and how far along. Moving a wall moves the furniture.

  6. Proposed changes never mutate the drawn plan. Each patches a deep clone, so turning them all off returns exactly what the architect drew.

  7. No external assets. Every material is drawn into a canvas at runtime.

  8. Validation runs against the data, not the render. A picture that looks right is not evidence.

  9. Plan space and world space are distinct. Plan is (x, y) inches from the grid origin; world is (x - CX, z, y - CZ). Converted in two modules and nowhere else.

  10. Nothing identifying ships. The architects' title block carries names, an office address and a phone number. Only redacted scans are included; the original PDFs are excluded from the repository.

Layout

path contents reference
src/data/ the plan, and the tables that extend it README
src/lib/ wall solver, extrusion, layout resolution README
src/components/ three.js scene and the control panel
tools/ validation scripts and headless capture README
skills/ three transferable skills written from this build README
public/sheets/ redacted scans, for the drawing overlay

Features

Navigation in orbit, first person and free-fly. Daylight from a NOAA solar-position model for the site, by date and hour. Two-click measurement. Six switchable front-elevation schemes. Proposed plan changes that rebuild real geometry and toggle independently. Five interior material schemes. The architect's drawing as a scaled underlay. A scripted tour that records itself to MP4.

Verifying

node tools/walls.mjs       junctions close, openings land on walls
node tools/coverage.mjs    no holes where walls meet
node tools/support.mjs     no unsupported slab, no railing inside a wall
node tools/furniture.mjs   nothing in a door swing or off the slab
node tools/check.mjs       room areas against the architect's figures

The drawing underlay is the check that matters most: the model and the sheet either agree or they do not.

Licence

Two sets of terms. The software and the method are MIT. The plan data and drawings describe a specific private residence, are included only as a worked example, and are not licensed for reuse. See LICENSE.

About

Architectural floor plans rendered as a navigable 3D model in the browser, with a real solar model, dimension checking, and lots more.

Resources

Stars

68 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages