An elastic ball bouncing off the walls and another hard semi-circle object.
Collision between two objects is simulated with a invisible spring.
$\vec{F}=-k*\Delta \vec{s}$, where $\Delta\vec{s}$ is the displacement of the spring from it's original length.
You can adjust the spring constant k to change its elastic property.
Press pause and adjust the velocity of the ball with mouse (or drag it off center) to watch interesting motion.

DOWNLOAD ejs xml source
then click to translate strings for selected locale.

Press the Alt key and the left mouse button to drag the applet off the browser and onto the desktop.