Any acid
in vinegar units · moves with water
Game Tailors
Source: Chemistry and pH
The drawing app where the paper is real. No ads. No accounts. No personal data: only anonymous counts, which you can switch off.
Game Tailors · Schieweg 15Y-40, 2627 AN Delft (NL)
KvK 92437702 · VAT NL866044474B01
info@gametailors.com · +31 6 4227 5919
© 2026 Game Tailors
Chemistry and pH
Dip the page in red cabbage juice, then drop vinegar on it: the spot turns pink. Shake baking soda onto the wet page and it turns green-blue, and where the two meet it fizzes. Each tiny spot of paper keeps count of what is dissolved in it, and the game works out from those amounts how acid that spot is.

The paper in Professor Oops is a grid of spots about 0.6 mm across. Every spot holds a short list of numbers: how much acid is in its water, how much baking soda, bleach, cabbage dye, tea, salt and so on. In the released game there are twelve of these.
The list never records who put something there. Vinegar, lemon, ketchup, mustard and the plus clip of a battery all add to the same "acid". Lemon juice brings a bit more than vinegar, orange juice far less. So anything sour joins in with everything acid does, without anyone writing a line of code for that pair.
Water moves these amounts around. A drop of water on a vinegar spot carries the acid outwards, just as it carries paint. Some things cling to the paper fibres and hardly move: cabbage dye mostly stays where it soaked in, and rust's iron stays put. Acid and salt go wherever the water goes.
in vinegar units · moves with water
dissolved · moves with water
also wood ash · moves
wears off, faster when dry
clings to the fibres
clings harder
clings
clings hardest
dissolved · moves
dissolved · moves
dissolved · moves
dissolved · moves
The released game's twelve. The next update next update adds four more for chemistry: a non-fizzing alkali (bar soap, the battery's minus clip), hydrogen peroxide, the share of acid that can evaporate and the salt an acid leaves when it is used up.
Nothing in the game stores a pH. When the screen needs to colour a spot of cabbage paper, it asks "how acid is it here?", and a short formula answers from the amounts in that spot.
On the acid side the formula follows the real rule for a strong acid: ten times less acid is one pH step closer to neutral. Vinegar's acid reads vinegar's real pH, 2.4, and a tenth of it reads 3.4. Orange juice reads back its own real pH.
On the alkaline side each base lifts the pH in a straight line, up to its own limit, near the real liquid's: washing soda reaches about 12 and bleach about 13. Whichever side there's more of wins, and the pH is set by what's left over.
We're proud of how little this is: a handful of arithmetic per spot, cheap enough to run for every spot on the screen. It is also not a chemistry calculation. There are no molecules or ions in it, and adding plain water doesn't dilute the reading, because the formula reads amounts and not concentrations. Water only changes it by carrying acid away to the next spot.
The released game reads under pH 3.5 until 90 % of the vinegar is used up, then jumps to 7; the next update climbs steadily and reads 4.7 at half-way, where the textbook line reads 4.76.
| share of the vinegar used up | released game | next update | textbook, acetic acid (comparison only) |
|---|---|---|---|
| 0.00 | 2.4 | 2.4 | 2.38 |
| 0.10 | 2.45 | 2.86 | 3.81 |
| 0.25 | 2.52 | 3.55 | 4.28 |
| 0.50 | 2.7 | 4.7 | 4.76 |
| 0.75 | 3 | 5.85 | 5.24 |
| 0.90 | 3.4 | 6.54 | 5.71 |
| 0.99 | 4.4 | 6.95 | 6.76 |
| 1.00 | 7 | 7 | 9.4 |
Source: Readings computed from the game's own pH reading in both versions, for one unit of vinegar.
This is the clearest change in the next update. In the released game, as baking soda uses up vinegar, the reading stays low until almost the end, then it jumps. In the next update the spent acid's salt holds the pH up, so the colour climbs steadily through pink and purple. Its straight line meets the textbook curve for acetic acid at the half-way point, where both read about 4.7. The textbook line is our comparison, computed with the Henderson-Hasselbalch equation at pKa 4.76. It is not in the game's code.
Real red cabbage juice changes colour because its dye molecule changes shape with the acidity. The game doesn't model the molecule. It has a chart: a handful of colours across the pH scale, from deep pink-red through purple and blue to green and finally yellow. The colour for any pH is read from that chart.
The exact shades were picked by hand. Their order agrees with published charts of the real juice, though our pH 5 is a bit pinker than the printed charts are there RHS chart. Two more dyes work the same way. Turmeric, the yellow in mustard, stays yellow up to about pH 7.4 and then turns orange and red-brown. Tea darkens a little in alkali and pales in acid.
So mustard smeared on a bar of soap goes red-brown, and blueberry juice on soap turns blue-green, because blueberries carry the same dye as cabbage. Automated tests check both in the released game.
Set the acid and one base in a spot of cabbage paper. Both versions of the game read it with their own formula and colour it from the real table. What to look for: baking soda alone reads pH 10 in the released game and 8.3 in the next update, teal against blue. Washing-up liquid turns cabbage blue-green in the released game and leaves it purple in the next update. This is the reading before the fizz uses anything up.
The game has a short table of reactions, eleven in the released game. Each one says what must be in a spot before it can happen, how fast it goes there, and what it does. The fizz rule needs acid and baking soda (or washing soda) in the same spot. It uses them up, gives off carbon dioxide, and lays down a pale froth, tinted by any paint on the paper there.
Because the rule only looks at amounts, the speed follows them. Vinegar fizzes far harder on baking soda than orange juice does, since it brings over ten times the acid. Ketchup that has soaked in fizzes too, a little. Automated tests pin both.
The gas doesn't vanish. It goes into the air above the paper as a heavy layer that spreads out low, like poured water. A candle near a fizzing patch goes out with no wind at all, while one across the page burns on. The same fizz inside dough fills the dough with gas instead, and you get soda bread full of holes.
A page dipped in cabbage juice, with a patch of dissolved baking soda. Tap or drag to drop the acid you pick, or press Drop the acid. What to look for: pink where the acid spreads, teal over the soda, and pale froth where they meet. Vinegar fizzes hard and fast; ketchup barely fizzes. The fizz rule, the acid it uses per soda, the gas it gives off, the froth it lays and acid wearing off follow the released game. The spreading and the froth fading away are a simple sketch.

