Autonomous Lab AI · Self-Driving Materials Discovery
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.
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.
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.
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.
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.
| 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.
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 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.
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.
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 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 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.
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.
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.
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 |
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.
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.
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.
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.
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.
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.
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.
The research behind this demo — the architecture, the verification design, and the enterprise blueprint.
Full solution
Explore the Autonomous Lab AI solution →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.