Hands-on activities exploring single-photon imaging with SPAD (Single Photon Avalanche Diode) sensors.
Create a Python virtual environment and install the dependencies. For this we recommend using uv, but feel free to use your tool of choice.
If you need to install UV, see the official instructions here.
# Create a virtual environment and install dependencies
uv venv
uv pip install -r requirements.txtNote: This creates a virtual environment in
.venv/. Useuv run python ...oruv run jupyter labto run commands inside the environment, or activate the environment withsource .venv/bin/activate(or.venv\Scripts\activatefor windows).
You'll also need to install ffmpeg. You can download an executable from here or use your package manager to install it.
Part 1: Passive Imaging (details)
Explore passive SPAD imaging through two Jupyter notebook activities:
- High Dynamic Range Imaging — Recover scene flux from binary SPAD frames and apply tonemapping.
- Motion Projections — Use motion sweeps on photon cubes to visualize moving objects.
Part 2: Active Imaging (details)
Use an AMS TMF8820 time-of-flight sensor with its built-in laser:
- Activity 1 — Recreate transient histograms with different characteristics.
- Activity 2 — Identify the laser and SPAD sensor cavities on the hardware.
- Activity 3 — Implement your own distance estimation algorithm.