school – john locke http://gracefulspoon.com/blog adventures in architecture Mon, 28 Jan 2019 17:44:26 +0000 en-US hourly 1 https://wordpress.org/?v=6.1.6 Hacking the Urban Experience – LINK NYC http://gracefulspoon.com/blog/2017/11/04/hacking-the-urban-experience-link-nyc/ http://gracefulspoon.com/blog/2017/11/04/hacking-the-urban-experience-link-nyc/#comments Sat, 04 Nov 2017 20:30:51 +0000 http://gracefulspoon.com/blog/?p=4199 A story in four parts:

 


What It Means for Consumers and Brands That New York Is Becoming a ‘Smart City’


Free Wi-Fi Kiosks Were to Aid New Yorkers. An Unsavory Side Has Spurred a Retreat.


LinkNYC kiosks not a hit with everyone


NYC nixes kiosk browsers after homeless commandeer their use

 
 

With little fanfare or prior warning, they began bolting the LinkNYC kiosks to the sidewalks in early 2016. Greeted with little more than a New York shrug, these were blatant pedestrian-scale digital billboards. An upgrade from the static posters on bus stops and phone booths. The trade-off for tolerating these new advertising intrusions was the promise of new “world-class” free wifi (of which an email address was initially required) and an internet-enabled, built-in tablet. Instantly, certainly apocryphal stories of rampant homeless porn-watching quickly spread, though a quick look through the offending media images showed that the concern seemed more to do with less desirable folks congregating and watching youtube videos or making voip calls instead of “moving along”. It should also be noted that these kiosks are not evenly distributed throughout the city, but rather more heavily located uptown – either through the result of human decision-making or a black box ROI algorithm is unclear. Seven months after the initial roll-out, access to internet for all passersby was either completely shut off or severely curtailed, though the digital signs remained.

 

Our course at Columbia, Hacking the Urban Experience, is invested in architectural street interventions at a neighborhood scale. As it appears that the design and implementation of these is driven by public-private advertising concerns (LinkNYC’s parent company is Alphabet’s Google), rather than architects or city planners, the first assignment of the course looked at ways to both acknowledge that these things now exist on NYC streets and to non-invasively study ways that they can be adapted. In the same manner that steetlight poles can act as support posts for help wanted or missing person signs, how can the Link NYC kiosks adapt and provide actual value to the street?

 

Below are samples of prototypes that were constructed in one week, with the expressed goal of adapting and testing how simple acts and gestures can impact our relation to these structures and public space around us. These kiosks inadvertently provide a number of opportunities – the bright screen can illuminate objects, the usb ports are charged and can power a desk fan, and the invisible wifi signals can define an actual physical space. These interventions became the foundation of a framework to discuss who is public space for, and who can stop and enjoy listening to a song by Slipknot on the sidewalk without a resulting pearl-clutching article by the Times.

 
 









 
 
]]>
http://gracefulspoon.com/blog/2017/11/04/hacking-the-urban-experience-link-nyc/feed/ 2
Hacking the Urban Experience – Student Work http://gracefulspoon.com/blog/2017/03/14/hacking-the-urban-experience-student-work/ http://gracefulspoon.com/blog/2017/03/14/hacking-the-urban-experience-student-work/#comments Tue, 14 Mar 2017 17:27:23 +0000 http://gracefulspoon.com/blog/?p=4175 wind01

wind02

wind03

wind04

 
 

Final work from the class last year, the product of a collaboration between the Parks Department, The Columbus Amsterdam BID, and Lincoln Square. These modular, mobile, interactive wind harps were installed across the street from Lincoln Center and later during the 106th Street Family Days. The colorful wind harps were made from off-the-shelf roofing material and each produced a distinct tone when ambient wind from the street funneled down the Broadway/Amsterdam Junction passed through the apertures and reverberated through the hollow column, plucking the various string widths and producing sound of various, distinct pitch. The concept was adapted from the design of Aeolian Harps – passive wind instrument which many people “find alludes to higher realms”. These also worked as improvisational instruments, that could be played on the street by passersby. The bright colors created a welcoming sight which invited participation and the strings made the foreign-seeming objects instantly recognizable as a harp/guitar like stringed instrument.

]]>
http://gracefulspoon.com/blog/2017/03/14/hacking-the-urban-experience-student-work/feed/ 1
School’s in for Fall http://gracefulspoon.com/blog/2014/09/05/schools-in-for-fall/ http://gracefulspoon.com/blog/2014/09/05/schools-in-for-fall/#respond Fri, 05 Sep 2014 15:59:46 +0000 http://gracefulspoon.com/blog/?p=3614 fall_2013

