Nodiに、AIによるモデリング・解析支援機能を追加しました。

Claude Code・Cursor・Codexといった、普段お使いのAIエージェントから、Nodiのノードグラフを直接操作し、ノードの配置、配線、パラメータ調整を行います。
この記事では、この機能の設計思想と、具体的な3つの使い道を紹介します。
「AI CAD」の現在地
ここ数年、AIでモデリングを行うツールが一気に増えました。 アプローチは様々ですが、大きく3つの系統に分けて見ると整理しやすくなります。
- 既存CADにアシスタントを組み込む(e.g. Autodesk Fusion)
- Text to CAD — プロンプトから形状を生成する(e.g. Zoo(旧KittyCAD)、AdamCAD)
- Code CAD — コードとして書き、エージェントに書かせる(e.g. ForgeCAD)
なお、Text to CADの例の多くは、内部ではコード表現を核にした例が多く(ZooはKCL、AdamCADはOpenSCAD)、GUIを凝らしたCode CADとも言えます。
共通する期待と、共通する壁
どの系統にも共通する期待は明快で、モデリングにおける単調な作業をAIに任せたいということです。 一方で、実際に使ってみると次のような壁に突き当たります。
- 人間とAIの共同作業のしにくさ: AI専用のチャットUIやファイル形式に閉じてしまい、既存のモデリング作業と行き来しづらい。生成された形状は出てくるものの、編集しにくい形で組まれているため修正の勘所が掴めず、微調整のために結局作り直すことになる
- セットアップの手間: MCPサーバーの設定、APIキーの管理、プラグインのインストールと、モデリングを始める前の手順が多い
NodiのAI支援機能は、この2点をそのまま設計の出発点にしています。 そしてCode CADの系統に近い発想を、コードではなくノードグラフの上で成立させようとしています。 ノードグラフはコードと同じく構造が明示された編集可能な表現でありながら、 GUIでそのまま触れる — つまり、AIが読み書きできて、かつ人間が普段どおり手で編集できる形式です。
Nodiのアプローチ
1. いつものワークフローの中で使える
エージェントが行う操作は、あなたが手で行うノードの追加・配線・パラメータ変更とまったく同じものです。
エージェントが編集した結果はキャンバス上にリアルタイムで反映され、 そのまま手で続きを編集できますし、逆に手で組んだグラフの一部だけをエージェントに任せることもできます。
- 既存プロジェクトにそのまま適用できる: 新規ファイルを作り直す必要はなく、開いているプロジェクトに対して指示できる
- 結果がノードグラフとして残る: 生成されるのは形状そのものを構成する幾何情報ではなくノードの構成なので、気に入らない部分があればノードを遡って調整できます
- Undoが効く: 気に入らなければ通常の操作と同じように取り消せる
「AIに丸投げする」のではなく、手作業とAIを同じキャンバス上で行き来できることを重視しています。

2. 出力がノードグラフなので、検証も分担もできる
エージェントは、ノード名やポート構成を推測せず、Nodiのノードカタログを参照してからグラフを構築します。 また、編集した後にグラフを評価し、結果のジオメトリを確認してから次の手を打ちます。
生成物がノードグラフである以上、どのノードがどの形状を作っているかを目で追えるため、 意図と違う結果になったときも、該当箇所だけを直せば済みます。
3. MCPサーバーの設定が不要
Nodiのデスクトップアプリは、起動時にローカルの制御サーバーを自動的に立ち上げます。
AIエージェント側は、このサーバーに対してCLI経由でコマンドを送るだけでNodiを操作できます。
そのため、ユーザー側でMCPサーバーを設定ファイルに書き足したり、 サーバープロセスを別途起動しておいたりする必要がありません。 準備は、ターミナルで一度だけ次のコマンドを実行するだけです。
npx @nodi3d/agent@latest setup
これで、お使いのAIエージェント(Claude Code・Cursor・Codexなど)にNodiのスキルがインストールされます。
あとはエージェント上で /nodi を実行すると、起動中のデスクトップアプリのプロジェクトに接続されます。
インストール用のプロンプトはこちらで公開しています。

使い道1: 写真や2Dイメージからモデリングする
参照画像を渡して、その形状をモデルとして起こしてもらうことができます。 写真・レンダリング画像・技術図面・スペックシートのいずれでも構いません。
エージェントは、画像から寸法や構成要素を読み取って形状の仕様をまとめ、 パーツごとにグラフを組み、各段階でスクリーンショットを撮って参照画像と見比べながら形を詰めていきます。
例えば、次のように指示します。
画像の図面の吊り棚の梁パーツを再現して [画像添付]

