---
title: "Dough, mould and time"
description: "How Professor Oops makes dough rise, mould spread and cress sprout, and how a button works out three days in a moment."
source_name: "Game Tailors"
source_url: "https://professoroops.com/en/inside/living/"
site_home: "https://professoroops.com/"
source_description: "The drawing app where the paper is real. No ads. No accounts. No personal data: only anonymous counts, which you can switch off."
locale: "en"
legal:
  - "Game Tailors · Schieweg 15Y-40, 2627 AN Delft (NL)"
  - "KvK 92437702 · VAT NL866044474B01"
  - "info@gametailors.com · +31 6 4227 5919"
copyright: "© 2026 Game Tailors"
published_at: "2026-11-10T12:03:23.366Z"
modified_at: "2026-11-10T12:03:23.366Z"
---

# Dough, mould and time

## Dough rises, mould spreads and cress sprouts, and a button skips three days ahead

Mix flour and water on the page and you have dough. Sprinkle yeast on it and keep it warm, and it rises, as slowly as real dough does. Leave ketchup out and it grows fuzzy mould; leave honey out and it doesn't. Water some cress seeds and they come up. Some of this takes days, so the game has a "Wait 3 days" button, and it works out what those days would do instead of playing them.

[For engineers](<#hood-engineers>)

![Painted illustration of the painter peering through a magnifying glass at bread and a strawberry with fuzzy mould spots, beside a calendar with three days crossed off.](<https://professoroops.com/_assets/entity_AMqwn3rMfIoTaSoABf4t.webp>)

## Kneaded dough holds its shape, keeps a dent and traps the gas that makes it rise

Dough on the page isn't a picture of dough. Sieve flour onto a wet patch and it turns into a soft lump. From then on, each tiny spot of that lump keeps track of what's in it: how much of it is gas, how much live yeast it holds, how much salt and sugar went in, how many sheets of butter are folded through it, and how stretchy it has become.

Knead it with your finger and it gets stretchier. Stretchy dough holds its shape, so a stamp or a toy car leaves a dent that stays. It also holds on to gas. That one number decides most of what happens next: kneaded dough keeps most of the gas the yeast makes and rises, while a shaggy, unkneaded lump lets most of it escape and spreads sideways. Seen from above, an hour's rise hardly shows; what you do see is the kneaded lump gone smooth and the other still shaggy.

Any sliding contact kneads: a hand rubbed across the dough works it, while a ball rolling over it only presses, and a test pins the difference. The rolling pin and a fold work it too.

Outside the table of materials and the sieve's list of what it sifts, the simulation never names dough, flour or yeast. Dough's behaviour comes from columns in that table \(how well it kneads, how much gas it holds\), so by our reading a second kind of dough would need only one more row. There isn't one yet to prove it.

Dough rises, mould spreads and cress sprouts, and a button skips three days ahead

For engineers

### Dough rises, mould spreads and cress sprouts, and a button skips three days ahead

Dough is goop with a few extra amounts per unit of height \(gas, yeast, salt, sugar, sheets of fat, flour dust\), and its gluten is goop's own set part. Yeast makes gas at a rate set by warmth, salt and sugar, and the gluten keeps a share of it through a closed-form solution, so a long step stays exact without many small ones. A mould colony's size is a formula of its age, so three days is one evaluation. Every wait, the oven, the freezer and a week in the sun run one recipe, given only a temperature and a number of hours, in slices of about 6 ms inside the Web Worker. A test holds the sliced result bit-identical to running it in one go.

[Under the hood](<#hood-dough>)

Kneaded dough holds its shape, keeps a dent and traps the gas that makes it rise

Under the hood

### Kneaded dough holds its shape, keeps a dent and traps the gas that makes it rise

A dough spot is an ordinary goop spot, the same kind that holds paint or ketchup, with a handful of extra amounts that travel with it when it flows: how much is gas, the live yeast, salt, sugar, sheets of fat, and dry flour lying on its face.

They're kept per unit of height. When a spot rises, the same amounts are spread through more height, so a rise or a squash never creates or loses yeast or salt.

**Gluten is goop's own set part.** Every runny thing in the game already has a share that has set, and the movers and the save file already carry and respect it. For dough, that share is the gluten. Reusing it is why kneaded dough holds a dome and keeps a dent with no dough code in the movers at all.

**Kneading** moves the gluten towards its ceiling, quickly at first and then more slowly, in proportion to the work done: how hard, over how much of the dough, and how far it moved. Any sliding contact counts. The rolling pin and a fold build gluten without smearing the fat.

Try it: prove a dough The game's own ruleA kneaded dough with one dose of yeast proving at 30 °C, two hours a second; the faint curve is its whole future. Move the warmth, knead it less \(0.15 is shaggy\), or change what's in it. **What to look for:** it doubles in about an hour at 30 °C and tops out near 2.45 times its size at any warmth from 3 to 50 °C, then tears and sinks. Hotter than 50 °C the yeast dies before the dough gets far. Unkneaded dough stops below 1.7 times and spreads wider. This is the game's own yeast rule for one spot; the dome follows the game's own spreading rule, and the pores are drawn.

![A dough proving: its dome on the left, its volume over 48 hours on the right](<https://professoroops.com/_assets/entity_9MxgknpJliYhvXjxUAJv.png>)

- 1.0×
- 1.5×
- 2.0×
- 2.5×
- 0 h
- 24 h
- 48 h
- volume × start

Warmth30 °C

Kneaded0.90

In itplainsalt 1salt 5pinch of sugarsugar 3yeast ×4

proving for—

the dough is—

volume—

gas share—

gluten—

live yeast—

peak—

peak at—

Kneaded dough rises to about 2.45× at every warmth shown, then sinksPinned by a test: 30 °C for an hour gives 1.7 to 2.3× \(here 1.85×\), 15 °C 1.1 to 1.5×.

At 30 °C it reaches 1.86× in an hour and peaks at 2.46× after 4.0 h; at 5 °C it peaks at 2.42× only after 29.7 h.

- 5 °C
- 20 °C
- 30 °C
- 35 °C

Data table

Kneaded dough rises to about 2.45× at every warmth shown, then sinks

| hours | 5 °C | 20 °C | 30 °C | 35 °C |
| --- | --- | --- | --- | --- |
| 0 | 1 | 1 | 1 | 1 |
| 0.167 | 1.039 | 1.125 | 1.257 | 1.358 |
| 0.333 | 1.075 | 1.229 | 1.437 | 1.58 |
| 0.5 | 1.11 | 1.318 | 1.575 | 1.74 |
| 0.667 | 1.142 | 1.395 | 1.686 | 1.863 |
| 0.833 | 1.173 | 1.463 | 1.779 | 1.963 |
| 1 | 1.202 | 1.525 | 1.858 | 2.046 |
| 1.167 | 1.23 | 1.58 | 1.927 | 2.117 |
| 1.333 | 1.257 | 1.63 | 1.987 | 2.178 |
| 1.5 | 1.282 | 1.677 | 2.041 | 2.231 |
| 1.667 | 1.307 | 1.72 | 2.089 | 2.279 |
| 1.833 | 1.33 | 1.759 | 2.133 | 2.321 |
| 2 | 1.353 | 1.796 | 2.173 | 2.359 |
| 2.167 | 1.374 | 1.831 | 2.209 | 2.394 |
| 2.333 | 1.395 | 1.863 | 2.242 | 2.425 |
| 2.5 | 1.416 | 1.894 | 2.273 | 2.45 |
| 2.667 | 1.435 | 1.923 | 2.302 | 2.465 |
| 2.833 | 1.454 | 1.951 | 2.329 | 2.459 |
| 3 | 1.473 | 1.976 | 2.354 | 2.406 |
| 3.167 | 1.491 | 2.001 | 2.377 | 2.307 |
| 3.333 | 1.508 | 2.024 | 2.399 | 2.193 |
| 3.5 | 1.525 | 2.047 | 2.419 | 2.093 |
| 3.667 | 1.541 | 2.068 | 2.436 | 2.008 |
| 3.833 | 1.557 | 2.088 | 2.448 | 1.936 |
| 4 | 1.573 | 2.108 | 2.455 | 1.874 |
| 4.167 | 1.588 | 2.127 | 2.45 | 1.82 |
| 4.333 | 1.602 | 2.145 | 2.427 | 1.774 |
| 4.5 | 1.617 | 2.162 | 2.372 | 1.736 |
| 4.667 | 1.631 | 2.178 | 2.284 | 1.708 |
| 4.833 | 1.644 | 2.194 | 2.189 | 1.688 |
| 5 | 1.658 | 2.21 | 2.096 | 1.673 |
| 5.167 | 1.671 | 2.224 | 2.011 | 1.662 |
| 5.333 | 1.683 | 2.239 | 1.938 | 1.653 |
| 5.5 | 1.696 | 2.253 | 1.876 | 1.646 |
| 5.667 | 1.708 | 2.266 | 1.822 | 1.641 |
| 5.833 | 1.72 | 2.279 | 1.775 | 1.637 |
| 6 | 1.731 | 2.292 | 1.737 | 1.633 |
| 6.167 | 1.743 | 2.304 | 1.709 | 1.63 |
| 6.333 | 1.754 | 2.315 | 1.688 | 1.628 |
| 6.5 | 1.765 | 2.327 | 1.672 | 1.625 |
| 6.667 | 1.776 | 2.338 | 1.661 | 1.624 |
| 6.833 | 1.786 | 2.349 | 1.652 | 1.622 |
| 7 | 1.797 | 2.359 | 1.645 | 1.62 |
| 7.167 | 1.807 | 2.37 | 1.639 | 1.619 |
| 7.333 | 1.817 | 2.379 | 1.635 | 1.618 |
| 7.5 | 1.826 | 2.389 | 1.631 | 1.617 |
| 7.667 | 1.836 | 2.398 | 1.628 | 1.616 |
| 7.833 | 1.845 | 2.406 | 1.625 | 1.615 |
| 8 | 1.855 | 2.414 | 1.623 | 1.615 |
| 8.167 | 1.864 | 2.421 | 1.621 | 1.614 |
| 8.333 | 1.873 | 2.427 | 1.619 | 1.613 |
| 8.5 | 1.881 | 2.432 | 1.617 | 1.613 |
| 8.667 | 1.89 | 2.436 | 1.616 | 1.612 |
| 8.833 | 1.898 | 2.438 | 1.615 | 1.612 |
| 9 | 1.907 | 2.438 | 1.614 | 1.611 |
| 9.167 | 1.915 | 2.436 | 1.613 | 1.611 |
| 9.333 | 1.923 | 2.432 | 1.612 | 1.61 |
| 9.5 | 1.931 | 2.424 | 1.611 | 1.61 |
| 9.667 | 1.939 | 2.412 | 1.611 | 1.609 |
| 9.833 | 1.947 | 2.395 | 1.61 | 1.609 |
| 10 | 1.954 | 2.374 | 1.609 | 1.609 |
| 10.167 | 1.962 | 2.346 | 1.609 | 1.608 |
| 10.333 | 1.969 | 2.312 | 1.608 | 1.608 |
| 10.5 | 1.976 | 2.272 | 1.608 | 1.608 |
| 10.667 | 1.983 | 2.227 | 1.607 | 1.607 |
| 10.833 | 1.99 | 2.177 | 1.607 | 1.607 |
| 11 | 1.997 | 2.125 | 1.607 | 1.607 |
| 11.167 | 2.004 | 2.071 | 1.606 | 1.606 |
| 11.333 | 2.011 | 2.017 | 1.606 | 1.606 |
| 11.5 | 2.018 | 1.965 | 1.606 | 1.606 |
| 11.667 | 2.024 | 1.915 | 1.605 | 1.606 |
| 11.833 | 2.031 | 1.868 | 1.605 | 1.605 |
| 12 | 2.037 | 1.825 | 1.605 | 1.605 |
| 12.167 | 2.043 | 1.785 | 1.604 | 1.605 |
| 12.333 | 2.049 | 1.749 | 1.604 | 1.605 |
| 12.5 | 2.056 | 1.717 | 1.604 | 1.604 |
| 12.667 | 2.062 | 1.693 | 1.604 | 1.604 |
| 12.833 | 2.068 | 1.676 | 1.603 | 1.604 |
| 13 | 2.074 | 1.663 | 1.603 | 1.604 |
| 13.167 | 2.079 | 1.652 | 1.603 | 1.604 |
| 13.333 | 2.085 | 1.644 | 1.603 | 1.603 |
| 13.5 | 2.091 | 1.638 | 1.602 | 1.603 |
| 13.667 | 2.096 | 1.632 | 1.602 | 1.603 |
| 13.833 | 2.102 | 1.628 | 1.602 | 1.603 |
| 14 | 2.107 | 1.624 | 1.602 | 1.602 |
| 14.167 | 2.113 | 1.621 | 1.602 | 1.602 |
| 14.333 | 2.118 | 1.618 | 1.601 | 1.602 |
| 14.5 | 2.123 | 1.616 | 1.601 | 1.602 |
| 14.667 | 2.129 | 1.614 | 1.601 | 1.602 |
| 14.833 | 2.134 | 1.612 | 1.601 | 1.602 |
| 15 | 2.139 | 1.61 | 1.601 | 1.601 |
| 15.167 | 2.144 | 1.609 | 1.601 | 1.601 |
| 15.333 | 2.149 | 1.608 | 1.6 | 1.601 |
| 15.5 | 2.154 | 1.607 | 1.6 | 1.601 |
| 15.667 | 2.159 | 1.606 | 1.6 | 1.601 |
| 15.833 | 2.164 | 1.605 | 1.6 | 1.6 |
| 16 | 2.168 | 1.604 | 1.6 | 1.6 |
| 16.167 | 2.173 | 1.603 | 1.6 | 1.6 |
| 16.333 | 2.178 | 1.603 | 1.599 | 1.6 |
| 16.5 | 2.182 | 1.602 | 1.599 | 1.6 |
| 16.667 | 2.187 | 1.601 | 1.599 | 1.6 |
| 16.833 | 2.191 | 1.601 | 1.599 | 1.599 |
| 17 | 2.196 | 1.6 | 1.599 | 1.599 |
| 17.167 | 2.2 | 1.6 | 1.599 | 1.599 |
| 17.333 | 2.205 | 1.599 | 1.598 | 1.599 |
| 17.5 | 2.209 | 1.599 | 1.598 | 1.599 |
| 17.667 | 2.213 | 1.599 | 1.598 | 1.599 |
| 17.833 | 2.218 | 1.598 | 1.598 | 1.599 |
| 18 | 2.222 | 1.598 | 1.598 | 1.598 |
| 18.167 | 2.226 | 1.598 | 1.598 | 1.598 |
| 18.333 | 2.23 | 1.598 | 1.598 | 1.598 |
| 18.5 | 2.234 | 1.597 | 1.598 | 1.598 |
| 18.667 | 2.238 | 1.597 | 1.597 | 1.598 |
| 18.833 | 2.242 | 1.597 | 1.597 | 1.598 |
| 19 | 2.246 | 1.597 | 1.597 | 1.598 |
| 19.167 | 2.25 | 1.596 | 1.597 | 1.597 |
| 19.333 | 2.254 | 1.596 | 1.597 | 1.597 |
| 19.5 | 2.258 | 1.596 | 1.597 | 1.597 |
| 19.667 | 2.262 | 1.596 | 1.597 | 1.597 |
| 19.833 | 2.265 | 1.596 | 1.597 | 1.597 |
| 20 | 2.269 | 1.595 | 1.596 | 1.597 |
| 20.167 | 2.273 | 1.595 | 1.596 | 1.597 |
| 20.333 | 2.277 | 1.595 | 1.596 | 1.597 |
| 20.5 | 2.28 | 1.595 | 1.596 | 1.596 |
| 20.667 | 2.284 | 1.595 | 1.596 | 1.596 |
| 20.833 | 2.287 | 1.595 | 1.596 | 1.596 |
| 21 | 2.291 | 1.595 | 1.596 | 1.596 |
| 21.167 | 2.294 | 1.595 | 1.596 | 1.596 |
| 21.333 | 2.298 | 1.594 | 1.595 | 1.596 |
| 21.5 | 2.301 | 1.594 | 1.595 | 1.596 |
| 21.667 | 2.305 | 1.594 | 1.595 | 1.596 |
| 21.833 | 2.308 | 1.594 | 1.595 | 1.596 |
| 22 | 2.311 | 1.594 | 1.595 | 1.595 |
| 22.167 | 2.315 | 1.594 | 1.595 | 1.595 |
| 22.333 | 2.318 | 1.594 | 1.595 | 1.595 |
| 22.5 | 2.321 | 1.594 | 1.595 | 1.595 |
| 22.667 | 2.325 | 1.593 | 1.595 | 1.595 |
| 22.833 | 2.328 | 1.593 | 1.595 | 1.595 |
| 23 | 2.331 | 1.593 | 1.594 | 1.595 |
| 23.167 | 2.334 | 1.593 | 1.594 | 1.595 |
| 23.333 | 2.337 | 1.593 | 1.594 | 1.595 |
| 23.5 | 2.34 | 1.593 | 1.594 | 1.595 |
| 23.667 | 2.344 | 1.593 | 1.594 | 1.594 |
| 23.833 | 2.347 | 1.593 | 1.594 | 1.594 |
| 24 | 2.35 | 1.593 | 1.594 | 1.594 |
| 24.167 | 2.353 | 1.593 | 1.594 | 1.594 |
| 24.333 | 2.356 | 1.593 | 1.594 | 1.594 |
| 24.5 | 2.359 | 1.592 | 1.594 | 1.594 |
| 24.667 | 2.362 | 1.592 | 1.594 | 1.594 |
| 24.833 | 2.365 | 1.592 | 1.593 | 1.594 |
| 25 | 2.367 | 1.592 | 1.593 | 1.594 |
| 25.167 | 2.37 | 1.592 | 1.593 | 1.594 |
| 25.333 | 2.373 | 1.592 | 1.593 | 1.593 |
| 25.5 | 2.376 | 1.592 | 1.593 | 1.593 |
| 25.667 | 2.378 | 1.592 | 1.593 | 1.593 |
| 25.833 | 2.381 | 1.592 | 1.593 | 1.593 |
| 26 | 2.384 | 1.592 | 1.593 | 1.593 |
| 26.167 | 2.386 | 1.592 | 1.593 | 1.593 |
| 26.333 | 2.389 | 1.592 | 1.593 | 1.593 |
| 26.5 | 2.391 | 1.591 | 1.593 | 1.593 |
| 26.667 | 2.393 | 1.591 | 1.593 | 1.593 |
| 26.833 | 2.395 | 1.591 | 1.592 | 1.593 |
| 27 | 2.397 | 1.591 | 1.592 | 1.593 |
| 27.167 | 2.399 | 1.591 | 1.592 | 1.593 |
| 27.333 | 2.401 | 1.591 | 1.592 | 1.592 |
| 27.5 | 2.403 | 1.591 | 1.592 | 1.592 |
| 27.667 | 2.405 | 1.591 | 1.592 | 1.592 |
| 27.833 | 2.407 | 1.591 | 1.592 | 1.592 |
| 28 | 2.408 | 1.591 | 1.592 | 1.592 |
| 28.167 | 2.409 | 1.591 | 1.592 | 1.592 |
| 28.333 | 2.411 | 1.591 | 1.592 | 1.592 |
| 28.5 | 2.412 | 1.591 | 1.592 | 1.592 |
| 28.667 | 2.413 | 1.591 | 1.592 | 1.592 |
| 28.833 | 2.414 | 1.591 | 1.592 | 1.592 |
| 29 | 2.415 | 1.59 | 1.591 | 1.592 |
| 29.167 | 2.415 | 1.59 | 1.591 | 1.592 |
| 29.333 | 2.416 | 1.59 | 1.591 | 1.592 |
| 29.5 | 2.416 | 1.59 | 1.591 | 1.591 |
| 29.667 | 2.417 | 1.59 | 1.591 | 1.591 |
| 29.833 | 2.417 | 1.59 | 1.591 | 1.591 |
| 30 | 2.417 | 1.59 | 1.591 | 1.591 |
| 30.167 | 2.417 | 1.59 | 1.591 | 1.591 |
| 30.333 | 2.416 | 1.59 | 1.591 | 1.591 |
| 30.5 | 2.416 | 1.59 | 1.591 | 1.591 |
| 30.667 | 2.416 | 1.59 | 1.591 | 1.591 |
| 30.833 | 2.415 | 1.59 | 1.591 | 1.591 |
| 31 | 2.414 | 1.59 | 1.591 | 1.591 |
| 31.167 | 2.413 | 1.59 | 1.591 | 1.591 |
| 31.333 | 2.412 | 1.59 | 1.59 | 1.591 |
| 31.5 | 2.411 | 1.59 | 1.59 | 1.591 |
| 31.667 | 2.41 | 1.589 | 1.59 | 1.591 |
| 31.833 | 2.408 | 1.589 | 1.59 | 1.591 |
| 32 | 2.407 | 1.589 | 1.59 | 1.59 |
| 32.167 | 2.405 | 1.589 | 1.59 | 1.59 |
| 32.333 | 2.404 | 1.589 | 1.59 | 1.59 |
| 32.5 | 2.402 | 1.589 | 1.59 | 1.59 |
| 32.667 | 2.4 | 1.589 | 1.59 | 1.59 |
| 32.833 | 2.398 | 1.589 | 1.59 | 1.59 |
| 33 | 2.396 | 1.589 | 1.59 | 1.59 |
| 33.167 | 2.393 | 1.589 | 1.59 | 1.59 |
| 33.333 | 2.391 | 1.589 | 1.59 | 1.59 |
| 33.5 | 2.389 | 1.589 | 1.59 | 1.59 |
| 33.667 | 2.386 | 1.589 | 1.59 | 1.59 |
| 33.833 | 2.383 | 1.589 | 1.59 | 1.59 |
| 34 | 2.381 | 1.589 | 1.589 | 1.59 |
| 34.167 | 2.378 | 1.589 | 1.589 | 1.59 |
| 34.333 | 2.375 | 1.589 | 1.589 | 1.59 |
| 34.5 | 2.372 | 1.589 | 1.589 | 1.59 |
| 34.667 | 2.369 | 1.588 | 1.589 | 1.589 |
| 34.833 | 2.366 | 1.588 | 1.589 | 1.589 |
| 35 | 2.363 | 1.588 | 1.589 | 1.589 |
| 35.167 | 2.36 | 1.588 | 1.589 | 1.589 |
| 35.333 | 2.357 | 1.588 | 1.589 | 1.589 |
| 35.5 | 2.354 | 1.588 | 1.589 | 1.589 |
| 35.667 | 2.35 | 1.588 | 1.589 | 1.589 |
| 35.833 | 2.347 | 1.588 | 1.589 | 1.589 |
| 36 | 2.344 | 1.588 | 1.589 | 1.589 |

Source: One spot, well kneaded, one dose of yeast, no salt. Worked out on this page with the game's own yeast rule, in 10-minute steps.

## Warm dough rises fast, cold dough barely rises, and too much heat kills the yeast

Yeast in the game makes gas at a rate set by how warm it is. It's at its best around 35 °C, slows steadily as it cools and stops near freezing. Above its best it slows again and stops making gas well before boiling. From about 50 °C the heat also starts killing it, and the hotter it gets the faster that goes: a couple of minutes in the low sixties leaves almost none alive, which a test checks. A freezer only pauses it. Thaw the dough and warm it, and it rises; a test checks that too.

Salt draws water out of yeast, so salty dough rises more slowly, and very salty dough hardly at all. Sugar feeds it: a little makes it busier, but a lot draws water out just as salt does, so a very sweet dough starts slower than a plain one. The yeast eats as it goes, so a rise never runs on forever.

Real baker's yeast grows best at a little over 32 °C, a published measurement found after the game was built <sup>[Salvadó 2011](<https://professoroops.com/en/inside/research-real/#salvado-2011>)</sup>. Our 35 °C is a touch warmer. The paper measures growth, and the game models how fast the yeast makes gas, so it's a consistent neighbour, not a calibration.

Leave a dough far too long and it over-proves: once the gas has stretched the gluten close to its limit, more gas tears it, and the dough sinks back part of the way.

[Under the hood](<#hood-yeast>)

Warm dough rises fast, cold dough barely rises, and too much heat kills the yeast

Under the hood

### Warm dough rises fast, cold dough barely rises, and too much heat kills the yeast

The yeast rule is three smooth curves multiplied together. A warmth curve climbs exponentially to a best temperature and falls away above it. Salt and heavy sugar pull water out of the yeast, as osmotic stress does, while a little sugar feeds it. And the gas made grows with the dose of yeast, with diminishing returns for big doses.

The dough keeps only part of that gas, and how much depends on the gluten: well-kneaded dough keeps more and can hold more. Over one piece of time the gas share has a **closed form**, the exact solution of a foam filling towards what its gluten can hold. That's what lets a long step stay accurate without many small ones.

As it makes gas the yeast eats its food, and above a threshold heat kills it at a rate that roughly doubles every few degrees. Once the gas stretches the gluten close to its limit, a smooth tearing term weakens the gluten and lets gas out, and the dough sinks.

A long step is cut into a few pieces by how much gas it makes. A test holds one spot's end and peak within 3 % of very fine steps, for an hour's rise and for three days.

Yeast speeds up to 35 °C, stops at 55 °C and dies from 50 °CReal *S. cerevisiae* grows best at 32.3 °C <sup>[Salvadó 2011](<https://professoroops.com/en/inside/research-real/#salvado-2011>)</sup>.

Plain yeast is fully busy at 35 °C, half as busy near 27 °C and at 45 °C, and idle at 2 °C and 55 °C; one dose of salt makes it about a quarter less busy. Above 50 °C the share killed in a minute climbs to nearly all of it in the low sixties.

- how busy \(plain\)
- how busy, 1 dose of salt
- share killed in a minute

Data table

Yeast speeds up to 35 °C, stops at 55 °C and dies from 50 °C

| °C | how busy \(plain\) | how busy, 1 dose of salt | share killed in a minute |
| --- | --- | --- | --- |
| 0 | 0 | 0 | 0 |
| 0.5 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 |
| 1.5 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 |
| 2.5 | 0.0666 | 0.0513 | 0 |
| 3 | 0.0695 | 0.0534 | 0 |
| 3.5 | 0.0724 | 0.0557 | 0 |
| 4 | 0.0755 | 0.0581 | 0 |
| 4.5 | 0.0787 | 0.0606 | 0 |
| 5 | 0.0821 | 0.0631 | 0 |
| 5.5 | 0.0856 | 0.0658 | 0 |
| 6 | 0.0892 | 0.0686 | 0 |
| 6.5 | 0.093 | 0.0715 | 0 |
| 7 | 0.097 | 0.0746 | 0 |
| 7.5 | 0.1011 | 0.0778 | 0 |
| 8 | 0.1054 | 0.0811 | 0 |
| 8.5 | 0.1099 | 0.0845 | 0 |
| 9 | 0.1146 | 0.0881 | 0 |
| 9.5 | 0.1194 | 0.0919 | 0 |
| 10 | 0.1245 | 0.0958 | 0 |
| 10.5 | 0.1298 | 0.0999 | 0 |
| 11 | 0.1353 | 0.1041 | 0 |
| 11.5 | 0.1411 | 0.1085 | 0 |
| 12 | 0.1471 | 0.1132 | 0 |
| 12.5 | 0.1534 | 0.118 | 0 |
| 13 | 0.1599 | 0.123 | 0 |
| 13.5 | 0.1667 | 0.1282 | 0 |
| 14 | 0.1738 | 0.1337 | 0 |
| 14.5 | 0.1812 | 0.1394 | 0 |
| 15 | 0.1889 | 0.1453 | 0 |
| 15.5 | 0.1969 | 0.1515 | 0 |
| 16 | 0.2053 | 0.1579 | 0 |
| 16.5 | 0.214 | 0.1646 | 0 |
| 17 | 0.2231 | 0.1716 | 0 |
| 17.5 | 0.2326 | 0.1789 | 0 |
| 18 | 0.2425 | 0.1866 | 0 |
| 18.5 | 0.2528 | 0.1945 | 0 |
| 19 | 0.2636 | 0.2028 | 0 |
| 19.5 | 0.2748 | 0.2114 | 0 |
| 20 | 0.2865 | 0.2204 | 0 |
| 20.5 | 0.2987 | 0.2298 | 0 |
| 21 | 0.3114 | 0.2395 | 0 |
| 21.5 | 0.3247 | 0.2497 | 0 |
| 22 | 0.3385 | 0.2604 | 0 |
| 22.5 | 0.3529 | 0.2714 | 0 |
| 23 | 0.3679 | 0.283 | 0 |
| 23.5 | 0.3835 | 0.295 | 0 |
| 24 | 0.3998 | 0.3076 | 0 |
| 24.5 | 0.4169 | 0.3207 | 0 |
| 25 | 0.4346 | 0.3343 | 0 |
| 25.5 | 0.4531 | 0.3485 | 0 |
| 26 | 0.4724 | 0.3634 | 0 |
| 26.5 | 0.4925 | 0.3788 | 0 |
| 27 | 0.5134 | 0.3949 | 0 |
| 27.5 | 0.5353 | 0.4117 | 0 |
| 28 | 0.558 | 0.4293 | 0 |
| 28.5 | 0.5818 | 0.4475 | 0 |
| 29 | 0.6065 | 0.4666 | 0 |
| 29.5 | 0.6323 | 0.4864 | 0 |
| 30 | 0.6592 | 0.5071 | 0 |
| 30.5 | 0.6873 | 0.5287 | 0 |
| 31 | 0.7165 | 0.5512 | 0 |
| 31.5 | 0.747 | 0.5746 | 0 |
| 32 | 0.7788 | 0.5991 | 0 |
| 32.5 | 0.8119 | 0.6246 | 0 |
| 33 | 0.8465 | 0.6511 | 0 |
| 33.5 | 0.8825 | 0.6788 | 0 |
| 34 | 0.92 | 0.7077 | 0 |
| 34.5 | 0.9592 | 0.7378 | 0 |
| 35 | 1 | 0.7692 | 0 |
| 35.5 | 0.975 | 0.75 | 0 |
| 36 | 0.95 | 0.7308 | 0 |
| 36.5 | 0.925 | 0.7115 | 0 |
| 37 | 0.9 | 0.6923 | 0 |
| 37.5 | 0.875 | 0.6731 | 0 |
| 38 | 0.85 | 0.6538 | 0 |
| 38.5 | 0.825 | 0.6346 | 0 |
| 39 | 0.8 | 0.6154 | 0 |
| 39.5 | 0.775 | 0.5962 | 0 |
| 40 | 0.75 | 0.5769 | 0 |
| 40.5 | 0.725 | 0.5577 | 0 |
| 41 | 0.7 | 0.5385 | 0 |
| 41.5 | 0.675 | 0.5192 | 0 |
| 42 | 0.65 | 0.5 | 0 |
| 42.5 | 0.625 | 0.4808 | 0 |
| 43 | 0.6 | 0.4615 | 0 |
| 43.5 | 0.575 | 0.4423 | 0 |
| 44 | 0.55 | 0.4231 | 0 |
| 44.5 | 0.525 | 0.4038 | 0 |
| 45 | 0.5 | 0.3846 | 0 |
| 45.5 | 0.475 | 0.3654 | 0 |
| 46 | 0.45 | 0.3462 | 0 |
| 46.5 | 0.425 | 0.3269 | 0 |
| 47 | 0.4 | 0.3077 | 0 |
| 47.5 | 0.375 | 0.2885 | 0 |
| 48 | 0.35 | 0.2692 | 0 |
| 48.5 | 0.325 | 0.25 | 0 |
| 49 | 0.3 | 0.2308 | 0 |
| 49.5 | 0.275 | 0.2115 | 0 |
| 50 | 0.25 | 0.1923 | 0 |
| 50.5 | 0.225 | 0.1731 | 0.4148 |
| 51 | 0.2 | 0.1538 | 0.4369 |
| 51.5 | 0.175 | 0.1346 | 0.4597 |
| 52 | 0.15 | 0.1154 | 0.483 |
| 52.5 | 0.125 | 0.0962 | 0.5069 |
| 53 | 0.1 | 0.0769 | 0.5313 |
| 53.5 | 0.075 | 0.0577 | 0.5561 |
| 54 | 0.05 | 0.0385 | 0.5813 |
| 54.5 | 0.025 | 0.0192 | 0.6066 |
| 55 | 0 | 0 | 0.6321 |
| 55.5 | 0 | 0 | 0.6576 |
| 56 | 0 | 0 | 0.683 |
| 56.5 | 0 | 0 | 0.708 |
| 57 | 0 | 0 | 0.7327 |
| 57.5 | 0 | 0 | 0.7569 |
| 58 | 0 | 0 | 0.7803 |
| 58.5 | 0 | 0 | 0.803 |
| 59 | 0 | 0 | 0.8247 |
| 59.5 | 0 | 0 | 0.8453 |
| 60 | 0 | 0 | 0.8647 |
| 60.5 | 0 | 0 | 0.8828 |
| 61 | 0 | 0 | 0.8995 |
| 61.5 | 0 | 0 | 0.9148 |
| 62 | 0 | 0 | 0.9286 |
| 62.5 | 0 | 0 | 0.9409 |
| 63 | 0 | 0 | 0.9518 |
| 63.5 | 0 | 0 | 0.9612 |
| 64 | 0 | 0 | 0.9693 |
| 64.5 | 0 | 0 | 0.9761 |
| 65 | 0 | 0 | 0.9817 |
| 65.5 | 0 | 0 | 0.9863 |
| 66 | 0 | 0 | 0.9899 |
| 66.5 | 0 | 0 | 0.9927 |
| 67 | 0 | 0 | 0.9949 |
| 67.5 | 0 | 0 | 0.9965 |
| 68 | 0 | 0 | 0.9977 |
| 68.5 | 0 | 0 | 0.9985 |
| 69 | 0 | 0 | 0.9991 |
| 69.5 | 0 | 0 | 0.9994 |
| 70 | 0 | 0 | 0.9997 |

Source: The game's own warmth, salt and heat-kill curves; the jumps at 2 °C and 50 °C are the game's too.

![Two lumps of dough on the paper after an hour's wait, seen from above: the kneaded one on the left smooth and glossy, pressed into a ring where the hand rubbed its middle; the unkneaded one on the right shaggy, lumpy and floury.](<https://professoroops.com/_assets/entity_ZCbGV7krdokLvTIMXYgE.webp>)

In the game: two lumps from the same flour, water and yeast, after "Wait 1 hour". Only the left one was kneaded, rubbed round with the hand \(which pressed a hole in its middle\): it came out smooth, while the one left alone is still shaggy and floury.

### Baking soda and vinegar make dough rise while you watch

Yeast works in real seconds while you play, so a yeasted dough barely moves in a minute: a minute of warm play raises it by a few percent at most, as a test checks. The rise you can watch comes from a fizz. Baking soda and vinegar in unyeasted dough give off gas that enters the dough by the yeast's own rule. It grows by about a third in twenty seconds of play and bakes full of holes; a test checks both.

### The oven springs the dough up, and folded butter puffs into pastry

In the oven the yeast has a last burst before it dies, the gas swells with heat and steam, and at 75 °C dough turns into bread. Fold cold butter in, fold again, roll it out, and it bakes flaky; work the butter in warm and it smears, and the layers are gone. A test pins both.

[Under the hood: oven spring and pastry](<#hood-oven>)

The oven springs the dough up, and folded butter puffs into pastry

Under the hood

### The oven springs the dough up, and folded butter puffs into pastry

**Oven spring** is worked out for each spot on its own. The spot warms on a short ramp from room temperature towards the oven's heat, held at boiling. The gas swells by the real ideal-gas ratio of absolute temperatures, through the same closed form as the yeast's gas, so only what the gluten keeps counts. Steam adds a flat extra factor on top.

**Lamination.** Cold butter laid on dough adds sheets of fat. A fold stacks them; rolling spreads the same count over a wider sheet. Sliding smears them, much faster once the butter is past its melting point, and too many sheets in too little height fuse into one. In the oven the layers lift the dough, and enough layers over a big enough area count as pastry.

**The fizz** enters through the same rule as the yeast's gas, so the gluten decides what it keeps.

## Honey keeps and ketchup goes mouldy, from one rule that reads the food

Leave ketchup on the page for three days and fuzzy spots appear: green-blue, white, black, now and then orange. Leave honey beside it and it stays clean. Spray vinegar over half the food and that half stays clear for days, and mould already on it dies into a stain. A test checks all three.

Nobody told the mould about honey, ketchup or vinegar. At every spot it reads what's there, whoever put it there: how acid it is, how much sugar there is against the water, how much salt and bleach, whether it's burnt, frozen or very hot. Honey is so sugary that there's no water left for mould. Ketchup is sour, but not sour enough, and moulds happily. Vinegar is sour enough. Water honey down enough and its sugar drops below the limit, and mould can start.

Mould needs food, and it never eats it up. A colony can only start on something with food in it, and the food sets how thick the fuzz grows; on bare paper a big colony only shows as a faint halo. A crayon stroke through mould clears a path that doesn't grow straight back, because the crayon took the food with it. A test checks that too.

A spore that lands takes 20 game-hours to show, so two days show mould and half a day doesn't. The oven kills it and keeps the page clear for a week. Tests pin both.

[Under the hood](<#hood-mould>)

Honey keeps and ketchup goes mouldy, from one rule that reads the food

Under the hood

### Honey keeps and ketchup goes mouldy, from one rule that reads the food

Every spot gets a **habitability** from 0 to 1, read from whatever is there. Frost or real heat make it zero. Otherwise it starts at one, and each thing mould dislikes takes a share away: acid past a threshold, salt, bleach, sugar so concentrated it leaves no free water, and char. Each is a straight-line term in one sum.

Acid is counted from pH on a log scale, as real acidity is, so ketchup at pH 3.9 brings almost nothing and vinegar a great deal. Sugar is counted against all the water around it, in the food and in the paper under it, which is why watered-down honey can mould.

next update Salt counts by how salty the food is instead of how much salt there is, so heavily salted food stops mould outright while a normally salted loaf stays well within its reach. A crust dried right through stops it too, and water starts it again. Tests pin both.

Try it: leave four foods out The game's own ruleFour dabs left out on a sheet of paper: bread \(top left\), ketchup \(top right\), honey \(bottom left\) and ketchup with vinegar sprayed on it \(bottom right\). Time runs at six game-hours a second and stops after two weeks; the buttons wait an hour or three days at once. **What to look for:** each spot shows 20 hours after its spore lands, then grows fast and then slower. Honey stays clean until you water it down enough, then opens to mould step by step. A little vinegar only slows mould; enough keeps its dab clear. Colony sizes, edges, colours, seeding and habitability are the game's own; the food in each dab is set for the demo \(ketchup's pinch of salt is left out\), and the game's shader fuzz is left out.

![Bread, ketchup, honey and vinegared ketchup on paper, growing mould over two weeks](<https://professoroops.com/_assets/entity_8k5hEYIOv3Nq2vJL6yFl.png>)

- bread
- ketchup
- honey
- ketchup \+ vinegar
- mould can't grow
- mould can't grow
- mould can't grow
- mould can't grow

Vinegar on ketchup0.60

Water on honey0.00

hours—

colonies started—

showing—

honey: habitability—

vinegar dab: habitability—

![A blob of ketchup with a green-blue patch of mould, fuzzy white at its edge, next to a clean blob of honey with two ants on it, after a three-day wait in the game.](<https://professoroops.com/_assets/entity_f8fuCtaKXh0SxTTiA88T.webp>)

In the game: ketchup and honey side by side after "Wait 3 days". One function, two answers: mould on the ketchup, none on the honey \(only ants\).

### A colony's size is a formula, so a week of growth is one sum

Real mould spreads by growing threads. Simulating those, or the random walkers used for branching growth <sup>[Witten 1981](<https://professoroops.com/en/inside/research-simulation/#witten-1981>)</sup>, would mean working through every hour of a three-day wait. Instead each colony stores when it started and how fast it grows, and its size is a formula of its age: a three-day wait is one sum per colony. Only new colonies need the hours in between, as a dice roll at each step of the wait.

Mould also travels. A big enough colony lets its spores go when wind blows over it or something jolts the paper. The spores ride the same air as smoke and smells, settle out, and start new colonies where they land on food. Bounce a ball on a mouldy patch in a breeze, wait, and new mould appears downwind; a test checks it. The mould code has no rule about balls: the bounce is a jolt and a touch, and the wind is the air simulation.

[Under the hood: a colony](<#hood-colony>)

A colony's size is a formula, so a week of growth is one sum

Under the hood

### A colony's size is a formula, so a week of growth is one sum

A colony is a handful of numbers: where it started, when, how fast it grows, which kind it is, and a seed for its edge. Its radius is a function of its age: nothing during a delay, then growth like the square root of time, up to a largest size. A wait of any length is one evaluation.

The edge is a ragged outline made from smooth noise, worked out once per colony and read back for every spot. Inside it the fuzz thins towards the rim and is scaled by the food and the habitability underneath.

**New colonies** come from a dice roll at each step of time, at a sample of random spots, weighted by food, dampness and habitability, at the same density on any sheet size. Only colonies that grew visibly are redrawn.

**Spores.** A colony past a certain size sheds them when the air over it moves fast enough or a jolt is strong enough, and a touch puffs some out. They ride the shared air layer, settle out over time, and a settling spore may start a colony where it lands.

Nothing for 20 hours, then fast, then slower

Every colony is unseen for 20 hours; three days after its spore landed its radius is 11.6 to 32.4 mm, and the faster ones reach the largest size, 42 mm, within the fortnight.

- slowest colony
- middle
- fastest

Data table

Nothing for 20 hours, then fast, then slower

| hours since the spore landed | slowest colony | middle | fastest |
| --- | --- | --- | --- |
| 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 |
| 6 | 0 | 0 | 0 |
| 8 | 0 | 0 | 0 |
| 10 | 0 | 0 | 0 |
| 12 | 0 | 0 | 0 |
| 14 | 0 | 0 | 0 |
| 16 | 0 | 0 | 0 |
| 18 | 0 | 0 | 0 |
| 20 | 0 | 0 | 0 |
| 22 | 3.24 | 5.27 | 7.31 |
| 24 | 4.08 | 6.96 | 9.84 |
| 26 | 4.73 | 8.25 | 11.78 |
| 28 | 5.27 | 9.35 | 13.42 |
| 30 | 5.75 | 10.31 | 14.86 |
| 32 | 6.19 | 11.18 | 16.16 |
| 34 | 6.59 | 11.98 | 17.36 |
| 36 | 6.96 | 12.72 | 18.48 |
| 38 | 7.31 | 13.42 | 19.53 |
| 40 | 7.64 | 14.08 | 20.52 |
| 42 | 7.95 | 14.71 | 21.46 |
| 44 | 8.25 | 15.31 | 22.36 |
| 46 | 8.54 | 15.89 | 23.23 |
| 48 | 8.82 | 16.44 | 24.06 |
| 50 | 9.09 | 16.97 | 24.86 |
| 52 | 9.35 | 17.49 | 25.64 |
| 54 | 9.6 | 17.99 | 26.39 |
| 56 | 9.84 | 18.48 | 27.12 |
| 58 | 10.08 | 18.95 | 27.83 |
| 60 | 10.31 | 19.41 | 28.52 |
| 62 | 10.53 | 19.86 | 29.2 |
| 64 | 10.75 | 20.3 | 29.86 |
| 66 | 10.97 | 20.73 | 30.5 |
| 68 | 11.18 | 21.15 | 31.13 |
| 70 | 11.38 | 21.56 | 31.75 |
| 72 | 11.58 | 21.97 | 32.35 |
| 74 | 11.78 | 22.36 | 32.95 |
| 76 | 11.98 | 22.75 | 33.53 |
| 78 | 12.17 | 23.13 | 34.1 |
| 80 | 12.35 | 23.51 | 34.66 |
| 82 | 12.54 | 23.88 | 35.22 |
| 84 | 12.72 | 24.24 | 35.76 |
| 86 | 12.9 | 24.6 | 36.3 |
| 88 | 13.07 | 24.95 | 36.82 |
| 90 | 13.25 | 25.3 | 37.34 |
| 92 | 13.42 | 25.64 | 37.86 |
| 94 | 13.59 | 25.97 | 38.36 |
| 96 | 13.75 | 26.31 | 38.86 |
| 98 | 13.92 | 26.64 | 39.35 |
| 100 | 14.08 | 26.96 | 39.84 |
| 102 | 14.24 | 27.28 | 40.32 |
| 104 | 14.4 | 27.6 | 40.79 |
| 106 | 14.55 | 27.91 | 41.26 |
| 108 | 14.71 | 28.22 | 41.73 |
| 110 | 14.86 | 28.52 | 42 |
| 112 | 15.01 | 28.82 | 42 |
| 114 | 15.16 | 29.12 | 42 |
| 116 | 15.31 | 29.42 | 42 |
| 118 | 15.46 | 29.71 | 42 |
| 120 | 15.6 | 30 | 42 |
| 122 | 15.74 | 30.29 | 42 |
| 124 | 15.89 | 30.57 | 42 |
| 126 | 16.03 | 30.85 | 42 |
| 128 | 16.16 | 31.13 | 42 |
| 130 | 16.3 | 31.41 | 42 |
| 132 | 16.44 | 31.68 | 42 |
| 134 | 16.57 | 31.95 | 42 |
| 136 | 16.71 | 32.22 | 42 |
| 138 | 16.84 | 32.48 | 42 |
| 140 | 16.97 | 32.75 | 42 |
| 142 | 17.11 | 33.01 | 42 |
| 144 | 17.24 | 33.27 | 42 |
| 146 | 17.36 | 33.53 | 42 |
| 148 | 17.49 | 33.78 | 42 |
| 150 | 17.62 | 34.04 | 42 |
| 152 | 17.74 | 34.29 | 42 |
| 154 | 17.87 | 34.54 | 42 |
| 156 | 17.99 | 34.79 | 42 |
| 158 | 18.12 | 35.03 | 42 |
| 160 | 18.24 | 35.28 | 42 |
| 162 | 18.36 | 35.52 | 42 |
| 164 | 18.48 | 35.76 | 42 |
| 166 | 18.6 | 36 | 42 |
| 168 | 18.72 | 36.24 | 42 |
| 170 | 18.84 | 36.47 | 42 |
| 172 | 18.95 | 36.71 | 42 |
| 174 | 19.07 | 36.94 | 42 |
| 176 | 19.19 | 37.17 | 42 |
| 178 | 19.3 | 37.4 | 42 |
| 180 | 19.41 | 37.63 | 42 |
| 182 | 19.53 | 37.86 | 42 |
| 184 | 19.64 | 38.08 | 42 |
| 186 | 19.75 | 38.31 | 42 |
| 188 | 19.86 | 38.53 | 42 |
| 190 | 19.98 | 38.75 | 42 |
| 192 | 20.09 | 38.97 | 42 |
| 194 | 20.19 | 39.19 | 42 |
| 196 | 20.3 | 39.41 | 42 |
| 198 | 20.41 | 39.62 | 42 |
| 200 | 20.52 | 39.84 | 42 |
| 202 | 20.63 | 40.05 | 42 |
| 204 | 20.73 | 40.27 | 42 |
| 206 | 20.84 | 40.48 | 42 |
| 208 | 20.94 | 40.69 | 42 |
| 210 | 21.05 | 40.9 | 42 |
| 212 | 21.15 | 41.11 | 42 |
| 214 | 21.26 | 41.31 | 42 |
| 216 | 21.36 | 41.52 | 42 |
| 218 | 21.46 | 41.73 | 42 |
| 220 | 21.56 | 41.93 | 42 |
| 222 | 21.67 | 42 | 42 |
| 224 | 21.77 | 42 | 42 |
| 226 | 21.87 | 42 | 42 |
| 228 | 21.97 | 42 | 42 |
| 230 | 22.07 | 42 | 42 |
| 232 | 22.17 | 42 | 42 |
| 234 | 22.27 | 42 | 42 |
| 236 | 22.36 | 42 | 42 |
| 238 | 22.46 | 42 | 42 |
| 240 | 22.56 | 42 | 42 |
| 242 | 22.66 | 42 | 42 |
| 244 | 22.75 | 42 | 42 |
| 246 | 22.85 | 42 | 42 |
| 248 | 22.94 | 42 | 42 |
| 250 | 23.04 | 42 | 42 |
| 252 | 23.13 | 42 | 42 |
| 254 | 23.23 | 42 | 42 |
| 256 | 23.32 | 42 | 42 |
| 258 | 23.42 | 42 | 42 |
| 260 | 23.51 | 42 | 42 |
| 262 | 23.6 | 42 | 42 |
| 264 | 23.69 | 42 | 42 |
| 266 | 23.79 | 42 | 42 |
| 268 | 23.88 | 42 | 42 |
| 270 | 23.97 | 42 | 42 |
| 272 | 24.06 | 42 | 42 |
| 274 | 24.15 | 42 | 42 |
| 276 | 24.24 | 42 | 42 |
| 278 | 24.33 | 42 | 42 |
| 280 | 24.42 | 42 | 42 |
| 282 | 24.51 | 42 | 42 |
| 284 | 24.6 | 42 | 42 |
| 286 | 24.69 | 42 | 42 |
| 288 | 24.77 | 42 | 42 |
| 290 | 24.86 | 42 | 42 |
| 292 | 24.95 | 42 | 42 |
| 294 | 25.04 | 42 | 42 |
| 296 | 25.12 | 42 | 42 |
| 298 | 25.21 | 42 | 42 |
| 300 | 25.3 | 42 | 42 |
| 302 | 25.38 | 42 | 42 |
| 304 | 25.47 | 42 | 42 |
| 306 | 25.55 | 42 | 42 |
| 308 | 25.64 | 42 | 42 |
| 310 | 25.72 | 42 | 42 |
| 312 | 25.81 | 42 | 42 |
| 314 | 25.89 | 42 | 42 |
| 316 | 25.97 | 42 | 42 |
| 318 | 26.06 | 42 | 42 |
| 320 | 26.14 | 42 | 42 |
| 322 | 26.22 | 42 | 42 |
| 324 | 26.31 | 42 | 42 |
| 326 | 26.39 | 42 | 42 |
| 328 | 26.47 | 42 | 42 |
| 330 | 26.55 | 42 | 42 |
| 332 | 26.64 | 42 | 42 |
| 334 | 26.72 | 42 | 42 |
| 336 | 26.8 | 42 | 42 |

Source: The game's own growth curve for a colony, at its slowest, middle and fastest pace, at the nominal 0.6 mm a spot, up to its largest size.

## Seeds wait for water, sprout, wilt when they dry and perk up when watered

Sow cress on wet paper and after one to two and a half damp game-hours the seeds split and send up shoots. They keep growing while they're damp, up to between 4 and 7 mm. Let the paper dry and they go yellow and flop over; water them again and they recover. Grass is slower and taller, and a lush tuft may flower into a daisy, a buttercup or clover.

Chia and flax from the sieve are seeds too. Sprinkle chia on a wet patch and wait three days, and you have a patch of cress; dry chia stays seed, and a test checks it. Crush flax with the rolling pin first and it won't come up. Seeds under ketchup or paint sprout; under chocolate or peanut butter they stay dry, because fat isn't water. Strong heat roasts them, and the pigeon eats any it finds before they sprout.

One difference between play and a wait is deliberate. A seed that has started to drink and then dries out for a day dies, but only over a time skip. While you play, it waits for the next watering. A child who forgets to water for a few minutes doesn't lose the seeds.

next update New shoots come up pale and turn green over about a day in the light, as real seedlings do.

[Under the hood](<#hood-plants>)

Seeds wait for water, sprout, wilt when they dry and perk up when watered

Under the hood

### Seeds wait for water, sprout, wilt when they dry and perk up when watered

State lives per sprout, not per spot, in a fixed pool with room kept back for hand sowing. Each sprout is brought up to the clock in closed form, a few times a second in play and once per time skip, so a three-day wait costs no more than a moment of play.

- A seed counts damp hours, from the paper's wetness, standing water or watery goop under it. After enough of them it sprouts. Each kind has its own range of hours and heights: cress is quick, grass slower and taller, moss spreads sideways, and chia and flax take longer to become cress.
- Damp sprouts grow and gain health; dry ones lose it slowly, which you see as yellowing and drooping.
- A seed that drank and then stayed dry for a day dies, in a time skip only.
- Heat roasts unsprouted seeds, and fire burns plants down to stubble.

Blades are painted sprites bent by the state; their sway in the wind is drawn only.

Try it: water a row of cress The game's own ruleCress seeds on a strip of paper, the left part wet. Time runs at a game-hour a second, sixty times the game's own play clock. Drag across the paper to water it, or press Water the strip. **What to look for:** wet seeds sprout after one to two and a half damp hours; as the paper dries they yellow and droop, and watering brings them back. Switch on "over a time skip" and seeds that drank and then stayed dry for 24 hours die. The seed rules are the game's; how fast this paper dries is set for the demo, and the shoots are drawn simply.

![Cress seeds on a strip of paper, sprouting where it is wet and wilting where it dries](<https://professoroops.com/_assets/entity_OhFD7qv8D2DGaSoXDzSP.png>)

game-hours—

counted—

sprouted—

of seeds—

lush—

wilting—

seeds lost—

![A patch of green cress sprouted from chia seeds on a damp patch of paper, beside a heap of dry chia seeds that didn't sprout and is grown over with green-blue and white mould, after a three-day wait in the game.](<https://professoroops.com/_assets/entity_ayxQPAzh0YMJvYxyxDcM.webp>)

In the game: chia sprinkled on a wet patch and on dry paper, then "Wait 3 days". Only the seeds that drank came up. The dry ones stayed seeds, and seeds are food: mould grew over them instead.

## Fruit goes brown and shrinks over a wait, then rots like any other food

Squash an apple into pulp, or lay out slices of banana or cucumber, and leave them for three days. They come back browner. The slices also lose a little height, which from above doesn't show. A whole apple or tomato darkens and shrinks too, and other foods dim a little. This is a plain colour-and-size curve that runs only during a time skip. It doesn't model the enzyme and the oxygen that brown real fruit, so lemon juice doesn't stop it \(a lemon slice browns too\), and nothing browns while you watch.

Rotting comes from shared rules, not from a fruit rule. By our reading of the code \(no test names fruit here\), fruit left out soaks its food into the paper during a wait, so mould can start on it, and its sweet smell drifts on the air and draws flies.

[Under the hood](<#hood-fruit>)

Fruit goes brown and shrinks over a wait, then rots like any other food

Under the hood

### Fruit goes brown and shrinks over a wait, then rots like any other food

The whole rule is a few lines in the time skip's drying step, skipped when the skip boils. Materials tagged as browning \(apple pulp, whole apples and tomatoes, and the food slices: cucumber, carrot, tomato, lemon, orange, banana, kiwi, red cabbage\) let through less light for each day of a wait, down to a floor. The whole fruit and the slices also lose some height, down to a floor of their own. Any other food or cooking goop darkens more slowly and stops sooner.

Colour is stored as absorbance, the way layers of real pigment add up, and the browning adds more to green and most to blue, so the food turns brown rather than grey.

That extra green and blue comes as a flat step on every skip, however short. So twelve one-hour waits brown a slice more than one twelve-hour wait does.

Fruit darkens over a wait several times faster than other food, then stops at a floorBlue and green also gain a flat step of absorbance, which browns it.

Fruit and slices let through 12 % less light per day down to 55 %; other food 3 % less down to 80 %; whole fruit and slices lose 6 % of their height per day down to 70 %.

- fruit and slices: light let through
- other food: light let through
- whole fruit and slices: height

Data table

Fruit darkens over a wait several times faster than other food, then stops at a floor

| days of waiting | fruit and slices: light let through | other food: light let through | whole fruit and slices: height |
| --- | --- | --- | --- |
| 0 | 1 | 1 | 1 |
| 0.25 | 0.97 | 0.993 | 0.985 |
| 0.5 | 0.94 | 0.985 | 0.97 |
| 0.75 | 0.91 | 0.978 | 0.955 |
| 1 | 0.88 | 0.97 | 0.94 |
| 1.25 | 0.85 | 0.963 | 0.925 |
| 1.5 | 0.82 | 0.955 | 0.91 |
| 1.75 | 0.79 | 0.948 | 0.895 |
| 2 | 0.76 | 0.94 | 0.88 |
| 2.25 | 0.73 | 0.932 | 0.865 |
| 2.5 | 0.7 | 0.925 | 0.85 |
| 2.75 | 0.67 | 0.917 | 0.835 |
| 3 | 0.64 | 0.91 | 0.82 |
| 3.25 | 0.61 | 0.902 | 0.805 |
| 3.5 | 0.58 | 0.895 | 0.79 |
| 3.75 | 0.55 | 0.887 | 0.775 |
| 4 | 0.55 | 0.88 | 0.76 |
| 4.25 | 0.55 | 0.873 | 0.745 |
| 4.5 | 0.55 | 0.865 | 0.73 |
| 4.75 | 0.55 | 0.858 | 0.715 |
| 5 | 0.55 | 0.85 | 0.7 |
| 5.25 | 0.55 | 0.843 | 0.7 |
| 5.5 | 0.55 | 0.835 | 0.7 |
| 5.75 | 0.55 | 0.828 | 0.7 |
| 6 | 0.55 | 0.82 | 0.7 |
| 6.25 | 0.55 | 0.813 | 0.7 |
| 6.5 | 0.55 | 0.805 | 0.7 |
| 6.75 | 0.55 | 0.8 | 0.7 |
| 7 | 0.55 | 0.8 | 0.7 |

Source: The game's own browning rule, applied in a time skip only, once per skip.

![Three banana slices in the game, left to right: a fresh pale one laid down just now; one that sat through three one-hour waits, gone orange-brown; and one that also waited three days, brown and half covered in green-blue mould.](<https://professoroops.com/_assets/entity_RdxnmwliAIuwNwmFTtgv.webp>)

In the game: left to right, a fresh banana slice; one after three presses of "Wait 1 hour", already brown, as every wait adds the same browning step however short it is; and one that waited three days first, brown and going mouldy.

## Press a button to wait three days, bake, freeze or leave things a week in the sun

Each living thing runs on its own clock while you play. Dough ferments in real seconds, kneading is sped up about 20 times, mould gets a game-hour every one and a half minutes and plants one every minute. A child can watch cress come up within a few minutes, and mould shows after about half an hour of play. A yeasted dough rises at its real pace, which is too slow to watch.

That's what the time buttons are for: "Wait 1 hour", "Wait 3 days", "Bake in the oven", "Put in the freezer" and "A week in the sun". They aren't five different features. They are one recipe, given a temperature and a number of hours. The oven is 180 °C for twenty minutes, the freezer −18 °C for three hours, the sunny window 35 °C for a week. Anything new only has to say how it reacts to warmth and time.

The same recipe runs when you come back. Open the app after more than half an hour and the page has aged by the time you were away, up to two weeks; bring it back to the front after two hours or more and the same happens. A sentence then tells you what changed: the dough rose, or the ketchup grew mould.

[Under the hood](<#hood-skips>)

Press a button to wait three days, bake, freeze or leave things a week in the sun

Under the hood

### Press a button to wait three days, bake, freeze or leave things a week in the sun

Every skip is one job given a temperature, a number of hours and, for the sunny window, how dry the air is. The buttons differ only in those few numbers, and the waits add their own extras on top. Coming back to the app is a wait at room temperature for as long as you were away.

Most of it is closed form. Reactions run on a clock that doubles for every 10 °C, the chemist's familiar rule of thumb; mould is a formula; plants take one update; drying is an exponential. Only the flow of runny things is played out, for a number of passes that grows with the wait up to a cap, with the same fixed amount of work per pass on every device. Dough is proved in steps \(below\). So at the same sheet size a slow tablet gets the same result, only later: a test runs a two-hour wait at three detail levels from one identical page and checks that the results hash the same.

The recipe, lit for each button

| Step | Wait 1 hour | Wait 3 days | Bake in the oven | Put in the freezer | A week in the sun |
| --- | --- | --- | --- | --- | --- |
| Whatever was in the air lands, fires go out, the heat goes back to the room | Runs. Every skip starts here. | Runs. Every skip starts here. | Runs. Every skip starts here. | Stops here. Below 0 °C nothing runs, reacts, dries or grows: the water is ice. | Runs. Every skip starts here. |
| Heat changes solid things for good; crayon wax melts | Skipped. Not hot enough. | Skipped. Not hot enough. | Runs. Plastic slumps, a pen bursts, crayon melts into the paper. | Skipped. | Skipped. Not hot enough. |
| Soft things melt, runny things run | Runs. Played out for a while, longer for a longer wait, up to a cap. | Runs. Played out for a while, longer for a longer wait, up to a cap. | Runs. Played out only if something melted. | Skipped. | Runs. Played out for a while, longer for a longer wait, up to a cap. |
| Reactions run; yeasted dough proves | Runs. Reaction clock: 1 room-hours. Dough: half-hour steps that double once it settles. | Runs. Reaction clock: 72 room-hours. Dough: half-hour steps that double once it settles. | Runs. Reaction clock: 21,845 room-hours. Dough: oven spring. | Skipped. | Runs. Reaction clock: 475 room-hours. Dough: half-hour steps that double once it settles. |
| Hot: cooking, browning, mould dies. Cool: food soaks in, mould and plants grow | Runs. Mould and plants get 1 hours. | Runs. Mould and plants get 72 hours. | Runs. Mould dies into a stain; the page stays mould-free for a week. | Skipped. | Runs. Mould and plants get only part of the week: a sunny window is dry. |
| Things dry | Runs. Paper dries part way. | Runs. Everything dries out. | Runs. Everything dries out. | Skipped. | Runs. Everything dries out. |
| The wait's extras | Runs. Ants and flies may come; cups stay. | Runs. Cups are cleared away, ants scout, flies come to food, the paper yellows a little. | Skipped. Only the waits have these. | Skipped. | Skipped. Only the waits have these. |

The game's own rule The steps run in this order in the released game. "Room-hours" is the reaction clock: an hour at 30 °C counts as two.

### Three days of dough take 37 steps instead of 144

Dough in a wait can't be one sum, because it spreads as it rises and the spreading changes the dough. So the wait proves it in half-hour steps while it's still rising or sinking. Once it has settled, each step is twice as long as the last. Three days of a normal loaf take 37 steps instead of 144 even half-hours, and a fortnight takes 40. A test holds the result within 1 % of six-minute steps, in volume and in footprint. A sunny week is the exception: there even half-hour steps are some 5 % off fine ones, so the test only asks the doubling steps to do no worse.

[Under the hood: the step planner](<#hood-steps>)

Three days of dough take 37 steps instead of 144

Under the hood

### Three days of dough take 37 steps instead of 144

This is **adaptive time-stepping** of the simplest kind. The planner starts at half an hour and doubles the step each time the dough barely changed in the last one, while making sure even the longest wait fits within a fixed number of steps. Because the yeast's gas has a closed form, a long step costs no more than a short one and stays accurate.

The dough spreads once a step, so while it rises it spreads as it would with even half-hours. When the wait is over, the message says the dough rose or sank only when the change is big enough to see.

Dough that's the same comes out the same: within a step, identical spots are worked out once and the answer is reused. A kneaded lump is mostly identical spots, so this saves most of the work.

Try it: watch a wait choose its steps The game's own ruleOne spot of the test's loaf \(well kneaded, one dose of yeast, one of salt, 20 °C\) waiting three days. The line is the rise worked out in six-minute steps; the dots are the steps the game's planner takes. Time runs along a square-root scale, so the early hours get room. **What to look for:** half-hour steps while the dough rises and sinks, then steps that double once it has settled. The step count depends on the wait and the dough. This is the game's own planner and yeast rule on one spot; the game also spreads the body each step.

![The rise of one cell of dough over a wait, with the steps the planner takes shown as dots](<https://professoroops.com/_assets/entity_pJ8wRny9BEfHYGiJuRcE.png>)

- 1.0×
- 1.5×
- 2.0×
- 2.5×
- 30 min
- 3 h
- 12 h
- 1 d
- 3 d
- 7 d
- 14 d
- 30 d
- time \(square-root scale\)

Wait1 hour3 daysa fortnight30 daysDoughtest loaf, 20 °Cwarm room, 30 °Cunkneaded

steps shown—

planner steps—

even half-hours—

end volume—

with 6-minute steps—

difference—

### The wait is worked out in slices, and the slices change nothing

Press "Wait 3 days" and a curtain drops while the painter waits with you. Behind it, the simulation does its sums in the background thread in slices of about 6 milliseconds, letting other messages through in between, so the screen keeps moving. Anything you draw meanwhile waits and lands after the wait. A test stops the wait at every possible point and checks that the result matches doing it in one go to the last digit, down to the next random number, for six kinds of skip on both sheet sizes.

[Under the hood: the slices](<#hood-slices>)

The wait is worked out in slices, and the slices change nothing

Under the hood

### The wait is worked out in slices, and the slices change nothing

A skip is written as a **resumable job** that can pause at every safe stopping point and carry on later with nothing lost. In the Web Worker it runs until a budget of about 6 ms is used up, hands back to the message queue, and picks up again. Strokes that arrive meanwhile are held and land after the wait. The curtain stays down for at least a couple of seconds, so even a quick wait reads as time passing. The 6 ms is a budget; we have no measured figure for a whole skip on a device, so we print none.

The wait in slices, beside the screen's frames IllustrationFrames every 16.7 ms on a 60 Hz screen \(top\); the wait's slices of about 6 ms in the worker \(each ends at the first stopping point after 6 ms\), with messages handled between them \(bottom, blue; grey gaps\). The 6 ms is the code's budget, not a measured time.

![Illustration: the worker works on the wait in slices of about 6 milliseconds, with messages handled between them, while the screen keeps drawing frames every 16.7 milliseconds.](<https://professoroops.com/_assets/entity_Bn8XzANwAbIDHvuEoKbx.png>)

- screen
- worker
- a frame
- messages go through here
- 0 ms
- 20 ms
- 40 ms
- 60 ms

Each living thing runs at its own speed while you playMould: a game-hour per 1.5 real minutes. Plants: a game-hour per real minute.

Yeast runs at real time; kneading about 20 times as fast, mould 40 times and plants 60 times.

Data table

Each living thing runs at its own speed while you play

|  | speed-up in play |
| --- | --- |
| yeast in dough | 1 |
| kneading | 20 |
| mould | 40 |
| plants | 60 |

Source: Dough: the simulation's own seconds. Kneading: half a minute in the game does about ten minutes of real kneading, about 20×.

2.45×

The most a kneaded dough rises, at any warmth from 3 to 50 °C, before it tears and sinks. Unkneaded dough stops at 1.69×. Worked out on this page for one spot from the game's own yeast rule.

20 h

Game-hours before a spore that landed shows as a dot of mould.

37 steps

For three days of a normal loaf, instead of 144 even half-hours; held within 1 % of six-minute steps by a test.

6 ms

The time budget for each slice of a wait's work before the worker lets other messages through.

5 buttons

Wait an hour, wait three days, bake, freeze and a week in the sun, all running one recipe given a temperature and a number of hours.

14 days

The most a page ages when you come back to it; a kept drawing from My drawings, up to 30.

## Salty dough lights a bulb and mould rides the wind, through layers every system shares

None of these is a rule about dough or mould meeting something. Each comes from one system writing a shared number and another reading it.

Shared: salt → conductance

### Make a very salty dough and put it in a circuit

With as much salt as play dough has, it lights a bulb and warms up. A normal bread's salt carries far too little. Pinned by a test.

*[Electricity](<https://professoroops.com/en/inside/electricity/>)*

Shared: gas share → pores

### Put a drop of colour beside a slice of bread

The baked bread drinks it up, because its gas became holes in the wicking layer. Pinned by a test.

*[Water in paper](<https://professoroops.com/en/inside/water/>)*

Shared: air: spores

### Bounce a ball on mould in a breeze, then wait

New colonies start downwind where the spores land on food. Pinned by a test.

*[Air that really moves](<https://professoroops.com/en/inside/air/>)*

Shared: fizz gas → the yeast's rule

### Mix baking soda and vinegar into dough

It rises in seconds by the yeast's own rule and bakes full of holes. Pinned by a test.

*[Chemistry and pH](<https://professoroops.com/en/inside/chemistry/>)*

Shared: smell: sweet

### Leave a yeasted dough to prove

Flies come to it, following the sweet smell the busy yeast gives off. Pinned by a test.

*[Animals with their own minds](<https://professoroops.com/en/inside/creatures/>)*

Shared: contact: press

### Roll the pin over risen dough

It knocks the gas out, by how hard and how long it presses. Pinned by a test.

*[Things that push things](<https://professoroops.com/en/inside/pushing/>)*

## Dough has no real bubbles and bakes evenly all through, so a tablet can work out days in a moment

Living things are the hardest part of the page to simulate honestly, and the slowest. Each shortcut below keeps what a child can see and test, and lets a tablet work out days without playing them.

**In real life.** Dough is a foam of bubbles, yeast cells, sugars, CO₂ and alcohol.

**In the game.** One gas share per spot. The pores you see are noise fixed to each spot, deepened by the gas.

**Why that's enough.** Cheap and it combines with everything else that reads goop. There's no bubble structure to tear or merge.

**In real life.** Yeast dies, and its food runs out, separately.

**In the game.** One number does both: as the yeast eats, the yeast number falls. Only added sugar is tracked on its own.

**Why that's enough.** One number per spot. Adding yeast to spent dough acts as new yeast and new food at once.

**In real life.** A loaf heats from the outside in, and steam comes from its water.

**In the game.** Every spot warms from room temperature to boiling on the same short ramp, whatever the loaf's size. The gas swells by the real ideal-gas ratio, then by a flat extra factor for steam.

**Why that's enough.** No heat has to move through the dough. There's no crumb gradient, and the crust is a flat factor.

**In real life.** Dough rests for hours.

**In the game.** In play, yeast runs in real seconds; the time buttons do the hours.

**Why that's enough.** Waiting an hour is no fun. A yeasted dough barely moves in a minute of play, so the fizz of soda bread is the rise you can watch.

**In real life.** A mould colony's edge usually moves out at a steady pace, faster when warm and well fed.

**In the game.** Its radius grows with the square root of its age, up to a largest size, and ignores warmth and food. Food and habitability only set how thick it grows and where it can start.

**Why that's enough.** It slows under a child's eyes and costs one sum for any wait. A warm room and a cold one give the same size.

**In real life.** Water activity decides whether mould can grow; honey keeps because it holds its water.

**In the game.** Sugar against water past a limit, and salt, acid, bleach and char, each a straight-line term in one sum.

**Why that's enough.** The right idea, read from what's at each spot. Sugar and salt add up rather than combining into one water activity.

**In real life.** Things dry out during a wait, and stop growing as they do.

**In the game.** Dampness is read once, at the start of a skip, for mould and seeds alike.

**Why that's enough.** The skip stays closed form. A seed on a drop gets all 72 damp hours, and a wet dab of ketchup moulds through all three days though it dries during them.

**In real life.** Cut fruit browns within minutes, by an enzyme with oxygen; lemon slows it.

**In the game.** A colour and height curve over days, only during a wait, the same for every fruit tagged as browning. Lemon and air aren't read.

**Why that's enough.** Visible at the three-day scale, nearly free. Nothing browns while you watch, and whole apples and tomatoes darken too.
