最近我在和一些做工业设计或者机械设计的朋友聊天,大家普遍反映,传统的3D CAD软件虽然功能强大,但普遍存在几个痛点:一是安装包巨大,对电脑配置要求高;二是学习曲线陡峭,操作复杂;三是团队协作不方便,文件传输和版本管理都很麻烦。每次聊到这个,我就在想,有没有可能把这么强大的能力搬到云上,在浏览器里就能流畅地进行专业级的3D建模和编辑呢?
嘿,你别说,还真有!前两天逛GitHub的时候,我发现了一个很有意思的项目,它正朝着这个方向努力,而且已经做得有模有样了,这就是我们要聊的 Chili3D。
项目概述
简单来说,Chili3D 是一个基于 Web 的 3D CAD 应用,顾名思义,它最大的特点就是可以在浏览器里直接进行专业的3D模型设计和编辑。想象一下,你的电脑,无论是Macbook还是Windows笔记本,甚至是一台配置不高的办公机,只要打开浏览器,就能变成一个功能齐备的3D建模工作站,是不是听起来有点酷?
这个项目之所以能做到这一点,核心技术是它把强大的开源几何造型内核 OpenCascade (OCCT) 编译成了 WebAssembly。WebAssembly(WASM)这个技术大家应该不陌生,它允许你在 Web 页面上运行编译后的代码,接近原生性能。Chili3D 就利用 WASM 把 OCCT 的计算能力带到了浏览器里,再结合 Three.js 来做3D渲染,这样就实现了在 Web 端进行复杂几何操作和实时可视化。我觉得这种技术组合特别有前景,有点像是把一个重量级的后端服务直接放进了浏览器,让前端也能拥有处理复杂任务的能力。
Chili3D 是完全开源的,你可以在 GitHub 上找到它的全部代码。这不仅意味着它是免费使用的,更重要的是,它拥有一个开放的开发社区,理论上可以不断迭代和优化。目前项目还处于比较早期的开发阶段(Alpha版),但核心功能已经初具雏形,并且还在快速发展中。
项目数据
Chili3D 这个项目在 GitHub 上最近热度挺高。截止我写这篇文章的时候,它已经累计收获了 1799 个星标,而就在我观察的今天,就增加了 223 个星标,这个日增量可以说相当可观了,说明大家对这种 Web 端 CAD 的方向非常感兴趣,并且认可项目的潜力。
它的主要开发语言是 TypeScript,这是一个非常流行的前端开发语言,类型安全,对大型项目友好。技术栈方面,前面提到了,它依赖 Three.js 进行渲染,底层几何计算依赖 WebAssembly 版本的 OpenCascade。构建工具用的是 Rspack,一个速度很快的打包工具。
项目的维护状态看起来不错,作者 Xiangechen 提交代码的频率很高,说明项目正在积极迭代中。虽然目前贡献者数量可能还没那么多,但作为 Alpha 阶段的项目,能保持这样的更新速度已经非常令人期待了。社区反馈方面,GitHub Discussion 里已经有一些用户在讨论和提问了。
功能亮点
别看它运行在浏览器里,Chili3D 已经实现了不少专业 CAD 软件的核心功能了。我体验了一下,感觉确实挺方便的。
🌐 浏览器内运行
这是 Chili3D 最直观的亮点。想想看,不用下载几G甚至十几G的安装包,不用担心操作系统兼容性,打开 Chrome、Firefox 或者其他现代浏览器就能直接用。对我这种经常需要在不同电脑间切换工作的人来说,简直是福音。而且它提供了官方在线地址(chili3d.com),直接访问就能用,门槛低到不能再低。
🛠️ 丰富的建模工具
Chili3D 提供了从基础到复杂的建模工具。你可以创建盒子、圆柱、球体等基本几何体,也能进行2D草图绘制,支持直线、圆弧、贝塞尔曲线等。更专业的功能比如布尔运算(合并、相减、相交)、拉伸、旋转、扫掠、放样等都实现了。我在尝试拉伸一个复杂的2D草图时,操作流程和传统软件很像,而且处理速度挺快的,没有感觉到明显的卡顿,这得益于底层的 WASM + OCCT 的能力。
📍 精准捕捉与追踪
CAD 软件的灵魂在于精度,Chili3D 在这方面做得挺好的。它支持对象捕捉,可以精确捕捉到点、边、面等几何特征。还有工作平面捕捉和坐标轴追踪,可以帮助你精确对齐和定位对象。当我需要在一个复杂模型的某个特定面上进行操作时,这些捕捉功能让定位变得非常容易。
✂️ 强大的编辑功能
基础的移动、旋转、镜像变换肯定少不了,Chili3D 还支持圆角(Fillet)、倒角(Chamfer)、修剪(Trim)、打断(Break)、分割(Split)等常用的修改操作。甚至还支持子形状操作和分解复合对象。比如我想给模型的边加一个圆角,选中边然后输入参数,操作流程很流畅,效果也立竿见影。
🔄 标准格式导入导出
作为一个 CAD 工具,与其他软件互通非常重要。Chili3D 支持导入和导出行业标准的格式,比如 STEP、IGES 和 BREP。这意味着你可以将其他 CAD 软件(如 SolidWorks, AutoCAD 等)生成的模型导入 Chili3D 进行查看或修改,也可以将你在 Chili3D 里完成的模型导出到其他专业软件中进行后续处理(比如CAM编程、有限元分析等)。这种互操作性极大地扩展了它的实用场景。
📦 模块化文档管理
对于复杂的模型,通常需要将它们组织成不同的组件或装配体。Chili3D 提供了层级化的装配管理功能,你可以创建组、对对象进行分组,方便管理和编辑。此外,它有完整的撤销/重做堆栈和事务历史,即使操作失误,也能轻松回退,这一点对于CAD这种需要大量精细操作的场景来说非常重要。
安装与使用
虽然可以直接在线使用,但如果你想参与开发或者自己部署,也可以从源码安装。过程对于前端开发者来说并不复杂。
首先,你需要确保你的电脑上已经安装了 Node.js 和 npm。
然后,克隆项目的 GitHub 仓库:
bash
git clone https://github.com/xiangechen/chili3d.git
cd chili3d
接着,安装项目依赖:
bash
npm install
如果只是想在本地运行起来看看效果或者进行开发,执行开发服务器命令:
bash
npm run dev
不出意外的话,项目就会在 http://localhost:8080
启动了。
如果你需要构建用于生产环境的版本,可以使用构建命令:
bash
npm run build
README 里还提到了构建 WASM 的步骤,这个主要是针对需要自己编译 OpenCascade WASM 模块的高阶用户或者开发者,普通用户直接使用项目默认提供的 WASM 模块就行了。
我尝试了 npm install
和 npm run dev
,整个过程很顺畅,依赖安装速度也挺快的,得益于 Rspack 的打包速度,开发服务器启动也很快。
使用场景与推荐理由
那么,Chili3D 适合在哪些地方发光发热呢?
我觉得它非常适合用来进行 快速原型设计和概念验证。当你有一个新的设计想法,需要快速建立一个3D模型来展示时,无需打开笨重的传统软件,直接在浏览器里操作就行。它的操作界面简洁直观,可以让你快速上手。
另一个我觉得很有潜力的场景是 在线协作和模型分享。你可以在团队内部或者与外部客户分享一个链接,大家可以直接在浏览器里查看、讨论甚至共同编辑同一个3D模型,大大提高了沟通效率,避免了文件传输和版本同步的麻烦。尤其是在远程办公成为常态的今天,这一点显得尤为重要。
对于一些 轻量级的专业应用或者教育场景 也很有用。比如在课堂上演示3D建模过程,或者对于一些不需要极致复杂功能的工程师或设计师,Chili3D 提供的能力已经足够应对很多日常任务了。
我推荐 Chili3D 的主要理由是它开辟了 Web 端专业 CAD 的可能性,并且已经实现了相当不错的基础功能。它利用 WebAssembly 技术克服了 Web 应用在性能上的瓶颈,带来了接近原生体验的复杂计算能力。虽然目前还在早期阶段,一些高级功能可能还在完善中,但它的发展方向和已有的成果已经足够让人眼前一亮了。如果你是前端开发者,想探索 WebAssembly 在复杂应用中的实践;或者你是CAD用户,对 Web 端工具感兴趣,想要一个无需安装、随时随地可用的建模工具,Chili3D 都非常值得你去关注和尝试。
结语
总的来说,Chili3D 是一个非常具有创新性和潜力的开源项目。它巧妙地结合了 WebAssembly 和 Three.js 的优势,将专业的 3D CAD 能力带到了浏览器端。虽然前方还有很长的路要走,比如功能的进一步完善、性能的持续优化、用户体验的打磨等等,但它已经向我们展示了未来 Web 应用的强大可能性。
如果你对这个项目感兴趣,或者想尝试一下在浏览器里进行 3D 建模的体验,不妨去它的 GitHub 仓库看看,给作者点个赞,甚至参与到贡献中去。
GitHub 项目地址:https://github.com/xiangechen/chili3d
在线使用地址:https://chili3d.com/
好了,今天的捉虫分享就到这里。如果你试用了 Chili3D,有什么想法或者发现什么有趣的“虫子”,欢迎在评论区和我交流!我们下期再见!