Data scraping is going well.. I have at the time of writing about 65k+ images scrapped of the iTunes App Store.
I forgot to mention, I’m changing my idea to try to visualize something interesting from the abundance of (mostly bad) icons on the App Store. I don’t think I will have sufficient time to scrape the entire app store, I’ll just have to work with what I have.
I’m not too sure what kind of visualization I can get out of all these data. On the fundamental level, I’m going to try to generate a colour chart of all the icons in the app store. I’m also thinking of experimenting with data averaging or various other techniques to see what I can get.
void setup(){// define the window size & enable anti-aliasing
size(550, 800);
background(255);
smooth();
noFill();// not solid squares
noLoop();// only draw() once}void draw(){// allow for some padding around the edge
translate(30,10);int x =0, y =0, side =30;int i =0;// increment just like the originalfloat j1, j2;// random numbers for translation and rotationfor(int k =0; k <24; k++){// iterate through y-axisfor(int j =0; j <16; j++){// iterate through x-axis
i++;
translate(x, y);// re-define coordinate axis to square// pick increasingly variable random numbers for
j1 = random(-15*i/244,15*i/244);// translation
j2 = random(-15*i/244,15*i/244);// & rotation// rotation should only affect one square at a time,// so push and then pop that alteration to the coordinate axis
pushMatrix();
rotate(radians(j2));// rotate the axis
rect(j1, j1, 30, 30);// plot the square
popMatrix();// return the axis to its original state
x=30;// x-position advances for each square drawn in row
y=0;// y-position shouldn't change in the middle of a row}
x=-450;// return x to beginning of row position
y=30;// adjust y to next row}}
An attempt in Flash / ActionScript 3.0
On second thought, I should have take a stab at it in Processing… It was hard to find directly applicable code. Alternatively, I also may just to be better at getting into the coding mindset.
The textrain is *supposed to* get caught on the whitest thresholds (worked better for the mediocre video quality and harsh desk lamp lighting).
In brighter news: The text is inspired by one of my favorite quotes:
“You know you’re in love when you can’t fall asleep because reality is finally better than your dreams.” -Dr. Seuss
/*
* Alex Wolfe - Spring 2011
* Interactive Art and Computational Design
* Reproducing Schotter(1965) by Georg Nees
*/int rectSize =20;int rows =23;int col =12;int xOffset =30;int yOffset =10;int r =8;void setup(){
size(300,500);
background(255);
rectMode(CORNER);
smooth();
noFill();
stroke(0);for(int x=xOffset; x
This is an example of my Open Frameworks “Text Rain” interpretation. I used the openCVExample including the various ofxCv classes (particularly ofxCvContourFinder.cpp).
Created by running a filter, changing colors beyond the average pixel brightness to white, and the rest to black. When a letter hits a “black” pixel, it is moved upwards, otherwise it moves downwards.
This is a video of my Text Rain reproduction. I coded it in Processing, but had trouble embedding the applet (It couldn’t find the Capture class when it tried to run it on the blog), so I made a video instead. This uses code from the background subtraction example from processing.org. There are a few small bugs, but they are mostly based on lighting and the color of my walls. My screen capture software was acting up as well, which explains the video stuttering.
The idea is very simple. A background image is used to estimate the regions in the video that are being occupied by active observers. The difference image between the current frame captured by the camera and the background is smoothed, thresholded and dilated. These operations generate a foreground map that allows to determine when to change the position of the text.