Sunday 25 January 2015

Design Iterations - Evaluation

Evaluation 


When evaluating how well I have performed in this unit I will be basing it of the brief that has been set. The first aspect of the brief was:

Create a piece of interactive information for a shared public space, which is intended to elucidate/explain some idea or concept you perceive as key to our 21st century media experience

In terms of this aspect of the brief I do not believe that I have entirely meet it. This is because as a piece of interactive work, which engages people, the installation that I have made I think is satisfactory. However the brief stated to "create a piece of interative information design....intended to elucide/example some an idea or concept". In this terms I do not believe that the work that I have made meets the brief. This is because as Department of Design stated "information design is the practice of presenting information in a way that fosters efficient and effective understanding of it" (Design 2014). When looking at my work and a definition information design it is clear that it has not meet the brief. This is because my does not convery any information about any media concept. However despite my piece of work not meeting the brief in terms of traditional forms of information design, the brief did leave room for the installation to be artistic and abstract. As mentioned in a previous blog post my piece of work was more artistic and abstract and was a reflection of the concept of a digital footprint, with the user leaving a trail behind them as they navigated through the environment. I believe in terms of a using a media concept in a abstract way I have create an interactive information design the installation works, however in terms of the traditional idea of information design it does not convey the information. 

The fact that what I have created something that has not completely meet the brief is I believe down not correctly planning my work and losing sight of what the work was being made for. In future I am going to have to ensure that the work that I create one does meet the brief more effectively and secondly that all projects that I set out on have been clearly planned and has a very clear end destination. Because at many points in this project I was becoming conflicted at what I wanted to, as seen with me starting with a face swap project and then quoting it because I decided that I wanted to do something with facial tracking. This I believe was a fundamental mistake because I believe in meeting the brief the face swap project would have meet it greater because there are many media concepts that could have linked to, such as hyper reality and a social message of people trying to pretend to be someone that they are. This is a lesson that I have learnt, which is to follow through with an idea instead of leaving it dead in the water. I will aim to finish the face swap outside of this unit. 

In terms of the second part of the brief which was to work within a iterative work process. I believe that I have done so, to some extent. Looking at the below graphic, which is of the whirlpool method, I believe that I have in some small way completed each aspect of this method. This is because even though my planning was not very good and I had lost sight of why I was making something the simple fact is that I created an installation tested it made changes based of what people wanted from it and then implemented that design. Although I did not correctly plan the project the fact that I tested and changed the installation based of feedback is a part of the iterative design process, and is a part that I will do on all projects in the future, because through testing I was able to find mistakes that I would not be able to find without the testing. 

Whirlpool Method


Overall I am partially satisfied with how I preformed in this unit. I am disappointed that what I created did not entirely meet the brief of creating an information graphic, however this entire unit has been a very large learning curve. I have learnt how important it is to throughly plan a project so that it does meet a brief that has been set. As well as that correctly planning a project will save me in future going of on tangents and not having a clear idea of what my project will be in the end. Within this unit I have also learned the importance of conducting research both on the intended target audience and the area in which the work will be placed. This is because people simply do not act and interact with an area or technology in the way that as designer you expect (Fredhiem 2011). This means that throughly finding out how the target audience interacts with whatever is being made is imperative, because if you can understand how people interact with the design of your work you can tailer it so that there is a greater user experience. The last thing that I have learnt from this experience is the importance of every aspect of design. This is because within the creation of my circle tracking project  I turned the background of the work to black. It had never crossed my mind that this would make installation look like there was nothing there when the tracking was not in action. This means in the future I will have to ensure that every little aspect of the design is thoroughly thought through. 


Reference List 

Department of Graphic Information Design, 2014. Graphic/Information Design Department Overview. Department of Design, Available from: http://www.design.ccsu.edu [Accessed 25 January 2015].

Friedheim, H., 2011. Why User Experience Cannot Be Designed. Smashing Magazine, Available from: http://www.smashingmagazine.com/2011/03/15/why-user-experience-cannot-be-designed/ [Accessed 25 January 2015].

