net.anisota.lab.plasmodium

anisota.net

Schema Diff

+16 -4

From

CID
bafyreig2jxicsoh...
Indexed At
2026-07-17 00:33 UTC
View this version

To

CID
bafyreiaycccyx23...
Indexed At
2026-07-17 02:54 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 8 non-breaking changes.

Breaking Changes (2)
  • RemovedVertex RemovedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.interSpecies" }
  • RemovedEdge RemovedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.interSpecies", kind: "prop", name: Some("interSpecies") }
Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.interMode" }
  • AddedVertex AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.interStrength" }
  • AddedVertex AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.spawn" }
  • AddedVertex AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.species:items.renderMode" }
  • AddedEdge AddedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.interMode", kind: "prop", name: Some("interMode") }
  • AddedEdge AddedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.interStrength", kind: "prop", name: Some("interStrength") }
  • AddedEdge AddedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.spawn", kind: "prop", name: Some("spawn") }
  • AddedEdge AddedEdge { src: "net.anisota.lab.plasmodium:body.genome.species:items", tgt: "net.anisota.lab.plasmodium:body.genome.species:items.renderMode", kind: "prop", name: Some("renderMode") }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.interSpecies" }

Added Elements

  • AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.interMode" }
  • AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.interStrength" }
  • AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.spawn" }
  • AddedVertex { vertex_id: "net.anisota.lab.plasmodium:body.genome.species:items.renderMode" }

