For more background about the concepts like quaternions, projective geometry, and exterior algebra, etc. that are all united in PGA, you can check this nice book by Jean Gallier and Jocelyn Quaintance: https://www.cis.upenn.edu/~jean/gbooks/geomath.html
direct link https://www.cis.upenn.edu/~jean/math-deep.pdf I haven't read, but sampled it on several topics and found the explanations to be very good.
(edit) first-added links specific to PGA, and typo fix s/external/exterior/
> This tutorial paper provides a short introduction to geometric algebra, starting with its history and then presenting its benefits and exploring its applications.
I agree the representation chosen in the SIGGRAPH lecture and the associated docs seems somewhat unnatural and counter-intuitive (why are points being represented as trivectors?).
Have you reached out to C. Gunn or S. De Keninck to ask what they think about the representation you propose in that blog post and the geometric product ⟑ and antiproduct ⟇ ? If the representations are equivalent and one is closer to concepts people already understand (e.g. points being (x,y,z,w), with w=1), then maybe adopting the simpler representation would lead to wider adoption of the ideas.
Alternatively, maybe they will point out some other reasons why points-as-trivectors representation is preferable.
In the short version, the representations are isomorphic, that is you can take all formulas from our Siggraph cheat sheets and replace all operators by Eric's 'anti-operators'.
(its a long discussion, the link points to my last summary). There are still some unanswered questions on Eric's method (most notably how to define his duality mathematically - or how to arrive at the metric for the dual algebra - I'm looking forward to his views on this.)
The 26th of February I'm giving a new talk at the GAME2020 workshop that is all about the reason the view nobody is used to might in fact be a natural choice.
I approached the SIGGRAPH presenters immediately after their talk last year to try to explain that the whole thing could be done without swapping the geometrical meanings of vectors and trivectors. They were very dismissive at the time, but I think they have now accepted the formulation I've introduced leads to exactly the same mathematics with the only differences being in naming and numbering.
I don't see the math as one algebra with the geometric product and a "dual" algebra with the geometric antiproduct. I see it as a single algebra with two products existing simultaneously. It's important to understand that there are lots of symmetries in geometric algebra, and for each one, both sides of the symmetry are equally significant, and the universe doesn't prefer one over the other. The most fundamental symmetry is that each basis element can simultaneously be viewed as containing some "full" dimensions and some "empty" dimensions. In 4D space, you can think of this as a 4-bit quantity where 1 means full and 0 means empty. (These are what the black and white bars represent on my poster.) Four bits means 16 different basis elements can be formed by selecting which dimensions are full. Scalars have no full dimensions, vector basis elements have one full dimension, bivector basis elements have two full dimensions, trivector basis elements have three full dimensions, and antiscalars (which are 4D volume elements or quadrivectors) have all four full dimensions. At the same time, you can view these from the opposite perspective and say that scalars have all four empty dimensions, vectors have three empty dimensions, bivectors have two empty dimensions, trivectors have one empty dimension, and antiscalars have no empty dimensions. The important thing to understand about the relationship between the geometric product and the geometric antiproduct is that the first one performs operations on full dimensions, and the other one performs exactly the same operations on empty dimensions. With regard to the degenerate metric, anything containing a full w-dimension (corresponding to e4 in my work) squares to zero under the geometric product, and anything containing an empty w-dimension squares to zero under the geometric antiproduct.
Since the two approaches (the SIGGRAPH approach and my approach) are both valid and produce the same mathematics, I prefer to stick with the approach that keeps points = 4D vectors, lines = 4D bivectors, and planes = 4D trivectors because we're simply adding one projective dimension to everything. This is an extension of the concept of homogeneous coordinates that has long been established in computer graphics. Here, the dimensionality of a projective geometric object corresponds directly to the grade of the associated element in the algebra, which counts the number of full dimensions. In the SIGGRAPH approach, the dimensionality of a projective geometric object corresponds to the grade subtracted from four, which counts the number of empty dimensions. It's a mirror image. Like I said earlier, the universe doesn't care which approach you use, and to claim that one is a more natural choice than the other is erroneous. The only thing we can do is choose one to be the agreed-upon convention and stick to it in the same sense that everybody agrees to use the right-hand rule for cross products instead of an equally valid left-hand rule.
I'll be giving a talk about all of this at the GDC 2020 Math Summit on March 17.
Given GDC is postponed are you planning to wait out and see if it's successfully rescheduled or otherwise? I've been on a bit of a GA binge recently and am especially curious what arguments might be presented for adoption in the context of game development.
For those interested - In a few weeks, 26-27-28 February, there is a (free) workshop featuring talks and workshops from Leo Dorst, Anthony Lasenby, Charles Gunn, Steven De Keninck (the lecturer from this vid - disclaimer - thats me), Vincent Nozick, Dietmar Hldenbrand, Hugo Hadfield and Eric Wieser.
They'll be talking about their research on applications of GA in robotics, AI, CS, physics, graphics.
Near the end of your Siggraph 2019 talk (excellent, thanks), an audience member mentions an IEEE Spectrum article "Geometric Algebra for Electrical and Electronic Engineers". What is the author's surname that you mention?
Peter Yolks? Jolts? Holt? Oates?
For me, multiple searches have yielded no results for a similar author name so far.
Specifically, there does not appear to be any such article on IEEE Spectrum [1], but there is one on Proceedings of the IEEE [2] whose listed authors do not include anyone named Peter.
Curious because you go on to state that his work is readily available. That caught my attention, so I became interesting in finding out more.
This video is the best thing I watched in the past few years. Last time I loved something that much was Geoffrey Hintons course about deep learning back in 2015.
It is eye opening, just like in the beginning of mainstream deep learning, it made me wonder “why didn’t we discover this before?” It elegantly solves so many annoyances about geometry, maths and physics.
I’ve been evangelizing Geometric Algebra like crazy since I found this video, including in hacker news comments.
Agreed. Besides Geometric Algebra, dual numbers also play a huge role in automatic differentiation -- the core building block of modern machine learning frameworks.
I really like the analogy in this talk about how Al-Khwarizmi's six quadratic equations simplify to just one, once we learn about negative numbers and zero.
In a lot of ways, geometric algebra (and dual numbers) are our discovery of "negative numbers and zero", but for the 21st century.
In the video they present it as an algebraic framework where you can "add" to a number system elements x such that x^2 = -1, x^2 = 0, or x^2 = 1. Adding the element x^2 = -1 to the real numbers gives you the complex numbers, with x = i. Adding the element x^2 = 0 to the real numbers gives you the dual numbers with x = epsilon, which is what can be used for automatic differentiation. The case of x^2 = 1 is more complicated.
Newer ML frameworks do source to source transformations, which allows calculating the derivative without changing the function signature, but the concepts used remain the same.
Does this solve the problem of consistency in computational geometry? I.e. point lies inside a polygon, but due to rounding errors, the point seems to lie outside the polygon, which might trigger e.g. a program crash.
This is one of the things that this talk touches upon. BAsically if you use GA you eliminate precision issues (at least until you render or otherwise materialise), various special cases, limitations and unnecessary complexity.
You mean dynamically setting rounding modes depending on what operation you're doing? How do you do this performantly while staring down the barrel of context switching, third party dependencies, programmers who are at least as dumb as I am...?
My general rule of thumb is that if your code might fail if someone swaps out IEEE 754 floating point semantics for some other representation that's at most as goofy as IEEE 754, your code is probably wrong.
Context switching preserves fpu modes. You set these inside inner loops where you aren’t calling out to third party dependencies. Good libraries make this easy to work with.
This is exactly how IEEE 754 was designed to work, and is what all the major numerical libraries do.
1. The 2D and 3D cheat sheets are here: https://bivector.net/doc.html
2. The talk is also available in "paper form" on the arXiv: https://arxiv.org/abs/1901.05873
3. Ganja.js repo https://github.com/enkimute/ganja.js and the associated demos in the Ganja coffee shop https://enkimute.github.io/ganja.js/examples/coffeeshop.html
____
For more background about the concepts like quaternions, projective geometry, and exterior algebra, etc. that are all united in PGA, you can check this nice book by Jean Gallier and Jocelyn Quaintance: https://www.cis.upenn.edu/~jean/gbooks/geomath.html direct link https://www.cis.upenn.edu/~jean/math-deep.pdf I haven't read, but sampled it on several topics and found the explanations to be very good.
(edit) first-added links specific to PGA, and typo fix s/external/exterior/