Autonomous Lab AI · Self-Driving Materials Discovery

A robot will happily run all night on a synthesis that was doomed before it started. We built the deterministic gate that refuses it, and the audit trail that proves why.

A self-driving lab does not fail because its optimizer is weak. It fails because a large share of the experiments it runs are chemically impossible from the first line of the recipe, and because none of it is provable afterward. On this benchmark our closed Design-Make-Test-Analyze loop reaches a hard spec in 75 experiments where random screening needs about 1,491, while a digital-twin safety gate blocks every infeasible synthesis before reagents or robot-hours are spent, and signs every decision to a tamper-evident ALCOA+ record. Agents advise, code decides.

$4,419

Reagent waste the digital-twin gate prevented, blocking 38 doomed syntheses and saving 90.1 robot-hours

Seed-411 benchmark run, synthetic objective

20× fewer

75 experiments to a spec-meeting material versus about 1,491 for random screening on the same hidden objective

Seed-411 benchmark run, 19.9 times fewer

113

Hash-chained ALCOA+ records, one per decision, tamper-evident. Edit one and the chain breaks

Seed-411 benchmark run, 75 syntheses plus 38 blocks

A runnable demo of the mechanism on an 18-dimension lead-free perovskite composition and process search. The optimizer and the safety gate run entirely in numpy and scipy with no API key; the two advisor agents are the only part that can call a model.

Most of a self-driving lab's budget is spent proving what chemistry already ruled out

The bottleneck is not the surrogate model. It is the doomed experiments the model never should have proposed, and the fact that none of it is provable later.

Berkeley's A-Lab reported a 71 percent success rate, which means roughly 29 percent of its attempts did not yield the target (A-Lab, Nature, 2023). In a lab that runs itself, that failure share is not just lost yield. It is reagents dispensed, robot-hours booked, and instrument time burned on syntheses that were charge-imbalanced, geometrically unstable, or chemically hazardous before the robot ever moved.

The search space makes it worse. A perovskite composition and process space this size is astronomically larger than any screening budget, so pure screening is not a strategy, it is a lottery. A separate feasibility probe on this benchmark found a 0.01 percent random hit rate, 8 candidates in 80,000, which implies on the order of 10,000 experiments expected to reach a first target by screening alone. A better acquisition function helps with that half of the problem.

It does nothing for the other half. A property model, however good, cannot decide whether a synthesis is safe to attempt, and cannot produce a record that a regulator or your own QA will accept. The FDA and EMA guiding principles for AI in drug development are explicit that provenance must be attributable and contemporaneous (FDA/EMA, 2026). Feasibility and auditability are exactly the parts the model does not touch, and they are the two gaps we set out to close.

A closed loop proposes; a deterministic gate outside the agents decides what is allowed to run

One Design-Make-Test-Analyze cycle, shown a stage at a time. The feasibility decision lives in plain code, never in a model.

The loop searches an 18-dimension lead-free perovskite space: Cs, MA, and FA cation ratios, Sn, Ge, and Bi B-site substitution, I, Br, and Cl halide ratios, plus process variables. A Gaussian-process surrogate with a target-directed, ParEGO-style acquisition proposes the next candidate, cold-started from a 60-record historical fixture. Every proposal then passes through the gate before anything is synthesised, so the gate, not the optimizer's confidence, is what stands between a recipe and the robot.

GP surrogate (propose) → digital-twin gate (feasible or blocked, pure code) → synthesise and characterise, SiLA-2-shaped (simulated) → analyse and update surrogate → ALCOA+ record (hash-chained). Lab Director and Critic agents narrate and flag drift alongside, never deciding.

The deterministic trust core

The digital-twin gate is the part outside any language model. Every proposed candidate is checked against five real, published chemistry rules before it can consume a reagent, and the gate returns feasible or blocked with the exact rule violated and the reagent budget and robot-hours avoided. It is plain numpy and scipy code, it sits outside the agents and the surrogate, and it is the load-bearing decision. A doomed recipe is stopped here, not discovered after the robot has already run it.

The agents, bounded to advice

On top of the core, two agents read and communicate. A Lab Director narrates campaign strategy, and a Critic independently flags drift or stall, a verifier in the loop. They are provider-swappable through an LLM_PROVIDER setting and default to claude-opus-4-8; with no key they fall back to deterministic narration so the demo always runs. The optimizer and the gate never depend on the LLM. Agents advise, code decides.

The five feasibility checks the gate enforces

