How srivikasganugu/routing-design-automation- works
This repository is a PCB autorouter and board-editing application, rather than an AI service as its project name might suggest. The main workflow is loading a design, editing or routing its board, then saving the updated design or routing session. The source tree also exposes REST API controllers and a KiCad plugin. The README only identifies the capstone project; workflow details here are inferred from the tree and sampled source. API job-controller behavior and most plugin wiring were not sampled, so those connections are omitted.
Main entry points: BoardHandling.java Board interaction · ApiServlet.java REST API · FileController.java File handling · RoutingBoard.java Routing board
Components 18
User interfaces
- Desktop UI
Autobimrouter-AI/src/main/java/app/freerouting/gui/MainApplication.java - REST API
Autobimrouter-AI/src/main/java/app/freerouting/api/ApiServlet.java - Job endpoints
Autobimrouter-AI/src/main/java/app/freerouting/api/v1/JobControllerV1.java - Session endpoints
Autobimrouter-AI/src/main/java/app/freerouting/api/v1/SessionControllerV1.java - System endpoints
Autobimrouter-AI/src/main/java/app/freerouting/api/v1/SystemControllerV1.java
Board workflow
- Board interaction
Autobimrouter-AI/src/main/java/app/freerouting/interactive/BoardHandling.java - Interactive routing
Autobimrouter-AI/src/main/java/app/freerouting/interactive/RouteState.java - Routing board
Autobimrouter-AI/src/main/java/app/freerouting/board/RoutingBoard.java - Board search trees
Autobimrouter-AI/src/main/java/app/freerouting/board/SearchTreeManager.java
Routing engine
- Autoroute control
Autobimrouter-AI/src/main/java/app/freerouting/autoroute/AutorouteControl.java - Autoroute engine
Autobimrouter-AI/src/main/java/app/freerouting/autoroute/AutorouteEngine.java - Batch autorouting
Autobimrouter-AI/src/main/java/app/freerouting/autoroute/BatchAutorouter.java
Design exchange
- DSN import
Autobimrouter-AI/src/main/java/app/freerouting/designforms/specctra/SpecctraDsnFileReader.java - File handling
Autobimrouter-AI/src/main/java/app/freerouting/filehandling/FileController.java - SES export
Autobimrouter-AI/src/main/java/app/freerouting/designforms/specctra/SpecctraSesFileWriter.java - KiCad plugin
Autobimrouter-AI/integrations/KiCad/kicad-freerouting/plugins/plugin.py
Other components
- PCB designer
- API client
Connections 18
- PCB designer → Desktop UI: uses
- Desktop UI → Board interaction: handles edits
- Board interaction → Routing board: updates board
- Interactive routing → Routing board: routes traces
- Board interaction → Interactive routing: starts routing
- Routing board → Board search trees: indexes items
- Board interaction → Autoroute control: configures routing
- Autoroute control → Autoroute engine: controls search
- Autoroute engine → Routing board: updates routes
- Board interaction → Batch autorouting: runs batch routing
- API client → REST API: sends requests
- REST API → Job endpoints: dispatches
- REST API → Session endpoints: dispatches
- REST API → System endpoints: dispatches
- Desktop UI → File handling: loads and saves
- File handling → DSN import: imports design
- File handling → Board interaction: loads board
- File handling → SES export: exports session