Rust 开源 CAD 完整对比指南:SolidCraft 与 CADCraft 怎么选
【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft
SolidCraft 是纯 Rust 写的开源 3D 参数化 CAD(对标 Fusion 的工作流),CADCraft 是 Rust 重写的 2D 制图工具(对标 AutoCAD)。先说我的核心判断:社区传开的"三个挑战者"其实是两个真实项目、两条赛道,外加一批外围查看器——而这两个项目在技术栈上押注的是同一套路线:Rust 重写、浏览器化、MCP 智能体驱动。
名字为什么容易混?因为"第三个"根本不存在:SolveCraft 是 SolidCraft 的旧名,2026 年 10 月中旬起改名完成。下面按场景分档讲清楚各自的能力与边界。
事实核查:SolveCraft 与 SolidCraft 是同一个项目
先排掉一个最大的干扰项:把改名当分家,调研会直接跑偏。
- 0.5.0 版本把二进制、发布资产、包名、MCP 服务器名整体改成 SolidCraft,设计文件扩展名随之从
.solvecraft走到.solidcraft,现在的默认是.sc(兼容性文档)。 - 旧格式全程可读:
.solvecraft/.solidcraft旧文件照常打开,SOLVECRAFT_*环境变量作为SOLIDCRAFT_*的回退,solvecraft-cli别名二进制继续转发参数(格式识别)。 - 旧版设置首次启动自动迁移,见桌面入口的 adopt_legacy_settings;想验证的可以直接
git clone https://gitcode.com/gh_mirrors/so/solidcraft自己跑。
所以:海外 3D 社区报道里的 "SolveCraft",就是这个项目的早期形态。真正的对比只有"2D 制图 vs 3D 建模"一条轴,不存在"SolveCraft vs SolidCraft"这回事。
322 个命令如何脚本化调用:SolidCraft 的"一切皆命令"
SolidCraft 对标 Autodesk Fusion:草图 → 特征 → 参数化时间线,改一个尺寸、模型整体重建。
功能清单登记了322 个命令,草图类(98 个)占最大头,其余覆盖实体建模(35)、曲面、钣金(11)、塑料件特征(7)、装配与接合(23)、配置表(8)、时间线编辑(13)、分析与检测(12)。理解这个项目的钥匙只有一句话:同一个solid.extrude,工具栏按钮、JSON 脚本、solidcraft-cli exec、桌面控制通道、MCP 服务器调的是同一份实现(架构文档)。
于是脚本化是"天然"的:
[{"command": "sketch.create", "params": {}}, {"command": "sketch.rectangle", "params": {"width": 40, "height": 30}}, {"command": "solid.extrude", "params": {"depth": 20}}, {"command": "solid.fillet", "params": {"radius": 3}}]上面四步和用 UI 点出来的结果完全等价,solidcraft-cli直接执行,还能顺手测量体积/质心/拓扑、导出、渲染 PNG 快照。失败语义很干净:失败的命令不改变设计,batch出错自动回滚到编辑检查点(MCP 文档)。
90/90 参考件全过的测试矩阵是怎么做的
我翻源码时最服气的是这份公开测试矩阵(docs/oracle.md):每个零件由 recipe.json 描述,重放命令引擎后逐项比对体积、面积、质心、包围盒,有reference.stl的还做表面采样 Hausdorff 距离。
- 90/90 全过(矩阵已从 76 件扩到 90 件):69 个用解析几何手算期望值,连 Pappus 定理算旋转体都在内;21 个由 FreeCAD 独立内核计算比对,误差多在千分之几毫米量级。
- 关键声明:没有任何期望值来自商业 CAD 产品——全部按公开文档、通用 CAD 惯例与用户反馈设计,clean-room 路线规避知识产权风险。
几何内核没有重复造轮子:工作区依赖 的[patch.crates-io]把 Apache-2.0 的 truck 包一层自研kernelcrate(自研倒圆角操作与布尔重试/校验)。约束求解器是自研的:可构造部分用构造式求解(Owen 1991、Fudos–Hoffmann 1997 的轨迹交点与刚体簇分解)精确落位,其余交给 Levenberg–Marquardt,用雅可比矩阵的秩报告剩余自由度。过度约束被拒绝、完全约束的草图变黑——这套语义和 Fusion/SolidWorks 完全一致。
STEP/3MF 导出与制造链路打通
交付能力直接决定"能不能进车间",SolidCraft 这一侧是全的。
.sc设计容器采用无损二进制网格载荷,纯 JSON 仍可打开与另存;- 导出:STEP(AP242,带实体名/颜色/装配结构)、IGES、3MF、STL、OBJ、glTF,另有 URDF 导出;
- 导入:自研 STEP 读取器(内核源码),STEP/3MF/STL/OBJ/glTF 按需进入。
对创客和机械方向的实用含义:模型改完直接切片或交给 FreeCAD 复核,中间不需要手工转换。桌面分发覆盖 Windows/macOS/Linux(AppImage、deb、rpm、Flatpak、Snap),浏览器端开箱即用,3Dconnexion 三维鼠标也有专门模块(3D 鼠标文档)。
用 MCP 把 CAD 接进 AI 代理:两个项目都押注了这条路
这是 2026 年这条赛道最有意思的地方:两个互不重叠的项目,不约而同把 MCP 协议做成了标配接口。
SolidCraft 的 MCP 服务器由solidcraft-cli mcp提供,stdio 通信,两种形态:
- 无头:进程内会话,CPU 渲染截图;
- 桥接:
solidcraft --control 7878起 JSON-lines 控制通道,mcp --connect 127.0.0.1:7878连入,代理建模时你能在桌面应用里实时旁观。
工具面覆盖从建模到交付的完整闭环:
- 建模:
list_commands(带参数文档的命令目录)、execute、batch(多步执行、出错回滚); - 感知:
inspect_design(参数、时间线、实体、草图、自由度)、measure(体积/面积/质心)、body_topology(边中点坐标可精确选边倒圆角)、screenshot(PNG 图片); - 交付:
export(STEP/3MF/STL/OBJ)、save、open、new_design; - 工程化:
undo/redo、crash_reports(崩溃报告回溯与复现)。
仓库 MCP 文档 里有一段典型会话:初始化 →batch一次跑完"建草图、画 40×30 矩形、拉伸 20、倒圆角 3、开 Φ10 孔",一次往返返回{"ok": true, "completed": 8};接着measure拿到22390.6 mm³,screenshot取 iso 视图 PNG,最后export成 STEP——全程没有碰一个对话框。examples/demo/enclosure_mcp.py更进一步:用execute逐步搭出电子外壳(圆角盒体、顶部开口 shell、USB 口切穿、四颗螺丝柱),再改width参数让时间线整体重建;enclosure_ui_mcp.py(v2)则让代理驱动真实 UI 的指针去点工具栏、打开真实对话框,参数与草图尺寸走 MCP——"像人一样建模"的另一种范式。
CADCraft 一侧的 README 同样登记了命令行工具、JSON 控制通道、MCP 服务器三件套,把应用操作暴露给脚本与代理。结合 DXF 读 R12–2018、写 R2000 与 PDF 出图,"AI 代理零成本接管 AutoCAD 2D 制图"(社区报道标题语)并非空谈。往前看还有两个注脚:YC W25 的 AdamCAD 拿了 410 万美元融资做"文本生成 3D 模型",浙大团队开源的"让建模变打字"智能体登上国际 CAD 顶刊——这条路线的确定性,比单个项目的 star 数更值得注意。
浏览器化:一张页面跑通桌面同款内核
浏览器端的价值,普通用户和开发者看到的是两件事。
- 普通用户:零门槛试用——不装驱动、不碰系统路径,打开链接就能判断值不值得装。
- 开发者:同一份代码跑桌面、Web、无头三种形态,测试与 CI 可以完全无头化。
SolidCraft 的 Web 版(apps/solidcraft-web)直接复用桌面端同一个SolveApp,经 eframe 的 WebRunner 跑 wgpu(WebGPU 优先、?webgl强制 WebGL2),设计文件存在浏览器 OPFS 里,打开/插入/重命名/下载/自动保存齐备,连"离开页面前未保存提示"都有。CADCraft 同样发布 WebAssembly 静态构建。
工程侧的证据在 性能文档:cargo xtask ci会跑 wasm32 构建;STEP 并行导入最多 8 个 worker,多实体固件导入时间下降 64–81%(实测数据)。
选型建议:三类用户各取所需
先给结论,再给理由和坑:
- 3D 建模普通用户(外壳、支架、带参数板件)→ 用 SolidCraft。草图约束 + 特征时间线 + 参数 + 配置表 + 钣金/塑料件 + 装配全链路,参考件矩阵全过,STEP/3MF/STL/OBJ 打通与 FreeCAD、切片软件、3D 打印的交接。限制:官方定位是 "early but usable for simple parts",复杂曲面、自由造型(T-splines)、CAM/仿真都在路线图之外(ROADMAP),正式生产前拿矩阵外的场景自测。
- 2D 图纸用户(建筑、电气、制造端出图)→ 关注 CADCraft。命令行 + 对象捕捉 + 图层 + 块 + 几何与尺寸约束 + 图纸空间视口 + 页面设置 + PDF 打印,覆盖了 AutoCAD 用户最高频的动作。风险:未建模的实体在保存时会被丢弃,DWG 写入目前仅 R2000,大型存量图纸保留原件并做往返验证。
- 二次开发者 / 接 AI 代理 → 两条线都评估,侧重点不同。SolidCraft 一侧:命令目录自省 +
batch检查点回滚(AI 试错成本被精确控制)+body_topology返回边中点坐标("选这条边倒 R3"变成可编程原语)+ 崩溃报告可复现,是很工程化的自动化底座;CADCraft 一侧的 CLI/MCP 更适合把"按图出图"流程自动化。license 上两者都是 MIT OR Apache-2.0 双许可(CADCraft 元数据标 Apache-2.0),没有阻碍。
写在最后:CAD 的下一形态
我的判断:CAD 正在从"人机交互的软件"变成"可被程序与智能体调用的开放平台",MCP 就是这一代项目共同的系统调用接口。SolidCraft 与 CADCraft 各占 3D 建模与 2D 出图一端,在产业链上下游衔接——先有模型、再出图纸的流程里,两边将来可以被同一个 agent 调度。选型时别被名字带偏:SolveCraft 是旧名不是竞品,真正的分界只有一条——你交付的是图纸,还是模型。
【免费下载链接】solidcraftSolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.项目地址: https://gitcode.com/gh_mirrors/so/solidcraft
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考