Drape

Cloth simulated with Extended Position Based Dynamics. Grab it, throw it, cut it in half, turn the wind up until it tears off the pole.

Drag to grab. C knife, P pin, G grab, space pause, R reset. Then press Substep sweep and flip the solver.

XPBD cloth, six substeps

Solver

World

Live

2.78e-3substep size h
0.0%worst strain
0links alive
0links cut
60frames / sec

What the sweep is showing you

Substep sweep re-runs the cloth from its starting state at 1, 2, 4, 8, 16 and 32 substeps, then draws the six resulting silhouettes on top of each other. Nothing else changes between the runs.

In one substep of size h, gravity moves a free particle down by g*h^2 before the solver gets to it. A PBD projection removes a fixed fraction k of the error, so a hanging mass settles where k*|C| = g*h^2, giving an elongation of g*h^2/k. Every term in that is a solver setting. The XPBD update carries alpha/h^2 through the same balance and lands on m*g*alpha + g*h^2: a material term, plus a discretisation term that vanishes as the substep shrinks.

So the six PBD outlines are six different fabrics and the six XPBD outlines are one fabric measured six times. That is the entire difference between the two solvers, and it is worth about four lines of code.

The honest caveat, which is also the more useful half. That is true once the solve has CONVERGED. At one iteration per substep there is a leftover term, and the excess over the static answer goes as g*h^2 with a coefficient of N(N-1)/2 for an N link chain, because a Gauss-Seidel sweep hands its corrections downstream and the lag accumulates one unit per link. On the ten link rope that is a 2% garnish. On a thirty by thirty sheet at six substeps it was most of the answer: max strain came out 45.7% at six substeps against 17.0% at twenty-four, which is the headline above failing outright. Turning iterations up closed it, from a 63% gap to 0.001% measured on the whole population. Compliance is a material property in the converged limit, and an under-resolved solve quietly smuggles a solver setting back into your fabric.