A comprehensive Lua math library for 2D/3D game development, providing vectors, matrices, quaternions, and geometric operations.
Cirno's Perfect Math Library (CPML) is a Lua library that provides essential mathematical functions for 2D and 3D game development. It includes operations for vectors, matrices, quaternions, and geometric calculations like line intersections and ray casting, solving the need for a reliable, game-focused math toolkit in Lua.
Game developers using Lua, particularly those working with LÖVE or LuaJIT, who need performant and consistent mathematical operations for 2D/3D graphics and physics.
Developers choose CPML for its comprehensive feature set tailored to game math, consistent API across quaternions and matrices, and seamless integration with LuaJIT and LÖVE, ensuring high performance and reliability in real-time applications.
Cirno's Perfect Math Library: Just about everything you need for 2D/3D games. Hopefully.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides comprehensive operations for 2D/3D vectors, matrices, and quaternions, specifically tailored for real-time game development, as highlighted in the README's focus on geometric calculations like ray casting.
From version 1.0, matrix and quaternion composition rules are unified to 'apply b, then a', eliminating pre-1.0 inconsistencies and reducing user errors, as noted in the README's version compatibility section.
Optimized for LuaJIT, ensuring high-performance math operations critical for games, with the README explicitly stating it's intended for use with LuaJIT.
Serves as the backbone for LÖVE3D and integrates smoothly with the LÖVE framework, making it a natural choice for LÖVE users, as mentioned in the GitHub description.
The major compatibility break at version 1.0, where composition rules changed, can cause migration issues and require code updates for existing projects, as admitted in the README.
Tied exclusively to Lua and LuaJIT, limiting its usefulness in multi-language projects or environments not using Lua, despite its performance benefits.
Focuses on core mathematical operations; lacks higher-level features like physics simulation or animation systems, which might require additional libraries for full game development.