Quaternions are one of those subjects where the community sees a steady stream of tutorial content, which really doesn't seem to be adding much to the discourse to my eyes. It's like a "yet another git tutorial" kind of thing.
In fact Ken Shoemake, who was responsible for originally popularizing quaternions as a robust rotation/orientation representation[1], wrote his own tutorial of this stuff back in the late 80's sometime, and it's really, really great: https://www.ljll.math.upmc.fr/~frey/papers/scientific%20visu...
Folks should start with that one before trying to rewrite it, IMHO.
It’s a mathematical abstraction a lot of people feel they need to understand (‘cause of its connection to some programming language theory stuff, and practical use within Haskell notably), so there are a million tutorials where someone is purportedly, finally, going to make the concept clear.
I think somewhere I actually did find one that made it clear. But I don't remember anything about it at all.
I just vaguely remember them as something super abstract, that you can work through with about the same effort as a sudoku puzzle, but you have to go actually learn Haskell to understand why you'd want one.
Then they say something about function composition, but it seems like have to already be a functional expert to know why you would care about composing functions in a consistent way instead of just calling them from a new function.
It is well for non-specialists to be aware, however, that, while geometric algebra is a real thing, Hestenes's tireless promotion of it as the One True Language of physics is about as appropriate as identifying and anointing the One True Language of programming. One can and should have at one's command as many languages as possible; singling out geometric algebra as the one right language and forgetting the others is as bad as not being aware of geometric algebra at all.
Hestenes’s tireless promotion is necessary because most everyone else, having grown up with a different formalism, is too entrenched / busy to try to make a basic change to what we teach and use, even when that change would provide tremendous benefits.
In physics there was some uptake where appropriate, but mathematicians for the most part scoff (“this is just a different notation for structures that were studied in the 19th century, there’s nothing new here” kind of thing).
But being able to multiply and divide vectors is a big deal, and GA is packed with incredibly useful identities. Working coordinate-free in a rich enough language of geometric relationships makes it (a) a lot easier to solve gnarly geometric problems, and (b) a whole heck of a lot easier to demonstrate and explain those solutions.
The change of perspective has been most impactful in fields where the details can’t be hand-waved away because they are getting interpreted by a computer, so streamlining them helps a lot. In particular, computer graphics, computer vision, robotics, physical simulation, and the like.
I think it can be very good for someone who is steeped in other perspectives to see Hestenes's take on things and so broaden their existing understanding, but I disagree strongly that Hestenes should be one's first read on the subject. His ideology might lead one to conclude, wrongly, that geometric algebra is the one true answer and that one need know no other; and this is as bad as not knowing about the geometric-algebra formalism at all. (Or, if you wish not to grant that it is as bad, at least it is also bad.)
My own personal experience was that I read about geometric algebra and thought it was neat but didn’t really become anything like fluent in it for years (frankly I still don’t feel entirely fluent). But I like to work on geometry problems of various sorts (related to computer graphics, cartography, computational geometry, ...).
Over and over again, spread out over maybe a decade, I would try solving some problem in the languages I learned in school – Gibbs-style vectors, matrices, differential forms, complex numbers, trigonometric functions, synthetic geometry, etc. – and fill pages of scratch paper with equations that balloon in size making it hard to spot patterns or avoid mistakes, and eventually I would get entirely stuck somewhere. Then I would slap my head, try rewriting the problem in GA terms, and end up replacing like 2 pages of completely incoherent scratch work with about 3–5 lines of concise and easily geometrically interpretable GA manipulations, yielding both a clear answer to my problem and a clear and intuitive demonstration of why it should be right. In particular, dividing by vectors is an unbelievably underrated idea.
I don’t know about “one true language” as some kind of crusade, and I am not a physicist or mathematician, but in my opinion every engineer, scientist, and mathematician would benefit tremendously from becoming substantially fluent with GA,† ideally starting with the basic ideas in high school. It is a very clear and expressive language, substantially better for many purposes than the tools currently taught to students in their technical coursework.
† Including you, if you ever solve geometric problems. Give it a serious try sometime.
Your response seems an overreaction to a suggestion that that article should be read first. GA is IMO without a doubt a very helpful way of understanding quaternions, which the OP doesn't really try to do.
> Your response seems an overreaction to a suggestion that that article should be read first. GA is IMO without a doubt a very helpful way of understanding quaternions, which the OP doesn't really try to do.
I was indeed specifically responding to the suggestion that the speech be read first. If it's the first thing one reads on the subject, then one has no context in which to take Hestenes's remarks, and it is easy to take very literally his claims about the primacy and universality of geometric algebra—so I wanted to give some of that context first.
Ken Shoemake also has an article in Graphics Gems IV. Section III.1 page 175. Theory and Sample program included. This is the only thing I needed to read to understand quaternions.
Kalman filters are so interesting. As far as I can tell they are one of the very simplest things one can do that requires a real understanding of math.
It doesn't seem like you can just drop in a library, in the general case, or if you can, it doesn't seem to be common practice.
Usually things that need an actual understanding are either totally novel, or solved problems with existing tools.
Kalman filters are where you find out that you really did need math all along, if you're like me and don't really see math in everyday life.
I suspect there's still a way to fake your way through if you need to and have a day or two to study, but the first time you see it it really shows what you don't know.
It's like when you see non physicists talking about physics and feel amazed at how they managed to seemingly understand maxwells equations just for fun.
In fact Ken Shoemake, who was responsible for originally popularizing quaternions as a robust rotation/orientation representation[1], wrote his own tutorial of this stuff back in the late 80's sometime, and it's really, really great: https://www.ljll.math.upmc.fr/~frey/papers/scientific%20visu...
Folks should start with that one before trying to rewrite it, IMHO.
[1] Here's a copy of the 1985 paper: https://www.cs.cmu.edu/~kiranb/animation/p245-shoemake.pdf