Sand Pendulums – Lissajous Patterns in Excel

Share

Facebook
Twitter
LinkedIn

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.

sand-pendulums-excel-demo

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 updateScreen As Integer
    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
        updateScreen = IIf(updateScreen = 25, 0, updateScreen + 1)
        If updateScreen = 0 Then DoEvents
        
        'Reduce A & B values by using drag
        a1 = a1 * (1 - drag)
    Next t

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

Download Pendulum Sand Patterns Workbook

Click here to download the Pendulum Sand patterns workbook. Play with the animate & random pattern buttons to see some cool patterns.

 

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.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

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

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

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.

7 Responses to “Project Dashboard + Tweetboard = pure awesomeness!!!”

  1. Dan Murray says:

    I would like to see actual hash-tagged DM tweets go out to the specific information consumers. That would be an interesting way to communicate the key daily data to interested parties.

    A Twitter-like secure application like Yammer might be a good fit with this.

    For example, how about daily tweets to selected user groups (secure) that would display sales, bookings, cash receipts, cash disbursed and a second version that would show the same info for MTD, QTD or YTD figures.

  2. Aires says:

    @Dan, it would be great. I did not taught about implementing it on this dashboard because twitter is blocked to the whole intranet here. However, there's a discussion here about how can we send these tweets to blackberries (probably through e-mail) automatically. (I'd like to see this implemented on a jabber restricted network as well, but here it'll probably not happen)

    The wrap-up versions you mentioned doesn't apply to my particular scenario, but on a sales tweetboard it would be a great tool indeed - choosing who will receive which message according to hashtags. I'll think on something, thanks for the advice. 🙂

    (Ah, btw, I'm Fernando... 🙂 )

  3. Chandoo says:

    @Dan: That is a fun idea. Instead of tightly integrating twitter functionality with a dashboard, i think it would be cool if we have a "tweet this" button that users can click after selecting a range of cells. We can easily show a dialog with the concatenated output of the selected cells and ask user to edit the text and eventually "send to twitter".

    For eg. you can select the annual sales figure cell and click on "tweet this" button upon which a dialog will show the value. Then you can pre-pend it something like "DM @boss look at our sales this year: "

    @Aires.. thanks once again.

  4. Wow it looks really good. Not sure though how much the tweet facility would help in real world project management, but certainly having a dashboard on a project should be a key deliverable when learning how to manage a project

    The other use of this is during the software development life cycle especially when you have parallel streams of development and testing going on. Using a dashboard is a quick way for everyone on the team to see where the project is at and how it all fits together.

    Regards

    Susan de Sousa
    Site Editor http://www.my-project-management-expert.com

  5. Sue says:

    Hi Chandoo,
    I purchased the project management toolkit but the dashboard shown above with the imbedded scroll bars. Is it included in the project pack??
    Thanks

    Sue

  6. XLCalibre says:

    The gantt chart section of this dashboard is similar to one I have recently created: http://xlcalibre.com/hr-dashboard-gantt-chart-traffic-light-reportIt has a similar approach with scroll bars, but has a couple of additional features. I've tried to incorporate a traffic light report element, and also allow the timescale to adjusted so that can view it by days, weeks or months.I really like the other tables that you've incorporated, I may well try to replicate them to improve my version!

  7. I am a monitoring and evaluation consultant in international development, and one of the services I offer is to help non-profits and foundations develop performance dashboards.  I often advise them to develop dashboards for ongoing programs, rather than for one-time or pilot projects, because of the time involved.  I am trying to find out from a few people how long it takes you to develop a project management dashboard, and to what extent the indicators vary from one project to the next.

Leave a Reply