Page 1

int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Final Development Documentation Caitlin Ann Bain

void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++;

if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } }

void draw(){ begin; 40057624 Prototyping and Interactive Experiences Edinburgh Napier University

for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar

2.

3.

1.

4.

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

1. 2. 40057624 Prototyping and Interactive Experiences Edinburgh Napier University

3. 4.

class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

5.

void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

6.

class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

5. 6.

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

I

M

I

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar

8.

9.

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++;

7.

if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

7. 40057624 Prototyping and Interactive Experiences Edinburgh Napier University

8. 9.

class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


2.

3.

int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++;

1. 4.

5.

if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } }

1.

for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

2. 3. 4.

class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

5, 40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar

Assignment 1. - Triangular Route eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeee ee eeeeelleeee eeeee eeele meebe eeeeeee eeeee exeeeeeeee ee eeee eeee eee eeem eeeeeeeeee eeee ee. I eee eeeee eee eeeeeee ee eee eleee bex ee eee eeeeeee eeee eeeeeemeee. Teee eeeeeee ee eeeele beee eee eeeeeeee. Ie leeee ee eleeee eee JKCCe eeeeeeee exee eee ee eee eeeeeeeeee eee eeeeeeee eeee. Seeeeeee eee eeee eee eeeelle ee e eeee eee eeeekeee ebeee eee eexe eeek ee eeeee ee ee leee. ee Me eeeeelleeee eemee ee eeee eele ee eeeee eeeeeeee be eeeeeeeee eeeee eeeeemeeeee leke eee eeele eee ee e meeeeeee. I eeeeee ee eeee eeeeeeee bee emeee eeee eeeeeee emeee JKCC eeeee eee ee ee. 40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ямБll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Generative Art Installation void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Generative Art Installation void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Generative Art Installation void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Development void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Generative Art Installation void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Final Outcome void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false;

Arduino

This is our ďŹ rst project we did once given the Arduino kit. The project was basic to get our understanding of Arduino. He is images from the Arduino we Here used to light an LED.

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

} } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Arduino

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; Our first task was to wire and code the Arduino board so that it represented our names through the flashing of the LED’s through boolean alive; ArrayList morse code. The names in our group were Caitlin, Sal and Emmanuel. Once we figured the code out it didn’t take us too long to tail = new ArrayList();

crack. SymbolHead(int xini, int yini) { However it did take a while to wire, especially as we didn’t do it right the first couple of times. Above are images our final product x = xini; y = yini; which shows the names flashing in the LED’s.

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

chr = getRandomChar(); cont = 0; alive = true; }

Arduino

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Here we were introduced to the range of outputs we could use wih arduino. Above you can see us using a motor. Developing this, we were given a task to choose a product and using arduino to create a reaction that the product could have to light. g My group chose to create a phone case where the screen lid closed shut when the sunlight hits it. a Using the arduino box and card we made a scaled up mock model. The motor is rotating the lid open and shut, not the hand. Scaling up the model proved useful as we could hide the arduino board inside the case. We were then introduced to fritzing, as well as inputs. The one shown in the top right is a serial sonar sensor.

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; }

Arduino

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar

Assignment 2 - Tangible Time eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeee eeeeeeeee eee eeeeeee ee eee eee eee eee eeeee eeeeee eeeeee e eeeeeeeeee, eeeeeeeee eeeeeeeeeee eeeee eee eeee eeeeeeeeeeee ee eee eee eee eeeeeeee eee eeeeeeee ee eeee eeeeeeeeeee A eeeeeeeeee eeeeeee eeee ee eeee eeeeeeee, eeeeeeeeee eee eeeeeee Considerations s -eeee eeeeee eeeeee ee eeee eeeeeeeeee, eeeeeeeeee eee eeeeeeeee -A eeeeeeee ee eeee fieee eeeeee eeeeeee ee eeqeeeeee -eee fieee eeeeeeeee eeee eeee eeee eeeee ee eeeeeeeeeeee eeee eee eeeeeeeeeee -eee eeee eeeeee eee eee ee eeeeeeeeee eee eeeeeee ee eeeeee eeee eeeeeeee eeeeeeee -A eeee eeeeeeee eeeeeeeeee eeeeeeeee ee eeee fieee eeeeeee ee eeeeeeeee -Ceeeeeee eeeeeeee eee eeeeeeeee ee eeee eeeeee ee e eeeeeee eeeeeeeeeeee -eee eee eeeeeeeeeee eeeeeeee eeee eeeeeeeeee eeee eeee eeeeeee

