[HN Gopher] Geometric Algebra
       ___________________________________________________________________
        
       Geometric Algebra
        
       Author : agnishom
       Score  : 180 points
       Date   : 2025-02-26 23:54 UTC (23 hours ago)
        
 (HTM) web link (bivector.net)
 (TXT) w3m dump (bivector.net)
        
       | TheCleric wrote:
       | I don't know what it is but that site jumps around constantly on
       | my phone. Can't read it because none of the text sits still.
        
         | Jtsummers wrote:
         | It's their bouncing "Join us on Discord!" text. At its smaller
         | font size it fits on one line, and then it increases to the
         | larger size and spans two lines. This causes everything to
         | shift up and down. It's a poorly thought out idea.
        
         | ludwigschubert wrote:
         | Are you also on a mini? ;-) Just because I really like
         | bivector.net, despite its questionable web design choices:
         | zooming out one level should make it so the animated "join our
         | discord" no longer causes reflows. This should be fixed, but as
         | a workaround until then for those of us on slimmer viewports...
        
         | simojo wrote:
         | The "Join us on Discord!" banner changes size periodically and
         | bumps the content down each time. Zooming out keeps it from
         | happening, if your eyes can take it ;)
        
         | spartanatreyu wrote:
         | Just block the "join us on Discord" banner with your adblocker.
         | 
         | Super easy on android with Firefox and uBlock Origin.
         | 
         | 1. Load page
         | 
         | 2. Tap firefox's menu icon
         | 
         | 3. Tap Extensions
         | 
         | 4. Tap uBlock Origin
         | 
         | 5. Tap "Enter element picker mode"
         | 
         | 6. Tap the annoying moving text
         | 
         | 7. In the element picker, select the correct layer (you don't
         | want to delete the background image behind the moving text, you
         | want to delete the moving text so tap through the layers until
         | you get the right one. For this website you want "###disc"
         | rather than the default "||bivector.net/images/banner.jpg").
         | 
         | 8. Tap Create
         | 
         | You now have a custom filter for that website that removes that
         | annoying element from appearing.
         | 
         | You now also have the knowledge to remove anything from any
         | website on your phone.
        
         | colinthompson wrote:
         | If you rotate your phone and view in landscape mode the problem
         | goes away, on iPhone at least. Not ideal but at least it's
         | something.
        
         | enkimute wrote:
         | fixed it. mea culpa.
        
       | koolala wrote:
       | This link doesn't really explain anything directly.
        
         | phrotoma wrote:
         | Really needs an about page. WTF am I looking at?
        
       | Qem wrote:
       | Did Cixin Liu (Three Body Problem author) took Geometric Algebra
       | as inspiration for some elements in his trilogy? There's
       | reminiscent terminology in the story, like weapons names (dual
       | vector foil).
        
         | wizviper wrote:
         | A dual vector is just a linear-algebraic concept, no need for
         | GA.
        
           | at_compile_time wrote:
           | It's also a bivector in 3D GA, no need for linear algebra.
        
       | WillAdams wrote:
       | In addition to this, there is the book, <i>Projective Geometric
       | Algebra</i>:
       | 
       | http://projectivegeometricalgebra.org/
       | 
       | and for a more grounded approach, the book series from Make:
       | 
       | - Geometry: https://www.goodreads.com/book/show/58059196-make
       | 
       | - Trigonometry:
       | https://www.goodreads.com/book/show/123127774-make
       | 
       | - Calculus: https://www.goodreads.com/book/show/61739368-make
        
       | vivzkestrel wrote:
       | I am sorry if I dont understand. What is this link about?
       | Courses, video tutorials? articles? I understand it has something
       | to do with geometric algebra and that is about it. Can someone
       | shed some light with all the visualizations on the home page?
        
         | Kaijo wrote:
         | The third video in the "Featured Introductions" section near
         | the top of the page, called "A Swift Introduction to Geometric
         | Algebra", is a very good starting point.
        
       | tonyarkles wrote:
       | I recently had a bit of an epiphany around GA the other day (and
       | Dual numbers, and Screw Theory with Twists and Wrenches): I
       | realized that I had it all backwards. I'd seen GA as an
       | alternative formulation for projective geometry and for Maxwell's
       | equations, Dual Numbers for auto-differentiation, and Screw
       | Theory for rigid-body dynamics; the question that had always
       | bothered me was "how in the hell did they manage to take these
       | engineering problems and derive these crazy linear algebra
       | theories to solve them?"
       | 
       | The realization was that it went the other way around! Clifford
       | Algebras are an interesting linear algebra formulation. As it
       | turns out, by appropriately defining the e^2=0, e^2=1, and e^2=-1
       | axes of the general Clifford Algebra framework, a bunch of these
       | engineering problems _map_ into the algebra and then adopt a
       | super compact notation for solving them.
        
         | leumassuehtam wrote:
         | I like to think of an algebra the same as a language. You want
         | to define and constrain your language such that you can
         | describe elements of your universe is clear and consice.
         | 
         | For example, if I am trying to describe a art piece in the
         | museum, I need concepts and words that connect what I am seeing
         | to reality. In the same way in electromagnetism, proper time is
         | part of the reality and it is an experimental fact, so it must
         | be included in the algebra. Another example is a functional
         | programming language where you identify high-level functions as
         | the building concepts of many computer science problems.
         | 
         | Defining an algebra tailored for the problem you're working
         | with actually highly constrain the space, and this is what
         | makes many problems trivial.
        
         | Sharlin wrote:
         | As it usually goes. See also Wigner's classic essay "The
         | Unreasonable Effectiveness of Mathematics in the Natural
         | Sciences".
         | 
         | https://en.wikipedia.org/wiki/The_Unreasonable_Effectiveness...
        
       | matthberg wrote:
       | Bivectors and higher show up a lot in the math of 4D+ geometry,
       | too. There's a fascinating SIGRAPH 2020 talk [0] (with a paper
       | [1]) by the maker of 4D Toys [2] and Miegakure (a 4D game in the
       | works, [3]) explaining 4D geometry collision physics (with a good
       | bivector intro in addition to the collision math). It's a great
       | read and/or watch that smoothly covers everything from building
       | basic intuitions to the gritty technical math of extending
       | standard physics models to N-D spaces.
       | 
       | [0]: Bivector section timestamp:
       | https://www.youtube.com/watch?v=JpxZQxXxMWY&t=479s
       | 
       | [1]: https://marctenbosch.com/ndphysics/
       | 
       | [1]: PDF: https://marctenbosch.com/ndphysics/NDrigidbody.pdf
       | 
       | [2]: https://4dtoys.com/
       | 
       | [3]: https://miegakure.com/
        
       | barrenko wrote:
       | Would this be useful for e.g. modelling terrains, or is used in
       | something like GIS?
        
         | meindnoch wrote:
         | No.
        
         | aeonik wrote:
         | I think it could be, but there is a lack of good prediction
         | libraries that support accelerated versions of the GA types.
        
       | howling wrote:
       | An article that argues against GA:
       | https://alexkritchevsky.com/2024/02/28/geometric-algebra.htm...
       | 
       | TLDR:
       | 
       | - GA tends to attract a lot of crackpot. In fact most
       | mathematicians avoid the name Geoemtric algebra and call it
       | Clifford algebra to disassociate with them.
       | 
       | - Most of the usefulness of GA comes from just exterior algebra
       | and exterior product/wedge product is more important than
       | geometric product.
       | 
       | - It shows up in spinor field in physics but this does not
       | concern most people that do not work in quantum physics.
       | 
       | My rudimentary view towards GA:
       | 
       | - It is useful in game physics since rotors can represent
       | n-dimensional rotation in 2^{n-1} numbers instead of n^2 numbers
       | as 2^{n-1} < n^2 when n <= 6. You can use PGA if you want to add
       | translation as well. It is also better in interpolation.
       | 
       | - Outside of this you should just probably just learn exterior
       | algebra instead.
        
         | rhelz wrote:
         | // tends to attract a lot of crackpot. //
         | 
         | Come on. You know what else attracted a lot of crackpots? The
         | internet. If you are criticizing math, criticize the math, not
         | the people.
         | 
         | // just learn exterior algebra instead of//
         | 
         | YMMV, but I like to know where the mathematical concepts came
         | from. GA gives a nice origin story, see below:
         | 
         | // Most of the usefulness of GA comes from just exterior
         | algebra //
         | 
         | Dot products come from the geometric product. If e1 & e2 are
         | two basis vectors such that e1*e1 = 1, and e1 _e2 = -e2*e1,
         | then if you multiply two vectors:
         | 
         | (a1*e1 + a2*e2)(b1*e1 + b2*e2) =
         | 
         | a1*b1*e1*e1 + a1_\b2*e1*e2 a2*b1*e2*e1+ a2*b2*e2*e2 =
         | 
         | a1*b1 + a2*b2 + (a1*b2 - b2*a1)*e1*e2 =
         | 
         | (a . b) + (a ^ b)
         | 
         | The first is the dot product. The second is the exterior
         | product that everybody agrees is so useful. Now you know where
         | both concepts came from. They are just from multiplying
         | polynomials. The geometric product is a *a product*, it's the
         | product of two polynomials.
         | 
         | Yes, sometimes you just need the dot product, and sometimes you
         | just need the exterior product. If you are coding, or giving
         | the final form of some formula, you don't have to always put
         | both of them in your code or paper. But neither the dot product
         | nor the wedge product are investable by themselves. Having an
         | investable product on vectors is endlessly useful while you are
         | *deriving* the formulas.*
        
           | howling wrote:
           | > Yes, sometimes you just need the dot product, and sometimes
           | you just need the exterior product. If you are coding, or
           | giving the final form of some formula, you don't have to
           | always put both of them in your code or paper.
           | 
           | In my experience 99% of the time you just want the dot
           | product or the exterior product. Even when you want both it
           | is rare that you want to combine them linearly except in some
           | niche physics/mathematics.
           | 
           | > But neither the dot product nor the wedge product are
           | investable by themselves. Having an investable product on
           | vectors is endlessly useful while you are _deriving_ the
           | formulas.
           | 
           | Do you mean invertible? Why is invertibility is so useful?
        
             | wvlia5 wrote:
             | Yes, invertible like if you have a.x=b, then you can find
             | x=b/a if . is the geometric product.
             | 
             | Why? Well, solving equations sounds somewhat useful, right?
        
               | howling wrote:
               | First of all it is only invertible for _some_ non-zero
               | elements, especially if `a` is a linear combination of
               | multivectors or we work in PGA that explicitly adds a
               | basis vector of norm 0. Yes sometimes it is useful but
               | that doesn 't automatically makes it more fundamental
               | than the inner product and exterior product.
        
               | at_compile_time wrote:
               | You make it sound as though multivectors being invertible
               | is a special case, when the opposite is true. In 2D and
               | 3D GA, every non-zero k-vector and versor has an inverse.
               | In PGA, every non-zero, non-ideal plane, line, and point,
               | and versor has an inverse. The inverse is used all the
               | damn time when composing and applying transformations and
               | performing projections and rejections.
               | 
               | As to which is more fundamental, I don't think it
               | matters. You could argue that the dot and exterior
               | products are more fundamental because the geometric
               | product is their sum (for vectors). You could also argue
               | that the geometric product is more fundamental because it
               | is simply the Cartesian product of two multivectors, and
               | you derive the dot, exterior and commutator products by
               | filtering that product by grade. Both definitions are
               | true, and "fundamental" is both a matter of perspective
               | and irrelevant to any practical concern.
        
               | howling wrote:
               | > In 2D and 3D GA, every non-zero k-vector and versor has
               | an inverse.
               | 
               | Of course by definition every versor has an inverse. The
               | invertibility of k-vector gets hairier for higher
               | dimensions though. Even in 3D GA, some mixed-grade
               | elements are not invertible.
               | 
               | > As to which is more fundamental, I don't think it
               | matters.
               | 
               | It doesn't matter mathematically but it matters
               | pedagogically. GA enthusiasts seem to advocate teaching
               | GA to anyone that has learnt linear algebra. I believe it
               | is more appropriate to stick to teaching tensor algebra
               | and its quotient exterior algebra. Then it is up to you
               | to learn Clifford algebra as a generalization of exterior
               | algebra; especially if you are a game dev, a physicist,
               | or a topological K-theorist.
        
               | aap_ wrote:
               | I'm curious about your perspective on exterior algebra.
               | So far I've mostly seen it as a special case of GA so my
               | view is probably GA-tinted. I'm just curious how you even
               | do any sort of transformations since the exterior product
               | doesn't allow these sorts of things. It seems like it
               | only gives you the "things" in your algebra with few ways
               | to do anything with them. You seem to agree with the
               | author of the article you linked to in that the most
               | useful aspects of GA come from EA. I find this very hard
               | to see, so maybe you can shed some light on it? E.g. how
               | do you rotate a bivector in EA?
        
         | adornKey wrote:
         | Interesting article.
         | 
         | I have been telling people for more than a decade now to use
         | the exterior product (and e.g. get rid of the clutter of
         | strange Minus-Signs and div, grad and rot in Electrodynamics).
         | 
         | And I was really happy to see that people finally start doing
         | that.
         | 
         | But when I saw the Geometric Product, it didn't look like
         | anything I want. If someone says that it looks like a thing
         | that the cat brought in, I'll think about it and will probably
         | agree.
        
         | aap_ wrote:
         | The article reads more like a trolling attempt.
         | Geometric/Clifford algebra is incredibly useful and by throwing
         | away its product you lose a lot of the power of the algebra.
         | It's like saying matrix multiplication is not useful and you
         | really want to be multiplying and adding numbers in various
         | ways. After all GA/CA elements can always be mapped to elements
         | of a matrix algebra. To get rid of the idea of linear
         | transformations and that they should compose just doesn't sound
         | well thought through.
         | 
         | I don't know what sort of crackpots he's talking about,
         | personally i haven't heard of them, only the accusations. If
         | the author can't separate the math from the people who
         | developed and/or popularized it, too bad. Does GA magically
         | give intuitive explanations for all sorts of weird things? no.
         | Can you formulate a lot of stuff much more efficiently and
         | concisely, and does it help gain new perspective on some
         | things? yes, absolutely. It provides a wonderful framework for
         | expressing geometric ideas.
        
           | howling wrote:
           | > Can you formulate a lot of stuff much more efficiently and
           | concisely, and does it help gain new perspective on some
           | things? yes, absolutely. It provides a wonderful framework
           | for expressing geometric ideas.
           | 
           | Can you elaborate on what stuff does it help to formulate
           | much more efficiently and concisely?
        
             | aap_ wrote:
             | I think one of the coolest examples is probably classical
             | mechanics. See the SIBGRAPI 2021 videos on
             | https://bivector.net/doc.html
        
               | howling wrote:
               | All of these stuff can be done in normal linear algebra.
               | Some (not all) of the operations can be done more
               | efficiently with GA in low dimensions. It is neither more
               | concise nor more intuitive to understand than normal
               | linear algebra.
        
           | dist-epoch wrote:
           | > As for pure math--it seems like research mathematics
           | readily talks about and uses Clifford Algebra, but is
           | uninterested in or specificaly avoids the terms and concepts
           | that are specific to Hestenes' "Geometric Algebra". I can
           | speculate as to why: even by the 90s/00s, GA had gotten a bad
           | reputation because of its tendency to attract bad
           | mathematicians and full-on crackpots.
           | 
           | https://alexkritchevsky.com/2024/02/28/geometric-
           | algebra.htm...
        
             | aap_ wrote:
             | No example of such a crackpot is given. The author just
             | claims this without evidence. I've heard this sort of
             | argument before but it's not very clear what it refers to.
        
         | hamish_todd wrote:
         | I did two streams where I went through this article and
         | explained the many places it is wrong. The second part of the
         | article has more maths in it, so most of the content is there,
         | you can watch it here: https://www.twitch.tv/videos/2282548167
         | 
         | (it's very long so I plan to edit the two streams into a
         | digestible 10-15m or something. His fault not mine I'd say!)
         | 
         | Probably other commenters have already said, but the biggest
         | giveaway is how he says we should move away from quaternions,
         | and then demonstrates little to no awareness of why quaternions
         | are used in engineering (vital in gamedev for example, your
         | animations will look awful without quaternions). Yes,
         | quaternions are hard if you are completely married to the idea
         | that everything in geometry is ""vectors"". But the games
         | industry put on its big-boy pants and learned to use them -
         | they wouldn't do that if the things weren't useful for
         | something, so it's bit silly to write an article like this if
         | you haven't figured out why that happened.
        
           | howling wrote:
           | > but the biggest giveaway is how he says we should move away
           | from quaternions
           | 
           | I'm sorry I must have missed that part. Can you point me to
           | where did he say this?
        
             | hamish_todd wrote:
             | The second paragraph of the conclusion: "Nor should we be
             | trying to make everything look more like complex numbers
             | and quaternions. Those are already weird and confusing; we
             | should be moving away from them!"
             | 
             | It's also implicit in the thing he says throughout:
             | "bivectors and trivectors are good, but there's no reason
             | to add a scalar to a bivector or a trivector to a 1-vector,
             | nor is there a reason to multiply such objects". A
             | quaternion is a scalar and a bivector added together!
        
               | howling wrote:
               | You have to read the first paragraph as well.
               | 
               | > I have given a lot of reasons why I think GA is
               | problematic: the Geometric Product is a bad operation for
               | most purposes. It really implements operator composition
               | and is not a very fundamental or intuitive thing. Using a
               | Clifford Algebra to implement geometry is an
               | implementation detail, appropriate for some problems but
               | not for general understandings of vector algebra and all
               | of geometry. Giving it first-class status and then
               | bizarrely acting like that is not weird is weird and
               | alienating to people who can see through this trick.
               | 
               | If I understand him correctly, he means Clifford algebra
               | is "appropriate for some problems" but we should "move
               | away" from "giving it first-class status" as it is not
               | more fundamental and often does not help students
               | understand geometry better. I also readily admitted that
               | it has some use cases in game physics in my comment.
        
               | ajkjk wrote:
               | Hi I wrote that article and I would say that I am
               | extremely aware of how quaternions are used in
               | engineering.
               | 
               | My stance on quaternions is that they are an opaque
               | representation of what they are trying to do, which makes
               | them unnecessarily-difficult and annoying. Not to mention
               | hard to learn to visualize. But GA isn't much less opaque
               | either. The "actual" representation which I find to be
               | most agreeable is the stuff I mentioned about viewing
               | them as operators. Given a bivector B which describes a
               | rotation, you can treat it as an operator on vectors via
               | contraction R(v) = B[?]v. Then exponentiating e^(Rth)(v)
               | (either the one-sided rotations or two-sided rotors)
               | gives the same rotation formalism as quaternions and GA,
               | but without any of the weird unpedagogical stuff. The
               | notion of an exponential map and exponentiating
               | generators is, IMO, much more "natural" and intuitively
               | straightforward than the alternatives. Perhaps I should
               | update the article to make this more clear.
               | 
               | What irritates me about GA---well, one of the things---is
               | that it treats bivectors/trivectors as _both_ geometric
               | primitives (oriented areas) and operators (rotations,
               | say), and totally conflates the two and never explains to
               | the student how to detach the two notions from each other
               | (and I doubt most of the writers on the subject even
               | know). IMO it is best viewed as a version of
               | representation theory: rotations are operators which
               | _happen to have_ representations on bivectors of the EA;
               | not all operators will have that property, and then you
               | will want other algebraic structures to do algebra with
               | them, if that 's a case you're considering.
        
               | hamish_todd wrote:
               | A quaternion is some amount of identity averaged with
               | some amount of line reflection. You can visualize the
               | line reflection as a pair of planar reflections at 90
               | degrees to each other. You can visualize the identity as
               | a pair of planar reflections that are the same. Averaging
               | the two of those will give you a pair of planar
               | reflections that are some angle apart.
               | 
               | You're correct that you can construct a quaternion with
               | the exponential map - but the most common way to make a
               | quaternion is with a pair of vectors. Every game engine
               | will have that function. GA will tell you how that
               | function works - the vectors are planar reflections, you
               | compose those to get a rotation by twice the angle, and
               | you add (average with) the identity rotation to get a
               | rotation by the precise angle.
               | 
               | > how to detach the two notions from each other
               | 
               | Can you say why would you want to do that? A plane always
               | defines a planar reflection, a point always defines a
               | point reflection, a line always defines a line reflection
               | (assuming we're in euclidean space, which engineering
               | is). To me this doesn't seem to be "happen to have"
               | territory, this seems fundamental.
        
               | at_compile_time wrote:
               | >unpedagogical
               | 
               | Does this word mean "not the way things mathematicians
               | teach things"? My experience has been that mathematicians
               | teach things that are useful to mathematicians to
               | students who are not going to be mathematicians and would
               | be better served learning other things. I wasted
               | countless hours of my life finding analytical solutions
               | to toy calculus problems in a universe that will never
               | yield to those methods.
               | 
               | >My stance on quaternions is that they are an opaque
               | representation of what they are trying to do, which makes
               | them unnecessarily-difficult and annoying. Not to mention
               | hard to learn to visualize.
               | 
               | I've seen some remarkably confusing attempts to
               | understand and visualize these things. This has always
               | baffled me because the equivalent objects in geometric
               | algebra aren't that hard to understand. I really think
               | this is a problem with your pedagogy. You've hidden the
               | geometric meaning of the bivector components in these
               | imaginary components, i,j,k, and you have to take it on
               | faith that i*j=k and instead of it being just the product
               | of two bivector blades.
               | 
               | >The notion of an exponential map and exponentiating
               | generators is, IMO, much more "natural" and intuitively
               | straightforward than the alternatives.
               | 
               | That's because you learned it that way. Exponentiating an
               | oriented area to generate a rotation is perfectly
               | intuitive to me, and I'm not sure how somebody could be
               | confused by the fact that a bivector can be an oriented
               | area or the logarithm of a rotation because it's a simple
               | matter of context.
        
           | asplake wrote:
           | A quaternion is just an even subalgebra of the Clifford
           | algebra Cl3,0(R), what's the problem?
        
         | buescher wrote:
         | Without reading either article - yet - I can tell you
         | "crackpot" can mean a lot of things, and one of them that is
         | relevant to this context is "an academic that's more interested
         | in ideas than in being a good research bureaucrat".
        
       | nxobject wrote:
       | As an aside, I'm getting lots of stuttering when scrolling the
       | website on a variable-refresh rate monitor + an M1 laptop. This
       | is a static-content website - a profiling tells me consent SVG
       | animation and their ganja.gs [1] math library accounts for this.
       | Not a good sign for the engineering applications of this
       | theory...
       | 
       | https://github.com/enkimute/ganja.js
        
         | redeux wrote:
         | The site is also unusable on iPhone. The page keeps jumping up
         | and down due to the same janky animation.
        
         | johnnyjeans wrote:
         | works fine on firefox on a 10 year old thinkpad. considering
         | someone is also reporting issues on iphone, might want to file
         | a bug report with apple.
        
         | itishappy wrote:
         | Ganja.js is an amazingly general GA library. The problem with
         | GA in general is that it uses a LOT of numbers. (3DPGA uses 4d
         | multivectors with 16 numbers for every object, so dyadic
         | operations can involve up to 16^2 elementary operations,
         | similar to a matmul!) For most practical applications many of
         | them cancel out and can be optimized away. I don't believe
         | ganja.js does this, but there are algebra generators on the
         | site that produce optimized code. I'm not sure why they chose
         | the general library for their landing page instead of baking
         | the animations, but the fact that it runs as performantly as it
         | does is actually quite impressive to me!
         | 
         | For a glimpse at the power of ganja.js, check out the
         | coffeeshop examples:
         | 
         | https://enkimute.github.io/ganja.js/examples/coffeeshop.html
        
       ___________________________________________________________________
       (page generated 2025-02-27 23:02 UTC)