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.1.tar.gz
(123.5 kB
view hashes)
Built Distributions
gdmath-1.5.1-cp312-cp312-win32.whl
(437.3 kB
view hashes)
gdmath-1.5.1-cp311-cp311-win32.whl
(433.0 kB
view hashes)
gdmath-1.5.1-cp310-cp310-win32.whl
(433.3 kB
view hashes)
gdmath-1.5.1-cp39-cp39-win32.whl
(433.7 kB
view hashes)
Close
Hashes for gdmath-1.5.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b75b41d02addf0d7b9ef9a9da797b17be6cb4ed1efb7d2015689c3f2c9d5cd25 |
|
MD5 | abd1632a6c451c699a9cf78370e14f07 |
|
BLAKE2b-256 | 151512f74c991bd4bd39490471982c1c5b269d5fd53b98c7511b59e12d70a4ae |
Close
Hashes for gdmath-1.5.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 378775e2ee836a9d7492a022004e314d3a58040d27dbba687980845e8891251c |
|
MD5 | 0be4cb9296616f46c894649b768fbf7a |
|
BLAKE2b-256 | 74cabd48e71f92ce63b943657c15417aa2f6a7ece91e1f65b520ccbfcfbdd46e |
Close
Hashes for gdmath-1.5.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0df81a72c3278a5350a859fcecddab02cd69c5756c160f465d899085d77e560b |
|
MD5 | a5ec31f2dc05ce3a2f02887a114e513b |
|
BLAKE2b-256 | 79e98e9c08e4ad33fd9620ad35ea4d7f0c6f509f923c4db1011b7c8ed99ba830 |
Close
Hashes for gdmath-1.5.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e9d7dfc7d8ae9f1e6625a51dbf3a99d3d08e6568cd3964e98d52f7c8bdfbf9b |
|
MD5 | 0bc8cce0bd233f3dafd39a95f7de9176 |
|
BLAKE2b-256 | c50102afe8d39f5336f74dab901a700ea06e4ada410d3d2453f473e4e16707c3 |
Close
Hashes for gdmath-1.5.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d03f17fda6e0f53b014d7e495a23ef040d7cf49a247290dda79d64d99efd7a3f |
|
MD5 | 637dc5c554b26637d8c16690b230416c |
|
BLAKE2b-256 | ba7edf85310a2d0a9603c88a05d3f57ec9c2850d57a801fe84eaa941c4f1c833 |
Close
Hashes for gdmath-1.5.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ee652152af326a4f099022170ded99872a1c3036ef0fe07b5898dc310e739b7 |
|
MD5 | 28b1fe2eb06986768fa9a6eeeeb5d522 |
|
BLAKE2b-256 | 716e1501cc658154746fb001d809814e0ac9e5f4d876db0548931e80db330510 |
Close
Hashes for gdmath-1.5.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b4632c27d466a4e3b89fd90344014315531eb794b973998f5ba369be2741451 |
|
MD5 | 621da33e11550291b57c3475b22e3bd5 |
|
BLAKE2b-256 | 370af291a8fe9103d3e2606058c577c461b04ed473c7f1c7bc3a2e875ef82ff5 |
Close
Hashes for gdmath-1.5.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e17ba6978b8d7b908bb6eafe7270388da388e3bf5b4cdecdf9ebd51683f5319 |
|
MD5 | 7e2bc5deb2f05dae4e2d9c085bdff45f |
|
BLAKE2b-256 | dcfded3a236ed925bf831954d2f8935130260561bc59b2ac907ad3bda81487a2 |
Close
Hashes for gdmath-1.5.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 661f54036116a9180be34d4d9030a8dcde2b61f2c5a7951ce399e4d2f7bef107 |
|
MD5 | 62bc42a200da6c13f871c078c575a7bb |
|
BLAKE2b-256 | ec38e24c769f3620602f7d28358055f0630d7d0282303b526bbea73c274391cf |
Close
Hashes for gdmath-1.5.1-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 576786f2e0da524b57dbbf75b2cd4f1df1f3300eec7ea86b712ca52d786d58dc |
|
MD5 | 0c44a39f0f086b695e99901bf590c233 |
|
BLAKE2b-256 | 46ef9f3e8e0d4b18ba309931839f8c0fa149029e35a6a19ea9fe0908a5d30213 |
Close
Hashes for gdmath-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa550c2060a1acc796c9d9de815bebf9170c07bf0b3978f32118bf7c6a6aeca6 |
|
MD5 | 652f757285a628bd6a9759517b5a0aab |
|
BLAKE2b-256 | f82e98f61cdf523ecdde59156ff0637ea50feb1d5155c9792c9f985e2aa13d50 |
Close
Hashes for gdmath-1.5.1-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b90ce66a437c6c8e492d96bffd28c8698df22c7691887b516593012c5e587c78 |
|
MD5 | d0db3fc976774805d31e7a9b2631a2b5 |
|
BLAKE2b-256 | 07df14dbe91bbde9dc758d74ce6965160c4ef87002d6d42dd7b9155d55cad5ca |
Close
Hashes for gdmath-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14b1209c6ea19214449ec684d3bbf6e045a011c2dc0e1b0ac60efd13f8b0bb7b |
|
MD5 | 17a46163bfdf5f7360cbccb29644de12 |
|
BLAKE2b-256 | 8ea30c5cb3ca2aab064cf609d75118a245d81706bbf8eb9d75ae9969405523c0 |
Close
Hashes for gdmath-1.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9efeba6c8d3276c35d50514c55dbb84a3fa7bfd0df5943b89b2cd1867939c0a |
|
MD5 | 906eb18dc2113f18ebbd84bbf8d92c78 |
|
BLAKE2b-256 | 6f613247dadf4602c9b68709195cc70ac3ffb1eb773480a2cace144627a43bf9 |
Close
Hashes for gdmath-1.5.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f239fdccd3751232cced531c13af2354d839441a4101e1419f0597d29b43cc44 |
|
MD5 | e70db0afc70f68b3314bd279ae30ef32 |
|
BLAKE2b-256 | 3dcf963273a2e56ef24bd9b62fab19c083e0d7dbc17a0b9433e27e347d313ec3 |
Close
Hashes for gdmath-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83ffb499d309942078e5c8236430259befff881dc8c6618312afdefe029a94d4 |
|
MD5 | 8d7408bdfcea2981fc0daac017a7c5d7 |
|
BLAKE2b-256 | e75ff263725f4bdcf7c4dd6656628f21b8591afd02e85d656454ba403bae8aa1 |
Close
Hashes for gdmath-1.5.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8f599dd55431941bb867cb48e7bcc0b02e0bf6f89b4de591f30f7cdb80f919d |
|
MD5 | 44a4f4753a0012758e6d8bb5159f362c |
|
BLAKE2b-256 | d978b7fd9734e80355ea7321d2f432faa5aae53830f8169dc97a367f7d73d743 |
Close
Hashes for gdmath-1.5.1-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fddd74c9273b9e57ef36d71ff5a8d2d4751f4f0bcbbdb2de889fcbfd1ffe7ca0 |
|
MD5 | 625a12922d396fd2bde34bc3f95d0acd |
|
BLAKE2b-256 | 77f1ebcc77758ff64ed259d6d87631ed655754ade17d9c09b5ff1eeacdccc8db |
Close
Hashes for gdmath-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5b9ba3db6de20482e8a7f4c0f4c3044a58d060f84c5efa85f845068d0f75678 |
|
MD5 | 88db9f35e4b494cfd30be3d2ab9e8cc0 |
|
BLAKE2b-256 | 805e7f53758c8289d151ad276381d376ba224e67c6520717f5ed0259b41b78bb |
Close
Hashes for gdmath-1.5.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1b61effe01cf1d2151137d97a9c31ce6c1218ee013c91bbe4dc6a3949ccf8a9 |
|
MD5 | 12378ef9265860bc3ac6781713af84d7 |
|
BLAKE2b-256 | f4b80a08e4765d360d2b7291c9ba7f8eb3ae205efcbba42a79ca985aa31afe1f |
Close
Hashes for gdmath-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eed43adb1010667641d10b865cfb0ce30b0695c9eb452b0bc579797861cd6003 |
|
MD5 | 40e6465174cea104aed4cd8d5fd04fdc |
|
BLAKE2b-256 | 8f0e3a7bd4a3f8697359c101102870b50026171433188394f29171aaf5b7be44 |
Close
Hashes for gdmath-1.5.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d553e22176225e0b8853ffe1d683c9ce5b0a692f49359d311f8dc1e75ea09c49 |
|
MD5 | ab2e304ce66445b9b8d736f68ec1e4e2 |
|
BLAKE2b-256 | c7df6588b0896c0624d0f6e2e2d2f9a572cd3eff7a474b1c09a4b119d3fa648e |
Close
Hashes for gdmath-1.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c29f8d17af1c7ee66c8445591fdffdc4c662e999c95fd99ca23bec8409de970f |
|
MD5 | b11f40a47ae76aeabffd08159e3a2ac2 |
|
BLAKE2b-256 | f2852c849772718b1b216fd5a842ccea207db5aa2da1a59e97ca92cd0baddbbd |
Close
Hashes for gdmath-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6166f5acf813c52f42edaa87eb19414af50e88a2d5628b607fd6997309acc98e |
|
MD5 | 111ac966a48a96d48c62f6019a1d64c6 |
|
BLAKE2b-256 | f0d665345fe80348a88dacb1bf0ec3cf17a705b6e5283dcb753bd50c63ddb3b4 |
Close
Hashes for gdmath-1.5.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf31756356cc94aecc65daa799086fd70dd05bb5714dd083fff006f28f4f5d86 |
|
MD5 | 436bfde6a5575038b79995f926b36750 |
|
BLAKE2b-256 | f1388a8c7c8106bbd54b85a90c197b8725b6b484bbc027ff904d88e356994126 |
Close
Hashes for gdmath-1.5.1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22a4d18fcea3108e4a5e99f95177e2a39392e80b0ab32d451932c597c229df80 |
|
MD5 | cead24f3e3d6eea5c9542a5f6e10d8f8 |
|
BLAKE2b-256 | c62111b0e5c0c59097c8bd2178acdfd4ff13c5f65f50b8871fa93a413c7667ea |
Close
Hashes for gdmath-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bc0fe8fcbbb8f6fda36499d82d35b40e44f9939193ae5734d692192076533d6 |
|
MD5 | d9e2d936e698b46b200295427a439bf3 |
|
BLAKE2b-256 | f23a06bd44b8d009f376e89484505a184e4a5a0180f2264c1ff85b695f798dab |
Close
Hashes for gdmath-1.5.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa814ab794e25007966bbd2e670709f106989e2853d63e8f6d680592abec4ce0 |
|
MD5 | 66bd6ee53106e42078dbf91a09f0690e |
|
BLAKE2b-256 | a6e378233eac665823110cd7c4b9c230b4c6eb71bc6e86aeab1601a74e0c6f8e |
Close
Hashes for gdmath-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06eb1abba4721b68a45d9d4718d27dfadd1043f0d91dee26467bc0883596cf0f |
|
MD5 | cef80917d38e6e62195afb4120ecace4 |
|
BLAKE2b-256 | ac15caa9fabb992bb80038b7a2cfaf09ed9a592a4272d6f09591a2462e299d00 |
Close
Hashes for gdmath-1.5.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d3eee388e6c2b5ffc79bef70cd752f177cfb24c29ec43722373d45150bc2214 |
|
MD5 | 8382d2919f1eae29a3c280e96de7c3d0 |
|
BLAKE2b-256 | 51f13752ea58a1b036ed473628791ebbfd8ff4ac4ce1bc57d2468ea5608b7e3e |
Close
Hashes for gdmath-1.5.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3122a23a4fe90449305137237dbb6919f799a5ccc3b4a1e29df277bc57e33a4e |
|
MD5 | e0767f4e70d4c4d84d71a281c234b5dd |
|
BLAKE2b-256 | 71786dd0800828f4ff49a69873bd204829425ad896ca00478874007f8b4e58a1 |
Close
Hashes for gdmath-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 649a685d621437b6b4f7a2ad8b273a0219dfb1f6961d845d3a7b2996d3358fef |
|
MD5 | f34ae17367faf60fb288da53450d712e |
|
BLAKE2b-256 | cf434e588dedb2ec4973588e8ab1d46b25cef19b77ef823b782c1c7c3df7508d |
Close
Hashes for gdmath-1.5.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b70d7f22d612fcf3c20d7e892b15ef35098264132c69cf669569439da9594940 |
|
MD5 | 15468baae688ab655b1bc25679fe2bb0 |
|
BLAKE2b-256 | 3108cb3eb60ed1a373fb5f9fc7405f1cbed407e96d571fd52c3996926dbf18e6 |
Close
Hashes for gdmath-1.5.1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 707e22619812d10d4818ec10956e6123b32c7f904c909f09e6647946dc0d40a9 |
|
MD5 | 6ba5d70f5a1a82eba6e18feda17c4ade |
|
BLAKE2b-256 | a353b0cc6834988b34eef901814c7c947b8343c807c95c864c1ca3e6288c2d91 |
Close
Hashes for gdmath-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 090b15e4b9c58b85aeb3626dcdeaec9b3099bcfc1c08c27614b92eeb27ca2e7e |
|
MD5 | 31e12ddf4594f55358ddc37ab2ee2364 |
|
BLAKE2b-256 | 444cf9962b61840fc9e452761b0111bbd661e6c9a4871545dde9225c8bae8175 |
Close
Hashes for gdmath-1.5.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ce8abce3fbcc9d682707eb8450d7156f3c839953ba58de2a83df815bf5fc1f3 |
|
MD5 | d3c6e3fc3561849ed15cd0090e6e7ea3 |
|
BLAKE2b-256 | 23fc6a522cc84c55a9bdaa66be3b4c23d61b71b10f9daf3e56aef13d0eebf2ea |
Close
Hashes for gdmath-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 490c34a91f2b8b39d7b46c4a7567354f0b7dc6bdc574bc9fa4657e7a7448d48e |
|
MD5 | 579d42720f7640834244122f7efd5cdc |
|
BLAKE2b-256 | d6e8d64fb942b13ac1757a608ccfaae647cf251d442ab69d8a3c5e503b741fb2 |
Close
Hashes for gdmath-1.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f243dfb8ba27e6c45d5c47c1131116d370c18d3f0c32cff877eff265820a8f1c |
|
MD5 | 78daab5df936f302a5b4dfa56c2d0065 |
|
BLAKE2b-256 | 131afdd39c66cef827f42ad72334b4ec40a8a2670a8d020b52688249419ea8d4 |
Close
Hashes for gdmath-1.5.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b399974ce6fc6e23f2bf76d9ee77a84aa5c0463ca92a2f5295b235afd8b36352 |
|
MD5 | c8fd71dd404e9f78773c80c36db65e9c |
|
BLAKE2b-256 | e28cefa985fa62421a518f46bb2941d92769858c878c116c1a410ecbda776ad9 |
Close
Hashes for gdmath-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 699b3d69a758e36574d8e7da280d5f4e82420f39ac7b45266168765678046a97 |
|
MD5 | 7348b2412b7f2e4ca5e999c9f468a4d9 |
|
BLAKE2b-256 | d791dc01b941c760de941569478ad3b830479afb4624bd210e17f49558461af7 |