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.
C++ volumetric renderer implemented using ray marching and a voxel buffer. Voxel densities, colors, lights, and camera values set with user input. Project extended to use Perlin noise to generate voxel densities (resulting in cloud shapes), and density driven color ramps.