solidcraftとは?使い方・日本語でのCADモデリングを実際に使って調べてみた動いた
この日に実際に動かした結果です。内容の誤りに気づかれた場合はお問い合わせください。確認のうえ訂正します。
使う前に分かること
| 必要なもの | Rust 1.95以上、Cargo、Claude Code(MCP経由で使う場合) |
|---|---|
| 動かした環境 | Linux のヘッドレスサンドボックス(GPUなし)、Rust 1.97.0、Claude Code(CLI経由でMCPサーバーを操作)。 |
| 日本語 | 日本語で使うときの注意あり(下に書いた) |
| 確認日 | 2026-10-16(この日に実際に動かした) |
SolidCraft は、Rust だけで一から作られたオープンソースのパラメトリック3D CADです。スケッチを描いて寸法を決め、押し出し・角丸・穴あけといった工程(タイムライン)を積み重ねて立体を組み立てます。デスクトップアプリ・ブラウザ版・そして AIエージェントから直接モデリングできる MCP サーバーの3通りで使えます。
今回はこのサンドボックスに画面(ディスプレイ・GPU)が無いため、通常のデスクトップアプリとブラウザ版は試していません。代わりに、ドキュメントが案内するとおりソースからヘッドレスCLIをビルドし、まず同梱サンプルをCPUだけでレンダリングできるか確かめたうえで、記事の中心として MCP 経由でエージェント(Claude Code)に日本語で「USBメモリ立て」の設計を頼み、実際にSTLとスクリーンショットが出てくるところまで試しました。デスクトップGUIの操作感、STEP/IGESなどのCADファイルの読み込み、複数部品を組み合わせるアセンブリ機能は試していません。
ソースからビルドする
README の「Download」には各OS向けのインストーラがありますが、画面を使わないCLI単体の配布は無く、ドキュメントの「CLI」節が案内する唯一の入れ方が、ソースコードを取ってきて Cargo(Rust のビルド道具)でビルドする方法でした。パソコンに Rust が入っていない場合は、先にrustupで入れておく必要があります(今回は rustc 1.97.0)。ターミナルを開いて、次のコマンドを打ちます。
git clone https://github.com/bherbruck/solidcraft.git
cd solidcraft
cargo build --release -p solidcraft-cli
Cloning into 'solidcraft'...
Finished `release` profile [optimized + debuginfo] target(s) in 10m 35s
GUIを持つデスクトップアプリ(solidcraft)はビルドせず、画面を使わないCLI(solidcraft-cli)だけをビルドしました。10分半ほどかかりましたが、エラーは出ませんでした。
同梱サンプルをCPUだけで描けるか確かめる
このサンドボックスには GPU が無いので、まずは絵が描けるかどうかを確かめました。SolidCraft には「GPU が無ければソフトウェア描画、それも無ければCPUのラスタライザで代わりに描く」という仕組みがあります。
./target/release/solidcraft-cli gpu
{
"adapters": [],
"backends": "Backends(VULKAN | GL)",
"chosen": null,
"lands_on": "cpu",
"policy": "auto",
"renderer": "cpu"
}
GPU のアダプタは1つも見つからず、"lands_on": "cpu" の通り CPU ラスタライザに落ち着くことがわかりました。そのまま、同梱されている見本の金具(ブラケット)を実際に描けるか試します。
./target/release/solidcraft-cli snapshot examples/bracket.json --out bracket.png
warning: drawn by the CPU rasterizer (no GPU adapter qualified, or SOLIDCRAFT_GPU=cpu): surface analysis colours, highlights and legends are not drawn
{
"bytes": 1098540,
"height": 800,
"path": "bracket.png",
"renderer": "cpu",
"width": 1280
}

