Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

clifford: Geometric Algebra for Python

PyPI DOI Binder Documentation Status Build Status Build Status codecov

clifford is a numerical Geometric Algebra (a.k.a. Clifford algebra) package for python.

Geometric Algebra (GA) is a universal algebra which among several other independent mathematical systems, subsumes:

  • Complex numbers
  • Quaternions
  • Linear algebra

Scalars, vectors, and higher-grade entities can be mixed freely and consistently in the form of mixed-grade multivectors. Like this,

Visual explanation of blades

Quick Installation

Requires Python version >=3.5

Install using conda:

conda install clifford -c conda-forge

Install using pip:

pip3 install clifford

Detailed instructions


Try out a notebook in binder

Or have a go on your own pc:

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

Syntax Summary

Syntax Operation
| Symmetric 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

For installation instructions, api documention, and tutorials, head over to our documentation!

Citing This Library

For citation information, see our file.