I've studied Electrical and Computer Engineering and other things. Below are some of my favorite and sometimes controversial projects.

Experimental Gameplay Project!

Over the course of one semester, we are generating tons and tons of mini game prototypes with novel interactions and novel gameplay on *extremely short* development cycles, where each cycle is based around a "toy" i.e., 2d fluid dynamics, particle systems, flocking group behavior, etc.

The idea is that complexity is not necessary for fun, but that it is possible to have fun even with basic primitives given a compelling interaction and goal. It's all about design.

Experimental Gameplay Project Website

 

About 4 days per game, in teams of 1.


3D Networked Pong in VR

Battled it out in a group of four for about four days to make a retro-themed 3D networked version of the popular arcade game in virtual reality.

I designed the network protocol and game server in pure Python which interfaced with Disney's Panda3D on the client ends. Video of a game in front of an audience of 500 is here.

 
Retro-themed 3D networked version of the popular arcade game. This clip is a battle live at the BVW show.

More OpenGL Mini Games!

Individually created games and interactive experiences built from scratch using OpenGL in class 15-493 Computer Game Programming at CMU. Topics covered include shading, collision detection and physically-based modeling, game AI, path finding, and multi-user games and networking.

Pictured at upper-right is an OpenGL game of Hide & Seek. Featuring multi-texturing to give the game a visual style that appears to be sketched and shaded while maintaining a high frame-rate, extremely basic character AI so the girl can navigate the terrain and find you no matter where you hide. At bottom right is a two player racing game Wooorm Racer where the racing worms are generated procedurally in a feedback loop - much like how delay/echo effects work in audio!

Both games recall physics101 lectures to make all motion based off of acceleration for sexy fluid motion. Camera and character motion responds to change in terrain height such that they have difficulty climbing inclines, and move quickly down hills.

 

Screen shot from OpenGL game
of
Hide and Seek

Screen shot from OpenGL two-player racing game
Wooorm Racer


     

GOD-Blaster!

A multiplayer real-time strategy where each player leads a team of missionaries and exploding religious fundamentalists. They must convert (or kill) all of the opposing team into their own religion, in a gruesome battle over who God loves most. Each unit has a "faith bar" that when it hits zero, they are converted to the opposing religion. The game maintained up to 100 characters in sync across the network.

To the team that wins, everyone is a winner! Worked with the talented Mr. Shalin Shodhan!

 

From OpenGL game
GOD-Blaster!

download gameplay footage of a networked demo 18mb divx


The Vine, Anonymity Protocol

The Vine is a human rights tool designed to guarantee electronic privacy and anonymity. Think hacker movies. Suppose the user of a computer wishes to share some information, but wants to remain anonymous. With the VINE, a user's computer simply tells another computer, which tells another computer, which tells another computer, and so on until the message ultimately reaches the intended recipient. And so, each participant in the chain can identify only from whom it heard the message, leaving the original sender absolutely unidentifiable. In this way, a user can send email, browse the web, download files, publish documents, or overthrow the Canadian government, all from the safety of someone else's address.

This solo project was for my senior thesis where I designed and implemented an Internet anonymity protocol.

 
An Anonymity Protocol, Application, and Network for an Identity-Free Internet

Future-Predicting Tank of THE FUTURE! (AI)

Wrote some tank simulation AI code to hunt down and destroy other tanks. Cool features included:

  • a predictor engine that would simulate the world into the future to
    • estimate the future locations of enemies by the time in the future my missile could reach them for accurate killing
    • estimate the future locations of enemy's missiles to take evasive action for effective defense
    • simulate it's own missile trajectory before firing to guarantee the missile path was not obstructed by buildings/rocks etc to ensure a direct hit
  • an implementation of the A* pathfinding algorithm for speedy but reliable maze navigation
 

a project in AI

Augmented Cognition
Biofeedback in Wireless Virtual Reality

Our research team at CMU created a biofeedback loop where an interactive virtual world responds to a human’s stress levels and vice versa. Sensors included a 32 channel EEG (for 'brainwaves'), a heartrate sensor, and GSR (galvonic skin response) sensors. We then streamed all biometric data through real-time gauges to make useful sense of the data. As a part of DARPA’s Future Force Warrior project, we were able to show that given intelligent use of biometric data, it should be possible to increase a person's performance by 300% in vigilance related tasks.

Entertainment related extracurricular side projects included:

  • slot cars racers with speed controlled by Galvanic Skin Response
  • a "BRAIN TV" that automatically changed channels when it detected you were not "aroused"
  • a networked VR "Love Train" who’s speed and clank-clank of the tracks matched your heart rate. We connected our VR lab at CMU with a VR lab at UVA for some mutual bio-feedback fun. Watch the video! 34mb divx
 

research and entertainment with
biofeedback

Virtual Room Tours

During the summer of 2002, I developed virtual room tours for the University of Virginia. I used Macromedia Director for real-time rendering, but developed proprietary code and algorithms to allow interactive camera movement, collision detection, etc.

In fact, unlike traditional panorama room tours, I actually measured and computer-modeled five university dormitories to create a realistic interactive tour where the visitor has the freedom to walk from room to room, investigate the beds, shelves, closet space, and even look out the windows to see the rest of the University.

 
Screen shots of three of my CG models
(ie. These are computer models, not photographs):
McCormick, Hereford, Brown

Embedded Programming and Chip Design

Designed and built a working 35VEE8 processor using FPGA's which ultimately ran at about 12MHz and took advantage of asynchronous instruction pre-fetching. Worked in a team of four. Theoretically, given a software emulator, you could even run windows on this thing.

Used FPGA Advantage for design entry (Renoir), simulation (ModelSim) and synthesis (LeonardoSpectrum), and Actel Designer for place and route of synthesized design.

 

Printout of a gate level view of our processor
     

el Character Assassinator

With only the best intentions in mind, I wrote the mailAssassinator class as my first experiment with socket programming. It is basically a front end for a telnet session to a mail server's port 25.

In other words, with this program you can send email to anyone using anyone's name and email address. It's fun.

 
 
send email to anyone using anyone's name and email address

 

traffic statistics