A lean linear math library for computer graphics, providing vec3, vec4, mat4x4, and quaternion types.
linmath.h is a lean linear math library written in C, specifically designed for computer graphics programming. It provides essential vector, matrix, and quaternion types with operations tailored for 3D graphics work. The library serves as a minimal alternative to larger math libraries, focusing on the core functionality needed for graphics computations.
Graphics programmers working with OpenGL or similar APIs who need a lightweight math library for client-side computations. Developers building 3D applications, game engines, or visualization tools in C.
It offers a minimal, focused set of graphics-essential math operations with GLSL-compatible types for seamless integration with shader programs. Unlike larger math libraries, it avoids bloat while providing exactly what's needed for typical graphics programming tasks.
a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Types like vec3, vec4, and mat4x4 are named identically to GLSL, enabling seamless data passing to shader uniforms as highlighted in the README for uniform compatibility.
Provides only essential graphics math operations, avoiding bloat and keeping the library lightweight, which aligns with its philosophy of simplicity for computer graphics.
Uses column-major matrices and homogeneous coordinates, making it ideal for OpenGL-based programming without conversion overhead, as stated in the features.
As a single C header file, it requires no complex setup or dependencies, allowing quick inclusion in projects for client-side computations.
Only includes basic vector, matrix, and quaternion operations; advanced functions like interpolation or matrix decompositions are missing, which may necessitate additional libraries.
Optimized for C, so it lacks object-oriented features or C++ template support, making it less suitable for modern C++ projects that rely on such abstractions.
The README is brief with minimal usage examples, forcing developers to rely on source code inspection or trial-and-error for implementation details.