Portfolio > Entertainment Technology Center


Currently, I am a graduate student at Carnegie Mellon University's Entertainment Technology Center (ETC). I am pursing a Masters in Entertainment Technology and plan on graduating in the spring of 2009. The curriculum mixes people from diverse undergraduate and work backgrounds and has them form interdisciplinary teams to explore and create entertainment technology.

The first semester at the ETC is known as boot camp. All students take a class called Building Virtual Worlds where they are encouraged to create games or other types of virtual experiences through a selection of interesting and new input devices. Every two weeks students are put into a new group of four to work on a different project.

All subsequent semesters are much more open. Students can pitch their own project ideas or sign on to other projects that they will work on for an entire semester. Again, the teams are interdisciplinary.


Winds of Orbis This is my current project at Carnegie Mellon University's Entertainment Technology Center. We have a team of seven working on the project and I am one of the two programmers.

We are creating a game using the Wii controller and a dancepad that encourages active playing. We wanted to make a game that involves more movement than a typical Wii game but a that is not sports oriented.

The game is written primarily in python for the Panda3D engine. The Wii controllers are interfaced using C#. The main systems we wrote for the game include a basic physics engine, a combat and combo system, and the ability to control time. I am also in charge of the website.

etc.cmu.edu/projects/wiixercise


Bumper Ralphs At the beginning of our Building Virtual Worlds class at the Entertainment Technology Center, we had to create a world on our own, as opposed to in a group like we would for the rest of the class. Using Panda3D I created a two player game where the goal is to bump your opponent into a hole in ice. The ice allowed for an interesting slippery dynamic that would add to the challenge. The players would also bounce off of each other and the borders like in bumper cars to make it a little more interesting. Finally, I added a snowman bomb that a player can drop to bump their opponent in.

I used a sample model of a boy in snow clothes that the ETC provided for the character. I modeled the ice and created the other textures and title screens. For the sounds, I used a preexisting song and splash sound, but recorded all others with a basic microphone and my own mouth.


Mutant River The goal of round one was to create a game where the player helps a character who is afraid of another character, we had to use the head mount display virtual reality platform. We decided to make a game where the guest is in an inner tube and they use motion trackers on their hands to paddle down the river, avoiding obstacles.








Amoeba Prom Round 2 was supposed to be a game that was playable by a naive guest. The platform we were assigned was the beyond question remote control. This looked like a TV remote and the ETC had about 150 of them that could be used at a time. The only problem was that they had a slow response time.

Originally, we created a game where the audience collaboratively steers an amoeba into objects to eat until it grows into a giant monster eating whole buildings. When we showed our first prototype, nobody got it, and nobody was catching on. The team sucked it up and scrapped the old version for a four player versus game.

The end result was a game where a player had to eat as many bacteria as they could to be the biggest player at the end. During all of this, viruses attack the biggest and second biggest player. Getting hit by a virus shrinks a player. My favorite part of the game was that a larger player could eat a smaller player to shrink them further.


Smily's Last Bounce For round three of Building Virtual Worlds at the Entertainment Technology Center, we had to create a world in a single week. The world was to be a simple and fun game or toy that deoes not rely on story. My team and I decided to create a twisted pinball themed game where the goal is to get your ball to bounce as far as possible without falling off the bottom of the screen.

The player keeps the ball up by drawing a string of bumpers on the screen. The ball bounces depending on the angle it hits bumpers so the shape a player draws can give a lot of control. There are several obstacles in the world that slow the ball down, speed it up, hit it in random directions, or destroy it all together.

The ETC is all about using new technologies in games. Smiley's last bounce used laser pointers as the only type of input. To accomplish this, we aima camera at the screen where the game is being played. Software detects where the bright red laser is being pointed on the screen and passes that information back to the game. The game is intended for a single player but multiple players can play at the same time as well.


Big Wave For BVW's round five, the goal was to make a game that would be fun to show to a crowd. My group decided to create a game that a crowd could play. We wanted to create an asymmetrical competition, the audience versus a single player.

Our final game had cameras on the audience that could detect the difference between sitting and standing. If the audience stood up a little bit, the game on the screen would create a small wave. If everyone in the crowd stood up as much as they could, they would create a large wave on the screen.

For the BVW show, I stood on a mechanical surfboard in front of the screen. The waves rushed towards the foreground of the screen, towards me on the board. When they reached me, the computer would signal the board to move as though it was being moved by a wave. We challenged the audience to crate waves to knock me off of the board.

On the tech side of things, we made a board on a fulcrum and connected a motor to it. The board had about 90 degrees of movement, it could tilt 45 degrees forward or back so it could be difficult to stand on. Panda3D supports Phidget motor controls so we were able to control the motors movement. All of the waves were generated procedurally with the code based on how high the audience stood up. The world was heavy on shaders and particle effects to make the environment look as real as possible.