この記事ではUIデザインに特化して解説します。デザインシステム・UI生成全般は デザインシステムとは?仕組み・構成要素・有名事例をエンジニア向けに完全解説 をご覧ください。

tscircuit概要:TypeScriptで電子回路設計を再発明する

tscircuit(GitHub Stars: 2,000超)は、TypeScriptとReactを使って電子回路設計をコードで記述できるオープンソースフレームワークです。従来の回路設計ツールといえばKiCad、Altium Designer、Eagle CADなど、専用GUIで図を描くものが主流でした。tscircuitはそのパラダイムを根本から覆し、「回路図もコードだ」という思想のもとで開発されています。

GitHubのリポジトリには Create real electronics with TypeScript and React という説明が付いています。Webフロントエンド開発者がJSXでUIを組み立てるように、電子回路のコンポーネントをTypeScriptのJSX構文で記述し、リアルタイムでブラウザ上に3Dプレビューとして表示できます。設計が完了したら、Gerberファイル(基板製造データ)やBOM(部品表)、Pick’n’Placeファイルを自動エクスポートし、そのまま基板製造会社に発注できます。

ソフトウェア開発者にとっての革命的な点は、回路設計の変更履歴をGitでコミットし、GitHubでプルリクエストレビューできることです。「最新の回路図がどれかわからない」「誰がどこを変更したか追えない」という旧来のハードウェア開発の課題が、ソフトウェア開発と同じワークフローで解消されます。MITライセンスで完全無料、商用利用も可能です。

tscircuitが解決する課題
従来の回路設計CADは専門知識の習得に数週間かかり、ファイル形式は独自バイナリのためGit差分が見えない。tscircuitはTypeScript開発者が既存のスキルをそのままハードウェア設計に活かせる環境を提供する。

技術アーキテクチャ:ReactコンポーネントとしてのPCB設計

tscircuitの技術スタックは、Webフロントエンドエンジニアに馴染みのある構成です。

コア設計思想

tscircuitはReactのコンポーネントツリーを利用して回路のネットリスト(接続情報)を生成します。各電子部品(抵抗、コンデンサ、ICチップなど)はReactコンポーネントとして定義され、propsでパラメータ(抵抗値、容量、パッケージタイプなど)を受け取ります。JSXの木構造が回路のトポロジーを表現し、<trace>要素で配線を宣言的に記述します。

