RandyGaul/qu3e
FreeLightweight and Simple 3D Open Source Physics Engine in C++
About RandyGaul/qu3e
qu3e is a compact, lightweight, and fast 3D physics engine written in C++, specifically designed for use in games. It focuses on simplicity and ease of use, providing an extremely simple API for creating and manipulating rigid bodies. The engine supports discrete collision detection with 3D oriented bounding boxes (OBB), raycasting, AABB and point queries, collision event callbacks, sensors (collision volumes), and aggregate rigid bodies composed of multiple boxes. It includes features like box stacking, islanding and sleeping for CPU optimization, a renderer-agnostic debug drawing interface, dynamic AABB tree broad phase, collision layers, and axis locking. The engine is portable with no external dependencies beyond standard C header files, and its inner code is heavily commented, making it a great resource for learning the workings of a 3D physics engine. Only box collision is supported; no other shapes are currently available. The repository has been archived as read-only since November 2022.
Key Features
Pros & Cons
- Extremely simple and clean API easy to integrate
- Portable with no external dependencies
- Lightweight and fast performance
- Heavily commented source code aids learning
- Includes useful features like raycasting, sensors, and scene dump
- Supports box stacking and sleeping for optimization
- Custom memory allocation allows fine-grained control
- Only box (OBB) collision is supported; no spheres, capsules, or other shapes
- Repository is archived and read-only as of November 2022 (no active development)
- Limited feature set compared to full-featured engines like Bullet
- Written in C++ only, not accessible for non-C++ developers
- No built-in rendering or audio integration (expected for a physics engine)