BE THERE YALL!

 

Past course work:
http://hackingtheurbanexperience.tumblr.com/

]]>
http://gracefulspoon.com/blog/2014/09/05/schools-in-for-fall/feed/ 0
global panopticon http://gracefulspoon.com/blog/2009/06/02/global-panopticon/ http://gracefulspoon.com/blog/2009/06/02/global-panopticon/#comments Tue, 02 Jun 2009 17:41:40 +0000 http://gracefulspoon.com/blog/?p=533 beijing01

 

I didn’t really cut anything from the presentation included below. So, yeah, there’s a lot of slides. It’s (almost) the entire final presentation. I left it pretty much intact because not only 1) I can never edit my own work, but 2) the project is conceived more as a sci-fi narrative of Beijing and it will hopefully make more sense if read in complete order. And you can always just scroll way down to the end for some sweet images. This was for Ed Keller’s SpeedTerritoryCommunication studio, Spring 2009.

 

quick project description:
Architecture is a system of control predicated on limitations. This project is a study of the existing control systems in Beijing and a projection of how architecture and technology will merge to change not only prisons, but also the urban environment, the social stratification of society. Also addressed are what confinement and freedom will mean in relation to our relationship with how we build our world.

 

locke_final

locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2
locke_final2

]]>
http://gracefulspoon.com/blog/2009/06/02/global-panopticon/feed/ 7
component systems http://gracefulspoon.com/blog/2009/06/01/component-systems/ http://gracefulspoon.com/blog/2009/06/01/component-systems/#respond Mon, 01 Jun 2009 13:47:07 +0000 http://gracefulspoon.com/blog/?p=526 comp-sys
It was a certainly good times working with Professor Joe Vidich as teaching assistant for the courses Intro to Digital Fabrication and Advanced Fabrication: Component Systems. In component systems we only had five students, and they were pushed really hard, but there was some great work. I appreciated the sensibility that yes, we would make some cool stuff with the machines, but we also would test it for performance using structural engineering analysis, and explore material properties using Solidworks parametric models. It was an ambitious agenda for a short course, and the waterjet was un-operational pretty much the whole time, but the students came through with some sweet projects using the laser cut plexi and the heat bender, the metal mill as well as the 3d printer. Visit the class blog here.
Student work above from left: HoKyung Lee, JiYoon Oh, Kiseok Oh, Dave Kwon and Christo Logan

]]>
http://gracefulspoon.com/blog/2009/06/01/component-systems/feed/ 0
beijing 2014 http://gracefulspoon.com/blog/2009/05/29/beijing-2014/ http://gracefulspoon.com/blog/2009/05/29/beijing-2014/#respond Fri, 29 May 2009 22:15:39 +0000 http://gracefulspoon.com/blog/?p=509 01
single-cell-section

 

Detail from my final studio presentation of one symbiotic cell. See also a sankey diagram of the flows of energy through this system here.

]]>
http://gracefulspoon.com/blog/2009/05/29/beijing-2014/feed/ 0
interactive elevator installation http://gracefulspoon.com/blog/2009/05/24/interactive-elevator-installation/ http://gracefulspoon.com/blog/2009/05/24/interactive-elevator-installation/#respond Sun, 24 May 2009 21:03:50 +0000 http://gracefulspoon.com/blog/?p=497 living01
For our living architecture course, we created an interactive light installation in the elevator of Avery Hall, controllable by anyone with a cell phone and a twitter account. The simplified process includes texting an emotion to twitter from any cellular phone using the #livarch hashtag. That tweet is then picked up by a realtime search, fed through our twitterfeed rss, then added to our own twitter account. For a more detailed explanation, see this previous post on getting multiple twitter users onto one twitter feed. That emotion is then directed to our pachube feed and sent through processing to an arduino microcontroller that controls the color and pulsing of the individual leds. The installation non-invasively attaches to the surface of the elevator via magnets. Allowing it to be placed on any metal surface, such as a building exterior, furniture, or a vehicle.

 

