Showing posts with label ITP-CommLab. Show all posts
Showing posts with label ITP-CommLab. Show all posts

Tuesday, December 22, 2009

Sunnyside Animation - Learning After Effects

For my final project in Comm Lab I partnered with Tamar Ziv to put the finishing touches on our After Effects animation. This project was inspired by Brazilian graffiti, old Library of Congress photos, and music from Deerhoof.

The graffiti images were all curated from a large selection of pictures I have collected from my trips to Brazil (here is a link to some of the original source materials); the LoC pictures were found on flickr; the Deerhoof track comes from Tamar's meticulous selection of this band's releases.




It took us two weeks and about 40 hours of work to put this 30-second piece together - I never knew how much work it took to put one of these together. The first week was extremely frustrating, we spent most of the time struggling to learn how to use After Effects. The second week was much more productive and effortless. I was actually enjoying working in After Effects when we wrapped up this project.

The biggest problem we encountered was associated to synching the music with the animation. To get these elements synched as best as possible we exported individual animation sequences and then put them together in Final Cut. In the coming weeks I plan on sharing my early notes and learnings regarding After Effects and Final Cut.

Monday, November 23, 2009

Wholesome Harry - No Good Very Bad Day

Earlier today I worked with my team to edit and finalize our short movie for Comm Lab class. I am excited to report that Arturo, Eric, Tamar, and I have a finished our short movie – Wholesome Harry No Good Very Bad Day.



We have been working on this project for the past three weeks. During the first week we focused on coming up with an idea, developing a storyline and creating storyboards (regarding this part of the process). On our second week we produced and shot the footage at my wife’s school. Finally, this past week we focused on editing the footage into a short movie.

My focus in this post will be the activities from the past two weeks – the production of the shoot and the editing process.

Producing the Shoot
Once we finished the storyboards and shot list our focus shifted to finding a location, enlisting actors, and getting the on- and off-screen materials for the shoot. We started working right away because we did not know when we would be able to shoot, so we wanted to be ready at a moment’s notice.

The original location that we scouted for our movie was the TV studio on the 12th floor of the Tisch building at NYU. Unfortunately, we were not able to get the studio so we shifted to plan b – using my wife’s classroom at Grace Church School for the shoot. We felt this location was a good choice because a local access TV show for children could easily be filmed in a public school.

The props for the shoot were mostly easy to come by. Arturo has a large selection of costumes from his own performance works. Most of the other props were from ITP (the crew’s equipment) or found on location at the school.

From an equipment perspective, we experienced quite a few challenges. First we arrived at the Equipment Room to find all of the non-HD Panasonic DV cameras with broken firewire connections. As a consequence we used HD cameras instead. This is not a bad thing per se, however, none of us were familiar with these cameras and they had fewer manually controllable features.

Our second challenge occurred during the shoot. The M-Audio recorded that we were using was not working properly. Therefore, we had one less audio source to work with. This could have been a much bigger issue. Fortunately, for the most part we were able to get good audio from the cameras.

Here is our full equipment list – as you can see it is quite long and extremely heavy (the equipment, that is).
  • 2 cameras (DVX)
  • 2 DTE
  • Extra battery and/or plug-in for DTE
  • 2 firewires
  • 2 boom mics
  • shock mount
  • XLR cables
  • 2 tapes
  • 1 M-Audio
  • 1 bi-directional
  • 1 tri-pods
  • 1 lighting kit (3 lights, 3 tripods, 2-3 umbrellas, cables)
  • Headphone
  • Extension chords
The shoot lasted for about 5 hours. We arrived at the location around 4:30; it took us about an hour to prepare the room by moving furniture, hang the billboard and set-up the lights. The shoot itself lasted about 3 hours and then it took us 45 minutes to clean up. At the end of it all we had captured over an hour and fifteen minutes of footage. The quality of video was pretty good, though we noticed some continuity pitfalls that we needed to watch for during the editing process.

Eric and Tamar took the lead on the camera (though we all shot for at least a few minutes). Arturo and I took the lead in front of the camera. Arturo’s experience working with video came in handy. He has a good intuition for capturing small and unique shots that I would not have thought of until the editing phase (when it is too damn late).

Editing the Footage
The day after the shoot Arturo, Tamar and I transferred and logged the footage. We also took this opportunity to set-up a project in Final Cut in preparation for the work ahead of us. Since we had been forced to use the HD camera (and since we had an HD-philiac in our group) we decided to make an HD video.

During the week Arturo and Tamar put together a rough cut of the initial scenes. Then we all met on Sunday to finalize the rough cut and take out sandpaper to smoothen it out. The process of working in Final Cut with Arturo and Eric was great. They are both very knowledgeable about this tool and were eager to provide tips. I am currently working on another project in Final Cut and look forward to applying my new knowledge (soon to be transformed into skills).

Having worked with Final Cut 7 over the past two weeks I am impressed (negatively) at how complex it is to use. I guess I’ve become too accustomed to the ease of use offered by iMovie. The file import process and the difficulties associated to working with movie files with different formats have been quite frustrating. I understand the additional power that Final Cut provides – I am finally starting to be able to take advantage of it. That said, I think this tool could be simplified.

[Regarding Final Cut – I am currently working on a post regarding using Final Cut Pro, I’ll update this blog post with a link once it is ready.]

Monday, November 9, 2009

Comm Lab Video Project - Storyboard Development

