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:
- Runs in MuJoCo
- model.xml written
- Fifty two-part beans
- Gravity down
- Beans start inside a hollow hopper
- 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.
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
run 1, 2 rounds, clock stop, $0.03Only 10 of the 50 beans get out by 5 s, and beans 19, 20 and 24 fall through the tray and out of the model.
run 2, 2 rounds, $0.03Its first beans jammed in the throat, so it made them smaller, and all 50 are out between 1 and 2 s.
run 3, 1 round, $0.02Held until 1 s, then 31 out by 2 s and all 50 by 5 s, after a jam in the throat clears.
run 1, 8 rounds, $0.03The gate opens at 1 s, but beans stay packed in the throat and nothing gets out until 3.3 s. It reports 2 mm of wall penetration.
run 2, 8 rounds, $0.03All 50 beans are through by 1 s, before the gate opens, and every one leaves the model. Its eighth and last round crashed before drawing, so round 7 is scored.
run 3, 7 rounds, $0.02No model.xml beside the script, so the checker has no model to read. The hopper is about a metre tall, and 44 beans are out by 1 s.
run 1, 4 rounds, $0.19Held until 1 s, then 15 out by 2 s and all 50 by 5 s.
run 2, 3 rounds, $0.47Held until 1 s, and all 50 out between 1.07 and 1.44 s, drawn in cutaway with a contact frame.
run 3, 5 rounds, clock stop, $0.26Held until 1 s and all 50 out by 2 s. The clock ended a fifth round mid-render, so round 4 is scored.


