Live Agent working · engine-01 Placer/router engine positioning
Back to SOTA Summary
Altium

Altium ActiveRoute and Interactive Routing

Altium is not trying to make a black-box autorouter the designer blindly trusts. Its strongest routing story is auto-interactive: the user selects nets, layers, and intent, while the router handles local geometry, obstacle avoidance, differential pair rules, and post-route glossing.

Class

PCB interactive + guided automatic routing

Core Stance

Human-guided detailed routing with automatic glossing, push/shove, walkaround, and rule-aware multi-net routing.

Page Sections
Architecture

How It Works

Interactive routing starts from an electrical object on the chosen net and continuously proposes legal track/via geometry as the cursor moves.

The routing engine supports conflict modes such as push-and-shove, hug-and-push, walkaround, and collision highlighting. Those modes make routing an online detailed-routing problem instead of a static one-shot A* path.

ActiveRoute operates on selected nets or connections, not the whole board by default. The designer scopes the problem and gives layer/corridor intent, then the tool routes multiple nets within those constraints.

Glossing is a first-class post-process. During and after routing, Altium smooths/cleans tracks to reduce unnecessary bends, fix rule interactions at room boundaries, and improve manufacturability.

Rules drive the engine: widths, clearances, differential-pair gaps, layer rules, rooms, and classes are consulted while producing geometry.

Comparison

Compared With Our Flow

Our router is more autonomous, but less interactive and less intent-aware. We route the whole design from TOML constraints, while Altium assumes a skilled designer can scope and guide hard regions.

Our detailed geometry is mostly produced by sequential 3D A* plus post-hoc sweeps. Altium treats local shove/walk/gloss as core detailed-routing operations.

Our DRC cleanup is scriptable but late. Altium tries to keep the route legal while it is being drawn, then glosses immediately.

Our diff-pair path now has a default coupling bias, but it is still not a true simultaneous pair router with skew/gap in the search state. Altium exposes diff-pair routing and tuning as an interactive primitive.

Gaps

Gaps It Exposes

Machine-generated sketch/intent corridors now exist for coarse guides, but no interactive or user-scoped sketch router yet.

An early recursive shove/rollback path exists in detailed ECO, but it is not yet a mature online push-and-shove environment.

No first-class glossing/smoothing stage with design-rule awareness.

Pair-aware routing is started through coupling bias, but not yet mature multi-net co-routing.

Actions

What We Should Steal

Add a generic route-intent layer: corridors, preferred layers, bundle order, and keep-together groups derived from constraints, not net-name hardcoding.

Promote ECO shove from cleanup into the detailed router: move blockers, repair them, and keep the whole transaction legal.

Add a post-route gloss pass that simplifies bends, centers traces in channels, and rechecks DRC after every local edit.

Replace pair bias with coupled two-net search that carries pair spacing and skew in the state, not as independent A* fallback.

Sources
Other SOTA Pages