A Robotics Workbench for JupyterCAD

A unified in-browser workflow from CAD to URDF kinematics

Robotics education often hits a wall before the fun even begins. Students and engineers must first navigate a labyrinth of installations: ROS, environment configurations, dependency management, and a patchwork of software, just to visualize a simple robot. It doesn’t have to be this way.

Thanks to Jupyter and its extensions, the entire process, from designing a robot to simulating its kinematics, can now happen entirely in the browser, in a single workspace with zero local installation.

The Problem: The Fragmented Robotics Pipeline

Traditionally, creating a robot model involves dealing with three distinct, often incompatible worlds:

  1. Parametric Design: Creating the shapes in dedicated CAD software (FreeCAD, SolidWorks, and the like).
  2. Mesh Generation: Exporting those solid bodies into triangular meshes (STL) while manually managing the coordinates and file paths.
  3. Kinematic Description: Writing URDF (Unified Robot Description Format) XML that ties the meshes together using joints and other parameters.

Getting this pipeline working locally typically requires a complete ROS installation, a source of friction for students and educators.

The Solution: A Unified Browser Workflow

By leveraging the JupyterCAD and JupyterLite, this entire toolchain is delivered as an instant, zero-install workspace in the browser. It is made available on the notebook.link service.

1. JupyterCAD: The Design Hub

JupyterCAD is a JupyterLab extension for collaborative 3D modeling. It also supports FreeCAD files and offers a full set of tools for creating, transforming, and combining 3D shapes.

It can also export to various formats:

2. JupyterCAD-URDF: The URDF Workbench for JupyterCAD

JupyterCAD-URDF is a JupyterCAD plugin for exporting CAD designs to the URDF format.

3. JupyterLab-URDF: Interactive Kinematics

Once the model is exported, the JupyterLab-URDF extension, which can be used in JupyterLab independently of JupyterCAD, allows for inspection of the XML content as well as interactive 3D visualization:

Walkthrough: Zero-to-Robot Workflow

This new pipeline allows a student to go from a blank page to a moving robot:

Phase 1: CAD Modeling & Export (JupyterCAD + JupyterCAD-URDF)

  1. Design parametric parts in JupyterCAD.
  2. Export to URDF using JupyterCAD-URDF.

Phase 2: Assembly & Simulation (jupyterlab-urdf)

  1. Assemble the generated URDF in jupyterlab-urdf and use the Joints Editor to connect links.
  2. Simulate the robot movement using the joint sliders.

You can try it right now without any local installation thanks to the deployment on notebook.link, by following the link below.

Repos

All tools in this pipeline are free, open source, and available on GitHub, PyPI, npm, and Conda-forge:

Acknowledgements

This work was conducted at QuantStack as part of an effort to make 3D modeling and robotics accessible directly in web-native environments.

Special thanks go to everyone in the open-source community who made this possible, to Isabel Paredes, the creator and maintainer of the jupyterlab-urdf extension, to Le Duc Trung and Martin Renou, the main contributors to JupyterCAD, and to everyone else at QuantStack who helped with this project.


About the Author

Yahia Heni is a software engineer at QuantStack, focusing on the Jupyter Ecosystem, by contributing to Jupyter and several of its extensions, as well as notebook.link and other related open-source projects.