Numerical geometric algebra module for python
Clone or download

clifford: Geometric Algebra for Python

A numerical geometric algebra module for python. BSD License.

Build Status Documentation Status Coverage Status Binder



Try out a notebook in binder

Or have a go on your own pc:

from clifford.g3 import *  # import GA for 3D space
from numpy import e,pi
a = e1 + 2*e2 + 3*e3 # vector 
R = e**(pi/4*e12)    # rotor 
R*a*~R    # rotate the vector  


This module implements Geometric Algebras (a.k.a. Clifford algebras). Geometric Algebra (GA) is a universal algebra which subsumes complex algebra, quaternions, linear algebra and several other independent mathematical systems. Scalars, vectors, and higher-grade entities can be mixed freely and consistently in the form of mixed-grade multivectors. Like this,





Syntax Summary

Syntax Operation
| Symetric inner product
<< Left contraction
^ Outer product
* Geometric product
X(i) Return the section of the multivector X of grade i
X(ei) Return the section of the multivector X for which ei is the pseudo scalar
X[i] Return the i'th coefficient from the multivector X
X.normal() Return the normalised multivector so that X*~X is +- 1


If you think Geometric Algebra looks interesting and want to learn more, check out the cambridge group page, and here are some great introductory textbooks!

  • Geometric Algebra for Physicists, by Doran and Lasenby
  • Geometric Algebra for Computer Science, by Dorst, Fontijne and Mann
  • New Foundations for Classical Mechanics, by David Hestenes