Skip to the content
PCBKitNew board
2 layers45 × 30 mmDriver, the printed circuit board in 3D

Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

Size
45 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
10
Pads
28
Tracks, vias
107, 12
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Sep 2026
Updated
7 Sep 2026

Overview

Driver is an open-source printed circuit board by tscircuit, from the tscircuit/pcb-generation-benchmark01 repository on GitHub. It is a 2-layer board of 45 × 30 mm with 12 parts on 10 nets, routed with 107 tracks and 12 vias.

It is built around the MMBT3904LT1G. Its parts include 6 resistors, 2 diodes, 2 transistors, 1 capacitor and 1 connector.

Main components

1

README

README.md

PCB Generation Benchmark

Project scaffold for a paired dataset comparing three ways of producing PCB designs from the same prompts:

Method IDWorkflowPrimary artifacts
tscircuit-codegenGenerate tscircuit source codeSource, dependency lockfile, build outputs
kicad-codegenGenerate KiCad files directly or through recorded scripts/APIsNative project, schematic, PCB, generation scripts
kicad-computer-useCreate and edit designs through KiCad's GUINative project, schematic, PCB, screenshots and action trace

Status: 10 draft prompts and a completed two-method generation pilot. The prompt catalog includes easy, medium, and hard prompts with topic labels. The pilot results contain 20 generated schematic/PCB outcomes, retained candidates, previews, and raw validation reports. Computer use was excluded at the user’s request. Some generated designs have failing checks or unverified requirements; execution completion is not design acceptance. A deterministic rule scorer is implemented; reusable generation adapters/runner and scoring calibration remain future work.

Layout

text
prompts/                 Shared prompt catalog and per-prompt assets
configs/                 Experiment and environment templates
methods/                 Workflow contracts for the three methods
schemas/                 Record conventions for future validators
templates/               Copyable prompt, run, and evaluation records
data/runs/               Raw runs, organized by experiment/prompt/method/replicate
data/evaluations/        Separate evaluation records linked to run IDs
data/releases/           Future versioned dataset manifests
src/adapters/            Reserved for method implementations
src/runner/              Reserved for orchestration
src/evaluation/          Reserved for scoring and artifact inspection
scripts/                 Reserved for future commands
tests/                   Reserved for future validation tests
reports/                 Comparison reports and figures
docs/                    Protocol, dataset card, implementation roadmap
work/                    Ignored scratch space

Start here

  1. Read docs/protocol.md and docs/roadmap.md.
  2. Copy templates/prompt/ into prompts/items/<prompt-id>/, replace placeholders, and add the ID to prompts/catalog.json.
  3. Copy configs/experiment.template.json to a named experiment configuration. Freeze its prompt revisions, model, budgets, tools, and repeat count before collecting data.
  4. When the runner exists, collect each prompt across all three methods using templates/run/. Store evaluations separately using templates/evaluation.template.json.

Template files are examples of structure, not actual dataset entries. Cataloged prompts are drafts awaiting review. Do not report placeholder metrics as measurements. The recorded pilot uses installed tools and isolated generation tasks; reusable automation and full benchmark collection remain future work.

Deterministic scoring

The scoring implementation evaluates frozen artifacts with versioned rules and fixed 30/30/20/20 weights. Pilot scoring results include per-rule evidence, critical failures, unknowns and possible score bounds. Run bun run score -- 2026-09-05-codegen-pilot-01 to reproduce them. Missing evidence remains null; no model judge is called.

Historical model-judge proposal

See docs/model-judging.md for the model-judge plan, evaluation/rubric.json for scoring rules, and configs/judge.template.json for fixed judge settings. Judgment and baseline-comparison templates record evidence, repeated scores, and improvement/regression decisions. The model judge and baseline-comparison flow remain scaffolds; deterministic scoring is implemented separately as described above.

Pilot results

Start with the results and PCB previews. The frozen configuration and execution notes record tool versions, budgets, the GUI exclusion, and context limitations. Eighteen runs used fresh subagents; two were generated by the parent after a hard agent limit. No comparative quality score is claimed.

Regenerate the file inventory and check prompt hashes/pair completeness with bun run collect -- 2026-09-05-codegen-pilot-01 --require-complete. This inventories existing artifacts and does not rerun generation.

Git and storage

Track prompts, configs, native design files, code, and compact evidence. Do not commit secrets. Large recordings should use an explicitly selected external store or Git LFS when configured; record their URI and SHA-256 in the run manifest. Neither external storage nor LFS is configured yet. Dataset and code licensing remain undecided; see docs/dataset-card.md.

Development with TypeScript and Bun

All active repository code runs with Bun. Install locked dependencies with bun install --frozen-lockfile.

  • bun run typecheck — check TypeScript.
  • bun test — scoring, geometry, artifact readers, archive integrity, saved-result parity, and website checks. Website checks use the existing generated bundle; run bun run build first after a clean checkout.
  • bun run rules — verify/reproduce the ten frozen v1 rule specifications.
  • bun run score -- 2026-09-05-codegen-pilot-01 — evaluate retained artifacts into a new immutable TypeScript evaluation archive.
  • bun run collect -- 2026-09-05-codegen-pilot-01 --require-complete — inventory existing runs.
  • bun run build — render PCB layers and build the website.
  • bun run website:publish — build and replace the existing public website using ohmx-box.

