Jump to content

Developer hub

From FreeCAD Documentation
The information on this page may be obsolete, see the Developers Handbook for up-to-date information.


This is the place to come if you want to contribute to the development of the FreeCAD software. Many of the following pages might be outdated. Check the official FreeCAD Developers Handbook for more up to date information: https://freecad.github.io/DevelopersHandbook/

These pages are in the early stage of development. If you can't find the information you are looking for, or have found useful information somewhere we have not linked to, then please leave a comment on the forum and someone will look into it.

Developer Documentation[edit | edit source]

The developer documentation comprises the following sections:

Compiling FreeCAD[edit | edit source]

Packaging[edit | edit source]

Packaging consists in taking the compiled binaries and Python source files of FreeCAD, and distributing them for use in a particular system.

Build Support Tools[edit | edit source]

Modifying FreeCAD[edit | edit source]

Module developer's guide[edit | edit source]

FreeCAD Mod Dev Guide: This is an ebook under writing on GitHub, please fork and send pull request to contribute.

Chapters:

  • Overview and Software Architecture
  • Source code structure
  • Base and App module
  • Gui module
  • Python wrapping
  • Modular design
  • FEM module source analysis (mixed C++ and Python)
  • Development of CFD Module (pure Python)
  • Module testing and debugging
  • Contribute code with git

Latest PDF preview can be downloaded from PDFfolder of this GitHub repository.

Internals[edit | edit source]

OpenCascade Documentation[edit | edit source]

OpenCascade is a software development platform for 3D surface and solid modeling, CAD data exchange, and visualization, mostly in the form of C++ libraries.

File format[edit | edit source]

File Format FCStd. The files created with FreeCAD are .zip files that include the BREP geometry, as well as XML data that describes the document.

Sketcher solver[edit | edit source]

The Sketcher solver isn't perfect, as there are some issues with numerical precision when using large values, see Adventure of fixing sketcher solver for large sketches.

The development of a new solver architecture could improve the way the solver is used both in the Sketcher Workbench, and for assembly of 3D bodies. See Reimplementing constraint solver.

Roadmap[edit | edit source]

FreeCAD, though usable in certain areas, is at the beginning of a long way into the CAD mainstream. There is still a lot to do to reach a state where we can compete with commercial software.

FreeCAD 1.0 Development Cycle

Community[edit | edit source]

Credits[edit | edit source]

Contributors