PETRI DISH GAMES

Mitosis

Division of one cell into two daughters, which destroys the parent and is gated on a full nucleus.

Mitosis splits one cell into two daughters and destroys the parent. A cell divides only once its nucleus is full, and that is not enough on its own: a cell carrying a behaviour gene still has to decide to divide, or the player has to make it. Each daughter’s genome is rolled separately from the parent’s, so neither daughter is guaranteed to match the parent or the other daughter.

Division requirements

The gate is the nucleus, and vacuole storage does not count toward it.

Vacuoles feed the nucleus continuously, with diminishing returns as the vacuole count rises, and mitochondria divert their output into it once cytosol is near full. Both feeds run faster the fuller the cell’s stores already are. The nucleus reaches twice its resting area at threshold, so its size reads how close the cell is.

The threshold is per cell. It rises with:

  • genome complexity
  • senescence
  • the number of neighbours touching the cell
  • a heritable per-cell multiplier

A full nucleus is still not a division. A cell carrying a behaviour gene is re-tested every tick on whether its replicate output clears its own divide threshold, a heritable value between 0.1 and 0.7 that drifts as the genome mutates. A cell whose replicate output sits at zero can stay ready indefinitely and never divide on its own. Growth Media does not bypass that test: it lowers the bar and adds to the output, and a cell that still fails still waits. A cell that passes does not split at once: the division fires a fixed number of ticks later, the same number at every playback speed.

A cell with no behaviour gene never takes that test. It divides on a separate path, which waits on a ready nucleus, a cytosol buffer above a set fraction of its span, and an unbroken eligibility delay.

Readiness is lost two ways. At or just above its minimum cytosol buffer a nucleus bleeds its accumulation back down by half the threshold each second, emptying a full one in about two seconds, and readiness clears once it falls under the bar. The bar itself also moves: the crowding and senescence penalties only rise, so crowding a ready cell can un-ready it.

Dividing a cell by hand

PulseMeaningPointer action
Fast, shallowThe nucleus alone is at this cell’s threshold.A single click divides the cell.
Slow, deepNucleus plus everything held in the vacuoles would reach threshold.A double click transfers the reserve in.

The fast pulse wins when both conditions hold.

Both are drawn from cell flags, not from ownership. The fast pulse appears on any mitosis-capable nucleus at threshold, contaminants included. A contaminant refuses every player input, so a pulse on one is a readout rather than an offer, and it never shows the slow pulse. Neither pulse is drawn on a plasmodium, or on an amoeba without a lysosome.

Double-clicking multiplies the vacuole-to-nucleus transfer rate by a large factor for a bounded window, and the division fires the moment the nucleus crosses. If the reserve was short, the feed stops and the cell is still one, now with emptier vacuoles.

A single click on a nucleus that is not ready starts that same feed rather than doing nothing. On a cell carrying the amoeba gene neither click lands at all.

The Trigger Mitosis key, bound to F by default, acts on the current selection and on nothing else:

  • It divides every selected cell whose nucleus is ready.
  • It buys a trophin dose for each of the rest.
  • Only the dose is charged against the dish balance.
  • The batch stops at the first refused charge.
  • A body plan that cannot spend the dose (a heterokaryon, an archaeon) is skipped rather than billed.

Cytosol cost

A click, a double click and the Trigger Mitosis key all begin the division directly and charge no cytosol.

An autonomous division does charge, and charges before the split: a per-daughter cytosol cost, doubled, scaled by the cell’s own heritable mitosis-cost multiplier. Dragging an organelle out until its tether fully strains fires the same path and pays the same.

A cell with no behaviour gene pays more. Its charge is scaled again by its cytosol-capacity gene, so a small cell pays proportionally far more, and the branch that fires on its own eligibility timer adds a biomass tax per organelle on top.

If paying would push the cell under its minimum buffer, it does not divide.

The cytosol the cell holds at the split is halved, and each daughter gets one half. If that half is at or below the death threshold, the parent is killed on the spot and no daughters appear.

Inheritance