寸法が読み取れない部分は、指示の中で補うと精度が上がります。 逆に、図面やスペックシートを渡せる場合は、そこから寸法を拾ってくれます。
すでに述べたとおり、出来上がるのはノードグラフです。 「板厚だけ5mmにしたい」「穴のピッチを変えたい」といった修正は、 エージェントに追加で指示してもよいですし、対応するパラメータを手で触っても構いません。
使い道2: Expressionを書いてもらう
Nodiには、スクリプトで値やジオメトリを直接記述できるノードが2種類あります。
- Expression / Function ノード: Rhaiで値や点列を生成する。
vec3/pt3といったベクトル・点の型や、ノイズ関数、補間関数などが最初から使える - Implicit Expression ノード: WGSL(GPUシェーダ言語)で陰関数(SDF)そのものを記述する。空間上の任意の点における符号付き距離を返す関数を書くことで、ノードの組み合わせでは表現しにくい形状を直接定義できる
この両方の中身を、自然言語から書いてもらえます。
数式ベースの形状生成は、ノードを並べるより式で書いたほうが早いケースが多い一方で、記法を思い出したり、インデックスの扱いを間違えて手が止まったりしがちな部分でもあります。 ここはAIが得意とするところです。
例: らせん状に配置した点列

例えば「半径が上に行くほど細くなるらせんの点列を作って」と指示すると、 次のようなスクリプトを持つExpressionノードが生成されます。
let n = IN[0].to_int(); // 分割数
let turns = IN[1]; // 巻き数
let r0 = IN[2]; // 下端の半径
let h = IN[3]; // 高さ
let pts = [];
for i in 0..n {
let t = i.to_float() / (n - 1).to_float();
let a = t * turns * TAU;
let r = r0 * (1.0 - 0.7 * t); // 上に行くほど細く
pts.push(pt3(r * cos(a), r * sin(a), h * t));
}
pts
例: 太さが場所によって変わるTPMSラティス

もう1つが、Implicit Expressionノードによる例です。 こちらはWGSLで陰関数を記述します。
例えば「X方向に進むほど太くなるGyroidを作って」と指示すると、次のようなコードが生成されます。
let t = clamp(p.x / 80.0 + 0.5, 0.0, 1.0); // X位置を0..1に正規化
let cell = 12.0; // 単位セルのサイズ
let w = 6.28318530718 / cell;
// Gyroidの三角関数表現
let g = sin(w * p.x) * cos(w * p.y)
+ sin(w * p.y) * cos(w * p.z)
+ sin(w * p.z) * cos(w * p.x);
let thickness = mix(1.0, 4.0, t); // 1mm → 4mm へ連続的に変化
return (abs(g) * (cell / 6.28318530718)) - thickness * 0.5;
このような「場所によって性質を変える」記述は、DfAMの文脈で頻繁に必要になる一方、ノードの組み合わせだけで組もうとすると煩雑になりがちです。 式で一気に書けると見通しがよく、AIに書いてもらうのに適した部分でもあります。
なお、Nodiには ImplicitTPMS ノード(Gyroid・SchwarzP・Diamondなど6種のTPMSに対応)や、
応力などの場の値から肉厚を駆動する ImplicitRamp ノードも用意されているため、
定型的なラティスはノードだけでも組めます。
どちらが適しているかの判断も含めて、エージェントに任せられます。
生成されたスクリプトはノードの中にそのまま残るので、 係数を変えたり、条件分岐を足したりといった手直しは、いつも通りエディタ上で行えます。
使い道3: モデリングした形状をそのまま解析に回す
Nodiのデスクトップ版では、モデリングした形状に対してノードエディタ上から直接解析(CAE)を実行できます。 この解析はメッシュレス解析(Immersed FEM) で、形状をSDFとして背景の構造格子に埋め込むため、 ユーザーがメッシュを切る工程がありません。詳しくはこちらの記事で解説しています。
メッシングという手作業のボトルネックがないということは、 エージェントにとっても解析までが一続きの操作になるということです。
つまり、「形を作る → 解析する → 結果を見て形を直す」というループを、 そのままエージェントに指示できます。

例えば、次のような指示が可能です。
この梁部品の四隅の穴(Φ8mm)を固定して、Φ60mmの穴に下向き1000Nの荷重をかけて構造解析して
従来のCAEでは、形状を少し変えるたびにメッシュを切り直す必要があり、 このループを高速に回すこと自体が困難でした。 メッシュレス解析とAIエージェントの組み合わせは、この設計ループを大きく短縮します。
まとめ
NodiのAIモデリング支援機能を紹介しました。
- いつものワークフローの中で使える: エージェントの操作は手作業と同じノード編集で、結果はノードグラフとして残り、そのまま手で調整できる
- MCPの設定が不要: デスクトップアプリが制御サーバーを自動で立ち上げるため、セットアップは1コマンドで完了する
- 画像からのモデリング・Expressionの生成・解析への連携: 単調な作業を任せつつ、設計判断は手元に残せる
AIにモデリングを丸投げするのではなく、普段のモデリング作業の中でAIを部分的に使えることを目指した機能です。
本機能はNodiのデスクトップ版で利用できます。ご興味のある方は、ぜひwaitlistにご登録ください。 フィードバックやコラボレーションのご相談もお待ちしています。