a lab working on efficiency in printed-circuit-board design
a sentence in. a board you can order out.
an anneal, drawn: courtyards, the cut line, the band inside it
mission
The expensive thing in electronics is not the copper; it is the distance between a decision about a board and the verdict on it. Today that distance is a fab run. We are closing it to a router's ten seconds, and then to a judge that answers while the part is still being dragged.
Most tools that turn a description into a board optimize for looking finished. Few are checked against the one thing that actually decides whether a board is real: whether the router — the program that has to close every net into copper — agrees. We build backwards from that verdict, and we've learned not to trust our own flattering numbers until an audit has tried to break them.
what exists
soldermask is the pipeline the research runs on. A sentence becomes parts and a netlist; every part is resolved against live JLCPCB stock; the netlist is checked; the board is placed — on both sides, where the front runs out of room — routed by freerouting and again by a second router if that leaves a net short of a pin, checked by KiCad's own DRC, written out as Gerbers and assembly files, and priced. Every route it has ever run is kept — the board as the router met it, and what the router said — which is now a corpus of 39,741 verdicts on 12,213 boards, drawn from a bank of 13,990 real board files: 12,239 from KiCad projects on GitHub, 908 from open-schematics, and PCBench's 843 held aside as an external test nobody here chose. Since 5 September that test is held out by content and not by path: freerouting vendors a copy of PCBench inside its own fixtures, and 866 byte-identical copies of held-out boards had walked into the training directory under ordinary names. The bank itself has now been placed and routed end to end — 42,334 placements of 10,895 boards under both routers and one DRC — which is where most of the numbers below are measured. Every one of them is measured on boards the model in question never saw.
- 01a sentence becomes parts and a netlist
- 02every part resolved against live JLCPCB stock
- 03the netlist checked
- 04the board placed, both sides
- 05routed by freerouting, and by a second router if a net is left dead
- 06checked again by KiCad's own DRC
- 07Gerbers and assembly files written out
- 08priced
the build
One board, from the sentence that asked for it to the files a fab can take. Each system runs where it actually runs — the placer before the router, the judges before the copper.
ten acts · one board · a point cloud, full screen open the build → the sentence, the parts, the netlist, Quorra's anneal, Mendicant's fold, ISOnet's verdict, Physarum's escape, the route, the check, the files — with every number measured off the frame.research
Three threads, each asking the same question — will the router close this board — a little earlier than the one before it.
01 / thread
ISOnet
a network that learns the router's verdict
Reads a placement as congestion on a 32×32 grid and predicts whether freerouting will close it. An audit found the skill was between boards, not between placements; on boards it has never seen it ties an instrument that was never fitted at all. Kept as a calibrated gauge, and as a heat map of where the router will fail.
open the thread02 / thread
Quorra
a placer that listens to the judge
Not a new optimiser — a stricter judge for the annealer we already have. It found the edge defect that left a fifth of placements unroutable; with that fixed, the placer matches human placement, and its best of six is ahead.
open the thread03 / thread
Mendicant
a board, read as a molecule
Pins on a circle, nets as chords, a crossing wherever two nets cannot share a layer — a board folded like RNA. The first signal that moves within a single board; its slime-mould successor reads board difficulty better than anything else here, and one board's own placements only just. The fold has since laid out a photonic chip, where a crossing is a physical device.
open the threadmeasured
Nine numbers the work turns on. Each is quoted next to the thing that qualifies it, because on this corpus every one of them had something behind it worth saying out loud.
retro
Ten days. Everything above happened between the first commit at 03:04 on 1 September and the diffusion-model run that finished at 11:28 on 10 September. Below: the hours, as the corpus recorded them, and what each system measured, and when. The label writes stop on 5 September and the work does not — the router experiments moved to the board bank, whose 42,334 placements are an experiment rather than training labels.
the same numbers, as tables
how we work
The router is the only judge
Not a model's confidence, not a placement's symmetry. Whether freerouting closes every net clean is the one test that counts, asked of everything upstream — a placer's cost function, a learned model's prediction, a rule inferred from a part's own footprint — before any of it is trusted.
A result is only as honest as the corpus behind it
A label defect sat in a quarter of a training corpus before anyone went looking for it. A score gets retracted and re-measured the day that's found, not defended — auditing what the last audit missed is the work, not a step before it.
Complexity has to earn its place
A neural network is judged against the plainest baseline that could stand in for it, and loses to it more often than a pitch would like. What ships is whichever wins that comparison, not whichever took longer to build.
Every stage says what it could not do
A part that doesn't exist is a part that doesn't exist. A rail nothing drives is said out loud. A router that gives up says so — because a board that looks finished and isn't costs a fab run to find out.
Every number here is one router run away from being wrong, and we would rather find that out than defend it. A release of the corpus with its split hash — so the claims can be checked by someone who did not make them — is next.