I posted a longer version of this above, but I don...
# share-your-work
h
I posted a longer version of this above, but I don't think I introduced it very well! It's a stab at Stop Drawing Dead Fish in VR with spreadsheets and something called Geometric Algebra (GA) also known as Clifford Algebra. Those who have scrutinized Stop Drawing Dead Fish(SDDF) closely might have noticed two references to GA. Bret also used to have a "Geometric Algebra" sticker on his laptop! But while GA is a very Bret thing, he actually did not use it to make SDDF, so my thing is trying to make good on that. GA is a mathematical system where you get a bunch of geometric objects and transformations, and they all get related to one another by math that is quite a lot simpler than usual. For example, in the conventional/non-GA approach, if you wanted a line in 3D space you'd take two "vectors" v1 and v2 and say the line is the set of vectors v1+t*v2 for all scalars t. This can be kinda useful, but gets complicated if you ask for a simple thing like a rotation around that line. In the GA way of doing things, instead of being "a set of vectors", a line is its own sort of object - lines can be added together; multiplied by planes and rotations; etc. Lots of useful operations turn out to be examples of this, I've attached a pdf of examples. "doing math/programming by working directly with (tangible/visualizable) geometric objects instead of with linear equations" should strike you as a centrally Bret thing. But why didn't he use it? I'll say in a comment under this message.
🍰 3
Bret got unlucky, I got lucky. Geometric Algebra has gone through several forms. The person Bret read was David Hestenes, a slightly eccentric but very smart guy (ex student of John Wheeler alongside Hugh Everett, Kip Thorne, and Richard Feynman). Hestenes is motivated by physics, and to him there were two particlar algebras that were most interesting: Cl(3) which does rotations and reflections around the origin (and TLDR is isomorphic to the Pauli matrices of electron spin), Cl(1,3) which does special relativity and the Dirac equation, and Cl(4,1) which does conformal transformations of 3D space (and to a lesser extent Cl(4)) For a physicist, Hestenes was a pretty Tools For Thought guy. The thing he wanted to emphasize was that Dirac had a strong visual intuition, and he wanted to bring that back into physics. The pauli algebra is usually thought of by physicists as 2x2 complex matrices, but this really does hide what's going on a lot - the basis matrices look completely different from one another, even though they are, geometrically, orthogonal reflection planes through the origin - very visualizable. Alright, that's physics - what does he have to offer to, say, computer animation? Well, he presented Cl(4) and Cl(4,1) as being useful. But 4,1, called "Conformal Geometric Algebra", is 5 dimensional and has a proliferation of pretty weird transformations and objects - even for 3D it is overkill, and Bret was interested in 2D. The other, Cl(4), works a bit better, but causes things to curve in strange ways! On top of that, Hestenes talks a big game about visualizability and understandability - but he is not actually all that good at explaining things, and he has aesthetic preferences that make him uninterested in a lot of what computer animation needs
Hestenes presented Conformal GA at the same time that a guy called Jon Selig presented something called Projective Geometric Algebra - that's what I use. This was in 2000, but Bret never saw it - why's that?
Well, Jon Selig's work was ignored in GA, because it went against Hestenes' aesthetic preferences - specifically, it has a basis object in it which squares to 0. Selig left GA after that reception. Nobody paid attention to Selig's work until 2011, when it was picked up by Charles Gunn. Charles is a guy that I can see Tools For Thought people liking - he is ex-Pixar, and for him mathematics and psychology blend together. But Charles was also not great at communicating. When Bret was working on SDDF, Gunn's and Selig's amazing discoveries were still locked in his very difficult PhD thesis
I got lucky - by the time I got interested in 2019, a man called Steven De Keninck had created Ganja.js, an excellent shadertoy-esque system for playing with projective GA https://enki.ws/ganja.js/examples/coffeeshop.html
👍 2
In my opinion, projective geometric algebra is a major new step for mathematics and computer animation! And if only Bret had known about it in 2014 you and everyone else would all be using it today, 100%
i
I'd like to use it in my various computer graphics experiments. I'm not a mathematician. I'm cool with vector math. Matrices as spooky. Where's the smallest, easiest to absorb introduction to coding this stuff?
h
I will toot my own horn a bit first:

https://youtu.be/en2QcehKJd8

is part 1...
👍 1

https://youtu.be/dSe7eg8Dj98

is part 2
👍 1
Disadvantage: two hours long, I am afraid nobody has gotten it into less than this
Advantage: you get an intro to quaternions for free in the first 10m and you get to see a different Tool For Thought I made for this
👏 1
i
Cool thanks!
h
Alternative! https://www.youtube.com/playlist?list=PLsSPBzvBkYjxrsTOr0KLDilkZaw7UE2Vc At the end of this series you have a demo in Ganja, another GA tool-for-thought, of writing a 2D physics engine in 22 minutes. And then... the guy goes to the top of the file and changes "2" to "3", and it's a 3D physics engine... and then, he changes "3" to "4"...
d
Wow, fantastic work. I’ve been GA curious since hearing @Jack Rusher ‘s talk on it, but have yet to tinker with it. I thought it would be cool if it could enable custom coordinate systems that appear on a single canvas while still enabling objects in each to interact with one another. In any case, really cool to see the ideas being used for constraint systems like this. Especially in VR
😁 1