Predefined Algebras

The easiest way to get started with clifford is to use one of several predefined algebras:

  • g2: 2D Euclidean, Cl(2). See Quick Start (G2) for some examples.

  • g3: 3D Euclidean, Cl(3). See The Algebra Of Space (G3) for some examples.

  • g4: 4D Euclidean, Cl(4).

  • g2c: Conformal space for G2, Cl(3, 1). See Conformal Geometric Algebra for some examples.

  • g3c: Conformal space for G3, Cl(4, 1).

  • pga: Projective space for G3 Cl(3, 0, 1).

  • gac: Geometric Algebra for Conics, Cl(5, 3).

  • dpga: Double PGA also referred to as the Mother Algebra, Cl(4, 4).

  • dg3c: Double Conformal Geometric Algebra, effectively two g3c algebras glued together Cl(8, 2).

By using the pre-defined algebras in place of calling Cl directly, you will often find that your program starts up faster.


All of these modules expose the basis blades as attributes, and can be used like so

In [1]: from clifford import g2

In [2]: g2.e1 * g2.e2
Out[2]: (1^e12)

Additionally, they define the following attributes, which contain the return values of clifford.Cl():


The associated clifford.Layout

In [3]: g2.layout
Layout([1, 1],
       names=['', 'e1', 'e2', 'e12'])

A shorthand for Layout.blades()

In [4]: g2.blades
Out[4]: {'': 1, 'e1': (1^e1), 'e2': (1^e2), 'e12': (1^e12)}

For interactive use, it’s very handy to use import *

In [5]: from clifford.g2 import *

In [6]: e1, e2, e12
Out[6]: ((1^e1), (1^e2), (1^e12))

For the conformal layouts g2c and g3c, the full contents of the stuff result of clifford.conformalize() is also exposed as members of the module.