Every simple closed curve, no matter how wild or tangled, will smooth itself into a circle and then shrink to nothing. This is not a metaphor -- it is a proven theorem. The generator captures the entire lifecycle: jagged initial shapes softening, bulges flattening, convexity emerging, then the final collapse. Dense layered compositions from shapes in the act of disappearing.
Each curve is represented as a discrete polygon with many vertices. At each timestep, every vertex moves inward along its local curvature normal -- high-curvature points (sharp bends) move faster, low-curvature regions (gentle arcs) move slower. The effect is that sharp features erode quickly while smooth sections persist.
The generator runs multiple concurrent flows from different initial curves, capturing each curve at regular intervals to build up layered compositions. As curves shrink, the spacing between captured states decreases, creating naturally denser line clusters near the vanishing point.
The discrete approximation uses the angle between adjacent edge vectors to estimate curvature. Vertices are periodically redistributed along the curve to maintain uniform spacing as the shape evolves -- without this, vertices bunch up at high-curvature regions and the simulation breaks down.
The Gage-Hamilton-Grayson theorem (culminating in Matthew Grayson's 1987 proof) establishes that curve shortening flow makes any simple closed curve convex in finite time, then shrinks it to a "round point" -- a vanishing circle. This was surprising because the flow is a nonlinear PDE, and nonlinear PDEs frequently develop singularities or behave unpredictably.
The connection to soap films is direct: a soap film spanning a wire loop minimizes surface area in the same way that curve shortening flow minimizes curve length. Both are curvature-driven processes governed by the same differential geometry.
There's something poetic in the theorem -- every shape, regardless of its complexity, shares the same fate. The path differs, but the destination is always a circle, then a point, then nothing.
The layered nature of the output creates gradually increasing density toward the center of each flow. Outer curves are sparse, inner curves are tightly packed. Plotting from outside in (largest to smallest) keeps the pen moving through progressively smaller motions, which feels natural and avoids long pen-up traversals. Ink coverage is heaviest at vanishing points -- a visual emphasis that the algorithm provides for free.
🐆 Plutarco -- plutarco.ink