I'm very interested in Colapinto's work. His dissertation, Articulating Space, has a lot of neat ideas and applications in it (http://versor.mat.ucsb.edu/ArticulatingSpace.pdf). I especially appreciate his explicit emphasis on exploration encouraging others to build on past work and discover what these formulations enable.
I'm curious in what way versor is 'more modern'. My understanding is that its main benefit over Gaigen is that there's no code-generation step, and provides more general library for various kinds of I/O. I have been tempted to use versor, but for reasons explained below I'm leaning toward Gaigen for optimized implementation.
What is attractive about Gaigen (2) is that it will generate code for Java, C++, and C# from the same specification. I'm working on a relatively high-level implementation in Clojure, and the possibility of compiling down to something which will run efficiently 'everywhere' is appealing. In particular, there's huge benefit of being able to remain within a highly interactive, dynamic environment for prototyping and experimentation. If I can work out the kinks of interfacing with Java there, then it should be relatively feasible to target C# (for Unity) and C++ for Unreal Engine (I'm especially focused on VR).
Also, the Gaigen authors literally wrote the book, so I suspect the least impedance mismatch in trying to work from their generated code. That said, versor is also obviously heavily influenced, so I wouldn't anticipate problems there.
At one point, earlier in my exploration, I had concluded that versor would definitely provide the most bang-for-buck. I've shifted, but I think that may be more a matter of my goals and requirements. I'm interested in any direct experience you have with versor or other GA software.
> I'm curious in what way versor is 'more modern'.
Well, it uses modern C++ idioms that didn't exist whet Gaigen 2 was created (e.g. C++11). Mostly, these eliminate the performance-related need for a code generator (and incidentally, serves as great example of how much further C++11 moved the language in practical terms).
But more importantly to me, I think versor is a better-designed library/API and it implements more of the things that are needed to effectively use geometric algebra in practice. Most of these "additional things" are documented in Articulating Space, which you've already linked to. If you use versor, you can make direct use of a working, tested implementation (instead of trying to rewrite them to work with Gaigen 2's API).
Versor is also actively maintained, which I consider a feature.
That said…Gaigen 2 is perfectly serviceable and performant, so if it meets your needs, I don't think you should feel like you've made a bad choice. It works, it's fast, and as you pointed out, it generates output for languages other than C++. Prior to discovering versor, that's what I used, too.
That was useful. If and when I need pure C++, or want a fast path to 'additional things', it sounds like versor is the way to go.
There is a lot to sort through in coming up to speed with this paradigm, and each new source helps build the practical picture. Thank you for contributing to that.