Skip to content

Commit

Permalink
add README
Browse files Browse the repository at this point in the history
  • Loading branch information
ickk committed Jul 2, 2024
1 parent cb35a5c commit 969f656
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 969f656

Please sign in to comment.