AIで3Dモデルを自動生成!Text to CADの衝撃

現実世界の公差はLLMの夢を見るか

AIが書いたコードをそのまま本番環境にデプロイすることへの心理的ハードルは、ここ1〜2年で劇的に下がった。では、AIが設計したジョイント部品をそのままCNCフライスや3Dプリンターに放り込んで、金属や樹脂を削り出せるか? そう問われると、おそらく大半のエンジニアは渋い顔をするはずだ。ソフトウェアのバグはリロードすれば直るが、現実世界の干渉や公差のミスは、高価な工作機械の破損や材料の無駄という物理的な痛みを伴うからだ。

昨今もてはやされている「Text-to-3D」というバズワードにも、私はずっと居心地の悪さを感じていた。世に溢れる3D生成AIの多くは、ゲームアセットや映像制作用の粗いポリゴンメッシュ、あるいは視覚的なレンダリング(NeRFなど)に特化している。たしかに「見た目」はそれらしい。しかし、モーターのマウント穴を0.1ミリ単位で指定できず、他の部品とのアセンブリも考慮されていない3Dデータは、ハードウェアエンジニアリングや製造業においてはほぼ無価値である。

我々が欲しいのは「それっぽいCG」ではない。「数学的に定義され、CADソフトで編集可能で、工作機械が理解できるソリッドモデル(STEPやSTL)」なのだ。

魔法ではなく、堅牢なパイプラインを組む

この深い断絶に対して、極めてエンジニアリング的に正しいアプローチで挑んでいるのが「text-to-cad」というオープンソースプロジェクトだ。

誤解のないように言っておくが、これは「テキストから直接3Dモデルを出力する魔法のAIモデル」ではない。Claude CodeやCodexといった既存の強力なAIコーディングエージェントを、「タイピングが異様に速い専属のCADスクリプター」として機能させるためのローカル開発環境(ハーネス)である。

彼らはAIに直接3Dデータを吐き出させることを諦め、「AIにPythonベースのCADライブラリ(build123dなど)のソースコードを書かせ、それをローカル環境でビルドしてSTEPやSTLを出力する」という構成をとった。

アプローチ 既存の「Text-to-3D」 Text-to-CAD (本リポジトリ)
主な用途 ゲームアセット、映像制作、AR/VR 機械設計、治具作成、ロボティクス
出力データ Mesh (OBJ/GLTF), NeRF STEP, STL, DXF, URDF
精度の担保 視覚的なそれらしさ 数式・寸法ベースの厳密な定義
修正プロセス プロンプトの再入力(ガチャ要素強め) 生成されたソースコードをAI/人間が編集

この設計の利点は計り知れない。モデルの形状はすべてテキストベースのソースコードとしてGitでバージョン管理でき、人間が後からいつでも微調整できる。そして何より、AIのハルシネーションによって「寸法が狂う」リスクを、ソースコードのレビューというソフトウェア開発のベストプラクティスで防ぐことができるのだ。

「言葉で形状をデバッグする」という新しい体験

しかし、ソースコードを経由するアプローチにも弱点はある。「イテレーション(反復修正)」の難しさだ。一度生成されたモデルを見て「この出っ張りをもっと右に寄せて」「ここの角にフィレット(丸み)をつけて」とAIに指示したいとき、テキストだけで特定の3D空間の部位を伝えるのは至難の業だ。人間同士なら画面を指差せば済む話である。

text-to-cadが秀逸なのは、この問題に対する解をビルトインで用意している点だ。同梱されているローカルの「CAD Explorer」ビューアーで生成モデルを確認すると、特定の面やエッジに対して @cad[...] という安定した参照ハンドル(リファレンス)を取得できる。

// エージェントへの修正指示のイメージ
"先ほど生成したモデルの @cad[face_front_top] の面に、半径2mmの貫通穴を追加して。"

このように、AIが正確に認識できるコンテキスト付きのハンドルを渡すことで、曖昧なプロンプトの繰り返しから脱却し、「ピンポイントでの形状デバッグ」を可能にしている。さらに、ロボティクスエンジニアにとっては垂涎の的であるURDF(ロボットモデルの記述形式)の生成と検証スキルまでバンドルされている点も見逃せない。

ソフトウェアとモノづくりの境界が溶ける日

ハードウェア設計は長らく、高価な専用ソフトと熟練の職人芸によって守られた一種の聖域だった。しかし、text-to-cadが提示する未来では、3Dモデルは「コンパイルされるのを待つソースコード」に過ぎない。モノづくりとソフトウェアエンジニアリングの境界線は、いま確実に溶け始めている。

参考リポジトリ: earthtojake/text-to-cad

Photo by Galina Nelyubova on Unsplash

コメントする