Conditionals and bouncy balls

Posted: September 30th, 2010 | Author: genevieve | Filed under: ICM | No Comments »

So this week in ICM we learned about logic. Ifs, elses, if elses, and a few other handy ways to let the computer make decisions. Don’t worry, we’re far from AI territory, more like making a ball stop if it reaches the edge of the screen. I worked with Meghan to create a bouncy ball program, where we tried to make it seem like the ball was responding to gravity, as well as bouncing when it reached the bottom of the screen. Working with Meghan was helpful since she has more programming experience, and was very patient as I tried to understand the math behind acceleration.

We ended up making this:

You can also play with the actual applet here.

It was great trying to work with some if else statements, and I like the overall effect of what we made. However, after playing around with it a bit more, I realize that using the mouse to position the ball start location, but initializing with the L/R arrow keys, may not be the best control system. I wish we knew how to specify left / right mouseclick (there’s probably an easy way to look that up but I haven’t yet). In any case, it was a good lesson in trying to simulate gravity, acceleration, and ball dropping.


Fantasy Device

Posted: September 27th, 2010 | Author: genevieve | Filed under: PhysComp | No Comments »

Have you ever wanted to be a chameleon? Change how you look with a click of a button? What if you could walk through the world invisibly? Well maybe someday you can.

Inspired by a friend‘s performance piece, as well as Green Man, of It’s Always Sunny in Philadelphia fame, I got to thinking about wearing skin tight clothing in public. The Green Man suit is already green, so what if you were able to generate a “post production” effect of keying out the green color and replacing it with something else, but have it happen in real time.

so much awesome in this picture

My fantasy device would be a skin tight body suit the user would wear out in public. The material would be made from a future fabric, capable of displaying imagery. Two small cameras would be attached to the suit, one on the front at the navel, and the other on the back at the base of the spine. When the user found a place she found visually appealing, be it a brick wall, a crowded street, or a deserted field, she would press a button on the inside of her palm to capture imagery of the location, which would then be displayed on her suit. The user would have the option of displaying a still image or a live video feed, depending on whether they preferred a camouflage that changed as they moved, or just wanted to change their appearance at whim.

In order to preserve the illusion of camouflage / invisibility, the camera on the navel would be displayed on the back of the suit, while the camera on the back would be displayed on the front of the suit.

Here’s a diagram to give you an idea of the suit. And yes, it looks alot like the Green Man.

diagram of urban camouflage suit

urban camouflage description and schematic

the urban camouflage suit in its intended environment

After discussing my idea with a few classmates, it was brought to my attention that we might not actually be that far from a world where this technology is possible. A number of methods seem to be underway to create “invisibility cloaks.” One involves projecting a live video feed onto a person wearing retro-reflective material, in which it reflects light back in the exact same direction it came, appearing much brighter to the observer. There is also research being done into a material made of tiny structures even smaller than the wavelengths of light, which “exhibit negative electromagnetic properties that affect how an object interacts with electromagnetic fields.” You can read about the different research inquiries into this area here.

And here are some videos demonstrating the two techniques. The first one demos the projection onto retro-reflective material of live video footage presumably captured behind the person, technology pioneered at the University of Tokyo. The second video is an interview with some of the researchers trying to create “light-bending” material that would make things invisible to your eye, with possible applications being for the military, or, perhaps an invisibility cloak! And of course they’re from Berkeley.


Analog Input and Output aka Dimming Lights! (sort of)

Posted: September 26th, 2010 | Author: genevieve | Filed under: PhysComp | 1 Comment »

Week 2 Lab Assignment in PComp was to dim and brighten and LED with an analog sensor. First, I set up my arduino and breadboard with a simple circuit where a potentiometer would control the brightness on an LED. This worked for me without any problems.

arduino and breadboard with potentiometer and LED

Here I am controlling the brightness of the LED with the pot sensor.

Next I wanted to see if I could do the same thing, but using a different analog sensor. I settled on an FSR, a force sensing resistor and wired up the same circuit.

arduino with breadboard and Force Sensing Resistor

Here I am controlling the LED’s brightness with an FSR:

So, the second part of the lab was a bit more complicated, and called for building a “voltage divider” circuit, where two analog sensors would control the brightness of two different LEDs. I used the FSR to control the brightness of a smaller green LED, while a photocell controlled the brightness of the large blue LED. Here’s my circuit ready to be programmed:

arduino, breadboard, fsr sensor, photocell and LEDs

here's where things got more complicated

