Python package for symmetric space geometry. Parametric Riemannian computations on GL+(n)/SO(p,q) with applications across all five domains.
# Clone and install in editable mode
git clone https://github.com/sausterm/OmniSciences.git
cd OmniSciences/omni_toolkit
pip install -e ".[dev]"
# Run tests
make test
SymmetricSpace, DeWittMetric — parametric GL+(n)/SO(p,q) with geodesic distance, log/exp maps, Fréchet mean
LieAlgebra — structure constants, Killing form, adjoint representation, root systems
RicciTensor — Ricci curvature, scalar curvature, sectional curvature on symmetric spaces
EigenDecomposition — eigenvalue decomposition, V+/V- splitting, spectral analysis
RGRunner, BetaSystem — renormalization group running, coupling evolution
ColemanWeinberg, Particle — one-loop effective potentials, symmetry breaking
QuaternionicStructure — complex/quaternionic structures, Ja endomorphisms
GenerationCounter — index theorem computations, generation counting
PatiSalam — Weinberg angle, gauge coupling, fermion content, proton lifetime
DeWittBCIClassifier — EEG motor imagery, curvature features, SPD classification
from omni_toolkit.core import SymmetricSpace
from omni_toolkit.applications import PatiSalam
space = SymmetricSpace(4, (3,1))
ps = PatiSalam()
print(space.dewitt_signature())
# (6, 4)
print(ps.weinberg_angle())
# 0.2312
from omni_toolkit.applications import dti_analysis
import numpy as np
D = np.diag([1.7e-3, 0.3e-3, 0.3e-3])
result = dti_analysis.analyze(D)
print(result['fa'])
# 0.8165
print(result['tissue_type'])
# 'white_matter'
from omni_toolkit.applications.eeg_bci import (
DeWittBCIClassifier
)
clf = DeWittBCIClassifier(
n_channels=8, n_classes=4
)
clf.fit(X_train, y_train)
acc = clf.score(X_test, y_test)
# ~75% on BCI-IV-2a
from omni_toolkit.core import SymmetricSpace
# GL+(3)/SO(3) for strain tensors
space = SymmetricSpace(3, (3,0))
# Geodesic distance between strains
d = space.distance(strain_A, strain_B)
# Affine-invariant, no swelling
≥ 3.10
Required
Required