
Show HN: Universal Geometric Algebra with Multivariate Polynomials in JavaScript - grondilu
http://grondilu.github.io/clifford/
======
devons
Very cool, thanks for creating this and sharing!

I've been interested in (U)GA and related subjects for a while. Looks really
promising and its advocates make it seem like it solves all kinds of problems.
But I hesitated to dive in because the learning curve looks rather steep, and
it's not clear if the cost-benefit of ascending that curve ends one up in the
black.

How useful is (U)GA, really? In other words, what are the concrete benefits
relative to traditional vectors, matrices, quaternions? Are those benefits
worth the additional complexity (or is GA actually a simplification)? Are
there applications where GA is the clear win, or is it simply an alternative
way of expressing what can already be expressed through the 3 primitives I
mentioned?

On another tack, how would you characterize the power / utility of (U)GA? For
instance, it _seems_ like (U)GA is a super-powerful tool that's just
misunderstood and everyone would benefit from learning it (like Lisp in the
early 2000s). On the other hand, papers often extol the virtues of (U)GA by
showing how it can solve (seemingly) esoteric higher-order math problems.

~~~
grondilu
> what are the concrete benefits relative to traditional vectors, matrices,
> quaternions?

Traditional vectors are fine, but things get ugly when you do things like
cross products. People should really just use bivectors. It is conceptually
simpler and doesn't entail arbitrary sign conventions.

Matrices are way too general a tool to criticize them as a whole. Using them
makes sense for some problems, and much less sense for others. As far as I
understand it though, GA is not really competing with matrices as a tool to do
linear algebra. GA is mainly about geometry, and not all linear algebra is
about geometry.

Quaternions really are bivectors behind the scene. Exposing them as such would
make them much easier to understand. And I don't think we would necessarily
lose in performance. It could just be a matter of notation really. Instead of
naming them i, j and k, we should name them jk, ki and ij respectively. At the
cost of a sign change, we would make them simpler to understand imho.

> how would you characterize the power / utility of (U)GA?

I'm afraid I'm not qualified to make the case for GA. People much smarter than
me did, and since you're interested you probably know them (David Hestenes,
Chris Doran...). Me, I'm convinced and charmed, but I'm just a hobbyist who
would like to do 3D graphics elegantly.