I adjusted the code from the site to accommodate one more sensor and LED. Here’s my code:

 int photoPin = 0;    // Analog input pin that the photocell is attached to
 int photoSenValue = 0;   // value read from the photocell analog sensor
 int led = 9;    // PWM pin that the LED is on.  n.b. PWM 0 is on digital pin 9
 
 int fsrPin = 1; // Analog input pin that the FSR is attached to
 int fsrSenValue = 0; // value read from the photocell analog sensor
 int led2 = 10; // PWM pin that the second LED is on
 
 void setup() {
   // initialize serial communications at 9600 bps:
   Serial.begin(9600); 
   // declare the led pin as an output:
   pinMode(led, OUTPUT);
   pinMode(led2, OUTPUT);
 }
 
 void loop() {
   photoSenValue = analogRead(photoPin); // read the photocell value
   fsrSenValue = analogRead(fsrPin); // read the fsr value
 
   // map the sensor vaue from the input range (400 - 900, for example) 
   // to the output range (0-255). Change the values 400 and 900 below
   // to match the range your analog input gives:
   int brightness = map(photoSenValue, 400, 900, 0, 255); 
   int brightness2 = map(fsrSenValue, 400, 900, 0, 255);
 
   analogWrite(led, brightness);  // set the LED brightness with the result
   Serial.println("photoSenValue = " + photoSenValue);   // print the pot value back to the debugger pane
   delay(10);                     // wait 10 milliseconds before the next loop
 
   analogWrite(led2, brightness2);
   Serial.println("fsrSenValue = " + photoSenValue);
 }

At some point I also realized that I could stick my FSR into my breadboard, and did that so I wouldn’t have to worry about shorting my circuit if the alligator clips touched. Anyway, here I am running the code, which was sort of successful, but definitely needed to be finessed to make things look more responsive. I am thinking that I either needed to use different resistors for my sensors, and/or map the sensor values to the light output values differently in the code.


“The Work of Art in the Age of Mechanical Reproduction”

Posted: September 23rd, 2010 | Author: genevieve | Filed under: CommLab | No Comments »

“The Work of Art in the Age of Mechanical Reproduction” was written in 1936 by Walter Benjamin, a German Jewish scholar living in exile in Paris. This essay discusses the evolution of mechanical production and its effects on art and cultural consumption in the 20th century.

He does admit that reproduction has always been present in art and craft making. However, as mechanical modes of representation became possible, he makes the distinction between process reproduction (often resulting in forgeries) and mechanized reproduction, an inherent quality of newer technologies like lithography, photography, and film. He criticizes (or relays the general critique) that mechanical reproduction lessens the value of the object that is reproduced, in which the reproduction withers its unique “aura”, the quality that makes it unique in the world.

“During long periods of history, the mode of human sense perception changes with
humanity’s entire mode of existence. The manner in which human sense perception is
organized, the medium in which it is accomplished, is determined not only by nature but
by historical circumstances as well.”

I took issue with this quote at first, but thinking about it a bit more, human cognition and perception must have been greatly affected by inventions like the camera, gramophone, and personal computer. Instead of committing the world to memory, humans rely on recording devices to remember places, sounds, and general facts. These recording devices are usually limited in capturing true human perception and experience, but then again, constructed memories are imperfect as well.

Benjamin is a Marxist, and his socio-political thoughts definitely influence his opinion of mechanized artistic reproduction:

On politics:

“for the first time in world history, mechanical reproduction emancipates the work of art from its parasitical dependence on ritual. To an ever greater degree the work of art reproduced becomes the work of art designed for reproducibility…Instead of being based on ritual, it begins to be based on another practice–politics.” 

On film:

“for the first time–and this is the effect of the film–man has to operate with his whole living person, yet forgoing its aura. For aura is tied to his presence; there can be no replica of it.”

On the difference between painting and film:

Thus, for contemporary man the representation of reality by the film is incomparably more significant than that of the painter, since it offers, precisely because of the thoroughgoing permeation of reality with mechanical equipment, an aspect of reality which is free of all equipment. And that is what one is entitled to ask from a work of art.”

I understand that film is a much more immersive experience than most paintings will ever be, no matter how large or how fantastic. But I find it interesting that Benjamin seems to be saying that film relays a version of reality to an audience that seems devoid of any medium (unlike a painting’s canvas, paint or brush strokes), precisely due to the medium of film itself.

I do agree with his opinion on painting as a medium for public consumption:

“Painting simply is in no position to present an object for simultaneous collective
experience, as it was possible for architecture at all times, for the epic poem in the past,
and for the movie today.”

He brings up another interesting facet of technological progress, where it facilitates the realization of ideas that previously seemed absurd, or “ahead of their time”:

Dadaism attempted to create by pictorial–and literary–means the effects which the public today seeks in the film…What they intended and achieved was a relentless
destruction of the aura of their creations, which they branded as reproductions with the
very means of production.

I also think some of Benjamin’s ideas about film apply to new media as well, if not more:

“The mass is a matrix from which all traditional behavior toward works of art issues today in a new form. Quantity has been transmuted into quality. The greatly increased mass of
participants has produced a change in the mode of participation.”

And, perhaps fittingly since he is writing this essay during the rise of the Third Reich, he ends his discussion of the effects of mechanized production on art, with it on war. Interestingly, he doesn’t address the role of film as propaganda tool in the Third Reich. Due film’s realistic nature (which Benjamin admires), it was an incredibly effective tool in glorifying the Third Reich and its fascist mission.


Dynamic Application in Processing

Posted: September 22nd, 2010 | Author: genevieve | Filed under: ICM | No Comments »

This week in ICM, we were assigned to work in pairs to create a “dynamic application.” We had a few more tools at our disposal than week 1, like variables, setup() and draw() loops, mousePressed() events, and some random(). But we’re still in the early stages of learning how to program interactivity. That said, I’m pretty happy with what my partner Alex Dodge and I were able to come up with.

After a few experiments, we decided to make a sort of minimal clock, or timer. The inner circle keeps track of seconds, the next minutes, and so on and so forth. We stopped at four rings, but further iterations could contain rings for weeks, months, years, etc. The trickiest part was pushing the code from a timer (based on frameCount()) into an actual clock, where the starting point of the half-circle would correspond to the hour or minute position of an analog clock.

View applet and source code here.

View applet and source code here.

View applet and source code here.

/* BAUHAUS CLOCKS - s-m-h-d
By Alex Dodge and Genevieve Hoffman
September 21, 2010 - ITP*/
 
//Sets the current minutes start position
float mc = second()*6; 
//Sets the current hour start position
float hc = ((minute()/60.0)+hour())*30.0; 
//Sets the current day start position
float dc = hour()*15.0;
 
void setup(){
  size(500,500);
  smooth();
  background(255);
  noStroke();
}
 
void draw(){  
 
  //Day Hemisphere
  float d = map(millis(), 0, 86400000, 0, 360);
  fill(0,127,0,50); 
  arc(250,250,400,400,radians(-90+d+dc),radians(90+d+dc));
 
  //Hours Hemisphere
  float h = map(millis(), 0, 3600000, 0, 360);
  fill(255,255,0,50); 
  arc(250,250,300,300,radians(-90+h+hc),radians(90+h+hc));
 
  //Minutes Hemisphere
  float m = map(millis(), 0, 60000, 0, 360);
  fill(0,0,255,50); 
  arc(250,250,200,200,radians(-90+m+mc),radians(90+m+mc));
 
  //Seconds Hemisphere
  float s = map(millis(), 0, 1000, 0, 360);
  fill(255,0,0,50); 
  arc(250,250,100,100,radians(-90+s),radians(90+s));
 
  //semi-opaque matte - creates the fade gradient
  fill(255,255,255,10); 
  rect(0, 0, width, height);
}

Digital Input and Output aka Blinking Lights!

Posted: September 19th, 2010 | Author: genevieve | Filed under: PhysComp | 1 Comment »

So, my first lab assignment for Physical Computing was to wire up a breadboard with a switch, two LEDs, and program the board to toggle between the switches.

view of arduino and breadboard with switch and LEDs

here's my circuit, ready to go!

I had my circuit all set to go, verified my code and everything. However, when I uploaded the code to the microcontroller, I got a strange error message that read: avrdude: stk500_recv(): programmer is not responding. There was also a blinking yellow light on the Arduino that seemed upset. And the lights on my breadboard were definitely not lighting up.

Arduino Error from Genevieve ITP on Vimeo.

So, a helpful ITP student came to my rescue. After a bit of troubleshooting, Paul realized that my board was still set to Diecimila, and I’d forgotten to change the setting for this newer board.

paul taking apart my circuit for troubleshooting

paul dismantles my circuit to try and figure out what's going on

So, with that problem solved, I rewired my circuit, uploaded the program to the Arduino, and was in business:

Arduino Digital Input / Output Success from Genevieve ITP on Vimeo.

So, for the “Getting Creative” part of the assignment, I decided to keep my output the same, but make a switch out of some safety pins. Originally, I wanted the switch to be “on” when the safety pin was closed, but then I realized that the whole body of the pin was already connected, so the switch would always be on no matter what. Either that, or it would short circuit, so opted for Plan B.

arduino board, with safety pin switches that control red and green LED

here are my safety pin switches. well, i guess together they make up just one switch...

I wrapped some wire around the end of the switches, and plugged the other end of the wire back into the breadboard in the same places as either side of the original switch. That was pretty much it. But feel free to take a look.

Safety Pin Switches from Genevieve ITP on Vimeo.

Oh yes, and here’s a link to the code, as well as the simple steps I followed.


Sensing Sensors, or the Sensor Walk

Posted: September 18th, 2010 | Author: genevieve | Filed under: PhysComp | 1 Comment »

This week for our Physical Computing class, one of the assignments was to take a walk around our neighborhood, and observe the different kinds of sensors in place all around us.

Living in New York City, most people have buzzers outside their apartment buildings. It functions essentially like a doorbell, except that sometimes people on the sidewalk can speak into them to prove that they’re the pizza delivery guy and not some crazy ax murderer.

apartment buzzer with buttons for each unit

buzzer / intercom / how to get pizza delivered to the right place!

All over the city there are somewhat defunct payphones, which don’t see much use nowadays. I did see someone using one, and from her accent deduced she was Australian, so I guess if all you have is phone card they’re still pretty handy. Again, the sensors are primarily buttons to dial, then a microphone to talk into, as well as speaker to hear from.

pay phone

surprisingly, there are still a lot of these in new york! they took them all out of san francisco.

Mostly I saw people walking down the street concentrating intently on their mobile devices, which contain a lot of different sensors if they’re “smart phones,” accelerometers, capacitance sensors, gps, etc.  Even if they’re not “smart” they still have a bunch of sensors.

Another common sensor I saw everywhere were ATMs. You put in your credit card, enter you PIN, tell it how much money you want, and bam, it spits out $20 bills (provided you have the funds). In New York, there are locked doors barring the non-cardholders from entering while you make your transactions. So even before you start pressing buttons, you have to insert your card into a card-reading lock, sort of similar to hotel card keys, that unlocks the door for you.

ATMs behind locked doors

ATMs behind locked doors, to keep the card-less out

ATM card reader, insert debit card to enter

ATM card reader, insert your debit card to unlock and get money!

One of the next sensors I noticed, and one of the more interesting I found on the walk, was an electronics store’s window display, which had a live video feed of the people walking outside on the sidewalk. Unfortunately, I seemed to have documented the display, not the sensor, which I’m assuming was a small USB camera.

electronics storefront live video feed display of people on the sidewalk

these guys were also excited about seeing themselves in the window

Last, but not least, was a sensor I interacted with at the gym. My elliptical machine would get very upset if I didn’t hold the handles so that sensors could calculate my heart rate as I exercised. Here it is telling me to put my hands on the sensor. The little pixelated heart is kind of endearing, so after a while I complied. I guess the machine had my best interests at heart. ha.

digital console for elliptical machine sensor

You can't see the actual sensored handles here, but you can see the heart!


The Machine (Never) Stops (Until It Does)

Posted: September 16th, 2010 | Author: genevieve | Filed under: CommLab | No Comments »

E. M. Forster’s prescient short story, published in 1906, foretells of a world where humans have renounced human connection in exchange for constant stimulus and comfort, provided to them by “The Machine.”  Reading this short story, I was struck by Forster’s ability to envision a future where humans had become imprisoned by their blind pursuit of progress, at the expense of nature, connection, and ultimately their humanity.  I worry often that this is the path we are currently traveling down.

A few quotes I found especially relevant:

“He broke off, and she fancied that he looked sad. She could not be sure, for the Machine did not transmit nuances of expression. It only gave a general idea of people – an idea that was good enough for all practical purposes…The imponderable bloom, declared by a discredited philosophy to be the actual essence of intercourse, was rightly ignored by the Machine, just as the imponderable bloom of the grape was ignored by the manufacturers of artificial fruit. Something “good enough” had long since been accepted by our race.”

“But Humanity, in its desire for comfort, had overreached itself. It had exploited the riches of nature too far. Quietly and complacently, it was sinking into decadence, and progress had come to mean the progress of the Machine.”

“Cover the window, please. These mountains give me no ideas.”

The first quote actually predicts the limitations of modern communications, namely text and IM chat, where you read someone’s words, yet are never actually sure of their tone. There are few conventions, like ALL CAPS for angry, or “lol” for being amused, but ultimately we have sacrificed actual conversations in favor of being able to talk to our friends at work or in class. One word of advice, which I’m sure you already know, is to never instigate serious conversations over IM. They usually end badly.

Another thing that always interests me when reading science fiction written in the past, is that authors tend to an amazing job creating an allegorical world, and make predictions about society or technology that actually come to pass.  However, there are always signs of the time that the stories are written, and limitations to the scope of their vision. For instance, in Forster’s story, the main character Vashti clutches at the “Book of the Machine,” a sort of Bible or manual to tell humans what to do when various problems arise.  Perhaps because Forster is an author, and can’t conceive of a world where the book object has become obsolete, she doesn’t invent a different form for this holy manual.  In Brave New World, I seem to remember there being an infinitely large office building, which stored catalog cards with data about every single person. Aldous Huxley was able to envision many things that ended up happening, but the modern computer was not one of them.  And to list one more, in Bladerunner (the movie not the Philip K. Dick short story Do Androids Dream of Electric Sheep?) the characters all talk using video phones, but this happens in phone booths not hand-held devices or personal computers (ah, 80s scifi).

So, to return to Forster’s story, although “civilization” ends and everyone dependent on “The Machine” dies alone in the dark, it is ultimately hopeful. Apparently all along there had been people cast out from society, who rejected the life of comfort and dependence, and sought to live above ground or outside the control of the Machine, Vashti’s son Kuno one of them.  When the Machine stops, and everyone panics, there are a few waiting above ground to start over. Vashti thinks they will start the machine again. Kuno thinks “humanity has learned its lesson.” In the end they both perish looking at the “untainted sky.”  Forster didn’t predict that humanity’s actual story would lead to a tainted atmosphere in less than 100 years.


Static Drawing Using Primitive Shapes

Posted: September 13th, 2010 | Author: genevieve | Filed under: ICM | No Comments »

Our first week’s assignment in my Intro to Computational Media class was to make a static drawing using primitive shapes. The goal of programming will ideally be to make things that move, or respond to the user, but everyone has to start somewhere.

processing sketch - umbrella and rain drops

I got inspired by the rainy weather to make this

This could easily (much much more easily) have been done using Illustrator, but one of the goals of the class is to wean your dependence from expensive software, and give you a platform to basically create your own software, or in this case, drawing.

Here’s a link to my applet, with source code.


Vito Acconci Speaks

Posted: September 10th, 2010 | Author: genevieve | Filed under: Applications | No Comments »

So apparently the first guest lecturer to speak in Applications class every year is Vito Acconci.  To give a little background on the class, it’s taught by the founder of the ITP program, Red Burns, and is divided into two main sections: A lecture by an artist, designer, technologist, or some kind of thinker of the day, followed by a student-led response to that lecture the following week.

Vito is an impressive presence. He gave a lecture that aimed to explain his trajectory as an artist; first as poet, then performance artist, then installation artist, and finally heading up his own design studio and concentrating on architecture and design projects.  He probably wouldn’t like any of those labels (they are my own), and said if anything now he would like to be a designer.  From the beginning, his frustrations with the limitations of each piece seemed to lead him along to the next one.  I see how this would fuel his earlier work when he was working predominantly with his own ideas, even if others were participating with him in a piece to realize them. However, I’m not quite sure how this frustration with the limitations of previous work can push forward new work if his practice revolves around a collaborative design studio, designing multiple projects at a primarily conceptual level. Most of the projects are publicly funded, and are subject to a rigorous proposal process, often never seeing the light of day. I think a fundamental part of seeing the “success” of an idea/artwork is making it take shape and witnessing people’s encounters with it. This is where you see the problems, or witness whether your expectations matched up with people’s experiences.  If so many of the ideas never get built, they exist only to inspire the next group of builders, which I guess can be enough in itself.

A few interesting things Vito said, which have stayed with me:

  • Clothing is both the most public and intimate thing people involve themselves with
  • His earlier work was actually quite similar to programming, since he always started with a method to be carried out
  • The future of reading is skimming
  • Range is just as important as depth
  • He dislikes abstract ideas, loves the tangible

Some of the pieces he discussed: