Vibecrafting · A Field Note

The 25% That Fails

Most AI design tools green-check everything they draw. This one fails three of every four designs — on purpose. The failing number is the product.

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

Every AI design tool ships the same tiny lie: a green checkmark. You describe a table, it draws a table, and it stamps the picture approved — the same stamp, at the same brightness, whether the top will hold a Thanksgiving spread or split itself down the grain by February. The checkmark isn't a verdict. It's a decoration. It means the model finished drawing, not that the thing will stand.

We built the opposite instinct. Vibecrafting marks roughly three out of four designs it generates as invalid — it refuses to bless what it can't defend — and passes only the quarter that survive. That failure rate isn't a bug we're hiding behind a nicer number. It's the whole point. This is a field note about why a machine that says no most of the time is the honest one.

A green checkmark means it finished drawing. A red mark means it actually checked.

Fig. 01 — The green-check lie

Everyone approves everything

The move · notice what the checkmark isn't

Point a generic image model at "walnut coffee table, live-edge top" and you get a gorgeous render in seconds — and a quiet, automatic approved. Ask it whether the apron will hold, whether the top can move with the seasons, whether your tools can even cut the joint it drew, and there's nothing behind the stamp. It never asked. A picture-drawer approves a shelf that will sag with exactly the same confidence it approves one that holds, because it was never scoring the physics — only the pixels.

Forensic, over the shoulder

"A checkmark with no failing case behind it is just enthusiasm. Show me the check it could have failed and didn't. Otherwise you've drawn a picture of a passing grade."

Fig. 02 — The number, out loud

Sixty-eight designs. Seventeen passed.

The move · report the failure rate as a virtue

Here's the tally we're proudest of, and it's the ugliest-looking one. Across the designs the validator has scored, about a quarter clear the bar:

CohortVerdictShare
Designs generated & scored68 total100%
Passed — defensible, shippable17 valid25%
Failed — the validator said no51 invalid75%

A tool optimizing for a happy demo would bury that 75% or quietly relax the checks until the number turned green. We print it on the wall. A validator that never fails a design isn't lenient — it's off. The failing three-quarters is the receipt that the checks are real and switched on.

Actuary, over the shoulder

"A pass rate near 100% doesn't tell me the designs are good. It tells me nobody's checking. Give me the tool that fails most of its own work — that one I can price."

Fig. 03 — Anatomy of a failure

Why one design got the red mark

The move · walk a real invalid, check by check

Take one from the invalid pile: a six-foot dining table with a solid-wood top glued hard into a rigid frame on all four sides. It renders beautifully. Then the kernel runs the program, and two validators fire:

# the design, as something a kernel can run and score table = Table( top = SolidPanel(species=Oak(), width=40, length=72), attachment = GluedRigid(sides=4), # ← top pinned on all four edges joinery = Mortise(cut=Hollow_Chisel()), # tool the maker doesn't own ) validate(table) >> INVALID — 2 blocking failures >> [wood_movement] 40"-wide oak swings ~3/8" seasonally; >> rigid on 4 sides has nowhere to go → panel splits >> [buildability] mortise spec needs a tool not in the maker's kit

The validator didn't average these into a cheerful 70% and wave it through. Two blocking failures means invalid, full stop. A wide solid top pinned rigidly on all four edges has nowhere to expand — the wood wins, every time, and the top cracks. And a joint you can't cut isn't a joint; it's a wish. Neither is a matter of taste. Both are checks the design could have passed and didn't.

Master, over the shoulder

"Beautiful render, unbuildable joint. I've thrown away a Saturday chasing a drawing that assumed a tool I didn't own. A no here is a Saturday I keep."

Fig. 04 — Invalid ≠ broken

A red mark is a promise kept

The move · reframe the failure as honesty

The instinct is to read invalid as the tool broke. It's the reverse. The validator made a promise — I will not bless a design I can't defend — and a red mark is that promise being kept in public. The failure isn't the machine falling down. It's the machine standing up and refusing to sign its name to something it knows won't hold.

RepresentativeThese figures — 68 designs, 17 valid, 51 invalid — are a faithful snapshot of the method, not a fixed spec sheet; the ratio moves as templates land and as people generate more. Likewise the split above is a real trace of the check, not a claim about oak to the last 1/16″. The direction is certain — a wide solid top pinned on four sides splits — even where the exact millimeter of seasonal movement isn't. The point isn't the precise number. It's that a red mark means the machine found a seam and told you, instead of painting over it.
Fig. 05 — The invalid pile is a signal

What fails today ranks what we build next

The move · mine the rejects for demand

Here's the part that turns a rejection into a roadmap. Every invalid design leaves a trace of why it failed — which shape people kept asking for that no correct-by-construction template could yet answer. We count those unmet shapes. That count is the ratchet:

# the demand signal, mined straight from the reject pile rank_backlog(from="invalid_designs") >> distinct_oov_roles = 59 # unmet shapes people keep asking for >> #1 splayed-leg frame — most-requested unmet shape >> #2 A-frame trestle — second by demand >> ... # build the #1 template → it moves from "invalid" to correct-by-construction # distinct_oov_roles ratchets DOWN. that fall is the progress bar.

The failing pile isn't waste — it's the most honest market research a workshop ever had. It doesn't tell us what people said they wanted; it tells us what they actually reached for and couldn't get. The buildability benchmark reads that pile and demand-ranks the queue — splayed-leg frame first, A-frame trestle second — so the next correct-by-construction template we build is the one the most people were already failing to make. When it lands, distinct_oov_roles ticks down. That number falling is the roadmap making good.

Actuary, over the shoulder

"Fifty-nine unmet shapes, ranked by how often real people hit them. That's not a backlog of guesses — it's a queue sorted by demand. Build the top of it and the number drops. Clean feedback loop."

Zoom out

Every red mark is a promise kept

What you seeWhat it actually means
A green checkmarkElsewhere: "I finished drawing." Here: "I ran the checks and it survived them."
75% marked invalidNot leniency switched off — rigor switched on. A validator that never fails isn't checking.
One design, redNot a broken tool — a promise kept. It won't sign what it can't defend.
The reject pileNot waste — the truest demand signal, ranking which template earns the next slot.
A falling counterdistinct_oov_roles ticking down = the roadmap turning yesterday's failures into buildable answers.

Only a machine willing to fail its own work can be trusted when it passes. The 25% that clears the bar is worth something because of the 75% that didn't. Strip out the failures and the pass means nothing — it's a checkmark again, back to decorating pixels. Keep the failures honest, and a green mark becomes a thing you can build on.

Get the quarter that survives — and see what the rest taught us

Describe what you want to make. Get a validated blueprint — cut list, shopping list, 3D preview — or an honest red mark that tells you exactly why not, and what we're building next because of it.

→ vibecrafting.ai