Morphing Vertex Shader
This vertex shader takes two different models and interpolates between the sets of vertices over a specified time. This allows a model to grow smoothly from one formation into another as if it was "morphing." This shader was written in HLSL as well as supported in C# with Microsoft's XNA Game Studio.
Morph Shader V.1 from Shawn Kirsch on Vimeo.
My task was to create a way to "morph" a ship from one configuration to another. I researched previous solutions for XNA, but found none. This led to designing the effect from the ground up. After running into multiple dead ends, I ended up writing a custom vertex declaration which stores the vertices of both models in a single stream. I wrote a small testbed application to test the morphing of simple triangles and quads. Once I had them working, I integrated the app into the game. We ran into some problems using a custom vertex declaration such as having to rewrite our lighting equations, but in the end gave us the functionality we initially designed.
Pixel Shader Testbed
This is a selection of pixel shaders I created when working on Alpha Morph. Never having worked with shaders before, I had a week to learn shaders and understand the pipeline. This testbed was created to prepare myself for creating the morphing vertex shader above.
XNA Shader Testbed from Shawn Kirsch on Vimeo.
Listed by order of appearance
Maya/Panda3D Level Editor
While working as a research assistant on a simulation environment for the Game Intelligence Group, I spent most of my time writing scripts to aid the production process of PHD students. One of the most repetitive and time-wasting procedures was the placement of objects in our game world. We were constantly adding new models into the environment and guess-checking their coordinates. Since I had already created a xml based level editor for Softimage XSI, I ported the system over to Autodesk Maya 2008.
Maya Solution
Level Editor - Maya/Panda3d from Shawn Kirsch on Vimeo.
Initially I wrote a solution for Autodesk Maya 2008, which allowed the user to create/load objects, position them, and export the models and their data. It was a simple process that involved selecting objects to be exported and clicking 3 buttons.wxPython Solution

Realtime Visual Debugger
This is a python script I created to aid the debugging process for one of our A.I. developers. While trying to debug agents in game, he was relying on the console for information. We got together and talked about a real-time visual debugging system. We created an interface which would allow him to populate the world with relevant information.