Talk IndiaFOSS 2025

Collaborative CAD & GIS in JupyterLab

Collaborative CAD & GIS in JupyterLab

Session Description

Introduction

While JupyterLab has become a cornerstone of scientific computing and data science workflows, its potential for handling complex spatial operations—like 3D CAD modeling or GIS-based geospatial analysis—has remained largely unexplored. Traditionally, these domains require heavy desktop software, steep learning curves, and domain-specific toolchains. 

This talk introduces a new paradigm: performing collaborative, reproducible CAD and spatial computing entirely in the browser using JupyterLab extensions powered by modern WebAssembly-based tooling.

Technical Overview: JupyterCAD and JupyterGIS

JupyterCAD and JupyterGIS are browser-native extensions to the Jupyter ecosystem that bring powerful CAD and GIS capabilities to data scientists, researchers, and engineers—all inside notebooks. This talk will focus on introducing these tools, their use cases, high-level technical aspects and how you can contribute.

JupyterCAD

JupyterCAD enables browser-native 3D modeling with a focus on parametric CAD workflows. Built on top of OpenCascade compiled to WebAssembly, it supports:

  • Sketch-based modeling and geometry editing

  • Transform controls and snapping

  • Python API to programmatically interact with models

  • Notebook integration for embedding and documenting models

  • Collaborative multi-user editing or suggesting

JupyterGIS

JupyterGIS brings GIS data visualization and symbology into JupyterLab using OpenLayers, GDAL compiled to WebAssembly, and a modular plugin system. It supports:

  • Support for Local & cloud based Vector & raster layers

  • Graduated, categorized, single-band, multi-band styling custom symbology

  • Interactive layer management UI

  • Notebook integration for embedding GIS workflows and Python API support

  • Fully client-side geospatial analysis pipelines

Web Technologies Behind the Scenes

Both projects rely heavily on modern web technologies:

  • WebAssembly (WASM) to run native CAD/GIS engines i.e. OpenCascade and GDAL inside the browser natively

  • Jupyter’s collaborative document model (using Pycrdt & Y.js) to enable real-time collaborative editing

  • Modular command architecture for extensibility and custom workflows

The talk will be concluded by brief demonstrations of both JupyterCAD & JupyterGIS