Final Project Proposals-Kurt Xu

Proposal 1:”Echo”

Designed for stressful people to release the anxiety, our first proposal is a pressure-releasing device. Inspired by Edvard Munch’s famous painting The Scream, the device aims to lead the users to sunleash the stress in their heart by screaming, and then the device detects the volume of the voice and made corresponding reactions, which named itself “the Echo”. The current difficulty is that the project is a bit conceptually thin in the form of interaction thus we need to add other core concepts, and the guidance of that device must be extra careful to avoid the users to gain more pressure in trying to scream louder rather than scream to relieve.

1

Proposal 2:”Night Vendor”

The second proposal is a (possibly wearable) device designed for people with insomnia or just having some difficulties in sleeping or resting. The idea is inspired by one episode (Epd.415) of Doraemon, in which it introduces an light bulb that can turn the environment as dark as night and they use it to help the father disturbed by the brightness to sleep. Like its name, it provides a immersive artificial environment simulating the conditions of night, while it detects the user’s heart rhythm simutaneously to evaluate the user experience and will show the result in the form of different color of the light which will change on the basis of heartrate as an exterior display. The difficulty is mainly on the limitation of required knowledge, like the evaluation of heartrate and the specific idea of “night” by the definition of biology and physiology but not just being dark.

2

Proposal 3:”Free the Person in Traffic Lights”

That’s my favourate project. In my daily life, I observed that pedestrians become bored and idle while waiting for the green light, especially in long intervals. To make full use of that gap, we think that we can change the idea of a previously unmovable object, which is the pattern of a person in the green/red traffic light. So inspired by the dancing trafficlight project, the device has a motion-detecting component that allows you to control the formerly standstill person in the red light with your own motion. The difficulty is mainly technical as the technology of motion track is obviously very complicated for us based on what we have learnt and to achieve that effect we may need huge investment in hardware.

https://www.youtube.com/watch?v=SB_0vRnkeOk

Interaction Lab Documentation 7-Kurt Xu

Recitation Exercise:

The Array is a set of data, and can be defined like other data type. The usage of array is wide and in this class we were introduced to several actual implement of it and practised by ourselves.

Step 1:

The function i made is to make a circle with four smaller circle on top/bottom/left/right side of it.

int x=400;
int y=400;
size(800,800);
noFill();
ellipse(x,y,width/11*sqrt(2),height/11*sqrt(2));
fill(255);
ellipse(x+cos(0)*(width/22*sqrt(2)),y+sin(0)*(width/22*sqrt(2)),10,10);
ellipse(x+cos(HALF_PI)*(width/22*sqrt(2)),y-sin(HALF_PI)*(width/22*sqrt(2)),10,10);
ellipse(x+cos(-HALF_PI)*(width/22*sqrt(2)),y-sin(-HALF_PI)*(width/22*sqrt(2)),10,10);
ellipse(x-cos(0)*(width/22*sqrt(2)),y-sin(0)*(width/22*sqrt(2)),10,10);

And the final project look like that:

Step 2: 

In this step, i tried to use a matrix to perform the pattern, and i accomplish it through dividing the number from 0 to 99.

int x=0;
int y=0;
void setup(){
background(255);
size(800,800);
for(int n=0;n<100;n++){
x=(1+int(n/10))*width/11;
y=(n+1-int(n/10)*10)*height/11;
noFill();
ellipse(x,y,width/11*sqrt(2),height/11*sqrt(2));
fill(255);
ellipse(x+cos(0)*(width/22*sqrt(2)),y+sin(0)*(width/22*sqrt(2)),10,10);
ellipse(x+cos(HALF_PI)*(width/22*sqrt(2)),y-sin(HALF_PI)*(width/22*sqrt(2)),10,10);
ellipse(x+cos(-HALF_PI)*(width/22*sqrt(2)),y-sin(-HALF_PI)*(width/22*sqrt(2)),10,10);
ellipse(x-cos(0)*(width/22*sqrt(2)),y-sin(0)*(width/22*sqrt(2)),10,10);
}
}

