 # Sand Pendulums – Lissajous Patterns in Excel

Share

Few days ago, I saw a beautiful homemade science experiment on Sand Pendulums on Bruce Yeany’s YouTube channel. Go ahead and check it out. It is a cool project to do with your kids.

I will try this experiment with kids during school term holidays around Easter. But first, I wanted to try the simulation in Excel.

### Simulating sand pendulum pattern in Excel

Take a look at the final simulation. Pendulum pattern – Lissajous curve

The patterns generated by sand pendulum are nothing but Lissajous curves. We can generate these curves in Excel by using below equations.

• X = A * SIN(a*t + d)
• Y = B * SIN(b*t)

where

• A & B refer to amplitude (the length pendulum travels before reversing its direction) along X & Y axes
• a & b refer to height of pendulum along X & Y axes (if these are same you get a simple pendulum and thus a straight line pattern)
• d refers to degrees of shift (its a bit complex to explain here, but read about phase shift on Lissajous curve Wikipedia page)
• t refers to radians (degrees).

But this will generate a smooth line, how to show sand?

Simple, after computing each pair of (X, Y) we add a small random noise to them. This creates an impression of sand falling from pendulum on to a surface and bouncing off. Let’s define our new equations as,

• X = A * SIN(a*t + d) + jx * rand()
• Y = B * SIN(b*t) + jy *rand()

Where jx & jy are jitter fractions (very small numbers, lest the dots will be too away from original points)

What if the pendulum never stops?

Since we are simulating the movement of a pendulum in Excel, we can choose to have a never stopping pendulum (ie a simple gravity pendulum). In this case A & B values never change.

In real life, A&B will reduce with each oscillation until the pendulum comes to a stop (because there is air drag, friction and other forces at play too).

### Let’s look at the chart & VBA

Enough physics & maths. Let’s take a look at the chart & VBA behind this simulation.

1. Set up 3 columns, one with t values starting from 0 and increasing by 0.05 per cell, next two with X & Y values.
2. Leave the X&Y values blank. We will use VBA to fill these.
3. Let’s say we use 5000 (x,y) values to plot the chart. This gives enough variation. You can alter the number of rows later.
4. Create a scatter plot with smoothed line using these 5000 (x,y) values.
5. Using VBA, iterate thru column t and calculate X & Y values for each t value using above equations.
6. Update the chart by using doEvents after every calculations. Try n=25 first and change as you see fit. Updating the chart after every calculation slows down the animation significantly.
7. Change A, B, a, b, d, jx, jy and air drag factors to generate different curves.

Here is the VBA code used for the animation.

``````
Sub animate()
Dim xVal As Double, yVal As Double, jx As Single, jy As Single
Dim t As Range
Dim a1 As Single, drag As Single
Dim a2 As Double, b2 As Double, d As Double
Dim tVals As Range

a1 = 1
drag = Range("air.drag")

a2 = [a.2]
b2 = [b.2]
jx = [j.x]
jy = [j.y]

d = WorksheetFunction.pi() / Range("d")

Set tVals = Range("t.vals")

Range(tVals.Offset(, 1), tVals.Offset(, 2)).ClearContents

Range("done") = "drawing..."

For Each t In tVals
xVal = a1 * Sin(t * a2 + d) + jx * Rnd()
yVal = a1 * Sin(t * b2) + jy * Rnd()

t.Offset(, 1).Value = xVal
t.Offset(, 2).Value = yVal

'update screen after every 25 times this loop has run
If updateScreen = 0 Then DoEvents

'Reduce A & B values by using drag
a1 = a1 * (1 - drag)
Next t

Range("done") = "done"
End Sub
``````

### Have you done this experiment?

This is a cool way to teach kids the awesome pattern power of simple things in life. Have you done this experiment? If not, give it a try. If you think playing with sand is too messy, try the Excel workbook.

Also check out: 3D dancing pendulums post to see some cool & clever animations. Huge collection of spreadsheet tools & simulations for teachers.

### Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

### Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Excel School made me great at work.
5/5

– Brenda

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch. ### Sorting values in Olympic Medal Table style [Quick Tip]

It is Olympic season. Everyone I know is tracking the games and checking their country’s performance. One thing that we notice when looking at medal tally is,

A single Gold medal is worth more than any number of Silver medals. Like wise, a single Silver medal is worth more than any number of Bronze medals.

So, when you look at the ranking of countries, you see countries with single Gold medal higher up than countries with lots of Silver and Bronze medals (but no Gold).

## Related Tips

### Get FREE Excel & Power-BI Newsletter

One email per week with Excel and Power BI goodness. Join 100,000+ others and get it free.