We wanted to see if we could build an AI agent that actually designs real, manufacturable PCBs from natural language, rather than just spitting out text.
LLMs are great at logic but terrible at spatial reasoning. So we decoupled them: we use an LLM (OpenAI/Claude/Local) to extract a component manifest and run an IPC-rules check (the "Critic"), and then we pass that to a custom Native Python Engine we wrote from scratch.
The Python engine uses a Force-Directed Graph simulation. Components repel each other, but electrical nets act as Hooke's Law springs, pulling related components together. Then it routes the traces using a net-aware shortest-path algorithm with 45-degree chamfers and multi-layer vias.
The result is a .kicad_pcb file that you can download directly from our React UI (rendered with KiCanvas) and open in KiCad.
We've made it totally open source. You can run it locally with a single docker-compose up command.
We wanted to see if we could build an AI agent that actually designs real, manufacturable PCBs from natural language, rather than just spitting out text.
LLMs are great at logic but terrible at spatial reasoning. So we decoupled them: we use an LLM (OpenAI/Claude/Local) to extract a component manifest and run an IPC-rules check (the "Critic"), and then we pass that to a custom Native Python Engine we wrote from scratch.
The Python engine uses a Force-Directed Graph simulation. Components repel each other, but electrical nets act as Hooke's Law springs, pulling related components together. Then it routes the traces using a net-aware shortest-path algorithm with 45-degree chamfers and multi-layer vias.
The result is a .kicad_pcb file that you can download directly from our React UI (rendered with KiCanvas) and open in KiCad.
We've made it totally open source. You can run it locally with a single docker-compose up command.
Repo: https://github.com/Paramveersingh-S/CircuitPilot We'd love your feedback on the routing engine!