Earlier today I worked with Arturo, Eric, and Tamar to develop the concept and storyboards for our Communication Lab class. We met up this morning at eleven in a coffee shop near the ITP floor. After brainstorming for 30 minutes we created a long list of possible inspirations for our story. Here is a link to a more readable version of this document.



After developing this list we identified a few main themes and explored many different storylines. We settled on the idea of creating a video that captures a news program host going ballistic. We were loosely inspired by Bill O'Reilly's famous freakout - I can't believe that I am admitting to being inspired by Mr. O'Reilly.



After developing the general arch of the story we headed back to the ITP floor to collaboratively draw the storyboards on the large rolls of paper from the studio. Here is a picture of our finished work (follow this link to view a more readable version).


Monday, October 19, 2009

Stop Motion Video - Love Story

Earlier today Eric Mika and I presented our stop-motion movie to our Communications Lab class. This was my first ever stop-motion movie creation. We had a great time working on this project, though it was a lot of work. 


Our process included a two-hour planning session, another two hours for pre-production and casting (aka buying fruits), eight hours in production (including breaks), and four hours of post production. Here is the video that we created, followed by a more detailed overview of the process.

Stop Motion Madness


Planning and Story Development
The first activity we undertook during the planning phase was to brainstorm a few ideas. From the outset both Eric and I were interested in working with food. We explored a few other possibilities, including a herd of chairs and killer ethernet-cable snakes. However, we quickly settled on doing a food-based animation using fruits, and limes in particular.

Once our focus had been we honed we began to develop an outline of the story. We started with the idea of a lime coming to life and exploring the countertop. Then we added the element of interaction with another fruit as a means to make the story more interesting. At this point the story quickly started to descend into a love story, which was not the direction that either Eric or I had originally intended. This realization inspired the idea of a the knife splitting the lime.

We were still not fully happy with the flow of the story but we thought from a content perspective we were just about there. We briefly discussed the idea of adding a caipirinha recipe to the video but we did not commit to it until the day of the shoot. Over the next two days we collaborated remotely to develop descriptions of each scene and a list of materials that we would need for production (you can view the draft scene descriptions below, we made updates to these scenes on the fly during the shoot).

Storyboard

Frame 1 - Bag of limes is put on the counter: A see through plastic bag with limes is put on top of a counter that is filled with fruits, liquor bottles, sugar, a pestle and mortar and other bar-related items. The bag is put down near a cutting board. Behind the cutting board is a bottle of cachaca, the pestle and mortar and a container filled with sugar.

Frame 2 - lime rolls out of the bag and comes to life: A lime rolls out of the bag and grows a set of arms and legs. It opens its eyes and maybe its mouth, then rubs its eyes. The intent is to show disbelief and excitement. 

Frame 3 - lime sees something across the way: All of a sudden the lime notices something on the other side of the cutting board, and is visibly excited.

Frame 4 - lime thinks of "wow": Cut to shot of colorful fruit and papers creating a words that express the excitement of the lime. Words under consideration: "WoW" "Sweet" "Love". Second option - use drawing with colorful markers or pencils.

Frame 5 - cut to what the lime sees: Across the cutting board there is a strawberry or a red pepper (maybe smiling at him, or smoking a cigarette). 

Frame 6 - lime walks over to the strawberry: Cut back to the lime and follow the lime walking across to the strawberry/pepper. On the way the lime steps up on to the cutting board.

Frame 7 - lime gets cut in half when crossing the cutting board: When the lime is about half way across the board a knife comes down suddenly and cuts it in a half.

Frame 8 - pan out to see all of the caipirinha ingredients: Pan out and see all the caipirinha ingredients (and may be we could make a very fast stop motion video of me making the caipirinha).

Frame 9 - caipirinha recipe is drawn on a white piece of paper.

Supplies Needed

Technology
- DV Camera
- Lights 
- Tri-pod
- Firewire Cable

Art Supplies
- Putty (to hold up the lime, and make arms and legs)
- Wire (to hold up fruits)
- Large white paper (for background during word sections)
- Colorful paper

Fruits
- Limes
- Strawberries
- Apples
- Bananas
- Basil/parsley/mint (other leafy herb)

Things we already have
- Sugar
- Cachaca 

Pre-Production and Production
We did all pre-production and production on the same day. We started by meeting at ITP, where we finalized the story details and checked out a HD DV camera, lights, a tripod, and the proper cables. We spent some time testing the camera with the iStopMotion software. We had to play with the settings on the camera for fifteen minutes before we were able to get everything up and running.

Next up we cast the two main roles, and supporting fruits, at Whole Foods. We purchased limes, strawberries, bananas, mint, and apples (the only fruit that did not make the final cut). We got back home, found silly putty (which I already had), and set-up the "stage" on the kitchen counter. Next we set-up the camera, lighting and computer. Last we had to style our stars by adding eyes and getting them to stand up properly. We were only able to solve the later problem by cutting off a small piece from each fruit.

We started filming using the frame descriptions we previously developed as our guides. Eric and I were pretty much in agreement throughout the shoot. For the most part Eric took the lead behind the camera, while I took the lead in front of the camera. We were able to keep things moving pretty efficiently and there was only one scene that we had to reshoot. About two thirds of the way through production we had to create a caipirinha on video, so we took this opportunity to have a break and a delicious drink.

Post Production
By luck, in the night between the shoot and our editing session (which was also the day of class) I found the perfect song for our video. For post production we used Final Cut Pro, to edit the video and audio, and then Photoshop, for retouching and color-correcting specific frames.

