HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Siggraph2019 Geometric Algebra

Bivector · Youtube · 218 HN points · 21 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention Bivector's video "Siggraph2019 Geometric Algebra".
Youtube Summary
**Programmer focused part** starts at 18:00
Try the examples here https://enkimute.github.io/ganja.js/examples/coffeeshop.html
The Geometric Algebra course at Siggraph 2019.
Intro : Charles Gunn (00:00 - 18:00)
Course : Steven De Keninck (18:00 - end)

Course notes, slides, software, discourse and discord at https://bivector.net
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
> 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: https://i.imgur.com/T4hofL2.png The talk in general has a bunch of example applications: https://youtu.be/tX4H_ctggYo?t=4232

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.

Also note that most of computer graphics already realizes that embedding our geometric space into a larger space is useful. Projective geometry (embedding 3D into 4D) is already everywhere, because it unifies translations and rotations into a single concept (matrix multiplication). Geometric algebra simply goes a step further.

Dec 10, 2021 · adamnemecek on Quaternions
You should check out the bivector community dedicated to geometric algebra https://bivector.net/.

Check out a demo https://observablehq.com/@enkimute/animated-orbits

Join the discord https://discord.gg/vGY6pPk.

Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 https://www.youtube.com/watch?v=tX4H_ctggYo

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] https://github.com/enkimute/ganja.js

[2] https://www.youtube.com/watch?v=tX4H_ctggYo

Reasoning about space and time is just so much nicer in geometric algebra. There's a new cool community on geometric algebra https://bivector.net/

The founder (Steven De Keninck aka enki) gave a talk at Siggraph2019 https://www.youtube.com/watch?v=tX4H_ctggYo

You should join the discord https://discord.gg/vGY6pPk

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: https://www.youtube.com/watch?v=tX4H_ctggYo

It has been posted a few times on HN before.

You should check out the bivector community dedicated to geometric algebra https://bivector.net/.

Check out a demo https://observablehq.com/@enkimute/animated-orbits

Join the discord https://discord.gg/vGY6pPk.

Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 https://www.youtube.com/watch?v=tX4H_ctggYo

iamwil
I thought this was called projective geometric algebra. Is the projective part optional? Or it refers to a specific thing.

Why would there be a bivector community? Is it something relatively new, so there's a sense of "we're convinced, but other people aren't yet?"

tsuru
As a beginner, these are questions that lead to a big rabbit hole for me.

1. Yes, it seems Projective Geometric Algebra is new enough that the terminology and symbols are still being debated.

2. Yes, people who "get" it seem pretty convinced. I think the newish PGA is attractive for convincing real-time graphics software engineers and hardware engineers. For example, it has 16 floats in R(3,0,1) too.

3. The community is there to help spread the knowledge and to help as you start finding out about all the other Geometric Algebras. And overcoming the Euclidean mindset is tough.

This is the first bit of higher-than-Calc math I've worked at in a long while and it feels like it's bending my mind in a good way, like Lisp did.

