sGloTaT added to projects

Finished up our final projct for Computational Principles for Media Arts, and here it is. Watch the overview video, but please visit the project site and DOWNLOAD OUR PAPER. This is a collaboration with Byron Lahey and Ryan Brotman.

The sGloTaT sonic environment allows participants to originate sound by moving physical objects. It encourages novice users to play by naturally gesturing with two tangible user interface objects emulating a trumpet and tambourine. In this sound space, movements by the users generate visual feedback projected on the floor in the form of a three-dimensional rendering of a cone.


sGlobject Trumpet & Tambourine (sGloTaT) by Ryan Brotman, Byron Lahey, and Rebecca Stern

The sGloTaT sonic environment allows participants to originate sound by moving physical objects. It encourages novice users to play by naturally gesturing with two tangible user interface objects emulating a trumpet and tambourine. In this sound space, movements by the users generate visual feedback projected on the floor in the form of a three-dimensional rendering of a cone.

More photos are available at the Flickr set.

This is the final project for Computational Principles for Media Arts, a fall 2007 class in Arts, Media and Engineering at Arizona State University. Please download the following paper for more information.


Mend Your Quilt


I just published a new instructable on mending a disintegrating quilt. – Link to instructable, link to flickr set.

Plush Cuttlefish

I made this plush cuttlefish for my niece, who’s 1.5 years old. Her mom’s a marine ecologist, so why not encourage her propensity towards a nautical theme? My sister, brother in-law, and niece travel a lot, so I included a security handle, good for strapping the toy to a backpack or stroller.


Hacked Date Stamp

I bought one of those librarian’s date stamps a while ago from Staples. I use it to date my projects and other things; it’s fun. There was one problem, though. The date it could stamp was in MONTH-DAY-YEAR format, as in “NOV 05 2007.” Using computers, I find it organizationally beneficial to label dated files and folders in a YYYY-MM-DD format, as in “2007-11-05,” and wished my stamp reflected this general-to-specific date format outlined by the ISO 8601 guidelines. So I changed the order of the loops, and photo-documented this easy hack. Link to Flickr set.

ahh, that's better!

Take the loops out of the frame


Light-up Sidewalk Brick

Light brick

Light brick - preparing another LED

This weekend while walking down Mill Avenue in Tempe, AZ, I saw an interesting sight. The sidewalk is made of bricks, but one of them was glowing. Upon closer inspection, it appeared one brick had been removed and replaced with an acrylic box containing a light source, which was backlighting a drawing on the inside of the transparent acrylic. My curiosity got the better of me, and I pried the top off (which was caulked to the bricks around it) with my multi-tool. What I found was pretty neat: a thick top layer of clear acrylic protecting a vellum drawing, lighted with a single 5mm LED hooked up to a battery pack. The initials “BRT” and the date “10/07” were written on the inside of the box. Having opened the box and accidentally torn the drawing, I felt I should add something to indicate I meant well. I happened to have some LEDs and coincell batteries with me, so I taped up an extra light (the one already in the box was not very bright or diffused), and stuck it inside, then pressed the lid back on as securely as I could. I have no idea who made it, but I have a Flickr set – Link.

Sensing Squeeze

I’m researching squeeze sensing as a mode of tactile interface. Here I will cover the process of developing a squeezeable sensor and the firmware/software concerns associated with interpreting the data from the sensor. This fulfills the “sensor project” for my class called Computational Principles in Media Arts taught in AME at ASU by Todd Ingalls and Hari Sundaram.

First off, how do we sense “squeeze?” People squeeze all kinds of things: lemons, steering wheels, loved ones, toothpaste and other toiletries, pimples, stress balls, hand exercisers. I would like to focus on the latter two, which provide a therapeutic activity for those with Repetitive Strain Injury (RSI). Using flex sensors arranged in a certain pattern on a spherical object, in this case a rubber dog toy, one can capture whenever the ball is squeezed. Here’s a sketch of the sensor layout:


There are three types of interactions I wish to sense with this setup. The first is how hard the user is squeezing. The second is whether or not that squeeze is sustained. The third is if the user is squeezing and releasing the sensor. With these three pieces of information, I believe it’s possible to create a software exercise program to prevent RSI symptoms by strengthening hand muscles.