Neither Eric nor I have had much experience using Final Cut before. We partnered together to recut the movie and add sound - unfortunately we did not learn how to use the marker until our class after we were done. To retouch the photos we used the batch retouching feature on Photoshop. After we had the video almost locked down we added the soundtrack. At this point we made minor adjustments to the flow of the story to better align with the music - the ending could still use some work.

Monday, October 12, 2009

Response to Understanding Comics by Scott McCloud

During this past week we explored the use of comics as a distinct medium of communication. As part of this exploration we read Scott McCloud's classic book - "Understanding Comics: The Invisible Art". This is a fascinating book that is well worth the read (and it's a quick one, comic book style). This post will focus on my response to this book.

But before we proceed, this week we also had an assignment to develop a short comic. Here is a link to the comic that I developed with Patricia Adler along with an overview of the process we used to create it.

Understanding Comics - A Response
In his book, Scott McCloud makes the case that comics have their own language, which is distinct from purely symbolic or visual communication arts such as literature, photography and painting. He then explores the main characteristics of comics, such as use of various types of symbols, the relationship between space and time, reflection of motion and emotion in the use of lines, and the reader's role and ability to "read between the lines".

The foundation of Scott McCloud's argument is that the term comics refers to a form of art, loosely defined as sequential visual art, that needs to, and should, be understood separately from the content that populates. This distinction is important because in the US comics have often been a vehicle used primarily for kids or low-brow content. Scott's book is an example of a comic that features content that is largely academic in nature. Best of all it delivers this information in a fun and easy to understand manner.

Comics leverage an extremely rich and diverse ecosystem of symbols to communicate information. These symbols range from fully abstract elements, such as words, to real-looking elements, such as detailed drawings, to abstract visual elements, such as lines and shapes. These elements can be recombined in a many different ways with an equally diverse number of potential outcomes. For example, to help a readers identify with a character, writers often depict that character with a level of abstraction that is greater than the background and other elements of the story (think Tin Tin).

The relationship between time and space in a comic book is fascinating. In some ways it is very straightforward; for example, the physical distance between two elements in a story almost always reflects the temporal difference. However, the past and future are always "present" in the current moment in a way that can be accessed visually - in a more direct way than in any other medium.

This provides comic authors with interesting storytelling opportunities. McCloud gives a great example using of a simple cartoon where the main character, who is located on the top row of frames, steals money from his future self, who is located in the frame right beneath.

Another interesting aspect of comics that McCloud points out is how they are able to successfully portray motion using static images - and the importance of motion. The ability to convey motion was one of the things that attracted me to the aesthetic of comics when I was growing up (though I never realized that until now). I had a special fascination with Japanese manga-style cartoons that played in Brazil in the early 80's. Comic artists seem to be true experts in this realm.

At the end of the day comics work because of the way the human mind works. We are meaning making machines. We see forms created from lines and colors on a page and we translate that information into meaning - who hasn't seen a human face in a power socket? We all know that we make meaning out of what we see, but equally important we make meaning about what we don't see as well. That is why the area between the frames in a comic book are so important. Ultimately, the story is constructed in a reader's mind according to how his/her mind creates closure between the contents of the various frames that make up a story.

Blue - The Story

Today I will share a short comic that I composed with Patricia Adler for my Communication Lab class. I will also describe the development process for creating this piece, from ideation through production. In short, this comic was the fruit of a brainstorming session and was produced using illustrator, photoshop and indesign. It features pictures from flickr coupled with some of our own.
Blue
Ideation
To come up with an idea for the comic, Patricia and I held a short brainstorm. During this 20-minute session we used free-association to generate a list of seed words to serve as inspiration for our story. Once we jotted down about 50 different thoughts we stopped developing new ideas and begun a grouping exercise. Here is a scan of the notes from our brainstorming - good luck reading my hand-writting.
Blue Brainstorm Notes
This phase of the process is focused on identifying interesting themes, patterns, or inspiration that arises from the list of words. We identified the following main themes from our list: food and sensations, soft versus hard, transitions and passages, madness and sickness. During this process Patricia brought up a desire to work with colors. This, coupled with a momentary fascination with the grid paper on which we was taking note, led us to the inspiration for our story.

The initial idea for the story was about a colored shape that dreamt of being human. We liked the idea of an inanimate and abstract object, such as a shape, to be able to dream of being human. Once we agreed to pursue this area we started focusing on developing an actual story. We continued to develop this idea by exploring the notion of a square on a grid on a notebook that dreams of being human, to finally arrived at the place at which we ended up - the story about a frame from a comic that longs to be human.

We then worked on coming up with a short description of each frame of the story. This is where Scott McCloud's book was most helpful. It helped guide many of our conversations about how to manage time and craft the representation of our characters. At the end of this phase we also defined what source materials were needed, such as photo needs and copy.

Production
The first thing we did was to produce this comic was to look for pictures on flickr that met the requirements of our frame descriptions. After a few hours of searching for photos we determined that we would need to take our own pictures for the main character, which we did.

Once we found most of the pictures we needed we used the pen tool on Adobe Illustrator to create an outline of the main character for each frame. This process was timing consuming but enjoyable (at least for me). The most difficult images to create were the outlines of the objects that are behind Blue on the frames in which he becomes transparent - these were also created using Illustrator.

The next step in the process was to put together the final image compositions by retouching the pictures (thanks Patricia for doing most of the work here) and including the talk/thought bubbles and text boxes. Photoshop was used for all of this work. Once all the images were ready we InDesign to create the final layout. We had to go back and forth between Photoshop and InDesign to adjust the pictures to fit the visual and text in the layout clearly.

It is important to note that even though I am dividing the following activities into a "production" stage, we continued to iterate through changes in the storyline until the last day. Spending sufficient upfront time making sure our idea was solid helped us avoid rework during production.

Image Credits
- Frame 1 and 10 - Office picture - Jeremy Levine
- Frame 3 - Building with stairs picture - Moriza
- Frame 4 and 8 - Man walking down street - Julien's
- Frame 5 - Farmer's market picture - Ed Yourdon

Friday, October 2, 2009

Thoughts on Art in the Age of Mechanical Reproduction by W. Benjamin

Walter Benjamin’s “The Work of Art in the Age of Mechanical Reproduction” was written in 1935; a time when communism, facism, and capitalism were clashing forcefully, and when film had just risen to become a powerful and transformative means of communication and art. In this piece Benjamin focuses on analyzing the impact that mechanical reproduction has had on art. The main strand of his argument is that mechanical reproduction has transformed art from a phenomenon that is focused and ritual to one that is focused on politics.

If we define both politics broadly, to mean something such as “social relations involving intrigue to gain authority or power” (Princeton), then I am mostly in agreement with his view. That said, it is important that I qualify my viewpoint through further explation. I agree that art was transformed from a practice that mostly supported existing traditions, to one that uses aesthetics to communicate ideas that are often (or ate least occasionally) new with the intent of shifting power and/or authority. This is not to say that all modern (or film-based) art is political. Also, one can argue that by supporting the existing establishments and institutions art was already political (though not necessarily supportive of a political-dialogue).

Though at first I felt that Benjamin had a negative perspective on the film and photography, this perception changed by the end of the article. The reason I felt that Benjamin did not like these new media was his assertions about art loosing its authenticity through film and photography, and objects loosing their aura. Benjamin believes that an object’s authenticity is closely tied to its “unique existence”, in a similar way that the “aura” of any object is tied to its unique existence in time and space. I agree with Benjamin that important aspects associated to these dimensions are lost on mechanically reproducible media. This is not good or bad, it is only a consideration for an artist when choosing a media in which to communicate.

“Reproduction enables the original to meet the beholder halfway, be it in the form of a photograph or a phonograph record. The cathedral leaves its locale to be received in the studio of a lover of art; the choral production, performed in an auditorium or in the open air, resounds in the drawing room.” In this quote, Benjamin points out how technical reproduction technology has altered art’s long-standing relationship with time, space, and physical condition. These modern media can be experienced simultaneously across time and location, are easily transportable. Also, they do not lend themselves to physical analysis and authenticity requirements.

Another important notion that interested me in this reading was about how film’s shock value helped popularize art. This is an important phenomenon because the mere reproducibility of art did not necessarily widen its appeal beyond people who already enjoyed art but did not have the means to experience it. Not only did film and photography make art more available, but it also created new types of images that had power to engage the “distracted masses”.

A few interesting trends that Benjamin identified early included the notion that we are trading experience of objects’ with auras for the ability to experience a much wider number of objects. However, these new objects are transitory nature rather than permanent (or at least longer lasting). This trend has picked up more steam with the recent evolution from reproducing pictures on a physical pages and videos on physical cassettes to virtual ones.

Another tend he identified was the changing relationship between author and public. “The distinction between author and public is about to lose its basic character. The difference becomes merely functional.” Again this is something that has greatly evolved in the last decade with the rise of the internet, and blogging in particular.

Monday, September 28, 2009

Arduino Tic Tac Toe

This weekend I spend some time building a simple game of tic tac toe using an Arduino and a variety of simple components, both analog and digital. Here is a video that takes you through the process of creating this game. Below you will find the code that I used to program the Arduino. I have left all comments in the code so that you understand how it is built. I am sure there are many ways that this code can be improved and/or streamlined.



Tic Tac Toe Code
// setting a variable to pin number 13
int tictacPins [] = {2,3,4,5,6,7,8,9,10,11};     // holds pin location of each LED (including the active user one at 0)
int userPin = 0;                                 // holds the location on the array where the active user is displayed
int winnerPin = 13;                               // holds the location on the array wher the winnerPin is located
int buttonPin = 12;                              // holds number of pin for button input
int potPin = 0;                                  // holds number of pin for the potentionmeter

int potRead = 0;                                 // holds the pot value
int potRange = 0;                                // holds the value of the pot range to go from one LED to the next
int activeUser = 1;                              // holds the active user (1 or 0)
boolean buttonState = false;                     // holds buttonState (true means it has been pressed)
int user2counter = 0;                            // holds variable to enable the active user LED to blink
int blinkStateUser2 = 1;                         // holds the current blink state for all player two LEDs
int blinnkStateSelect = 0;

long unsigned timeButton;                        // holds time variable that ensures only one button press is read at a time
long unsigned timeButtonInter = 500;             // holds the interval between button presses
long unsigned timeUserLED;                       // holds time variable that governs blinking of the LED light that is currently active (prior to being selected)
long unsigned timeUserInter = 150;               // holds the interval for the blinking of the LED lights described above
long unsigned timePlayerLED;                     // holds time variable that governs the blinking of the LED lights on the spots that were selected by player 2
long unsigned timePlayerInter = 1200;            // holds the interval for the blinking of the LED lights described above
long unsigned timeHolder;

