Our final project will be a Real-Time Dynamic Physics-Based Particle Simulation and Interaction System. We plan to build a WebGL framework where users can interact with the system to simulate some cool physics-based particle effects on scenes in real time. The list of desired effects include smashing and destruction of objects, wind blowing of particles, water simulation, cloth simulation, and many more.
Our team consists of the following awesome members:
In this class so far, we have explored various methods of graphic rendering and material rendering techniques. However, there is a very limited coverage of physical simulation, except for the cloth simulation project. Physical simulation is extremely important in real world. It plays a vital role in many areas such as gaming, galaxy simulation for physics research, motion capture, animation, VR/AR, etc.
To further our knowledge and experience in physical simulation, we think a final project on particle simulation would be a great way to tackle the challenge of physical simulation. It's challenging because physical simulation is naturally computationally intensive as it involves simulating, in real time, the behaviors of a large amount of objects within a very complex and mutually dependent system, where objects are highly interactive with each other under rules of physics.
In our project, we will try to make an interactive WebGL framework where users can smash objects of their choice into each other, causing tiny sand-like debris particles to disperse around the scene. Users can create custom-simulated wind effects to blow these sand-like particles around in the scene. Potentially, if time permitting, we plan to implement and enable features such as glass shattering effects, flood simulation (where water floods the scene and interacts with the objects in the scene), and some interactive effects with cloths.
To have a successful project, our baseline plan is to build a WebGL framework that can at least simulate both the wind-particle interaction effects and the smash-destruction particle effects between pre-defined objects, as described from the previous section.
If things go well and we get ahead of our schedule, our aspiration plan is to enable custom objects for the smash-destruction particle effect. We also would like to add features to allow flood simulation, where water floods the scene and interacts with the objects in the scene, and material specific effects such as glass shattering, wood dents, and cloth interactions with wind and objects.
To accomplish the project, we define the following high level tasks for execution. Our preliminary plan of action over the upcoming weeks is as follows:
We will look into open-source resources of exiting simulation works for inspiration, reference, and platforms to build upon as well. Some, but not all, reference sources right now are project demos by the three.js page, experiments with Google, and developer Edan Kwan's work portfolio.
Below are some links to some of the resources that will be helpful for the development of our project: