The Decay of Art

A SOAK Artpiece initial concept


The decay of art is currently a conceptual piece of art for SOAK 2020: "Some Assembly Required". It evolved out of my initial desire to do what I called "Dance Dance Tetris" in which a large (10ft x 20ft) step-on active color tile floor with sound and pressure sensors would allow one to play tetris while 'running' the pieces into place. The cost of the transparent flooring and logistics ("How do I keep people from eating shit and dying on this?") made me re-think this. I have been wanting to do something with large WS2812B LED displays for quite some time, but haven't found the right combination appropriate for soak.

That is, until now.

The decay of art is a cylindrical display, approximately 3' in diameter, which will contain two seperate 5' tall tubes. The inner tube, made from formed 1/16" plastic, will contain the LED array, and main mounting hardware (e.g. galvanized steel, an umbrella for rain if need be, etc), and electronics in the central pillar. The outer is a light diffuser and also integrates a touch sensor. This will be either 1/16" plastic or stretched lycra fabric (TBD). I have estimated an LED array of 42 pixels tall by 75 pixels around, resulting in an approximate 1.8" pixel size.

The idea for this piece is that the user simply sees a large cylinder populated with random colors. Every second (or pre-defined interval, likely to be faster), the system will pick a random pixel and change it to a different random color. A participant can walk up to the piece and touch any color and 'drag' it to paint it (Ideally, they can touch one pixel to select its color, and then either touch elsewhere to place a single dot of that color, or touch and hold two places at once to paint the color across the canvas). This allows the user to paint a picture (could be a smiley face, could be someting nicer, or bluntly someone could write "Fuck you" on it too) of their desire.

Now here's the fun part. Internally the microcontroller (I'm getting into nerdy details here), there are two arrays in memory. One is the current color array, approximately 3000 digits. In parallel, I intend to have an array of 'last touched', which records how long the pixel has been there. In order for the system to randomly touch a pixel, it's corresponding age must be beyond a certain point (say 5 minutes). After 5 minutes, the pixels become 'fair game' and the system will randomly overwrite the pixels with new random values. By some timeframe after someone has left the installation, their art will get statistically wiped out (decay), hence the name of this art piece. If you want to be cynical, you could also take it as a statement on the decay in quality of art. That or I'm going to ducttape a fucking bananna to the side of the thing...

The decay of Art is specifically designed to fulfill several of the ethos of the SOAK/Burning man event: The art that anyone (inclusion) is invited to create (participation), for all to view, will eventually decay away (immediacy).

Block Diagram
Stretch goal: Use an atomic source (e.g. Americium from a smoke detector, or other radioactive source) as a random number generator to put the decay in decay. While I think this would be neat, I'm sure people would go "ieee radioactive!" even though they surround themselves with more in their homes (smoke detectors) and eat it on a regular basis (google Bannana equivalent dose)

There are two major unknowns to this project right now:
1) The method of mounting to the ground. This is the least of my concerns.
2) The exact implemention of the touch sensor. I have a few ideas.
a)Thin wires
b)Translucent thin strips of conductive material
c)Backup, in case all fucks up: Two knobs and make it an etch a sketch.


A SWAG at the costs:
Deep Cycle battery: $100
Microcontrollers, power electronics (regulators): $100
Wire: $20
Plastic: $200
LED's: $400
Misc Hardware, nuts, bolts, mounting stuff, etc: $100
All said and done, probably about $900 I'm guessing.



PCB Initial Layout for Touch sensor
2/7/2020: The touch sensor breakout board for the block diagram is now on order to OSH Park. $20 for the PCB's (3x), $10 for the stencils, and about $45 from digikey. Estimate another $20 for the controller PCB when I get that sent out.


PCB Initial Layout for controller system.
2/10/2020: The touch sensor controller board is now on order to OSH park as well, and I've ordered all the LED strips and buck regulators. Mainly working on assembly details/logistics until the boards come in and and I can start on firmware then. probably late Feb for arrival/assembly. I didn't really have to have a PCB made for this, could have easily done it with some perf board, but since I was on a tear I figured I'd make my life simpler for wiring/etc and make it cleaner to boot. PCB was only $20.

Updating cost estimates:

  • LEDs: $450
  • Deep Cycle: Have one already, maybe +100 for a backup?
  • Plastic: 2x $120 for the outside diffuser
  • PCB's and Electronics: $20+10+45+20+30=$125
  • Mounting hardware, inner tube, $100.


2/20/20: Applied for a few offset bucks. OSHPark shipping PCB's today, scheduled to arrive early next week. I sent an email to Rohm to see if they have any application notes for the BU21182, as it's a newer part and there's no code out in the wild for how to properly control/use it. I've started writing some code to see if I can get it alive so that when the controller boards get here, that way I can start debugging right away. I need to have everything done by the end of April, as I am gone for most of May up until SOAK. Made another digikey order as well for header connectors to make things reasonably modular, should be here soon.

Time is going to fly by real fast on this project I can tell already...

Speaking of time, there are going to be about 3000 pixels in this display (42x75 = 3150). If I want, on a statistical average, all pixels to get 'touched' or 'changed' in a 5 minute timeperiod, that's 3000/ (5*60) = 10 or about 10 decays per second. Now, some pixels might get overwritten twice, and there's statistics involved, but that gives me a realistic range that I need to be able to update the display and do decays at least 10-20 times per second. Slower is naturally easier, but I can kinda determine my what my code will need to be able to handle.

Also now starting to add copies of my SVN tree to the files link for those who might want them.