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.
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
2D Blobby Generator Simulation
The 2D Blobby generator is implemented using Marching Squares algorithm.
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.
- Implement Cloth Simulation,
- Make particle system running on GPU,
- Implement another technique for IK solver (like Jacobian-inverse or Jacobian-transpose), and make 3D IK solver,
- Implement BVH viewer with character skin, maybe export and retarget for another skeleton, and
- 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.