The lights within the elevator respond to the mood of the user. For instance, if a student texted “happy #livarch” the space within the elevator would begin to slowly pulse with a greenish/blue hue. However, if another student sent “angry #livarch” the first light will quickly flash a bright red. There are twelve lights total and show the collective mood of the twelve most recent users.

 

In this way, the elevator becomes a living representation of the collective mood of the building, but it is also hoped that a feedback loop can be created, a loop that actually influences the mood of those that ride the elevator. The emotion felt in the lobby will be altered by the time you reach the sixth floor. And that new emotion becomes what gets texted back to the elevator.

 

Lastly, future installations will be physically located away from the target user. For instance, Avery’s mood will be projected to the elevator in Uris Hall and vice versa. In this manner, we can both create a new form of pen-pal with distant locations, but also hope that our mood, whether angry, sad, happy or nervous, will both manifest itself in a new form of architecture, but also have an effect on the greater world around us.

 

The project team also included Talya Jacobs and Guanghong Ou.
See more for video and code:

 

living02c

living02b

living02

living03

living03b

living04

living05

living06

Super-Long Source Code:
The main thing to remember is in arduino to load the ‘standard firmata’ library and in processing to use the EEML language d.getStringValue(0); to make sure the value of stream id 0 is a word, or string, rather than a numeric value.

import processing.serial.*;
import cc.arduino.*;

import eeml.*;

Serial port; //Create object from Serial class

Arduino arduino;

String myValue;

String Led1Status;
String Led2Status;
String Led3Status;
String Led4Status;
String Led5Status;
String Led6Status;

String turnAngry = “angry”;
String turnAngryLiv = “angry_#livarch”;

String turnCalm = “calm”;
String turnCalmLiv = “calm_#livarch”;

String turnRelaxed = “relaxed”;
String turnRelaxedLiv = “relaxed_#livarch”;

String turnNervous = “nervous”;
String turnNervousLiv = “nervous_#livarch”;

String turnHappy = “happy”;
String turnHappyLiv = “happy_#livarch”;

String turnSad = “sad”;
String turnSadLiv = “sad_#livarch”;

DataIn dIn;

int value = 0;
int x = 0;
//int waitTime= 30; // 10ms delay

int Led1Red = 13;
int Led1Green = 2;
int Led1Blue = 3;

int Led2Red = 4;
int Led2Green = 5;
int Led2Blue = 6;

int Led3Red = 7;
int Led3Green = 8;
int Led3Blue = 9;

int Led4Red = 10;
int Led4Green = 11;
int Led4Blue = 12;

int Led5Red = 14;
int Led5Green = 15;
int Led5Blue = 16;

int Led6Red = 17;
int Led6Green = 18;
int Led6Blue = 19;

