"Simple Ray Tracer"
Final Project for CPE 572 Winter 2011 - Particle Simulation
Massimo 'Max' Becker
Winter 2011



Project Description:


My final project was to implement a particle simulation with inter-particle interactions and forces for a particle system contained in a finite box with constant externel forces.

Features:


The particle simulator creates a particle system with a specified bounding box and fills it with a fixed number of particles. The simulator starts by calculating forces and movements of each particle with a default time step. Each subsequent timestep is calculated based off of the velocity of the particles in the system. This allows for a smoother looking simulation. Forces are calculated in the following order: gravity, viscoscity, damping, boundry collisions, particle collisions. Particle collisions use specified damping forces during the collision calculations.
The user also has the ability to move the view around the particle system and reset the simulation.
A Gaussian kernel function has been specified for additional particle system interactions but is not yet used.


Design:


The particle simulator is designed by breaking the simulator into two distinct pieces, the individual particles and the particle system containing the particles and force constants.
This design allows for multiple particle system with different forces to be created.
During runtime, each particle calculates its forces based off the bounding box specified by the system it belongs to, the other particles within that system, and the forces as specified by the particle system it belongs to.

Screenshots:


<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

<Single Sphere>
Image

Future Ray Work:
Add density and pressure forces to the simulation.
Add command line arguments to change initial particle system parameters. (Number of particles and forces etc.)
Add a way for user to change particle system parameters during runtime
Render multiple different particle systems with different parameters


References:

Physically Based Modeling: Principles and Practice
Fluid Simulation For Computer Graphics: A Tutorial in Grid Based and Particle Based Methods
Particle Simulation using CUDA
Physically-Based Fluid Modeling using Smoothed Particle Hydrodynamics