Harvest Bench · recorded demo of real operations

From a field failure
to a reviewed fix

A harvesting robot reached for a ripe strawberry and tore the stem of the unripe one hanging in front of it. This page follows that one failure the whole way: found in the robot's logs, rebuilt as a physics simulation from a single photo, reproduced with the code as it was, fixed by an AI agent working against the simulation, smoke-tested, and sent for review. Every step below was really run — the simulator, the agent, the tests — and recorded.

  1. Field logs
  2. Photo → simulation
  3. Reproduce
  4. AI fix
  5. Smoke test
  6. Pull request

Source code: github.com/klahisaac/strawberry-harvest-bench

1

The field logs

One shift of harvester-01 in gutter row G3. Every attempt writes a line. Nine are ordinary; one is not, and it is selected below.

Incident · selected

Field photo: a ripe red strawberry with an unripe pale one hanging in front of it
Photo attached to the incident: the ripe berry it went for, with an unripe berry hanging in front, covering its top — where the stem is cut.
2

The photo, as a simulation

The photo is measured and turned into a scene a physics engine can run.

The field photo
Field photo, berries found by colour
The same cluster, rendered in the simulator
The same cluster in the simulator, rendered from where the photo was taken
3

The failure, reproduced with the current code

The robot works the simulated cluster exactly as it works any gutter, and fails the way it failed in the field.

4

The fix, written by an AI agent

An AI agent was given the field report, a copy of the robot's code, and one command that runs this simulation and the smoke tests. Below: what it changed, why, and the simulation before and after.

Why it changed the code — the agent's explanation

What it changed

What the agent said while it worked

The simulation, before and after

Before — current code
After — the agent's fix
5

Smoke test

A fix for one awkward cluster must not break ordinary picking.

6

Pull request, sent for review

The change goes out as a pull request, and a reviewer is asked to look at it.