Demo Game Development Programming Study USC

Computer Animation and Simulation Course Demo

This semester, I took CSCI 520 Computer Animation and Simulation class. In the class, we learned how the animation and simulation work, how they progressed over the years and also how they used in the industry (film, education and also game industry).

This post is created for showing what I’ve done in the class. All demos are implemented in C++ and OpenGL for rendering.

Jello Cube Simulation

The Jello cube is implemented using a mass-spring system which means that each particle inside of the jello cube is connected using springs to its neighbors. This implementation is the same as mass-spring in a cloth simulation (more in this Gamasutra post). For numerical integration (simulation), by default, it’s used Range-Kutta or RK4 (explanation of RK4), but I also implemented Euler integration for comparison.

Particle System

The particle system here is running in CPU for updating particles. It can handle 100,000 in my notebook and it’s running in 4 different threads (which means 25000 per thread).

Simple 2D IK

The IK solver method that I used for this demo is CCD (Cyclic Coordinate Descent) because it’s very intuitive to implement.

Simple BVH viewer

BVH is motion capture file format used by Biovision (for more information about BVH file format, check this article). And this is a database for BVH files.

2D Blobby Generator Simulation

The 2D Blobby generator is implemented using Marching Squares algorithm.

What’s next?

Well, all the demos are implemented for class homework. I believe it’s a start for implementing more. These are some in my mind right now.

  1. Implement Cloth Simulation,
  2. Make particle system running on GPU,
  3. Implement another technique for IK solver (like Jacobian-inverse or Jacobian-transpose), and make 3D IK solver,
  4. Implement BVH viewer with character skin, maybe export and retarget for another skeleton, and
  5. Implement Marching Cubes algorithm, so we have 3D blobby, and hopefully fluid simulation.

I hope I have time to implement all above. The particle system, IK, BVH viewer and Blobby generator demo is in my GitHub repository.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.