Crate vek

source ·
Expand description

Generic 2D-3D math swiss army knife for game engines, with SIMD support and focus on convenience.

See the wiki for an overview, FAQ, guides, and other info.

Issues and bug reports are very welcome!

Cargo features

  • vec8, vec16, vec32, vec64, rgba, rgb, uvw, uv Enable these types. Other types are always enabled for the sake of doc-tests.
  • repr_simd enables Nightly Rust’s repr_simd and simd_ffi features, and unlock SIMD versions of all appropriate types (though repr_simd modules). On Stable, this feature has no effect.
  • serde makes vectors and matrices derive Serialize and Deserialize.
  • image makes color vectors implement the Pixel trait from the image crate.
  • mint enables conversion to the mint crate’s types. mint is an interoperability layer for math libraries.


This crate is #![no_std].


pub extern crate approx;
pub extern crate num_integer;
pub extern crate num_traits;
pub extern crate serde;
pub use crate::ops::*;
pub use crate::vec::*;
pub use crate::mat::*;
pub use crate::quaternion::*;
pub use crate::transition::*;
pub use crate::transform::*;
pub use crate::bezier::*;
pub use crate::geom::*;
pub use crate::simd_traits::*;


Low-order (quadratic and cubic) Bézier curves.
Common and trivial geometric primitives.
Matrix types.
Operations defined by this crate, such as MulAdd, Lerp, Clamp, and Wrap.
Quaternions are a convenient representation for rotations in 3D spaces.
SIMD traits; they are useful when the features “repr_simd” and “platform_intrinsics” are enabled.
A convenient position + orientation + scale container, backed by two Vec3 and a Quaternion.
Convenience structures for representing a transition from one value to another.
Vector types.