geometric_algebra
ultraviolet
geometric_algebra | ultraviolet | |
---|---|---|
2 | 4 | |
42 | 731 | |
- | - | |
5.4 | 5.3 | |
8 months ago | about 1 month 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
ultraviolet
-
Rapier is a set of 2D and 3D physics engines written in Rust
This one has some more traction: https://github.com/fu5ha/ultraviolet
-
Where can I learn more about SIMD, CPU intrinsics and the like in the context of Rust?
Some other good places to look would be the source code for the ultraviolet crate and for wide.
-
Programming languages in 25 days, Part 2: Reflections on language design
2. Using macros for codegen, as seen in almost all other linear algebra crates, e.g. ultraviolet (https://crates.io/crates/ultraviolet)
The drawback of (1) is that it's hard to understand or extend, and the type errors are insane, and put Boost to shame. The drawback of (2) is that's just a macro. Of course (1) and (2) are not interoperable.
C++ templates are really underappreciated, because they are a single mechanism that gives you both powerful generics and macro-like codegen, while being easy to adopt gradually. (E.g. you can add concepts when it gets unwieldy, but you don't have to rewrite the whole thing.)
- [Media] I finished my first rust project: a path tracer
What are some alternatives?
Decapodes.jl - A framework for composing and simulating multiphysics systems
Holy-Unblocker - Holy Unblocker is a web proxy service that helps you access websites that may be blocked by your network or browser. It does this securely and with additional features.
clifford - Geometric Algebra for Python
30-seconds-of-code - Short code snippets for all your development needs
ganja.js - :triangular_ruler: Javascript Geometric Algebra Generator for Javascript, c++, c#, rust, python. (with operator overloading and algebraic literals) -
2captcha-php - PHP package for easy integration with the API of 2captcha captcha solving service to bypass recaptcha, hcaptcha, funcaptcha, geetest and solve any other captchas.
g3 - Neat 3D math and graphics library
stealth - :rocket: Stealth - Secure, Peer-to-Peer, Private and Automateable Web Browser/Scraper/Proxy [Moved to: https://github.com/tholian-network/stealth]
gatl - GATL: Geometric Algebra Template Library
es6-cheatsheet - ES2015 [ES6] cheatsheet containing tips, tricks, best practices and code snippets
nalgebra - Linear algebra library for Rust.
33-js-concepts - 📜 33 JavaScript concepts every developer should know.