Gaia Engine
Overview
Gaia is a C++ physics simulation engine designed for high-performance physics-based simulations. It can be compiled as a standalone simulator or integrated into other applications as a third-party CMake module.
Gaia provides powerful triangular/tetrahedral mesh data structures (via MeshFrame2), a convenient parameter I/O module, efficient collision detectors, and an abstract base physics framework that is extensible for various solvers.
Key Features
VBD Solver
Vertex Block Descent solver from SIGGRAPH 2024. A robust and parallel physics solver optimized for GPU architectures, capable of simulating coupled multiphysics systems.
XPBD Solver
Extended Position Based Dynamics solver for real-time simulation of elastic bodies, cloth, and other deformable objects.
Mesh Data Structures
Powered by MeshFrame2, providing blazing fast triangular and tetrahedral mesh processing with header-only design.
Collision Detection
Efficient collision detection system using Intel Embree for robust and fast broadphase and narrowphase collision queries.
Extensible Framework
Abstract base physics framework supporting various solvers. JSON-based configuration for models and physics parameters.
CMake Integration
Can be used standalone or integrated as a CMake module. Built on OneTBB, Eigen3, and Embree.
Related Publications
Vertex Block Descent
ACM Transactions on Graphics 43(4), SIGGRAPH 2024
Anka He Chen, Ziheng Liu, Yin Yang, Cem Yuksel
Offset Geometric Contact
ACM Transactions on Graphics, SIGGRAPH Asia 2025
Anka He Chen, Jerry Hsu, Ziheng Liu, Miles Macklin, Yin Yang, Cem Yuksel
Getting Started
Gaia uses CMake as its build system. To get started:
git clone --recursive https://github.com/AnkaChan/Gaia.git
cd Gaia
mkdir build && cd build
cmake ..
cmake --build . --config Release
Dependencies: OneTBB (2021.12.0+), Eigen3 (3.4.0+), Embree (3.13.1)
For detailed setup instructions, check the GitHub repository.