{
  "title": "Three contacts, one weight: where can the load be supported?",
  "kind": "Exact static-equilibrium teaching calculation; no landing tests",
  "mass_kg": 100.0,
  "g_m_s2": 9.80665,
  "contact_coordinates_m": [
    [
      -1.0,
      -0.6
    ],
    [
      1.0,
      -0.6
    ],
    [
      0.0,
      1.2
    ]
  ],
  "nominal_effective_pad_area_m2": 0.01,
  "rows": {
    "grid": 8181,
    "traverse": 201
  },
  "formulas": {
    "barycentric": "sum(wi)=1; sum(wi*xi)=xCG; sum(wi*yi)=yCG",
    "vertical_reactions": "Ri=wi*m*g only when every wi>=0",
    "margin": "minimum signed inward perpendicular distance to the three edge lines; positive inside, zero boundary, negative outside",
    "nominal_pressure": "p_average_i=Ri/A_pad"
  },
  "assumptions": [
    "Rigid body, uniform vertical gravity and exactly three noncollinear contacts on a horizontal plane.",
    "Only vertical contact reactions and weight; no horizontal forces, applied couples, adhesion or anchoring.",
    "Contacts are unilateral: they can push up but cannot pull down.",
    "At an edge or vertex, zero reactions are possible but the geometric reserve is zero; this is marginal equilibrium.",
    "The pad pressure estimate assumes a specified effective loaded area and a centred vertical resultant. Point-contact geometry does not resolve real pressure distribution or expand the support polygon."
  ],
  "limitations": [
    "A negative formal barycentric weight means this three-contact equilibrium is infeasible, not a physical negative contact force. No clamping-and-renormalizing is used to invent equilibrium.",
    "Outside the triangle, the signed halfplane margin is a constraint measure, not necessarily Euclidean distance to the triangle.",
    "No slope, touchdown dynamics, impact load, buckling, friction demand, terrain yielding, actuator limits or safety factor.",
    "Changing mass scales loads and nominal pressures, not the projected geometric support region in this ideal model.",
    "No validated bearing capacity or ground pressure allowable is supplied; nominal pressure is not a terrain safety forecast."
  ],
  "validation": {
    "closed_form_weight_max_error": 3.3306690738754696e-16,
    "force_residual_max_N": 2.2737367544323206e-13,
    "moment_residual_max_Nm": 2.8421709430404007e-13,
    "centroid_equal_load": true,
    "vertices_single_contact_load": true,
    "edge_zero_opposite_reaction": true,
    "outside_physical_reactions_absent": true
  },
  "sources": [
    {
      "title": "Orsolino et al., Feasible Region: an Actuation-Aware Extension of the Support Region (2019)",
      "url": "https://arxiv.org/abs/1903.07999",
      "scope": "Support polygon static-balance assumptions; actuator constraints can further restrict feasibility."
    },
    {
      "title": "MIT Underactuated Robotics, Highly-articulated Legged Robots",
      "url": "https://underactuated.csail.mit.edu/humanoids.html",
      "scope": "Contact-force and balance framework; static geometry is not a dynamic stability guarantee."
    }
  ]
}
