About this project

This is the final project for the course, General-Purpose GPU Programming 2018 Spring @ NTU CSIE, lectured by Wei-Chao Chen.

We focus on physical effect simulation using material point method. Because this course is all about GPU, our implementation is based on C++ and CUDA to accelerate the whole process with GPU computating power.

What is MPM?

The material point method (MPM) is a numerical technique used to simulate the behavior of solids, liquids, gases, and any other continuum material.
In the MPM, a continuum body is described by a number of small Lagrangian elements referred to as 'material points'. These material points are surrounded by a background mesh/grid that is used only to calculate gradient terms such as the deformation gradient.

Implementation

As shown in the paper A material point method for snow simulation, MPM is composed of several steps. Moreover, in each step, the computation on grids or particles can be highly parallel, and thus, we use Thrust, a C++ template library for CUDA to utilize GPU for parallel computing. For rendering, OpenGL is used for real-time result viewing to roughly check whether the simulation is correct. Furthermore, we also try to render more realistic point cloud. Thanks to GVDB-Voxels and NVIDIA OptiX, we save lots of time to render a more plausible scene.

Demo Scenes

Free Fall

Free fall of several letters of snow-like substance, which forms the name of this course, "GPGPU". This demonstrates how points are affected under the influence of gravity.

Two Snow Balls

This scene demonstrates about the collision between two snow balls with different configurations. Both are influenced by the gravity at the same time.

The Collapse of Castle

Modeled structures like the sand castle can be destroyed by the high-speed ball. This shows how fine-grained particles spread out because of the physical impact.

Acknowledgments

First of all, thank Instructor Wei-Chao Chen for the lectures and telling us how to survive in Silicon Valley.
To collaborate together, we would like to thank Google Cloud Platform for $300 free trial of cloud server.
Thank Epic Games for free game Fortnite and Elta Sports for free streaming of 2018 FIFA World Cup Russia. With these entertainments, we can kill our time while waiting the long-time simulation and rendering.