TanGA
Geometric algebra library with a C++ core and a Python interface (pytanga).
→ Full documentation — C++ and Python API guides, architecture overview, notebooks, and developer workflows.
Key Features
-
High-dimensional algebras — Sparse blade encoding for vector spaces up to 31 dimensions with arbitrary signature. Storage proportional to non-zero coefficients, not the full $2^D$ blade space.
-
C++ template header library — 100 % C++17 headers with
constexpr-friendly templates. Compile-time dimension and signature let the compiler inline blade arithmetic down to machine instructions. -
On‑demand Python compilation — pytanga generates, compiles, and caches pybind11 bindings on first use. Pre‑compiled wheels for common configurations ship with the package — zero-setup
pip installfor most users. -
GA formula solving — Convert product equations into linear systems, solve with Gaussian elimination (floating-point or modular), and reconstruct the unknown multivector.
-
Matrix and tensor pipelines — Blade-mask-aware matrices and labeled tensors with Einsum-style contractions, broadcasts, and slicing on multivector data.
-
Geometry analysis and creation —
analyze()extracts geometric meaning from a multivector;create()builds one from primitives. Works across E3, P3, N3, and PGA3 algebras. -
Interactive 3D visualization — Live WebSocket-driven Three.js visualizer in the browser. Export to standalone HTML, glTF/GLB, PNG, or MP4.
Installation
pip install tanga-py
No C++ compiler or build tools required. pytanga ships with precompiled bindings for the five most common algebra configurations on Linux (x86_64) and Windows (win_amd64).
If you need a custom algebra not covered by the precompiled set, add the
compile extra (pip install "tanga-py[compile]") — see the
installation guide
for per-platform compiler setup instructions.
AI Tool Documentation Access
When pytanga is installed, the markdown documentation is packaged inside the
wheel. AI coding tools can expose it by calling pytanga.install_docs(), which
creates a symlink at .dep-docs/pytanga/ in the current repository root.
License
TanGA is released under the Apache License 2.0.
Every source file carries an SPDX-License-Identifier: Apache-2.0 comment.
Release files for tanga-py 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tanga_py-0.4.1-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| tanga_py-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
| tanga_py-0.4.1-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
Total release size: 3.6 MB
Release files / tanga_py-0.4.1-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | tanga_py-0.4.1-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
e98bcf29d0a49a9a180c2995b40bc8c6f405cfbedd40953b1a983d0c60faab4e
|
|
BLAKE2b-256 checksum How to use checksums |
4913f9217b5957240f104fb37d7c3444dc033996d8235da32b226d21872fd9ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Release files / tanga_py-0.4.1-py3-none-any.whl
| Download URL | tanga_py-0.4.1-py3-none-any.whl |
|---|---|
| Size | 546.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
20313bcf5b3a60ff677829af0c51181c81f7381d351cfaf90e8f40c0fbad4e69
|
|
BLAKE2b-256 checksum How to use checksums |
1f3101f46a9dd45d30e72f37960d0d80a43ac8d46e5fa6f7eeff6d57b13c7f95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Release files / tanga_py-0.4.1-cp312-cp312-win_amd64.whl
| Download URL | tanga_py-0.4.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1937c341f3d9b280c7a01d5bfe05649ddac72edbfc2a928bf83836475a3eeefc
|
|
BLAKE2b-256 checksum How to use checksums |
2391f93739c069ad3e33dc7bb5d7243727605386c7cb0394a9985cd84d0c69aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|