Bullet is a professional open source multi-threaded 3D Collision Detection and Rigid Body Dynamics Library written in C++. It is free for commercial use under the zlib license.
A cabalised wrapper is available: http://hackage.haskell.org/package/bullet
Note that you have to install the library before installing the package:
svn checkout http://bullet.googlecode.com/svn/trunk/ bullet-read-only cd bullet-read-only cmake . make sudo make install
Now you can install the Haskell binding:
cabal install bullet
The example on the screenshot below can be found in the package. You have to compile it by hand. Make sure that OpenGL and GLUT is installed, then enjoy:
cabal unpack bullet cd Examples ghc --make -O2 BulletExample ./BulletExample
You can use the arrows to navigate the scene and P to pause/unpause.