I have been occasionally obsessed with this video for years and I finally sat down to deconstruct it. The video shows a row of 15 pendulums, with each pendulum being slightly shorter than the last. All of the pendulums are started swinging at once and they follow a kind of snaking pattern that devolves into chaos. However, they occasionally line up into two or three groups that swing together before falling out of phase again. After 60 seconds they all line up in one row and the pattern repeats. Have a watch:

How does it work?

So how does this demo work? How can a set of independent pendulums alternate between complete chaos and perfectly aligned rows? There’s a hint on this page:

The period of one complete cycle of the dance is 60 seconds. The length of the longest pendulum has been adjusted so that it executes 51 oscillations in this 60 second period. The length of each successive shorter pendulum is carefully adjusted so that it executes one additional oscillation in this period. Thus, the 15th pendulum (shortest) undergoes 65 oscillations. When all 15 pendulums are started together, they quickly fall out of sync—their relative phases continuously change because of their different periods of oscillation. However, after 60 seconds they will all have executed an integral number of oscillations and be back in sync again at that instant, ready to repeat the dance.

This quote gives us a decent picture of how to build one of these for ourselves if we wanted to but it misses why this system works in the first place. It does tell us that the arrangement of the frequencies is important so let’s start there.

Let’s start by writing out an equation for where each pendulum is at a given point in time. The standard way to describe the motion of a pendulum is to start with all the forces acting on it, then use the “small angle approximation” and end up with this equation (which I’ve simplified a bit)

p ( t ) = cos ⁡ ( 2 π f t )

Where f is the frequency of the pendulum in cycles per second and t is the time since the pendulums started swinging in seconds.

An important property of cos is its periodicity. That is, it follows a repeating cycle. We will be using this property a lot, so I will go ahead and state it here:

cos ⁡ ( x ) = cos ⁡ ( x + 2 π ) = cos ⁡ ( x + c ( 2 π ) )

where c is any integer.

Why does the cycle repeat after 60 seconds?

From the quoted description above, each pendulum has a frequency one cycle per minute higher than the previous ranging from 51 to 65 cycles per minute. The equation for the i th pendulum is then

p i ( t ) = cos ⁡ ( 2 π t 50 + i 60 )

The description states that the cycle repeats after 60 seconds, and we can verify that by plugging in 60 for t .

p i ( 60 ) = cos ⁡ ( 2 π 60 ( 50 + i ) 60 ) = cos ⁡ ( 2 π ( 50 + i ) ) = cos ⁡ ( 0 ) = 1

Note that the final term is independent of i , so all the pendulums must have the same position at the peak of their swing (also meaning their velocity is 0) at 60 seconds after they started swinging. Furthermore since a pendulum’s state is fully determined by its position and velocity, the pendulums have all returned to their initial state at the same time and the system must repeat its behavior. You can also verify that this holds for any multiple of 60 seconds, meaning that this whole system must have a period of 60 seconds.

What about the wavy rows of pendulums?

Let’s focus on the clearest pattern which is when the pendulums line up in two rows made up of every other pendulum. It seems to happen at roughly halfway through the cycle and we can check exactly when it happens by figuring out when a pendulum lines up with another two steps further down the line. We can accomplish that by setting p i ( t ) = p i + 2 ( t ) and solving for t .

p i ( t ) = p i + 2 ( t ) cos ⁡ ( 2 π t 50 + i 60 ) = cos ⁡ ( 2 π t 50 + i + 2 60 ) cos ⁡ ( 2 π t 50 + i 60 ) = cos ⁡ ( 2 π t 50 + i 60 + 2 π t 30 )

This holds true when 2 π t 30 is a multiple of 2 π or equivalently when t 30 is an integer. That happens when t is a multiple of 30 meaning our solutions are t = 0 , 30 , 60 , 90 and so on. We already knew about the multiples of 60 – that’s when all of the pendulums line up in one row – so the two rows of pendulums must show up at exactly 30 seconds into the cycle. More precisely, that is exact moment of time when they should be in perfect straight rows. The pattern will be visible for a range of time before and after that point, and due to random variations in starting conditions the rows won’t be perfect.

To see why there are two different rows instead of a single row at 30 seconds, let’s plug in some numbers for specific pendulums.

