Vertex Block Descent
Anka He Chen, Ziheng Liu, Yin Yang, Cem Yuksel
TL;DR
This paper presents Vertex Block Descent (VBD), a block coordinate descent solver for the variational form of implicit Euler, where vertex-level Gauss-Seidel updates minimize the energy $G(\boldsymbol{x})= \tfrac{1}{2h^2}\|\boldsymbol{x}-\boldsymbol{y}\|^2_M + E(\boldsymbol{x})$ to achieve unconditional stability and strong parallelism in elastic body dynamics. It introduces local 3×3 Newton solves per vertex, optional damping and constraints, collision/friction models (including IPC), and an adaptive initialization, all designed to maintain energy descent with minimal iteration counts. The method is implemented on GPUs with vertex coloring to maximize parallelism, and it shows competitive or superior convergence compared to XPBD across large-scale, stress-test, and dynamic collision-rich scenarios. The framework is demonstrated to extend to particle-based and rigid-body systems and to unified simulations, highlighting VBD’s versatility for a range of physics-based animation tasks. Overall, VBD delivers stable, scalable, energy-descent iterations that can fit within constrained computation budgets while maintaining high physical realism.
Abstract
We introduce vertex block descent, a block coordinate descent solution for the variational form of implicit Euler through vertex-level Gauss-Seidel iterations. It operates with local vertex position updates that achieve reductions in global variational energy with maximized parallelism. This forms a physics solver that can achieve numerical convergence with unconditional stability and exceptional computation performance. It can also fit in a given computation budget by simply limiting the iteration count while maintaining its stability and superior convergence rate. We present and evaluate our method in the context of elastic body dynamics, providing details of all essential components and showing that it outperforms alternative techniques. In addition, we discuss and show examples of how our method can be used for other simulation systems, including particle-based simulations and rigid bodies.
