IFCtoFDS turns an IFC building model — the format every modern BIM tool exports — into a ready-to-run Fire Dynamics Simulator (FDS) input file, so fire-safety engineers can move from architectural geometry to a simulation mesh without rebuilding the model by hand.
The whole workbench runs entirely in your web browser. There is no installation, no backend, no Python environment, and no build step.
Project Lead: Prof Rino Lovreglio, PhD — Massey University
Disclaimer: No responsibility is taken for the use or output of this tool. All results must be independently verified by a qualified fire safety engineer before use in any design or regulatory context.
Pure client-side — no installation, no build step, no backend. The entire
workbench runs from a single index.html and a folder of static .js modules.
- Native IFC parser. Handles
IfcExtrudedAreaSolid,IfcFacetedBrep,IfcTriangulatedFaceSet,IfcFaceBasedSurfaceModel, planarIfcBooleanClippingResultcuts, andIfcRelVoidsElementopenings. Non-convex outlines (L / U / T floor plates) are re-triangulated with earcut. - Two opening strategies. HOLE emits one continuous
&OBSTper axis-aligned wall/slab plus rectangular&HOLEcutouts — cleaner FDS file, exact opening rectangles. Voxelization stair-steps small&OBSTs around each opening; use it for arched or curved openings that&HOLEcannot represent. - Optional closed window/door fills in window-blue and door-brown
SURFs. With the HOLE strategy, closures are deferred to the end of the namelist so wall&HOLEs cannot carve the glass. - Auto-extruded flat slabs. Floors whose IFC representation the parser couldn't extrude (some Revit-exported slabs and tapered insulation roofs) are auto-inflated to a default thickness so their L / U outline is preserved rather than collapsing to a zero-volume polygon.
- Three view modes (Overlay / FDS / IFC) with independent opacity sliders, per-layer toggles (OBST / HOLE / VENT / GEOM / IFC structure / fills / other), and a six-slider clip box that hides FDS primitives outside the kept volume.
- First-person walk mode. Click any floor or stair surface to place
yourself, then WASD + mouselook to walk through the building. Door closures
and
&HOLEvolumes are passable so you can step through doorways. - Keyboard navigation. Number keys
1–6and0snap to canonical views. Arrow keys orbit; Shift+arrows dolly or strafe. - Background conversion runs in a Web Worker so the interface stays responsive while a 5 000-product IFC is being processed. A live progress banner shows the current element.
- Saved provenance. Every emitted
&OBST/&GEOM/&HOLEcarries an! IFC_SOURCEcomment with IFC type, GlobalId, STEP id, and source name so the link to the source model survives a save-and-reload round trip.
👉 Run it now in your browser — profrino.github.io/IFCtoFDS
No installation, no local server, no account. Just click Open IFC and load an
.ifcmodel. The hosted page and a local clone are byte-identical — both are fully offline-capable once the page has loaded.
For a versioned snapshot, download the latest release ZIP / tarball from the
Releases page, unzip
it, and double-click index.html.
Open https://profrino.github.io/IFCtoFDS/ in any modern browser. Click
Open IFC, pick an .ifc file (or drag-drop one onto the page), choose an
Opening approach in the right-hand panel, then click Convert to FDS.
Use the save icon to download the generated .fds.
Grab the latest source as a single zip:
- Latest tagged release: v0.1.0 source ZIP
- Bleeding-edge
main: main branch source ZIP
Unzip anywhere, then double-click index.html. The workbench runs straight
from file:// — no local server needed. Use the Open IFC button to load a
model.
Serving the folder over loopback enables the parallel worker path and is the recommended way to run on big IFCs:
python -m http.server 8765Then open http://127.0.0.1:8765/index.html.
The conversion pipeline also runs under Node — handy for batch jobs or CI:
node scripts/test-ifc-conversion.jsThe examples/ folder ships with three open BIM models so the workbench can be
exercised end-to-end without any external download. See
examples/SOURCES.md for original URLs and attribution.
| File | Source | License |
|---|---|---|
AC20-FZK-Haus.ifc |
Karlsruhe Institute of Technology (KIT), distributed by STEP Tools | Freely available IFC test model |
AC20-Institute-Var-2.ifc |
Karlsruhe Institute of Technology (KIT), distributed by STEP Tools | Freely available IFC test model |
IfcOpenShell-Duplex.ifc |
IfcOpenShell voxelization toolkit | LGPL-3.0 |
index.html Entry page, wires the workbench together
guide.html Single-column docs page (linked from the ? icon)
css/ app.css + guide.css
js/
core/ namespace + diagnostics
ifc/ IFC parser + meta builder + display loader
fds/ Namelist parser, geometry adapter, FDS exporter
workers/ Background conversion worker + inline bundle
viewer/ Three.js scene viewer
vendor/ earcut.min.js
compare/ Conversion sanity checks
app-controller.js UI wiring, conversion orchestration
examples/ Three open IFC test models
scripts/ Node test harness + bundle generators
demo/ Demo video + sibling reference viewer
CDN-loaded at runtime, no build pipeline:
- three.js r128 — WebGL renderer,
OrbitControls,PointerLockControls - Mapbox earcut — non-convex polygon
triangulation (vendored at
js/vendor/earcut.min.js, ISC licence atjs/vendor/EARCUT-LICENSE.txt) - Lucide icons
GNU Affero General Public License v3.0 — see LICENSE.
In plain terms: you can use, study, and modify this software freely. If you integrate it into another product or run it as a network-accessible service, you must release your entire derivative or service codebase under the same AGPL-3.0 licence. This is a deliberate choice to keep the tool open for the research community while preventing closed commercial integration. Commercial use is not forbidden, but it can only happen under AGPL terms.
If you reference this work, please cite:
Lovreglio, R. IFCtoFDS. Massey University. https://github.com/ProfRino/IFCtoFDS
