FreeCAD · Web
FreeCAD, the full parametric CAD suite, cross-compiled to WebAssembly and running in the browser.
- 25+ CAD workbenches in the browser
- 5 native runtimes fused into one binary
- Python 3.13 embedded, numpy included
- Qt 6.9 the real desktop GUI
FreeCAD 1.1.3, the full parametric CAD suite, cross-compiled to 64-bit WebAssembly and running the real Qt desktop in a browser tab, with about twenty-five workbenches, the OpenCASCADE geometry kernel, and an embedded Python. The hard part is the tower: OpenCASCADE, a complete CPython, the Coin3D 3D engine, the Qt GUI, and the PySide bindings that tie them together, native runtimes that normally live in separate libraries and processes, all cross-compiled and fused into a single WebAssembly binary.
- The real CAD suite, not a viewer The actual FreeCAD desktop, the same C++, running in a browser tab: parametric modeling, sketching, the full menu of roughly twenty-five workbenches, and a live 3D view.
- A tower of native runtimes, fused FreeCAD stands on a stack of big native pieces: the OpenCASCADE geometry kernel, an embedded Python, the Coin3D 3D engine, the Qt interface, and the PySide bindings that tie them together. Each was compiled to WebAssembly and linked into one program, which is a large part of the challenge.
- Python that actually runs A complete Python 3.13 is embedded and works, right down to running numpy in the browser, so FreeCAD’s scripting console and its Python-driven tools function as they do on the desktop.
- Two canvases, hand-composited The browser would not let the 3D engine draw onto the page through Qt, so its rendered pixels are read back and painted onto a second canvas layered over the interface, a compositor built from scratch.
- FEM that solves in the tab The CalculiX finite-element solver, a Fortran program, is compiled to WebAssembly through a custom Fortran-to-C pipeline, so meshing and solving both run locally. Results are checked against closed-form answers, not just run to completion.
- Your work stays with you Documents and settings are saved into the browser and restored on the next visit, and nothing is uploaded to a server. Sessions can be shared by link, and an MCP endpoint lets AI tools drive the app.
- C++
- Python 3.13
- Emscripten 3.1.70
- OpenCASCADE 7.8
- Qt 6.9
- Coin3D / pivy
- PySide6
- WebGL2
- pthreads
- NumPy
- IndexedDB
- CalculiX
- wasm64