OMath is a 100% independent, constexpr template blazingly fast math library that doesn't have legacy C++ code.
It provides the latest features, is highly customizable, has all for cheat development, DirectX/OpenGL/Vulkan support, premade support for different game engines, much more constexpr stuff than in other libraries and more...
New to OMath? Start here:
- Getting Started Guide - Installation and first steps
- API Overview - High-level API reference
- Installation Instructions - Detailed setup guide
Quick example:
#include <omath/omath.hpp>
using namespace omath;
Vector3<float> a{1, 2, 3};
Vector3<float> b{4, 5, 6};
auto dot = a.dot(b); // 32.0
auto cross = a.cross(b); // (-3, 6, -3)
auto distance = a.distance_to(b); // ~5.196Linear Algebra
- Vector2 - 2D vectors with full operator support
- Vector3 - 3D vectors, dot/cross products, angles
- Vector4 - 4D vectors (homogeneous coordinates)
- Mat4X4 - 4×4 matrices for transformations
- Triangle - Triangle primitive and utilities
Trigonometry
- Angle - Strong-typed angle system with range enforcement
- Angles - Angle utilities and conversions
- View Angles - Pitch/Yaw/Roll for camera systems
3D Primitives
Projection & Camera
- Camera - Generic camera system with engine traits
- Error Codes - Projection error handling
Collision Detection
- Line Tracer - Ray-triangle, ray-plane intersections
Projectile Prediction
- Projectile Engine Interface - Base interface
- Projectile - Projectile properties
- Target - Target state representation
- Legacy Engine - Standard implementation
- AVX2 Engine - Optimized implementation
Pathfinding
- A* Algorithm - A* pathfinding implementation
- Navigation Mesh - Triangle-based navigation
OMath provides built-in support for multiple game engines with proper coordinate system handling:
Source Engine (Valve - CS:GO, TF2, etc.)
Unity Engine
Unreal Engine (Epic Games)
Frostbite Engine (EA - Battlefield, etc.)
IW Engine (Infinity Ward - Call of Duty)
OpenGL Engine (Canonical OpenGL)
Color
- Color - RGBA color with conversions
Pattern Scanning & Memory
- Pattern Scan - Binary pattern search with wildcards
- PE Pattern Scan - PE file pattern scanning
Reverse Engineering
- External Rev Object - External process memory access
- Internal Rev Object - Internal memory access
- Efficiency: Optimized for performance, ensuring quick computations using AVX2.
- Versatility: Includes a wide array of mathematical functions and algorithms.
- Ease of Use: Simplified interface for convenient integration into various projects.
- Projectile Prediction: Projectile prediction engine with O(N) algo complexity, that can power you projectile aim-bot.
- 3D Projection: No need to find view-projection matrix anymore you can make your own projection pipeline.
- Collision Detection: Production ready code to handle collision detection by using simple interfaces.
- No Additional Dependencies: No additional dependencies need to use OMath except unit test execution
- Ready for meta-programming: Omath use templates for common types like Vectors, Matrixes etc, to handle all types!
- Engine support: Supports coordinate systems of Source, Unity, Unreal, Frostbite, IWEngine and canonical OpenGL.
- Cross platform: Supports Windows, MacOS and Linux.
- Algorithms: Has ability to scan for byte pattern with wildcards in PE files/modules, binary slices, works even with Wine apps.
Project 3D world coordinates to 2D screen space for ESP overlays, UI elements, or visualization.
Calculate aim points for moving targets considering projectile speed, gravity, and target velocity.
Perform ray-casting, line tracing, and intersection tests for hit detection and physics.
Search for byte patterns in memory for reverse engineering, modding, or tool development.
Find optimal paths through 3D spaces using A* algorithm and navigation meshes.
- Documentation: http://libomath.org
- GitHub: orange-cpp/omath
- Discord: Join our community
- Telegram: @orangennotes
- Issues: Report bugs or request features
OMath is open source and welcomes contributions! See CONTRIBUTING.md for guidelines.
Last updated: 1 Nov 2025





