TL;DR

  • CircuitPilot은 자연어만으로 실제 제조 가능한 PCB를 설계하는 AI 에이전트 구축을 시도하며, 결과를 KiCad에서 열 수 있는 .kicad_pcb 파일로 제공함.
  • OpenAI·Claude·로컬 LLM은 부품 매니페스트 추출과 IPC 규칙 검사를 담당하고, 결과는 처음부터 직접 작성한 네이티브 Python 엔진으로 전달됨.
  • Python 엔진은 부품 간 반발력과 전기적 네트의 훅의 법칙(Hooke's Law) 스프링을 결합한 힘 기반 그래프 시뮬레이션을 사용함.
  • 트레이스 배선은 네트 인식 최단 경로 알고리즘, 45도 모따기, 다층 비아를 지원함.
  • 전체 프로젝트는 오픈 소스로 공개됐으며, 단일 docker-compose up 명령으로 로컬 실행 가능함.

CircuitPilot의 목표

  • 자연어에서 실제 제조 가능한 PCB를 설계하는 AI 에이전트 구축 가능성을 검토함.
  • 단순히 텍스트를 출력하는 시스템이 아니라, 제조에 사용할 수 있는 회로기판 설계를 생성하는 것을 목표로 함.
  • 대규모 언어 모델(LLM)은 논리에는 강하지만 공간 추론에는 취약하다는 점을 전제로 설계를 분리함.

LLM과 비평기

  • OpenAI·Claude·로컬 LLM을 사용해 부품 매니페스트를 추출함.
  • 추출한 매니페스트에 대해 IPC 규칙 검사를 실행함.
  • 이 검사 구성 요소는 “비평기(Critic)”로 불리며, 결과를 맞춤형 네이티브 Python 엔진에 전달함.

물리 기반 배치 및 배선 엔진

  • 엔진은 처음부터 직접 작성한 네이티브 Python 엔진임.
  • 부품 배치에는 힘 기반 그래프(Force-Directed Graph) 시뮬레이션을 사용함.
  • 부품은 서로 밀어내는 힘을 가짐.
  • 전기적 네트는 훅의 법칙에 따른 스프링처럼 작동해 연결된 부품을 서로 끌어당김.
  • 트레이스 배선에는 네트를 인식하는 최단 경로 알고리즘을 사용함.
  • 45도 모따기를 적용함.
  • 다층 비아를 지원함.

결과 파일과 실행 방식

  • 생성 결과는 .kicad_pcb 파일이며, KiCad에서 직접 열 수 있음.
  • React UI에서 파일을 바로 다운로드할 수 있음.
  • UI 렌더링에는 KiCanvas를 사용함.
  • 전체 프로젝트는 오픈 소스로 공개됨.
  • 단일 docker-compose up 명령으로 로컬에서 실행 가능함.

소스 코드