Response: A Brief Rant on the Future of Interaction Design

Despite how it appears to the culture at large, technology doesn’t just happen. It doesn’t emerge spontaneously, pulling us helplessly toward some inevitable destiny.

In his Brief Rant on the Future of Interaction Design, Bret Victor urges people to move away from extrapolation of previous models of technology design, namely the “Pictures Under Glass” model which most of our hand-held devices and computers are structured around. He proposes that we should instead move towards a future that does not, in his words, ignore our hands. Most of us have a similar vague idea of what future technology is going to look like, and this is aided by what we see in different media such as popular futuristic films, or infomercial-style clips of technological breakthroughs. A lot of it is just a regurgitation of the technology we already have, recreated to fit other surfaces. Victor believes that we should instead create models that exceed our limited knowledge of human capability, but also models that fit right within the knowledge we currently have, which is that our hands are massively tactile and the visual component of our interactions with the world is minimal in comparison. More and more of our interactions with technology are becoming visual, and in a world where everything else we engage with is three-dimensional, this creates a gap between our sensory capabilities and the capabilities of the technology we’re designing. I must admit, this is something I have never really thought of- which is ultimately just proof of how seamlessly the culture of “pictures under glass” has become integrated into our lives.

Victor’s responses to some of the comments people left underneath his rant post were amusing, my favorite comment was “Yeah! iPhone bad! iPad bad!”, because his response to it really put things into perspective. He goes on to say how iPads are good -for now- because they are truly revolutionary for our time. What’s bad is that if in twenty years we still had the same model of the iPad with a few new functions and perhaps a new surface. I wholeheartedly agree with this statement, especially when looking back at the history of most technologies we use today. Many things started out as revolutionary but that did not stop people from searching beyond that.  What’s truly great is that we have control over our future, and as Victor said, it  “doesn’t emerge spontaneously, pulling us helplessly toward some inevitable destiny”. Through visions, research, multiple trials, and errors- we are able to control that destiny (at least for the most part). Therefore, I hope that our technology will soon evolve to encompass a wider range of our human capabilities, enhancing our lives in ways that were not previously possible.

Week 4 Circuits & Code – Analog Write, Servo, Buzzer, Tone Library

 

const int knobPin = A0;
const int ledPin = 3; // be sure to use a PWM pin!

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the potentiometer value
  int knobValue = analogRead(knobPin);
  
  // analog write takes values between 0 and 255
  // map the knob value to be be between 0 and 255
  int brightness = map(knobValue,0,1023,0,255);

  // use the brightness value for the LED analog write
  analogWrite(ledPin, brightness);
}

 

 

#include <Servo.h>

Servo myServo;

const int knobPin = A0;

void setup() {
  // attach the servo to pin number 9
  myServo.attach(9);

}

void loop() {
  // read the potentiometer value
  int knobValue = analogRead(knobPin);
  
  // the servo only moves between 0 and 180
  // map the knob value to be be between 0 and 180
  int angle = map(knobValue,0,1023,0,180);

  // use the mapped angle to set the servo's rotation
  myServo.write(angle);

  // wait a very short bit for the servo to move to the location
  delay(15);
}

 

 

int buzzerPin = 4;

void setup() {
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  // arguments are pin, frequency, and duration
  tone(buzzerPin, 440, 200);
  // since the tone is lasting 200 milliseconds
  // delay for 400, so 200 on and then 200 off
  delay(400);

  // you could also do without the duration argument if you wanted a steady tone:
  //  tone(buzzerPin, 440);
}

Install the Tone Library by Brett Hagman to use more than one Buzzer:

// install the Tone Library by Brett Hagman to use multiple buzzers

#include <Tone.h>

// arrays to hold the note values
int notes[10] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_D5, NOTE_E5};

Tone player0, player1;

// length in milliseconds
int duration = 250;

//variable to change note for player0
int whichNote = 0;

void setup() {
  // use pin 5 for buzzer 0
  player0.begin(5);
  // use pin 6 for buzzer 1
  player1.begin(6);
}

void loop() {
  // player0's notes change according to the number in whichNote
  player0.play(notes[whichNote], duration);

  // player1's note stays the same
  player1.play(notes[9], duration);

  // set whichNote to equal itself + 1
  // then modulo that number by 8, which creates a loop between 0-7 (8 digits)
  whichNote = (whichNote + 1) % 8; //do plus 1 to go up major scale, try others numbers like plus 3

  //wait for the notes to stop playing before going to the next note
  delay(duration);
}

 

 

 

