How it works
Each stone is a rigid block. Blocks can push on each other but never pull, the way engineers have analyzed masonry since Jacques Heyman. The arch stands if some path for the pushing force, the line of thrust, fits inside the stone at every joint. If none fits, the joints where it escapes become hinges.
The drawing shows the smallest push that works, the state an arch settles into once its walls lean out a hair.
Walls and buttresses
A wall stands while the combined push of the arch and its own weight lands inside its base. Inside the middle third, the whole base presses down. Outside it, the inner edge of the joint opens. Past the outer edge, the wall tips over.
A flying buttress is treated as a strut that carries all of the arch's sideways push out to a buttress pier.
Numbers and limits
Limestone weighs 22 kN per cubic metre. Forces are per metre of vault length. Friction between dressed stones holds up to a 35° slope. Checked against a classic result: a semicircular arch needs stone at least 0.1075 times its radius deep, and this page gets 0.1075.
Not modeled yet: crushing, mortar, settlement, wind, and true 3D vaults.