Welcome to plenoptic tutorial, CSHL Computational Vision Course 2026#
This site hosts an introductory notebook and several exercises that serve as follow-ups for the plenoptic presentation at the CSHL Computational Vision Course, 2026. Their goal is to introduce the basics of using plenoptic in order to better understand computational visual models with simple examples. We hope to explain not just plenoptic’s syntax but also the type of reasoning that it facilitates.
The introductory presentation can be found here.
You are encouraged to follow the setup instructions found on this page, in order to install everything on your laptop and create local copies of the notebooks in the notebooks/ folder. You can then walk through the tutorial notebook; I recommend opening up notebooks/introduction-users.ipynb on your laptop and typing the code into the cells as you read through that notebook, to practice using plenoptic’s syntax (you will also have a local copy of the notebook with all the code and text explaining what’s happening in notebooks/introduction.ipynb if you’re impatient). After going through the tutorial notebook, I recommend trying to work through the exercises, which are linked in the sidebar and are the other ipynb files in the notebooks/ directory.
You may also find the Glossary useful.
Setup#
Note
If you would just like to install plenoptic to use it locally, follow our installation instructions. This tutorial contains some extra packages for this specific build.
Make sure you have
gitinstalled. It is installed by default on most Mac and Linux machines, but you may need to install it if you are on Windows. These instructions should help.Clone the github repo for this workshop:
git clone https://github.com/plenoptic-org/plenoptic-cshl-vision-2026.git
There are many ways to set up a python virtual environment. You can use your favorite way of doing so, installing all dependencies for these notebooks with pip install . (note the .!) from the root directory of this package, and then run jupyter lab to open up jupyter.
If you don’t have a preference or don’t know what to do, we recommend using uv:
Install uv by running:
curl -LsSf https://astral.sh/uv/install.sh | sh
Restart your terminal to make sure
uvis available.Install python 3.12:
uv python install 3.12
Navigate to your cloned repo and run
uv sync, which creates the virtual environment and installs all dependencies:cd plenoptic-cshl-vision-2026 uv sync -p 3.12
Open up powershell, then:
Install uv:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Restart
powershelland make sureuvis available.Install python 3.12:
uv python install 3.12
Navigate to your cloned repo and run
uv sync, which creates the virtual environment and installs all dependencies:cd plenoptic-cshl-vision-2026 uv sync -p 3.12
Warning
You may receive an error saying “running scripts is disabled on this system”. If so, run
Set-ExecutionPolicy -Scope CurrentUserand enterUnrestricted, then pressY.You may have to do this every time you open powershell.
Run our setup script to prepare the notebooks:
uv run python scripts/setup.py
Confirm the installation and setup completed correctly by running:
uv run python scripts/check_setup.py
If check_setup.py tells you setup was successful, then you’re good to go.
After doing the above, the notebooks/ directories within your local copy of the plenoptic-cshl-vision-2026 repository will contain jupyter notebooks for you to work through. To open them, start jupyter lab from the root directory of this repo:
cd path/to/plenoptic-cshl-vision-2026
uv run jupyter lab
cd path\to\plenoptic-cshl-vision-2026
uv run jupyter lab
Important
You will also need ffmpeg installed in order to view the videos in the notebook. This is likely installed on your system already if you are on Linux or Mac (run ffmpeg in your command line to check). If not, see their install instructions.
Troubleshooting#
If you are on Mac and get an error related to
ruamel.yaml(orclang) when runningpip install -e ., we think this can be fixed by updating your Xcode Command Line Tools.On Windows, you may receive an error saying “running scripts is disabled on this system” when trying to activate the virtual environment. If so, run
Set-ExecutionPolicy -Scope CurrentUserand enterUnrestricted, then pressY. (You may have to do this every time you open powershell.)If you have multiple jupyter installs on your path (because e.g., because you have an existing jupyter installation in a conda environment and you then used
uvto setup the virtual environment for this workshop), jupyter can get confused. (You can check if this is the case by runningwhich -a jupyteron Mac / Linux.) To avoid this problem, either make sure you only have one virtual environment active (e.g., by runningconda deactivate) or prependJUPYTER_DATA_DIR=$(realpath ..)/.venv/share/jupyter/to your jupyter command above:JUPYTER_DATA_DIR=$(realpath .)/.venv/share/jupyter/ uv run jupyter lab
(On Windows, replace
$(realpath .)with the path to theccn-software-jan-2025directory.)We have noticed jupyter notebooks behaving a bit odd in Safari — if you are running/editing jupyter in Safari and the behavior seems off (scrolling not smooth, lag between creation and display of cells), try a different browser. We’ve had better luck with Firefox or using the arrow keys to navigate between cells.
If you see
sys:1: DeprecationWarning: Call to deprecated function (or staticmethod) _destroy.when runningpython scripts/setup.py, we don’t think this is actually a problem. As long ascheck_setup.pysays everything looks good, you’re fine!
Contents#
See description above for an explanation of the difference between these two notebooks.
Tutorial