void setup()
{
frameRate(200);

println(Arduino.list());
arduino = new Arduino(this, Arduino.list()[0], 115200);

dIn = new DataIn(this, “http://www.pachube.com/api/1499.xml”, “fe2ac5cde083af08a353b9862a8d65b4d62caf94a40bfa5e6ea90f82f244f0ac”, 50000);
println(Serial.list());

arduino.pinMode(Led6Red, Arduino.OUTPUT);
arduino.pinMode(Led6Green, Arduino.OUTPUT);
arduino.pinMode(Led6Blue, Arduino.OUTPUT);
}

void draw(){
x += 1;
if (x>2){ //Set Time Here
x = 0;
x+= 1;
}

println(x);
if (x == 2) {
//if (Led1Status != myValue){
Led6Status = Led5Status;
Led5Status = Led4Status;
Led4Status = Led3Status;
Led3Status = Led2Status;
Led2Status = Led1Status;
Led1Status = myValue;
//}
}
println(“led2Status: ” + Led1Status);
println(“led2Status: ” + Led2Status);
println(“led3Status: ” + Led3Status);
println(“led4Status: ” + Led4Status);
println(“led5Status: ” + Led4Status);
println(“led6Status: ” + Led4Status);

//——————–IF/THEN-LED5————————————————————-

if((turnAngry.equals(Led5Status)) || (turnAngryLiv.equals(Led5Status))){
angry5();
}
else

if((turnCalm.equals(Led5Status)) || (turnCalmLiv.equals(Led5Status))){
calm5();
}
else

if((turnNervous.equals(Led5Status)) || (turnNervousLiv.equals(Led5Status))){
nervous5();
}
else

if((turnHappy.equals(Led5Status)) || (turnHappyLiv.equals(Led5Status))){
happy5();
}
else

if((turnSad.equals(Led5Status)) || (turnSadLiv.equals(Led5Status))){
sad5();
}

//——————–IF/THEN-LED4————————————————————-

if((turnAngry.equals(Led4Status)) || (turnAngryLiv.equals(Led4Status))){
angry4();
}
else

if((turnCalm.equals(Led4Status)) || (turnCalmLiv.equals(Led4Status))){
calm4();
}
else

if((turnNervous.equals(Led4Status)) || (turnNervousLiv.equals(Led4Status))){
nervous4();
}
else

if((turnHappy.equals(Led4Status)) || (turnHappyLiv.equals(Led4Status))){
happy4();
}
else

if((turnSad.equals(Led4Status)) || (turnSadLiv.equals(Led4Status))){
sad4();
}

//——————–IF/THEN-LED3————————————————————-

if((turnAngry.equals(Led3Status)) || (turnAngryLiv.equals(Led3Status))){
angry3();
}
else

if((turnCalm.equals(Led3Status)) || (turnCalmLiv.equals(Led3Status))){
calm3();
}
else

if((turnNervous.equals(Led3Status)) || (turnNervousLiv.equals(Led3Status))){
nervous3();
}
else

if((turnHappy.equals(Led3Status)) || (turnHappyLiv.equals(Led3Status))){
happy3();
}
else

if((turnSad.equals(Led3Status)) || (turnSadLiv.equals(Led3Status))){
sad3();
}

//——————–IF/THEN-LED2————————————————————-

if((turnAngry.equals(Led2Status)) || (turnAngryLiv.equals(Led2Status))){
angry2();
}
else

if((turnCalm.equals(Led2Status)) || (turnCalmLiv.equals(Led2Status))){
calm2();
}
else

if((turnNervous.equals(Led2Status)) || (turnNervousLiv.equals(Led2Status))){
nervous2();
}
else

if((turnHappy.equals(Led2Status)) || (turnHappyLiv.equals(Led2Status))){
happy2();
}
else

if((turnSad.equals(Led2Status)) || (turnSadLiv.equals(Led2Status))){
sad2();
}

//——————–IF/THEN-LED1————————————————————-

if((turnAngry.equals(Led1Status)) || (turnAngryLiv.equals(Led1Status))){
angry1();
}
else

if((turnCalm.equals(Led1Status)) || (turnCalmLiv.equals(Led1Status))){
calm1();
}
else

if((turnNervous.equals(Led1Status)) || (turnNervousLiv.equals(Led1Status))){
nervous1();
}
else

if((turnHappy.equals(Led1Status)) || (turnHappyLiv.equals(Led1Status))){
happy1();
}
else

if((turnSad.equals(Led1Status)) || (turnSadLiv.equals(Led1Status))){
sad1();
}

//——————–IF/THEN-LED6————————————————————-

if((turnAngry.equals(Led6Status)) || (turnAngryLiv.equals(Led6Status))){
angry6();
}
else

if((turnCalm.equals(Led6Status)) || (turnCalmLiv.equals(Led6Status))){
calm6();
}
else

if((turnNervous.equals(Led6Status)) || (turnNervousLiv.equals(Led6Status))){
nervous6();
}
else

if((turnHappy.equals(Led6Status)) || (turnHappyLiv.equals(Led6Status))){
happy6();
}
else

if((turnSad.equals(Led6Status)) || (turnSadLiv.equals(Led6Status))){
sad6();
}

}

//——————–CALM——–CALM————————————————————–

void calm1(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led1Blue, value); arduino.analogWrite(Led1Green, 130); arduino.analogWrite(Led1Red, 0); delay(25); } for(value = 255; value >=0; value –)
{
arduino.analogWrite(Led1Blue, value);
arduino.analogWrite(Led1Green, 130);
arduino.analogWrite(Led1Red, 0);
delay(25);
}
}

