Verification

Last run Sep 17, 2026.

Method

Each tool is compared against a separate calculation of the same quantities, mostly in Python with sympy, numpy or CoolProp. The test inputs are run through the tool's own code in a browser. The checks are re-run after any change to a tool's math.

Each tool has worked cases below: the inputs, what the tool returns, and the reference value. Enter the same inputs in the tool to reproduce them.

Beam formula calculator

Reference
Singularity-function beam solver (sympy), solving reactions and integration constants from the boundary conditions. Closed forms from Roark's Formulas for Stress and Strain, 8th ed.
Result
151 formula checks over all 24 cases, non-round inputs. 154 values from the tool. 5 formulas corrected before release.
Limits
Constant EI, one span, small deflection, no shear deformation.
Worked cases (3)

Simply supported, off-centre point load

P = 40 kN at a = 2 m, L = 6 m, E = 200 GPa, I = 8000 cm4

ToolReference
RA26.6667 kN26.6667 kN
RB13.3333 kN13.3333 kN
Mmax53.3333 kN·m53.3333 kN·m
δmax9.677 mm9.677 mm
at x2.73401 m2.73401 m

Reference: Macaulay integration of EI y″ = M(x), with the reactions and both integration constants solved from the support conditions (sympy). δmax is found where the slope is zero.

Open this case in the tool

Propped cantilever, full UDL

Fixed at A, roller at B. w = 10 kN/m, L = 5 m, E = 200 GPa, I = 8000 cm4

ToolReference
RA31.25 kN31.25 kN
RB18.75 kN18.75 kN
MA (hogging)31.25 kN·m31.25 kN·m
M+17.5781 kN·m17.5781 kN·m
at x3.125 m3.125 m
δmax2.11567 mm2.11567 mm
at x2.89232 m2.89232 m

Reference: Macaulay integration of EI y″ = M(x), with the reactions and both integration constants solved from the support conditions (sympy). δmax is found where the slope is zero.

Open this case in the tool

Fixed both ends, off-centre point load

P = 30 kN at a = 1.5 m, L = 5 m, E = 200 GPa, I = 8000 cm4

ToolReference
RA23.52 kN23.52 kN
RB6.48 kN6.48 kN
MA (hogging)22.05 kN·m22.05 kN·m
MB (hogging)9.45 kN·m9.45 kN·m
M under the load13.23 kN·m13.23 kN·m
δmax0.837402 mm0.837402 mm
at x2.08333 m2.08333 m

Reference: Macaulay integration of EI y″ = M(x), with the reactions and both integration constants solved from the support conditions (sympy). δmax is found where the slope is zero.

Open this case in the tool

Shear and moment diagram calculator

Reference
Reactions from equilibrium, V(x) and M(x) by exact integration over one side of the cut (sympy).
Result
18 beams, all support and load types, five with overhangs, 3 points per load interval. 284 values, within 1 part in 109.
Limits
One span, determinate supports. No axial load or deflection.
Worked cases (2)

Simply supported, point load and partial UDL

L = 8 m. 10 kN down at x = 2 m. 6 kN/m down from x = 3 m to 8 m.

ToolReference
RA16.875 kN16.875 kN
RB23.125 kN23.125 kN
M at x = 2 m33.75 kN·m33.75 kN·m
M at x = 3 m40.625 kN·m40.625 kN·m
V = 0 at x4.14583 m4.14583 m
Mmax44.5638 kN·m44.5638 kN·m

Reference: RB from moments about A, RA from vertical equilibrium, M(x) by integrating the left free body (sympy). By hand: RB = (10·2 + 30·5.5) / 8.

Cantilever with UDL and a couple

Fixed at x = 0, L = 4 m. 3 kN/m down over the full length. 8 kN·m counterclockwise at x = 2 m.

ToolReference
Wall reaction12 kN12 kN
M at the wall−16 kN·m−16 kN·m
M just left of x = 2 m2 kN·m2 kN·m
M just right of x = 2 m−6 kN·m−6 kN·m
M at x = 3 m−1.5 kN·m−1.5 kN·m

Reference: M(x) from the free body to the right of each cut, which needs no reactions (sympy). Sagging positive. The couple makes the 8 kN·m jump at x = 2 m.

Mohr's circle calculator

Reference
Eigenvalues and eigenvectors of the stress or strain tensor, and direct rotation R·S·RT (numpy).
Result
27 stress states, 10 strain states. 245 values, within 1 part in 109.
Limits
3D mode takes σz as principal. No out-of-plane shear.
Worked cases (3)

Plane stress, rotated element

σx = 80 MPa, σy = −40 MPa, τxy = 25 MPa, element rotated 30° counterclockwise.

ToolReference
σ185 MPa85 MPa
σ2−45 MPa−45 MPa
τmax (in plane)65 MPa65 MPa
θp11.3099°11.3099°
σx′71.6506 MPa71.6506 MPa
σy′−31.6506 MPa−31.6506 MPa
τx′y′−39.4615 MPa−39.4615 MPa

