FreeCAD is a general purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler, aimed directly at mechanical engineering and product design but also fits in a wider range of uses around engineering, such as architecture or other engineering specialties. It is a feature-based parametric modeler with a modular software architecture which makes it easy to provide additional functionality without modifying the core system.
FreeCAD is based on OpenCasCade, a powerful geometry kernel, features an Open Inventor-compliant 3D scene representation model provided by the Coin 3D library, and a broad python API. The interface is built with Qt. FreeCAD runs exactly the same way on Windows, Mac OSX and Linux platforms.
- A complete OpenCasCade-based geometry kernel allowing complex 3D operations on complex shape types, and supports natively concepts like brep, nurbs, booleans operations or fillets
- A modular architecture that allow plugins (modules) to add functionality to the core application. Those extensions can be as complex as whole new applications or as simple as python scripts or self-recorded macros
- A full parametric model allowing any type of parameter-driven custom objects, that can even be fully programmed in python
- Complete access from python built-in interpreter, macros or external scripts to almost any part of FreeCAD, being geometry creation and transformation, the 2D or 3D representation of that geometry (scenegraph) or even the FreeCAD interface
- Import/export to standard formats such as STEP, IGES, OBJ, DXF, SVG, U3D or STL
- A Sketcher with constraint-solver, allowing to sketch geometry-constrained 2D shapes. The sketcher currently allows you to build several types of constrained geomerty, and use them as a base to build other objects throughout FreeCAD.
- A Drawing sheets module that permit to put 2D views of your 3D models on a sheet. This modules then produces ready-to-export SVG or PDF sheets. The module is still sparse but already features a powerful python functionality.
- A Robot simulation module that allows to study robot movements. The robot module already has an extended graphical interface allowing GUI-only workflow.
- A Rendering module that can export 3D objects for rendering with external renderers. Currently only supports povray, but is expected to be extended to other renderers in the future.
- An Architecture module that allows BIM-like workflow, with IFC compatibility. The making of the Arch module is heavily discussed by the community here.