Video Games are Being Taxed?

I was able to forgive New Mexico when they changed my area code. But this is a little ridiculous: the Sierra Club of New Mexico is proposing a 1% tax on video games in order to "fund programs aimed at giving school kids an outdoors education" (learn more on The Huffington Post). What's really scary is what kind of precedent this might set. Videogamevoters.org has lots of other (slightly biased) information, including a ridiculously exaggerated video, and a nifty protest wall.

Bits On Our Mind (BOOM) is Cornell University's "annual research conference that showcases student efforts and creativity in digital technology and applications". This year I'll be presenting the technology used for my independent study last semester, my team's entry for the Games 4 Girls competition hosted by UIUC, and the raytracer my team used for last semester's graphics course. I'll also be giving a talk to high school students from all across upstate New York on interactive media and it's place in the world today.
Not to mention I'm a part of Cornell's Game Curriculum Design Team. We're amassing design curriculum for an after school program for middle school and high school students. The program, although focused in game design, has the express purpose of encouraging young students to become involved in technology. I feel like choking the video game industry with taxes will only hurt all the progress we (as a collective digital community) have made so far.


Costa Rica: the myth, the madness, the pictures

So what exactly was Cornell University's Wind Ensemble doing in Costa Rica? Here's a quick synopsis:

  • conducted musical workshops in three different schools: San Isidro, Poas, and Matapalo
  • performed 8 different concerts. We played in a post office, a parade, and the Canadian Embassy, among other places
  • Donated over 60 musical instruments to music schools across the country
  • recreation (where most of the pictures came from) included hiking in the rainforest, salsa dancing, a jazz club, the beach, the Santa Cruz downtown marketplace, a bullfight, a coffee farm, volcano de Poas, and waterfall gardens.
As a result, I have a whole host of new pictures, shot with my new camera. Among these pictures is the photo I created my new banner from. I also have quite a number of videos, which I hope to put together as soon as I get the editing software set up.

these, and many other pictures can be found on my Flickr account. Enjoy!


Back from Break with a Vocoder Vengeance

I just got back from tour in Costa Rica, meaning I have over 500 pictures to sort through as well as over a dozen videos. All were taken with my new Sony Cybershot DSC-W200, a high end point-and-shoot camera. Unfortunately, I'll be flying out to Seattle this week for an interview with Microsoft and so I won't be able to put the pictures up until I get back.

Let me instead show you a short side project from last semester's independent study, made using Reason's vocoder. Here Reason combines the formant of my voice and the sound of synth vocals + strings while I recite Robert Frost's Fire and Ice. I'm particularly happy with the way the chord progression complements the structure of the poem. (apologies that the volume is so low)

frost on imeem


Computer Graphics: Part Two

The sun shoots out a light ray that hits a blue ball. The blue ball reflects the blue ray and absorbs all the other colors. That blue light ray enters your eye and that is how you see. Computer Graphics follows this same method, only backwards, and the method is called ray tracing.
First, a ray is generated for each pixel. This ray shoots out into the virtual scene being rendered. Then you test whether or not the ray hits an object. If it does, the pixel color is the color of the object. If not, the pixel color is black.

When the pixel's ray intersects a ball, you can use a ray from the light source (vL), the surface normal of the ball (n), and vector math to determine how that pixel ought to be shaded. There are several different shading methods, including Lambertian and Phong (Lambertian is shown to the left).

What the objects still lack are shadows. after the pixel's ray hits an object, you check if ray vL is blocked by an object. If it is, this point on the ball is being cast into shadow by another object, and therefore must be black.

After a while spheres can become pretty dull. What else can you render with ray tracing? Anything that can be represented mathematically (remember, you have to mathematically calculate where a line and your object intersect). Unfortunately even simple shapes like a donut become difficult to model mathematically. Instead, complicated shapes are modeled using triangles.

Modeling glass objects provides another interesting challenge. When you look at glass, you're seeing not only the colors through the glass, but also the colors reflected by the glass. It makes sense then that in ray tracing, when a ray hits glass, it splits into two rays, one that reflects off the surface and one the refracts into the surface. If there are several glass objects in the scene, you can imagine the recursive nightmare that takes place. This problem is usually circumvented by specifying a maximum recursion depth.

Last semester my partner and I had to make a ray tracer for our course in computer science (thanks to Professor James for his slides). Below are some renders: