#particle #physics-simulation #physics

zoom

A particle physics library with extensive generics

9 stable releases

Uses old Rust 2015

1.5.0 Dec 12, 2016
1.4.0 Mar 17, 2016
1.2.1 Feb 15, 2016
1.0.3 Jan 25, 2016

#319 in Simulation

21 downloads per month

BSD-2-Clause

39KB
967 lines

zoom

A library for Rust particle physics

The goal of this library is to handle all particle interactions needed in a particle system in a generic way. Traits will be created for particles that allow them to be stored into octrees and quadtrees. This library will also provide Barnes-Hut trees for efficient simulations of charged or gravitational particle simulations. Eventually, support for GPU acceleration will be added, but this may require an API change.

Once Rust adds parameterized numbers, major version 2 of the API will be specified so that a generic amount of dimensions may be specified in the API and still generate static code. Until then, separate traits and structs will be provided for 1d, 2d, and 3d particle physics simulations.

Here is an example of zoom usage.


lib.rs:

Please do not "use zoom::*" or the zoom::Box type will override std::boxed::Box!

This crate creates traits for driving particle physics functions and doing simple vector geometry. It also contains various particle interactions in the particle module, which is publically used in zoom.

Dependencies

~3MB
~52K SLoC