int tempActiveLoc = 1;                           // holds number of active locations on board           
int activeLoc = 1;                               // holds current LED selected 
int availableLoc = 9;                            // holds number of available locations
boolean locState [] = {true, false, false, false, false, false, false, false, false, false};              // holds current state of each location board - true = taken; false = available
boolean user1select [] = {false, false, false, false, false, false, false, false, false, false};          // holds current state of board for player 1 - true = taken by player 1; false = not taken by player 1
boolean user2select [] = {false, false, false, false, false, false, false, false, false, false};          // holds current state of board for player 2 - true = taken by player 2; false = not taken by player 2
boolean gameStatus = true;                       // holds whether game is active or over
int gameWinner = 0;


// set-up the output pin where LED will be attached

void setup()   {           
  for (int counter = 0; counter <= 9;  counter++) {                  // counter to set pinMode for all tic tact toe board pins (and active user pin)
    pinMode(tictacPins[counter], OUTPUT);                            // setting each pin as output
  } 
  pinMode(winnerPin, OUTPUT);                                        // set win notification pin as output
  pinMode(buttonPin, INPUT);                                         // set button switch as input
  resetGame();                                                       // call reset game function to initialize the game
}

// the loop() method runs continuously
void loop()                     
{
  setAvailableLoc();                                         
  blinkCounters();
  setUser();
  browsePin();
  setButtonState();
  selectPin();
  displaySelect();
  displayUserStatus();
  displayGame();
  checkWin();
} 

// function that reads if the button has been pressed. Then it sets buttonState to true if button was pressed
void setButtonState() {
  if (millis() - timeButton > timeButtonInter) {
    if (digitalRead(buttonPin) == HIGH) {                                               // if the button is pressed
        buttonState = true;                                                             // set buttonState to true
        timeButton = millis();                                                          // record that time when button was pressed
    }
  }
}

// function to set counter for player 2 pins to blink properly

// function that changes the active user if button has been pressed (e.g. player has made a selection
// function also calls setUser2PinState function to set counter for blinking player 2 lights
void setUser() {
    if (buttonState == true && activeUser == 1) {      // if button has been pressed and active user is 0    
        activeUser = 2;                                // set active user to 1
        buttonState = false;                           // set button state to false 
      }
    else if (buttonState == true && activeUser == 2) { // if button has been pressed and active user is 1     
        activeUser = 1;                                // set active user to 0
        buttonState = false;                           // set button state to false
    }
}

// function regulates the blinking of the user status pin based on what user is currently active
void displayUserStatus () {
  if (gameWinner == 0) {                                 // confirm that no one has won the game
    displayPin(userPin, activeUser);                     // calls displayPin function with to change state of userPin to currect active user
  } else {
    if (gameWinner == 1) {                              // check if user 1 won
      displayPin(userPin, 1);                           // calls displayPin function to show the winner if user 1
    } else if (gameWinner == 2) {                       // check is user 2 won
      displayPin(userPin, 2);                           // calls displayPin function to show the winner ifuser 2
    }
  }
}

// function that governs the activity of each selected pin based on whether it is a user 1 or user 2 pin
void displayPin (int tempPin, int tempUser) {
  if (tempUser == 1) {                                     // checks if current user is user 1 (0)
    digitalWrite(tictacPins[tempPin], HIGH);               // if it is user 1 then turn on the pin pin 
  } else if (tempUser == 2) { 
    if (blinkStateUser2 == 1) {                            // checks if current user is user 2 (1)
      digitalWrite(tictacPins[tempPin], HIGH);             // turn on the pin
    }  
    if (blinkStateUser2 == 2) {                            // check counter number if equal to one
      digitalWrite(tictacPins[tempPin], LOW);              // turn off the pin
    }
  }
}

// counter function that governs the blinking of all user 2 lights
void blinkCounters () {   
    if (millis() - timePlayerLED < timePlayerInter/2) {                    // checks if enough time has elapsed sine light was turned on
       blinkStateUser2 = 1;                                                // keeps the light on until the time has exceed a given interval
     }  else if (millis() - timePlayerLED > timePlayerInter/2) {           // once interval has passed
       blinkStateUser2 = 2;                                                // set light off by change blink state to two
     }       
    if (millis() - timePlayerLED > timePlayerInter) {                      // once a full cycle has passed of turning the light on and off
      timePlayerLED = millis();                                            // reset the time tracker for the next loop
    }
}

// function that displays the game
void displayGame () {
    if (gameWinner == 1 || gameWinner == 2) {                            // if the game has been won be either player
      digitalWrite(winnerPin, HIGH);                                     // turn on green LED
      displayPin(userPin, gameWinner);                                   // display the winner's blink pattern on user LED
    } else {                                                             // if the game has not been won
      digitalWrite(winnerPin, LOW);                                      // keep green LED off
    }     
    for (int counter = 1; counter <= 9; counter++) {                     // loop through each location on the tic tac toe board
      if (locState[counter] == true) {                                   // if location has been selected/taken
        if (user1select[counter] == true) {                              // check if player one has taken this location
           displayPin(counter, 1);                                       // turn on LED to denote space taken by player 1
        } else if (user2select[counter] == true) {                       // check if player 2 has taken this location
          displayPin(counter, 2);                                        // blink LED to denote space taken by player 2
        }
      }
    }
}

