Shared: heavy gas (CO₂ depth)
Pour vinegar on baking soda beside a candle
The fizz's CO₂ creeps to the candle's foot and starves the flame, while the wind stays under the 40 that blows a candle out. A test checks it.
Game Tailors
Source: Air that really moves
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
Air that really moves
Above every drawing in Professor Oops lies a sheet of moving air. A fan, a hair dryer, a rolling football and a hot cup all push that same air. Flour, smoke, smells, candle flames and puddles each answer it in their own way. That's why a candle can be blown out by things nobody planned for.

Hold the fan over the paper. Its air comes straight down, hits the page and spreads out along it, fastest a little way out from where you aim, the way air from a real fan spreads over a table. The hair dryer does the same and adds heat. A hand swept low over the page, a football rolling past, a monster truck or a running puppy push air ahead of them and let it curl round their sides. A slap squeezes air out from under the palm. The vacuum draws air in. A startled pigeon flaps it about. Hot things on the page, like a fire, a hot cup or a hot iron, pull air in along the paper as their warm air rises.
All of them write into one grid of moving air, cells about 5 mm across, laid over the whole sheet. Nothing in the game says "the fan blows out the candle". The fan only writes wind. The candle only checks how fast the air is moving at its flame. A football that happens to roll past at the right speed puts it out just as well, and so does a hand patted down beside it.
When nothing is moving and nothing is warm, the air goes to sleep and costs nothing at all.
The gust's speed climbs from 0 at the aim point to its peak, 0.841 of the gust speed, a quarter of the way out, and falls back to 0 at the jet's edge.
| distance from the aim ÷ jet radius (72 cells for the fan) | the fan's gust |
|---|---|
| 0 | 0 |
| 0.02 | 0.079 |
| 0.04 | 0.1561 |
| 0.06 | 0.2313 |
| 0.08 | 0.3044 |
| 0.1 | 0.3755 |
| 0.12 | 0.4446 |
| 0.14 | 0.5115 |
| 0.16 | 0.5764 |
| 0.18 | 0.6392 |
| 0.2 | 0.6998 |
| 0.22 | 0.7581 |
| 0.24 | 0.8143 |
| 0.26 | 0.8347 |
| 0.28 | 0.8211 |
| 0.3 | 0.8073 |
| 0.32 | 0.7934 |
| 0.34 | 0.7793 |
| 0.36 | 0.7651 |
| 0.38 | 0.7506 |
| 0.4 | 0.736 |
| 0.42 | 0.7212 |
| 0.44 | 0.7062 |
| 0.46 | 0.6909 |
| 0.48 | 0.6755 |
| 0.5 | 0.6598 |
| 0.52 | 0.6438 |
| 0.54 | 0.6276 |
| 0.56 | 0.611 |
| 0.58 | 0.5942 |
| 0.6 | 0.5771 |
| 0.62 | 0.5596 |
| 0.64 | 0.5417 |
| 0.66 | 0.5235 |
| 0.68 | 0.5048 |
| 0.7 | 0.4856 |
| 0.72 | 0.4659 |
| 0.74 | 0.4456 |
| 0.76 | 0.4247 |
| 0.78 | 0.4031 |
| 0.8 | 0.3807 |
| 0.82 | 0.3574 |
| 0.84 | 0.333 |
| 0.86 | 0.3074 |
| 0.88 | 0.2802 |
| 0.9 | 0.2512 |
| 0.92 | 0.2197 |
| 0.94 | 0.1849 |
| 0.96 | 0.145 |
| 0.98 | 0.0956 |
| 1 | 0 |
Source: The shape of the fan's gust in the game. At its fastest ring, a run of the real engine measured 224 cells/s.

