Jaehoon Son

October 2026

Five AI models tried to make the rainbow in one cup

Each model ran a real pump rig on its own, with red, blue and yellow dye plus water. Nothing could be pumped back out, so every pour was permanent. A webcam measured what actually ended up in the cup.

All five runs side by side, each sped up to 20 seconds. The clock in each corner is real time.

The setup

Every model got the same written task and the same command-line tool in a fresh folder. The tool runs a pump for a set number of seconds, turns the stirrer on, saves a photo, reads the color of a patch of the image and logs notes. The model plans first, then pours, looks, and decides the next pour. It may call a person only for a spill or an empty bottle. The cup starts empty, is never emptied during the run, and has a 300 mL fill limit.

The task asks for the shades of the rainbow, one after another, in that one cup. Which shades and how many is up to the model.

How it was scored

A script reads a fixed patch of liquid near the bottom of the cup once per second from the raw recording and converts it to hue, saturation and brightness. A second counts only when the patch shows liquid that is neither grey nor black, and a color counts only when the liquid holds it for at least 3 seconds.

There are two scores. Color-wheel coverage is the share of the 360° hue circle the liquid held. Bands is how many of the seven rainbow bands it reached, using hue ranges written down before any run was scored.

Bar chart of the hue circle for each model. Claude covers 51 percent, from yellow through violet. Gemini covers 44 percent, yellow through blue. Grok 38 percent, GPT 37 percent and DeepSeek 34 percent cover red and orange plus patches of green and teal.
Colored means a hue the liquid held for at least 3 seconds.
ModelColor wheelBandsModel saidFirst dyeRun time
Claude Opus 5.551%5 / 75yellow4 min
Gemini Argon44%3 / 77yellow7 min
Grok 4.738%4 / 72red22 min
GPT Astra37%4 / 73red4 min
DeepSeek 4.1 Flash34%3 / 74red6 min

No model reached all seven bands.

The order decided most of it

Grok, GPT and DeepSeek started with red, in textbook rainbow order. Red is the strongest of the three dyes. Yellow can overpower it in principle, but it takes far more yellow than red, and the cup has room for only so much. None of the three ever held a clean yellow.

Claude and Gemini started with yellow, the weakest dye, so each stronger dye needed only a small pour to take over. They went the furthest around the color wheel. Claude wrote this reasoning into its plan before it ran a pump.

Grid of cup photos for each model, in the order taken, labeled with the shade name the model gave each one.
Every shade each model photographed, labeled with the name it gave it.

What the models said versus what the camera saw

Each model also reported its own result. Gemini said it made all seven shades. The camera measured three, and both its “indigo” and its “violet” sat in the blue band. GPT went the other way: it said it made three and the camera counted four.

Two cup photos Gemini labeled indigo and violet purple. The camera measured hue 183 and hue 228, both in the blue band.

Limits

Let’s talk

If you work on evals and are thinking about how to test models on real physical experiments, where the model has to measure and sense things for itself, I’d love to hear from you: son.jaehoon0826@gmail.com or @knuceles on X.