// function that re-initialized the game once someone has won
void resetGame() {
  potRead = 0;                                         // holds the pot value
  potRange = 0;                                        // holds the value of the pot range to go from one LED to the next
  activeUser = 1;                                      // holds the active user (1 or 0)
  buttonState = false;                                 // holds buttonState (true means it has been pressed)
  user2counter = 0;                                    // holds variable to enable the active user LED to blink
  tempActiveLoc = 1;                                   // holds number of active locations on board           
  activeLoc = 1;                                       // holds current LED selected 
  availableLoc = 9;                                    // holds number of available locations
  gameStatus = true;                                   // holds whether game is active or over
  gameWinner = 0;
  timeButton = millis();
  timeUserLED = millis();
  timePlayerLED = millis();
  for (int counter = 1; counter <= 9; counter++) {                // loop to set all initialize all arrays and turn off all LEDs on tic tact toe board
     locState [counter] = false;                                  // reset locState array
     user1select [counter] = false;                               // reset user 1 location array
     user2select [counter] = false;                               // reset user 2 location array
     digitalWrite(tictacPins [counter], LOW);                     // turn off all LEDs on tic tac toe board
     
  }
  
}


// function that makes the current selected pin blink on and off
void displaySelect() {  
  if (availableLoc != 0 && gameWinner == 0) {                        // if there is a space available on the tic tac toe board and no winner
    if ((millis() - timeUserLED) > (timeUserInter)) {                // if sufficient has passed since the beggining of the last cycle
      digitalWrite(tictacPins[activeLoc], HIGH);                     // turn on the selected LED
      delay (150);                                                   // wait for 150 milliseconds
      digitalWrite(tictacPins[activeLoc], LOW);                      // turn off the LED lights
      timeUserLED = millis();                                        // reset cycle start time
      }
  }
}


// function that reads the potentiometer and uses this information to select a pin
void browsePin () {
  int openLoc = 0;                                            // variable that holds how many open locations have been found in the array

  potRead = analogRead(potPin);                               // read the potentionmeter
  tempActiveLoc = map (potRead, 0, 1024, 1, availableLoc+1);  // set the size of the range
  
  for (int counter = 1; counter <= 9; counter++) {            // loop to identify current pin based on number of available pins and range 
    if(locState[counter] == false) {                          // if the pin has not been selected yet 
     openLoc++;                                               // then add 1 to openLoc
    }
    if (openLoc == tempActiveLoc) {                           // if openLoc is equal to tempActiveLoc
      activeLoc = counter;                                    // then make activeLoc equal to counter 
      openLoc++;
   }  
  }
}
  
// identifies the number of available locations on the board
int setAvailableLoc () {
  availableLoc = 0;                                          // initialize the availableLoc to 0
  for (int counter = 1; counter <= 9 ; counter++) {          // loop from 1 to 9
    if (locState[counter] == false) {                        // if the location is set to false (e.g. not yet selected)
       availableLoc = availableLoc + 1;                      // add one to the availableLoc variable 
    }
  }
}

// function that enables a user to select a pin
void selectPin () {
  if (gameWinner == 0) {                                      // check if the game has been won, if it has not then
    if (buttonState == true && activeUser == 1) {             // if the button has been pressed and the active user is 1
      locState[activeLoc] = true;                             // set the current location to taken
      user1select[activeLoc] = true;                          // register the location as selected by user 1
    } else if (buttonState == true && activeUser == 2) {      // if the button has been pressed and the active user is 2
      locState[activeLoc] = true;                             // set the current location to taken
      user2select[activeLoc] = true;                          // register the location as selected by user 2
    } 
  } else if (gameWinner == 1 || gameWinner == 2) {            // if game has been won
      if (buttonState == true) {                              // and if button has been pressed
        resetGame();                                          // reset the game
      }
  }
}

// function that confirms whether either player has won the game
void checkWin() {
  
  // check to see if player one won
  if ((user1select[1] == true) && (user1select[2] == true) && (user1select[3] == true)) {
        gameWinner = 1;
  } else if ((user1select[1] == true) && (user1select[4] == true) && (user1select[7] == true)) {
        gameWinner = 1;
  } else if ((user1select[1] == true) && (user1select[5] == true) && (user1select[9] == true)) { 
        gameWinner = 1;
  } else if ((user1select[2] == true) && (user1select[5] == true) && (user1select[8] == true)) {
        gameWinner = 1;
  } else if ((user1select[9] == true) && (user1select[3] == true) && (user1select[6] == true)) {
        gameWinner = 1;
  } else if ((user1select[9] == true) && (user1select[7] == true) && (user1select[8] == true)) {
        gameWinner = 1;
  } else if ((user1select[7] == true) && (user1select[5] == true) && (user1select[3] == true)) {
        gameWinner = 1;
  } else if ((user1select[4] == true) && (user1select[5] == true) && (user1select[6] == true)) {
        gameWinner = 1;
  } 

  // check to see if player two won
  if ((user2select[1] == true) && (user2select[2] == true) && (user2select[3] == true)) {
        gameWinner = 2;
  } else if ((user2select[1] == true) && (user2select[4] == true) && (user2select[7] == true)) {
        gameWinner = 2;
  } else if ((user2select[1] == true) && (user2select[5] == true) && (user2select[9] == true)) { 
        gameWinner = 2;
  } else if ((user2select[2] == true) && (user2select[5] == true) && (user2select[8] == true)) {
        gameWinner = 2;
  } else if ((user2select[9] == true) && (user2select[3] == true) && (user2select[6] == true)) {
        gameWinner = 2;
  } else if ((user2select[9] == true) && (user2select[7] == true) && (user2select[8] == true)) {
        gameWinner = 2;
  } else if ((user2select[7] == true) && (user2select[5] == true) && (user2select[3] == true)) {
        gameWinner = 2;
  } else if ((user2select[4] == true) && (user2select[5] == true) && (user2select[6] == true)) {
        gameWinner = 2;
  } 

}
 