Reference: eigenvalues and eigenvectors of the stress tensor, and the rotated element from R·S·RT (numpy). By hand: centre 20, radius √(60² + 25²) = 65.

3D, σz principal

σx = 50 MPa, σy = 30 MPa, τxy = 20 MPa, σz = −40 MPa.

ToolReference
σ162.3607 MPa62.3607 MPa
σ217.6393 MPa17.6393 MPa
σ3−40 MPa−40 MPa
τabs max51.1803 MPa51.1803 MPa

Reference: eigenvalues of the 3×3 stress tensor (numpy).

Plane strain

εx = 500 µε, εy = −200 µε, γxy = 300 µε.

ToolReference
ε1530.789 µε530.789 µε
ε2−230.789 µε−230.789 µε
γmax (in plane)761.577 µε761.577 µε

Reference: eigenvalues of the strain tensor, which holds γxy/2 off the diagonal (numpy).

Moment of inertia and centroid calculator

Reference
Rectangles: section cut into non-overlapping grid cells on every rectangle edge, exact properties summed per cell, checked against closed forms for a hollow rectangle and an I-section. Circles, arcs and polygons: exact integration in sympy for every part in every orientation, and composites summed from exact moments about a fixed origin, with no parallel axis step per part.
Result
15 rectangle sections (I, T, channel, angle, Z, hollow rectangle, plate with voids, 8 random stacks): 150 values within 1 part in 109. Circles, arcs and polygons: 245 checks, including Beer and Johnston Sample Problem 5.1, a pipe against π(D4 − d4)/64 and the half and quarter circle closed forms; the tool matches the 8 composites in 80 values within 1 part in 109.
Limits
Straight edges and circular arcs in whole quarter turns; no ellipses or fillets. Overlapping shapes are flagged.
Worked cases (3)

T-section

Flange 120 × 20 mm on top of a web 20 × 100 mm, centred.

ToolReference
A4400 mm²4400 mm²
ȳ82.7273 mm82.7273 mm
Ix5.67394 × 106 mm45.67394 × 106 mm4
Iy2.94667 × 106 mm42.94667 × 106 mm4
J8.62061 × 106 mm48.62061 × 106 mm4

Reference: parallel axis theorem by hand, Σ(bh³/12 + Ad²) over the rectangles, voids subtracted. Axes through the centroid; x̄ from the left edge, ȳ from the bottom.

Hollow rectangle

100 mm wide, 150 mm tall, 10 mm wall. Drawn as a solid rectangle with an 80 × 130 mm void.

ToolReference
A4600 mm²4600 mm²
Ix1.34783 × 107 mm41.34783 × 107 mm4
Iy6.95333 × 106 mm46.95333 × 106 mm4
Sx1.79711 × 105 mm³1.79711 × 105 mm³

Reference: (BH³ − bh³) / 12, and Sx = Ix / 75 mm.

Z-section, product of inertia

Bottom flange 60 × 10 mm pointing left, web 10 × 80 mm, top flange 60 × 10 mm pointing right, 100 mm deep overall.

ToolReference
A2000 mm²2000 mm²
x̄, ȳ55, 50 mm55, 50 mm
Ix2.86667 × 106 mm42.86667 × 106 mm4
Iy1.11667 × 106 mm41.11667 × 106 mm4
Ixy1.35 × 106 mm41.35 × 106 mm4

Reference: parallel axis theorem by hand, Σ(bh³/12 + Ad²) over the rectangles, voids subtracted. Axes through the centroid; x̄ from the left edge, ȳ from the bottom. Ixy = ΣA dxdy, with y up.

Vector resultant calculator

Reference
Component sums (numpy).
Result
26 2D systems including the page's worked example, 15 3D systems. 209 values, within 1 part in 109.
Limits
Concurrent forces. No moments about a point.
Worked cases (3)

Two forces at right angles

200 N at 30°, 150 N at 120°. The worked example on the tool page.

ToolReference
Rx98.2051 N98.2051 N
Ry229.904 N229.904 N
|R|250 N250 N
θ66.8699°66.8699°

Reference: component sums (numpy). By hand: the forces are perpendicular, so |R| = √(200² + 150²) = 250 N at 30° + tan−1(150/200).

Three forces

400 N at 20°, 250 N at 135°, 300 N at 250°.

ToolReference
Rx96.4943 N96.4943 N
Ry31.677 N31.677 N
|R|101.561 N101.561 N
θ18.1739°18.1739°

Reference: component sums (numpy).

3D

F1 = (120, −50, 80) N, F2 = (−30, 90, 60) N, F3 = (10, 40, −100) N.

ToolReference
R(100, 80, 40) N(100, 80, 40) N
|R|134.164 N134.164 N
θx, θy, θz41.81, 53.4, 72.65°41.81, 53.4, 72.65°

Reference: component sums and direction cosines (numpy).

Thermodynamics cycle solver

