Imath is a basic, light-weight, and efficient C++ representation of 2D and 3D vectors and matrices and other simple but useful mathematical objects, functions, and data types common in computer graphics applications, including the “half” 16-bit floating-point type.
Imath also includes optional python bindings for all types and functions, including optimized implementations of vector and matrix arrays.
The goals of the Imath project are simplicity, ease of use, correctness and verifiability, performance, and breadth of adoption. Imath is not intended to be a comprehensive linear algebra or numerical analysis package.
OpenEXR is a project of the Academy Software Foundation. See the project's governance policies, contribution guidelines, and code of conduct for more information.
The OpenEXR project is dedicated to promoting a harassment-free community. Read our code of conduct.
Imath builds on Linux, macOS, Microsoft Windows, and is cross-compilable on other systems.
A Note about Versioning
Because Imath was originally distributed as a part of OpenEXR, it has already had two major release versions, as a part of OpenEXR v1 and v2. To avoid confusion with these original releases, the first version of Imath released independently of OpenEXR is Version v3.0. To be clear, the versioning and release of Imath is no longer tied to OpenEXR.
Technical documentation for the Imath classes and functions can be found at https://imath.readthedocs.io.
See the Install instructions for how to download, install, or build Imath from source.
If you encounter problems compiling code or building projects written with an earlier release of Imath, the porting guide explains some of the differences and how to address them.
Ask a question:
Attend a meeting:
Technical Steering Committee meetings are open to the public, fortnightly on Thursdays, 1:30pm Pacific Time.
Report a bug:
- Submit an Issue: https://github.com/AcademySoftwareFoundation/Imath/issues
Report a security vulnerability:
- Email to firstname.lastname@example.org
Contribute a Fix, Feature, or Improvement:
Read the Contribution Guidelines and Code of Conduct
Sign the Contributor License Agreement
Submit a Pull Request: https://github.com/AcademySoftwareFoundation/Imath/pulls
- Technical documentation: https://imath.readthedocs.io
- Porting help: OpenEXR/Imath Version 2.x to 3.x Porting Guide
- Security policy: SECURITY.md
- Release notes: CHANGES.md
- Contributors: CONTRIBUTORS.md
Imath is released under OpenEXR's BSD-3-Clause license.