Skip to content

The Experiment Orchestration System (EOS) is a comprehensive software framework and runtime for laboratory automation.

License

Notifications You must be signed in to change notification settings

UNC-Robotics/eos

Repository files navigation

Alt Text

The Experiment Orchestration System (EOS)

Foundation for laboratory automation

python Docs license

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/.

Installation

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.

  1. 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"
  2. Install EOS

    git clone https://github.com/UNC-Robotics/eos
    cd eos
    uv venv
    source .venv/bin/activate
    uv sync
  3. Configure EOS

    cp .env.example .env
    cp config.example.yml config.yml

    Edit both .env and config.yml and provide values for missing fields

  4. Launch External Services

    docker compose up -d
  5. Start EOS

    eos start

About

The Experiment Orchestration System (EOS) is a comprehensive software framework and runtime for laboratory automation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published