Saturday 24 January 2015

Design Iterations - Face Tracking Project

Face Tracking Project - 8 


Following on from placing my work with the space (see blog post Face Tracking - 7) I have since found some ways to rectify some of the issues that I was encountering. One of the first problems that I had when conducting the test in the space is that the camera was struggling to pick faces up. At first I thought that this may be the quality of the camera which I was using. However I have found that it was in fact that camera location and angle which was the problem. As seen in the image below I have place the camera higher up, so that is more at head level. This means that it can more easily detect a persons face. This has improve the performance of the installation in many ways. The first being it can pick up the users much easier which means that unlike when it was begin tested in Weymouth House the user could keep a natural position instead of having to get close to the camera. Another improvement that this new camera position has had on the installation is that the installation is less "glitchy". What is meant by this is that where the camera can now better detect a persons face the system can track the face better. What this means is that the circle stays on the screen better and does not randomly cut out. 

Higher camera position improves performance of the installation 

Another issue that I had encountered was the fact that the black background did make the TV look like it was off, when there was no users interacting with the installation. This was a simple fix as I have made the background a grey colour or from 0 to 50. This means that the installation does not make the TV look turned off, as well as still being dark enough to make the colours pop. 
Changed background

The last issue that I had with the project, I have not been able to rectify. This problem was when there are no users interacting with the work there is nothing to entice someone to go and use it. I believe that having the circles move around the screen by themselves and then when a face is detected then track them as it already does would be a good fix for this.

Thursday 22 January 2015

Design Iterations - Face Tracking Project

Face Tracking Project - 7 


Yesterday was the day which I tested me installation within the space. Going into testing in the space I had wanted to fix the problem of the particles disappearing when the circle disappeared, however this was not able to be fixed, but despite this I was hopeful that everything would work fine seeing as testing at home had worked fine. 

The screens which the installation was being placed on. 

Unfortunately the test within the space did not go as well as I liked. I had encountered a number of problems, which could have been avoided. The main problem that I encountered was that I was expecting there to be more powerful cameras available for the test, however there was not. This meant that I was having to use the camera on my laptop. This would not have been a huge problem but due to where I was having to place the laptop the angle of the camera did not help me. The availability of other cameras is something that I should have looked into before conducting the test, because a more powerful web cam, or an Xbox Kinect, positioned above the TV could have aided in the system being able to pick up the users face, because as seen in the image below users were having to go close to the camera for it to pic them up.


Another problem that I encountered was a design issue. This issue is that despite the black background looking good when the other aspects of the installation are in use, when the installation has not picked anybody up and there is nothing on the screen the black background did make it look as if the screen was turned of. This meant that people were simply walking past it as there was nothing drawing them to it, until a face was picked up and the installation appeared. Although at the time when making the installation the black background seemed like a very insignificant part of it, it has been a good lesson that every part of a design, despite how small a piece it may seem, is important to the overall finish of the product. 

However despite the negatives there was with the installation, there were some positives as well. One being that when the installation was working and people were able to use it people did seem to enjoy using it and making this object move around the environment. Also the fact that more than one person could use it at a time also made the installation more of a community product, which meant that groups of people could use it. 


Overall this test has been a very good learning curve for me. It has shown me first the importance of knowing what equipment will be available within the space for the installation. Secondly it has taught me that before anything if put out to "production" it does need to be throughly tested in that environment. And lastly it has taught me the importance of all aspects of design, because even a little aspect such as background can make the installation seem as if it not working. 

Although I do not have time now to put the installation back in the space I will make some changes to the installation and test it with a more powerful camera to see if that improves the overall functionality of the work. 

Tuesday 20 January 2015

Face Tracking Media Concept

Media Concept 


As mentioned my current idea for my installation is to create an installation which has an object track the face of the user and then using a particle system it will draw where the user has been. As a part of the brief is that the installation has to reflect a media concept that I believe is important to 21st century use of the media. 

