Category Archives: Uncategorized

Bueno

28 Jan 2013

Screen Recording 2 from Andrew Bueno on Vimeo.

Here it is, my own little tribute to Text Rain. My method was to create a LetterDrop object containing coordinates, a velocity, a color, and a character. These were stored into an array list, and spawned about 500 pixels apart. Each line of rain is from an e e cummings poem – they can eventually catch up to each other if there is a collision. Each letter stops in place if it hits a pixel that is dark enough. I decided to highlight the brightness difference by recoloring pixels into one of two colors, depending on where it fell relative to the brightness threshold.

https://github.com/buenoIsHere/textRain

 

Screen Shot 2013-01-28 at 8.19.40 AM

import processing.video.*;

Capture cam;
float brightnessThresh;
String [] quotes;
ArrayList  letters;
int letterGap;

//Our raindrops!
public class LetterDrop
{ 
  public float velocity;
  public float lx;
  public float ly;
  public char letter;
  public color clr;

  public LetterDrop(float xcoord, float ycoord,  char l, color c)
  {
    lx = xcoord;
    ly = ycoord;
    velocity = .6 + random(0.0, 0.07);  
    letter = l;
    clr = c;
  }
}

void setup() {
  size(640, 480);

  quotes = new String [2];
  quotes[0] = "Humanity i love you because you are perpetually putting the";
  quotes[1] = "secret of life in your pants and forgetting it’s there";

  //SETTING UP WEBCAM CAPTURE
  String[] cameras = Capture.list();

  if (cameras.length == 0) {
    println("There are no cameras available for capture.");
    exit();
  } 
  else {

    // The camera can be initialized directly using an 
    // element from the array returned by list():
    cam = new Capture(this, cameras[0]);
    cam.start();
  }

  noStroke();
  brightnessThresh = 120;

  // CREATE THE FONT
  textFont(createFont("Georgia", 22));
  textAlign(CENTER, BOTTOM);

  letters = new ArrayList();
  spawnLetters();
}

//Helper function for setup. Populates our array of letters.
//Note that I was inspired by ~Kamen and I give credit to him for
//the idea to have the next text lines "waiting" offscreen.
void spawnLetters()
{

   //GRAB A LINE FROM THE POEM
   for (int l = 0; l < quotes.length; l++) 
   {

    String phrase = quotes[l];
    int len = phrase.length();

    //FOR EACH NONSPACE CHAR IN PHRASE, MAKE A NEW LETTER OBJECT
    for (int i=0; i < len; i++) 
    {
      char ch = phrase.charAt(i);

      if (ch != ' ')
      {
        letters.add(new LetterDrop(10 * i + 30, -l * 500 + 20, ch, color(255, 255, 255)));
      }
    }
  } 
}

void draw() {

  update();

  image(cam, 0, 0);
  // The following does the same, and is faster when just drawing the image
  // without any additional resizing, transformations, or tint.
  //set(0, 0, cam);  

  for (int k = 0; k < letters.size(); k++)    {     LetterDrop drop = letters.get(k);     if (drop.ly >= 0) 
    {
      stroke(drop.clr);
      text(drop.letter, drop.lx, drop.ly);
    }
  }

}

void update()
{

  // DRAW CAPTURED WEBCAM IMAGE TO WINDOW  
  if (cam.available() == true) {
    cam.read();
  } 

  loadPixels();

  //RECOLOR IMAGE BASED ON PIXEL BRIGHTNESS
  for(int i = 0; i < cam.height; i++)
  {
    for(int j = 0; j < cam.width; j++)     {         int index = (i * cam.width) + j;                  if(brightness(cam.pixels[index]) > brightnessThresh)
        {
          cam.pixels[index] = 0x5F7485;  

        }
        else
        {
          cam.pixels[index] = 0x4B556C;
        }
    }
  }

  updatePixels();

  //CHECK EACH LETTER FOR COLLISION
  for(int k = 0; k < letters.size(); k ++)   {     LetterDrop drop = letters.get(k);          if(!collision(drop))     {       drop.ly += drop.velocity;     }     else if(collision(drop) && (drop.ly > 15))
    {
      int aboveIndex = floor(drop.lx) + floor(drop.ly-1) * width;
      if(brightness(pixels[aboveIndex]) < brightnessThresh)       {         drop.ly -= 5;       }     }          if(drop.ly > height)
    {
      drop.ly -= height + 500; 
    }   
  }
}

boolean collision(LetterDrop drop)
{

    if(drop.ly > 0)
    {
      int index = floor(drop.lx) + floor(drop.ly) * width;
      color pC = pixels[index];

      if(brightness(pC) < brightnessThresh)
      {
        return true;  
      }
      else
      {
        return false;  
      }
    }
    else
    {
      return false;  
    }
}

Meng

28 Jan 2013

This is a boring broke up game in beatles hello goodbye music. I still having difficuties in implimenting desired function with sifteos.
My initial idea is like this:
F6CC392A-C7DA-4155-957E-3B96B93B0E7B

I designed a kaleidoscope with multiple cubes for kids. They can pile up the cubs and rotate them and get different graphic patters. I like the idea because it is simple and classic game. However, then I found out that this cubes do not support this kind of interaction. I think each cube having some thing like a weight sensor would be fantastic! Because it is not only about kaleidoscope. It is a new way of interaction, new games/ app can be developed, such as magnifying glass. Isn’t if fun to explore a virtual world in another dimension??

Since the due, I make a little brokeup dudes game, as same as the beatles song: ” Hello, Goodbye!”

Screen Shot 2013-01-28 at 8.52.41 AM Screen Shot 2013-01-28 at 8.51.39 AM

Here is the code: https://github.com/mengs/Shifteo

Ziyun

28 Jan 2013

<iframe src=”https://player.vimeo.com/video/58365584″ width=”500″ height=”325″ frameborder=”0″ webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> <p><a href=”https://vimeo.com/58365584″>trackpad+PD</a> from <a href=”https://vimeo.com/user9083595″>kaikai</a> on <a href=”http://vimeo.com”>Vimeo</a>.</p>

I didn’t realize how hard it would be to just simply get two addons work together in on project until I actually got on working on it..So I’ve encountered folder hierarchy problem in the ofxMultiTouchPad  addon which works under four folders instead of the usual three, so I had to manually change the OF_PATH setting. Another thing was that the two addons were “defined differently in C”(I wished I paraphrased this right) – said my a friend of mine so I would need to add a new setting to describe them correctly, so the setting is:

OFX_PD_CFLAGS:

-DHAVE_UNISTD_H -DUSEAPI_DUMMY -DPD -dynamiclib -ldl -lm

And here is a thread we might want to look at:

https://github.com/libpd/libpd/issues/29

 

So yea, I got it worked..yayyy!!!

Here’s the two ofxaddons I used in this experiment:

ofxMultiTouchPad

ofxPD

 

 

Ziyun

28 Jan 2013

This is a collaboration work with Can (John) Ozbay.

For details please click here.

Z.

John

28 Jan 2013

Screen Shot 2013-01-28 at 3.31.12 AMI’m still finding my way around OpenFrameworks and also XCode which feels clunky and extremely demanding (why does it keep chaning my directory view when I compile?) At the same time the benefits of OF over Processing wrt computational capability are pretty obvious even now.

My demo is a combination of the openCV addon which comes included and the ofDrawnetic addon. The two don’t interrelate at all, they simply share the screen. Just for the record, ofDrawnetic has some really top notch examples.

Here’s the repo: https://github.com/johngruen/camera_draw

ofxaddons from john gruen on Vimeo.

Dev

28 Jan 2013

Being a citizen of the Internet is no fun if you don’t look like one. BUT NOW YOU CAN!

Screen Shot 2013-01-28 at 12.21.04 AM

Introducing TrollFaceOSC. TrollFaceOSC checks how wide you are smiling, how raised your eyebrows are, and even if you are mad. Given these values, a mapping is made to the appropriate face (At the moment there are 4 (and to be counting)).

So fairly basic stuff as far as programming goes. A lot of the code was inspired by the Processing example given by Dan (FaceOSCSmiley I believe). After I got the basics coded,  I spent some time calibrating it to my face, and then voila.

In the future I hope to add more faces, and make the app more general. Imagine – you can take any youtube video and add a troll face to it! SUPER PRODUCTIVE!

GitHub: https://github.com/dgurjar/TrollFaceOSC

Nathan

27 Jan 2013

Screen Shot 2013-01-27 at 2.31.27 PM

This was one of the most exciting things I have ever done. I was able to use openFrameworks successfully. More than just opening up examples, I really wanted to make something work that I had seen and that I felt would be wonderful together. I chose to use ofxOpenCV, ofxXmlSettings, and ofxIpVideoGrabber because I found out through Andy that there is an antcam. Yes. A live stream of ants all day and all night. I have been fascinated with ants and have made prints, and etchings of the biological wonders. I want to use my combination of addons to create a video-mash up of different antcams across the internet and cross imbed cams of our own civilizations. This piece will probably culminate in an After Effects project where I draw comparisons between the intelligent lives of ants and our own.

Also this picture is my favorite thing of all time.

Screen Shot 2013-01-27 at 2.29.35 PM

 

My code is here.

 

Nathan

27 Jan 2013

Screen Shot 2013-01-27 at 9.24.48 PM

Oh Sifteo… Oh C++. I believe that this was by far the most difficult thing I have ever done. I learned so much over this single weekend. That being said. I love writing poems, and this is one I have been writing over the past month(ish). It is a draw-along story that tells you to keep a sketch book journal along with the poem. I plan on taking the drawings and compiling individual books out of the sifteo-aided drawing assignment. The application is based on the text example (almost didn’t change anything. Only what C++ I could understand).

Sifteo Novel from Nathan Trevino on Vimeo.

Screen Shot 2013-01-27 at 9.02.47 PM

My code is here.

Kyna

27 Jan 2013

ofxAddons! This was the hardest and most frustrating project for me. Being totally unfamiliar with the openFrameworks environment as well as both the Code::Blocks and VisualStudio 2010 environments, it took me a good long while to figure out how to do anything in these projects. As it turns out, most of the pre-built project examples for ofxAddons are for Xcode. Of the 15 or so addons I tried, I eventually got three to work, and this is the most interesting combination I found. This is a combination of underdoeg’s openSteer flocking example and toruurakawa’s FakeMotionBlur. While maybe not particularly interesting or ‘lazy like a fox’, I think the result is actually pretty graceful.

Git -> maybe someday, when github and I reconcile our differences

Robb

27 Jan 2013


Concept


Simple. Elegant. Shell game.
No reason to corrupt this old-time classic with additional dimensions on interactivity.
The backlit displays allow the game to be played in the darkest of alleys.
In the event of a gambling sting, the confiscated evidence will dissolve as the batteries die in the evidence locker, allowing the perp to walk.

2013-01-27 20.35.42

Process


I originally imagined a version of the shell game where you could not lose. After carefully examining game theory and cultural paradigms, I realized this further perpetuated the societal issues often associated with the trophy generation. The shell game is ancient. It has always been challenging, and should remain so. It is an excellent lesson in humility, as it lives within the class of games that depend on the player falsely believing they are smarter than their opponent.