
Animation Toolkit (C++)
* UPenn policy restricts public sharing of source code, so the repository isn’t included here, but the descriptions below outline my implementation and technical decisions.
Character Animation & Motion Systems
Custom animation tools built from the ground up, focusing on core mathematical and algorithmic foundations of motion. Projects explore splines, kinematic chains, simulation, and motion capture, all bridging low-level implementation with animator-facing controls.
Particle systems:
Built a custom particle system generator, with procedural motion through simulation. The particle system supports lifespan, emission, state updates, velocity, acceleration, force-based motion, randomized conditions, time-stepped simulation and integration.
Procedural particle system simulation and particle fireworks with adjustable attributes and physics

Simple fireworks simulation with particles in Houdini

Spline editor:
Implemented an interactive spline editor that allows for placement, moving, and editing of curve points with interpolation techniques like Bernstein, de Castel-jau, and Hermite. Includes visual comparison between Euler-based and quaternion-based rotations along curves.
Spline/Curve editor (linear, Bernstein, Castel-jau, matrix, Hermite)
and
Euler (Spherical Linear) VS. Quaternion (Spherical Cubic) rotations

Forward / Inverse Kinematics:
Implemented both forward kinematics (FK) and inverse kinematics (IK) solvers to support hierarchical joint transforms, end-effector targeting, and two separate IK solver techniques: Limb-based and CCD (Cyclic Coordinate Descent).
FK (Forward Kinematics) / IK (Inverse Kinematics) transformations on a skeleton rig

Motion capture / Motion Builder:
Captured multiple motion clips using live performance data, then imported and cleaned the data in MotionBuilder, and blended and transitioned between motion clips. Compared mocap workflows with hand-animated motion by creating a custom walk cycle.
Motion capture data (bvh) into MotionBuilder for splicing and editing
and
Keyframe walk cycle and time manipulation in MotionBuilder