A feather slides off in a breeze of 12 cells per second. Confetti needs 16, a leaf 28. A candle goes out at 40. Flour lifts off the paper at 70, salt at 171, sand at 221. Each of those numbers belongs to the thing on the page. None of them knows what made the wind. The ladder below lists what gives way first.
For powders the number comes from one property, grain size: the finer the grain, the gentler the wind that lifts it. The fan's fastest ring of air reaches about 224 cells per second in the game. That lifts flour and salt and only just reaches sand. In a run of the real engine, sand under the fan stayed where it was everywhere but one spot by the page's edge, where 1 % of it crept. So a fan lifts flour and leaves sand.
The lifted flour comes down again as flour. It rides the wind as a cloud of specks and settles in pale patches further out. A test checks that no powder is made or lost on the way. That dusting clings to the paper's tooth, so a spot gives up its powder to a draught once, and the next gust finds nothing loose to take.
The ladder also shows a seam we left in. In the released game the hair dryer's air is a little slower than the fan's, because its speed setting is lower. The next update next update puts the hand and the hair dryer on a real-speed scale, in the game's slow motion, so the dryer outblows the fan and a waved hand stays gentler than both.
| Wind, cells/s | What gives way |
|---|---|
| 0.5 | Below this the whole air goes to sleep |
| 3 | A creature following a smell turns into the wind |
| 12 | A feather slides; a fly is startled by the gust getting up |
| 16 | Confetti slides |
| 18 | A sticker’s edge lifts (more if it’s stuck well) |
| 25 | A sitting fly takes off |
| 28 | A leaf slides |
| 30 | Cap on a fire’s own draught (its target); a pigeon braces against the wind up to here |
| 32 | Wind starts to work on the paper: water moves |
| 38 | Cornflour lifts |
| 40 | A candle goes out; flames lean and fan; ripe mould sheds spores |
| 42 | Confetti lifts into the air (2.6 × 16) |
| 60 | Runny paint starts to move |
| 70 | Flour lifts |
| 120 | Soapy water whips up into foam |
| 150 | A lone flame is blown out (more with fire round it) |
| 170 | ▲ Hair dryer, its fastest ring (released game, measured) |
| 171 | Salt lifts |
| 221 | Sand lifts |
| 224 | ▲ Fan, its fastest ring (measured) |
Speeds in paper cells per second (a cell is about half a millimetre). Each threshold belongs to the thing that gives way, set in its own part of the game. ▲ Sources: peak wind with the tool held 3 s on a desktop page, one run of the real engine, the released dryer without its heat.
A desktop page, 512 × 384 cells, under the game's 64 × 48 air grid. The fan is already blowing between the flour and the salt. Pick a tool and press and hold on the page (or sweep the hand fast); without a pointer, press Blow again or Sweep a hand across. What to look for: flour streams away at the edge of the gust, salt only where the air is fastest, sand almost never. Candles in the gust go out at 40 cells/s. This runs the game's wind step, its multigrid solve, lift rule and thresholds; the hair dryer's heat is left out, and specks are lifted from 4 cells up for the picture.

