What it is
Verlet integration stores a point's current and previous position instead of its velocity. Velocity is implied by the gap between them, and that one decision is why the whole file is short.
A distance constraint is solved by moving two points toward or away from each other — correcting the position corrects the velocity for free, so there is no impulse solver to write. And moving a point without moving its previous position is applying a velocity, so there is no force API either. Those two facts give you ropes, cloth, ragdolls, soft bodies and trusses out of about eight functions.
What it deliberately does not do: rotating rigid bodies, stacking contact resolution, friction cones. Shapes are built from points and constraints instead, and anything that has to collide is round, because circles collide predictably and boxes made of four points catch corners on each other.
Read the engine Read this demo
Five ways I got it wrong
Physics code fails quietly. A wrong answer is still a number, the frame still renders, and the only symptom is a game that feels bad in a way you cannot name. I wrote up the five bugs that cost me the most — breaking a beam inside the solver instead of after it, the quadratic impulse a driven pinned point hands its neighbour, a cosmetic flame that ate the gameplay random stream, and two ways of asking an element where it is that are both wrong — with the broken code path actually executed rather than described.