Response to the Response for A Brief Rant on the Future of Interactive Design

Some interesting points Victor made about others’ responses are:

iPad is good: After his first blog post, I did not expect him to say that iPads/iPhones are good for now. It seemed that he was against the whole idea of a screen, but regardless, it makes me question what the timeline is for when a certain technology is no longer innovative. At what point do we say a screen is not enough?

What about voice: I’m not sure when this post was made, but I wonder what Victor’s opinions on recent technologies like Alexa are because the technology definitely fit his idea of interested using “tools for creating and understanding.”

What about brain interfaces: I agree with Victor about how computers are pretty much controlling our body and how our daily activities will soon be dominated by computer controlled in some way or another. It’s what many people are worried about, but how does Victor want to address this? What future interaction design can be made in the future that would stop this from happening?

My child can’t tie his shoelaces, but can use the iPad: I felt the point he made here was a harsh. He says that using screen technology is similar to restricting literature to Dr. Seuss’s vocabulary as if that was bad. He says that a “fully-functioning adult human being deserves so much more.” However, isn’t the whole point of interactive designs to be simple and not overdone? Humans are looking to make their life simpler; a lot of people would rather read Dr. Seuss’s book than to have to read Shakespeare.

A Brief Rant on the Future of Interaction Design Response

Bret Victor’s post about the future of interaction design was very compelling to me because it made me question what the future looks like. I’ve always thought “What else can we make when everything’s already been invented?” I think the reason why developers are creating more and more apps through a screen is because there’s so much more you can create on phones, tablets, etc. Even within his own post, Victor does not mention any technology that’s not Pictures Under Glass, but I acknowledge the fact that he is writing this post to inspire younger generations to think of something more revolutionary than what is currently thought of as the future of interaction design. 

I believe the future is the screen because outside of that, what can you really create? I agree with Victor’s point about how these screen technologies leads us to lose connection with the task that we are performing. Isn’t that somewhat the purpose of technology though? It’s suppose to make your life easier; what if you’re too lazy to use your hands? Some people want things done with a swipe of the finger.

I respect what Victor has to say about the future of interaction design, but I really don’t know what else to expect than a screen that can do so much more than what we humans are capable of.

Fortune Cookie(?)

The title of this blogpost may be a little misleading, but the process behind bringing my idea to life might give you some clarity regarding the naming. So when I was thinking “unexpected”, I immediately thought of magic eight balls and fortune cookies, with their random phrases and words of wisdom that I never seem to anticipate. I saw the box displayed in the image below, when I was walking around the lab; and it was as if the idea was calling to me.

Initially, I had considered using a temperature sensor, and have the different members of the audience touch it; which would then detect their body temperature and display a random statement (similar to the ones we find in fortune cookies). However, there were several flaws in that logic, since most people have similar body temperatures, and the changes in the temperature sensor were too minuscule to alternate between statements. I then decided to change to a different analog sensor; the photoresistor. the photoresistor was easier to operate, since it encompasses a wider range of values when exposing it to light or darkness. But, I wasn’t able to devise a way to adapt the fortune cookie scenario to the function of the photoresistor, and instead opted for a different narrative. I will hopefully be able to implement and develop this idea further with more knowledge of code.

https://youtu.be/I_a97QBo_2s

https://youtu.be/cwU0_0GHOEk

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   //defining lcd pins

int sensorValue = 0; // variable to store the value coming from the sensor
int sensorPin = A0; // select the input pin for LDR
 
void setup()
{
  pinMode(3,INPUT);      //setting arduino pin3 as input
  Serial.begin(9600);   // opens serial port, sets data rate to 9600 bps
  lcd.begin(16,2);      // set up the LCD's number of columns and rows
  
}

void loop()
{
sensorValue = analogRead(sensorPin); // read the value from the sensor
Serial.println(sensorValue); //prints the values coming from the sensor on the screen


//display text on lcd
if (sensorValue < 50) {
  lcd.clear();
  lcd.print("Never leave me");
} else {
  lcd.clear();
  lcd.print("This is why I");
  lcd.setCursor(0,2);
  lcd.print("have trust issues");
}

// Turn off the display:
  lcd.noDisplay();
  delay(100);
  // Turn on the display:
  lcd.display();
  delay(1000);

}

 

The Psychopathology of Everyday Things – Reading Response

The Psychopathology of Everyday Things is a book written by Donald Norman, about the importance of design in facilitating the communication between users and the object or service. Seeing as how the book was written by a cognitive scientist, it was interesting to see how different theories and concepts of psychology determine what “good” or “bad” design is. What I got from reading the first chapter, is that Norman is attempting to discuss the numerous design principles that come into focus when a certain design malfunctions.

