#cellular-automata #cellular #automata #projection #map #globe

surface-grid

A crate providing data structures for square-tiled grids wrapped around the surface of certain objects

4 releases (2 breaking)

0.3.1 Jan 27, 2024
0.3.0 Jan 27, 2024
0.2.0 Jan 26, 2024
0.1.0 Jan 25, 2024

#543 in Data structures

Download history 17/week @ 2024-01-26 3/week @ 2024-02-23 3/week @ 2024-03-22 68/week @ 2024-03-29

71 downloads per month

BSD-3-Clause

84KB
1.5K SLoC

Surface Grid

A crate providing data structures for square-tiled grids wrapped around the surface of certain objects. This create was intended to be used for the creation of cellular automata on non-flat grids. The crate provides a trait SurfaceGrid with an associated type Point which can be used to traverse the grid squares. Additionally, for grids that wrap a sphere the Point type implements the SpherePoint trait providing conversions between geographic and surface grid coordinates.

You can view examples in examples.

The documentation is available at https://docs.rs/surface-grid/0.3.1.

Available Surfaces

Spheres

  • RectangleSphereGrid - Uses an equirectangular projection to wrap a rectangle around the sphere.
  • CubeSphereGrid - Projects a cube over the sphere with each face being a square grid.

lib.rs:

A crate providing data structures for square-tiled grids wrapped around the surface of certain objects. This create was intended to be used for the creation of cellular automata on non-flat grids. The crate provides a trait SurfaceGrid with an associated type Point which can be used to traverse the grid squares. Additionally, for grids that wrap a sphere the Point type implements the SpherePoint trait providing conversions between geographic and surface grid coordinates.

Available Surfaces

Spheres

  • RectangleSphereGrid - Uses an equirectangular projection to wrap a rectangle around the sphere.
  • CubeSphereGrid - Projects a cube over the sphere with each face being a square grid.

Dependencies

~1.5MB
~34K SLoC