-
08a7ac7e49
Merge feat/smooth: opt-in --smooth turns grid staircases into octilinear runs after routing
main
rsp2k
2026-10-17 11:35:22 -06:00
-
-
34200f27ff
--smooth: no 45-degree leg shorter than two track widths
rsp2k
2026-10-17 11:15:47 -06:00
-
c91ca1994c
--smooth: turn grid staircases into octilinear runs after routing
rsp2k
2026-10-17 09:35:45 -06:00
-
-
f3c4618fbb
Merge feat/reduce-vias: opt-in --reduce-vias pass and --via-cost
rsp2k
2026-10-10 09:39:07 -06:00
-
-
fa20dc5623
Merge main into feat/reduce-vias
feat/reduce-vias
rsp2k
2026-10-07 20:54:02 -06:00
-
-
-
-
b9fed0fc4d
Merge feat/verify-output: check grid and room output on exact shapes, --strict
rsp2k
2026-10-07 20:12:51 -06:00
-
-
8cb7a627f0
Add --reduce-vias and --via-cost to the exact engine
rsp2k
2026-10-07 20:06:00 -06:00
-
-
-
74d97b601c
Check grid and room output on exact shapes and report shorts
feat/verify-output
rsp2k
2026-10-07 20:04:04 -06:00
-
-
1852df3d53
Merge fix/default-exact: exact engine by default, warn on unchecked engines
rsp2k
2026-10-07 18:52:10 -06:00
-
-
33de21ba0e
Route with the exact engine by default; warn when an engine does not check
fix/default-exact
rsp2k
2026-10-07 18:37:33 -06:00
-
-
3b29edc624
Merge feat/rename-rpmroute: the router is now rpmroute (freeroute kept as an alias)
rsp2k
2026-10-07 17:35:56 -06:00
-
-
a6aa1991a1
Rename to rpmroute
feat/rename-rpmroute
rsp2k
2026-10-07 14:10:36 -06:00
-
-
45aee463a8
Merge feat/window-reroute: opt-in --window-reroute, budgeted finer-grid windows around stuck connections
rsp2k
2026-10-07 14:00:39 -06:00
-
-
d1def2c4b9
Window boards: never search a connection ending outside the window
feat/window-reroute
rsp2k
2026-10-06 23:07:09 -06:00
-
28523bcbac
Window re-route: time budget, window cap, smallest first, window boards
rsp2k
2026-10-06 22:51:51 -06:00
-
27f7202d2f
--window-reroute N: route a finer grid around each connection still stuck
rsp2k
2026-10-06 15:04:02 -06:00
-
-
95c89032e3
Merge feat/tree-nets: multi-pin nets route as trees, legs tee into routed copper
rsp2k
2026-10-05 17:12:32 -06:00
-
-
61f51129e1
A T depends on every connection between its copper and its group
feat/tree-nets
rsp2k
2026-10-05 12:58:58 -06:00
-
b91e44e360
Route multi-pin nets as trees: spanning-tree pairs, T into routed copper
rsp2k
2026-10-05 12:21:00 -06:00
-
-
89d6d8d9dd
Merge feat/diagonal-escapes: pins of turned parts leave along their pad axis
rsp2k
2026-10-03 22:08:57 -06:00
-
-
c6297656a6
Let pins on turned fine-pitch pads leave along the pad's axis
feat/diagonal-escapes
rsp2k
2026-10-03 18:49:36 -06:00
-
-
4933b6f992
Merge feat/negotiated-congestion: --negotiate N, priced sharing and history before routing
rsp2k
2026-10-03 16:14:36 -06:00
-
-
6a560b9506
diagnose.py: --negotiate, as the router
feat/negotiated-congestion
rsp2k
2026-10-03 15:34:37 -06:00
-
09c58ea630
--negotiate: PathFinder rounds on the empty board before routing
rsp2k
2026-10-03 14:45:59 -06:00
-
-
7c076d9995
Merge fix/minisumo: shared-via owners for search and rip-up, round vias against the outline
rsp2k
2026-10-03 11:31:01 -06:00
-
-
8f006fec25
Rip every user of a shared via, and judge vias round at the outline
fix/minisumo
rsp2k
2026-10-03 11:03:38 -06:00
-
-
ad10113b8b
Merge fix/round-pads: route past round pads by their outline, not their bounding square
rsp2k
2026-10-02 04:51:51 -06:00
-
-
dc11b4aa14
Route past round pads by their outline, not their bounding square
fix/round-pads
rsp2k
2026-10-02 04:14:39 -06:00
-
-
de00937084
Merge fix/roomba: grid and exact check agree on rotated pads, shared vias and wide nets
rsp2k
2026-09-30 14:02:54 -06:00
-
-
f79134fee6
Make the grid and the exact check agree on rotated pads, shared vias and wide nets
fix/roomba
rsp2k
2026-09-30 12:08:25 -06:00
-
-
ef8398c9b2
Merge fix/ttn-9: straight pin exits, rip-up can reach a pin's way out, exact checks between stubs
rsp2k
2026-09-30 11:11:39 -06:00
-
-
8a33dc4576
bench/drc_check.sh: route a KiCad board and judge it with DRC at every severity
rsp2k
2026-09-30 10:54:12 -06:00
-
8b3ebc53cf
Leave fine-pitch pins straight and let rip-up reach a pin's way out
rsp2k
2026-09-30 09:49:05 -06:00
-
-
de9fb51bb3
--fanout: leave out pins a same-net pour on their layer already joins
feat/fanout
rsp2k
2026-09-29 10:40:46 -06:00
-
74360f2f57
--fanout: only packages of --fanout-min-pins or more; supply-only mode; vias for signals that change layer
rsp2k
2026-09-29 10:20:11 -06:00
-
21c80d30f2
Tests: fan-out stubs go outward past their pads; a plane pin gets its via
rsp2k
2026-09-29 09:53:05 -06:00
-
2d686178af
--fanout: commit a way out for every fine-pitch pin before routing (work in progress)
rsp2k
2026-09-29 09:52:35 -06:00
-
-
7a42230f36
Merge fix/fixed-via-holes: exact hole spacing to fixed vias, vias on one route kept apart
rsp2k
2026-09-29 09:13:47 -06:00
-
-
83ad0f8ef7
Keep a route's own vias apart while it is searched
fix/fixed-via-holes
rsp2k
2026-09-29 03:10:52 -06:00
-
6e852a929b
Hole spacing to a fixed via measured from where it is, with its own drill
rsp2k
2026-09-29 02:34:17 -06:00
-
-
f56bb10996
Test: the session never repeats wiring already on the board
rsp2k
2026-09-29 01:17:59 -06:00
-
8f656006a6
Merge fix/hole-spacing-pads: hole spacing from through-hole pads and fixed vias
rsp2k
2026-09-29 01:16:59 -06:00
-
-
6cc2406583
Hole spacing also from through-hole pads and fixed vias
fix/hole-spacing-pads
rsp2k
2026-09-29 01:13:16 -06:00
-
-
30297e94dc
Merge feat/net-widths: fixed wiring, plane via checks, class widths, via spacing, fan-out connectivity
rsp2k
2026-09-29 00:26:02 -06:00
-
-
45b3753cff
Count copper already on the board as connections already made
feat/net-widths
rsp2k
2026-09-29 00:16:56 -06:00
-
7d8e5d5c10
bench/diagnose.py: tell fixed copper, pads and keepouts apart as walls
rsp2k
2026-09-29 00:14:40 -06:00
-
8152619541
Write each plane via once in the exact engine's output too
rsp2k
2026-09-28 23:56:23 -06:00
-
714fa873ae
Keep hole-to-hole spacing between every two vias, one net's included
rsp2k
2026-09-28 21:52:52 -06:00
-
4a844e8cd7
Route wider net classes at their width, falling back where they don't fit
rsp2k
2026-09-28 21:16:40 -06:00
-
783dd8f0d1
Test: a pad inside a via keepout reaches the plane past it
fix/plane-via-checks
rsp2k
2026-09-28 21:09:43 -06:00
-
8a82143517
Check plane and in-pad vias where they will actually go
rsp2k
2026-09-28 21:08:51 -06:00
-
8a50bde531
Read the DSN's wiring as fixed copper of its nets
feat/fixed-wiring
rsp2k
2026-09-28 21:06:35 -06:00
-
-
0f6a2a0812
Merge fix/plane-goal-stub: routes ending on a plane no longer crash
rsp2k
2026-09-28 19:55:07 -06:00
-
-
245cd91c0e
Don't cost a pin stub for a route that ends on a plane
rsp2k
2026-09-28 19:55:07 -06:00
-
-
019b043cd5
Merge feat/ripup-rollback: undo rip-ups that lose connections (on by default)
rsp2k
2026-09-28 16:17:30 -06:00
-
-
a2e108bc51
Rollback on by default; --no-rollback keeps every rip-up
feat/ripup-rollback
rsp2k
2026-09-28 16:17:28 -06:00
-
3462089e09
--rollback: undo a rip-up that leaves fewer connections routed
rsp2k
2026-09-28 14:54:29 -06:00
-
-
8b1b00cf6c
--reserve-escapes: keep a way out open for every fine-pitch pin
feat/escape-reservations
rsp2k
2026-09-28 14:21:24 -06:00
-
-
35891c02ff
Merge feat/rule-area-keepouts: keepout exits, via-only walled pins, rule-area support
rsp2k
2026-09-28 10:32:44 -06:00
-
-
3e4f53a469
Keepout exits and rule areas
feat/rule-area-keepouts
rsp2k
2026-09-28 10:08:02 -06:00
-
-
bb75dc5067
DSN reader: only the declared string_quote character opens a string
rsp2k
2026-09-28 09:41:27 -06:00
-
9de8329027
Merge feat/pin-access: vias in pads inside keepouts, exact stub checks, --access-cost
rsp2k
2026-09-28 09:38:18 -06:00
-
-
f1d0f8df70
Pin access: --access-cost, vias in pads inside wire keepouts, exact stub checks
feat/pin-access
rsp2k
2026-09-28 09:15:11 -06:00
-
-
c44ff272ae
bench/diagnose.py: sort an exact-engine run's failures by cause
rsp2k
2026-09-28 00:30:05 -06:00
-
05f31fc828
Merge feat/promote-failures: reroute with failed connections first; --orders
rsp2k
2026-09-27 22:53:47 -06:00
-
-
01ca108831
--promote-failures: reroute with the connections that failed moved first
feat/promote-failures
rsp2k
2026-09-27 22:34:06 -06:00
-
0f5dacbd88
--orders: route several connection orders in parallel, keep the best
feat/orders
rsp2k
2026-09-27 22:14:59 -06:00
-
-
e67ccc04a0
Keep benchmark board lists and results out of git
rsp2k
2026-09-27 15:07:13 -06:00
-
ed2e4c3fac
bench: compare routing variants over several connection orders
rsp2k
2026-09-27 15:06:30 -06:00
-
76c3af94b8
--seed: shuffle the order connections are routed in
rsp2k
2026-09-27 15:04:35 -06:00
-
cf8b7ece60
uv.lock: record the CalVer version from pyproject
rsp2k
2026-09-27 15:04:35 -06:00
-
f8804512ac
Merge feat/plane-layers: route to inner plane layers with a via
rsp2k
2026-09-27 15:01:38 -06:00
-
-
32e1281c36
--history-cost: PathFinder's history term in the rip-up search (off by default)
feat/congestion-history
rsp2k
2026-09-27 14:43:00 -06:00
-
-
-
56d576e613
Route to inner plane layers with a via, not pad to pad
feat/plane-layers
rsp2k
2026-09-27 14:19:13 -06:00
-
-
6f3db3e0e3
README: engines, flags and zones as they now are, and measured results
fix/pad-model
rsp2k
2026-09-27 13:04:23 -06:00
-
3253e6fa43
Escape stubs for pins walled in on the grid
rsp2k
2026-09-27 13:01:27 -06:00
-
cdb3c7b568
Say which connections were not routed
rsp2k
2026-09-27 12:34:20 -06:00
-
c49c79604d
Exact engine defaults to --grid-resolution 2
rsp2k
2026-09-27 12:00:19 -06:00
-
19b17378fa
Count on a zone's connectivity only when no track can cross it
rsp2k
2026-09-27 11:59:59 -06:00
-
354c89a8d5
Route with copper zones, and let vias into no-tracks areas
rsp2k
2026-09-27 11:54:04 -06:00
-
83b2248a97
Check via footprints lazily in the grid search
rsp2k
2026-09-27 11:41:42 -06:00
-
67c6c205f1
Tighter A* estimate on the orthogonal track, and --heuristic-weight
rsp2k
2026-09-27 10:55:15 -06:00
-
8929fd367e
Finer routing grid: --grid-resolution K with trace halos
rsp2k
2026-09-27 07:59:05 -06:00
-
9fa5432953
Give pin stubs clearance, and let a route leave a pin by any open side
rsp2k
2026-09-27 07:37:50 -06:00
-
c1df284147
Route to the real board outline, per connection, and out of fine-pitch pins
rsp2k
2026-09-27 07:26:18 -06:00
-
96c212466a
Tests for pads placed as KiCad places them, and the via size
rsp2k
2026-09-27 06:41:13 -06:00
-
f1df60fc31
Model pads and vias as KiCad places them
rsp2k
2026-09-27 06:40:34 -06:00
-
3ad5c983f5
Honour KiCad's keepouts: keyhole rings, wire_keepout, per-tile rasterizing
rsp2k
2026-09-27 06:30:43 -06:00
-
b26fdd96d5
Write SES coordinates in resolution units, as FreeRouting does
fix/ses-resolution-units
rsp2k
2026-09-26 14:26:18 -06:00
-
fd3bee1085
Add CLAUDE.md: invariants, architecture, and hard-won lessons
rsp2k
2026-07-14 07:28:46 -06:00
-
f653c33e01
Version 2026.07.14 for the first public release
rsp2k
2026-07-14 07:26:41 -06:00
-
bf868b7b05
Harden packaging for a public release
rsp2k
2026-07-13 18:17:13 -06:00
-
758ba1fbe3
Expose the exact and room engines in the CLI
rsp2k
2026-07-13 18:15:02 -06:00
-
accec686f8
Prove the 45-degree win: 29% shorter, DRC-clean, exact clearance load-bearing
rsp2k
2026-07-13 12:57:13 -06:00
-
700ed06843
Route 45-degree traces on the exact track (opt-in diagonal mode)
rsp2k
2026-07-13 12:57:05 -06:00
-
20dc5fd96a
Support exact octagon tiles in the search tree clearance checks
rsp2k
2026-07-13 12:47:06 -06:00
-
8380318d3c
Add exact integer octagon cover for 45-degree trace copper
rsp2k
2026-07-13 12:46:02 -06:00
-
7f81c1f4ce
Prove channel packing: connects all where greedy drops, feasibility-bounded
rsp2k
2026-07-13 12:27:31 -06:00
-
c28223ea9c
Add coordinated multi-trace channel packing to the room track
rsp2k
2026-07-13 12:27:23 -06:00
-
99c3d20de5
Prove shove-in-rooms recovers ordering drops but does not create density
rsp2k
2026-07-13 11:34:31 -06:00