top of page

FURdecahedron

I wanted to create something that forced the viewer to approach and touch the piece in order to experience it fully.

We learn so much about our world through touch - it is a natural instinct of ours to want to reach out and feel things. I wanted to create something that forced the viewer to approach and touch the piece in order to experience it fully, and therefore reflect on the limits of the way we usually interact with art. I decided to use fur paired with a sound output to inspire this type of viewer-art interaction.

FURdecahedron is constructed from cardboard, and includes three photoresistors (light sensors), two custom pentagonal buttons, a piezoelectric (vibration) sensor, and is powered by a portable charger. Environmental inputs from these sensors are read by an Arduino ESP32, and are communicated over WiFi to a Python script, which in turn communicates with a SuperCollider script that controls the sonic output. All of the sensors effect the sound differently, and are hidden underneath the fur of the final product, encouraging continued tactile exploration. As a wireless, 3D object, it entices you to pick it up, run your fingers through the fur, and move it around in space. It breaks out of the bounds of museum art that is meant to only be experienced visually, and is in general a fun sensory experience!

Building the Skeleton

Since it was so crucial to my final project, I started this process by building the skeleton of my enclosure. I chose cardboard for this because of its availability, versatility, and because I knew it would eventually be covered in fur so the structure didn't have to be pretty. I initially wanted the piece to be a sphere, and decided the easiest and cleanest way to do that was the build a dodecahedron, a 3D shape with 12 pentagons as faces. I cut out these 12 pentagons and arranged them in two halves, as seen below. I planned out which pentagons I would install sensors on in order to ensure that the sensors were evenly distributed around the object. I made holes in the correct pieces for the sensors, and then hot-glued the cardboard pentagons together into two halves of the final shape. In order to ensure I could still access the electrical components in the final product, I installed a metal hinge on the top pentagon, so that it could open and allow me to reach inside the shape.

image.png

Installing the Sensors

To allow my piece to be effected by movement and handling, I chose to include a number of both analog and digital sensors: 2 buttons, 3 photo-resistors, and 1 piezoelectric sensor. I wanted the buttons to appear natural on the dodecahedron, so I created my own button tops by cutting out smaller pentagons and gluing them to the top of the buttons.

 

When installing the sensors, I needed to make sure the wires did not become disconnected even if the piece was moved and shaken. To do this, I soldered wires onto the sensors themselves, and then connected them to the ESP32 using a breadboard which was attached to the bottom of my dodecahedron. This was trickiest for the photo-resistors, which each required 5V input voltage and a resistor attached to their ground pin. This created a voltage divider, and the ESP32 read the voltage over the added resistor, which changed according to how much light was reaching the photo-resistor. Once all the wires were soldered, I glued them onto the outside of my piece, plugged the wires into the correct spots on my breadboard, and glued the two halves together. As I did this, I did my best to tape the wires down so that they would stay in place as the piece was handled. (It looks ugly but I promise there was a method!) I was also sure to take down the input pins of each sensor for reference as I was coding later.

​

I also decided to use a 5V portable charger to power my piece, since the photo-resistors required 5V to operate. I installed this by gluing the bottom of it inside the piece, and connected it to the ESP32 through a USB to Micro-USB cable.

image.png
image.png

FUR!

Once my skeleton was complete, it was time for the most exciting part of this project - covering my dodecahedron in fur. I bought this lovely blue fur at Joann Fabrics, and I chose it because it was soft and the color was neither bright/bold like a muppet nor natural like a live animal. I wanted my piece to visually exist somewhere between these two ends of the spectrum. I covered the shape two pentagons at a time, meaning that I cut out 6 connected shapes and then hot glued them on. I cut holes for the photo-resistors to poke through, and made the pentagons for the buttons a little larger so that they could stretch over the raised area. The fur did shed a lot during this process, so I tried to pull out all the loose pieces before attaching it to my structure.

image.png
image.png

ESP32 → Python

I chose to use UDP to communicate between my Arduino ESP32 and my python code. In my python code, I set up a udp socket and ensured that I had the right IP and Port values, and thus was able to recieve the data from the ESP32 over wifi.

​

In my Arduino code, I sent a key equal to 5000 before sending my sensor data. In my python code, I had a sensor variable that was set to 0 when it saw the key, and then knew the order of the lines after that. This made it easy to know when a specific sensor value was changing.

Python → SuperCollider

Because I wanted the sensor data to effect the tone/pitch of a sound output, I chose to work with SuperCollider. This was probably the hardest part of this project for me, since I had never worked with the software before. First, I had to find a way to communicate between my python code and SuperCollider. I once again used UDP for this, and included a udp_client with the default ip and port for SC. I then used this client and send_message() to send sensor data over unique channels for each photo-resistor.

 

In SuperCollider I created a synth definition, and created 3 synths for the 3 photo-resistors that changed their frequencies according to the  sensors values that were being read.

Final Product

When you run this code in SuperCollider, you hear 3 distinct tones that get lower when their photo-resistors are covered, and higher when they are receiving more light. I implemented the buttons in python using the pygame module so that when they are pressed they play a quick sound bite I found on freeqound.org. The dodecahedron is meant to be moved around, pet, and interacted with however the user would like!

bottom of page