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.

Tuesday, 30 December 2014

Design Iterations - User Testing

User Testing 


As a part of the iterative design process, it is important that there is some user testing. This is to ensure that the product that is begin made is following the correct route and satisfying the needs of the brief. User testing is also important due to the fact that as mentioned in previous blog posts people simply do not act in the way designers think that they would, so where it is important to conduct research on an environment, such as Weymouth House, it is also incredibly important to conduct testing on the product itself. This is because people may not interact with the installation in the way that they are expected. 

Because of this I have conducted user testing on my installation. In my user testing a got a few people to test my installation. In doing this I was first watching to see if they would interact with the installation in the way that I expected and then quizzed them on what they thought on all aspects of the project, such as the design and the interaction element.



From the user testing I gained some very valuable feedback. The first was that people did interact with the installation the way that I had expected, which is a good because it means that people do firstly know how to use my installation. I also gained some feedback on the design aspect of the project. From the feedback it is clear that there will need to be something else within the installation because as someone said “it gets a bit boring”. I have previously mentioned that I would be creating a particle system to go with the installation and based of this feedback I believe that it will be very necessary as it does seem that there does need to be some other element to the installation. The particle system is also likely to make the installation more eye catching which will be needed because as seen through the poster brief and the information that I gained from that about the space, is that for something to get noticed it does need to be eye catching. 


Another piece of feedback that I received was that everyone was overly fond of the design of the main circle. One person stated “I don’t like the moving stuff in the circle”. The design of the installation is something that I have been recently looking at because I have not been particularly pleased with the design of the installation, and the fact that some people have also mentioned the design means that I will have to look at changing the design. The final piece of feedback that I received was that there should be more than one circle so that more people can use it at once. 

Overall this user testing has been very beneficial for many reasons. The first being is that people do interact with the installation in the way it has been designed to, which is a very big positive. The testing has also been beneficial because it has allowed me to identify areas of the installation that does need improving, such as the introduction of another visual aspect and the overall design of the main object. In the next few days I will begin to use this feedback and make changes to the installation. 

Sunday, 21 December 2014

Design Iterations - Face Tracking Project

Face Tracking Project - 2


I have decided that this project will not include the punktiert behaviour attraction work. This is because despite me simply thinking that placing the tracking function that I have previously created (see blog Face Tracking - 1), into the work in place of the mouse tracking, it does not work. This might be down to the vector systems that have been used within the work and for some reason they do not seem to react to face tracking. This is unfortunate as I believe that it could have created a very interesting installation. 

However I will now push on with the particle system idea as I believe that this could a very interactive and interesting idea. In the mean time I have been playing around with the visual aspects of this piece of work, as a plain circle moving around a screen is not the most appealing thing in the world, and as I have found through the poster brief (see blog post ---), for something to get noticed within the fast paced area that is weymouth house it needs to be visually appealing and striking. 


Above shows an idea that I am currently going with, which is having movement within the circle to make it less of still, boring, ambient object. Instead with the circles within the main object moving and changing colour it does bring more visually to the installation. However this will not be the final design for the circle and I will continue to experiment with it to find a way to make it more visually striking. 

Thursday, 18 December 2014

Design Iterations - Face Tracking Project

Face Tracking Project - 1


As discussed within a previous blog post, I have decided that I will be creating another installation. This installation will be using face detection to track the users location and then either have a circle following drawing in the environment with a particle system, or draw upon the be behaviour attraction work and have the objects within the environment become attracted to the user. I believe the latter will be the more interesting to do and use however the use of a particle system could also be a very interesting route to go do. 

However as both of the projects will involve me having to use face detection and tracking the users movement I have begun to experiment using face tracking. After talking with my lecturer he suggested that the best way would be to map the face and then use the faces x and y co-ordinates to determine the location of where the circle will be draw each frame. 



Above is the code that is being used to track the faces. essentially all code is doing is finding x and y location of the users face and then using this to draw the circle. However if it was left simply width-map(faces[i].width) the installation would not work correctly. This is because if it left like this the camera is opposite. This being if you were to move right, on the screen the circle would move left. To counter act this I had to mirror the camera which means adding the additional code to to the tracking. This means that the user will not become confused when using the installation that the objects are moving in a different way to what they are. 


