• Stars
    star
    503
  • Rank 87,705 (Top 2 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

2 and 3-dimensional fluid simulation library in Rust.

crates.io

crates.io (salva2d) crates.io (salva3d) Build status

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


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.

Features

  • Pressure resolution: DFSPH and IISPH.
  • Viscosity: DFSPH viscosity, Artificial viscosity, and XSPH viscosity.
  • Surface tension: WCSPH surface tension, and methods from He et al. 2014 and Akinci et al. 2013
  • Elasticity: method from Becker et al. 2009
  • Multiphase fluids: mix several fluids with different characteristics (densities, viscosities, etc.)
  • Optional two-way coupling with bodies from nphysics.
  • WASM support

More Repositories

1

nalgebra

Linear algebra library for Rust.
Rust
3,909
star
2

rapier

2D and 3D physics engines focused on performance.
Rust
3,894
star
3

nphysics

2 and 3-dimensional rigid body physics engine for Rust.
Rust
1,624
star
4

bevy_rapier

Official Rapier plugin for the Bevy game engine.
Rust
1,218
star
5

ncollide

2 and 3-dimensional collision detection library in Rust.
Rust
921
star
6

parry

2D and 3D collision-detection library for Rust.
Rust
554
star
7

rapier.js

Official JavaScript bindings for the Rapier physics engine.
TypeScript
410
star
8

simba

Set of mathematical traits to facilitate the use of SIMD-based AoSoA (Array of Struct of Array) storage pattern.
Rust
288
star
9

alga

Abstract algebra for Rust.
Rust
194
star
10

sparkl

MPM physics simulation in Rust
Rust
39
star
11

rapier.rs

Official website for the Rapier physics engine.
HTML
19
star
12

bevy_salva

Official Salva plugin for the Bevy game engine.
13
star
13

nalgebra.org

Source code for the website of the nalgebra project.
JavaScript
7
star
14

Steadyum

Physics Sandbox with Rapier
Rust
6
star
15

ncollide.org

Source code for the website of the ncollide project.
CSS
4
star
16

rustsim.org

Official website of the rustsim organization.
JavaScript
4
star
17

nphysics.org

Source code for the website of the nphysics project.
CSS
3
star
18

parry.rs

Official website for the Parry collision-detection library
JavaScript
3
star
19

salva.rs

Source code for the website of the Salva project.
CSS
3
star
20

dimforge-bench

Continuous benchmarking tools for the Dimorge projects.
Rust
2
star
21

distributed-physics-prototype

Experiments on distributed physics with Rapier
Rust
2
star
22

github-ci-secrets-test

1
star