adamnemecek
It’s a community dedicated to discussion and promotion of geometric algebra.
fanf2
Geometric algebra is very general: it can model straight Euclidean space, non-Euclidean geometry, projective geometry (the familiar homogeneous coordinate system) and also conformal geometry. Some of the earlier applications of geometric algebra to computer graphics were based on conformal geometry (eg https://rjw57.github.io/phd-thesis/rjw-thesis.pdf) because it can model more interesting things than projective geometry, but it is more computationally expensive than projective geometry.

WRT community, the https://bivector.net web site has a discussion forum for people interested in geometric algebra. I’m still a newbie so I don’t know the territory very well, but it is still fairly hard to get to grips with geometric algebra: there isn’t a lot of tutorial material and there’s still a lot of variation in details of notation and choice of basic operators, which is confusing for a beginner.

I have been collecting links recently: see https://dotat.at/:/?q=geometric+algebra

You should check out the bivector community dedicated to geometric algebra https://bivector.net/.

Check out a demo https://observablehq.com/@enkimute/animated-orbits

Join the discord https://discord.gg/vGY6pPk.

Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 https://www.youtube.com/watch?v=tX4H_ctggYo

You should check out the bivector community https://bivector.net/.

Check out a demo https://observablehq.com/@enkimute/animated-orbits

Join the discord https://discord.gg/vGY6pPk.

Enki (the guy behind bivector) also gave a talk on GA at SIGGRAPH 2019 https://www.youtube.com/watch?v=tX4H_ctggYo

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: https://marctenbosch.com/quaternions/

https://marctenbosch.com/quaternions/code.htm

and: https://bivector.net/

and https://www.youtube.com/watch?v=tX4H_ctggYo

MiroF
> 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?

aap_
In 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
Thanks, I think I was more confused by what `world_inverse_tranpose` is.
sixo
Computer 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
Ah gotcha, why don't bivectors transform normally

e: I'm restating the question in a form I understand, not asking it.

ogogmad
If 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
I should have been clear, I was restating their question, not asking it again.
gugagore
I posted in another comment, but take a look at https://www.scratchapixel.com/lessons/mathematics-physics-fo...
francasso
I 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
“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.
fizixer
Yeah 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.

Jasper_
It 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

Here is a video https://www.youtube.com/watch?v=tX4H_ctggYo and the associated HN thread 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

Geometric algebra could (will?) be used to simplify game engines, see Siggraph2019 Geometric Algebra:

https://www.youtube.com/watch?v=tX4H_ctggYo

Web site: https://bivector.net/

auntienomen
Geometric algebra and algebraic geometry are largely unrelated mathematical disciplines.

Algebraic geometry has to do with finding geometric structure in (the solutions of) systems of algebraic equations. Algebraic geometry is potentially useful whenever you're doing this, so cryptography, coding theory, optimization, ...

It's one equation in geometric algebra. https://www.av8n.com/physics/maxwell-ga.htm#eq-max-ga

Also there is a new community for geometric algbera people https://bivector.net/.

Check out the demo https://observablehq.com/@enkimute/animated-orbits

Watch the SIGGRAPH talk https://youtu.be/tX4H_ctggYo

Join the discord https://discord.gg/vGY6pPk

Thanks for mentioning bivector.

Check out the demo https://observablehq.com/@enkimute/animated-orbits

Watch the SIGGRAPH talk https://youtu.be/tX4H_ctggYo

Join the discord https://discord.gg/vGY6pPk

May 31, 2020 · amelius on Programming is boring art
If you want to write truly beautiful geometric code, watch this:

https://www.youtube.com/watch?v=tX4H_ctggYo

Discussed here:

https://news.ycombinator.com/item?id=22282452

phkahler
I kid you not, I just watched that 2 days ago at the suggestion of a friend. It will take more viewings and study to digest. Really amzing!
Geometric algebra: https://www.youtube.com/watch?v=tX4H_ctggYo

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.

bmcahren
I can't wait to read into this. Switching formulas to tau was incredibly useful for me when I was doing a lot of 3D math for game dev.
elevenoh
Is all math/logic most fundamentally geometry?
buboard
neuroscience hasn't solved that mystery yet, but it might be that our logical reasoning stems from our ability to navigate physical space. E.g. the hippocampus is a structure known to encode physical space, but also mapping distances in cognitive space: https://www.cell.com/current-biology/fulltext/S0960-9822(19)...
avmich
Don't think so. Geometry requires space, which has certain features which constrain its properties (sorry for a tautology). If you avoid such constraints, you can still have math, but it doesn't make sense to call it geometry.

Looks a bit surprising math definition include concept of space. Geometry looks underappreciated, yes, but to replace the whole math...

carapace
Ah, but you can't encode math except for in some necessarily geometric form.
mkl
Are you referring to written notation? Calling that geometry is a bit of a stretch. There's also nothing geometric about maths encoded in computer code, or many types of mathematical thoughts, so I think you are just incorrect.
carapace
> Are you referring to written notation? Calling that geometry is a bit of a stretch.

Can you write without shape?

> There's also nothing geometric about maths encoded in computer code

Look at a computer chip under a microscope: nothing but geometry.

> or many types of mathematical thoughts

In re: math itself, perhaps there is such a thing as a mathematics of the formless (I doubt it but cannot rule it out) but to communicate it you are again reduced to some symbolic form.

> so I think you are just incorrect.

I've been thinking about this for a long time, and I'm still not 101% convinced, but I think it's true: you can't have information without form.

Check out "The Markable Mark" and "My Stroke of Insight". The act of distinction is the foundation of the whole of symbolic thought, and it is intrinsically a geometric act.

http://www.markability.net

> ... what is to be found in these pages is a reworking of material from the book Laws of Form.

> Think of these pages, if you like, as a study in origination; where I am thinking of 'origin' not in the historical sense but as something more like the timeless grounding of one idea on or in another.

Distinction is a physiological thing the brain does. It can e.g. be "turned off" by physical damage to the brain:

https://www.ted.com/talks/jill_bolte_taylor_my_stroke_of_ins...

https://en.wikipedia.org/wiki/My_Stroke_of_Insight

> Dr. Jill Bolte Taylor ... tells of her experience in 1996 of having a stroke in her left hemisphere and how the human brain creates our perception of reality and includes tips about how Dr. Taylor rebuilt her own brain from the inside out.

So whether you come at it from the mystical realm of pure thought or the gooey realm of living brains all math is geometric. (As far as I can tell with my gooey brain.)

Cheers!

avmich
> and it is intrinsically a geometric act.

Why? Can't you have distinction without geometry? It's not only position which can be distinct, you can have other properties.

Two digits in different position on paper can be both different - 0 and 1 - and the same - 5 and 5. You can encode them not by shape, but, say, by kind of particle?

And in general, our physical world has space - but how would you prove a world without space as we understand it can't have math?

carapace
> Why? Can't you have distinction without geometry?

Maybe but I don't see how.

> It's not only position which can be distinct, you can have other properties.

Properties like what? Color, sound, temperature, etc., all of these are geometric, no? Can you think of a concrete physical property that doesn't reduce to some kind of geometry?

> You can encode them not by shape, but, say, by kind of particle?

Sure, but then that particle must have some distinction from every other particle, either intrinsic or extrinsic (in relation to other particles), no?

Any sort of real-world distinction-making device has to have form, so that eliminates real non-geometric distinctions.

It may be possible to imagine a formless symbol but I've tried and I can't do it.

The experience of Dr. Taylor indicates to me that the brain constructs the subjective experience of symbolic distinction. (Watching her talk from an epistemological POV is really fascinating!)

So that only leaves some kind of mystic realm of formless, uh, "things". My experience has convinced me that "the formless" is both real and non-symbolic, however by the very nature of the thing I can't symbolize this knowledge.

    In the Beginning was the Void
    And the Void was without Form
If you can come up with a counter-example I would stand amazed. Cheers!
avmich
> Can you think of a concrete physical property that doesn't reduce to some kind of geometry?

How would you reduce charge to geometry? Or spin?

Can we differentiate by space the electrons in an atom of helium?

But we sort of digress. The question was if a concept of space is required to a concept of math, and specifically, if we can have distinction without space. Surely we can at least think of distinction without space, even if we'd fail to present that in our physical world?

ianai
To me, the answer here is “kinda but no”. Math in its most basic level is about studying logical connections. Sometimes being able to symbolize something in notation allows inspection of logical objects otherwise unobservable - like higher dimensional objects. But there’s the whole area of mathematical logic. I think I can say Godels incompleteness/inconsistency theorem was only about axiomatic systems with no necessary connection to geometry. Mathematics loves to study logical reductions of things and geometry can certainly be left out through reductions.

There’s something of a geometry/algebra separation in mathematics, too. The last few centuries (?) have tended toward algebraic research at the exclusion of geometry. There’s even reason to believe the two types of reasoning are separated in human brains in so far as people tend to be good at one and less good at the other.

adamnemecek
The speaker in the video runs a community for people interested in geometric algebra. https://bivector.net/

Check out the demo https://observablehq.com/@enkimute/animated-orbits

Job the discord https://discord.gg/vGY6pPk

If you like this, then checkout the presentation on Geometric Algebra from 2019 SIGGRAPH: https://www.youtube.com/watch?v=tX4H_ctggYo

You can then play around with objects in 3D, 4D, and beyond:

https://enkimute.github.io/ganja.js/examples/coffeeshop.html...

xixixao
This amazing, thanks for the pointer!
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: https://www.researchgate.net/publication/47524066_A_simplifi...

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 bunch of special cases to worry about, and so forth...

Watch Enki Mute's Siggraph 2019 presentation on Geometric Algebra. It's mind-blowing how many stupid little quirks of vector algebra just evaporate if you're prepared to step outside of your comfort zone: https://youtu.be/tX4H_ctggYo

neutronicus
Do you know if they've done work on formulating the Vlasov equation (coupled evolution of EM fields and phase-space density of populations of charged particles) in this way?
petschge
I know that Glasser and Qin at Princeton are working on geometrical view of plasma physik. They aim to get a view of particle-in-cell methods (basically a way to discretize the Vlasov equation using sparse sampling) using a geometric view point expressed using discrete exterior calculus. But I am not sure how much of that is ready or published.
neutronicus
I did research on PIC in grad school.

In the process I gained ... a healthy skepticism of the Qin group's papers. The man himself is sharp, though. Interested to see what they come up with.

acqq
Just for reference re that "Siggraph 2019 presentation":

https://en.wikipedia.org/wiki/Geometric_algebra

"The geometric product was first briefly mentioned by Hermann Grassmann" (1809 – 1877) "In 1878, William Kingdon Clifford greatly expanded on Grassmann's work to form what are now usually called Clifford algebras in his honor (although Clifford himself chose to call them "geometric algebras"). For several decades, geometric algebras went somewhat ignored, greatly eclipsed by the vector calculus." "The term "geometric algebra" was repopularized in the 1960s by Hestenes."

The background image on:

https://bivector.net/

is William Kingdon Clifford.

crimsonalucard
>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.

This illustrates the entire field of programming as we know it. It actually happens among all programmers but for less obvious things. Especially with design patterns. I've seen programmers use so much structure for the sake of a design pattern on something that could otherwise be 10x simpler.

Koshkin
I don't know why anyone would say that strongly-typed programming is "messy and hard to understand". On the contrary, explicit and strict typing is supposed to make code better structured, safer, and easier to understand, with fewer cases of undefined behavior and, in general, less complexity that can be caused by implicit type conversions.
burpsnard
That's awesome
adamnemecek
The speaker in the video runs a community for people interested in geometric algebra.

https://bivector.net/

Check out the demo https://observablehq.com/@enkimute/animated-orbits

Job the discord https://discord.gg/vGY6pPk

ngcc_hk
Find a good laugh in 40 minutes of the YouTube about people in the old days do not have -ve no. and 0. Also, the surprise way to do algebra by geometry is fun. Studying pre-socrates at the moment and there is a speculation whether the "unbounded" guy is also a geometric guy.
jiggawatts
GA seems to be getting more popular, but I still see vector algebra used in areas such as robotics where GA is clearly superior. In that application the small performance difference between GA and vector algebra is irrelevant, but the advantages of GA are huge.

In game engines the vector algebra method is slightly faster, so the elegant programming model is often sacrificed in the name of performance.

That, I can understand.

Why physicists use at least 4 separate formulations of the EM equations I can't understand, especially considering the vector version is the worst yet the most popular.

gridlockd
It's all about inertia. Everybody either already knows vector algebra or will have to learn it anyway, to understand the vast majority of existing literature.

Geometric Algebra may be superior, but it's "one more thing" to learn/teach. It might catch on, but that might take another century of preaching.

devit
How can it be faster considering that they are equivalent?
JadeNB
> How can it be faster considering that they are equivalent?

Computing `ln(e^x)` and `x` are equivalent, but the latter is faster.

Koshkin
Well, to be fair, these are equal, not just equivalent.
gridlockd
Computers don't care about mathematical equivalence. For instance, dividing by a number is generally slower than multiplying with the inverse of that number. Also, memory access patterns can make a difference of night and day.

I'm not sure though where exactly the idea that GA is slower comes from. It's all down to the application and implementation. Perhaps it's because GA generalizes so well to higher dimensions that many libraries are overly generalized and thus slower than vector algebra libraries that need special cases anyway.

jiggawatts
The 3D case is often handled using a conformal projective geometric algebra, which is 5D and requires 2^5 = 32 elements for a general multivector. This is twice that of a 4x4 matrix, and and eight times the size of a 4-element homogeneous vector as typically used in most 3D engines.

Of course, there are all sorts of optimisations. Most GA libraries are actually based on code-generation and support various "subsets" of the full GA to efficiently represent things like vectors only. From what I've seen, even a well-tuned library has approximately a 25% overhead for hot paths and 50-100% is typical.

This is a bit like representing a simple rotation like the hand of a clock, with either just one angle, or a two-element unit vector pointing in the direction of the rotation. The one-element angle has a bunch of special cases, like have to be checked to see if it goes past 360 degrees and then reset back to the 0..360 range. Representing this with two numbers just requires multiplication with a matrix, which involves no conditionals or modulo arithmetic.

This is analogous to the vector vs geometric algebra. Typically, GA has no special cases and "just works", but it does so by "uncompressing" the compact vector representation. It's going to be slower.

rrss
Reducing Maxwell's equations from the 4-equation Heaviside form to a single equation doesn't seem like necessarily a good thing. Each of the four has a clear physical meaning in the vector calculus formulation, which may be lost when moving to a single equation.
Koshkin
Yeah, dF = 0 is not very enlightening...

http://home.lu.lv/~sd20008/papers/essays/Maxwell's%20equatio...

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: https://www.youtube.com/watch?v=tX4H_ctggYo
Feb 09, 2020 · 200 points, 30 comments · submitted by lelf
carapace
FWIW, "Geometric Algebra for Electrical and Electronic Engineers" is short and sweet: https://ieeexplore.ieee.org/document/6876131?arnumber=687613...

> This tutorial paper provides a short introduction to geometric algebra, starting with its history and then presenting its benefits and exploring its applications.

bananabiscuit
Here is an informative critique of this video along with an improved application of geometric algebra to computer geometry:

http://terathon.com/blog/projective-geometric-algebra-done-r...

ivan_ah
Thanks for sharing this blog post and the cheat sheet http://terathon.com/pga_lengyel.pdf

I agree the representation chosen in the SIGGRAPH lecture and the associated docs seems somewhat unnatural and counter-intuitive (why are points being represented as trivectors?).

Have you reached out to C. Gunn or S. De Keninck to ask what they think about the representation you propose in that blog post and the geometric product ⟑ and antiproduct ⟇ ? If the representations are equivalent and one is closer to concepts people already understand (e.g. points being (x,y,z,w), with w=1), then maybe adopting the simpler representation would lead to wider adoption of the ideas.

Alternatively, maybe they will point out some other reasons why points-as-trivectors representation is preferable.

jnfinity
Your welcome, ivah_ah.

I approached the SIGGRAPH presenters immediately after their talk last year to try to explain that the whole thing could be done without swapping the geometrical meanings of vectors and trivectors. They were very dismissive at the time, but I think they have now accepted the formulation I've introduced leads to exactly the same mathematics with the only differences being in naming and numbering.

I don't see the math as one algebra with the geometric product and a "dual" algebra with the geometric antiproduct. I see it as a single algebra with two products existing simultaneously. It's important to understand that there are lots of symmetries in geometric algebra, and for each one, both sides of the symmetry are equally significant, and the universe doesn't prefer one over the other. The most fundamental symmetry is that each basis element can simultaneously be viewed as containing some "full" dimensions and some "empty" dimensions. In 4D space, you can think of this as a 4-bit quantity where 1 means full and 0 means empty. (These are what the black and white bars represent on my poster.) Four bits means 16 different basis elements can be formed by selecting which dimensions are full. Scalars have no full dimensions, vector basis elements have one full dimension, bivector basis elements have two full dimensions, trivector basis elements have three full dimensions, and antiscalars (which are 4D volume elements or quadrivectors) have all four full dimensions. At the same time, you can view these from the opposite perspective and say that scalars have all four empty dimensions, vectors have three empty dimensions, bivectors have two empty dimensions, trivectors have one empty dimension, and antiscalars have no empty dimensions. The important thing to understand about the relationship between the geometric product and the geometric antiproduct is that the first one performs operations on full dimensions, and the other one performs exactly the same operations on empty dimensions. With regard to the degenerate metric, anything containing a full w-dimension (corresponding to e4 in my work) squares to zero under the geometric product, and anything containing an empty w-dimension squares to zero under the geometric antiproduct.

Since the two approaches (the SIGGRAPH approach and my approach) are both valid and produce the same mathematics, I prefer to stick with the approach that keeps points = 4D vectors, lines = 4D bivectors, and planes = 4D trivectors because we're simply adding one projective dimension to everything. This is an extension of the concept of homogeneous coordinates that has long been established in computer graphics. Here, the dimensionality of a projective geometric object corresponds directly to the grade of the associated element in the algebra, which counts the number of full dimensions. In the SIGGRAPH approach, the dimensionality of a projective geometric object corresponds to the grade subtracted from four, which counts the number of empty dimensions. It's a mirror image. Like I said earlier, the universe doesn't care which approach you use, and to claim that one is a more natural choice than the other is erroneous. The only thing we can do is choose one to be the agreed-upon convention and stick to it in the same sense that everybody agrees to use the right-hand rule for cross products instead of an equally valid left-hand rule.

I'll be giving a talk about all of this at the GDC 2020 Math Summit on March 17.

PrototypeNM1
Does your GDC talk have a name yet? I'd like to keep an eye out for it.
jnfinity
It's called "Projective Geometric Algebra and Dual Quaternions", and it's on Tuesday, March 17 at 1:20 pm.

https://schedule.gdconf.com/session/math-in-game-development...

PrototypeNM1
Given GDC is postponed are you planning to wait out and see if it's successfully rescheduled or otherwise? I've been on a bit of a GA binge recently and am especially curious what arguments might be presented for adoption in the context of game development.
enkimute
In the short version, the representations are isomorphic, that is you can take all formulas from our Siggraph cheat sheets and replace all operators by Eric's 'anti-operators'.

You can review the discussion with Eric here :

https://discourse.bivector.net/t/why-use-dual-space-in-pga-r...

(its a long discussion, the link points to my last summary). There are still some unanswered questions on Eric's method (most notably how to define his duality mathematically - or how to arrive at the metric for the dual algebra - I'm looking forward to his views on this.)

