Robots Atlas>ROBOTS ATLAS
PyBullet

Simulation · Simulation & Digital Twins

PyBullet

PyBullet 3.2.6·Bullet Physics

Active Open source API available
CATEGORYSimulation · Simulation & Digital Twins
READINESSTRL 9
ADOPTION SCALEEstablished Open Source
LICENSESBSD-2-Clause
FIRST RELEASE2016

PyBullet is a Python binding to the Bullet Physics SDK, created by Erwin Coumans in 2016. Bullet is one of the oldest open physics engines — used in AAA games (Grand Theft Auto, Red Dead Redemption), movies (DreamWorks Madagascar, How to Train Your Dragon, Disney's Tangled), and in robotics. PyBullet brings Python's simplicity to this mature technology.

PyBullet features: (1) one-command install via pip install pybullet, (2) all demos run natively in the browser via WebAssembly, (3) URDF/SDF/MJCF support, (4) built-in reference models (KUKA, Franka, Husky, R2D2, Atlas, Cassie, Laikago, Minitaur, quadrupeds, drones), (5) simple API for deep RL (gym-like wrapper), (6) the physics engine runs on CPU — predictable and cheap to launch.

PyBullet dominated learning-based robotics in 2018–2022, used in Stanford CS231n, MIT 6.832, Berkeley CS287, and publications from Google Brain (Quadruped Locomotion, Soft Actor-Critic), DeepMind (a DM Control alternative), and Facebook AI Habitat (early versions). After 2023 it was partly displaced by MuJoCo (precision) and Isaac Lab (GPU scale), but it remains popular for teaching and lightweight projects.

Type & Roles
Software types
Simulation

Simulation software is used for modelling, testing, and validating robot behaviours, sensor characteristics, environments, and algorithms without requiring physical hardware. It enables safe, repeatable, and cost-effective development cycles. Common robotics simulators include Gazebo, Isaac Sim (NVIDIA), MuJoCo, PyBullet, and Webots, each offering different trade-offs between physics accuracy, rendering fidelity, and integration with middleware frameworks such as ROS 2.

Developer Tool

A Developer Tool is software designed to support the development workflow, including configuration, debugging, testing, monitoring, validation, and integration of robotic and embedded systems. Examples include IDE plugins, visual debuggers, log analysers, hardware-in-the-loop (HIL) test harnesses, and code-generation utilities specific to robotics platforms.

API Library

An API Library is a software package that exposes programmatic interfaces for communicating with a device, service, or system. In robotics it typically forms a lightweight integration layer built on top of the manufacturer's official API or an open-source project, abstracting low-level protocol details and providing language-native bindings (Python, C++, Java, etc.).

Select an item to see its description.
Main category
Simulation & Digital TwinsDeveloper Tools
Roles in robotics ecosystem
Developer EnablementMotion PlanningPerceptionVisualization
Robot Control

Robot Control denotes the role of software responsible for motion control, command execution, coordination of actuating elements and the direct operational logic of the robot.

Select an item to see its description.
Software family
Family
Robot Simulators

A family of open-source and commercial physics simulators for robotics: Gazebo, Webots, MuJoCo, PyBullet, Isaac Lab, CoppeliaSim, Genesis, and related tools. Common denominator: rigid-body physics engine, URDF/MJCF model support, ROS/ROS 2 integration, sim-to-real transfer.

Maturity & Adoption
9 / 9
Proven in operational conditions
ResearchPrototypeProduction
Adoption scaleEstablished Open Source
Maintenance statusCommunity Maintained – Slow Cadence
First release2016
Deployments

Google Brain Minitaur (locomotion DRL), Stanford ALOHA early versions, MIT 6.832 (Underactuated Robotics), Berkeley CS287 (Advanced Robotics), Boston Dynamics Spot Mini researcher models, OpenAI Gym Robotics environments (pre-MuJoCo era).

Community

github.com/bulletphysics/bullet3 13k★, pypi.org/project/pybullet 8M+ downloads, > 5000 scientific publications citing PyBullet/Bullet.

ROS supportCompatibility with ROS / ROS 2 ecosystem
Community ROS 2 WrapperWrapper ROS 2 tworzony i utrzymywany przez społeczność, nie przez producenta
Community ROS 1 WrapperWrapper ROS 1 tworzony i utrzymywany przez społeczność
System capabilities
Open source
Source code is publicly available under an open-source license — enables security audits, custom modifications, and integration without licensing barriers.
Real-time capable
Designed with timing-determinism guarantees — meets the requirements of control loops, safety systems, and tasks demanding low, predictable latency.
×
⟨/⟩
API available
The software exposes a programmable interface (REST, gRPC, SDK, or language bindings) that enables automation and integration with other systems.
📦
Pre-built / binary
Distributed as ready-to-use binary packages, container images, or installers — no need to build from source.
Programming languages
PythonC++C
Operating systems
Ubuntu 22.04Ubuntu 20.04DebianWindowsmacOS
Minimum hardware requirements
Minimum hardware requirements
CPUDual-core x86-64 or ARM64
RAM (GB)2
GPUNot required — CPU simulation; GPU only used for OpenGL rendering
Disk (GB)1

The lightest of major simulators; runs on Raspberry Pi 4 and budget laptops.

Packaging & distribution
Package managers
pip / PyPIconda / mambaGitHub Releases / GitHub Actions ArtifactsSource – CMake / ament_cmake
CPU architectures
x86_64 (AMD64)ARM64 / AArch64Apple Silicon – AArch64 (macOS)Raspberry Pi – AArch64 (BCM)
Installation difficulty
LevelOut of the box
Protocols and interfaces
Communication protocols
Shared Memory (POSIX / mmap)WebSocketgRPC
Hardware interfaces
Ethernet 1000BASE-T (Gigabit Ethernet)USB 3.0 / 3.1 Gen 1
Latency classes
Soft Real-Time (20–100 ms)Soft Real-Time (100–500 ms)Zmienna (workload-dependent)
Deployment types
Local WorkstationContainerizedCloud
Supported simulators
PyBullet / Bullet3
Official Docker images
ros:humble
Licenses
BSD-2-ClauseBSD 2-Clause Licensev2-Clause

License family: Permissive

ModificationDistributionCommercial useSublicensingPrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attribution
Version history
PyBullet 3.2.6Jan 2024

Update for Python 3.12, performance fixes.

PyBullet 3.21Apr 2022

Apple Silicon (M1) support.

PyBullet 3.0May 2019

Gym-like API, OpenAI Gym Robotics support.

PyBullet 2.0Aug 2017

URDF and SDF support, ready-made KUKA/Franka models.

PyBullet 1.0Sept 2016

First public release, integrating Bullet 2.85.