The PCB renderer calls the native KiCad CLI (KICAD_CLI or kicad-cli on PATH). Hosting uses the existing ohmx-box CLI. These are external tools, not Python repository scripts. Historical generation scripts and archived Python evaluator sources remain unchanged under data/ for reproducibility. Canonical prompts and frozen run inputs also remain unchanged.

Parts

12
QtyValueFootprintReferences
2100kResistor_SMD:R_0805_2012MetricR3, R6
21kResistor_SMD:R_0805_2012MetricR1, R4
24.7kResistor_SMD:R_0805_2012MetricR2, R5
2MMBT3904LT1GPackage_TO_SOT_SMD:SOT-23Q1, Q2
2REDLED_SMD:LED_0805_2012MetricD1, D2
1100nFCapacitor_SMD:C_0805_2012MetricC1
1INPUTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1

Questions

How big is the Driver PCB?

It measures 45 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Driver use?

12 parts, built around the MMBT3904LT1G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Driver KiCad files?

From the tscircuit/pcb-generation-benchmark01 repository on GitHub, at the commit this page was made from: the board is data/runs/2026-09-05-codegen-pilot-01/npn-led-driver/kicad-codegen/replicate-1/artifacts/attempt-03/driver.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Driver design in my own project?

Its repository states no licence, so its author keeps all rights: ask tscircuit before reusing the design.

More from tscircuit/pcb-generation-benchmark01

10
  • 2 layers80 × 50 mmAnalog input, the printed circuit board in 3D

    Analog input

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    42 parts
  • 2 layers70 × 50 mmAttempt-02, the printed circuit board in 3D

    Attempt-02

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    24 parts
  • 2 layers65 × 65 mmMatrix, the printed circuit board in 3D

    Matrix

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    19 parts
  • 2 layers50 × 35 mmButtons, the printed circuit board in 3D

    Buttons

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    13 parts
  • 2 layers45 × 30 mmDriver, the printed circuit board in 3D

    Driver

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    12 parts
  • 2 layers50 × 30 mmAttenuator, the printed circuit board in 3D

    Attenuator

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    11 parts
  • 2 layers45 × 35 mmHub, the printed circuit board in 3D

    Hub

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    10 parts
  • 2 layers30 × 20 mmDivider, the printed circuit board in 3D

    Divider

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    6 parts
  • 2 layers35 × 25 mmRc filter, the printed circuit board in 3D

    Rc filter

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    4 parts
  • 2 layers30 × 20 mmIndicator, the printed circuit board in 3D

    Indicator

    tscircuit/pcb-generation-benchmark01

    Compare tscircuit code generation, KiCad file generation, and KiCad GUI design using shared difficulty- and topic-labeled PCB prompts and reproducible evaluations

    3 parts

Similar boards

  • 2 layers200.4 × 251.2 mmHypjolin, the printed circuit board in 3D

    Hypjolin

    triglav-modular/Hypjolin

    Cross-modulating ultra-chaos generator

    340 parts45Unlicense
  • 8 layers227.5 × 104 mmCom express-7-baseboard, the printed circuit board in 3D

    Com express-7-baseboard

    antmicro/com-express-7-baseboard

    This project contains open hardware design files for a baseboard supporting COM Express 7 modules. The board breaks-out major communications and peripheral interfaces provided by the standard.

    815 parts12Apache-2.0
  • 6 layers36 × 124 mmOpenDual Reader, the printed circuit board in 3D

    OpenDual Reader

    nuerolynx/embedded-systems-lab

    Arduino UNO R4 WiFi and ESP32 prototypes for access control, automation, displays, monitoring, and Bluetooth audio.

    74 parts4
  • 2 layers68.6 × 53.3 mmKVLShield, the printed circuit board in 3D

    KVLShield

    gatekeep/KFDToolSW_NET4.0

    Quick test to see feasibility to downgrade the KFDTool GUI to .NET 4.0

    134 parts3MIT
  • 2 layers65 × 56 mmIGrillRPiSSRCtl rev sE, the printed circuit board in 3D

    IGrillRPiSSRCtl rev sE

    kins-dev/igrill-smoker

    Using the iGrill as a control unit for a DIY smoker

    65 parts3
  • 2 layers45.7 × 46.1 mmSoundboxesp32, the printed circuit board in 3D

    Soundboxesp32

    zarlicho/Qris-soundbox-esp32

    QRIS Soundbox adalah sistem notifikasi pembayaran realtime yang dikembangkan untuk menerima dan memproses notifikasi pembayaran QRIS melalui protokol MQTT.

    43 parts3
  • 4 layers110 × 90 mmURC, the printed circuit board in 3D

    URC

    spikonado/URC

    Universal Robot Controller

    180 parts2CERN-OHL-W-2.0
  • 4 layers86 × 145 mmCopper layers, the printed circuit board in 3D

    Copper layers

    JCastel358/Eltec406mca

    code for industrial automation process

    206 parts1