Snowflake

Six arms grown from one shared program. Whatever happens to one arm happens to all of them, mirrored. Branches can touch each other, but they can't cross.

Snowflake

A real snow crystal is symmetric because its six arms grow at the same time in the same air. The temperature and humidity around them keep changing as the crystal falls, but they change for all six arms at once, so the arms grow the same way and end up the same shape. Nothing coordinates them. They just share a history.

Here the arms share that history directly. They are clones: one growth program, drawn in six places at once. On each step, every branch that is still growing does one of three things, and its clones do the same thing in their own frame.

Cloning doesn't stop at the arms. When a branch splits, its children are clones of each other as well, so each of the six copies becomes two, and those become two again. A single program a few branchings deep is being drawn in a dozen places, or several dozen. The deeper into the crystal you look, the more copies of one decision you are seeing.

Growone step further on
Stopsometimes leaving a shape
Split in twoa mirrored pair, ±60°
Split in threethe pair, plus straight on

The parent branch ends where it splits. In a two-way split both children are clones of each other, mirrored. In a three-way split the outer pair are clones of each other and the middle branch grows on its own. A branch that stops leaves a small shape there about a third of the time: a circle, a hexagon, or a 60°/120° rhombus, chosen at random.

Every direction a branch can face is a multiple of 60°. Ice grows along the six axes of its hexagonal lattice, and that is why snowflakes have the shape they do.

Splits are always mirrored about the branch that is splitting. A branch sitting on an arm's centerline can only produce a symmetric subtree that way, and a branch off to one side always has a mirror twin on the other side. The symmetry follows from there, all the way down, so it never has to be checked or enforced for the crystal as a whole.

Branches can't cross. A branch that grows into existing ice stops as soon as it touches it, so arms meet at clean junctions. How hard a branch tries to avoid touching ice in the first place is up to you; at full shyness it will stop or branch away rather than run into anything.

Growth also has to head outward, roughly. A branch can turn back toward the center, but once it does it can only grow or stop, never split again. That keeps inward growth down to the occasional short spur.

seed