vrTANKS is a Unity game I have been working on for the Oculus Rift (a Virtual Reality headset). It is an arcade-style tank simulator. Your goal is to destroy as many enemy tanks as you can before being destroyed yourself. Pilot your tank using an Xbox controller or keyboard – tank weapons fire in the direction you are looking. The vrTANKS tech demo was recently published on the official Oculus website, and was also m
Shadows is a 2.5D platformer game concept I created with a 3 person team for a Game Design Practicum, as part of University of Pennsylvania’s Computer Graphics and Game Technology program. To solve the puzzles presented in the game, the player must shift light source locations in order to alter shadow placement, which constrains the player’s motion. We designed the game in Unity, with all scripting written in C#.
This is a basic version of the classic game Asteroids, created in the Unity game engine (scripts written in C#). Game features include alternative ‘cockpit’ view and ship weapon upgrades. Levels become increasingly difficult as player clears the asteroids. (Place-holder 3d ship models courtesy of Turbosquid)
BranchOut is a Maya plugin that I created along with another student as part of a course on advanced topics in animation. The tool was created using a combination of MEL scripting, C++ programming, and 3D modelling. The plugin allows users to generate tree models using algorithms that mimic natural growth. Using a large set of customizable parameters, users can create different shaped trees meshes that will ‘g
Incompressible fluid simulation using a Semi-Lagrangian approach to solve the advection step for air velocity, smoke density, and temperature with a poisson solver for pressure. Written in C++.
This rigid bodies simulation is written in C++ and OpenGL. Keyboard interaction allows the user to shoot spheres into the scene. Collisions are detected for planes, spheres, cubes and rectangles. Impulse force for collision and contact resolution follows the method presented in the paper “Nonconvex Rigid Bodies with Stacking.” The simulation uses a Sweep and Prune algorithm for broadphase collision d
Physically-based simulation of a jello cube using a mass-spring particle system. The system uses structural, shear and bend springs to simulate shear and bending resistance while retaining structural form. Collision detection is calculated for planes, cylinders, cubes and spheres. Implemented using RK4, Euler, midpoint, and velocity verlet integration methods.
The purpose of this program is to simulate behavioral animation in vehicle-like walking agents. Agent equations of motion, body dynamics, and control laws are used to simulate the following behaviors: seek, flee, arrival, departure, wander, and obstacle avoidance. Flocking behavior is achieved by simulating separation, cohesion, and alignment between the agents.
This fireworks simulation uses particle system to represent launching rockets and the resulting exploded sparks. Simulation computes particle forces and state vectors, which are then updated using Euler integration. Project was extended to include wind and aerodynamic drag forces.
This simple application allows the user to draw points and a resulting interpolated spline curve is drawn. Interpolation methods include Bezier curves (using Bernstein polynomials, de Casteljau, and matrices) and Hermite splines (‘clamped’ and ‘natural’ endpoints).