Siggraph2019 Geometric Algebra

Bivector8 HN recommenders · 2020–2022
87K views · lecture · evergreen · Uploaded 2019-11-06

A SIGGRAPH 2019 course on geometric algebra. Charles Gunn gives an intro, then Steven De Keninck gives a programmer-focused course with live examples in ganja.js.

HN commenters repeatedly point people to it as the most accessible, developer-friendly introduction to geometric algebra and its use in graphics and physics.

Watch on YouTube

17 comments from Hacker News

@crubier2020 · in “Let's remove quaternions from every 3D engine (2018)”

Ok look just watch this mind blowing video: [VIDEO] After that, you can’t argue that geometric algebra is not THE right way to do geometry. Projective geometry (in any dimension) is a subset of geometric algebra. Please watch it.

Strongly recommendsView on HN
@cs7022020 · in “Ask HN: What are you learning?”

The following video has a good, developer-friendly introduction to the subject that should answer your question. Take a look in particular at the code snippets that are sprinkled throughout the video and notice how much cleaner, shorter, simpler, less computationally costly, and "universal"/"exception-free" the code becomes: [VIDEO]

RecommendsView on HN
@jiggawatts2020 · in “Why is Maxwell's theory so hard to understand? (2007) [pdf]”

Maxwell's theory is hard to understand because it's based on an almost-but-not-quite-appropriate algebra. It's like stringly-typed programming. It works , but it's messy and hard to understand. Maxwell's set of coupled differential vector electromagnetic equations simplify to a hilariously short single equation in Geometric Algebra. A random Google turned up this paper comparing classic EM and the GA formulation. It's not even the simplest possible representation, because that uses natural units and a 4D GA to basically condense the entire set of EM theory into about 4 characters worth of equation that is fully relativistic for free: [LINK] It's almost a joke. To me it's reminiscent of looking at beginner programmers. You see them do crazy things like calculate a date "next month" by taking apart the pretty-printed date string, parsing to find the month, realising that sometimes the day part is one digit and sometimes it's two, then having to worry about m-d-y or d-m-y formats, building little tables of "days per month" and leap years... and so on. They can write pages and pages of error free code and it's still Wrong because the correct way is to just call "thedatevar.AddMonth(1);" and be done with it. PS: 3D game engine vector algebra libraries have all of this in common with the physics maths. Things like the cross product being bizarre, having to pick a basis, not being able to interpolate rotations, gymbal lock, rounding error, having different maths for 2D and 3D, a bun

@aabajian2020 · in “4D Toys: how objects bounce and roll in 4D – paper accepted to SIGGRAPH 2020”

If you like this, then checkout the presentation on Geometric Algebra from 2019 SIGGRAPH: [VIDEO] You can then play around with objects in 3D, 4D, and beyond: [LINK]

RecommendsView on HN
@aabajian2020 · in “Ask HN: What startup/technology is on your 'to watch' list?”

Geometric algebra: [VIDEO] It makes a lot of hard physics problems (Maxwell's equations, relativity theory, quantum mechanics) much more understandable and (I'm told) unifies them in a common framework. I think it will help your average developer become comfortable with these areas of physics.

RecommendsView on HN
@adamnemecek2020 · in “Intuitive Guide to Maxwell's Equations”

It's one equation in geometric algebra. [LINK] Also there is a new community for geometric algbera people [LINK] . Check out the demo [LINK] Watch the SIGGRAPH talk [VIDEO] Join the discord [LINK]

RecommendsView on HN
@guerby2020 · in “Who Is Alexander Grothendieck? (2008) [pdf]”

Geometric algebra could (will?) be used to simplify game engines, see Siggraph2019 Geometric Algebra: [VIDEO] Web site: [LINK]

@ivan_ah2020 · in “Geometric Algebra for Python”

Here is a video [VIDEO] and the associated HN thread [LINK] 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 [VIDEO]

RecommendsView on HN
@greggman32020 · in “Geometric Algebra for Python”

AFAICT 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: [LINK] [LINK] and: [LINK] and [VIDEO]

@adamnemecek2020 · in “All Hail Geometric Algebra”

You should check out the bivector community [LINK] . Check out a demo [LINK] Join the discord [LINK] . Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 [VIDEO]

