Skip to content

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

The BUILDINGS & IFC hub — drop a file in the centre zone, or open a ready-made City / Landmark building

Three ways in — pick one:

  1. 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.
  2. Drop your own IFC. Drag an .ifc / .obj / .dae / .glb file 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.
  3. 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:

  1. Watch the progress bar and element flicker as geometry streams in.
  2. Click any element → the Info panel shows its IFC class, name, GUID, storey, discipline, material.
  3. Filter by storey or discipline (bottom-left panels) to isolate part of the model.
  4. Alt+Z for X-Ray, for white background, to fly around, 📷 for a screenshot.
  5. 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.