This page is dedicated to the Google Summer of Code project regarding the interoperability between IPython and FreeCAD, mostly regarding visualisation.
FreeCAD is quite popular for its extensive Python API providing grounds for many advanced macros and extensions. The API, which exposes everything from the document structure, basic workbench specific types and even the whole GUI, offers large amounts of freedom for the user to create everything he wants. Python in itself has become increasingly popular in the scientific community over the last years, partially surpassing classical interpreted languages like Matlab in certain areas. Due to this increased interest in and usage of the language an ecosystem for scientific computation has evolved around Python, leading to advanced coding environments like IPython and its Jupyter notebook. As this scientific usage of the language fits very well into FreeCADs profile as a python driven CAx application it should be possible to tightly integrate it into the scientific workflow. This means less usage of a custom application GUI but good integration into multi-purpose computation environments like IPython.
FreeCAD's API in itself is solid and powerful enough to be used in IPython extensively, however, one main issue with CAx code is the visualisation. It is nearly impossible to develop 3D models without seeing them. It is therefore important to find a way to visualize FreeCAD's 3D scene in the IPython display system as supported by the IPython QTConsole and the Jupyter notebook.
If the 3D scene can be navigated other things, which FreeCAD can display, remain, for example the spreadsheet.
Easy
This project was chosen for GSoC 2020. The results can be found here: Git repo. The corresponding thread in the FreeCAD forum can be found here. Find a blog post here. The full project proposal can be found here. The results are a good base to build upon.