Bottles in the released game fizz through a separate model of the same idea. A carbonated drink lets its gas go faster the more places a bubble can start. Each mint adds many such places. Salt grains add them too, by grain size, so salt sprinkled into a cup of cola fizzes up with no salt-and-cola code, and a test checks it. Gas rushing out of the neck fast enough throws the drink up with it. The elephant-toothpaste flask warms by about as much as 6 % peroxide really does when it breaks down, about 41 °C. That warmth was set to land there; nothing calculates it from first principles. In the next update next update a bottle or cup runs the paper's own reaction table on a single well-mixed cell, so bleach and vinegar in a cup give the same warning as on paper.
The gas leaves the neck at about 200 cells/s as the mints drop and falls below the 40 cells/s a jet needs at about 1 s.
| seconds after the mints drop | gas rushing out of the neck | speed for a jet |
|---|---|---|
| 0 | 199.63 | 40 |
| 0.05 | 183.88 | |
| 0.1 | 169.38 | |
| 0.15 | 156.02 | |
| 0.2 | 143.72 | |
| 0.25 | 132.39 | |
| 0.3 | 121.95 | |
| 0.35 | 112.34 | |
| 0.4 | 103.49 | |
| 0.45 | 95.34 | |
| 0.5 | 87.83 | |
| 0.55 | 80.91 | |
| 0.6 | 74.54 | |
| 0.65 | 68.67 | |
| 0.7 | 63.27 | |
| 0.75 | 58.29 | |
| 0.8 | 53.7 | |
| 0.85 | 49.48 | |
| 0.9 | 45.59 | |
| 0.95 | 42 | |
| 1 | 38.7 | |
| 1.05 | 35.66 | |
| 1.1 | 32.86 | |
| 1.15 | 30.28 | |
| 1.2 | 27.9 | |
| 1.25 | 25.71 | |
| 1.3 | 23.69 | |
| 1.35 | 21.83 | |
| 1.4 | 20.12 | |
| 1.45 | 18.54 | |
| 1.5 | 17.08 | |
| 1.55 | 15.74 | |
| 1.6 | 14.51 | |
| 1.65 | 13.37 | |
| 1.7 | 12.33 | |
| 1.75 | 11.36 | |
| 1.8 | 10.47 | |
| 1.85 | 9.65 | |
| 1.9 | 8.89 | |
| 1.95 | 8.2 | |
| 2 | 7.56 | |
| 2.05 | 6.97 | |
| 2.1 | 6.42 | |
| 2.15 | 5.92 | |
| 2.2 | 5.46 | |
| 2.25 | 5.03 | |
| 2.3 | 4.64 | |
| 2.35 | 4.28 | |
| 2.4 | 3.94 | |
| 2.45 | 3.63 | |
| 2.5 | 3.35 | 40 |
Source: Computed from the released game's own bottle model. Ignores the liquid the jet throws out.
Draw a bleach pen over a dark drawing and it doesn't just get lighter. It passes through red-brown and orange to yellow and then white, as bleach-pen art does. One line takes black marker to red-brown; three lines over the same place take it to white. A drop of bleach on thick marker only gets it as far as red-brown. That path comes from one idea: bleach lets red light back through fastest, green a bit slower and blue slowest. So a black line goes reddish-brown first, then yellow, then white.
A drop of bleach on cabbage paper first turns the dye yellow, because bleach is strongly alkaline and pH 13 is yellow on the chart. Then the bleach destroys the dye. Two simple things together give both real effects. Crayon wax and soap underneath hold the bleach back, so a thick crayon line keeps its colour far longer than the paper round it. Bleach also kills mould and wears off as it dries.
Bleach and an acid together give off chlorine. The game treats that as a safety lesson, plainly: the gas builds up in the room, and the child is told to open a window or get out into fresh air.
Three dark strokes and a band of cabbage dye on wet paper. Tap or drag to drop bleach, or press Drop bleach. What to look for: black passes through brown and yellow; the cabbage band flashes yellow before it fades; the strokes keep their colour under the pale blue crayon line. Turn the crayon off and that strip bleaches like the rest. The bleach spreading is a simple sketch.

