geometric_algebra
crittershowdown
geometric_algebra | crittershowdown | |
---|---|---|
2 | 1 | |
42 | 8 | |
- | - | |
5.4 | 7.4 | |
8 months ago | 2 months ago | |
Rust | Rust | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
geometric_algebra
-
Rapier is a set of 2D and 3D physics engines written in Rust
I got sucked down a Geometric Algebra rabbit hole a few months ago, which seems like a remarkably concise and intuitive way to work in a very wide variety of geometries, including 2D, 3D, 4D+, non-euclidean etc. I've wondered if GA would make a good foundation for a physics engine...
There are a few small rust libraries that look interesting [1][2], but none with a lot of traction.
Has anyone looked into this?
[1]: https://crates.io/keywords/geometric-algebra
[2]: https://github.com/Lichtso/geometric_algebra
If you dare, a good place to jump in might be Freya Holmér's Why can't you multiply vectors? - https://www.youtube.com/watch?v=htYh-Tq7ZBI
-
Geometric Algebra to Geometric Computing Software Developers
The GA community in general is very small. So yes, tooling could be better, but IMO that is not even the problem. The lack of understanding how to use it is, because GA is not explicitly taught in schools or universities.
I have written a compiler which generates SIMD ready code for the desired GAs. You can then use that output as a normal library for your application.
https://github.com/Lichtso/geometric_algebra
crittershowdown
-
Rapier is a set of 2D and 3D physics engines written in Rust
I built a game using Rapier! Using its deterministic mode, I built an online multiplayer game whereby players take turn slamming bugs against the other team and capture the hill.
It doesn't have a single-player mode yet (writing an AI for it is a bit more challenging than the chess-like I made) but check it out at https://evrimzone.itch.io/crittershowdown and the physics/game logic source code at https://github.com/evrimoztamur/crittershowdown/blob/e4d9a19....
I plan to write a post about how I wired it together and what I learned, but overall very solid library and well-thought of Rust-y API that enabled me to do everything I needed it to.
What are some alternatives?
Decapodes.jl - A framework for composing and simulating multiphysics systems
clifford - Geometric Algebra for Python
ganja.js - :triangular_ruler: Javascript Geometric Algebra Generator for Javascript, c++, c#, rust, python. (with operator overloading and algebraic literals) -
g3 - Neat 3D math and graphics library
gatl - GATL: Geometric Algebra Template Library
nalgebra - Linear algebra library for Rust.
Klein - P(R*_{3, 0, 1}) specialized SIMD Geometric Algebra Library
Grassmann.jl - ⟨Grassmann-Clifford-Hodge⟩ multilinear differential geometric algebra