When thinking about what media concepts that this project could reflect the idea of a digital footprint came to my mind. This is because as Madden et al describes "A digital footprint is the data that is left behind by users on digital services" (2007). The idea of a digital footprint is becoming much more important now. This is because as the internet becomes increasingly more important and almost consuming of people's lives, people are becoming more "aware of the information that remains connected to their name online" (Madden et al 2007).



The idea of digital footprint I believe links to my project. This is due to the fact that within my project the user moves an object throughout an environment, which is similar to a person navigating through the internet. The idea of a digital footprint also links to this installation, because as the user navigates the object around the "world" the particle system creates a track of where the user has been. This links to the idea of a digital footprint because as people leave a trail of data when they navigate through the internet, the users are leaving a trail when they are moving the object around the environment. 

I believe that this idea of a digital footprint does work in terms of this project because, one the project does atristicly represent the idea of a digital footprint, in the the user does leave a trail. Secondly because the this idea of a digital footprint is one that I believe is becoming increasingly important.  This is because with the increasing use of social media people are leaving an increasingly large digital footprint, which is becoming to the point where you can search a persons a name on the interent and within a few minutes can have a large amount of information about the person. So this is I think makes this a good media concept to use in this project because it is an incredibly important concept within new media. 

Reference List 

Madden, M., Fox, S., Smith, A. and Vitak, S., 2007. Digital Footprints: Online identity management and search in the age of transparency. Pew Internet, Available from: http://www.pewinternet.org/files/old-media/Files/Reports/2007/PIP_Digital_Footprints.pdf.pdf [Accessed 6 January 2015].

Saturday 17 January 2015

Design Iterations - Face Tracking Project

Face Tracking Project - 6


Having created the particle system (see blog post Face Tracking - 5) there were three things left for me to do with this project. The first was to place the particle system within the installation, secondly modify the particle system so that it was a lot more random and lastly change the design of the particles. All of these tasks have been completed. 

The first task was completed by adding the code seen within the previous blog post into the code that I had already. At first it was not working, but this is because of the part of the code that actually runs the code was not placed in the correct place. Adding this code with in the circle void, which is as the name suggests the part of the code which deals with the circle, allows the particle system to begin running and also spawn from within the circle. 

The second and third tasks where done very easily. Firstly in terms of the redesign of the particles I wanted them to link to the main object so I have given each particle a random colour so that there is a link. Along with that to give them more life I have given them random sizes and made it so that there size with change throughout the particles life. This I believe adds more to the installation. In terms of the final task which was changing the physics that controls the particles, it was simply as case of trail and error until I found what I believed worked best. There is a much higher level of randomness to each particle unlike in the previous blog post, this has been done to simply breath more life into the installation and make it feel more alive.


A small example of how the installation works 


The Code 

import processing.video.*;
import gab.opencv.*;
import java.awt.Rectangle;

OpenCV opencv;
Capture cam;
Rectangle[] faces;
Particle p;

PVector centreLeft, track;

boolean sketchFullScreen() {
  return true;
}

ArrayList<Particle> particles;

void setup() {
  //setting up the canvas and cam
  //size(1920, 1080);
  size(displayWidth, displayHeight);
  centreLeft = new PVector(587,191);
  cam = new  Capture(this, 700,500);
  cam.start();
  opencv = new OpenCV(this, cam.width, cam.height);
  opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE); 
  
  //declaring the particles arraylist
  particles = new ArrayList<Particle>();  
}//end of VoidSetup

void captureEvent(Capture cam) {
  cam.read();
}//end of void captureEvent

void draw() {
  
  background(0);
  opencv.loadImage(cam);
  faces = opencv.detect();
  
   //below is to with the face tracking  
   if (faces != null) {
    for (int i = 0; i < faces.length; i++) {
        noStroke();
        track = new PVector(width-map(faces[i].width/2+faces[i].x,0,cam.width,0,width), map(faces[i].height/2+faces[i].y,0,cam.height,0,height)); 
        circle(); 
      }//end of for
   }//end of if
}//end of void draw

class Particle {
  
  PVector location;
  PVector velocity;
  PVector acceleration;
  float lifespan;

