AcademySoftwareFoundation / Imath

Licence: bsd-3-clause
Imath is a C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics

Projects that are alternatives of or similar to Imath

Cgmath
A linear algebra and mathematics library for computer graphics.
Stars: ✭ 773 (+1004.29%)
Mutual labels:  matrix, computer-graphics
Metatrace
Stars: ✭ 67 (-4.29%)
Mutual labels:  computer-graphics
Pycm
Multi-class confusion matrix library in Python
Stars: ✭ 1,076 (+1437.14%)
Mutual labels:  matrix
Noneuclidgraphics
非欧几何世界中的渲染引擎
Stars: ✭ 65 (-7.14%)
Mutual labels:  computer-graphics
Homeserver
A Matrix homeserver written in Rust.
Stars: ✭ 1,089 (+1455.71%)
Mutual labels:  matrix
Matrix Bot Sdk
TypeScript/JavaScript SDK for Matrix bots
Stars: ✭ 63 (-10%)
Mutual labels:  matrix
Graphics Snippets
Shading techniques and GLSL snippets
Stars: ✭ 53 (-24.29%)
Mutual labels:  computer-graphics
Maths
Linear algebra library with vector swizzling, intersection tests and useful functions for games and graphics dev.
Stars: ✭ 69 (-1.43%)
Mutual labels:  matrix
Fest
A GTK+ 3 Matrix client written in Rust [work in progress]
Stars: ✭ 67 (-4.29%)
Mutual labels:  matrix
Cloud Volume
Read and write Neuroglancer datasets programmatically.
Stars: ✭ 63 (-10%)
Mutual labels:  matrix
Spmp
sparse matrix pre-processing library
Stars: ✭ 62 (-11.43%)
Mutual labels:  matrix
Continuum Desktop
Matrix client in kotlin
Stars: ✭ 60 (-14.29%)
Mutual labels:  matrix
Pix2pix
Image-to-image translation with conditional adversarial nets
Stars: ✭ 8,765 (+12421.43%)
Mutual labels:  computer-graphics
Bfm to flame
Convert from Basel Face Model (BFM) to the FLAME head model
Stars: ✭ 55 (-21.43%)
Mutual labels:  computer-graphics
React Native Images Collage
Robust interactive image collage component for React Native
Stars: ✭ 68 (-2.86%)
Mutual labels:  matrix
Gloom
A minimalistic boilerplate for OpenGL with C++.
Stars: ✭ 54 (-22.86%)
Mutual labels:  computer-graphics
Tm16xx
Arduino TM16xx library for LED & KEY and LED Matrix modules based on TM1638, TM1637, TM1640 and similar chips. Simply use print() on 7-segment and use Adafruit GFX on matrix.
Stars: ✭ 61 (-12.86%)
Mutual labels:  matrix
Korma
Mathematics library focused on geometry for Multiplatform Kotlin 1.3
Stars: ✭ 65 (-7.14%)
Mutual labels:  matrix
Mctc4bmi
Matrix and Tensor Completion for Background Model Initialization
Stars: ✭ 69 (-1.43%)
Mutual labels:  matrix
Matrixcli
Command line matrix client
Stars: ✭ 69 (-1.43%)
Mutual labels:  matrix

License CII Best Practices Build Status Quality Gate Status

Imath

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.

Project Mission

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.

Features

  • half: 16-bit floating-point type
  • Vector: V2s, V2i, V2i64, V2f, V2d, V3s, V3i, V4i64, V3f, V3d, V4s, V4i, V4i64, V4f, V4d
  • Matrix: M22f, M22d, M33f, M33d, M44f, M44d
  • Bounding box: Box2s, Box2i, Box2i64, Box2f, Box2d, Box3s, Box3i, Box3i64, Box3f, Box3d
  • Color: C3h, C3f, C3c, C4f, C4h, C4c
  • Euler angles: Eulerf, Eulerd
  • Quaternion: Quatf, Quatd
  • Viewing frustum: Frustrumf, Frustumd
  • Interval: Intervals, Intervali, Intervalf, Intervald
  • Line: Line3f, Line3d
  • Plane: Plane3f, Plane3d
  • Sphere: Sphere3f, Sphere3d
  • Shear: Shear3f, Shear3d, Shear6f, Shear6
  • Miscellaneous math functions

Supported Platforms

Imath builds on Linux, macOS, Microsoft Windows, and is cross-compilable on other systems.

About Imath

Imath was originally developed at Industrial Light & Magic in the early 2000's and was originally distributed as open source as a part of the OpenEXR project.

Imath continues to be maintained as a sub-project of OpenEXR, which is now a project of the Academy Software Foundation. See the OpenEXR project's GOVERNANCE.md for more information about how the project operates.

The OpenEXR project is dedicated to promoting a harassment-free community. Read our code of conduct.

Developer Quick Start

See INSTALL.md for instructions on downloading and building Imath from source.

Documentation for the Imath classes and functions can be found at imath.readthedocs.io.

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.

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.

Getting Help

There are two primary ways to connect with the project:

Getting Involved

The OpenEXR developer community welcomes contributions to the project. See CONTRIBUTING.md for more information about contributing to Imath and OpenEXR.

License

Imath is released under OpenEXR's BSD-3-Clause license.


aswf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].