https://github.com/virxec/rl_ball_sym
Rust implementation Rocket League's ball physics
https://github.com/virxec/rl_ball_sym
rlbot rocket-league rust simulation
Last synced: about 1 month ago
JSON representation
Rust implementation Rocket League's ball physics
- Host: GitHub
- URL: https://github.com/virxec/rl_ball_sym
- Owner: VirxEC
- License: mit
- Created: 2021-05-06T22:35:57.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-20T17:52:06.000Z (3 months ago)
- Last Synced: 2025-03-28T00:11:15.432Z (about 2 months ago)
- Topics: rlbot, rocket-league, rust, simulation
- Language: Rust
- Homepage: https://crates.io/crates/rl_ball_sym
- Size: 8.47 MB
- Stars: 12
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rl_ball_sym
[](https://github.com/rust-secure-code/safety-dance/)
Rust implementation of Rocket League's ball physics;
Inspired by Samuel P. Mish's C++ utils called [RLUtilities](https://github.com/samuelpmish/RLUtilities)
with accuracy improvements from [RocketSim](https://github.com/ZealanL/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:
```bat
cargo run --example example_name
```For example, to run the example `basic.rs`:
```bat
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.