bherbruck/solvecraft · 上手攻略
- 仓库:bherbruck/solvecraft
- 链接:https://github.com/bherbruck/solvecraft
- 分类:CAD · 3D 建模 · Rust
- 作者:Jay
- 更新:2026-10-11
§0 速览
是什么: 用纯 Rust 从零实现的参数化 3D CAD 软件,Fusion 360 的清洁室复刻,支持桌面应用、浏览器(WebAssembly)和 AI Agent 通过 MCP 协议建模。
解决什么问题: Fusion 360 是云订阅制(商业用途有门槛),且对 AI Agent 没有原生支持;SolveCraft 以 MIT/Apache-2.0 双许可开源,提供参数化 CAD 全流程,不依赖云服务,并内置 MCP 服务器让 AI 直接驱动建模。
当前状态: 早期可用,能完成简单零件建模;76 个 Fusion 官方示例零件经验证可完整重建(体积、面积、拓扑一致);命令覆盖率正在 docs/parity.md 追踪。
§1 是什么 / 解决什么问题
SolveCraft 定位是 Fusion 360 的开源替代方案,核心思路一致:草图 → 约束/标注 → 实体特征 → 参数化时间线。
架构分层(L0–L5 + Apps)
| 层级 | crate | 职责 |
|---|---|---|
| L0 | geom |
向量、平面、截面、网格及度量 |
| L1 | sketch, kernel, render |
约束求解器(阻尼高斯-牛顿)、B-rep 边界表示、视图数学 |
| L2 | doc |
参数、表达式、特征时间线及增量求值 |
| L3 | io |
设计文件、STL/OBJ/STEP/3MF 导出、导入功能 |
| L4 | engine |
会话与命令注册表(一切皆命令) |
| L5 | ui-egui, mcp |
桌面前端(可替换);MCP 服务器 |
| Apps | solvecraft, solvecraft-cli |
桌面应用 / 无头 CLI |
核心能力
- 草图:origin 平面、偏移平面、平面 face 上创建;支持线段、矩形、圆、弧、多边形、键槽、椭圆、拟合/控制样条线、二次曲线、文字;含构造几何、投影、裁剪、倒角。
- 约束求解器:自研 damped Gauss-Newton 求解器,支持 11 种几何约束(coincident / horizontal / vertical / parallel / perpendicular / tangent / equal / concentric / collinear / midpoint / symmetry / fix)和 8 种标注驱动参数。过度约束直接拒绝;完全约束几何体变黑。
- 特征时间线:extrude / revolve / sweep / loft / fillet / chamfer / shell / draft / holes / threads / patterns / mirror / split / combine / move;时间线增量重建,支持回滚、抑制、重命名、调整顺序、删除。
- 装配:嵌套组件 + occurrences、joints、运动研究、接触集、干涉检测、材质感知质量属性。
- 钣金:法兰、折弯、展开/重新折弯、材质切口、精确 DXF 展开图、折弯表、塑料外壳规则。
- 文件格式:设计文件为 JSON (
.solvecraft);导出 STEP AP242 / IGES 5.3 / 3MF / STL / OBJ;导入 STEP/IGES/3MF/STL/OBJ(作为网格体或基础特征)。
⚠️ 曲面(surfaces)、工程图(drawings)、CAM、仿真均未实现,详见 ROADMAP.md。
§2 快速安装
依赖
- Rust(stable)
- Xcode 16(仅 macOS)
- Meson / Ninja
- Git
构建
# 克隆
git clone https://github.com/bherbruck/solvecraft.git
cd solvecraft
# 完整构建(格式化 + clippy + 测试 + 资产)
cargo xtask ci
# 仅构建(开发)
cargo build --release
Windows 特殊构建
cargo xwin build --release --target x86_64-pc-windows-msvc -p solvecraft
⚠️ cargo xtask 需要 cargo-xwin(cargo install cargo-xwin)和 cargo-nextest(cargo install cargo-nextest)。
§3 核心用法
桌面应用
# 运行带示例零件的桌面应用
cargo run --release -p solvecraft -- --sample
# 打开 STEP 文件
cargo run --release -p solvecraft -- part.step
无头 CLI
# 查看所有可用命令
cargo run --release -p solvecraft-cli -- commands
# 运行命令脚本(JSON 列表)
cargo run --release -p solvecraft-cli -- run examples/bracket.json --out bracket.step
# 渲染快照
cargo run --release -p solvecraft-cli -- snapshot examples/bracket.json --out bracket.png
# 测量(体积/面积/重心/面-边-顶点计数)
cargo run --release -p solvecraft-cli -- eval part.step
浏览器运行
cd apps/solvecraft-web
# WebGPU 版本
trunk build --release --public-url ./
# WebGL2 备用(部分浏览器不支持 WebGPU)
trunk build --release --public-url ./ --features webgl
# 加载示例零件
open http://localhost:8080/?sample
MCP 服务器(AI Agent 驱动)
SolveCraft 内置 MCP 服务器,通过 stdio 通信:
# 启动 MCP 服务器(完全无头)
solvecraft-cli mcp
# 连接到运行中的桌面应用(可观看 AI 建模过程)
solvecraft --control 8080
# 然后另一个终端:
solvecraft-cli mcp --connect 127.0.0.1:8080
可用工具:list_commands / execute / batch / inspect_design / measure / body_topology / set_parameter / screenshot / export / undo / redo / new_design / open / save
Claude Code 配置示例:
claude mcp add solvecraft -- solvecraft-cli mcp
命令脚本格式
所有 UI 操作均可编写为 JSON 命令列表:
{
"commands": [
{"command": "sketch.create", "params": {"plane": "XY"}},
{"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 30]}},
{"command": "solid.extrude", "params": {"distance": 20}},
{"command": "solid.fillet", "params": {"edges": [[0, 0, 10]], "radius": 3}}
]
}
§4 典型适用场景
- 开源 CAD 爱好者:不想付 Fusion 订阅费,需要参数化建模能力的个人用户。
- AI Agent 自动化建模:通过 MCP 让大模型直接生成零件,配合 CAD 验证设计参数。
- Rust 生态开发者:参与或借鉴纯 Rust 实现的 CAD 内核(约束求解器、B-rep 核)。
- Web CAD:嵌入浏览器的轻量建模需求(目前功能尚简陋)。
⚠️ 复杂零件(复杂曲面、多部件装配、大量 CAM 操作)目前不支持;不适合直接替代 Fusion 360 用于生产。
§5 坑与注意
- 功能仍在早期:许多 Fusion 360 命令尚未实现;使用前查看 docs/parity.md 的命令覆盖清单。
- Step 导入为 mesh 体:STL/OBJ/3MF 导入为网格体,无参数化特征;需要参数化编辑请用 STEP 导入作为基础特征再构建。
- Windows 构建依赖
cargo-xwin:没有该工具链 Windows 构建会失败。 - WebGPU 兼容性:部分浏览器/设备不支持 WebGPU;可用
?webgl回退到 WebGL2。 - 过度约束直接拒绝:编辑时若产生过约束,修改会被拒绝,不会自动解除冲突约束。
- 完全约束才变黑:草图几何体未完全约束时为其他颜色,完全约束后变黑,需要注意视觉反馈。
- AI Agent 驱动时建议连接桌面应用:无头 MCP 模式下 AI 看不到渲染结果;
--connect模式可让 AI 建模同时在 GUI 中实时预览。 - 许可证说明:MIT OR Apache-2.0(双许可);SolveCraft 与 Autodesk 无关联,Fusion 360 是 Autodesk 的商标。
§6 与同类对比
| SolveCraft | Fusion 360 | FreeCAD | Onshape | |
|---|---|---|---|---|
| 许可 | MIT/Apache-2.0 开源 | 云订阅(商业) | LGPL-2.1 开源 | 订阅制 |
| 实现语言 | Rust | C++/Java | C++/Python | 云端 |
| 参数化时间线 | ✅ | ✅ | ✅ | ✅ |
| 云依赖 | ❌ 完全本地 | ✅ 必须联网 | ❌ | ✅ 必须联网 |
| AI/MCP 支持 | ✅ 内置 MCP | ❌ | ❌ | ❌ |
| 曲面/CAM/仿真 | ❌ 规划中 | ✅ 全部 | 部分 | ✅ |
| 成熟度 | 早期(简单零件可用) | 成熟商业 | 成熟开源 | 成熟商业 |
| 浏览器运行 | ✅ WebAssembly | ❌ | ❌ | ❌ |
§7 一句话结论
SolveCraft 是 Rust 生态中目前最具野心的开源参数化 CAD 尝试,AI Agent 原生支持是一大差异化亮点,适合个人用户尝鲜和 AI 自动化建模场景;但功能覆盖仍处于早期阶段,复杂工业设计请继续使用 Fusion 360 或 FreeCAD。
数据来源:GitHub README (fetch 2026-10-11) · SolveCraft Book (bherbruck.github.io/solvecraft) · docs/parity.md · docs/oracle.md · docs/mcp.md