Method

Three layers: a simulation, stored files, a record on Solana.

01

The colony is a simulation

A colony is three layered grids of cells with values between 0 (empty) and 1 (full). Each tick, every cell reads rings of cells around it, in its own layer and the other two, and grows or shrinks depending on how much life is nearby. That rule is Lenia, and the exact rule and creatures here are the ones Sakana AI's open-source ASAL project uses as its Lenia substrate.

The three environment dials change that rule the way ASAL's search does, by nudging its parameters. Temperature shifts how much neighbouring life a cell needs to grow. Nutrients widens or narrows the range in which growth is possible. Radiation injects random mutations. The change applies while the colony runs.

Nothing here touches the chain.

02

Saving makes a specimen

When you save, the app freezes the exact state of the colony into a small JSON file:

{
  "v": 2, "engine": "lenia-v2", "size": 128,
  "params": { "R": 12, "T": 2, "channels": 3, "kernels": [ { "b": [1], "m": 0.22, "s": 0.0628, "h": 0.174, "r": 0.87, "c0": 0, "c1": 0 }, ... ] },
  "env": { "temperature": 0.4, "nutrients": 0.5, "radiation": 0 },
  "tick": 1532, "seed": 8123901,
  "parent": { "asset": "<parent NFT address>", "hash": "<parent sha256>" } | null,
  "cells": "<base64 of 3x128x128 cell values>"
}

The file and a PNG snapshot are uploaded to Arweave through Irys. The specimen does not depend on this site staying online.

03

The NFT is the proof and the family tree

The specimen is minted as a Metaplex Core NFT on Solana in the Petri collection (mainnet-beta). Written into the NFT itself, not just in a metadata file:

state_hash
SHA-256 of the state file. Download the file, hash it, compare.
state_uri
Where the file lives.
parent, parent_hash
The specimen this one was branched from. genesis means it started from scratch.
generation, tick
Depth in the tree and age of the colony.

The attributes are created without an update authority and the metadata is immutable, so nobody, including the lab, can change a specimen's record. The tree on this site is built from those parent links.

Minting is co-signed. The lab authority signs to add the specimen to the collection after checking the hash against the uploaded file. Your wallet signs as owner and pays the rent, about 0.003 SOL.

04

Branching

Open a specimen and press Branch from this specimen. The lab downloads the state file, checks it against the on-chain hash and loads it. What you save next records that specimen as its parent. A specimen can have many children.