9 releases (5 breaking)

0.6.0 Apr 14, 2024
0.5.0 Mar 7, 2024
0.4.0 Nov 10, 2023
0.3.0 Jul 20, 2023
0.1.3 Jan 29, 2023

#779 in Game dev

Download history 3/week @ 2024-01-21 6/week @ 2024-01-28 38/week @ 2024-02-04 35/week @ 2024-02-11 14/week @ 2024-02-18 14/week @ 2024-02-25 128/week @ 2024-03-03 82/week @ 2024-03-10 114/week @ 2024-03-17 28/week @ 2024-03-31 1/week @ 2024-04-07 160/week @ 2024-04-14

190 downloads per month
Used in bevy_editor_cam

MIT/Apache

93KB
1.5K SLoC

Features

Lots of space to play in.

This is a simple floating origin plugin, useful if you want to work with very, very large scales. It works with bevy's existing f32-based Transforms, which means it's largely compatible with the bevy ecosystem. The plugin positions entities within large fixed precision grids, effectively adding precision to the location of objects.

Additionally, you can use reference frames to nest high precision coordinate systems. For example you might want to put all entities on a planet into the same reference frame. You can then rotate this reference frame with the planet, and orbit that planet around a star.

The plugin is generic over a few integer types, to trade off scale and precision for memory use. Some fun numbers with a worst case precision of 0.5mm:

  • i8: 2,560 km = 74% of the diameter of the Moon
  • i16: 655,350 km = 85% of the diameter of the Moon's orbit around Earth
  • i32: 0.0045 light years = ~4 times the width of the solar system
  • i64: 19.5 million light years = ~100 times the width of the milky way galaxy
  • i128: 3.6e+26 light years = ~3.9e+15 times the width of the observable universe

From the docs: https://docs.rs/big_space/latest/big_space/struct.GridCell.html

Bevy Version Support

I intend to track the main branch of Bevy. PRs supporting this are welcome!

bevy big_space
0.13 0.5, 0.6
0.12 0.4
0.11 0.3
0.10 0.2
0.9 0.1

License

This project is dual licensed:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~17–47MB
~734K SLoC