> GA had gotten a bad reputation because of its tendency to attract bad mathematicians and full-on crackpots. Hestenes honestly sounds like one a lot of the time, and I’m not really sure whether he is or isn’t. It makes sense, really.
> GA ended up appealing to a lot of fringes: people who only had undergraduate degrees, people who had dropped out of PhDs, people with PhDs from unrigorous programs, people who had been good at math but were perhaps going a bit senile, random passerbies from engineering or computer programming, run-of-the-mill circle-squarers, people who had a bone to pick with establishment mathematics and felt like all dissenting views were being unfairly suppressed
> It didn’t help that a lot of the texts by the actually-competent GA people, like the Cambridge group, tended to say things that sounded and still sound kind of crackpotty as well.
After reading the article, the main "case against geometric algebra" I could find in there was that the author does not like the people using/doing research in geometric algebra, such as the ostensibly failed academics from a Cambridge research group [1] which the article links to.
I was expecting in the "An Actual Case Against GA" section that the author would demonstrate something like "Geometric Product actually does not work if you apply it to xyz domain". Rather, the section just ended up being mostly about the type of bikeshedding you see about naming of variables in programming.
There is I guess merit to the core "there is no good general interpretation or usage for the geometric product or mixed-grade multivectors" thesis of the article but calling other academics crackpots really subtracts from that message.
Those paragraphs are in the background section, clearly labeled as "this is what other people think", and are followed with a high effort explanation of (presumably) the substance of the theory and why the author considers some of their ideas to be good and others to just increase the confusion.
The technical arguments are less like variable naming discussions and more like arguments against teaching logic circuit design with only nand (without naming the and/or/not operators) or using untyped lamba calculus (with Church numerals, e.g. `3 := λf.λx.f (f (f x))`) to do calculations on numbers.
At the least, the five bolded statements summarizing 5 of the 7 highly technical arguments should count as substantial claims.
Of course, having learned of the subject only from the author, it's hard to know whether it's a good representation of GA or a strawman, but the theory that he teaches as GA indeed seems quite flawed as a tool for thought.
* Physical sciences also have a lot of diversity, but at least you can go to their labs and see their equipment, reagents, data, etc cetera.
especially the part about duals -- made me feel like I was going crazy when I was trying to figure out degenerate metrics: every source deals with it in a slightly different (often sloppy) way; you're sure it all must be possible to resolve and get something beautiful and consistent, but not while you're trying to apply it to a specific problem you need to solve
TRANSFORM COMPOSITION!
(sorry, it's not your fault or even his that you didn't know this - GA textbooks should have it as the first thing they teach but they don't)
(I meant to do this followup soon after the first article but I've been been having a lot of difficulty focusing / constant brain fog for the past few years so it's been on the to-do list instead; part of the problem is that to do it right I need to go read and digest everyone's different treatises / expositions on GA ... and that has felt taxing, to say the least.)
> in some cases
What cases do you have in mind?
> why are these your operators in the first place?
This is a perfectly reasonable question but I want to point out that it's a bit philosophical and not the kind of thing physics undergrads tend to enjoy hearing about. For example Clifford algebras like matrix algebras are associative algebras over commutative fields (real or complex numbers) - why? Why does the universe like that? I can hazard guesses but it's mostly above my paygrade, possibly above anyone's paygrade. But if it's to be asked of GA it should be asked of matrices too, I'm sure you can agree.
There's something that distinguishes Clifford algebras from matrix algebras. They start from the assumption that vectors anticommute when they're orthogonal. That's easy to explain. It says that if A and B are orthogonal vectors then A->B is the opposite (negation) of B->A.
Aside from those the last thing is that you say your basis vectors have a certain "metric" on them. There's deep philosophical questions about why the universe cares so much about metrics, but they're not at all specific to Clifford Algebra.
Personally I find that very intuitive, much more intuitive than any other tensor algebra I'm aware of.
The start of the article makes a specific technical claims:
> Hestenes’ Geometric Product is not a very good operation and we should not be rewriting all of geometry in terms of it
Later he explains why:
> there is no good general interpretation or usage for the geometric product or mixed-grade multivectors
AFAIK nobody is proposing to replace all of geometry with GA, only 3+1 spacetime.
(Apologies to folks who have seen me repeat this a million times; but it's very important folks be aware of it)
Mathematics is a social activity. The research cultures of different branches matter.
I guess the people pushing this are a little pushy, but this reminds me of the whole pie fight over the Rust community. OK, so they're pushy. Nothing to do with the merits or demerits of the language (or of C for that matter).
If you're a baby duck about linear algebra and geometry, there's no need to care about different formalisms. Do whatever works. But it's interesting to see how all of this stuff comes together at different levels, whether it's the geometric product, differential forms, or just linear algebra.
While it's neat to write them all as one equation, I disagree that it's an enlightening perspective to learn. While it seems like writing Maxwell's equations in one equation instead of two is a step forward with even more symmetry, what is actually going on is that you are obscuring the most important part of Maxwell's equations: the gauge structure. Without this, it actually becomes much more hidden just how geometric electromagnetism is.
When you write Maxwell's equations as the pair `dF = 0`, `d*F = J`, the first of those two equations is exactly what tells you that this is a gauge theory, and thus may write `F = dA` where `A` is a vector potential. This vector potential then becomes the connection which defines a covariant derivative in a fibre bundle, and one then sees that charged particles follow geodesics now in spacetime, but in an enclosing fibre bundle. This is foundationally important to modern physics, and IMO obscured by writing Maxwell's equations as `∇F = J`
____
n.b. I'm not a particularly big fan of differential forms either, I think it leaves a lot to be desired, and it's super awkward to constantly have to pull out Hodge Duals every time you want to do something that involves the metric, but I'm also unconvinced that geometric algebra is the answer here.
If I were in the GA Marketing Committee I'd publish a paper with suitably hand-picked worked examples where the vector approach is long and tedious, and GA version is short and sweet.
Without it, I think it'd be of significantly less mathematical interest because it'd lose almost all of its geometric properties.
Same with programming languages. Some people are like RUST RUST RUST and some are like C C C! I'm like, you guys only use one language?
Whenever I look at GA, I try to figure out where the metric comes in, and I just don't see it.
For context, way back when I did astro theory and wanted to do things like figure out things like the magnetic field structure in the curved spacetime near highly-magnetized rotating conducting spheres, and then do some basic plasma physics in that environment.
The differential geometry approach at least gives the structure to think about that, then you can go down to the index-style notation to actually get the differential equations you need to solve. The GA approach, I'm not even sure how to frame the problem.
I don't know, I recently tried to work out how the metric on vectors/1-forms induces a metric on higher-degree forms, and if the geometric product magically gives this for free I'd say it's a win (same for the Hodge star).
On the other hand, there's the k-th exterior power of the metric where one asks that wedge/interior products be adjoint in order to extend the metric to higher-degree forms.
I was under the impression that these metrics are the same, but maybe I'm completely wrong? Assuming I'm not, then the GA approach seems more natural to me.
Just as an example, suppose you have two multivectors (abc) and (xyz) with all the vectors orthogonal (for simplicity). The geometric product
(abc)(xyz)
has its scalar part created by
(abc)(xyz) = (ab) (c.x) (yz) = (c.x) (ab) (yz) = (c.x) a (b.y) (z) = (c.x) (b.y) (a) (z) = (a.z) (b.y) (c.x)
You can see how the dot product (which uses the metric internally) is being applied "in-to-out" : the adjacent terms are dotted, at which point they become commuting scalars; then the next terms, etc. Which, frankly, is dumb. This is why the GA version of a scalar product has the "reverse" operation involved... because the GP is doing this in-to-out thing, the scalar product has to undo it by defining (abc) . (xyz) = (abc) (xyz)^~ = (abc) (zyx) = (a.x) (b.y) (c.z), with ^~ meaning reverse.
Whereas the standard exterior algebra inner product is always left-to-right, giving
(abc).(xyz) = (a.x) (b.y) (c.z)
IMO the GA version is a mess because it's conflating two concepts. When the GP works, it is composing operators, so AB = A ∘ B. But the inner product, at its core, is more like division---it wants to have (a).(a) = 1, since its job is to say say "how many copies of (a) are there in (a)?" To make this work for multivectors (ab).(ab), it needs to be left-to-right. GA does in-to-out to copy quaternions with their i^2 = -1, but that's not necessary -- i^2 = -1 follows from the fact that for a rotation, R ∘ R = -I, so it is composing two rotations, not measuring one in terms of the other. Really i^2 = -1 should not be interpreted as a dot product at all. This is very clear when a metric is involved: R_xy ∘ R_xy = -I is a degree-two tensor which transforms with two factors of the metric, whereas (xy).(xy) = 1 is a degree-zero tensor, a coordinate-invariant scalar. They are just different operations, which happen to overlap in simple cases.
i'd add it's quite nice in string theories for RR fields and coupling to D-branes, where writing 10 anti-symmetrized indices quickly gets annoying.. and topological field theories..
However, from the perspective of Yang-Mills theory, that's rather questionable as you're stitching together the Bianchi identity and the Yang-Mills equation for no particular reason.
As opposed to the weird GA form it actually makes the physically most meaningful symmetry (Lorentz transformations) explicit. That's why it's actually used in Physics.
Anti symmetric space time tensors are the absolute standard. Further formulations that reveal other aspects, dualities, symmetries are much more niche and specialized subjects and not how the subject should be taught when first encountering it.
https://en.wikipedia.org/wiki/Covariant_formulation_of_class...
"Standards" are things to be overcome when they've outlived their prime.
Disparaging new ideas as "niche" and "specialised" when their explicit aspiration is to be better foundations is motivated reasoning.
The geometric product on the other hand obscures much of the structure, and serves no pedagogical or fundamental purpose. Not everything that's new is better, just by virtue of being new.
You might have misunderstood my point about what's niche, or I misunderstood which formulation of Maxwell the post I was replying to was referring to. Either way, it feels this discussion went off the rails rather immediately...
For the record, MTW by now also shows it's age. When I was doing research in GR adjacent fields the experts were rather recommending Wald. Might have just been my bubble of course...
TFA denigrates papers and websites that are "non-theoretical" or "trivial". As a user of the formalisms, these kinds of materials are exactly what I need. I don't care about proofs or theoretically problematic corner cases that "real mathematics" seems to be almost exclusively interested in.
I did hit a wall quite soon with GA, and got a feel that it may indeed be overhyped, but at least the scene seems to be interested about applied use.
There seems to be similar debate about nonstandard calculus. For my modest use it has provided some tools that can give me results that I don't know how to get with epsilon-delta etc. I don't really care if I don't "really understand" it because the underlying proofs need some heavy machinery. I don't understand those for standard calculus either, and in applied use you either manipulate infinitesimals without any proper algebra, or just hope what you need is in some table.
I can't comment on deeper theoretical or philosophical questions about these, and I don't really care about them. But to me maths communication often seems analogous to making people learn turing machines and lambda calculus before they are allowed to program in Javascript.
I don't think the author necessarily disagrees with me much, but this is maybe a kinda mini rant from a perspective of someone who is just an "end user" of mathematics.
can you give an example of what's impossible/hard to do?
I can't really say if the problem was with me or GA. Probably more like GA didn't end up providing tools for my level of math skills to solve the problem. But neither did the the traditional branches.
That is a rather strange take for a software engineer.
When implementing something I do need to know what the corner cases are, whether the runtime can enter such a state. I need to think how to put in checks so that they cannot be reached, or alternatively, how to recover gracefully. That's my job after all, why would anyone pay me if I didn't.
Perhaps a topical example is a gimbal lock. I need to be aware that it can happen and I need to know how to prevent it.
E.g. whether or not Navier-Stokes can form singularities doesn't really change how you analyze fluid dynamics in engineering. This doesn't mean it is not a mathematically important question worth extensive study, but it's not relevant for practitioners.
I had the bad fortune of reviewing some GA research articles once upon a time. It was almost embarrassing. Everything of substance had been published in a conceptually cleaner bivector language previously. The only "contribution" was writing everything in terms of weirder, more convoluted concepts that contributed neither technical clarity nor conceptual parsimony.,
The formulation of EM with antisymmetric field tensors (which is the same thing as a bivector) is certainly very old and absolute standard in the physics curriculum. And I certainly was taught the definition in terms of wedge products that is also given here in undergrad:
https://en.wikipedia.org/wiki/Electromagnetic_tensor
(See the section: Relationship to the classic fields).
Not sure what you are looking for beyond that?
i used to use differential form for gauge theories, einstein-cartan gravitation and ramond-ramond fields.
also, in a paper, we used O(D,D) clifford algebras/spinors to represent differential forms, which worked quite well in our very specific case (appendix A)
https://arxiv.org/pdf/1304.1472
ps: i had colleagues that worked on GA for ML in robotics but wasn't really impressed by what it accomplished
This is not an issue when working with non-mixed-grade multivectors, for which dimensional analysis works just fine in the ordinary way. As the linked article notes, exterior algebra/the wedge product is great. Thinking about exterior powers of vector spaces is great. It's the further move of forcing everything into a Procrustean bed of Clifford algebra that is misguided for almost any application other than some spinor stuff.
Because the product of all Galois conjugates is a norm and the determinant of the linear operator defined by general field multiplication of a primitive element when viewing the field extension as a vector space of the extension field over the base field.
Although the geometric interpretation of norms in Galois theory really only works for the complex numbers because only the complex numbers are a field. Quaternions are not a field.
From a programmer's perspective, it seems like they're saying it's a flawed abstraction, while the GA stance is different. I'd like to hear the other side of the argument too. I'm sure HN will get a long GA comment thread, so from their standpoint, what would it feel like? I agree that merging objects and operators is problematic, but I'm curious what the GA camp would say
But if you think about it the other way around, since all programs are ultimately about data transformation, you could argue that UIs should essentially be drawn in SQL, but that would sound strange. That's because the tools we use have moved away from that mental model. (Though React's FRP premise does lean in that direction.)
And when I think about why languages split apart, it seems to me that it's because the word 'programming' covers so many different things at once. Languages end up diverging because they serve different purposes. In fact, as a programmer, I see programming languages as a collection of tools that essentially decide what to give up. C gives you safety and low-level hardware access through its ABI. Python gives you expressiveness. They exist because their target goals are fundamentally different.
In that sense, though I'm not an expert in this field, from my limited perspective this debate feels like it's just the noise that arises when Algebra tries to encompass too much and inevitably splits apart. I imagine these kinds of cases will only increase in the future. As things become more specialized, there will be more situations where existing frameworks don't fit, and new systems will be needed. Is there a term for this phenomenon? At that point, we might say we need to change the old system to fit the new one.
Personally, I wonder if there isn't a general purpose language at the bottom that models the entire world, with other languages layered on top of it.
> As I see it, GA is not so much a subject as an ideological position, consisting of basically two ideological claims about the world:
> Claim 1: That the concepts of EA (so, wedge products, multivectors, duality, contraction) are incredibly powerful and ought to be used everywhere, starting at a much lower level of math pedagogy—basically rewriting classical linear algebra and vector calculus.
I support this claim, so I suppose I’m a proponent of geometric algebra.
I think it’s more or less been carried out for vector calculus by Spivak’s “classical” Calculus on Manifolds, which is somewhat widely taught.
> Claim 2: That the Geometric Product (henceforth: GP) should be added to that list as the most fundamental operation, where by “fundamental” I mean that other operations should be constructed in terms of it, and theorems should be stated using it.
Like the author, I also believe this claim is nonsense.
“Rewriting classical linear algebra” is a honored pastime but it’s very difficult to make any headway doing it—the classical texts are classical for a reason, we more or less know how to teach them as an “80% solution” and it’s unclear that the investment in a new pedagogy would get us to an “81% solution.”
Especially with today’s undergrads. If you’re not churning arithmetic, they’re not into it.
The benefit is that multiplication and distributive property is a beauty in the '+' notation, no special rules need to be memorized for multiplying 2d vectors, i*i = -1 takes care of it.
On the other hand I never understood what the benefit, of writing the tuple of wedge and dot products in '+'notation, is.
Perhaps I am not being fair, that it is the same idea and I have not used it as much as I have used complex numbers.
Because of that, it just becomes so tempting to try and phrase everything you can in terms of this geometric product. I'm very sympathetic to the temptation, and I even think the geometric product has some great uses (it shows up a lot in some physics I do), and using it makes writing rotations a treat, but I think it's still vastly overemphasized by GA people.
I still don't really know what my favoured notation for differential geometry is, I find myself switching around so much.
Yep, me too. Maybe someday the HoTT folks will get around to formalizing it and standardizing the notation. /j
What makes you say that?
Certain kinds of perfect correctness are like pure and shining crystallised bits of refined knowledge created by the greatest wizards. "Parse, don't validate" or "Make invalid states unrepresentable." ought to be familiar to the better programmers here, the ones with decades of experience built on iterative, collaborative foundations with real consequences for error.
Theoretical physics doesn't have those same consequences, because there is no real punishment for their equivalent of "spaghetti code". Perversely, there's cachet to be gained for gaining understanding of its unnecessarily esoteric knowledge, much like how biologists and lawyers spend half a decade or more studying... Latin.[2]
Introducing Geometric Algebra to physics is like that wizard coder who sweeps away reams of spaghetti code and replaces it all with a call to a single standard library function. It's that "cheff's kiss" of cleanup. Meanwhile the juniors are screaming about how the senior "deleted all their hard work!"
Meanwhile, I never understood where Pauli and Dirac matrices came from! It's like they were pulled from fat air.
You've seen this in code, I bet. Some junior worked really hard on solving a problem and wrote a solid screen-filling wall of "a && b || c || !d && e && (f || g)..." continuing up to "ba, bc, bd", etc.. as they ran out single letters until they're well into the alphabet in double-character symbols.[3]
That's what those matrices are. Someone's hacky attempt at "making things work".
The problem is that we gave those people Nobel prizes and told everyone they're geniuses.
They are, but they were like that brilliant junior. Brilliant.. but junior.
Geometric Algebra sweeps all of that into one beautiful, consistent, crystal clear abstraction that is widely applicable. The magic matrix constants vanish. Bugs in 100-year-old textbook formulas suddenly come to light. Dozens of formulas, one set for each of the 1D, 2D, 3D, and 4D cases collapse into a single formula valid for any number of dimensions.
It's like watching someone struggle with "catching every possible instance of JavaScript injection".
No son, no. Just no. Stop enumerating badness. Stop. Just stop. Escape everything at the boundary instead, enforced by the type system. You'll thank me later.
I know it might be obvious to you, and you always use properly parameterised SQL queries or whatever. This is not the norm everywhere! I still get arguments, long drawn out arguments from people convinced that this is unnecessary and just one more search & replace is all they need to be safe from the bad hackers.
Physicists (and mathematicians) are still making that argument against GA.
"It's isomorphic!"
"That isn't the point!"
[1] You can't convince someone to climb Everest if they struggled to hike up to the top of one of its foothills.
[2] Let me be crystal clear: They're spending their precious time on this Earth learning a dead language instead of learning about the law or bugs. No amount of arguments will sway me. The bugs don't care what you call them. Criminals are guilty or innocent whether or not you speak funny in court. You've just made a simple thing harder for no good reason, that is all. Please stop.
[3] Yes, I've seen this. Twice, from two different people whom have never met. Aliens are amongst us.
> [2] Let me be crystal clear: They're spending their precious time on this Earth learning a dead language instead of learning about the law or bugs. No amount of arguments will sway me. The bugs don't care what you call them. Criminals are guilty or innocent whether or not you speak funny in court. You've just made a simple thing harder for no good reason, that is all. Please stop.
The absurdity of this claim is enough to call into question everything else in your post.
My understanding is too shallow to get why we don't just go straight for EA/Clifford Algebra when the "lower" systems like cross product are insufficient.
I share the author's intuition that there ought to exist some mathematical object that begets Clifford Algebras and multivectors and GA and all the like that we have yet to discover.
> They're spending their precious time on this Earth learning a dead language instead of learning about the law or bugs
I know this is hyperbole, but it's my opinion Latin/Greek emerged so dominantly in law/bio/medical fields is that it allows at the same time semantic bleaching and composition. "Jargon is a DSL" if you will. Sure, you could say "heart muscle no worky cause insufficient oxygen" but "myocardial infarction" is a) more concise b) comprises reusable composable pieces of meaning (myo + card + -ial, in + farcire + -ion) c) most importantly, is extremely precise. It's like the trouble of using English + LLM to define a program, vs just writing damn code. Sure you can do the former, but it's lossy, and that lossiness causes issues.
I mean, come on, lawyers and biologists don't really spend half a decade studying Latin. You can tell because smart people that spend a year or two studying Latin are conversationally fluent in it, and lawyers aren't.
They spend a month or two memorizing some latin words that could have been in English, and then (for biologists, lawyers just stop there) years memorizing lots of names of things that they'd have to memorize no matter what language they were in, and it's not really any slower in Latin than it would be in English once you spent that O(1) effort to get used to it.
Like us (systems) programmers don't spend decades studying the C language, we spend a year or two getting comfortable in C and then the rest of our careers learning all sorts of interesting ideas like generational GC that come phrased in pseudo-C but might as well have been phrased in English pseudocode with a similar cognitive load to grokking them.
That wonderful popcnt() algorithm that uses 0x33333333 and 0x55555555 constants would be just as hard to decipher if it was written in plain English.
The point I’m trying to make is that there are necessarily complexities inherent in all areas of study, and there are incidental complexities because of historical reasons, “culture” within certain fields, or juniors putting out their fields’ equivalent of spaghetti code.
Geometric Algebra sweeps away a lot of the rather messy parts of now century-old physics, but the work of doing that substitution is decidedly non-trivial and thankless, so other than Hestenes, nobody seems to be pushing for it.
It’s like the 2pi versus tau fad on the internet.
Mathematicians argue that they’re “the same”, so it doesn’t matter, and ramble on about their equivalent of “learn the Latin to be smart like me”.
No. It’s stupid. It was an error. Tau is the correct circle constant and eliminates magic constants that don’t belong from literally hundreds of famous formulas!
I and many others simply failed to understand radians until I learnt to treat 2pi as a single ligature instead of “two of something”.
Having dived deeper into the essay, author claims that some of the new notation is obviously better (clifford algebras) and the rest is overzealous unification that obscures rather than clarifies because it mixes types in a weird way (geometric product).
I've never heard of any of this before, but author's second point looks rather convincing. Can you give counterexamples, ideas that are much clearer to think about once represented using GP? I'd love to dive a bit deeper.
It's a shortcut useful only if you need to scribble on paper and your wrists hurt from writing too much, but it obscures the underlying physics.
The programming equivalent is putting abbreviations in identifiers where, sure, it's fewer characters, but then the reader needs to a track a mental lookup table to translate back to the intended meaning.
Pushing things like this too far results in meaningful aspects of the equations getting squeezed out entirely. For example, the generality of GA means that you have to (correctly) track negative signs and multiplications by pseudoscalars such that your formulas work in all dimensions. In traditional vector algebra it's all too tempting to eliminate certain products because in "your chosen dimension" they multiply to 1 or -1 or whatever and just... disappear due to traditional algebraic simplification conventions. But then if you need to work in 4D SR or curved spaces, you can't, because you threw away something essential while "optimising for characters on a page".
You have then "start over", typically reaching for a partial and incomplete subset of GA, reinventing that wheel over and over.
Hence the push for unification onto GA, to break this cycle.
Is this more or less in the right direction to keep exploring?
https://enkimute.github.io/ganja.js/examples/coffeeshop.html
A major problem is that its a very general theory. Most calculations turn into very large but very sparse matrix multiplications. To make them work fast requires code generation and an optimization pass.
These types of optimization problems show up all over graphics programming though:
* Representing rotations with matrices takes more space than quaternions.
* Sacrificing a dimension to projective geometry actually makes representing things like projections (duh) but also translations more efficient.
The main advantage is the elimination of gimbal lock which allows smooth interpolations of arbitrary rotations and translations. This dramatically simplifies certain codes relating to animation and robotics. In mathematics, it simplifies differentiation and integration over curved surfaces in 3D and higher dimensions.
Most developers working in those fields already use one of the many creatively named “impostors” of GA subsets in isolation, such as the quarternions.
You need an optimizing compiler that would take the high level description (in GA) and compile it to add subtract multiply divide of reals (the assembly language). I don't think we have that yet.
Till we have such a compiler it will be tempting to drop down to assembly. Assembly being a metaphor.
I don't know about the rest of the article—I'm not a mathematician—but I certainly enjoying using GA a lot more compared to linear algebra, I find it way more intuitive and being able to visualize intermediate products on my rig is like a super power.
> Most of the time we think of complex numbers as vectors in R2 or as rotation+scaling operators, but rarely do we actually we want them in both roles at the same time.
I can give one counterexample.
I was asked to comment on a piece of code that did 2D geometry in Python. There was one piece that was a tangle of trigonometry to find the angular bisector of an angle subtended at the origin by two points.
Using the fact that points can be represented by complex numbers and that rotation is just multiplication one can make that function into a one liner.
√(z1 * z2)
The geometric mean of the two points as represented by complex numbers gives you the bisector. Python has native support for complex numbers so all the computation is handled by the runtime.The exact same thing is happening here, only multiplicatively, where z1^(1/2) * z2^(1/2) is a combination with two weights of 1/2 (thus, summing to 1). It is geometrically meaningful to treat 2d vectors (displacements in a plane) as complex numbers, raise them to exponents summing to 1, and then multiply these together to get another vector in the same plane. But it is not generally geometrically meaningful to just multiply one vector by another vector to get a third vector in the same space (because this would require distinguishing some particular direction and magnitude as "1").
On complex multiplications though, I disagree. It's a great way to do Euclidean manipulations on the 2d plane. Rotations, translations and reflections (via conjugates) are simple. You rarely need calls to trigonometric functions.
If you have runtime support, it's sorta criminal not to use complex multiplication when applicable.
BTW there is another, equivalent, way of deriving the solution which to me seems more intuitive (and not limited to sum of powers to 1):
The angular travel from z1 to z2 is
z2 / z1.
I want to travel half of that, so √(z2/z1).
This half travel I apply to z1 like so √(z2/z1) * z1
done.If the need was to continue to travel angularly (rotate) beyond z2, say double the subtended angle, that's easy too. No need for the constraint the sum of powers be 1.
For a moment I had got distracted by the exponential between Lie group and algebra.
The only thing that needed care was which sign of the sqrt bisects the internal angle as opposed to the external angle.
In general I prefer not to deal with angles when dealing with 2D rotation. Get inputs in angles if need be and from then onwards use the (cos,sin) tuple or, equivalently, use complex numbers. One can get rid of calls to trascendentals as long as you are happy to call sqrt.
In other words angle is a tuple.
The same calculation works in R^n, incidentally, using the geometric product. This is pretty much the ideal usecase for it, for constructing operators between vectors.
https://news.ycombinator.com/item?id=48619191
You probably know this, but this is one way to generalize beyond 2D
But mostly the broad strokes points about the community are exactly the kind of hostility that makes geometric algebra communities so refreshing for curious young people. Geometric algebra is a welcoming pedagogy and community as much as it is a mathematical framework. If only mathematics as a whole was more welcoming.
I started out on with shaky linear algebra despite years of undergraduate education, but plenty of curiosity and intuition. The geometric algebra community schooled me and me prepared me for all kinds of "real math".
Yes the attitude that geometric algebra is the best language for everything is misguided and welcomes a lot of confusion, but most serious geometric algebra people I've met don't actually think that or say that. They're just off doing cool stuff.
That reminds me, I’ve been meaning to rewrite parts of Hormander’s epic with tools from GMT but never found the time.
Projective Geometric Algebra: Illuminated (2024) (Not mentioned directly in the article [1]; including a quote from link [2].)
Algebraic Calculus (2016)
Divine Proportions: Rational Trigonometry to Universal Geometry (2005)
[1] https://terathon.com/blog/poor-foundations-ga.html
[2] "If you want solid foundations, this book is for you."
There are two reasons for this:
(1) Popular materials are usually popular for a reason: they reflect an approximate consensus, across a significant fraction of the mathematical community, that their approaches are more-or-less the best.
(2) If you learn the same way everyone else does, you'll have an easier time talking to others and finding materials on the internet.
I know some very innovative books which I highly recommend, for example Visual Group Theory by Nathan Carter:
https://bookstore.ams.org/clrm-32/
But the innovation is pedagogical, in what Carter chooses to emphasize and how he presents everything. At the book's core, Carter agrees with everyone else about what the foundations of group theory are and should be.
Even Sheldon Axler's Linear Algebra Done Right (another excellent book), with its hilariously provocative title, only differs in its choice of emphasis and order of presentation. His choices are quite compatible with everyone else's.
For people who actually know the curriculum side: where does geometric algebra fit? Is it something that should come after Calc III / linear algebra, alongside linear algebra, or as part of a more geometric replacement for vector calculus?
Comparison of vector algebra and geometric algebra - https://en.wikipedia.org/wiki/Comparison_of_vector_algebra_a...
> It was already widely understood that projective geometry allowed one to represent rotations and translations in R^3 with a single linear operator on R^4.
I think it's projection operators (in linear algebra) that allow one to do that, not projective geometry [1]. The latter, AIUI, studies projective spaces and projective transformations on them (which differ from vector spaces and their transformations by including "points at infinity"), contains no concepts of length or angle (and therefore no equivalent of translations and rotations) and is in some sense "geometry with only the straightedge, no compass".
Curious if I'm just missing something there, though. I'm no expert on any of this.
However, translation is an affine transformation, which is a particular case of a projective transformation [0]. It turns out that we can represent 3D affine (and general projective) transformations using a 4x4 matrix -- that is, as linear transformations in one dimension up, in a similar sense as how we can represent complex numbers as particular 2x2 matrices [1]. So yes, projective geometry is the right theoretical lens, even if we're usually able to forget about it (somewhat) when we use matrix representations.
[0]: https://en.wikipedia.org/wiki/Affine_transformation#Represen...
[1]: https://en.wikipedia.org/wiki/Complex_number#Matrix_represen...
Thanks!
The homogeneous coordinate system used to represent affine transforms in R^n using linear transforms in R^(n+1) is exactly the same as what is used to represent projective transforms in the projective space P(R^n). This is famously exploited in 3D graphics where 4x4 matrices can represent linear and affine transforms and perspective projections (modulo the final w-division normalization step).
Affine transforms are a special case of projective transforms where the last row (or column depending on convention) vector is (0, ..., 0, 1).
The Case Against Geometric Algebra - https://news.ycombinator.com/item?id=39576214 - March 2024 (15 comments)
Despite trying many times to make greater use of it, I've found that it often just makes a lot of actual physics work less clear, and with very little practical benefit.
There's times where it affords quite pretty notation, but often you have to actually unpeel all that notation before you actually do something with it. And what's the point of nice notation if none of your colleagues can even read it? The only time I ever really found that GA was actually a benefit to me was performing rotations.
Maybe that's why I've found it so useful when doing rigging for animation—that's the entire job!
The hard problems in math are almost always still hard no matter the notation you choose to use. Sometimes notation makes transmitting ideas a bit easier, but usually faffing around with notation is a sign you aren't able to solve the real problems.
> Most of the time we think of complex numbers as vectors in R2 or as rotation+scaling operators, but rarely do we actually we want them in both roles at the same time. So it is not very natural to equate the two objects, as opposed to finding a correspondence between them.
> So GA ends up being very stuck because it equates “vectorial objects” and “operators that act on vectorial objects”. It would be better to express all the geometric objects you care about in their most natural forms, and then find isomorphisms between them when it’s necessary to do so. Otherwise all the meanings get blurred together and it’s very confusing. So that’s another problem with geometric algebra: eliding the distinction between vectors and operators is undesirable, confusing, and disingenuous.
In physics, values have units too. Analogously, you could say - why incorporate units into the algebra in physics (as is often done)? Why not just add scalars etc. and not bother carrying around the units everywhere?
Well, because doing anything else is mostly nonsensical - it does not make sense to add meters and seconds together. Using unit algebra is the most basic sanity check as to whether your formula makes any sense.
Sometimes it makes sense to convert/cast between representations, but that should be explicit - distinguishing eg. objects and operations is more readable and more safe, and only comes with a bit of notational overhead. Nothing is free, but I think the benefits far outweigh the downsides.
Do you want to give two different types to complex numbers, depending on whether a given complex number represents a point versus a transformation (an amplitwist)?
The distinction is whether zero is meaningful independent of a choice of origin. Zero displacement is meaningful. Zero position is arbitrary.
Are you thinking of displacement as an operation? Because it is just as well a vector. I don't see the connection to section I highlighted from the article.
In the same way I think of "vectors as operators" (rotations/scaling) as a displacement vector / torsor, but of a different type than their sense as translations. As far as I can tell, the geometric product between two displacement vectors is not so meaningful, whereas the geometric product between two "operator" vectors is (because it composes them as operators, in some sense). But in practice you're often rapidly switching between these representations so it's hard to tell which object you're actually talking about. For this reason I find it useful to distinguish their types explicitly.
https://m.twitch.tv/videos/2282548167
TLDR it is quite a bad article. One of the closest thing he has to a real argument is "I don't like it when geometric objects are identified with operators, I want those to be separate things". But this is both anti-GA and anti-Lie-Theory. As he says, he is critical of mathematics as conventionally practiced. So be warned that if you find yourself disliking GA for anything like the reasons he dislikes GA, there's a lot of other (mainstream/prestigious) fields you dislike too.
Do you have any resources (books, videos, etc.) you would recommend to someone wanting to learn?
Leading up to classical mechanics, you have the sibgraphi tutorials: https://youtube.com/playlist?list=PLsSPBzvBkYjxrsTOr0KLDilkZ... (I also recommend the bivector discord if you want a community)
And from there, sudgy's videos are good, and the tome "geometric algebra for physicists" packs in a huge amount of stuff.
You can write a rebuttal to address what's wrong with the article, from your point of view. Maybe I'm old but the whole "live reaction in twitch" thing doesn't help how the scientific community perceives your area of expertise.
But note that Geometric Algebra is significantly a tool for graphics/game developers, who tend to prefer videos (even the older generation I think)
The author has completely failed to understand the meaning and the purpose of geometric algebras, though to be fair this is not entirely the author's fault, because there are a lot of bad presentations of the geometric algebra theory, many of which contain actual mathematical mistakes, as listed in an article by Eric Lengyel that is linked in the parent article.
The main correct criticism of the parent article is that the geometric product is an operation that is seldom useful in practice.
In practice, the important operations are the generalizations of the inner product and of the outer product. The inner product and the outer product have been defined by Hermann Grassmann in the 19th century and the publications of Grassmann together with the theory of quaternions by Hamilton have been the sources on which William Kingdon Clifford has created the theory of geometric algebras.
Unfortunately, today a lot of people use incorrectly the term "outer product", using it to name the product defined by Johann Georg Zehfuss, which is also called "tensor product". "Tensor product" is also not a really appropriate term, but at least it is not as ambiguous as "outer product" has become, so it should always be preferred for the Zehfuss product. For the outer product in the Grassmann sense, a non-ambiguous term is "wedge product" though it is rather meaningless.
While the geometric product does not have a practical importance, it has a great theoretical importance, because with it the geometric algebras can be defined with a small set of simple and natural axioms. Then the operations that are important in practice, i.e. the generalized inner and outer (wedge) products can be defined based on the geometric product.
The author is right that some geometric algebra proponents have tried to shoehorn the use of the geometric product in some applications for which it is not the right tool, but that has nothing to do with the theory of geometric algebras.
The theory of geometric algebras has a modest practical importance, but it has an immense theoretical importance, because it unifies many mathematical concepts that previously seemed to be unrelated and it illuminates the relationships between them and also the distinctions between things that were previously confused, even by the best mathematicians and physicists, for more than a century.
There is a high probability that the progress of physics has been delayed by many decades by the fact that both William Clifford and James Clerk Maxwell have died prematurely and almost simultaneously, before they could make order, based on the theory of geometric algebras, in the mess that was at that time the theory of vectors, complex numbers and quaternions. After their death, the theory of geometric algebras has been forgotten and a lot of mistaken theories of vectors have been created, by Josiah Willard Gibbs, Oliver Heaviside and others (because they did not understand the relationships between various physical quantities, like polar vectors, axial vectors, quaternions, complex numbers, pseudoscalars).
When I have first encountered the theory of geometric algebras, that was one of the most beautiful moments in my experience of learning mathematics, it was like turning the light on in a dark room full of previously hidden things. The only similar moments, have been when learning for the first time projective geometry, the theory of spatial symmetry groups and certain parts of topology, which are also theories that have unified a great number of seemingly unrelated concepts.
Like I have said, geometric algebras have very little importance for writing algorithms or the like, where the classic linear algebra with matrices is what matters most, but anyone who does not understand geometric algebras does not really understand physics and this lack of understanding will prevent the correct solution of many problems.
For example Cl(4,2) can represent the spacetime conformal group and Cl(3,0,1) can represent the Euclidean group. If A and B are elements of those groups represented by multivectors then AB will be their composition.
That is an extremely fundamental operation. Almost as, if not more, fundamental than inner and wedge.
I mention this every time this article is posted on hacker news and nobody wants to talk about it :`(
And my comment ended up being pretty long, so I will TL;DR it:
1. The social critique doesn’t match my experience and seems under-supported?
2. The technical critique is interesting, looks like a mix of good points, and some that need more work put into it. I think GA is legitimately cool in my opinion, but if there are better abstractions, we should find/define them and use them.
Longer version:
I hear people bring up the conspiracy/crackpot side of GA a lot, but I learned about Geometric Algebra a few years ago and am currently learning it alongside standard linear algebra.
I think GA is pretty cool. The author seems to have some decent points about its limitations and some ontological smells (like, maybe there is a cleaner representation hiding somewhere). But a lot of the criticism is aimed at the social side of the movement, and maybe I am just blind to it, but I have not really run into that much.
The author says things like:
Basically, GA is considered a kooky, crackpotty sideshow. And because it is so dubious and un-self-aware, the movement ends up alienating most people, except for a particular type of… zealous individual… who write about it with a sort of pseudoreligious zeal, and are prone to conspiracy, as if the only reason GA is not mainstream is that they are being oppressed by close-minded traditionalism.
and: In practice GA always refers to the particular platform and social movement which descends from the work of David Hestenes from the 1960s. It specifically does not refer to the underlying material of Clifford Algebras
Maybe this is true in some parts of the internet or in some older discourse, but from the material I have read, people seem pretty explicit about the roots of Geometric Algebra.Trying to build a unifying framework seems pretty normal to me. Lots of math is trying to expose common structure across different domains. Category theory, abstract algebra, topology, and, to a much bigger extent, the Langlands program all have that flavor. Obviously some unifications are more successful than others, but “this gives a unified language for a bunch of things” does not seem like a red flag by itself.
Some of the actual technical criticisms of GA are interesting, e.g. the proliferation of operations, but at this point I'm more interested in a formal accounting of the complexity of both theories rather than opinions or vibes. It would be nice to have description-length / complexity-accounting comparison of the formalisms.
Disclaimer: I have not read Hestenes’s original work, so maybe I am missing some of the historical baggage. But the modern resources I have seen seem mostly grounded in their claims.
I'm also learning both GA and linear algebra at the same time, GA has definitely helped me understand the linear algebra more deeply. In my opinion, alternative representations like GA gives your brain more structure to grab onto, even if they aren't perfect.
Also... math pedagogy does have a lot of inertia that hurts students. Doesn't Lockhart's Lament famously resonate with anyone who fell in love with math?
[PDF Warning] https://worrydream.com/refs/Lockhart_2002_-_A_Mathematician%...
I agree about the importance of alternative representations, but, people should be somewhat careful about which ones they're espousing. Sometimes people get quite enthusiastic about wedge products and then think what they're excited about is geometric algebra. Personally I would like to see wedge products taught alongside vector algebra and calculus. But I don't see a useful place to include the geometric product, except as more better way of stating things about actual Clifford algebras (quaternions and gamma matrices). I do suspect that there is a 'better' version of GA that is important than that, but I haven't seen it described.
Maybe I'm just not on the math departments enough.
(more extreme examples can be found on the heaps of GA-based papers, youtube videos, and comment sections around the internet, but I think the original papers do contain some of the concerning stuff on their own)