Drag the cart across the bridge (or press Run). The green line is a line of thrust that fits inside the stone; red hinges show how the arch would fail. Drag empty space to orbit, wheel / pinch to zoom.
Heyman's model. Stone is treated as rigid, infinitely strong in compression, unable to carry tension, and joints cannot slide. Under these assumptions the safe theorem says: if any line of thrust (the line of pressure of a statically admissible force system) can be drawn that stays inside the masonry everywhere, the arch will stand. The arch is statically indeterminate (3 unknowns), so many such lines may exist.
Statics used. Split the ring into blocks by radial joints. Unknowns: horizontal thrust H, left vertical reaction V0 and the reaction's moment m0 about joint 0. At joint i: Mi = m0 + (x0-xi)V0 - (y0-yi)H - Σ Wk(xk-xi), normal force Ni = H τx + (V0 - ΣW) τy, and the thrust-line offset from the centreline is ei = -Mi/Ni. Condition: |ei| ≤ t/2, i.e. |Mi| ≤ (t/2)Ni, which is linear in (H, V0, m0). The page enumerates every vertex of that small polytope to get the minimum and maximum thrust and draws the line midway between them.
Geometric factor of safety. GF = t / tmin, where tmin is the thinnest ring (same centreline, same load) for which a thrust line still fits (found by bisection). GF < 1 means no admissible line: four hinges form and the arch is a mechanism. The red markers show the four (or more) hinges of the critical mechanism at tmin.
Benchmark. For a semicircular ring under its own weight the exact result is t/R = 0.1075 (R = mean radius); the page reproduces 0.1071 to 0.1074 for 24 to 72 joints. Thrust under an almost uniform load matches wS²/(8f) within 0.3 %.
Simplifications, stated honestly. Per-metre-of-width plane model; the point load is vertical, placed on the extrados and spread over one block; fill is a vertical dead load only (no lateral earth pressure, no load dispersal, no stiffening from spandrel walls); sliding is not prevented by theory, so the page reports the largest joint shear/normal ratio and flags it above μ = 0.6; real masonry has finite strength, mortar and settlement history. Abutment spread shown is only the elastic cantilever deflection of the two piers under H (E = 10 GPa, uncracked); the large-displacement hinging mechanism that real support spreading triggers is not simulated. Pier check: resultant at the pier base compared with the middle third and with overturning at w/2. Stone 22 kN/m³, fill 18 kN/m³, bridge width 3 m.
3D models generated with Meshy AI and processed in Blender (parapet / pier masonry, hand cart; stone texture). Voussoirs, piers, water and the arch itself are generated in code. Educational model, not for structural design.