
TSCircuit Autorouter
https://github.com/tscircuit/tscircuit-autorouter- Category
- Developer Tools
- Rank
- No. 884Tools index
Previous survey · No. 869 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- tscircuit
- GitHub
- 81 stars
- Date
About
A state-of-the-art MIT-licensed PCB autorouter. Designed for tscircuit but usable as a standalone autorouting engine.
What it does
It turns board geometry, obstacles, layer information, and connection points into routed copper traces. A staged pipeline plans paths on graph structures, converts them into physical routes, then refines and stitches those routes. Callers advance the solver incrementally and receive the original routing data with traces added.
Why it's ranked here
The design is unusually inspectable for a specialized routing engine. It exposes intermediate visualization data, uses explicit input and output structures, and documents its multi-stage strategy. Several generations of routing pipelines and a large exported surface also signal active algorithm exploration, though they increase the cost of choosing stable integration points.
What's good
Inputs capture practical constraints including obstacles, legal layers, trace widths, buses, skew limits, differential-pair spacing, and optional via-in-pad behavior. Routing progresses step by step, so applications can observe completion or failure without surrendering control. The output preserves source routing metadata while adding wires and vias, which simplifies downstream processing and debugging.
Tradeoffs
The public surface exposes many pipeline generations, specialized solvers, caches, optimizers, and repair components. That breadth can make the preferred abstraction less obvious beyond the documented default solver. Callers must resolve stackup-aware impedance targets into concrete widths and gaps before routing. Via-in-pad support also depends on fabrication capabilities and remains disabled by default.
How to use it well
It fits TypeScript or Node.js systems that already represent boards as structured routing geometry and need programmable trace generation. Start with the documented default pipeline, retain the incremental solve loop, and use visualization output when diagnosing failures. Treat impedance calculation and fabrication-rule decisions as upstream engineering work, not responsibilities this router covers.
Technical notes+
README.md documents the SimpleRouteJson contract, incremental AutoroutingPipelineSolver loop, visualization support, Bun installation, and output traces. package.json defines an ESM package built from lib/index.ts with tsup, declaration generation, minification, and source maps; only three packages appear under runtime dependencies while the extensive routing ecosystem sits under devDependencies. lib/index.ts aliases AutoroutingPipelineSolver7_MultiGraph as AutoroutingPipelineSolver and exports caches, rerouting helpers, jumper solvers, high-density solvers, DRC repair types, and SRJ types. lib/autorouter-pipelines/index.ts exposes nine named pipeline generations. docs/blog-post/blog-post.md describes the graph-planning, mesh simplification, physical routing, stitching, via removal, and path simplification stages, plus hyper solvers that race parameterized sub-solvers.
Observed
- License
- MIT
- Primary language
- TypeScript
- Package
- Published as @tscircuit/capacity-autorouter
- Install surface
- Installed with Bun through the package registry
- Interface
- ES module library with an incremental solver API
- Runtime
- Documented for Node.js and TypeScript projects
- Input and output
- Consumes SimpleRouteJson and returns it with populated PCB traces
- Build surface
- Build produces minified ESM, TypeScript declarations, and source maps
Read from README.md, package.json, main.tsx, lib/index.ts, lib/types/index.ts, lib/autorouter-pipelines/index.ts, lib/solvers/JumperPrepatternSolver/index.ts, lib/solvers/MultiSectionPortPointOptimizer/index.ts, lib/solvers/FixedTopologyHighDensityIntraNodeSolver/index.ts, lib/solvers/ComponentDetectionSolver/detectors/index.ts, lib/solvers/PortPointPathingSolver/hgportpointpathingsolver/index.ts, lib/solvers/HyperHighDensitySolver/GrowShrinkHighDensityIntraNodeSolver/index.ts, docs/blog-post/blog-post.md, vite.config.ts, json-modules.d.ts.
What it can do
Automatically route PCB traces
PCB design with component placements and connection requirements → Optimized trace routing paths between components
Generate routing solutions for circuit boards
Circuit schematic and board constraints → Complete PCB layout with routed connections
Optimize trace placement for signal integrity
PCB design with electrical requirements and constraints → Routing solution with minimized interference and crosstalk
Process tscircuit design files
tscircuit project files → Auto-routed PCB layout compatible with tscircuit
Calculate shortest path connections between components
Component positions and net requirements → Optimal routing paths with minimal trace length
Resolve routing conflicts and overlaps
PCB design with conflicting trace requirements → Conflict-free routing solution with proper layer assignments
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.