警告どおり表面の質感などは描かれませんが、L字の金具の形(角丸つき)がそのまま画像になりました。GPUが無いこの環境でも、CLIでモデルを扱えることが確認できました。
エージェントにUSBメモリ立てを日本語で頼む
SolidCraft の目玉は、solidcraft-cli mcp が MCP(Model Context Protocol)サーバーとして動き、Claude Code のようなエージェントから直接モデリングを頼めることです。まず MCP サーバーとして登録します。
claude mcp add solidcraft --scope user -- /home/user/work/solidcraft/target/release/solidcraft-cli mcp
Added stdio MCP server solidcraft with command: /home/user/work/solidcraft/target/release/solidcraft-cli mcp to user config
File modified: /root/.claude.json
/home/user/work/solidcraft/target/release/solidcraft-cli の部分は、さきほどビルドしてできた実行ファイルの実際の場所です。自分のパソコンでは、cd solidcraft で入ったフォルダの中で pwd と打てば表示されるフォルダのパスの末尾に /target/release/solidcraft-cli を足したものになります。登録できたら、日本語でそのまま頼んでみました。
claude -p "USBメモリを立てて収納できる、小さな卓上スタンドを設計してください。土台は60mm×40mm、厚さ6mmの板で、そこにUSBメモリ(幅13mm、厚さ6mm)を挿して立てられるスリット(溝)を1本、板の真ん中あたりに彫ってください。土台の角は角丸(フィレット半径3mm)にしてください。できたらisoビューでスクリーンショットを撮り、STL形式で書き出してください。" --allowedTools "mcp__solidcraft__*"
USBメモリスタンドのモデルを作り、isoビューのスクリーンショットとSTLを書き出しました。ただ、作業ディレクトリ(`/home/user/work/solidcraft-design`)へのコピーは、承認が必要で実行できていません。2つのファイルは今のところ、SolidCraftが書き込める一時フォルダにあります。
- STL: `/tmp/solidcraft-mcp-6497-16679842/usb_stand.stl`
- isoスクリーンショット: `/tmp/solidcraft-mcp-6497-16679842/usb_stand_iso.png`
作業ディレクトリへコピーしてよければ、承認するか許可フォルダを追加してください。
**モデルの仕様**
- **土台:** 60 × 40 × 6 mm の板です。原点中心に置き、Z=0〜6 mm に収めています。
- **角丸:** 4つの縦の角に R3 のフィレットを付けました。
- **スリット:** 板の中央に1本あり、平面寸法は 13.4 × 6.4 mm、深さは 4 mm です。
**確認結果**
- 体積は 14,010.6 mm³ で、手計算の 14,010.7 mm³ と一致します。
- バウンディングボックスは 60 × 40 × 6 mm でした。
- スクリーンショットでも、角丸とスリットが意図どおりに入っているのを確認しました。
返ってきた文にある「承認が必要」とは、MCPサーバーが書き込んでよいと決めた場所の外にエージェントがファイルを置こうとした時に、ツール側が断る仕組みのことです。許可したい場合はエージェントとの対話の中で許可する操作をしますが、今回は指定した作業フォルダ自体が許可されたフォルダに入っていなかったため、ファイルは SolidCraft 自身の一時フォルダに置かれました。そこで、ドキュメントの案内どおり --allow-path を付けて MCP サーバーを登録し直しました(--allow-path に指定するフォルダは、あらかじめ自分で作っておく必要があります。今回の /home/user/work/solidcraft-design も事前に mkdir で作成済みのものです)。
claude mcp remove solidcraft -s user && claude mcp add solidcraft --scope user -- /home/user/work/solidcraft/target/release/solidcraft-cli mcp --allow-path /home/user/work/solidcraft-design
Removed MCP server solidcraft from user config
File modified: /root/.claude.json
Added stdio MCP server solidcraft with command: /home/user/work/solidcraft/target/release/solidcraft-cli mcp --allow-path /home/user/work/solidcraft-design to user config
File modified: /root/.claude.json
登録し直したうえで、同じ会話の続きとして保存し直すよう頼みました。
claude -p -c "作業ディレクトリ(/home/user/work/solidcraft-design)を使えるようにしたので、そこに usb_stand.stl と usb_stand_iso.png を保存し直してください。" --allowedTools "mcp__solidcraft__*"
`usb_stand.stl` と `usb_stand_iso.png` を作業ディレクトリに保存しました。
- `/home/user/work/solidcraft-design/usb_stand.stl`(35,084 バイト、バイナリSTL)
- `/home/user/work/solidcraft-design/usb_stand_iso.png`(isoビュー、960×600)
許可の変更でSolidCraftのセッションが再起動し、デザインが空になっていました。その状態でスクリーンショットを撮ったため、空のシーンのPNGが一度書き出されてしまいました。そこで同じ寸法でモデルを作り直し、両ファイルを上書きしています。
作り直したモデルの体積は 14,010.6 mm³ で、前回と同じです。スクリーンショットにも、角丸とスリットが写っています。寸法は前回のままで、土台が 60×40×6 mm、角が R3、スリットが 13.4×6.4 mm で深さ 4 mm です。

土台の角丸、中央のスリットとも、頼んだ寸法どおりに入っています。できあがった usb_stand.stl は、3Dプリンタ向けの三角形メッシュとして700面ぶん書き出されており、ファイルサイズ(35,084バイト)ともヘッダーの三角形数とも矛盾がないことを確認しました。
まとめ
SolidCraft は、GPU もディスプレイも無いヘッドレスの環境でも、CLIをビルドしさえすれば一通り動くオープンソースCADでした。同梱サンプルのCPUレンダリングは一発で成功し、目玉のMCP連携も「USBメモリ立てを設計して」という日本語の依頼だけで、寸法どおりのSTLとスクリーンショットが出てくるところまで確認できました。途中、MCPサーバーの既定のファイルアクセス制限に引っかかり、--allow-path を付けて登録し直す一手間が要りましたが、そこさえ超えれば、角丸やスリットの深さのような細かい指示もきちんと反映されます。
Fusion 360 のような市販CADの操作に慣れていなくても、日本語で「こういう形のものを作って」と頼むだけで簡単な部品の叩き台ができる点は、3Dプリンタで小物を作ってみたい人や、AIエージェントに設計まで任せてみたい人に向いています。逆に、今回はデスクトップのGUI画面そのものや、STEP/IGES読み込み・アセンブリのような複雑な機能は試せていない点は留意してください。
確認した環境
Linux のヘッドレスサンドボックス(GPU・ディスプレイなし)で、デスクトップアプリ(solidcraft)は未ビルド・未検証です。描画は solidcraft-cli gpu が報告するとおり CPU ラスタライザで行われ("renderer": "cpu" の警告つき)、表面の質感などは描かれませんが形状の確認には問題ありませんでした。エージェントとのやり取りは claude -p をターミナルから直接呼び出す形で行い、MCPサーバーのファイルアクセスは既定のままでは作業フォルダに書き込めず、--allow-path の指定が必要でした。