The 26th of February I'm giving a new talk at the GAME2020 workshop that is all about the reason the view nobody is used to might in fact be a natural choice.

enkimute
For those interested - In a few weeks, 26-27-28 February, there is a (free) workshop featuring talks and workshops from Leo Dorst, Anthony Lasenby, Charles Gunn, Steven De Keninck (the lecturer from this vid - disclaimer - thats me), Vincent Nozick, Dietmar Hldenbrand, Hugo Hadfield and Eric Wieser.

They'll be talking about their research on applications of GA in robotics, AI, CS, physics, graphics.

more info : https://bivector.net/game2020.html

Everyone welcome !

skwog
Near the end of your Siggraph 2019 talk (excellent, thanks), an audience member mentions an IEEE Spectrum article "Geometric Algebra for Electrical and Electronic Engineers". What is the author's surname that you mention?

Peter Yolks? Jolts? Holt? Oates?

For me, multiple searches have yielded no results for a similar author name so far.

Specifically, there does not appear to be any such article on IEEE Spectrum [1], but there is one on Proceedings of the IEEE [2] whose listed authors do not include anyone named Peter.

Curious because you go on to state that his work is readily available. That caught my attention, so I became interesting in finding out more.

[1] https://spectrum.ieee.org/searchContent?query=Geometric+Alge...