Things in the air don't take the wind's speed at once. A speck of dust catches up in under a tenth of a second. Smoke, steam, sparks and embers take about a quarter of a second. A flying drop of paint keeps most of its own course for seconds, so a fan bends its arc without stopping it. The game gives each kind of particle its own grip on the air, and the same gust sorts them.
Confetti, leaves and feathers lying on the paper slide past their own wind speed, and lift into the air in a stronger wind. In the air they flutter and warm up in hot air. Confetti rising out of a fire in a breeze can catch alight in flight and land burning on the far side of a cut in the paper, lighting it there. Without the confetti, the same fire stops at the cut. A test checks both.
After half a second dust has taken up all but 0.2 % of the wind's speed, smoke 86 %, flames 63 % and a drop of paint 18 %.
| seconds after a gust starts | dust and motes | smoke, steam, sparks, embers | flames | drops of paint or water |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0.05 | 0.4512 | 0.1813 | 0.0952 | 0.0198 |
| 0.1 | 0.6988 | 0.3297 | 0.1813 | 0.0392 |
| 0.15 | 0.8347 | 0.4512 | 0.2592 | 0.0582 |
| 0.2 | 0.9093 | 0.5507 | 0.3297 | 0.0769 |
| 0.25 | 0.9502 | 0.6321 | 0.3935 | 0.0952 |
| 0.3 | 0.9727 | 0.6988 | 0.4512 | 0.1131 |
| 0.35 | 0.985 | 0.7534 | 0.5034 | 0.1306 |
| 0.4 | 0.9918 | 0.7981 | 0.5507 | 0.1479 |
| 0.45 | 0.9955 | 0.8347 | 0.5934 | 0.1647 |
| 0.5 | 0.9975 | 0.8647 | 0.6321 | 0.1813 |
| 0.55 | 0.9986 | 0.8892 | 0.6671 | 0.1975 |
| 0.6 | 0.9993 | 0.9093 | 0.6988 | 0.2134 |
| 0.65 | 0.9996 | 0.9257 | 0.7275 | 0.2289 |
| 0.7 | 0.9998 | 0.9392 | 0.7534 | 0.2442 |
| 0.75 | 0.9999 | 0.9502 | 0.7769 | 0.2592 |
| 0.8 | 0.9999 | 0.9592 | 0.7981 | 0.2739 |
| 0.85 | 1 | 0.9666 | 0.8173 | 0.2882 |
| 0.9 | 1 | 0.9727 | 0.8347 | 0.3023 |
| 0.95 | 1 | 0.9776 | 0.8504 | 0.3161 |
| 1 | 1 | 0.9817 | 0.8647 | 0.3297 |
| 1.05 | 1 | 0.985 | 0.8775 | 0.343 |
| 1.1 | 1 | 0.9877 | 0.8892 | 0.356 |
| 1.15 | 1 | 0.9899 | 0.8997 | 0.3687 |
| 1.2 | 1 | 0.9918 | 0.9093 | 0.3812 |
| 1.25 | 1 | 0.9933 | 0.9179 | 0.3935 |
| 1.3 | 1 | 0.9945 | 0.9257 | 0.4055 |
| 1.35 | 1 | 0.9955 | 0.9328 | 0.4173 |
| 1.4 | 1 | 0.9963 | 0.9392 | 0.4288 |
| 1.45 | 1 | 0.997 | 0.945 | 0.4401 |
| 1.5 | 1 | 0.9975 | 0.9502 | 0.4512 |
| 1.55 | 1 | 0.998 | 0.955 | 0.4621 |
| 1.6 | 1 | 0.9983 | 0.9592 | 0.4727 |
| 1.65 | 1 | 0.9986 | 0.9631 | 0.4831 |
| 1.7 | 1 | 0.9989 | 0.9666 | 0.4934 |
| 1.75 | 1 | 0.9991 | 0.9698 | 0.5034 |
| 1.8 | 1 | 0.9993 | 0.9727 | 0.5132 |
| 1.85 | 1 | 0.9994 | 0.9753 | 0.5229 |
| 1.9 | 1 | 0.9995 | 0.9776 | 0.5323 |
| 1.95 | 1 | 0.9996 | 0.9798 | 0.5416 |
| 2 | 1 | 0.9997 | 0.9817 | 0.5507 |
| 2.05 | 1 | 0.9997 | 0.9834 | 0.5596 |
| 2.1 | 1 | 0.9998 | 0.985 | 0.5683 |
| 2.15 | 1 | 0.9998 | 0.9864 | 0.5768 |
| 2.2 | 1 | 0.9998 | 0.9877 | 0.5852 |
| 2.25 | 1 | 0.9999 | 0.9889 | 0.5934 |
| 2.3 | 1 | 0.9999 | 0.9899 | 0.6015 |
| 2.35 | 1 | 0.9999 | 0.9909 | 0.6094 |
| 2.4 | 1 | 0.9999 | 0.9918 | 0.6171 |
| 2.45 | 1 | 0.9999 | 0.9926 | 0.6247 |
| 2.5 | 1 | 1 | 0.9933 | 0.6321 |
| 2.55 | 1 | 1 | 0.9939 | 0.6394 |
| 2.6 | 1 | 1 | 0.9945 | 0.6465 |
| 2.65 | 1 | 1 | 0.995 | 0.6535 |
| 2.7 | 1 | 1 | 0.9955 | 0.6604 |
| 2.75 | 1 | 1 | 0.9959 | 0.6671 |
| 2.8 | 1 | 1 | 0.9963 | 0.6737 |
| 2.85 | 1 | 1 | 0.9967 | 0.6802 |
| 2.9 | 1 | 1 | 0.997 | 0.6865 |
| 2.95 | 1 | 1 | 0.9973 | 0.6927 |
| 3 | 1 | 1 | 0.9975 | 0.6988 |
Source: The game's own grip curves: each kind of particle eases toward the wind at its own rate, set per kind, not per size.
Air can't pile up in one place. Push some forward and the air around it has to get out of the way and swirl back round. In a fluid simulation that push-back is called pressure, and working it out is the expensive part, because every cell depends on every other.
The game works it out on four copies of the air grid, each with cells twice as big as the last. The coarse grids settle the big, slow shape of the push-back cheaply, and the finer ones fix the detail. This trick is called multigrid. Every sixtieth of a second it gets within about 3 % of the fully worked-out answer (on the test's wind field) for the price of about three and a half passes over the grid. Plain passes over the grid would need about 128 to get as close. Counting all the extra bookkeeping, that is still over twenty times less work.
Then the game applies only part of that push-back, and only nearby. That's on purpose. Seen from above, a fan blowing down really does add air to the layer over the paper, and a fire really does take some away upward. Pressure solved in full, right across the page, pushes back on a fan's gust and a fire's draught until they blow a fifth to a third weaker. Try the controls below and you'll see the gust fade.
The solve is also exactly fair. Blow to the left or blow to the right, and the push-back comes out as a perfect mirror image, the same to the last bit. The older solver it replaced leaned: draughts drew in 4 % faster from the left and from above, and on the phone's grid 13 % faster from below.
The four levels of the solve on a desktop page. Each coarse cell is four fine ones. The coarse grids settle the big shape of the push-back cheaply, and the fine ones fix the detail.
Full multigrid, as the game runs it, is 2.9 % off after 3.63 sweeps; plain sweeps are still 15.5 % off after 64 and 3.1 % after 128.
| work, in sweeps over the full grid | plain damped Jacobi sweeps | V-cycles from nothing (2.69 each) | full multigrid, as the game runs it |
|---|---|---|---|
| 1 | 96.3 | ||
| 2 | 93 | ||
| 2.69 | 20.6 | ||
| 3.63 | 2.9 | ||
| 4 | 86.8 | ||
| 5.38 | 4.7 | ||
| 8 | 76.2 | ||
| 8.07 | 1.1 | ||
| 10.76 | 0.28 | ||
| 16 | 59.5 | ||
| 16.14 | 0.02 | ||
| 32 | 37.3 | ||
| 64 | 15.5 | ||
| 128 | 3.1 | ||
| 256 | 0.18 |
Source: Computed for this site with a copy of the game's solver on the wind field of its own test, against a fully converged answer.
A unit push gives 0.471 where it is applied, 0.084 at 24 cells and under 0.002 at 112 cells.
| distance from a unit push, paper cells | screened pressure |
|---|---|
| 0 | 0.471 |
| 8 | 0.231 |
| 16 | 0.133 |
| 24 | 0.084 |
| 32 | 0.055 |
| 40 | 0.038 |
| 48 | 0.026 |
| 56 | 0.018 |
| 64 | 0.013 |
| 72 | 0.0092 |
| 96 | 0.0034 |
| 112 | 0.0018 |
Source: Converged solve of a unit push on the 64 × 48 grid, computed for this site with a copy of the game's solver.
A fan is held over the middle of a desktop page; drag to move it, or press Move the fan. Red is air spreading out, blue is air drawn in (averaged over 3 × 3 air cells). This page runs a copy of the game's solver. What to look for: at the game's 0.2 the gust spreads wide with swirls round it. Turn the push-back up to 1 with no screening and the gust's fastest air drops by about a quarter. Every half second the page also solves the wind and its mirror image and counts the cells that differ.
Roll a football fast past a lit candle, with a few millimetres of clear paper between them, and the candle goes out. Roll it slowly along the same line and the candle burns on. A test checks both. Pat the paper right next to a candle and the air squeezed out from under your palm puts it out too. A monster truck's wake whirls confetti up beside its path without touching it.
The ball doesn't know about candles. As it moves, it carries the air right by it along and pushes the air round it forward and back round its sides, in the textbook pattern for air flowing round a moving cylinder. The candle reads the wind at its flame. Past 40 cells per second, it's out.
The hand works the same way. In the released game a hand stirs the air at its full speed on the screen, so an ordinary sweep blows harder than the hair dryer beside it. The next update next update scales a hand's draught to its real speed, in the game's slow motion, and a waved hand stays under the fan.
A football (radius 18 cells) rolls past a candle again and again on a 320 × 160 page, the size of the game's own test. Arrows show the air it moves. What to look for: at 320 cells/s and 24 cells away the candle goes out; at 45 it stays lit, as in the game's own test. Find the slowest roll that still puts it out, then move the candle further away.

The air carries more than speed. It holds eight gases: smoke, the heavy CO₂ from a fizz, chlorine, four smells (sweet, foul, sour and sharp) and mould spores. Each drifts with the wind, spreads on its own and fades into the room at its own rate.
CO₂ is heavier than air. Pour vinegar on baking soda next to a candle and the gas from the fizz lies on the paper and creeps outward like spilled water, faster where it lies deeper. When it gets deep enough round the candle's foot, the flame is starved and goes out, with no breath of wind. A candle across the page stays lit. A fire is choked where it lies a little deeper. Tip a tablet and the CO₂ runs downhill, while smoke drifts up.
Smells work the same way. Food on the page keeps the air above it smelling, the wind carries the smell downwind, and creatures follow it. In a test with a steady breeze past a banana, flies arrive from downwind and fly up the smell; in play the fan blows only while it's held, and flies find food left out by themselves within minutes. A puppy finds peanut butter far upwind, further than it could see it. Real flies turn upwind within a fraction of a second of meeting an odour Vanbreugel 2014; that study was found after the rule was written, and agrees with it. Bounce a ball on mouldy bread in a breeze and, after a time skip, new mould grows downwind.
Chlorine, from bleach meeting vinegar, drifts off the page into the room. Open the window, put on a mask or wave air about, or in the end you have to leave the room. Waving the vacuum about airs the room out, because the room counts how much the air is moving, whatever moves it.
Vinegar is poured on a heap of baking soda at the start. Three candles stand 26, 50 and 84 cells away; the 26 and the 84 match the game's test. The game never draws CO₂; here it's tinted so you can see it. There is no wind in this demo at all. What to look for: the pool creeps out and the nearest candle goes out about a second after the pour. Tilt the page and pour again: the gas runs downhill and the depth at the far candle climbs.

Hot air rises, so the air along the paper flows in toward hot things such as a fire, a hot cup or a hot iron. Put a hot cup down and over eight seconds it slowly draws a feather in; a cold cup doesn't, and a test checks both. The game also knows how high the heat is. A candle's flame stands up on its wick, so its warm air rises from up there and leaves the confetti round its foot alone. In a run of the real engine, a hot cup drew air at 20 cells per second and a lit candle on its own drew none.
That draught is kept gentle by design. Its target is capped just under the speed where wind starts to push puddles, so a fire's own pull mostly leaves the paint round it alone. The cap is on a target, not a hard limit. In runs of the real engine, heat held mid-page drew air at 23 to 26 cells per second, a big fire (radius 40) reached 33.5, just past the line, and heat near the page's edge drew 43 to 48.
Wind dries the paper, faster the faster it blows. Hot wind dries much faster: the hair dryer's hot air dries several times faster than the fan's cool air at the same speed. A breeze fans a small fire into a racing one, leans its flames and pushes its front downwind. A candle goes out at 40 cells per second; a lone flame on burning paper needs a far stronger wind, and more again with fire round it.
Each chain below runs through the air and nothing else. No code joins the first box to the last.
Shared: heavy gas (CO₂ depth)
The fizz's CO₂ creeps to the candle's foot and starves the flame, while the wind stays under the 40 that blows a candle out. A test checks it.
Shared: wind
Flames lean and fan, and the burning front is pushed downwind. A test checks it.
Shared: wind on the paper
The water is pushed along, the same distance whichever way you blow, within 10 %. A test checks it.
Shared: smell gas
Flies arrive from downwind and fly up the smell to the banana. A test checks it.
Shared: spores (gas)
The shaking sheds spores, the breeze carries them, and after a time skip new mould grows on food downwind. A test checks it.
Shared: a squeeze film
Air squeezed from under the palm nudges the confetti outward. A test checks it.