CADFather:用視覺語言助手協調多工具,從網格自主重建引數化 CAD 程式
CADFather 是無需額外訓練的 CAD 逆向重建智慧體:Qwen3.8-27B 視覺語言助手檢視渲染圖,在學習型提案、演算法型幾何提案和引數最佳化之間排程,並保留最優有效結果。在 DeepCAD、Fusion360 和 MCB 完整測試集上無效率為零,平均 IoU 達 0.987、0.976 和 0.913,高於 CADENA-RL 取樣版。
研究背景:從網格到可編輯的 CAD 程式
網格只描述形狀,不記錄建模步驟。一個掃描件或遺留網格模型,沒有構造歷史,工程師就無法直接修改孔徑或壁厚。CADFather 要解決的正是這個逆向工程問題:給定目標網格,恢復一段可執行、結構合理、可編輯的引數化 CAD 程式。論文來自莫斯科國立大學、Innopolis 大學和 FusionBrain Lab,arXiv 編號 2610.09127,2026 年 10 月 6 日提交。作者已在 GitHub 開原始碼(kulibinai/CADFather)。
現有方法各有所長,也各有短板。CAD-Recode、cadrille、CADEvolve 一次生成完整程式。CADReasoner 根據差異反饋修訂整段程式。CADENA 每次只追加一個操作。CADFit 則用幾何擬合加最佳化搜尋。論文的核心觀察是:沒有任何單一的操作來源能在所有零件幾何和所有重建階段都表現最好。學習型模型能給出合理的操作,但可能漏掉特徵或尺寸不準。演算法型構造直接從目標幾何推導操作。引數最佳化能微調現有程式的尺寸。於是問題變成:在每一步,該擴充套件哪個候選,該呼叫哪個工具。
核心架構:視覺語言助手加三類工具
CADFather 是一個無需額外訓練的智慧體。視覺語言助手是 FP8 權重、關閉顯式思考的 Qwen3.8-27B。學習型操作生成器是 CADENA-RL 檢查點,以 bfloat16 部署。兩個模型都凍結。所有工具輸出同一種表示,即 CADENA 的 CadQuery 領域特定語言,所以一個工具產生的候選可以被另一個工具繼續擴充套件或精修。
三類工具分工明確。第一,學習型提案:對某個父程式,一次請求生成 n 個下一步操作候選,助手自己決定 n,單次上限 32。第二,演算法型提案:不依賴學習模型,直接對目標網格做幾何擬合。在空起點上,它先判斷是否為旋轉體,否則用平面切割目標,把每個截面當作草圖,求出草圖貼合目標表面的拉伸深度,並丟棄對重疊度貢獻很小的拉伸。在已有候選上,它比較候選與目標,找出缺失材料和多餘材料,缺失處生成拉伸,多餘處生成切除,並給出排序列表,每次呼叫返回接下來的四個提案。第三,引數最佳化:只改數值,不改操作結構,自由引數包括草圖座標、半徑和拉伸深度。
決策迴圈與候選池
系統為每個零件維護一個候選池。每個候選記錄標識、父節點、來源工具、程式、網格、運算元、有效性和度量。擴充套件候選會生成子節點,不會改寫歷史,程式碼級去重避免重複條目。每一步,助手只看到一張有界表格:最多 12 個得分最高的候選,外加受保護的最優候選和空起點。表格給出每個候選的工具來源、運算元、IoU 與 GMS、首個操作的得分,以及還能用哪些工具。助手還看到目標與最新候選的渲染圖。它用一句話說明意圖,然後發出最多 4 個 act 呼叫,或呼叫 finish,原因為 shape(特徵已齊全)或 stalled(已無進展)。
工具返回的只是提案。系統先構建並驗證,再測量,最後由助手目視檢查渲染結果,決定是否納入候選池。有效性規則很嚴格:程式必須能構建,且整體網格必須是體積為正的水密實體。比較時目標與候選處於同一座標系,候選不會被自己的包圍盒重新縮放,所以尺寸錯誤會被扣分。得分是 IoU 與歸一化 GMS 的平均值,無效候選記 0。最終輸出是受保護的最優結果,而不是助手最後操作的那個候選。預算由固定上限保證終止:每零件 24 步、最多 12 個操作、1000 秒、80 個生成樣本、6 次演算法呼叫、10 次最佳化呼叫、120 次程式執行。
最佳化器的數學基礎
引數最佳化器基於有符號距離。對空間中一點,取到實體表面的距離,內部為負。程式的距離由其操作直接計算,目標的距離由網格在取樣點上計算。失配量是兩種距離在取樣點上的均方差。
梯度用數值差分估計:每個引數依次移動一個小步長,觀察失配的變化。最佳化先擬合覆蓋整個零件的點,再擬合靠近表面的點,並在初始、粗略和精細三組引數中選出表面附近最匹配的,所以程式也可能原樣返回。它只支援拉伸、孔和旋轉。作者明確表示沒有提出新的數值最佳化器。
基準結果
在 DeepCAD、Fusion360 和 MCB 的完整測試集上(分別為 8046、1725 和 5000 個零件),CADFather 的無效率均為 0,平均 IoU 為 0.987、0.976 和 0.913,而 CADENA-RL 取樣版為 0.966、0.952 和 0.895。GMS 為 0.983、0.960 和 0.766。在 30000 取樣點下,Chamfer 距離中位數(乘以 10 的 3 次方)為 0.039、0.034 和 0.083,均低於 CADENA-RL 取樣版的 0.042、0.036 和 0.089。論文強調學習型工具用的就是同一個 CADENA-RL 檢查點,所以增益並非來自更強的生成器。需要注意:已發表的 CADENA 行使用較寬鬆的有效性規則,CADFather 的規則更嚴,兩者的無效率不能直接比較。
在 CADENA-Bench(3396 個零件)上,CADFather 的 IoU 為 0.909,GMS 為 0.721,高於 CADENA-RL 貪心版的 0.876 和 0.670。在 CADBench 的官方評測程式碼下,18000 個零件上的 IoU 為 0.930,SIoU 為 0.787,CD 為 0.029,均優於 CADFit 的 0.859、0.679 和 0.038,但有效形狀率 0.968 低於 CADFit 的 0.981,原因是 576 個零件超出評測器 30 秒限制。在 BenchCAD 上,體素 IoU 為 0.968,無效率為 0。
消融:演算法型提案貢獻最大
在每個資料集 1000 個零件的子集上,去掉演算法型提案會使平均得分下降 0.012 至 0.110,MCB 上無效率從 0 升到 0.124。原因是有些零件上,學習型生成器取樣出的所有首個操作都是開放曲面,搜尋無法從非水密基礎繼續,而對目標截面做拉伸能給出封閉實體。
去掉最佳化器只讓得分下降 0.004 至 0.006,無效率仍為 0。這說明在這套系統裡,工具多樣性主要解決的是魯棒性問題,而不是精度的最後一點。作者也承認,消融沒有隔離助手選擇策略本身的貢獻。
成本與延遲
每零件平均助手步數在 DeepCAD 上是 6.37,Fusion360 上 8.41,MCB 上 12.25,CADENA-Bench 上 13.04。對應的牆鍾時間為 82.6、119.9、245.6 和 306.7 秒。生成樣本數從 19.0 到 67.1 不等。助手自行結束的比例從 DeepCAD 的 86.1% 降到 CADENA-Bench 的 25.0%,說明覆雜機械件常常是被預算截斷的。
在 BenchCAD 上,按 Qwen3.8-27B 的 OpenRouter 價格估算(每百萬輸入 token 0.425 美元,輸出 2.55 美元),四步後體素 IoU 為 0.943,成本約 0.016 美元每零件,滿預算為 0.968,約 0.046 美元。論文引用的 Claude Opus 5.5 與 GPT-6 Astra 帶工具版本報告 0.962 和 0.959,成本分別為 5.94 和 1.75 美元。這些前沿模型數字是廠商自報、輸入和子集不同,作者自己也稱之為"語境性比較"。成本估算只含模型 token,不含幾何處理和執行。
對開發者與企業的意義
對製造業和工業軟體團隊,這類系統讓遺留掃描件和無歷史網格變成可引數化編輯的模型。它不需要訓練專用大模型,只要組合已有的生成器、幾何演算法和通用視覺語言模型,因而可以在私有環境中用開源權重部署。
模組化設計也意味著任何一個工具都可以被替換:更強的生成器或更快的擬合演算法可以直接接入。更廣泛的啟示是,在幾何這類可驗證的領域,智慧體的價值在於路由和預算分配,而不在於單個模型的原始能力。
侷限與未來方向
作者列出了幾點侷限。系統受限於 CAD 表示所支援的操作和工具能產生的提案:引數最佳化無法糾正錯誤的操作序列,保留早期候選也無助於從未生成過的方案。搜尋上限可能截斷本可成功的軌跡。助手依據不完整的視覺和數值證據做決定,結果可能依賴提示詞和模型行為。典型失敗包括初始拓撲錯誤(實心塊被重建為空心框架)、體積匹配但表面細節缺失(滾花、淺槽),以及螺旋彈簧被重建為管子。評測只衡量幾何重建和程式有效性,不衡量設計歷史、製造意圖和工程約束,也不涉及裝配體、公差和模擬驗證。與 CAD-Assistant、IterCAD 等其他 CAD 智慧體的直接比較,以及對助手選擇策略的受控評估,都留給未來工作。
還要看到一點:最終選擇使用的是與報告指標相同的 IoU 與 GMS,這是一種按同一指標的最優選擇。讀者引用這些數字時應記住這一點。