Particle Physics based Rigid Body Solverbased on the paper "Unified Particle Physics for Real-Time Applications" implemented as a Maya Plugin.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
GL
Images
Instructions
MEL_scripts
Maya-devkit
Resources
include/glm
obj_files
src
.gitignore
ArtOfCollision.sln
ArtOfCollisions.mll
LICENSE
README.md
RigidBodySolver.vcproj
RigidBodySolver.vcxproj
glut32.lib

README.md

ArtOfCollisions

Authors: Aman Sachan and Meghana Seshadri

Overview

Particle Physics based Rigid Body Solver based on the paper "Unified Particle Physics for Real-Time Applications" implemented as a Maya Plugin.

Introduction

"Art Of Collisions" is a real-time simulation of particle-based rigid body dynamics based on the paper "Unified Particle Physics for Real-Time Applications" by Macklin, Muller, Chentanez, and Kim.

Two reasons that real-time simulation of three dimensional objects has been difficult in recent years within the computer graphics industry are: 1. Having to create individual solvers for each object type, and 2. Simulating physical phenomena based off calculating forces. They focus mainly on accuracy of result rather than robustness and efficiency. We address some common problems with traditional particle-based methods and describe a parallel constraint solver based on position-based dynamics, a method that is efficient enough for real-time applications, and hence popular in computer games and interactive applications for its simplicity and stability.

A unified particle solver was too broad in scope to implement well in the month and a half we had. Thus, we implemented a good chunk of the frame work in a way that is easily extendable but works for only Rigid Bodies at the moment.

Need for the Solver

In recent years, To simulate objects accurately in real-time has usually meant that they must be simulated in isolation and required individual solvers for each object type. Particle based solvers can be easily unified as they work on a base object type.

Capabilities of the Solver

  • Efficient real-time simulation of particle-based rigid body dynamics.
  • Built using a parallel constraint solver extended from position-based dynamics.
  • Represent rigid bodies and maintain particle configurations using shape matching constraints.
  • Unconditionally stable simulation based on semi-implicit methods to solve constraints.
  • Maya Interface has been made such that any arbitrary forces can be appended to the simulation along with multiple meshes, with a high degree of user control.
  • Framework for adding more constraints and extending the system to a unififed particle solver exists.

Techniques Implmented/Used

  • Intersection tests via ray marching were used to create particle filled representations of meshes.
  • Sphere instancing used to represent resultant particles.
  • Parallel constraint solver extended from position-based dynamics:
  • Shape Matching -- Represent rigid bodies and maintain particle configurations
  • Distance Constraint -- maintain Particle Separation/closeness
  • Semi-implicit Euler Integration for solving applied forces.
  • Callback functionality piggybacks on maya’s animation controller.
  • Redefining flags as output variables allowed for dynamic re-evaluation of the compute function, and hence updating of the simulation.

Reference Paper:

“Unified Particle Physics for Real-Time Applications” By Miles Macklin, Matthias Muller, Nuttapong Chentanez, Tae-Yong Kim