Saturday, 16 January 2010

Experiment - Fail





Just a quick experiment to see what could be done with webcams. I fixed two webcams side by side & tried to match up each side of the feeds so a bigger, more panoramic view could be obtained.

The end result was a failure - although I could match up objects on the screen, other parts of the picture were incorrect. This was due to different perspectives of both the images & the cameras.
For example, I could match up either foreground objects or background objects, not both.

For the system to work, I would have to literally create a pair of eyes! It would be so complicated - involving motors constantly changing the angle & the distance between each camera.

Although it was a failure, it was worth a try!

Monday, 11 January 2010

Being John Malkovich

Another great example of viewing something you shouldn't in a very wierd way.

Noam Toran



I really like the work of artist Noam Toran, especially one of his collections - Desire Management:

"Desire Management is a film comprising five sequences in which objects are used as vehicles for dissident behaviour. In the film, the domestic space is defined as the last private frontier, a place where bespoke appliances provide unorthodox experiences for alienated people"

I want my work to have this strange quality about it - to highlight people's obsessions & to create a new, tailor made experience using references from existing objects.

Defining & Refining


After a struggle trying to justify my project , why it should exist & what it actually is I have finally come to decision...

My project is a observation unit that is used to "study" a subject in a great amount of detail, but secretly - like an obsession.
The system will include a viewing unit with image manipulation - zooming, moving the picture up/down, left/right - like a microscope & surround sound, as if you were in the room

&

a probe unit used to gather the visual & audio data - a webcam & two microphones (left & right).

I want the products to have a microscope aesthetic, as if you were scientifically gathering information on the subject & have similar interactions.

This does mean I will have to abandon Processing now to focus on a different program - Pure Data (pd) - to make it easier to manipulate pictures with external inputs, such as potentiometers & switches connected to an Arduino board.

So a whole new set of challenges have arisen!

Wednesday, 6 January 2010

New Interaction Screen Shots

The first set of "generic" camera feeds.

When the button is pressed the second set of webcamera feeds appear.

New Interaction

To coincide with the revelation of using fewer cameras, I have created a simple interaction for people who don't want their content to be discovered - through using a simple switch.

The idea is:
there are a set of generic images (say beach views) being displayed constantly on the screen, but when you want to begin spying on who/whatever, you press a hidden button somewhere on the device to activate those feeds. This should keep your secret a secret (at least for a while...).

So far I have made a code that does such a thing, using some feeds from the other programs:

public static final int NROWS = 1;
public static final int NCOLS = 3;

//List of cameras
String[] goodfeed = new String[3];{
goodfeed[0] = "http://www.coast.ag/webcam/cruise.jpg";
goodfeed[1] = "http://www.st-barths.com/a_cam/view1.jpg";
goodfeed[2] = "http://webcam.raservice.com/cam.jpg";
};

String[] badfeed = new String[3];{
badfeed[0] = "http://brooklyn-bridge.mobotixcam.de/record/current.jpg?rand=380424";
badfeed[1] = "http://stjohnspice.com/spicecam1.jpg";
badfeed[2] = "http://abclocal.go.com/three/kabc/webcam/web1-1.jpg";
};

PImage[] images;

void setup(){
size(1200, 440);
images = new PImage[goodfeed.length];
for (int i = 0 ; i <>
images[i] = loadImage(goodfeed[i]);
}

images = new PImage[badfeed.length];
for (int i = 0 ; i <>
images[i] = loadImage(badfeed[i]);
}
}

void draw(){
int index = 0;
for (int y = 0 ; y <>
for (int x = 0 ; x <>
image(images[index], x * (width / NCOLS), y * (height / NROWS), (width / NCOLS), (height / NROWS));
index++;
}
}

if(keyPressed) {
if (key == 'b' || key == 'B') {
for (int i = 0 ; i <>
images[i] = loadImage(goodfeed[i]);
}

delay(1000);
}
} else {
for (int i = 0 ; i <>
images[i] = loadImage(badfeed[i]);
}
}

}


Evolving The Program

I have come to the conclusion that displaying thirty different webcam feeds (although it looks nice) has no purpose:

The number of images the user has to choose is too high - he/she will loose interest.

A smaller number of feeds makes the information architecture (choosing & interacting with the content) a lot easier through physically using their own cameras.

The greater the number of images, the less meaning each one will carry - a smaller number will allow the user to create a deeper, more personal bond with the content.

The amount of data the program was trying to read was too high - it slowed the whole program down & eventually crashed it every time.

A more playful interaction can be achieved with fewer cameras.

The overall cost of the project will decrease significantly.