[2] https://proceedingsoftheieee.ieee.org/most-downloaded/geomet...

crubier
This video is the best thing I watched in the past few years. Last time I loved something that much was Geoffrey Hintons course about deep learning back in 2015.

It is eye opening, just like in the beginning of mainstream deep learning, it made me wonder “why didn’t we discover this before?” It elegantly solves so many annoyances about geometry, maths and physics.

I’ve been evangelizing Geometric Algebra like crazy since I found this video, including in hacker news comments.

alexkcd
Agreed. Besides Geometric Algebra, dual numbers also play a huge role in automatic differentiation -- the core building block of modern machine learning frameworks.

I really like the analogy in this talk about how Al-Khwarizmi's six quadratic equations simplify to just one, once we learn about negative numbers and zero.

In a lot of ways, geometric algebra (and dual numbers) are our discovery of "negative numbers and zero", but for the 21st century.

moralestapia
>also play a huge role in automatic differentiation

Could you extend more on how GA plays a role in this? I wish to learn more but don't know where to start. Any leads would be appreciated greatly.

alexkcd
Don't know of a good single resource that is comprehensive. A high level overview of autodiff approaches can be found here: https://www.robots.ox.ac.uk/~tvg/publications/talks/autodiff...

Some example implementations based on dual numbers: 1. http://www.ceres-solver.org/automatic_derivatives.html 2. http://www.imm.dtu.dk/~kajm/FADBAD/

