mrkeyoor.com_
Fri 16 Oct 18:55 UTC
Dev Toolsevaluationupdated 11 Oct 2026

FreeCAD review

FreeCAD is a desktop CAD application for designing physical objects with dimensions you can change later. It records how a model was made, lets you build shapes from constrained sketches, and produces drawings from those models. A Python API lets programmers work with the application too.

+207stars / 7d
Verdict

Our FreeCAD run installed 36 packages in the bundled Pivy directory, then stopped with 4 collection errors because pivy.coin could not be imported. Try FreeCAD's packaged desktop application when editable dimensions and production drawings are the job, while treating Python automation as a separate integration to verify. Skip unattended Draft endpoint editing or rotated-host BIM rebar generation until the reported geometry problems are resolved for your workflow.

We ran it

Lab card: what happened when we ran FreeCADScreenshot of FreeCAD (www.freecad.org)
Install✓ · 25s36 packages · 37 MB
Build✓ · 1s
Tests✗ · 3s0 passed · 0 failed · 4 errors of 4 (pytest)
Known vulns0(pip-audit)
Repo17757 files~7,768,428 lines of source · 482.6 MB · 24 CI workflows · tests dir

Answers from our run

Does FreeCAD build from source?

Dependencies installed in 25 seconds (36 packages), and the build succeeded in 1 seconds. We cloned commit eccfb5b into a clean Debian container with 3 CPUs and no project-specific setup.

Do FreeCAD's tests pass?

Yes: 0 of 4 passed when we ran the project's own test command (pytest), with 4 collection errors. Some failures need services or credentials a bare container does not have.

Does FreeCAD have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use FreeCAD?

Python service authors expecting a package install to deliver a working FreeCAD runtime: the README describes a native application, and our bundled Pivy path stopped at a missing pivy.coin import.

What are the alternatives to FreeCAD?

