ENGAGE YOUR SENSES – CELIA FORSTER – COSSOVICH
CONCEPTION AND DESIGN:
I recall visiting a science museum when I was younger and being enthralled by an exhibit that relied on the user’s sense of smell to have its desired effect. As someone with a particularly strong sense of smell, my daily life always seems to involve it in some way. So while having a conversation with a friend of mine who suffers from colorblindness, my mind immediately went back to my fascination with scents. In my preliminary research for the final project, I discovered some art installations that involve scent, most notably ‘While nothing Happens’ by Ernesto Neto. Seeing this made me realize that although harnessing scents in a project may be difficult, it would not be impossible. These moments were the inspiration behind the concept of Engage Your Senses.
A major part of designing Engage Your Senses was making sure it accomplished the task of blowing a scent at the user. Because scent is a relatively hard substance to control, there were many doubts as to how to make this possible. I decided on using fans that activate when a button is pressed for the selected color. During user testing, the main concern was that the opening for the scent to exit was not at an accessible height or angle for users to experience. This prompted the final design to feature tall columns that held the fans at a higher height. Another concern was that using so many different scents at once would overwhelm the user and they would lose the ability to differentiate between the scents. After doing some research, I learned more about the use of coffee beans as an olfactory palate cleanser, which inspired the addition of an “eraser” function that simultaneously blows the aroma of coffee towards the user. I think the adaptations made after user testing reflected constructive feedback and brought a more effective and user-friendly final design.
FABRICATION AND PRODUCTION:
The original design of Engage Your Senses was not too far off of the final design, but it underwent some extreme changes along the way. One major decision during the fabrication process was the question of how to successfully carry an aroma to the user. I originally intended to use small DC motors and fans to push the scent to the user as they drew with a selected color. But fearing the effectiveness of these fans, I changed my plan to somehow use a small perfume bottle and a servo motor to spray a mist at the user. While this would have certainly been effective, it also seemed impossible, as the small servo motors we had were not powerful enough. This took me back to my original design of using fans, and it proved successful in the end. After switching the setup from Processing to Arduino communication to Arduino to Processing communication, the implementation of buttons was necessary to control color selection. I decided that making a box with buttons would be the most user-friendly way of doing this. One thing that I wish I would have changed was making the buttons act as a toggle switch. In my final design, the user had to hold down the button to make the fan and drawing functions work. This seemed to confuse many users during the final presentation, and in hindsight should have been changed.
Another major fabrication component of Engage Your Senses was how to create strong enough scents. My first instinct was to use essential oils in some way, as they are very concentrated liquid aromas, and this ended up working quite well when spraying a cotton pad and positioning it in the fan’s path. Overall, the fabrication of this project was not overly complicated. I did not end up using any sensors, as the buttons were the main control component paired with a wireless mouse to draw on the screen. The fabrication tasks were very evenly divided between myself and my partner, Derek. I was mainly responsible for writing the code and designing the visual aesthetics of the project. Derek worked hard to build a functioning circuit and utilized the laser cutter to create wooden boxes that would create a stable structure for the project. Because we have different strengths, we were able to work well together to construct a fully functional project.
SKETCHES