Step 3:

float[] n1=new float[100];
float[] n2=new float[100];
color[] n3=new color[100];
int m=0;
void setup(){
  size(800,800);
  background(255);
  colorMode(HSB);
  for(int n=0;n<100;n++){
    n1[n]=(1+int(n/10))*width/11;
    n2[n]=(n+1-int(n/10)*10)*height/11;
    n3[n]=color(random(255),255,255);
  }
}
void draw(){
  if(m<100){
    fc(n1[m],n2[m],n3[m]);
    m++;
  }
}
void fc(float x, float y,color c){
  noFill();
  stroke(c);
  ellipse(x,y,width/11*sqrt(2),height/11*sqrt(2));
  stroke(0);
  fill(255);
  ellipse(x+cos(0)*(width/22*sqrt(2)),y+sin(0)*(width/22*sqrt(2)),10,10);
  ellipse(x+cos(HALF_PI)*(width/22*sqrt(2)),y-sin(HALF_PI)*(width/22*sqrt(2)),10,10);
  ellipse(x+cos(-HALF_PI)*(width/22*sqrt(2)),y-sin(-HALF_PI)*(width/22*sqrt(2)),10,10);
  ellipse(x-cos(0)*(width/22*sqrt(2)),y-sin(0)*(width/22*sqrt(2)),10,10);
}

(The video is temporarily missing)

Step 4:

float[] n1=new float[100];
float[] n2=new float[100];
color[] n3=new color[100];
float o=0;
void setup(){
size(800,800);
background(255);
//noStroke();
colorMode(HSB);
for(int n=0;n<100;n++){
n1[n]=(1+int(n/10))*width/11;
n2[n]=(n+1-int(n/10)*10)*height/11;
n3[n]=color(random(255),255,255);
}
}
void draw(){
for(int m=0;m<100;m++){
fc(n1[m], n2[m],n3[m]);
}
}
void fc(float x, float y,color c){ 
stroke(c);
noFill();
ellipse(x,y,width/11*sqrt(2),height/11*sqrt(2));
stroke(0);
fill(255);
ellipse(x+cos(radians(o+x+y))*(width/22*sqrt(2)),y+sin(radians(o+x+y))*(width/22*sqrt(2)),10,10);
ellipse(x+cos(radians(o+x+y)+HALF_PI)*(width/22*sqrt(2)),y-sin(radians(o+x+y)+HALF_PI)*(width/22*sqrt(2)),10,10);
ellipse(x+cos(radians(o+x+y)-HALF_PI)*(width/22*sqrt(2)),y-sin(radians(o+x+y)-HALF_PI)*(width/22*sqrt(2)),10,10);
ellipse(x-cos(radians(o+x+y))*(width/22*sqrt(2)),y-sin(radians(o+x+y))*(width/22*sqrt(2)),10,10);
o=o+0.01;
}

(The video is temporarily missing)

Q&A Part:

Question 1:

Basically, the draw represent the image with a process while the for function in setup() represents the complete image in an instance. It is due to the way how the program runs as the for loop is seen as one statement and the draw() is seen as a whole program, which results in a slight delay in processing and eventually presents in a way similar to appearing one after another for certain images.

Question 2:

The protential of using arrays is huge as the array can not only store a set of data, but can extract it easily with a desiginated sequence, which made it especially useful in matrix and other repeating works. For my further use, i might possibly use it in my future project to create patterns using parallelly processed data, like a matrix i used in this project.

Final Project Preparatory Research and Analysis-Kurt Xu

A.Chronus Exhibition

