Front View of the contraption built to compare to our model

Pendulum Wave Dynamics

Out of Phase Pendulums

by Juan Carlos del Rio, Elizabeth Doyle, and Harris Davidson

December 2015


When out of phase pendulums are properly constructed, cool wave motion results. The real trick lies in setting the appropriate lengths and then starting them all at the same time and angle. The equations of motion are fairly simple, d2dt2+glsin = 0 repeated for each length. The lengths are determined by 16 T1=(16+(n-1) )Tn.  More abstractly, 16 can be replaced by one more than the desired number of pendulums.  We created a model to simulate an arbitrary number of pendulums with lengths governed as previously stated, and built a working physical device with 15 pendulums.  We videoed the device in action and recorded more precise positional data using the motion capture studio.  The simulation, built system, and previous works found all had approximately the same motion.  We sourced most of the variation to length of the strings, with some other build and data collection factors playing secondary roles.


There is a particular beauty in systems that seem to form order from what should be chaos with the aid of some simple physics. The offset pendulum wave is a mesmerizing example of such a phenomenon. In this system 15 independent pendulum bobs form a series of patterns that, despite being simple, manage to enchant audiences of all ages around the world. The popular media site is littered with such examples of this, videos of offset pendulums collectively rack up more than 10 million views. Therefore it is no surprise that when we stumbled upon this peculiar dynamical system we were enthralled by it and decided to create a model of it for our final project. The video linked in the bibliography was used as inspiration for our system.

Learning Objectives

This semester we have done a number of things with single pendulums, double pendulums, and compound pendulums. However, we have only looked at the motion of one individual pendulum mounting point at a time. We want to explore how discrete pendulums can together produce interesting effects. Mainly we investigated the relationship between the length of the pendulum and the period of oscillation. Trying to create a precise model of our system also allowed us to put our knowledge of damped oscillating systems into practice.We also wanted to improve our Matlab skills with large data sets and with simulation methods. Another goal was to learn how to use the motion capture studio for accurate data collection.

System Model

     Our model has two parts - a simulation and an experiment. In simulation, we assume that all the pendulum are starting at exactly the same angles, the lengths are exact, and the masses are equal. We are assuming the same things for our experiment, but acknowledging slight errors with all these parameters. The parameter that is likely to affect our actual data is inaccurate lengths.

The diagram for one pendulum and a free body diagram are shown in Figure 1. Using the coordinate system set in the left side of Figure 1, we derived our equations of motion.

Figure 1. A single pendulum (left) and the corresponding FBD (right).


Figure 1. A single pendulum (left) and the corresponding FBD (right).


Working in cylindrical coordinates starting from the position:

r = l er

we calculated the velocity:

v =l derdt +dldt er

v =l ddt e +dldt er

and from that the acceleration:

a =dldt ddt e+l d2dt2 e+l ddt dedt +d2ldt2er +dldt derdt

a =dldt ddt e+ l d2dt2 e-l (ddt)2er +d2l/dt2er +dldt ddt e

a =(d2ldt2-l d2dt2)er+(2dldt ddt +l d2dt2) e

from the general acceleration equation, l = constant, so dldt=0 and d2ldt2=0  reducing our acceleration equation to:

a =-l d2dt2er+l d2dt2 e

Summing the forces (of tension and gravity):

F =ma

-T+mgcos =m(-l d2dt2) in er

-mgsin = m(l d2dt2) in e


our equation of motion thereby is

d2dt2+glsin = 0

We then added aerodynamic drag to the equation.

drag = -kV2(VV)

           d2dt2=dragml -glsin

This final equation was then used for each of the 15 pendulums.


The magnitude of the mass of the balls is irrelevant as mass  will not affect the period hence they only need to be equal to one another in order for us to obtain the desired offset motion.