Thoughts on The Machine Stops by E.M. Forster

I thoroughly enjoyed the short story The Machine Stops, by E.M. Forster. This tale tells the story about a future world where everyone lives a life secluded in private cells, all communications are mediated through a machine, all human needs are satisfied through this same machine, and first-hand experience of anything and everything is frowned down upon. Similar to the world depicted in Orwell's classic 1984, humans in this world live like slaves though most choose not to recognize this reality.

The main sentiment Forster echoes in this short story is the fear that through technology we may loose our humanity (or in other word, technology may ultimately dehumanize our society). In The Machine Stops, the machine, rather than man, has become the measure for all things. Human beings have been relegated to lives without any direct contact with nature or one another. Original thought and experience are looked down upon, since they are not confined to the conventions upon which the machine is built.

Before I delve any further into Forster's story, it is important for me to define what I think he means by technology. In one of my classes at ITP someone posited that we (as in humans) considered technology to be anything that was developed after we passed our early teenage years. Though this explanation is practical when talking to a younger person about devices such as computers and cellphones, it is not nearly broad enough. Technology ultimately refers to the making of things - that is why written language is a technology and so is religion, democracy, the wheel, man-made fire, books, bicycles, and of course iPhones.

One very interesting, and prescient element, about this story is how humans choose to imprison themselves by this machine of their own making. This contrasts with many more modern sci-fi stories - e.g. terminator and the matrix - where the machines gain consciousness and rise up against humans. This idea of humans choosing to imprison themselves is fascinating, especially when you view the many layers of technology through which we already mediate our experience of the world.

It brings to my mind how even the technology of language, especially when complemented by writing, often functions as lens through which humans experience the world rather than a set of tools to describe our experiences. As pointed out in Ong's reading from last week, the birth of written language gave rise to much fear (as has the rise of computers in our modern age). In the end it was ironic how the people who were best able to verbalize their fearful emotions about the new technology of written language, embraced written language in their attempts to make cases against it.

The many conventions that we have created in language and that govern our experience of the world were mostly developed in response to one person's (or many people's) experience from a long time ago. The problem is that these conventions often remain in place long after the context in which they were created has vanished. Worst yet, these conventions are often held as truths that supersede a person's conflicting direct experience of the world.

In the world created by Forster, technology is in many ways a dead relic from the past that keeps us from experiencing directly the world in which we are living right now. In his book Zen and the Art of Motorcycle Maintenance, Robert M. Pirsig offers another interesting perspective on technology, and our discontents with it: the source of our discontent with technology in Western society is caused by the dualistic thought that dominates our society. "The way to solve the conflict between human values and technological needs is not to run away from technology. That's impossible. The way to resolve the conflict is to break down the barriers of dualistic thought that prevent a real understanding of what technology is-a fusion of nature and the human spirit into a new kind of creation that transcends both." (p. 284).

As such, the problem with the technological progress in Western society, and the feeling of estrangement caused by it, could be ascribed to our focus on rational and considerations and subject-object dualism (the machine-side of man) and disregard for emotional considerations and a holistic understandings, which cannot be verified analytically.

Wednesday, September 23, 2009

30 Minute Film Festival & 42 Seconds

Here is the one minute short video that I created with Patricia, Lisa, and Eric for Comm Lab. Our challenge was to make movie from ideation through final cut in 30 minutes (ok maybe it was more like 40 minutes). Here is the fruit of our labor:



We had a great time putting this movie together, not to say that we didn't feel any stress as that was a key part of the challenge. Our process started with an open brainstorm session that focused on creating a list of individual words. Once we captured 40 words we reviewed them to pick out a few words or themes with which to build a story. This is what made it to the top of the list: car, racing, accident, hurt, 42 seconds.

Through conversation and negotiation we quickly reached an agreement on the overall storyline and began making a list of shots we needed. We then sprinted downstairs to shoot the footage. Then raced back upstairs to edit the movie. We were done just in the nick of time.

Monday, September 21, 2009

Visit to the Tree Museum in the Bronx

Earlier today I went to the Tree Museum in the Bronx with my wife. We took this trip because it is an assignment from my CommLab class, I was happy to go since I rarely get up to the Bronx. The museum was created by Irish artist Katie Holten to celebrate the communities and ecosystems along this historic boulevard. Visitors are able to listen to local stories related to the trees and their surroundings. These stories are offered by a wide-range of current and former residents.

We got off the subway at the stop on 161 St./Yankee Stadium and walked over to Joyce Kilmer and Franz Sigel Parks. The map bellow shows the area that we explored.


View Larger Map

Even though I did not find the stories themselves very enjoyable, the collaborative storytelling idea and the involvement of members from local community was compelling.

The format of the museum was what I found most interesting - it was powerful with potential for widespread use. Mobile phones are used as the delivery channel for this augmented reality experience. This easy and low-cost solution enables the addition of contextually relevant content to locations in the physical world and support interactive features such as commenting.

What was most fascinating is that the exhibits are ultimately the world around you - or at least a perspective on that small piece of the world. This simple technology seems ideal for small community and art guerrila groups that want to play around with the boundary between real and virtual worlds and the tagging of locations with different types of information.

