Response on Design Meets Disability

In the reading, we see that the application of design for disability in the past had a more focus on being invisible. The concept of fashion has just started to appear in the recent decades on these untouched fields. However, it was fascinating to find out the progression of how glasses turned into a wearable from usable and people who wear glasses as wearer rather than patient. The author mentions in the reading that for an eyewear, “the words design and disability are mentioned in the same breath … the exemplar of a product that addresses a disability, yet with little or no social stigma attached” (15). The integration of design in these tools for disability has made the them into items of fashion – where now people use glasses as a fashion item to define themselves. Also, it was interesting to see how, after eliminating the stigma behind glasses, our society presents the old ugly criticized model as vintage and people go crazy for these glasses – once the stigma was removed, the old designs for disability were re-visited.

Good design often requires the courage to value simplicity over being “all things to all people” (85)

The author of this article tries to refute the concept of how products should be designed for everyone. The example of Leckey’s product showed a clear reason to how the attempt to fit everything in the design to satiate everyone can actually be detrimental to the original targeted group – especially in Leckey’s case of designing for disability. The author points out that “too much adjustability and modularity can result in a design that is visually complex … the equipment itself stigmatizes the kids among their new peers.” (76), which shows that it is “better to deny the user a feature that could have been useful, in favor of a better overall experience” (86).

The main comparison that popped in my head was the difference between the user interface of an iPhone and a Galaxy Series Phone. The number of functionalities in the galaxy phones win without doubt compared to the iPhone – but does everyone use the Galaxy Series? The answer would be no since most people would raise their hands for the iPhone due to its simplicity in UI, smoother UX, and lower learning curve – thus boosting the overall experience compared to the galaxy series..

Keeping the simplicity while maintaining the level of overall experience is a difficult task. And, it brings up the need for consistent communication between the users and the designers in order to attain this simplicity. As interactive media students, it is crucial for us to value simplicity to fit the target persona over use-for-everyone with chaotic functionalities. The “more” is not always good.

The Failure of the Snake

For this week assignment, I decided to build the classic Snake game that used to appear in all Nokia phones before the smartphones were invented. The Idea seemed simple at the beginning to create class Snake with the proper methods that allow the snake to move in a specific direction, eat the apple and increase its size and die if the snake clash against itself.  Creating the methods to move around and eat an apple were simple to make. The struggle came trying to build an increasing size method. When I was planning my algorithm I forgot that arrays cannot increase its size once the code is running, so the solution that I attempted to do was using ArrayList instead of arrays to keep the vector position of the snake. Unfortunately,  I was not able to make ArrayList work the way I wanted, Although I learned how to add and remove elements from ArrayList I did not find a function that Allowed to overwrite the values from the list without altering its size. And when I gave up trying to use ArrayList it was too late to design a whole new algorithm. But I decided to make a piece of art with the leftovers of my snake code.

Credits to this video of the  CodingTrain who helped me to be closer to achieving the game that I wanted to create. But if the purpose was to improve my OOP, it definitely worked.

int scl = 20;
PVector apple;


////////////////////////////////////OPP
class Snake{
int xspeed, yspeed, xdir, ydir;
int x,y;
int total;
PVector vec ;
ArrayList<PVector> tail;

 Snake(){
  x = 0;
  y = 0;
  xspeed = 0;
  yspeed = 0;
  total = 0;
 tail = new ArrayList();
 }

void update(){

  if (total == tail.size()){
 for(int i = 0; i<tail.size();i++){
    tail.remove(i);
  tail.add(i,tail.get(i+1));
  
 }
  }
 vec = new PVector(x,y);
 tail.add(vec);
 
 

 

 for (int i = 0; i< tail.size();i++){
   print("Snake",tail.get(i));
 }
 
  x = x+xspeed*scl;
  y = y+yspeed*scl;
  x = constrain(x,0,width -scl);
  y = constrain(y,0,height -scl); 
}

void show(){

   println("total",total);
   println("size",tail.size());
for(int i = 0; i<tail.size();i++){
  fill(random(255),random(100),random(50));
   rect(tail.get(i).x,tail.get(i).y,scl,scl);
 }
  fill(random(255),random(100),random(50));
  rect(x,y,scl,scl);
  
}
void setdir(int xpass,int ypass){
  xspeed = xpass;
  yspeed = ypass;
  
}

boolean eat(PVector pos){
  float dis = dist(x,y,pos.x,pos.y);
  if(dis<2){
    total++;

    return true ;
  }
  else{
    return false ;
  }
}

}
////////////////////////Main///////////////////////
Snake snake;
void setup(){
  size(640, 480);
  snake = new Snake();
  frameRate(600);
  pickLocation();
 
}

