Unity Sprite Sheet/Animation Editor

Currently working with Melty Games to create tools for 2D sprite sheet editing and animation for the Unity engine. Sprite sheet editor (below) built as extension of Unity editor GUI, used to divide sprites into non-uniform sizes.




Shaders in HLSL

Shaders using DirectX and HLSL- implemented phong lighting and shadow maps. Final project included deferred shading with real-time screen space ambient occlusion method for surface detail as outlined in Hardware Accelerated Ambient Occlusion Techniques on GPUs. Geometry buffer included data for diffuse, normal, and world position. (Dragon model from Stanford 3D scanning repository, Ajax bust from Jotero)




Ray Tracing

Created a ray tracer featuring ray-object intersection with objects including: sphere, box, rectanges, ellipses, cylinders. Implemented methods for global/local illumination, reflection/refraction, anti-aliasing, soft shadows, depth of field


Render engine

Created implementations of various graphical techniques and features including Z-buffer scanline algorithm, clipping, Phong lighting, texturing, bump maps, mipmaps, anti-aliasing, BSP Trees, occlusion.



Physics and Animation


Performed loading of hierarchical mesh with my own functions for parsing animation data from a .X file. Used IK with running animation to perform motion along a path with acceleration and deceleration, matching the speed of the animation with the speed of the character. Created movement of IK via target object using cyclic coordinate descent solution. Created constraints on the joints to prevent unnatural movement.



Implemented a cloth simulation using a mass-spring system. The cloth interacts with a moveable sphere in the scene by simple collision checks using sphere radius. The anchor points holding the cloth can also be manipulated.



Independent project done over the summer. Implemented a particle system to simulate fireworks, using 2D sprites.


Artificial Intelligence

Genetic Algorithm

As part as an AI research project I developed a genetic algorithm to evolve a city represented as a 2D square of buildings. To determine fitness, the economy of the city is evaluated as well as defense. Defese is gauged by running attack simulations on the city and evaluating the damage done. Each building type has parameters such as cost to replace, population, income, and strength. There are 5 building types: residential, factory, farm, wall, and barracks. Some buildings have effects that aid or hurt other building types (ex: a certain number of farms are needed to support a certain population, residents prefer not to live by factories).



State Machines and A*

Using the framework provided for CS580 by Steve Rabin, implemented A* and Dijkstra pathfinding. Created state machine for "Tag" type AI behavior using the framework and state machine language provided by Rabin. For my implementation of pathfinding and state machines for the game TEK see Games.