void calm2(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led2Blue, value); arduino.analogWrite(Led2Green, 130); arduino.analogWrite(Led2Red, 0); delay(25); } for(value = 255; value >=0; value –)
{
arduino.analogWrite(Led2Blue, value);
arduino.analogWrite(Led2Green, 130);
arduino.analogWrite(Led2Red, 0);
delay(25);
}
}

void calm3(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led3Blue, value); arduino.analogWrite(Led3Green, 130); arduino.analogWrite(Led3Red, 0); delay(25); } for(value = 255; value >=0; value –)
{
arduino.analogWrite(Led3Blue, value);
arduino.analogWrite(Led3Green, 130);
arduino.analogWrite(Led3Red, 0);
delay(25);
}
}

void calm4(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led4Blue, value); arduino.analogWrite(Led4Green, 130); arduino.analogWrite(Led4Red, 0); delay(25); } for(value = 255; value >=0; value –)
{
arduino.analogWrite(Led4Blue, value);
arduino.analogWrite(Led4Green, 130);
arduino.analogWrite(Led4Red, 0);
delay(25);
}
}

void calm5(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led5Blue, value); arduino.analogWrite(Led5Green, 130); arduino.analogWrite(Led5Red, 0); delay(25); } for(value = 255; value >=0; value –)
{
arduino.analogWrite(Led5Blue, value);
arduino.analogWrite(Led5Green, 130);
arduino.analogWrite(Led5Red, 0);
delay(25);
}
}

void calm6(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led6Blue, value); arduino.analogWrite(Led6Green, 130); arduino.analogWrite(Led6Red, 0); delay(25); } for(value = 255; value >=0; value –)
{
arduino.analogWrite(Led6Blue, value);
arduino.analogWrite(Led6Green, 130);
arduino.analogWrite(Led6Red, 0);
delay(25);
}
}

//——————–ANGRY——–ANGRY————————————————————–

void angry1(){
arduino.analogWrite(Led1Red,255);
//arduino.analgoWrite(Led1Green, 0);
arduino.analogWrite(Led1Blue, 0);
delay(10);
arduino.analogWrite(Led1Red,0);
//arduino.analgoWrite(Led1Green, 0);
arduino.analogWrite(Led1Blue, 0);
delay(10);
}

void angry2(){
arduino.analogWrite(Led2Red,255);
//arduino.analgoWrite(Led2Green, 0);
arduino.analogWrite(Led2Blue, 0);
delay(10);
arduino.analogWrite(Led2Red,0);
//arduino.analgoWrite(Led2Green, 0);
arduino.analogWrite(Led2Blue, 0);
delay(10);
}

void angry3(){
arduino.analogWrite(Led3Red,255);
//arduino.analgoWrite(Led3Green, 0);
arduino.analogWrite(Led3Blue, 0);
delay(10);
arduino.analogWrite(Led3Red,0);
//arduino.analgoWrite(Led3Green, 0);
arduino.analogWrite(Led3Blue, 0);
delay(10);
}

void angry4(){
arduino.analogWrite(Led4Red,255);
//arduino.analgoWrite(Led4Green, 0);
arduino.analogWrite(Led4Blue, 0);
delay(10);
arduino.analogWrite(Led4Red,0);
//arduino.analgoWrite(Led4Green, 0);
arduino.analogWrite(Led4Blue, 0);
delay(10);
}

void angry5(){
arduino.analogWrite(Led5Red,255);
//arduino.analgoWrite(Led5Green, 0);
arduino.analogWrite(Led5Blue, 0);
delay(10);
arduino.analogWrite(Led5Red,0);
//arduino.analgoWrite(Led5Green, 0);
arduino.analogWrite(Led5Blue, 0);
delay(10);
}

void angry6(){
arduino.analogWrite(Led6Red,255);
//arduino.analgoWrite(Led6Green, 0);
arduino.analogWrite(Led6Blue, 0);
delay(10);
arduino.analogWrite(Led6Red,0);
//arduino.analgoWrite(Led6Green, 0);
arduino.analogWrite(Led6Blue, 0);
delay(10);
}

//——————–Nervous——–Nervous————————————————————–

void nervous1(){
arduino.analogWrite(Led1Green,255);
arduino.analogWrite(Led1Red, 120);
arduino.analogWrite(Led1Blue, 0);
delay(300);
arduino.analogWrite(Led1Green,0);
arduino.analogWrite(Led1Red,120);
arduino.analogWrite(Led1Blue, 0);
delay(300);
}

