Skip to content
2 and 3-dimensional fluid simulation library in Rust.
Rust Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Oct 28, 2019
build Release v0.1.1. Nov 1, 2019
examples2d Update nphysics_testbed dependency. Oct 28, 2019
examples3d Update nphysics_testbed dependency. Oct 28, 2019
src Add examples. Oct 28, 2019
.gitignore Basic non-functioning PBF setup. Sep 21, 2019
Cargo.toml Update nphysics_testbed dependency. Oct 28, 2019
LICENSE Add README and LICENCE. Sep 21, 2019 Add to README explanation about the crate's name. Oct 28, 2019 Add README and LICENCE. Sep 21, 2019
rustfmt.toml Run cargo fmt. Oct 27, 2019 (salva2d) (salva3d) Build status

Users guide | 2D Documentation | 3D Documentation | Forum

 Click one of those buttons if you wish to donate to support the development of salva:

Become a Patron!      Donate using Liberapay

Salva is a 2 and 3-dimensional particle-based fluid simulation engine for games and animations. It uses nalgebra for vector/matrix math and can optionally interface with nphysics for two-way coupling with rigid bodies, multibodies, and deformable bodies. 2D and 3D implementations both share (mostly) the same code!

Examples are available in the examples2d and examples3d directories. Because those demos are based on WASM and WebGl 1.0 they should work on most modern browsers. Feel free to ask for help and discuss features on the official user forum.

Why the name Salva?

The name of this library is inspired from the famous surrealist artist Salvador Dalì. The logo of Salva is inspired from its renown painting The Persistence of Memory.


  • PBF pressure resolution.
  • XSPH viscosity.
  • Multiphase fluids.
  • Optional two-way coupling with bodies from nphysics.
  • WASM support
You can’t perform that action at this time.