# Particle-Based Simulation
![[chain.gif#outline]]
![[particle.gif#outline]]
![[freezing.gif#outline]]
### Description
This Rust-based engine provides a flexible framework for particle-based simulations, supporting methods like Force-Based Dynamics (FBD) and Extended Position-Based Dynamics (XPBD). XPBD enables both rigid and soft body simulations, along with arbitrary compliant constraints like distance, joint angle, and volume constraints.
Examples include simulations of colliding bodies, a breaking chain under stress, a frictionless rigid block, Lennard-Jones gases, and phase transitions. A basic real-time 2D renderer is included as an example implementation to visualize these systems, built using low-level Rust libraries like `winit` and `softbuffer` for efficient and lightweight rendering.
Smoothed Particle Hydrodynamics (SPH) is a planned feature that will enable fluid and other continuous material simulations, such as modeling liquid flow or astrophysical phenomena.
The engine is modular, allowing users to create custom interactions and constraints to suit their needs.
### More Information
Check out the repository for more details and to see the code: [GitHub Repository](https://github.com/aydencook03/simulation_engine)