A petri culture grown in the Anisota Lab's Petri studio and saved to the owner's collection. A culture is stored as its recipe rather than its pixels: a 'seed', the dish dimensions, and the ordered list of 'drops' (each an ingredient inoculated at a normalised point and at a given iteration). Because the Gray-Scott reaction-diffusion simulation is deterministic, replaying that recipe rebuilds the exact field. 'iterations' is how far the culture has grown; 'lastTickAt' lets a reopened culture advance proportionally to real time elapsed. A small PNG thumbnail is kept for display.
any
Any valid record key
Properties
branch
integer
Optional
Form tunable 'branching' (dense blob → open dendrites → veins), scaled 0..1000
createdAt
string
datetime
Required
When the culture was saved
drops
array
of
object
Required
Ordered inoculations: each an ingredient placed at a normalised point at a given iteration
maxLength: 512 itemsheight
integer
Required
Dish grid height in cells
image
string
Optional
A PNG data URL thumbnail of the culture
maxLength: 120000 bytesiterations
integer
Required
How many simulation iterations the culture has grown
lastTickAt
string
datetime
Optional
When the culture last advanced, used to grow it forward on reopen
name
string
Required
Display name for the culture
maxLength: 800 bytesmaxGraphemes: 100 graphemespalette
string
Optional
Colour palette id (agar, rose, amber, marine)
maxLength: 40 bytesseed
integer
Required
PRNG seed the simulation was initialised with
thickness
integer
Optional
Form tunable 'thickness' (fine veins → fat rivulets), scaled 0..1000
wander
integer
Optional
Form tunable 'wander' (straight → meandering branches), scaled 0..1000
width
integer
Required
Dish grid width in cells
View raw schema
{
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"seed",
"width",
"height",
"drops",
"iterations",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 800,
"description": "Display name for the culture",
"maxGraphemes": 100
},
"seed": {
"type": "integer",
"description": "PRNG seed the simulation was initialised with"
},
"drops": {
"type": "array",
"items": {
"type": "object",
"required": [
"ingredient",
"x",
"y",
"atIteration"
],
"properties": {
"r": {
"type": "integer",
"description": "Optional inoculation radius in grid cells (per-drop size variation). Absent means the default radius."
},
"x": {
"type": "integer",
"description": "Normalised x position scaled to 0..1000"
},
"y": {
"type": "integer",
"description": "Normalised y position scaled to 0..1000"
},
"tint": {
"type": "integer",
"description": "Optional custom colony hue from the colour picker, scaled to 0..1000. Absent means the dropper's default colour."
},
"ingredient": {
"type": "string",
"maxLength": 40,
"description": "Ingredient id (bacillus, mold, yeast, pigment, agar, antibiotic)"
},
"atIteration": {
"type": "integer",
"description": "Iteration count at which this drop was placed"
}
}
},
"maxLength": 512,
"description": "Ordered inoculations: each an ingredient placed at a normalised point at a given iteration"
},
"image": {
"type": "string",
"maxLength": 120000,
"description": "A PNG data URL thumbnail of the culture"
},
"width": {
"type": "integer",
"description": "Dish grid width in cells"
},
"branch": {
"type": "integer",
"description": "Form tunable 'branching' (dense blob → open dendrites → veins), scaled 0..1000"
},
"height": {
"type": "integer",
"description": "Dish grid height in cells"
},
"wander": {
"type": "integer",
"description": "Form tunable 'wander' (straight → meandering branches), scaled 0..1000"
},
"palette": {
"type": "string",
"maxLength": 40,
"description": "Colour palette id (agar, rose, amber, marine)"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When the culture was saved"
},
"thickness": {
"type": "integer",
"description": "Form tunable 'thickness' (fine veins → fat rivulets), scaled 0..1000"
},
"iterations": {
"type": "integer",
"description": "How many simulation iterations the culture has grown"
},
"lastTickAt": {
"type": "string",
"format": "datetime",
"description": "When the culture last advanced, used to grow it forward on reopen"
}
}
},
"description": "A petri culture grown in the Anisota Lab's Petri studio and saved to the owner's collection. A culture is stored as its recipe rather than its pixels: a 'seed', the dish dimensions, and the ordered list of 'drops' (each an ingredient inoculated at a normalised point and at a given iteration). Because the Gray-Scott reaction-diffusion simulation is deterministic, replaying that recipe rebuilds the exact field. 'iterations' is how far the culture has grown; 'lastTickAt' lets a reopened culture advance proportionally to real time elapsed. A small PNG thumbnail is kept for display."
}