Skip to content
Module developer's guide to FreeCAD 's source code
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Module developer's guide to FreeCAD source code

by Qingfeng Xia


  • 2015-09-18 version 0.1 for FreeCAD version 0.16-dev

  • 2016-09-18 version 0.2 for FreeCAD version 0.17-dev

  • 2019-06-18 start again to work towards version 0.3 for FreeCAD version 0.19-dev

Plan and progress

This book should be updated for the recent release, esp. after migration to Python3 + Pyside2. I plan another release for FreeCAD 0.19 dev near Xmas time.

License of this book

This ebook is licensed the same as FreeCAD document license CC-BY 3.0

Acknowledge to developers of FreeCAD

Original/lead developers:

Add all contributors see

Target audiances: new module developers

Make sure you are familiar with FreeCAD workbench GUI and API as a user:

Doxygen documents links

Doxygen generated online documentation of source for 0.16dev, will be delete soon

Doxygen generated online documentation of source for 0.19dev on 2019-06-24

Why I want to write this book

  • Learn the software architecture of FreeCAD: a large open source project
  • Learn to use git to contribute to open source projects like FreeCAD
  • Save time for new developers to explore the source codde of FreeCAD
  • Record personal note and lesson during writing/contributing code to FreeCAD
  • Some chapters of this ebook is seeking to be merged into official wiki after reviewed as usable

How to contribute to this ebook

  • write on unfinished topics/chapters listed in fork and pull request git clone
  • file bug for outdated code analysis As this book is about code analysis while FreeCAD is under heavy development, source codes quoted may outdated quickly. Please point out by report bugs in github

Acknowledgement to my family

Thanks for my wife Ms J. Wang, and other family members' for the housework exempt to complete this work

You can’t perform that action at this time.