Skip to main content

Math library for game programming in python.

Project description

ScreenShot

pyGameMath Build Status Code Health Codacy Badge

This is a math library written in python for 2D/3D game development which is also compatible with pypy. I made it while I was learning more about the math used in graphics development and for personal use in OpenGL related projects.
It’s still a work in progress.

Dependencies:

It uses six to allow support between python2.x and python3.x.

Install:

To install the library just do

pip install gem

It will install the dependicies automatically.

Supported features:

NxN Matrices:
  • Transpose

  • Scale

  • NxN Matrix Multiplication

  • NxN Matrix * N Dimensions Vector Multiplication

  • 4x4 Perspective Projection Matrix

  • lookAt 4x4 Matrix

  • Translation (3x3, 4x4)

  • Rotation (2x2, 3x3, 4x4)

  • Shear (2x2, 3x3, 4x4)

  • Project

  • Unproject

  • Orthographic Projection

  • Perspective Projection

  • lookAt 4x4 matrix

  • Determinant 2x2, 3x3, 4x4

  • Inverse 2x2, 3x3, 4x4

N Dimensions Vectors:
  • Dot Product

  • Cross Product (3D, No 7D as of now)

  • 2D get angle of vector

  • 2D -90 degree rotation

  • 2D +90 degree rotation

  • Refraction

  • Reflection

  • Negate

  • Normalize

  • Linear Interpolation

  • Max Vector/Scalar

  • Min Vector/Scalar

  • Clamp

  • Transform

  • Barycentric

  • isInSameDirection test

  • isInOppositeDirection test

  • 3D Vector swizzling, similar to GLSL

  • 3D Vector idenitities

Quaternions:
  • Normalize

  • Dot Product

  • Rotation

  • Conjugate

  • Inverse

  • Negate

  • Rotate X, Y, Z

  • Arbitary Axis Rotation

  • From angle Rotation

  • To Rotation Matrix (4x4)

  • From Rotation Matrix (4x4)

  • Cross Product

  • Vector3D, Scalar Multiplication

  • Logarithm

  • Exponential

  • Power

  • Liner Interpolation (LERP)

  • Spherical Interpolation (SLERP)

  • Spherical Interpoliaton No Invert

  • Quaternion Splines (SQUAD)

Plane:
  • Define using

    • 3 Vectors

    • Point and Normal

    • Manual input

  • Dot Product

  • Normalize

  • Best fit normal and D value

  • Distance from plane to a point

  • Point location

  • Output

  • Flip

Ray:
  • Rotate using Matrix

  • Rotate using Quaternions

  • Translate

  • Output

Legendre Polynomial (Experimental, not complete):
  • For spherical harmonics

  • (l - m)PML(x) = x(2l - 1)PML-1(x

  • Irradiance maps

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

gem-v0.1.4.tar.gz (6.5 kB view details)

Uploaded Source

File details

Details for the file gem-v0.1.4.tar.gz.

File metadata

  • Download URL: gem-v0.1.4.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gem-v0.1.4.tar.gz
Algorithm Hash digest
SHA256 0b0a6a7c1677bf5a80b7d99e62ed3d42ffe9bd32116e2ef6cfc7e04fc02c494f
MD5 3e4a8ec0a61adc64c83c611721ad8b8a
BLAKE2b-256 929beee1882f80d0fe942ef3742d34ea2e492c5c23e660b66c2fc4a82fc1a98f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page