Bullet 2.x official repository with optional experimental Bullet 3 GPU rigid body pipeline
C++ C CMake Lua Objective-C Python Other
Pull request Compare This branch is 13 commits behind bulletphysics:master.
Latest commit 0936ae6 Sep 27, 2016 @erwincoumans expose getNumBodies, getBodyUniqueId, getBodyInfo (char* baseName) to…
… shared memory API and pybullet., making it easier to serialize the state of the world.
Failed to load latest commit information.
Extras add VHACD, with the addition of Wavefront .obj export Sep 26, 2016
build3 pybullet: add option to use NumPy to speed up, thanks to moof2k Sep 11, 2016
data revert default contact 'erp' (error-reduction-parameter) from 0.8 to 0.2 Sep 26, 2016
docs add Bullet logos in the docs/logo folder Aug 13, 2015
examples expose getNumBodies, getBodyUniqueId, getBodyInfo (char* baseName) to… Sep 27, 2016
src revert default contact 'erp' (error-reduction-parameter) from 0.8 to 0.2 Sep 26, 2016
test Create project file for BussIK inverse kinematics library (premake, c… Sep 8, 2016
.travis.yml revert numpy test/travis.yml Sep 11, 2016
AUTHORS.txt Update AUTHORS.txt Sep 26, 2016
BulletConfig.cmake.in Add the old Bullet 2.x obsolete demos, and CMake buildsystem files, a… Dec 19, 2013
CMakeLists.txt Fix typo Sep 14, 2016
Doxyfile add Doxyfile May 1, 2015
LICENSE.txt add latex source of Bullet 2.82 quickstart guide, todo: update to cur… Apr 29, 2015
README.md Update README.md Aug 23, 2016
UseBullet.cmake fix make install, when using CMake Mar 6, 2014
VERSION fix in structure alignment of btMultiBodyLinkDoubleData and btMultiBo… Aug 26, 2016
appveyor.yml Update appveyor.yml Sep 11, 2016
build_and_run_cmake.sh add pybullet render API with yaw/pitch/roll option Aug 8, 2016
build_and_run_premake.sh move some easy-to-use build files for Mac OSX, Linux and Windows May 21, 2016
build_visual_studio.bat URDF: don't parse joint limit for continuous joints Sep 23, 2016
bullet.pc.cmake pkg-config: Fixing regression introduced by e46b7b2 Jun 30, 2016
xcode.command move some easy-to-use build files for Mac OSX, Linux and Windows May 21, 2016


Travis Build Status Appveyor Build status

Bullet 2.x including pybullet and experimental Bullet 3 OpenCL.

This is the official repository of Bullet 2.x, moved from http://bullet.googlecode.com It includes the optional experimental Bullet 3 GPU pipeline.

The Bullet 2 API will stay default and up-to-date while slowly moving to Bullet 3. The steps towards Bullet 3 are in a nutshell:

  1. The old Bullet2 demos are being merged into the examples/ExampleBrowser
  2. A new Bullet 3 API is created
  3. All Bullet2 functionality is added to Bullet 3.
  4. The OpenCL examples in the ExampleBrowser can be enabled using --enable_experimental_opencl

You can still use svn or svn externals using the github git repository: use svn co https://github.com/bulletphysics/bullet3/trunk

Requirements for Bullet 2

A C++ compiler for C++ 2003. The library is tested on Windows, Linux, Mac OSX, iOS, Android, but should likely work on any platform with C++ compiler. Some optional demos require OpenGL 2 or OpenGL 3, there are some non-graphical demos and unit tests too.

Contributors and Coding Style information


Requirements for Bullet 3

The entire collision detection and rigid body dynamics is executed on the GPU.

A high-end desktop GPU, such as an AMD Radeon 7970 or NVIDIA GTX 680 or better. We succesfully tested the software under Windows, Linux and Mac OSX. The software currently doesn't work on OpenCL CPU devices. It might run on a laptop GPU but performance will not likely be very good. Note that often an OpenCL drivers fails to compile a kernel. Some unit tests exist to track down the issue, but more work is required to cover all OpenCL kernels.


All source code files are licensed under the permissive zlib license (http://opensource.org/licenses/Zlib) unless marked differently in a particular folder/file.

Build instructions for Bullet using premake. You can also use cmake instead.


Click on build_visual_studio.bat and open build3/vs2010/0MySolution.sln

Linux and Mac OSX gnu make

In a terminal type:

cd build3

Depending on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines

./premake4_linux gmake
./premake4_linux64 gmake
./premake4_osx gmake


cd gmake

Mac OSX Xcode

Click on build3/xcode4.command or in a terminal window execute

./premake_osx xcode4


The App_ExampleBrowser executables will be located in the bin folder. You can just run it though a terminal/command prompt, or by clicking it.

[--start_demo_name="Demo Name"]     Start with a selected demo  
[--enable_pybullet]                 Build with pybullet Python bindings. See also examples/pybullet
[--enable_openvr]                   Build with VR support for HTC Vive and Oculus Rift using OpenVR
[--enable_experimental_opencl]      Enable some experimental OpenCL examples
[--mp4=moviename.mp4]               Create a mp4 movie of the window, requires ffmpeg installed
[--mouse_move_multiplier=0.400000]  Set the mouse move sensitivity
[--mouse_wheel_multiplier=0.01]     Set the mouse wheel sensitivity
[--background_color_red= 0.9]       Set the red component for background color. Same for green and blue
[--fixed_timestep= 0.0]             Use either a real-time delta time (0.0) or a fixed step size (0.016666)

You can use mouse picking to grab objects. When holding the ALT or CONTROL key, you have Maya style camera mouse controls. Press F1 to create a series of screenshots. Hit ESCAPE to exit the demo app.

See docs folder for further information.