Status: completed observational evaluation; no router-default change accepted.
Board images from the scored runs are in the field note. This page records setup, scoring rules, and provenance.
The third engine is fab_router, the PCB-bridge router. It is not TraceMaker. On unpinned projects the shipped default is Freerouting, with fab_router as the fallback.
Results
- Observed: TraceMaker leads whole-board routing and is the only passing dense-escape engine.
- Observed: all three pass simple scoped repair; Freerouting wins under the declared quality ranking.
- Observed: no engine passes USB-A swap or FFC pair repair.
- Proposed: address rule delivery and repair completion before changing the product default.
Setup and environment
Six fixed board instances across five task types, plus a separate charger board for choosing settings. No AI routing calls. Engines ran sequentially on Linux, CPU-only, with one requested routing thread and a 120-second outer wall-time cap. Each engine’s defaults ran once per instance; settings selected on the separate board ran three times per instance. Freerouting ignores seeds. There are 72 scored runs, 12 excluded preparation runs and seven tuning attempts in this benchmark.
Packaged KiCad 10.99.0 independently checked connectivity and DRC. Acceptance also required preserved pads, footprints, nets, outline and scoped copper, with no dangling copper. Existing baseline DRC errors can remain; a pass is not manufacturing qualification. Ranking prioritizes validity, then vias, copper-length ratio and full-route-path CPU time.
Evidence boundary
These are configured runtime paths on a small suite. Complete effective-rule parity was not achievable: adapters and engine readbacks differ. Results do not establish a universal algorithm ranking or justify changing the shipped default. CPU includes startup and adapter export/import.
Whole-board inputs remove tracks, vias and zones; scoped repairs retain/refill original zones. Twelve early decoder runs had invalid zone-removal preparation and were excluded, preserved rather than counted as engine failures. TraceMaker repair timeouts show unchanged inputs, not completed routes. USB pair geometry does not establish signal integrity. Tuning means the best admissible configuration in a small sweep, not a global optimum.
Provenance
This is a publication copy of the readable presentation v2 in the local fabdesk-evals workspace.
The board images and measured results are unchanged; its local-only evidence link now points here.
Raw runs remain in that workspace and are not included in this report-only publication.
- Original evaluation:
runs/evaluations/router-benchmark-v1-2026-10-08/README.md. - Raw/derived evidence:
evidence/router-benchmark-v1-2026-10-08/. - Source HTML:
evidence/router-benchmark-v1-2026-10-08/presentation-v2/report.html. - Suite:
runs/assignments/router-benchmark/suite-v2.json; frozen engine settings in itsconfigs/. - Fabdesk:
56f0707330c416f921efb0d4a5df5e091bc0a54d. - FabPCB pin:
8b3cd52947f61b5d50b02d8e70d0fc0b7d09501d. - fab_router:
69cf598db98c136bff16bbe02bccdded95674b18. - TraceMaker source:
95546c4d1d9bd201f4dd80fab523ca6b67ea97a9(pinned CPU build). - Freerouting: 2.4.1; Java: 25.0.4.1+1; Bun: 1.4.0.
- PCBench corpus:
dec3be75cbdef74787625f9043c7391cd473bb64; originating design commits are unknown.
Original HTML SHA-256: 679a854a50fdb9693cd45f08cce272aa6601f079f05d76cfe0c7bc46bf10a782.
The full local evaluation retains input hashes, runtime identities, frozen configurations, commands, timestamps, failed outputs and native checks. Date is Asia/Bangkok; run timestamps are UTC.