Weatherbe (working title)

WEATHERBE – by Demi Kandylis, Ryan Rizzo and Heather Phenix

INSPIRATION

Our inspiration for the Weatherbe project was informed by nature, and the desire to render the weather into an artistic and comparative visualization of data from a specific set of cities across the globe. But why? For one, we found the important connection between weather and mood in humans to be intriguing, and the notion of how the relationship with one’s self can be deeply affected by weather patterns that are very much beyond our control. We thought about how weather is an increasingly common topic of conversation – often the basis of small talk – and more often the basis of important discussions surrounding disaster and the never-ending influx of opinions on global warming. It’s often the marker of how favourable a city is to live in, how we relate to each others’ state of being, whether together or apart, and how we decide on anything from which modes of transport to use, to how many layers to wear on a daily basis. Weather, in some ways, can be considered as central to how we live our lives as time.

References:
http://www.freewebs.com/partyhardinn/Relationship%20of%20Mood%20&%20Weather.pdf

When thinking about what kind of data visualizations could do justice to such a force, we realized that sometimes the most simple, uniform things can be the most effective. Our data sets needed to be representative of motion in an interesting way. We delved into creating mesmerizing simplicity of changing and interconnected shapes, and were inspired by Matthew and Susan Gorbet’s Chronos and Kairos project,  “a robotic suspended sculpture located at Gate 19 of the San Jose International Airport. An abstract timepiece. The choreographed movement of 65 suspended aluminum elements depict varying representations of time.”

Overall, we set out to play with temperature, wind speed, humidity and wind direction. We needed to create sketches that could build – increase and decrease – over time when fed weather API’s from cities of our choice…which brought us to our next question…which cities?

We thought in terms of our audience – the most relatively interesting cities would naturally be those of our classmates…displaying the mild, November humidity of Tehran, juxtaposed with the icy, snowy winds of Saskatoon, the dry desert heat of Beersheba, and the moderately cold Toronto would surely hit the mark.

Additional inspirations below:

Data vis- modern approaches
http://www.smashingmagazine.com/2007/08/02/data-visualization-modern-approaches/

Data vis processing code from Ben Fry (author of visualizing data)
http://benfry.com/writing/archives/3

Khan Academy
http://www.khanacademy.org/science/cosmology-and-astronomy

IBM think Exhibit Data Wall
http://www.behance.net/gallery/IBM-Think-Exhibit-Data-Wall/4619911?utm_source=Triggermail&utm_medium=email&utm_term=ALL&utm_campaign=MIH%20-%20November%2012

Amon Tobin’s show
http://www.youtube.com/watch?v=WWai4UZ0OqI

OPEN PROCESSING FAVES (H)

Curtain (like Harjot’s Kinect project)
http://www.openprocessing.org/sketch/20140

Tree
http://www.openprocessing.org/sketch/10318

Blobs
http://www.openprocessing.org/sketch/17043

Dough
http://www.openprocessing.org/sketch/65193

PROCESS

In creating the Weatherbee project, with the assigned wireless criteria in mind, we set out first to work together on creating something simple, that could be represented wirelessly through various forms of digital and physical light. The digital came first. Ryan and I discussed with Demi that our main goal for the project was to contribute to the coding, since this was not our strength and it was his. We discussed the use of projected light on mirrors, and looked at various examples of code that we found interesting to play with:
http://www.openprocessing.org/sketch/78479

http://www.openprocessing.org/sketch/25108

http://www.openprocessing.org/sketch/16965

http://www.openprocessing.org/sketch/5386

http://www.openprocessing.org/sketch/65193

Things got particularly frustrating when it came to the code. Ryan and I could create simple shapes that moved, but for whatever the reasons were, we never got to the point of implementing our work into the final product. Little did we know, Demi had been toiling away on a visualization that seemed to check the boxes for all of us in terms of its aesthetics. Here is the code he used:

CODE 

