Salva
2 and 3-dimensional fluid simulation library in Rust.
Install / Use
/learn @dimforge/SalvaREADME
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 rapier 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 discord.
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 rapier.
- WASM support
Related Skills
himalaya
337.3kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
337.3kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
