In my Blob Physics article, I said verlet integration would be:

X1 += (X1-X0)*T + F/M*T*T

when it should be:

X1 += (X1-X0) + F/M*T*T

Since (X1-X0) is a movement vector, not a velocity.

The code contains the correct equation.

I think I might have been momentarily confused, since I was thinking about a possible timescale version for variable framerates:

X1 += (X1-X0)*T1/T0 + F/M*T*T

Which I’m now not even sure makes sense.

anyway, thanks for Thanos Michailopoulos for being the first to point this out.