Physically-based damped springs model (for animation, mostly.)

1 unstable release

0.1.0 Aug 2, 2018

#16 in Simulation

4 downloads per month


74 lines

Physically Based Springs in Rust

A port of Ryan Juckett's damped spring models to Rust.

A DampedSpringController is created with_coefficients to specify the tension and angular velocity of a spring. The controller may then be used to update the position and velocity of any spring with similar characteristics.

Creating DampedSpringControllers requires solving differential equations for that particular model, so it is best to cache them for use by multiple springs of similar parameters.


Damped spring models can be used in conjunction with interpolation systems to create fluid character animation out of few keyframes and a small amount of hand tuning:

Physics-based animations are also useful for touch-based systems, as they allow the screen to appear more lifelike. Screens can be flung and rely on friction to slow them down, or spring models used to show toaster boxes or move scroll panels in to position.