Grow a six-fold ice crystal from one cell, then draw it in wax crayon and hang it in the window.
What grows
-
Status-
Step0
Ice cells0
Radius (cells)0
Ice mass0
Vapour left0
Background vapour beta-
Deposition gamma-
Six-fold symmetry error-
Mass residual-
Blue: ice cells. Orange: vapour still in the air.
The science
Why six arms? Water molecules lock into a hexagonal lattice when they freeze. The crystal only knows "which way is one of six", so a growing flake copies itself six times. Our grid is made of hexagons for the same reason, and every cell has exactly six neighbours.
How the model works (Reiter's cellular automaton). Each cell holds some water vapour s. A cell is receptive if it is ice or touches ice. Every step: (1) vapour in non-receptive cells spreads out to its six neighbours (diffusion, u' = u + (alpha/12) * sum(u_nb - u)); (2) receptive cells keep their vapour and gain a little extra gamma (vapour sticking to the crystal); (3) any cell that reaches s ≥ 1 freezes. Tips stick out into more vapour so they grow faster than flat sides: that makes branches.
Temperature and humidity. Real snow crystals follow the Nakaya diagram: plates near -2 C, columns near -5 C, plates again near -10 C, and the big stars (dendrites) near -15 C when the air is very humid, then plates and columns again when it is colder than -22 C. Dry air always gives plainer shapes. Here the two sliders are turned into three model numbers (beta, gamma and how tall the crystal is) by a simple, hand-made rule. This is a simplified teaching map, not a measured one: the real physics (surface melting, attachment kinetics) is subtler and the real diagram has narrower, overlapping bands.
What is simplified. The grid is 2D (top-down), the air is a closed box with no wind, and the vapour has no 3D transport. The thickness in the 3D window is set by the crystal type, not computed. The tiny random "seed" only changes the starting vapour slightly, in a six-fold symmetric way, so every flake is still perfectly symmetric (real flakes are not quite).
How we check it. The simulation uses exact integer arithmetic, so (1) the six-fold symmetry error (largest difference between a cell and its rotated copies) is exactly 0, (2) vapour + ice - injected = start exactly (mass is conserved), and (3) a separate float test of one vapour spike spreads like <r²> = (alpha/2) × steps, which is the textbook random-walk value for this lattice.
Crayon mode. Each new ice cell draws a short wax line to the older cell it grew from, so the pattern is a "growth tree" - a bit like a child's scribbled star. The 3D flake is the same cells, extruded into hexagonal prisms and shown with refraction and reflections. Not a photo of a real crystal.