Omelet is a Rust based game math library that I started as a personal challenge and learning experience.
After becoming increasingly interested in Rust, I decided that building a math library from scratch would be
a great way to deepen my understanding of the language and its ecosystem. I also strongly believe that Rust
is on track to become a widely adopted language in the games industry, especially for systems and engine programming.
The project has had its share of learning curves, particularly around Cargo's structure, linking workflows, and
implementing complex math operations (like 4D transformations). These challenges have pushed me to explore Rust
more deeply and refine my development workflow.
To date, I've implemented robust and comprehensive support for 2D, 3D and 4D vectors. The vector API is nearly
complete and already backed by an extensive suite of unit tests and documentaiton. SIMD optimisations are the
next step for performance enhancement.
Matrix types (Mat2, Mat3, and Mat4) are also implemented with essential functionality, but they currently lack
the depth, polish, and documentation that the vectors have. Expanding and refining these matrix types is one
of the project's key next steps.
The project is now live on GitHub, and I welcome contributions from the community. Once the APIs for both
vectors and matrices are stable and well-documented, I plan to publish Omelet on crates.io as a fully
open-source Rust crate.
Long-term, I aim to use Omelet as the foundation for building a custom graphics renderer and eventually a
full featured game engine, complete with a physics system. I see this as not only a great way to solidify
my understanding of Rust, but also a way to demonstrate my skills in engine development, graphics programming
and low-level systems design.