20 breaking releases
0.21.0 | Oct 27, 2024 |
---|---|
0.20.2 | May 28, 2023 |
0.19.0 | May 22, 2023 |
0.12.0 | Feb 27, 2023 |
0.6.0 | Nov 29, 2022 |
#310 in Math
76KB
2K
SLoC
Skeið
a linear algebra library for game graphics and physics
Is this ready to use in my project?
There are more rational alternatives, but it's getting there.
The library has tests to verify that the bulk of the functionality present works as expected, and the library has many working features that can be used if you're interested.
However take note that the API is not and will not be stable until 1.0, for which there is no planned release date. Until then, I can and will be changing load-bearing parts of the library until I'm happy enough with the architecture to make a commitment to it.
Also make sure that you read LICENSE
and understand the license terms and disclaimers of
liability before you make use of this library.
What features does Skeið provide right now?
- Generic
Matrix
andVector
structs - Vector-Vector addition, subtract, dot-product, and cross-product
- Vector-Scalar addition, subtraction, multiplication, and division
- Matrix-Matrix addition and subtraction
- Matrix-Scalar multiplication
- Matrix-Vector multiplication
- WebAssembly compatibility
What features are planned for the future?
- Generic
Quaternion
struct - Quaternion math
- Methods specifically for creating transformation and projection matrices
- Portable SIMD (when stable in rustc)
How is Skeið pronounced?
While the name can be anglicized to skeid, the original Old Norse word would have been pronounced like the English word scathe, which is also how the name of this library should be pronounced.
What does Skeið mean?
A skeið is a type of Scandinavian viking-age warship. They were the largest type of longship, having 30 or more rowing benches.
The name skeið means "slider" in Old Norse, possibly referring to the high speed of these ships. This word is cognate with the modern English word sheath, via Old English word scēaþ meaning the same as the modern english, and having the Proto-Indo-European root *skei- meaning "to cut or split".
It is named as such because I thought it's a cool word, because other components of the TimberWolf game engine have Norse-inspired names, and because I want this math to move easily and quickly just like the eponymous ship.
How to Use
This is a Rust library, available through crates.io. To install in your project, add it to your Cargo.toml as a dependency:
[dependencies]
skeid = "0.21.0"
Or run the following command from within your project directory:
cargo add skeid