A dual-pendulum harmonograph simulation. Each figure is unique: the near-rational frequency ratio determines the shape, the exponential damping determines its death. Tap to regenerate.
Hugh Blackburn was goofing around with Lord Kelvin at Cambridge sometime around 1844, swinging on a pendulum rigged to oscillate in two perpendicular planes at once. The path traced by the bob described a figure-eight, a rosette, a closed ellipse, all shapes that changed when you altered the string geometry. Blackburn, who would go on to be a mathematics professor at Glasgow for thirty years, formalized the construction. The result was the Blackburn pendulum, the direct ancestor of what Victorian drawing rooms later called the harmonograph.
The machine works by coupling two independently oscillating pendulums, one controlling a pen in the x direction, one controlling paper (or a second pen) in the y direction. When their frequency ratio is a simple integer fraction like 2:3 or 3:4, the pen traces a closed Lissajous curve. When the ratio is irrational, the curve never closes, filling in space as long as the pendulums keep moving. The entire drawing is therefore a record of a physical process dying: the exponential damping of each pendulum bleeds amplitude out of the curve as it draws, pulling the figure inward toward the origin, which is why harmonograph drawings always spiral toward stillness at the center.
By the 1890s harmonographs were a parlor craze. Scientific instrument makers (Newton & Co., Tisley & Spiller) sold them to middle-class households who wanted to produce drawings that looked mathematical without understanding any mathematics. Herbert C. Newton's 1909 book Harmonic Vibrations and Vibration Figures catalogued hundreds of the resulting patterns. Nobody called it generative art. They called it science made visible in the home.
The simulation uses the same four-pendulum architecture as the physical device (two for x, two for y) with each pendulum carrying its own frequency, phase offset, amplitude, and damping constant. The key implementation is in getPoint, which accumulates two sinusoids per axis, each multiplied by a decaying exponential:
function getPoint(t) {
const scale = Math.min(W, H) * 0.42;
const cx = W / 2, cy = H / 2;
const x = pens.x1.a * Math.sin(pens.x1.f * t + pens.x1.p) * Math.exp(-pens.x1.d * t)
+ pens.x2.a * Math.sin(pens.x2.f * t + pens.x2.p) * Math.exp(-pens.x2.d * t);
const y = pens.y1.a * Math.sin(pens.y1.f * t + pens.y1.p) * Math.exp(-pens.y1.d * t)
+ pens.y2.a * Math.sin(pens.y2.f * t + pens.y2.p) * Math.exp(-pens.y2.d * t);
return { x: cx + x * scale, y: cy + y * scale };
}
The frequency f is chosen as a near-integer, a small random detuning from a whole number pushes the curve toward precession, the slow rotation of the figure over many cycles that makes harmonograph drawings so unpredictable. Setting the ratio exactly to 2.000/3.000 produces a static closed curve. Setting it to 2.017/3.001 produces a curve that walks through the same neighborhood differently each orbit. The detuning is the difference between a diagram and a drawing.
Harmonograph
Four coupled pendulums tracing decaying Lissajous figures in sepia, the Victorian parlor drawing machine, simulated.
View artifact →