OpenSCAD, SolveSpace, CadQuery. Our FreeCAD run installed 36 packages in the bundled Pivy directory, then stopped with 4 collection errors because `pivy.

Setup3/5Desktop packages exist; our bundled Pivy path stopped at import
Docs4/5Clear desktop routes and a separate native development handbook
Community5/5October 11 push and issue updates; 34,154 GitHub stars
Maturity4/5Maintained CAD application with specific open geometry reports

Discussed on

  1. hnFreeCAD: A free and open source multiplatform 3D parametric modeler619 points
  2. hnFreeCAD443 points
  3. hnThe first release candidate of FreeCAD 1.0 is out379 points
  4. hnFreeCAD v1.1340 points
  5. hnFreeCAD 0.16 release notes214 points

Who it’s for

Part designers who need constrained sketches, editable model history, and drawings in an open-source desktop application.
Engineers and hobbyists working on Windows, macOS, or Linux who can start with the documented precompiled packages.
Developers extending an existing FreeCAD workflow through Python and prepared to manage its native geometry and interface stack.

Who it’s NOT for

Python service authors expecting a package install to deliver a working FreeCAD runtime: the README describes a native application, and our bundled Pivy path stopped at a missing pivy.coin import.
Draft users who need endpoint expressions to survive trimming without geometry checks: open issue 19189 reports Start and End identities swapping.
BIM teams generating custom-spaced reinforcement on rotated hosts without inspection: issue 33459 reports misplaced rebar on FreeCAD 1.1.4.
Owners of older Intel Core 2 hardware adopting the 26.3 RC1 Linux AppImage unchecked: issue 33393 reports an illegal-instruction crash, while the reporter's 1.1.4 package works.

Setup reality

Our run of commit eccfb5b installed the bundled Pivy project in 25 seconds: 36 packages, 37 MB on disk. Its build passed in 1 second. Pytest failed after 3 seconds with 0 passed, 0 failed, and 4 collection/setup errors, stopping at ModuleNotFoundError: No module named 'pivy.coin'. Pip-audit found 0 known vulnerabilities in that Python environment.

The selected path was src/3rdParty/pivy/, so these results don't establish a working FreeCAD desktop build. The README directs users to precompiled packages. Local modeling has no documented hosted-service credential requirement. Source development needs CMake, a C++ compiler, Python, native dependencies, and submodules; the handbook documents a Pixi route.

We used an unprivileged Debian container with Python 3.12, 3 CPUs, 8 GB of RAM, and no secrets. The log doesn't establish why pivy.coin was unavailable. Desktop packages have separate compatibility considerations: issue 33393 reports a 26.3 RC1 AppImage startup crash on Intel Core 2 hardware, with 1.1.4 reported working.

Model history lets you revise a part's dimensions

Change the mounting-hole spacing in a bracket, and you want the rest of the design to follow. FreeCAD records a model's construction history so you can revise its parameters instead of drawing the object again. Its constrained sketches give dimensions a job: they govern the shape. The README also describes producing drawings from the resulting model. That's a useful combination for someone designing physical parts.

Our checkout occupied 482.6 MB across 17,757 files, with roughly 7,768,428 lines of source. The size helps explain why the Python API is only one way into this application. FreeCAD uses OpenCASCADE for geometry, Coin3D for scene representation, and Qt for its interface. Choose it because you want to edit a dimensional model visually and retain control over its construction. Python access alone is a weak reason to adopt the whole stack. FreeCAD's project overview describes that architecture.

What happened when we ran it

Our sandbox installed the selected Python project in 25 seconds, adding 36 packages and using 37 MB on disk; its build step succeeded in 1 second. We ran commit eccfb5b on October 5, 2026, in an unprivileged Debian container with Python 3.12, 3 CPUs, 8 GB of RAM, and no secrets. The selected directory was src/3rdParty/pivy/. Those timings describe the bundled Pivy project, and do not establish that the complete FreeCAD desktop application compiled or launched.

Pytest exited with code 1 after 3 seconds. It reported 0 passed, 0 failed, and 4 collection/setup errors. The affected files were examples/QtDesigner/python/ui_test.py, examples/extend/scale_test.py, tests/pyside_test.py, and tests/visual_test.py. The log shows Pivy's initialization importing from .coin, then stopping with ModuleNotFoundError: No module named 'pivy.coin'. No test assertions ran. The log doesn't establish why that module was unavailable, so prescribing a particular system package would outrun the evidence.

Pip-audit reported 0 known vulnerabilities for the environment we installed. That finding covers the audited Python environment; it doesn't certify FreeCAD's native libraries or downloaded application packages. Our scan found 24 CI workflow files, a tests directory, and no Dockerfile. Having upstream automation is encouraging, but our selected path still stopped during collection. We measured repository setup mechanics here, without checking modeling accuracy, interactive responsiveness, or a completed export.

The packaged application avoids a source-development commitment

The README directs desktop users to precompiled releases for Windows, macOS, and Linux, with Linux software centers as another route. Start there if your job is making parts. Our 37 MB installed Python environment is no estimate of a desktop download's footprint. Local modeling has no documented hosted-service credential requirement, and the sandbox had no secrets. A contributor taking the source route needs the native development environment described in the developer handbook's setup instructions.

That handbook names CMake, a C++ compiler, and Python, and documents Pixi tasks for configuring, building, and running FreeCAD. It also tells contributors to clone submodules. At our commit, the selected directory points to a separate Pivy repository. Its pinned build README describes CMake and Python setup routes. The top-level documentation makes the native stack visible, but the import failure shows that a successful package step alone doesn't prove this checkout is ready for development.

Draft references can move to the wrong endpoint

Open Draft Trimex issue 19189 reports a line's Start and End identities swapping when an endpoint is moved. An expression referring to Start can then follow the opposite end. Our 4 collection errors did not exercise this behavior; the evidence is the reporter's reproduction in Draft, with a linked second line. If your workflow depends on endpoint expressions surviving edits, this is a specific reason to evaluate another modeler or require geometry checks before accepting revised files.

BIM has a separate concern. CustomSpacing issue 33459, reported on FreeCAD 1.1.4, describes rebar turning and moving incorrectly when its host is rotated. The report compares custom spacing with uniform spacing and supplies a reproducing macro. It remains an upstream report, rather than a result from our lab. Anyone generating reinforcement layouts without manual inspection should treat that exact workflow as an adoption blocker until their chosen version behaves correctly.

A small Python environment doesn't settle platform compatibility

The 36 packages in our run describe a fresh Debian environment, while desktop distributions bring their own runtime choices. Issue 33393 reports an illegal-instruction startup crash in the 26.3 RC1 Linux AppImage on an Intel Core 2 Quad processor. The reporter says the 1.1.4 AppImage works on that machine. This is a development-package compatibility warning for that hardware, with a reported working stable alternative; it doesn't support a blanket claim that FreeCAD cannot run on older PCs.

An October push and current issues show active maintenance

GitHub recorded a push on October 11, 2026, and the reviewed issue list contained updates that day. The checkout's 24 CI workflow files are another maintenance signal, although they didn't make our Pivy suite pass. The repository API listed 34,154 stars and 3,992 open issues and PRs combined. Release 1.1.4 arrived on September 28. Together, the push date and current issue activity support calling FreeCAD actively maintained. The backlog still demands workflow-specific judgment.

Pick the modeling interface before picking the repository

OpenSCAD suits designs described in scripts. SolveSpace is another parametric CAD tool to consider when constrained sketching is your main requirement. CadQuery explicitly targets Python modeling without requiring a GUI, making it my first alternative for a server-side geometry job. FreeCAD earns its trial when you need visual model-history editing and drawings. For an automated FreeCAD pipeline, resolve the import path that produced our 4 collection errors before trusting a scheduled job to deliver a usable part.

Alternatives

ProjectWhat it isPick it when
OpenSCADA CAD modeler that renders solid objects from scripts.pick this instead when you want parameterized parts defined in text rather than edited through a visual model history.
SolveSpaceA parametric 2D and 3D CAD tool.pick this instead when constrained sketching is the central job and FreeCAD's wider application is more than you need.
CadQueryA Python library for creating parametric CAD models without requiring a GUI.pick this instead when your deliverable is a Python geometry service or scripted part generator.

Sources

  1. FreeCAD README and architecture
  2. FreeCAD repository facts
  3. FreeCAD developer setup handbook
  4. Pivy build README pinned to the measured checkout
  5. Draft Trimex swaps line endpoint identities, issue 19189
  6. BIM custom spacing on rotated hosts, issue 33459
  7. Development AppImage illegal instruction on Core 2, issue 33393
  8. FreeCAD 1.1.4 release

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →