A Physarum (slime-mould) organism grown in the Anisota Lab's Plasmodium workbench and saved to the owner's collection. Stored as its recipe rather than its pixels: a 'seed', the simulation 'gridSize', a 'genome' of behavioural parameters (all continuous 0..1 tunables scaled to integers 0..1000, since atproto lexicons have no float type), and the ordered 'foods' and 'inoculations' the grower placed. Because the GPU agent simulation is deterministic given the same seed, genome and placements, replaying the recipe regrows the organism. A small PNG thumbnail is kept for display.
any
Any valid record key
Properties
agentTier
integer
Optional
Agent-count tier that grew it (0=small, 1=medium, 2=large). A reopen may cap lower on a weaker device.
createdAt
string
datetime
Required
When the organism was saved
foods
array
of
object
Optional
Ordered food drops the grower placed; each replayed at its step so growth rebuilds identically.
maxLength: 256 itemsgenome
object
Required
Behavioural parameters. Global tunables plus one species entry (two when multiSpecies). Continuous values are scaled to integers 0..1000; enumerated traits (spawn, interMode, renderMode) are small raw integer indices.
gridSize
integer
Required
Trail-field grid resolution in cells (square)
image
string
Optional
A PNG data URL thumbnail of the organism
maxLength: 120000 bytesinoculations
array
of
object
Optional
Ordered inoculation taps (respawned agent patches).
maxLength: 256 itemslastTickAt
string
datetime
Optional
When the organism last advanced, used to grow it forward on reopen
multiSpecies
boolean
Optional
Whether a second agent population was active
name
string
Required
Display name for the organism
maxLength: 800 bytesmaxGraphemes: 100 graphemespalette
string
Optional
Colour palette id (amber, ember, lichen, frost, mono)
maxLength: 40 bytesseed
integer
Required
PRNG seed the simulation and genome were initialised with
steps
integer
Optional
How many simulation steps the organism had grown when saved
View raw schema
{
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"seed",
"gridSize",
"genome",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 800,
"description": "Display name for the organism",
"maxGraphemes": 100
},
"seed": {
"type": "integer",
"description": "PRNG seed the simulation and genome were initialised with"
},
"foods": {
"type": "array",
"items": {
"type": "object",
"required": [
"x",
"y",
"atStep"
],
"properties": {
"r": {
"type": "integer",
"description": "Radius in cells"
},
"x": {
"type": "integer",
"description": "Normalised x scaled 0..1000"
},
"y": {
"type": "integer",
"description": "Normalised y scaled 0..1000"
},
"atStep": {
"type": "integer",
"description": "Sim step at which it was dropped"
}
}
},
"maxLength": 256,
"description": "Ordered food drops the grower placed; each replayed at its step so growth rebuilds identically."
},
"image": {
"type": "string",
"maxLength": 120000,
"description": "A PNG data URL thumbnail of the organism"
},
"steps": {
"type": "integer",
"description": "How many simulation steps the organism had grown when saved"
},
"genome": {
"type": "object",
"required": [
"species"
],
"properties": {
"blur": {
"type": "integer",
"description": "Diffusion (3x3 blur) strength, 0..1000"
},
"spawn": {
"type": "integer",
"description": "Initial spawn pattern index: 0 scatter, 1 ring, 2 spore, 3 colonies, 4 poles, 5 spiral"
},
"species": {
"type": "array",
"items": {
"type": "object",
"required": [
"sensorAngle",
"rotationAngle",
"sensorOffset",
"step",
"deposit",
"decay",
"density"
],
"properties": {
"hue": {
"type": "integer",
"description": "Per-species colour hue, 0..1000 = 0..360 degrees"
},
"step": {
"type": "integer",
"description": "Step size per move, 0..1000 = 0..4 cells"
},
"decay": {
"type": "integer",
"description": "Trail persistence, 0..1000 = 0.80..1.00 retained"
},
"density": {
"type": "integer",
"description": "Fraction of the agent budget this species occupies, 0..1000"
},
"deposit": {
"type": "integer",
"description": "Trail deposit amount, 0..1000"
},
"renderMode": {
"type": "integer",
"description": "Render mode index: 0 filament, 1 veil, 2 crystal, 3 plasma, 4 flow"
},
"sensorAngle": {
"type": "integer",
"description": "Sensor angle SA, 0..1000 = 0..90 degrees"
},
"sensorOffset": {
"type": "integer",
"description": "Sensor distance SO, 0..1000 = 0..32 cells"
},
"rotationAngle": {
"type": "integer",
"description": "Rotation angle RA, 0..1000 = 0..90 degrees"
}
}
},
"maxLength": 2,
"description": "One entry per agent population"
},
"interMode": {
"type": "integer",
"description": "Cross-species interaction index: 0 ignore, 1 attract, 2 repel, 3 predator/prey, 4 symbiosis, 5 competition"
},
"foodWeight": {
"type": "integer",
"description": "How strongly agents are drawn to the food channel, 0..1000"
},
"interStrength": {
"type": "integer",
"description": "Cross-species coupling strength, 0..1000"
}
},
"description": "Behavioural parameters. Global tunables plus one species entry (two when multiSpecies). Continuous values are scaled to integers 0..1000; enumerated traits (spawn, interMode, renderMode) are small raw integer indices."
},
"palette": {
"type": "string",
"maxLength": 40,
"description": "Colour palette id (amber, ember, lichen, frost, mono)"
},
"gridSize": {
"type": "integer",
"description": "Trail-field grid resolution in cells (square)"
},
"agentTier": {
"type": "integer",
"description": "Agent-count tier that grew it (0=small, 1=medium, 2=large). A reopen may cap lower on a weaker device."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When the organism was saved"
},
"lastTickAt": {
"type": "string",
"format": "datetime",
"description": "When the organism last advanced, used to grow it forward on reopen"
},
"inoculations": {
"type": "array",
"items": {
"type": "object",
"required": [
"x",
"y",
"species",
"atStep"
],
"properties": {
"r": {
"type": "integer",
"description": "Radius in cells"
},
"x": {
"type": "integer",
"description": "Normalised x scaled 0..1000"
},
"y": {
"type": "integer",
"description": "Normalised y scaled 0..1000"
},
"atStep": {
"type": "integer",
"description": "Sim step at which it was placed"
},
"species": {
"type": "integer",
"description": "0 or 1"
}
}
},
"maxLength": 256,
"description": "Ordered inoculation taps (respawned agent patches)."
},
"multiSpecies": {
"type": "boolean",
"description": "Whether a second agent population was active"
}
}
},
"description": "A Physarum (slime-mould) organism grown in the Anisota Lab's Plasmodium workbench and saved to the owner's collection. Stored as its recipe rather than its pixels: a 'seed', the simulation 'gridSize', a 'genome' of behavioural parameters (all continuous 0..1 tunables scaled to integers 0..1000, since atproto lexicons have no float type), and the ordered 'foods' and 'inoculations' the grower placed. Because the GPU agent simulation is deterministic given the same seed, genome and placements, replaying the recipe regrows the organism. A small PNG thumbnail is kept for display."
}