void pickLocation(){
  int cols = int(width/scl);
  int rows = int(height/scl);
  apple = new PVector(int(random(cols)),int( random(rows)));
  apple.mult(scl);
}



void keyPressed(){ 
int four = int(random(4));
  if(four == 0){
    snake.setdir(0,-1);
  }
   else if(four == 1){
     snake.setdir(0,1);
  }
   else if(four == 2){
     snake.setdir(-1,0);
  }
  else if(four == 3){
     snake.setdir(1,0);
  }
}



void draw(){
  background(255);
  keyPressed();
  snake.update();
  snake.show();
  
  if(snake.eat(apple)){
    pickLocation();
  }
  
  fill(254,0,101);
  rect(apple.x, apple.y, scl,scl);  
}

 

i loved this reading

Aaron, you really hit my interests with this one. Surprise, I do like other things other than theater! I grew up with a Speech Therapist Mother, so I was always tagging along to see her patients at work. She worked with children, so I would play with them and help with therapy when I could. Reading this really brought out my childish fun playing with those special needs kids.

I found a lot of connections between this reading and the one we read about how aesthetic can relate to function. How the more simplistic the design, the more aesthetically pleasing it can be and, therefore, it will perform its function better. These connections were great to find between the readings because it really brought together the concepts.

Another thing that fascinated me was the conflicting ideas of simplicity vs. universality and their constant struggle to dominate the world of design and engineering. On one hand, it makes sense to have one thing in your pocket that does every task for you. But then it also makes sense to have highly specialized objects that can perform the task perfectly. It’s a matter of prioritization: performance or space? Universal “platforms” may take up less space in your household than four different objects, but they may also perform the functions worse than the individual objects.

The reading also brought up the culture around disabilities and the progress that humanity seems to be undergoing in regards to such. For example, I didn’t even thin about having to wear glasses as a disability. But it is part of my identity and it’s true, I do look forward to getting new glasses every once in a while. But when I was younger (I got glasses when I was six) it was something I was shamed and ridiculed for. It’s incredible to see how far we’ve come in just the past decade. From bullying a child for wanting to see properly, to selling glasses with fake lenses. I hope this progress continues with the more apparent disabilities. And such, as this progress happens, how does the connotation of the disabilities change? I hope there will be less shame around the culture regarding them, but as for now, it’s already apparent that there’s been extreme progression towards acceptance.

I could probably write 2000 words on this reading about my thoughts and where my mind went while I read it, but I’ll stop here for your sake. I might even send the pdf to my mom!

Response

Graham Pullin’s “Design Meets Disability”

I found this reading extremely interesting because I had never given much thought to how applicable design (in terms of fashion not just functionality) is thought of in specialist products. To me, it seemed intuitive to focus on functionality as opposed to aesthetics when talking in context of disability. However, now that I’ve read this, it makes so much sense to me that fashion should be an integral part of a good design as it truly does explore freedoms beyond the constraints society may hold. Moreover, I strongly agreed with the authors point that discretion in such things just means we are ashamed of them, which should not be the case, e.g. the example of eyewear. I think functionality is of course very important but aesthetics are key too. Many specialist products are extremely intimate to their owners and are part of their identity and experiences.

Lastly, I really liked the author’s point about simple design not necessarily meaning easy design. I think this is something that I overlook a lot. A lot of work can appear simple on the surface but the mechanics behind it run very deep, inversely, some things may appear very complex but are in fact simple and I think that’s all up to how good the design is.

