Adam CADAM: オープンソースのAI搭載Text-to-CADプラットフォーム
Adam CADAMは、自然言語による説明や画像リファレンスから3Dモデルを生成できる、オープンソースのtext-to-CADウェブアプリケーションです。AIを活用してパラメトリックなOpenSCADコードを生成することで、AIにモデル全体を再生成させる必要なく、インタラクティブなスライダーを通じて即座に寸法を調整することが可能です。
AI駆動のパラメトリックモデリング
CADAMは、平易な英語のプロンプトやアップロードされた画像を、機能的な3Dジオメトリに変換します。静的な3D生成とは異なり、CADAMはパラメトリックモデルを生成するため、調整可能な寸法を自動的に特定し、それらをインタラクティブなコントロールとして抽出します。
主な機能は以下の通りです:
- Natural Language Input: ユーザーは平易な英語でモデルを説明し、3Dジオメトリを生成します。
- Image-Guided Generation: アップロードされた画像を使用して、AIにモデル作成のガイドをさせることができます。
- Parametric Controls: インタラクティブなスライダーにより、リアルタイムで寸法を調整できます。
- Smart Updates: パラメータの変更は、AIによるフルリジェネレーション・サイクルを必要とせずに即座に適用されます。
- Real-time Preview: Three.jsとの統合により、モデルが変更されるたびに即座に視覚的な表現が提供されます。
技術スタックとアーキテクチャ
CADAMは、CADエンジンをローカルで実行するためにWebAssemblyを使用するブラウザベースのアプリケーションとして構築されており、ローカルソフトウェアのインストールなしで高いパフォーマンスとアクセシビリティを確保しています。
技術スタックは以下の通りです:
- CAD Engine: OpenSCADをWebAssembly (WASM) にコンパイルしたもの。
- Frontend: React 19, TypeScript, TanStack Start, および Vite。
- 3D Rendering: Three.js および React Three Fiber。
- Backend: TanStack Startのサーバー・ルートと、PostgreSQL、認証、ストレージのためのSupabaseの組み合わせ。
- AI Integration: Anthropic Claude APIによって駆動。
- Styling: Tailwind CSS および shadcn/ui。
- Supported Libraries: システムはBOSL, BOSL2, および MCADライブラリをサポートしています。
ベンチマークとモデルの複雑さ
CADAMは、単一のプロンプトから、単純なパラメトリック部品から複雑なマルチパーツ・アセンブリまで生成することが可能です。すべての出力は .STL, .SCAD, または .DXF ファイルとしてエクスポート可能です。
複雑なアセンブリ
- V8 Engine: 2つのバンクに分かれた4気筒エンジン、シリンダーヘッド、インテークマニホールド、エキゾーストヘッダー、クランクシャフト、ピストン、およびオイルパン(22個の寸法で制御)を備えた完全な内燃機関。
- Radial Aircraft Engine: 中央のクランクケース、星型パターンに配置されたフィン付きシリンダー、およびプロペラシャフト・ハブを備えた9気筒エンジン(15個の寸法で制御)。
- Turbofan Jet Engine: フロントファン、バイパス・カウル、内部コア、およびエキゾースト・プラグを含む高バイパス・ターボファン。
- Axial Turbine Blisk: 中央のハブと28枚のねじれたエアロフォイル・ブレードを備えたブレード付きディスク。
パラメトリックの基本
- Mechanical Parts: システムは、本物のネジ山を持つM12六角ボルトとナット、D型シャフト穴を持つ滑り止め加工されたコントロールノブ、および直角ベベルギア・ドライブなどの高精度部品を生成できます。
- Engineering Components: 例として、NACA 2412テーパー形状の航空機用翼、後退翼を持つ遠心ポンプ・インペラ、およびヘリンボーン・プラネタリーギア・ステージが含まれます。
- Consumer Objects: ねじれた六角形の花瓶や、対応するスクリュー式蓋付きのネジ山付きジャーなど、単純なアイテムも生成可能です。
デプロイメントと開発
CADAMは GNU General Public License v3.0 (GPLv3) の下でライセンスされています。開発者は、リポジトリをクローンし、Supabaseおよび各種AIプロバイダー(Anthropic, OpenAI, Google, および OpenRouter)の環境変数設定を行うことで、プロジェクトをローカルで実行できます。
ローカル開発には Node.js (^20.19.0 または >=22.12.0) と Supabase CLI が必要です。アプリケーションがプロバイダーのコールバック用の公開URLおよび署名付きストレージURLを使用するため、開発者はローカルのWebhook開発のために ngrok を使用してトンネルを作成することを推奨しています。