Physics simulations

« back to projects

Overview

In this project, I implemented a variety of physical simulations on a low-powered Android tablet. The main goal of this project was to look for ways to increase the algorithmic efficiency of the simulations. The temptation with physics simulations is generally to purchase more or better hardware, so limiting myself to a low-powered tablet made more diverse techniques necessary. Additionally, it was always a goal to be entirely physically accurate, never sacrificing accuracy for speed.

The simulations implemented in the application include:

  • articulated rigid body;
  • cloth simulation;
  • smoke simulation (voxel density); and
  • dynamic paint via displacement.

My research writeup is also available.

Accomplishments

Some things accomplished during the course of this project include:

  • efficient collision detection for rigid bodies, via manual collision groups;
  • efficient quadtree-based collision detection for arbitrarily dense urban environments;
  • efficient joint constraint solution for arbitrarily structured articulated rigid bodies;
  • inclusion of partially or fully pre-baked expensive simulations such as cloth and smoke (based in finite element analysis), modified for current environment;
  • support for realistic rendering features, such as camera-dependent fog and UV-mapped textures on both height maps and triangulated meshes.

Demonstration

I’ve prepared a demonstration reel to exhibit some of the features described above.

Source

Some of the libraries upon which this project relies utilize state-of-the-art techniques from papers that have not yet been published. For this reason, I have been asked not to make the source code publicly available.

« back to projects