AI 3D建模工具: Tripo 3D | Meshy AI

两个月,GitHub 上冒出 15 个新 CAD 项目。最热的那个 SolidCraft 有 13,557 星——而它的内核 solidcore 是 NVIDIA 在 10 月 8 日开源 SMLib 之后,10 月 12 日就做出的 Rust 移植版。

这不是泼冷水,是这波浪潮的真实结构:应用层在爆炸,内核层只多了一点火星。我们把 33 个仓库逐个核了许可、创建日、最后 push(快照已入库,可复现),并且把最有代表性的那个真跑了一遍。

先给结论:

  1. 新内核的星加起来 328,两个应用 21,170。 注意力全在应用层。
  2. 真自己写内核的国产(2026 新建)项目,用一只手数得过来:OpenGeometry、vcad、Gensolid、csgrs,其余多是移植或包装。
  3. star 数在这一波里不代表成熟度:同一家一天铺了十几个"clean-room 重写",fornjot(2,546 星)已经停更归档。

一、时间线:火种只有一颗

日期 事件 我们核到的数字
2026-10-07 SolidCraft、CADCraft 等一批"从零重写"仓库同日出现 13,557★ / 7,613★
2026-10-08 NVIDIA 把 SMLib 作为 usd-brep 开源(Apache-2.0) 1,990★,10-22 最后 push
2026-10-12 solidcore:SMLib 的 Rust 移植(no unsafe / 确定性 / 可编 wasm32) 315★
2026-10-12 Gensolid:号称 Parasolid 替代,LLM agent 在自改进循环里写、人只当验证器 5★,pre-alpha
2026-11-03 ShapeCraft:单人写的直接建模 CAD(OCCT 7.8+) 首日 0★

一句话:内核层的开源(SMLib)+ agent 让"写一个 CAD 应用"的成本塌陷,两件事撞在一起。

二、分层:33 个仓库,18 个自称内核

我们把清单分成四层(kernel 自己写几何内核 / app 有引擎层的应用 / ai AI 原生 / base 老底座),全部数据存在 distribution/cad-engines/snapshots/2026-11-04.tsv,跟踪脚本 bin/cad-engines.mjs。

内核层:19 个里,2026 年新建的只有 6 个

名字 星 创建 许可 它到底做了什么
usd-brep(SMLib) 1,990 10-08 Apache-2.0 NVIDIA 的 NURBS B-rep + omniSolid USD schema;这一波的火种
truck 1,679 2020-12 Apache-2.0 RICOS 的老牌 Rust 内核(别当新的),truck-js + WebGPU
PicoGK 1,153 2023-10 Apache-2.0 隐式/SDF 体素内核,走"计算工程",和 B-rep 不是一条道
OpenGeometry 532 2024-08 MPL-2.0 浏览器原生(Rust→WASM):挤出、三角化、布尔;npm 包
vcad 441 2026-01 Apache-2.0 ~35K 行 B-rep、20+ crate,half-edge 拓扑,WASM + MCP
solidcore 315 10-12 Apache-2.0 SMLib 的 Rust 移植并另起炉灶(泛化 rolling-ball blend)
csgrs 264 2025-01 MIT CSG 内核(mesh/SDF),管布尔不管 NURBS
Gensolid 5 10-12 Apache-2.0 Parasolid 风格 + agent 生成、人验证;能读 Parasolid XT
nacre / keel / Stereon / Isoform / gusset 0–7 2026 春夏秋 Apache / MPL 单人内核:exact b-rep(Rust)、容差 B-rep、C++26 B-rep、F-rep(C#)、钣金
fornjot 2,546 2021-04 — 已归档:"No longer in development",最后 push 2026-06-19
内核层 18 个仓库存量星合计 11,751——但其中 9,758(83%)来自 fornjot(死的)、manifold(mesh 布尔,不是 CAD 内核)、usd-brep、truck、PicoGK 五个。2026 年新建的内核加起来 328 星。

应用层:11 个,内核从哪来是决定性的

名字 星 创建 内核来源 许可
SolidCraft 13,557 10-07 自家 solidcore Apache-2.0
CADCraft 7,613 10-07 无 B-rep 内核(2D 制图 + 3D 视图) MIT/Apache
QymCAD 906 08-25 OCCT AGPL-3.0
Nova3D 736 05-06 自述"可编程 3D",模型是版本化程序 MIT
nurb 629 07-25 OCCT(经 build123d) 自定义
partmode 505 08-06 OCCT WASM AGPL-3.0
SOMA 452 10-10 CadQuery GPL-3.0
Procedura 436 08-27 程序化建模,prompt→参数化程序 MIT
cadrs 119 09-30 自写 NURBS b-rep + Bevy Apache-2.0
ShapeCraft 0 11-03 OCCT 7.8+(藏在 trait 后可换) Apache-2.0

AI 层:三个,都不是内核

text-to-cad(25,364★,skill 集:agent 写 build123d/Python)、CADAM(5,384★,GPL-3.0)、Multi-Agent-CAD(1,068★)。star 最高的那三个,恰好一个几何内核都没有。

三、实测:SolidCraft 0.30.1 命令行,四组数据

光看 README 不算数。我们下了 solidcraft-windows-x64-portable.zip(106 MB,免安装,2026-11-02 的 v0.30.1),在 Windows x64 / GeForce MX150 上跑。

测试件 A:60×40×20 板 → Ø16 通孔 → 一条竖边 r5 倒角(4 条命令,纯命令行,无 UI)。

1)它到底有多少"引擎面":570 个命令,一套注册表

