Skip to the content
PCBKitNew board
2 layers65 × 65 mmMatrix, 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
65 × 65 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
15
Pads
60
Tracks, vias
75, 6
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Sep 2026
Updated
7 Sep 2026

Overview

Matrix 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 65 × 65 mm with 19 parts on 15 nets, routed with 75 tracks and 6 vias.

Its parts include 9 diodes, 9 switches and 1 connector. It belongs with the lEDs and displays boards of this library.

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

19
QtyValueFootprintReferences
91N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD11, D12, D13, D21, D22, D23, D31, D32, D33
9SW_PushButton_Switch_THT:SW_PUSH_6mmSW11, SW12, SW13, SW21, SW22, SW23, SW31, SW32, SW33
1MATRIXConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ1

Questions

How big is the Matrix PCB?

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

What parts does the Matrix use?

19 parts. 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 Matrix 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/diode-key-matrix/kicad-codegen/replicate-1/artifacts/attempt-02/matrix.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Matrix 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 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 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 layers43.9 × 27.7 mmTcd1304-4v, the printed circuit board in 3D

    Tcd1304-4v

    OpnTec/open-spectrometer-hardware

    Open source VIS spectrometer

    19 parts1.5k
  • 2 layers50 × 60 mmDebate Device, the printed circuit board in 3D

    Debate Device

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    19 parts915
  • 2 layers102.9 × 96.7 mmISA adapter, the printed circuit board in 3D

    ISA adapter

    polpo/picogus

    Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support

    19 parts805
  • 2 layers60 × 39 mmPs2usb, the printed circuit board in 3D

    Ps2usb

    rasteri/HIDman

    Adapting USB devices to work on old computers

    19 parts432
  • 2 layers70.1 × 43.2 mmIaq device, the printed circuit board in 3D

    Iaq device

    nkitanov/iaq_board

    IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality

    19 parts396
  • 2 layers80 × 80 mmGB BRK CPU G1, the printed circuit board in 3D

    GB BRK CPU G1

    Gekkio/gb-hardware

    Game Boy -related custom hardware by gekkio

    19 parts379CC-BY-4.0
  • 2 layers25.4 × 25.4 mmIna169, the printed circuit board in 3D

    Ina169

    Ardumower/ardumower

    Develop an open source robotic lawn mower (HW+SW reference platform)

    19 parts282
  • 2 layers58.4 × 28.6 mmNew rele, the printed circuit board in 3D

    New rele

    zmaker/arduino_cookbook

    gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube

    19 parts269