
2026/06/18 1:14
HN ランチ:Adam(YC W25)– オープンソース AI CAD
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
CADAMは、自然言語テキストまたは画像からパラメトリックなOpenSCAD 3Dモデルを直接生成するAI搭載のブラウザ系CADツールです。React 19、TypeScript、Three.js、OpenSCAD WebAssemblyを含む堅牢な技術スタックを用いて構築されており、Anthropic Claude APIを利用してプロンプトを専門的な機械設計に解釈します。本プラットフォームはBOSL、BOSL2、MCADなどの不可欠なCADライブラリと統合され、カスタムパラメータ抽出および高品質な部品の作成を可能にしています。
インターフェースがブラウザ上で動作する一方で、アプリケーションにはNode.js (>=20.19.0または>=22.12.0) およびnpm 10以上を備えたローカル開発環境が必要であり、依存関係の管理およびバックエンドインフラストラクチャ、ストレージ、認証用Supabaseサービスの実行を担います。完全な機能を得るためには、複数のAIプロバイダーキーを設定し、webhook用のローカルストレージを公開するために
ngrokを使用する必要があります。セットアップの複雑さに関わらず、CADAMは標準的なエクスポート形式である.STL、.DXF、ネイティブ.SCADファイルによる複雑な物品(V8エンジンや惑星ギアなど)の迅速なプロトタイピングを通じて、3Dプリンティングコミュニティへの参入障壁を大幅に低減しています。本プロジェクトはGNU General Public License v3.0の下でリリースされており(特定のコンポーネントはGPLv2+のライセンス下)、openscad-web-guiやdingcadなどの主要なオープンソースイニシアチブからインスピレーションを受けています。本文
CADAM:ブラウザ上で AI で 3D モデルを生成・制御するツール
🌐 公式サイトへアクセス
インストール不要。ブラウザ上で数秒で CAD モデルを生成します。
✨ 主な特徴
- 🤖 AI 搭載のモデル生成:自然言語や画像を入力して、3D モデルに変換
- 🎛️ パラメトリックな制御機能:スライダー操作で瞬時に寸法を調整可能
- 📦 多様な出力形式対応:.STL(3D 印刷用)、.SCAD、.DXF(CAD 用)ファイルへのエクスポートが可能
- 🌐 ブラウザベースの実行:WebAssembly を使用し、完全なブラウザ上で動作
- 📚 ライブラリサポート:BOSL、BOSL2、MCAD などのライブラリが内蔵
🎯 主な機能詳細
| 機能 | 説明 |
|---|---|
| 自然言語入力 | 3D モデルを平易な英語で記述(プロンプト) |
| 画像リファレンス | モデル生成のガイドとなる画像をアップロード可能 |
| リアルタイムプレビュー | Three.js を使用し、モデルの変動を即座に確認 |
| パラメータ抽出 | 調整可能な寸法を自動的に検出 |
| スマートな更新処理 | AI の再生成を行わず、効率的にパラメータを変更 |
| カスタムフォント対応 | モデル内のテキスト用に Geist フォントを内蔵 |
📺 スクリーンショット
以下のモデルは、単一の自然言語記述から作成可能です。 すべて完全にパラメトリックな OpenSCAD 形式で出力され、.STL、.SCAD、または .DXFとしてエクスポートできます。 ソースコードおよび解説は
ディレクトリ内、回転プレビューレンダリングにはbenchmarks/を使用します。benchmarks/render.sh
🔧 複雑なマシンおよびアセンブリ
-
V8 エンジン
- 構成:90°V 配列の二バンク四シリンダー、バルブカバード付きシリンダーヘッド、インテークマニホールド、エクスショットヘッダー、クランクシャフト(カウンターウェイト付き)、ピストンおよびコネクティングロッド、プーリー、オイルパンを含む。
- 制御パラメータ:22 個
- 出力結果:8 つの色
-
9 シリンダーラジアル航空機用エンジン
- 構成:中央の丸いクランクケースを周りに星型配置で九つのフィンド付きシリンダー。スタックされた冷却フィンとドーム状のシリンダーヘッド、中央のプロペラシャフトハブを搭載。
- 制御パラメータ:15 個
- 出力結果:6 つの色
-
ターボファンジェットエンジン
- 構成:フロントフェンスから内部が見える高バイパスターボファン。バイパスカウル、コンプレッサー・タービン段、アウトレットガイドブレード、エクスショットプラグを含む。
- 制御パラメータ:2 個
- 出力結果:10 つの色
-
軸流式タービン ブリスク
- 構成:中心ハブにシャフトボーあり、周囲に約 28 枚の薄型アエロフォイルブレードを単一リング状配置。実機のようにはね(ねじれ)が施された構造。
- 制御パラメータ:14 個
- 出力結果:1 つの色
🧱 パラメトリックな基本要素
-
ねじれた六角形壺
- 構成:高さ約 150mm の中空シェル。底面(70mm)から口元(50mm)へ漸次細く、六角断面が 120°ねじれ。壁厚 2mm、底面閉塞。
- 制御パラメータ:6 個
- 出力結果:1 つの色
-
リズル加工ハンドル
- 構成:直径 40mm、高さ 22mm のダイヤンドリズルグリップ。上面突起のポインタマーク、D 形シャフトボー(6mm)、M3 セットスクリュー穴を含む。
- 制御パラメータ:15 個
- 出力結果:2 つの色
-
六角ボルトおよびナット
- 構成:長さ 45mm の M12 六角ボルト(ネジ切りシャフト・標準六角頭)と対応する六角ナット。
- 制御パラメータ:3 個
- 出力結果:2 つの色
-
ハチ組状軽量ブラケット
- 構成:90°角度マウントブラケット。80×80mm フランジ(厚さ 5mm)に両面ハニカムカットアウトで軽量化、M5 マウント穴 4 つ、丸め角内側対応。
- 制御パラメータ:13 個
- 出力結果:1 つの色
-
NACA 2412 漸減翼
- 構成:実際の NACA 2412 エアフォイル断面使用。スパン 200mm で根元弦長 120mm から先端 80mm へ細くなる、スパー管 2 本および軽量化穴を含む。
- 制御パラメータ:9 個
- 出力結果:1 つの色
-
ネジ付き瓶とねじ式蓋
- 構成:首元外ネジの小型貯蔵瓶(直径 60mm、高さ 70mm、壁厚 2.5mm)と内部ネジ付きスクリューオン型蓋。分解表示あり。
- 制御パラメータ:9 個
- 出力結果:2 つの色
-
直交円錐歯車駆動
- 構成:縦軸 24 本歯、横軸 16 本歯の円錐ピニオンで 90°啮合。短い stub シャフト搭載。
- 制御パラメータ:9 個
- 出力結果:3 つの色
-
遠心ポンプインペラー
- 構成:直径 90mm バックプレート(中央ボー 12mm、突起型ハブ)。ハブから外縁までの七枚逆湾曲ブレード(経路上で滑らかに変形)。
- 制御パラメータ:10 個
- 出力結果:1 つの色
-
ヘリンボーン型プランetaryギアステージ
- 構成:モジュール 1.5 サンギア(18 本歯)、プラネタリーギア×3(各 18 本歯)、リングギア(54 本歯)、キャリアプレート。各色別表現。
- 制御パラメータ:10 個
- 出力結果:4 つの色
🚀 クイックスタート
1. リポジトリのクローン
git clone https://github.com/Adam-CAD/CADAM.git cd CADAM
2. 依存関係のインストール
npm install
3. サーバー側の開始
Supabase を開始し、API 機能を有効化します。
npx supabase start npx supabase functions serve --no-verify-jwt
4. 開発サーバーの起動
npm run dev
📋 必要な環境
以下のバージョンを事前に用意してください:
- Node.js:
または^20.19.0>=22.12.0 - npm:
以上10 - Supabase CLI
- ngrok:ローカルウェブフック開発用(オプション)
🔧 環境変数の設定方法
設定ファイル
.env.local の作成が必要です。まずテンプレートからコピーしてください。
1. フロントエンドの環境設定
.env.local.template を .env.local にコピーし、必要に応じて更新します。
VITE_SUPABASE_ANON_KEY="<テスト用匿名キー>" VITE_SUPABASE_URL='http://127.0.0.1:54321'
2. サーバーサイドの環境設定
以下の API キーを追加してください(各プロバイダーから取得した値を代入):
ANTHROPIC_API_KEY="<テスト用 Anthropic API キー>" OPENROUTER_API_KEY="<テスト用 OpenRouter API キー>" OPENAI_API_KEY="<テスト用 OpenAI API キー>" GOOGLE_API_KEY="<テスト用 Google API キー>" FAL_KEY="<テスト用 FAL キー>" SUPABASE_SERVICE_ROLE_KEY="<テスト用サービスロールキー>" BILLING_SERVICE_URL="<テスト用請求サービス URL>" BILLING_SERVICE_KEY="<テスト用請求サービスキー>" ENVIRONMENT="local" ADAM_URL="<Adam URL または開発用 URL>" # チェックアウトおよびポータルリダイレクトの目標先 WEBHOOK_BASE_URL="<TanStack アプリ公開 URL>" # /cadam/api コールバック用のアプリ URL NGROK_URL="" # 有符号 Supabase ストレージ URL(必要时无効)
🌐 ngrok を使用したローカル開発の設定
CADAM は外部からアクセス可能な URL が要求されることがあります。ngrok でトンネルを作成してください。
1. ngrok のインストール
npm install -g ngrok # または macOS/Linux brew install ngrok
2. トンネルの開始と設定
開発サーバーを指すように ngrok を起動し、生成された URL(例:
https://xxxx.ngrok.io)を .env.local に追加します。
WEBHOOK_BASE_URL="https://xxxx-xx-xxx-xx.ngrok.io" NGROK_URL="https://xxxx.supabase.co" # 必要に応じて設定 ENVIRONMENT="local"
注意:プロバイダーがローカル Supabase ストレージの有符号 URL を取得する必要がある場合は、別途 ngrok トンネルを起動し
に設定してください。NGROK_URL
💻 開発ワークフロー
- 依存関係のインストール:
npm install - Supabase サービスの開始:
npx supabase start npm run dev
🛠️ 使用技術スタック
| カテゴリ | 技術名 |
|---|---|
| フロントエンド | React 19, TypeScript, TanStack Start, Vite |
| 3D レンダリング | Three.js, React Three Fiber |
| CAD エンジン | OpenSCAD (WebAssembly) |
| バックエンド | TanStack Start サーバールート, Supabase (PostgreSQL/Auth/ストレージ) |
| AI モデル | Anthropic Claude API |
| スタイリング | Tailwind CSS, shadcn/ui |
| ライブラリ | BOSL, BOSL2, MCAD |
🤝 コントリビューション
より良い開発環境を築くためにご協力いただける場合:
- リポジトリのフォークとプルリクエスト作成
- 問題報告(Issue)の開示
- 詳細手順および行動規範は
を参照ください。CONTRIBUTING.md
🙏 クレジット
本プロジェクトの実現に貢献された技術・ツール:
- OpenSCAD
- openscad-wasm
- openscad-playground
- openscad-web-gui
- dingcad
📄 ライセンス情報
GNU General Public License v3.0 (GPLv3)
詳細は
LICENSE ファイルを参照ください。
コンポーネントと帰属について:
- 本プロジェクトの一部は、
(GPLv3) からの派生品を含みます。openscad-web-gui- OpenSCAD WASM の未修正バイナリは GPLv2 またはそれ以降の下ライセンスされており、組み合わせた作品として GPLv3 で配布されています。
- 詳細:
src/vendor/openscad-wasm/SOURCE-OFFER.txt
⭐ スター履歴
RepoStars ライブチャートにて、クリックしてインタラクティブなスター数をチェックできます!
もし CADAM が役立つと感じた場合は、Star を押していただけると幸いです!
💙 3D プリンティングおよび CAD コミュニティのために作成しました。