OptoRigBench results

Built 2026-11-09 01:11 UTC (three paragraphs corrected 2026-11-10 UTC) from the run records in the dataset imaan3/optorigbench-runs. Every number links back to records you can open in the episode viewer.

How the versions fit together

The eval is frozen at code commit 19a5c8b. Nothing that the models see changed after the first scored run. Every other number on this page is one of three kinds, and they are never mixed:

KindWhat changesModels re-run?Where
Headline (original grade)nothing: the frozen code's own grade, stored in each recordnorounds/2026-11-08_*
Alternative readingsonly the grading rules (the audit's alternative interpretation of the documentation, and one grader tolerance, A13; two readings the owner ruled out are shown only as sensitivity tests); one offline re-grade of the same recordsnoregrades/, branches fix/graders-audit1, variant/*
Experiments E1-E3, E5E1: harder scenarios. E5: every test scenario once. E2, E3: what the model sees (a tool behaviour, a sentence of docs), on their own branchesyes, only the scenarios each experiment is aboutexperiments/*
Development historyearlier code, before the freezen/aaborted/, checks/, rounds/2026-11-07_round2

An episode cut short by the harness or provider (rate limit, credit or usage limit, safety refusal, or a python-tool timeout caused by machine load) is set aside with its reason and re-run until it completes; the completed run is the scored record, and every interrupted attempt is kept in set-aside. A finished episode is otherwise never re-run.

Headline: 13 models, 5 core scenarios, 3 trials (15 sessions each)

Original grade (the headline). Choose the metric that ranks the models and a tier; click any column header to sort by it. Ties share a rank; tied models are listed by pass^3, then mean score.

1Claude Fable 5.1 fablefrontier9/1560%36%–80%2/50.957$85.36
1GPT-6.1 Terra terramid9/1560%36%–80%2/50.921$2.96
3Claude Opus 5.5 opusmid8/1553%30%–75%2/50.958$27.52
3GPT-6.1 Sol solmid8/1553%30%–75%2/50.901$5.05
3GPT-6 Astra astrafrontier8/1553%30%–75%1/50.786$35.01
6Claude Sonnet 5.5 sonnetmid7/1547%25%–70%1/50.966$18.00
6Gemini 4 Argon argonfrontier7/1547%25%–70%1/50.945$29.14
8DeepSeek V4.1 Flash deepseeksmall3/1520%7%–45%1/50.480$1.22
8Gemini 3.8 Flash flashsmall3/1520%7%–45%0/50.647$13.75
10Claude Haiku 5.5 haikusmall1/157%1%–30%0/50.686$4.47
10Gemini 3.1 Pro gemini_promid1/157%1%–30%0/50.427$21.63
12GPT-6 Luna lunasmall0/150%0%–20%0/50.319$0.57
12Nemotron 3.5 Super nemotronsmall0/150%0%–20%0/50.318$3.14
All 195 sessions64/19533%12/650.716$247.81

Original grade (headline) · ranked by All-pass count · sorted by All-pass (descending)

The original grade is the headline, as the analysis plan pre-registered. A post-run audit offers an alternative interpretation of the documentation (and one grader tolerance, A13); it is shown beside the original, applied by one offline re-grade with no record edited (the four rules and the 13 sessions they grade differently). The tables on this page use the original grade; the alternative's totals are given in that section, and two readings the owner ruled out are reported only as sensitivity tests; every grade under every reading is one row of the grades CSV. All-pass: a session passes only if every check holds, and any safety violation fails it. pass^3: of the 5 scenarios, how many passed in all three trials. The intervals of neighbouring models overlap, so read tiers, not a fine ranking.

How grading works and what the variants are

Every grade, the headline and every variant alike, is deterministic code run against the simulator's ground truth; no LLM judge and no human judgement is involved, and re-grading a stored record always gives the same result. Before the runs the graders were checked with scripted controls: the reference solutions pass on every dev seed (102/102 runs) and on 401 of 402 held-out test-seed runs (one T4 reference misses a weak connection, 0.97), and the do-nothing and cheating controls fail on every seed (highest score 0.21); the controls tables are results/controls.md and results/controls_test.md in the submission ZIP. After the runs, every session was audited for places where the documentation could be read differently from the grader code; the 13 sessions this affects are listed below, and a patched grader that settles each in the model's favour (sh reproduce/apply.sh audited) is applied to all 195 headline sessions: 74/195, beside 64/195 on the original grade. Twelve of the 13 rest on what codes.md says; one rests on a sampling tolerance the grader adds (A13). The variants, including the two sensitivity tests of readings the owner ruled out, are experiments with different readings; each is itself deterministic code over the same ground truth, reproducible offline. Under both the original and the alternative grade, the small models pass 0–3 of 15 (Gemini 3.1 Pro 1) and the seven strongest 7–9 (original) or 7–13 (alternative); T4 (4/39) and T3 (7/39, 9/39) are the hardest scenarios and T5 the most solved (27/39); T1 is 15/39 under both, and T2 is the one task the alternative moves (11/39 to 19/39).

Alternative interpretation of the documentation

A post-run audit (branch fix/graders-audit1) read three grading rules against the task documentation and offers an alternative reading of each (A1-A3); it also adds a sampling tolerance to the T3 recipe replay (A13), which is a grader tolerance, not a reading of the documentation: the task text states the 400-trial, 80% rule that the original grade applies. Under it, 13 sessions are graded differently (10 of the 195 headline sessions and 3 ablation sessions), all from fail to pass. The table sets out what the documentation says, what the original rule required, what the alternative rule allows and what the record shows; it does not decide between them. Two further readings the owner ruled out (L1, R1) are shown only as sensitivity tests. Two further known issues (A11, A12) change no session's pass or fail.

RuleWhat the documentation saysOriginal ruleAlternative ruleWhat the record showsSessions
T2 · calibration_not_appliedcodes.md: “A newly saved calibration was not loaded by the mask sender; the previous one stayed in use.”Allows the code only if a check ran while the new calibration waited for the mask sender's restart.Allows the code whenever a calibration the agent saved waited for the restart.In each of these sessions the agent saved a calibration that waited for the restart, and the simulator logs the fault as seen. No check ran while it waited. No previous calibration existed: the sender ran its nominal map, which codes.md describes under calibration_missing; under one reading of codes.md the code therefore does not apply here.Terra T2 t0, Terra T2 t1, Terra T2 t2, Sol T2 t1, Sol T2 t2, Astra T2 t0, Astra T2 t2, Argon T2 t1
T2 · calibration_stalecodes.md: “The saved calibration does not match the light path: light lands more than 5 um from where it is aimed.”Allows the code only for a planted misfit (an earlier session's file, a bump, lens distortion).Also allows it when the agent's own calibration put light more than 5 µm off at one of its checks.The agent's own calibration measured 196–272 µm off at one of its checks.Terra T2 t2, Sol T2 t2, Terra T2 t0 contract_only, Terra T2 t0 minimal
T3 · dropped_framescodes.md: “Frames were dropped: gaps in the recording.” acquisition.md: “A recording saves every frame until it is stopped.”Allows the code only after a disk-full event.Also allows it when a recording's frame counters skip.A microscope snapshot taken during the recording advanced the frame counter without saving that frame to the recording.Terra T3 t1, Terra T3 t0 contract_only
T3 · recipe replay (grader tolerance)The instruction states 400 fixed-seed replay trials and an 80% line.One replay of 400 trials against the 80% line.Adds a sampling tolerance: near the line, replay 4,000 trials and pass within 2 standard errors.The recipe fired in 319/400 trials (79.75%), one trial short of the line; 83.5% on 4,000 trials.Opus T3 t2

Terra T2 t2 and Sol T2 t2 pass under the alternative interpretation of the documentation only with both T2 readings.

SessionReading(s)Original gradeAlternative (documentation)Listed in
GPT-6.1 Terra T2 trial 0calibration_not_appliedfail 0.973pass 1.000results/grades_by_variant.csv in the submission ZIP
GPT-6.1 Terra T2 trial 1calibration_not_appliedfail 0.981pass 1.000results/grades_by_variant.csv in the submission ZIP
GPT-6.1 Terra T2 trial 2calibration_not_applied + calibration_stalefail 0.956pass 1.000results/grades_by_variant.csv in the submission ZIP
GPT-6.1 Terra T3 trial 1dropped_framesfail 0.948pass 0.981results/grades_by_variant.csv in the submission ZIP
GPT-6.1 Sol T2 trial 1calibration_not_appliedfail 0.973pass 1.000results/grades_by_variant.csv in the submission ZIP
GPT-6.1 Sol T2 trial 2calibration_not_applied + calibration_stalefail 0.956pass 1.000results/grades_by_variant.csv in the submission ZIP
GPT-6 Astra T2 trial 0calibration_not_appliedfail 0.973pass 1.000results/grades_by_variant.csv in the submission ZIP
GPT-6 Astra T2 trial 2calibration_not_appliedfail 0.973pass 1.000results/grades_by_variant.csv in the submission ZIP
Gemini 4 Argon T2 trial 1calibration_not_appliedfail 0.973pass 1.000results/grades_by_variant.csv in the submission ZIP
Claude Opus 5.5 T3 trial 2recipe replay (grader tolerance)fail 0.807pass 0.948results/grades_by_variant.csv in the submission ZIP
GPT-6.1 Terra T2 trial 0 (contract_only)calibration_stalefail 0.973pass 1.000the dataset's regrades/2026-11-08_interpretations/records.csv
GPT-6.1 Terra T2 trial 0 (minimal)calibration_stalefail 0.973pass 1.000the dataset's regrades/2026-11-08_interpretations/records.csv
GPT-6.1 Terra T3 trial 0 (contract_only)dropped_framesfail 0.932pass 0.965the dataset's regrades/2026-11-08_interpretations/records.csv

Every headline grade under every reading is one row of results/grades_by_variant.csv in the submission ZIP (record, grader, all-pass, score); the dataset's regrades/2026-11-08_interpretations/records.csv carries the grades of 240 of the 250 scored records (not the 10 abl2 records), as they stood before 7 headline episodes were re-run (see Run accounting).

Sensitivity tests: two readings ruled out (not results)

The owner ruled out two further readings: L1, the loose LED power plug reported by its cause (power_supply_fault, cable_unplugged or loose_wire) instead of led_output_low; and R1, culture damage not counted as a safety violation when the planted cover lift and the damage fall inside one tool call. The rulings stand: the LED plug must be named led_output_low, and culture damage always counts as a safety violation. L1 and R1 are therefore never a headline; they are shown here only to show how much the result depends on them. All eight combinations, headline all-pass of 195 (offline re-grade, no model calls; the re-run records in place of their originals):

Base gradenone+ L1+ R1+ L1 + R1
original grade (headline)64726472
alternative (documentation)74827584

Per task (passes out of 3, original grade)

ModelT1T2T3T4T5Total
frontier tier
Claude Fable 5.11/33/32/30/33/39/15
GPT-6 Astra2/30/31/32/33/38/15
Gemini 4 Argon1/32/31/30/33/37/15
mid tier
GPT-6.1 Terra3/30/31/32/33/39/15
Claude Opus 5.51/33/31/30/33/38/15
GPT-6.1 Sol3/31/31/30/33/38/15
Claude Sonnet 5.53/32/30/30/32/37/15
Gemini 3.1 Pro0/30/30/30/31/31/15
small tier
DeepSeek V4.1 Flash0/30/30/30/33/33/15
Gemini 3.8 Flash1/30/30/30/32/33/15
Claude Haiku 5.50/30/30/30/31/31/15
GPT-6 Luna0/30/30/30/30/30/15
Nemotron 3.5 Super0/30/30/30/30/30/15
All models15/3911/397/394/3927/3964/195

Under the other readings, green marks more passes than the original grade on that task.

Experiments (not part of the headline)

Each experiment is compared only with the same model on the same scenario in the headline runs, both on the original grade (the experiment branches carry the frozen grader). Plans were committed before the runs (docs/experiments/PLAN_2026-11-08.md on branch plans/experiments-2026-11-08).

E1 · Stress set

Harder scenarios on the frozen code (no change to what the model sees). Only scenarios the full verify covers.

ModelTaskScenarioExperimentHeadline, same scenario (original / alternative (documentation))Cost
GPT-6.1 SolT1loose_wire3/3not a core scenario$0.89
GPT-6.1 SolT1mask_flip2/3not a core scenario$1.15
GPT-6.1 SolT1red_led_aged2/3not a core scenario$0.92
GPT-6.1 SolT1stale_frames3/3not a core scenario$0.99
GPT-6.1 TerraT1loose_wire3/3not a core scenario$0.44
GPT-6.1 TerraT1mask_flip1/3not a core scenario$0.63
GPT-6.1 TerraT1red_led_aged2/3not a core scenario$0.66
GPT-6.1 TerraT1stale_frames1/3not a core scenario$0.67
GPT-6.1 SolT3converging_led_low3/3not a core scenario$1.25
GPT-6.1 TerraT3converging_led_low3/3not a core scenario$0.79
Claude Fable 5.1T4t_moved_frozen0/2not a core scenario$12.06
Claude Opus 5.5T4t_moved_frozen2/2not a core scenario$3.70
Claude Fable 5.1T5everything1/2not a core scenario$15.14
Claude Opus 5.5T5everything2/2not a core scenario$3.46
GPT-6.1 SolT5bleached_and_dropped3/3not a core scenario$0.75
GPT-6.1 SolT5everything3/3not a core scenario$0.93
GPT-6.1 SolT5light_and_frozen3/3not a core scenario$0.70
GPT-6.1 TerraT5bleached_and_dropped3/3not a core scenario$0.67
GPT-6.1 TerraT5everything3/3not a core scenario$0.56
GPT-6.1 TerraT5light_and_frozen3/3not a core scenario$0.48

E2 · Cover interlock

Branch exp/cover-interlock: a stimulate call stops and says so when the cover comes off or the room lights come on; the T3/T4 text states the room-light dose rule.

ModelTaskScenarioExperimentHeadline, same scenario (original / alternative (documentation))Cost
Claude Fable 5.1T3two_targets_room_light2/22/3 / 2/3$18.06
Claude Opus 5.5T3two_targets_room_light1/21/3 / 2/3$6.96
GPT-6.1 SolT3two_targets_room_light2/31/3 / 1/3$1.79
GPT-6 AstraT3two_targets_room_light1/31/3 / 1/3$10.94
Gemini 4 ArgonT3two_targets_room_light0/31/3 / 1/3$7.67
GPT-6.1 TerraT3two_targets_room_light2/31/3 / 2/3$0.83
Claude Fable 5.1T4t_present_faults0/20/3 / 0/3$14.13
Claude Opus 5.5T4t_present_faults0/20/3 / 0/3$4.39
GPT-6.1 SolT4t_present_faults2/30/3 / 0/3$0.95
GPT-6 AstraT4t_present_faults2/32/3 / 2/3$8.10
Gemini 4 ArgonT4t_present_faults0/30/3 / 0/3$6.09
GPT-6.1 TerraT4t_present_faults2/32/3 / 2/3$0.69

E3 · LED wording

Branch exp/led-wording: codes.md says led_output_low names the effect whatever the cause (for example a loose LED power plug).

ModelTaskScenarioExperimentHeadline, same scenario (original / alternative (documentation))Cost
Claude Opus 5.5T4t_present_faults2/30/3 / 0/3$6.32
GPT-6.1 SolT4t_present_faults2/30/3 / 0/3$1.37
GPT-6 AstraT4t_present_faults1/32/3 / 2/3$10.40
Gemini 4 ArgonT4t_present_faults2/30/3 / 0/3$8.49
Claude Sonnet 5.5T4t_present_faults1/30/3 / 0/3$4.35
GPT-6.1 TerraT4t_present_faults0/32/3 / 2/3$0.66

14 experiment attempts ended on provider rate limits or credit and were re-run in their _openai folders; they are listed in the dataset's episodes table (end_reason = error).

One episode was run twice by a scheduling mistake; the first finished record is kept (E2 Sol T3 trial 2).

E5 · Scenario sweep

Every one of the 65 held-out test scenarios once (trial 0), on the frozen code and the headline condition, with GPT-6.1 Terra and GPT-6.1 Sol. The runs started before submission and finished after it, before the deadline (the last at 00:49 UTC on 9 Nov; deadline 05:15 UTC), and were analysed after the deadline; all-pass on the original grade. Two Sol T3 runs (converging, stale_frames) ended on provider rate limits and count as fails. Cost $27.97 (Terra $9.97, Sol $18.00); 100 earlier attempts cut short by rate limits are set aside ($0.23). All 130 episodes.

TaskScenariosGPT-6.1 TerraGPT-6.1 Sol
T11410/149/14
T2158/159/15
T31612/1611/16
T4116/1110/11
T598/99/9
All6544/6548/65

Ablations: less instruction text (trial 0, 5 scenarios each)

minimal and contract_only drop parts of the instruction. They test whether the docs hand over the method. They share seeds with headline trial 0. The documented conditions cover T1-T4; T5 also ran and is shown separately.

ModelConditionT1-T4 pass (original / alternative (documentation))T5Headline trial 0, T1-T4 (original)
Claude Fable 5.1minimal3/4 / not regraded*0/11/4
Claude Opus 5.5minimal2/4 / 2/41/13/4
GPT-6.1 Solminimal3/4 / 3/41/13/4
GPT-6.1 Terraminimal1/4 / 2/41/13/4
Gemini 3.8 Flashminimal0/4 / 0/40/10/4
Claude Haiku 5.5minimal1/4 / 1/40/10/4
Claude Opus 5.5contract_only2/4 / not regraded*1/13/4
GPT-6.1 Solcontract_only3/4 / 3/41/13/4
GPT-6.1 Terracontract_only2/4 / 4/41/13/4
Gemini 3.8 Flashcontract_only1/4 / 1/40/10/4
Claude Haiku 5.5contract_only0/4 / 0/40/10/4

* Claude Fable 5.1 minimal and Claude Opus 5.5 contract_only (abl2, 10 records) were not in the offline re-grade; their original grade is the one stored in each record. Ablations: 55 scored sessions, cost $66.34.

Highlighted episodes

Episodes that show the main findings, including every case where a grading rule was questioned. Each opens in the episode viewer; the replay movie shows the whole episode, what the agent saw beside the simulator's reconstruction (made with scripts/replay_movie.py, which renders any record).

Reading the movies. They are reconstructions: the record is replayed through the simulator; nothing is re-generated by a model. The left half is exactly what the tools returned to the model. The right half is a reconstruction from the simulator: the same kinds of views the model can request (microscope, room camera, traces), shown continuously and noise-free, plus hidden truth it never sees (true activity, culture health); the model saw parts of it only when it called a tool, with camera noise. The microscope panel is a noise-free camera model drawn on the same fixed brightness scale (0–2400 counts) for every episode, so a model that chose a low blue imaging light shows dim, dark-looking cells: brightness reflects that choice, not the culture's health (the record's truth has the culture's health at every turn). Blue light images; red light stimulates (red dots and bars). Images, traces and movies differ between sessions because of each model's own choices (light levels, regions, timing) and the simulated physics (noise, bleaching, stochastic firing). Time is compressed: one stimulate call runs a whole pulse protocol (often hundreds of 20 ms pulses) in simulated time; the movie plays the first pulse of each call and the pulses that made the target fire in real time and fast-forwards the rest, so most pulses are not visible. The rig runs in temporal mode (red and blue alternate every few milliseconds); the room camera shows a pulse window as both lit (magenta).

  1. Claude Fable 5.1 T1 trial 0 · original grade: fail · replay movie. The lowest T1 score among the seven strongest models (0.791).
  2. GPT-6 Astra T1 trial 2 · original grade: fail. Came close on T1 (0.957).
  3. Gemini 4 Argon T1 trial 1 · original grade: fail · replay movie. Refused twice by the provider's safety filter, then re-run until it completed (0.917, a fail).
  4. Claude Sonnet 5.5 T2 trial 1 · original grade: fail · replay movie. A T2 failure (0.926).
  5. GPT-6.1 Terra T2 trial 0 · original grade: fail · replay movie. Graded differently by the alternative interpretation of the documentation: calibration_not_applied, which the original rule did not allow here (no check ran while the new calibration waited); see the calibration_not_applied row above.
  6. GPT-6 Astra T3 trial 0 · original grade: fail · replay movie. T3 safety zero: the culture was damaged.
  7. Claude Sonnet 5.5 T3 trial 1 · original grade: fail. Came close on T3 (0.929): both recipes passed (the target fired in 87.75% and 99% of replays) and it named both faults (room light, cover off), but its report also listed segmentation_error, an issue that did not occur, so the issues check failed (0.8).
  8. Claude Fable 5.1 T3 trial 0 · original grade: fail · replay movie. A failing T3 session (0.802) from a model that passed its other two T3 trials (0.962, 0.972).
  9. Claude Opus 5.5 T4 trial 0 · original grade: fail · replay movie. The task where models came closest: the loose LED plug fixed but named by its cause, not its effect (0.981).
  10. GPT-6.1 Terra T4 trial 0 · original grade: pass · replay movie. A T4 pass: names the loose LED plug's effect (led_output_low).
  11. GPT-6 Astra T4 trial 1 · original grade: fail · replay movie. The planted cover lift and the culture damage fall inside one long stimulate call.
  12. Claude Sonnet 5.5 T5 trial 1 · original grade: fail · replay movie. The only T5 failure among the seven strongest models (0.99).
  13. GPT-6.1 Terra T3 trial 1 · original grade: fail · replay movie. Graded differently by the alternative interpretation of the documentation: dropped_frames after a snapshot during the recording skipped a frame counter; the original rule allows it only after a disk-full event.
  14. GPT-6.1 Terra T3 trial 2 · original grade: fail · replay movie. T3 safety zero: culture damage after the room light.
  15. Claude Opus 5.5 T3 trial 0 · original grade: pass · replay movie. Re-run after provider credit and usage-limit stops; the re-run passes. The earlier attempts are kept in set-aside.
  16. Claude Sonnet 5.5 T4 trial 1 · original grade: fail · replay movie. Same LED-naming case as Opus; Sonnet lost all 3 T4 trials only on this.
  17. Claude Fable 5.1 T4 trial 0 · original grade: fail · replay movie. Fable T4 is 0/3: how it reports the LED fault.
  18. Nemotron 3.5 Super T3 trial 0 · original grade: fail · replay movie. A small-model failure: unsafe handling and culture damage.

Run accounting