void nervous2(){
arduino.analogWrite(Led2Green,255);
arduino.analogWrite(Led2Red, 120);
arduino.analogWrite(Led2Blue, 0);
delay(300);
arduino.analogWrite(Led2Green,0);
arduino.analogWrite(Led2Red,120);
arduino.analogWrite(Led2Blue, 0);
delay(300);
}

void nervous3(){
arduino.analogWrite(Led3Green,255);
arduino.analogWrite(Led3Red, 120);
arduino.analogWrite(Led3Blue, 0);
delay(300);
arduino.analogWrite(Led3Green,0);
arduino.analogWrite(Led3Red,120);
arduino.analogWrite(Led3Blue, 0);
delay(300);
}

void nervous4(){
arduino.analogWrite(Led4Green,255);
arduino.analogWrite(Led4Red, 120);
arduino.analogWrite(Led4Blue, 0);
delay(300);
arduino.analogWrite(Led4Green,0);
arduino.analogWrite(Led4Red,120);
arduino.analogWrite(Led4Blue, 0);
delay(300);
}

void nervous5(){
arduino.analogWrite(Led5Green,255);
arduino.analogWrite(Led5Red, 120);
arduino.analogWrite(Led5Blue, 0);
delay(300);
arduino.analogWrite(Led5Green,0);
arduino.analogWrite(Led5Red,120);
arduino.analogWrite(Led5Blue, 0);
delay(300);
}

void nervous6(){
arduino.analogWrite(Led6Green,255);
arduino.analogWrite(Led6Red, 120);
arduino.analogWrite(Led6Blue, 0);
delay(300);
arduino.analogWrite(Led6Green,0);
arduino.analogWrite(Led6Red,120);
arduino.analogWrite(Led6Blue, 0);
delay(300);
}

//——————–Happy——–Happy————————————————————–

void happy1(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led1Blue, value); arduino.analogWrite(Led1Green, 255-value); arduino.analogWrite(Led1Red, 0); delay(25); } for(value = 255; value >=0; value -=15)
{
arduino.analogWrite(Led1Blue, value);
arduino.analogWrite(Led1Green, 255-value);
arduino.analogWrite(Led1Red, 0);
delay(25);
}
}

void happy2(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led2Blue, value); arduino.analogWrite(Led2Green, 255-value); arduino.analogWrite(Led2Red, 0); delay(25); } for(value = 255; value >=0; value -=15)
{
arduino.analogWrite(Led2Blue, value);
arduino.analogWrite(Led2Green, 255-value);
arduino.analogWrite(Led2Red, 0);
delay(25);
}
}

void happy3(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led3Blue, value); arduino.analogWrite(Led3Green, 255-value); arduino.analogWrite(Led3Red, 0); delay(25); } for(value = 255; value >=0; value -=15)
{
arduino.analogWrite(Led3Blue, value);
arduino.analogWrite(Led3Green, 255-value);
arduino.analogWrite(Led3Red, 0);
delay(25);
}
}

void happy4(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led4Blue, value); arduino.analogWrite(Led4Green, 255-value); arduino.analogWrite(Led4Red,0); delay(25); } for(value = 255; value >=0; value -=15)
{
arduino.analogWrite(Led4Blue, value);
arduino.analogWrite(Led4Green, 255-value);
arduino.analogWrite(Led4Red, 0);
delay(25);
}
}

void happy5(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led5Blue, value); arduino.analogWrite(Led5Green,255-value); arduino.analogWrite(Led5Red, 0); delay(25); } for(value = 255; value >=0; value -=15)
{
arduino.analogWrite(Led5Blue, value);
arduino.analogWrite(Led5Green, 255-value);
arduino.analogWrite(Led5Red, 0);
delay(25);
}
}

void happy6(){

for(value = 0; value<=255; value++){ arduino.analogWrite(Led6Blue, value); arduino.analogWrite(Led6Green, 255-value); arduino.analogWrite(Led6Red, 0); delay(25); } for(value = 255; value >=0; value -=15)
{
arduino.analogWrite(Led6Blue, value);
arduino.analogWrite(Led6Green, 255-value);
arduino.analogWrite(Led6Red, 0);
delay(25);
}
}

//——————–Sad——–Sad————————————————————–

