How it works
How the blueprint → BOM tool works.
A walkthrough of the pipeline, the rule engine, and the design calls behind it. Read it and tell us where the approach is right — or where you'd do it differently.
- Guided take-off accelerator
- LLM extracts, code decides
- Human-signed
- Materials BOM → draft quote
The pipeline
Vision LLM reads the drawing. Deterministic code applies the rules.
Each tool does what it is uniquely good at. The LLM handles the visual reading that would take months to hand-code; our TypeScript handles the counting and rule logic, where "10 m is 10 m" and there is no room to guess.
-
01
Upload
A blueprint — clean PDF or a scan.
-
02
Extract
Vision LLM returns structured JSON — rooms, areas, height, storeys, ceiling, hazardous zones, scale.
-
03
Review + judge
A human corrects the extraction and adds what the drawing can't give.
-
04
Compute
The rule engine produces the materials BOM and a draft quote.
Why split it this way
If the regulations change, we edit TypeScript rules — no retraining. If the LLM mis-reads a drawing, the human review step catches it before any calculation runs. The maths is never left to a model.
The contract between them
The handoff is a single typed JSON object. That keeps the model swappable, the engine unit-testable, and every number traceable back to the rule and the input that produced it.
The rule engine
Two layers: which systems are required, then how much of each.
This is the part no off-the-shelf tool has. ~170 rules, each tagged with its source clause, a confidence level, and the regulation edition it belongs to.
UBBL decides what's mandatory
The UBBL Tenth Schedule + Part VII/VIII map occupancy + floor area / volume + building height to the systems that are legally required — hose reel, hydrant, sprinkler, risers, detection, alarm, emergency lighting.
MS / BS-EN / NFPA size them
Once a system is required, the design standards set the numbers — sprinkler density and head spacing, hose-reel coverage, detector spacing, pump flow and tank capacity. The engine needs both layers to produce a BOM.
There is no single rulebook — so the engine is edition-aware
UBBL is adopted state-by-state, and the 2021 amendment rounded heights and renumbered clauses. So every rule carries an edition and the engine selects by (state, UBBL edition) — defaulting to the stricter figure when the edition is unknown, and flagging it. The ruleset is versioned and needs ongoing SME upkeep as regulations change; it is a maintained asset, not a finished file.
Inputs
What the drawing gives — and what a human must add.
The blueprint is necessary but not sufficient. Some rule inputs are judgement calls that aren't on any drawing, so the review step collects them as structured fields before a single number is produced.
From the blueprint (LLM)
- Rooms / zones and their floor areas
- Building height + datum, and storey count
- Compartment volume (m³, not just area)
- Ceiling height (above ~9 m the detector type changes)
- Hazardous-area tags + drawing scale
From the human (mandatory)
- Hazard sub-class — OH1–4 / HHP / HHS
- Storage commodity + rack height
- Occupant headcount (no UBBL load factor for factory/storage)
- Project state + UBBL edition
- Sprinklered — yes / no
Why one judgement call matters this much
Same blueprint. Classify it OH2 vs High-Hazard Storage and the sprinkler design area swings
72 → 360 m²
A 5× change in pump and tank sizing. The tool surfaces this as a required decision rather than quietly guessing — which is exactly why a person stays in the loop.
The output
A real fire-protection BOM is mostly not countable devices.
Counting heads is the easy layer. Most of the cost lives in distribution, plant, civil works and installation labour — which the drawing doesn't show. The tool is explicit about which layer it can automate and which a person fills in.
-
Auto-countable
1 · End devices
Extinguishers, hose reels, sprinkler heads, detectors, call points, KELUAR signs — derived directly from geometry + rules.
-
Parametric estimate
2 · Distribution
Pipe / cable / containment, valves, control sets — estimated from routes and sizing with error bands, not counted.
-
Rule-derived
3 · Plant
Pumps (duty / standby / jockey), tanks (e.g. 45,500 / 135,000 / 180,000 L), genset, panels — project-specific, rough figures with wide bands.
-
Manual line items
4 · Civils + installation labour
Pump room, tank foundation / bunding, breeching inlets, brackets, plus install labour, commissioning, wastage and Bomba fees — entered by a human.
From quantities to a quote
Two numbers: the compliant floor, and what we'd actually bid.
The rules give a minimum, and Bomba can ask for more — so for a contractor an under-count is the dangerous direction (win the job, eat the loss). The tool separates the two on purpose.
Minimum compliant baseline
The legal floor — what the rules strictly require. Useful for a compliance check, never the committed price.
Recommended bid quantity
Baseline × (waste + scope-uncertainty + a visible, configurable AHJ-over-provision buffer). This is what feeds the draft quote.
Special-hazard systems (clean agent, foam, CO₂, water-spray, wet-chemical) and dangerous-goods provisions are left out unless an engineer adds them, and anything low-confidence carries a provisional sum rather than a false-precise figure. The result lands in the backoffice as a draft quote; every estimate is human-signed and watermarked as a budgetary aid — never a design or a Bomba submission.
Where it's hard
The parts we're designing carefully.
None of these are blockers, but they're where the approach lives or dies — and where your read matters most.
Reading real, messy drawings
Scans, rotations, mixed BM/English labels and non-standard symbols are the real test. We prove this on actual KS drawings before relying on it.
Silent scale / hazard errors
A wrong scale or hazard class yields a plausible BOM that's off by a constant multiple. We cross-check scale against a known reference and make the hazard call a required human input.
A moving regulatory baseline
Edition- and state-dependent, with the 2021 amendment still to confirm against the Gazette. Handled by edition-tagging every rule plus ongoing SME upkeep.
Client drawings leave the building
Sending blueprints to a third-party LLM is new for us. We'd use enterprise zero-retention terms and check client NDA / PDPA constraints before any real file is processed.
How we'll build it
Prove it on real past jobs first, then scale.
We validate the riskiest assumption — that the extraction and BOM are accurate enough — against jobs where we already know the answer, before building the full product around it.
Accuracy spike + back-test
- Run extraction on 10–20 real KS blueprints across the quality range
- Back-test the BOM on 5–10 past jobs with known outcomes
- Measure two things: extraction accuracy and BOM accuracy (with direction)
- Confirm the 2021 amendment vs the Federal Gazette; buy controlled MS copies
Phase 1
Reliability
Settled industrial rules, review UI, scale-handling, per-estimate provenance.
Phase 2
Productize
Priced catalog + labour + markup, BOM documents, draft-quote into backoffice.
Phase 3
Self-learning
Reviewer corrections feed retrieval-based few-shot; error-pattern tracking. Later, measured.
Open questions
Where we'd like your take.
These are the calls that shape the first build. Push back on any of them.
- Segment fit: is industrial the right first target, given the real order-book mix?
- Greenfield vs retrofit: which dominates the jobs? Retrofit means netting out existing equipment, not counting from scratch.
- Quoting policy: is the "baseline + visible contingency / AHJ buffer" split the right behaviour?
- Data handling: any client NDA / PDPA limits on sending drawings to an LLM?
- Past jobs: can we get 5–10 blueprint + final-BOM pairs to back-test against?