The core logic used to build Circuit JSON from tscircuit React elements.
tscircuit · Online Playground · Development Guide · Core Benchmarks · Contributor Getting Started Video
You can use core to create Circuit JSON, which can then
be converted into Gerbers, viewed online, and much more.
import { Circuit } from "@tscircuit/core" const circuit = new Circuit() circuit.add( <board width="10mm" height="10mm"> <resistor name="R1" resistance="10k" footprint="0402" /> <led name="L1" footprint="0402" /> <trace from="R1.pin1" to="net.VCC" /> <trace from="R1.pin2" to="L1.pos" /> <trace from="L1.neg" to="net.GND" /> </board> ) circuit.getCircuitJson()
For high-level functional diagrams, use the systemblock namespace.
Core automatically resolves block positions, sizes, routes, and label anchors into
Circuit JSON, ready for convertCircuitJsonToSystemSvg from circuit-to-svg.
import { Board, Resistor, Led, Trace, Circuit } from "@tscircuit/core" const circuit = new Circuit() const board = new Board({ width: "10mm", height: "10mm", }) circuit.add(board) const R1 = new Resistor({ resistance: "10k", footprint: "0402" }) const L1 = new Led({ footprint: "0402" }) board.add(R1) board.add(L1) const trace = new Trace({ width: "0.2mm" }) trace.connect(R1.output, L1.anode) board.add(trace) circuit.getCircuitJson() // [{ type: "board", ...}, { type: "resistor", ...}, ...]