Running in this tab · settlingtick 000000 · 0 cells alive
Artificial life laboratory

Petri

A living colony you can steer. Save a moment as an NFT on Solana. Anyone can pick it up and keep growing it.

  • 01Grow
  • 02Shape
  • 03Save
  • 04Branch
  • 05Verify

In short

Petri takes one artificial-life system from Sakana AI's ASAL research, puts it in your hands, and turns every find into a permanent, forkable record.

Read the colony

What one tick does.

The whole rule is three pictures long, repeated for fifteen kernels across three channels. Pause it, step it one tick at a time, and move the dials to see how the growth curve and the creatures change together.

A01 / Cells

Three channels of cells, each holding a value from 0 to 1, drawn on top of each other. This is what you see everywhere else on the site. Drag on it to feed cells.

U02 / Neighbourhood

Each tick, every cell sums the cells in a ring around it (radius 12). Bright means a lot of life nearby. Shown for the first of the fifteen kernels.

G03 / Growth

That sum goes through the curve below. White cells will grow this tick, black cells will shrink. Grey is the middle. The other fourteen kernels add their own curves.

tick 0 · 0 alive · seeding

The growth curve

μ+10−1u = 0u = 0.5grows here

Horizontal: the neighbourhood sum u of a cell. Vertical: how much it changes this tick. The bars show where the cells of the colony above currently sit. A colony lives while most of its bars fall under the bump. Temperature slides every kernel's bump (this one: μ = 0.220), nutrients widen them (σ = 0.063), radiation is noise added after the curve.

Same dials as the lab

Creatures swim, bump into each other and keep their shape.

Thesis

Searching for life should leave a record anyone can fork.

Where this comes from. In December 2024 Sakana AI published ASAL, Automating the Search for Artificial Life with Foundation Models. The idea: instead of a person tuning a simulation by hand until something lifelike appears, let a vision-language model look at the simulation and search the parameter space for it. They ran it over Lenia, Boids, Particle Life, Game of Life and a neural cellular automaton, and found new lifeforms, open-ended dynamics and a whole taxonomy of behaviours nobody had catalogued.

What Petri does. It takes one of the ASAL substrates, Lenia, and makes the search a public, continuing process. You steer the environment and the cells by hand. When something is worth keeping you save it: the exact state goes to Arweave, and a Solana NFT holds its SHA-256, its parent and its generation, written so that nobody can edit them later. Anyone can load a specimen, branch it, and save again. The tree is the record of the search.

Why on a chain. Three properties matter and a plain database gives none of them. Reproducible: the same state file always yields the same colony, and the hash proves the file was not changed. Provenance: every specimen names its parent, so a lineage cannot be faked or lost. Open: the whole tree and every state file can be read without asking this site, which makes it a dataset. An ASAL-style search could run over it with human picks as the labels.

ASALPetri
Who searchesA foundation modelPeople, in the browser
Where results livePaper, repo, videosArweave files and Solana NFTs
What a result isParameters and a clipA full state, its hash, its parent
Can it be continuedRe-run the codeLoad any specimen, branch, save
01

Grow

A colony starts as random cells. One local rule makes them move, divide and repair. The rule is Lenia, a continuous cellular automaton, one of the systems studied in Sakana AI's open-source ASAL research.

02

Shape

Three dials: temperature, nutrients, radiation. They change the growth rule while the colony runs. Feed or erase cells with the cursor. The same colony under different settings develops differently.

03

Save & branch

A saved state is a specimen. The file goes to Arweave. An NFT on Solana holds the file's SHA-256, its parent and its generation. Anyone can load a specimen and continue from it, which is how the tree grows.

Verification

Everything here runs and can be checked.

01

The colony is computed in your browser

The colony at the top is a 256 x 256 Lenia grid your browser updates about 30 times a second. The tick counter next to it comes from that loop. Drag on it, or move the dials, and it reacts at once.

Open the lab

02

The record is in the NFT account

Each specimen is a Metaplex Core asset in one collection on Solana mainnet-beta. The state file's SHA-256, the parent and the generation are stored in the asset's Attributes plugin, created without an update authority.

reading the chain

Collection on Metaplex explorer

03

The files are stored outside this site

State files and snapshots are written to Arweave through Irys. Download a state file, hash it, and compare with the value in the NFT. The specimens stay readable if this site goes down.

Browse the tree

Check a specimen

One command. Each specimen page prints its state URI and on-chain hash.

# hash the stored state file
curl -s <state_uri> | sha256sum

# compare with state_hash in the NFT attributes
<state_hash from the NFT>

01

Off-chain

The simulation runs in your browser. No transaction until you save.

02

Permanent

State files and snapshots are stored on Arweave. They do not depend on this site.

03

Immutable

The NFT attributes (hash, parent, generation) are created without an update authority. They cannot be changed.