Hacker News new | ask | show | jobs
by trashtoss 3134 days ago
Yes but also no. One of the most fascinating applications I've seen is here: http://versor.mat.ucsb.edu (and in subsequent work).

There's already a decent tl;dr of the approach on that page, but the tl;dr of that tl;dr is that conformal geometric algebra seems to provide not only a rich language of geometric operations but--importantly!--these operations seem to compose intuitively and interpolate well ("well" in the same way interpolation between quaternions afford the most-natural interpolation between 3D transforms).

The work there uses it to develop tools for parametric design...I'd be very curious to see it extended (e.g. to include time dimensions).

What is notable though is that whereas a lot of the "hype" around geometric algebra revolves around the ostensible intuitiveness--"look, we only need Maxwell's equation, singular, in GA"--actually using it effectively seems to require acquisition of a lot of vocabulary and concepts (e.g. to make use of versor you need to know about blades, rotors, etc.)...the learning curve to use the material is actually steep. That wouldn't prevent it being used as the backend of some tool, but the idea that GA is intuitive and "easier" than alternatives doesn't seem to hold up in practice (IMHO)...at least for uses like these.

Then there's the efficiency issues in that, in general, each term in a k-dimensional geometric algebra will have 2^k coefficients (and thus adding two terms is ~ 2^k operations and multiplying is ~ 2^(k+1))...a good implementation will have a lot of difficult tradeoffs to consider.

2 comments

It is intuitive and easier in the sense that when you don’t have that vocabulary and bag of concepts – trying to work in some other formalism – all of your arguments end up being much more complicated and cluttered.

As for the number of scalar parameters involved: if anyone wanted to put significant time and money in, as has been done with matrix computation libraries, most of the 0×0 multiplications can be skipped, and the rest can be efficiently SIMDized, etc.

If the concern is bandwidth over the wire, there are often ways to compress things. E.g. we can take the stereographic projection of a rotor and then reduce the precision to save a lot of I/O without losing accuracy.

For anyone else curious, versor is on github: https://github.com/wolftype/versor