In regards to sampling rate, I am inputting this data via analog-digital conversion using an Arduino board (Atmega168). My firmware samples the state of the each sensor ten times every second and delivers it via serial to the computer. The sampling rate has to be high enough to sense quick changes in the state of the sensor, such as quick squeezing and releasing, but not too fast as to overload the serial port receiving the data.

Surgery on the squeezeball
One of the flex sensors embedded in the ball.

Squeezing the ball.

In the imagined scenario of an anti-RSI exercise software application, the routine would guide you through a program of motions and evaluate them in real time. For instance, a command might be given to say “squeeze the ball as hard as you can for 10 seconds,” then start timing when you start squeezing, showing you on screen how many seconds you had left to squeeze. In another exercise, you could be instructed to “squeeze and release the ball 20 times.” The software would then count how many discreet squeezes were performed and allow you to complete the routine when all 20 squeezes had been counted.

Another sensing concern is that of granularity of squeeze intensity. How can we tell how hard the ball is being squeezed? There is inherent noise in the signal. The typical incoming values of the two sensors at rest are between 96-103 and 116-124. The difference in these at-rest values can be attributed to the slightly non-spherical nature of the ball used (it has a raised portion, making one sensor slight less bent when applied flush to the ball’s surface). The values input when the sensors are bent as much as is possible given the flexibility of the ball are about 200. We can therefore assume a noise level of +/- 8 on any signal reading, limiting the accuracy of our sensing. We can, however, tell the difference between a squeeze at 150 and a squeeze at 180 with relative confidence. This allows us to evaluate, on a qualitative level, whether the squeeze is “none,” “soft,” “medium,” or “hard,” at the very least. For the purposes of the proposed anti-RSI application, this low-granularity data is sufficient.

Ideally this application would track your hand strength’s progress over time, but that’s probably more along the lines of this class’s “modeling” project. With the aid of consultation by a physical therapist, the data tracked over time by this device could aid in a treatment program. You’d think that I’m a student in the Biofeedback for Rehabilitation application group here at AME, but the real case is that I’ve been battling RSI since I first learned to type.

The two analog flex sensors are sewn into a form-fitting muslin skin on the outside of a rubber, squeezeable dog toy. The analog sensors are wired to two analog input ports on an Arduino board, by way of a circuit board shield. This shield covers the reset button on the Arduino board, but this board has been converted to allow for “diecimila” functionality (add a .1 micro Farad capacitor in just the right place, and you no longer have to press the reset button in order to load a new program).

The squeeze interface has many more applications than just an RSI exercise device. In the Reflective Living application group we’re currently investigating novel tactile interfaces such as squeeze, twist, pull, and various motion gestures to create everday experience-scapes as well as to navigate through digital media, thereby bringing it back out into the physical world.

A Flickr set of all the photos of the squeeze interface is available. So is the Arduino code for dealing with the sensor data.

Recipes: Spinach Tofu Quiche and Baked Tofu

I’ve devised these recipes, which have proven delicious.

One, a spinach tofu quiche, uses havarti, feta, and the baked tofu described in the second recipe.

Spinach Tofu Quiche

1/2 batch baked tofu, cubed (see below)
1 large handful baby spinach
3 medium red potatoes
1 1/2 tbsp. olive oil
3 eggs
1 cup milk
1/2 sweet white onion (vidalia or similar)
1/2 tbsp. butter
1 cup havarti cheese, shredded
1 cup herbed feta cheese, crumbled
2 tbsp. sour cream
fresh cracked pepper
kosher salt

Preheat oven to 400 degrees.

Shred potatoes into colander and salt generously. Let sit in the sink for 20 minutes, then press with paper towels to get as much moisture out of them as possible. Liberally oil a 9″ pie pan, then press shredded potatoes to coat bottom and sides of the pie pan. Don’t forget to oil the very top edge. Brush remaining oil over potato “crust” and bake for 20-30 minutes until it starts to brown and crisp up.

Turn the oven down to 325 degrees.

Slice onion into rings and saute in butter over medium heat approx. 20 minutes or until translucent, soft, and just starting to brown.

In a large mixing bowl, combine cheeses, sour cream, milk, eggs, tofu, spinach, and pepper and stir. If you’re using another cheese in place of feta, add a dash of salt. Pour this mixture into the potato crust. Layer the sauteed onions on top of the quiche and bake for 30-40 minutes or until darkened on top and firm. Let stand ten minutes before serving to let the quiche set. It’s great at room temperature or just slightly warmer.

Baked tofu recipe after the jump.