Coding a Game with OOP

I decided to create a (really) simple game using what we learned in Object Oriented Programing. This game’s logic basically entails using the space bar to move the ellipse in order to avoid the barriers or the lines. Yes, I made a very rudimentary version of Flappy Bird. It was… an experience. I learned how to create new objects using the function “new”,  calling functions from classes, and my favorite part – checking for collisions.

Prepare to be amazed:

Code:

int state = 0; 
int score=0;
bird b = new bird();
pillar[] p = new pillar[3];


void setup(){
 size(500,700);
 int i; 
 for (i = 0; i < 3; i++){
   p[i]=new pillar(i);
 };
}

void draw(){
  background(0);
  if (state==0){
    // intro state
    text("Click to Play",155,240);
    b.move(p);
  }
  
  else if (state==1){
    // start state 
    b.move(p);
    b.drag();
    b.checkCollisions();
    rect(20,20,100,50);
    fill(255);
    text(score,30,58);
  }
  
  else {
    // end state 
    rect(150,100,200,50);
    rect(150,200,200,50);
    fill(255);
    text("game over",170,140);
    text("score",180,240);
    text(score,280,240);
  }
  
  b.drawBird();
  
  for(int i = 0;i<3;i++){
    p[i].drawPillar();
    p[i].checkPosition();
  }
  
  stroke(255);
  textSize(32);
}
void mousePressed(){
  state = 1;
}

void keyPressed(){
  b.jump();
}

Class:

class bird {
  float xPos, yPos, ySpeed;
  bird(){
    xPos = 250;
    yPos = 400;
  }
  
  void drawBird(){
    stroke(255);
    noFill();
    strokeWeight(2);
    ellipse(xPos, yPos, 20, 20);
  }
  
  void jump(){
    ySpeed=-10;
  }
  
  void drag(){
    ySpeed+=0.5;
  }
  
  void move(pillar[] pillarArray){
    yPos+=ySpeed;
    for (int i = 0; i < 3; i++){
      pillarArray[i].xPos-=3; 
    }
  }
  
  void checkCollisions(){
    if(yPos>800){
      state = 2;
    }
    
    for (int i = 0; i < 3; i++){
      if((xPos< p[i].xPos+10&&xPos>p[i].xPos-10)&&(yPos<p[i].opening-100||yPos>p[i].opening+100)){
        state = 2;
      }
    }
  }
}
    

class pillar {
  float xPos, opening;
  boolean cashed = false;
  pillar(int i){
    xPos = 100+(i*200);
    opening = random(600)+100;
  }
  void drawPillar(){
    line(xPos,0,xPos,opening-100); 
    line(xPos,opening+100,xPos,800);
  }
  void checkPosition(){
    if(xPos<0){
      xPos+=(200*3);
      opening = random(600)+100;
      cashed=false;
    } 
    if(xPos<250&&cashed==false){
      cashed=true;
      score++;
    }
  }
  void reset(){
    state = 0;
    score=0;
    b.yPos=400;
    for(int i = 0;i<3;i++){
      p[i].xPos+=550;
      p[i].cashed = false;
    }
  }
}

 

 

 

Object Oriented Programming Art

For this week’s assignment, we were supposed to create something with OOP. I wanted to create some sort of meditative art work (e.g. snow/rain falling) but along the process of learning how to form a “class” and other programming, I made this. I kind of ended up liking this more (despite its lack of clear purpose).

Drop [] dropCollection = new Drop [70];

 
void setup() {
 size(400, 400);
 smooth();
 
 for ( int n = 0; n < 70; n++) {
 dropCollection[n] = new Drop (random(0,width), random(0,height));
  
}

 }
 
 
void draw() {
   background(187, 178, 255);
   
   for (int n = 0; n < 70; n++) {
   dropCollection[n].run();
   
   
 }
 
}
class Drop{

