Skip to content

feat: add single-layer and multilayer fanout autorouters - #2889

Merged
seveibar merged 1 commit into
mainfrom
agent/fanout-autorouter
Jul 28, 2026
Merged

feat: add single-layer and multilayer fanout autorouters#2889
seveibar merged 1 commit into
mainfrom
agent/fanout-autorouter

Conversation

@seveibar

@seveibar seveibar commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add autorouter="single_layer_fanout" and autorouter="fanout"
  • register both modes through the local-autorouter strategy extension point now on main
  • run @tscircuit/fanout-solver as a breakout-only stage that returns escape traces plus a transformed SimpleRouteJson
  • pass that transformed problem to a separate default-autorouter follow-up stage
  • read per-bus fanout policy from <autoroutingphase busFanoutDirections={...}>
  • infer the source footprint without requiring a component selector
  • preserve circular pad geometry for interstitial and thermal-pad escapes
  • replace escaped source pads with fixed source-footprint keepouts for downstream routing
  • keep <bus> limited to electrical connection membership
  • bundle the fanout solver into core

Integration cleanup

Breakout coverage

  • two-layer <breakout> regression with a 6×6, 0.8 mm-pitch BGA surrounded on four sides by four 0603 decoupling capacitors
  • four two-signal buses
  • fanout phase produces eight boundary escape traces and eight vias
  • downstream phase completes all 16 trace segments to the capacitors
  • no PCB autorouting, trace-clearance, pad-clearance, or via-clearance errors under 0.1 mm trace/clearance rules and 0.2/0.5 mm via geometry
  • full PCB and multi-stage SimpleRouteJson snapshots

Validation

  • bunx tsc --noEmit
  • focused fanout, breakout, bus, and preset tests
  • full local suite: 1,276 passing, 31 skipped, 0 failing
  • git diff --check
  • PCB and phase-stack snapshots visually verified: fanout stops at the shared breakout boundary, then the default stage completes routing to the surrounding capacitors

@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tscircuit-core-benchmarks Ready Ready Preview, Comment Jul 28, 2026 6:22pm

Request Review

@seveibar
seveibar force-pushed the agent/fanout-autorouter branch from 1fbece8 to 2f1b2c6 Compare July 28, 2026 18:21
@seveibar
seveibar marked this pull request as ready for review July 28, 2026 18:30
@seveibar
seveibar merged commit 75e5918 into main Jul 28, 2026
10 checks passed
@seveibar
seveibar deleted the agent/fanout-autorouter branch July 28, 2026 18:30
@tscircuitbot

Copy link
Copy Markdown
Contributor

Thank you for your contribution! 🎉

PR Rating: ⭐⭐⭐
Impact: Major

Track your contributions and see the leaderboard at: tscircuit Contribution Tracker


KrishnaX12 added a commit to KrishnaX12/core that referenced this pull request Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants