READING THE CHAIN…
ENGINE

The derivation, with the numbers showing.

Change the seed and watch every intermediate value move. Nothing on this page is fetched — it is the same code that draws every block on the site, running here with its cover off.

THE RESULT
PALETTE
#3B1687
#7C3AED
#C084FC
#FBF0FF
VIOLET
EVERY VALUE, IN ORDER
1 · HASH

The seed string is folded into a single 32-bit number with FNV-1a. Same string, same number, on every machine ever built.

hash32("henon:v1:henon") = 3828936184
2 · SEED THE GENERATOR

That number seeds mulberry32 — a small, fully specified generator. It is not random; it is a fixed sequence you can recompute.

mulberry32(3828936184)
3 · DRAW THE PARAMETERS

The first draws become a, b and the starting point. The next become the palette, the rotation, and how many states the vault holds.

a = 1.164619 · b = 0.272186 · x₀ = 0.108762 · y₀ = -0.146833 · states = 10 · spin = 0
4 · ITERATE

400 steps are thrown away so the orbit forgets where it started, then 60,000 more are kept. If it runs past 10⁴ it has escaped and the vault is VOID.

stayed bounded · filled 18 of 65,536 cells
5 · MEASURE

Occupied cells are counted at five grid resolutions. The slope of log(count) against log(resolution) is the box-counting dimension.

dimension = 0.000 · bands = 18
THIS STATE
CYCLE
CLASS
CYCLE
DIMENSION
0.000
BANDS
18
SPREAD
1.265
WHY THE PARAMETER BOX IS WIDE

The famous Hénon attractor lives at a = 1.4, b = 0.3. We could have pinned every seed near there and made sure every address got a handsome picture. Instead a runs from 0.90 to 1.62, which pushes a real slice of seeds out past the edge of the region where the map settles at all.

Roughly one address in five escapes and holds nothing. Another third falls into a plain repeating cycle. That is uncomfortable for a collectible and correct for a measurement, and we would rather be the second thing.