7 ms·
I don't understand the "geometric algebra" goal. The people that I've seen pushing for it usually say kids in high school are being taught the wrong thing, we s
by francasso 6y ago
I don't understand the "geometric algebra" goal. The people that I've seen pushing for it usually say kids in high school are being taught the wrong thing, we should do away with the cross product and start teaching this geometric algebra. I'm not too familiar with the content, but to a superficial look it seems they are just using exterior algebras and (maybe?) clifford algebras? Assuming that is the case then why the rebranding (and sometime change of standard notation) to "geometric algebra" for concepts that already had a name at the end of the nineteenth century
(that is bound to piss the general math community off)? Also why are people so against teaching the cross product? There are many reasons why Hodge duality is important, not just in abstract math but also in physics (it enables the most geometric definition of Maxwell equations for example)
- greggman3 6y agoAFAICT the proponents of GA claim it explains lots of things that don't make a whole lot of sense without it. One example is why you multiply normals by the world_inverse_tranpose. Apparently the reason is because normals are actually bivectors, not directional vectors as they are usually explained. another is that at least in code, they apparently solve lots of issues that other methods don't See: https://marctenbosch.com/quaternions/ https://marctenbosch.com/quaternions/ https://marctenbosch.com/quaternions/code.htm https://marctenbosch.com/quaternions/code.htm and: https://bivector.net/ https://bivector.net/ and https://www.youtube.com/watch?v=tX4H_ctggYo https://www.youtube.com/watch?v=tX4H_ctggYo
- MiroF 6y ago> One example is why you multiply normals by the world_inverse_tranpose I know linear algebra but I have no idea what the heck this means. Is this a gaming thing?
- sixo 6y agoComputer graphics. When transforming a coordinate system by a linear transformation represented by a matrix, normal vectors to surfaces transform differently than regular vectors. GA/exterior algebra explains this: the useful thing we call normals is represented by the same data (a 3d vector) but actually has to have a a different "type" to make sense. In higher dimensions they are not interchangeable with vectors.
- MiroF 6y agoAh gotcha, why don't bivectors transform normally e: I'm restating the question in a form I understand, not asking it.
- ogogmad 6y agoIf T:V->V is a linear transformation and "^" is the exterior product then T(u^v)=T(u)^T(v). For example, let T be a reflection about the plane spanned by e1 and e2. Then T(e1^e2)=e1^e2, but T(e1 x e2) = -e1 x e2, where "x" denotes the cross product.
- MiroF 6y agoI should have been clear, I was restating their question, not asking it again.
- deleted 6y ago[deleted]
- aap_ 6y agoIn LA you calculate the normal of a plane by taking the cross product of two vectors lying in that plane. If you transform all three with the same matrix the normal will in the general case no longer be the cross product of the transformed vectors, you have to transform it with the inverse transpose matrix instead.
- MiroF 6y agoThanks, I think I was more confused by what `world_inverse_tranpose` is.
- francasso 6y agoI understand that for gamedev it's more natural to think in terms of the exterior product of two vectors rather than the normal, because you have to deal with transformations a lot. But the normal is a vector, it's a definition that has been there for hundreds of years. There is no need to rename stuff, just use the thing that better fits your use case. In fact there are other things that are easier to understand in terms of normals, like the shape operator of a surface.
- Jaxan 6y ago“Hundreds of years” is an exaggeration. The term vector originated in 1837 (according to Dutch Wikipedia). So I’m not so sure that “normal vector” is a term which is, say, a hundred years old.
- Jasper_ 6y agoIt makes perfect sense without GA -- a precalculated normal vector is effectively a stored cross product (this is what the "bivector" terminology is attempting to explain, but is unclear). While the cross product is invariant under rotation and translation, scaling the inputs of the cross product is not the same as scaling the output -- you need to apply the inverse scaling to the output (you can derive this from basic identities). The "inverse transpose" is a symbolic manipulation to derive a transformation matrix that inverts the scale, but not the rotation, though it's actually a bit overzealous, you can actually just use the cofactor matrix. https://github.com/graphitemaster/normals_revisited https://github.com/graphitemaster/normals_revisited
- fizixer 6y agoYeah right, it explains a lot of things, assuming you don't ask how to make sense of this alien thing called a 'bivector' in the first place. That's when they start telling you, that you're supposed to be an elite mathematician, well versed in the higher forms of sophistry, and if that were the case you wouldn't need to understand bivector and wedge product and what not at an intuitive level. I'm sold.
- ogogmad 6y agoThere's interesting stuff like Conformal Geometric Algebra and Projective Geometric Algebra. The idea behind them being that geometric objects like lines, circles and points can be represented as elements of a Clifford algebra, with the various different products in GA having some natural geometric meaning. I don't know if it's useful, but it's certainly interesting.
- yiyus 6y agoGeometric algebra and Clifford algebras are technically the same thing. The difference is that the term geometric algebra is generally used to refer to the work of David Hestenes, while Clifford algebra is used in more formal settings. David Hestenes is himself a physicists. He did a lot to bring Clifford algebras into the main public attention (mainly applying it to the study of space-time). He used the term "geometric algebra" because it looks like this was the term used by Clifford in his work. There is nothing wrong with teaching the cross product, some people (me included) just think that teaching about exterior (and geometric) products would be more productive.
- MiroF 6y agoMy take is that linear algebra should be taught before calculus and that einstein notation should be taught at the same time as matrix multiplication.
- reikonomusha 6y agoDo you also think the nuance of co- and comtravariant tensors should be understood, and the conventions of raising and lowering indexes, which is where a lot of value of Einstein notation comes from?
- MiroF 6y agoYes, much more preferable to 4 years of talking about "row vectors" and "column vectors." Perhaps not so early though. Introducing the concepts in the context of a euclidean metric seems unmotivated?
- ssivark 6y agoWhile not necessarily in a first course, it is an important difference to appreciate which saves a lot of headache later. Eg: Vanilla gradient descent involves naively adding a covariant and a contravariant quantity, which is generically a recipe for disaster, and nicely motivates second order methods that use the Hessian as the "metric" to raise/lower indices. The picture about Hessian eigenvalues determining the step-size is of course complementary and helps gain an intuition for the meaning of a "metric" and its importance.
- ivan_ah 6y agoHere is a video https://www.youtube.com/watch?v=tX4H_ctggYo https://www.youtube.com/watch?v=tX4H_ctggYo and the associated HN thread https://news.ycombinator.com/item?id=22282452 https://news.ycombinator.com/item?id=22282452 that provide some more background on GA and its applications. I think you're generally right that GA is a rebranding of concepts we already knew about, however representing them in a uniform manner seems like a useful thing to do. The at t=4083 in the video they show some interesting examples of projections, rotations, and other geometric operations that can be done quite simply https://www.youtube.com/watch?v=tX4H_ctggYo&t=4083 https://www.youtube.com/watch?v=tX4H_ctggYo&t=4083
- nabla9 6y agoI'm not taking sides, but it's pedagogically important to reframe things from time to time even if there is no radically new math. Especially when you teach applied math for nonmathematicians. For example teaching analysis using infinitesimals for engineers might be pedagogically better (for the level of understanding required). I'm not expert in history of mathematics, but If I remember correctly there was lots of fighting over represetations related to hypercomplex systems, vectors and matrices in the 1800-century. Quaternion Society wanted to do it one way. https://www.nature.com/articles/052545a0 https://www.nature.com/articles/052545a0
- gugagore 6y agoI think there is a two-part answer to your question. 1. What's the difference between Geometric Algebra and exterior algebras? Clifford algebras? This is a hand-wavy explanation, but the GA community has specific GAs give a geometric meaning to objects and operations of some Clifford algebra. For example, there's a 5D algebra (Conformal Geoemtric Algebra?), which is really a 2^5=32D algebra, where elements of the algebra can represent points, point pairs, circles, planes, etc. On the level of Clifford algebra, any of these objects is a point in a 32D space, and operations on points give you other points. That's sort of the mechanics. And then it's the job of GA to give a geometric interpretation of the points and the operations. To draw an analogy to logic, I think of it as syntax vs semantics. 2. Also, what's wrong with cross products? I just explained how GA is sort of unifying and uniforming. All sorts of disparate geometric objects can be treated uniformly in one representation. At the same time GA allows you to distinguish between objects that are different. If you give me a vector `A` and a vector `B`, and I return to you `C=A×B`, on the "syntax" level, A, B, and C look the same. If we're thinking in terms of coordinates, they are all triples of real numbers. But `C` is unlike `A` or `B`. For example, if you wish to operate under a different coordinate system, you might have a transformation matrix M to convert between old and new coordinates. So for example `Anew = M * A`, `Bnew = M * B`, and `Cnew = det(M) * M^{-1}^{T} * C` [2]. What what? The explanationsSome would use is that `A` and `B` are true vectors or polar vectors, and `C` is a pseudovector or axial vector. In code that I write, I would very much like to have some distinction between vectors that transform like `A` or `B` and vectors that transform like `C`. You can do this with naming conventions, or just making sure you do keep track in some other way that. A GA framework would give you a way to track this difference. In my opinion (and there are many ways to accomplish the same thing) the programming language type of `C` should be distinct from `A`. I think Hodge duality and the cross product are important, and I honestly don't know what's right to teach kids in high school. The tradition we currently have gets us pretty far. On the other hand, how awkward is it to invoke the notion of C being a "pseudovector" [3]? I think most people never really learn that. The first time I really reckoned with that was when learning computer graphics, because normal vectors transform differently from tangent vectors. Incidentally, if what I wrote doesn't make sense to anyone, learning about these concepts by thinking of normal vectors vs tangent vectors is probably an intuitive motivation. This page should help: https://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/transforming-normals https://www.scratchapixel.com/lessons/mathematics-physics-fo... For anyone who might not know, "an oriented 3-dimensional Euclidean space, an oriented plane can be represented by the exterior product of two basis vectors, and its Hodge dual is the normal vector given by their cross product" [1]. [1] https://en.wikipedia.org/wiki/Hodge_star_operator https://en.wikipedia.org/wiki/Hodge_star_operator [2] https://en.wikipedia.org/wiki/Cross_product#Algebraic_properties https://en.wikipedia.org/wiki/Cross_product#Algebraic_proper... [3] https://en.wikipedia.org/wiki/Pseudovector https://en.wikipedia.org/wiki/Pseudovector
- erichocean 6y agoI use GA (via Versor) in rigging for animation because it's a lot easier for me to do the math that way vs. linear algebra. How I think about the world maps directly onto the math, and it requires ~1 LOC for each thing I'm trying to do. Debugging is trivial. Anyway, that's why I use it. I'm 43.