Twenty squares, each nine tenths the size of the last and turned ten degrees further.
Two constants
path.AddRect(SKRect.Create(cx - size / 2, cy - size / 2, size, size));
path.Transform(SKMatrix.CreateRotationDegrees(angle, cx, cy));
…
size *= ShrinkFactor;
angle += RotationStep;
A square, then the same square nine tenths the size turned ten degrees, then again, for
twenty squares. That is the whole piece.
Four squares.
The corners trace a logarithmic spiral
Eight. Follow any one corner from square to square: the radius shrinks by a constant
factor while the angle advances by a constant amount, which is the definition of a
logarithmic spiral.
Nothing draws that spiral. It is what the eye assembles from twenty corner points, and
it is the reason the figure reads as a rotation rather than as a stack.
The spiral through the corners has polar equation r = r₀·e^(bθ) with
b = ln(0.9) / 10° ≈ −0.60 per radian — the same curve as a nautilus shell, a
sunflower’s arms and a spiral galaxy, and for the same reason: constant proportional
growth per constant angle.
Twelve. Because the shrink is proportional, the figure is self-similar: rotate it by ten
degrees and scale it by nine tenths and you get the same figure with the outermost
square removed.
Sixteen. The inner squares crowd together, and the stroke width is the reason — it is a
constant three pixels while the squares shrink towards nothing, so the ink eventually
outweighs the geometry.
Twenty squares. The last is 0.9¹⁹ ≈ 0.135 of the first, and turned by 190 degrees —
so it is nearly aligned with the outermost square again, half a turn away.
Five renderings
| Rendering | Squares | Initial size | Rotation | Shrink |
|---|
| Neon Pink | 20 | 400 | 10° | 0.90 |
| Golden Descent | 32 | 480 | 5° | 0.94 |
| Toxic Orange | 15 | 360 | 15° | 0.85 |
| Chalk | 22 | 560 | 9° | 0.92 |
| Vermilion | 10 | 560 | 22° | 0.78 |
The ratio between the rotation step and the shrink factor sets how tightly the spiral
winds; the square count sets how far in it goes before the strokes merge.
Determinism
Nothing is seeded and nothing is random. Each square is the previous one with two
constants applied.