Skip to main content

Multi-robot simulation framework with PyBullet

Project description

PyBulletFleet

Documentation

A kinematics-first simulation framework for large-scale multi-robot fleets, built on PyBullet and designed for fast N× real-time evaluation.

What is PyBulletFleet?

Different simulation goals call for different tools. Physics-focused simulators (Gazebo, Isaac Sim, MuJoCo, etc.) excel at accurate contact dynamics, sensor modelling, and single-robot control — but stepping a full physics engine for every robot becomes the bottleneck when you need to evaluate fleet-level systems at scale.

PyBulletFleet sits in a different part of the design space: it is a kinematics-first, fleet-scale simulation engine whose primary goal is to enable fast development and testing of the software that orchestrates robot fleets rather than the software that controls individual robots.

Design Priorities

  • Speed over fidelity — Fleet algorithms (task allocation, traffic control, path planning) must be tested with hundreds to thousands of robots running much faster than real time. Kinematics-based stepping — teleporting each robot to its next pose without calling stepSimulation() — removes the physics bottleneck and enables N× real-time execution.
  • System integration over low-level control — The primary consumers are high-level systems: WMS (Warehouse Management Systems), task orchestrators, fleet managers, and monitoring dashboards. These systems issue goals, observe progress via state snapshots, and react to events — they do not need joint-level torque feedback.
  • Scale over detail — Validating behaviour at 100+ robot scale matters more than modelling individual link dynamics or sensor noise.
  • Interoperability — The simulation is designed around a callback-driven step loop and snapshot-friendly state model, so that it can be plugged into larger orchestration frameworks, replay pipelines, or external control systems (e.g., gRPC / ROS 2) as those interfaces are built out.
  • Physics as an option — When physical interaction is needed (grasping, conveyor dynamics, contact verification), full PyBullet physics can be switched on per-scenario without changing the rest of the stack.

Target Use Cases

Use Case Description
Fleet algorithm evaluation Test path planning, task allocation, and traffic control for large robot fleets at N× real-time speed
Warehouse simulation Simulate pick-and-place, patrol, and transport operations with mobile robots and arms
Scalability benchmarking Measure how fleet software scales from tens to thousands of agents
Rapid prototyping Quickly iterate on multi-robot behaviors with minimal boilerplate

Quick Start

Install from PyPI

pip install pybullet-fleet

Or install from source (for development)

git clone https://github.com/yuokamoto/PyBulletFleet.git
cd PyBulletFleet
pip install -e ".[dev]"

Run a demo

# If installed from source:
python examples/100robots_grid_demo.py

Performance

Results from a single test environment (Intel i7-1185G7, 32 GB RAM, Ubuntu 20.04). Your numbers will vary depending on hardware.

Agents Real-Time Factor Step Time
100 48× 2.1 ms
500 6.8× 14.7 ms
1000 2.4× 40.9 ms
2000 1.1× 94.8 ms

Kinematics mode (physics OFF), headless. See Benchmark Results for full data, component breakdown, and methodology.

Documentation

📖 Full documentation: Read the Docs

For local builds:

cd docs && sphinx-build -b html . _build/html

Development Setup

A root Makefile provides all common dev commands. Run make help to list targets.

make verify        # Lint + test (CI subset, excludes docs/security)
make test          # Tests with coverage (75% threshold)
make test-fast     # Quick test (stop on first failure)
make lint          # All pre-commit hooks (black, pyright, flake8)
make format        # Auto-format with black
make typecheck     # Pyright type check
make bench-smoke   # Quick benchmark (~10s)
make docs          # Sphinx docs (warnings = errors)
make clean         # Remove caches and build artifacts

Pre-commit hooks

Install pre-commit hooks for automatic formatting and linting on commit:

pip install pre-commit
pre-commit install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybullet_fleet-0.2.0.tar.gz (198.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybullet_fleet-0.2.0-py3-none-any.whl (110.4 kB view details)

Uploaded Python 3

File details

Details for the file pybullet_fleet-0.2.0.tar.gz.

File metadata

  • Download URL: pybullet_fleet-0.2.0.tar.gz
  • Upload date:
  • Size: 198.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybullet_fleet-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8917ff6c677994f638ffda98c7530ff81c056b56b4bbf611d3be9202db58478d
MD5 b9f1958f0fda26f82d0cac0dac1ba198
BLAKE2b-256 eadd0f96ae9791edb6b4542c7c517a14d89fb103d5952e937b80b5e513810e8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybullet_fleet-0.2.0.tar.gz:

Publisher: release.yml on yuokamoto/PyBulletFleet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybullet_fleet-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pybullet_fleet-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 110.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pybullet_fleet-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e85a236366c1d05dbbc443d328abfd5fa19cad93015978c8df137e18094aa05
MD5 af1bec053aa713f61fc940a4d7831ad7
BLAKE2b-256 54977248f48ec85d6401d8bbff0e9ce4a72391dda9f471ebb05f90d17d8cf5c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybullet_fleet-0.2.0-py3-none-any.whl:

Publisher: release.yml on yuokamoto/PyBulletFleet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page