CS 4496: Computer animation
This was one of the most difficult, yet rewarding classes I took at Georgia Tech. Projects were created mainly in Visual Studio with C++ implementing the Eigen and GL libraries, as well as DART. Unfortunately, the programming environment these projects were created in was extremely complex to set up, and because of this, I am unable to run and record these projects. I do still have all the code that makes up these projects and would love to speak about them to potential employers.
To see more of the code in the screenshots, please click on them to expand to “lightbox” mode, or right click and open image in new tab.
Galileo’s Experiement.
Simulating gravity through 3 different numerical integration methods: Explicit Euler, Midpoint, and First-order semi-implicit Euler.
Collision Detection & Handling.
Simulates 4 particles in a 3D space in which you must use a different numerical integration method to handle each one’s physics.
The methods were: analytical, Explicit Euler, Midpoint, and Implicit Euler. With these integration methods we were to do both linear, DeBoors, Catmull, and Bezier interpolation and the particles falling.
Tinkertoy project.
What is a tinkertoy:
A tinkertoy is made up of two beads, where the first is bound to a circle which it can rotate on, and the second is bound to the end of a fixed length rod. This rod has the circle bound bead on one end an the second bead on the other. You can input force to rotate the circular wire and watch as the system should respond how it would in real life.
This algorithm implements physics simulation, feedback terms, midpoint method, the ability to add more hanging beads onto the first one, hierarchical modeling, kinematics, as well as other things.
Rigid Body Pinata.
Simulating 2 particles (a cube and a sphere) and handling their collision between the two of them, as well as the cage/pinata they are held in. You can shake the cage and watch how the particles interact together as well as with the cage itself. Project also covered deformable bodies with the ability to break and bend the particles in the cage.
This project implements collision detection/handling, deformable bodies, rigid bodies, quaternion, & linear motion.
Fluid Simulation.
Simulating a 2D smoke fluid simulation using a grid-based Eularian approach. Must obey Navior-Stroke equations, incompressibility, and boundary conditions. Simulation is interactive (adding force to the system) and run in real time. Implements semi-Lagrange method for the advect of velocity. Density is represented by color. I also wrote in the ability to import a picture in RGB in form of smoke and add force to distort the image.
Twister with a 3D human model.
Created an interactive inverse kinematics solver that manipulates a human model. The user can grab onto end points on the limbs and manipulate the shape of the body in a realistic (although flexible) way. Also, the user can add constraints to random parts of the body to manipulate it further and prove the inverse kinematic solver isn’t “hard coded” to only work with the preexisting draggable constraints.