home/ atoms/ wave-clock-chord-pattern

Rotating a diameter chord around a circle while varying its length by noise produces a wave-clock pattern

The wave clock technique draws chords through a circle: for each angle, two antipodal points (angle and angle + PI) are computed on a circle of the current radius, then connected with a line. Iterating angles 0–360 (or continuously in a draw loop) and varying the radius with each step using Perlin noise produces a complex overlapping pattern that resembles a mandala or woven structure. The noise-driven radius variation breaks the regularity of a simple set of diameters, creating an organic layered form. Later versions (WaveClock4, WaveClock5) also perturb the angle advance itself with noise, making the angular spacing irregular.

Examples

ch4_2_WaveClock.pde draws static chords at a fixed radius for angles 0–120. ch4_2_WaveClock3.pde sets _radius = noise(_radiusNoise) * width/2 + 1 each iteration. ch4_2_WaveClock5.pde runs as an animated draw() loop with noise-driven radius, angle increment, AND center position.

Assessment

Sketch on paper what ch4_2_WaveClock.pde (fixed radius, 120 chords) would look like versus ch4_2_WaveClock3.pde (noise-modulated radius). Then explain what visual property is added in WaveClock5 by also noise-modulating the center position.

“float opprad = rad + PI; float x2 = centerX + (_radius * cos(opprad)); float y2 = centerY + (_radius * sin(opprad));”
corpus · generative-art-code-examples-josephfiola-genart-processing-p · chunk 46
“_radiusNoise += 0.01; _radius = noise(_radiusNoise) * width/2 + 1;”
corpus · generative-art-code-examples-josephfiola-genart-processing-p · chunk 48
“_angNoise += 0.005; _angle += (noise(_angNoise) * 6) -3;”
corpus · generative-art-code-examples-josephfiola-genart-processing-p · chunk 49
“_xNoise += 0.01; _yNoise += 0.01; float centerX = width/2 + (noise(_xNoise) * 100) - 50;”
corpus · generative-art-code-examples-josephfiola-genart-processing-p · chunk 50