p 1 ( 30 ) = cos ⁡ ( 2 π 30 ∗ 51 60 ) = cos ⁡ ( 2 π ( 25.5 ) ) = cos ⁡ ( π ) = − 1 p 2 ( 30 ) = cos ⁡ ( 2 π 30 ∗ 52 60 ) = cos ⁡ ( 2 π ( 26 ) ) = cos ⁡ ( 0 ) = 1 p 3 ( 30 ) = cos ⁡ ( 2 π 30 ∗ 53 60 ) = cos ⁡ ( 2 π ( 26.5 ) ) = cos ⁡ ( π ) = − 1 p 4 ( 30 ) = cos ⁡ ( 2 π 30 ∗ 54 60 ) = cos ⁡ ( 2 π ( 27 ) = cos ⁡ ( 0 ) = 1 . . .

So the pendulums with odd indices all line up on one side and all the pendulums with even indices line up on the other.

What about the other patterns? You can see three rows fairly clearly and even four somewhat. In fact, there is a broader pattern here the explains all of these patterns. Let’s look at when two pendulums with an arbitrary gap of k pendulums line up.

p i ( t ) = p i + k ( t ) cos ⁡ ( 2 π t 50 + i 60 ) = cos ⁡ ( 2 π t 50 + i + k 60 ) cos ⁡ ( 2 π t 50 + i 60 ) = cos ⁡ ( 2 π t 50 + i 60 + 2 π t k 60 )

So two pendulums which are k pendulums apart line up when t k 60 is an integer. Equivalently, that is when t is a multiple of 60 k . For example, the first and fourth pendulum (a gap of three) will line up at t = 0 , 20 , 40 , 60 , 80 and so on every 20 seconds. Similarly, the fourth and seventh pendulums line up at the same times, as well as the second and fifth. If you were to plug in t = 20 to each of the equations as we did above, you would see three different groups of pendulums made up of every third pendulum lined up at exactly 20 seconds. In general, when t is a multiple of 60 k you will see k rows of pendulums made up of every k th pendulum. However, since there are only 15 pendulums in the video k = 5 only gives us three pendulums in a group and anything above k = 7 puts only one pendulum in most of the groups. Because of that it is fairly difficult to see anything more than four groups of pendulums lining up at once.

Why do we sometimes see fewer rows than expected?

If we keep investigating, there is something interesting that happens when you plug in k = 4 . If you look at the times where you should see four rows of pendulums you get t = 0 , 15 , 30 , 45 , 60 and so on. So we should see four rows at t = 30 but we already know that there are only two rows at that point. Something similar happens at t = 60 for all of these values where we might expect there to be k rows, but we already know there is only one. What’s happening here?

Let’s look at the statement we proved above a bit more carefully. We showed that a pendulum with index i will line up with the pendulum with index i + k whenever t is a multiple of 60 k . When t is 30, it is a multiple of 60 4 = 15 so pendulum i lines up with pendulum i + 4 . However, 30 is also a multiple of 60 2 = 30 (i.e. 1 ⋅ 30 ) so pendulum i lines up with pendulum i + 2 . Both of these statements are true simultaneously, in particular because the second statement implies the first. So rather than having two distinct rows at ( i , i + 4 , i + 8 , . . . ) and at ( i + 2 , i + 6 , i + 10 , . . . ) as you would have at t = 15 or 45 , the two rows actually appear merged together as one at t = 30 .

In general this will happen whenever we have a time 60 ⋅ c k where c is an integer and c and k share a common divisor. For example, with k = 6 you will see six rows at t = 60 ⋅ 1 6 = 10 , then three at t = 60 ⋅ 2 6 = 60 ⋅ 1 3 = 20 , then two at t = 60 ⋅ 3 6 = 60 ⋅ 1 2 = 30 . In summary, for any rational multiple of the period, 60 ⋅ p q , where p and q are integers with no common factors (i.e. the fraction has been reduced to its lowest terms) you will see q distinct rows of pendulums. However, you are limited by the number of pendulums in the system since any k above 15 will have rows with zero pendulums.

An interesting consequence of this is that if k is a prime number you will see k rows of pendulums at k − 1 distinct times. Also, if you look at where each of the rows goes at each solution for t for a particular k you’ll end up with something that looks like the subgroups of the cyclic group of order k .

What can we change?

So is there something special about those frequencies that makes this work? Intuitively it seems like you should be able to slow down the video or equivalently slow down all of the pendulums by making them longer and still see the same system. In fact the frequencies and number of pendulums does not matter as long as there is a fixed frequency gap between them. In this case the gap is one swing per 60 seconds but it could be anything you like, and there could be as many pendulums as you like.

Additionally, the only property we used to prove all the statements above was periodicity. Because of that we can construct a system that has similar behavior using any periodic function. One I particularly like is the movement of clock hands around a clock. With this visualization it is much easier to see the patterns for higher values of k . You can also turn the number of hands up to something like 120 for a particularly stunning experience.

There is a full-screen version of this visualization here.

How far can we take it?

This system has a limit as it stands. In principle you should be able to see k groups at some time for any given k . However with finitely many oscillators (e.g. pendulums or clock hands) you cannot see more groups than you have oscillators. What I want is a system where for any rational number p q in lowest terms you will see q evenly spaced groups of oscillators at t = p q .

The closest thing I’ve seen before is Thomae’s function which is commonly used as an example of a function with bizarre continuity properties. However, I want something that operates over both time and space so that we can see where the oscillators are at any given point in time. Thomae’s function is one dimensional and can’t quite accomplish what I want, so we’ll have to extend it a bit.

The best I can come up with is the following:

f : R × [ 0 , 1 ) → Q

f ( t , x ) = { 1 , t = 0 and x = 0 1 q , if x = p q , with p ∈ Z and q ∈ N coprime, and t = r q , with r ∈ Z and r , q coprime 0 , otherwise (i.e. x , t irrational or don't share a common denominator in reduced form)

Essentially this says that if t and x share a common denominator in reduced form (with 0 being interpreted as 0 1 ), then the value is one over that denominator. Otherwise the value is zero. I’m not particularly sure how to make a proper visualization of this since all the patterns become actually instantaneous and the function is technically zero for essentially all values of t . Therefore I’m going to leave this as an open challenge.

Challenges

Send me whatever you come up with for these open-ended challenges.