A fork of RocketSim with Python bindings.
RocketSim is a C++ library that simulates Rocket League physics. This fork adds nanobind bindings so you can use it from Python.
Built on ZealanL's RocketSim, with ideas from mtheall's Python bindings:
- nanobind instead of pybind11 (smaller, faster builds)
- C++ and Python test suites with CI
- Works with rlgym
- scikit-build-core + uv for 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)About 20 minutes of game time per second on one thread. 12 threads gets you ~10 days of game time per minute.
Good enough to train ML bots to SSL, simulate shots, air control, pinches. Errors accumulate over time so it works best when you're running short simulations with frequent resets.
- Clone this repo
- Get arena collision meshes with RLArenaCollisionDumper
- Build:
mkdir build && cd build && cmake .. && make
For Python, see python/README.md.
- Original RocketSim docs: zealanl.github.io/RocketSimDocs
- Python API: python/README.md
RocketSim replicates Rocket League physics but doesn't contain any code from the game.