How drandyhaas/kicadroutingtools works
KiCad Routing Tools is a KiCad PCB autorouter and board-workflow toolkit, exposed through a plugin GUI and command-line tools. Its main workflow takes a board through routing and board modification, then checks connectivity and design-rule outcomes. The documented product also includes differential-pair and plane routing, fanout, placement optimization, AI-assisted plans, and rendering. The tree and README establish these capabilities, but several entry-point and cross-subsystem call paths were not sampled; those relationships are omitted rather than inferred.
Main entry points: single_ended_routing.py Single-ended routing · swig_gui.py KiCad plugin · simple.py Placement engine · routing_context.py Routing context
Components 23
User interfaces
- KiCad plugin
kicad_routing_plugin/swig_gui.py - CLI tools
py_router/route.py - AI assistance
kicad_routing_plugin/ai_backend.py - Routing plans
py_router/run_plan.py
Routing engine
- Single-ended routing
py_router/single_ended_routing.py - Rust A* core
rust_router/src/router.rs - Routing context
py_router/routing_context.py - Routing configuration
py_router/routing_config.py - Obstacle map
py_router/obstacle_map.py
Specialized routing
- Differential pairs
py_router/diff_pair_routing.py - Plane routing
py_router/route_planes.py - BGA fanout
py_router/bga_fanout/__init__.py - QFN fanout
py_router/qfn_fanout/__init__.py - Bus routing
py_router/bus_corridor.py
Placement optimization
- Placement engine
py_placer/placement/simple.py - Floorplan intent
py_placer/placement/floorplan.py
Verification and output
- Board modification
py_router/pcb_modification.py - Connectivity checks
py_router/check_connected.py - DRC checks
py_router/check_drc.py - Copper cleanup
py_router/cleanup_pipeline.py - Board rendering
py_router/route_render.py
Other components
- Board designer
- KiCad board
Connections 24
- Board designer → KiCad plugin: uses
README.md - Board designer → CLI tools: uses
README.md - KiCad plugin → AI assistance: offers
README.md - KiCad plugin → Routing plans: loads
README.md - KiCad board → Single-ended routing: routes
README.md - CLI tools → Single-ended routing: runs
README.md - Single-ended routing → Rust A* core: uses
README.md - Single-ended routing → Board modification: writes
- Single-ended routing → Differential pairs: supports
README.md - Single-ended routing → Plane routing: supports
README.md - Single-ended routing → BGA fanout: supports
README.md - Single-ended routing → QFN fanout: supports
README.md - Single-ended routing → Bus routing: supports
README.md - Single-ended routing → Connectivity checks: verifies
README.md - Single-ended routing → DRC checks: checks
README.md - Single-ended routing → Copper cleanup: cleans
README.md - Board designer → Placement engine: optimizes
README.md - Placement engine → Floorplan intent: uses intent
README.md - Placement engine → Single-ended routing: fast route
README.md - Board designer → Board rendering: views board
README.md - Routing context → Obstacle map: uses
py_router/routing_context.py - Routing context → Routing configuration: uses
py_router/routing_context.py - Rust A* core → Obstacle map: reads
rust_router/src/router.rs - Routing plans → KiCad plugin: runs headless
README.md