
Computer Animation: From Code to Motion
Five interactive projects exploring how animation systems simulate real-world physics, motion, and control — built from scratch using Python.
Tools
Python, Google Colab
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.
Topics covered:
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 & Line Drawing 🌀
Mapped lines to the screen using coordinate transformation and projection. A solid foundation in screen space logic and geometric mapping.

Project 2: Simulating Free-Fall with Integrators ⏬
This programming project implements the analytical solution and two numerical integration methods: Explicit Euler and Midpoint. It simulates three objects falling from the same height at the same time, with zero initial velocity — each object using a different integration method.
Inspired by Galileo’s free-fall experiment, I defined the system for each object and implemented integrators that work for dynamic systems in general. The project visualizes trajectories to compare how each method performs.



Plot of heights over time
Project 3: Constrained Particle Dynamics (Tinker Toys) 🎲
This programming 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-length rod.
The simulation applies two constraints — one to keep the bead on the circle, and another to keep the distance between them fixed — and shows their motion in real time.

Animation

Plotting
Project 4: Rigid Body Physics Simulator 🌠
This programming project implements a rigid body simulator capable of computing realistic rigid body motion and handling collisions.
To demonstrate it, 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 & Mocap 💨
This programming project builds 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.

What I Took Away 💭
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 things I really took from it:
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.