All Projects → pygae → Clifford

pygae / Clifford

Licence: bsd-3-clause
Geometric Algebra for Python

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Clifford

Taro
A lightweight 3D game engine for the web.
Stars: ✭ 345 (-36.46%)
Mutual labels:  physics
Mainloop.js
Provides a well-constructed main loop useful for JavaScript games and other animated or time-dependent applications.
Stars: ✭ 425 (-21.73%)
Mutual labels:  physics
Awesome Scientific Computing
😎 Curated list of awesome software for numerical analysis and scientific computing
Stars: ✭ 476 (-12.34%)
Mutual labels:  physics
Popmotion
Simple animation libraries for delightful user interfaces
Stars: ✭ 18,656 (+3335.73%)
Mutual labels:  physics
Renature
A physics-based animation library for React focused on modeling natural world forces.
Stars: ✭ 408 (-24.86%)
Mutual labels:  physics
Sicmutils
Scmutils in Clojure
Stars: ✭ 447 (-17.68%)
Mutual labels:  physics
Unrust
unrust - A pure rust based (webgl 2.0 / native) game engine
Stars: ✭ 341 (-37.2%)
Mutual labels:  physics
Randomation Vehicle Physics
Vehicle physics system for the Unity engine.
Stars: ✭ 487 (-10.31%)
Mutual labels:  physics
Sifloatingcollection swift
iOS Swift framework for creating user interface like apple music genre selection bubbles
Stars: ✭ 424 (-21.92%)
Mutual labels:  physics
Advance
Physics-based animations for iOS, tvOS, and macOS.
Stars: ✭ 4,445 (+718.6%)
Mutual labels:  physics
Dynamicalsystems.jl
Award winning software library for nonlinear dynamics
Stars: ✭ 381 (-29.83%)
Mutual labels:  physics
Gazebo
Open source robotics simulator.
Stars: ✭ 404 (-25.6%)
Mutual labels:  physics
Picongpu
Particle-in-Cell Simulations for the Exascale Era ✨
Stars: ✭ 452 (-16.76%)
Mutual labels:  physics
Aframe Physics System
Physics system for A-Frame VR, built on CANNON.js.
Stars: ✭ 371 (-31.68%)
Mutual labels:  physics
Awesome Robotics
A curated list of awesome links and software libraries that are useful for robots.
Stars: ✭ 478 (-11.97%)
Mutual labels:  physics
Gpu Physics Unity
Through this configuration, no per voxel data is transferred between the GPU and the CPU at runtime.
Stars: ✭ 342 (-37.02%)
Mutual labels:  physics
Sofa
Real-time multi-physics simulation with an emphasis on medical simulation.
Stars: ✭ 435 (-19.89%)
Mutual labels:  physics
Psi4
Open-Source Quantum Chemistry – an electronic structure package in C++ driven by Python
Stars: ✭ 521 (-4.05%)
Mutual labels:  physics
Gamephysicscookbook
Source code for Game Physics Cookbook
Stars: ✭ 484 (-10.87%)
Mutual labels:  physics
Pynamical
Pynamical is a Python package for modeling and visualizing discrete nonlinear dynamical systems, chaos, and fractals.
Stars: ✭ 458 (-15.65%)
Mutual labels:  physics

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

Quickstart

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

As linked at the top of this page, clifford is published to zenodo. DOI 10.5281/zenodo.1453978 refers to all versions of clifford.

To obtain BibTex citation information for a specific release (recommended):

  • Run python -m pip show clifford to determine which version you are using (or print clifford.__version__ from python)
  • Click on the corresponding version from this list of versions
  • Scroll down to the bottom of the page, and click the "BibTex" link in the "Export" sidebar

If you want to cite all releases, use:

@software{python_clifford,
  author       = {Hugo Hadfield and
                  Eric Wieser and
                  Alex Arsenovic and
                  Robert Kern and
                  {The Pygae Team}},
  title        = {pygae/clifford},
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.1453978},
  url          = {https://doi.org/10.5281/zenodo.1453978}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].