void sad1(){

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led1Blue, value); arduino.analogWrite(Led1Green, 0); arduino.analogWrite(Led1Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led1Blue, 255);
arduino.analogWrite(Led1Green, value);
arduino.analogWrite(Led1Red, 0);
delay(10);
}

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led1Blue, 255-value); arduino.analogWrite(Led1Green, 255); arduino.analogWrite(Led1Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led1Blue, 120);
arduino.analogWrite(Led1Green, 255-value);
arduino.analogWrite(Led1Red, 0);
delay(10);
}
}

void sad2(){

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led2Blue, value); arduino.analogWrite(Led2Green, 0); arduino.analogWrite(Led2Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led2Blue, 255);
arduino.analogWrite(Led2Green, value);
arduino.analogWrite(Led2Red, 0);
delay(10);
}

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led2Blue, 255-value); arduino.analogWrite(Led2Green, 255); arduino.analogWrite(Led2Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led2Blue, 120);
arduino.analogWrite(Led2Green, 255-value);
arduino.analogWrite(Led2Red, 0);
delay(10);
}
}

void sad3(){

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led3Blue, value); arduino.analogWrite(Led3Green, 0); arduino.analogWrite(Led3Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led3Blue, 255);
arduino.analogWrite(Led3Green, value);
arduino.analogWrite(Led3Red, 0);
delay(10);
}

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led3Blue, 255-value); arduino.analogWrite(Led3Green, 255); arduino.analogWrite(Led3Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led3Blue, 120 );
arduino.analogWrite(Led3Green, 255-value);
arduino.analogWrite(Led3Red, 0);
delay(10);
}
}

void sad4(){

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led4Blue, value); arduino.analogWrite(Led4Green, 0); arduino.analogWrite(Led4Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led4Blue, 255);
arduino.analogWrite(Led4Green, value);
arduino.analogWrite(Led4Red, 0);
delay(10);
}

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led4Blue, 255-value); arduino.analogWrite(Led4Green, 255); arduino.analogWrite(Led4Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led4Blue, 120);
arduino.analogWrite(Led4Green, 255-value);
arduino.analogWrite(Led4Red, 0);
delay(10);
}
}

void sad5(){

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led5Blue, value); arduino.analogWrite(Led5Green, 0); arduino.analogWrite(Led5Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led5Blue, 255);
arduino.analogWrite(Led5Green, value);
arduino.analogWrite(Led5Red, 0);
delay(10);
}

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led5Blue, 255-value); arduino.analogWrite(Led5Green, 255); arduino.analogWrite(Led5Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led5Blue, 120 );
arduino.analogWrite(Led5Green, 255-value);
arduino.analogWrite(Led5Red, 0);
delay(10);
}
}

void sad6(){

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led6Blue, value); arduino.analogWrite(Led6Green, 0); arduino.analogWrite(Led6Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led6Blue, 255);
arduino.analogWrite(Led6Green, value);
arduino.analogWrite(Led6Red, 0);
delay(10);
}

for(value = 0; value<=255; value+=5){ arduino.analogWrite(Led6Blue, 255-value); arduino.analogWrite(Led6Green, 255); arduino.analogWrite(Led6Red, 0); delay(10); } for(value = 255; value >=0; value -=5)
{
arduino.analogWrite(Led6Blue, 120 );
arduino.analogWrite(Led6Green, 255-value);
arduino.analogWrite(Led6Red, 0);
delay(10);
}
}

void onReceiveEEML(DataIn d){

//set the value of remoteValue to equal the value of stream id 0 of the feed notated by d
String remoteValue = d.getStringValue(0);

myValue = (remoteValue);

}

]]>
http://gracefulspoon.com/blog/2009/05/24/interactive-elevator-installation/feed/ 0
fast, cheap, and out of control (without architects) or: why infrastructure won’t save us http://gracefulspoon.com/blog/2009/05/21/fast-cheap-and-out-of-control-without-architects-or-why-infrastructure-wont-save-us/ http://gracefulspoon.com/blog/2009/05/21/fast-cheap-and-out-of-control-without-architects-or-why-infrastructure-wont-save-us/#comments Fri, 22 May 2009 03:57:48 +0000 http://gracefulspoon.com/blog/?p=488 kinne-card
My proposal for a post-graduate Kinne travelling fellowship was accepted. Not only does it further delay the inevitable job search, but it affords me the means to visit what I consider to be some of the most interesting territory in the world – the American Southwest and the US-Mexico Border area. It’s an area I’m familiar with having lived in California and Texas, with frequent detours into Mexico, but it’ll feel good to re-visit with a more critical eye. Dean Wigley also seemed to particularly relish reading the title at graduation, giving extra emphasis to “won’t.” Download the entire pdf proposal here. See Abstract below:

 

