#rocket-league #physics-simulation #rlbot

rl_ball_sym

rl_ball_sym is a Rust implementation of Rocket League's ball physics

47 releases (stable)

Uses new Rust 2024

5.0.0 Apr 19, 2025
4.2.0 Sep 25, 2024
4.1.2 Jul 5, 2024
3.1.3 Jul 25, 2023
0.2.0 Jul 6, 2021

#33 in Simulation

Download history

2,414 downloads per month

MIT license

545KB
2.5K SLoC

rl_ball_sym

unsafe forbidden

Rust implementation of Rocket League's ball physics; Inspired by Samuel P. Mish's C++ utils called RLUtilities with accuracy improvements from RocketSim and other miscellaneous performance improvements.

Running

Make sure you have Rust/Cargo installed, then just run cargo test --release in the terminal.

Example implementations

Check out the examples folder! If you want to run them and don't know how:

cargo run --example example_name

For example, to run the example basic.rs:

cargo run --example basic

Performance numbers

Numbers are from a system running Ubuntu 23.10 with a Ryzen 9 5900X and 3600MHz CL18 RAM.

Numbers will vary depending on your system. Only default features are enabled.

  • load_standard: Loads 8028 triangles, executes in around 655µs
  • load_hoops: Loads 15732 triangles, executes in around 1.35ms
  • load_dropshot: Loads 3616 triangles, executes in around 300µs
  • load_standard_throwback: Loads 9272 triangles, executes in around 815µs
  • get_ball_prediction_struct_for_time: standard + 8 seconds, executes in around 180µs
  • get_ball_prediction: standard + 6 seconds, executes in around 145µs
  • get_ball_prediction: Hoops + 6 seconds, executes in around 140µs
  • get_ball_prediction: Dropshot + 6 seconds, executes in around 115µs
  • get_ball_prediction: standard + Throwback Stadium + 6 seconds, executes in around 145µs

Features

  • standard: Enable loading the standard map
  • hoops: Enable loading the hoops map
  • dropshot: Enable loading the dropshot map
  • throwback: Enable loading the throwback map (with standard game rules)
  • compression: Minimize the size of the produced binaries by compressing the binary field data at compile time. Will slightly slow down load_x() functions.

Dependencies

~6.5MB
~190K SLoC