PETRI DISH GAMES

Freezing and reseeding

The owner's flag that exempts an organism from culling and from carrying capacity, and the restart that founds a new pool from the frozen shelf.

Freezing marks an organism as one the owner keeps: a frozen organism is exempt from every culling pressure and is not counted against the pool’s carrying capacity. It is otherwise an ordinary member of the population, breeding and being judged like the rest. Reseeding restarts one track’s pool from a named set of organisms, culling everything else alive and unfrozen in that track.

The frozen flag

frozen is a column on the organism row, an integer defaulting to 0, added to the table at startup alongside the public-judging columns.

POST /api/freeze takes an id and a frozen value. Any truthy value stores 1 and anything else stores 0, so one route both freezes and thaws. The route requires only that the row exist: it does not check the track and it does not check status, and setting the flag on a culled row does not return that row to the pool. Each call writes a freeze event to the lab’s log.

Exemptions

PressureEffect on a frozen organism
Clone purgeNever marked, though it still counts toward its clone family’s total.
Backlog reliefNever retired, judged or not.
CrowdingExcluded from the cullable set.
SenescenceExcluded from the cullable set.
Carrying capacityNot counted.
ReseedingSurvives untouched unless named as a seed.

Carrying capacity is measured over the unfrozen population alone, and so is the ratio that decides how thin the evidence for a death may be. Freezing therefore adds members to the pool rather than displacing them: the number the crowding pressure trims down to is the same whether the shelf holds nothing or holds twenty.

Behaviour freezing does not suspend

  • It breeds. The parent pool is every alive organism of the track, frozen included, so a frozen organism is drawn for breeding on the same terms as any other.
  • It is judged. Neither the owner’s pair scheduler nor the public one reads the flag, so a frozen organism keeps appearing in duels and keeps moving on both of judging’s ladders.
  • It fills a slot in its clone family. A family holds a fixed number of token-near members and a frozen one occupies a place in that count, so freezing a look does not entitle the pool to extra copies of it. See diversity.
  • It counts toward the unjudged backlog. Births halt for a track once too many alive organisms have no game from any judge, and a frozen organism in that state both counts toward the backlog and is exempt from the relief that would otherwise retire a redundant member of it.
  • It can still be marked dead. The owner’s arena reports a shader that fails to compile or draw to POST /api/invalid, which sets the row’s status to dead without reading the flag.

Reseeding a pool

POST /api/reseed takes a track and an array of ids.

  • The track must be one the lab defines, and ids must be a non-empty array.
  • At most the first 500 entries are read. Each must be a positive safe integer naming a row in that track; every other entry is discarded.
  • If no entry survives that filter the request is rejected and nothing is written.

The request then runs two statements. First, every organism in the named track whose status is alive, whose frozen is 0, and whose id is not among the seeds is set to culled. Second, each seed is reset. Other tracks are untouched, and so is any frozen organism that was not named as a seed.

The response carries the number seeded and the number culled, and a reseed event records both.

The route accepts any organism id belonging to the track. Confining the seeds to the frozen shelf is the behaviour of the owner’s page, not a constraint of the route.

Fields a reseed resets

FieldAfter the reset
statusalive, for every seed, including one that was culled or dead
ratingthe lab’s configured starting rating, currently 1200
games, wins0
errorcleared
pub_rating, pub_games, pub_winsunchanged
frozenunchanged
render_okunchanged
code, title, op, parents, gen, prompt_idunchanged

The owner’s ladder is what a reseed clears; the crowd’s is not. A seed carrying public games re-enters ranked on its public rating alone, because the blended figure selection reads falls back to the public column while owner games sit at zero.

The flag survives the reset as well. A pool seeded from the frozen shelf is therefore founded by organisms that are still frozen: the founding population sits outside carrying capacity and outside every culling pressure until it is thawed one row at a time.

The owner’s page

GET /api/leaders returns two lists for a track: the highest-rated alive organisms that have at least one owner game, and every alive frozen organism, ranked by rating. The second list drives a Frozen section above the leaders, which is hidden when it is empty. A frozen organism appears there whether or not any judge has seen it.

Every card in either section carries a button reading freeze or thaw, which posts the opposite of the organism’s current state and reloads the page. The Frozen heading carries a second button, seed new pool from frozen, which asks for confirmation naming the track and the number of seeds, then posts a reseed with exactly the ids of that track’s frozen list.

Both routes are owner-only. They sit behind the lab’s shared-secret check and, being writes, behind a further check that the request came from one of the lab’s own origins; a request failing either gets a 404 with no body. The public API is a separate, narrower route table handled before that check, and it contains no freeze and no reseed. Nothing it returns exposes the flag either: a public pair carries an id and a shader body, and a gallery item carries a body, its prompt gene and its taxonomy.

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
cull b72f4e12e72f
db.js 193eb96a460a
gallery.html 610658446f1e
lab.config.json a095dd3b3dab
public-api.js f14fffef049d
server.js 2ee5143085a9

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.