Skip to main content

No project description provided

Project description


Minimalist pythonic matrix, vector, quaternion math.


  • SCALAR is a python float
  • VECTOR is a tuple of three floats
  • QUATERNION is a tuple of four floats (xyzw)
  • MATRIX is a tuple of nine floats (column-major)


add(a, b)
    VECTOR VECTOR -> vector addition
    VECTOR SCALAR -> (x, y, z) + s = (x+s, y+s, z+s)

sub(a, b)
    VECTOR VECTOR -> vector subtraction
    VECTOR SCALAR -> (x, y, z) - s = (x-s, y-s, z-s)

mul(a, b)
    VECTOR SCALAR -> vector scaling by a scalar
    VECTOR VECTOR -> element-wise multiplication
    QUATERNION VECTOR -> quaternion scaling by a scalar
    QUATERNION QUATERNION -> quaternion rotates a quaternion resulting in a quaternion
    QUATERNION MATRIX -> quaternion rotates a matrix resulting in a matrix
    MATRIX VECTOR -> matrix rotates a vector resulting in a vector
    MATRIX QUATERNION -> matrix rotates a quaternion resulting in a quaternion
    MATRIX MATRIX -> matrix rotates a matrix resulting in a matrix

mix(a, b, s)
    SCALAR SCALAR -> simple mix of scalars
    VECTOR VECTOR -> simple mix of vectors
    QUATERNION QUATERNION -> quaternion rotation spherical interpolation (slerp)
    MATRIX MATRIX -> matrix rotation spherical interpolation (slerp)

cross(a, b)
    VECTOR VECTOR -> vector cross product
    QUATERNION QUATERNION -> quaternion cross product

dot(a, b)
    VECTOR VECTOR -> vector dot product
    QUATERNION QUATERNION -> quaternion dot product

rotate(angle, axis)
    SCALAR VECTOR -> rotation by angle radians along the axis resulting in a quaternion

    QUATERNION -> angle and axis suitable for rotate
    MATRIX -> matrix columns

    VECTOR -> vector normalize
    QUATERNION -> quaternion normalize
    MATRIX -> normalized quaternion derived from the matrix converted back to a matrix

    VECTOR -> vector length
    QUATERNION -> quaternion length

    QUATERNION -> inverse quaternion
    MATRIX -> inverse matrix

    MATRIX -> matrix determinant

    QUATERNION -> converts the quaternion to a matrix
    MATRIX -> converts the matrix to a quaternion

swizzle(a, b, swizzle)
    VECTOR -> swaps vector elements
    QUATERNION -> swaps quaternion elements

    SCALAR -> packed float resulting in 4 bytes
    VECTOR -> packed vector resulting in 12 bytes
    QUATERNION -> packed quaternion resulting in 16 bytes (xyzw)
    MATRIX -> packed matrix resulting in 36 bytes (column-major)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miniglm-0.3.3.tar.gz (235.2 kB view hashes)

Uploaded source

Built Distribution

miniglm-0.3.3-cp39-cp39-win_amd64.whl (15.0 kB view hashes)

Uploaded cp39

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page