Free, open source parametric CAD for 3D printing. Sketch a shape, give it exact sizes, turn it into a solid and export a file for your slicer. Windows, macOS and Linux.
Get the build for your system from the beta. It is the normal download, and somewhat stable.
The development build gets every change the day it lands. It is the bleeding edge and can be broken.
- There is no account and no cloud, your files stay on your disk.
- An install only updates to a newer build of the same kind. On Linux only the AppImage updates itself.
- The builds are not code signed, so Windows and macOS warn you on the first start. The install page shows how to get past that.
The first build compiles the Open CASCADE kernel and takes about twenty minutes. The app
lands in src-tauri/target/release/ and the installers in src-tauri/target/release/bundle/.
Details and troubleshooting are in CONTRIBUTING.md.
# Windows (PowerShell), open a new terminal after the installs
winget install OpenJS.NodeJS.LTS Kitware.CMake Rustlang.Rustup Git.Git
winget install Microsoft.VisualStudio.2022.BuildTools --override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
git clone https://github.com/Paraxdev/fundacad.git C:\src\fundacad
cd C:\src\fundacad
npm ci
npm run tauri build
# macOS
xcode-select --install
brew install cmake node
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && . "$HOME/.cargo/env"
git clone https://github.com/Paraxdev/fundacad.git && cd fundacad
npm ci
npm run tauri build
# Linux (Debian, Ubuntu)
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libgtk-3-dev \
libayatana-appindicator3-dev librsvg2-dev libudev-dev patchelf libfuse2 cmake git
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && . "$HOME/.cargo/env"
git clone https://github.com/Paraxdev/fundacad.git && cd fundacad
npm ci
npm run tauri build
- Sketch with lines, arcs, splines and text, and pin the shape down with constraints and dimensions.
- Turn sketches into solids with extrude, revolve, loft and sweep, then change them with fillets, chamfers, holes, shells and patterns.
- Keep every step in the History, go back to any of them, and let the part rebuild.
- Drive a design from named parameters, so a bracket 2 mm wider is one number away.
- Check a part before printing: measure it, cut it open, look for overhangs and thin walls, and see where it bends under load with Stress.
- Render it with materials, glass and glowing parts in the Render workspace.
- Add optional plugins, such as fasteners, surface textures and a printer connection.
- Let an AI assistant build and check parts through the built-in MCP server. It only runs when an assistant starts it.
- Export STL, 3MF, STEP and GLB, or a sketch as DXF and SVG. Import STEP, IGES, DXF, SVG and most mesh files.
The manual is at fundacad.dev. It starts with a first part from sketch to exported file.
Building from source, running the tests and fixing common build problems are in
CONTRIBUTING.md. The technical notes are in docs/.
docs/ARCHITECTURE.md, how the processes fit togetherdocs/ENGINE.md, the Funda Engine, its tests and the release channelsdocs/PROTOCOL.md, the messages the frontend and the engine exchangedocs/FUNDA-FORMAT.md, the.fundaand.fundabfile formatsdocs/PACKAGING.md, how a desktop bundle and the kernel are builtdocs/MCP.md, how an AI assistant connects and what it can dodocs/PLUGINS.md, writing plugins and what they may reach
- In the app, open Help, Report a Problem… and write what happened.
- Press Open on GitHub. It copies the full report and opens a prefilled Problem report.
- Paste the report into its Report from the app box and submit.
Help, Suggest an Idea opens the Idea form. A security problem goes to the private reporting in SECURITY.md.
FundaCAD is built with AI. Most of the code, the tests and the documentation are written by AI coding agents. I decide what gets built and in what order, steer the work, check what lands and use the app actively.
I apply real software engineering practice so the codebase and the features do not turn into a mess:
- Larger changes are built on their own branch and reviewed by a second AI agent whose job is to break them, then fixed until that review passes.
- Every change runs over 8,000 unit and component tests, end to end checks that drive the app in a browser like a user, and golden geometry checks against known good results.
- CI builds every change on Windows, macOS and Linux, and installs the Linux builds on Ubuntu, Debian and Fedora. The beta only publishes once they are all green.
- The interface follows a written design spec (docs/DESIGN.md), and tests check the interface against it.
- Bugs come before new features.
AI does not decide what ships. Store submissions, such as the Flathub manifest and its review, are written and handled by me by hand.
AI can write code that looks right and is wrong. If something misbehaves, a report (see above) gives me what I need to fix it. I am very open to issues and bug reports, and fixing them has the highest priority.
The goal is a coherent program that holds up in daily use and is as flexible as an open source project can be.
You may use AI to write features and pull requests. You are responsible for what it produces:
- read the change, understand it and make sure it works;
- write at least one test that checks a known good case, where the feature allows it;
- say in the pull request that AI wrote it.
If you use AI to write an issue or a bug report, read it first and make sure you can reproduce what it says. A vague or incoherent report takes much longer to understand and fix.
AGPL-3.0, see LICENSE. FundaCAD started as a fork of SindriCAD and has moved a long way since, mainly in the interface and a Rust backend.
