OUTside — INside
Many buildings in New York have facades that have no openings that reveals the outside. This system aims to bring the outside to the inside spaces. This generally means that when you are in a space that has no windows, firstly the system can make one aware of the time by triggering the sounds that a common to that time of day. Secondly, the system shows the specific times corelating to the sounds. Thirdly, the most likely activity that would be happening at that time.
The last layer would be to capture the image of the weather outside and project it using a projector to allow the person indoors to know what is happening outside. This will aid the person to know how to dress accordingly and what accessories are needed before he heads on outside. The captured feed is from a camera facing outside.
SYSTEMS DIAGRAM
PROCESSING CODE
import processing.sound.*;
SoundFile morningfile;
SoundFile midmorningfile;
SoundFile lunchfile;
SoundFile nightfile;
PImage sunrise;
PImage schooltime;
PImage lunchtime;
PImage nightsky;
void setup(){
size (1100,600);
morningfile = new SoundFile(this,”Bird_in_Rain.mp3");
midmorningfile = new SoundFile(this,”Bus_Noise.mp3");
lunchfile = new SoundFile(this,”Cafeteria_at_Lunch.mp3");
nightfile = new SoundFile(this,”Crickets_Night.mp3");
sunrise = loadImage (“sunrise.jpg”);
schooltime = loadImage(“schooltime.jpg”);
lunchtime = loadImage(“lunchtime.jpg”);
nightsky = loadImage(“nightsky.jpg”);
}
void draw() {
//morning start
if ((second()>0)&&(second()<15)) {
midmorningfile.stop();
lunchfile.stop();
nightfile.stop();
background(0);
image(sunrise,0,0);
textSize(48);
text(“6 AM”, 100,100);
fill(#0DDDFF);
translate(400,400);
rotate(radians(270));
int s = second(); // Values from 0–60
int m = minute(); // Values from 0–60
int h = hour(); // Values from 0–12
strokeWeight(8);
stroke(244,72,247);
noFill();
float end1 = map (s, 0, 60, radians(0), radians(360));
arc(0,0,300,300,0,end1);
push();
rotate(end1);
stroke(244,72,247);
line(0, 0, 100, 0);
pop();
stroke(74,247,72);
float end2 = map (m, 0, 60, radians(0), radians(360));
arc(0,0,280,280,0,end2);
push();
rotate(end2);
stroke(74,247,72);
line(0, 0, 75, 0);
pop();
stroke(72,79,247);
float end3 = map (h % 12, 0, 12, radians(0), radians(360));
arc(0,0,260,260,0,end3);
push();
rotate(end3);
stroke(72,79,247);
line(0, 0, 50, 0);
pop();
stroke(255,18,18);
point(0,0);
//this makes sure the file doesn’t play ontop of itself at every draw loop
if (morningfile.isPlaying()){
//do nothing
}
else {
morningfile.play();
}
//morning end
//midday start
} else if ((second()>15)&&(second()❤0)) {
morningfile.stop();
lunchfile.stop();
nightfile.stop();
background(0);
image(schooltime,0,0);
textSize(48);
text(“10 AM”, 100,200);
fill(#F5114A);
translate(400,400);
rotate(radians(270));
int s = second(); // Values from 0–60
int m = minute(); // Values from 0–60
int h = hour(); // Values from 0–12
strokeWeight(8);
stroke(244,72,247);
noFill();
float end1 = map (s, 0, 60, radians(0), radians(360));
arc(0,0,300,300,0,end1);
push();
rotate(end1);
stroke(244,72,247);
line(0, 0, 100, 0);
pop();
stroke(74,247,72);
float end2 = map (m, 0, 60, radians(0), radians(360));
arc(0,0,280,280,0,end2);
push();
rotate(end2);
stroke(74,247,72);
line(0, 0, 75, 0);
pop();
stroke(72,79,247);
float end3 = map (h % 12, 0, 12, radians(0), radians(360));
arc(0,0,260,260,0,end3);
push();
rotate(end3);
stroke(72,79,247);
line(0, 0, 50, 0);
pop();
stroke(255,18,18);
point(0,0);
if (midmorningfile.isPlaying()){
//do nothing
} else {
midmorningfile.play();
}
//midmorning end
//lunch start
} else if ((second()>30)&&(second()<45)) {
morningfile.stop();
midmorningfile.stop();
nightfile.stop();
background(0);
image(lunchtime,0,0);
textSize(48);
text(“2 PM”, 100,200);
fill(#8C30D8);
translate(400,400);
rotate(radians(270));
int s = second(); // Values from 0–60
int m = minute(); // Values from 0–60
int h = hour(); // Values from 0–12
strokeWeight(8);
stroke(244,72,247);
noFill();
float end1 = map (s, 0, 60, radians(0), radians(360));
arc(0,0,300,300,0,end1);
push();
rotate(end1);
stroke(244,72,247);
line(0, 0, 100, 0);
pop();
stroke(74,247,72);
float end2 = map (m, 0, 60, radians(0), radians(360));
arc(0,0,280,280,0,end2);
push();
rotate(end2);
stroke(74,247,72);
line(0, 0, 75, 0);
pop();
stroke(72,79,247);
float end3 = map (h % 12, 0, 12, radians(0), radians(360));
arc(0,0,260,260,0,end3);
push();
rotate(end3);
stroke(72,79,247);
line(0, 0, 50, 0);
pop();
stroke(255,18,18);
point(0,0);
if (lunchfile.isPlaying()){
//do nothing
} else {
lunchfile.play();
}
//lunch end
//night start
} else if ((second()>45)&&(second()<60)) {
morningfile.stop();
midmorningfile.stop();
lunchfile.stop();
background(0);
image(nightsky,0,0);
textSize(48);
text(“8 PM”, 100,200);
fill(#3DD830);
translate(400,400);
rotate(radians(270));
int s = second(); // Values from 0–60
int m = minute(); // Values from 0–60
int h = hour(); // Values from 0–12
strokeWeight(8);
stroke(244,72,247);
noFill();
float end1 = map (s, 0, 60, radians(0), radians(360));
arc(0,0,300,300,0,end1);
push();
rotate(end1);
stroke(244,72,247);
line(0, 0, 100, 0);
pop();
stroke(74,247,72);
float end2 = map (m, 0, 60, radians(0), radians(360));
arc(0,0,280,280,0,end2);
push();
rotate(end2);
stroke(74,247,72);
line(0, 0, 75, 0);
pop();
stroke(72,79,247);
float end3 = map (h % 12, 0, 12, radians(0), radians(360));
arc(0,0,260,260,0,end3);
push();
rotate(end3);
stroke(72,79,247);
line(0, 0, 50, 0);
pop();
stroke(255,18,18);
point(0,0);
if (nightfile.isPlaying()){
//do nothing
} else {
nightfile.play();
}
}
//night end
}
Processing can enable you to write complex codes for several circumstances. I had fun with this one although at one point the software kept on crashing and I had to adjust it to iterate what my idea was. Bring the OUTside to the INside.