My version of bullet3 so I can modify the vehicle code.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
erwincoumans 579115cf9f
Merge pull request #2953 from erwincoumans/master
3 years ago
.ci Run apt-get update before installing python3-pip 5 years ago
Extras Do not return a dangling pointer! 3 years ago
build3 Merge branch 'master' into master 3 years ago
data Merge pull request #2800 from xhan0619/splitImpulseMulti 3 years ago
docs update PyBullet quickstart guide.pdf 4 years ago
examples improve premake4 build in case X11 headers are missing 3 years ago
src pybullet allow to enable/change joint limits: 3 years ago
test fix cmake/premake builds 3 years ago
.gitignore Remove unused thread-unsafe debug variable 'maxIteration' that is no longer used in btQuantizedBvh.cpp 3 years ago
.style.yapf add yapf style and apply yapf to format all Python files 4 years ago
.travis.yml Update .travis.yml 3 years ago
AUTHORS.txt add a few more contributors (the list is far from complete though) 6 years ago Add the old Bullet 2.x obsolete demos, and CMake buildsystem files, and gradually move them to newer Bullet 3.x structure 10 years ago
CMakeLists.txt Add USE_MSVC_RELEASE_RUNTIME_ALWAYS to use Release CRT even in Debug builds 3 years ago
Doxyfile add Doxyfile 8 years ago
LICENSE.txt add latex source of Bullet 2.82 quickstart guide, todo: update to current release 8 years ago also include inl files 3 years ago Update 3 years ago
UseBullet.cmake fix make install, when using CMake 9 years ago
VERSION bump up to Bullet version 2.89 and update serialization structures 4 years ago
_clang-format clang-format pybullet.c 6 years ago
appveyor.yml Update appveyor.yml 7 years ago fixes in PyBullet deep_mimic to allow running in pip version 4 years ago
build_visual_studio_vr_pybullet_double.bat tweak premake4 default batch file. 4 years ago
build_visual_studio_vr_pybullet_double_cmake.bat vs2019 3 years ago
build_visual_studio_vr_pybullet_double_dynamic.bat Add --dynamic-runtime option to compile with /MD[d] in MSVC for compat 3 years ago
build_visual_studio_without_pybullet_vr.bat Created Wavefront obj to sdf converter, to make it easier to import complex obj models with many materials. See kitchen for example. 6 years ago
bullet.pc.cmake Update bullet.pc.cmake 4 years ago apply clang-format (on Mac, slightly different than running it on Windows) 5 years ago bump up pybullet version to 2.8.4 3 years ago
xcode.command move some easy-to-use build files for Mac OSX, Linux and Windows 7 years ago

Travis Build Status Appveyor Build status

Bullet Physics SDK

This is the official C++ source code repository of the Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.



New in Bullet 2.85: pybullet Python bindings, improved support for robotics and VR. Use pip install pybullet and checkout the PyBullet Quickstart Guide.

Installation is simple:

pip3 install pybullet --upgrade --user
python3 -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python3 -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul
python3 -m pybullet_envs.deep_mimic.testrl --arg_file run_humanoid3d_backflip_args.txt

If you use PyBullet in your research, please cite it like this:

author =   {Erwin Coumans and Yunfei Bai},
title =    {PyBullet, a Python module for physics simulation for games, robotics and machine learning},
howpublished = {\url{}},
year = {2016--2019}

Requirements for Bullet Physics C++

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 experimental OpenCL GPGPU support

The entire collision detection and rigid body dynamics can be 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 ( unless marked differently in a particular folder/file.

Build instructions for Bullet using vcpkg

You can download and install Bullet using the vcpkg dependency manager:

git clone
cd vcpkg
./vcpkg integrate install
vcpkg install bullet3

The Bullet port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

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


Click on build_visual_studio_vr_pybullet_double.bat and open build3/vs2010/0_Bullet3Solution.sln When asked, convert the projects to a newer version of Visual Studio. If you installed Python in the C:\ root directory, the batch file should find it automatically. Otherwise, edit this batch file to choose where Python include/lib directories are located.

Windows Virtual Reality sandbox for HTC Vive and Oculus Rift

Build and run the App_SharedMemoryPhysics_VR project, preferably in Release/optimized build. You can connect from Python pybullet to the sandbox using:

import pybullet as p
p.connect(p.SHARED_MEMORY) #or (p.TCP, "localhost", 6667) or (p.UDP, "",1234)

Linux and Mac OSX gnu make

Make sure cmake is installed (sudo apt-get install cmake, brew install cmake, or

In a terminal type:


This script will invoke cmake and build in the build_cmake directory. You can find pybullet in Bullet/examples/pybullet. The BulletExampleBrowser binary will be in Bullet/examples/ExampleBrowser.

You can also build Bullet using premake. There are premake executables in the build3 folder. Depending on your system (Linux 32bit, 64bit or Mac OSX) use one of the following lines Using premake:

	cd build3
	./premake4_linux --double gmake
	./premake4_linux64 --double gmake
	./premake4_osx --double --enable_pybullet gmake


	cd gmake

Note that on Linux, you need to use cmake to build pybullet, since the compiler has issues of mixing shared and static libraries.

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  
[--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.

Check out the docs folder and the Bullet physics forums for further information.