  float x = 0;
  float y = 0;
  float speedX = 2;
  float speedY = 5;
  float r;
  
  Drop(float _x, float _y) {
    x = _x;
    y = _y;
    r = 8;
    
  }
  
  void run(){
    display();
    move();
    bounce();
    gravity();
    
  }
  
  void gravity(){
  speedY *= 0.2;
  
  }
    
  void bounce() {
    if(x > width) {
      speedX = speedX * -1;  
    }
    if(x < 0) {
      speedX = speedX * -1;  
    }
     if(y > width) {
      speedY = speedY * -1;  
    }
        if(y < 0) {
      speedY = speedY * -1;  
    }
    
  }
  
 void move() {
    
  x += speedX;
  y += speedY;
  
  }
  
    void display() { 
    
    fill( random(255), random(255), random(255), random(255)); 
    noStroke();

    for (int i = 2; i < r; i++ ) {
    ellipse(x, y + i*4, i*2, i*2);
   

  }
  }
}

 

Response: “Design Meets Disability”

Design depends largely on constraints.

There’s a preconceived belief about discretion and invisibility being the priority in designs for disability, but in this chapter, to argue against this, the author proposes the example of eyeglasses, and how they’ve become not only accepted but also sought after as fashion statements. This acceptability is not due to their invisibility, and their ability to blend discreetly with a human’s features, etc. but that does not mean that some people do not still opt for invisibility, seeing as many people use contact lenses. However, the significance of this lies in the fact that people use both. Even when an option for complete invisibility exists, people still choose to use glasses.

So how can we design for disability, without allowing the product to become a stigma of some sorts?

The author made an interesting point about semantics or terminology in relation to design. He explains how eyeglasses are called “eyewear”, which suggests that you wear spectacles rather than just use or carry them, in a way, “wearer sets up a different relationship between the designer and the person being designed for” and this changes the perspective of prescription from “medical model” to “social model”, which is what destigmatizes medical design and allows it to become a part of the social sphere, in a way. It becomes a form of fashion, a statement, where you’re able to use your own style and customize its use based on your taste.

Towards the end, the author also mentions the importance of simplicity, as opposed to being “all things to all people”, which I whole-heartedly agree with. Especially because cognitive accessibility is an important yet overlooked aspect of disability design, perhaps because it is harder to quantify than say, disability on the basis of sight or hearing. But simple products are the most culturally and cognitively inclusive. (p.85)

Game Design: A Million Second Chances

Where is Tori’s mental state right now? You may be asking yourself. Well, last night, I had a dream where everyone just asked me if I was okay and told me to drink water.

So I decided to make a game where you would always win. No matter what. Because that’s the kind of support I need in my life.

The game is pretty basic. A bunch of circles go through the screen, bouncing off the walls like a kid who’s just discovered coffee. Your mission is to click on each ball, thus, vanishing it. There is a counter in the top left corner so you can keep track of how many balls there are left. And there is also a timer running. The catch? You have no idea how long you have. I’ve set the time t be between 10 and 30 seconds, although once you reach that time, you can reset the timer.

I should say that for some of the code, I used Amy’s catching ball game code as a reference to understand how the class may work. But the rest I figured out using my understanding of how it all works.

Here’s the video:

And here’s the main code:

int totBall = 30;
float xPos;
float yPos;
float spd;
int counter = 30;
boolean timer = true;
int x = 1;
boolean time = false;




Ball Ball[] = new Ball[totBall];


boolean timeIsUp=false;
float timeTillOver;

void setup() {
  fullScreen();

  noStroke();

  for (int i = 0; i < totBall; i++) {
    Ball[i] = new Ball(5, 100, random(1, 5), random(1, 5));
  }
  timeTillOver=millis()+random(10000,30000);
}


