FreeCAD 跑进浏览器:4 天搞定百万行代码

FreeCAD in the Browser

我刚刚把 FreeCAD 这个庞然大物搬进了浏览器。它拥有 150 万行 C++ 和 70 万行 Python 代码,集成了 OpenCASCADE、CPython 3.14 和 PySide6 等复杂组件。借助 WebAssembly JSPI 和 Fable 工具,我仅用 4 天就让它能在 Chrome 中流畅运行。从静态链接所有模块到重写 OpenGL 兼容层,再到解决异常编码冲突,整个过程就像一场极限压力测试。现在,你无需安装任何软件,只需点击链接,就能在浏览器标签页中体验完整的参数化 3D CAD 建模功能。

FreeCAD 并非单一程序,而是一个平台:在 Qt 图形界面之下,运行着工业级 B-rep 几何内核 OpenCASCADE、驱动 3D 视图的 Coin3D 与 Quarter、完整的嵌入式 CPython 3.14,以及让 Python 代码构建 Qt 界面的 PySide6 和 shiboken6。
  • 几何内核开发无法仅靠 LLM 完成,因为训练数据缺乏相关领域知识,且必须处理浮点误差累积和容差追踪等复杂数学问题。
  • 该项目虽由 Fable 主导,但并非一次性生成,而是耗时 4 天并需人工引导,且生成的 200MB Wasm 二进制文件对浏览器性能构成挑战。
  • OnShape 等商业 CAD 软件底层多依赖 Parasolid 或 ACIS 等通用几何内核,导致不同软件在核心几何计算上差异不大。
  • FreeCAD 的稳定性在近 18 个月内已有显著提升,不再如过去般充满 Bug,尽管其 UI 在专业 CAD 领域仍显复杂。
  • 该浏览器端应用完全本地运行,无后端服务器,利用浏览器作为通用计算和渲染引擎,支持离线使用。

同日更多故事

2026-07-11