Prototype · Design automation
Tracgen
Describe the board, approve the schematic, and get manufacturing files.
Hardware teams who spend more time on routine boards than on the interesting ones.
g1-esp32-env-sensorsucceededI need a battery-powered WiFi environmental sensor board. ESP32-S3-WROOM-1-N8R2 module, BME280 over I2C, a 1S 500 mAh LiPo charged over USB-C, 3.3 V from an LDO, one LED and one button, 4× M2 holes. No bigger than 50 × 40 mm, 2 layers. Build quantity 100, everything in stock at Digi-Key or Mouser, unit BOM under $18.
-
00 Ingest
ingestReads the prompt and any spec documents you uploaded.
-
01 Formalize
formalizeQuick confirmTurns the brief into a BoardSpec:
env-sensor-rev-a, 2 layers, 50 × 40 mm at most, M2 holes. It can ask up to five questions.Q1. Should the I2C bus also be exposed on an expansion connector (e.g. Qwiic/JST-SH)?
Suggested: “No - onboard sensor only for rev A.”
-
02 Architecture
architectureSplits the board into blocks:
blk_usb,blk_charger,blk_battery,blk_power_reg,blk_mcu,blk_sensor,blk_led_ui. Rails go VBUS 5 V → VSYS 4.2 V → 3V3. -
03 Component search
component_searchFinds parts through Nexar, Digi-Key and Mouser, and drops anything without 5× the build quantity in stock: ESP32-S3-WROOM-1-N8R2, BME280, MCP73831T-2ACI/OT, AP2112K-3.3TRG1, TYPE-C-31-M-12.
-
04 Circuit synthesis
circuit_synthesisWorks out the supporting parts for each block, like the 5.1k pull-downs on CC1 and CC2.
-
05 Schematic
schematicWrites the KiCad schematic and runs
kicad-cli sch erc --format json. -
06 Schematic review
schematic_reviewRequired reviewYour review, with the BOM priced live, an explanation for each block, and risk flags like Low stock or Single source.
Request changes needs at least one comment. After approval, Tracgen carries on by itself. No further input is needed unless verification finds a critical issue.
-
07 Board setup
board_setupFootprints, board outline, stackup and netlist sync.
-
08 Placement
placementA hints agent suggests where parts go, then a deterministic annealer places them.
-
09 Routing
routingWrites a Specctra DSN and runs freerouting on it (
-de board.dsn -do board.ses), then rips up and re-routes any nets that fail DRC. -
10 Verification
verificationkicad-cli pcb drchas to come back with zero errors. Then netlist equivalence, rail continuity, and an AI design review. -
11 Outputs
outputsGerbers, Excellon drill, BOM, pick-and-place, PDFs and renders, zipped as
<project>-rev<r>-fab.zip.
What it does
Describe a circuit board and get back one you can manufacture.
It runs on its own from start to finish, with two places it stops for a person: a quick confirmation of the board spec near the start, and a required review of the schematic. After you approve the schematic, footprints, board setup, placement, routing, DRC and outputs all happen automatically. Everything it produces is a native KiCad file checked with kicad-cli, so you can open and edit the design in KiCad like any other project.
- 01
Schematic, layout, routing, DRC and manufacturing package, all automated
- 02
Native KiCad files throughout, checked with kicad-cli and routed with freerouting
- 03
Live part sourcing and pricing through Nexar, Digi-Key and Mouser
- 04
Two human checkpoints: confirm the spec, then approve the schematic
What you get back
A fab zip and a KiCad project.
The outputs stage writes everything a board house needs, plus the reports behind each decision. Anything it can’t produce gets skipped with a note in README.txt. BOM prices are the snapshot taken at schematic review, not a fresh quote.
<project>-rev<r>-fab.zip ├── gerbers/ # plus Excellon drill and drill map ├── bom.csv, bom.xlsx ├── pnp_top.csv, pnp_bottom.csv, cpl_jlc.csv ├── schematic.pdf ├── assembly_top.pdf, assembly_bottom.pdf ├── board_renders/top.png, bottom.png ├── kicad_project/ # .kicad_pro, schematic, routed .kicad_pcb ├── reports/ # erc, drc, placement, routing, │ # design_review, provenance (.json) └── README.txt
Where it stands
A working prototype with rough edges.
The pipeline runs end to end, but it isn’t something you can use yet. freerouting needs Java 17 and a display, so headless hosts run it under xvfb-run. When it fails, the built-in fallback router finishes the job with poor traces. Only the first of the three test briefs has a fully mocked test path, and the routing report doesn’t record per-net lengths yet, so length-matched buses still need a manual check.
Specification
What it’s built with, and when.
Pulled from the repository each time this site is built.
- State
- Prototype
- Discipline
- Design automation
- Shape
- Developer tooling
- Started
- Jun 2026
- Last change
- Jun 2026
- Commits
- 22
- Python
- TypeScript
- KiCad 10
- Claude API
- Nexar
- Python 79%
- TypeScript 21%
Related work
Built alongside Tracgen
Next
Put Tracgen in your pipeline
Ask about hooking it up to the repositories and agents you already run.