Position based dynamics (PBD)

PBD algorithm
For all k
    Integrate position (without constraints) p[k+1]=integrator(p[k],v[k],t)
    For all constraints
        Project p[k+1] on constraints
    Compute new speed v[k+1]=(p[k+1]-p[k])/h