Newer ML frameworks do source to source transformations, which allows calculating the derivative without changing the function signature, but the concepts used remain the same.

spacedome
In the video they present it as an algebraic framework where you can "add" to a number system elements x such that x^2 = -1, x^2 = 0, or x^2 = 1. Adding the element x^2 = -1 to the real numbers gives you the complex numbers, with x = i. Adding the element x^2 = 0 to the real numbers gives you the dual numbers with x = epsilon, which is what can be used for automatic differentiation. The case of x^2 = 1 is more complicated.
nimish
Great article from the same presenter here: https://www.groundai.com/project/projective-geometric-algebr...

And for those who know conformal GA, see https://www.researchgate.net/publication/290437718_Geometric...

DreamScatter
Check out my geometric algebra software

https://grassmann.crucialflow.com

adamnemecek
If this interests you, you should check out the bivector community https://bivector.net/ which is ran by the presenter of this lecture.

Join the discord https://discord.gg/vGY6pPk.

Check out a demo https://observablehq.com/@enkimute/animated-orbits

banachtarski
Highly recommended. Absolutely eye opening talk and set of resources.
amelius
Does this solve the problem of consistency in computational geometry? I.e. point lies inside a polygon, but due to rounding errors, the point seems to lie outside the polygon, which might trigger e.g. a program crash.
garmaine
No, but there are other ways of solving that. Setting rounding modes and bias values appropriately would prevent what you describe.
nwallin
You mean dynamically setting rounding modes depending on what operation you're doing? How do you do this performantly while staring down the barrel of context switching, third party dependencies, programmers who are at least as dumb as I am...?

