I wanted to make a braided rug, but couldn't quite wrap my mind around what colors to use, and how much fabric to buy. So I wrote some software to visualize rugs of different sizes and colors, and had it calculate an estimate of the yards needed for each color. Then I used it to make my first rug. Check it out at https://braidplanner.com
It took many tries to come up with a method for drawing the oval that didn't overly tax the browser when I used it to guide thousands of line segments made to look like a braid. Shown here is my first attempt, followed by the one that finally worked, but there were many in between (it's too bad you can't tell by looking how different they are under the hood).
I used D3.js to draw the rug, which needed to be composed of individual line segments like the close-up shown below, so that their colors could be changed on the fly.
Every time someone changes a color, the software counts the number of line segments with each color in the design. It then converts those counts into yards.
My aunt and uncle were cleaning house, looked at their old rotary phone and thought, "Libbey would like this." They were right. I took it home, opened it up, and through a lengthy process of trial and error, hooked it up to a Makey Makey so it could transmit events to a computer. First it sent handset-lifts and handset-replacements, which were useful for starting and stopping audio. Soon the computer played audio through the phone. It played an mp3 of a dial tone when the handset was lifted, and stopped when it was replaced.
Eventually I could also decipher which numbers had been dialed. From there, it became an interactive installation where you could pick up the handset, dial a number, and get connected to a "call," all while watching my fictional animation (made with D3.js) of the inside of the phone.
To create the "calls," I listened to many hours of audio on archive.org and other corners of the internet, and chose a small set of favorites. I am still amazed by finds like David W. Teske's recorded phone conversations. The final product was well-received as part of a group show at a small gallery in SE Portland.
This combination hack day, mystery, and art show was created by Portland artist John Brown in conjunction with PDX Creative Coders, and showed in Josh Michaels' Diode Gallery. Participating artists received a stream of unfamiliar, context-free data from a server, and made pieces based on it. At the gallery installation John Brown revealed that the data was a historical database of chess game moves.
The PDX Creative Coders group in Portland had the great idea of making something like trading cards for digital artists. For the first pack, ten of us generated 150 unique images, and packs were then made with one card from each artist.
On the back of my cards you'll find the following description: Over the course of a minute or two, small circles move in ways determined by fluid dynamics, leaving traces of their paths. The "fluid" is pushed or pulled by stationary stars whose positions come from Hayden Planetarium's Digital Universe Atlas. 100,629 stars in the Atlas are divided up among 150 cards, and their X, Y, and Z coordinates are scaled to fit the card area. Luminosity and distance in light years govern the amount of force the stars exert on the fluid.
This interactive installation used a repurposed alarm system from the 1980s and a Makey Makey to let visitors manipulate and inspect cellular automata of widely varying parameters. Some particularly nice patterns were stored as presets, while others were randomly generated. It showed at the Afru Gallery in Portland.
This combination hack day and art show was organized by Surya Buchwald and Josh Michaels in conjunction with PDX Creative Coders and the Diode Gallery. The gallery displayed electronic art installations networked to receive interactions from one touch screen in the center of the room. Twelve different works from Portland artists were installed, and all reacted to touches simultaneously. My piece was based on landscape data from the Missouri River in Montana. The landscape changed from night to day, and displayed different layers in response to screen interactions.
Interactive data visualization created for one of Information is Beautiful's visualization challenges. They provide the data, you make something with it. My entry was shortlisted.
View larger View largerI helped with the Hand-Eye Supply float for the 2012 Starlight Parade by programming some sequences for the lights. The lights were already set up to turn on and off in response to MIDI input, so that was my starting point. I used Processing to mock up the grid of lights and keep track of which MIDI note controlled which light. Whenever an animation sequence called for a light to be turned on or off, a line was written to a text file, specifying the light ID (which was its MIDI note), and whether it was being turned on or off. That text file could then be used to create a MIDI file. The handy csvmidi Unix command line tool converted from CSV (comma-separated value) to MIDI.
For a dinner and dance event in Portland, organizers hired a few local artists to create digital displays. I was inspired by the Sherlock Holmes story, "The Adventure of the Dancing Men," and created dancing spies using D3.js. I especially enjoyed translating poses of a stick-person (made of twist-ties) into coordinates in a CSV file that could then be used in the browser.
The following images come from slides prepared for my show & tell at Eyeo Festival.
View all largerAugmented reality kiosk made for DorkbotPDX art show, September 2011. Built with Processing and the NyARToolkit. There were five markers on wooden blocks, and each one triggered a different visual result when recognized by the camera. My favorite was the one below, which moved like a fiber optic lamp.
Quick project made for a DorkbotPDX open mic night. I used a Makey Makey and Processing to control sounds by turning cookies, loosely based on the idea of turntables. The left cookie changed samples, and the right cookie changed direction of play. I had a working version going with Play-Doh by the time I made my first batch of cookies, and then discovered that sugar makes dough resistive rather than conductive! So I made a batch of salt cookies and made them look like monster cookies.
There are a lot of ways to encode a few words as a secret message. These are some screenshots from my process of trying out different approaches (all with D3.js).
Part of a renewable energy exhibit, this interactive is paired with a physical turbine model, so you can move levers to adjust the blades and get a sense of how they work. The activity increases in difficulty as you learn about wind energy, and the screens are also in Spanish.
One of seven interactives I created the software for in an exhibit about technologies that aid or assist human abilities. This one is a Kinect-based activity that allows visitors to jump or throw with augmented legs and arms. Built with Cinder and the Microsoft Kinect SDK.
Another of the interactives I created the software for in an exhibit about technologies that aid or assist human abilities. People with limited use/absence of their legs can ski with a device called a monoski or sit-ski, and this activity allows visitors to imagine that experience. Visitors sit in a custom-made seat and steer down the slope on-screen by leaning left or right.
This exhibit simulates the fast data transfer enabled by photonic chips, which use lasers instead of electricity to transmit data. Small videos are "downloaded" to a destination device quickly or slowly depending on how the visitor has manipulated the lasers.
Active from 2012-2016, this website complemented a new sustainability exhibit at OMSI. You could sign up and earn virtual badges for completing challenges, and hear local stories from people who have made changes for the better. The site was also entirely in Spanish, and was made with Ruby on Rails.
OMSI collaborated with NASA to create an exhibit about ICESat-2. ICESat-2 is NASA's Ice, Cloud, and Land Elevation Satellite (the second), which uses a laser altimeter to measure, among other things, sea ice surface elevation and vegetation canopy height. This exhibit uses a model of the ICESat-2 satellite and a custom altimeter to measure anything beneath it, so visitors can pose as the altimeter moves along a track above, and then take a printout of their personal elevation profile home with them.
I enjoyed using the device below, which was quickly prototyped up to send test data to my computer.
My path has been a meandering one. I was a laundromat attendant, book store clerk, ranch cook, and lab assistant, among other things, before I got close to working with data and code. Thanks to the kind tutelage of people at the Center for Computational Biology, Montana State University, I learned to code, and that's what I've done since. I especially loved being the exhibit software developer at OMSI and a genomics data visualizer at Knight Cancer Institute. Currently I'm extra pleased to be developing software at Conservation Biology Institute.
This report card from my preschool days still holds mostly true.