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.0.tar.gz
(122.9 kB
view hashes)
Built Distributions
gdmath-1.5.0-cp312-cp312-win32.whl
(438.6 kB
view hashes)
gdmath-1.5.0-cp311-cp311-win32.whl
(435.0 kB
view hashes)
gdmath-1.5.0-cp310-cp310-win32.whl
(435.4 kB
view hashes)
gdmath-1.5.0-cp39-cp39-win32.whl
(436.2 kB
view hashes)
Close
Hashes for gdmath-1.5.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73d74410649c07441770687050fa8459721df8fea835dd3bab22c2d092e19817 |
|
MD5 | 8bb6e166f41936eaf45e36382866ac0b |
|
BLAKE2b-256 | 61e3bdcb9459d1e6fcb7fd7182229dfba697a2b0cb15ee692cf36566a7f39da7 |
Close
Hashes for gdmath-1.5.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4c3a1cb9b02e2637382789f0b7cc7c325d9762b8f049577e98b26e7e79057f3 |
|
MD5 | a09d41875ea710cca584a78276dcda09 |
|
BLAKE2b-256 | 09b4c823919ee56c68c0c3f0f0547fd22a163eb63875e588c12759c42657656f |
Close
Hashes for gdmath-1.5.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 271ee96f8583ce8e0214390f69b3dbbefa5355a664d5727b588d73d8345f9402 |
|
MD5 | ff5fb48733e1a22980c61b5fbab994d6 |
|
BLAKE2b-256 | 834946d1e52303e94cdef47bf20a8cd66d18ae469fb4e6cf0bd2b8a12f72c764 |
Close
Hashes for gdmath-1.5.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27bf810c6ff9e23dba53c3d0129be335edb399e6a8d1a22c66b300857b88b660 |
|
MD5 | 46e4bab280cfcd12e351ac87930658fa |
|
BLAKE2b-256 | ff6bf455d126703273f4efe8a4dc5601f095b0a3e1298f1eb82745ecd14cc2d9 |
Close
Hashes for gdmath-1.5.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adef7e0c5d838c2926c8d284407ecab710c1018c8bb9404ef8755191864599a0 |
|
MD5 | 0880c3692c547bee80fc3e6fdaab77d2 |
|
BLAKE2b-256 | f4d48a63c4d305adfc8ca2a154b11f1311c04a60c3b7bfc80c6bc50aca686ace |
Close
Hashes for gdmath-1.5.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cbada376eee0c3f408d0a6fc0e18d32304b1f278074f9f4ddb28b5d937e7cfa |
|
MD5 | ff2abde2c977c679302c69d5e09d3103 |
|
BLAKE2b-256 | 23101701d291dc9ed9a77f9463e430e4b0427267a123d752515c02bebc0c8cf7 |
Close
Hashes for gdmath-1.5.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99634985ec00a1289b3c8bf45fa53a02f2b5a75a73c6e6a3505a1c02f545d846 |
|
MD5 | 5a1ef043a1c98c90ae5bea33dbc17a10 |
|
BLAKE2b-256 | d94d98c41031456815ccd42151c3f3d7dd3bf798e66631d415256dc598de2f78 |
Close
Hashes for gdmath-1.5.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad781fd70464379dc757905e6d4281aef26705d3ee2d0fcaedeaef525a9870ef |
|
MD5 | b0f0358dfee0a2b98ec82529882d8743 |
|
BLAKE2b-256 | 085ca888c28e164f3cbd046d706928d82d396fb541801264d3d5919ff27c5668 |
Close
Hashes for gdmath-1.5.0-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba23e5251be31dedd09d68ebdcd8ead189d870b494fc8310ca776d7b2b92d6d2 |
|
MD5 | 58091e8bc7b70dbd4bd3adbf3a6a7858 |
|
BLAKE2b-256 | 5daea268a56bd8fa9e10be7b37ca4a68d93de66a6cfd14df17fe516c0909873a |
Close
Hashes for gdmath-1.5.0-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17c242aeec6c83c48743920888314beec976116d8b024d5e3d617c014200724f |
|
MD5 | 42de013351654ef203f6c032c2263540 |
|
BLAKE2b-256 | 875b53277eb4a1040e759d6f38a4c26ab225249b1d8d975745e735f06deb98a7 |
Close
Hashes for gdmath-1.5.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9eac8877c9815ada1254514fb81131141c56dd655c0c96c6a44ae6ff2e4bedd |
|
MD5 | de0b0d86a8a0ebbefed4a1be0da92a36 |
|
BLAKE2b-256 | 2f126af624d19783c2c728927497ecc9133c0d30b22d571c182c458160f7ce54 |
Close
Hashes for gdmath-1.5.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 760ddbf632c210477f1a0ac3bc4f07dd960e1dbc6e2f8d32955f5300fd69740f |
|
MD5 | 4dd0ebee8e5aecfd1c33dec15f185e4c |
|
BLAKE2b-256 | a2d8589a41340cf9e136cb17fd14d2c03ba46607603490b1038ef72974389151 |
Close
Hashes for gdmath-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13d80ce4f8ca7c12565ad98299e0c1b257f4801411a90a76432920d99aafcb4f |
|
MD5 | 2fd382abfd5a548a52fd1028568f9e8a |
|
BLAKE2b-256 | 47eac48df713522733f3614c798832706f3d15cbf6ca87ba474bb1b5a85dce1c |
Close
Hashes for gdmath-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f60449a7da697a11e6a848bdc92feb9dbd5c431d5a95e030e6c2c22cbcf27289 |
|
MD5 | 34a4b5b3248819759f1e106bdec4c674 |
|
BLAKE2b-256 | 082d1dda01aed135b9b9b3164eb44f231a29f73bac742ba85700a14b37db37d2 |
Close
Hashes for gdmath-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b67f317cc9b69764f50d39eb187b30fe79e13704dd6088b52986ac8b88488ba |
|
MD5 | a42687eb0cb4f578378838296fccde08 |
|
BLAKE2b-256 | 01c54c8c900b25b5488393b1cf3580c4c9d00e56dcbf8288c60fbe0b88812e09 |
Close
Hashes for gdmath-1.5.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c713c48d6a360927dd71be1d78937c03f595892b6fea99e8769a5c676cd03bd6 |
|
MD5 | a5cacbd669c5061a4e4af82b3af229fc |
|
BLAKE2b-256 | 84cb43fd3a17d1e9ebdcb748cd6a64c6948f3346c1e6c344342acfb32e6a1520 |
Close
Hashes for gdmath-1.5.0-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32470bb5b04123f235a6ece377bffe46ccde0b00b95c02aad5dd2fccd7ea67b3 |
|
MD5 | 2abcd9703216b8ece516d98670473457 |
|
BLAKE2b-256 | 1f042ba415a50ff7a3b3ab0a18c2f58507ac93df02c620af96a1cb5979245c23 |
Close
Hashes for gdmath-1.5.0-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c051f95eeb846b8b818778d662004581f65f824f8c031deba986bc7fe7358ee |
|
MD5 | dcdfdb079e17c51dda2706501e8780ca |
|
BLAKE2b-256 | 585fd99e685e954e141e6b56688e08d0939de9f0ec723955472c819abc9e6951 |
Close
Hashes for gdmath-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f749920ce09442e29db1453ac3ca338d14ca6f3ae5dd15b5c67185a87354418 |
|
MD5 | b8f15280b00ea13458be9d601e73ce34 |
|
BLAKE2b-256 | a8adbaa4f208fc4acd6241f6dfceb419a39d92283320bf515585460652a20389 |
Close
Hashes for gdmath-1.5.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e76795ff6c5e953387003ecc479bfe96f51b256f5075688ea01f22ded8a33879 |
|
MD5 | fe8cb917754c35beba72c3bfafcd1e90 |
|
BLAKE2b-256 | c0ec9bafbaae81157e46c3878965098cc3c3eedada1290be0648761be5882b3a |
Close
Hashes for gdmath-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0e1fd8559e9010f464a189cc812fa825cc8adde93497df8949d2c215e214e0a |
|
MD5 | 389c0471bf953dca459846deeacb1396 |
|
BLAKE2b-256 | c26feddac136c7332d264d3a70d7a41c8bd09e549acac9442385f262b8e9fb5f |
Close
Hashes for gdmath-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fafa0643d6a70f972211442a1d53abf17f1621c248390594c29205f558b76d9 |
|
MD5 | f5e28410b9a60eb6e8d94a8ad0b1bc31 |
|
BLAKE2b-256 | 7a8d211d095252d22df0400d231a868bc6b39e7f8d107ed4814b20e5192986a3 |
Close
Hashes for gdmath-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec1b761a2b5e85c94c1d0de2e813daff67630a31194adf625d7f3da637d417f2 |
|
MD5 | 425f23a8aca7c077bd05bc3810a084dd |
|
BLAKE2b-256 | ec236afad1e5e1c787eeb6b085d46640cd09fbe737126844a58dbed618019292 |
Close
Hashes for gdmath-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc060fc51c893f05c05b1baf0618a5a20196c915e4471659ee7cdd87d665fe8e |
|
MD5 | 5f1f8391ed28b78e3b3d3a2f32ec6a45 |
|
BLAKE2b-256 | e7d83150d0a2c9a0840b06855c2dcf3cf186bf42cf2be83e3afdfcb4fe91b1b4 |
Close
Hashes for gdmath-1.5.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc1c02cb64d54a9ec2b6c77a011430de49868c1f4a08120c8122bdfdc100e0c |
|
MD5 | b9d9bd2bb327227bd36df860135e7c1e |
|
BLAKE2b-256 | 0dc31275bb2030b21dace66311db5f7aea06416e43f405a7b5186acf19310672 |
Close
Hashes for gdmath-1.5.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc5a7b33dd51347c73026bd5cda0118bda0c28186d01378c07c9f4e1c8aaddd2 |
|
MD5 | c992beef449b7a6365ef350bf931be34 |
|
BLAKE2b-256 | ae22fad8f56a753b0a4019522386cf7062030342a6f0c10910dd349641e4441c |
Close
Hashes for gdmath-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd615a26042a85d76cb95ee5c5ffa7d99679a6271fe001b6b575888ff3eb4f6a |
|
MD5 | 84b83fc909f70fba15d144e92523378c |
|
BLAKE2b-256 | 3e5e6f94946cecb2bbb073cadd685459247b280e8369a6e2771b1b582f1791b8 |
Close
Hashes for gdmath-1.5.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78dcfd0b588f05bce0ad04d847af7c610166d21c3d0a91cfb8e72581241a9a56 |
|
MD5 | 753e8138df22a86ba4441cd6c65d26b4 |
|
BLAKE2b-256 | 18e372f568a5f6e8ee859d7c4a7d52f16736c12f0db799689d468aa203def954 |
Close
Hashes for gdmath-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d960667ad1f2aac836944f4b3d8801eb6799a7cfe6f724823fb2306bd250b1c7 |
|
MD5 | c558c1d62da54d948fdf6195650d2241 |
|
BLAKE2b-256 | ef49811b5c985f66e33fd43e9ffb45b8043880dfdfcbb37e147bddfe866fb1b9 |
Close
Hashes for gdmath-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21bd5ba6798cf89638a2fccc5753132167fe465bcefe1329f2a0299aab743f3c |
|
MD5 | 9a1f193e7fa2f3315565c32575f16aed |
|
BLAKE2b-256 | 646517d05c43efc458502062d33bccbf19e0c7215f76b467e6b157b65ec597be |
Close
Hashes for gdmath-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65d6849abf89d2018957c0e2087ba181e5361efc4ba53959d0913d7bbbfe8b9a |
|
MD5 | d8ae8d0db84fe83821a894a6aaa0e9bc |
|
BLAKE2b-256 | af3cf2fa5dbb4b473bbaa6651a798ef3dbe32f0d72ce33ad519a525182075497 |
Close
Hashes for gdmath-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fed6b1f46090bf96a8ab62c3ff5faf26e28265145e011d1fec858bde5cf765b |
|
MD5 | ac37c8f0e3a58cbfc571430fe216edfd |
|
BLAKE2b-256 | 13ad2db1a8251e85de300acaed174d47ae01a1049750a9b3d048a316941ea991 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4d1e15e3ad0c1ab260533af6b155156f5473dc91c25a77bd19f7f5ecd2d9400 |
|
MD5 | b24ae3191157cfc2d251d5fbf5ff4e78 |
|
BLAKE2b-256 | d77514636d07c403ebd825036bee879c8456f77dd91b55d2efe585f69b18c498 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1af54e0b1e4a8f22513cd8ee048150d11e39e03b99eac4f3fff0982d450ac8a3 |
|
MD5 | 365880f22c21c86f286f856a1813394a |
|
BLAKE2b-256 | bc2dc4382f693ebe5c8aadfa6eedae1d5b5fbb649e045714bb6e2ef42a5986e9 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b2193811f03c55af7b5fb7831f882c7deb5027e6f864ab227a9c5a4c0df3e1b |
|
MD5 | 7f60e48e60d8ec63bcf862be88870c86 |
|
BLAKE2b-256 | eed64ecdf454fe80e479c2bcfc9f57ac02b065e503a6bf5a9164e40d776ebaf4 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8583a84c0296512b46c253c649e5ab39c5beb11a61dce18472b021cdabc51b02 |
|
MD5 | f1977ebfd4f87de38e7a48f2830f65fe |
|
BLAKE2b-256 | 4746df05aa78bd0c12c95048e26abd96b0cd9a435d8ed122829752d94966eef4 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48bb64ccb1e136de626a4d9243fee88ca7f847cf7475d13d4a6b791b8dff19f2 |
|
MD5 | 873d9e7f12d2101ffc1216e4df10fe5a |
|
BLAKE2b-256 | 5ada9fd0e97f31d3982018ef8e4a7daffff3b70040b2d5d3790585142be09ed1 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25a7a3f0a3b52dc0ad94eae85eb0b7669d2b54cba0680846a9c381dc0150eb97 |
|
MD5 | 4593545119cbf8691f148a7e0f0207c3 |
|
BLAKE2b-256 | a432e6dd05e97d9cbef30150bb351ee6c13f0e28c7661f45e2f6a7eb6ae48747 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ddc4f6b0548095be8da6c2acfb2399bd966f77bcfa51f0b21643e50917f6d14 |
|
MD5 | 2bdcf1d7f286b8f3f21fb4d051983b1f |
|
BLAKE2b-256 | f23b3315f4fc41bd2cdd7ec673560a26ae3780df2bca3b2d52e0d30bb97e3318 |
Close
Hashes for gdmath-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a516d9224be4f73b47b4747066edb949b29a96cf09ffec085dc75fc5732b69a |
|
MD5 | 6e96fc2c64587fcc938f4b17a6481a22 |
|
BLAKE2b-256 | 2aab2bf0e1354e1b6f617f02d96c79054fb89c57e4ad6a04d52f148b9884e914 |