A reinforcement learning system that reads .kicad_pcb
files,
encodes circuit topology via GNN, then auto-places components to minimise wirelength and signal
crossings.
Currently refining the Gymnasium environment and training the core EdgeGNN models. This is an open-source R&D project, not a commercial product.
Pipeline: KiCad → GNN Encoder → RL Policy → Output
Everything below is fully implemented and running — no mockups, just engineering.
Crawl GitHub → parse KiCad → build PyG heterogeneous graphs. Fully automated processing.
From-scratch Gymnasium env with O(1) collision detection, incremental HPWL, and crossing penalties.
Leveraging Claude 4.6 to extract human-like layout heuristics from unrouted netlists before training.
A hybrid architecture combining continuous graph representation with discrete logic & constraints.
Agent is pretrained via pairwise ranking on millions of synthetic perturbations, then fine-tuned through GRPO with multi-objective rewards.
The RL agent optimises placement continuously, balancing 4 complex reward signals simultaneously per step.
Load .kicad_pcb
Build HeteroGraph + GNN
RL agent optimization
Write valid KiCad file
NeurPCB is an active open-source research project exploring reinforcement learning for hardware design. Check out our codebase to follow the development.