Norman employs the terms affordances and signifiers, and assigns them great value as essential concepts in the creating a design experience tailored for the user. Norman’s in-depth explanation of these concepts, made me consider how every object we interact with on a daily basis, has a perceived or unperceived affordance, and I immediately thought back to all the times I fought with doors; not intuitively knowing whether to pull or push it on the first try. This brings Norman to his next essential concept of the inclusion of adequate signifiers, which are meant to help facilitate the user experience and make it easier. The author elaborates on the perceived shortcomings some signifiers have, and how they can often be misleading to users. Norman also emphasises the importance of having signifiers, and how they help construct a “good” design or user experience. This is due to the fact that good design predominantly requires the presence of clear communication of purpose and structure to the user.

Another vital challenge to the formation of a cohesive user experience is the mapping and feedback inherent to a specific object or design. Mapping tackles the connection and correspondence between the different elements and controls within a certain design – which ultimately makes it easier to navigate the use of a product. Similarly, feedback refers to designing a system that communicates the result of an action to the user. Adequate and vivid feedback facilitates the user experience, while poor feedback can be misleading and disconcerting to the user.

All in all, it was evident in the reading that Norman is attempting to create an analysis of all the design concepts and elements that are crucial for establishing a cohesive and productive user-based experience. Norman also discusses the importance of considering behavioral psychology, ergonomics and several design principles, even when designing the most basic objects.

The Design of Everyday Things | Response

Don Norman sure does have a unique tone. His semi-sarcastic style of writing this piece, “The Design of Everyday Things” was informative, yet also entertaining and it provided a good amount of insight into the design of things we interact with everyday.

One of the things I could relate to was his quote, “We have to accept human behavior the way it is, not the way we wish it to be.” I really struggle with realizing that how humans act usually does not correlate with how they should act. I have never considered this from the design standpoint, but I can imagine it would be particularly problematic to design something that only an ideal society could benefit from.

Another section that stuck with me was his thoughts on a human-centered design. I agreed wholeheartedly with his idea that the design should be based around humans and their needs. However, like we discussed in class today, I disagree that good designs produce pleasurable experiences. I think that the design should go unnoticed. I believe this because of how fast-paced the world has become. In my experience, I don’t have time to really admire or enjoy the design of an object because I am too busy thinking about four other things or focusing on getting the function of the design completed. We don’t have time to admire how the design works, we just need it to work. Unfortunately, that means the designer is a life that can often go unpraised.

From reading this, I will definitely pay more attention to making my designs human centric and focused on mapping. Incorporating things like feedback and conceptual models will be an interesting thing to develop into my own work, as I figure out my design style and how to best make a functional device.

Danger Box

I designed the danger box to be misleading on multiple levels, starting with the name. Like the Masochist’s coffee pot we read about in this reading, this device is specifically designed to do what the user did not intend to do. Most of the device’s wiring is hidden within the box, so any user who comes by without knowing what it does can receive no clues from it.

I used mapping as a diversion by using the yellow LED light as a moving piece instead of a light, as it was intended to. this had the affect of surprising the user.

Another diversion I used was the copper tape on the top of the box that looks like it must be connected to make something in the box work.

The cumulation of all these things is an experience in which a user expects to press on a button or light sensor, expecting something to happen like the light turning on, but something completely contrary to that happens.

int solenoidPin3 = 3;
int solenoidPin4 = 4;
// Solenoid Pins
void setup() {
  // put your setup code here, to run once:
  pinMode(solenoidPin3, OUTPUT);
  pinMode(solenoidPin4, OUTPUT);
  //makes solenoids output
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  int knobValue = analogRead (A0);
  // grabs data from light sensor reading
  Serial.println(knobValue);
  // shows light sensor reading
  if (knobValue  > 650) {
    digitalWrite(solenoidPin3, HIGH);
    digitalWrite(solenoidPin4, LOW);
  }
  if (knobValue < 650) {
    digitalWrite(solenoidPin3, LOW);
    digitalWrite(solenoidPin4, HIGH);
  }
  // this section tells the solenoids to move depending on the light that the light emitter is receiving
}

THE READING:

The reading reminded me of the podcast 99 Percent Invisible (which I listen to religiously). It is a podcast about design and our place as humans within the world of design. There were two things that particularly stood out to me in the text.

  1. Everything in our human world is designed, but not all design is good. This is why it is necessary for designers to act as an intermediary between engineers and the rest of the world.
  2. I want to reiterate just how much I loved the Masochist’s Coffeepot. It is a  beautiful art piece because it flips design on its head, taking something well designed and reverse designing it so it no longer works.

