General Laboratory Interface for Design, Experimentation, and Recording
Build, run, and record reproducible experiments without writing code.
GLIDER is a desktop application for building, running, and recording laboratory experiments. You wire together a visual node graph that controls hardware (Arduino, Raspberry Pi, Bluetooth), reads sensors, records synchronized video and data, and drives an experiment from start to finish. Experiments files are portable, and can run on Windows, macOS, and Linux.
- uv: manages the virtual environment and Python for you
- Windows:
winget install astral-sh.uv - macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
- FFmpeg (for video recording)
- Windows:
winget install "FFmpeg (Essentials Build)" - macOS:
brew install ffmpeg - Linux/Raspberry Pi:
sudo apt install ffmpeg
- Windows:
GLIDER requires Python 3.11–3.13 (3.14+ is not supported).
git clone https://github.com/LaingLab/GLIDER.git
cd GLIDER
uv venv
uv sync --extra pc
uv run gliderPyQt6 comes from apt on the Pi (it is intentionally not a core dependency), so the venv must be created with access to system packages:
sudo apt install python3-pyqt6
git clone https://github.com/LaingLab/GLIDER.git
cd GLIDER
uv venv --system-site-packages
uv sync --extra rpi --extra i2c
uv run gliderAdd any of these to the sync command with additional --extra flags,
e.g. uv sync --extra pc --extra vision:
| Extra | What it adds |
|---|---|
pc |
PyQt6 + audio — the standard desktop install |
rpi |
Raspberry Pi GPIO (gpiozero, lgpio) |
vision |
YOLO tracking (ultralytics) |
audio |
Audio recording/playback |
i2c |
I2C devices (ADS1x15, smbus2) — Linux/Pi only at runtime |
behavior |
Behavior analysis (UMAP, HDBSCAN, scikit-learn, LightGBM) |
dev |
Test/lint tooling plus the full pc+vision+i2c+behavior stack |
Full guides live at lainglab.github.io/GLIDER:
| Guide | What it covers |
|---|---|
| Getting Started | Install GLIDER and build your first experiment |
| Building Experiments | The node graph, wiring devices, packaging routines |
| Camera & Behavior | Cameras, synchronized recording, tracking, analysis |
| Runner Mode | Operating experiments from a touchscreen or Pi kiosk |
uv sync --extra dev
# Tests (Qt needs a virtual display when headless)
QT_QPA_PLATFORM=offscreen uv run pytest tests/
# Lint & format
uv run ruff check .
uv run black .If you use GLIDER in your research, please cite it:
@software{glider,
title = {GLIDER: General Laboratory Interface for Design, Experimentation, and Recording},
author = {Laing Lab},
year = {2026},
url = {https://github.com/LaingLab/GLIDER}
}Issues and pull requests are welcome. See CONTRIBUTING.md for development setup, coding standards, and the review process.
Released under the MIT License.
