Gallery, prompt v1

Beans leaving a grinder hopper, in MuJoCo

One frozen prompt and every model that has run it, newest first.

Saturated since 2026-11-06

It is off the board. Pareto 26.9 and Kimi K3.1 Pro passed every check in all three runs. GPT-6 Luna passed in none of its three and Claude Haiku 5.5 in two, so the task still catches some models, and it stays as a fixed reference point. If a new model fails it, that is worth a line in the post.

The prompt, v1, frozen

Build a MuJoCo model of a grinder hopper releasing 50 roasted coffee beans through an 18 mm throat onto a tray, and simulate 5 s of it. Each bean is one free body made of two overlapping ellipsoids, giving it one flat face and one domed face. The hopper is a cone narrowing to the throat; a sliding gate under the throat opens at 1 s. Declare bean size, mass, friction and solver settings. Draw the hopper at 0, 1, 2 and 5 s, a diagnostic frame carrying contact points and force vectors, and beans through the throat over time. One figure, saved to the path in the OUT environment variable. Write the MJCF out to model.xml beside the script. Print the maximum penetration into the hopper walls, the count through the throat at each drawn time, and any bean that left the model.

Every model, its first three runs.

One square a check, in this order:

  1. Runs in MuJoCo
  2. model.xml written
  3. Fifty two-part beans
  4. Gravity down
  5. Beans start inside a hollow hopper
  6. Held, then flows

passed, failed, undecided. A round mark is a check I judged by eye, and a diamond one a check a model judged.

Kimi K3.1 Pro
Haiku 5.5
GPT-6 Luna
DeepSeek 4.1 Flash
Pareto 26.9

How it is checked

The model.xml the script writes, loaded in MuJoCo and probed with rays against what a bean can actually hit. MuJoCo collides a mesh as its convex hull, so a cone made of one mesh is solid, and the probe counts it that way. The checker never runs the simulation, so whether the gate holds the beans and then lets them all out is judged by Claude Opus 5.5, GPT-6.1 Sol and Gemini 4 Argon, each shown the brief, the figure, the printed count and the rule, and never which model made it. On 2026-10-16 all three agreed on all ten results, and with the verdicts first published, for $0.52. The rule was written after Claude Opus 5.5 had looked at the runs.

Runs in MuJoComeasuredThe script runs, steps a MuJoCo model, prints its report and saves the figure.
model.xml writtenmeasuredA model.xml beside the script that MuJoCo loads.
Fifty two-part beansmeasuredExactly 50 free bodies, each made of two ellipsoids.
Gravity downmeasuredGravity in the model points down, at more than 1 m/s².
Beans start inside a hollow hoppermeasuredA ray dropped down the middle of the hopper gets past where the beans are, and rays cast sideways from every bean's starting place hit the hopper wall. A mesh counts as its convex hull, the way MuJoCo collides it.
Held, then flowsby Claude Opus 5.5, GPT-6.1 Sol and Gemini 4 ArgonNo bean through the throat before the gate opens at 1 s, then all 50 out by 5 s, with none lost from the model.Pass if the frames and the printed count show no bean through the throat at 1 s, beans coming through by 2 s, all 50 through by 5 s, and none falling out of the model. A count the frames contradict fails it.

A check decided by eye carries the rule I apply to it. I wrote those rules down on 21 September 2026, after the first results were scored, so for those results they record how I made the calls after the fact.

What replaces it: Ask for the flow rate in beans a second as well, and have the checker run the model and time it, so a hopper that jams or empties early fails on a number.

Failures seen here: broken (fails when the model's file runs, but doesn't do what it should); built wrong (fails when the result may look right, but the model didn't make it the way the brief said); incomplete (fails when the model leaves out something the brief asked for); false (fails when the model gets a fact wrong, such as a part in the wrong place or at the wrong size). The same kinds across every task.

The rules behind all of thisThis task's prompt, checks and any checker, on GitHub