
A 3D implementation of Augmented Vertex Block Descent, extending Roblox and University of Utah's research into three-dimensional physics simulation.
Built with C++ and OpenGL, featuring advanced collision detection using GJK/EPA algorithms and designed for compatibility with Basilisk Engine.
Extension of Roblox and University of Utah's 2D AVBD algorithm into full 3D space with rigid body dynamics.
In-progress collision pipeline using Gilbert-Johnson-Keerthi and Expanding Polytope Algorithm for good-enough contact generation.
Built-in options to visualize normals, constraints, wireframes, EPA vertices, and contact points for development.
Designed with compatibility in mind for the future C++ version of Basilisk Engine using modern rendering libraries.
AVBD 3D is an ongoing implementation that extends the Augmented Vertex Block Descent algorithm from 2D to 3D. Based on the public 2D demo from the University of Utah and Roblox's collaborative research. The project is currently in active development as I work through understanding the intricacies of AVBD and debugging the 3D implementation.
The transition from 2D to 3D required fundamental changes to the data structures and algorithms. Some major differences include:
float3 to vec3 position and quat rotationfloat3 to vec6 (linear and angular)float2 to vec3mat3x3 inertiaTensorfloat3 to vec6float6 to mat6x6float2 to vec3The project includes extensive debug visualization options configurable at build time to aid in development and understanding of the physics simulation: