The photo is first averaged down into a coarse grid — each cell becomes one flat
color block (Blocks). For Dissolve, a seeded random number
generator (mulberry32) assigns every block a fixed noise value between 0 and 1.
A block is drawn only if its noise value is above the dissolve threshold, so raising the
amount erodes the bloom in a stable, grainy order. Same seed + same settings =
the exact same erosion, every time — that is what makes each variation reproducible
for the knowledge chain. Dither instead snaps each block through a
4×4 Bayer matrix for a retro print feel. Export writes the pixel PNG together with a
.seed.json sidecar: image + seed, ready to be pinned as one Filecoin dataset.