SCA 2026 · Computer Graphics Forum, Volume 45, Number 8
University of British Columbia, Canada
Existing approaches to frictional contact dynamics typically either modify the Coulomb law to improve numerical robustness or solve the exact law in a fully coupled monolithic form. However, in its reduced form, exact Coulomb friction can be written as a cone complementarity problem with an augmented velocity, which reveals a natural split between a cone-constrained linear response and a scalar non-associated coupling induced by tangential velocity. We exploit this structure in the solver design. Our method uses an outer iteration to update the non-associated coupling explicitly, and an inner solve for a strongly convex cone-constrained quadratic program. This separation also makes the inner solver modular, so different numerical schemes can be used without changing the outer iteration. We evaluate the method on rigid-body benchmarks with stick-slip transitions and frictional stacking, and show that it reproduces exact Coulomb complementarity without smoothing or relaxing the friction law.
@article{SongFAP2026Splitting,
author = {Song, Hongcheng and Fan, Ye and Ascher, Uri M. and Pai, Dinesh K.},
title = {A Splitting Architecture for Exact Reduced {Coulomb} Friction},
journal = {Computer Graphics Forum},
volume = {45},
number = {8},
year = {2026},
note = {Proc. ACM SIGGRAPH / Eurographics Symposium on Computer Animation (SCA)}
}
This work was supported, in part, by NSERC Discovery Grants to Ascher and Pai. The masonry-arch geometry is from the Rigid-IPC dataset.
In our comparisons, Kamino (the contact solver in NVIDIA Newton 1.0.0) keeps the arch with 25 stones standing, but the arch with 101 stones collapses as it settles, while FBF holds both. The cause is not Kamino's friction solver. Before it runs, Kamino reserves a fixed amount of room for contacts, and in Newton 1.0.0 the routine that sizes this room is not yet written for mesh shapes. The arch stones are all meshes, so the room is sized only by the three falling blocks: space for 144 contacts, whatever the arch size. The arch with 25 stones needs about 100 and fits; the arch with 101 stones needs about 430, so about two thirds of its contacts are quietly dropped every step and it can no longer hold itself up.
This is a limit on space, not on how well Kamino solves friction. Letting it use Newton's own contact estimate,
which does handle meshes, through the documented rigid_contact_max setting and with no change to its
code, is enough for the same solver to hold the arch. The arch then stays up, though the stones at its feet still
sink into their supports, which FBF avoids. Every Kamino result we show uses the solver just as it ships.