Vibecrafting · A Field Note

The Two Brains

A design can pass every check and still be impossible to build. That paradox has a cause — and it lives in the seam between the two brains of the machine.

Field Note · Vol. I · No. 03 · Filed from the workshop

It passed every check, and it still couldn't be built. That's the sentence that started this whole rebuild. A table came back from validation clean — geometry watertight, joints mating, deflection inside the line, a confident green run down the whole report. Then someone tried to cut it, and the very first stock size didn't exist. The design was sure of itself about a board it had invented.

How does a machine approve something impossible? Not by being sloppy. By being two machines — a brain that draws the design and a brain that checks it — each carrying its own private copy of physical truth, and those two copies quietly drifting apart until they no longer described the same world.

Two maps of the same country that disagree at the border.

Fig. 01 — The two brains

A generator and a validator, each half-blind

The move · name the split

For a long time the tool has had two brains and never admitted it. The generator is the one that draws: given "a walnut console, three feet wide," it commits to boards, joints, and stock sizes. The validator is the one that checks: it takes that committed design and runs it against the physics — does it deflect, does it move, do the joints mate.

The problem was never that they disagreed on purpose. It's that each held its own partial, hand-maintained copy of what's physically real. The generator "knew" a joint the validator had never learned to check. The validator "knew" a stock table the generator had never read. Two experts, two notebooks, and nobody reconciling the notebooks.

Forensic, over the shoulder

"The design didn't fail a check. It passed a check the checker didn't know to run. That's the most dangerous kind of green there is — the kind with a blind spot behind it."

Fig. 02 — The drift, in code

Passes green in the app, fails in the garage

The move · watch the maps diverge

Here's the drift made literal. The generator reaches for a dressed cross-section out of its notebook. The validator, checking solidity, reaches into its own — a different notebook that never learned this profile:

# GENERATOR brain — draws from its private table part = Rail( stock = "1x3 walnut", # nominal name it made up actual = (0.75, 2.5), # its guess at the dressed size solid = True # asserts it, never proves it ) # VALIDATOR brain — checks from a DIFFERENT table def check_solid(part): return part.stock in KNOWN_SOLIDS # "1x3 walnut" isn't in here # → returns True on a fallback default. Green. result: PASS # both brains happy — about two different boards

Everything runs. The report is green. But the generator's (0.75, 2.5) and the validator's fallback never met — and out in the shop, the actual dressed board is 2⅝ inches, the joint shoulders don't land, and the honest picture was a lie the machine told itself first.

Fig. 03 — Collapsing the gap

One source of truth, called by both

The move · delete the second notebook

The whole architecture arc is one idea: the generator may only make a physical claim by asking the same function the validator checks against. No private tables. When it needs a cross-section, it calls get_dressed_cross_section. When it wants to call something solid wood, it calls _is_solid_wood — the exact predicate the validator will use. There is no longer a border for the two maps to disagree at, because there is only one map.

# ONE source of truth — imported by both brains from physical_truth import get_dressed_cross_section, _is_solid_wood # GENERATOR can only claim what the shared table returns w, t = get_dressed_cross_section("1x3", Walnut()) # → (0.75, 2.5) OR raise part = Rail(actual=(w, t), solid=_is_solid_wood(Walnut())) # VALIDATOR checks with the SAME two functions assert get_dressed_cross_section(part.stock, part.mat) == part.actual assert _is_solid_wood(part.mat) == part.solid now they cannot disagree about materials — by construction

If the stock size doesn't exist, the shared function raises — the generator can't invent a board, because the only way to name one is to ask the table that also grades it. The two brains stopped keeping separate books. They read from the same shelf now.

The wood, over the shoulder

"Finally you're both asking me the same question. When one of you guessed my thickness and the other looked it up, the guesser always lost — and it was never the guesser who got cut."

Fig. 04 — Correct by construction

Stop drawing geometry. Route to a template.

The move · take the pencil away from the LLM

Sharing the material table closes one border. The deeper fix closes the geometry itself. The failure mode underneath everything is a language model drawing arbitrary geometry — free to place a joint in mid-air or leave a shoulder unsupported, then hand that to a validator to catch after the fact. So we take the pencil away.

Instead of drawing, the model picks a template and fills in parameters. "Splayed-leg frame, seat 18 inches, splay 6 degrees." A hand-written builder owns the geometry from there — and that builder cannot emit a broken assembly, the same way a well-typed function can't return the wrong shape. The generator and the validator finally agree because the generator is no longer free to disagree.

FrontWhat it closesRatchet
Shared material truthTwo brains, one tableclosing
Correct-by-construction templatesNo arbitrary geometry to breakbuilding
Assembly closureEvery joint supported by designunderway

Which template do we build next isn't a hunch. A buildability benchmark demand-ranks the queue against what people actually ask to make — splayed-leg frame is #1, A-frame is #2 — so the geometry we harden is the geometry people need first. And the whole effort has a single number nailed to the wall: distinct_oov_roles — the count of part-roles still drawn freehand, out-of-vocabulary, off the templates. It's 59, and falling. Every template lands, the number drops, and more of the catalog becomes un-break-able instead of merely checked.

Fig. 05 — The honest ceiling

Most of the library is still legacy freeform

The move · flag it, don't launder it

Here's the part a marketing page usually hides. Collapsing the gap fixes what's generated from now on. It does not retroactively repair everything already stored. Most of the library — roughly three-quarters — is legacy freeform geometry drawn before the templates existed. So we tell the truth about it rather than quietly re-stamping it "valid."

RepresentativeThe snippets above illustrate the architecture, not literal source — real names shown (get_dressed_cross_section, _is_solid_wood) are the shared functions; the surrounding code is a faithful sketch of the shape, not a paste from the repo. The honest state of the shelf: about 25% of the stored library validates today, because ~75% is pre-template freeform. That rate isn't laundered upward by fiat — it climbs as new generation routes through templates and the freeform tail gets re-derived or retired. The number is allowed to be low because it's allowed to be true.
Aerospace, over the shoulder

"Twenty-five percent valid, stated plainly, beats one hundred percent 'passing' with a checker that doesn't know what it's missing. A known ceiling you can climb. An unknown one you fall through."

Three, over the shoulder

One seam, three angles

The gap between the two brains is one flaw. Three voices watch it from three sides — each asking the same question, can the drawing and the check ever disagree?

The Woodmovement"Ask me my real thickness once, from one table, and I stop surprising you at the joint. The surprises always lived in the gap between your two answers."
Forensicfailure"A design that passes the wrong checker is a crash with a green light on it. Close the gap and the green finally means what it says."
Aerospaceassurance"Correct-by-construction is the whole game. Don't catch the broken assembly downstream — make it impossible to draw upstream. That's assurance, not inspection."
Zoom out

Every front is the same move

FrontThe one move underneath
The splitAdmit there are two brains, and that they drifted.
The driftA private table on each side is a lie waiting to pass green.
The gapOne source of truth, called by both — no border to disagree at.
TemplatesTake the pencil away; a builder that can't draw a broken joint.
The ceilingFlag the legacy honestly; let the valid-rate climb, don't fake it.

It's all one idea wearing different clothes: the drawing and the check must be unable to disagree. Share the truth they read from, and take away the freedom to draw something impossible, and "does it pass" stops being a vote between two half-blind experts and becomes a property of the design itself. Two brains, finally, agreeing about the same world.

Design something, and watch the two brains agree

Describe what you want to make. Get a validated blueprint — cut list, shopping list, 3D preview — from a machine whose drawing and whose checking read from the same source of truth, and that tells you where it's still climbing.

→ vibecrafting.ai