diff --git a/README.md b/README.md new file mode 100644 index 0000000..58a455b --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +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.