FreeCAD is a CAx RAD based on OpenCASCADE, Qt4, and Python. It features some key concepts like Macro recording, Workbenches, and the ability to run as a server. It's also platform-independent. It is is fully scriptable and designed to be easily extensible; only the core functionality is embedded into the core libraries, but all further functionality like support of triangle meshes, CAM, FEM, etc. is implemented in extension modules. Normally, such a module is divided into an 'App' part containing the data structures and algorithms and a 'GUI' containing the graphical representation of data structures, dialogs, workbenches, etc.