Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ickk/ega

PGA mathematics library
https://github.com/ickk/ega

mathematics

Last synced: about 16 hours ago
JSON representation

PGA mathematics library

Awesome Lists containing this project

README

        

This repository contains (work-in-progress) sparse-implementations of 3D
Projective Geometric Algebra, intended for use in computer graphics.

There is an implementation based on rigidgeometricalgebra.org (`rga`), and
there is also an implementation largely based on PGA4CS.pdf on bivector.net
(`ega`).

---

There is basically complete test coverage, and most of the important operators
have been implemented. While `rga` is in a more "complete" state compared to
`ega` it would be possible to use either of the libraries, with the following
caveats:
- Some higher-level/compound operators (sandwich products, &c) do not yet have
their own sparse implementations;
- there is currently no feature enabling explicit SIMD optimisations;
- some desirable 3rd party traits do not yet have implementations (bytemuck,
serde, rand, mint);
- aside from the included unit tests, to my knowledge there has been no
extensive use of these libraries in production code or otherwise.

Other considerations:
- While `mint` serves as a light-weight common interchange interface for
traditional gamedev math types, it occurs to me that (projective)
geometric-algebra libraries might be better served by their own interchange
crate; there-by allowing `ega`, `rga`, and other geometric algebra
implementations to co-exist.

---

As indicated in the `LICENSE` files of the respective projects, each library is
distributed under permissive Apache2, MIT, and Zlib licenses; unless explicitly
stated otherwise, any contributions you intentionally submit for inclusion in
these works shall be licensed accordingly.