cc-models(Vibe CAD:Claudeを使ったパラメトリック建模)
概要
cc-models(Vibe CAD)は、Claudeなどの大規模言語モデルを用いて「写真+自然言語」のユーザ入力からCadQueryコードを生成し、パラメトリックな工業用3Dモデルを出力する試作プロジェクトです。ユーザが撮影した画像を参照してAIが関連する寸法パラメータを検索・補完し、変数化された設計を作成。生成モデルはSTEPでエクスポートでき、SolidWorksやFreeCADでの二次編集が可能です。対話による増分修正(例:「幅を2mm広げる」)により反復設計をサポートします。
リポジトリの統計情報
- スター数: 13
- フォーク数: 6
- ウォッチャー数: 13
- コミット数: 4
- ファイル数: 6
- メインの言語: Python
主な特徴
- 画像と自然言語からCadQueryコードを自動生成し、3Dモデルを構築
- 生成モデルはパラメータ化され、増分の自然言語指示で修正可能
- OpenCASCADE(CadQuery)をバックエンドにSTEP出力しCADソフトで編集可能
- 産業用途を想定した「設計の対話化」を目指すプロトタイプ
技術的なポイント
このプロジェクトは「言語モデルを設計生成エンジンとして利用する」点が技術的核です。ワークフローは大まかに(1)画像入力+テキスト指示の受け取り、(2)LLM(READMEではClaude)による要求解釈と関連寸法の検索・補完、(3)CadQuery用のPythonスクリプト(パラメータ化された寸法変数を含む)を生成、(4)CadQuery/OpenCASCADEで実行してSTEP等のCADフォーマットを出力、という流れです。CadQueryはプロシージャルでパラメトリックなモデリングに強く、生成されたコードは可読な変数定義を持つため後から自然言語や手動で調整できます。増分修正(例:「スロットを2mm広げる」)は、生成コード中の変数を更新し再実行することで反映され、対話的な設計ループを実現します。実装上の留意点としては、LLMの出力の妥当性検証(失敗時の安全なフォールバック)、CAD生成時の幾何学的整合性チェック、外部寸法データの信頼性確保、及びCadQuery/OpenCASCADE環境のセットアップが挙げられます。現状はプロトタイプでコードベースは小規模だが、概念実証としての完成度は高く、将来的にはプラグインやGUI連携、複雑アセンブリ対応が見込めます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- CLAUDE.md: file
- README.md: file
- input.png: file
- models: dir
…他 1 ファイル
READMEの抜粋(要旨):
- 「嘿 Claude,看看这张照片,帮我设计一个放它的支架,可容纳5个…」のように画像と指示でモデリング要求を与える例を掲載
- 生成プロセスのプレビュー(input.png → preview.jpg)を示す
- CadQuery/OpenCASCADEを使用し、STEP出力で既存CADツールに持ち込める点を強調
- 特徴としてテキスト記述からのモデル生成、増分修正、パラメトリック設計、STEP出力を挙げている
使い方(概略)
リポジトリ自体は小規模なPoC(Proof of Concept)です。実際に動かすには:
- Claude等のLLMアクセス(README/CLAUDE.mdの手順参照)
- CadQueryおよびOpenCASCADEの環境構築(Pythonパッケージやバインディングの準備)
- 提供されるサンプル入力(input.png)やテンプレートを用いてLLMに指示を送り、生成されるCadQueryコードを実行してSTEPを出力 詳細な手順はREADMEとCLAUDE.mdを参照してください。
制約と今後の展望
- 現状はプロトタイプでコード・ドキュメントが限定的、実運用には堅牢性・検証機構が必要
- LLMの出力品質に依存するため、誤った幾何生成の検出と修正機構が重要
- 将来的にはGUI統合、複雑アセンブリ対応、自動寸法データベース連携、安全検証パイプラインの追加が有望
まとめ
写真+対話で工業レベルのパラメトリックモデルを生成する可能性を示す実用的なPoCです。
リポジトリ情報:
- 名前: cc-models
- 説明: 説明なし
- スター数: 13
- 言語: Python
- URL: https://github.com/shellus/cc-models
- オーナー: shellus
- アバター: https://avatars.githubusercontent.com/u/3044880?v=4