Koch Snowflake Iteration Tower (3D)

Every glass slab is one iteration of the Koch curve; bottom is the seed, top is the current level.

Presets

Playback

Shape

Seed polygon, iterations and the bump angle (60 degrees gives the classic snowflake).

View

Animation and viewing.

Camera

Layers

Quality

Model checks

The science

Construction and self-similarity

Start with a regular polygon (the classic seed is an equilateral triangle). Replace every segment by four pieces, each a factor s as long: two lie along the old segment and two form a bump with base angle alpha. For the four pieces to close the original chord, 2s + 2s cos(alpha) = 1, so s = 1 / (2 + 2 cos alpha). The classic snowflake has alpha = 60 degrees and s = 1/3. Repeating the rule n times gives N0 4^n segments of length l0 s^n.

Perimeter, area and dimension

The perimeter is P_n = P0 (4s)^n: because 4s > 1 it grows without bound (4/3 per step for the classic curve). Each bump adds a triangle of area s^2 l^2 sin(alpha) cos(alpha); there are N0 4^k of them at step k with side l0 s^k, so the added areas form a geometric series with ratio q = 4 s^2 < 1 and A_n = A0 + c (1 - q^n)/(1 - q), converging to a finite limit. For the classic triangle that limit is exactly 8/5 of the seed area. The curve is a similarity fractal: covering it with boxes of side s^n takes about 4^n boxes, so the box-counting (similarity) dimension is D = ln 4 / ln(1/s), which is ln 4 / ln 3 = 1.2619 for the classic curve and grows towards 2 as alpha increases.

The checks on this page

(1) The perimeter of the polygon actually built by the code is summed segment by segment and compared with P0 (4s)^n. (2) The shoelace area of the classic snowflake at n = 6 is compared with A0 (8/5 - 3/5 (4/9)^n). (3) A box-counting fit on a freshly built n = 6 curve at your alpha is compared with ln 4 / ln(1/s).

Honest simplifications

The picture is the n-th polygon, not the true limit curve, which cannot be drawn. The closed forms for area assume the bumps do not overlap: that holds for the triangle with alpha up to about 60 degrees and for the other seeds at the presets, but very large alpha on a small-angle polygon can make bumps cross, and then the area (but not the perimeter) departs from the formula. Box counting at a finite level only approximates the true dimension (it slightly overshoots here because of the finite range of box sizes). Real snowflakes are not Koch curves; the name is a visual analogy.

What to try

  • Press the classic preset and watch each bump grow out of the straight segments while the perimeter graph climbs by 4/3 per step.
  • Look at the area graph: it flattens at 1.6 times the seed area although the perimeter has no limit.
  • Drag the bump angle alpha: the scale ratio s changes and the measured box-counting slope follows ln 4 / ln(1/s) on the fourth graph.
  • Flip the bumps inward to get the anti-snowflake, whose area limit is 0.4 of the seed instead of 1.6.
  • Switch auto-grow off, set n = 7 and use the corner zoom: the picture near the highlighted vertex keeps repeating itself every factor 3.
Loading model...
Loading Blender model...
Perimeter against iteration (diverges)
Enclosed area against iteration (converges)
Segment count and inverse side length
Box-counting measurement of the dimension
Made with 🟠 Blender · Three.js