A WebGPU Implementation of Augmented Vertex Block Descent

An experimental WebGPU-based physics engine prototype implementing the Augmented Vertex Block Descent (AVBD) algorithm for high-performance rigid and soft-body simulations.
WebGPU Physics Simulation Overview
In the world of web graphics, real-time physics simulation has always been a major performance challenge. Recently, an experimental open-source project announced a prototype for a rigid-body and soft-body physics solver based on the AVBD (Augmented Vertex Block Descent) algorithm.
This work is based on research by Giles et al. (2025) and is specifically optimized for WebGPU—the next-generation graphics API that unlocks the full power of the GPU directly from the browser.
Physics Pipeline via AVBD Algorithm
The system is strictly built following the AVBD algorithm structure, covering stages from collision detection to velocity reconstruction. Here are the core components of the pipeline:
1. Collision Detection and LBVH
The process begins with collision detection from the current state of the bodies. The project utilizes an LBVH (Linear Bounding Volume Hierarchy) for the broad phase, quickly identifying potential colliding pairs before moving into detailed calculations.
In the narrow phase, the system generates contact manifolds and maintains warm-start persistence. This technique ensures more stable friction and contact force handling across frames.
2. Greedy Coloring and Parallel Processing
One of the highlights of the AVBD algorithm is its high degree of parallelism. The project applies greedy coloring to the bodies. By categorizing bodies into different color groups, the system can simultaneously process all bodies of the same color during the primal step without data conflicts.
3. AVBD Iteration: Constraint Solving and Optimization
The core of the solver lies in the AVBD iterations, where the system performs:
- Inertial Target Initialization: Setting up initial states and stiffness variables.
- Primal Body Solve: For each iteration and color group, the solver accumulates inertial and constraint contributions, assembles the local rigid-body system, and applies the AVBD update.
- Dual and Stiffness Update: After each sweep, dual variables and stiffness values are updated in parallel according to augmented-Lagrangian rules.
4. Velocity Finalization and Post-processing
Once positions are resolved via AVBD, velocities are reconstructed from the updated state. Additionally, the project integrates optional features such as body sleeping and performance diagnostics.
Project Status and Outlook
Currently, this remains an initial proof of concept. Due to the cutting-edge nature of WebGPU, the project is primarily supported on Chrome and requires Node.js knowledge for installation and testing.
A key implementation difference from the original paper is the use of an in-place solver rather than double-buffered position updates. Future updates are expected to focus on stability, performance, and ease of use to make this a more accessible module for the web development community.
Source: Hacker News














