a tiny benchmark, grown at home ๐ŸŒ

The Banana Test

One prompt, several AI coding agents. Each agent gets the same system prompt and must write a single three.js page animating the full life of a banana plant โ€” corm โ†’ leaves โ†’ flower โ†’ fruit โ†’ decay โ†’ pups. One shot, no hand-holding. It leans on two things at once โ€” writing code and visual, spatial reasoning โ€” which is what makes it interesting. All entries run live below, side by side.

๐ŸŒ The exact prompt every agent receives
Your goal is to generate a single self-contained HTML file containing a visual Three.js animation of a Cavendish banana plant growing, fruiting, declining, and being replaced by its pups. The animation should show a biologically plausible banana lifecycle. The plant should begin as a small corm or pup emerging from the soil. It should grow a pseudostem, unfurl broad banana leaves, develop a hanging inflorescence, open its reddish-purple bracts, form hands of bananas from the female flowers, continue into the male flower/banana-heart stage, ripen the bananas, and then show the mother plant gradually declining after fruiting. As the mother plant matures and declines, new pups should emerge from the base. Those pups should begin their own growth cycle so that the scene can loop continuously. Make the result as visually realistic and impressive as possible within a single HTML file. Think carefully about the appearance of a Cavendish banana plant: the thick layered pseudostem, large curved leaves with varied size and age, young leaves with reddish or dark mottled markings that fade as they mature, older leaves that yellow, tear, droop, and decay, the heavy curved banana bunch, the reddish-purple flower bracts, and the changing colours of ripening bananas. Pay attention to the physical presence of the plant. Leaves, pseudostems, flowers, and fruit should be arranged in a plausible 3D structure and should avoid obvious intersections. The plant should feel like a real growing organism with mass, curvature, gravity, asymmetry, and age variation, rather than a flat or symbolic diagram. The animation should be staged clearly enough that a viewer can understand the lifecycle without reading code. You may include helpful visual elements such as a camera orbit, timeline, labels, restart button, speed control, or subtle environmental details like soil, light, shadows, and background, but the main focus should remain the banana plant lifecycle. Take as much time and as many tokens as you need. Plan the animation, build it, verify it, then improve it, and repeat verifying and improving it until you get diminishing returns.
Technical requirements:
* Output a single complete HTML file.
* Use Three.js.
* No build step.
* All custom JavaScript and CSS should be included in the file.
* External dependencies are allowed only for standard browser-loadable libraries such as Three.js from a CDN.
* Do not rely on external image, video, 3D model, or texture assets.
* The file should run directly in a modern browser.
* Prioritise visual quality, biological plausibility, smooth animation, and robustness. Use your full available effort to design and implement the most realistic and beautiful Cavendish banana plant lifecycle animation you can.
* The user can drag to change camera angle
* The only visible widget is a speed dial

The agents โ€”

Each one is a coding agent given the same prompt once, with tools but no human in the loop โ€” the Claude models running in Claude Code, GPT-5.5 in Codex.