My general rule of thumb is that if your code might fail if someone swaps out IEEE 754 floating point semantics for some other representation that's at most as goofy as IEEE 754, your code is probably wrong.

garmaine
Context switching preserves fpu modes. You set these inside inner loops where you aren’t calling out to third party dependencies. Good libraries make this easy to work with.

This is exactly how IEEE 754 was designed to work, and is what all the major numerical libraries do.

injidup
No
nutjob2
Yes, if you do it algebraically.

This is one of the things that this talk touches upon. BAsically if you use GA you eliminate precision issues (at least until you render or otherwise materialise), various special cases, limitations and unnecessary complexity.

msla
A good introduction:

https://www.av8n.com/physics/clifford-intro.htm

Previous discussion on this topic:

https://news.ycombinator.com/item?id=22200260

deepaksurti
A recent discussion on HN related to GA in the context of removing quaternions: https://news.ycombinator.com/item?id=22200260
None
None
ivan_ah
Here are some direct links to some of the PGA (Projective Geometric Algebra) resources mentioned in the talk:

1. The 2D and 3D cheat sheets are here: https://bivector.net/doc.html

2. The talk is also available in "paper form" on the arXiv: https://arxiv.org/abs/1901.05873

3. Ganja.js repo https://github.com/enkimute/ganja.js and the associated demos in the Ganja coffee shop https://enkimute.github.io/ganja.js/examples/coffeeshop.html

