Commit Graph

  • 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