Your browser does not support the applet tag.
Click the mouse to create a ball at a point on the screen.
Drag the mouse before letting go to give it an initial velocity in that direction with a magnitude corresponding to how far you drag the mouse.
This is still pretty buggy and not fully functional, but it can have show some interesting and realistic effects of spin on how balls bounce.


W Move paddle up
A Move paddle down
S Move paddle left
D Move paddle right
Q Rotate paddle counterclockwise
E Rotate paddle clockwise

Things to fix/finish in this simulation:
Activate the slider for the curvature of a ball's trajectory from spin (the slider does nothing right now).
Account for friction between ball and paddle.
Account for friction between balls.
Fix preset scenarios (they're mostly for debugging right now).
Change collision response so scenario like "Many balls" looks right (probably to velocity-level, impulse based approach).
Change collision response of balls with paddle as well (crazy stuff happens currently).
Account for rotation of paddle in paddle-ball collisions (right now just linear velocity taken into account).
Account for varying radii when handling collision response (right now all treated as equal mass objects).
Possibly add mouse control of paddle.
And eventually, if the physics look good, I may make a little 2D ping pong game with gravity and spin using two paddles.

Questions, comments, or suggestions? Email me at

Last updated 9/3/09.