Light sheet microscopy platform built on rigup.
Warning
Under active development. APIs, configuration schemas, and documentation are evolving.
Requires uv and bun (for the web frontend).
uv sync --all-packages --all-extrascd web/ui && bun install && bun run build && cd ../..
uv run vxlOpen http://localhost:8000. For frontend development with hot reload:
cd web/ui && bun run dev # Vite dev server
bun check # Type checkinguv run vxl-qt # Optionally: uv run vxl-qt config.yamlThe core package that models a light sheet microscope as a coordinated rig of devices.
- Rig — manages cameras, lasers, DAQs, stages, AOTFs, and filter wheels. Can run locally or distributed across networked nodes. Defined entirely in YAML.
- Optical layout — detection and illumination paths describe the physical light paths. Channels pair a detection path with an illumination path and set filter positions.
- Profiles — group channels with DAQ waveform timing for synchronized multi-channel acquisition.
- Sessions — manage an experiment end-to-end: tile grid planning, per-stack Z ranges, and acquisition execution. Persisted to disk as
.voxel.yamlso they survive restarts. - Device handles — typed async APIs for each device class (camera, laser, stage, etc.). Work identically whether the device is local or remote.
Example configs are in src/vxl/_configs/ — start with simulated.local.rig.yaml to explore without hardware.
| Package | Description |
|---|---|
| vxl | Microscope orchestration, acquisition, and configuration |
| vxl-drivers | Hardware drivers (NI DAQ, ASI stages, Vieworks/Hamamatsu/Ximea cameras, AA Opto AOTFs) |
| vxl-web | Web interface (FastAPI + SvelteKit) |
| vxl-qt | Desktop interface (PySide6) |
| rigup | Distributed device control framework |
| vxlib | Shared types and utilities |
| omezarr | OME-Zarr streaming writer with multi-scale pyramids |
MIT - Allen Institute for Neural Dynamics
