Playing with Harmonographs

Harmonographs are mechanical devices that use pendulum motion to create intricately patterned drawings. They often use 2 pendulums but could use any number. As the pendulums slow down due to friction (called damping) the resultant patterns continuously change. Each pendulum effectively provides 2 oscillating motions (because they draw ovals, not circles).


Harmonograph motion can be simulated, both mechanically and logically (in software). When the harmonographs are simulated by rotating discs there is not necessarily any ‘damping’. See the below image (from here).


Of course, it is possible to simulate damping. Wikipedia offers the following formulas for a 2 axis pendulum:

x(t) = A_1 \sin (tf_1 + p_1) e^{-d_1t} + A_2 \sin (tf_2 + p_2) e^{-d_2t}, \,\!y(t) = A_3 \sin (tf_3 + p_3) e^{-d_3t} + A_4 \sin (tf_4 + p_4) e^{-d_4t}. \,\!


  • A is the amplitude (size of rotating circle)
  • f is frequency (speed of rotation)
  • p is phase (position of circle when the rotation starts, usually described in deg)
  • d is damping (how quickly the speed slows down)
  • t is time (just an increasing number)

There are a few implementations of this formula in code. One well-referenced version is on

One online version is available here:

I think that the above online version is the same logic as the hardware machine documented in the video below. Here, there is a 3rd pendulum which is simply the rotating table that is drawn on.

There is a Wolfram online version (which uses the same formulae as above)

There is a python version here. The same version is available online here.