About this simulation

Written by MySimulator Team · Reviewed by MySimulator Editorial Review

Last updated: 5 July 2026

This simulation grows a snowflake using Reiter's local cellular model (Chaos, Solitons & Fractals, 2005) on a hexagonal grid: each cell holds a floating-point vapour value, and the field is split every step into receptive cells — ice cells and their neighbours — and the rest. Receptive cells take a constant vapour addition γ and are held out of the diffusion, so they act as a sink that the surrounding vapour flows into; a receptive cell freezes once its vapour crosses the threshold κ. Because a protruding tip collects more of that diffusive flux than a notch does, the growth front is unstable — which is exactly what produces plates, sectored stars and six-fold branching dendrites as ρ, κ and γ vary.

🔬 What it shows

A single frozen seed cell at the centre of a 201×201 hexagonal grid grows outward step by step. Vapour (shown as shades of dark blue) accumulates near the ice front and converts to ice (white-blue) once it exceeds the freezing threshold, producing the characteristic branching dendrites of a snowflake.

🎮 How to use

Drag Supersaturation ρ to raise or lower the background vapour supply, Freezing threshold κ to make cells freeze more or less readily, and Vapour addition γ to set how much vapour the growth front gains each step — γ is the habit dial: large γ fills the crystal into a solid hexagonal plate, small γ starves the sides and lets the tips run away into dendrites. Noise σ adds randomness to the freezing test for rougher, less symmetric branches, and Speed controls how many iterations run per animation frame. Use Pause and Regrow to stop the simulation or restart it from a single seed cell.

💡 Did you know?

The simulation automatically pauses once the crystal's radius nears the edge of the grid, since the underlying array would otherwise run out of room to keep growing — a nod to how real snow crystals eventually stop growing once they fall out of their ideal humidity and temperature layer.

Frequently asked questions

What algorithm does this snow crystal simulation use?

It implements Clifford Reiter's local cellular model for snow crystal growth (Chaos, Solitons & Fractals 23, 2005, pp. 1111–1119). Each hexagonal cell tracks a water-vapour value. Every step the field is separated into receptive cells — the ice and the cells touching it — and non-receptive cells: receptive cells receive a constant addition γ and are excluded from the diffusion, so vapour diffuses in from the surrounding field and a cell freezes once its total reaches κ. That single rule reproduces the whole zoo of real habits: hexagonal plates, sectored stars and branching dendrites.

What do ρ, κ and γ control?

ρ sets the background vapour level that the grid boundary is continually replenished with — higher ρ means more vapour available to feed growth, producing faster, denser crystals. κ is the vapour level a receptive cell must reach before it freezes. γ is the constant vapour gained by the growth front each step, and it is what selects the habit: with a large γ (around 0.006–0.01 at ρ ≈ 0.8) the sides fill in and you get a solid hexagonal plate, while a small γ (around 0.0001–0.0005 at ρ ≈ 0.35–0.45) starves the flanks so only the tips advance, giving thin branching dendrites; intermediate values (γ ≈ 0.001–0.003) give sectored, star-shaped crystals.

Why is the grid hexagonal instead of square?

Real snow crystals form on the hexagonal lattice of ice crystal structure, which is what gives them their natural six-fold symmetry. The simulation uses an offset hexagonal grid with six neighbours per cell (rather than four or eight, as in a square grid) so that the branching pattern that emerges matches the six-armed shape of real snowflakes.

What does the Noise σ slider do?

Noise σ adds a small random perturbation to the freezing check, so a cell freezes when its vapour exceeds κ plus or minus a random offset scaled by σ. This breaks the perfect symmetry of the growth, producing rougher, more irregular branch tips similar to the asymmetries seen in many real snowflakes.

Why does the simulation stop on its own?

The simulation checks each step whether any ice cell has reached close to the edge of the 201×201 grid. Once the crystal's radius approaches that boundary, growth automatically pauses (the Pause button switches to Resume) to avoid the crystal running past the edge of the simulated area; use Regrow to reset and start again from a single seed cell.