PComp Final Proposal by Maya Pruitt

Group: Working with Dylan Dawkins and Cara Neel


Using projections, we want to transform ideally any corner of the room into an underwater experience.


After talking with David about this, we realized that world building is a pretty huge undertaking. We needed to decide whether the user is meant to simple explore it for if they are a character in a narrative. To help frame the world, we kind of fused these together, creating a story that guides the user through exploration in our world. It ends up being like an underwater escape room.

Here is a link to our initial storyboard.

As far as technical aspects and interactions, we want to use pressure plate switches, perhaps gesture capture, and/or building a control.

PURPOSE: Creating an experience, altering perception, changing the way you expect a surface to act, an opportunity for people to think about how their presence affects space

Next steps:

-playing around with projections


-creating plate switches to trigger changes to the porjection


For this post, I’m just going to hash out some ideas for the physical computing final.

Our assignment is to make an “interactive system”, meaning we should think about it as a feedback loop. Instead of having just one interaction (user input, to device output), can it create two-way communication?


  1. Not sure if this can be turned into an interactive system, but I like the idea of revisiting my undergraduate thesis. I have actually submitted an IRB for a second experiment to jump off the original thesis. Using eye-tracking, my advisor and I were interested in understanding how art training affects the way humans look at art. It would be super cool to create this eye-tracking device that paints. What I mean is that I predict, that expert artist often view art imagining the process and how they would create it themselves. I predict that a representation of their eye movements might look different than people who don’t have art training.

    • The result would be different “drawings” that represent the eye movements. Perhaps different colors for each part (are the looking at the edges of something, the middle.

    • Since I also used protocol analysis, this technique could be used again but this time something is taking the dictation as it happens. Maybe certain words trigger a different output.

    • Perhaps this is too ambitious and I could table this for my thesis, or maybe it’s a combination of ICM and PCOMP? I don’t know, but I think it could be interesting, and I would love to have ITP collab with the Cognitive Science department at Vassar somehow.

  2. I just really want to create a giant projection of water on the floor and I want people to be able to move the water with their hands, or touch a fish. Is this even PComp idk?

  3. Maybe I can expand on beat visualization and make it an entire room installation. Could delve into the world of the psychological phenomenon of synesthesia – associating colors or smells to different sounds.

  4. Mental health has really been on my mind lately. I don’t really know how to incorporate that, but it would be very meaningful to me to crate a device that provides comfort to those who are struggling. There is a lot of stigma around mental health perhaps because humans are so judgemental, maybe if you talk to a machine that can take away that fear? or maybe it makes one more uncomfortable? Would love to expand of this somehow: Sit in a chair that warms to provide comfort.

  5. Giant interactive rube goldberg machine


The first halloween midterm post was getting a bit long, so I wanted to break it up into a second post, but also as a way to distinguish that creating the Halloween disco ball was truly a balance of two major components: the programing of digital elements AND the fabrication of the physical parts. Without the former, it is an empty shell, and without the latter, it is a bunch of LEDs and wires. So we thought critically about the fabrication of our project as well.


We started with a search for the jack o’lantern. We wanted a preexisting enclosure to save time. We settled on a plastic cauldron with a raised and painted flame design on the side.

Immediately, I disliked the way the flames were created on this cauldron, but I saw it as an opportunity to emphasize the future LEDs to be placed inside. I decided to cut out the flames, so that light could shine through, and since it’s a flickering candle in its normal state, this worked out nicely.

However, we didn’t want our shell to just have a bunch of flame-shaped holes, we would still need to enclose the LED bulbs inside, so we thought using some sort of translucent material would diffuse the light nicely. I tested with translucent acrylic and thought this could work well. We could laser cut the pieces and use some sort of plastic adhesive to hold it in place. But then, my dad has a genius suggestion and showed me a think translucent plastic that he used to use to diffuse light for photographic sets. This changed my path completely, the plastic was thinner, easier to cut and manipulate and I could paste it inside flush against the plastic.

Here I tested how the light shined through two different thin plastics:


Khensu-ra and I were also keen on adding a motor to our project. Originally, we planned to make the disco ball rotate. However, we quickly realized that this could be problematic with twisting all the wires inside. So we ditched this idea and thought what if we could make something come out of the cauldron! We became determined to create a fan that could blow confetti out of the top of the cauldron.

[vid of khensu-ra testing fan mechanisms]

So the challenge had been set: we have a disco ball cauldron that’s sensitive to the environment, that lights up to the beat of the music, and blows confetti. HOW THE HECK DO WE BUILD THIS THING?

I sketched out a design that layered out components inside this cauldron: [pic] It was important to me that the final product would look very clean, but that we wouldn’t have to go crazy on cost. In the end we ended up using a lot of found material and strategies that we had learned from Intro to Fab (yay!).

Bottom up description:

We wanted the first layer, so to speak, to be a box to enclose wires, the Arduino, and the fan battery. Luckily, I had scavenged this perforated metal box from earlier in the year.


  1. It had an open top though, so we would have to create some sort of lid. We ended up finding some left over acrylic to laser cut for this.

  2. We would drill holes in the four corners to attach to the box, a hole for the fan switch, 3 holes for the cauldron to be attached and one larger hole to run wires through.

  3. The cauldron would have the translucent plastic attached from the inside.

  4. Then, we would rest a small tower to hold the breadboard with LEDs at the bottom, and mount the motor for the fan on the next layer.

  5. Drill a small hole on the edge of the cauldron lip to expose the photocell.

  6. Mesh layer on the top to rest confetti on top of.

So this was the plan, and in execution, we followed it pretty close to a tee, but it was definitely a challenge!

Creating the motor mechanism was an interesting part. Getting our motor to run was easy, but getting it to blow confetti was difficult. We were originally advised that we should use a tube where air could be underneath the fan, otherwise it wouldn’t blow anything. When we tried this, however, the motor created a vacuum and ended up pulling the confetti in the opposite way that we wanted. We tried enclosing the motor instead with a back to the tube. This worked, the confetti has nowhere to go but up and out!

[video of confetti success]

Of all these elements, which part do you think would have been the hardest to complete? Well, whatever you thought, you were wrong, it was the DAMN LID for the box. Surprised,? Yea me too. Khensu-ra and I measured this lid probably a million times, with electronic calibers even, to make sure all hold would be in the exact right place. Alas, we adjusted it over 7 times, mocked it out on cardboard about 6 times, and sadly the final acrylic piece still did not fit correctly. TRAGIC. Ashamed to say, I had to file out the four corner holes in desperate measures to make this thing sit on the box correctly. It worked out, but I’ll never forget the pain.

Another unpredicted issue was that the metal box was actually super conductive. I didn’t want to risk killing my Arduino, so I had to cover the whole inside with tape (and the bottom is cardboard) to make sure no wires or pins from the Arduino could touch the metal surface of the box. This solved the problem.

With all the code working, assembly seemed straight forward. The components worked, we just needed to put it inside this weird bowl. Our engineering of this device was actually quite sound, but all the movement of pieces, inevitably always made a wire or something pop out and left me quietly crying that the disco ball had suddenly stopped working. Ashley came to my rescue and said I could hot glue wires to the breadboard and it will help them stay in place. BLESS, this solved my issue entirely. As long as everything stayed connected, there would be no issue.


Ultimately, the halloween disco cauldron was a success! I think people enjoyed how responsive the cauldron was to the light in the room. It was a simple interaction, but an effective one, because it’s reacting to environmental change. In addition, I very much enjoyed watching people’s reaction when they flipped a switch and saw confetti blow out. It was also a hilarious instinct that everyone would quickly clean up the pieces and put them back in. If I could do it over, my one big change would be to use stronger brighter LEDs, this would make the party state even more pronounced. Overall, I am very proud of this piece. It is clean, well constructed, and gets the point across. But the most exciting part is that it has the potential to be scaled up. The foundation is there, so where could we take it next?


Perfectly timed with Halloween, it was only fitting that our Physical Computing midterm would be something interactive with this theme. For this project I worked with Khensu-Ra Love El (check out his blog here).

Rather than a likely spooky scary approach, we decided to do something fun and make a Halloween Disco Ball! This post documents the process.

When coming up with ideas we talked about different sensors we wanted to try, as well as how we wanted people to interact with our project. I really wanted to use a photocell resistor in this project, which is a sensor that measures light. I loved the idea of creating two states with our project, how would exist by day versus night?

My main idea was to have the photoresistor set to a threshold to know when it is dark in a room. Darkness would trigger different party lights. Khensu-ra also liked the idea of adding music, which I was definitely on board with. This became a really great way to include serial communication to Javascript since we were motivated to use actual mp3 files, not just robotic tones on the Arduino. Specifically, I had to have this thing play Thriller!

We decided to create two states, one in light and one in darkness - an ode to Halloween as a celebration of creatures of the night. Initially we thought of doing a Jack-o-lantern looking enclosure. We imagined that in the light state, the lantern would flicker like a candle and in darkness it would light up in different colors. Kind of a fusion of the images below:


Creating the flickering candle effect seemed like a good place to start. Referencing this code, the Arduino and LEDs create a convincing candle light effect, especially when placed behind a translucent material (a sheet of paper in the video below).


To create the trigger of light to dark, we decided to use a photocell resistor, which measures light. Even though it’s tiny, it’s quite sensitive. On the breadboard, I added more LEDs and figured out a threshold for the photocell. If the photocell is above a certain threshold value: enter candle state, if the value is below the threshold: enter part state.


After creating these two initial states, we met with our Professor David Rios to figure out how to play music beyond Arduino tones. This proved to be a good opportunity to try serial communication. p5.js could read incoming photocell value readings and play music accordingly. We decided that turning the lights out in a room would also trigger the music playing.

It took us quite a bit of logic to figure out how to write the code for this. We needed our discoball to be aware of its state. It needed to recognize that it was both below the darkness threshold as well as know if it had already begun playing music.

function gotData() {
  photoVal = serial.read();
  if (photoVal < threshold && isDark == false) {
    isDark = true;
  if (photoVal > threshold && isDark == true) {
    isDark = false;

Function gotData() reads the incoming photocell value from the Arduino and plays music when conditions of the if statements are met.

The result is a pretty sensitive system:

To make the lights more responsive and interesting, I wanted them to pulse to the beat of the music. I thought this would add more drama to our disco ball. I explored audio frequency visualization first in p5.js (see code for that here). The next step was to add serial communication again, but now going the other way, to have p5.js send instructions to Arduino (serial out). The beauty of this is that the code for my ICM beat visualization remains the same, p5 can use FFT to parse through the music, it then sends out a bunch of serial.write() commands that the Arduino then reads to light the LEDs accordingly. Below is a video of this first test with a single LED mapped to the bass of the song.

Then I added two more LED to indicate bass, midvalue, and treble! [video]


For these labs we learned that Arduino can not only extend to the physical world, but it can also communicate with your computer. Here comes the internet of things!


We first learned “Serial In”, meaning the Arduino will receive input or values from a sensor and communicate that information to the computer. Specifically, this is done in p5.js, a javascript library.

Computer reads potentiometer values and changes the background color of the canvas accordingly:


“Serial out” is the opposite of the above lab. This time information from the computer will output to control something on the Arduino. The mouse location on the canvas determines the brightness of the LED.



Using what we’ve learned about analog input and digital output, I chose to work with a digital in/out ultrasonic sensor and a digital output to LED. I wrote a program to control LEDs by distance to another object. By combining this with the enclosure work i’m doing in Fabrication, these simple components will transform into a robot!

 Wiring for an ultrasonic sensor test.

Wiring for an ultrasonic sensor test.

 A screenshot of the serial printing out the sensor values and then converting them to inches and centimeters. The sensor range reads as 120 - 5000 CHECK #, which is about 1 cm to 3 ft.

A screenshot of the serial printing out the sensor values and then converting them to inches and centimeters. The sensor range reads as 120 - 5000 CHECK #, which is about 1 cm to 3 ft.


I first tested the ultrasonic sensor by itself using a code I found online, which showed me how to properly wire it and then also look at its reading through the serial. Ultrasonic sensors work kind of like echolocation, they send out a ping which will hit an object in front of it and then come back to the sensor. It measures the speed of the sound traveling to figure out distance. The peripheral scope is quite narrow, so the sensor will not detect anything coming from the side, however its frontal range is quite wide, being able to see as close as centimeters in front of it to as far as 3 feet.


For the code, I used different if statements to give the sensor thresholds for each LED. The result is that if the sensor detects an object very close it displays red, progressively further is yellow, and then finally green. The colors are symbolic to represent appropriate distance if you are respecting someone’s personal space.


After packaging the sensor, LEDs, and Arduino into an enclosure, the program really comes to life! See how I made the enclosure on my Fab blog.

Meet BubbL: The Personal Space Robot.


BubbL in action! Sound on to hear the constant ping of the ultrasonic sensor.

Interactive Technology Observation by Maya Pruitt

Observation – Pick a piece of interactive technology in public, used by multiple people. Write down your assumptions as to how it’s used, and describe the context in which it’s being used. Watch people use it, preferably without them knowing they’re being observed. Take notes on how they use it, what they do differently, what appear to be the difficulties, what appear to be the easiest parts. Record what takes the longest, what takes the least amount of time, and how long the whole transaction takes. Consider how the readings from Norman and Crawford reflect on what you see.

As a Native New Yorker, I chose an infamous piece of interactive technology to observe: the MTA turn style. How it is used is fairly straight forward – swipe your Metrocard through the card reader and if you have a viable fare, you are granted passage.

However, rarely does it work that simply. It is almost as if you need to have the “magic touch” or have lived in NYC for so long you’re just “used to it”. As I observed, I saw many people swipe incorrectly, and the machine gives you a little lit up message like “Swipe again” or “Swipe again at this turnstyle” (which could probably be easily confused). The biggest source of confusion I noticed, was that the turnstyle makes a sound upon swiping, but this sound doesn’t change if its a good or bad swipe, thus, becuase commuters are often in a rush, they won’t see the small message and the sound indicates a swipe so they will go through the turn style with fortitude, only to be stopped like a game of red rover. And then they have to start the process over with a weird look back but with one foot forward. It’s awkward, it can be painful, and it ends up being inefficient.

MTA, may I advise a tap system.

ELECTRONICS LABS: Light 'em Up! by Maya Pruitt

This week in physical computing we began to experiment with electronics, learning about circuits and different components. Using an Arduino, a microcontroller that connects to the computer, as my power supply, I tested different ways to wire an LED light bulb on a breadboard.

The breadboard allows me to connect wires and build circuits without having to solder (connecting wires with melted alloy – a more permanent connection). I especially wanted to get my hands on using the Arduino instead of just a battery or direct current power supply, so I could see how coding will play into mix.

Getting an LED to light up

A seemingly simple task, the first experiment was to light up a bulb. As I had learned from flashlight making this requires a circuit to carry electric current to the bulb and pass through to the ground. However, this exercise makes one delved deeper. LEDs only require a certain amount of voltage to light up, about 3 volts, too much voltage will actually make them burn out. This is where voltage regulators and resistors come in – to reduce the passage of current.

For this circuit, the Arduino allows us to eliminate the voltage regulator because we have a couple options of voltage we can output. By using the 5V pin and a 220 Ohm resistor, we reduce the voltage to an appropriate amount for the LED. Making sure all was in its proper place and using simple code, the light turns on and can even blink!

 Me on Snapchat like…

Me on Snapchat like…



LED with Switch

A switch means you can essentially break the circuit and put it back together at a push of a button. The component used here is literally a “push button”, so when held down the current can pass through the whole circuit. When the button is released the circuit is broken.


Added a second LED, so they both light up with the switch.


Using a potentiometer

A potentiometer is a dial that controls the input of current. When turned all the way up, all 5 volts can pass through the circuit, turned down and the voltage will decrease eventually to 0. When connected to an LED, the potentiometer acts as a dimmer. When turned to 5V the LED is at its brightest. When the potentiometer is turned down, the light gradually dims until it turns completely off.


Switches in parallel

This wiring is kind of like a tree diagram. The power supply splits off into different branches, providing the same voltage but in different directions. With switches wired in parallel, any switch can turn the light on.


Switches in a series

This means the current travels down the line. The LED won’t light unless all switches are turned on at the same time.


Making my own switch

The possibilities for this were truly endless. A switch just needs to be something that completes the circuit. Since copper is super conductive, I decided to make my switch out of two pennies. There was a time we considered pulling pennies from circulation, so why not make it into something useful. Makes cents to me!

lol I’m sorry I’m done. k bye.


jk, final thoughts:

This lab was very exciting. It’s amazing to see how simply moving wires, pins, and components can make different things happen. I cannot stress enough how important it is that everything is wired correctly. Often one pin placed in the wrong row on the bread board was the culprit for something not working, and it could potentially damage everything. Lastly, the Arduino shows how something can become an extension of the computer. It takes information from my laptop and effects something outside the screen in the physical world. Sure, it was just lighting up LEDs and making switches, but I can definitely see how physical computing could have a larger impact and truly opens up the possibilities of technology and interaction.