How to Contribute to FreeCAD: Funding and Code

FreeCAD is a powerful, open-source parametric 3D modeler that relies on a global community of developers, designers, and users for its continued growth and stability. This guide outlines the most effective ways to support the FreeCAD project, detailing how to contribute financially through organizations and developer sponsorships, as well as how to contribute directly to the software through code development, bug fixes, and workbench creation.

How to Support FreeCAD Financially

Financial contributions directly fund core development, pay for server infrastructure, and support development grants that target critical features and stability improvements.

  • The FreeCAD Project Association (FPA): The FPA is a non-profit organization established to support the FreeCAD ecosystem. You can donate to the FPA via Open Collective or GitHub Sponsors. The funds are allocated toward development grants, event hosting, and project maintenance.
  • Direct Developer Sponsorship: Several active FreeCAD core maintainers and module developers maintain personal sponsorship profiles on platforms such as GitHub Sponsors, Patreon, and Liberapay. Sponsoring individual contributors allows them to dedicate more hours to specific workbenches, bug fixing, and architecture modernization.
  • Corporate Sponsorships and Grants: Companies that rely on FreeCAD in production can become corporate sponsors through the FPA or sponsor targeted development contracts to implement specific features that benefit both the company and the wider community.

How to Support FreeCAD Through Code Contributions

FreeCAD's core is written in C++, while much of its user interface and scripting capabilities are built with Python. Anyone with programming knowledge can help improve the software.

  • Set Up the Development Environment: Start by reading the developer documentation on the FreeCAD Wiki and cloning the source repository from GitHub. Follow the build instructions specific to your operating system to compile the software locally.
  • Pick an Issue: Browse the FreeCAD GitHub issue tracker. Look for labels like "good first issue" or "help wanted" to find manageable bugs or feature requests. The FreeCAD forum also has a dedicated "Developer" section where maintainers discuss ongoing tasks and welcome new contributors.
  • Follow Coding Standards: Adhere to the project's coding conventions for C++ and Python. Ensure that your code is clean, properly formatted, and includes comments where necessary to explain complex logic.
  • Submit a Pull Request (PR): Fork the main repository, create a descriptive branch for your changes, commit your work, and open a pull request against the main branch. Clearly describe what bug you fixed or feature you added, and reference any relevant issue numbers.
  • Develop Addons and Workbenches: If you want to add major functionality without modifying the core codebase, you can create a custom workbench or macro using Python. These can be submitted to the FreeCAD Addon Manager, making them directly accessible to all FreeCAD users.