[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)