Reference
CoolProp (IAPWS-95 water, R-134a, ideal-gas air cp), cold air-standard closed forms, Cengel and Boles Examples 9-3, 9-5, 9-6, 9-7, 10-4.
Result
Steam: 22 states, 8 kPa to 20 MPa, within 0.02% (the IF97 vs IAPWS-95 difference). R-134a: 11 states, within 1 part in 109. Otto: 4 cycles, within 0.003%. Brayton: 102 checks. Diesel and Atkinson: 250 checks. Dual, regenerative Brayton and reheat Rankine: 33 reference checks and 393 values from the tool. Forward and backward solving.
Limits
Rankine with at most one reheat and no regeneration. IF97 Regions 1, 2, 4: no near-critical region, no steam above 800 C. R-134a only.
Worked cases (3)

Steam: superheated state, isentropic expansion

State 1: 3 MPa, 350 °C. State 2: 10 kPa, s2 = s1.

ToolReference
h13116.06 kJ/kg3116.06 kJ/kg
s16.74492 kJ/kg·K6.74493 kJ/kg·K
v10.090555 m³/kg0.0905564 m³/kg
T245.8075 °C45.8063 °C
x20.8127960.812806
h22136.08 kJ/kg2136.08 kJ/kg

Reference: CoolProp, IAPWS-95. The tool uses IAPWS-IF97, the industrial fit to IAPWS-95, so the two differ in the fifth or sixth figure.

Brayton, Cengel and Boles Example 9-5

Ideal cycle, pressure ratio 8, T1 = 300 K, P1 = 100 kPa, T3 = 1300 K, air tables.

ToolTextbook
T2539.752 K540 K
h2544.173 kJ/kg544.35 kJ/kg
T4770.397 K770 K
h4789.604 kJ/kg789.37 kJ/kg
Back work ratio0.40240.403
ηth0.42540.426

Reference: the worked answers in Cengel and Boles, which read the air table by hand interpolation, hence the last-digit differences.

Diesel, Cengel and Boles Example 9-3

r = 18, cutoff ratio 2, P1 = 14.7 psia (101.35 kPa), T1 = 80 °F (300 K), cold air, k = 1.4.

ToolClosed formTextbook
T2953.301 K953.301 K1716 °R (953.3 K)
P25797.19 kPa5797.19 kPa841 psia (5798 kPa)
T31906.6 K1906.6 K3432 °R (1906.7 K)
T4791.705 K791.705 K1425 °R (791.7 K)
P4267.472 kPa267.472 kPa38.8 psia (267.5 kPa)
ηth0.63160.63160.632

Reference: cold air closed forms, T2 = T1rk−1, T3 = rcT2, T4 = T3(rc/r)k−1, η = 1 − (rck − 1) / (k rk−1(rc − 1)), and the textbook answers.

Equation of motion and transfer function solver

Reference
Python version of the engine (sympy, numpy); the JS mirrors it function for function.
Result
139 checks: determinants and cofactors to 4×4, Cramer's rule transfer functions, roots, natural frequencies and mode shapes. Tool matches the reference to 12 significant figures on a 2-mass and 3-mass chain.
Limits
1 to 4 masses, linear, zero initial conditions, up to second order.
Worked cases (2)

Two equal masses in a chain

Wall, spring k, mass m, spring k, mass m. m = 2 kg, k = 800 N/m. Body 1: 2x1″ = −800x1 + 800(x2 − x1) + F. Body 2: 2x2″ = −800(x2 − x1).

ToolReference
ω112.3607 rad/s12.3607 rad/s
Mode 1 shape0.618034, 10.618034, 1
ω232.3607 rad/s32.3607 rad/s
Mode 2 shape1, −0.6180341, −0.618034

Reference: eigenvalues of M−1K (numpy). By hand: ω² = (3 ∓ √5)k / 2m.

Two-mass chain with damping

m1 = 10 kg, m2 = 5 kg, c1 = 20, c2 = 10 N·s/m, k1 = 1200, k2 = 800 N/m, force F on mass 1. Body 1: 10x1″ = −1200x1 − 20x1′ + 800(x2 − x1) + 10(x2′ − x1′) + F. Body 2: 5x2″ = −800(x2 − x1) − 10(x2′ − x1′).

ToolReference
X1/F(s² + 2s + 160) / (10s4 + 50s³ + 3640s² + 5600s + 192000)(5s² + 10s + 800) / (50s4 + 250s³ + 18200s² + 28000s + 960000)
Poles, pair 1−0.510194 ± 8.05392j−0.510194 ± 8.05392j
ζ, pair 10.0632210.063221
Poles, pair 2−1.98981 ± 17.0544j−1.98981 ± 17.0544j
ζ, pair 20.115890.11589
Undamped ωn8.069, 17.1724 rad/s8.069, 17.1724 rad/s

Reference: det Z(s) and the adjugate of Z(s) = Ms² + Cs + K in sympy, roots in numpy. The tool divides the transfer function through by 5.

Free body diagram maker

Reference
None. Drawing tool, no calculation.