Active Development • 20K+ Training Episodes

AI PCB Placement
Engine for KiCad

A reinforcement learning system that reads .kicad_pcb files, encodes circuit topology via GNN, then auto-places components to minimise wirelength and signal crossings.

Status: Active Research

Currently refining the Gymnasium environment and training the core EdgeGNN models. This is an open-source R&D project, not a commercial product.

NeurPCB System Architecture

Pipeline: KiCad → GNN Encoder → RL Policy → Output

Powered By

Modern Tech Stack

PyTorch
GNN + RL training
PyG (HeteroData)
Component-net graphs
Gymnasium
Custom RL environment
KiCad
Native .kicad_pcb I/O
GRPO
Group Relative Policy Opt
Optuna
Auto hyperparameter search
Claude 4.6
Spatial constraint extraction
AWS
EC2 GPU • S3 • Bedrock
Features & Validation

Working Code. Real Data.

Everything below is fully implemented and running — no mockups, just engineering.

Data Pipeline

Crawl GitHub → parse KiCad → build PyG heterogeneous graphs. Fully automated processing.

~/$ python scripts/run_graph_builder.py --stats [INFO] Loaded 7,142 valid KiCad parsed files. [INFO] Constructed 1,836 single-sided HeteroData graphs. ... Component features: (N, 16) | Net features: (N, 7)
Dataset Statistics

Custom RL Environment

From-scratch Gymnasium env with O(1) collision detection, incremental HPWL, and crossing penalties.

O(1) SAT (Summed Area Table) action masking — no collision loops
Exact courtyard collision + 0.5mm edge clearance DRC
Position quality reward: centrality + spacing shaping
neurpcb/env/__init__.py
def _compute_action_mask(self, comp_idx): # O(1) per grid point — no nested loops area = sat[x2,y2] - sat[x1,y2] - sat[x2,y1] + sat[x1,y1] return in_board & (area == 0)

LLM Spatial Reasoner

Leveraging Claude 4.6 to extract human-like layout heuristics from unrouted netlists before training.

Proximity clustering & signal grouping
Board edge alignment detection
High-frequency interference boundaries
{ "constraint_type": "edge_alignment", "target_components": ["USB1", "J2"], "priority": "critical", "reasoning": "External I/O ports MUST align with PCB edge." }

Neuro-Symbolic Core

A hybrid architecture combining continuous graph representation with discrete logic & constraints.

HeteroData
LLM JSON
EdgeGNN Pairwise
Pretrained
Policy Head

Agent is pretrained via pairwise ranking on millions of synthetic perturbations, then fine-tuned through GRPO with multi-objective rewards.

Placement Quality

The RL agent optimises placement continuously, balancing 4 complex reward signals simultaneously per step.

HPWL — minimise total wirelength
Crossing — penalise ratsnest intersections
Centrality — Gaussian bonus shaping
AI vs Random Placement

How It Works

1

Import

Load .kicad_pcb

2

Encode

Build HeteroGraph + GNN

3

Place

RL agent optimization

4

Export

Write valid KiCad file

Building the Future of
PCB Layout.

NeurPCB is an active open-source research project exploring reinforcement learning for hardware design. Check out our codebase to follow the development.