A C math library targeted at games
C C++ Java CMake Python Lua
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cmake_modules Install the cmake module to a better location Feb 1, 2013
debian Fix packaging bug Mar 27, 2011
docs Removed redundant semicolons. Jan 6, 2014
kazmath Add vec4.h to kazmath.h. Sep 18, 2017
lua Use FindLua51 cmake module. Disable building if not available Aug 11, 2016
test-apps Example fix for Library change Jan 17, 2014
tests Add a test for projecting a point onto a plane Aug 20, 2016
.gitignore Switch unittest++ for standalone kaztest (only requires Python) May 21, 2016
Android.mk Make the Android.mk work in more situations Aug 2, 2014
CMakeLists.txt Fix broken CMake file. Closes #46 Dec 20, 2016
ChangeLog Reinstated changelog Jan 17, 2011
LICENSE.md Add a readme, move the license to a License file Apr 30, 2014
kazmath.config Changed all occurrences of // line comments into /* ... */ line comme… Jun 5, 2014
kazmath.creator Add RPM packaging info to CMake (doesn't work on F18). Fix the kmMat3… Jan 23, 2013
kazmath.files Merge branch 'master' of https://github.com/rocaltair/kazmath into ro… Aug 11, 2016
kazmath.includes Slight tweak to silence a compiler warning Jan 15, 2015



Kazmath is a simple 3D maths library written in C. It was initially coded for use in my book, Beginning OpenGL Game Programming - Second edition, but rapidly gained a life of its own. Kazmath is now used by many different projects, and apparently is used in 25% of the worlds mobile games (yeah, I don't believe it either - but it's used in Cocos2d-x).

If you are using Kazmath in a project, I'd be happy to hear about it. Find me on Twitter as @kazade.


Compiling is simple using CMake, on Linux:

mkdir build
cd build
cmake ..
sudo make install

On other platforms use CMake to generate an appropriate project file.

If you want to build shared libraries you should pass -DBUILD_SHARED_LIBS=YES to the cmake command


There are many improvements that could be made to kazmath, including:

  • More tests
  • More optimizations
  • More functions, and primitives
  • More bindings (e.g. Python)

All contributions are welcome. Just send me a pull request on GitHub and I'll review and probably merge!


If you like what I do, I'm happy to receive donations in DOGE to this address: D6uwEfChxWmWjFGs4jT8VRtabYaza5oAGx :)

Thank you!