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.3.tar.gz
(123.9 kB
view hashes)
Built Distributions
gdmath-1.5.3-cp312-cp312-win32.whl
(436.0 kB
view hashes)
gdmath-1.5.3-cp311-cp311-win32.whl
(432.1 kB
view hashes)
gdmath-1.5.3-cp310-cp310-win32.whl
(432.3 kB
view hashes)
gdmath-1.5.3-cp39-cp39-win32.whl
(433.3 kB
view hashes)
Close
Hashes for gdmath-1.5.3-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99181eba840f73f7da7a20190df6b6c016ee058ca6ec4c9b76dedc352ba20284 |
|
MD5 | 516a0f73653907505d8f4a9177f038d5 |
|
BLAKE2b-256 | d63aefdba6225e5e1b571cf35fcf39dc4d0e8adeeb5511d147bf63a755aca06a |
Close
Hashes for gdmath-1.5.3-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0384ef2a3bfb34c9d92d1ba16a67b85d6c6e5052a7606ca903fc15bd7cbe9ee5 |
|
MD5 | fb913b40b8008e90037cc2e1cdbb4f29 |
|
BLAKE2b-256 | e610df2e9a3bb85295a7c875c0f5295359d5cc115cf8bfa81c9c1c1aa7799ae5 |
Close
Hashes for gdmath-1.5.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 520ba33038fb9580b9e003c848da5c82398b5baa3d40971ff058203081f3316a |
|
MD5 | 5a2cf789aea1f243115037454e4bad3f |
|
BLAKE2b-256 | 9d870b5fbf3a3a08596f92631301cde980aa094917496676c900315166af106b |
Close
Hashes for gdmath-1.5.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83bd18cee94cabfe94efb09e88efaff1f22bd33e6830ee62cde7a8c98ff40118 |
|
MD5 | a2d73d493507132a406969c30ff29efb |
|
BLAKE2b-256 | 9bc115430a566a7138442700dbb52257f2358cf7d4b309491bd4682d93824b7d |
Close
Hashes for gdmath-1.5.3-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94ee373760ee316d307b1f30f145db07d575ed5d4430cac17e2b0aeadabcb0a9 |
|
MD5 | 5dde04ecde0511a04391cc47dac9369b |
|
BLAKE2b-256 | c76606daf1397630e73eac07b1702494253dedc10fb8351be6925596433f0899 |
Close
Hashes for gdmath-1.5.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7836d4a698548af2aa78a7ac22349958db46cc829fb1dec99aacb082345dc107 |
|
MD5 | 3271a1f01b7b7a2d0c5cbfbfc3b6e74b |
|
BLAKE2b-256 | f1ce13956e5fa341c599882bc1ee0d098a71938b73921dbea7d55550d1f3e83e |
Close
Hashes for gdmath-1.5.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1b3de0d08045f2f69a3f29689809c3815544f4e4cfa024e0c419b20b9d92ca7 |
|
MD5 | 6d362c1922d8614aea0f96d10cd30db7 |
|
BLAKE2b-256 | fe9f5ab0e3d28f240f4acb4b52f7a561843344c81161da559b20a7608b5e66b5 |
Close
Hashes for gdmath-1.5.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7df999ae341df916b42634e08f854273c63531598bdb3b202627481e8c652d08 |
|
MD5 | 7399159dcdb89963e908dc09c8090ca4 |
|
BLAKE2b-256 | ebfa750245ecef45247920193dc8fdc74f3cb3696b628d19cf1b0611e2e8f481 |
Close
Hashes for gdmath-1.5.3-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88a7a4789900f71f38ae60d86ebad9cbc35f96bf961213b71dd212f389f97627 |
|
MD5 | bbbfddf52791e8b8957460ef604dc92c |
|
BLAKE2b-256 | e9539b22635eb8bfd69b7ee6be7134df04d1d23505c5e08108eaee4ac895181f |
Close
Hashes for gdmath-1.5.3-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2528003ebb5f495d47108492357129a1b8ffd9b3af5eafeb4932b069ccafc6e |
|
MD5 | 96f49fcee4d591c0753b9d6da42ef241 |
|
BLAKE2b-256 | bff0b8978be5e7b8563d9ed125492ff4e1f8c7b151a92d03a961e0e243214e3a |
Close
Hashes for gdmath-1.5.3-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa75b238f02434ed2dabf770471ea06dba9db581fe93a24c05778382064eb836 |
|
MD5 | 8fdca61755a40c29de00586abefd3f07 |
|
BLAKE2b-256 | 3bd78ed276c54ad59d7bdfd3a10a139c6ffbf2c12b1d7dd5f449effce15c5617 |
Close
Hashes for gdmath-1.5.3-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0a843b44aea1453d806d27c0070dce1c44ce172ae5afeeba6234f91d679d1fc |
|
MD5 | a12fb49371ce337f3fda73e43c87427a |
|
BLAKE2b-256 | 1d8b82882dc4fcc2a6d466e2b698c853cc33a51a92b4df2e782b97ff81ce36c2 |
Close
Hashes for gdmath-1.5.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10538e2e58e4394b450790aaec4ef68394412fe6457edcfdce2086574382e87e |
|
MD5 | 0c312825f7f4692efc1054784e1a54bb |
|
BLAKE2b-256 | 47f2265832071f4ad73734dcbbd70e30dfb245cff0afc1701c1edc653fc19744 |
Close
Hashes for gdmath-1.5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d30611aad9535e4dd33c7e55c3a6aff5394a17385d30081d59644c097feb82c |
|
MD5 | ea5d7ea669585433eb2a0a8f387d4786 |
|
BLAKE2b-256 | fb0f283b13cd346121724c2363a8a9dc5736795d6bc1ebc71fd8396bdb39458e |
Close
Hashes for gdmath-1.5.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7167c237439351bb7721770a47c62d40bae07a17f262eaca9fe45cddc85181c7 |
|
MD5 | 043ca5d3f8a5526953710ba1160c9a95 |
|
BLAKE2b-256 | 117e8f9c52751a50ce40e059d6f84fa585a22f8b1c12f4948cd72a79e832e4a4 |
Close
Hashes for gdmath-1.5.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f04f847bb396823dddb96dbd31b4e5c19732a202f64a4a1978ac9ec429a3810 |
|
MD5 | 9edee49b585f9fefddc6dd82d6875a3c |
|
BLAKE2b-256 | ae1e2e325cbb31404ec8381ed8bd3ab2a11699610dd257a3c2d67cce0cc48bc3 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 862ad6f937e2ab68e7bfba2960484d3def6362d20051923bd9b02af46bfec982 |
|
MD5 | f9816d17be129d2be0368d3488f74ae9 |
|
BLAKE2b-256 | 89c995ec63de09e4ac009b55add34119b7891d20e0ca040edfc09963d8d8e771 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba0ad8a117804137bd0a7611b99db975addac1560d5b991aa1b308bbc0081a40 |
|
MD5 | 30d3f9c75d40aaad1fe147bacbc69937 |
|
BLAKE2b-256 | 8ebd5fa6a9dc95d0405a23db8d583b0272f16bc58bec5f572f9117936ebf0382 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6385c494fd70756174cab79aa39466b645c0048d7371c0b8bd1a907144d0ccd6 |
|
MD5 | f5b4783d300a4d213bbb6b8abdb78450 |
|
BLAKE2b-256 | 7f0448f0365588bc05f8497df8bf640103bdb18e872a1a6b4765b5e4efb8f443 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d11f489ddd8df96bb570bb2617d9e6307953ede70fd6d7a89368579432f60fc8 |
|
MD5 | 58fcb2be778bd58b8759567702c8c4f4 |
|
BLAKE2b-256 | 4985cac099d809445ee7df193545dfde8097f9b974fe0fcccd5c41d4f7e82b58 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ce438882df17b457f70ff0fce0756053d8301f384b279d35806f9a55cc730e1 |
|
MD5 | 833110ae60ee057a264f966d442d9fc1 |
|
BLAKE2b-256 | a0df82364318e76eea815049cf624829e33aa55cb3e5488dcf992253192ea632 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb43c2ace40acf1e583958e12bddd19f40f46dabf6d85db772b8c3f24a36c6ac |
|
MD5 | 602f54637524956f2af26acaeec2e5b8 |
|
BLAKE2b-256 | 86c2f58bfcd8bbdb748884636d2fb794da9aebfff7a33f59ee3ed2f14c77eeb6 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ab838671e8e4c7a8c64cb7ce35539bc3ef36356f42a1f8430cd730bf2127847 |
|
MD5 | f319b31537e30e59821c9cdd548359f8 |
|
BLAKE2b-256 | e94ea1dc8ddae728e8b388caf5e26434a65f34136f94cd8e9f2f5296edc3a9d2 |
Close
Hashes for gdmath-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f56b79a15141894d1cdd36bd356550e9d575cdff820f506c6ac933b683608ee4 |
|
MD5 | 14c5187dea2c1474738a18568969a504 |
|
BLAKE2b-256 | 6a876dc8192dd6a7af3f93f5e116766787e12cf4e12c9021ed8c185bad649f8d |
Close
Hashes for gdmath-1.5.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46713eb06196bac5adea3278ac918b891a43911a44282768b1d8483148a5a600 |
|
MD5 | 2b3b167f8aa145f1a54f4b67d929d665 |
|
BLAKE2b-256 | 71d9492c2f2c6ea9d5c26b7b7f0e92e26f892e97d790cd058bbbd94d3e5723d5 |
Close
Hashes for gdmath-1.5.3-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3822a4766e0ebfb664be1c78b9af0e51f502ac50181a1969bb8056f4ae7b3b1 |
|
MD5 | 51d8ca02d7502294fc5b5ffb4c61cbe3 |
|
BLAKE2b-256 | d162293901a385bd1d5185353f2f3d73c0990d21b55e5edd93a004fe5750bb55 |
Close
Hashes for gdmath-1.5.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78327ef23d270538a547d0027bf4e5ba038c94864bcd2c7fcb4e9b6633c86c0d |
|
MD5 | 4b45ceb0be86b505fac107902fe3224a |
|
BLAKE2b-256 | 986c4af6d2dd800546e9d21adc2a4a7c047a10b23bce2d702bff7c1daebde3dd |
Close
Hashes for gdmath-1.5.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d353d139f3d1eb87ce39da86c11676d7260a0a801007166254a352cfdaab7dd2 |
|
MD5 | 1ed1b3ee2c5b0bdef09e964647011dd9 |
|
BLAKE2b-256 | 315a9ee59b5c44bfe5bac36a8708c92ff711b5e80f8f0facd8c1cd4798344f1a |
Close
Hashes for gdmath-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d16d984b0f72e291cb7eef54b0eb99d2267ea6b5a052d5d99ec834fb804e6214 |
|
MD5 | 412de477197025659bc91362a65d935e |
|
BLAKE2b-256 | 4869f512e7988335e8c93f0fa447c0e60d9c8898cdce0a730b0257ea168c8904 |
Close
Hashes for gdmath-1.5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29059b99059fa9bde9f4b939cd3cbe0283852f199d10bf8bc06bec6c4a7ee972 |
|
MD5 | 04d21d2cb8e8c12475683ecd1fbad674 |
|
BLAKE2b-256 | 982d455d7c57bf5835c83b6d698a709066a5e3391888f2f0a4b5574692a17039 |
Close
Hashes for gdmath-1.5.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4353f1439db30d1d0982ba1672be57f3bbba0bd026bc5e624d8723039b951c5a |
|
MD5 | a9e1fa817c16e18f38c19d8dbaa36f24 |
|
BLAKE2b-256 | fcca4afb3d6e1491163a503ab6b2615df60a6aa522ffa29d06c113184777b6fc |
Close
Hashes for gdmath-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 970abfc29c662092ad44ffcbb806e711a76f50fb25ee510cb17103f2b5bb4b1e |
|
MD5 | 12d15b72bccad5acf58d2ce4a7f6a37f |
|
BLAKE2b-256 | 998e059b08fa51461e8fc0b5d10566c9a999f8d146cb740e8904181ba889066f |
Close
Hashes for gdmath-1.5.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 530a931ddf525cfded85a68ac0eb4ab1b2144b3988b8dfa8c5281010504dea6a |
|
MD5 | 31fca76a4b78d2192596d1f2a4085d19 |
|
BLAKE2b-256 | e9bac146421b36796f224bdf4854bcb44d56191d91c9e62d65624132dddace6c |
Close
Hashes for gdmath-1.5.3-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2078c61535a5f5b69ce5c0698576d5e828ade384203f67c7e912849524e4c8a |
|
MD5 | 226048dd436fc72e889333e9d7526d73 |
|
BLAKE2b-256 | 5d727a2b5165ddf801794ba3a5617595f3c46c8ee4311bd6e5047fdfa4b1d2d7 |
Close
Hashes for gdmath-1.5.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a6465452867ff4954aa943f4ed929f0238ee284f9640a013ab970cc75d03dd2 |
|
MD5 | c3531e56850365fe4b2105dd44724419 |
|
BLAKE2b-256 | 86714e44182deb24c2ed10a48f868835d7de459cbafda4ab66fe834e673f0b08 |
Close
Hashes for gdmath-1.5.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86abf337a736b085a4695b8f419ba610ba297e47df458ce2fa4bbb5e589af95f |
|
MD5 | 2b5ea0ed9b8a4c325b7dcfa2d117423a |
|
BLAKE2b-256 | e9c3a85ac7d49a0291eadddd08ebea7e6fe0e83efd37ea5fa30e365e423c5d1b |
Close
Hashes for gdmath-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eaca099875ac06d785b7fe484be0d2036bc142aa3d31014aa90c238cbe549ca2 |
|
MD5 | e78e1b3d8a9bd068db017dbf551e605a |
|
BLAKE2b-256 | 2a09772d3db07006198b038debc4858a7954a3b8bf348145b060229780b08f26 |
Close
Hashes for gdmath-1.5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97dd6327070bb5100ae5a4026c1f3294ff64c9e559fd63c1d5ea48a41388cd80 |
|
MD5 | 50866d071eefc57ca77c151da4662fb5 |
|
BLAKE2b-256 | b64739011d48aa1d1372e379f523400dd2b922f5f7802259ec3bd346ebd57e62 |
Close
Hashes for gdmath-1.5.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf139f1a48c4cb47a8f55bd183cf6cb0621149b07424e5b53ab4ed3815d35d71 |
|
MD5 | f7f23881dc1b36484a2996dbf2d87558 |
|
BLAKE2b-256 | 00524bca4359822c9c1af7c32df2eea2cb595a429376c6b4190ae1ddd2bcf7da |
Close
Hashes for gdmath-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a711fc82d158d35d13d7c4a6b8b598431a9fac319e5fc0d72e3a4a52b3ea671 |
|
MD5 | f02927a6b071207f5e1d0da310bdcc6b |
|
BLAKE2b-256 | 8edb75cce7deba6637463397e9cf72000443a2c12e72876da5279490b0f94517 |