Spinning Pins

Condenado a estar toda la vida, preparando alguna despedida (Desarraigo, Extremoduro)

I live just a few minutes from the Spanish National Museum of Science and Technology (MUNCYT), where I use to go from time to time with my family. The museum is plenty of interesting artifacts, from a portrait of Albert Einstein made with thousands of small dices to a wind machine to experiment with the Bernoulli’s effect. There is also a device which creates waves. It is formed by a number of sticks, arranged vertically, each of one ending with a ball (so it forms a sort of pin). When you push the start button, all the pins start to move describing circles. Since each pair of consecutive pins are separated by the same angle, the resulting movement imitates a wave. In this experiment I created some other machines. The first one imitates exactly the one of the museum:

If you look carefully only to one pin, you will see how it describes a circle. Each one starts at a different angle and all them move at the same speed. Although an individual pin is pretty boring, all together create a nice pattern. The museum’s machine is formed just by one row of 20 pins. I created a 20×20 grid of pins to make result more appealing.

Playing with the angle between pins you can create another nice patterns like these:

The code is incredibly simple and can be used as a starting point to create much more complicated patterns, changing the speed depending on time or the location of pins. Play with colors or shapes of points, the number of pins or with the separation and speed of them. The magic of movement is created with gganimate package. You can find the code here.

Merry Christmas and Happy New Year. Thanks a lot for reading my posts.

4 thoughts on “Spinning Pins

  1. Hi, I found this pretty cool and couldn’t help taking it to OpenProcessing: https://www.openprocessing.org/sketch/824502 . Thanks!

    Just added some noise to the wave amplitude (i.e. pin shaft length) as in naturally occurring waves (I guess). Pin-to-pin phase angles (either in-row or in-column) are tweakable with the cursor keys.

    (Your blog has a lot of even cooler ideas I’d like to experiment with –if you don’t mind–; just picked up this first because it was particularly straightforward to be implemented in OpenProcessing’s p5.js engine.)

    Thanks again!

Leave a Reply

Your email address will not be published. Required fields are marked *