Watch every case
Pick a task and a board. Each router's copper appears over its real route time, beside its vias, track
length and verdict. Click any case in the tables below to load it here.
Every case
A case is valid for a router when all three of its runs pass. Green cells are valid; red cells show
what went wrong. Each cell gives the median route time, vias and track length over the three runs. Zap!'s
results are provisional and use the repeats checked so far. Click a case to watch it.
Whole board Route every connection from placed parts. All tracks, vias and copper zones removed first.
Reroute after an edit On a routed board, remove the copper of one net (small), all nets of one part (medium) or a connector-sized group (large), then reconnect it without touching anything else.
Power widths Route the whole board while giving power nets their required track widths.
Keep a ground pour Route the whole board without changing its existing ground pours; the pour must stay connected.
Ranking and scores
Ranked by valid cases, then Efficient, then Fast. Scores are out of 100, computed per case among routers
with a valid board, then averaged over each router's valid cases where at least two routers were valid. Each
router's value on a case is its median over three runs.
Efficient
50 × (fewest vias + 1) / (vias + 1) + 50 × shortest length / length
The router with the fewest vias and shortest track on a case scores 100.
Fast
100 × fastest time / time
Full path from KiCad input to KiCad output, including any file conversion. Twice as slow as the fastest
scores 50.
Fast (CPU time)
100 × least CPU seconds / CPU seconds
Same, counting CPU time sampled every 100 ms, so extra cores do not help. Not part of the ranking.
* Zap! is hosted and closed-source. Provisional: 55 of 78 runs checked, paused at the service's daily job
limit. It has no scores: its time is measured on a remote server, and it was judged with checker v4.4, which
also allows router-added pours on boards that start with none. Rechecking all 390 open-source runs with v4.4
changed no verdict. On the same 55 runs: drandyhaas/KiCadRoutingTools 43 valid, Zap! 41, TraceMaker 39, fastroute 35,
Freerouting 27, fab_router 26.
How runs are judged
Connected
No missing connections, measured by KiCad 10.0.6's own connectivity check.
No new errors
No KiCad DRC errors beyond the input board's own. Every input starts with zero errors.
Board unchanged
Footprints, pads, nets, outline, layers, design rules and project settings identical to the input.
Task respected
Reroutes keep all other copper exactly. Pour tasks keep zone outlines, nets and priority, and the
ground stays connected after a refill.
Every router gets the same rules and the same checker, and every verdict reproduces in plain KiCad DRC. Before
the study, every case was shown to have at least one valid board: a router's output, the original human
routing, or a small hand repair. Three runs per case are repeats for timing and consistency, not different
boards; no router ever split a verdict across its three runs.
Environment
- Machine
- Intel i9-14900HX, 32 logical CPUs, 30 GB RAM
- OS
- Ubuntu 24.04, Linux 6.8
- Checker
- KiCad 10.0.6 (connectivity and DRC)
- Scheduling
- One run at a time; no CPU pinning
- Time limit
- None, apart from a 60-minute safety stop for hung runs
- Threading
- Each router's own default, so compute is not equal. Average busy cores in the ranking table
- Run days
- 273 runs on 9 October, 117 reruns on 12 October 2026
- Settings
- Tuned per router and task on separate boards, then frozen before scoring
Routers and settings
Routers that read a Specctra DSN export cannot see KiCad's thermal-relief or zone-priority rules; pours are
refilled natively after routing. Coupled differential pairs were not
exercised: the only pair case had no provable valid board and was removed.
Boards
All boards are public, openly licensed 2-layer KiCad projects, used unchanged apart from removing copper for each task and, for power-width cases, declaring the required widths.
Audits
Stale pour shapes
Our checker judged reroutes against old pour shapes. Fixed; 30 runs that should have passed now pass.
A rule stricter than KiCad
An extra width rule of ours failed fastroute 27 times. Dropped, so KiCad's own rules decide.
Setup fixes
A TraceMaker pre-check crash and duplicate zone IDs fixed; two router settings corrected and rerun.
Final check
A second audit reproduced all 237 passes and 153 fails in plain KiCad DRC, and the scores recompute exactly.
Limits
- 11 boards, all 2-layer. Results may differ on other boards or with other settings.
- No differential-pair result.
- Electrical, signal-integrity and manufacturing quality are not measured.
- Runs come from two days, so close speed differences are descriptive only.
- Reroute vias and track length include the copper that was kept.
- fab_router can place layer changes without vias; that is its own defect.