CONCLUSIONS:
The main goal for this project was to make a creative and interactive device that would be fun for anyone to involve another sense in a basic process, but would also be of use to people that cannot differentiate colors. I think that through my hard work and consideration of others’ suggestions, I achieved this goal by creating a successful project. My expectation when making this project was to see users drawing on the screen while also experiencing interesting scents. I hoped that this combination of senses would be something new and something that was exciting and fresh. When watching users interact with Engage Your Senses during the final presentation and during the IMA show, I was delighted to see people genuinely enjoying the time they spent with my project. Many users had smiles on their faces as they experimented with the project and discovered how it worked. As the semester concludes, I think my definition of interaction used throughout the semester truly fits the manner in which the user uses Engage Your Senses. Without the user’s selection of colors or movement of the mouse, nothing would happen. It requires the user to physically interact with various components to truly demonstrate its features. If given more time, I think the main thing that I would do is develop the drawing component to have more of an objective. Many users seemed confused as to what to draw, and while I thought just “drawing for fun” was a valid activity, I now think that I would have made it more of a game if I had more time.
The process of making this project also presented many challenges, which taught me the value of patience. Sometimes, silly errors occur, and rather than become overwhelmed, it might just take adjusting the position of a wire to return it to its functioning state. Another thing I learned about myself in the design and production process was that I can be slightly uptight. Working with a partner, I learned the importance of compromise and understanding that perfection is not the most important in the end. Because this project required many hours of work, seeing the successful completion made me appreciate my own hard work and that of my partner’s. While it is a relief that it is completed, I really did find enjoyment in its creation.
I think this project truly did live up to my expectations and by going outside the box of traditional creativity, presents a fresh and exciting alternative to traditional digital drawing interfaces. By combining different human senses to enhance user experience, I can see this concept being developed and replicated in the future for more inclusive product design. Whether it’s visual or hearing impairment, I think utilizing things like scent could allow everyone to feel included and still enjoy simple experiences that are so accessible to able-bodied people.
TECHNICAL DOCUMENTATION:
ARDUINO:
// IMA NYU Shanghai // Interaction Lab // For sending multiple values from Arduino to Processing void setup() { Serial.begin(9600); } void loop() { // to send values to Processing assign the values you want to send //this is an example int sensor1 = analogRead(A0); int sensor2 = analogRead(A1); int sensor3 = analogRead(A2); int sensor4 = analogRead(A3); // send the values keeping this format Serial.print(sensor1); Serial.print(","); // put comma between sensor values Serial.print(sensor2); Serial.print(","); // put comma between sensor values Serial.print(sensor3); Serial.print(","); // put comma between sensor values Serial.print(sensor4); Serial.println(); // add linefeed after sending the last sensor value // too fast communication might cause some latency in Processing // this delay resolves the issue. delay(100); // end of example sending values } PROCESSING:
// IMA NYU Shanghai // Interaction Lab // For receiving multiple values from Arduino to Processing /* * Based on the readStringUntil() example by Tom Igoe * https://processing.org/reference/libraries/serial/Serial_readStringUntil_.html */ import processing.serial.*; PImage photo; import processing.sound.*; int NUM_OF_VALUES = 4; int sensorValues[]; String myString = null; Serial myPort; void setup() { //stroke(0); strokeWeight(30); //noStroke(); //textSize(50); //fill(0); noStroke(); fullScreen(); photo = loadImage("final backgrounda.jpg"); image(photo, 0, 0,width,height); setupSerial(); } void draw() { getSerialData(); printArray(sensorValues); if (sensorValues[3] > 100) { // A3 COFFEE RESET image(photo, 0, 0,width,height); } if (sensorValues[1] > 400) { // A0 LAVENDER noStroke(); fill(169, 121, 211); circle(1126,462,75); noFill(); stroke (169, 121, 211); } else if (sensorValues[0] > 400) { // A1 STRAWBERRY noStroke(); fill(226, 109, 109); circle(1126,462,75); noFill(); stroke (226, 109, 109); } else if (sensorValues[2] > 400) { // A2 ORANGE noStroke(); fill(247, 174, 77); circle(1126,462,75); noFill(); stroke (247, 174, 77); } else if (sensorValues[0] > 400 && sensorValues[1] > 400) { // LAV + STR noStroke(); fill(193, 108, 187); circle(1126,462,75); noFill(); stroke (193, 108, 187); } else if (sensorValues[2] > 400 && sensorValues[1] > 400) { // LAV + ORANGE noStroke(); fill(191, 144, 151); circle(1126,462,75); noFill(); stroke (191, 144, 151); } else if (sensorValues[0] > 400 && sensorValues[2] > 400) { // STR + ORANGE noStroke(); fill(232, 121, 77); circle(1126,462,75); noFill(); stroke (232, 121, 77); } else if (sensorValues[0] > 400 && sensorValues[2] > 400 && sensorValues[1] > 400) { // ALL noStroke(); fill(214, 138, 144); circle(1126,462,75); noFill(); stroke (214, 138, 144); } else { fill(255); noStroke(); circle(1126,462,75); } delay(100); if(mouseY > 545 && mouseY < 1300 && mouseX > 295 && mouseX < 1950) { line(mouseX,mouseY,pmouseX,pmouseY); } } void setupSerial() { printArray(Serial.list()); myPort = new Serial(this, Serial.list()[0], 9600); myPort.clear(); myString = myPort.readStringUntil( 10 ); // 10 = '\n' Linefeed in ASCII myString = null; sensorValues = new int[NUM_OF_VALUES]; } void getSerialData() { while (myPort.available() > 0) { myString = myPort.readStringUntil( 10 ); // 10 = '\n' Linefeed in ASCII if (myString != null) { String[] serialInArray = split(trim(myString), ","); if (serialInArray.length == NUM_OF_VALUES) { for (int i=0; i<serialInArray.length; i++) { sensorValues[i] = int(serialInArray[i]); } } } } }



















