Presets
Playback
Environment
Vapour supply and attachment (the Reiter parameters).
Simulation
Domain size and speed.
Camera
Layers
Quality
Model checks
The science
Why snowflakes have six arms
Ice Ih crystallises on a hexagonal lattice, so water molecules attach fastest along six symmetric directions. Vapour diffuses to the crystal, and any bump that sticks out reaches into richer vapour than a flat face: the Mullins-Sekerka instability. Tips outrun faces, side branches nucleate, and because all six arms live in the same air, they stay almost identical.
The Reiter cellular automaton
Each hex cell holds a water mass s. A cell is frozen if s ≥ 1 and receptive if it is frozen or touches a frozen cell. Receptive cells keep their water (v = s + gamma) and cannot diffuse it; the rest is mobile (u = s elsewhere, 0 in receptive cells). One step diffuses the mobile part: u' = u + (alpha/2) (mean of 6 neighbours of u - u), then s' = u' + v. The boundary is held at the background density beta. This is the model of Reiter (2005), using the diffusion-limited-growth rule of Gravner and Griffeath.
What the parameters mean
beta is the vapour density far from the crystal (a proxy for supersaturation): low beta gives thin branching dendrites, high beta gives fat plates. gamma is vapour added to boundary cells each step (a stand-in for the attachment kinetics): large gamma fills the gaps between arms into a plate. alpha sets the diffusion rate. Real crystals respond to temperature and humidity through the Nakaya diagram (plates near -2 C and -15 C, columns and needles near -5 C and below -25 C); this lattice model reproduces the plate/dendrite alternation qualitatively only, and it has no explicit temperature.
Diffusion law check
Each step a unit of mobile water jumps to one of 6 neighbours with total probability alpha/2, so the mean-square displacement grows as <r^2> = (alpha/2) t lattice units squared. The third check releases a lone pulse in a closed domain and compares the measured second moment with that formula. Closed domains also conserve water exactly (first check), and with no noise the frozen set must be invariant under a 60-degree rotation (second check).
Honest simplifications
The model is two-dimensional (real flakes are thin 3D plates with facet growth in the third direction), time is measured in automaton steps rather than seconds, the surface kinetics are collapsed into a single number, latent heat and the quasi-liquid layer are ignored, and the 3D page only extrudes the 2D result with a thickness that falls with cell age. It is a teaching model of pattern formation, not a predictor of any particular snowflake.
What to try
- Run the five presets and compare the Compactness readout: dendrites sit near 0.2-0.3, sectored plates about 0.5, solid plates above 0.8.
- Raise gamma from 0 to 0.05 at beta 0.4 and watch the arm gaps fill in.
- Switch the noise on, restart several times: no two flakes agree, yet each keeps a rough sixfold pattern. Set noise to 0 and the symmetry check returns 100%.
- Look at the vapour profile graph: the depleted vapour halo around the crystal is the reason tips outgrow faces.
- Turn on the age colouring and read the growth history of the flake from centre to tips.