GdMath: a fast math library for game development
Project description
GdMath: a lightning fast spatial math library for gamedev
Main features
- Fast Pure Cython Implementation
- ~20x speedup from pure python(3.12) impl on average
- Based on custom code generation
- Spatial Math
- Vector
- Operators +, -, *, /, @(dot), ^(cross), |(distance) ...
- Fast (compile time) swizzling (e.g.
Vec3(1, 2, 3).zxy
) - Flexible constructor (e.g.
Vec3(Vec2(1, 2), 3)
) - Iterating and unpacking (e.g.
x, y, z = Vec3(1, 2, 3)
) - Works with other libraries (pygame, numpy, ...)
- Transform
- Vector
- All floats are double-precision
- Full pythonic interface & GLSL-like API
- Stubs for better IDE support
Please refer to the wiki for more details
Benchmark
Implementation details
- Codegen!
Custom code generation is used throughout this library.
Every swizzle pattern and constructor are implemented as individual methods and properties (For performance reasons).
As a result, code generation is required so that I don't have to maintain 50,000+ lines of code by hand...
Besides, it also handles vector classes of every dimension and type (e.g. Vec2 Vec3 Vec2i Vec3i) are generated from the same template, so a lot of repetitive code is avoided. There's also a stub generator.
Notes
- This library was initially inspired by Godot's math library. Pun intended :)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gdmath-1.5.2.tar.gz
(123.9 kB
view hashes)
Built Distributions
gdmath-1.5.2-cp312-cp312-win32.whl
(437.6 kB
view hashes)
gdmath-1.5.2-cp311-cp311-win32.whl
(433.4 kB
view hashes)
gdmath-1.5.2-cp310-cp310-win32.whl
(433.7 kB
view hashes)
gdmath-1.5.2-cp39-cp39-win32.whl
(434.1 kB
view hashes)
Close
Hashes for gdmath-1.5.2-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6f80dbf68987f49799561f0391a7201f4190aeea9f514488b9c09a2ac3e96c8 |
|
MD5 | baee118a3542cac926541ac3c9ca6fe3 |
|
BLAKE2b-256 | 63f63759c585759d08a54c4aea0cd77e4abb5e47223c8a57a56b4e2e7b2ab704 |
Close
Hashes for gdmath-1.5.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd7694036e6aebb33c784769c28182bcd1a6cb37cbffbfff25c3fe70c8ad438b |
|
MD5 | 779c82754406ef862c49328760cf85ab |
|
BLAKE2b-256 | 16cf50ce1bdd98f7355c606ac31f41ab4f29e2a62ac2a4209101b59309563988 |
Close
Hashes for gdmath-1.5.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c17f8167f2e3eebeb82da89d88981bb43e1b2a0c1576ba217e865195e0a55f26 |
|
MD5 | b9bf7bde360a044886f09f804e4c3505 |
|
BLAKE2b-256 | 899b6261ce4a81ed906efbda5e63d2d8b6ad4eed167c40ff5b68311e9eba4d0a |
Close
Hashes for gdmath-1.5.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba4fd579bd5be27934088f0ddb1b748a09c8ccd724afdff824465f694dc9ed42 |
|
MD5 | 1fad01a774f13643a21e88416e019851 |
|
BLAKE2b-256 | d5fcd1916762f224ba27df3adf572d5379a8db8296443f506d8f4813445f6069 |
Close
Hashes for gdmath-1.5.2-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68c02c9bdae632e5d81a9547570bc06aa3a611a3c38fcce26a4333521e7e9546 |
|
MD5 | ad969d0c3fd5d6a94a8f0a9781ad9737 |
|
BLAKE2b-256 | a5f9de6e3ec014daa354b9fb8684ecde72dd8efb5860e221d1873a67ae7747a4 |
Close
Hashes for gdmath-1.5.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b074c0c4e8f946f57a6286ede8e5e48c1c42df74681daa2df9fea9aa533a0625 |
|
MD5 | 1bae9bcb24602daf9c6532fcb5c44f68 |
|
BLAKE2b-256 | 070991de022e02243cbd88a29eea09c47f03b7c066e1b6e04edda289f3c1c87d |
Close
Hashes for gdmath-1.5.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 543e797c03128bb03d8c71b6477aa84f850514886e9ae7a8c7efd63be887a389 |
|
MD5 | 67e6f19b3080add1510f042d90f9cf09 |
|
BLAKE2b-256 | 4e54c354878d2986c390927864f54ef23e6bc24b1dcaec1592b922ad5f477277 |
Close
Hashes for gdmath-1.5.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f6af0ecb459d872add55062b929d9bc193c804991bd4f8f89a91b59231ee982 |
|
MD5 | 56930f877162305d1541762504710abf |
|
BLAKE2b-256 | 8740e3d55760a3b2f9346307210e465cb072f00ab69ccbc309caafedea3b3d53 |
Close
Hashes for gdmath-1.5.2-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98662cea9da882505a5411c2fc434111e9d51128cd7fee6c6601a7cd9bb9c830 |
|
MD5 | 651cacf1804847deadb84cbc22384d36 |
|
BLAKE2b-256 | 020942d256b2ad0cb612032ab708800e058e9bdd5851ffeda17dad00093fe8a8 |
Close
Hashes for gdmath-1.5.2-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef630941c0b61c5597ba25026799a02c8a55d1edebfb6f26b614139361c4eddf |
|
MD5 | 525e65a5cd94573ef1f1eb76a1d9a366 |
|
BLAKE2b-256 | 3f658f4a2341a8faa416e46ee9327b438bfaf5ad2070f23acea500fd910c06fc |
Close
Hashes for gdmath-1.5.2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a24c3376cba93a203f6471fa1a8a7849c97fe1a51e6ac9a6a2bf95bad4afbca |
|
MD5 | 25b7e28f61bfcab0d7bed1ffd61a4894 |
|
BLAKE2b-256 | a1e1f5719a1b96212cca9462281bce71d1ca5e598a14c37160dd1669389d57b8 |
Close
Hashes for gdmath-1.5.2-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c085c38f04d848b1ab70897277cc1deee2ecd9b04cf20c296983380b659f4c85 |
|
MD5 | 1ce8e9f2d0d0802e277fac872ae696d8 |
|
BLAKE2b-256 | 5ce121492fbfcd09d9891699cc26944210a415de20afaf1375f75c0360859a5f |
Close
Hashes for gdmath-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d77ea43020b7b013f08b1556350e25eaba7d1ff4e9c1ea8f3990b23b476f34b9 |
|
MD5 | 4ede6e1577b3240760bb074c1d695a99 |
|
BLAKE2b-256 | 60e7fe5e9861669b24fcb92dd89d0541bbe4e256548ec3662a5dd6d4b6f86735 |
Close
Hashes for gdmath-1.5.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3311e9f497338c22f68fb50dc5e2e8c7b2db65e42387b9d8625a788a8d0aa1c |
|
MD5 | 3c7a0ce3a567728a39afa196fb220a16 |
|
BLAKE2b-256 | b62e9df8ac2174251051bb249476441e9ff57202922f194780878a6fa183c805 |
Close
Hashes for gdmath-1.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef753c1195bb3b3fde1c152f6995efec36e24be6ab03061c47f428d0a809b23d |
|
MD5 | 5a1b2fc54c27f5c1fde4d3c61679e213 |
|
BLAKE2b-256 | 5763a0652101fcdfad4f322db121d46c6c4d36bb5f912c7434c9b8fa98b9d521 |
Close
Hashes for gdmath-1.5.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89e57669492c41c4944924593bdb3f0ba669ac295b8bf584a8d6e58e3c4dd106 |
|
MD5 | 88eb4ffe1c6b2f18c0003fd069d9a31e |
|
BLAKE2b-256 | aafbb21931a8d74d543989bd3567cddef4c0173414c9dbe7d11243bd89b58bf7 |
Close
Hashes for gdmath-1.5.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 381001b3313564b05b0bbadc5027f009fc8053724a659f1b59195e3c7eccb915 |
|
MD5 | d6b4ddbe4d95f87f49e956ca8e97993c |
|
BLAKE2b-256 | 02f10e692cc241e066195e70fb1944b50983ddd75d4e7075ba39b42cdf09e121 |
Close
Hashes for gdmath-1.5.2-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f585d5f712ec25de9d67421dd9ede2dd7257a88c4cee0f83d78a1d695feb415b |
|
MD5 | a9fc6b8b8b7bbf12898a9cb78441ae1a |
|
BLAKE2b-256 | f1a531131ccadc97298e4c0cae9b82a61035ca158a92ef57cbd89245160d620e |
Close
Hashes for gdmath-1.5.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29c7137da3f4b357390de59850eea4b1959c287c523acf5ad4a115b4be072da8 |
|
MD5 | 23cfa76e343f61848d260f8947781d12 |
|
BLAKE2b-256 | 0e92b948a76a08426dce5519f68aae8cc8d3fa4b65b962e113dcb7da76f2010a |
Close
Hashes for gdmath-1.5.2-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0eb787cc507381e611c5e505d2290193adb6affd2df360a4a1ae2299b6f39e8c |
|
MD5 | b859099cff083bc0fd6582316e9a06f8 |
|
BLAKE2b-256 | 1cce81e4cb1d62463bfe16c7085ac4826c1e9389841dac496dbaa8b31c85d7ea |
Close
Hashes for gdmath-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d763ab444e9209845f84f0dc89c36217be5714da90bb14ca6552dcbb2eb4b25 |
|
MD5 | 271f5a8d3f6c40017b9606aa724aa0df |
|
BLAKE2b-256 | 637c8741cdb04b623f0f61706b01e70a937bcd78cfcfd14f4d49de6347bf5c22 |
Close
Hashes for gdmath-1.5.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 990118a51f99d48eb9e4c40f006acb5a37d57825fea346a17aecd49ea42de374 |
|
MD5 | 74495b71bec18e896fdd9d3a7e26e345 |
|
BLAKE2b-256 | 1d078bbdd7ae36a3fb697fe5e7c317f7f3ed6429829f81f604268f54802c7e5a |
Close
Hashes for gdmath-1.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8543b1305405da6fd41ee74df0ed74271815237d684f5a51d814239944889bb |
|
MD5 | ee354f1345033ed5d3c84f4153179367 |
|
BLAKE2b-256 | ca2dfc0a350ca06f519b0d613117ac1573dad1cddd35568050c1905a8b3c6576 |
Close
Hashes for gdmath-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f88197e9566d0216a437c060ce3d9df7db25c88f4cc99d11c07cbcbd6859352 |
|
MD5 | 6ed706edcd72b82c1be2cdd7e00fdb31 |
|
BLAKE2b-256 | 3e9d73b3df7f169cd033ef58d4c65f51d551306e74808a3d3d4718e0386cef89 |
Close
Hashes for gdmath-1.5.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 244a31448878978ea0933ec60e2d29338440a6a611ed3dc37a4a8d9eaa2e9346 |
|
MD5 | bc571ae268128da898a8ecc18368ee07 |
|
BLAKE2b-256 | 928588e8d12d5714e550e0e56140886fd60fa60e779d2f0d6f20996b832910c4 |
Close
Hashes for gdmath-1.5.2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a4870eb07a9cef0c5a6000c2501c337b8beb28215ad6078416795aacf414e8c |
|
MD5 | dde6beb08e5d8add160cf475bfdd88d4 |
|
BLAKE2b-256 | 20eecb2bb7e5475d8f8b038a5a00e2413db39c4b69c5b73212fa8dc232894459 |
Close
Hashes for gdmath-1.5.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2a5c8cdf8a5378f5414962b65ded3e4cb9a7cec0779a6e7e385eef45cf6ddd0 |
|
MD5 | a03655ba68f8d6ecfb1a2e1798ffd36f |
|
BLAKE2b-256 | 2f7d079683d60f1431143ab2e5a93937cfb4f0e592a4bc4283994059e18fcc8c |
Close
Hashes for gdmath-1.5.2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7c010b489fa7eb3d03c434e1f6a4c2f04d3cd722a34649ea4f303021ab6e061 |
|
MD5 | d1450ede08a914243b56994265b29782 |
|
BLAKE2b-256 | 804691a86f50db0e98ec1c9a5623713122b70ef9780f28df438eb6ed73edaa14 |
Close
Hashes for gdmath-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02b96b4b98cb6a3730e8c8e2b2b7b0e7a63933498c6975d2848f710a2881d8a4 |
|
MD5 | 86e1d9574a683aa9d84ad410bc6e08d4 |
|
BLAKE2b-256 | c3c159a0308fdac473b2be19dd7fac3cd95c2bcaa5155e9d6679d0244e39725d |
Close
Hashes for gdmath-1.5.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b255e308fe9d5f5375851194d132ba3af8be7662172d5a2b2c001261677cf757 |
|
MD5 | c1958bdc798d90ddeddc87659be8febe |
|
BLAKE2b-256 | 6b0fb7f2292366699e5849531a12504ac30d783053e753de3bfc28fbce87585f |
Close
Hashes for gdmath-1.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4be3c155800217977352928ffc3c631343519238e54b3883994d7a5d5d6ba09 |
|
MD5 | c723a2a469a6c17cfca2266b1dd04f4a |
|
BLAKE2b-256 | 2fc5bd5282dfc2974ed5f1de8bf8f672efbadb6a826313fa35b2a47ee40f5146 |
Close
Hashes for gdmath-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 389c91b686f924d42e5493176346911e440c7fd797784749d38bc275bb553a4f |
|
MD5 | 103344380e57aecaf48aaa720b35cf81 |
|
BLAKE2b-256 | ba1dab25be4e52e83c1ac5e7026da57a68498485229f3e552a34bf88ab026028 |
Close
Hashes for gdmath-1.5.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d28453e5459ce033cf76cd2b9f625e9181f42850bbf7c7e5b97184e48ac26133 |
|
MD5 | 1e543ee591982d1afddc1790f73b3d09 |
|
BLAKE2b-256 | 0bcadbde78c6de8651ff71049c4d82f1ea7e207e960bf87f5fc6e254b23a6ada |
Close
Hashes for gdmath-1.5.2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e06f5605c5078b2c76494feda77370d8faca3cab037b8b6fc517574fb498b90 |
|
MD5 | bd3355d2073037955965fc8b158cbbda |
|
BLAKE2b-256 | ea28ea5ee53e5530843ffccaec574db5dd7b2d32d4544d71641bc0d12697f610 |
Close
Hashes for gdmath-1.5.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0703c076b96723503e73bc2bcbc85f3e6bb2ba8792e78b1a698a6db410752820 |
|
MD5 | 30df338de905562e441a909d10bf70b4 |
|
BLAKE2b-256 | f3855b647a16f9876326fdd9178b41c5f0fb3699a0c004d6d1df6ba730517b5d |
Close
Hashes for gdmath-1.5.2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6a7ed4a98f833fb159f7ca69ce0119d84e3f5709495a3bf06c95629de9baf93 |
|
MD5 | 98fc3beb5e40217a28b2426f2918b83f |
|
BLAKE2b-256 | 7a0e385d23871916c8270183b3d34bb9332d03eb342dd8f26ac08d2dd0fadfc8 |
Close
Hashes for gdmath-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8c9892c89d322f7cb575fb4a1b1eb318dd8319c4925f517404125ff32e49b7c |
|
MD5 | 66b6bc97fef4549fba34e3e91f7cd30f |
|
BLAKE2b-256 | 4bd78e49d0dbdac5873fd7310fa242e86eb39fba924f6d3357e5176b59ef45e3 |
Close
Hashes for gdmath-1.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58274774b04b23d42b72308133888bfb5e8c829853bbd0a860053840ed6167cf |
|
MD5 | 442cb3c90bd999edb10a260d95f03e88 |
|
BLAKE2b-256 | dcd92060114f5544365d255923e7d4a378a9a9ae90eefdfbbcdb9c9c7e96aa53 |
Close
Hashes for gdmath-1.5.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bd4a016d18693caf0ce5dbf39ee87586cf7775661c014f0c889ceb40ba83f3f |
|
MD5 | 867f80304eeb4125225b44087e2b5503 |
|
BLAKE2b-256 | fdebb3a4e69795fd1ab95310395bed96247fd7c28f357bc67be1dce7ee1a1266 |
Close
Hashes for gdmath-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18a686a8dce682a4c700d918905c4b940681a0f009fc595971f910e889845adb |
|
MD5 | 27e409797698b5247519a6d240e98ae8 |
|
BLAKE2b-256 | 48c6fe260385169febbab44fba0cb4725f2381dd32ae852a5f6a920ce49d5448 |