Skip to content

Latest commit

 

History

History
133 lines (97 loc) · 4.7 KB

File metadata and controls

133 lines (97 loc) · 4.7 KB
GLIDER logo

GLIDER

General Laboratory Interface for Design, Experimentation, and Recording

Build, run, and record reproducible experiments without writing code.

Documentation License: MIT Python Platform Status

Documentation · Quick start · Contributing


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.

The GLIDER Builder, a visual node-graph editor

The Builder: design an experiment as a visual node graph, then press Start.

Prerequisites

  1. 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
  2. FFmpeg (for video recording)
    • Windows: winget install "FFmpeg (Essentials Build)"
    • macOS: brew install ffmpeg
    • Linux/Raspberry Pi: sudo apt install ffmpeg

GLIDER requires Python 3.11–3.13 (3.14+ is not supported).

Quick start

Windows / macOS / Linux

git clone https://github.com/LaingLab/GLIDER.git
cd GLIDER
uv venv
uv sync --extra pc
uv run glider

Raspberry Pi

PyQt6 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 glider

Optional extras

Add 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

Documentation

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

Development

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 .

Citation

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}
}

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for development setup, coding standards, and the review process.

License

Released under the MIT License.