4.5.0 - 2023-10-07 Features requirements-txt-fixer: also sort constraints.txt by default. #857 PR by @lev-blit. #830 issue by @PLPeeters. debug-statements: add bpdb debugger. #942 PR by @mwip. #941 issue by @mwip. Fixes file-contents-sorter: fix sorting an empty file. #944 PR by @RoelAdriaans. #935 issue by @paduszyk. double-quote-string-fixer: don't rewrite inside f-strings in 3.12+. #973 PR by @asottile. #971 issue by @XuehaiPan. Migrating now requires python >= 3.8. #926 PR by @asottile. #927 PR by @asottile. 4.4.0 - 2022-11-23 Features forbid-submodules: new hook which outright bans submodules. #815 PR by @asottile. #707 issue by @ChiefGokhlayeh. 4.3.0 - 2022-06-07 Features check-executables-have-shebangs: use git config core.fileMode to determine if it should query git. #730 PR by @Kurt-von-Laven. name-tests-test: add --pytest-test-first test convention. #779 PR by @asottile. Fixes check-shebang-scripts-are-executable: update windows instructions. #774 PR by @mdeweerd. #770 issue by @mdeweerd. check-toml: use stdlib tomllib when available. #771 PR by @DanielNoord. #755 issue by @sognetic. check-added-large-files: don't run on non-file stages. #778 PR by @asottile. #777 issue by @skyj. 4.2.0 - 2022-04-06 Features name-tests-test: updated display text. #713 PR by @asottile. check-docstring-first: make output more parsable. #748 PR by @asottile. check-merge-conflict: make output more parsable. #748 PR by @asottile. debug-statements: make output more parsable. #748 PR by @asottile. Fixes check-merge-conflict: fix detection of ====== conflict marker on windows. #748 PR by @asottile. Updating Drop python<3.7. #719 PR by @asottile. Changed default branch from master to main. #744 PR by @asottile. 4.1.0 - 2021-12-22 Features debug-statements: add pdbr debugger. #614 PR by @cansarigol. detect-private-key: add detection for additional key types. #658 PR by @ljmf00. check-executables-have-shebangs: improve messaging on windows. #689 PR by @pujitm. #686 issue by @jmerdich. check-added-large-files: support --enforce-all with git-lfs. #674 PR by @amartani. #560 issue by @jeremy-coulon. Fixes check-case-conflict: improve performance. #626 PR by @guykisel. #625 issue by @guykisel. forbid-new-submodules: fix false-negatives for pre-push. #619 PR by @m-khvoinitsky. #609 issue by @m-khvoinitsky. check-merge-conflict: fix execution in git worktrees. #662 PR by @errsyn. #638 issue by @daschuer. Misc. Normalize case of hook names and descriptions. #671 PR by @dennisroche. #673 PR by @revolter. 4.0.1 - 2021-05-16 Fixes check-shebang-scripts-are-executable fix entry point. #602 issue by @Person-93. #603 PR by @scop. 4.0.0 - 2021-05-14 Features check-json: report duplicate keys. #558 PR by @AdityaKhursale. #554 issue by @adamchainz. no-commit-to-branch: add main to default blocked branches. #565 PR by @ndevenish. check-case-conflict: check conflicts in directory names as well. #575 PR by @slsyy. #70 issue by @andyjack. check-vcs-permalinks: forbid other branch names. #582 PR by @jack1142. #581 issue by @jack1142. check-shebang-scripts-are-executable: new hook which ensures shebang'd scripts are executable. #545 PR by @scop. Fixes check-executables-have-shebangs: Short circuit shebang lookup on windows. #544 PR by @scop. requirements-txt-fixer: Fix comments which have indentation #549 PR by @greshilov. #548 issue by @greshilov. pretty-format-json: write to stdout using UTF-8 encoding. #571 PR by @jack1142. #570 issue by @jack1142. Use more inclusive language. #599 PR by @asottile. Breaking changes Remove deprecated hooks: flake8, pyflakes, autopep8-wrapper. #597 PR by @asottile.
Your own 3D parametric modeler
Website • Documentation • Forum • Bug tracker • Git repository • Blog
Overview
-
Freedom to build what you want FreeCAD is an open-source parametric 3D modeler made primarily to design real-life objects of any size. Parametric modeling allows you to easily modify your design by going back into your model history to change its parameters.
-
Create 3D from 2D and back FreeCAD lets you to sketch geometry constrained 2D shapes and use them as a base to build other objects. It contains many components to adjust dimensions or extract design details from 3D models to create high quality production-ready drawings.
-
Designed for your needs FreeCAD is designed to fit a wide range of uses including product design, mechanical engineering and architecture, whether you are a hobbyist, programmer, experienced CAD user, student or teacher.
-
Cross platform FreeCAD runs on Windows, macOS and Linux operating systems.
-
Underlying technology
- OpenCASCADE A powerful geometry kernel, the most important component of FreeCAD
- Coin3D library Open Inventor-compliant 3D scene representation model
- Python FreeCAD offers a broad Python API
- Qt Graphical user interface built with Qt
Installing
Precompiled packages for stable releases are available for Windows, macOS and Linux on the Releases page.
On most Linux distributions, FreeCAD is also directly installable from the software center application.
For development releases check the weekly-builds page.
Other options are described at the wiki Download page.
Compiling
Compiling FreeCAD requires installation of several libraries and their development files such as OCCT (Open Cascade), Coin and Qt, listed in the pages below. Once this is done, FreeCAD can be compiled with CMake. On Windows, these libraries are bundled and offered by the FreeCAD team in a convenient package. On Linux, they are usually found in your distribution's repositories, and on macOS and other platforms, you will usually have to compile them yourself.
The pages below contain up-to-date build instructions:
Reporting Issues
To report an issue please:
- First post to forum to verify the issue;
- Link forum thread to bug tracker ticket and vice-a-versa;
- Use the most updated stable or development versions of FreeCAD;
- Post version info from eg.
Help > About FreeCAD > Copy to clipboard; - Post a Step-By-Step explanation on how to recreate the issue;
- Upload an example file to demonstrate problem.
For more detail see:
The FPA offers developers the opportunity to apply for a grant to work on projects of their choosing. Check jobs and funding to know more.
Usage & Getting help
The FreeCAD wiki contains documentation on general FreeCAD usage, Python scripting, and development. These pages might help you get started:
The FreeCAD forum is also a great place to find help and solve specific problems you might encounter when learning to use FreeCAD.
This project receives generous infrastructure support from
and KiCad Services Corp.