solidcraft-cli commands 吐出 570 个命令(sketch 126、render 60、view 40、solid 36、component 32…),桌面 UI、浏览器、CLI、MCP 共用同一套。这不是接口对齐,是同一条执行路径——你写进脚本的东西,UI 里能拖回时间线。

2)耗时剖面:倒角九成时间在三角化,不在内核

run --timings --profile 会分开算布尔、三角化和其他:

命令 总计 ms 布尔 ms 三角化 ms 其他 ms
solid.box 60×40×20 2.2 0 0 2.2
solid.cylinder Ø16 2.0 0 0 2.0
solid.combine(cut) 23.5 17.0 4.5 2.0
solid.fillet r5 158.4 0 142.1 16.3
合计 186.2 — — —

这一行是最值的:倒角本身(内核)只要 16 ms,剩下 142 ms 全花在把结果三角化给视口。瓶颈在显示管线,不在 B-rep。 7 条命令、两个倒角、一个 join 的版本(就是封面那个零件)总计 532–684 ms,其中 join 25.8 ms / 86.5 ms。

3)STEP 导出与往返:面数不丢,字节不保证

检查项 结果
导出格式 AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF(AP242)
文件大小 11,488 字节
ADVANCED_FACE 8(平面 6 + 圆柱 2,与几何相符)
再导入 → 再导出 8 面保持,11,790 字节(不逐字节相同,实体顺序重排),耗时 0.2 s
旧版本兼容 0.16.2 导出的 bracket.step(8,871 字节)能直接读:9 面 21 边,closed

4)体积核对:差 0.36 立方毫米

这是最能说明"它算的是精确几何而不是网格"的一项:

量 值
解析值(板 − 孔 − 倒角角料) 43,871.460 mm³
内核 eval 报的体积 43,871.821 mm³
相对误差 +0.0008%(+0.36 mm³)
表面积 9,349.546 mm²
拓扑 8 面 / 18 边 / 12 顶点,closed: true

有意思的是 eval 里有两套计数:实体口径 18 边 12 顶点,kernel 口径 20 边 14 顶点。差的 2 边 2 顶点正好是两个圆柱面的接缝边(seam)——内核按解析面记账,实体层按拓扑边记账。这种细节不实测看不到。

SolidCraft CLI 导出的测试件渲染

测试件 A 的渲染(SolidCraft 自己的 snapshot 命令,GPU 渲染,1600×900)。

5)外来 STEP:18 个实体全进来了,但英寸被当成了毫米

拿 OCCT 官方 demo 的装配体 as1_pe_203.stp(AP203,139,752 字节)喂进去:

  • 能读:18 个实体全部导入,closed: true,装配实例名保留(NUT (as1_pe_203:1/ROD_ASM:1/NUT:2))。
  • 单位没换:底板 PLATE 读出来 4572 × 508 × 3810(mm)。而 4572 / 25.4 = 180.0、508 / 25.4 = 20.0、3810 / 25.4 = 150.0——这不是巧合,是英寸数值被标成了毫米,差 25.4 倍,体积差 16,387 倍。

这条是给所有"AI 生成 + 自动导入"流水线的警告:几何对了,单位没对,后面全白算。 我们只观测到数值差 25.4 倍,没去追是文件里的 CONVERSION_BASED_UNIT 没被支持,还是我们取的模型本来就声明为 mm——这条留给厂商。

四、能不能商用:许可这一列先筛一遍

