FreeCAD Jupyter Integration

Google Summer of Code 2020

Interactive demo showing real-time manipulation of FreeCAD objects within Jupyter, including face and edge index visualization crucial for notebook-based scripting.

Overview

The FreeCAD Jupyter Integration project enables designers and engineers to interact with FreeCAD's powerful CAD capabilities directly within Jupyter Notebooks. Originally inspired by creating a parametric lamp design, this implementation allows for real-time 3D visualization and parameter manipulation without launching the full desktop application, making CAD design more accessible and programmable. Read the full project story and technical details here Key Features:

  • Real-time 3D visualization of FreeCAD objects in Jupyter Notebooks
  • Interactive parameter manipulation through Python scripting
  • WebGL-based rendering using pythreejs
  • Face and edge index visualization for precise scripting
  • Seamless integration with FreeCAD's Python API

Technical Details

The project bridges Coin3D scene graph with WebGL rendering through pythreejs, a Jupyter widget implementation of Three.js. This enables high-performance 3D visualization directly in the browser while maintaining access to FreeCAD's parametric design capabilities.

  • Coin3D scene graph extraction via pivy
  • WebGL rendering through pythreejs
  • Python-based widget implementation
  • FreeCAD Python API integration
  • Interactive UI components

Resources:

Live Demo

Acknowledgments

Special thanks to mentors @ickby, @kkremitzki, and @yorik for their guidance, as well as the entire FreeCAD community, especially @vocx-fc for detailed code review and feedback.
powered by ❤️ and jekyll