Skip to content

Handle connected copper in fanout clearance - #7

Merged
seveibar merged 2 commits into
mainfrom
agent/connected-copper-clearance
Jul 28, 2026
Merged

Handle connected copper in fanout clearance#7
seveibar merged 2 commits into
mainfrom
agent/connected-copper-clearance

Conversation

@seveibar

Copy link
Copy Markdown
Contributor

Summary

  • add the exact serialized clad1 RP2040 fanout input as dataset06
  • fix clearance validation so copper whose connectedTo list contains the connection name is not treated as a foreign obstacle
  • add a focused regression for crossing same-connection copper
  • render failed datasets as visibly labeled best-attempt snapshots and check in the clad1 image

Verified improvement

The exact fixture contains:

  • 132 top-layer connections and 132 atomic buses
  • 265 mixed-footprint obstacles
  • one shared component-area boundary
  • escapeLayers: ["top"]
  • compactBusTracks: true
  • borderDistribution: "even"
  • no alternate escape layer

Same-connection copper awareness improves the deterministic best attempt from 35/132 to 37/132 connections.

clad1 RP2040 fanout snapshot

The snapshot is intentionally labeled INCOMPLETE 37/132; this PR does not claim a complete route.

Remaining fanout features surfaced by the repro

  1. Non-monotone single-layer escapes. At least one left-targeted connection has the RP2040 pad field and exposed pad directly to its left. A valid escape must initially move away from the requested boundary, route around the copper, and then turn back. The current lane and push/shove solvers are monotone.
  2. Mergeable multi-terminal electrical nets. Repeated source_net_*::fanout:* terminals are currently allocated as mutually exclusive traces even when they share one netConnectionName. Routing them as one mergeable tree would remove artificial same-net congestion.

As a cross-check, the capacity autorouter's tiny-hypergraph pipeline reduced the full case to two unresolved high-density nodes at effort 2, but did not produce a complete accepted route after about 4.5 million iterations. That result is not committed or counted as success.

Refs #4.

Validation

  • bun test — 22 passing
  • bun run typecheck
  • bun run format:check
  • git diff --check
  • visual inspection of docs/images/dataset06/sample001.png

@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
fanout-solver Ready Ready Preview, Comment Jul 28, 2026 2:26am

Request Review

@seveibar
seveibar merged commit ed4c070 into main Jul 28, 2026
3 checks passed
@tscircuitbot

Copy link
Copy Markdown
Collaborator

Thank you for your contribution! 🎉

PR Rating: ⭐⭐⭐
Impact: Major

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


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