Geometric Algebra in Computer Science
One of the most important fields of application for Geometric algebra can be found in Computer Science. In this post, I interview 3 leading researchers who apply Geometric Algebra in their work to share their valuable experience and insights. Their applied research spans many applications in computer science including Computer Graphics, Robotics, Computer Vision, Image Processing, Neural Computing, and more.
Dr. Leo Dorst
My primary interest is the interplay between geometry and its algebraic representation. It is great fun to derive some equation solving a problem, and then hearing it begin to talk to you about aspects you had never considered in the original formulation. This works most strongly in GA, which is why I love that framework. However, it is hard to find funding for this in abstracto. I am currently tying it into a project on restoring broken archaeological artifacts based on 3D scans (project-gravitate.eu); in a theoretical work package, this pulls in my earlier work on geometric path planning and mathematical morphology and offers an opportunity to study finite elements methods from a GA point of view.
GA clears your mind and your software, even when you decide to stick to LA in practice (at least, in the beginning). The disgusting number of different terms and techniques in LA which are all, in hindsight, ways to avoid using the outer product are a good example. Once you realize that outer product exists, much of the operations described in natural language (like ‘span’) coherently collapse to elementary and compact algebraic operations under your own control. Certainly, in computer science where 3D is just not enough (the spaces involved in machine learning are very high-dimensional), the outer product MUST be taught. And once you have the outer product, you might as well absorb the geometric product for generalized projections and rejections. As for operators, use rotors instead of quaternions, so you have something that is real and that generalizes to n-D.
After I just learned GA, I was amazed by the clarity it provides at the computational basis for geometry, and its new elements and operators at an intermediate level of abstraction: it is great to have the very interesting new primitives, especially in CGA (conformal geometric algebra). What can we do more or better once we learn to think in terms of those primitives? I knew I could not develop the consequences for intermediate and high-level algorithms myself — there is just too much reform to do, in too many fields. So we wrote a book to convey the basic tools and the algebraically supported intuition of their interplay, for others to do that work, each in their own subfield. It has not quite taken off yet in the way I hoped, though there are some examples (such as work by Ishida at Toyota on genetic algorithms for road-following using GA primitives and their interactions as the chromosomes and cross-over operations). We need more work at that intermediate level, showing how or when the possibility not to go down to the vector level pays off.
At some point it would be good to collate some convincing applications of the new thinking, directly employing the intermediate primitives (like the Toyota example above, or the application to GIS). Our 2011 ‘Guide to GA in Practice’ contains some good chapters in those directions, but a proper book would need more tight editorial coherence. I would like to see parts on projective geometric algebra since that is so important to graphics (I believe R(3,3) is the right model, but we still need to learn to encode the world in its primitives, the line complexes), and on finite element methods done in GA (with special emphasis on 3D meshes).
Dr. Dietmar Hildenbrand
When I started to work with GA in 2003, I was immediately very impressed how easy it is to develop 3D algorithms dealing with geometric objects and operations based on GA. I was very happy to use a tool providing me an immediate visual result for mathematical expressions: CLUCalc from Christian Perwass. I am still developing most of my GA algorithms with CLUCalc and, in my opinion, CLUCalc is still today the best tool in order to learn how to use Geometric Algebra for 3D applications.
In 2004, when I organized and presented a GA tutorial at the Eurographics conference in Grenoble together with Christian Perwass, Daniel Fontijne, and Leo Dorst, the feedback was positive and negative at the same time.
On one hand, many people were happy about the expressiveness of GA, but on the other hand, it was clear for everybody that implementations of computer graphics applications were not competitive in terms of runtime performance.
I realized that improving the runtime performance of GA will be the key to convincing engineers to use GA in their applications. At that time, nobody really expected that it could be possible for implementations of GA algorithms to be faster than the conventional implementation. But, in 2006, we were happy to present even two different implementations proving exactly that for a computer animation application (the movement of the arm of a virtual character).
Our approach for the just mentioned proof-of-concept application was very specific. This is why our next goal was a general system making it possible for almost every engineer to include GA in his/her application. And, the description of GA algorithms should be as much as possible similar to how CLUCalc ist doing that.
Now, we are happy to provide the Gaalop (Geometric Algebra Algorithms Optimizer) precompiler for the integration of GA into standard programming languages such as C++, OpenCL, CUDA and C++ AMP.
The integration is done based on GaalopScript, which is very much inspired by the CLUCalc scripting language. This technology is described in my book “Foundations of Geometric Algebra Computing” from 2013. Since 2015 this technology is part of the ecosystem of the HSA Foundation of more than 40 companies dealing with new heterogeneous computing architectures. Now, we have this technology available, as well as some other GA tools such as GMac, Gaigen, Gaalet and Versor, but the community working with it is still very small. The future of GAC and its applications in computer science and engineering relies heavily on whether we will succeed in closing this gap.
Today, we indeed have this GAC technology available for easy to develop, geometrically intuitive, robust and fast engineering applications, but there is still only a small number of people knowing it. Exactly at this point, the book “Introduction to Geometric Algebra Computing”, that I am just writing, comes into place. The main goal of this book is to close the gap with an introduction of GA from an engineering/computing perspective. The intended audiences are students, engineers, and researchers interested in learning GAC. This book is intended to give a rapid introduction to the computing with Geometric Algebra and its power for geometric modeling. From the geometric objects point of view, it focuses on the most basic ones, namely points, lines, and circles. We call this algebra Compass Ruler Algebra since you are able to handle it comparable to working with compass and ruler. It offers the possibility to compute with these geometric objects and their geometric operations and transformations in a very intuitive way. While focusing on 2D it is easily expandable to 3D computations as used in many books dealing with the very popular Conformal Geometric Algebra in engineering applications such as computer graphics, computer vision, and robotics. This book follows a top-down approach. Focusing first on how to use GA, it is up to the reader how much he/she would like to go into the details.
Another attempt to gain wider spread is the ENGAGE (Empowering Novel Geometric Algebra for Graphics & Engineering) workshop as part of the CGI (Computer Graphics International) conference. This year, this will be in Japan (http://fj.ics.keio.ac.jp/cgi17/). But, sure, there is still the need of many good ideas in order to attract more and more engineers.
Yes, you are right, I already have some experience with GA at schools. Because of its geometric intuitiveness, it is very easy for children to develop algorithms in GA. In some workshops, I could see that children are happy to solve simple robotics problems which they normally are not able to before university. A colleague of mine already taught special relativity based on GA at school. But the main problem is to make GA really part of the curriculum. Maybe some teachers/responsibles for curricula will use my above mentioned new book for teaching themselves and for introducing it already in school.
Dr. Eckhard Hitzer
Geometric Algebra research is not only revolutionizing algorithm development in many fields (robotics, visualization, mapping, virtual reality, GIS, molecular dynamics, telecommunication, offshore mechatronics, 3D cadastres, navigation, …), it also begins to exhibit superior accuracy, stability, and speed, and is increasingly introduced in mainstream computing ecosystems.
In neural computing and signal processing, Geometric Algebra allows to generalize 1D and 2D algorithms seamlessly to higher dimensions with great advantages for electromagnetic signals, including light and color, and it fully captures, analyzes and reproduces complex high dimensional geometric relationships and topology. It begins to be used for technologies needed for autonomous driving, color face recognition, landmine detection, speech recognition, new forms of tomography, …
Be ready to unlearn often inefficient, inaccurate, unintuitive matrix methods and systems of linear equations. Instead learn to think and work directly in terms of geometric entities, their relations, transformations, and interactions, all efficiently and invariantly expressed directly by geometric algebra entities and their products. Resist the initial temptation to fall back into coordinate system component techniques, which hide geometric realities behind veils of stupendous numerical arrays. Expect to liberate your geometric intuition, and be able to work with an advanced single universal integrative mathematical system for whatever problem or task you may face in the future.
Organizing sessions and workshops at major science and engineering conferences is a good way. International collaborative projects might be another. Submitting research papers to all types of science and engineering journals, when the applications topic permits that, rather than highly specialized journals. Preprints published ASAP on servers like vixra.org, preprint.org, etc. and open access, will also help. In addition, sharing lectures and software demos on YouTube will help interested students, professionals, and engineers to know about geometric algebra even outside formal educational and academic workshop settings.