void draw() {
  background(0);

  if (time == false) {
    for (int i = 0; i < totBall; i++) {
      Ball[i].run();
    }


    fill(0);
    rect(0, 0, width, 50); 

    fill(255);
    textSize(30);
    text("Number of Balls:", 20, 30);
    text(counter, 280, 30);
    text("You Have Limited Time", 1500, 30);



    textSize(80);
    if (counter <= 0) {
      text("YOU WIN!", width/2-150, height/2);
      timer = false;
    }
  } else {
    textSize(60);
    text("TIME IS UP", width/2-150, height/2);
    textSize(30);
    text("press SPACE to resume", width/2 - 165, height/2 + 60);
  }

  if (timer == true) {
    if (millis() >= timeTillOver) {
      time = true;
    }
  }
}

void keyPressed(){
 if(key==' '){
  time=false; 
  timeTillOver=millis()+random(10000,30000);
 }
 
//maybe make a hard mode where they all turn black? or increase in speed?  
}

and Ball Class

class Ball {
  float xPos, yPos, spdX, spdY, size1;
  color clr;
  boolean disable = false;
  
  
  Ball(float x, float y, float speedX, float speedY) {
    xPos = x;
    yPos = y;
    spdX = speedX;
    spdY = speedY;
    size1 = random(35, 55);
    clr = color(random(0, 255), random(0, 255), random(0, 255));
  }
  
  void display() {
    
    if (disable == false){
    
    fill(clr);
    if (mousePressed    
    && dist(mouseX, mouseY, xPos, yPos) <= (size1/2)
     ){
      counter -= 1;
      disable = true;
    
    }
    ellipse(xPos, yPos, size1, size1);
    
    }
  
  }
  
  void move() {
    yPos += spdY;
    if (yPos > height || yPos < 50){
      spdY *= -1;
    }
    
    xPos += spdX;
    if(xPos > width || xPos < 0){
      spdX *= -1;
    }
  }
  
 

  void run() {
    move();
    display();
  }

  
}

 

Designing for Outlires

In general, the human built environment is designed to fit the average person. Doors are designed for most people to be easily walked through. Chairs are designed to be sat in comfortable way (most of the time).

Image result for dysfunctional chair

As such, most things are designed to be functional to the greatest number of users: ie. Right handed scissors. As the article states, however, some of the most interesting functional design comes in to being as a result of variance from the norm.

The article explains the significance and design of a multitude of common, and less common objects, and how they were designed to equalize those with disabilities such as bad eyesight, hearing, and lack of limbs. I was fascinated by the way this article defined an object as common as eyeglasses through this lens.

So if you are a particularly tall person, design a door you can fit through.

Image result for door for tall person

Response to Graham Pullin’s “Design Meets Disability”

Thinking of design as depending largely on constraints – as quoted in Pullin’s chapter, was a very negative perspective to look at it through.  Though I consider myself to be a person with a tendency to view things rather negatively, surprisingly, I tend to think of design through all the possibilities that it can open. This negative way, however, implies that all of us are ‘disabled’ in a way and that good design helps us navigate through life with more simplicity and ease.

Yet I understand the point Pullin was making – the framework of thinking about design through constraints illuminates the border between design for functionality and design for visual pleasure.  This, however, poses the questions of balance and how exactly to maintain it without compromising one or the other. But, as Pullin further develops, designing for actual disabilities, can have immense formative factors on how the disability is perceived by the society in the first place. Quite a big responsibility, isn’t it?

What, however, strongly resonated with me was an implication of capitalism and how some of the benefits of modern research in design cannot be applied to the research in design for disabilities – simply because it would not be financially profitable as not as many people would buy it.

It reminded of a certain group of pharmaceuticals called ‘orphan drugs’ – drugs for diseases, that however, are not commercially developed and sold as companies are concerned about the level of profitability. Therefore, people with real conditions cannot get them treated because their condition is rare, and there would simply not be enough demand on the market to motivate the companies to satisfy it.

Though this is stretching it a little too far, the fact that designing for a disability is affected by such twisted forces of capitalism too, really makes me question the society as a whole – and what it is able to sacrifice in order to make a profit. There is so much potential, as Pullin vividly discusses, to destigmatize disabilities and integrate people of all needs through design. Yet the development and research of such are severely limited by ridiculous constraints of capitalism.