An interactive ball bounce animation rendered on HTML5 Canvas with vanilla JavaScript. Press and hold to charge velocity, then release to launch a ball that's governed by a small hand-rolled physics simulation — gravity, wall collisions, and friction-based speed decay — with a colour palette to change the ball's fill. Covered by Jest unit tests for the core physics and direction helpers.