heart beat monitor – love story part 2

This week’s prompt was to have something unexpected in our project, to have an element of surprise. But since we were specifically asked for a surprise, anything we make will not be a surprise, as it would be expected! This was such a dilemma for me. Therefore I decided to tweak and change the use of my previous project, since my audience already knew how it worked, to create an unexpected surprise.

Valentine’s day is over. Now, even though my project might look the same, it is no longer a tool showing a person’s love to you, but has transformed into a heart rate monitor. The heart beats go faster and faster with pressing the button, but when a hand is held over the light sensor, the heart stops beating and creates the beeping sound of a heart rate monitor when a heart stops. Many love stories, such as Romeo and Juliet, end with death, this is one of them.

For this project (like love story part 1), I used 10 LED lights, and put them into a piece of poster board in the shape of  heart. I used different circuits for each LED as well as the button. At first I tried to solder the LEDs to the wires before poking them into the surface, but then found that this made the LEDs not stand up straight and move around due to the large hole. Therefore I decided to solder the LEDs after having put them into the board. I soldered the power and ground side of each LED separately, therefore using a total of 20 wires for the soldering. I considered having the button on the board too but decided that I want it to be eventually framed and still be able to use the button, so it would be better to have it separate. In order to make them fixed on the board, I glue gunned the LEDs from the back on to the board.

For this project I adjusted the code, and wiring, in order to add a light sensor and buzzer and have the light sensor turn off the lights and turn on the buzzer.

int ledPin1 = 3;
int ledPin2 = 6;
int buttonPin = 2;
int index = 0;
int prevButtonState = LOW;
int lowDelay[4] = {0, 200, 100, 30};
unsigned long toggleTime = 0;
int triggerInterval = 500;
int buzz = 13;

//  Blink

//  Turns an LED on for one second, then off for one second, repeatedly.
//
//  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
//  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
//  the correct LED pin independent of which board is used.
//  If you want to know what pin the on-board LED is connected to on your Arduino
//  model, check the Technical Specs of your board at:
//  https://www.arduino.cc/en/Main/Products
//
//  modified 8 May 2014
//  by Scott Fitzgerald
//  modified 2 Sep 2016
//  by Arturo Guadalupi
//  modified 8 Sep 2016
//  by Colby Newman
//
//  This example code is in the public domain.
//
//  http://www.arduino.cc/en/Tutorial/Blink
//*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  for (int i=3; i<=12;i++){
    pinMode(i,OUTPUT);
  }
  pinMode (buttonPin, INPUT);
  Serial.begin(9600);
}

// the loop function runs over and over again forever
void loop() {
  int currentButtonState = digitalRead(buttonPin);
  int knobValue = analogRead(A0);
  Serial.println(knobValue);

if (knobValue <50) { 
  index = 0;
  }
  
  if (currentButtonState == HIGH && prevButtonState == LOW) {
    index = index + 1;
    if(index >= 4){
      index = 0;
    }
//    Serial.println(index);
  }

  if(index != 0){
    for (int i = 3;i<=12;i=i+1){
      digitalWrite(i, HIGH);
    }
    
    delay(100);
  
    for (int i = 3;i<=12;i+=1){
      digitalWrite(i, LOW);
    }
    
    delay(lowDelay[index]);
    
    for (int i = 3;i<=12;i++){
      digitalWrite(i, HIGH);
    }
    
    delay(100);
  
    for (int i = 3;i<=12;i++){
      digitalWrite(i, HIGH);
    }
    
    delay(1000);
  
    for (int i = 3;i<=12;i++){
      digitalWrite(i, LOW);
    }
    
    delay(lowDelay[index]);
    
    for (int i = 3;i<=12;i++){
      digitalWrite(i, HIGH);
    }
    
    delay(100);
    
    for (int i = 3;i<=12;i++){
      digitalWrite(i, HIGH);
    }
  } else {
    for (int i = 3;i<=12;i++){
      digitalWrite(i, LOW);
    }
  }
  prevButtonState = currentButtonState;
  
//    for (int i = 3;i<=12;i++){
//     if (knobValue == 0)
//       { 
//        digitalWrite(i,LOW);
//       }
//    }

    int LIGHT = analogRead(13);
    if (LIGHT < 100){
      tone(buzz, 3000, 50);
    }

}