The section before this one measured the old schema against the draftsman’s own lettering and found 0 of 23 rooms within 5%, with no transform of the page able to rescue it. So both sheets were traced again, from the lettering out: every room placed at the size written inside it, walls built between them, and the two floors registered to each other on the shared outer wall.
The same check that failed the old file was re-run against the new one without changing a line of it. 23 of 23 lettered rooms land within 2%, median absolute error 0.0%. The implied scale, which used to run 0.49× to 2.53× across rooms, is now 1.00× to 1.00×. The sheet’s own dimension line reads 128.02 ft across and the retrace measures 128.02.


Split by sheet the picture holds: floor one lands 26 of 26 sides within 5% at a fitted factor of 0.9999, floor two 20 of 20 at 1.0001. A single number now describes the whole page on both sheets, which is what it looks like when there is nothing left for a transform to correct. Retracing cost $0.00.
The retrace is calibrated on one photograph: 12.404 px per foot with its datum read off the 128 ft dimension line on the first-floor sheet. Drawing those coordinates onto the second sheet used the same three numbers, and three numbers cannot express the perspective between two photographs taken from different distances at different angles. The second floor came out 79 px off.
Both sheets are photographs of the same drawing set, so the outer wall, the overall dimension line, the gazebo octagon, the angled garage wing and the title block are drawn identically on both, and the pair is related by a homography that can be measured. The daylight gradient and the hard diagonal shadow come out by dividing each image by a 41 px blur of itself, then SIFT on what is left, matches kept only where both directions agree, and a RANSAC fit at 3 px. 125 matches, 51 inliers, median reprojection 0.42 px.

What is left is where the rooms sit inside that outline. Measured against the wall runs the detector found, the first floor’s room sides are a median of 0.0 px from the wall they name, with 62% of its 113 sides exactly on one. The second floor’s 92 sides are at 15.2 px, about 1.2 ft, with 36% exactly on. The second sheet writes a dimension inside ten of its rooms and draws the roof over the others, so the others were placed by which quarter of the page their label sits in.
Searching for the position where a room’s sides lie along drawn walls was written three times and failed the same control each time. Run against the first floor, whose positions are verified on all 26 lettered sides, it moves 18 of 27 rooms more than a foot. The third version said why. Walls alone do not identify which wall-bounded cell a labeled room is: shift a 5 ft closet sideways by its own width and all four sides are still on walls, because the neighbor’s walls are walls too. Picking between those cells wants the printed label inside the room. The offsets are computed, recorded and unused; all three attempts are kept.
The retraced rooms are extruded into walls, the openings cut where the sheets draw them, and a hipped roof at the pitch the elevation letters is built over the whole footprint including the diagonal wing and the gazebo. Everything earlier in this project was a front: generated from one elevation, so the sides and the rear were invented by whichever model was asked last.
3,509 faces. 53 openings cut from the sheets rather than placed by rhythm. Roof pitch 4.5/12, read off the elevation. Footprint 131.4 × 98.3 ft, standing 29.4 ft to the ridge.
Built from the retrace, both floors, roof included.
13,205 segments, hidden line removed, drawn from the same camera.
The line map is drawn from face loops rather than from merged edges, because merging coplanar faces drops every window back into its wall. It is the constraint the next section spends money against.
The house is Victorian Southern, in Orlando, so the massing needed materials, light and a garden. The prompt that asks for those also has to stop the model redrawing the building while it works. Told in words to keep the camera and the geometry, three models out of three walked away from it.
First paid run: Seedream v5 Pro, Qwen Image 3 and FLUX 2 Pro, four views each, handed the shaded render and a paragraph of Victorian Southern description ending in keep the camera, the massing, the roof shape and the position of every opening exactly as they are. FLUX 2 Pro was the only one that came back with a building. All three threw the camera away on 3 of 3 aerials and returned a ground level shot of a compact cottage. The same sentence held on 2 of 2 elevations, which are already at ground level, so the instruction was only ever being obeyed where it cost nothing.
Three fixes followed, and every one of them is a number the renderer had already computed and was throwing away. The hidden line map instead of the shaded render, so the constraint arrives as a picture. The camera’s own azimuth and elevation, said back as prose: an aerial photograph from a drone, 30 degrees above the horizon, looking down on the house from the south east. Then the box the ink occupies in the frame, from 26% to 93% across the picture, because the west map leaves a third of the page as paper and the model kept enlarging the house to fill it.
Porch, balcony, gazebo and the wing roof all land on the map.
The frame that had to be told where the drawing sits.
The frame that registers almost line for line.
Lost at first. Held once the camera angle went in as a number.
Every black pixel in the line map is an edge computed from the plan. If the photograph is faithful, those pixels sit on edges in the photograph too. Painted red over the result, a wall that moved shows up floating in the middle of siding, and a roof that changed shape shows up crossing open sky.

The four shipped here come from three passes, because the third fix helps a frame the model wants to enlarge and hurts one it was already holding: adding the framing box fixed west and knocked the south east aerial back to ground level. West is the pass that carries the box, the south east aerial is the pass before it, and both aerials plus the south elevation are kept at the pass where they registered. The rejected frames are in the sealed payload alongside the ones that shipped.
22 images requested, 21 collected, $1.24 billed across four passes. One image was paid for and never downloaded: the runner’s shell died between submission and download, and a queued execution is billed at the queue. Sealed as victorian-styling-20260813-r1, 220 files, 225 MiB, every one hashed.
All six stages run from one command, so a plan and a
style are the whole input: bd-house-pipeline-r1.mjs takes the retrace to the massing, the massing
to the render and the line map, the model back onto both sheets as a check, the styling, and the registration
plates. Five of the six are free and local. --style=my-house.txt swaps the Victorian Southern
text for any other, and the camera paragraph is inserted into it either way, because the azimuth, the
elevation and the framing box are facts about the render rather than matters of taste.