bevyengine / bevy

A refreshingly simple data-driven game engine built in Rust
https://bevyengine.org
Apache License 2.0
36.42k stars 3.59k forks source link

Scientific simulations / scientific computing in Bevy #1677

Closed alice-i-cecile closed 3 years ago

alice-i-cecile commented 3 years ago

Bevy has tremendous potential as a framework for scientific simulations: it's fast, modular, easy to read/write and hooks in readily to convenient features like graphics and UIs.

This is a tracking issue to discuss the important features to help us get there (h/t @alec-deason). Many of these are "ecosystem" issues, rather than something that needs to be solved by the Bevy engine itself.

Universal features

  1. Improved documentation and API maturity. Templates and guides are a big part of this, as is battle-tested correctness.
  2. Charts / graphing integration.
  3. Statistical integrations.
  4. Ergonomic data logging.
  5. Headless mode (#22, #436), with good file-driven configuration.
  6. Deterministic RNG. This includes good enough APIs to get to zero-system ambiguities (#1312) and ordered query iteration (#1470), but the story is complex.
  7. Fixed point support, for more stable computations.
  8. Ergonomic saving and loading (#1442) with checkpointing.
  9. Cross-machine distributed processing.
  10. System order visualization and modification.
  11. Better testing and correctness tools. #1481 is a good start.

Domain specific features

  1. Indexes (#1587, #1527), for simple and correct grid-based simulations.
  2. (Partial) differential equations (PDE) integrations.
  3. Linear algebra integrations.
  4. Machine learning integrations.
  5. Native physics functionality.
alice-i-cecile commented 3 years ago

Moved to #1678; this is approximately impossible to "complete" and so is much better off as a Discussion.