RecommendsView on HN
@adamnemecek2020 · in “Vanishing zeroes for geometric algebra in Rust”

You should check out the bivector community dedicated to geometric algebra [LINK] . Check out a demo [LINK] Join the discord [LINK] . Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 [VIDEO]

RecommendsView on HN
@adamnemecek2020 · in “Ganja.js: Geometric Algebra Generator for JavaScript, C++, C#, Rust, Python”

You should check out the bivector community dedicated to geometric algebra [LINK] . Check out a demo [LINK] Join the discord [LINK] . Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 [VIDEO]

RecommendsView on HN
@these_are_not_t2020 · in “Ganja.js: Geometric Algebra Generator for JavaScript, C++, C#, Rust, Python”

I think that simple should be understood here as easy to use . As a crude analogy, the mechanical principles underlying a car with an automatic shift aren't simple, but the abstraction it provides makes driving much easier to learn. A more mathematically grounded example could be the complex plane compared to the real line: when encountered for the first time, it is not simple in any way, but it offers a clean solution to many (originally real valued) problems (perhaps by the fact that it is algebraically closed?). NB: the author of this library also made a very interesting presentation of geometric algebra (using this library as vehicle) for SIGGRAPH 2019: [VIDEO] It has been posted a few times on HN before.

RecommendsView on HN
@adamnemecek2021 · in “Quaternion Quantum Mechanics [video]”

Reasoning about space and time is just so much nicer in geometric algebra. There's a new cool community on geometric algebra [LINK] The founder (Steven De Keninck aka enki) gave a talk at Siggraph2019 [VIDEO] You should join the discord [LINK]

RecommendsView on HN
@javajosh2021 · in “Manim: An animation engine for explanatory math videos”

Well I've been on a real Geometric Algebra (aka Clifford Algebra) kick lately, and ran across ganja.js [1]. It's a single no deps file that is...impressive. 120k uncompressed, and with it you can construct any degree algebra (including the more esoteric hyperbolic/parabolic ones), render to canvas, svg or webgl(!). It also includes a clever little DSL parser and interpreter (it overloads the scientific notation to name basis vectors!) that lets you construct more complex things from simple things using various kinds of products. The author, Steven De Keninck, is quite impressive as well, having got his start in the demoscene some time ago. He has a good video from SIGGRAPH 2019 [2] that explains why this algebra is better than [matrices, tensors, vectors, complex numbers]. Of particular interest (to me anyway) is the 2D projective geometry. I don't want to oversell it, but ganja is fucking amazing and there is a great deal I want to do with it. For one, I'd like to recapitulate my physics degree with it. [1] [LINK] [2] [VIDEO]

RecommendsView on HN
@adamnemecek2021 · in “Quaternions”

You should check out the bivector community dedicated to geometric algebra [LINK] . Check out a demo [LINK] Join the discord [LINK] . Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 [VIDEO]

RecommendsView on HN
@orlp2022 · in “Exponentially Better Rotations”

> Quite bluntly, this all sounds like an attempt to reinvent euclidean geometry following a convoluted way. I mean, what does all this buy you that applying a subset of affine transformations (scaling, translation, rotation) to an orthogonal coordinate system doesn't give you already? It is attempting to reinvent Euclidean geometry, yes. I don't think it's convoluted though. To give a prime example, take the article we're commenting on: interpolating rotations. Or more generally: interpolating transformations. Just doing this with rotations without suffering gimbal locks already brings you to quaternions. Are quaternions 'convoluted'? The fact that all objects are native to the algebra means they're composable. Take for example this slide of the formula of a 4D torus in coordinates, and in 4D PGA: [LINK] The talk in general has a bunch of example applications: [VIDEO] Questions such as "the intersection of this line and this plane", "the line through two points" "the circle where these two spheres intersect", "the point at the intersection of three planes", "the projection of this line on this plane" and such are trivial, native (the resulting object is part of the algebra) and exception-free in geometric algebra. E.g. two planes always intersect, it just happens that the intersection is a line at infinity if they're parallel. The exact same code used to translate and rotate a point around the origin can be used to translate and rotate a line, or a plane around the origin. Al

RecommendsView on HN