Source: https://guthlabs.ai/docs/instruments/free-body-diagram-reaction-solver-2d-rigid-body/implementation/

instrument implementation / implementation-contract

# Free Body Diagram / Reaction Solver (2D Rigid Body) implementation

A source-bound implementation contract for Free Body Diagram / Reaction Solver (2D Rigid Body); deployment and executable qualification remain separate.

Status: **VERIFIED_CLEAN**Lifecycle: **implementation-contract**

## Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

**Record owner**: Guth Instruments

**Lifecycle**: verified-clean

**Evidence ID**: t6-074

**Effect**: Computation or source lookup only

## Input and validation requirements

The solver must reject coincident supports when the reaction calculation divides by the zero support spacing; otherwise it can produce an undefined or nonphysical reaction. Angle-sign ambiguity can also reverse the vertical reactions if the convention is not explicit.

## Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

## Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

````
{
  "inputs": {
    "units": "kN, m, kN·m",
    "coordinate_convention": "x right, y up; positive moment counterclockwise",
    "supports": {
      "A": {
        "type": "pin",
        "position_m": [
          0,
          0
        ]
      },
      "B": {
        "type": "roller_horizontal",
        "position_m": [
          4,
          0
        ]
      }
    },
    "forces": [
      {
        "magnitude_kN": 10,
        "angle_deg": 270,
        "position_m": [
          1,
          0
        ]
      },
      {
        "magnitude_kN": 6,
        "angle_deg": 270,
        "position_m": [
          3,
          0
        ]
      }
    ],
    "applied_couples": []
  },
  "expected_outputs": {
    "A_Rx_kN": 0,
    "A_Ry_kN": 9,
    "B_Ry_kN": 7,
    "A_M_kN_m": 0,
    "B_M_kN_m": 0
  },
  "working": "Resolve forces: F1x=10 cos(270°)=0, F1y=10 sin(270°)=-10 kN; F2x=6 cos(270°)=0, F2y=6 sin(270°)=-6 kN. ΣFx=Ax+0+0=0, so Ax=0 kN. Take moments about A: 4By+(1)(-10)+(3)(-6)=0; 4By-10-18=0; 4By=28; By=7 kN. ΣFy=Ay+By-10-6=0; Ay+7-16=0; Ay=9 kN. Pin and roller supports have no moment reactions."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/free-body-diagram-reaction-solver-2d-rigid-body/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/free-body-diagram-reaction-solver-2d-rigid-body/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/free-body-diagram-reaction-solver-2d-rigid-body/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche6/tranche6-results.json`