The bureaucratic, welfare-state housing policy approaches from the mid-twentieth century have unquestionably failed, but what comes next? The urbanization of the developing world has lent this question a desperate sense of urgency, and while central planners slowly test solutions, it is squatters­—lacking developer or nation-state support—who have created a living laboratory of multiple failures and successes. Where the experiments become truly interesting is along the nearly 2,000-mile-length border of Mexico and the United States­—­the most asymmetrical border in the world. A nomadic, aterritorial space that is neither American nor Mexican, symbiotic in nature, and, while arbitrarily physically split, maintains a cultural porosity. Here is where the aspirations of a whole class of people wash up against an increasingly inward-looking first world barrier. What are the delicate political systems of control that allow this ecosystem to experience unparalleled growth? How does the built environment respond to these systems? What hidden systems can be extracted from a firsthand look at vast informal settlements, which in turn provide a framework for precise applications in architecture, technology and urbanism? Most importantly, this proposal is not merely about the collection of research data, but rather the formulation of a constructed argument regarding alternative future potentials of the built environment based on uncovered models existing within the border region.

 

The research will be completed through three mutually supportive phases. The first involves an intensive, first-hand documentation of the urban development in the two largest transnational border areas in the Western Hemisphere: El Paso/Juarez and San Diego/Tijuana. The research will be supported by an investigative journalist, a political science professor and the Juarez Department of Urban Planning. Secondly, a self-guided road trip will be taken through the southwestern desert to document historically how, without architects, ecologically sustainable structures have survived through the ages. This notion will be further developed by exploring responses ranging from artists Donald Judd and Robert Smithson to the self-sustaining Anasazi cliff dwellings at Mesa Verde and the U.S. missile testing ground at White Sands, New Mexico. Lastly, guided by a local Mexico City Architect, I will explore the “Tijuana-ification” of Latin America, with a study of the successes and failures of implementing an informal urban growth model, free of infrastructural support, into a metro area of 22 million people.

 
]]>
http://gracefulspoon.com/blog/2009/05/21/fast-cheap-and-out-of-control-without-architects-or-why-infrastructure-wont-save-us/feed/ 2
graduate portfolio http://gracefulspoon.com/blog/2009/05/18/graduate-portfolio/ http://gracefulspoon.com/blog/2009/05/18/graduate-portfolio/#respond Tue, 19 May 2009 02:49:28 +0000 http://gracefulspoon.com/blog/?p=474

Final portfolio from my time at Columbia University’s GSAPP. “Arguments” seemed like an apropos title after the discussion provoked during my final final review. And, yeah, I always default to that yellow.

 

 
]]>
http://gracefulspoon.com/blog/2009/05/18/graduate-portfolio/feed/ 0
grasshopper final http://gracefulspoon.com/blog/2009/05/18/grasshopper-final/ http://gracefulspoon.com/blog/2009/05/18/grasshopper-final/#respond Mon, 18 May 2009 15:09:48 +0000 http://gracefulspoon.com/blog/?p=456 grasshopper rhino 3d meshing
This was my final project for David Fano’s (of DesignReform.net fame) Meshing Course. It was an intense introduction to using Grasshopper with Rhino. My goal was too make a parametric array of cells, where each cell could be controlled individually, but changing one would affect all other neighboring cells in the system. Creating this type of recursive system led to a giant 18mb Grasshopper file, but the logic of the node-based layout made it surprisingly simple if you break it down into steps. See more for Vimeo Vids:

Single Parametric Cell from John Locke on Vimeo.

Multiple Cell Network from John Locke on Vimeo.

meshing02
meshing03
meshing04
meshing05
meshing06
meshing07
meshing08
meshing08b
meshing09
meshing10
meshing11
meshing01

]]>
http://gracefulspoon.com/blog/2009/05/18/grasshopper-final/feed/ 0