The use of spoken media was ideal for this type of environment. Sound is the only option for communicating information while enabling an audience to appreciate their visual surroundings - this is not possible using text and image-based mobile internet. Mobile voice service is also a the most accessible portable technology, openning the museum to the widest possible audience. 

The experience was designed to be borderless and to allow each exhibit can live on its own. This makes it easy for individuals to customize their own experience. They can enter and exit the exhibition at any time either physically or mentally by walking away from the vicinity or shifting their focus away from the small markers that serve as the only physical manifestations of the museum.

Actually, one of the complaints I had about the design of the museum was that the markers were to small and non-descript. This made it hard to find the trees that were part of the exhibit. This, I'm sure (or at least suspect), is an area of a lot of debate during the development of such projects. To what point can or should the museum intrude in its real world surroundings considering that it is a visitor here (not the other way around)?

The last thought I have to share in regards to experiences of this type (at least for tonight) is: how can communal experience be delivered via these types of deconstructed museums and exhibits? How can other media provided via cell phone be used to help deliver on this communal experience angle? 

Sunday, September 20, 2009

Thoughts on Orality and Literacy - Chapters 1 - 4

I found the first four chapter of Walter Ong’s book Orality and Literacy fascinating. From my personal experience I agree with Ong’s premise that it in order to comprehend the role and impact of literacy we must understand pre-literate cultures. Furthermore, it is difficult for people from literate cultures (like myself) to understand the role that spoken language plays in oral cultures, and the strategies that pre-literate cultures use to support cognition and memory.

It is interesting to consider that writing is a technology that moved speech to a totally new sensory world, and as such it is still the biggest evolutionary leap in language that mankind has witnessed. It transformed language from a phenomenon that only existed in the “oral-aural” dimension to one that exists in the visual one as well.

When language is limited to the world of sound, a person’s experience of language is determined by its unique characteristics, including its short existence, and communal nature. This has many implications in the way people relate to language and the inner workings of their thought processes. Here are a few interesting examples:

Language is much more situated phenomenon in oral cultures that is closer to the “lifeworld” and is often considered to be magical. Spoken words go out of existence as soon as they are uttered. When language lives in the oral-aural sphere it is always part of an “existential” moment being uttered by a real living person to another person.

In literate languages words no longer hold such a close connection to the “lifeworld”. Words exist on their own in the pages of books, posters and other surfaces, regardless of whether they still hold any relevance. They have achieved the status of objects, or things, that are studied at a distance. This distance was crucial for the sharpening of our analytical and creative abilities.

For oral cultures language is always tied to an event or action in the real world. Their speech and thought patterns are less abstract, focusing on concepts that are relevant for immediate situational or operational needs. “Orality knows no lists or charts or figures.” For example, their relationship is not based on an abstract concept of being situated in a “computed time of any sort.”

Another interesting aspect of language in oral cultures is that it serves an important unifying function. Spoken language is communicated from at least one human being to another and can be used to address an audience of many people – regardless, physical proximity as a requirement.

On the other hand, written language requires the separation of the writer and reader. These two groups were always separated by time and space. The internet has provided new ways to mitigate this separation but in bringing us closer in a virtual world it is also taking us farther apart in the physical world. At this point in time the experience of instant video messaging still does not compare to talking face to face, but it is closer than ever before.

Ong’s description of how memory works in pre-literate cultures is intriguing. Culturally important information was maintained through story telling practices that leveraged “metrically tailored formulas” – poets were the main purveyors of the culture’s soul. These poets used this technology to create anew their stories every time they told them. And they told them over and over, enabling the creation of a communal memory.

Though the storyteller often considered himself capable of repeating the exact same story, research suggests that the story telling would differ each time it was told (though the story itself would remain largely consistent). Which points to the fact that “in functionally oral cultures the past is not felt as an itemized terrain, peppered with verifiable and disputed “facts” or bits of information…Remembered truth was…flexible and up to date.”

Wednesday, September 16, 2009

Comm Lab - 1st Class

Earlier this week we held our first Comm Lab class, led by Marianne Petit. Comm Lab is one of the foundational courses at ITP. If focuses on providing a theoretical introduction to, and hands on experience with, using a variety of tools for communication and story telling. In this class we will explore the use of blogging, social networks, comics, animations, sounds, video, imaging, and other media technologies. During this first session we reviewed the course syllabus and reviewing the process for setting up a WordPress blog.

The course is structured as follows: Mandatory weekly readings (reading list featured below) are coupled with class discussions to provide the theoretical underpinnings for the course. Collaborative and individual exercises are assigned on a weekly-basis to provide practical experience and know-how. Documentation of these explorations and readings is a key part of the course, serving as a foundation for developing strong skills and knowledge in this arena.

Required readings: Orality and Literacy by Walter Ong, Understanding Media by Marshall Mcluhan, Understanding Comics by Scott McCloud;

Recommended readings: Film Directing Shot by Shot by Steven Katz, Digital Foundations: Introduction to Media Design with the Adobe Creative Suite by Michael Mandiberg.

For this week our main assignment is to install the WordPress blog software on our partition of the ITP server. Here are the step by step directions for accomplishing this task. We are also tasked with reading the first four chapters from Walter Ong's book and posting a response on our newly set-up blogs. On a personal level, I am going to use this opportunity to test out the WordPress platform to determine whether I want to transfer all of my blogs from Blogger, where they currently reside.