2024-11-17

geometric algebra

a collection of links and notes.

soon to be updated as i progress with the software implementation sph-ga.

links

1

2

main structures

  • scalars: representing real numbers
  • vectors: elements of a vector space
  • bivectors: oriented plane segments formed by the wedge product of two vectors
  • trivectors: oriented volume segments formed by the wedge product of three vectors
  • multivectors: general elements comprising sums of scalars, vectors, bivectors, and higher-grade elements
  • blades: simple multivectors obtained from the wedge product of linearly independent vectors
  • pseudoscalars: highest-grade elements in a given dimension, analogous to oriented volumes
  • spinors: elements that represent rotations and reflections

main operations

  • geometric product: the fundamental operation combining the dot product and wedge product, encompassing both magnitude and orientation. this is how elements are multiplied
  • inner product (dot product): measures the scalar projection of one vector onto another
  • exterior product (wedge product, outer product): produces higher-grade elements, encoding the oriented area, volume, etc
  • conjugation: the operation of reversing the order of vectors in the product
  • reversion: taking the reverse of a multivector by reversing the order of all geometric products within it
  • grade projection: decomposing a multivector into its constituent grades
  • clifford conjugation: the combination of reversion and sign change for each vector
  • norm: measuring the magnitude of a multivector
  • dualization: mapping between multivectors and their dual counterparts via the pseudoscalar

conformal geometric algebra

in conformal geometric algebra (cga), a point in euclidean space is represented as a null vector in a higher-dimensional space. specifically, for an n-dimensional euclidean space, cga embeds this space into an (n + 2)-dimensional space with a signature (n + 1, 1). the point p with coordinates (x1, x2, ..., xn) is represented as:

p = x1 * e1 + x2 * e2 + ... + xn * en + e0 + 0.5 * (x1 ** 2 + x2 ** 2 + ... + xn ** 2) * e∞

where 'e1, e2, ..., en' are the basis vectors corresponding to the original euclidean space. e0 and e∞ are additional basis vectors with specific properties to facilitate the embedding, introduced to handle infinity and origin, and operations like translation, rotation, dilation, and reflection. e0 is often associated with the origin in the extended space. e∞ represents the "point at infinity," enabling the conformal model to handle infinite points, essential for representing directions and ideal points.

the null vector condition is given by:

dot_product(p, p) = 0

this condition ensures that the representation is a null vector in the conformal space, preserving the geometric properties of the original euclidean point.

rotation

rotor = e ** (-axis_orthogonal_plane * angle / 2)

where axis_orthogonal_plane is a unit bivector.

without exponentiation, the rotor can be constructed using the trigonometric functions that define the exponential form.

rotor = cos(angle / 2) + bivector * sin(angle / 2)

translation

rotor = 1 + 1 / 2 * translation_vector * e∞

rotation followed by translation

rotor = e ** (-axis * angle / 2) * (1 + 1 / 2 * translation_vector * e∞)

perspective projection

described in computing perspective projections in 3-dimensions using rotors in the homogeneous and conformal models of clifford algebra.

step 1: reflection

e ** ((angle / 2) * n * e4) = cos(angle / 2) + sin(angle / 2) * n * e4

step 2: inversion

e ** ((1 / (2 * d)) * n * e0) = exterior_product(1 + (1 / (2 * d) * n, e0))

rotor application

result = rotor * point * reverse(rotor)