2D physics: 20 numbered balls inside a rotating heptagon.
Heptagon spins at 1 revolution / 5 seconds. Gravity + collisions; no libraries.
Walls are moving: bounce response uses wall velocity at the contact point + friction (gives balls spin). Numbers rotate with each ball's own angular motion.