Box2D is a popular physics engine for C++. I recently came across a port to javascript called Box2DJS and created a test project. The result is a pretty computational intensive little example.

Your browser does not support the canvas element

Left and right arrows to move, up arrow to jump, down to slam (try it just after loading the page)
full screen