Complete setup instructions for running IRIS locally or on a cluster.
- Python 3.11+
- uv package manager
- GPU server with CUDA support (for inference)
git clone https://github.com/EPFL-AI-Team/IRIS
cd IRIS
uv syncThe system requires two processes: a server (GPU) and a client (camera/web interface).
uv run iris-serverServer runs on http://localhost:8005 by default.
uv run iris-clientWeb interface available at http://localhost:8006
The idea of this setup is to ensure the Pi can communicate to the cluster, if the server script is running there.
For HTTPS streaming from Raspberry Pi:
mkdir -p ~/iris-certs
cd ~/iris-certs
openssl req -x509 -newkey rsa:4096 -nodes \
-keyout key.pem -out cert.pem -days 365 \
-subj "/C=US/ST=State/L=City/O=Organization/CN=$(hostname -I | awk '{print $1}')"In config.yaml, set:
client:
web:
use_ssl: true
cert_dir: "~/iris-certs"uv run iris-clientConnect via https://<raspberry-pi-ip>:8006
Two config files are provided in the configs/ directory:
configs/config.yaml- Local/Mac developmentconfigs/config.rcp.yaml- EPFL cluster deployment
Using arguments with the scripts you're running, you can specify which config you want to use. By default, the usual configs/config.yaml is used.
Key settings:
server.model_id- Model checkpoint pathserver.vlm_hardware- Hardware profile (mac,v100,a100)server.batch_inference.enabled- Enable batch processing
See Configuration Reference for all options.
For running on EPFL clusters (Izar/RCP), see Cluster Setup Guide.