#rocket-league #rlbot #physics #simulation

rl_ball_sym

Rust implementation of ball path prediction for Rocket League; Inspired by Samuel (Chip) P. Mish's C++ utils called RLUtilities

35 releases (stable)

3.0.0 Mar 2, 2023
2.5.2 Dec 20, 2022
2.5.1 Nov 4, 2022
2.0.0 Jul 22, 2022
0.2.0 Jul 6, 2021

#8 in Simulation

Download history 16/week @ 2022-12-03 9/week @ 2022-12-10 65/week @ 2022-12-17 14/week @ 2022-12-24 34/week @ 2022-12-31 29/week @ 2023-01-07 27/week @ 2023-01-14 36/week @ 2023-01-21 20/week @ 2023-01-28 68/week @ 2023-02-04 74/week @ 2023-02-11 150/week @ 2023-02-18 26/week @ 2023-02-25 28/week @ 2023-03-04 7/week @ 2023-03-11 198/week @ 2023-03-18

260 downloads per month

GPL-3.0 license

175KB
1.5K SLoC

rl_ball_sym

unsafe forbidden

Rust implementation of ball path prediction for Rocket League; Inspired by Samuel (Chip) P. Mish's C++ utils called RLUtilities.

This crate also contains fixes to discovered errors stemming from the original repo.

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 22.04.1 with a Ryzen 9 5900X with 3600MHz CL18 RAM.

Numbers will vary depending on your system.

  • load_standard: Loads 8028 triangles, executes in around 910µs
  • load_hoops: Loads 15732 triangles, executes in around 1.82ms
  • load_dropshot: Loads 3616 triangles, executes in around 410µs
  • load_standard_throwback: Loads 9272 triangles, executes in around 1.16ms
  • get_ball_prediction_struct_for_time: standard + 8 seconds, executes in around 140µs
  • get_ball_prediction: standard + 6 seconds, executes in around 110µs
  • get_ball_prediction: Hoops + 6 seconds, executes in around 200µs
  • get_ball_prediction: Dropshot + 6 seconds, executes in around 90µs
  • get_ball_prediction: standard + Throwback Stadium + 6 seconds, executes in around 110µs

Features

  • uncompressed: Default feature. Enables the loading of uncompressed binary field data, which is faster but increases the size of the final binary.
  • compression: Nightly only - Minimize the size of the produced binaries by compressing the binary field data at compile time. Will slightly slow down load_x() functions.
  • stable-compression: Does the same as compression using the same crate, but available for use in stable Rust.
  • fast-math: Enables the fast-math feature in the glam crate.

Dependencies

~2.5MB
~58K SLoC