Additional Notes

  • Breaking: RemovedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.interSpecies", kind: "prop", name: Some("interSpecies") }
  • Non-breaking: AddedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.interMode", kind: "prop", name: Some("interMode") }
  • Non-breaking: AddedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.interStrength", kind: "prop", name: Some("interStrength") }
  • Non-breaking: AddedEdge { src: "net.anisota.lab.plasmodium:body.genome", tgt: "net.anisota.lab.plasmodium:body.genome.spawn", kind: "prop", name: Some("spawn") }
  • Non-breaking: AddedEdge { src: "net.anisota.lab.plasmodium:body.genome.species:items", tgt: "net.anisota.lab.plasmodium:body.genome.species:items.renderMode", kind: "prop", name: Some("renderMode") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "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.",
6 6
      "key": "any",
7 7
      "record": {
8 8
        "properties": {
9 9
          "agentTier": {
10 10
            "description": "Agent-count tier that grew it (0=small, 1=medium, 2=large). A reopen may cap lower on a weaker device.",
11 11
            "type": "integer"
12 12
          },
13 13
          "createdAt": {
14 14
            "description": "When the organism was saved",
15 15
            "format": "datetime",
16 16
            "type": "string"
17 17
          },
18 18
          "foods": {
19 19
            "description": "Ordered food drops the grower placed; each replayed at its step so growth rebuilds identically.",
20 20
            "items": {
21 21
              "properties": {
22 22
                "atStep": {
23 23
                  "description": "Sim step at which it was dropped",
24 24
                  "type": "integer"
25 25
                },
26 26
                "r": {
27 27
                  "description": "Radius in cells",
28 28
                  "type": "integer"
29 29
                },
30 30
                "x": {
31 31
                  "description": "Normalised x scaled 0..1000",
32 32
                  "type": "integer"
33 33
                },
34 34
                "y": {
35 35
                  "description": "Normalised y scaled 0..1000",
36 36
                  "type": "integer"
37 37
                }
38 38
              },
39 39
              "required": [
40 40
                "x",
41 41
                "y",
42 42
                "atStep"
43 43
              ],
44 44
              "type": "object"
45 45
            },
46 46
            "maxLength": 256,
47 47
            "type": "array"
48 48
          },
49 49
          "genome": {
50 -
            "description": "Behavioural parameters. Global tunables plus one species entry (two when multiSpecies). All continuous values are scaled to integers 0..1000.",
50 +
            "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.",
51 51
            "properties": {
52 52
              "blur": {
53 53
                "description": "Diffusion (3x3 blur) strength, 0..1000",
54 54
                "type": "integer"
55 55
              },
56 56
              "foodWeight": {
57 57
                "description": "How strongly agents are drawn to the food channel, 0..1000",
58 58
                "type": "integer"
59 59
              },
60 -
              "interSpecies": {
61 -
                "description": "Cross-species coupling: 0..500 repel, 500 ignore, 500..1000 attract",
60 +
              "interMode": {
61 +
                "description": "Cross-species interaction index: 0 ignore, 1 attract, 2 repel, 3 predator/prey, 4 symbiosis, 5 competition",
62 +
                "type": "integer"
63 +
              },
64 +
              "interStrength": {
65 +
                "description": "Cross-species coupling strength, 0..1000",
66 +
                "type": "integer"
67 +
              },
68 +
              "spawn": {
69 +
                "description": "Initial spawn pattern index: 0 scatter, 1 ring, 2 spore, 3 colonies, 4 poles, 5 spiral",
62 70
                "type": "integer"
63 71
              },
64 72
              "species": {
65 73
                "description": "One entry per agent population",
66 74
                "items": {
67 75
                  "properties": {
68 76
                    "decay": {
69 77
                      "description": "Trail persistence, 0..1000 = 0.80..1.00 retained",
70 78
                      "type": "integer"
71 79
                    },
72 80
                    "density": {
73 81
                      "description": "Fraction of the agent budget this species occupies, 0..1000",
74 82
                      "type": "integer"
75 83
                    },
76 84
                    "deposit": {
77 85
                      "description": "Trail deposit amount, 0..1000",
78 86
                      "type": "integer"
79 87
                    },
80 88
                    "hue": {
81 -
                      "description": "Optional per-species colour hue, 0..1000",
89 +
                      "description": "Per-species colour hue, 0..1000 = 0..360 degrees",
90 +
                      "type": "integer"
91 +
                    },
92 +
                    "renderMode": {
93 +
                      "description": "Render mode index: 0 filament, 1 veil, 2 crystal, 3 plasma, 4 flow",
82 94
                      "type": "integer"
83 95
                    },
84 96
                    "rotationAngle": {
85 97
                      "description": "Rotation angle RA, 0..1000 = 0..90 degrees",
86 98
                      "type": "integer"
87 99
                    },
88 100
                    "sensorAngle": {
89 101
                      "description": "Sensor angle SA, 0..1000 = 0..90 degrees",
90 102
                      "type": "integer"
91 103
                    },
92 104
                    "sensorOffset": {
93 105
                      "description": "Sensor distance SO, 0..1000 = 0..32 cells",
94 106
                      "type": "integer"
95 107
                    },
96 108
                    "step": {
97 109
                      "description": "Step size per move, 0..1000 = 0..4 cells",
98 110
                      "type": "integer"
99 111
                    }
100 112
                  },
101 113
                  "required": [
102 114
                    "sensorAngle",
103 115
                    "rotationAngle",
104 116
                    "sensorOffset",
105 117
                    "step",
106 118
                    "deposit",
107 119
                    "decay",
108 120
                    "density"
109 121
                  ],
110 122
                  "type": "object"
111 123
                },
112 124
                "maxLength": 2,
113 125
                "type": "array"
114 126
              }
115 127
            },
116 128
            "required": [
117 129
              "species"
118 130
            ],
119 131
            "type": "object"
120 132
          },
121 133
          "gridSize": {
122 134
            "description": "Trail-field grid resolution in cells (square)",
123 135
            "type": "integer"
124 136
          },
125 137
          "image": {
126 138
            "description": "A PNG data URL thumbnail of the organism",
127 139
            "maxLength": 120000,
128 140
            "type": "string"
129 141
          },
130 142
          "inoculations": {
131 143
            "description": "Ordered inoculation taps (respawned agent patches).",
132 144
            "items": {
133 145
              "properties": {
134 146
                "atStep": {
135 147
                  "description": "Sim step at which it was placed",
136 148
                  "type": "integer"
137 149
                },
138 150
                "r": {
139 151
                  "description": "Radius in cells",
140 152
                  "type": "integer"
141 153
                },
142 154
                "species": {
143 155
                  "description": "0 or 1",
144 156
                  "type": "integer"
145 157
                },
146 158
                "x": {
147 159
                  "description": "Normalised x scaled 0..1000",
148 160
                  "type": "integer"
149 161
                },
150 162
                "y": {
151 163
                  "description": "Normalised y scaled 0..1000",
152 164
                  "type": "integer"
153 165
                }
154 166
              },
155 167
              "required": [
156 168
                "x",
157 169
                "y",
158 170
                "species",
159 171
                "atStep"
160 172
              ],
161 173
              "type": "object"
162 174
            },
163 175
            "maxLength": 256,
164 176
            "type": "array"
165 177
          },
166 178
          "lastTickAt": {
167 179
            "description": "When the organism last advanced, used to grow it forward on reopen",
168 180
            "format": "datetime",
169 181
            "type": "string"
170 182
          },
171 183
          "multiSpecies": {
172 184
            "description": "Whether a second agent population was active",
173 185
            "type": "boolean"
174 186
          },
175 187
          "name": {
176 188
            "description": "Display name for the organism",
177 189
            "maxGraphemes": 100,
178 190
            "maxLength": 800,
179 191
            "type": "string"
180 192
          },
181 193
          "palette": {
182 194
            "description": "Colour palette id (amber, ember, lichen, frost, mono)",
183 195
            "maxLength": 40,
184 196
            "type": "string"
185 197
          },
186 198
          "seed": {
187 199
            "description": "PRNG seed the simulation and genome were initialised with",
188 200
            "type": "integer"
189 201
          },
190 202
          "steps": {
191 203
            "description": "How many simulation steps the organism had grown when saved",
192 204
            "type": "integer"
193 205
          }
194 206
        },
195 207
        "required": [
196 208
          "name",
197 209
          "seed",
198 210
          "gridSize",
199 211
          "genome",
200 212
          "createdAt"
201 213
        ],
202 214
        "type": "object"
203 215
      },
204 216
      "type": "record"
205 217
    }
206 218
  },
207 219
  "id": "net.anisota.lab.plasmodium",
208 220
  "lexicon": 1
209 221
}

Compare Other Versions

Lexicon Garden

@