I’ve visited several art shows before. The artworks there are all silent and stationary. To most of them, they lacks the ability to provide active expression, so no matter how modern it may be, it provides me with a feeling of watching antiques or a lifeless object. That might be the difference between non-technology-based artwork and its opposite. Inanimated objects tell history and stories that do not belong to them, while the animated ones seem to express their own fluid, changeable and uncertain thought, which make themselves a part of their story. To some extent, it owns the free will and when we see the artworks in the Chronus exhibition we see more of the humanity, the ability to think and move, than the mechanism from them. Moreover, the participation of technology components also expanded the means of expression by simple movement to a programmed and far more complicated set of variation, as is depicted in the photos that the mechanical parts work together to create a output. I must admit that the field trip is an unforgettable and horizon-expanding experience. I saw many delicately functioning machines and a brand new perspective to understand the meaning of interactive.

B.Inspiration

1.Mechanical Mirror

Going back to the first interactive art project i’ve seen, the mechanical mirror, created by Daniel Rozin, it is still the project which leaves me with the deepest impression. The most interesting part is that it uses a technological way to represent a non-technological process: the reflection. And the creator mentioned its characteristic as the simplicity that every person may know the meaning of the output and the relationship between input and output immediately. The simplicity of communcation between the artwork and the audience leads to the efficiency of interaction and affects the user-experience greatly. That is a key advantage in interactive experience as the interaction is a process of understanding and communicating. Yet in the processing part it may add more of its own thought and change the output a bit than just sending out the exact faithful reflection of the image in front of the “mirror”.

2.Breakout

(A screenshot of the Breakout clone LBreakout2

The Breakout, also known as the block-breaking game or the Brick Buster, is an Atari game published in 1976. It evolved from another Atari game called “Pong” (with a ping-pong-like rule), and according to the designer, it came from the idea of a single-player version of “Pong” . Due to its simple rule and gameplay, it is installed on many mobile devices and computers. To our project, it’s a very good example of maximizing the effect with limited resources. As the presentation of a project consists of two parts: the core and the manifestations, the key is to keep the core simple and interesting. The Breakout is doing that extraordinarily well, yet with more resources and time, they could have made a project with stronger expression. Afterall, the limitation brought by that condition is unavoidable.

C.Back to the Group Project

Going back to the group project, at the begining i defined the word “interactive” in a structuralism way: a process consist of three parts: “Input”, “Process” and “Output”, and in practice i started to use the deconstrcution view more that the interactivity of a certain project may consist dozens of interaction and therefore dozens of “Input”, “Process” and “Output”, so it may be really hard to find a clear line between these three parts sometimes. Sadly, what may be hard for us may also be hard for the test-users, which means the more complicated the rules are, the more obscure the project is to the audience and thus leads to worse interaction or interactivity. And the creator of mechanical mirror mentioned  the simple and easy-to-understand output and the relationship between input and output is the main advantage of the project. The simplicity of communcation between the artwork and the audience leads to the efficiency of interaction and affects the user-experience greatly.So my strategy is to use a very interesting inner core with simple rules to support a understandable process, which may be better if it is repeatable.

Credit:

http://www.smoothware.com/danny/

https://www.youtube.com/watch?v=kV8v2GKC8WA&t=149s

https://en.wikipedia.org/wiki/Breakout_(video_game)

Interactive Lab Documentation 6-Kurt Xu

Recitation 6:Processing Animation

Given the requirement, at start, i thought to create a image using the circle’s involute, as is depicted in the video.

Next, i dicided to add more interactive element to it, so i made it into a progress bar and visualized the progress by percentage.

Fininshing the loading part, i think of linking this project to the additional homework. So i made a finishing panel and then the program jumps to the additional homework programme:

Additional Homework

1)step 1

void setup(){
  size(600,600);
}
void draw(){
  background(255);
  stroke(0);
  strokeWeight(10);
  ellipse(300,300,200,200);
}

Except for the basic functions, the program also uses the function “ellipse( )”, “strokeWeight( )” to control the final presentation of the circle.

2)step 2

In this part, the program introduces the variable “R” & “v”, which should both be float and stand for the radium and the velocity of the variation respectively. 

