Spring 2016

Unified Particle Systems

Abdullah Yousufi, Neel Virdy, Sam Gondelman

We have designed a GPU based particle system to handle inter-particle interactions. The system is versatile enough to support numerous mediums, including fluids, smoke, rigid bodies, cloth, and granular materials, all in real time. The underlying constraint system is easily extensible to support a wide variety of constraints.

Generation of Unbounded Procedural Landscape using Hydrology

Lucas Priebe, Vijay Narayanan

We used the paper "Terrain Generation Using Procedural Models Based on Hydrology" to generate procedural terrain over an endless landscape.

Transforming 3D models into contours with stylized shading

Divya Mahadevan, Josh Tveite, Michelle Lin, Vivian Morgowicz

An implementation of the paper “Computing smooth surface contours with accurate topology” by Pierre Benard, Aaron Herzmann, and Michael Kass (2014). We re-mesh and refine 3D models to extract consistent contours. Contours are then composited with a watercolor shader to produce a stylized 2D representation of the original model.

Predictive-Corrective Incompressible SPH Simulation

Zihao Li, Samuel Johnson, Dixuan Yang

This work is based on Predictive-Corrective Incompressible SPH (PCISPH), which is an improvement of the original SPH simulation method by applying an additional prediction-correction loop to achieve the incompressibility as well as allowing larger simulation timesteps. In order to enhance the quality and stability of this simulation, we integrated concepts from other related papers such as enabling self-adjusted time steps, applying particle collision tests, using a more practical "cohesion-viscosity-curvature surface tension model", dealing with boundary particle issues result from insufficient neighbors, etc. Once we have the particles simulated, we render them using screen-space fluid rendering with curvature flow. This technique creates a screen space smooth mesh from the particles using a blurred depth map. It also creates a thickness map of the particles. Combining these two maps with realistic shading produces realistic rendering of water in real time.

Spring 2015

Shallow Lava Flow Simulation

By Nate Bowditch (nbowditch)

Description: "Lava flow over a heightmap-based terrain is simulated using a simplified version of the shallow water equations. The project started out by implementing the paper Fast Hydraulic Erosion Simulation and Visualization on GPU by Xing Mei, Philippe Decaudin, and Bau-Gang Hu. In this paper, values such as the flow and height of fluid at each cell on a grid are stored on the GPU in the pixels of textures. These values are used to redraw the mesh of the fluid after each timestep as well as calculate how the fluid will move. To make this work for lava, heat energy is tracked across cells, and over time, heat energy slowly approaches the temperature of the environment. The average temperature between adjacent cells is made to be proportional to the cross-sectional area of the virtual pipe connecting the adjacent cells. This virtual pipe limits the flow between adjacent cells; thus, temperature is made to have an effect on the viscosity of the lava, where hotter lava is less viscous. To get the lava to be a realistic color, there is a simplified integration over wavelength energy values found via Planck's law. Hotter lava appears bright orange and cool lava appears dark red or black."

Unified Particle Solver

An implementation of Macklin et. al's Unified Particle Physics for Real-Time Applications for both the CPU and GPU.

This physics simulation was implemented on both the CPU (leveraging the Qt framework) and GPU (using CUDA) as a final project for Brown University's graduate-level course CSCI2240: Interactive Computer Graphics by Evan Birenbaum '15, Logan Barnes '15, and Geoff Trousdale '15.

Hairy Potter and the Real Time Hair

Physical simulation and GPU rendering of hair and fur in real time utilizing techniques from a salmagundi of papers By Mike Ravella (mravella), Brandon Montell (bmontell), and Andrew DiMarco (adimarco)

Real-time Hair from Mike Ravella on Vimeo.

Spring 2014

Material Point Snow Simulation on the GPU

An implementation of a paper by Disney (A Material Point Method for Snow Simulation) that was improved on by using CUDA to move calculations to the GPU. Team members are: Max Liberman (mliberma), Wil Yegelwel (wyegelwe), Eric Jang (evjang) and Tim Parsons (taparson). See the project page for more information.


Volume visualization of the human brain, or other 3D models, using slab-based raycasting and rendered using CUDA. Team members are: Robin Martens (rmartens) and Jake Stern (jastern).

Interactive Non-Photorealistic Rendering

For our final project we implemented a non-photorealistic shader based on Gooch et al. [1999] with silhouette edge detection using geometry shaders. As well, we implemented a non-photorealistic based smoke effect and its physical simulation using ODE (physics engine) according to McGuire et al. [2006] Our final product was a simple airplane shooter game for showcasing the effects and shaders we created. Team members are: Arthur Yidi (ayidi), Jixuan Wang (jw16) and Michael Murphy (mjm9). See the project page for more information.