Virtastic Show - [FreeCAD Overview]

FreeCAD

Parametric 3D CAD, in your browser

Released

FreeCAD 1.1.3, compiled to WebAssembly and running in the browser. No install, no plugin, no server-side rendering. The real application, executing locally in your tab: https://freecad.virtastic.app

A 42 MB 3D printer assembly open in freecad-web

A real 42 MB project, 34 top-level parts, opened from the browser: GA3Dtech’s open-hardware GA3D-basicbot-2023 (CERN-OHL-W-2.0). Every screenshot on this page is the application running, captured from the shipped build.

This is not a viewer or a cut-down demo. It is upstream FreeCAD built for wasm64-emscripten with wasm exceptions and JSPI: the same workbenches, the same commands, the same OCCT geometry kernel, the same CPython interpreter running the same Python workbenches, and the same solvers.

Not affiliated with or endorsed by the FreeCAD project. Please report problems to freecad-web, not to FreeCAD upstream.

What it looks like

Every one of these opened in the browser, from the build that is live right now.

PartDesign exampleEngine block
Parametric modelling. Pads, pockets and sketches, with the full feature tree.EngineBlock, 36 objects. Booleans and fillets on real solid geometry.
BIM exampleArch detail
BIM, 361 objects: walls, windows, a site, a section plane and drawing sheets.ArchDetail, 435 objects. Architectural detailing with materials.
FEM exampleAssembly example
FEM. Gmsh meshes and CalculiX solves in the tab, within 1% of beam theory.Assembly, 54 objects, with joints and constraints.
Draft objectsAn 18 MB STL mesh
Draft, 113 objects: wires, arcs, dimensions and text, shown from the top.An 18 MB STL, imported and shaded. Meshes as well as solids. Dovahkiin Helm Reforged by MHypothetical.

What works

Verified under real mouse and keyboard input against production, not just scripted API calls:

  • All 20 workbenches activate on first click.
  • ~500 of FreeCAD’s own unit tests pass (PartDesign, Part, Draft, Sketcher, Spreadsheet, Mesh, Arch, TechDraw, Assembly, Materials and more).
  • Modelling. Sketch by clicking in the viewport, add dimensional constraints through the modal, pad through the task panel, boolean, fillet. Geometry agrees with closed-form answers: a PartDesign pad measured 8262.4 mm³ against an analytic 8262.4.
  • FEM end to end. Gmsh meshes and CalculiX solves in the browser, validated to within 1% of beam theory across solids, shells, beams, plane stress, contact, frequency, thermal and nonlinear.
  • Files. Open, save, save-as, export and import through FreeCAD’s own menus: FCStd, STEP, IGES, STL, 3MF, OpenSCAD CSG, SVG, DXF.
  • The Addon Manager lists the real catalogue and installs workbenches and macros, which survive a reload.
  • Your work survives a reload. Documents autosave to browser storage on edit and are restored on boot.

Edit → Share Session… gives a link that opens your document in your environment: your units, your theme, your add-ons, your macros. They need no install, no account and no matching version, and it works whether they open it now or in three days, because the session lives on the server rather than in your tab.

Starting a shared sessionWhat the visitor sees
Your side. Press Start sharing, copy the link. Passwords and an expiry if you want them.Their side. The same model, in their browser, marked read-only. No install, no account.

One person holds control at a time. Everyone else watches live, read-only, with the editing commands greyed out, keeping their own camera and their own tab. Control can be requested, granted, or taken with the editor password. Work that has not reached the server is kept as a separate document rather than discarded. Rendering still happens in each visitor’s own browser. This is not screen sharing.

Let an AI drive it

Preferences → Sharing → MCP mints one URL. Paste it into an AI client and it can see and drive FreeCAD: the object tree, every property, the selection, the views, screenshots, export, and every GUI command, plus arbitrary Python as the backstop. The page has copy buttons for the Claude Code and Codex command lines, so there is nothing to type.

The assistant works inside your tab and inherits its rights, so it is off until you press Enable. Shared sessions and the AI assistant covers both features, including what the operator turns on and what the assistant can and cannot do.

Requirements and limits

These are real constraints, stated up front rather than discovered:

BrowserChrome or Edge 137+. Firefox and Safari lack JSPI; they are refused up front having downloaded nothing.
First load~115 MB. Return visits fetch nothing: the engine is held in Cache Storage and reaches Ready in seconds.
MemoryA 16 GB heap ceiling (the wasm64 build; V8 caps wasm64 memory there). The app force-saves your documents and warns before it runs out.
CalculiXSingle-threaded, so large FEM jobs are slower than desktop.
Shared sessions / MCPSelf-hosters need one extra container: docker compose --profile share up -d. Documents you share are stored unencrypted on that server, so anyone with access to it can read them. Nothing leaves your browser until you start a session.

Run it yourself

Docker is the only thing you need. No Python, no Node, no build tools, no clone.

curl -fsSLO https://github.com/Virtastic/freecad-web/releases/latest/download/setup.sh
sh setup.sh
# Windows PowerShell
irm https://github.com/Virtastic/freecad-web/releases/latest/download/setup.ps1 -OutFile setup.ps1
.\setup.ps1

Then open http://localhost:8080/ in Chrome or Edge 137+. Use localhost rather than the machine’s LAN address: the engine needs a secure context to start.

Your documents live in your browser, not in the container, so stopping or removing it does not touch them. The one exception is a session you deliberately share, which is copied to a volume so the link keeps working while your laptop is shut. Run it yourself covers the install options, troubleshooting, updating and uninstalling.

Building

To build the container from a clone, use full-build.sh (or full-build.ps1). That takes about 15 minutes and needs only git and Docker. Building the engine is a different thing entirely: a multi-hour, multi-gigabyte cross-compile of FreeCAD and its whole dependency stack. BUILD-WEH.md is the authority; start there. More in the repository: MANUAL-QA.md (the 20-minute human pass), SECURITY.md (the threat model) and infra/README.md (serving and deployment).

Community

License

LGPL-2.1-or-later, matching FreeCAD. See LICENSE, and NOTICE for the third-party components and their licenses. Full license texts live in LICENSES/, and the running app serves the same attribution at /legal.html, linked from the boot screen, including Gmsh and CalculiX, which ship as separate GPL WebAssembly modules rather than being linked in.

Screenshots

FreeCAD running in the browser, screenshot 1FreeCAD running in the browser, screenshot 2FreeCAD running in the browser, screenshot 3

What it took

The real FreeCAD 1.1.3, compiled from its C++ source to 64-bit WebAssembly (wasm64). Every workbench and the FEM solver run in your browser, on your own machine: nothing is streamed from a server.

  • First visit downloads about 120 MB; after that your browser keeps it.
  • Your browser needs 64-bit WebAssembly memory and JSPI (JavaScript Promise Integration): Chrome or Edge on a computer.
  • All 20 workbenches, ~500 upstream unit tests passing
  • FEM meshes and solves in the browser, within 1% of beam theory
  • Share links and an MCP endpoint; files stay on your machine

Read how we did it, with the measurements and the mistakes.

Status and how to help

Released. FreeCAD 1.1.3 on wasm64: every workbench, FEM solving in the tab, shared sessions and an MCP endpoint. LGPL.

Known issues

Every known bug is in the open issues on GitHub, so nothing is hidden.

Help us test

Try it in Chrome, Edge or Brave on a computer. If something breaks, report a bug with what you did, your browser, and what you saw.

LGPL 2.1 · Source · Contributing guide · Code of conduct · Get involved

Get started

▶ Run Manual

Slide 1 Virtastic