The above video is a circle following my face through mapping. 

Wednesday, 10 December 2014

Project Rethink

Punktiert / Circle Project 


I have recently found a library named punktiert. This liabary contains an number of different examples of processing drawings that have objects within them that have different behaviours. This one was called Behaviour Attraction. In terms of what it does it is very simple. What happens is that the circles are given an attractor, in this case the mouse, and when the mouse reaches a certain distance to the objects they begin to become attracted to the mouse and depending on how far away they are from the mouse they move at different speeds to it. 

Although this is a relatively simple drawing, it has given me inspiration for another installation. I am going to create an installation that does use face tracking to create a circle that follows the face. Once this has been created I will add either a particle system to the circle that will allow the user to draw or draw inspiration from this piece of work and use the circle as the attractor and attract the other circles. 


I am also not going to be continuing with the face swap project. This is because despite me in the previous blog post stating that the PImage possibly being the answer to me being able to store faces, I have not be able to find a way to make this work. Along with this I have never been completely sold on the idea of creating the face swap as my installation, so therefore I will only be focusing on this face tracking project.

The Code 

import punktiert.math.Vec;
import punktiert.physics.*;
VPhysics physics;
BAttraction attr;
int amount = 200;

public void setup() {
  size(800, 600);
  noStroke();
  physics = new VPhysics();
  physics.setfriction(.4f);
  attr = new BAttraction(new Vec(width * .5f, height * .5f), 400, .1f);
  physics.addBehavior(attr);
  for (int i = 0; i < amount; i++) {
    float rad = random(2, 20);
    Vec pos = new Vec(random(rad, width - rad), random(rad, height - rad));
    VParticle particle = new VParticle(pos, 4, rad);
    particle.addBehavior(new BCollision());
    physics.addParticle(particle);
  }
}
public void draw() {
  background(255);
  physics.update();
  noFill();
  stroke(200, 0, 0);
  attr.setAttractor(new Vec(mouseX, mouseY));
  ellipse(attr.getAttractor().x, attr.getAttractor().y, attr.getRadius(), attr.getRadius());
  noStroke();
  fill(0, 255);
  for (VParticle p : physics.particles) {
    ellipse(p.x, p.y, p.getRadius() * 2, p.getRadius() * 2);
  }
}

Reference List 

Koehler, D., 2013. Punktiert. Lab-Eds, Available from: http://www.lab-eds.org/punktiert [Accessed 10 December 2014].

Friday, 5 December 2014

Processing

Colour Capture Cam



Within a recent processing workshop I was working with Declan Barry and Aaron Baker, and through playing with a piece of code that we were given we managed to create a simple yet quite an effective installation. Essentially what the installation is that, using the video processing library, it uses the camera to detect colours in the environment, the code then detects the colour and then updates the pixels on the screen to reflect the colours it sees. 

What the camera sees


What the code changes it to 


Although this is very simple it could work as an installation because as someone passes through the camera the colours that they are wearing will also be picked up and it will cause an update through the work, so that the person would be able to see them self, in colour form, move through the environment.

The Code 

import processing.video.*;
Capture cam;
float blocks=1024;
void setup(){
  size (1024,768);
  cam=new Capture(this,160,120);
  cam.start();
  frameRate(25);
}
void draw(){
  if(cam.available()==true){
    grabPixel();  
  }
}
void grabPixel(){
   cam.read();
   color c;
   float v;
   for (int i=0; i<blocks; i++){
      c=cam.get(int((cam.width*(0.5))/blocks) + int(i*cam.width/blocks),  int(cam.height*0.5));
      v=brightness(c);
      drawBlocks(i,c);
   }
}
void drawBlocks(int i, color c){
   fill (c);
   noStroke();
   rect(width-(i*(width/blocks)),0,0-width/blocks,height); 
}


Declan's blog - https://declanbarrydesign.wordpress.com/
Aaron's blog - http://abaker.co/blog/