  Particle(PVector l) {
    //the behaviour of the particles
    if (faces.length >=1){
      acceleration = new PVector(0,random(0.05,0.25));
      velocity = new PVector(random(-2.5,2.5),random(-2.5,2.5));
      location = l.get();
      lifespan = random(100,250);
    }//end of IF
   }//end of Particle(PVector)
    
  void run() {
    //this makes the particles actually run
    update();
    display();
   }//end of void run

  void update() {
    velocity.add(acceleration);
    location.add(velocity);
    lifespan -= 3.0;
   }//end of void update

  void display() {
    //the visual aspects of each particle
    noStroke();
    fill(random(255),random(255),random(255));
    ellipse(location.x,location.y,random(3,13),random(3,13));
  }//end of void display

  boolean isDead() {
    //ensuring that when the particles lifespan has finished it goes of the screen
    if (lifespan < 0.0) {
      return true;
    } else {
      return false;
    }
  }//end of boolean
}//end of class Particle

void circle(){
  //tracking for the circle
  PVector newLocLeft = track.get(); 
  newLocLeft.sub(centreLeft);           
  newLocLeft.add(centreLeft); 
  
  //below is the code for the main circle
  noStroke();
  fill(random(255),random(255),random(255));
  ellipse(newLocLeft.x, newLocLeft.y,140,140); 
  noStroke();
  fill(0);
  for(int i =0; i<50; i++){
    ellipse(newLocLeft.x, newLocLeft.y, 125,125);
    noStroke();
    fill(random(255),random(255),random(255));
    ellipse(newLocLeft.x, newLocLeft.y, 110,110);
    noStroke();
    fill(0);
    ellipse(newLocLeft.x, newLocLeft.y, 95,95);
  }
  
  //code so that the particles are working and are being produced from the centre of the circle
  particles.add(new Particle(new PVector(newLocLeft.x + random(1,20), newLocLeft.y +random(1,20))));
  for (int i = 0; i < particles.size(); i++) {
    Particle p = particles.get(i);
    p.run();
    if (p.isDead()){
      particles.remove(i);
    }//end of If
  }//end of for
}//end of void circle

Friday 16 January 2015

Design Iterations - Face Tracking Project

Face Tracking Project - 5


Moving on from the previous blog post (see post Face Tracking - 4) I have one more part to complete for my circle tracking project, which is the particle system. I had been pushed towards looking at Daniel Shiffman's particle systems by lecturer and this has pretty much solved the problem. I have found a website created by Daniel Shiffman called the Nature of Code. This in terms of learning about processing is simply a gold mine. Within this website there was a large part of particle systems. 


Using this website I was able to create a particle system that I will implement within my installation. It is a simple system where particles are spawned into the world from a designated position, which in my case will be the middle of the circle, and then these particles go about their "lives". The code has been written so that each particle is affected differently by the physical elements, such as gravity, and each one has its own random life span. This means one particle can remain on the screen for up to 10 seconds and others will die within 2. Below is the particle system that has been made. 




I will edit this particle system to make the physics within in more random, which should make the particles act more individual instead of all mostly doing the same thing. I will also change the design of the particle to make it more visually appealing. 

The code 

Particle p;
ArrayList<Particle> particles;
void setup() {
  size(640,360);
  particles= new ArrayList<Particle>();
}
void draw() {
  background(255);
  particles.add(new Particle(new PVector(width/2,50)));
  for (int i = 0; i < particles.size(); i++) {
    Particle p = particles.get(i);
    p.run();
    if (p.isDead()){
      particles.remove(i);
    }
  }
}
class Particle {
  PVector location;
  PVector velocity;
  PVector acceleration;
  float lifespan;
  Particle(PVector l) {
    acceleration = new PVector(0,0.05);
    velocity = new PVector(random(-1,1),random(-2,0));
    location = l.get();
    lifespan = 255.0;
  }
  void run() {
    update();
    display();
  } 
  void update() {
    velocity.add(acceleration);
    location.add(velocity);
    lifespan -= 2.0;
  }
  void display() {
    stroke(0,lifespan);
    fill(0,lifespan);
    ellipse(location.x,location.y,8,8);
  }
  boolean isDead() {
    if (lifespan < 0.0) {
      return true;
    } else {
      return false;
    }
  }
}

