Cross-platform control application for REACHER operant behavior experiments, with a browser interface and a terminal interface over the same rigs.
Written by: Joshua Boquiren
Labrynth is the application a researcher opens to run an operant behavior session. From one window it pairs with one or more REACHER machines — the rig at the bench and others across the lab network — uploads the paradigm firmware to each chamber, and configures the hardware for that run: levers and their reinforcement schedules, audio cues, infusion pumps, optogenetic laser, lick circuit, and microscope triggers.
Fixed-ratio, progressive-ratio, variable-interval, omission, and Pavlovian paradigms are set up from the same panels, with saved presets for the standard self-administration and extinction protocols. A running session streams live — infusions, lever presses, trial counts, and elapsed time update as they happen — and exports with its notes and full behavioral record for downstream analysis. The same control is available from a terminal interface for display-less hosts, such as a rig-mounted Raspberry Pi.
Prebuilt installers are attached to the latest release.
| Platform | Download |
|---|---|
| Windows | .exe |
| macOS | .dmg |
| Linux | .deb / .AppImage |
Installers cover normal use. To run from source instead:
git clone https://github.com/Otis-Lab-MUSC/labrynth.git
cd labrynth
pip install -e ".[cli]"Reference documentation lives in docs/; CONTRIBUTING.md covers the branching and versioning workflow, and RELEASING.md covers release channels and tagging.
| Component | Language | Framework / Libraries |
|---|---|---|
| Web interface | TypeScript | React 19, Zustand, Vite, Tailwind CSS, lucide-react |
| Terminal CLI | Python 3.10+ | prompt_toolkit, httpx, websockets |
| Application shell & packaging | Python 3.10+ | PyInstaller |
| Experiment backend | Python 3.10+ | reacher (reacher2p), which also ships the Arduino firmware |
This project is licensed under the MIT License. See LICENSE for details.
Joshua Boquiren — thejoshbq@proton.me