许可 项目 能不能嵌进你的产品
Apache-2.0 / MIT / MPL-2.0 solidcore、usd-brep、SolidCraft、vcad、OpenGeometry、truck、PicoGK、csgrs、Gensolid、ShapeCraft、nacre 能(MPL 只要求改了那些文件要开源)
AGPL-3.0 QymCAD、partmode 不能随便嵌:网络服务也算分发,必须整体开源
GPL-3.0 CADAM、SOMA 同上,传染性更强
LGPL-2.1 + 例外 OCCT(v8.0.1,2026-07-30) 能,但要动态链接、保留可替换性

一句话:做闭源产品,内核只能挑 Apache/MIT/MPL 那排;做站内工具或开源项目,AGPL 那两个反而是最完整的(真 B-rep + 装配 + 约束)。

五、三个判据:一眼判掉"伪引擎"

  1. 看有没有独立 kernel crate,还是 UI 里直接调 OCCT。 grep -r kernel --include=Cargo.toml 一行就露底。注意名字骗人:cadcraft_engine 那类"engine"是命令/会话层。CADCraft 就是典型——13.5k 和 7.6k 星的两个同周项目,一个有内核,一个没有。
  2. 能不能导精确 STEP/IGES。 只能出 STL/GLB 的是 mesh 层(manifold、csgrs),不是 CAD 引擎。反过来,能出 AP242 且回读面数不变,才叫 B-rep 闭环(我们上面测的就是这条)。
  3. 改一个参数,装配会不会跟着重算。 特征是"时间线 + 关联重建",很多"生成式 CAD"过不了这关——这正是 text-to-CAD 的老问题(见我们的上一篇)。

六、三个坑

  • star 数是事件性的。 同一家(storytold/ArtCraft)在 09-30 到 10-09 之间铺了十几套 clean-room 应用:PhotoCraft 76,819★、ArtCraft 38,702★、CADCraft 7,613★……这些星说明"叙事成立",不说明"内核成熟"。
  • "新内核"很多是移植或包装。 solidcore←SMLib、QymCAD/ShapeCraft/partmode/nurb←OCCT。真正的原创内核(Gensolid、nacre、Stereon、Isoform)都还在 pre-alpha,星数在个位。
  • 已归档的项目还在搜索结果第一页。 fornjot 2,546 星、2021 年起跑,现在 README 明写不再开发——选型时看一眼 pushed_at 比看星数重要。这也是我们做那个跟踪脚本的理由。

七、我们没测的(写清楚,别当结论用)

项目 为什么没测
vcad 机器上没有 Rust 工具链(cargo 不存在),源码构建不可行;npm 包只覆盖 MCP 层
OpenGeometry 浏览器侧,需要搭一个 three.js 工程才能验布尔
ShapeCraft 要从源码编译 OCCT 7.8+ 依赖,超出这次时间盒
Gensolid pre-alpha,5 星、无发布物,只能读代码

所有耗时都是单机、单次、MX150 笔记本 GPU,不能当基准测试;我们的目的是看"时间花在哪",不是比谁快。

八、我们的判断

  • 现在能动手的只有一个组合:SolidCraft + solidcore——应用和内核都开源、都 Apache-2.0、都能在命令行里复现(本文替你跑完了)。想做浏览器端,就加 OpenGeometry。
  • 半年后再看:Gensolid 那条"agent 写内核、人当验证器"的路子,是这堆东西里最有实验价值的一个,但现在只是论文式的仓库。
  • 别急着选型:这一波的真实成熟度差异,比 star 数差异大得多。季度跑一次 bin/cad-engines.mjs --snapshot,看谁在 push、谁归档,比任何榜单都准。

要拿自己手上的 STEP 验一遍"这家到底行不行",最省事的顺序是:先在线看一版确认面和单位对不对(上面那个英寸坑就是这一步能发现的),再决定要不要为它装 106 MB 的客户端。

边界

  • 本文是原创编译/实测稿:分层清单的数据来自 GitHub REST API(2026-11-04 22:5x 抓取),快照与脚本已入库,可复跑;实测部分是我们自己在 SolidCraft 0.30.1 portable 上跑的,命令与参数写在正文里。
  • 只测了 SolidCraft 一个,其余 32 个仓库只核了元数据(星、创建日、push、许可、描述),没编译、没跑;表格里的"它到底做了什么"来自各自 README,属厂商自述。
  • 单位那条只记录现象(数值差 25.4 倍),未追根因,也没验证厂商是否已知。
  • 星数与时间戳会变;本文所有数字都标注了抓取日,引用时请带上。
  • 我们没有为任何项目背书,也没有接受厂商提供的测试账号或材料。

Sources

同主题阅读

本文属于「CAD / 制造 / G-Code」专题。BimAnt 原创实测与编译整理,转载请注明出处。数据与结论仅代表 2026-11-04 的抓取与本地运行结果。