Through our research we found that using ratios for the lengths we could define the number of cycles of oscillation the pendulums would have to undergo before they are back in phase. We chose 16 cycles to be our magic number. Using this number we set the lengths of the pendulums to be a fraction of the longest pendulum, allowing us to obtain the clean synchronized motion. We first set the length of our longest pendulum to be 10 inches, a size that would be easy to build and also large enough to work well in the motion capture studio. Once we set this length we determined the lengths of the other 14 pendulums using the following method.

First we start with the periods, let us use 16 cycles, the number of cycles we chose for the pendulums to take to get back in phase. However if we want the pendulums to be offset and continuously off phase as to form patterns we need to vary this number of cycles from one pendulum to the next, let's use 1 cycle variation. This means that the time period (Ta) of the next pendulum needs to be such that it takes 17 cycles to get back in phase with the first, the next will take 18 cycles, the next 19, etc... This leads to the relationships:  16 T1=(16+(n-1) )Tn.

If T=2L/g where  T = period of oscillation and L = length of the pendulum and

16 T1=(16+(n-1) )Tn

For example, with pendulum number 2, then

16(2L1/g)=(16+(n-1) )2L2/g



Provide answers to the questions posed in the Learning Objectives. Present analysis, simulation results, measurements, and plots (make sure to include figure captions which, not just describe the plot, but explain the point you making with the plot and reference/discuss them in the text). If you have built something, include pictures or provide a demonstration. Explain limitations of your results.

Model vs. Physical system

Both the model and the physical system show much of the expected motion. Unsurprisingly, the model more accurately represents the system. In the physical system, it is easy to spot a couple balls that get out of sync with the rest of the system after a while. Given more time and with a more accurate measuring system, it would be possible to bring all the pendulums closer to the exact lengths desired.

Our physical system, shown in Figure 2, was built using 15 balls from sets of Newton’s Cradles. This meant they came with mounting points pre-attached. The pendulums were hung from a loop of string in order to reduce twist during swing. Each loop was tied through holes spaced 1 inch apart. To run the system, all 15 pendulums are pulled back to the same angle and released simultaneously.


Figure 2. The built system.

Side-by-side comparison

A side-by-side comparison can be seen at the following link. The two systems are not exactly in sync due to slightly different initial angles. However, the same motions can be seen in both. Looking at the built system at about 45 seconds, it can be seen that the 5th from the longest one is slightly off (Figure 3) and the shortest five are fairly in sync with each other but off from the rest of the pendulums (Figure 4). The shortest pendulums are most sensitive to small variations in length, so it is unsurprising that the longer pendulums are able to hold the pattern for longer.

5 is slow.jpg

Figure 3. The 5th pendulum from the longest (circled) is out of sync.

small ones out of sync.jpg

Figure 4. The top 5 pendulums (in the red box) are out of sync with the bottom 10.

Collected Data

After much work with our very large data set, Matlab, and plotting and simulation, we were able to graph the collected pendulum data.


Figure 5.  72.4 second exposure of pendulum system in front view.  Data gathered with the motion capture studio.

The data captured shows the swing of 12 of our 15 pendulums (Figure 5). The other three were obscured due to the setup of the room. The data is slightly noisier than expected. One reason for this could be that some of the balls were twisting as they spun. Another reason is that the data has not been turned to match exactly with the axes, although it is close. The equipment malfunctioned anytime we tried to calibrate the room, so we had to use an old calibration. It is unknown when the calibration was taken or how accurate it was. Ideally, we would have been able to calibrate the room with the system.For the best data collection, we would have used balls that were entirely retroreflective, making them visible from cameras in all directions while still being considered the same marker.

System Error

    In order to justify the discrepancies between our model and the physical system we built, we did some basic sensitivity analysis on our system. We tested how our system would react to slight changes in initial conditions such as length of the pendulum and its mass. We believe that the majority of the error in our system comes from slight changes in the length of the pendulums due to rounding to less significant figures for construction sake causing notable discrepancies in the desired period of oscillation. We tested this hypothesis as follows.

    First we examined how a change in length would affect our period of oscillation. In a previous section we showed the equation T=2l/g which we used to determine the length of a pendulum as a function of a period of our choosing. If we take the derivative of this equation with respect to l we find that dTdl =glg , this derivative shows the rate of change of period of oscillation as we increase the length of any given pendulum. This equation is plotted below.

