📈 GH Trending Explorer 🎲 Surprise me

← all repos

DingoOz / TraceMaker

git clone https://github.com/DingoOz/TraceMaker.git v0.10.0 · 4d ago

—

+1
stars, 24h · #9,813
+~7
stars, 7 days · #10,461
+170
stars, 30 days · #3,103
171
★ total · +4% this week
16
forks · 2 open issues

Star history (as recorded here)

2026-10-20 · 169 ★ 2026-10-22 · 171 ★
LanguageC++
LicenseGPL-3.0
Created2026-10-05 (17d ago)
Last push1d ago
Watchers2
OwnerUser

Links

README excerpt
**An autorouter and component placer for KiCad.** You give it a `.kicad_pcb`; it draws the tracks and vias and
writes them back into the file.
*The live viewer after routing a three-channel motor driver: 195 of 195 connections, front copper in red, back in blue.*
## In one minute
- **What it does:** routes unrouted connections on KiCad 9 and 10 boards, and can place components first.
- **How it is judged:** by KiCad's own design-rule check (`kicad-cli pcb drc`), not by its own opinion.
- **What it never does:** touch anything it did not create. The rest of your file round-trips byte for byte.
- **What it runs on:** Linux, C++20. A CUDA 12.x GPU speeds it up; it works without one. A macOS build with a
 Metal backend is contributed and has not been run by the project.
- **Status:** release 0.10.0. Licence GPL-3.0-or-later.
## How good is it?
Share of boards routed with **every connection made and no KiCad error added** (PCBench, 120 s per board):
| Tier | Boards | TraceMaker 0.10.0 | Freerouting 2.5 |
|---|--:|--:|--:|
| A (routine) | 40 | **100%** | 100% |
| B | 40 | **70.0%** | 50.0% |
| C | 30 | **46.7%** | 46.7% |
| D (hardest) | 22 | **40.9%** | 36.4% |
Freerouting's figures are its own published results on the same boards. Since 2026-10-14 the judge compares physical
violation instances and calls a board *unknown*, never clean, when KiCad's report is truncated at a capped error type
on either side (199 solder-mask bridges the board had before routing, say), because a zero delta cannot then be proved
(decision D106); three tier C and three tier D boards that are fully routed with no added error fall under that. By
the 0.9.0 criterion the same runs give 100%, 70.0%, 56.7% and 54.5%, against 100%, 72.5%, 60.0% and 54.5% at release
0.9.0 (one board each way in tiers B and C, on a machine shared with other jobs; the 0.9.0 binary run beside it under
the same load scored within one board of it in every tier, `bench/records/release-0.10.0`).
**Known limits, stated plainly:**
- Placing a board from scratch gives 85% clean boards on held-out designs; the project's target was 90%.
- On boards with dense packages (BGAs, fine-pitch QFNs), 41% come out clean.
- On tscircuit's public BGA breakout problems (sets srj19 and srj20, KiCad errors never added) it routes about 95% and 78% of the boards
 completely with a 16-variant portfolio (about 2-7 minutes per board; a single 30-60 s run: 89% and 64%); tscircuit's own router completes 92% and 79%
 (360 s on 32 vCPU). Both figures are composites of runs; srj20 is 156/200 within 330 s and 160/200 with up to 433 s.
 Boards that stay open there are mostly limited by the lattice, not by room: `--relax` (route at 60-80 % of the clearance, then move the track
 vertices off the lattice up to the real rules) closed sample031, 039, 048, 071, 072, 095, 103 and 159 with a clean KiCad DRC; sample104 is still one
 connection short (doc 16 section 13).
- It uses more vias than Freerouting.
- Eight real-world KiCad boards that