BIM OOTB — Browser Viewer User Guide¶
See also: Feature Comparison · Clash Detection · 4D/5D Analysis
One browser, zero install: open a building, navigate in 3D/2D, run clash detection, track 4D progress.
Quick Start — your first building¶
Zero install. Everything runs client-side in any browser; download a building once and it is cached in IndexedDB, so the second visit is instant. Works on desktop and mobile.
You enter through the Matrix front door (index.html) — not viewer/viewer.html directly (that
bare URL opens an unrelated warehouse view). On the front door choose the Buildings / IFC door and
the BUILDINGS & IFC hub opens:
→ Front door (index.html) → choose Buildings / IFC

Three ways in — pick one:
- Open a ready-made building. Tap a card under City Buildings or Landmark Buildings (SampleHouse, Duplex, Clinic, Terminal, Hospital, …). It downloads that building's DB (0.5–177 MB), flies to it, and streams the geometry in the 3D viewer.
- Drop your own IFC. Drag an
.ifc/.obj/.dae/.glbfile onto the centre "Drop IFC / 3D files here" zone (or tap it to browse). The file is parsed in-browser and opens in the viewer. - Add to an existing project. When you drop a file that matches a building already loaded, a
prompt offers Merge (combine disciplines —
Enter) or New (a fresh building —Escape); two versions of the same building can be opened side-by-side with Compare Versions.
Disclaimer
Your IFC never leaves your device. Parsing, viewing and merging all run in your browser. I guarantee that privacy by keeping all source code open on GitHub — audit exactly what runs. ✈ Works offline once loaded — open a model with your network off and it still runs: proof nothing is sent (import an IFC once, then drop another in airplane mode). No AI API runs in the software — it is completely deterministic. AI was used only as a pair-programming aid during development, under strict guardrails. I'm hardening this further with a Content-Security-Policy that blocks every outbound connection, as I am studying deeper on browser security.
The dropped file becomes an extracted SQLite that lives only in your browser. Save As downloads it
to your own machine (a _meta.db + _geo.db pair for big models, or Export IFC back to a .ifc);
Open loads that file straight back, byte-identical. It's your copy — keep it, move it, delete it.
Clear it any time with Clear Cache on the front door.
Once the viewer opens:
- Watch the progress bar and element flicker as geometry streams in.
- Click any element → the Info panel shows its IFC class, name, GUID, storey, discipline, material.
- Filter by storey or discipline (bottom-left panels) to isolate part of the model.
- Alt+Z for X-Ray, ☆ for white background, ✈ to fly around, 📷 for a screenshot.
- Open another building → the first pauses; tap back to resume.
Full navigation, panels, and the keyboard cheat-sheet are below.
Run it on your own machine¶
Local setup (3 steps):
# 1. Go to deploy folder
cd deploy
# 2. Start local server
python3 -m http.server 8080
# 3. Open the front door in your browser, then choose Buildings / IFC
# http://localhost:8080/index.html
Per-building DBs must be in deploy/buildings/:
- {Name}_extracted.db — metadata + transforms
- {Name}_library.db — geometry BLOBs (vertices + faces)
Then open http://localhost:8080/index.html, choose Buildings / IFC, and use the same three ways in as above.
DB sizes:
| Building | Elements | Download (ext+lib) |
|---|---|---|
| SampleHouse | 65 | 0.5 MB |
| Duplex | 1,169 | 2.8 MB |
| Clinic | 16,480 | 31 MB |
| Terminal | 48,428 | 59 MB |
| Hospital | 63,917 | 88 MB |
| LTU AHouse | 125,698 | 177 MB |
3D Navigation¶
| Input | Action |
|---|---|
| Drag | Orbit camera |
| Shift + Drag | Pan camera |
| Right-click drag | Pan camera |
| Scroll / Pinch | Zoom |
| Click element | Identify — shows IFC class, name, GUID, storey, material |
| Alt+Z | X-Ray toggle (15% opacity) |
| F11 | Fullscreen toggle |
Toolbar buttons (top-right panel):
| Button | Action |
|---|---|
| Clear | Remove all streamed meshes |
| X-Ray | Toggle 15% transparency on all elements |
| 📷 | Screenshot (saves PNG to Downloads/) |
| ⛶ | Fullscreen |
| ☆ / ☾ | Light/dark theme |
| ✈ | Fly around rendered buildings |
Panels:
| Panel | Position | Shows |
|---|---|---|
| BIM OOTB | Top-left | Buildings, streaming progress, element flicker |
| Tools | Top-right | Filter, buttons, building list |
| Info | Bottom-right | Clicked element metadata (class, GUID, storey, disc, material) |
| Storeys | Bottom-left | Floor filter — click to isolate one storey |
| Disciplines | Bottom-left | Discipline toggle — show/hide ARC, STR, MEP etc. |
| Status | Bottom-centre | Current streaming state |
All panels collapse with −/+.
Viewer Features¶
All browsers (desktop + mobile):
- 3D orbit, pan, zoom (mouse or touch)
- Click any element → IFC class, GUID, storey, discipline, material
- Fly-tour — auto-orbits rendered buildings, click to stop
- Indoor walk-through — follows IfcSpace/door graph through the building
- X-Ray mode (Alt+Z) — transparent view, see structure through walls
- Measure tool — tap two points, get distance in metres
- Section cut — horizontal clip plane, slider to cut through floors
- Storey filter — isolate a single floor
- Discipline toggle — show/hide ARC, STR, MEP, ELEC, etc.
- Screenshot — saves current view as PNG
- Deep-link URL — camera + building state encoded in hash, shareable
- IndexedDB cache — download once, instant on revisit
- City mode — 786 building bboxes, click to download + stream on demand
Mobile-only (touch-optimised):
- Site Camera — phone camera with GPS + compass + timestamp overlay
- BIM picture-in-picture — 3D snapshot composited into the photo
- Markup tools — arrow, circle, freehand draw, text annotations
- Share → WhatsApp (with BIM context baked into image)
- GPS Walk Mode — blue dot tracks position in the model
- Wall X-Ray — tap a wall in Walk Mode to see MEP behind it
- Issue log — capture site issues with photo + GPS + classification, export to Excel
Keyboard & Mouse Cheat-Sheet¶
| Key / Gesture | Action |
|---|---|
| Drag | Orbit camera |
| Shift + Drag / Right-click drag | Pan camera |
| Scroll / Pinch | Zoom |
| Click element | Identify — IFC class, name, GUID, storey, material |
| Alt+Z | X-Ray toggle (15% opacity) |
| F11 | Fullscreen toggle |
| 📷 | Screenshot (PNG to Downloads/) |
| ✈ | Fly-tour around rendered buildings |
Authoring geometry & 2D plans — grid editing, the 2D grid,
GRID_MOVE, undo/redo over the signed op-log — lives in the DAGeVu Modeller, a separate surface from this read-only viewer.
Where the buildings come from¶
This viewer renders buildings; it does not compile them. Buildings are produced by the Java BOM
compiler (a BUILDING / GRID / STOREY DSL turned into a verified 3D SQLite) or extracted from an IFC
you drop. Those toolchains are documented separately:
| Doc | What |
|---|---|
| BOM-Based Compilation | The DSL, BOM resolution, profiles & building codes |
| BIM COBOL — 77 Verbs | The geometry verb reference |
| IFC Onboarding Runbook | Bring your own IFC through the pipeline |
| Source Code Guide | Pipeline internals & build commands |
Further Reading¶
| Doc | What |
|---|---|
| DAGeVu Modeller Guide | Author geometry & the 2D grid over a signed op-log |
| Kernel-ERP User Guide | iDempiere browser ERP — login → install → POS → reporting |
| Clash Detection | Clash detection engine |
| 4D/5D Analysis | nD analytics (4D–8D) |
| IFC Onboarding | Onboard your own IFC file |
Copyright (c) 2025-2026 Redhuan D. Oon. MIT Licensed.