FastQuat - High-Performance Quaternions with JAX

PyPI version Python versions Tests

FastQuat provides optimized quaternion operations with full JAX compatibility, featuring:

🚀 Hardware-accelerated computations (CPU/GPU/TPU)

🔄 Automatic differentiation support

🧩 Seamless integration with JAX transformations (jit, grad, vmap)

📦 Efficient storage using interleaved memory layout

🌐 SLERP interpolation for smooth rotation animations

Quick Start

import jax.numpy as jnp
from fastquat import Quaternion

# Create quaternions
q1 = Quaternion.ones()  # Identity quaternion
q2 = Quaternion(0.7071, 0.7071, 0.0, 0.0)  # 90° rotation around x-axis

# Quaternion operations
q3 = q1 * q2  # Multiplication
q_inv = 1 / q1  # Inverse
q_norm = q1.normalize()  # Normalization

# Rotate vectors
vector = jnp.array([1.0, 0.0, 0.0])
rotated = q2.rotate_vector(vector)

# Spherical interpolation (SLERP)
interpolated = q1.slerp(q2, t=0.5)  # Halfway between q1 and q2

Contents

Development

Indices and tables