
OVERVIEW
This project series explores the core principles behind modern computer animation, from keyframe interpolation and physics-based simulation to constrained dynamics and inverse kinematics. Each project was implemented in Python using Google Colab, with custom visualizations to bring the concepts to life.
KEY TOPICS
Keyframe animation with splines
Particle and rigid body dynamics
Numerical integration (Euler, Midpoint)
Constrained systems
Inverse kinematics and motion capture
(Bonus: reinforcement learning for motion control)
Project 1
Projection and Line Drawing 🌀

I mapped lines to the screen using coordinate transformation and projection. This project served as a solid foundation to screen space logic and geometric mapping.
Project 2
Simulating Free-Fall with Integrators ⏬

Inspired by Galileo’s free-fall experiment, this project simulates three objects falling from the same height at the same time, with zero initial velocity, each object using a different integration method.

I implemented one analytical solution and two numerical integration methods: Explicit, Euler, and Midpoint.

With this, we are able to visualize trajectories of each method to compare how each method performs.
Project 3
Constrained Particle Dynamics (Tinker Toys) 🎲

This project simulates a system of two beads under gravity: one bead constrained to move along a circular wire, and another connected to it with a fixed-distance rod.
Plotting displays the two bead's motion over time.
Project 4
Rigid Body Physics Simulator 🌠

This project implements a rigid body simulator capable of computing realistic rigid body motion and handling collisions. I simulated multiple spheres and cubes dropping onto a fixed plane under gravity, showing rotation, collisions, and interactions between shapes.
Project 5
Twister — Inverse Kinematics and Mocap 💨

For this project, I built a virtual Twister game by developing an Inverse Kinematics (IK) solver. The IK system maps target positions to a character's limbs by solving joint angles in a kinematic chain.
As targets move, the skeleton responds in real time to match each pose, simulating how motion capture systems animate characters.
Learnings
Working on these projects helped me get comfortable building things from the ground up: no templates, no shortcuts, just figuring it out piece by piece. I learned how to think through systems, write code that doesn’t fall apart, and solve problems I’d never seen before. Some main takeaways include:
Animation and physics are way more connected than I expected. It’s all about motion, timing, and constraints — and once it clicks, it’s super satisfying.
I got used to switching between Python, C, Java... the syntax changes, but the logic stays the same.
I wrote a lot of messy code before it got good. Debugging taught me how to be patient and how to trust my process.
Seeing something move because I made it move — that never really gets old.
This stuff sits behind the scenes of my main work, but it shaped how I approach problems and how I build things now.