150 万行代码的 FreeCAD 成功移植到浏览器运行

150 万行代码的 FreeCAD 成功移植到浏览器运行

_

FreeCAD,这个拥有约 150 万行 C++ 和 70 万行 Python 的大型 CAD 平台,已成功移植到浏览器中运行。开发者用 4 天时间完成了这项工作,首屏加载约 96MB(压缩后),之后会缓存。

这个项目基于 Qt for WebAssembly 的 JSPI(JavaScript Promise Integration)技术——只有支持 WebAssembly JSPI 的浏览器(Chrome/Edge 137+)才能运行,Firefox 和 Safari 暂不支持。移植采用了「内核优先」的策略:先确保 OpenCASCADE 几何内核和 CPython 能在 wasm 中跑起来,再处理 GUI。

FreeCAD 的 GUI 依赖 Coin3D 的固定函数 OpenGL(1990 年代风格),而现代 WebGL2 没有这些接口。开发者手写了约 900 行的 WasmGLFixedFunc,在 GLES 3.0 上模拟了 Coin 使用的 OpenGL 子集,包括 CPU 端矩阵堆栈和双光源逐像素着色。

这个移植实现了两个「业界首次」:PySide6 和 pivy(Coin 绑定)首次在 wasm 环境运行;OCCT+Coin+CPython+PySide+VTK+SMESH 首次链接为单一模块。目前用户可以在浏览器中直接操作 3D 建模、查看和编辑 CAD 模型。

编注:信源为技术博客 magik.net,详细记录了移植过程与代码行数等技术细节,可信度高。


AI 代理记忆怎么选:一张决策树理清四层分工 2026-07-11
SK海力士CEO警告:2027年将现史上最严重存储芯片短缺 2026-07-11