Programming Archimedes Spirals, Polar Pong and 77 million paintings for Lights with Pixelslinger

By max, Tue 07 January 2020, in category Hacking


A project that I have been tinkering with for the last few years has been lighting art for the SOAK Burning Man regional. Here are a few pieces/programmes that I made last year of which I'm particularly proud. Of course this code is just one layer in a maze of engineering for which I have to thank @austinfromboston and @mrstev for underpinning with their creative and dependable hardware.


The very first concept I thought about when I saw the "fan" shape hardware that my collaborators had made, was that the display was polar — and we should design for it using polar equations. Then my obession with spirals started. I love that spirals have the equation r=θ in polar, which relates the two dimension variables, like y=x in cartesian. Spirals are lines. Or are lines spirals?

Solving how to program the spiral was simple, but figuring out how to rotate the spiral took some pencil and paper headscratching which I explain at math.stackexchange.

This pattern I call Archimedes with it's overlaying spirals an homage to the grecian populariser. I found that with multiple spirals of the family r=αθ sweeping between α in the range [-10, 10] can makes a cool burst pattern.

Polar VJing midi effects

After becoming proficient with programming polar equations in the cartesian pixelslinger, I wanted to create some circular and radial VJing effects that could be played with on the midi pad. The ones new for this year for the polar system were the:

which can be seen shown off at around the 3 minute mark. Put together with the switching and parametrization of the underlying patterns there's an artform waiting to be refined for VJing this machine.

77 million paintings

As well button-mashing I wanted something that was entertaining without it needing any VJing input. I wanted to be able to walk away from the lighting and people could still drink tea by it. I decide it shouldn't be frenetic and it should have no clear repeating patterns. I decided to borrow/steal from Brian Eno's 77 million painting artwork which I was infatuated with. Quickly, the idea is to have procedurally generated paintings which are combinatoric layerings of base-elements. In the original there are 77million combinations. I made 78 layers and 4 are being displayed at a time so just 78 choose 4 paintings for me. The transparency of each layer is being modulated on staggered sine-waves. I actually wanted to borrow the source code of the original, but it's not available so I reimplemented it how I thought it ought to go.

Polar Pong

After seeing our first attempt at lighting last year, my friend Harry challenged us to make something more interactive, like a game, "like pong" he said. I couldn't say no to the challenge once I realized that our current technology supported that just as it was. The hard part was storing and passing around the game state (and creating a very small physics engine) but it's all possible in pixelslinger. I wish I had some video of it being played live, but alas I never want to carry my phone around at these events.