# Overview

For the fall 2014 VIZA 659: Physically Based Modeling course we covered the fundamentals of physically based simulation and implemented various phenomena. The main topics included particle systems, paticle interaction, collision detection and response, spring-mass-damper systems, integration techniques, and rigid body dyamics. I developed the following simulations with Java, but using Processing to handle the graphics. I also created a matrix and vector class for the rigid body simulation.

# Mass Spring Damper cloth simulation

Modeled as a lattice of points with connecting structural, shear, and bending springs. The simulation uses fourth-order Runge-Kutta integration. I also implemented Gouraud shading.

# Mass Spring Damper soft body simulation

Modeled as a lattice of points with connecting springs and cross-springs. The simulation uses fourth-order Runge-Kutta integration. The stiffness and damping of the springs can be changed at the start of the simulation.

# Rigid body simulation

Using the moment of inertia and center of mass of a cube, I am able to compute the orientation and angular velocity in addition to the linear velocity and position of the object. The simulation uses fourth-order Runge-Kutta integration. The simulation also uses an impulse-based reaction model for collisions.

# Craig Reynolds Flocking simulation

This is a simulation of interacting particles by adding velocity matching, collision avoidance, and flock centering forces to the simulation. All three of these parameters can be adjusted interactively, as well as the attraction of the boids to the black spheres. The simulation uses Euler integration.