Skip to content
Blog
VisionAugust 20, 2026 8 min read

Why plan 40 should be easier than plan 1

A human engineer reads the fortieth sheet of a project faster and better than the first. A machine reader should too. What we are building so that it does, and the trap we are building around.

A project delivers one model and then a stream of drawings: floor plans, structural sheets, services layouts, shop drawings, details, revision after revision. Every machine reader we know of reads each sheet as if it were the first one it had ever seen. A human does not. After a fortnight on a project, an engineer reads its fortieth sheet far faster and far more accurately than its first, and not because they got better at drawings. They got better at this building and at this office’s way of drawing it. That is the reader we are building: one whose accuracy on sheet forty is a function of the thirty-nine before it. This note says what has to sit between the model and the sheets for that to be true, and how we will know it is true rather than merely looking true.

Four mechanisms hide in “it gets better”

Pose. Once the transform from this sheet to this building is known, every element in the model has a pixel address on the sheet. Detection stops being “find every sanitary fixture on an A1” and becomes “there should be one at this position, is there?”. The search space collapses by three or four orders of magnitude.

Convention. An office draws a smoke detector the same way on every sheet of every project it issues. A layer name means the same thing on sheet 1 and sheet 400. Once one instance of a glyph has been grounded, every other instance on any sheet is grounded for free. This is the mechanism with a constant cost per new sheet, and it is almost entirely unexploited.

Instance. Knowing the building has 47 doors, that room 2.14 is a WC, that the riser on axis C/3 carries rainwater. The obvious mechanism, the one everyone thinks of first, and the dangerous one.

Amortisation. Every verified detection is a labelled training example in exactly the customer’s drawing style. Distil them into a small local detector, and the large model is called less as the project proceeds. Accuracy and cost improve together.

The thesis

The prior that compounds is not the building. It is the conventions and the pose. Instance knowledge is bounded by the building: a 300-room building holds 300 rooms’ worth of facts, and they are spent on the sheet that uses them. Convention knowledge is bounded by the vocabulary, which is small, a few dozen symbol classes, and it is reused on every sheet. A codebook learned in the first ten sheets pays on the remaining three hundred and ninety. So that is where we put the weight: the reader learns the office before it learns the building.

The product consequence is worth saying plainly: the unit of human review should be the symbol type, not the instance. Confirming once that this glyph is a floor drain resolves 1,400 detections. Confirming 1,400 floor drains resolves 1,400 detections.

The trap

A prior that raises recall destroys the ability to see what the prior got wrong. If the model tells the reader where the doors are, the reader will find those doors. It will not find the door the contractor added on site and drew on the installation plan. But that door is the product. Three of the five checks we sell are deviation checks, and all three are worthless if the reader has been taught to see what the model expects.

So the requirement is contradictory on its face. The prior must sharpen where a thing is and what it is called. It must not sharpen whether it is there at all. In probabilistic terms: the prior belongs in the proposal, never in the verdict on presence. “The sheet disagrees with the model” is not noise. It is the finding we are paid for.

A system built on instance knowledge alone will show a beautiful learning curve on any corpus where the model and the drawings agree, which is every synthetic corpus, because such sheets are rendered from the model. It will then fail on its first real project, silently, in the direction that costs the customer money. That is the system we refuse to build, and the reason the next section exists.

One formalisation

Reading a sheet against a prior is an assignment problem with a null on both sides. The sheet supplies observations: glyphs, closed outlines, text spans, hatched regions. The prior supplies expected components, each with a predicted position and appearance on this sheet. Matching them, with an explicit “nothing” column and row, yields three outcomes. A component matched to an observation is evidence. An observation matched to nothing is ink the model cannot explain: a new component, or a deviation. A component matched to nothing is an omission. Surprise is not something you hope leaks past a threshold. It is a cell in the output.

And the assignment is deterministic and auditable. The costs come from models; the decision does not. The model proposes, a solved matching decides, and a named person signs. That is the only shape that keeps the promise the rest of our product makes.

What we will hold ourselves to

Table 1 · Five numbers, or none
MetricDefinitionMust
Learning curveAccuracy per sheet against sheet index, over a fixed setrise
Planted-deviation recallShare of injected changes recovered as unmatched cellsnot fall
Unexplained inkShare of a sheet’s line length attributed to nothingfall
Cost curveModel tokens and human decisions per sheetfall
Calibration, splitReported separately where the prior agreed and where it disagreedflat in both halves
The second row is the anti-metric: it moves against the headline and is the reason this protocol is not the usual one. Two controls sit beside the curve: the same sheets in shuffled order, and a prior frozen after k sheets.

A system that is well calibrated overall and badly calibrated where the prior disagrees has learned to be confident exactly where it should not be, and the pooled number will hide it. The frozen prior matters for the same reason: the gap between frozen and accumulating is the only honest measure of what accumulation buys, as opposed to what having any prior at all buys. We publish these five numbers or none.

What the fortieth sheet looks like

Picture the reader after a month on a project. A new sheet arrives. Within seconds it is placed on the building, because the reader knows this office’s title block, its grid and its scale bar. Every symbol on the sheet is one it has already been told about once, so every instance is named without asking. Where the sheet agrees with the model, the reader says so and attaches the crop as evidence. Where it does not, it says that just as loudly: a door the model does not have, a riser that moved, a duct that now crosses a beam. The engineer reviews symbol types, not instances, and confirms in minutes what would have taken a day to check by hand. And every sheet costs less than the one before, because the reader calls the large model less as the project’s own vocabulary fills in.

None of this replaces the plan of record. The drawing set stays the binding document, the engineer stays the one who signs, and the model stays a proposer. What changes is that the fortieth sheet is read with everything the first thirty-nine taught, and that a disagreement between sheet and model is a finding on a screen rather than a surprise on site. That is the whole ambition, and it is why we started with the pieces that gate it: placing a sheet on a model, and telling what changed between two issues.

Written up from the team discussion of 19 August 2026. Published comparison points for single-sheet reading: AECV-Bench (arXiv:2601.04819) and the symbol-spotting literature (FloorPlanCAD and successors). Nobody has published a method for registering drawing sheets to a building model; the standards body confirms the gap. We take that as the opportunity it is.