28.11.08

i'm not the only one!

true, he's using we feel fine, and he's making them into nice little cards, but Brendan Dawes is looking for feelings online.



here's a little sketch of how he envisioned it working, originally planning to use stickers.



and these are some of the cards.



I like this idea, as it gives you a static and tactile way of holding onto the feelings that would otherwise be lost in time. My idea is quite different, as my piece is going to be as fleeting as the data on the internet, but it's answering the same basic problem: getting emotional data offline and displayed in another way.

pictures taken from his flickr feed.

project related rant.

I've been looking around various processing and arduino sites, trying to find a piece of work that is similar to my idea, and i'm not really finding it anywhere. It seems people are more interested in getting data or information from the real world into the virtual, instead of the other way round.

There are several reasons why i chose to do this project this way, and make myself this brief. One is that technology is constantly becoming more and more personal, with mobile phones and ever smaller laptops. I don't think the internet is going to stay on screen forever, i think there are alternative ways of displaying the information and i think it's going to try to integrate more into the real world.

The reason i chose twitter for this project as the website to bring into the real world and display in an alternative way is because it's a tool that quite a lot of people use. It's a tool that people use to communicate with each other and also with themselves:



This data that people update whenever they feel like expresses how they are feeling in that moment in time, or just what they're up to. But it just sits on a web page, or in their widget, or in a feed somewhere in the internet. this information that expresses their thoughts isn't being expressed in a very expressive way (too many expressives, i know).

The reason that i'm choosing to display this information in patterns is because i'm trying to get it away from a screen, i don't want to recreate a standard display. i want it to be visual as that's personally my favourite sense, and i want there to be a level of secrecy in what each pattern means as there is a level of deciphering that needs to be done in twitter, with all the leet speek and emoticons.

I admit that i do need to work on what words the program is looking for, but that just means trawling through the twitterverse to see what the most popular and most relevant phrases are.

I hope this finally gets people understanding what i'm trying to do. I'm finding it quite frustrating that no matter how many times i try to explain this, no body seems to get the point of it.

cool wearables



I want this coat. It seems pretty unassuming, but is actually a tool for people who crave personal space in crowded places or are just shy. Depending on how infringed the user feels, the coat emits the sound of a dog barking. It can be anything from a poodle's yap to a rottweilers bark. By Suzi Webster and Jordan Benwick.



This lovely little piece of jewelry is by Mouna Andraos. It displays the distance to a special physical place, such as your home, in relation to where you are now. It's designed to make the user feel more attached to a place that is important to them, and make the world seem a little smaller or bigger.



Jayne Wallace made this hand worn piece for her friend, as a symbol of her relationship with her homeland in Cyprus. A sensor in Cyprus detects when it rains and controls the piece which is in London. When a set amount of rain has been detected, the flower blossoms, letting the wearer feel connected to her homeland.



This piece was also made by Jayne Wallace, made for another friend. The piece contains various files which reflect the wearers memories, stories and dreams. The piece projects these files onto digital displays near the wearer, acting as a constant reminder.

27.11.08

the lilypad (omg)

The lilypad was developed by Leah Buckley and Sparkfun electronics. The aim of the project was to create a mass producible easy to program microprocessors to get a broad range of people experimenting with wearable technology.



This is the e-textile construction kit version 1.0, which introduced the idea of a construction kit for wearables. All the pieces were very square and bulky but show the basic idea.





Here are some soft version of the lilypad, which are more flexible than the mass producible version which i have, but couldn't be mass produced. The flexible version is made of conductive fabric, and the connections are made from conductive thread.

22.11.08

think i should explain it really...

my boobs lighting up actually has a communicative purpose.

each LED shows when a certain word is found in this twitter feed.



and here's the code controlling it all:

arduino code:


//getting it to keep one light lit up

int timer = 10000000; // The higher the number, the slower the timing.
int happy[] = { 5, 6,}; // an array of pin numbers
int sad[] = { 7, 8 };
int meh[] = { 9, 10 };
int love[] = { 11, 12 };
int fuming[] = { 13, 14 };
int num_pins = 10; // the number of pins (i.e. the length of the array)
int val;

void setup()
{
Serial.begin(9600);

int i;

for (i = 0; i < num_pins; i++) // the array elements are numbered from 0 to num_pins - 1
pinMode(happy[i], OUTPUT); // set each pin as an output
pinMode(sad[i], OUTPUT);
pinMode(meh[i], OUTPUT);
pinMode(love[i], OUTPUT);
pinMode(fuming[i], OUTPUT);
}

void loop()
{
int i;

if (Serial.available()) {
val = Serial.read();
if (val == 'A') {
digitalWrite(happy[i], HIGH);
}
else {
digitalWrite(happy[i], LOW);
}


if (val == 'B') {
digitalWrite(sad[i], HIGH);
}
else {
digitalWrite(sad[i], LOW);
}

if (val == 'C') {
digitalWrite(meh[i], HIGH);
}
else {
digitalWrite(meh[i], LOW);
}

if (val == 'D') {
digitalWrite(love[i], HIGH);
}
else {
digitalWrite(love[i], LOW);
}

if (val == 'E') {
digitalWrite(fuming[i], HIGH);
}
else {
digitalWrite(fuming[i], LOW);
}
}


}


and the processing code:


//finds a word, sends a signal to the lilypad then stops the loop.

import processing.serial.*;

Serial port;

String[] tokens; //array
int counter;

