HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
A Bigger Mathematical Picture for Computer Graphics

Waldir Pimenta · Youtube · 149 HN points · 2 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention Waldir Pimenta's video "A Bigger Mathematical Picture for Computer Graphics".
Youtube Summary
Slideshow & audio of Eric Lengyel’s keynote in the 2012 WSCG conference in Plzeň, Czechia, on geometric algebra for computer graphics.

0:00 Introduction
2:07 History
3:41 Outline of the talk
4:48 Grassmann algebra in 3-4 dimensions: wedge product, bivectors, trivectors, transformations
37:04 Homogeneous model
47:26 Practical applications: Geometric computation
56:27 Programming considerations
1:01:41 Summary

Short abstract: "This talk introduces the basic concepts of the exterior algebra (aka geometric algebra or Clifford algebra) and presents a bigger mathematical picture that enables a deeper understanding of computer graphics concepts such as homogeneous coordinates for representing points, lines, and planes, the operations that can be performed among them using the progressive and regressive products, and incomplete pieces of the bigger picture, such as Plücker coordinates."

● Full abstract:
● Slides (pdf):
● About the author:
● About geometric algebra:
● Some photos of the keynote:

Note: most of this information (including the video, available for both streaming and download as mp4) is available at the website of the Centre of Computer Graphics and Visualization of the University of West Bohemia:
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
What you wrote has nothing to do with Eric's geometric antiproduct.

Eric calls the dual vectors in a geometric algebra (or Grassmann algebra as he calls it) antivectors. See his presentation from GDC2012 around the middle:

