A modernized fork of RocketSim with official Python bindings
A C++ library for simulating Rocket League games at maximum efficiency, now with first-class Python support via nanobind.
This fork builds on ZealanL's original RocketSim and takes inspiration from mtheall's Python bindings:
- nanobind bindings — Faster, cleaner Python bindings (not pybind11)
- Full test coverage — C++ and Python test suites with CI
- RLGym compatible — Drop-in replacement for rlgym environments
- Modern build system — scikit-build-core + uv for Python packaging
# Build and install Python bindings
cd python
uv build --wheel
uv pip install dist/*.whlimport RocketSim as rs
rs.init("collision_meshes")
arena = rs.Arena(rs.GameMode.SOCCAR)
car = arena.add_car(rs.Team.BLUE, rs.CAR_CONFIG_OCTANE)
arena.step(100)RocketSim simulates ~20 minutes of game time per second on a single thread. With 12 threads, that's ~10 days of game time per minute.
Accurate enough to train ML bots to SSL level, simulate shots, air control, and pinches. Small errors accumulate over time — best suited for simulation with consistent feedback.
- Clone this repo
- Dump arena collision meshes using RLArenaCollisionDumper
- Build:
mkdir build && cd build && cmake .. && make
For Python bindings, see python/README.md.
- Original docs: zealanl.github.io/RocketSimDocs
- Python API: python/README.md
- ZealanL/RocketSim — Original implementation
- mtheall/RocketSim — Python bindings inspiration
- RLGym — Target compatibility
RocketSim replicates Rocket League's game logic but contains no code from the game.