void setup() {
size(100, 100);

println(Serial.list());
port = new Serial(this,Serial.list()[0], 9600);

//load file and split up words
String[] lines = loadStrings("http://twitter.com/allemotional");
String allText = join(lines, " ");
tokens = splitTokens(allText, " ,.?!:;[]-");

}

//so it's now pulling in that sentence and splitting it up.

void draw() {
background(255);
fill(0);

String s = tokens[counter];
counter = (counter +1) % tokens.length;
//look at the words one at a time please



//is the word there?
if (s.equals("happy")) {
println("happy");
port.write('A');
noLoop(); //DON'T LOOP IT BAHBEE.


}

if (s.equals("sad")) {
println("sad");
port.write('B');
noLoop(); //DON'T LOOP IT BAHBEE.

}

if (s.equals("meh")) {
println("meh");
port.write('C');
noLoop(); //DON'T LOOP IT BAHBEE.

}

if (s.equals("love")) {
println("love");
port.write('D');
noLoop(); //DON'T LOOP IT BAHBEE.

}

if (s.equals("fuming")) {
println("fuming");
port.write('E');
noLoop(); //DON'T LOOP IT BAHBEE.

}

}


i need to think more about the words that i'm looking for, they really need to reflect what people say in twitter.

20.11.08

my boobs light up!

sheer awesome.



the mister approves.

this is what fail looks like.

trying to sign my processing app in terminal and failing miserably.

following this tutorial.



obviously i've blocked out my name and password because i don't want any of you hacking my mac, but that's what i'm trying to get working. but it wont. i don't know why.

why didn't i just do animation?

having to cheat in an ugly way

when / if i get this working, it will either be pure genius or horribly grotesque. Or simply not as efficient as i would like it to be.

Since the only thing that i've found that even points me slightly in the right direction on how to reset my processing app after it finds a word is this extremely uninformative thread in the processing forums, i think i'm going to have to cheat a bit.

Instead of getting the app to reset itself, i'm thinking of putting it in a web page that is set to refresh every few minutes, therefore refreshing the app.

hopefully.

the only problem with this is that since the app is being exported to a web page it needs to be signed, so it is allowed to access the lilypad. damn security restrictions on java apps!!!

This means i have to go into terminal and do some scripting on the java docs from there. SCARY. i haven't done any apple scripting on my mac (terrible, i know).

Although there is the redraw() function in processing, my problem is that my string of the twitter feed is pulled in inside the setup tag, which can only be loaded once. i've tried putting it inside the draw tag which can be loaded as many times as you feel like, but it isn't having it.

I'm also quite aware that we've got a crit tomorrow and what i have isn't that visually stunning. :/

14.11.08

looking at twitter

I've now got a piece of code that looks at a twitter feed and sends that information to an arduino board:

arduino code:

//getting it to keep one light lit up

int timer = 10000000; // The higher the number, the slower the timing.
int happy[] = { 6, 7,}; // an array of pin numbers
int spiffing[] = { 8, 9 };
int num_pins = 6; // the number of pins (i.e. the length of the array)
int val;

void setup()
{
Serial.begin(9600);

int i;

for (i = 0; i < num_pins; i++) // the array elements are numbered from 0 to num_pins - 1
pinMode(happy[i], OUTPUT); // set each pin as an output
pinMode(spiffing[i], OUTPUT);
}

void loop()
{
int i;

if (Serial.available()) {
val = Serial.read();
if (val == 'A') {
digitalWrite(happy[i], HIGH);
}
else {
digitalWrite(happy[i], LOW);
}


if (val == 'B') {
digitalWrite(spiffing[i], HIGH);
}
else {
digitalWrite(spiffing[i], LOW);
}
}
}


processing code:

//finds a word, sends a signal to the lilypad then stops the loop.

import processing.serial.*;

Serial port;

String[] tokens; //array
int counter;

void setup() {
size(100, 100);

println(Serial.list());
port = new Serial(this,Serial.list()[0], 9600);

//load file and split up words
String[] lines = loadStrings("http://twitter.com/allemotional");
String allText = join(lines, " ");
tokens = splitTokens(allText, " ,.?!:;[]-");

}

//so it's now pulling in that sentence and splitting it up.

void draw() {
background(255);
fill(0);

String s = tokens[counter];
counter = (counter +1) % tokens.length;
//look at the words one at a time please



//is the word there?
if (s.equals("happy")) {
println("happy");
port.write('A');
noLoop(); //DON'T LOOP IT BAHBEE.


}

if (s.equals("spiffing")) {
println("spiffing");
port.write('B');
noLoop(); //DON'T LOOP IT BAHBEE.

}

}


it's not perfect. i just need to sort out a way of getting the program to delay then restart after finding a word. That piece of code is eluding me at the moment.

13.11.08

the else function is a LIE.

but i have code that works the way i want it to, so i'm chuffed.

//the else function is a LIE. but the loop is working how i want it to, which is nice.

String[] tokens; //array
int counter;

void setup() {
size(100, 100);


//load file and split up words
String[] lines = loadStrings("words.txt");
String allText = join(lines, " ");
tokens = splitTokens(allText, " ,.?!:;[]-");

}

//so it's now pulling in that sentence and splitting it up.

void draw() {
background(255);
fill(0);

String s = tokens[counter];
counter = (counter +1) % tokens.length;
//look at the words one at a time please



//is the word there?
if (s.equals("happy")) {
println("happy");
noLoop(); //DON'T LOOP IT BAHBEE.

}

if (s.equals("spiffing")) {
println("spiffing");
noLoop(); //DON'T LOOP IT BAHBEE.

}

}