bulletphysics

bulletphysics/bullet3

C++ No license Gaming low-activity issue-tracker-closed

Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

14.6k stars
3.1k forks
slow
GitHub +17 / week

14.6k

Stars

3.1k

Forks

420

Open issues

30

Contributors

3.25 24 Apr 2022

AI Analysis

Bullet Physics SDK is a mature, open-source real-time collision detection and multi-physics simulation engine primarily designed for games, VR, robotics, and machine learning applications. It excels as a specialized physics simulator for interactive 3D environments and reinforcement learning research rather than as a general-purpose physics library; it is best suited for developers building game engines, robotic simulations, and ML environments, not for scientific computing or general numeric...

Gaming Library Discovery value: 2/10
Documentation 7/10
Activity 5/10
Community 8/10
Code quality 6/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 7/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

physics-simulation robotics reinforcement-learning game-development pybullet
Popular Niche/specialized use case Community favorite Production ready
Deep Analysis · Based on README and public signals
2w ago

Bullet Physics: the established open-source C++ physics engine powering games, robotics, and ML research

Bullet Physics SDK provides real-time rigid body dynamics, soft body simulation, and collision detection in C++. It is used by game developers, VFX studios, robotics researchers, and ML practitioners — particularly via its PyBullet Python bindings, which became a de-facto environment for reinforcement learning and robot simulation benchmarks. Its broad platform support (Windows, Linux, macOS, iOS, Android, OpenCL GPU), permissive zlib license, and pip-installable Python interface explain its longevity across very different user communities.

Origin

Created by Erwin Coumans around 2005 (open-sourced, GitHub mirror since 2011), Bullet rose to prominence in game engines and Hollywood VFX before PyBullet (2016) extended its reach into robotics and ML research communities.

Growth

Initial adoption was driven by game/VFX use cases in the 2000s–2010s. A second growth wave came with the deep reinforcement learning boom (2016–2019), when PyBullet became one of the most cited physics simulation environments in academic robotics and RL papers. Star growth has plateaued at ~10 stars/week as of mid-2026, suggesting a mature, stable install base rather than active expansion.

In production

PyBullet is pip-installable and has been cited in hundreds of academic papers (OpenAI, DeepMind, Google Brain robotics work). vcpkg and Conan packages exist, indicating integration into professional C++ supply chains. Used historically by Sony, Rockstar, and various VFX houses. Adoption is well-documented in public literature, though recent large-scale production game usage is less clearly confirmed given competition from PhysX and Havok.

Code analysis
Architecture

Appears to be a modular C++ library split into collision detection, rigid body dynamics, soft body dynamics, and an optional GPGPU path via OpenCL. PyBullet wraps the core via a shared-memory / Python C extension interface. Build system supports both CMake and Premake, indicating multi-IDE/platform intent. Likely header-heavy with separate demo/example browser to validate behavior.

Tests

README mentions 'non-graphical demos and unit tests' for the OpenCL path and some regression tests, but formal test coverage metrics are not documented in README.

Maintenance

Last push was October 2025 (~8 months before current date), with the issue tracker explicitly closed due to overload — a sign of under-staffed maintenance rather than abandonment. Commit cadence appears low but non-zero. The project shows signs of slow-but-active maintenance rather than stagnation; critical bugs likely get addressed, but feature development pace is modest.

Honest verdict

ADOPT IF: you need a permissive-licensed, broadly portable C++ physics library with an established Python interface (PyBullet) for robotics prototyping, legacy game/VFX pipelines, or ML environments where MuJoCo is not suitable. AVOID IF: you are starting a new high-performance game physics stack or need active feature development and responsive issue support — JoltPhysics or a commercial SDK may serve you better. MONITOR IF: you rely on PyBullet for RL research, as MuJoCo's growing dominance in that niche may make migration beneficial over the next 1–2 years.

Independent dimensions

Mainstream potential

4/10

Technical importance

8/10

Adoption evidence

8/10

Risks
  • Issue tracker is closed, creating a high barrier for bug reports and community support — users must rely on forums or third-party resources.
  • MuJoCo has largely supplanted PyBullet as the preferred RL/robotics simulation environment in academic circles, reducing Bullet's growth ceiling in that segment.
  • JoltPhysics is actively growing and technically competitive, potentially drawing new game/simulation users away from Bullet.
  • Maintenance appears to depend heavily on a small number of contributors; a single maintainer departure could accelerate drift into effective abandonment.
  • OpenCL GPU path is described as experimental with known driver reliability issues, limiting utility for GPU-accelerated simulation pipelines.
Prediction

Bullet will likely remain a stable, widely-referenced physics engine for the foreseeable future due to its entrenched install base and permissive license, but will gradually cede new adoption in robotics/ML to MuJoCo and in games/sim to JoltPhysics.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

C++
84.3%
C
12.7%
CMake
1.2%
Lua
0.9%
Python
0.6%
Batchfile
0.1%
Shell
0.1%
Makefile
0%

Information

Language
C++
License
NOASSERTION
Last updated
9mo ago
Created
186mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

jrouwe

jrouwe/JoltPhysics

Jolt Physics is a multi-threaded rigid body physics and collision detection...

10.7k C++ Gaming
NVIDIA-Omniverse

NVIDIA-Omniverse/PhysX

NVIDIA PhysX is a production real-time physics simulation engine for rigid...

4.7k C++ Gaming
erincatto

erincatto/box3d

Box3D is a 3D rigid-body physics engine written in C, designed specifically for...

4.9k C Gaming
simbody

simbody/simbody

Simbody is a high-performance C++ multibody dynamics library for simulating...

2.5k C++ Science
kripken

kripken/ammo.js

ammo.js is a direct port of the Bullet physics engine to JavaScript via...

4.5k C++ Gaming
vs. alternatives
JoltPhysics

Newer C++ engine (2021) with modern architecture targeting game/simulation use cases. Gaining momentum rapidly (~10k stars) with more active recent development. Likely surpasses Bullet in performance on modern hardware for rigid body use cases, but lacks Bullet's Python/ML ecosystem and years of production validation.

MuJoCo (google-deepmind/mujoco)

Purpose-built for contact-rich robotics and ML; more physically accurate for articulated systems and now also open-source. Has largely displaced PyBullet as the preferred RL/robotics simulation environment in academic research since ~2022. Direct overlap in the PyBullet user segment.

ammo.js

A WebAssembly/JavaScript port of Bullet itself, so not truly a competitor — it extends Bullet to the browser. Useful indicator that Bullet's core is considered production-quality enough to port.

Box2D

2D-only physics by the same domain; complementary rather than competitive for 3D use cases. Preferred for 2D games where Bullet's 3D overhead is unnecessary.

NVIDIA PhysX

Proprietary SDK dominant in AAA game engines (Unreal Engine). Offers GPU-accelerated rigid body at scale. Not open-source in the same way; Bullet remains the primary open-source alternative for C++ game/sim stacks where vendor lock-in is a concern.