CADCraft 静态工程评测:纯 Rust 的 clean-room 参数化建模,几何内核精度与工业格式互操作是两道硬门槛
评测快照:
storytold/cadcraft@e707ab4
项目定位:纯 Rust 编写的开源 CAD/参数化建模工具(clean-room 重实现),面向几何建模与工程制图
数据指标:Stars 4,510 | Fork 2,012 | 主语言 Rust | 协议 Apache-2.0
取证方式:SafeNet 合规浅克隆,检出 30 个关键文件,文件树 701 项
固定 commit:e707ab4d7cc10102e550ad4c5bcecef1084a9baa(2026-10-13 推送)
创建时间:2026-10-07(距今仅 7 天)
生成时间:2026-10-14
作者:Valhalla-Matrix 治理实验室
摘要:CADCraft 在 GitHub 热榜排名第 4,Stars 4,510,与 GridCraft 同属一个作者、同一天创建、同样采用 clean-room 重实现路线。它试图用纯 Rust 构建一个参数化建模工具,覆盖几何内核、约束求解与工程制图。本文从 clean-room 在 CAD 领域的特殊法律含义、几何内核精度与工业格式互操作这两道行业公认的硬门槛、以及 Rust 生态中 CAD 工具的稀缺性三个维度,拆解这个“一周冲到 4,510 Stars”的项目的工程成色与选型边界。所有结论仅来自可复现的源码静态证据,不替代实际构建、测试或运行验证。
一、它解决什么问题:CAD 领域的 clean-room 重实现
CAD 软件是工程软件中最难被替代的品类之一。它不像文本编辑器或电子表格——你可以用 LibreOffice 替代 Excel,但用开源工具替代 SolidWorks、CATIA 或 NX 的尝试,至今没有产生真正被工业界接受的方案。
原因不复杂。CAD 的护城河不在 UI,而在几何内核——处理边界表示(BRep)、NURBS 曲面、布尔运算、约束求解的底层算法库。这些内核经过了数十年的迭代,积累了海量的边界用例和数值稳定性优化,不是靠“重写一遍”就能复制的。
CADCraft 的定位是“纯 Rust 的 clean-room CAD/参数化建模工具,面向几何建模与工程制图”。它的核心机制是“Rust 内核承载几何内核、约束求解与建模操作;分层组织以支持原生 UI 与脚本化流程”。
这与 GridCraft 的思路一脉相承:用 clean-room 避开法律风险,用 Rust 换取性能和安全,用分层架构支持多前端。但 CAD 的难度比电子表格高一个量级——电子表格的核心是公式求值,CAD 的核心是几何计算,后者的数值稳定性挑战远大于前者。
二、clean-room 在 CAD 领域的特殊含义
2.1 电子表格与 CAD 的 clean-room 难度差异
GridCraft 的 clean-room 重实现面对的是一套公开的公式语义(Excel 函数的行为可以从文档和观察中重建)和一种相对简单的文件格式(XLSX 是基于 ZIP 的 XML)。
CADCraft 面对的是完全不同的挑战:
| 维度 | 电子表格(GridCraft) | CAD(CADCraft) |
|---|---|---|
| 核心算法 | 公式求值、依赖图 | 几何内核、布尔运算、约束求解 |
| 数值稳定性 | 低敏感(浮点误差可容忍) | 高敏感(BRep 拓扑一致性要求严格) |
| 行业格式 | XLSX(公开标准) | STEP/IGES(ISO 标准,但实现差异大) |
| 精度要求 | 一般 | 工程级(制造公差级别) |
| 验证难度 | 可用已知函数对比 | 需要几何验证(体积、面积、拓扑) |
在 CAD 领域做 clean-room 重实现,不仅要重建“功能”,还要重建“精度”。这不是靠观察行为就能完成的——你需要理解底层几何算法的数学原理,并用数值稳定的方式重新实现。
2.2 行业格式互操作:STEP/IGES 是真正的门槛
评测报告中明确提示了这一点:“CAD 类工具需评估几何内核精度与工业格式互操作(STEP/IGES 等)”。
STEP(ISO 10303)和 IGES 是 CAD 数据交换的行业标准。它们定义了如何用文本描述几何形状,但标准本身不保证不同实现之间的互操作性。同一个 STEP 文件,在不同 CAD 软件中打开可能产生不同的几何结果——曲面拼接的缝隙、拓扑实体的识别差异、精度设置的不同。
一个 CAD 工具能否被工业界接受,很大程度上取决于它读写 STEP/IGES 的保真度。这不是“支持这个格式”的勾选框问题,而是“在多大程度上还原了原始几何”的精度问题。
从静态扫描的模块拓扑来看,CADCraft 的 701 个文件树和 30 个关键检出中,是否包含 STEP/IGES 的读写模块,是评估其工业互操作能力的第一线索。
三、Rust 生态中 CAD 工具的稀缺性
3.1 现有 Rust CAD 工具格局
Rust 生态中的 CAD 工具远不如 Python 或 C++ 生态丰富。目前可对比的项目包括:
| 项目 | 定位 | 几何内核 | 许可 |
|---|---|---|---|
| CADCraft | 完整 CAD 应用(clean-room) | 自研 Rust 内核 | Apache-2.0 |
| OpenCascade (OCCT) | 工业级几何内核 | 自研 C++ 内核 | LGPL-2.1 |
| ForgeCAD | 浏览器端参数化 CAD | 自研 | MIT |
| truck | Rust CAD 内核库 | 自研 Rust | MIT/Apache-2.0 |
| csgrs | Rust CSG 库 | 自研 Rust | MIT |
OpenCascade 是工业级几何内核的事实标准,被 FreeCAD、KiCad 等开源工具广泛使用。但它是 C++ 写的,集成到 Rust 项目中需要 FFI 绑定,且 LGPL-2.1 许可对商业闭源集成有约束。
truck 是 Rust 生态中最成熟的几何内核库之一,提供 NURBS 曲面、BRep 实体、布尔运算等能力。它采用 MIT/Apache-2.0 双许可,商业友好。如果 CADCraft 的几何内核是基于 truck 或类似库构建的,它的工程风险会显著降低。
3.2 CADCraft 的差异化定位
CADCraft 的差异化不在于“又一个几何内核”,而在于完整应用 + 参数化建模 + Rust 原生的组合。
评测报告指出其“分层组织以支持原生 UI 与脚本化流程”。这意味着它可能采用了与 GridCraft 类似的设计:核心引擎(几何内核 + 约束求解)与 UI 层解耦,支持原生桌面应用和脚本化驱动。
这种架构对 Agent 驱动的 CAD 工作流是有价值的——如果每一个建模操作都可以通过脚本或 API 调用,AI Agent 就可以参与到参数化设计的迭代中。
四、可运行的验证清单:几何精度与格式互操作
由于本次评测基于静态证据,以下验证清单需要在实际环境中执行:
第一周:环境与最小建模
- 确认 Rust 工具链版本要求,从源码构建项目
- 创建一个最小参数化模型:绘制一个矩形,添加尺寸约束,修改参数验证模型是否更新
- 导出为 STEP 文件,用 FreeCAD 或 OpenCascade 打开,验证几何是否完整
第二周:几何内核精度验证
- 创建一个包含布尔运算的模型(如“长方体减去圆柱”),导出 STEP
- 在目标 CAD 软件中打开,检查布尔运算结果是否有几何缺陷(缝隙、自交、拓扑错误)
- 测试 NURBS 曲面建模:创建一个拉伸曲面或旋转曲面,验证曲面精度
第三周:工业格式互操作与生产就绪
- STEP 互操作测试:用 FreeCAD 导出 STEP,在 CADCraft 中打开,对比几何差异
- IGES 互操作测试:如果有 IGES 支持,执行同样的 round-trip 测试
- 评估约束求解器的鲁棒性:创建一个过约束或欠约束的模型,验证求解器是否正确报告状态
- 确认项目活跃度:创建仅 7 天,需要观察后续维护节奏是否稳定
五、结语
CADCraft 用纯 Rust 和 clean-room 重实现,试图挑战 CAD 领域最难的命题之一。它的 Stars 增速(7 天 4,510)反映了开发者对“Rust 原生 CAD 工具”的真实需求。
但CAD 的 clean-room 重实现比电子表格难得多。公式求值的误差可以容忍,几何内核的误差会导致制造缺陷。STEP/IGES 的互操作不是“支持格式”的勾选框问题,而是“精度还原”的工程问题。
最终判断:CADCraft 适合作为技术研究、Rust 生态 CAD 工具的实验、以及轻量级参数化建模的起点。但在工业场景使用前,必须完成几何精度和 STEP/IGES 互操作的实测验证。OpenCascade 仍然是工业级几何内核的基准,Rust 生态的 CAD 工具要达到同等精度,还有很长的路要走。
版权声明:本文基于开源项目浅克隆静态源码证据,仅供技术学习与工具评估参考。项目功能以官方仓库为准。