blender-mathutils is a Python module originated from blender (the opensource 3d package), where it has been used for some years in production as a utility module for use in areas including animation, games and mesh manipulation.
This differs from 'numpy' in that it is computer graphics focused, combining Matrix and Vector types with rotation classes which is very useful for use with animation or anywhere Euler and Quaternion values are used frequently.
This project is mainly a build system around the actively maintained mathutils code in blender to allow non blender related projects to make use of it. A link to the blender repository is used so the source never gets out of sync.
mathutils at a glance
- 'mathutils' module, with classes: Matrix, Vector, Quaternion, Euler and Color.
- 'mathutils.geometry' module for useful functions such as intersect_ray_tri, intersect_line_line and area_tri.
- Supports operations you'd expect, slicing, multiplication, comparison, division addition where applicable.
- Supports swizzle style access on vectors: v.xyz, v.zy, v.xxyz... etc.
- Python 3 only
- Written in portable C
- mathutils types can be sub-classed from python.
- C/C++ code can have mathutils objects synchronize with internal data using callbacks, or wrap the data directly.
- Documentation here
- GPLv2 or later since this is apart of the blender project.
To build on unix like systems...
svn co http://blender-mathutils.googlecode.com/svn/trunk mathutils
To build you can choose between pythons distutils or cmake.
python setup.py build
sudo python setup.py install
sudo make install
What's New in This Release: [ read full changelog ]
· This version updates mathutils to follow Blender 2.65 API changes.
· The most notable change is the addition of arbitrary-length Vectors().
· This release also adds a Matrix.adjugate method.