Live Agent working · engine-01 Placer/router engine positioning
Back to SOTA Summary
Open-source PCB ecosystem

KiCad Push-and-Shove and Freerouting

This is the closest open-source PCB reference point. KiCad does not rely on a built-in black-box autorouter; its production strength is interactive push-and-shove. Freerouting fills the automatic-routing role through Specctra DSN/SES exchange.

Class

Interactive routing plus external DSN/SES autorouting

Core Stance

KiCad excels at interactive push-and-shove; Freerouting is a DSN/SES autorouter with fanout, cost tuning, post-route optimization, and broad EDA integration.

Page Sections
Architecture

How It Works

KiCad interactive routing supports push-and-shove, walkaround, collision highlighting, differential pairs, and length/skew tuning.

Push-and-shove recursively moves existing traces/vias to make room for the trace being drawn while preserving design rules.

Freerouting consumes a Specctra/Electra DSN design and emits a SES session file. That decouples the router from the CAD editor and makes it broadly integrable.

Freerouting lets users choose usable layers, preferred routing directions, via insertion, fanout before autorouting, post-route via/wirelength reduction, and detailed route costs.

The open ecosystem makes progress visible: KiCad has API/doxygen references for PNS internals; Freerouting exposes code, CLI, GUI, API, and release artifacts.

Comparison

Compared With Our Flow

Our flow is more fully automated than KiCad interactive routing, but KiCad has a stronger local shove model.

Our router is integrated directly with TOML and KiCad PCB output, while Freerouting relies on DSN/SES interchange.

Our cost model is still young. Freerouting exposes many user-tunable cost/detail parameters.

Our detailed ECO pass now has recursive shove/rollback, but KiCad PNS-style shove is still the more mature abstraction for local conflicts because it operates during every local edit.

Gaps

Gaps It Exposes

Recursive shove/rollback exists in ECO, but it is not yet integrated into the main detailed route commit path.

No mature route-cost tuning UI or per-layer/per-via detailed route controls.

No standard DSN/SES import/export loop for comparing against external routers.

No robust post-route optimizer for via count and cumulative trace length.

Actions

What We Should Steal

Promote the PNS-inspired shove stack from ECO into the main route accept/retry loop: colliding item discovery, recursive displacement, rollback, and line/via fixup.

Expose router knobs in constraints TOML and the dev site, then record the exact knobs used in benchmark results.

Add DSN/SES export/import as a competitor harness so we can benchmark Freerouting on identical placements.

Split cleanup into legalizing optimizer passes: via reduction, track shortening, trace centering, and dangling artifact removal.

Sources
Other SOTA Pages