Reference List 

Shiffman, D., 2012. Chapter 4. Particle Systems. The Nature Of Code, Available from: http://natureofcode.com/book/chapter-4-particle-systems [Accessed 16 January 2015].

Sunday 11 January 2015

Processing

Using Sound and Light 


In the most recent processing workshop that we have had our lecturer showed as a piece of work that he had created which used sound as a form of interaction. The installation was that he created a number of agents within an environment that would react to increases of sound. As he described it some have been coded so that quieter noises make them "scared" and  disappear and others need louder noises. Along with this in the same lecturer a class mate of mine, Aaron Baker, told me his idea to use light to draw images. 

This has made think, due to the fact that throughout this project I have been focused on purely physical interaction. What I mean by this is a body interacting with the environment. However the fact that people are using over aspects such as sound and light, shows how many ways there are to interact with the environment and an installation. The introduction of other ways of interaction such as sound, I believe would make a very interesting installation because in an age where people have access to systems such as the Xbox Kinect and the Wii, people are becoming accustomed to interacting physically with technology, therefore the introduction of other forms of interaction could very much improve the appeal of an installation. 

Aaron Baker's blog - http://abaker.co/blog/

Friday 9 January 2015

Design Iterations - Face Tracking Project

Face Tracking Project - 4


Following the previous blog (see blog post Face Tracking 3), where I have stated that one I wanted to redesign the circle, to have more than one circles to make it more of a community installation and to stop the circle from becoming broken when more than one face is detected and thirdly to create the particle system, I have solved two of these problems.

The first problem that I have solved is the redesign of the circles. As seen below I have firstly changed the background to black, this is because it makes the colours stand out. Secondly I have created a ring design for the main object. This is because through some testing I found that having a randomly changing coloured whole circle is far to much to take in and does actually start to mess with peoples eyes. I had began to test it without a randomly changing background however that seem visually to boring. Through some redesign I started going down with the idea of a ring design where the would be less surface area of the circle coloured, in the hope that it would make the randomly changing ring stand out a lot more. I found that just one ring was not really enough to make a visual statement, however the introduction of more rings does. I settled on just having the two rings because I felt having more would be to distracting to the particle system that will be made. 

Still image of the redesigned circle 

The second problem that I have fixed is the introduction of more than one circle. This was actually a simple fix as placing the code which designs the circle within a FOR loop, which can be seen below, means that for every face it detects another circle is drawn and follows a specific face. 



Video showing that the installation now supports more than one user. 

In terms of the final problem that I have to complet within this project, which is creating a particle system, I have been nudged in the direction of finding particle systems created by Daniel Shiffman, by my lecturer. This is a route I will look at because my attempts at creating a particle system thus far have been monumental disasters. 

Friday 2 January 2015

Design Iterations - Face Tracking Project

Face Tracking Project - 3


Having completed the user testing for my face tracking project, a number of points have been made. The first is that visually at the moment the project is very dull, so there will need to be a redesign of the circle. I don't like the fact that the circles within the main object are contained with a square shape, due to the way they are coded, because it makes the top and bottom part of the circle look empty Along with that the particle system will also very much be needed. This particle system I think is necessary for this project as it will add another aspect of complexity and visual excitement to the installation which is needed, because as someone who tested my installation said it can get boring quite quickly just moving a circle around. 

In terms of redesigning the main circle I think that the circles within the main object will also look to chaotic once a particle system is introduced to it, so it is likely that these will be removed.

The final aspect that I want to add to this project is to have more than one circle at a time. This is because when testing it there were problems when the system could detect more than one face as it did not know which face it should be tracking. Finding a way of introducing more than one circles and for each circle to follow a designated face will, one, fix the problem of the circle jumping from face to face and not working correctly, and secondly create an installation which can get more people involved.