
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

