Final Project ICM

For my final project in ICM I chose to make a “dream machine”. Since a very early age I can remember myself having dreams, dreams that sometimes translated literally and other times metaphorically. It feels like having a second life somewhere further away where magic can occur at any given time.

For that reason I want to try and build a program where the user can interact with different options either through: creating objects, shapes, changing colors,  input sound or create their own sound, use video and finally play with different variations of text.
At the end of the interaction the user should have created a “dream” based on his preferences at the time. My intention will be for the user to feel like they are experiencing a live dream in a way. The “dream” should be at all times “moving” and not being a static one.  Lastly, the user can choose to save the document and/or email it to whoever they feel like, or even use the created “dream” and have it sent for VR viewing.

Some thoughts on the interaction menu:

  • Buttons and sliders for object/shape/size/color
  • Predetermined sounds choosing
  • Record Sound / Play your own
  • Record Video
  • Reset option
  • Save / Email option


Final Project PComp

After several weeks of learning and experimenting with physical computing, the time has come to put all our knowledge towards our final project. There are many ideas and paths that I would love to follow but will limit myself to just a few.

Dream making machine:
– The purpose of this machine is to be able to make you experiment with art, music, and literature and combine all of the three in order to get some kind of result.

Robot interaction:
– A robot that will be able to follow instructions via a specially modified controller. Its main attributes aside from moving in all directions will be to interact and perform some simple tasks when asked to.



Following our last class, we had the opportunity to present our ideas in front of our classmates and get some feedback on how to proceed with our project and what problems might occur.

I will be continuing my final project with the ‘Dream Machine’ idea. Below are some sketches that depict a first look as to how my machine will look like and interact. Also there is sketch that will be used for play testing based on a cardboard.



Continuing into the more technical part of the project as well as the outline of what the machine will offer, a system diagram, a timeline and bills of materials diagram has been made.


img_4056 img_4057

In order to figure out which sensors to use for combining music and sketching, some early testing needed to be done as seen below:

Photoresistor Light Sensor

Short Flex Sensor

Furthermore, some more progress on the P5.Js sketch which will be incorporated into the whole interactive experience:


Getting close to the delivery of the final project, it is vital to make sure which functions are going to stand out and what role each function will serve as. It was decided after some testing that using a keypad is a more convenient approach and has more potential than just using buttons or other sensors. With the help of the mouse and possibly a potentiometer the dream machine will be complete at this stage.

Mastermind Game

For our Physical Computing midterm we chose (paired up with Swapna) to work on the “mastermind” game and instead of using your mouse to interact, use actual physical buttons. These buttons (5) will recreate four colors: white, red, green, blue and one enter button. The rules are exactly the same as of the original mastermind game but instead of using all eight colors we limited ourselves to four. We will create a small box and inside of it fit the buttons and the Arduino micro-controller.

Getting familiarized with our initial thoughts on the mastermind game made us feel very positive about the upcoming challenge. We thought that the Mastermind project wouldn’t prove too difficult after all. Wrong! From the slightest mistake in wiring till coding the game in p5.js proved to be a big challenge. Some initial sketches and wiring attempts are shown below:

img_3924img_4008 img_4006 img_4003

Once we figure out the way on making sure that the wiring was correct for the initial button, we started to add the succeeding two.

Again, it proved to be a bit harder than we thought. Some problems with the breadboard and wiring backtracked us a bit but after successful logical thinking we were able to overcome the problem. Once we were done with the first part of the physical side of the game we moved on to programming the game. The process was a very difficult one and a lot of hours were spent in order to figure out the correct logic for the game. Gladly with patience and some help from other ITPers we were able to successfully program the game.

screen-shot-2016-11-02-at-4-05-40-am screen-shot-2016-11-02-at-4-05-59-am

What was left now was to make the physical side of the game interact with our computer and the game logic. We started testing out the game with one button in order to make sure that the coding and logic is right and then move onwards. For that process we encountered some problems as shown below:

The problem for the multiple squares shown was that we haven’t used the call and response (handshaking) flow control. Once we were able to solve the problem we experimented with the three buttons. Again some problems arise, which later we realized originated from the wiring and the not so reliable buttons.

For the final part we wanted to give our game a better design and try to keep all our components hidden. We initially took a cardboard and tested some laser cutting to set the speed right. Once we were able to determine that we engraved the word mastermind on our new cardboard.


We made some holes for the buttons and LED to squeeze in and a side hole for the usb. Last step was to expand our wiring so it can reach the bottom and top of the cardboard and thus we did some soldering.

img_3986 img_3987img_3992

Finally we were able to deliver our midterm project and the final results look like this:


What we learned through the whole process was that even the easiest of wiring or coding can prove a hassle. And for that you need to make baby steps every time to make sure everything works and functions properly. Technology can never be 100% reliable and thus you will always need to adjust for that percentage missing.