PyBullet
CommonThe Python interface to the Bullet physics engine, and one of the most widely used simulators in early robot reinforcement learning.
Bullet is an open-source physics engine (written in C++, zlib license) led by Erwin Coumans, supporting collision detection along with rigid-body and soft-body (cloth, rope) dynamics; it has been widely used in games and film visual effects, and Coumans received a Sci-Tech Academy Award for it. PyBullet is its Python wrapper, installable with a single pip command, and it can load URDF, SDF, and MJCF robot models directly, with built-in forward/inverse kinematics, inverse dynamics, and basic rendering. Before GPU-parallel simulation became common, a large amount of robot reinforcement-learning and sim-to-real work was done in PyBullet. It runs mainly on the CPU, so its parallel scale falls well short of Isaac Lab, MJX, and similar platforms, and new large-scale training has largely moved to those instead — though PyBullet remains common for teaching and lightweight experiments. The latest version on PyPI, 3.2.7, was released in January 2025.
ExampleGoogle's 2018 paper “Sim-to-Real: Learning Agile Locomotion for Quadruped Robots” trained trotting and galloping gaits for the Minitaur quadruped in PyBullet, then deployed the policy directly to the real robot after system identification, actuator modeling, and randomization.
- Also called
- Bullet, Bullet Physics, Bullet Physics SDK
- Related
- Physics Engine · MuJoCo (Multi-Joint dynamics with Contact) · Isaac Gym · Sim-to-Real Transfer · Unified Robot Description Format · Rigid-Body Simulation
- Sources
- bulletphysics/bullet3 (GitHub)
pybullet on PyPI
Sim-to-Real: Learning Agile Locomotion For Quadruped Robots (arXiv 1804.10332) - As of
- 2025-01