class Particle {
PVector location;
PVector velocity;
PVector acceleration;
float lifespan;
float wind;
PVector dir;
float temp;
float hum;
color col;

Particle(PVector l, float curLifespan) {
acceleration = new PVector(0,0.07);
velocity = new PVector(random(-1,1),random(-

2,0));
location = l.get();
lifespan = curLifespan;
}void run(WeatherObject wo) {wind = map(wo.wind,0,100,0,.5);
dir = wo.dir;
temp = wo.temp;
hum = wo.hum;
col = wo.col;update();
display();
}void update() {location.add(dir);
velocity.add(new PVector(wind*dir.x,wind*dir.y));
location.add(velocity);
lifespan -= 2.0;
}void display() {
fill(col,lifespan);
ellipse(location.x,location.y,2,2);
}boolean isDead() {
if (lifespan < 0.0) {
return true;
} else {
return false;
}
}
}class ParticleSystem {
ArrayList<Particle> particles;
float curLifespan = 400;

ParticleSystem() {
particles = new ArrayList<Particle>();
}

void addParticle() {
particles.add(new Particle(new PVector(width/2,50),curLifespan));
}

void run(int w, PVector d, int t, int h) {
Iterator<Particle> it = particles.iterator();
while (it.hasNext()) {
Particle p = it.next();
//p.run(w,d,t,h);
p.run(wo);
if (p.isDead()) {
it.remove();
}
}
}
}

class WeatherObject
{
String city;
float wind;
PVector dir;
float temp;
float hum;
color col;

void WeatherObject()
{

}
}

class XbeeMultiLightControl implements Runnable
{

int N = 0;
int NE = 1;
int E = 2;
int SE = 3;
int S = 4;
int SW = 5;
int W = 6;
int NW = 7;

int rVal = 100;
int gVal = 0;
int bVal = 0;

int fadeSpeed = 50;
int pulse = 10;

int[] payload;

boolean isRunning;

XBeeAddress64[] addr;

XBee xbee;

void XbeeMultiLightControl() {

}

void init()
{
println(“////////////////////////////////////”);

addr = new XBeeAddress64[4];
addr[0] = new XBeeAddress64(“00 13 a2 00 40 98 99 85”);
addr[1] = new XBeeAddress64(“00 13 a2 00 40 98 99 8c”);
addr[2] = new XBeeAddress64(“00 13 a2 00 40 98 99 83”);
addr[3] = new XBeeAddress64(“00 13 a2 00 40 92 d7 c7”);

xbee = new XBee();

try {
xbee.open(Serial.list()[0], 9600);
}  catch (Exception e) {
System.out.println(“XBee failed to initialize”);
e.printStackTrace();
System.exit(1);
}

}

void pulsate(int dir, int rv, int gv, int bv,int speed, int pulse)
{
fadeSpeed = speed;

payload = new int[] {rv, gv, bv, speed, pulse};

}

void run()
{
if (!isRunning)
{
//isRunning = true;
sendValue(addr[0], payload);
delay(fadeSpeed);
sendValue(addr[1], payload);
delay(fadeSpeed);
sendValue(addr[2], payload);
delay(fadeSpeed);
sendValue(addr[3], payload);

println(” thread is done!”);
xbeeThread.interrupt();
//isRunning = false;
}
}

void sendValue(XBeeAddress64 addr64, int[] payload)
{

ZNetTxRequest tx = new ZNetTxRequest(addr64, payload);

try{

ZNetTxStatusResponse status = (ZNetTxStatusResponse) xbee.sendSynchronous(tx, 500);
if (status.isSuccess()) {

}else{

}
} catch (XBeeException e) {
System.out.println(“NOOOO”+”\n”);

}}
}
And here is how it looked:
SETUP 
Demi created the Xbee setup which consisted initially of 4 breadboards with 2 LED’s each connected to 4 individual Xbees drawing from 4 rotating weather APIs. Lights were programmed to change colours according to the colour of the weather data being displayed on screen, which corresponded to weather API’s from 4 different cities (Tehran, Toronto, Bersheeba, Saskatoon). This weather data on screen was represented by a continuous loop of interconnected floating triangles, again, colour corresponding to individual city weather data, and direction and speed corresponding to wind direction and velocity from the weather APIs. Ryan and I toyed with a variety of light setups, and finally settled on using cubes with draft paper and cardboard as a base.
CONTEXT + FUTURE DIRECTIONS
There are many situations where we feel the Weatherbe could be a valuable installation, both indoors and outdoors. Whether displayed at an intersection on north, south, east and west corners of University ave, at an airport or a train terminal, there are many reasons you may be interested in “seeing” the weather. Maybe you’re in a controlled environment, like a car or an office building, and you want to know what it feels like outside. Maybe you’re waiting to board a plane and you want a quick overview of the current weather in the city you’re traveling to relative to where you are now. Or maybe you’re interested in having a smaller version of the installation in your home, representing cities that mean something to you, or to people you care about.
We think Weatherbe presents an efficient, vivid and beautiful way to experience the weather. It’s a unique way to visualize how the weather feels in various cities simultaneously, providing an accurate scope of various pieces of weather data with one simple display technique.

Comments are closed.