Using Geometric Algebra for Navigation in Riemannian and Hard Disc Space

Werner Benger, Andrew Hamilton, Mike Folk, Quincey Koziol, Simon Su, Erik Schnetter, Marcel Ritter, Georg Ritter


A "vector" in 3D computer graphics is commonly understood as three floating point numbers, equipped with a set of functions operating on them. This hides the fact that there are actually different kinds of vectors, each of them with different algebraic properties and consequently different sets of functions. We discuss what meta-information is required to identify a specific type of vector and review the various types within the terminology of Differential Geometry and Geometric Algebra. We will elaborate on less known facts about the use of bi-quaternions in relativity, and show these concepts used in two independently developed computer graphic software packages, easing implementation and intuition significantly. Another application example is given by a simulation code solving Einstein's equation numerically on supercomputers. We will also describe how the metadata information required per "vector" can be provided in persistent storage, such as for writing datasets of vectors archived within files. A standard way of expressing geometric properties of non-scalar (vector or tensor) values can prevent conversion errors, similar to the way in which the IEEE standard enables sharing floating point values. We will give concrete examples on how to formulate vector properties, and discuss the benefits and potential of this approach.