Check What it catches Basis
Goldschmidt tolerance factor Composition outside the perovskite formability window; the gate uses a 0.78 to 1.05 screening band. Perovskite crystal chemistry
Octahedral factor Radius ratio outside the stable-octahedra window of 0.41 to 0.90. Perovskite crystal chemistry
Charge neutrality Uncompensated B-site charge, for example from Bi(III) substitution. Ionic charge balance
Sn(II) oxidation hazard Sn(II) that oxidises in humid air, unsafe and doomed at process humidity. Tin-halide stability
Decomposition ceiling Annealing above the temperature where MA and FA cations degrade, about 190 degrees Celsius. Precursor thermal stability

The durable value is the safety gate and the audit trail, not a better surrogate. Even a perfect property model still cannot stop a charge-imbalanced or oxidation-hazard synthesis from running, and cannot produce a record a regulator will accept. The optimizer is one swappable component inside that control layer, which is why the approach does not age out as models improve. As shipped the optimizer is a numpy and scipy GP with target-directed acquisition; the production swap is BoTorch and Ax.

The run, on screen

Every number below is from a single deterministic benchmark campaign (seed 411), computed live at runtime, not hard-coded. The objective is a physically-motivated synthetic benchmark, not real DFT or lab data, and the lab is a simulator behind a SiLA-2-shaped interface. Nothing here was physically synthesised.

The scoreboard: what the loop spent, and what it saved

The closed loop reaches the target spec at experiment 75, using 19.9 times fewer experiments than the roughly 1,491 random screening would expect on the identical hidden objective. Alongside it the scoreboard tracks the numbers that matter more than the speed: 4,419 US dollars of reagent waste prevented, 90 robot-hours saved, and 38 infeasible candidates blocked before synthesis, with spec status reading spec met. The efficiency is real, but the waste prevented and the provenance are the parts that hold at any model quality.

The live scoreboard showing 75 experiments run, 19.9 times fewer than random screening's roughly 1,491, 4,419 US dollars of waste prevented by the digital twin, 90 robot-hours saved, 38 infeasible blocked before synthesis, and spec status spec met at experiment 75.
The scoreboard: 75 experiments, 19.9 times fewer than random, $4,419 and 90 robot-hours saved, 38 infeasible blocked, spec met at experiment 75.

The differentiator: a doomed recipe stopped before it reached the robot

Here is one block in detail. A proposed candidate carries a Sn(II) oxidation hazard at process humidity, and its predicted bandgap, phase stability, and decomposition are all outside the target. The gate refuses it before synthesis, saving 105 US dollars of reagent and 2.33 robot-hours, and writes the refusal as a hash-chained ALCOA+ record. The optimizer never gets to spend a robot-hour finding out what deterministic chemistry already knew.

A blocked candidate detail panel reading blocked before synthesis, with predicted bandgap, phase stability, and decomposition all marked outside target, a Sn(II) oxidation hazard at process humidity as the reason, 105 US dollars of reagent and 2.33 robot-hours saved, and a hash-chained ALCOA+ receipt for record 111.
A single block: predicted properties outside target, a Sn(II) oxidation hazard named, and $105 plus 2.33 robot-hours saved before synthesis.

Thirty-eight blocks, each naming its chemistry

The single block is not a lucky catch, it is the pattern. Across the run the gate blocked 38 infeasible candidates before synthesis, and each one names the physics it violated, Sn(II) oxidation hazard, charge neutrality violated from an uncompensated B-site, or Goldschmidt tolerance outside the formability window, together with the dollars and robot-hours it saved. The blocks total 4,419 US dollars and 90 robot-hours of prevented waste, and zero infeasible syntheses were executed.

The full blocked-by-the-digital-twin list showing 38 infeasible candidates caught before synthesis, each row naming its violation such as Sn(II) oxidation hazard, charge neutrality violated, or Goldschmidt tolerance outside the formability window, with the dollars and robot-hours saved per candidate and 4,419 dollars and 90 robot-hours of prevented waste in total.
All 38 blocks, each with its named chemistry violation and the reagent budget and robot-hours it saved, none of them ever synthesised.

The loop steering into the target spec box

The discovery map plots each material the loop synthesised in simulation in bandgap versus phase-stability space, coloured by decomposition temperature, with a dashed box marking the target window, a bandgap of 1.2 to 1.5 eV with high stability. Early points scatter; later points cluster toward the box as the surrogate learns, and the best material lands inside it. This is the optimizer doing its job, but only on the candidates the gate allowed through.

The discovery map, a scatter of synthesised materials plotted by bandgap on the x-axis and phase stability on the y-axis coloured by decomposition temperature, with a dashed target-spec box in the upper-left region and the best material shown as a bright dot sitting inside that target window.
Bandgap versus phase stability: synthesised points steer toward the dashed target box, with the best material landing inside it.

