FreeCAD is a general purpose, open-source, multiplatform parametric 3D modeling application, geared mainly for product design, in other words anything that is meant to be built in the real world. The project started around 2002, and is today entering a a big momentum with the blossoming of home 3D printing and manufacturing, and thanks to is extreme hackability.
FreeCAD can be described as a big, modular "collage" between many heavyweight open-source libraries and projects, such as OpenCasCade (our geometry engine), Coin3D (an implementation of OpenInventor, which drives the 3D display), Qt and Python. But it can also, more accurately, be called a "python beast". With a bit of knowledge of the python language, its user is given the powers of a God.
Although programmed mainly in C++, python is everywhere in FreeCAD: It acts as a "glue" between the "core" part of the application, which handles all the heavy geometric calculations, and the Qt graphical interface. This offers a wealth of interesting features such as the separation of FreeCAD into a non-GUI (server mode) part and a GUI part, possibilities to record, tweak, drive, or interact with the python flow in many ways, and much more. Each of the main libraries used in FreeCAD also has its own python bindings, all usable inside FreeCAD, all connecting to the running application and able to operate on its contents, its objects, its interface, its 3D display.
Python code in FreeCAD is also constantly exposed to the user, turning the application very pedagogic. It is almost impossible to work with it without learning at least a bit of python. Many have tried.
This has formed a highly technically knowledgeable community around FreeCAD, where the differences between developer and user have blurred.
This talk will try to convey some of the amazing social/technical experience we have building this tool that is made to build.
Speakers: Yorik van Havre