Magnum Opus

I thought my time away from work might be spent traveling the world or cavorting late at night – every night, but instead I’ve been much at home. I’m focusing a lot on lights and software in a steady, deliberate, almost tedious fashion. I’m finally understanding more fully the LED code base and fixing decades-old, nagging defects. I’m tearing projects apart to rebuild them better. I’m not sure whether my LED work will be “finished” this fall, but the overall project is much closer now to my artistic vision. This LED work is my magnum opus for my 30s and 40s.

For the LEDs, I’ve been bothered that dark pixels are not that dark; too much stray light from an on-pixel bleeds through notches and holes to pollute off-pixels. For my most recent work, the Snowflakes cells just have a single punch-hole for each LED, trapping better all the light. There’s a double-wall of plastic between cells, and cells only touch at points, leaving some empty unlit buffer space.

Furthermore, although the white cover fabric does diffuse well, it suffers two main defects: it stains easily (and irrecoverably, ha, for a cover), and where the fabric lifts off the underlying plastic, those sections look out of focus. To keep all cell edges in focus, I slip on the cover and then use a 6-inch doll needle through the 3-inch thick cells to handsew both sides of the fabric taught to underlying plastic. Although this tedious handsewing works, it makes the velcro’d and potentially-washable cover (like a giant pillow case) almost irreversibly attached to the installation. Staining then becomes much more of a threat. So, I have built clear vinyl outer covers from a cheap roll of Tap Plastic vinyl ($2.15 a yard!) and sticky velcro. The vinyl unfortunately does catch glare from sources like sunsets, but I’m hoping that in low light the vinyl will be both unnoticeable and a great guard against dirt and beer.

For the software, I’ve written a lot of shows for a variety of art pieces ranging for triceratops to giant fish. I finally put these shows into C++ libraries so that I only have to update the show in one place in the library to cascade the improvements on to all my pieces. A 30-second show crashes abruptly into the next show. About a year ago, I implemented a fade algorithm so a show finishes by fading to black before the next show fades in from black. This fading is an improvement, but still causes the room to go momentarily dark. To fix this darkness, I’ve been working hard to interpolate one show into the next as for a conventional fade effect. This interpolation doubles some memory use, maxing out Arduino SRAM and straining my laptop, but the fade looks great, as if the pieces just keep kaleidoscoping seamlessly from one show to the next. I still have work to do on the fade coding, but I’m most of the way there.

I’m a little sad that these improvements in architecture and software make my older pieces look shabby, but the software improvements can be ported to those pieces fairly easily and I can implement the architectural improvements as well. For example, I can sew the Triangle fabric tight and build vinyl covers to protect them. I’m leveling up. Mostly, I notice defects and engineer fixes.