Bullet

From HaskellWiki

Overview[edit]

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.

Installation[edit]

A cabalised wrapper is available: http://hackage.haskell.org/package/bullet

The source repository is on github: https://github.com/csabahruska/bullet

Note that you have to install the library before installing the package:

svn checkout http://bullet.googlecode.com/svn/trunk/@2440 bullet-read-only-2.79
cd bullet-read-only-2.79
cmake . -DBUILD_DEMOS=NO (on OSX for 32 bit GHC also add -DCMAKE_OSX_ARCHITECTURES='i386')
make
sudo make install

Now you can install the Haskell binding:

cabal install bullet

Todo[edit]

  • vehicle interface
  • constraints
  • soft body system

OpenGL example[edit]

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 bullet-x.x.x/Examples
ghc --make -O2 BulletExample
./BulletExample

You can use the arrows to navigate the scene and P to pause/unpause.


Combining LambdaCube and Bullet[edit]

Hackage contains an example for combining LambdaCube and Bullet: lambdacube-bullet