The spec-meeting material, at experiment 75

The best material found meets every spec: composition (Cs0.46MA0.22FA0.31)(Sn0.69Ge0.31)(I0.73Br0.21Cl0.06)3, with a bandgap of 1.43 eV, a phase-stability score of 0.743, and a decomposition temperature of 250.5 degrees Celsius. To be clear about scope, this is the output of a physically-motivated synthetic objective, not a material anyone made. It is proof the loop converges, not a claim of a real discovery.

The best material found panel marked meets every spec, showing the composition (Cs0.46MA0.22FA0.31)(Sn0.69Ge0.31)(I0.73Br0.21Cl0.06)3 with a bandgap of 1.43 eV, a phase-stability score of 0.743, and a decomposition temperature of 250.5 degrees Celsius.
The spec-meeting composition at experiment 75, from a synthetic objective: bandgap 1.43 eV, stability 0.743, decomposition 250.5 degrees Celsius.

The receipt: 113 records, chain intact

Every decision, both the 75 syntheses and the 38 blocks, is written to an append-only record, 113 in all, and exported as a campaign provenance report mapped to ALCOA+ principles. Each row carries its timestamp, action, candidate, gate verdict, violations, rationale, and a SHA-256 hash chaining it to the record before it. The report reads chain intact and tamper-evident, which is the attributable and contemporaneous provenance a regulated lab has to file.

The exported campaign provenance report mapped to ALCOA+, headed campaign SDL-411 with 113 records and chain intact tamper-evident, showing a table of decisions with columns for timestamp, action of block or propose-and-synthesise, candidate, gate verdict, violations, rationale, and a hash chaining each row to the previous.
The exported ALCOA+ report: 113 hash-chained records, chain intact, one row per autonomous decision including every block.

The tamper test: edit one record and the chain visibly breaks

Tamper-evidence is only worth stating if you can watch it fire. Edit a single payload in the exported audit and the verifier reports the chain broken at that record, tamper detected, and states that the filed audit is provably altered. The point is not that the record cannot be changed, it is that a change cannot be hidden, which is what makes the trail defensible.

The ALCOA+ provenance panel after the tamper test, showing a red warning that the chain is broken at record 2, tamper detected, and that the filed audit is provably altered, next to the 113 records badge and the export controls.
The tamper test: after one record is edited, the chain breaks at that record and the altered audit is flagged as provably tampered.

Where this layer sits, and where it does not

It is the brain, safety gate, and provenance layer on your existing hardware, not a hosted lab and not a replacement for your instruments or DFT.

Concern A property model or optimizer alone This layer
Chemically impossible proposals Synthesised, then scored as failures Blocked by a deterministic gate before any reagent is spent
Why a candidate was rejected Buried in the loss, if recorded at all Named against five published chemistry rules, with dollars and hours saved
Provenance of an automated decision Ad hoc logs, editable Append-only, hash-chained ALCOA+ record, tamper-evident
Who makes the safety call An LLM, or the optimizer's own confidence Plain, deterministic code outside the agents
Sample efficiency Varies with the acquisition function 75 versus about 1,491 experiments to spec on this benchmark's hidden objective
Hardware and model lock-in Often a hosted stack Runs on your instruments via a SiLA-2-shaped interface, LLM provider swappable

What this demo does not do

  • The objective, the discovered perovskite, and every property value are a physically-motivated synthetic benchmark, not real DFT, a Materials Project pull, or lab data. Nothing was physically synthesised; the lab is a simulator behind a SiLA-2-shaped interface.
  • The 20 times fewer experiments, the 75-experiment discovery, and the 4,419 US dollars saved are this benchmark's numbers on a hidden synthetic objective, not an open-world guarantee. On a 10-seed benchmark the loop solved 9 of 10 runs, not 10 of 10, and the loop itself absorbs about 10 to 15 percent robotic failures.
  • The ALCOA+ provenance is present and mapped, not IQ, OQ, or PQ validated against your SOP. That qualification is the engagement, not a claim here.
  • There are no real instrument drivers, no real DFT or CGCNN surrogate, and no multi-instrument scheduling. Those are deferred.
  • As shipped the optimizer is a numpy and scipy GP with target-directed acquisition. BoTorch and Ax are the production swap, not the demo engine.
  • We do not run a hosted robotic lab and do not clone an existing self-driving-lab vendor. The layer is designed to sit on hardware you already own.
  • There are no real customers, named labs, testimonials, or claimed ROI. The honest frame is what we found in building this demo.

Questions buyers ask

