net.anisota.lab.plasmodium

anisota.net

{
  "id": "net.anisota.lab.plasmodium",
  "defs": {
    "main": {
      "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"
              },
              "species": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "sensorAngle",
                    "rotationAngle",
                    "sensorOffset",
                    "step",
                    "deposit",
                    "decay",
                    "density"
                  ],
                  "properties": {
                    "hue": {
                      "type": "integer",
                      "description": "Optional per-species colour hue, 0..1000"
                    },
                    "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"
                    },
                    "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"
              },
              "foodWeight": {
                "type": "integer",
                "description": "How strongly agents are drawn to the food channel, 0..1000"
              },
              "interSpecies": {
                "type": "integer",
                "description": "Cross-species coupling: 0..500 repel, 500 ignore, 500..1000 attract"
              }
            },
            "description": "Behavioural parameters. Global tunables plus one species entry (two when multiSpecies). All continuous values are scaled to integers 0..1000."
          },
          "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."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against net.anisota.lab.plasmodium

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:lcieujcfkv4jx7gehsvok3pr
CID
bafyreig2jxicsohdbzjhgjau3rsrtd7pulygfed5xfcvhc5eqz2zmvmtnq
Indexed At
2026-07-17 00:33 UTC
AT-URI
at://did:plc:lcieujcfkv4jx7gehsvok3pr/com.atproto.lexicon.schema/net.anisota.lab.plasmodium

Version History (2 versions)

Lexicon Garden

@