net.anisota.lab.plasmodium

anisota.net

Documentation

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.

main record

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.

Record Key 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 items
genome 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 bytes
inoculations array of object Optional

Ordered inoculation taps (respawned agent patches).

maxLength: 256 items
lastTickAt 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 graphemes
palette string Optional

Colour palette id (amber, ember, lichen, frost, mono)

maxLength: 40 bytes
seed 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
{
  "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.",
  "key": "any",
  "record": {
    "properties": {
      "agentTier": {
        "description": "Agent-count tier that grew it (0=small, 1=medium, 2=large). A reopen may cap lower on a weaker device.",
        "type": "integer"
      },
      "createdAt": {
        "description": "When the organism was saved",
        "format": "datetime",
        "type": "string"
      },
      "foods": {
        "description": "Ordered food drops the grower placed; each replayed at its step so growth rebuilds identically.",
        "items": {
          "properties": {
            "atStep": {
              "description": "Sim step at which it was dropped",
              "type": "integer"
            },
            "r": {
              "description": "Radius in cells",
              "type": "integer"
            },
            "x": {
              "description": "Normalised x scaled 0..1000",
              "type": "integer"
            },
            "y": {
              "description": "Normalised y scaled 0..1000",
              "type": "integer"
            }
          },
          "required": [
            "x",
            "y",
            "atStep"
          ],
          "type": "object"
        },
        "maxLength": 256,
        "type": "array"
      },
      "genome": {
        "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.",
        "properties": {
          "blur": {
            "description": "Diffusion (3x3 blur) strength, 0..1000",
            "type": "integer"
          },
          "foodWeight": {
            "description": "How strongly agents are drawn to the food channel, 0..1000",
            "type": "integer"
          },
          "interMode": {
            "description": "Cross-species interaction index: 0 ignore, 1 attract, 2 repel, 3 predator/prey, 4 symbiosis, 5 competition",
            "type": "integer"
          },
          "interStrength": {
            "description": "Cross-species coupling strength, 0..1000",
            "type": "integer"
          },
          "spawn": {
            "description": "Initial spawn pattern index: 0 scatter, 1 ring, 2 spore, 3 colonies, 4 poles, 5 spiral",
            "type": "integer"
          },
          "species": {
            "description": "One entry per agent population",
            "items": {
              "properties": {
                "decay": {
                  "description": "Trail persistence, 0..1000 = 0.80..1.00 retained",
                  "type": "integer"
                },
                "density": {
                  "description": "Fraction of the agent budget this species occupies, 0..1000",
                  "type": "integer"
                },
                "deposit": {
                  "description": "Trail deposit amount, 0..1000",
                  "type": "integer"
                },
                "hue": {
                  "description": "Per-species colour hue, 0..1000 = 0..360 degrees",
                  "type": "integer"
                },
                "renderMode": {
                  "description": "Render mode index: 0 filament, 1 veil, 2 crystal, 3 plasma, 4 flow",
                  "type": "integer"
                },
                "rotationAngle": {
                  "description": "Rotation angle RA, 0..1000 = 0..90 degrees",
                  "type": "integer"
                },
                "sensorAngle": {
                  "description": "Sensor angle SA, 0..1000 = 0..90 degrees",
                  "type": "integer"
                },
                "sensorOffset": {
                  "description": "Sensor distance SO, 0..1000 = 0..32 cells",
                  "type": "integer"
                },
                "step": {
                  "description": "Step size per move, 0..1000 = 0..4 cells",
                  "type": "integer"
                }
              },
              "required": [
                "sensorAngle",
                "rotationAngle",
                "sensorOffset",
                "step",
                "deposit",
                "decay",
                "density"
              ],
              "type": "object"
            },
            "maxLength": 2,
            "type": "array"
          }
        },
        "required": [
          "species"
        ],
        "type": "object"
      },
      "gridSize": {
        "description": "Trail-field grid resolution in cells (square)",
        "type": "integer"
      },
      "image": {
        "description": "A PNG data URL thumbnail of the organism",
        "maxLength": 120000,
        "type": "string"
      },
      "inoculations": {
        "description": "Ordered inoculation taps (respawned agent patches).",
        "items": {
          "properties": {
            "atStep": {
              "description": "Sim step at which it was placed",
              "type": "integer"
            },
            "r": {
              "description": "Radius in cells",
              "type": "integer"
            },
            "species": {
              "description": "0 or 1",
              "type": "integer"
            },
            "x": {
              "description": "Normalised x scaled 0..1000",
              "type": "integer"
            },
            "y": {
              "description": "Normalised y scaled 0..1000",
              "type": "integer"
            }
          },
          "required": [
            "x",
            "y",
            "species",
            "atStep"
          ],
          "type": "object"
        },
        "maxLength": 256,
        "type": "array"
      },
      "lastTickAt": {
        "description": "When the organism last advanced, used to grow it forward on reopen",
        "format": "datetime",
        "type": "string"
      },
      "multiSpecies": {
        "description": "Whether a second agent population was active",
        "type": "boolean"
      },
      "name": {
        "description": "Display name for the organism",
        "maxGraphemes": 100,
        "maxLength": 800,
        "type": "string"
      },
      "palette": {
        "description": "Colour palette id (amber, ember, lichen, frost, mono)",
        "maxLength": 40,
        "type": "string"
      },
      "seed": {
        "description": "PRNG seed the simulation and genome were initialised with",
        "type": "integer"
      },
      "steps": {
        "description": "How many simulation steps the organism had grown when saved",
        "type": "integer"
      }
    },
    "required": [
      "name",
      "seed",
      "gridSize",
      "genome",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@