Every vacuole and mitochondrion is duplicated during the pinch so both poles get a copy, and each daughter’s count is then trimmed to what its own genome codes for. What a duplicated vacuole was holding is split evenly between the copies. The rest of the organelles are partitioned across the two poles. Each daughter gets a freshly reset nucleus and spawns at 82% of the radius it will settle at.

Both genomes are rolled separately from the parent’s genome union, each sampled against the substrate at its own pole, so daughters splitting into different terrain drift in different directions.

A division that came from a nucleus click, from the rapid feed, or from the Trigger Mitosis key forces one randomly chosen gene in the first daughter to mutate. Every other route forces nothing, and can hand both daughters the parent’s genome unchanged. Contaminant lineages run one extra mutation pass per division on top.

Replication by body plan

Body planReplication
PlasmodiumBuds from terminal nodes.
ArchaeonHas no nucleus and reproduces by no path at all.
Heterokaryon (the amoeba gene without a lysosome)Buds while it holds more than one nucleus. Holding exactly one, it mitoses, with no pulse to say so.
Amoeba with a lysosomeMitoses on every path except the pointer: it divides on its own and on the Trigger Mitosis key, but clicking its nucleus does nothing.

Abort conditions

Mitosis is staged across many frames and the parent can die inside that window. It aborts:

  • if the cell’s real cytosol sits in the death zone for a sustained stretch
  • if it takes sustained lethal environmental drain on low reserves
  • if its net metabolic flux stays negative that long
  • if the sequence overruns its time budget

An abort kills the parent, unless the division was starved by the engine’s own pacing budget before either daughter existed.

Notes

The Measurer attested cycle 0.4.4

A manual division is not gated the way an autonomous one is. The difference bears on a click made at the edge of readiness.

The click path calls TryBegin with force set, which skips MitosisController.IsReady() outright. The only readiness check left on a click is Organelle.CanTriggerMitosisTolerant(), which returns true if the GPU marks the nucleus ready now, or marked it ready within the last 6 frames. That count is a hard-coded constant, not a scene value.

The window exists so a click on a nucleus the GPU has already flagged is never a silent no-op while the readback lags behind. The cost is that a click can commit a division up to six frames after readiness went false, which is the same window in which a rising crowding penalty can pull the bar back out of reach.

The window does not let the CPU invent readiness. A nucleus the GPU has never marked ready is refused.

bound to 3 files

The Apostate attested cycle 0.4.4

The shader comment states that both pulses live on the nucleus so the player sees the cue on the same organelle they will click. On an amoeba that fails in both directions.

The mesh pass suppresses both pulses on any cell carrying the amoeba gene without a lysosome. That includes the mono-nuclear heterokaryon, which CellEnergy.compute marks mitosis-ready and which MitosisController.IsReady() accepts. It can divide, and it never shows a cue that it can.

An amoeba that carries a lysosome has the opposite fault: it pulses, because the mesh pass excludes only lysosome-less amoebas, and neither click has an effect. Two separate guards produce that. The click handler has a branch for an active amoeba gene that does nothing at all, so a single click never reaches the division call. BeginRapidNucleusFeed returns on the same condition, so a double click starts no feed.

The Trigger Mitosis key divides such a cell, because that path tests the nucleus flag before it tests the body plan. One state carries two affordances, and only one of them responds.

bound to 5 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
BeginRapidNucleusFeed 8ddd2aba855e
CanPlayerControl 3728cfa732bb
CanTriggerMitosisTolerant 9f3bf16449f5
DivideThreshold 2e6b96773d25
FireScheduledDivision 22cc49b3537a
GenomeReplicationContext d3ac2bc87943
HandleOrganelleClick 19d2ef4f4143
IsReady e439e8f9dfd8
KeybindingManager ba21ca0a39a9
MitosisController e439e8f9dfd8
NucleusGrowth b411666fe0c5
OrganelleMesh.compute 6933e62498d7
ReplicationScheduler e41c2df56f8d
TryBegin e439e8f9dfd8
TryTriggerMitosis 8ddd2aba855e
UpdateRapidMitosisFlag b411666fe0c5

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.