#particle #fluid #bevy #sph #hydrodynamics #velocity #smoothed

bin+lib bevy-sph

A Smoothed Particle Hydrodynamics (SPH) simulation using Bevy

1 unstable release

0.1.0 Feb 1, 2025

#390 in Game dev

Download history 97/week @ 2025-01-28 28/week @ 2025-02-04

125 downloads per month

MIT/Apache

6.5MB
1.5K SLoC

Bevy SPH Simulator

A Smoothed Particle Hydrodynamics (SPH) fluid simulation implemented in Rust using the Bevy game engine. The simulation includes airfoil aerodynamics and real-time visualization capabilities. I built this to test Bevy's parallel processing capabilities.

Demo

Features

  • Real-time SPH fluid simulation
  • Interactive airfoil with configurable parameters
  • Multiple visualization modes:
    • Velocity field
    • Pressure distribution
    • Density field
  • Camera controls for panning and zooming
  • Particle pooling for efficient memory management
  • Spatial partitioning for optimized collision detection

Requirements

  • Rust
  • Cargo, installed with above Rust install.

Installation

Clone the repository and build with Cargo:

git clone https://github.com/AOS55/bevy-sph
cd bevy-sph
cargo build --release

Running Examples

The project includes two example simulations:

  1. Basic ball physics:
cargo run --example 1-ball_physics
  1. SPH Airfoil simulation:
cargo run --example 2-SPH_Airfoil

Controls

  • Arrow keys: Pan camera
  • +/- keys: Zoom in/out
  • Tab: Cycle through visualization modes (Velocity → Pressure → Density)

Configuration

The simulation parameters can be customized in lib.rs. Key parameters include:

  • Fluid properties (density, viscosity, etc.)
  • Particle properties (size, count, spawn rate)
  • Domain size and freestream velocity
  • Airfoil properties (angle of attack, chord length)

License

MIT OR Apache-2.0

Performance Notes

The simulation uses spatial partitioning and parallel processing for optimal performance. For best results, run in release mode:

cargo run --release --example 2-SPH_Airfoil

Dependencies

~21–32MB
~527K SLoC