credits
“Giants, big and small. Their work is as important as mine.”
Ashwin, who builds soldermask
Nothing here was built from nothing. soldermask is a business, and it stands on other people’s routers, judges, libraries, catalogues, papers and boards. This page names them. It is not a licence notice and not an endorsement by anyone on it — it is the list of whose work is in the tree, what was taken, and how it is used.
Six kinds of debt, in the order a build meets them: the programs it calls, the parts data it resolves against, the boards it learned from, the papers the methods come from, the models and machines it runs on, and the designs whose shape it borrowed.
Compiled from the tree on 16 September 2026 — the research log, the papers’ bibliographies, the dependency list, the module headers and the setup’s own report of what it found on the machine. A name that should be here and is not is an omission on this side, and the page is corrected the day it is found, the same rule the log keeps for a number.
01 · programs
The programs it calls.
Run as processes or imported as libraries. None of them
is shipped inside the package; soldermask setup fetches
what it may and says what it cannot.
- KiCadGPL-3.0 · run as a process
kicad-cliis the judge: its DRC is the only verdict on a routed board, it renders every board, exports the 3D model, and its importers read every Eagle, Altium and legacy-KiCad board in the bank. The pin numbers come from kicad-symbols (CC-BY-SA 4.0 with the KiCad exception). The silkscreen drawn for a hand-written package follows the conventions of KiCad’s own footprint generators. 1.3 GB and not pip-installable, so the pipeline writes every fab file before it is consulted. - freeroutingAlfons Wirtz; Andras Fuchs and freerouting.org · GPL-3.0 · a separate JVMThe second router, run when the A* router leaves a pin short, and the labeller of the corpus’s first forty thousand verdicts. 2.3.0 and 2.4.1 are different judges and the corpus records which one labelled each example. A jar the setup downloads, given a Specctra DSN and read back as a session file; never linked, never redistributed.
- KiCadRoutingToolsAndy Haas · MIT · pinned to commit 02e4b52The A* router that routes first, since 13 September 2026, because on 733 judged placements it closed 69.4% against freerouting’s 55.5% at 0.78× the time. Pinned to one commit so that “the A* router” names a program rather than a moving head; its Rust core is built on the machine by
soldermask setup --astar, not vendored. - ngspiceBSD · the program on PATH, or KiCad’s libngspiceThe simulation stage: the declared rails switched on before the board is placed, and the rail voltages and LED currents read back against what the design claimed.
- gerbonarajaseg, XenGi · Apache-2.0Reads the Gerbers back and counts what the fab would flash, so the writer is crosschecked by a reader it did not write. When the silkscreen was measured it was gerbonara that read the film back — 491 top-silk objects against 453. rtree (MIT) comes with it.
- numpyBSD-3 · the whole numerical treeEvery solver in the tree is written in it rather than imported: the annealer, the fold, the mould’s reference loop, the routability model at inference. PyTorch (Apache-2.0) is used by
learn trainalone; running the shipped model needs only numpy. - Flask, Hypercorn, requestsPallets · BSD-3; Phil Jones · MIT; Kenneth Reitz · Apache-2.0The app and everything it fetches.
- PyO3, rayon, maturinApache-2.0 / MIT · the mould’s compiled loopThe mould’s inner loop in Rust, called from Python four lanes wide on every core. Optional: the numpy loop is the reference, a test holds the two to 10−9, and a change to one without the other is a divergence the test names.
- three.jsmrdoob and contributors · MIT · r128, with GLTFLoaderThe workbench’s 3D view and the models kicad-cli exports as glTF. r128 is a measured ceiling: r159 was tried on 8 September 2026 and reverted when the environment lighting went dark above r152.
- osifonthikikomori82 · LGPL-3.0 with the font exceptionThe free implementation of ISO 3098 lettering. The app’s drawing labels are outlines derived from it by
tools/isofont.py, and the derived file says so at its head. - Libertad MonoRadinal Riki · ATK StudioThe mono of every label, key and number on this site and in the app, in the Medium.
- JetBrains Mono, ManropeJetBrains · OFL; Mikhail Sharanda · OFLEvery sentence is Manrope; the wordmark, the banners and the Tron grid are JetBrains Mono, whose box-drawing set Libertad has none of.
- Material for MkDocs, Tectonic, Eclipse TemurinMartin Donath · MIT; Tectonic · MIT; Adoptium · GPL-2.0 with Classpath exceptionThe manual, the two papers, and the JVM freerouting runs under on rented machines.
02 · parts and stock
Where a part’s facts come from.
The model names a function; the pad numbers, the footprint, the price and the count on the shelf come from these, and a fact borrowed from a vendor is labelled assumed, not verified on the board it lands on.
- JLCPCBstock, price and the assembly lineThe stock and the price on every board, now through its open API — the first catalogue source this pipeline has had with a contract; before that, everyone’s scrape of its parts page. Every part resolves to an LCSC code, and the assembly files are written for JLCPCB’s line.
- jlcpartsJan Mrázek · MITThe nightly mirror of the JLCPCB catalogue the resolver reads off disk: 582,650 components at the 4 September 2026 build, and the 242,213 typed attributes the parametric index — 3.6 ms a lookup — is built over.
- tscircuitjlcsearch · MITIts search over the same mirror was the resolver’s catalogue for the first two weeks and is still the fallback when the mirror cannot answer.
@tscircuit/schematic-trace-solverwas evaluated for the schematic sheet and not adopted; the log records the case for and against. - EasyEDA and LCSCper-part CAD, keyed by LCSC codeFor any part the pipeline’s own table cannot describe, the symbol, footprint, silkscreen drawing and 3D model come from EasyEDA’s CAD for that exact part; 767 of 770 cached footprints carry the vendor’s own silk. Vendor and community data, not IPC-verified, and every board built on it says so.
- easyeda2kicad and atopilethe reference implementation, and the approacheasyeda2kicad’s exporter is the reference the 3D-model orientation follows. atopile is where the approach comes from: fetch the geometry for the exact part being ordered rather than reconcile two vocabularies of package names that were never translations of each other.
- kicad-jlcpcb-toolsBouni · MITThe formula for a bottom-side part’s rotation in the assembly file was taken from its
fabrication.pyand checked against KiCad’s own position export on a board with twenty back-side parts. - Diodediodeinc/kicad · reference designs, and the
pcbtool that compiles themReference designs a person wrote against a datasheet, with pins called VIN, EN, GND and VOUT rather than 1, 2, 3, 4. They are the authored half of the block library, kept in a separate file from the mined half on purpose, so that when a block turns out to be wrong the question of who said so still has an answer. - IPC-2221 and IPC-7351the standardsCopper width for a current, from the external-conductor chart of IPC-2221 section 6.2; the nominal land patterns of every hand-written package, from IPC-7351.
- Specctra DSN / SESthe interchange both routers speakA placement leaves as a DSN and copper comes back as a session file. The corpus is stored as DSN, which is what makes a board read from a stranger’s repository and a board built this morning the same object to the router.
03 · the boards
Fifteen thousand boards, laid out by other people.
Every number this project reports about routability is measured on boards somebody else designed and published. This is the largest debt on the page and the one that cannot be paid by name: 63,644 router verdicts on 15,947 boards, from a bank of 18,234 real designs.
- The open-hardware authorsthe bank · read, never redistributedPublic KiCad, Eagle and Altium files on GitHub, GitLab and Codeberg, found through Hackaday, Kitspace, Crowd Supply, OSHWA’s directory, Zenodo and the makers’ own pages. Each row of the bank carries the repository it came from and the licence it declared. A board is read, placed again, routed and judged; the file is not redistributed, and the corpus is not released until it can be with its licences read.
- SparkFun and AdafruitCC-BY-SA · 692, 837 and 151 boards692 SparkFun, 837 Adafruit and 151 SparkFunX boards of the two-layer bank, nearly all Eagle, each beside its schematic. Sampled blind, 65% and 37% of their public repositories hold a board; the earlier sweeps had reached 29 and 40 of them.
- The makers of the professional reference505 boards · what good looks likeTinkerforge, Watterott, Particle, ProtoCentral, 1BitSquared, Bitcraze, Pimoroni, OpenBCI, Makerdiary, Electro-Smith, Sipeed and Raspberry Pi — every public repository fetched, 566 board files from 327 of them — with SparkFun and Adafruit, the 505-board reference the rubric’s thresholds are calibrated against. An engineer’s advice that vendor reference designs are where to look for good.
- PCBenchMIT · the external testThe one test set chosen by nobody here: held out by content, never fitted on, in no fold of the cross-validation. The shipped model’s 0.914 is measured on 218 placements of 111 of its boards. It was also found vendored inside freerouting’s own benchmark fixtures — 866, then 2,050 copies — and quarantined out of training; the log says so in place. PCBWorld’s real boards derive from it.
- open-schematicsbshada · 908 boards908 boards of the bank, corrected from a published 3,449 once the fetcher was found to have counted the same parquet rows up to nine times.
- John Teel, Predictable Designsthe Design Battle · the reviewer’s rulesThree engineers race the same schematic and he reviews each on camera and publishes the files, so these boards come with the thing the corpus has none of: a professional’s written judgement. The 82-rule catalogue every build is graded on began as his eleven-rule checklist and the layout half of his 21 mistakes, and his reviewed boards calibrate the measures against his verdicts. His boards are his to publish and are not vendored.
- DeepPCBone published board, through its public APIIts GPT-6 Astra board — a robot compute module from one prompt — was fetched and routed by both routers here, in seven and nine seconds against its fifteen minutes, and the placement graded. A comparison run on their published work, on the record.
04 · the papers
The papers the methods come from.
Mendicant’s bibliography and ISOnet’s, arranged by what each was used for. A citation here is a debt, not a claim that the authors would recognise the use.
The mould
- Tero, Kobayashi and NakagakiJ. Theor. Biol. 2007 · Science 2010The Physarum transport model the mould integrates, and the adaptive-network rules measured on the real organism.
- Bonifaci, Mehlhorn and Varma; Bonifaci et al.J. Theor. Biol. 2012 · Theor. Comput. Sci. 2022Why the dynamics compute shortest paths, and how they carry many commodities at once.
- SunarXiv 2017, and the 2019 workThe review, and the Steiner-tree feeding (MS3-PO) the mould uses for a net with more than two pins.
- Huang, Chu, Deng and Cheong; Sonoda et al.2020 / 2022 · ICNC 2024The capacity-constrained Physarum solvers the escape windows follow.
The fold
- Nussinov, Pieczenik, Griggs and KleitmanSIAM J. Appl. Math. 1978The loop-matching recurrence a board is folded with, its pins read as a sequence.
- Zuker and StieglerNucleic Acids Res. 1981Folding with thermodynamics, which is where the energy reading of a placement comes from.
- GavrilNetworks 1973The maximum independent set of a circle graph — which is what the crossings of chords on a ring are.
Routers
- McMurchie and EbelingFPGA 1995PathFinder: negotiated congestion, the history term the mould’s windows carry.
- Pan and Chu; Chu and WongICCAD 2006 · IEEE TCAD 2008FastRoute, and FLUTE’s rectilinear Steiner trees.
Estimating congestion
- Spindler and JohannesDATE 2007RUDY, the routing-demand map that is the first of the model’s eight channels and the baseline every judge here is measured beside.
- Lou, Thakur, Krishnamoorthy and Sheng; Westra, Bartels and GroeneveldIEEE TCAD 2002 · ISPD 2004The probabilistic congestion estimates.
Learned routability
- Xie et al.ICCAD 2018RouteNet — a convolutional network reading a placement as a grid, which is what ISOnet is a descendant of.
- Yu and Zhang; Chen et al.; Wang et al.DAC 2019 · ICCAD 2020 · DAC 2022Painting on Placement, PROS, and LHNN’s lattice hypergraph.
- Chai et al.; Al-Hyari et al.; Hou et al.IEEE TCAD 2023 · ACM TRETS 2021 · KDD 2024CircuitNet, routability for FPGA placement, and RoutePlacer’s graph network — the comparison the GNN experiment here came back null against.
Boards, by machine
- Liao, Pan and ChiangExpert Systems with Applications 2026World-model reinforcement learning over freerouting.
- PCBWorldarXiv 2026The benchmark environment for engine-grounded PCB automation.
Light
- Zhou, Zhu and GuISPD 2025 · LiDAR · ScopeX-ASU · MITThe curvy-waveguide router that judges every photonic placement here, run from its own checkout with its own Python; its benchmark suite ships the four chips and the hand placements the fold is measured against.
- ApolloICCAD 2025The photonic placer whose published table the fold is compared to. Its repository is empty, so its rows are the paper’s and not a rerun, on netlists that are the same and a die the paper does not state.
- Clements et al.the meshThe interferometer mesh both benchmarks are drawn on.
Two judges who disagree
- Cohen; Fleiss; Feinstein and Cicchetti; Byrt, Bishop and Carlin; Gwet1960 · 1971 · 1990 · 1993 · 2008Kappa and its paradoxes, for two routers that agree on only half of a mixed board’s placements.
- Somers; Obuchowski1962 · 1997The ordinal D, and ROC over clustered data — an AUC across boards is one.
Noisy labels, and knowing when not to answer
- Angluin and Laird; Frénay and Verleysen1988 · 2014Learning from noisy examples, and the survey — the label ceiling of 0.837 is read through them.
- Chow; Geifman and El-Yaniv; Vovk, Gammerman and Shafer1970 · 2017 · 2005The reject option, selective classification, and conformal prediction.
05 · models and machines
What it runs on, and what wrote it.
- Google Geminigemini-3.8-flash · the default design modelThe turn that reads a prompt into parts, nets and constraints, and the chat around a build. Everything after it is deterministic, and a build’s timing says when the model is the thing it is waiting on.
- AnthropicClaude Opus 5 · the alternative design model, and Claude CodeClaude Opus 5 is the design model when Gemini is not. And the tree itself: soldermask was built by one person working with Claude Code, and every one of its 103 commits carries a Claude co-author line. A page like this would be dishonest without that row.
- Groqthe third backendOpenAI-shaped completions; the design turn on
gpt-oss-120b, an open-weight model, when it is asked for. - Inception LabsMercury 2.5 · evaluatedRun through both arms of the placement harness and beaten by the annealer, 9 of 54 clean against 42. On the page because a null result is still a use of somebody’s work.
- GPT-6 Astranever run hereThe one board of its that DeepPCB published was routed and graded; the model itself has not been run here.
- Exathe search that found the bankA hundred and forty-eight questions and three hundred seeds found 16,070 candidate repositories for $27.91; thirty-two more found the Eagle and Altium boards for $3.08. The questions are in the tree.
- Microsoft Azurethe rented machinesEvery corpus-scale route since 5 September 2026 — 30,066 placements under the A* router for about $28 on two machines in a day.
- Vercel, GitHubthis site; the source, and
ghVercel serves these pages. GitHub holds the source, its code search and its API found and fetched most of the bank, and GitLab and Codeberg the rest.
06 · the shape of things
Whose shape was borrowed.
Not code and not data — the look of a page and the layout of a tool are somebody’s work too.
- Ableton Livethe workbenchThe four folding regions round the stage are Live’s layout; the rack of seven knobs and its saved variations are Live’s macro controls; the line that describes whatever the mouse is over is its Info View.
- Anduril and Palantirthis site, since 15 September 2026A real board on black, big statements, one accent. Before that, the lab-page shape the thread pages still carry was taken from SSI and Thinking Machines Lab.
- Fritzingthe unit of manipulationThe contrast that set it: a bare part is too small to mean anything electrically and a reference design too big to compose, so the thing a person drops on a board here is a block — a regulator with its capacitors, a transceiver with its termination.
- Keep a Changelog, Semantic Versioningthe log’s form; the version’sThe research log is written under one and numbered under the other.