Keytweeter Keys

November 22nd, 2009 experiment,research 2 comments

Keytweeter Keys
My friend Kyle has a built an app the tweets every 140 charters he types twitter.com/keytweeter. I thought this was interesting so I built an app to pull his twitter down and visualize the most popular key. Unfortunately twitter only allows you to go 3200 tweets back via paging. So the picture about is Kyle’s last 3200 tweets. Looks like E is the popular letter. I could have just wikied it but this was much more fun.

keyTweeter Numbers
I just ran the app on just numbers interesting results. Its very linear with zero being the most popular.

A Day in the Life of the MBTA

November 15th, 2009 Projects no comments

All Trains
Orange
841 x 594_A2
Just finished a project with Ryan and Brad for the MassDOT developers challenge. They release data of the card swipes for a 24 hour period. The three of us in about 5 days created posters visualizing the trains traffic on all the MBTA lines. The conference was yesterday and we ended up winning second place. Read more about the project here.

The project was a collaborative effort between:
Todd Vanderlin
Ryan Habbyshaw
Brad Simpson

First Grass Renders

September 28th, 2009 art,experiment 1 comment


Short Grass
Long Grass
Here are some first grass attempts for a piece I’m working on. There are 4,096 blades of grass with about 15 circular segments per blade. The are built with VBO’s running at about 50fps. I would love to get a few more FPS with some optimization.

watch HD here

Diggin 3D Worms

September 27th, 2009 art,experiment 1 comment

3d Worms
Big One
Working on some grass for a piece I’m working on. This is my first time generating 3d geometry for a worm/grass. Oh man this is fun.

Normals

September 22nd, 2009 experiment,research 1 comment

Normals Sphere
Finally got normals working for the height map. Brad helped me a ton with the math, thanks brad :). After making sure I had the right points its was pretty simple.

Here is an example to calculate normals for a grid in OpenFrameworks. Obviously this can be applied to any other language.
grid

The image above we have four points on a plane. We need three of those points:

ofxVec3f p1(x1, y1, z1);
ofxVec3f p2(x2, y2, z2);
ofxVec3f p3(x3, y3, z3);

We now need a vector from p1 to p2 and p1 to p3.

ofxVec3f v1 = p1 - p2;
ofxVec3f v2 = p1 - p3;

We need the cross product of v1 and v2. This will give us our normal vector. Next we normalize that vector scale it and add p1.

ofxVec3f normalVec = v1.cross(v2);
normalVec.normalize();
normalVec *= 50.0;
normalVec += p1;

Now render from p1 to normal vector.

ofSetColor(255, 0, 0);
glVertex3f(normalVec.x, normalVec.y, normalVec.z);
glVertex3f(p1.x, p1.y, p1.z);

New Camera Mount

September 21st, 2009 life no comments

New Camera Mount
Just got this new mount – it is great so excited :)