duocad
人と AI が同じ選択を交互に触りながら形を作る CAD
なぜ作ったか
自分の設計作業を、Fusion 360 に戻らずに最後まで終えられるようにしたかった。既製の CAD は、直接操作の質、Linux で動くこと、軽さで比べたが、合うものが無かった。
何をしたか
画面で選んだ面や辺の集まり(選択集合)を、人と AI が同じ操作で触れるようにした。AI が対象を選び、人が過不足を直し、AI がフィレットなどをかける、という交互の流れを中心に置いている。AI は Claude Code から MCP で、またはアプリの中のパネルから操作する。形の計算には OCCT を、画面には Svelte と three.js を使った。操作はすべてログに残し、形は毎回ログから作り直すので、取り消しもログの再生で行う。
難しかったところ
形のカーネル(OCCT)のフィレットは、失敗しても例外を出さず、壊れた形を返す。20mm の立方体の全辺に半径 10.5mm をかけると、完了の印は立つのに体積が増える。完了の印、空でないこと、体積、形の検査の4つをすべて通ったときだけ結果を使うようにした。
形を変えると面の番号が振り直され、同じ面を指し続けられない。番号は保存せず、操作ログを正として毎回たどり直すようにした。
手元で動かす小さな言語モデルは、寸法を言わない依頼でも値を勝手に決めて形を変えた。寸法の無い依頼は、モデルの判断に任せず、プログラムの側で止めるようにした。
結果
マイクスタンド、歯ブラシ立て、36キーのキーボードのケースを duocad でモデリングした。自動テストは 3,243 件ある。27部品・2,835面をドラッグでまとめて選ぶ処理は、1,016ms から 65.5ms に縮めた。形状最適化(有限要素解析で応力の小さい材料を削る)も作ったが、2026-10 から開発を止めている。