We have already bought the robots and an ELN. What does an autonomous-lab layer actually add?

The layer is the brain, the safety gate, and the provenance record that sit on top of hardware you already own. The closed loop decides what to run next and reaches a hard spec in far fewer experiments, a deterministic digital-twin gate refuses chemically impossible or hazardous syntheses before they consume reagents and robot-hours, and every decision is written to a tamper-evident audit trail. On this benchmark the gate blocked 38 doomed syntheses and saved 4,419 US dollars and 90.1 robot-hours, and zero infeasible experiments reached the robot.

Is this a real discovery? Did you actually synthesise that perovskite?

No, and we are explicit about it. The objective is a physically-motivated synthetic benchmark, not real DFT or lab data, and the lab is a simulator behind a SiLA-2-shaped interface, so nothing here was physically made. What the demo proves is the mechanism, the loop, the deterministic safety gate, and the auditable provenance, which hold at any model quality. The discovered composition and its property values are benchmark outputs, not an experimental result.

How is a digital-twin gate different from the constraints already in our Bayesian optimizer?

An optimizer's constraints live inside the same model that is trying to hit the target, and they are only as trustworthy as that model's self-report. Our gate is separate, deterministic code that runs outside the agents and the surrogate, and it checks every proposal against five published chemistry rules: Goldschmidt tolerance, octahedral factor, charge neutrality, Sn(II) humidity oxidation, and the organic-precursor decomposition ceiling. It returns feasible or blocked with the exact rule violated and the dollars and robot-hours avoided, so a doomed recipe is stopped before the robot ever sees it.

You are running LLM agents in a lab. How do I know a hallucination will not launch a bad experiment?

Because the agents never make the call. The Lab Director and Critic agents only narrate strategy and flag drift, while the optimizer and the deterministic gate decide what runs, and neither depends on the LLM. With no API key the agents fall back to deterministic narration and the loop still runs identically. That separation, agents advise and code decides, is the whole point: trust in a self-driving lab cannot rest on a model's own account of itself.

Our audit trail has to satisfy FDA and EMA and our QA. Is this GxP-validated?

The provenance is present and mapped to ALCOA+ principles: every decision writes an append-only, hash-chained record, and editing any record visibly breaks the chain, which is the attributable, contemporaneous provenance the FDA and EMA guiding principles call for (FDA/EMA, 2026). It is not IQ, OQ, or PQ validated against your SOP, and that qualification is the engagement, not something we claim out of the box. The demo shows the record and the tamper test so you can judge the substance rather than a checkbox.

That 20 times fewer experiments number, is it cherry-picked?

It is one deterministic run, seed 411: 75 experiments to a spec-meeting material versus about 1,491 expected for random screening on the identical hidden objective, which is 19.9 times fewer. Across a 10-seed benchmark the loop averaged 67 experiments and solved 9 of 10 runs, while random screening solved 1 of 5 within 1,000 and a grid sweep never reached spec. The scope matters: these are optimizer-versus-baseline numbers on a synthetic objective, run against reproducible baselines rather than a strawman, not an open-world promise.

Does this lock us into your models, your cloud, or a hosted lab?

No. We do not run a hosted robotic lab, and the layer is designed to sit on your instruments through a SiLA-2-shaped interface. The optimizer and gate are plain numpy and scipy and run fully offline with no API key, and the LLM provider is swappable, defaulting to claude-opus-4-8. As shipped the optimizer is a GP with target-directed acquisition, and the production swap is BoTorch and Ax, on your hardware, not ours.

Technical Research

The research behind this demo — the architecture, the verification design, and the enterprise blueprint.

Put the safety gate and the audit trail where the autonomy actually earns trust

Reach the spec in fewer experiments, block the doomed ones before they run, and prove every decision later.

If your team is standing up a self-driving lab and working out how to make the feasibility call trustworthy and the provenance defensible, we would genuinely like to hear how you are thinking about it. The problem is industry-wide and the answers will be too.

Autonomous-lab readiness assessment

  • ✓ Map where doomed syntheses and failed runs concentrate in your workflow
  • ✓ Encode your feasibility and safety rules as a deterministic gate
  • ✓ Define the ALCOA+ provenance your QA and regulators will accept
  • ✓ Scope the closed-loop objective against reproducible baselines

Build with us

  • ✓ A GP, or BoTorch and Ax, optimizer with a target-directed acquisition
  • ✓ A deterministic digital-twin gate that runs outside the agents
  • ✓ A hash-chained, tamper-evident ALCOA+ audit trail
  • ✓ A SiLA-2-shaped interface to your existing instruments, no lock-in