____

For more background about the concepts like quaternions, projective geometry, and exterior algebra, etc. that are all united in PGA, you can check this nice book by Jean Gallier and Jocelyn Quaintance: https://www.cis.upenn.edu/~jean/gbooks/geomath.html direct link https://www.cis.upenn.edu/~jean/math-deep.pdf I haven't read, but sampled it on several topics and found the explanations to be very good.

(edit) first-added links specific to PGA, and typo fix s/external/exterior/

cygx
*exterior algebra
skydog23
As the author of the arxiv preprint referred to above, I would like to point out a newer, expanded version written for the Siggraph 2019 course. It's available here: https://www.researchgate.net/publication/334397782_Course_no...
Feb 08, 2020 · 14 points, 0 comments · submitted by themodder666
Ok look just watch this mind blowing video:

https://youtu.be/tX4H_ctggYo

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.

Jan 31, 2020 · 1 points, 1 comments · submitted by ganzuul
ganzuul
Related discussion: Let's remove Quaternions from every 3D Engine - https://news.ycombinator.com/item?id=18365433
Nov 10, 2019 · 1 points, 1 comments · submitted by adamnemecek
adamnemecek
Steven De Keninck is the author of ganja.js (https://github.com/enkimute/ganja.js).

Check out this demo https://observablehq.com/@enkimute/animated-orbits

He's also created a community for people into Geometric Algebra, bivector.net. Join the discord channel, https://discord.gg/vGY6pPk

Nov 07, 2019 · 2 points, 2 comments · submitted by adamnemecek
adamnemecek
Steven De Keninck is the author of ganja.js (https://github.com/enkimute/ganja.js).

Check out this demo https://observablehq.com/@enkimute/animated-orbits

He's also created a community for people into Geometric Algebra, bivector.net. Join the discord channel, https://discord.gg/vGY6pPk

pmdulaney
Thank you.
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.