Each visual cube is 1.0 m × 1.0 m × 1.0 m. The FDS mesh cell is set separately (top bar, default 0.25 m) — so one cube becomes a 1 m OBST sitting inside a finer 0.25 m grid. Change the cell to 0.5 m or 0.1 m as your simulation budget allows.
| Block | What you get in the .fds |
|---|
Each burner cube is an &OBST with SURF_ID='BURNER' applied to all 6 faces. The SURF carries HRRPUA=500 kW/m² with a TAU_Q=-30 s t² ramp.
Fire only emits from exposed faces. A face touching another OBST is "blocked" — FDS silently skips it (no error). So a burner against a wall fires from 5 faces (~2.5 MW peak); a burner fully buried in other blocks emits 0 kW. This is standard FDS behaviour, not a bug.
If you want a fire source on just one face, place a thin BURNER block on top of a CONCRETE block — the burner's bottom face will be blocked, the top will burn (~500 kW).
A HOLE only lands on top of an existing block (any OBST except a BURNER) and carves it out — pick HOLE, right-click a CONCRETE block, and that cell becomes a doorway. The under-block stays in the FDS export so the &HOLE has something to cut through; left-click the HOLE to restore the original block. Trying to place a HOLE in empty space (or on a burner) is rejected — this mirrors FDS, where &HOLE only does anything when it overlaps an &OBST.
The mesh auto-sizes to your built area + 1-block XY padding + 2-block Z headroom. All five non-floor faces get &VENT MB='OPEN' so smoke can leave.
Adjacent same-material blocks along X are merged into a single OBST. A 10-block wall → 1 line in the .fds.
1. Move the downloaded .fds into simulations/<name>/
2. Lint: python scripts\validate_fds.py <file>.fds
3. Preview: scripts\serve_viewer.bat + the viewer URL
4. Run: scripts\run_fds.bat
Prof Rino Lovreglio · Massey University
Fire engineering · performance-based design · FDS workflows
Luke De Schot · University of Canterbury
FDS Craft exports valid FDS syntax. That is the only
promise. Any resemblance to real fire dynamics is a happy accident
— please get a qualified fire engineer to check the
.fds before showing it to a building consent officer
(or to anyone whose insurance you care about).
No responsibility is taken for your kids becoming a fire engineer — or, even worse, a fire scientist.
| Library | Use |
|---|---|
| Three.js r128 | 3D rendering — vendor/three.min.js (MIT) |
| VT323 | Pixel body font — Peter Hull (OFL) |
| Press Start 2P | Pixel heading font — CodeMan38 (OFL) |
| Web Audio API | All sounds synthesized live — no samples used |
Logo: created by ChatGPT Image 2
Block / fire / smoke textures: generated procedurally at runtime (pure JS canvas)
FDS colour conventions: match the Smokeview & FDS6 colour keywords
Built iteratively with Claude Code (Anthropic).