Interactive visualization of Escher's recursive spiral
Source. A procedurally generated scene contains a smaller copy of itself, embedded by the similarity S(z) = c + a·z with scale |a| = 1/16. This creates a picture-within-a-picture that repeats infinitely inward.
Log-Polar. Mapping to ζ = ln r + i·θ
converts the multiplicative self-similarity into additive periodicity:
the image tiles with period ln(1/|a|) along the horizontal axis (radius) and
2π along the vertical axis (angle). Circles around the center become vertical
lines; radial rays become horizontal lines.
Aligned. Multiplying by a complex number α performs a
rotation and isotropic scaling of the log-polar plane. Following Lenstra and de Smit,
the alignment condition α·Δζ = 2πi shears the periodic strip so
that the self-similar copies line up vertically. With 1 level per turn the zoom
factor is 16, giving Δζ = (ln 16, 2π) and
α = 2πi / (ln 16 + 2πi).
The sliders let you explore different α values; the presets compute the exact
alignment for clockwise and counter-clockwise spirals.
Droste Spiral. Applying exp to the aligned ζ′
coordinates wraps the periodic strip back into polar form, producing the Droste
spiral. Each pixel's screen position determines its ζ′ coordinates; the
shader tiles, divides by α, and traces back through the recursion to render
the scene procedurally. The result is a seamless spiral zoom that Escher
approximated by hand in his 1956 lithograph Print Gallery.