PETRI DISH GAMES

Contaminants

A cell that plays for a side other than the player's.

A contaminant is a cell that plays for a side other than the player’s: a wild contaminant, which belongs to no lab, or a rival clade, seeded as deliberate opposition. Every cell carries that side, stamped when its founder spawned and inherited verbatim by every daughter. A disowned colony is neither the player’s nor a contaminant, and counts for no side at all. Contaminants arrive on their own while a culture runs, and every division they run mutates one step further than a player-owned division does.

Both kinds are drawn in one rival colour rather than a colour of their own, so the dish shows that a cell is not the player’s and never whose it is. That colour’s hue rotates with how far the lineage has drifted from its root.

Bacteria are a separate population with their own events, and they arrive earlier and more often than wild cells.

Contamination events

Bacterial events fire on an ordinary culture. Wild cell events need one of three things: a living dish that is neither retired nor a creative lab, a map that paints contaminant tiles, or the designer override, which ships off. An ordinary bench culture satisfies none of them and gets bacteria only. In a creative lab neither family fires.

The rate rises with the mean unclaimed richness of the substrate over the play region, above a small constant floor. It never reads the player’s cell count or progress: a dish over richer growth media contaminates sooner than a lean one. Cell events roll that same rate scaled down, so wild cells stay rarer than bacteria. Each family sits behind a quiet opening period, measured in simulated seconds from culture start, and stops firing while its own population is at or above a ceiling.

FamilyQuiet period from culture startPopulation ceiling
Bacteria60 seconds4096 bacteria
Wild cells150 seconds100 contaminant cells

A bacterial event drops one patch per millimetre of dish diameter, evenly spaced around a ring inside the rim from a random angle. Each patch carries three to eight bacteria, on a count drawn once per event, and they drift inward from where they land. A cell event places about one wild cell per millimetre of diameter, or, where the map paints tiles, that many scaled to the tiles’ share of the dish area, never fewer than one.

Both families are announced with a card, and in a single-dish culture each bacterial patch also drops a CONTAMINATION marker that becomes an edge arrow while it is off screen. The antibiotic objective does not arm on the first wave: it waits until the bacterial population reaches 150. The first wild cell activates its own reactive contract.

Contaminants at culture start

A map that paints tiles seeds a fixed opening cluster of four cells onto that ground the moment the culture starts running, ahead of the quiet period. A fresh Living World dish is seeded once with its opening opposition: an acidophile clade on the dish’s acid pole and a psychrophile clade on its cold pole, each adapted to the ground it sits on. A resumed plate already holds its rivals and is not seeded again.

Genome and drift

A wild contaminant is built from the canonical starter genome with extra mutation passes and behaviour-gene jitter on top, and its tolerances are retargeted last onto the dish’s authored pH and temperature, so it arrives able to live where it lands. On a tile seed, a cell whose tile has current readings is retargeted onto those instead.

Every division a contaminant runs then adds one extra mutation pass beyond the normal one, for cell division, amoeba budding and plasmodium budding alike.

Player control

A contaminant cannot be hovered, clicked, selected, box-selected or read in the inspector, and the control gate refuses drag, harvest, mark, prune, mitosis and apoptosis. None of these produce a response at all, because the pick that would have found the cell drops it first.

The exception is the right-click order. With player-owned cells selected, right-clicking a contaminant on live ground issues a pursuit: the commanded cells close to contact and hold there. Whether anything is then eaten is the strain’s own behaviour, not part of the order.

Visibility

The dish keeps three visibility states over its ground: unsurveyed, surveyed and live. Only live ground draws anything that is not the player’s, and ground stops being live shortly after the player’s cells leave it, so a contaminant on ground that was explored and left behind is absent from the screen rather than dimmed in it. Player-owned cells are never gated, and the same test gates the pointer, the minimap and the lens. Where there is no visibility field at all (the menu, a cell preview, an unbounded world), every query answers visible and nothing is hidden.

The CONTAMINANT lens rims every contaminant on live ground and none anywhere else. It sits in the HUD’s LENS section under the CELL dropdown, default key K, rebindable, and the CELL options are mutually exclusive.

No census exists. The colony readout counts player-owned cells only and the strain registry skips any cell that is not the player’s, so outside a contest the game never states how many contaminants are in the dish.

Sterilization

While sterilization is active no events of either kind fire, no pressure accumulates, and the culture-start seed is held. It charges biomarks equal to the dish diameter in millimetres each simulated second, and the first charge the player cannot pay switches it off.

Nothing in this cycle turns it on: starting a culture from the bench writes the opt-out, and a save restores whatever was stamped, which is always the opt-out. The suppression never runs, so contamination cannot be prevented, only outlived. Clearing the dish does not end it either: each family stops spawning only while its population sits at or above its ceiling, so an emptied dish is a dish whose events resume.

Notes

The Measurer attested cycle 0.4.4

The richness that sets the contamination rate is read off the CPU mirror of the substrate, not off the GPU field the simulation depletes, and the mirror is not uniformly current. A chunk is refreshed by readback only while it holds cells or sits in the camera’s view; a chunk with neither keeps whatever it last read back, and a chunk whose growth-media array was released after upload answers full richness until a readback re-rents it.

The sample points drawn each tick are therefore a mixture: current ground where the player’s colony sits or where the camera looks, generated or default ground everywhere else. The manager’s own comment claims the mirror is a load-time snapshot that depletion never rewrites, which is not what the readback path does. Either way the consequence for the player is the same: eating out the substrate under a colony does not reliably lower the arrival rate, because most of the disk being sampled is not ground the colony has touched.

bound to 4 files

Bound to

The source this page's claims were read against, named by symbol and pinned by the digest of the file it lives in.

SymbolDigest
BionetRivalClades 8eb2c115bfff
BuddingController e517b1c1d6cc
BuildSmartLeg 19d2ef4f4143
CanPlayerControl 3728cfa732bb
CellFilterRegistry 8f28f869d10b
CellParty 8ddd2aba855e
CellTeamTint 32d742c33d4c
ContaminantCellCount 70799c4fa318
ContaminationEventManager 6587eb33ec3e
CreateGenomeForDaughter e439e8f9dfd8
CulturePlateSaveManager 13bcdc027bbb
DishFogField d3d595edcbe1
FilterContaminant ba21ca0a39a9
FilterHudSection a1f7aaee8c95
HexColonyStripSection 45cbb6ddcba4
HexNewCulturePanel 52f1efff6f73
HiddenByFog e93df426f502
HiddenByFog d129fc03dfe9
HudDishMinimap 79b7aecefc2d
SampleG a13cd2a501d5
SampleGrowthMedia 3e82bae8555a
SampleUnclaimedRichness 6587eb33ec3e
SetPendingSterilizationOptIn cb5d359f1d20
ShouldQueueReadback 973a181fe1d8
SlimeMoldNetwork 06f3f854c8b6
SpawnContaminantCells c31caee94bdf
SpawnEventBurst fa866caa44a9
SterilizationManager a14b4b3f7bed
StrainRegistryListBuilder 64b5a149ccb8

Near this subject

These are the subjects this one is joined to in the field. Step out of this card and they are the wells around the one you are standing in.