CAD の知識ゼロでも AI エージェントと自然言語で 3D モデリング — AWS Summit Japan 2026 展示の裏側
2026-09-02 | Author : 服部 一成
はじめに
「3D プリンターは持っているけど、CAD ソフトが難しくて自分でモデリングしたことがない」——そんな方は多いのではないでしょうか。
本記事では、オープンソースの 3D CAD ソフト FreeCAD を MCP (Model Context Protocol) サーバー化し、AI コーディングエージェント Kiro から自然言語の指示だけで 3D モデルを設計・出力した体験を紹介します。
AWS Summit Japan 2026 の Chaos Kitty ブース では、AWS のアーキテクチャ構成図を光るランプ群で立体化した模型を展示しましたが、デモキットのパーツは 3D プリンターで出力したものです。CAD の操作経験がなくても、日本語の指示で寸法が連動する 3D モデルが出来上がります。
ご注意
本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
この記事の対象読者
- 3D プリンターを持っているが CAD ソフトの操作に苦戦している方
- AI エージェントの実用的な活用例を探しているエンジニア
- MCP によるツール連携に興味がある方
FreeCAD × MCP × Kiro のアーキテクチャ
構成はシンプルです。
- ユーザーは日本語で Kiro に指示を出す
- Kiro は MCP 経由で FreeCAD の Python API を呼び出し、形状を構築する
- FreeCAD はレンダー画像(数値などのデータから生成された画像や映像のこと)を返し、Kiro がユーザーに見せる
- 最終的に 3D プリンタで認識可能なモデリング形式の STL/STEP を出力して 3D プリンターで印刷
- 印刷した実物を見てユーザーがフィードバック → 次の指示に反映
ユーザーは FreeCAD の GUI をほとんど操作する必要はありません。 Kiro がMCP を通じて FreeCAD を操作し、結果をレンダー画像で返してくれます。
作ったもの: AWS Architecture Lamp となる 3D モデル群
AWS Summit Japan 2026 の Chaos Kitty ブースに並んでいた、光るランプの模型群です。Web 3 層アーキテクチャ (Amazon CloudFront → Application Load Balancer → Amazon EC2 × 2 → Amazon RDS + Security Group、Amazon S3、AWS CloudTrail) を、1 サービス = 1 ランプで物理的に表現しています。
- ライトカバー — 円筒にハニカム (六角形の貫通穴) を全面に入れ、正面に AWS サービスアイコンを浮き彫り (凸) で配置。LED の光がハニカム穴とアイコンの隙間から漏れる
- 土台 — E26 LED 電球を差し込む穴付き。矢印差込スロット 8 本 (45° 刻み)
- Security Group / VPC 枠 — 点線ファイアウォール枠と実線コンテナ枠でグルーピング
全 7 サービス × ライトカバー+土台、SG 枠 3 組、VPC 枠 1 組。総部品数 約 58 点を全て自然言語の指示だけで設計しました。
メモアプリ構成図
セットアップ
前提条件
- FreeCAD 1.1 以降
- uv — Python パッケージランナー (uvx コマンドを使用)
- Kiro CLI — AI コーディングエージェントのコマンドライン版
本記事では neka-nat/freecad-mcp を使用します。また検証は Mac を利用しました。アドオンのインストール手順や対応 OS は同リポジトリの README を参照してください。
Step 1 : FreeCAD の RPC サーバーを有効化する
neka-nat/freecad-mcp の README に従い FreeCAD MCP アドオンをインストールします。FreeCAD を再起動し、Workbench 一覧から MCP Addon を選択、ツールバーの Start RPC Server を実行すると http://127.0.0.1:9875 でリクエストを受け付けます。ターミナルで python3 を起動し、以下を実行して接続を確認します:
import xmlrpc.client
s = xmlrpc.client.ServerProxy("http://127.0.0.1:9875", allow_none=True)
s.execute_code("print(FreeCAD.Version())")
FreeCAD のバージョン情報 (例: ['1', '1', '0', ...]) が返れば接続成功です。
Step 2 : Kiro に FreeCAD MCP サーバーを登録する
Kiro の MCP 設定ファイル ~/.kiro/settings/mcp.json に FreeCAD を追加します。
{
"mcpServers": {
"freecad": {
"command": "uvx",
"args": ["freecad-mcp"]
}
}
}
uvx は uv に含まれるツール実行コマンドで、PyPI から freecad-mcp パッケージを自動取得して MCP サーバーとして起動します。
Step 3 : 専用エージェントを作る (推奨)
FreeCAD 操作に特化したエージェント定義 (~/.kiro/agents/fc.json)を作ると、CAD 操作の skill(寸法検証・水密性チェック・レンダー手順) が常に読み込まれた状態になり、指示が楽になります。
{
"name": "fc",
"description": "FreeCAD parametric modeling agent",
"prompt": "file:///path/to/fc-prompt.md",
"tools": ["read", "write", "shell"],
"resources": ["file://~/.kiro/skills/freecad-modeling/SKILL.md"],
"includeMcpJson": true
}
Kiro CLI の chat セッション中に /agent fc と入力すると FreeCAD モデリング専用モードに切り替わります。エージェント定義の詳細は Kiro ドキュメント を参照してください。
Kiro IDE を使う場合
本記事は Kiro CLI を前提としていますが、Kiro IDE でも同様のセットアップが可能です。
- MCP 設定 : プロジェクトルートの .kiro/settings/mcp.json に Step 2 と同じ JSON を配置します (ユーザーレベルの ~/.kiro/settings/mcp.json でも可)
- エージェント定義 (Step 3) : Kiro IDE では /agent コマンドは使用できないため、Step 3 はスキップしてください。MCP 設定さえ登録すれば、Kiro IDE のチャットから FreeCAD MCP のツールを直接利用できます
Step 1 : FreeCAD の RPC サーバーを有効化する
neka-nat/freecad-mcp の README に従い FreeCAD MCP アドオンをインストールします。FreeCAD を再起動し、Workbench 一覧から MCP Addon を選択、ツールバーの Start RPC Server を実行すると http://127.0.0.1:9875 でリクエストを受け付けます。ターミナルで python3 を起動し、以下を実行して接続を確認します:
neka-nat/freecad-mcpimport xmlrpc.client
s = xmlrpc.client.ServerProxy("http://127.0.0.1:9875", allow_none=True)
s.execute_code("print(FreeCAD.Version())")
FreeCAD のバージョン情報 (例: ['1', '1', '0', ...]) が返れば接続成功です。
Step 2 : Kiro に FreeCAD MCP サーバーを登録する
Kiro の MCP 設定ファイル ~/.kiro/settings/mcp.json に FreeCAD を追加します。
{
"mcpServers": {
"freecad": {
"command": "uvx",
"args": ["freecad-mcp"]
}
}
}
uvx は uv に含まれるツール実行コマンドで、PyPI から freecad-mcp パッケージを自動取得して MCP サーバーとして起動します。
Step 3: 専用エージェントを作る (推奨)
FreeCAD 操作に特化したエージェント定義 (~/.kiro/agents/fc.json) を作ると、CAD 操作の skill (寸法検証・水密性チェック・レンダー手順) が常に読み込まれた状態になり、指示が楽になります。
{
"name": "fc",
"description": "FreeCAD parametric modeling agent",
"prompt": "file:///path/to/fc-prompt.md",
"tools": ["read", "write", "shell"],
"resources": ["file://~/.kiro/skills/freecad-modeling/SKILL.md"],
"includeMcpJson": true
}
Kiro chat セッション中に /agent fc と入力すると FreeCAD モデリング専用エージェントモードに切り替わります。エージェント定義の詳細は Kiro ドキュメント を参照してください。
実際の操作 : 抽象的なアイデアから具体的な設計へ
最初に私が Kiro に伝えたのは、ふわっとしたアイデアだけでした。そこから対話を重ねて寸法・構造が決まっていく流れを振り返ります。
ステップ 1 : コンセプトを伝える
「3D プリンタで電球の周りを囲うカバーを作りたい」
私が最初に伝えたのはこの程度です。寸法も形も素材も指定していません。
ステップ 2 : Kiro が構造を提案してくる
Kiro はこのコンセプトから、以下を Kiro 自ら考えて提案してきました。
- 「ライトカバー+土台の 2 ピース構成にするのはどうですか。ライトカバーは半透明にして LED で光らせ、サービスアイコンのシルエットが浮かぶようにする」
- 「土台に E26 ソケットを入れるなら、電球を通す穴の直径は Ø90mm (余裕込み) が必要です」
ここで私は「それでいこう。でも電球サイズを実測してから穴径は決めたい」と返しました。
ステップ 3 : 実測値を伝えると、Kiro が全パラメータを決定する
電球とソケットを実測して伝えました。Kiro はこの実測値から連鎖的に全寸法を導出してきました。
- 穴径 : Ø65mm (電球がぎりぎり通過)
- ライトカバー内径 : Ø71.6mm (土台の突起部分 Ø71 に 0.3mm の隙間で嵌まる)
- ライトカバー外径 : Ø74.8mm (肉厚 1.6mm)
- ライトカバー高 : 108mm (電球+ソケットを内包+上下マージン)
- 土台高 : 32mm (露出) + 10mm (ライトカバーに差し込む突起) = 42mm
この構成の最大のメリットは 1 つの実測値を伝えるだけで、関連する寸法が全部芋づる式に決まることです。 例えば電球の外径が 65mm を伝えると、それが入る穴径 → 穴が入るライトカバー内径 → 肉厚を足した外径 → 高さ……と、数珠つなぎで CAD に反映してくれます。後から「やっぱり電球の内径のサイズを変えたい」と言えば、連動して全寸法が再計算されます。手動 CAD だとこの連動を自分で設計しないといけませんが、AI に「電球サイズ 65mm で」と言えばその場で全部やってくれます。
特に土台とライトカバーは別々に設計・印刷してからジョイントするため、ライトカバーの内径土台の外径の精緻な設定が必要ですが、Kiro は自動で再設計まで実行できたことに驚きました。
ステップ 4 : 見た目のデザインを言葉で伝える
寸法が決まった後、見た目を指示しました。
Kiro は「光を通したい」という設計意図から、ハニカムのパラメータ (対面距離・ピッチ・上下の無孔縁) を自分で決め、「これでどうですか」とレンダーで確認してきました。
ステップ 5 : レンダーを見てフィードバック → Kiro が反映
精緻なデザインが必要なアイコン部分も「凸 1.6mm」と寸法指定はしていません。Kiro が肉厚 (1.6mm) と同じ高さで凸を入れ、レンダーを返してきた結果を見て「OK」と返しただけです。
ステップ 6 : 印刷して、実物を見て方針変更
印刷してみたら、アイコン部分だけ光が通らず暗いことが分かりました。これは印刷してみないと分からないフィードバックであり、人間が物理世界の結果を言語化して伝えることで初めて AI が正しく動けた例です。
ステップ 7 : 横展開は一言で
「同様に他のアイコンで作って」と Kiro に依頼するだけで、7 サービス分が一括で生成できました。各サービスの SVG を読み込み、色を AWS 公式カラーに合わせてCADへ反映し出力まで Kiro が対応してくれます。反復作業は AI が最も得意とするところです。
ステップ 8 : 物理的な制約を後から伝える
スライサーの警告や、実際に印刷して倒れた事実を伝えるだけで、Kiro は既存のはめ込み機構を保ったまま壁厚を変更します。Security Group の枠を生成した際は、初期のレンダーでは印刷が難しかったため分割機構を作るよう Kiro に追加対応を依頼しました。また枠が細すぎて自立しにくいことが推測できたため、自立できるように太くして、と伝えるだけで自立しやすい太さまで改善しました。
試行錯誤の実態 — プロンプトの対話で何が起きたか
一発で完成するわけではありません。生成 AI との対話で、実際に印刷する前にブラッシュアップする必要がありますした。
アイコンが鏡像になる — SVG→円筒配置の座標変換
Amazon EC2 のアイコン SVG を読み込んでライトカバー正面に配置するよう Kiro に依頼したところ、左右反転していました。
AI が鏡像で配置した理由は「SVG→3D 変換で Y 軸の上下反転だけ対応し、円筒外面投影による左右反転を見落としていた」からでした。座標変換は複数段になると人間も AI もミスしやすい場所で、レンダーで目視確認する工程があって初めて気づけました
アイコンが目立たない問題 — 印刷を繰り返し改善
初めは「アイコンが記載した円筒を作り、印刷の浮き彫りでアイコンを浮かせる」でした。印刷は成功しましたが、LED を点灯してもライトは透過せず、ただ円柱があるだけでした。アイコンも目立ちませんでした。
2 回目は「ハニカム (六角形の蜂の巣状の穴) を全面に貫通させて、アイコンは白い別パーツにしよう。2 色印刷で白を強調すればいいのでは」と透過+アイコンの色を工夫しました。Kiro は本体 (全面ハニカム、黒) +アイコン (凸 1.6mm、白、穴共有) の 2 パーツ構成を数分でレンダーしたため一見うまくいきまいた。しかし印刷してみたところ、アイコン部分は白くなりましたが精度が悪く、加えてハニカムの穴の中に白が埋もれて遠目では目立たないことがわかりました。しかも 2 色印刷は素材 (フィラメント) の交換が必要で、印刷時間が倍以上かかるため断念しました。3 回目は「アイコン土台部分はハニカムにせず、ソリッドで残す」シンプルな形変更し、本体と同色でアイコン部分だけ凸にする方式にしました。アイコンは手作業で色を塗ったところ認識できる程度まで改善しました。
3 方式を試して着地した結論は、プロンプトだけでは辿り着けないものでした。「光を当てたときにどう見えるか」「遠目で目立つか」「印刷時間とのトレードオフ」——これは実物を印刷して、実際に LED を入れて、自分の目で見ないと判断できない、human-in-the-loop でしか収束しない種類の問題です。
こういったモデル作成や印刷時の課題はありましたが、CAD や 3D プリンタの知見がなくても、課題を全て Kiro との対話で解決することができました。
まとめ
FreeCAD を MCP サーバー化し Kiro から操作することで、CAD の知識がなくても自然言語で 3D モデリングができます。寸法・形状・印刷制約・はめ込み設計まで、日本語で指定するだけで寸法が連動する 3D モデルがビルドされ、印刷可能な 3D データ (STL/STEP 形式) として出力されます。
一発で完成させる必要はありません。 AI との対話を重ねながら、レンダーや印刷結果を見てフィードバックし、デザインを収束させていく。その過程で必要なのは CAD の操作スキルではなく、「何が欲しいか」「なぜそうしたいか」を言語化する力です。
「CAD は難しい」という壁は、AI エージェントとツール連携 (MCP) によって取り除かれつつあります。3D プリンターをお持ちの方は、ぜひ試してみてください。
FreeCAD の詳細は FreeCAD 公式サイト を、Kiro の MCP 設定については Kiro ドキュメント を参照してください。
筆者プロフィール
服部 一成
アマゾンウェブサービスジャパン合同会社
製造業担当 ソリューションアーキテクト
CCoE や IoT 領域の知見を活かして主に製造・自動車業界のお客様を支援してます。趣味は新しいクラフトビール探し。AWS Summit では毎年クラウド以外の IoT、電気関連など物理モジュールの実装を担当してます。