Ball simulation
A random walk where a ball travels to the boundary wall each frame; built to understand circular geometry and non-blocking animation loops.

I wanted to understand how real-time animation loops work without a game engine doing the work for me. Turtle and Tkinter are humble tools, which meant every frame, every button, and every coordinate had to be reasoned through manually.
The ball's starting position uses the square root method for uniform distribution inside a circle, without it, positions cluster toward the centre. Getting that right, and then separately solving the quadratic to find exactly where a ray from the ball's position hits the circular wall, were the two moments where the math stopped being abstract.
Decouple the physics from the renderer entirely. Right now the simulation speed is tied to the UI refresh rate. A headless physics layer would let you run the math faster than the screen can draw, which opens up 'multi-ball simulations' and makes the collision logic actually testable.