Other systems put chemistry into the paper through the same list. Leave a pin in damp paper and wait at least half a day with the time buttons: an orange-brown ring of rust grows round it, with iron in the paper. Tea that reaches that iron turns blue-black. This is iron-gall ink, the ink people wrote with for centuries. The ink rule needs only iron and tea's tannin in one damp spot, so tea first and pin later works too. It darkens as the paper dries, because standing water slows it, as a stand-in for less air.
Burn a patch of paper and the fire leaves an alkaline salt in the ash, as real wood ash does. The game uses its washing soda for it. Wet the burnt patch and dip the page in cabbage juice: the paper round the ash turns blue, with purple further off. No fire code knows about cabbage, and no cabbage code knows about fire.
Clip a battery to a line of salty water and the current makes acid where it goes in, so cabbage paper turns pink at the plus clip. At the minus clip the released game writes baking soda; with the real tools that only reaches a faint, bluer purple. Real salt water gives off particular gases at each clip. The game makes a few small bubbles there and never names the gas, on purpose, because the only poisonous gas in the game belongs to the bleach lesson.
Nothing rusts under 12 hours; on wet paper the share starts at 0.25 at 12 hours and reaches 1 at 48 hours, and half as damp tops out at 0.5.
| hours skipped | wet paper | half as damp |
|---|---|---|
| 0 | 0 | 0 |
| 11.99 | 0 | 0 |
| 12 | 0.25 | 0.125 |
| 24 | 0.5 | 0.25 |
| 36 | 0.75 | 0.375 |
| 48 | 1 | 0.5 |
| 72 | 1 | 0.5 |
| 96 | 1 | 0.5 |
Source: The released game's rust step for a pushpin in a time skip.



The reaction rules never name a tool. The code says so in the rules' own contract, and we checked: anything that writes acid, soda or tannin into the paper joins every reaction that reads them. Most of the links below come from that. Each one has a test in the released game.
Shared: washing soda in the ash
Blue round the ash, purple further off.
Heat and fire · pinned by a test
Shared: heavy CO2 layer in the air
The candle goes out with no wind; one across the page burns on.
Air that really moves · pinned by a test
Shared: acid
Pink at the plus clip, and the acid itself helps carry the current.
Electricity · pinned by a test
Shared: the dough's gas
It rises as you watch, with no froth, and bakes full of holes.
Dough, mould and time · pinned by a test
Shared: acid
No ant gets past: they won't walk into the acid or its smell.
Animals with their own minds · pinned by a test
Shared: each dissolved thing's share in the water
The acid spreads with the water while most of the dye stays put: a pink spot with a soft rim, never a white disc.
Water in paper · pinned by a test