PyQuaternion

0.9.9 · active · verified Fri Apr 10

PyQuaternion is a fully featured, pythonic library designed for representing and manipulating quaternions. It provides extensive functionality for 3D animation, geometry, and numerical computations, including operations like rotation, interpolation, differentiation, and integration. The current version is 0.9.9, released in October 2020, suggesting a stable but infrequently updated release cadence.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates creating a quaternion for a 90-degree rotation around the Y-axis and applying it to a vector. It also shows basic spherical linear interpolation (SLERP) between two quaternions.

import pyquaternion
import numpy as np

# Create a quaternion representing a rotation of +90 degrees about the positive y-axis
my_quaternion = pyquaternion.Quaternion(axis=[0, 1, 0], degrees=90)

# Define a vector to rotate
my_vector = np.array([0., 0., 4.])

# Rotate the vector
my_rotated_vector = my_quaternion.rotate(my_vector)

print(f"Original Vector: {my_vector}")
print(f"Performing rotation of {my_quaternion.degrees:.1f} degrees about {my_quaternion.axis}")
print(f"Rotated Vector: {my_rotated_vector}")

# Example of interpolation
null_quaternion = pyquaternion.Quaternion(axis=[0, 1, 0], angle=0)
print("\nInterpolated Rotations:")
for i, q in enumerate(pyquaternion.Quaternion.intermediates(null_quaternion, my_quaternion, 3, include_endpoints=True)):
    interpolated_vector = q.rotate(my_vector)
    print(f"  Step {i}: rotated by {q.degrees:.1f} deg about {q.axis}, resulting in {interpolated_vector}")

view raw JSON →