I encountered geometric algebra only few weeks ago and it is one of the most interesting, intriguing and elegant things I saw in my life. It almost feels too beauty to be true. I cannot understand why GA is not more popular - especially as it is backwards compatible with linear algebra.
That may be largely due to massive amount of work put into the old way. Even if GA is just fundamentally a better idea for doing graphics, it doesn't have decades of software and hardware development to back it up.
Imagine selling this:
I've got a new idea, with a mere re-education campaign for our developers, major graphics engine overhaul, and... convincing NVIDIA or AMD to implement some GA specific optimizations in hardware. We can have a much more mathematically satisfying code base!
Geometric algebra seems to be a trendy subject on HN right now. Just so you guys know, this is only the top of the iceberg. If you feel like there are aspects to this theory that are arbitrary (e.g. things to do with determinants) or if you have some suspicion that there's a big rich deeper understanding which all this is pointing towards, you're right. Don't be satisfied with just this. Go study more pure mathematics. It's a lot richer and more satisfying than you might imagine.
Dam, I wish I knew about that before. It looks so much more "logical". The video also says that ray/triangle intersection is safer on the rounding error/accuracy side. Is it true ?
The comment about cross and dot product just being given to you struck a chord with me. I had a hard time grokking them when they were introduced to me because I had no first-principle basis for making sense of why it makes sense. The lack of pictures didn't help either.
This makes me wonder why this hasn't been used in more cases... I have been messing around with parametric 3D models using regular 3D vectors, but getting to the bottom of this might make my life a lot easier.
I have been studying GA ever since first hearing about it 10 years ago. David Hestenes book, "New Foundations for Classical Mechanics" was my first foray followed by "Geometric Algebra for Physicists" by Doran and Lasenby, however lately I have been focusing a on GA for computer graphics instead of physics. I am working through Euclid's Elements in parallel.
I love the work of Pablo Colapinto (wolftype) [1]. He created a C++ library for GA, and somebody made the library for JS. His academic papers are inspiring and clear. He also has some really good Vimeo videos showcasing his work under Wolftype.
The history of GA is a solid example of how it is not always the best idea that takes hold. Gibbs and vectors and quaternions became the way.
In mathematics, there’re more general operators besides cross and dot products. Wedge product = exterior product, the symbol is ^. And anti-wedge product = interior product, the symbol is ⨼.
When applied to vectors, they produce not just vectors but various more interesting things.
In 3D space, vector ^ vector makes a bi-vector. In 3D, it contains 3 scalar components just like a vector, but the meaning is different (can be interpreted as an oriented area), and multiplication by matrix has different formula. That different formula’s the reason why normals need different formula to transform by a matrix.
In 4D homogenous space things become even more interesting. vector ^ vector produces a bi-vector. In 4D space, that thing has 6 scalar components, and its projection to W=1.0 3D space is a directed infinite line. Bi-vector ^ vector = a tri-vector, that thing has 4 scalar components, and its projection to W=1.0 3D space is an infinite oriented plane.
Then, anti-wedge product can be used to find intersection of these things, tri-vector ⨼ tri-vector = bi-vector = the line intersecting two planes, tri-vector ⨼ bi-vector = vector = the point where line intersected a plane, and so on.
Mathematically, these operators are quite simple and therefore fast to compute, e.g. for 3D vectors ^ is same as cross product.
Another common terminology is that a vector is a 1-form, and a bi-vector a 2-form. The wedge of an n-form and an m-form is an (n+m) form, which generalises the cross product.
To define the dot product you need the notion of a Hodge star, which maps an n-form to a (D-n)-form where D is the dimension of the ambient space.
If you learned linear algebra, or especially vector calculus, without learning these things then you were cheated out of the best bits, and I encourage you to rectify this! The general picture is actually clearer than the 2D or 3D one usually taught, in which some things happen to co-incide.
Does it make sense to study GA for use in data science?
My linear algebra itself is rusty so I'm not clear if the more general operations of GA make it well suited to studying stats/machine learning concepts.
It does... If you want to develop new methods that use GA concepts, or you want more perspective on geometric notions.
GA is not more general than linear algebra... i think of it as sitting between vector algebra (which often is too limited) and linear algebra (which is often too general).
All GA expressions are in LA (though they may be much uglier), not all LA expressions are in GA.
The Geometric Algebra version of Kramer's rule is one of coolest most insightful things I've seen. Good examples can be found in the opening chapters of "Geometric Algebra for Computer Science" by Dorst, Fontijne, & Mann.
I'm still just a student, but I keep finding myself humbled and amazed at how much deeper any field I come across truly is... Even though most of this goes over my head for now, I'm sure, with more practice and study, I'll come to a greater understanding of it.
There is very interesting library: https://github.com/enkimute/ganja.js