Skip to main content

Jupyter for CadQuery / build123d

The Python package provides a Jupyterlab extension and a JupyterServer extension to view CadQuery, build123d, and OCP objects in JupyterLab

Current version: v5.2.0 (xx.xx.xx)

The full documentation lives at bernhard-42.github.io/ocp_viewer_docs — the Jupyter CadQuery chapter covers this viewer's specifics; this README gets you installed and running, and links into the rest.

Overview

Click on the "launch binder" icon to start Jupyter-CadQuery on binder:

Binder: Latest development version (Due to security restrictions, the measurement feature does not work on binder)

Installation

Note: JupyterLab 4.6.3 currently does not work with tornado 6.5.9, see here. Ensure to use tornado 6.5.8 for JupyterLab 4.6.3, e.g. pip install "tornado==6.5.8".

  • CadQuery

    1. Create and activate a virtual conda environment

      mamba create -n jcq python=3.12
      mamba activate jcq
      
    2. Install latest cadquery master

      mamba install -c conda-forge -c cadquery cadquery=master
      
    3. Install Jupyter CadQuery

      pip install jupyter-cadquery
      
  • build123d

    1. Create and activate a virtual environment (conda, pyenv-virtualenv, uv, ...)

    2. Install build123d

      pip install build123d
      
    3. Install Jupyter CadQuery

      pip install jupyter-cadquery
      

Jupyter CadQuery requires JupyterLab 4 (jupyterlab>=4.6.2,<5) and installs it if it is missing. The JupyterLab extension is prebuilt and ships inside the cad-viewer-widget dependency: no jupyter labextension step, no Node.js.

Known issue: ipykernel 7.x can stall a running notebook (a cell stays at [*] with an idle kernel). Until the ipykernel release that carries the fix, install pip install "ipykernel<7" — details and the workaround in Troubleshooting.

Verify the installation

jupyter lab extension list        # must list:  jupyter_cadquery 5.2.0 OK   (the viewer frontend)
jupyter server extension list     # must list:  jupyter_cadquery 5.2.0 OK   (the measurement backend)

A line "Extension package jupyter_cadquery took N s to import" is OCP and VTK loading, not an error. On a Mac the very first run can take minutes for the same reason.

Changed behavior from 4.x

  • The complete sidecar space will now be used for the viewer. For the old behaviour set cad_width and height
  • The default for show is reset_camera=Camera.KEEP now (unless set in ~/.jcq_config differently).
    • The viewer warns if the new object is too large or too small. To disable the warnings, use ignore_camera_warnings()
    • The old behavior can be achieved with set_defaults(reset_camera=Camera.RESET)
  • from jupyter_cadquery import * still works. For portable code with other viewers from the ocp viewer ecosystem use from ocp_viewer_core.viewer import *
  • mate_scale does not work any more, use helper_scale
  • The viewer now remembers paths in the tree that are shown/hidden and will show/hide the same paths for the newly shown CAD object

For all new features and fixes see CHANGELOG

First run

jupyter lab

and in a notebook:

from build123d import *
from jupyter_cadquery import *

open_viewer("CAD")
show(Box(1, 2, 3))

open_viewer puts the viewer into a sidecar panel next to the notebook; without it, show draws into the cell. From here on, everything is in the documentation.

Documentation

The full documentation lives at bernhard-42.github.io/ocp_viewer_docs — the Jupyter CadQuery chapter covers this viewer's specifics; everything below is a deep link into it.

Getting started

Working in the notebook

Working with the viewer

Python show* commands

Python API reference

Help

Demo Notebooks

Standard examples

Animated examples (requires pip install cadquery-massembly matplotlib):

Changes

see CHANGELOG.md

Licence

Apache-2.0.

Metadata

Release files for jupyter-cadquery 5.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter-cadquery 5.2.0
File Size Uploaded
jupyter_cadquery-5.2.0.tar.gz 975.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyter-cadquery 5.2.0
File Interpreter ABI Platform
jupyter_cadquery-5.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / jupyter_cadquery-5.2.0.tar.gz

Download URL jupyter_cadquery-5.2.0.tar.gz
Size 975.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c737c99e0bf0444e39655b574505f039eeee8a183de69e75bf91643e6a6ca450
BLAKE2b-256 checksum
How to use checksums
1e9a75594b5aefafc93e652f1e6eb3cafed1f08697e05c46f8f9dab0879643da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / jupyter_cadquery-5.2.0-py3-none-any.whl

Download URL jupyter_cadquery-5.2.0-py3-none-any.whl
Size 81.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
197e45710443cd52d92c345f889e236a050904373af534e2dcc12f657125e349
BLAKE2b-256 checksum
How to use checksums
636c3630f56d3ea2d7c68765e35bf93bf9a118f1975abbd805ea8f8eb8ef4841
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

5.2.0 This release

2 release files

5.1.0

2 release files

4.0.2

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page