GenCAD:彌合 2D 圖像與參數化 CAD 程式之間的差距

從 2D 圖像轉換為功能性 3D 模型長期以來一直是計算設計中的一項挑戰。雖然許多 AI 模型可以使用體素 (voxels)、點雲 (point clouds) 或網格 (meshes) 生成 3D 形狀,但這些格式通常是「死」的幾何體——它們缺乏專業工程與製造所需的參數化歷史和可修改性。

GenCAD 透過提出一種圖像條件生成模型來解決這一限制,該模型不僅僅生成一個 3D 實體,而是生成整個 CAD 程式:一系列參數化的指令,幾何核心 (geometry kernel) 可以執行這些指令來重建模型。這種方法確保了最終輸出是精確、可編輯且與傳統工程工作流程相容的。

GenCAD 的架構

從靜態圖像生成參數化 CAD 序列需要對視覺幾何和構造實體幾何 (constructive solid geometry) 的邏輯都有深入的理解。GenCAD 透過以下四步驟流程實現這一點:

  1. Autoregressive Transformer Encoder:此組件學習 CAD 指令序列的潛在表示 (latent representation),有效地將 CAD 程式的邏輯「壓縮」到數學空間中。
  2. Contrastive Learning:為了彌合不同模態之間的差距,GenCAD 使用基於對比學習的模型。這將 CAD 指令序列的潛在空間與 CAD 圖像的潛在空間對齊,使模型能夠理解哪些視覺特徵對應於特定的 CAD 操作。
  3. Latent Diffusion Model:以輸入圖像為條件,此模型生成對應 CAD 指令序列的潛在表示。
  4. Decoder Model:最後,解碼器將這些潛在表示轉換回人類可讀且機器可執行的參數化 CAD 指令序列。

透過專注於指令歷史而非最終表面,GenCAD 保留了設計的「意圖」,允許工程師在模型生成後調整參數並精煉模型。

行業觀點與批判性分析

雖然 GenCAD 的技術框架極具野心,但社群的回應突顯了該專案在專業環境中具備可行性之前必須克服的幾個關鍵障礙。

用途差距

其中一個主要的批評是生成形狀與進行工程之間的區別。正如社群成員所指出的,CAD 最困難的部分不在於繪圖本身,而是在於確定公差、尺寸和約束條件。

CAD 繪圖最耗時的部分來自於確定每個特徵的正確尺寸、間距、大小、公差等,並以一種方便日後調整的方式來約束繪圖——而這點完全沒有做到。

此外,一些用戶質疑圖像轉 CAD 生成的實用性,認為如果用戶已經擁有零件的高品質渲染圖,他們很可能已經擁有原始的 CAD 檔案。

複雜度與泛化能力

批評者還指出,目前的演示展示的是相對簡單的幾何體。對於模型是否能擴展到複雜的工業零件,或者在不失敗的情況下處理手繪草圖和真實世界的照片,普遍存在懷疑態度。

這些範例讓我懷疑,除了最初就是從 CAD 生成的圖像之外,它在其他圖像上的表現可能不佳。

其他替代方法

討論也揭示了實現類似結果的其他替代方法。一些開發者已發現使用大型語言模型 (LLMs) 來生成 OpenSCAD 或自定義語言如 KCL (由 zoo.dev 使用) 的程式碼已取得成功。這些方法利用 LLMs 現有的編碼能力來產生程式化 3D 模型,這表明 AI-CAD 的未來可能在於 LLM 與專業幾何核心的整合,而非獨立的擴散模型。

結論

GenCAD 透過將焦點從表面生成轉向程式生成,代表了向前邁出的重要一步。透過產生參數化歷史,它提供了一條通往真正可修改的 AI 驅動設計之路。然而,為了讓 GenCAD 從一個「酷炫的演示」轉變為專業工具,它需要證明其處理複雜工程約束的能力,並與現有的 CAD 核心與 LLM 驅動的設計助手生態系統進行更深層次的整合。

Sources