Error Validatio Graph of Build.png

Figure 6. This figure shows how a change in the length of the pendulum will affect the period of oscillation.

    Figure 6 shows the curve that is formed for the derivative we obtained above. As we can see, the gradient of the graph is steeper as length of the pendulum is reduced. This means that, as the pendulum gets smaller, small changes in the length will cause greater changes in the period as a proportion of the desired period. The analysis is consistent with what we experienced when we compared the model and the build side by side. Figure 5 shows the shortest 4 pendulums out of phase from the rest about 45 seconds into the video. This error is due to the compounding of the original error in length due to rounding creating large offsets in the desired periods for these five pendulums leading them to get out of synch with the longer more accurate pendulums.

    Another possible culprit is the disparity in mass from ball to ball. It could be argued that the lengths of string plus the tape put on each ball change the mass of the pendulums enough to cause the discrepancies of the data. However the mass added by the tape and string is at most a couple grams to an approximately 30 gram ball and when you take the difference in tape and string between balls the difference becomes smaller yet. Therefore it is highly unlikely that this is the source of error in our empirical data.


When starting the project, we didn’t anticipate problems with the size of our data. Running the simulation nearly maxed out 16gb of ram. Running calculations on our experimental data was even worse as it collected at 120 frames/sec. To downsize the dataset, we ended up just taking every 4th data points, what would have happened if we had collected at 30 frames/sec.

We also did not anticipate issues with indexing the matrices or dealing with so many parameters. This partly stems from our data being collected with the pendulums out of order, so the columns all had to be reordered in order to ignore the offsets of the pendulums. Each pendulum has three pieces of data, and then they all share a 4th (time). This means that for the 13 pendulums we were able to collect data from, we have 39 columns of data that all have to be tracked and assessed appropriately. This is very different than plugging in a few parameters by hand and then running a piece of code.

The third challenge was that trying to calibrate the motion capture studio crashed the program every time. We used an old calibration, which should be accurate as it is unlikely that anyone has been moving the cameras. However, it meant that we could not set the axes to match that of our system and had to perform postprocessing on the data..    


    The system could have been improved by more accurate length measurements of the pendulum and by an exact initial angle. The pendulums were all started at roughly the same angle by visual inspection, but a more accurate starting angle would improve the patterns seen. The simulation could have been calibrated after data collection to take into account actual drag values.


This project forced us to work with large, real datasets and develop our techniques for processing them. The motion capture studio outputs X,Y, and Z time stamped positions for each marker. Altering this data to be in a logical reference frame required us to bring our dynamics knowledge into a real world problem, and combine that with good coding practices in order to achieve success. While the underlying dynamics of our system may be relatively straightforward, the scale of dealing with 15 objects in three-dimensional space provided us with many opportunities for exploration of best practice.


We ended with a simulation, real system, and measured data that were in general alignment with both each other and the previous works we had seen online.  Errors were primarily sourced from the lengths of our string in the build, with possible exacerbation from inaccuracies in the motion capture studio capture, the mass of the bobs (due to blackout tape), drag of the bobs (also due to tape), and angle of release. Even with these errors, our system was able to maintain reasonably syncing long enough to see the main patterns expected.

Future Usage

The project could be used in future dynamics classes, either how we have done it or in other settings. If done how we have, we suggest keeping it as a final project, as it involves a lot more work with data processing than will be worth the time spent for many students.

The project could be used as a demo when the equation is derived showing that motion is highly dependant on the lengths. One way to incorporate it into the class would be to have students perform a set of sensitivity analysis to see just how small changes to a key parameter (length) affect the motion while other parameters, like mass, have much smaller effects.