Introduction

IvoryOS is an open-source orchestration platform and runtime for self-driving laboratories and scientific automation.

IvoryOS turns existing Python automation code into an interactive control panel, a drag-and-drop workflow designer, an execution runtime, and an optimization-ready experimentation interface.

The Python modules can be hardware APIs, high-level functions, or experiment workflows. With minimal changes to an existing workflow, users can design, manage, execute, and monitor experimental plans.

Core concepts

IvoryOS is built around a simple flow:

Python device drivers / APIs
            |
            v
     Dynamic introspection
            |
            v
    Auto-generated UI controls
            |
            v
 Visual workflow composition
            |
            v
      Workflow runtime
            |
            v
 Execution records, logs, and optimization

For users, this means the UI is generated from the Python platform that is currently running. New device methods and workflow functions can appear as controls and workflow actions without a hand-written frontend page.

IvoryOS supports both fully automated and human-in-the-loop operation. A workflow can run unattended, pause for manual intervention, retry a failed step, or wait for approval before continuing.

SDL workflow execution

Most autonomous workflows need customized iteration options. There is also a common need for pre-experiment and post-experiment steps. IvoryOS includes three built-in workflow phases:

  1. Preparation: execute once before the main experiment.

  2. Experiment: execute the main workflow multiple times based on the current configuration.

  3. Clean up: execute once after the main experiment.

Execution options

Parameter Type

Output Type: Any

Output Type: Numerical

Constant

Define repeat times

Define repeat times

Configurable

Configure parameters

Configure optimizer parameters

  1. Repeat is available only for workflows without configurable dynamic parameters.

  2. Parameters is available for workflows with configurable dynamic parameters.

  3. Optimizer is available only for workflows with configurable dynamic parameters and numerical outputs.

IvoryOS output files

When you run the application for the first time, IvoryOS creates the following folders and files in the working directory:

  • ivoryos_data/: main directory for application-related data.

  • ivoryos_data/config_csv/: iteration configuration files in CSV format.

  • ivoryos_data/llm_output/: raw prompts generated for the large language model.

  • ivoryos_data/pseudo_deck/: generated interface schema .pkl files.

  • ivoryos_data/results/: workflow execution results.

  • ivoryos_data/scripts/: Python scripts compiled from visual workflows.

  • default.log: application log file.

  • ivoryos.db: local application database.

ivoryos_data/
|-- config_csv/
|   |-- example_config.csv
|   `-- example_config_empty.csv
|-- llm_output/
|   `-- prompt.txt
|-- pseudo_deck/
|   `-- abstract_sdl.pkl
|-- results/
|   `-- example_2024-08-23 23-22.csv
|-- scripts/
|   |-- example.json
|   `-- example.py
|-- default.log
`-- ivoryos.db