float R=50;
float v= 2;

void setup(){
  size(600,600);
}
void draw(){
  background(255);
  strokeWeight(10);
  ellipse(300,300,R,R);
    if (R>=200 || R<50){
      v=-v;
    }
  R=R+v;
}

3)step 3

In that part, the program uses the colorMode(HSB) and take variable R as the variable to control the color. As R ranges from 50 to 200, and HSB takes data from 0 to 100, the actual input is (R-50)/1.5, so that the color can change fluently.

float R=50;
float v= 2;

void setup(){
size(600,600);
}
void draw(){
background(0,0,255);
colorMode(HSB,100);
stroke((R-50)/1.5,100,100);
strokeWeight(10);
ellipse(300,300,R,R);
if (R>=200 || R<50){
v=-v;
}
R=R+v;
}

4)step 4

Though the final step, it’s actually the simpliest step. To coordinate the center of the ellipse to the mouse, the program uses two global variable: mouseX &mouseY as the X and Y axis of it.

float R=50;
float v= 2;

void setup(){
size(600,600);
}
void draw(){
background(0,0,255);
colorMode(HSB,100);
stroke((R-50)/1.5,100,100);
strokeWeight(10);
ellipse(mouseX,mouseY,R,R);
if (R>=200 || R<50){
v=-v;
}
R=R+v;
}

And then, the final product is like that:

(the code)

(full process)

Q & A Part

I learnt about the parallel capability and the relationship between each branch of the program, like the the setup(), the draw() and how to define it by myself. In my program, i used two defined part: the intf() and ddr(). And the most interesting part is, though i didn’t know at the first place, that they can loop simutaneously as the bigger part does as they are both a part of the draw() . With that characterisitic, i can realize the transition from one loop to another, which is a huge advancement.

Midterm Project: “Lights Off (3×3)”-Kurt Xu-Eric Parren

       In my previous project, my team discussed about the idea of “interactive”. In order to understand the concept of “Interactive”, I did quite a few researches and had a broader comprehension of the idea, and in the mid term project, I implemented what I’d learnt previously. From the initial of building a simple but fun game, my group made some attempts and finalized our project as the flip game, which the players can try for a long time to optimize their operation and reach the final goal: turn all lights off. We think that such game with a little challenging element and brainwork required, in other words, a puzzle game, may be more interactive.

The idea “interactive” can be simply concluded with three phase: “Input”, “Process” and “Output” .In our midterm project “Lights Off (3×3)”, the input component is a IR remote controller, and the signal is processed through the program stored in the Arduino, and then reflects in the form of lights on and off. I also learnt from the previous experience that to a project accomplishing a single specified function is usually more effective than creating a vague over-all platform, and “The simplicity is beauty.” becomes the main principle of the design of this project, which not only means to be simple, but using the simplicity to arouse thoughts and imagination of the users. In our design, the whole outlook serves the principle well with almost no distraction above and covers the messy wires inside.

the testmodel

The most difficult part, personally thinking, is the programming part. To find the logic between the operation is not hard but facing malfunctioning situations and problems in uploading data is really frustrating. Many is unexpected and we are definitely not prepared for it. But, eventually, I used the most direct and stupid way to solve all the problems: quarantine controversy part and troubleshoot one by one. As the logic part became too complicated, then I rewrite it with multiple if functions to achieve the same function. In that way, I eliminated most problem with the knowledge I’d learnt.

Our expected goal is to stay simple, understandable and playable, and I think that we accomplished most of it. The best part we do is to be interactive. The project asked for some tactics and strategy and therefore require more interaction of the users. Yet I still think that we can improve a bit in the to be understandable part, as the rule of the game is not written on anywhere of the device. A piece of paper with instructions on it should do it and help a lot. I advocate the simplicity for that’s the exploring and innovating path, laying the foundation stones down below and then comes the complexity developed on that, so I think that we all should start from the simple things