摘要:Chili3D将OpenCascade通过WebAssembly带入浏览器,并以TypeScript组织文档、事务、命令、插件和存储,为智能体操作工业几何与接入PLM提供了可编程入口。
GitHub 项目: xiangechen/chili3d
侦察快照: 2026-08-03,AGPL-3.0,TypeScript,本轮记录约 4.7k Star,当天仍有提交。
导语
CAD 长期属于重型桌面软件。用户需要安装客户端、配置显卡和许可证,模型文件也常被锁在本地环境中。浏览器 CAD 改变了这套使用方式:打开网页即可创建、编辑和查看三维模型,几何能力可以嵌入 PLM、供应链门户、售后系统和在线协作空间。
Chili3D 是当前开源 Web CAD 中工程完整度较高的项目之一。它将 OpenCascade 编译为 WebAssembly,在浏览器内完成实体建模;Three.js 负责显示和交互;TypeScript 单体仓库提供文档模型、事务、命令、插件、存储和界面。项目已经覆盖草图、布尔、拉伸、旋转、扫掠、放样、圆角、倒角、阵列、测量及 STEP、IGES、BREP、STL 导入导出。
对工业智能团队而言,Chili3D 的价值还多出一层。浏览器界面天然适合成为智能体操作几何模型的前端:模型可以通过命令和插件调用 CAD 能力,用户在同一页面查看结果、撤销操作并完成审批。它距离成熟企业 CAD 仍有很长路径,但已经呈现出“Web CAD 底座+智能体操作面”的雏形。
一、OpenCascade进入WebAssembly,浏览器获得实体建模能力
Web 端三维应用并不少见,很多系统主要用于网格模型显示。CAD 对几何内核的要求更高,需要处理精确曲线、曲面、拓扑关系和布尔运算。Chili3D 将 OpenCascade 8.0 编译到 WebAssembly,通过 Emscripten 绑定向 TypeScript 暴露几何能力。
这意味着布尔、圆角、放样和 STEP 处理在用户浏览器中运行,服务器无需为每次交互启动 CAD 内核。Three.js 将 B-rep 离散为可显示网格,负责相机、选取、高亮、轮廓和操纵器。二者分工清晰:OpenCascade处理工程几何,Three.js处理实时可视化。
浏览器执行带来几项直接收益。
首先是部署。用户无需安装专用客户端,版本由服务端统一发布。其次是集成。PLM、MES、报价、配置器和售后平台可以直接嵌入三维编辑或标注页面。再次是数据控制。某些轻量操作可以在本地浏览器完成,减少几何数据频繁上传服务器的需求。
同时也要看到边界。WebAssembly 受浏览器内存、线程和文件系统环境限制,大型装配体、复杂曲面和高密度三角化会带来明显压力。浏览器 CAD 在轻量设计、在线审查和参数配置场景中较有优势,是否能承担重型整机设计,需要通过真实装配规模和长期稳定性测试判断。
二、模块化架构为替换内核、界面和存储留下接口
Chili3D 采用 npm workspace 单体仓库,核心模块包括 core、wasm、three、element、ui、app、builder、i18n、storage 和 web。
其中 core 定义 IShape、IShapeFactory、文档模型、命令、事务、序列化、插件和服务容器;wasm 提供调用 OpenCascade 的具体 Shape Provider;three 实现三维视口;storage 使用 IndexedDB 保存文档;ui 和 app 组织命令、属性面板、项目树和快捷键。
AppBuilder 通过链式调用装配应用:
1 | useIndexedDB() |
这种接口驱动结构便于扩展。企业可以替换存储后端,增加服务器端文档服务;也可以在保留核心文档模型的情况下开发行业专用界面。几何内核、显示层和业务层没有全部挤在一个模块中,对后续接入智能体工具或 PLM API 很有帮助。
项目还将部分 API 挂载到全局环境,并支持从 URL 或默认目录动态加载插件。宏插件和可视化编程插件已经出现,说明 Chili3D 不只提供交互式按钮,也在形成可编程入口。
三、命令与事务系统是智能体接入的关键接口
智能体操作 CAD 时,直接模拟鼠标点击并不可靠。更稳妥的方式是调用确定性命令,例如“创建草图圆”“拉伸 20 毫米”“对选中边执行 3 毫米圆角”“导出 STEP”。命令应记录输入参数、修改对象和执行结果,并支持撤销。
Chili3D 的核心层具有命令服务、文档模型和事务历史。ModelManager 在节点、材料和组件变化时创建历史记录,保存 undo/redo 行为。对人类用户而言,这是常规 CAD 体验;对智能体而言,它相当于安全回滚机制。
一个适合智能体接入的架构可以设计为:
1 | 用户需求 |
这里需要保持一条原则:语言模型生成命令计划,几何内核执行命令,文档系统记录事务,规则引擎检查尺寸和设计约束。模型不应直接修改不可追踪的几何缓存。
Chili3D 当前没有在 README 中把 MCP 作为核心能力,但它的插件、命令、服务容器和可视化编程已经提供了可扩展基础。后续可以增加受控的 MCP 或 REST 工具层,将建模命令包装为带参数 schema、权限和审批状态的工具。
四、Web CAD更适合成为PLM入口,而非孤立设计工具
浏览器 CAD 的产业价值,很大一部分来自它能出现在更多业务节点中。
在研发评审中,非 CAD 用户可以打开链接查看模型、测量尺寸、隐藏零件和添加意见;在供应链协同中,供应商可以围绕脱敏模型确认加工区域和接口;在销售配置中,客户选择规格后可实时生成结构;在售后场景中,维修人员可以从设备 BOM 进入三维模型并定位部件。
Chili3D 已支持层级装配管理、文档保存、测量、标准格式交换和多语言,这些能力使其具备嵌入业务系统的基础。若与 PLM 结合,建议把职责分为两层:
- Chili3D 负责轻量建模、查看、标注、参数交互和局部修改;
- PLM 负责物料、配置、版本、权限、审批、签审和文件主存储。
智能体可以位于两者之间,根据 PLM 任务生成或修改几何,再把结果和操作记录提交审批。这样的路径比让大模型直接控制工程师桌面软件更容易统一部署,也更适合中小企业构建轻量研发工作台。
五、项目近期仍在补建模基本功
2026 年 7 月末到 8 月初的提交包括二维圆角与倒角、圆角边处理修复、厚壳连接参数和多语言更新。它说明项目仍在持续完善 CAD 基础功能。
这一状态需要客观看待。活跃提交和较大的社区规模说明项目具有生命力;基础几何操作仍在补齐,也意味着它尚未达到商业 CAD 数十年积累的稳定程度。企业试用时应从在线查看、参数配置、教学、轻量零件和智能体原型开始,不宜直接承担高风险产品的唯一设计主系统。
六、面向工业智能体,还需要补齐四类能力
第一类是持久拓扑和特征语义。智能体需要稳定识别安装面、孔、槽、基准和加工特征。单纯依赖当前子形状编号,在几何重建后容易失效。
第二类是工程数据模型。完整 CAD 系统还涉及装配约束、参数关系、材料、BOM、PMI、GD&T、图纸和配置管理。Chili3D 当前更接近几何与交互底座。
第三类是协同和版本管理。IndexedDB 适合本地保存,企业使用还需服务器文档、多人锁定或合并、版本差异、审批和审计日志。
第四类是安全与商业许可。运行时插件加载必须设置来源白名单、签名和权限;AGPL-3.0 对网络服务和修改发布有明确要求,计划闭源商业化的团队需要评估商业许可方案。
此外,大模型生成的几何命令可能合法但不符合制造要求。智能体层应增加最小壁厚、刀具可达性、拔模角、标准孔径和装配间隙等行业规则,形成可解释校核。
七、适合开展的本地验证
可以围绕一个在线支架配置器开展测试。用户在网页中输入安装空间、孔距、载荷和材料,智能体生成 CAD 命令,Chili3D 完成建模并显示结果。用户修改孔距或板厚后,系统执行事务、保留历史并输出 STEP。
测试重点包括:
- 首次加载和 WASM 初始化时间;
- 连续建模 30—50 个特征后的交互性能;
- STEP 导入导出的几何一致性;
- 圆角、布尔和薄壁操作失败时的错误反馈;
- 撤销、重做和文档恢复是否稳定;
- 插件能否以结构化参数调用命令;
- 智能体操作是否全部写入日志并允许逐步审批;
- 浏览器关闭或网络中断后,文档是否可恢复。
若这条链路稳定,再扩展到 PLM 版本提交和 CAE 前处理。这样可以逐步识别 Web CAD 的能力边界。
结语
Chili3D 展示了一种值得重视的工业软件形态:成熟几何内核通过 WebAssembly 进入浏览器,TypeScript 负责文档、事务、命令、插件和界面,CAD 能力由桌面孤岛转成可嵌入的 Web 组件。
对工业智能团队而言,它目前最适合扮演智能体的几何操作面和轻量 PLM 前端。项目能否进一步成长,取决于大装配性能、持久拓扑、工程语义、协同版本和企业安全能力。即便这些问题尚未全部解决,Chili3D 已经说明,下一代智能工业软件的入口很可能就是浏览器中的可编程三维工作台。
参考资料
- 项目主页:https://github.com/xiangechen/chili3d
- 项目 README:https://github.com/xiangechen/chili3d/blob/main/README.md
- AppBuilder:https://github.com/xiangechen/chili3d/blob/main/packages/builder/src/appBuilder.ts
- ModelManager 与事务记录:https://github.com/xiangechen/chili3d/blob/main/packages/core/src/modelManager.ts