DreamCAD:基于可微参数曲面的多模态CAD生成规模化方法 DreamCAD: Scaling Multi-modal CAD Generation using Differentiable Parametric Surfaces
用可微Bézier曲面从文本/图像/点云生成可编辑CAD模型,突破CAD数据标注瓶颈
前置知识
Bézier曲面与NURBS
Bézier曲面是一种由控制点和权重参数化的光滑曲面,定义在UV参数域上的双三次有理Bézier曲面由 (n+1) x (m+1) 个控制点和对应的非负权重确定。曲面在参数 (u,v) 处的求值公式为 S(u,v) = sum(w_ij * c_ij * B_i(u) * B_j(v)) / sum(w_ij * B_i(u) * B_j(v)),其中 B_i(u) 是Bernstein基函数。NURBS(非均匀有理B样条)是Bézier曲面的推广,是工业CAD软件中最通用的几何表示形式。Bézier曲面是NURBS的特例,因此与标准CAD操作天然兼容。
本文的核心就是用Bézier曲面片作为CAD模型的中间表示,理解其数学形式和可微性是读懂方法的关键。
BRep(边界表示)
边界表示是CAD模型的标准存储格式,它通过拓扑结构(顶点、边、面的连接关系)和几何参数(曲面方程、曲线方程)精确描述三维实体。与网格或点云不同,BRep是精确的、可制造的表示,支持布尔运算和参数化编辑。然而BRep的拓扑结构是离散的(如哪些面共享一条边),这使得基于梯度的优化难以直接作用于BRep数据。
理解BRep的精确性和离散拓扑特征,才能理解为什么现有CAD生成方法难以规模化,以及本文为何选择绕过BRep拓扑而专注几何。
可微网格生成(Differentiable Tessellation)
可微网格生成是指将参数曲面通过均匀采样UV参数域离散化为三角网格的过程,且整个过程对控制点和权重可微。具体做法是在r x r的UV网格上均匀采样(u,v)点,相邻采样点构成四边形面片再细分为三角形,相邻Bézier曲面片沿共享边界合并以保证C0连续性。由于曲面S(u,v)对控制点C和权重W可微,梯度可以从网格采样点反向传播到控制点,实现端到端优化。
可微网格生成是本文的核心技术支柱,它使得大规模无标注3D网格数据可以通过Chamfer距离进行点级监督,从而突破了CAD数据标注的瓶颈。
流匹配(Flow Matching)
流匹配是一种生成建模方法,学习一个速度场将先验分布中的样本变换到目标分布。训练损失为L_FM = E[||v_theta(x_t, t) - (x_1 - x_0)||^2],其中x_t = (1-t)*x_0 + t*x_1是插值路径。相比扩散模型,流匹配的训练目标更简单直接,推理时从噪声出发沿速度场积分即可生成样本。
DreamCAD的条件生成框架使用了粗到精的流匹配Transformer解码器,理解流匹配的工作原理是理解其生成流程的基础。
稀疏体素表示(SLAT)
稀疏体素表示将三维空间划分为规则网格,但只存储被占用的体素,每个活跃体素附带局部特征向量。SLAT在此基础上通过稀疏Transformer编码器为每个活跃体素生成结构化隐向量z_i。这种表示兼具空间规整性(便于Transformer处理)和紧凑性(只处理表面附近的体素),适合学习大规模3D数据的潜在空间。
DreamCAD的VAE编码器和条件生成流程都建立在稀疏体素表示之上,理解它才能理解从输入3D数据到参数曲面的完整编码-解码流程。
研究动机
当前CAD生成方法面临一个根本性的规模化瓶颈。设计历史方法(如DeepCAD、Fusion360)依赖sketch-and-extrude操作序列,但这类设计日志仅存在于Fusion360等少数商业CAD软件中,导致训练数据受限于DeepCAD-170K、Fusion360-8K等小型数据集,模型在自由曲面或开放词汇形状上的泛化能力很差。UV和图结构方法(如BRepGen、BRepDiff)虽然直接建模BRep,但BRep拓扑是离散和不可微的,无法进行梯度优化,且只能在面数较少的模型上训练(排除了ABC数据集中约70%的模型),生成结果还需要昂贵的网格拟合后处理阶段,存在高错误率和无效率。与此同时,ABC数据集包含超过100万个BRep模型,数百万无标注的3D网格存在于公开数据集中,但现有CAD方法无法利用这些大量存在的非结构化3D数据,因为它们没有显式的CAD标注。这种数据利用的瓶颈严重制约了CAD生成模型的泛化能力和实用价值。
本文的目标是DreamCAD的目标是建立一个可规模化的多模态CAD生成框架,能够从文本、图像和点云三种输入模态生成可编辑的参数曲面模型,同时完全不需要任何CAD特定的标注数据(不需要设计历史日志、BRep拓扑标注或面标签)。具体而言,框架需要利用大规模无标注3D网格数据进行训练,覆盖来自10个公开数据集的130万以上模型;生成的CAD模型可以直接导出为STEP文件,在标准CAD软件中编辑;在ABC和Objaverse数据集上跨文本、图像和点云三种模态达到最先进的几何精度和用户偏好,Chamfer距离相比基线降低60%以上。
与已有工作不同的是,本文的独特切入角度在于提出了一个解耦的两阶段CAD生成范式:第一阶段专注于从大规模无结构化数据学习可泛化的参数化几何,第二阶段在此几何基础上恢复完整的CAD拓扑。这个视角抓住了一个被已有工作忽视的关键观察:同时生成几何和拓扑比分别处理要困难得多。几何重建可以利用几十年来逆向工程领域的成熟方法和工具,而拓扑恢复也有well-defined的几何原语和现成的拟合工具可以利用。但联合生成几何和拓扑则需要同时在噪声输入、多样化3D几何和复杂拓扑结构上进行推理,没有可比的基础设施支撑。因此,DreamCAD通过可微分Bézier曲面片和C0连续性约束,实现了纯点级监督的参数几何学习,为后续的拓扑恢复建立了高保真且紧凑的几何基础。
核心方法
DreamCAD的整体架构可以类比为一个先雕刻形状、再精修细节的过程。想象一位雕塑家:他先用粗凿子在石块上凿出大致轮廓(对应粗粒度的体素生成),然后用精细工具逐步修整每个曲面片的控制点和权重(对应参数曲面解码器的精细化)。整个框架包含三个核心模块:(1)稀疏Transformer VAE,将3D形状编码为结构化隐向量并解码为有理Bézier曲面片集合;(2)CADCap-1M数据流水线,利用GPT-5为超过100万个CAD模型生成高质量文本描述;(3)粗到精条件生成框架,支持文本、图像和点云三种输入模态。技术路线是:首先将输入网格体素化为32^3稀疏体素,为每个活跃体素提取DINOv2视觉特征、法线特征和SDF值,通过稀疏Transformer编码器生成结构化隐向量;然后通过泛洪填充算法从体素生成初始C0连续Bézier曲面网格,再由参数曲面解码器精细化控制点和权重;最终通过可微分网格生成和Chamfer距离损失实现端到端训练。
DreamCAD最本质的创新在于将CAD几何生成从BRep拓扑中解耦出来,用可微的Bézier曲面片替代离散的BRep拓扑作为中间表示。已有方法(如BRepGen、BRepDiff)直接在UV空间或BRep拓扑上操作,面临三个根本限制:BRep拓扑不可微导致无法梯度优化;需要面标注限制了数据规模;生成后处理阶段(网格拟合)引入高错误率。DreamCAD的关键洞察是:每个CAD曲面本质上都可以参数化为一组有理Bézier曲面片,这些曲面片的控制点和权重是连续可微的,因此可以通过标准的Chamfer距离损失在无标注3D网格上直接训练。为了保证C0连续性(相邻曲面片之间无缝隙和重叠),本文不是通过几何优化来约束,而是通过结构化方法:从稀疏体素出发,用泛洪填充去除内部四边形,将每个表面四边形转换为Bézier曲面片,相邻曲面片共享边界控制点。这种做法从根本上保证了C0连续性,而无需额外的连续性损失项。这一设计使得框架可以在130万以上的无标注3D网格上训练,彻底摆脱了CAD数据标注的限制。
方法步骤详情
DreamCAD的完整流程分为VAE训练和条件生成两个阶段。VAE训练阶段:(1)输入网格先体素化为32^3稀疏体素,去除空体素后得到活跃体素集合;(2)对每个模型渲染150张RGB和法线图像(50张方位角扫描+50张仰角扫描+50张均匀半球采样),通过DINOv2提取每张图的嵌入特征,将每个体素中心投影到各视图并取平均得到2502维视觉特征;(3)这些特征经过8层稀疏Transformer编码器生成结构化隐向量;(4)解码阶段,首先用泛洪填充从稀疏体素生成表面网格,将每个四边形通过双线性插值转换为4x4网格控制点的Bézier曲面片,所有权重初始化为1;(5)参数曲面解码器对每个控制点预测变形(用tanh约束在局部邻域内)和权重更新(用softplus保证非负),对共享边界控制点均匀平均变形以保证C0连续性;(6)将精细化曲面可微分网格化,用Chamfer距离损失训练,损失函数包含四项:CD损失(lambda_cd=100)、G1切线连续性损失(lambda_g1=5e-3)、Laplacian平滑损失(lambda_lp=1)和KL散度正则化。条件生成阶段采用粗到精流水线,第一阶段用轻量VAE从条件输入生成粗粒度体素网格,第二阶段用流匹配Transformer为每个活跃体素生成局部SLAT特征,最后由预训练的参数曲面解码器生成最终曲面。对于文本输入,采用两阶段方案:先用LoRA微调Stable Diffusion 3.5-2B将文本转为图像,再用图像到CAD模型生成结果。
技术新颖性
DreamCAD的技术新颖性体现在三个层面。首先,在表示层面,它是第一个将CAD生成建模为可微Bézier曲面片集合的框架,与BRepGen/BRepDiff在UV空间操作、DeepCAD/Fusion360建模设计历史序列、NURBGen用LLM直接生成NURBS符号序列的做法本质不同。这种表示既保持了参数曲面的可编辑性(控制点和权重可直接在CAD软件中调整),又实现了完全的可微性(支持端到端梯度优化)。其次,在C0连续性保证方面,本文采用结构化方法(泛洪填充+共享边界控制点+均匀平均变形)而非几何优化或后处理,从源头上保证了相邻曲面片的无缝连接,已有方法都不具备这种保证。第三,在数据利用方面,DreamCAD是第一个能够在大规模无标注3D网格上训练CAD生成模型的框架,将训练数据从DeepCAD-170K量级扩展到130万以上模型,跨越了两个数量级,这得益于可微网格化使得Chamfer距离可以直接作为监督信号。
实验结果
DreamCAD在ABC和Objaverse两个数据集上的文本、图像和点云三种条件生成任务中均达到了最先进水平。在Point2CAD任务上,DreamCAD在ABC数据集上将Chamfer距离从Cadrille的2.98e-3降至0.93e-3,降幅达68.8%;将F1分数从78.86提升至92.12,提升17%;无效率从5.84降至0。相比CAD-Recode,CD降低75%(从3.73降至0.93),F1提升21%(从75.99至92.12)。在Objaverse OOD数据集上,DreamCAD同样显著领先,F1达87.31(Cadrille为57.49),CD为1.25e-3(Cadrille为6.28e-3)。在Image2CAD任务上,DreamCAD在ABC上的GPT评分达76.12(BRepDiff为16.13),用户偏好达77.03%(BRepDiff为17.63%),CD降至4.12e-3(BRepDiff为20.69e-3),改善80%。在最具挑战性的Text2CAD任务上,DreamCAD在ABC上GPT评分达85.62(最强基线BRepDiff仅4.34),用户偏好达85.40%(BRepDiff仅3.20%),CD降至20.32e-3(BRepDiff为54.12e-3),改善62%。在所有任务中,DreamCAD的无效率均为0%,意味着生成结果可100%转换为有效的STEP文件。消融实验表明,32^3体素分辨率在质量-效率权衡上最优(相比48和64,patch数分别减少3倍和4倍,CD仅增1-5%)。元数据增强的标注质量评估显示,95.8%(用户)和98.31%(GPT-5)的CADCap-1M标注被判定为正确。拓扑恢复实验表明,基于DreamCAD输出微调Qwen3-4B可生成99.2%有效的NURBS模型,CD仅0.17e-3。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Point2CAD (ABC) | F1 | 92.12 | 78.86 (Cadrille) | +16.8% |
| Point2CAD (ABC) | CD (x1e3) | 0.93 | 2.98 (Cadrille) | -68.8% |
| Point2CAD (ABC) | IR | 0.00 | 5.84 (Cadrille) | -100% |
| Point2CAD (Objaverse) | F1 | 87.31 | 57.49 (Cadrille) | +51.9% |
| Point2CAD (Objaverse) | CD (x1e3) | 1.25 | 6.28 (Cadrille) | -80.1% |
| Image2CAD (ABC) | GPT | 76.12 | 16.13 (BRepDiff) | +372% |
| Image2CAD (ABC) | User Pref | 77.03% | 17.63% (BRepDiff) | +337% |
| Image2CAD (ABC) | CD (x1e3) | 4.12 | 20.69 (BRepDiff) | -80.1% |
| Image2CAD (Objaverse) | User Pref | 82.92% | 16.63% (BRepDiff) | +399% |
| Text2CAD (ABC) | GPT | 85.62 | 4.34 (BRepDiff) | +1873% |
| Text2CAD (ABC) | User Pref | 85.40% | 4.44% (NURBGen) | +1823% |
| Text2CAD (ABC) | CD (x1e3) | 20.32 | 54.12 (BRepDiff) | -62.5% |
| Text2CAD (Objaverse) | GPT | 82.32 | 8.18 (NURBGen) | +906% |
| Text2CAD (Objaverse) | User Pref | 83.48% | 7.28% (NURBGen) | +1047% |
| Topology Recovery | Valid Rate | 99.2% | N/A | 首次验证 |
局限与改进
尽管DreamCAD在多项指标上取得显著突破,但仍存在以下局限性。首先,输出的曲面片集合虽然可编辑且可导出为STEP文件,但缺乏完整的CAD拓扑信息(如面-边-顶点的连接关系、孔洞信息等),这意味着生成的模型尚不能直接用于需要完整拓扑信息的工业流程(如有限元分析、装配约束求解)。作者在5.4节的拓扑恢复实验虽然展示了可行性(99.2%有效率),但这是一个独立的后处理步骤,并非端到端生成。其次,文本到CAD的流程采用了两阶段方案(文本到图像再到CAD),而非直接的文本到3D生成,这引入了额外的误差传播和延迟(推理时间从图像/点云的15秒增至文本的30秒)。第三,C0连续性的保证是结构化的而非可学习的,虽然避免了复杂的优化问题,但也限制了框架对非流形几何(如T型接合)的建模能力。第四,训练数据虽然规模庞大(130万以上),但经过了严格的低质量过滤(去除了99%的简单立方体和圆柱体),这可能导致框架对极简单几何体的建模能力下降,同时也过滤掉了部分真实工业零件。最后,VAE训练耗时3周(700k步),加上流匹配解码器的500k步和SD微调的300k步,总训练资源需求相当可观。
独立分析的弱点
从独立分析的角度,DreamCAD存在以下值得关注的弱点。第一,文本到图像的中间环节是一个明显的薄弱点:预训练的Stable Diffusion模型对数值约束特征(如孔数、齿数)的保持能力较差,虽然微调有所改善,但在涉及精确数值的工业描述中(如16齿齿轮、40个圆形孔),仍然可能出现计数错误,导致最终CAD模型不准确。一个改进方向是引入结构化条件注入机制,如将数字信息编码为ControlNet条件或直接在token层面注入。第二,Bézier曲面片数量的可变性(N_f从几百到上万)可能影响生成的稳定性,论文中提到训练集的patch分布存在长尾,但没有讨论对极端patch数量的处理策略。对于极高patch数的复杂模型,当前的均匀平均变形策略可能导致共享边界处出现过度平滑,改进方向是引入自适应的边界融合机制(如基于曲率加权的平均)。第三,150视图的DINOv2特征提取虽然质量高,但计算开销大(渲染加特征提取),对于实时应用可能成为瓶颈。可以探索基于轻量级3D特征提取器(如3D卷积或点特征)的替代方案。第四,消融实验显示G1和Laplacian正则化的组合将CD从0.0210增至0.0259(虽然Laplacian损失从0.0073降至0.0020),这表明平滑正则化在一定程度上牺牲了几何精度,需要在光滑性和精度之间做更好的权衡。
未来方向
本文明确指出了最自然的后续方向:在DreamCAD建立的高保真几何基础上,发展端到端的CAD拓扑恢复模型。5.4节的初步实验(用Qwen3-4B将patch输出转换为NURBS拓扑)展示了可行性(99.2%有效率),但这是一个独立的微调步骤。更理想的做法是将拓扑推理集成到生成流水线中,使模型在生成几何的同时预测拓扑连接关系。此外,基于论文成果还可以延伸以下方向:(1)将框架扩展到装配体生成,即生成多个零件及其装配关系,这需要在隐空间中建模零件间的空间约束;(2)引入交互式编辑能力,允许用户在生成过程中通过文本或草图调整局部几何,这可以通过条件注入和局部隐向量编辑实现;(3)探索基于DreamCAD的逆向工程应用,即从扫描点云或照片直接生成可制造的CAD模型;(4)将Bézier曲面表示扩展到支持多段NURBS或T样条,以处理更复杂的自由曲面工业设计。
复现评估
DreamCAD的复现难度中等偏高。好消息是论文的项目页面已公开,训练所用的10个数据集均为公开数据集(ABC、Automate、ShapeNet、Fusion360等),CADCap-1M数据集预计将随论文发布。模型架构相对标准:VAE编码器和解码器各含8层Transformer,流匹配解码器含12层Transformer decoder,总参数量在71M到400M之间。主要的复现障碍包括:(1)训练资源需求大,VAE训练3周(batch size 32),加上流匹配和SD微调,估计需要多块高端GPU(如A100 80GB);(2)150视图渲染需要Kaolin的CUDA渲染器,对GPU显存有要求;(3)GPT-5用于CADCap-1M的生成成本约1800美元,如果需要重新生成标注则成本不低;(4)OpenCascade依赖用于BRep到mesh的转换和STEP文件导出,需要C++编译环境。对于复现者来说,最容易复现的部分是VAE架构(基于Trellis代码库),最具挑战的是大规模数据准备和训练流水线。推理方面,单样本生成约15-30秒,适合研究和原型开发,但尚不适合实时交互应用。
论文图表