#geometry #gamedev #vector #quaternion #simd


Traits and types particularly for 2D and 3D geometry with implementations for [float] and optionally SIMD

4 releases

0.5.0 Feb 18, 2023
0.1.5 Jan 25, 2023
0.1.3 Sep 6, 2021
0.1.1 Jun 22, 2021

#52 in Rendering

Download history 106/week @ 2023-08-01 231/week @ 2023-08-08 539/week @ 2023-08-15 528/week @ 2023-08-22 56/week @ 2023-08-29 584/week @ 2023-09-05 500/week @ 2023-09-12 416/week @ 2023-09-19 322/week @ 2023-09-26 414/week @ 2023-10-03 347/week @ 2023-10-10 107/week @ 2023-10-17 303/week @ 2023-10-24 278/week @ 2023-10-31 129/week @ 2023-11-07 251/week @ 2023-11-14

965 downloads per month
Used in 3 crates


2.5K SLoC


A collection of vector, matrix and quaternion types and traits for Rust, particularly aimed at 2D, 3D and OpenGL/Vulkan applications, where the elements use arrays and slices of floats.

The usage model in 3D graphics is through ownership of large arrays of floats by the application, encompassing sets of vertices and matrices, with the library enabling in-place operations on those vertices and matrices.

The library takes advantage of the developiong core_simd crate to provide architecture-specific implementations, without attempting to support architectural SIMD implementations within this crate.

This crate is in alpha; it is used in a small number of applications, and the functionality is mature, but the API may undergo some changes in the near future (through Q3 2023) to ensure high performance OpenGL and Vulkan operation while maintaining simplicity of operation for other applications.


Add this to your Cargo.toml:

geo-nd = "0.1.2"


NOTE Until core_simd is part of std or on crates.io the following does not work - the dependency in the geo-nd/Cargo.toml for core_simd must be commented out on crates.io; so a locally modified clone of this crate is required until that point.

This crate can be used with the upcoming core_simd crate by enabling the default simd feature. Use this in Cargo.toml:

version = "0.1"
features = ["simd"]


Release notes are available in RELEASES.md.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~26K SLoC