Group Branding

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) {

SymbolTail cauda = (SymbolTail) tail.get(i); This is the presentation showing cauda.draw() our branding and what we wanted to give people who class SymbolHead { int i x, y; visited our exhibtion. We wanted int cont; something abstract, that would int speed = (int) random(5, 8); be thought provoking and make it char chr; boolean alive; quite uncomfortable for the user. ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar

Group Considerations ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss sssssssssssssssssssssssssssssssssssssssssssssssssssssss ssssss ssssssssss ssss ss sssssss ss ssss sssss sssss sssssss sss ss sss ssss sssss ssvs s ssffsssss sssssss ss ssss sssssss ss sssss ssssss ss sssssss ssssssssss Osss ss sssssss ss ssss ssss sss ss ssssss ss ssssss ss ssssssssss sssss ssvss sssss ‘ssss sss sss sss ss ss ssssss Asss sssssssss ss ss sssss sssssss ss ssvs ssss sssss ss sss sssss ss ssssss ssss sss sssss sss sss sssssssss sss sss ssssssss ss sss Ws ss sssss sss sssssssss ss sssss A sssss sssss sss ssss sssssWsss ssss ssss sss ssssssss ss ssssssss s ssssss ssssssss sssss sssss ssss ssssssssss ssss sss ssss ss ssssss ssssssss ss s sssss ssss sssss sssss s ssssss ss sss Osss sss ssss sssvss sss ssssss ssss sss ssss ssssssssss ssss s ssssss sssss sssss sss sssss ss sss ‘ssssss ssssss ssss sssssssss ssss sss Ass sss sssssss ss ssvs ss ssss ss s ssssssss ss s ssssss sssssfls? Tssssss sss sss ss ssss sssss

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

Age Prediction Cards

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; Tsss ss sss ssssss sssssss sss sssss ss sssss sss ssvs ssfts Tss ssss ss ssssss ss boolean alive; sss ssss ssss ssss ssvs ssss sssssss sss ssssssssvs sssssssssss ArrayList tail = new ArrayList(); SymbolHead(int s ssssssss ssss ssss sssssss Tss ssss ssssss ssssssss ss s ssssssssss sssssxini, int yini) { x = xini; ssttssss sssssss sss ssss ss Zsssss Tss ssss sssss ss sssss flsssss sss sssss y = yini; sssssssssss ss ssssssss ss ssvs s ssssssssss sssssss ss sssssssssschr = getRandomChar();

cont = 0; alive = true; }

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

These A4 boards are part of the concept of ‘Tangible Time’ and explain to the user what the numbers mean. Again, I designed this myself. Each card you get from the installation gives you a number of how many years SymbolHead(int xini, intyour yini) { you have left. You then look up your number and it show you an animal which lives for that long putting x = xini; y = yini; life in perspective. chr = getRandomChar(); cont = 0; 40057624 alive = true; } Prototyping and Interactive Experiences void draw() { Edinburgh Napier University iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++;

Thisif ((i((int) A2random(5) poster != 0) { tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); waschrcreated by = getRandomChar(); y++; myself to show} our if (y >method height/gridsize +of 40) { alive = false; process for the } assignment } ‘Tangible Time’. for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); It explains our cauda.draw() concept and { class SymbolHead int i x, y; how we arrived int cont; int speed = (int) random(5, 8); at this. char chr; boolean alive; It also ArrayList tail =shows new ArrayList(); our photo’s SymbolHead(int xini, intas yini) { x = xini; we progressed y = yini; chr = getRandomChar(); through thecont = 0; alive = true; project. } if (cont%speed == 0) {

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar float posX=0; float posX1 = 50; float posX2 = 100; float posX3 = 150; float posX4 = 200; float posX5 = 250; float flo posX6 = 300; float posX7 = 350; float posX8 = 400; float posX9 = 450; float posX10 = 500; float posX11 = 550; float posX12 = 600; float flo posX13 = 650; float posX14 = 700; float posX15 = 750; float posX16 = 800; float posX17 = 850; float posX18 = 900; float posX19 = 950; float flo posX20 = 1000; float posX21 = 1050; float posX22 = 1100; float posX23 = 1150; float posX24 = 1200; float posX25 = 1250; float posX26 = 1300; float flo posX27 = 1350; import processing.serial.*;

//column 1 position //column 2 position //column 3 position //column 4 position //column 5 position //column 6 position //column 7 position //column 8 position //column 9 position //column 10 position //column 11 position //column 12 position //column 13 position //column 14 position //column 15 position //column 16 position //column 17 position //column 18 position //column 19 position //column 20 position //column 21 position //column 22 position //column 23 position //column 24 position //column 25 position //column 26 position //column 27 position

Serial myPort; int val; int imgDisplay = 0; PFont font;

//loads font

float posY = -200; float posY1 = -400; flo float posY2 = -600; float posY3 = -800; float posY4 = -1000;

// these float posY’s // tell the //JPEG’s how far up //the Y-axis to begin

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

float gravity=0.005; float floorNum = -10; PImage a; PImage b; PImage c; PImage d; PImage e; PIma PImage f; PImage g; PImage h; PImage i; PImage j; PImage k; PImage l; PIma PImage m; PImage n; PImage o; PImage p; PImage q;

font = loadFont("Calibri-30.vlw"); SymbolHead(int //defines textxini, int yini) { textFont(font); x = xini;

//This tells the JPEG’s //When to stop

noCursor();

//These define images used

int run = 0; void setup() { size (1366, 680); //Size of program screen a = loadImage ("a.jpg"); b = loadImage ("b.jpg"); c = loadImage ("c.jpg"); d = loadImage ("d.jpg"); e = loadImage ("e.jpg"); //Loads images loadImage ("f.jpg"); f = loadIma g = loadImage ("g.jpg"); h = loadImage ("h.jpg"); i = loadImage ("i.jpg"); j = loadImage ("j.jpg"); k = loadImage ("k.jpg"); l = loadImage ("l.jpg"); loadImage ("m.jpg"); m = loadIma n = loadImage ("n.jpg"); o = loadImage ("o.jpg"); p = loadImage ("001.jpg"); q = loadImage ("002.jpg");

y = yini; chr = getRandomChar(); // shows no cursorcont = 0; alive = true; }

}

void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); if(imgDisplay == 0){ //shows zoreo ylogo text(chr, x * gridsize, * gridsize); image(q, 0, 0, width, height); //image cont++; }

void draw() {

if (cont%speed == 0) { ((int) random(5) != 0) { if ((i if (mousePressed == true) { mouse 20), chr)); tail.add(new SymbolTail(x, y,//press (int) random(10, imgDisplay //turns on scanning initialising imgDispl = 1; chr = getRandomChar(); image(p, 0, 0, width, height); //shows image y++; run = 0; } } if (y > height/gridsize + 40) { if( run == 1){ //once mouse pressed has released alive = false; image(a, posX, posY, a.width, a.height); //1st column +=gravity; // numbers fall posY +=g } if (posY>floorNum) { // if position y is less than floor num } posY=floorNum; // THEN pos will stop. } for (int i = 0; i < tail.size(); i++) {

SymbolTail cauda = (SymbolTail) tail.get(i); image(b, posX1, posY1, b.width, b.height); // 2cnd column cauda.draw() posY1 += gravity; if (posY1>floorNum) { class SymbolHead { posY1=floorNum; int i x, y; } int cont; int speed = (int) random(5, 8); image(c, posX2, posY2, c.width, c.height); // 3rd columnchar chr; posY2 += gravity; boolean alive; if (posY2>floorNum) { ArrayList tail = new ArrayList(); posY2=floorNum; } SymbolHead(int xini, int yini) { x = xini; image(d, posX3, posY3, d.width, d.height); //4th column y = yini; ima

chr = getRandomChar(); cont = 0; alive = true; }

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar posY2 += gravity; if (posY2>floorNum) { posY2=floorNum; }

posY +=gravity+1; if (posY>floorNum) { posY=floorNum; }

image(d, posX3, posY3, d.width, d.height); //4th column posY3 +=gravity; if (posY3>floorNum) { posY3=floorNum; }

image(j, posX10, posY, j.width, j.height); //11th column posY +=gravity+1; if (posY>floorNum) { posY=floorNum; }

image(e, posX4, posY, e.width, e.height); //5th column posY +=gravity; if (posY>floorNum) { posY=floorNum; } image(a, posX5, posY, a.width, a.height); //6th column posY +=gravity; if (posY>floorNum) { posY=floorNum; } image(f, posX6, posY1, f.width, f.height); //7th column +=gravity; posY1 +=g if (posY1>floorNum) { posY1=floorNum; } image(g, posX7, posY2, g.width, g.height); //8th column posY2 +=gravity+3; if (posY2>floorNum) { posY2=floorNum; } image(h, posX8, posY3, h.width, h.height); //9th column posY3 +=gravity+2; if (posY3>floorNum) { posY3=floorNum; } image(i, posX9, posY, i.width, i.height); //10th column ima

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

posY1 +=gravity+1; if (posY1>floorNum) { posY1=floorNum; }

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; image(b, posX17, posY2, b.width, b.height); //18th column alive = true; posY2 +=gravity+3; } if (posY2>floorNum) { posY2=floorNum; void draw() { } int rnd = (int) random(170, 255);

fill(255, 255, 255); image(k, posX11, posY1, k.width, k.height); //12th column image(c, posX18, posY3, c.width,text(chr, c.height); x * //19th gridsize,column y * gridsize); posY1 +=gravity+2; posY3 +=gravity+1; cont++; if (posY1>floorNum) { if (posY3>floorNum) { posY1=floorNum; posY3=floorNum; if (cont%speed == 0) { imgDisplay } imgDispl = 2; ((int) random(5) != 0) { if ((i } tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); image(l, posX12, posY2, l.width, l.height); //13th column chr = getRandomChar(); posY2 +=gravity+3; image(d, posX19, posY, d.width, d.height); //20th column y++; if (posY2>floorNum) { posY +=gravity; } posY2=floorNum; if (posY>floorNum) { } posY=floorNum; if (y > height/gridsize + 40) { image(m, posX13, posY3, m.width, m.height);//14th column posY3 +=gravity+1; +=g if (posY3>floorNum) { posY3=floorNum; } image(n, posX14, posY, n.width, n.height); //15th column posY +=gravity; if (posY>floorNum) { posY=floorNum; }

}

alive = false;

} image(e, posX20, posY, e.width, e.height); //21st column } posY +=gravity; if (posY>floorNum) { for (int i = 0; i < tail.size(); i++) { posY=floorNum; SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

}

class SymbolHead { int i x, y; image(f, posX21, posY1, f.width, f.height); //22cnd column int cont; posY1 +=gravity; int speed = (int) random(5, 8); image(m, posX15, posY, m.width, m.height); //16th column if (posY1>floorNum) { char chr; posY1=floorNum; posY +=gravity+2; boolean alive; if (posY>floorNum) { ArrayList tail = new ArrayList(); } posY=floorNum; } SymbolHead(int xini, int yini) { image(g, posX22, posY2, g.width, g.height); //23rd column ima x = xini; image(a, posX16, posY1, a.width, a.height); //17th column posY2 +=gravity; ima y = yini; chr = getRandomChar(); cont = 0; alive = true; }

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar if (posY2>floorNum) { posY2=floorNum;

text("Take your card. Good luck. Click to begin", width/3, height/2); }

}

image(h, posX23, posY3, h.width, h.height); //24th column } +=gravity; posY3 +=g if (posY3>floorNum) { posY3=floorNum; } } void mouseReleased() { image(i, posX24, posY, i.width, i.height); //25th column run = 1; posY +=gravity; posY = -200; if (posY>floorNum) { posY1 = -400; posY=floorNum; posY2 = -600; posY3 = -800; } posY4 = -1000; image(j, posX25, posY, j.width, j.height); //26th column posY +=gravity; gravity=0.005; if (posY>floorNum) { floorNum = -10; posY=floorNum; } } image(k, posX26, posY1, k.width, k.height); //27th column ima posY1 +=gravity; if (posY1>floorNum) { posY1=floorNum; } image(l, posX27, posY2, l.width, l.height); //28th column posY2 +=gravity; if (posY2>floorNum) { posY2=floorNum; } if (imgDisplay == 2){ background (0); fill(19,187,68); textSize (30);

//run the text screen //black background // text colour //text size

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); fill(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw()

This is the processing code I created to give the user the interaction class SymbolHead { experience. int i x, y; The user walks into the space and places their hand on the ipad where theint cont; int speed = (int) random(5, 8); hand is ‘scanned’ using an external app. char chr; When the user presses on the mouse, the first part of the code runs and thealive; boolean ArrayList tail = new ArrayList(); user see’s a ‘Scanning initialising’ screen. xini, int yini) { When the ipad is released (and the mouse underneath), the SymbolHead(int numbers rolling x = xini; screen starts and then a card is dispensed from the machine. y = yini; chr = getRandomChar(); cont = 0; alive = true; }

void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++;

This is the ďŹ rst screen the user sees when they walk into the booth. The zoreo logo.

if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; }

When the user presses the ipad, the mouse underneath is if (y > height/gridsize + 40) { pressed and this screen runs for as long as the scanning app alive = false; goes.

} }

for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++;

When the ipad/ mouse is released, this tells the program to run this part of the code. The JPEGâ&#x20AC;&#x2122;s all run down the screen until they reach a designated point. Once all the numbers have fallen, the following screen appears.

if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; }

This screen appears after the scrolling numbers, it then (y > height/gridsize + 40) { prompts the user to take a card and exit the ifbooth where alive = false; they can view what number they have on the poster.

} }

for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);


int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList(); Ar

Setting up for the exhibition

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { int rnd = (int) random(170, 255); ďŹ ll(255, 255, 255); text(chr, x * gridsize, y * gridsize); cont++; if (cont%speed == 0) { ((int) random(5) != 0) { if ((i tail.add(new SymbolTail(x, y, (int) random(10, 20), chr)); chr = getRandomChar(); y++; } if (y > height/gridsize + 40) { alive = false; } } for (int i = 0; i < tail.size(); i++) { SymbolTail cauda = (SymbolTail) tail.get(i); cauda.draw() class SymbolHead { int i x, y; int cont; int speed = (int) random(5, 8); char chr; boolean alive; ArrayList tail = new ArrayList();

40057624 Prototyping and Interactive Experiences Edinburgh Napier University

SymbolHead(int xini, int yini) { x = xini; y = yini; chr = getRandomChar(); cont = 0; alive = true; } void draw() { iint rnd = (int) random(170, 255);

Final Development Document  

This publication shows the work and progress made through the module Prototyping Interactive Experiences.

Read more
Read more
Similar to
Popular now
Just for you