flowchart TD A["TypeScript/JSX
回路定義コード"] --> B["tscircuit
コアエンジン"] B --> C["ネットリスト生成
(回路接続情報)"] B --> D["PCBレイアウト
自動配線エンジン"] C --> E["回路図ビュー
(Schematic)"] D --> F["3D PCBビュー
(ブラウザ表示)"] D --> G["エクスポート"] G --> H["Gerberファイル
(製造データ)"] G --> I["BOM
(部品表)"] G --> J["Pick & Place
(実装データ)"] style A fill:#4A90E2,color:#fff style B fill:#7ED321,color:#fff style G fill:#F5A623,color:#fff

主要コンポーネント

tscircuitのエコシステムは以下のサブパッケージで構成されています:

パッケージ 役割
@tscircuit/core コアレンダラー・ネットリスト生成
@tscircuit/schematic-viewer 回路図ブラウザ表示
@tscircuit/pcb-viewer 3D PCBプレビュー
@tscircuit/autorouter 自動配線アルゴリズム
tscircuit (CLI) tsciコマンドラインツール
registry.tscircuit.com コンポーネントパッケージレジストリ

AIを活用したフットプリント生成機能も内蔵されており、テキストで部品の寸法を説明するとフットプリントデータが自動生成されます。これはKiCadのフットプリントライブラリに存在しない新型部品を扱う際に特に威力を発揮します。

インストール・セットアップ:5分で始める回路設計

CLIのインストールと起動

# グローバルインストール
npm install -g tscircuit

# 新しい回路プロジェクトを作成
mkdir my-circuit && cd my-circuit

# 開発サーバーを起動
tsci dev

コマンド実行後、ブラウザで http://localhost:3020 にアクセスすると開発環境が立ち上がります。ファイルの変更をホットリロードで反映するため、エディタとブラウザを並べて作業できます。

コンポーネントパッケージの管理

# レジストリからコンポーネントを追加(例:Arduino Nano互換フットプリント)
tsci add @tsci/arduinouno

# 自作コンポーネントをレジストリに公開
tsci push

# 利用可能なコンポーネントを検索
tsci search esp32

基本的な回路記述例

import { Board, Resistor, Capacitor, Ground, Trace } from "@tscircuit/core"

// LEDドライバー回路の例
const LEDDriverCircuit = () => (
  <board width="30mm" height="20mm">
    {/* 電流制限抵抗 */}
    <resistor
      name="R1"
      resistance="330ohm"
      footprint="0402"
      pcb_x="5mm"
      pcb_y="0mm"
    />
    {/* デカップリングコンデンサ */}
    <capacitor
      name="C1"
      capacitance="100nF"
      footprint="0402"
      pcb_x="10mm"
      pcb_y="5mm"
    />
    {/* グランド接続 */}
    <ground name="GND" x={15} y={0} />
    {/* 配線:R1の右ピンからC1の左ピン */}
    <trace path={[".R1 > .right", ".C1 > .left"]} />
    {/* 配線:C1の右ピンからGND */}
    <trace path={[".C1 > .right", ".GND > .gnd"]} />
  </board>
)

export default LEDDriverCircuit
開発ワークフローの推奨手順
1. tsci devで開発サーバーを起動
2. TypeScriptファイルで回路コンポーネントを定義
3. ブラウザで3Dプレビューを確認しながらパラメータ調整
4. tsci exportでGerberファイルを出力
5. JLCPCBやPCBWayなど製造サービスに発注

Gerberファイルのエクスポート

# 製造用ファイルを一括エクスポート
tsci export --format gerber --output ./output/

# BOMとPick & Placeファイルも同時出力
tsci export --format all --output ./manufacturing/

出力されたZIPファイルをJLCPCBやPCBWayなどの基板製造サービスにアップロードするだけで発注が完了します。

実践的ユースケース:どんな場面で威力を発揮するか

ユースケース1:IoTデバイスの試作を高速化

Arduinoや Raspberry Pi Picoをベースにしたセンサーデバイスを作る場合、従来はKiCadで数時間かけて回路図を描く必要がありました。tscircuitでは既存コンポーネントパッケージをtsci addでインストールし、TypeScriptで接続を宣言するだけで即座に基板データが生成されます。試作→評価→修正のサイクルを大幅に短縮できます。

ユースケース2:チームでの回路設計レビュー

ハードウェアスタートアップでは複数エンジニアが同じ基板設計に関わることが多いです。tscircuitを使えば、回路の変更をGitのプルリクエストとして管理し、ソフトウェア開発と同じフローでコードレビューが実施できます。変更差分がテキストベースのため、「どの抵抗値が変わったか」「配線が追加されたか」がひと目でわかります。

ユースケース3:AI支援による部品設計

tscircuitのAIフットプリント生成機能は、部品のデータシートに記載された寸法情報をテキストで入力するとフットプリントを自動生成します。新型センサーやカスタムコネクタなど、既存ライブラリにない部品も自分で定義できます。

ユースケース4:教育・学習用途

電子工学の学生やホビイストにとって、回路設計の入り口はKiCadのような専門ツールの習得でした。TypeScriptを知っている開発者であれば、tscircuitを使うことで回路設計の本質的な部分(接続、部品の役割、電気的特性)に集中でき、ツール習得のコストを大幅に削減できます。

ユースケース5:自動化テストとCI/CD

回路設計のルールチェック(DRC: Design Rule Check)をCIパイプラインに組み込めます。GitHubアクションでtscircuitを実行し、プルリクエスト時に設計違反を自動検出する仕組みが構築できます。

# .github/workflows/circuit-check.yml
name: Circuit Design Check
on: [pull_request]
jobs:
  drc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm install -g tscircuit
      - run: tsci check --strict
      - run: tsci export --format gerber --output ./artifacts/
      - uses: actions/upload-artifact@v4
        with:
          name: gerber-files
          path: ./artifacts/

競合ツールとの比較

tscircuitは「プログラマー向けEDA(Electronic Design Automation)ツール」という独自のポジションを確立しています。

比較項目 tscircuit KiCad Altium Designer EasyEDA
価格 無料・OSS 無料・OSS 年間約40万円 無料/有料プラン
プログラマー親和性 非常に高い(TypeScript) 低い(専用GUI) 低い(専用GUI) 中程度
バージョン管理 Git完全対応 困難(バイナリ) 困難 クラウド独自
学習コスト TypeScript知識があれば低 高い 非常に高い 中程度
複雑な基板設計 発展途上 非常に高い 非常に高い 中程度
コンポーネントライブラリ 成長中(npm的エコシステム) 膨大(KiCadライブラリ) 膨大 膨大
AI機能 フットプリント生成あり なし 一部 なし
3Dプレビュー ブラウザ標準 対応 対応 対応
製造ファイル出力 Gerber/BOM/P&P Gerber/BOM/P&P Gerber/BOM/P&P Gerber/BOM
コミュニティ 成長中(Stars 2000超) 非常に大きい 商用サポート 大きい

tscircuitが最も輝くのは「プログラマーが簡単にPCBを設計したい」「チームでGit管理したい」「AI支援でフットプリントを作りたい」というユースケースです。本格的な商業製品の複雑な多層基板設計では、まだKiCadやAltiumの方が成熟しています。しかし、IoTプロトタイプ、ホビープロジェクト、教育用途では今すぐ実用的な選択肢です。

tscircuit vs KiCadの使い分け指針

tscircuitを選ぶべきケース:

  • TypeScript/Reactの知識がありハードウェアに入門したい
  • チームでGitを使った共同設計レビューを行いたい
  • IoTデバイスの2〜4層基板を素早く試作したい
  • CIパイプラインに回路チェックを組み込みたい

KiCadを選ぶべきケース:

  • 複雑な多層基板(6層以上)の設計が必要
  • 高速差動信号やRFなど詳細なシグナルインテグリティ解析が必要
  • 既存の大規模KiCadライブラリをそのまま活用したい</div>

よくある質問

Q: tscircuitで作れる基板の複雑さはどの程度ですか?

現時点では2〜4層の比較的シンプルな基板に向いています。Arduino互換シールド、センサーブレークアウトボード、IoTデバイスの本体基板といったプロジェクトが典型的な用途です。高速差動信号やRFアンテナパターンを必要とする設計は、まだKiCadのような専用ツールの方が適しています。開発は活発で、機能は継続的に拡張されています。

Q: 製造に使えるGerberファイルは正式な基板工場で使えますか?

はい。tsci export --format gerberで出力されるGerberファイルはRS-274X形式の業界標準です。JLCPCBやPCBWayでの発注実績があります。ただし複雑なデザインルールを持つ基板では、出力前に必ずDRCを実行して確認してください。

Q: 既存のKiCadフットプリントをtscircuitで使えますか?

tscircuitにはKiCadフットプリントのインポートユーティリティが開発中です。現時点ではtscircuitのレジストリ(registry.tscircuit.com)にある公開コンポーネントを活用するか、AIフットプリント生成機能で自作する方法が主流です。

Q: 商用プロジェクトに使っても問題ありませんか?

MITライセンスのため、商用プロジェクトへの組み込み、改変、再配布すべて許可されています。コアライブラリも完全にオープンソースです。

Q: Windowsでも動きますか?

はい。Node.js(v18以上)が動作する環境であればWindows/macOS/Linuxすべてで動作します。WSL2環境でも問題なく動きます。

Q: tscircuit.comのクラウド機能とローカルのCLIはどう使い分けますか?

tscircuit.comにはブラウザベースのPlaygroundがあり、インストール不要で即試せます。本格的なプロジェクト開発にはtsci CLIをローカルにインストールし、お好みのエディタ(VS Code推奨)で開発するのが推奨ワークフローです。クラウドのregistryと連携したコンポーネント公開・共有には両方が必要です。

Q: AIによるコードレビューやCI/CDとはどう組み合わせますか?

Claude Codeベストプラクティスで解説しているように、AIを使ったコードレビューのワークフローにtscircuitの回路設計ファイルを含めることができます。回路図もTypeScriptコードであるため、AIによる差分レビューが自然に行えます。

まとめ

tscircuitが特に向いているエンジニア像
TypeScriptを普段から書いていて、ハードウェア設計に挑戦したいソフトウェアエンジニア。電子工学の基礎知識(オームの法則、部品の役割)があれば、CADツールの習得なしに最初の基板を設計・発注できる環境が整っている。

tscircuitは「電子回路設計をコードで書く」という新しいパラダイムを実現するOSSです。Stars 2,000超という注目度と活発なコミュニティが示すように、プログラマーのハードウェア参入障壁を下げるという明確な価値を提供しています。

複雑な商業製品への適用にはまだ限界がありますが、IoTプロトタイプやホビープロジェクト、チームでのGit管理回路設計においては今すぐ実用できるレベルに達しています。ソフトウェア開発のベストプラクティスをハードウェア設計に持ち込みたいエンジニアにとって、試す価値が十分にあるツールです。

TypeScriptで書いた回路設計をGitでコミットし、プルリクでレビューする時代が来ています。MCPサーバーの作り方2026完全ガイドで解説しているようなAIエージェントとの統合も、コードベースの回路設計だからこそ可能になる次のステップです。

注意:複雑な基板設計への適用
tscircuitはプロトタイピングと比較的シンプルな基板設計に最適化されています。高速信号(GHz帯域)や厳密なインピーダンスコントロールが必要な設計、あるいは既存の大規模KiCadプロジェクトとの互換性が必要なケースでは、tscircuitの現状の成熟度を事前に確認することを推奨します。

参照ソース