Vibeleaderboard
Index / tool
Category
Developer Tools
Rank

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 requirementsOptimized trace routing paths between components

  • Generate routing solutions for circuit boards

    Circuit schematic and board constraintsComplete PCB layout with routed connections

  • Optimize trace placement for signal integrity

    PCB design with electrical requirements and constraintsRouting solution with minimized interference and crosstalk

  • Process tscircuit design files

    tscircuit project filesAuto-routed PCB layout compatible with tscircuit

  • Calculate shortest path connections between components

    Component positions and net requirementsOptimal routing paths with minimal trace length

  • Resolve routing conflicts and overlaps

    PCB design with conflicting trace requirementsConflict-free routing solution with proper layer assignments

Tags

pcbautoroutertscircuitelectronicstypescript

Tech Stack

Node.jsTypeScriptVite

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.