Autonomous Lab Setup
Open source
$pip install ivoryos

Orchestrate an autonomous lab in minutes.

IvoryOS is open-source orchestration software. It discovers your instruments and brings workflows and autonomous runs into one interface.

Trusted by

UBC Logo
Telescope Innovations Logo
Acceleration Consortium Logo
NIMS Logo
Pfizer Logo
KPBMA Logo

How it works

Instant setup. The interface keeps up.

IvoryOS reads the instruments already in your Python. Add one, or swap one for different hardware, and the controls update with it.

main.py
import ivoryos
pump = Pump()
balance = Balance("COM4")
# discover lab capabilities
ivoryos.run(__name__)
Discovered
pump.set_flow_ratepump.startbalance.readbalance.tare

Two instruments in the namespace.

Less code to manage

No registry, no decorators, no interface code.

Hand off without retraining

Changes ship without an onboarding session.

One interface, every platform

Learn it once. The next setup is familiar.

From idea to experiment in minutes.

Design a workflow, run it, and trace every result back to the step that produced it. IvoryOS generates all of it automatically, straight from your drivers.

your-lab.local:8000/designer
Solubility screen
3 instruments · connected
pumpSet flow rate
pumpStart
balanceRead weight

Build protocols visually

Drag and drop instrument actions onto a canvas to construct multi-step workflows. Add logic, loops, and conditions without writing any orchestration code.

Shaped like an experiment

Prep, main, cleanup, with iteration built in.

Optimizers you can watch run

Ax, BayBE, NIMO, or your own.

Custom plugins

Your own visualizations and control panels.

Networked instruments

Coordinate whole labs across the network.

Why IvoryOS?

Set up in minutes. No training session.

For the engineer
Under 5 min
to have an operating system
I can focus on making the platform more robust, without worrying about breaking the interface.
For the scientist
About 30 min
to train a scientist
It took me 20 minutes to build brand new experiment — I have never understood a platform and been able to use it that fast.

Without IvoryOS

The engineer

A UI of your own to build, and to rebuild every time the hardware changes.

The scientist

Someone has to sit with them and walk through a one-off interface.

Automation Hub

Your whole setup, before anything is installed.

Build My Lab
01

Select from open source

350+ instruments, read straight out of the open-source packages the community already publishes. Not there yet? Ask for it and we will add the driver.

PyLabRobotPyMeasurePyExpLabSysCustom Python drivers
Browse instruments
Picking instruments in the Automation Hub
Configure in the browser. Run on your bench.
02

Design the workflow

Build against real driver signatures. No installation required.

Open the Designer
ivoryos.ai/designer
ot2.aspirate()from schema
resources*list[Well]
plate_1.wells
vols*list[float]
100.0
flow_ratesfloat | None
float | None
offsetsCoordinate | None
Coordinate | None
generated
def experiment(): ot2.aspirate(resources=plate_1.wells, vols=100.0) ot2.dispense(resources=plate_2.wells, vols=100.0)
03

One click to local setup

Download the generated setup and run the same workflow on real hardware.

ivoryos-setup.shgenerated
$ uv venv --python 3.10 .venv
$ uv pip install ivoryos
$ uv pip install pylabrobot
$ uv pip install opentrons
$ python main.py
interface running on localhost:8000

Build with the IvoryOS community

Setup help, shared integrations, and an open-source project you can contribute to.

Supported by

UBC Logo
Hein Lab Logo
Telescope Innovations Logo
Acceleration Consortium Logo
Merck Logo
Creative Destruction Lab Logo
Innovation UBC Logo
New Ventures BC Logo
IvoryOS | Self-Driving Lab in One Line