Wall detection accuracy you can reproduce
Most takeoff tools state a detection accuracy number you have no way to check. TRACEBUILD publishes the corpus, the scoring code, and the exact command. Run the benchmark yourself and you get the same result, down to the failures.
Trace Walls runs in the browser, free while TRACEBUILD Lite is in early access.
Measured against TRACEBUILD v3.123 on 46 labeled walls across 6 fixtures. Numbers are deterministic and regenerated on every build.
What this measures, and what it does not
It is a reproducible floor. The fixtures are labeled synthetic plans spanning the styles that break detection (double-line commercial, single-line schematic, and solid-filled residential). They are real geometry the engine must get right on every build, or the regression gate fails.
It is not a claim that the tool finds every wall on an arbitrary scanned drawing. Real scans add skew, broken linework, and text-only sheets this corpus does not yet model. Growing it into a field-drawing benchmark, with sheets extracted from public-domain sets, is the next step.
We surface failures. The concave L-shaped shell below scores 75% on wall-type because its two re-entrant exterior walls sit mid-drawing, where a bounding-box exterior test reads them as interior. That result is printed in the report, not removed.
Results by fixture
| Fixture | Plan style | Walls | Recall | Precision | Type accuracy | LF error |
|---|---|---|---|---|---|---|
| Rectangular shell | Double-line vector | 4 | 100% | 100% | 100% | 0.0% |
| Clinic wing | Double-line vector | 15 | 100% | 100% | 100% | 0.0% |
| Bearing vs partitions | Double-line vector | 7 | 100% | 100% | 100% | 0.0% |
| L-shaped office | Concave shell | 8 | 100% | 100% | 75% | 0.0% |
| Single-line schematic | Solo vector pass | 6 | 100% | 100% | 100% | 0.0% |
| Residential filled walls | Raster band pass | 6 | 100% | 100% | 100% | 1.3% |
Recall counts a true wall as found when detected segments cover at least 60% of its length. Precision counts a detected wall as valid when it lies on a real wall, so a wall split by a doorway is not punished as two false positives.
How we measure
- Describe the building by its walls. Each fixture is a set of centerline walls, each with a real thickness and a true type from the architect's intent, which is the ground truth.
- Synthesize what the engine sees. Each wall becomes the two face lines a CAD set draws, or a solid filled band for a poche plan, plus non-wall noise (dimension strings, furniture strokes) that must be rejected.
- Run the real pipeline. The exact detection the app runs, at the app's default settings, with no per-fixture tuning: trace the wall graph, then classify each wall.
- Score against truth. Recall, precision, linear-feet error, and wall-type accuracy, computed by scoring code that ships in the repository.
Where it falls short today
Concave shells
The exterior test keys on the drawing's bounding box, so re-entrant exterior walls of an L or U building read as interior. Tracing the true outline is the fix, and until it ships the number reflects reality.
Diagonal filled walls
The raster band pass reads axis-aligned filled walls. Angled poche walls fall to the vector pass or a later refinement, so the raster fixture is axis-aligned.
Raster quantization
Reading a wall from a raster rounds its band to whole pixels, which leaves about a 1% linear-feet error on filled plans. It is inherent to raster and is reported, not zeroed out.
Reproduce it yourself
The corpus lives in benchmark/fixtures.mjs, the scoring in benchmark/lib.mjs, and the runner writes a human report and a machine report. The same corpus and scoring back a regression gate in the test suite, so the published number and the guard can never drift apart.
# run the benchmark, write benchmark/results.md and results.json node scripts/detect-benchmark.mjs # run it and assert the regression floors (recall, precision, LF error) node scripts/detect-benchmark.mjs --check
Every number regenerates deterministically, so re-running only changes the report when detection behavior actually changes.
Why publish this at all
A detection accuracy number is easy to claim and hard to prove. When a tool states one as an internal read, you are asked to take it on faith. We would rather hand you the method and let you check the work, including the parts that are not perfect yet. That is what a number is worth when your bid depends on it.
New to the feature? See how takeoff works in the browser, or read how to do a construction takeoff.
Common questions
Is the detection accuracy number reproducible?
Yes. The corpus, the scoring code, and the exact command are all in the repository. Running the benchmark produces the same numbers every time, so any result on this page can be audited.
Are these numbers from real drawings or synthetic tests?
They are from labeled synthetic plan fixtures that span the plan styles which break detection. They set a reproducible floor the engine must clear on every build. They are not a claim about arbitrary scanned drawings, and the page says so plainly.
Do you hide the cases where detection fails?
No. The concave L-shaped shell scores 75% on wall-type because a bounding-box exterior test cannot see its re-entrant walls, and that result is printed in the benchmark report rather than removed.
Does Trace Walls also give me wall area, not just length?
Yes. A traced wall reports linear feet immediately, and with a wall height it reports wall area as length times height, which most one-click wall tracers do not.