No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/yuokamoto/PyBulletFleet.git
VCS Type git
VCS Version release/jazzy-0.1.0
Last Updated 2026-07-26
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

PyBulletFleet

Documentation

100 Robot Grid
100robots_grid_demo.py
100 Robot Grid
Cube Patrol
100robots_cube_patrol_demo.py
Cube Patrol
Mobile Pick & Drop
pick_drop_mobile_100robots_demo.py
Mobile Pick and Drop
Arm Pick & Drop
pick_drop_arm_100robots_demo.py
Arm Pick and Drop

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
sudo apt install python3-tk  # required for the optional DataMonitor tkinter GUI
pip install -e ".[dev]"

Run a demo

The examples ship inside the package, so after pip install pybullet-fleet you can list and run them with the pybullet-fleet CLI — no clone needed:

pybullet-fleet examples --list                          # all demos
pybullet-fleet examples --run 100robots_grid_demo.py     # launch one (GUI)
pybullet-fleet examples --copy ./examples                # copy them out to read/edit
pybullet-fleet examples --path                           # where they're installed

--run takes the file name as shown by --list (the .py is optional).

Many demo scripts accept a --robot argument to swap the robot model (forwarded through --run). Pass a model name (resolved via resolve_model()) or a direct URDF path:

pybullet-fleet examples --run path_following_demo.py --robot racecar
pybullet-fleet examples --run pick_drop_arm_demo.py --robot kuka_iiwa
# (resolve_model_demo has its own --list; copy it out and run it directly)

From a source checkout you can also run the files directly, e.g. python pybullet_fleet/examples/scale/100robots_grid_demo.py.

Category Demo (pass to --run) --robot default Alternatives
Arm demos pick_drop_arm_*.py, rail_arm_demo.py panda kuka_iiwa, arm_robot
Mobile demos path_following_demo.py husky racecar, mobile_robot
Scale demos (mobile) 100robots_cube_patrol_demo.py, pick_drop_mobile_100robots_demo.py husky racecar, mobile_robot
Scale demos (mixed) 100robots_mixed_demo.py husky + panda config-driven entities[].grid
Scale demos (arm) pick_drop_arm_100robots_demo.py panda kuka_iiwa, arm_robot
Model demos resolve_model_demo.py, robot_descriptions_demo.py panda / tiago any registered model

100robots_grid_demo.py defaults to a 100 mobile robot entities[].grid scene. Use --config to point it at another entities[].grid scene.

File truncated at 100 lines see the full file