>Instead of saying (n−1)-vector, we call these “antivectors” (also:

So e.g. in 3D bivectors would be antivectors, in 4D trivectors would be antivectors, etc. He also calls what's usually referred to as pseudoscalars antiscalars - that is, n-vectors in an n-dimensional geometric algebra.

The geometric antiproduct introduced in this article has a similar dual relationship with the geometric product: the geometric antiproduct acts on vectors the same way as the geometric product acts on antivectors. Around the end of the article he even writes that the whole algebraic structure is invariant under dualization (or "antization" :D ): you can map scalars to antiscalars, vectors to antivectors, etc. and the geometric product will be mapped to the geometric antiproduct, etc.

Here’s an appetizer from Eric Lengyel in the context of game development (or 3D graphics in general):

And here’s the in-depth stuff:

Geometric Algebra for Computer Science:

Sep 06, 2017 · 145 points, 22 comments · submitted by adamnemecek
Geometric algebra seems to be a trendy subject on HN right now. Just so you guys know, this is only the top of the iceberg. If you feel like there are aspects to this theory that are arbitrary (e.g. things to do with determinants) or if you have some suspicion that there's a big rich deeper understanding which all this is pointing towards, you're right. Don't be satisfied with just this. Go study more pure mathematics. It's a lot richer and more satisfying than you might imagine.
Dam, I wish I knew about that before. It looks so much more "logical". The video also says that ray/triangle intersection is safer on the rounding error/accuracy side. Is it true ?

This makes me wonder why this hasn't been used in more cases... I have been messing around with parametric 3D models using regular 3D vectors, but getting to the bottom of this might make my life a lot easier.

The comment about cross and dot product just being given to you struck a chord with me. I had a hard time grokking them when they were introduced to me because I had no first-principle basis for making sense of why it makes sense. The lack of pictures didn't help either.
I have been studying GA ever since first hearing about it 10 years ago. David Hestenes book, "New Foundations for Classical Mechanics" was my first foray followed by "Geometric Algebra for Physicists" by Doran and Lasenby, however lately I have been focusing a on GA for computer graphics instead of physics. I am working through Euclid's Elements in parallel. I love the work of Pablo Colapinto (wolftype) [1]. He created a C++ library for GA, and somebody made the library for JS. His academic papers are inspiring and clear. He also has some really good Vimeo videos showcasing his work under Wolftype.

The history of GA is a solid example of how it is not always the best idea that takes hold. Gibbs and vectors and quaternions became the way.

This is an hour long video. It's there a summary of key points?
At the ~one hour mark there's a summary slide:

    Old school                              | New school
    Cross product -> axial vector           | Wedge product -> bivector
    Dot product                             | Antiwedge vector / antivector
    Scalar triple product                   | Triple wedge product
    Plücker coordinates                     | 4D bivectors
    Operations in Plücker coordinates       | 4D wedge / antiwedge products
    Transform normals with inverse tranpose | Transform antivectors with adjugate transpose
In mathematics, there’re more general operators besides cross and dot products. Wedge product = exterior product, the symbol is ^. And anti-wedge product = interior product, the symbol is ⨼. When applied to vectors, they produce not just vectors but various more interesting things.

In 3D space, vector ^ vector makes a bi-vector. In 3D, it contains 3 scalar components just like a vector, but the meaning is different (can be interpreted as an oriented area), and multiplication by matrix has different formula. That different formula’s the reason why normals need different formula to transform by a matrix.

In 4D homogenous space things become even more interesting. vector ^ vector produces a bi-vector. In 4D space, that thing has 6 scalar components, and its projection to W=1.0 3D space is a directed infinite line. Bi-vector ^ vector = a tri-vector, that thing has 4 scalar components, and its projection to W=1.0 3D space is an infinite oriented plane. Then, anti-wedge product can be used to find intersection of these things, tri-vector ⨼ tri-vector = bi-vector = the line intersecting two planes, tri-vector ⨼ bi-vector = vector = the point where line intersected a plane, and so on.

Mathematically, these operators are quite simple and therefore fast to compute, e.g. for 3D vectors ^ is same as cross product.

Does it make sense to study GA for use in data science? My linear algebra itself is rusty so I'm not clear if the more general operations of GA make it well suited to studying stats/machine learning concepts.
It does... If you want to develop new methods that use GA concepts, or you want more perspective on geometric notions.

GA is not more general than linear algebra... i think of it as sitting between vector algebra (which often is too limited) and linear algebra (which is often too general).

All GA expressions are in LA (though they may be much uglier), not all LA expressions are in GA.

This is correct.

Another common terminology is that a vector is a 1-form, and a bi-vector a 2-form. The wedge of an n-form and an m-form is an (n+m) form, which generalises the cross product.

To define the dot product you need the notion of a Hodge star, which maps an n-form to a (D-n)-form where D is the dimension of the ambient space.

If you learned linear algebra, or especially vector calculus, without learning these things then you were cheated out of the best bits, and I encourage you to rectify this! The general picture is actually clearer than the 2D or 3D one usually taught, in which some things happen to co-incide. isn't amazing but will give you an idea what to google.

We should get 3blue1brown to do a series on this!
The Geometric Algebra version of Kramer's rule is one of coolest most insightful things I've seen. Good examples can be found in the opening chapters of "Geometric Algebra for Computer Science" by Dorst, Fontijne, & Mann.
I'm still just a student, but I keep finding myself humbled and amazed at how much deeper any field I come across truly is... Even though most of this goes over my head for now, I'm sure, with more practice and study, I'll come to a greater understanding of it.
I encountered geometric algebra only few weeks ago and it is one of the most interesting, intriguing and elegant things I saw in my life. It almost feels too beauty to be true. I cannot understand why GA is not more popular - especially as it is backwards compatible with linear algebra.

There is very interesting library:

There is a company that based its business on a rendering engine that uses Geometric Algebra.

They have been around for a while: (PDF)

> I cannot understand why GA is not more popular

Geometric Algebra is all over the place in the geometry processing community within graphics.

One reason why GA hasn't caught fire in graphics is the complexity: for many tasks it is slower that the old way. AFAIK.
That may be largely due to massive amount of work put into the old way. Even if GA is just fundamentally a better idea for doing graphics, it doesn't have decades of software and hardware development to back it up.

Imagine selling this: I've got a new idea, with a mere re-education campaign for our developers, major graphics engine overhaul, and... convincing NVIDIA or AMD to implement some GA specific optimizations in hardware. We can have a much more mathematically satisfying code base!

This sounds like a job for an FPGA-based graphics system as a prototype.
C++ GA library.

The cheat sheet is awesome.

The author's thesis is worth a look:

Nice to see Curtis Roads in the thesis!
Aug 09, 2017 · 2 points, 0 comments · submitted by adamnemecek
Jul 31, 2017 · 2 points, 0 comments · submitted by adamnemecek
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 ~ 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.