EOS is a comprehensive software framework and runtime for laboratory automation, designed to serve as the foundation for one or more automated or self-driving labs (SDLs).
EOS provides:
- A common framework to implement laboratory automation
- A plugin system for defining labs, devices, experiments, tasks, and optimizers
- A package system for sharing and reusing code and resources across the community
- Extensive static and dynamic validation of experiments, task parameters, and more
- A runtime for executing tasks, experiments, and experiment campaigns
- A central authoritative orchestrator that can communicate with and control multiple devices
- Distributed task execution and optimization using the Ray framework
- Built-in Bayesian experiment parameter optimization
- Optimized task scheduling
- Device and sample container allocation system to prevent conflicts
- Result aggregation such as automatic output file storage
Documentation is available at https://unc-robotics.github.io/eos/.
EOS should be installed on a central laboratory computer that is easily accessible.
EOS requires PostgreSQL and MinIO for data and file storage. These can be run with Docker Compose.
-
Install uv
- Linux/Mac
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Linux/Mac
-
Install EOS
git clone https://github.com/UNC-Robotics/eos cd eos uv venv source .venv/bin/activate uv sync
-
Configure EOS
cp .env.example .env cp config.example.yml config.yml
Edit both
.env
andconfig.yml
and provide values for missing fields -
Launch External Services
docker compose up -d
-
Start EOS
eos start