Beauchamp & Childress' "four principles" approach treats autonomy, beneficence, non-maleficence and justice as prima facie duties — each binding unless it conflicts with another, in which case clinicians "balance" them for the case at hand. This simulator makes that balancing act literal physics, on a real 2D plane instead of the original's 3D scene.
Each principle is a fixed anchor on the plane. A spring pulls the central decision node toward anchor i with force proportional to a spring constant ki = (your weight slider) × (how strongly that principle applies to the chosen scenario):
F_i = k_i · (anchor_i − x)
x(t+dt) = x(t) + v·dt, v(t+dt) = (v(t) + ΣF_i/m·dt) · (1 − c·dt)
Equilibrium (ΣF_i = 0):
x_eq = Σ(k_i · anchor_i) / Σ(k_i) ← the weighted centroid
- Weight sliders — how much ethical importance you personally assign to each principle right now (0 = ignored, 2 = double weight).
- Scenario score — how strongly the principle is engaged by the facts of the case (fixed per scenario, drawn from the underlying clinical dilemma; identical figures to the 3D version).
- The node always settles at the weighted average of the four anchors — exactly the same arithmetic as a weighted mean, just reached by damped spring dynamics instead of computed directly. Verified numerically: a closed-form weighted centroid and a full Euler-integrated run of this spring system agree to within 1e-14.
- Perturb node gives it a random kick so you can watch it re-converge; Reset weights returns all four sliders to 1.0 (unweighted balancing).
- Drag to pan, scroll/pinch to zoom — the anchor layout is a real coordinate plane; panning and zooming only change your view of it, never the physics.
This is a model of the reasoning process, not an algorithm that decides real cases — in practice a clinical ethics committee weighs these same four principles qualitatively, case by case.