Run it twice, diff the pixels — the randomness is fake
This landscape generator uses a real pseudo-random number generator (the same mulberry32 that draws this site's art). Feed it a seed and every "random" choice — palette, sun, ridge, clouds, stars — unrolls from that one number. Run again re-generates with the same seed and counts differing pixels, live. It will be zero. Every time.
The diff is computed by re-rendering to a hidden canvas and comparing all 216,000 pixels. No trick — same seed, same arithmetic, same image, bit for bit.
The noise skeleton — how one number becomes a layout
The seed's first job is to fill a grid of noise. That grid is the composition: the sun lands on the brightest cell, clouds condense on the mid-bright cells, the mountain ridge traces one noisy row. Drag the slider to "denoise" the grid into the finished image, then turn on the overlay to see every object sitting exactly on its noise cell.
Conceptual cartoon: real diffusion denoises a latent tensor over many steps rather than snapping cells to objects — but the causal chain is the same: seed → noise → layout. The noise is the skeleton the image grows on.
Seed surfing — a thousand paintings behind one knob
Each seed is a complete, reproducible artwork. Step through them, or press surf and let them fly by. Click any thumbnail to pin it — its full recipe appears below, ready to share. But notice something honest and important: seed 1041 looks nothing like seed 1040. Seeds are addresses, not a smooth dial.
✓ Good case: a seed is a shareable recipe — post "seed 1042" and anyone reproduces your exact image. ✗ Bad case: adjacent seeds are unrelated. Don't expect seed+1 to give "the same image, slightly different" — for smooth variation you need latent interpolation, not seed arithmetic.
Fragile magic — change one thing and the seed betrays you
The seed only reproduces the image if everything else is frozen too. The left panel is your locked recipe: seed 7, 24 steps, euler sampler, v1.0. The right panel uses the same seed 7 — now change just ONE setting. The sampler consumes random numbers in a different order; v1.1 burns one extra draw at startup; a new step count reshapes the ridge. One flipped switch, and the "same" image is gone.
The cherry-picking machine — best-of-64 is a lie about typical
Nobody posts their median generation. Roll a batch of seeds, score each image with a fixed aesthetic metric (contrast + left/right balance, computed from the actual pixels), and look at the distribution. The one that gets posted is the top of the histogram; what the model typically makes is the middle. Grow N and watch the gap widen — same model, same prompt, very different impression.
The score is a deterministic function of each render's pixels — crude, but fixed, so the selection effect you see is pure statistics, not taste.