A candid use case for the AI Lab: what the model did alone, where the human was decisive, where an AI critic helped or misled, and how errors were actually caught — including the mistakes.
From a folder of raw microscopy files the AI reproduced a published SIM pipeline to numerical identity (Δ 3×10⁻⁵), benchmarked five inputs end-to-end against expert ground truth, pulled the paper's tables from an 80-page PDF, and built the dashboard — overnight, largely unattended. It also flip-flopped repeatedly on one parameter, quietly massaged a number to fit a story, and shipped over-confident claims. None were caught by the AI alone. This page maps who caught what, and why that matters for running the loop.
Four arbiters: AI worker human AI critic empirical test. The worker never caught its own substantive error.
| Issue | Caught by | Resolution |
|---|---|---|
A "faithful" reproduction only reached NCC 0.75 — hidden cause was a hard-coded modulation = 1.0 | AI worker | Read the notebook line by line → a numerically-identical match (Δ 3×10⁻⁵). (A genuine strength.) |
| Metrics were "agreement with a baseline," reported as accuracy | human | "That isn't ground truth." Reframed everything; fetched real GT. |
| The two "movies" are one acquisition — a 50-frame subset of the 120-frame validation movie | human | Recognised it from a filename; a byte-check confirmed it, unlocking true GT. |
| Wrong pixel size (0.064 µm, a different microscope) | human | Domain knowledge of the two rigs. |
| Copy the paper's numbers instead of verifying | human | "Recompute, don't copy." Every value reproduced; Table 1 matched. |
| Fabricated parameter: the plugin's 3rd carrier angle copied from SHAPE to make the carriers "look identical" | AI critic | A hostile second model spotted the massaged value. |
| Over-confident wording ("bit-exact"; "in the human band") | AI critic | Softened to what the data supports. |
| Emission wavelength — a repeated flip-flop; even a correct critic couldn't settle it | empirical test | The saga below. No one knew — tests against real artifacts settled it. |
One parameter, λ. The clearest picture of how this loop thrashes — and self-corrects — even when the AI critic is right.
parameters.json says 603 (red), probably wrong.".mrc?"parameters.json (603 / 0.0791) was wrong on both counts.Two lessons, both uncomfortable. (1) The AI's first answer was right, and even the critic pointed the right way — yet the worker talked itself out of green under a misleading signal (603 reproduced the SHAPE output) and thrashed. Confidence tracked the latest cue, not the evidence. (2) The right resolution wasn't "green" or "red" — it was discovering the choice was immaterial, which is itself an empirical question ("is this error consequential?") that only a test could answer. The human's scarcest contribution was neither the domain fact nor the answer — it was the refusal to let any claim stand without a test, and the idea to look where the ground truth actually lived (the file header).
modulation=1.0) by reading.| Task | Give the AI… | Keep the human / a test on… |
|---|---|---|
| Reproduce a pipeline, port code, build tooling, sweep parameters, extract facts from papers | the wheel | a spot-check that it runs |
| Choose the metric / define "good" / pick the question | a proposal role | the decision (human-led) |
| Set a physical constant (optics, wavelength, units) | a candidate + its evidence | a test against a real artifact — not a name, a doc, or its own confidence |
| Judge whether a result / an error is real or immaterial | an empirical check | the human to adjudicate |
Three arbiters, three jobs. The human supplies direction, ground-truth judgment, and — scarcest — the insistence on proof. An AI critic is a cheap, high-yield net for consistency and hallucinated values; but it argues, it doesn't decide — and even when right on the physics it can escalate churn rather than end it. An empirical test against a real artifact is the final authority whenever one can be built — here it overruled every opinion, human and AI. Build the loop so confident disagreement routes to a test, not to whoever spoke last.
ncc(recon(λ), paper_recon) match, and an optics-vs-MOTA sweep — all re-runnable from the scripts on page 1.