CADFusion:讓大模型看懂 3D 設計,文字直接生成 CAD 模型
研究人員提出 Text-to-CAD 框架 CADFusion,用大語言模型將自然語言轉換成 CAD 引數序列。訓練時交替進行引數序列學習與視覺反饋,既保證程式碼邏輯連貫,又獎勵渲染效果更好的模型,大幅提升了生成質量。
搞過工業設計或者 3D 列印的朋友都知道,畫一個合格的 CAD 模型到底有多折磨人。你要在軟體里拉線條、設約束、建草圖、拉伸切除,一步錯步步錯。既然大語言模型寫程式碼那麼厲害,能不能讓它聽懂人話,直接把這一串 CAD 建模步驟寫出來?
這就是 Text-to-CAD 想做的事。不過之前的研究往往只教模型生搬硬套程式碼序列,結果經常是邏輯勉強通順,渲染出來的 3D 物體卻慘不忍睹。最近,研究團隊提出了一個名為 CADFusion 的新框架,嘗試用大模型加視覺反饋的辦法,徹底解決這個問題。
為什麼以前的 AI 畫不好 CAD
傳統的 CAD 建模本質上是一串引數指令,比如先畫一個圓柱,再在頂面切一個凹槽。之前的做法很簡單粗暴,直接找來現成的 CAD 指令資料,當成程式碼序列餵給大語言模型去學。
但這套邏輯在 3D 建模上很容易碰壁。CAD 本質上是多模態的,它既是一串冷冰冰的引數序列,又是最終渲染出來的三維視覺實體。
更麻煩的是,引數到影像的渲染是一個「多對一」的過程。很多種不同的建模步驟可能做出同一個零件,而序列裡稍微漏掉一個倒角或約束,雖然程式碼沒報錯,渲染出來的東西可能就完全變形了。光盯著程式碼序列硬背,模型根本不知道自己畫出來的東西長成什麼樣。
雙管齊下:程式碼邏輯與眼睛看圖交替學
CADFusion 的解決思路很直接:既然光看序列不夠,那就給大模型配一雙「眼睛」,讓它在寫程式碼和看效果之間來回切換。
整個框架以大語言模型為核心,在訓練時交替進行兩個關鍵階段。
第一階段是序列學習。這個階段模型老老實實對照標準答案,學習真實的 CAD 引數序列,把建模語言的語法結構和前後邏輯理順,確保生成的指令是合法且連貫的。
第二階段則是視覺反饋。模型寫出的引數序列會被實際渲染成 3D 視覺影像,系統會根據渲染結果的好壞進行獎懲。渲染得漂亮、符合視覺預期的序列會得到獎勵,扭曲走樣的則會被懲罰。
通過這兩個階段的不斷輪換,大模型既掌握了底層引數的嚴謹邏輯,又學會了從視覺角度審視自己的作品。實驗資料和直觀對比都顯示,CADFusion 生成的 3D 模型在結構合理性和視覺還原度上都有了大幅提升。
為什麼重要
把自然語言直接變成工業級 CAD 引數,這件事的想像空間非常大。
現在的 3D 生成模型大多隻能吐出一堆沒有結構的網格面,雖然看著漂亮,但工程師根本沒法改,工業製造也用不上。而 CADFusion 生成的是真實的引數化序列,這意味著它匯出的模型能直接在機械設計軟體裡二次編輯、調整尺寸和公差。
我們認為,這項研究最聰明的地方在於抓住了 CAD「程式碼加視覺」的雙重屬性。以前的研究要麼把 CAD 當純文本程式碼處理,要麼把它當純 3D 圖形處理,CADFusion 用交替訓練的方式把兩者縫合在一起,用視覺結果反哺程式碼邏輯,思路非常清晰。
不過,目前這項技術還處於早期驗證階段。複雜工業裝配體往往包含成千上萬條約束和精密裝配關係,大模型面對極度精密的機械設計時,依然容易出現細微的尺寸漂移。但無論如何,它讓普通創作者甚至非專業人士用一句話生成可編輯零件,離現實又近了一大步。
來源 (3)
- cadfusion-text2cad.github.io(在新分頁開啟)原文cadfusion-text2cad.github.io
- arxiv.org(在新分頁開啟)報導arxiv.org
- @ledgeai(在新分頁開啟)討論x.com