# FreeCAD — Open Source 3D Parametric Modeler > FreeCAD is a free, open-source parametric 3D CAD modeler for engineering, product design, architecture, and 3D printing. It supports Python scripting, a modular workbench system, and import/export of standard CAD formats. ## Install Save as a script file and run: # FreeCAD — Open Source 3D Parametric Modeler ## Quick Use ```bash # Ubuntu/Debian (PPA) sudo add-apt-repository ppa:freecad-maintainers/freecad-stable sudo apt update && sudo apt install freecad # Flatpak flatpak install flathub org.freecadweb.FreeCAD # macOS (Homebrew) brew install --cask freecad ``` ## Introduction FreeCAD is a general-purpose parametric 3D CAD modeler. It is designed for mechanical engineering, product design, architecture, and other disciplines that require precise 3D modeling with constraint-based parametric geometry. The project is community-driven and extensible through Python scripting and custom workbenches. ## What FreeCAD Does - Creates parametric 3D models using constraint-based sketching and feature-based modeling - Provides specialized workbenches for Part Design, Assembly, Architecture (BIM), FEM analysis, and CNC paths - Imports and exports STEP, IGES, STL, OBJ, DXF, and other standard CAD formats - Supports finite element analysis for structural and thermal simulations - Generates technical drawings with dimensioning and annotations ## Architecture Overview FreeCAD is written in C++ with Python bindings using PyCXX and Qt for the GUI. The geometry kernel uses Open CASCADE Technology (OCCT) for B-Rep solid modeling. The application follows a workbench architecture where each module (Part Design, Sketcher, FEM, Path) provides its own tools and UI. A document-object model stores parametric features in a dependency graph that recomputes when parameters change. ## Self-Hosting & Configuration - Download binaries from freecad.org or install via system package managers - Install additional workbenches through the Addon Manager (Tools > Addon Manager) - Configure units, navigation style, and display settings in Edit > Preferences - Set up macro paths for Python automation scripts - Use the Start workbench to access recent files and tutorials ## Key Features - Parametric constraint-based sketcher for precise 2D profile creation - Modular workbench system with Assembly, FEM, Path (CNC), and BIM modules - Full Python scripting API for automation, macros, and custom workbench development - Open CASCADE-based geometry kernel supporting advanced B-Rep operations - Extensible through community add-ons including rendering, fasteners, and sheet metal ## Comparison with Similar Tools - **Fusion 360** — cloud-based with integrated CAM, but proprietary and requires a subscription for commercial use - **SolidWorks** — industry standard for mechanical design, but expensive and Windows-only - **OpenSCAD** — code-based 3D modeling via CSG, but no interactive GUI modeling workflow - **Blender** — powerful 3D modeling and rendering, but focused on artistic rather than engineering workflows - **Onshape** — browser-based parametric CAD, but proprietary with limited free tier ## FAQ **Q: Can FreeCAD handle assemblies?** A: Yes. The Assembly workbench (integrated in FreeCAD 1.0+) supports multi-part assemblies with mates and constraints. **Q: Is FreeCAD suitable for 3D printing?** A: Yes. FreeCAD exports STL and 3MF files and includes mesh repair tools for print preparation. **Q: Does FreeCAD support Python scripting?** A: Yes. Nearly every feature is accessible through the Python console and scripting API, enabling full automation. **Q: What file formats does FreeCAD support?** A: FreeCAD reads and writes STEP, IGES, STL, OBJ, DXF, SVG, and its native .FCStd format (a zipped XML document). ## Sources - https://github.com/FreeCAD/FreeCAD - https://www.freecad.org/ --- Source: https://tokrepo.com/en/workflows/03a3e6b9-3b20-11f1-9bc6-00163e2b0d79 Author: Script Depot