Jupyter Notebook
Last updated: July 21, 2026
Install the Jupyter notebook app on your NOVA instance, open interactive notebooks, and prototype robot motions with the Python SDK.
Jupyter notebooks are interactive documents that combine executable Python code with rich text documentation. This makes it straightforward when it comes to describing what you are doing, adding screenshots, and executing code in one place.
Running the NOVA SDK notebook locally while iterating on your app.
Prerequisites
- You completed the Wandelbots NOVA quickstart guide and have a NOVA cloud instance running including a robot. The local development setup will interact with this instance.
- You completed the local development setup: the NOVA CLI is installed and you created a project from the Python template. You won’t deploy an app in this tutorial, but you still need the project in which you will use the Jupyter notebook.
Install Jupyter notebook
Run the following command in terminal to add necessary python packages to your project.
uv add ipykernel
Create a notebook
Now, in any folder in your project you can create a file with .ipynb extention and visual studio code will see this as a Jupyter Notebook app.
Go ahead and create a file named: my_notebook.ipynb
Explore the notebook interface
- Click
+ Markdownto add documentation blocks and+ Codeto insert executable Python cells. - Press
Shift + Enterto run the active cell. The output appears directly underneath so you can see results immediately.
Run some example python code
Create a short Markdown cell to describe what the notebook does, then add a code cell underneath to print a confirmation message. This pattern keeps intent next to execution.
# My first Jupyter experiment
In the next cell I print a message to confirm the notebook runs code.
message = "Hello from Jupyter!"
print(message)
Connect to NOVA
Now eveything is ready to start writing some Python SDK code. Let’s start by connecting to NOVA.
from nova import Nova
nova = Nova()
await nova.connect()
List all controllers
Let’s list all the robot controllers available in your cell.
cell = nova.cell()
controllers = await cell.controllers()
for controller in controllers:
print(controller.id)
Let’s plan a motion
Let’s use a motion group and plan some robot movements.
from nova.actions import ptp
motion_group = controllers[0].motion_group(motion_group_id="@ur10e")
actions = [
ptp((724.3, -11, 564.8, -3.1414, -0.0003, 0.001)),
]
joint_trajectory = await motion_group.plan(actions, "Flange")
print(joint_trajectory)
Congratulations 🎉
You have now finished this tutorial. Go ahead and try out more with Python SDK. Check our examples. Create notebooks and share them with your colleagues.