skillfed

pybullet

Official Python Interface for the Bullet Physics SDK specialized for Robotics Simulation and Reinforcement Learning

pybullet v3.2.7 443.9K downloads/30d#6,626 on PyPI14,673
Permissive license zlib AGING released

What it is and what it does

PyBullet is a Python interface to the Bullet Physics Engine, designed primarily for robotics simulation and reinforcement learning. It lets you load articulated bodies (robots, objects) from standard formats like URDF and SDF, then simulate their physics—forward and inverse dynamics, kinematics, collision detection, and ray casting. The package handles the heavy computation in compiled C++ while exposing a straightforward Python API for defining scenes, stepping the simulation, and querying results.

The library supports both interactive visualization with OpenGL and headless simulation for training loops. It has no runtime Python dependencies, making it relatively self-contained once installed, though the compiled wheels are platform-specific. The aging maintenance status and 561-day gap since the last release suggest the core functionality is stable but not under active development.

Use it for:

  • Training reinforcement learning agents in simulated robotic environments with realistic physics and collision.
  • Validating robot kinematics and dynamics offline before deploying to hardware.
  • Prototyping game physics or interactive simulations that require accurate rigid-body dynamics.
  • Batch physics-based data generation for computer vision or control research without real-time rendering.
  • Educational demonstrations of robotics concepts, inverse kinematics, and collision detection.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyBullet provides physics simulation, robotics modeling, and collision detection through Python bindings to the Bullet Physics SDK, supporting URDF/SDF file loading, kinematics, dynamics, and rendering.

Yes, if you need physics simulation for robotics or reinforcement learning. PyBullet is mature, permissively licensed, has no runtime dependencies, and offers broad platform support via wheels. The aging maintenance status is not a blocker for stable simulation tasks, but verify that the specific features you need match the current state of the codebase.

Install

pybullet on PyPI

pip

pip install pybullet

uv

uv add pybullet

poetry

poetry add pybullet

Installing pybullet

Before you install

Medium install friction due to compiled C++ bindings, but wheels are available for multiple Python versions and PyPy variants on Linux. Last commit was 2025-10-22 and the package is classified as Production/Stable, though marked as aging with no release in 561 days.

License in practice

Licensed under zlib (permissive), allowing commercial and private use with minimal restrictions—typical for physics simulation libraries.

Quickstart

import pybullet as p

p.connect(p.GUI)
p.loadURDF('r2d2.urdf')
p.stepSimulation()

Requires a display server for GUI mode; headless simulation available but rendering capabilities depend on system OpenGL support.

Verify before relying

  • Whether wheel availability extends to ARM64 or other non-x86_64 architectures beyond the manylinux_2_17_x86_64 wheels shown.
  • Current state of OpenGL visualization support and CPU renderer capabilities.
  • Whether virtual reality headset support is actively maintained or legacy functionality.

Package facts

License zlib (permissive)
Python support not specified
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance aging — 561 days since the last release
Last repo commit
First released
Downloads 443,947/month — #6,626 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pybullet-3.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pybullet-3.2.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Keywords: game development, virtual reality, physics simulation, robotics, collision detection, opengl

Development Status :: 5 - Production/StableFramework :: Robot FrameworkIntended Audience :: Science/ResearchLicense :: OSI Approved :: zlib/libpng LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 2.7Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Topic :: Games/Entertainment :: SimulationTopic :: Scientific/Engineering :: Artificial Intelligence

Tags

physics simulation pythonrobotics simulation librarybullet physics pythoncollision detection physicsreinforcement learning physicsinverse kinematics solverurdf sdf loader
physics-enginerobotics-simulationreinforcement-learning

More Artificial Intelligence packages