PyBullet
Python physics simulator for robotics and RL research with fast CPU-based simulation
License
Zlib
Overview
PyBullet is a Python module for physics simulation, robotics and machine learning, built on the Bullet physics engine. It simulates on the CPU, loads URDF, SDF and MJCF models, and is widely used for reinforcement learning and robot training.
PyBullet is a Python wrapper around the Bullet physics engine, designed for robotics simulation and machine learning research. It's known for its speed and ease of use, making it popular for RL research.
Key features include: - Fast rigid body dynamics - URDF, SDF, MJCF model loading - Direct and inverse kinematics/dynamics - Camera and lidar simulation - GPU-accelerated rendering through EGL (TinyRenderer renders on the CPU) - Gymnasium (Gym) environments included - VR support for teleoperation - A large user community
PyBullet is widely used for training robot policies with reinforcement learning due to its speed and simple Python API. Many research papers use PyBullet for simulation experiments.
Why it matters
PyBullet is one of the most widely-used physics simulators in robotics and AI research. Its Python-first API and CPU-friendly performance make it the default choice for labs that need fast prototyping without GPU requirements — it powered many early breakthroughs in robot learning.
Problem it solves
Getting started with robot simulation typically requires complex C++ setup or expensive GPU hardware. PyBullet provides immediate Python access to physics simulation, making robot learning experimentation accessible on any computer.
Key takeaways
- Python module for physics simulation, robotics, and machine learning
- CPU-friendly — runs on any machine without GPU requirements
- Extensive collection of robot URDFs and environment examples
- Used in thousands of research papers for robot learning
- Supports reinforcement learning with OpenAI Gym interface
Who it is for
- Students learning robot simulation and RL
- Researchers prototyping manipulation and locomotion algorithms
- ML engineers needing lightweight simulation for training
- Educators teaching robotics and reinforcement learning courses
Limitations
- Physics accuracy lower than MuJoCo for contact-rich manipulation
- Rendering quality is basic compared to modern simulators
- Development has slowed compared to alternatives like MuJoCo and Isaac
- No GPU-parallelized simulation for large-scale training