{
 "design": "designs/default.json",
 "mesh_mm": 3.5,
 "cases": {
  "T1": {
   "force": [
    221.4,
    0.0,
    1545.4713918963234
   ],
   "moments": {
    "x": 31.45,
    "z": -28.05
   },
   "from": "landing: shin force 333 N, knee torque 42 N\u00b7m -> push-rod 1296 N (sin phi 0.54 at a 48\u00b0 knee)",
   "rod_force_n": 1296.2713918963234,
   "sin_phi": 0.5446390350150274,
   "knee_torque_nm": 42.36,
   "knee_stop_nm": 0.0
  },
  "T2": {
   "force": [
    69.1,
    -137.1,
    -65.0
   ],
   "moments": {
    "x": -17.049999999999997,
    "z": -44.84
   },
   "from": "side_kerb or the floor: out-of-plane moment at the hip 44 N\u00b7m, lateral force 137 N"
  },
  "S1": {
   "force": [
    0.0,
    -129.266728065,
    338.1332770009029
   ],
   "moments": {
    "x": 24.510009674193437
   },
   "from": "landing or the floor: 338 N vertical, 129 N sideways, wheel offset 40 mm"
  },
  "A1": {
   "from": "motor torque 54 N\u00b7m with 44 N\u00b7m out of plane and 338 N radial"
  },
  "P1": {
   "from": "338 N up and 129 N sideways through the bearing, 44 N\u00b7m out of plane, motor torque 54 N\u00b7m on the lugs"
  },
  "Y1": {
   "from": "the whole leg: 338 N up, 129 N sideways, 44 N\u00b7m out of plane, 54 N\u00b7m about the hip axis"
  },
  "T1-fall": {
   "force": [
    819.3,
    0.0,
    2339.686304654328
   ],
   "moments": {
    "x": -77.39,
    "z": -75.43
   },
   "from": "fall_side: shin force 1029 N, knee torque 165 N\u00b7m (the rod takes the motor's 66, the knee stop the rest) -> push-rod 2020 N (sin phi 0.54 at a 48\u00b0 knee)",
   "rod_force_n": 2019.686304654328,
   "sin_phi": 0.5446390350150274,
   "knee_torque_nm": 165.29,
   "knee_stop_nm": 99.28999999999999
  },
  "T2-fall": {
   "force": [
    789.4,
    0.1,
    -337.7
   ],
   "moments": {
    "x": -46.040000000000006,
    "z": -106.74
   },
   "from": "fall_front or the floor: out-of-plane moment at the hip 46 N\u00b7m, lateral force 0 N"
  },
  "S1-fall": {
   "force": [
    0.0,
    -539.2,
    876.5330398792732
   ],
   "moments": {
    "x": 80.98761498719509
   },
   "from": "fall_side or the floor: 877 N vertical, 539 N sideways, wheel offset 40 mm"
  },
  "Y1-fall": {
   "from": "falls: the whole leg, 877 N up, 539 N sideways, 46 N\u00b7m out of plane"
  }
 },
 "stack_mm": {
  "wall": 104.0,
  "bracket": [
   104.0,
   114.0
  ],
  "hip_out": 171.7,
  "hip_motor": [
   115.99999999999999,
   171.7
  ],
  "hip_plate": [
   171.2,
   195.29999999999998
  ],
  "hip_face": 196.29999999999998,
  "hip_tab": [
   171.2,
   195.29999999999998
  ],
  "thigh": [
   196.29999999999998,
   248.29999999999998
  ],
  "rod": [
   255.29999999999998,
   267.29999999999995
  ],
  "crank": [
   268.79999999999995,
   282.79999999999995
  ],
  "knee_face": 282.79999999999995,
  "knee_out": 307.4,
  "knee_plate": [
   283.79999999999995,
   307.9
  ],
  "knee_motor": [
   307.4,
   363.09999999999997
  ],
  "knee_tab": [
   283.79999999999995,
   307.9
  ],
  "posts": [
   195.29999999999998,
   283.79999999999995
  ],
  "knee_pin_mm": 110,
  "shin": [
   268.79999999999995,
   306.29999999999995
  ],
  "wheel_adapter": [
   306.29999999999995,
   316.29999999999995
  ],
  "wheel_mount": 316.29999999999995,
  "wheel": [
   323.79999999999995,
   368.4
  ],
  "wheel_centre": 346.09999999999997,
  "min_hip_to_axle": 151.65,
  "min_knee_deg": 44.55898734974485,
  "min_sin_phi": 0.545,
  "min_sin_phi_at_knee_deg": 48.0
 },
 "track_mm": 692.1999999999999,
 "stack_notes": [
  "the wheel passes under the knee motor: hip-to-axle at least 152 mm, so the knee stops at 45\u00b0 or more"
 ],
 "assumed_interfaces": [],
 "results": [
  {
   "part": "thigh",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 18137,
    "tets": 74687,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      221.4,
      0.0,
      1545.4713918963234
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": 31.45,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -28.05,
     "axis": [
      0.0,
      0.0,
      1.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    }
   ],
   "max_displacement_mm": 1.4426,
   "probe_displacement_mm": [
    0.8838,
    0.5285,
    0.1515
   ],
   "max_von_mises_mpa": 14.78,
   "von_mises_design_mpa": 14.78,
   "safety_factor": 3.31,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": 5670.7,
   "torsional_stiffness_nm_per_deg": null,
   "animation": "exports/fea/thigh-T1.mp4",
   "viewer": "exports/fea/thigh-T1.json",
   "case": "T1",
   "material_id": "pa6_cf_xy",
   "load_from": "landing: shin force 333 N, knee torque 42 N\u00b7m -> push-rod 1296 N (sin phi 0.54 at a 48\u00b0 knee)",
   "png": "exports/fea/thigh-T1.png",
   "seconds": 94.2,
   "assumed_interfaces": []
  },
  {
   "part": "thigh",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 18137,
    "tets": 74687,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      69.1,
      -137.1,
      -65.0
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -17.049999999999997,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -44.84,
     "axis": [
      0.0,
      0.0,
      1.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    }
   ],
   "max_displacement_mm": 1.6552,
   "probe_displacement_mm": [
    1.0983,
    -0.3868,
    -0.0571
   ],
   "max_von_mises_mpa": 25.67,
   "von_mises_design_mpa": 25.67,
   "safety_factor": 1.91,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": 209.6,
   "torsional_stiffness_nm_per_deg": null,
   "animation": "exports/fea/thigh-T2.mp4",
   "viewer": "exports/fea/thigh-T2.json",
   "case": "T2",
   "material_id": "pa6_cf_xy",
   "load_from": "side_kerb or the floor: out-of-plane moment at the hip 44 N\u00b7m, lateral force 137 N",
   "png": "exports/fea/thigh-T2.png",
   "seconds": 94.1,
   "assumed_interfaces": []
  },
  {
   "part": "shin",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 14226,
    "tets": 59243,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      0.0,
      -129.266728065,
      338.1332770009029
     ],
     "area_mm2": 1430.9
    },
    {
     "kind": "torque",
     "nm": 24.510009674193437,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      306.29999999999995,
      -400.0
     ],
     "area_mm2": 1430.9
    }
   ],
   "max_displacement_mm": 0.4881,
   "probe_displacement_mm": [
    0.0018,
    0.2675,
    0.0644
   ],
   "max_von_mises_mpa": 5.91,
   "von_mises_design_mpa": 5.81,
   "safety_factor": 8.43,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": null,
   "torsional_stiffness_nm_per_deg": 130.11,
   "animation": "exports/fea/shin-S1.mp4",
   "viewer": "exports/fea/shin-S1.json",
   "case": "S1",
   "material_id": "pa6_cf_xy",
   "load_from": "landing or the floor: 338 N vertical, 129 N sideways, wheel offset 40 mm",
   "png": "exports/fea/shin-S1.png",
   "seconds": 76.9,
   "assumed_interfaces": []
  },
  {
   "part": "output_adapter",
   "material": "PA6-CF across the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 48 MPa dry across the layers, x0.6 humid, x0.8 print: the safe value when the stress crosses the layers",
   "mesh": {
    "nodes": 7411,
    "tets": 33122,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "torque",
     "nm": 54.0,
     "axis": [
      0.0,
      0.0,
      1.0
     ],
     "point_mm": [
      0.0,
      0.0,
      24.6
     ],
     "area_mm2": 1878.8
    },
    {
     "kind": "torque",
     "nm": 44.47,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      0.0,
      24.6
     ],
     "area_mm2": 1878.8
    },
    {
     "kind": "force",
     "n": [
      0.0,
      338.1332770009029,
      0.0
     ],
     "area_mm2": 1878.8
    }
   ],
   "max_displacement_mm": 0.0279,
   "probe_displacement_mm": [
    0.0,
    0.0017,
    0.0
   ],
   "max_von_mises_mpa": 11.98,
   "von_mises_design_mpa": 5.29,
   "safety_factor": 4.34,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "torsional_stiffness_nm_per_deg": 1793.03,
   "stiffness_n_per_mm": 203421.4,
   "animation": "exports/fea/output_adapter-A1.mp4",
   "viewer": "exports/fea/output_adapter-A1.json",
   "case": "A1",
   "material_id": "pa6_cf_z",
   "load_from": "motor torque 54 N\u00b7m with 44 N\u00b7m out of plane and 338 N radial",
   "png": "exports/fea/output_adapter-A1.png",
   "seconds": 46.5,
   "assumed_interfaces": []
  },
  {
   "part": "motor_plate",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 22789,
    "tets": 107886,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      0.0,
      338.1332770009029,
      129.266728065
     ],
     "area_mm2": 2449.9
    },
    {
     "kind": "torque",
     "nm": 44.47,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      0.0,
      18.6
     ],
     "area_mm2": 2449.9
    },
    {
     "kind": "torque",
     "nm": 54.0,
     "axis": [
      0.0,
      0.0,
      1.0
     ],
     "point_mm": [
      0.0,
      0.0,
      0.0
     ],
     "area_mm2": 2250.3
    }
   ],
   "max_displacement_mm": 2.0383,
   "probe_displacement_mm": [
    0.1073,
    -0.1118,
    -0.9353
   ],
   "max_von_mises_mpa": 44.58,
   "von_mises_design_mpa": 18.82,
   "safety_factor": 2.6,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": null,
   "torsional_stiffness_nm_per_deg": 767.91,
   "animation": "exports/fea/motor_plate-P1.mp4",
   "viewer": "exports/fea/motor_plate-P1.json",
   "case": "P1",
   "material_id": "pa6_cf_xy",
   "load_from": "338 N up and 129 N sideways through the bearing, 44 N\u00b7m out of plane, motor torque 54 N\u00b7m on the lugs",
   "png": "exports/fea/motor_plate-P1.png",
   "seconds": 137.6,
   "assumed_interfaces": []
  },
  {
   "part": "yoke_bracket",
   "material": "PA6-CF across the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 48 MPa dry across the layers, x0.6 humid, x0.8 print: the safe value when the stress crosses the layers",
   "mesh": {
    "nodes": 33517,
    "tets": 140062,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      0.0,
      -129.266728065,
      338.1332770009029
     ],
     "area_mm2": 1024.9
    },
    {
     "kind": "torque",
     "nm": 44.47,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      239.54999999999998,
      0.0
     ],
     "area_mm2": 1024.9
    },
    {
     "kind": "torque",
     "nm": 54.0,
     "axis": [
      0.0,
      1.0,
      0.0
     ],
     "point_mm": [
      0.0,
      239.54999999999998,
      0.0
     ],
     "area_mm2": 1024.9
    }
   ],
   "max_displacement_mm": 0.5888,
   "probe_displacement_mm": [
    0.1221,
    -0.025,
    0.2355
   ],
   "max_von_mises_mpa": 8.01,
   "von_mises_design_mpa": 8.01,
   "safety_factor": 2.87,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": 1581.7,
   "torsional_stiffness_nm_per_deg": 891.99,
   "animation": "exports/fea/yoke_bracket-Y1.mp4",
   "viewer": "exports/fea/yoke_bracket-Y1.json",
   "case": "Y1",
   "material_id": "pa6_cf_z",
   "load_from": "the whole leg: 338 N up, 129 N sideways, 44 N\u00b7m out of plane, 54 N\u00b7m about the hip axis",
   "png": "exports/fea/yoke_bracket-Y1.png",
   "seconds": 166.1,
   "assumed_interfaces": []
  },
  {
   "part": "thigh",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 18137,
    "tets": 74687,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      819.3,
      0.0,
      2339.686304654328
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -77.39,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -75.43,
     "axis": [
      0.0,
      0.0,
      1.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    }
   ],
   "max_displacement_mm": 3.7228,
   "probe_displacement_mm": [
    2.6614,
    -0.5581,
    -0.0287
   ],
   "max_von_mises_mpa": 57.31,
   "von_mises_design_mpa": 57.31,
   "safety_factor": 0.86,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": 2907.8,
   "torsional_stiffness_nm_per_deg": null,
   "animation": "exports/fea/thigh-T1-fall.mp4",
   "viewer": "exports/fea/thigh-T1-fall.json",
   "case": "T1-fall",
   "material_id": "pa6_cf_xy",
   "load_from": "fall_side: shin force 1029 N, knee torque 165 N\u00b7m (the rod takes the motor's 66, the knee stop the rest) -> push-rod 2020 N (sin phi 0.54 at a 48\u00b0 knee)",
   "png": "exports/fea/thigh-T1-fall.png",
   "seconds": 87.8,
   "assumed_interfaces": []
  },
  {
   "part": "thigh",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 18137,
    "tets": 74687,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      789.4,
      0.1,
      -337.7
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -46.040000000000006,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    },
    {
     "kind": "torque",
     "nm": -106.74,
     "axis": [
      0.0,
      0.0,
      1.0
     ],
     "point_mm": [
      0.0,
      222.29999999999998,
      -200.0
     ],
     "area_mm2": 2692.4
    }
   ],
   "max_displacement_mm": 4.6951,
   "probe_displacement_mm": [
    3.3477,
    -0.4888,
    -0.1248
   ],
   "max_von_mises_mpa": 78.96,
   "von_mises_design_mpa": 78.96,
   "safety_factor": 0.62,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": 274.6,
   "torsional_stiffness_nm_per_deg": null,
   "animation": "exports/fea/thigh-T2-fall.mp4",
   "viewer": "exports/fea/thigh-T2-fall.json",
   "case": "T2-fall",
   "material_id": "pa6_cf_xy",
   "load_from": "fall_front or the floor: out-of-plane moment at the hip 46 N\u00b7m, lateral force 0 N",
   "png": "exports/fea/thigh-T2-fall.png",
   "seconds": 75.4,
   "assumed_interfaces": []
  },
  {
   "part": "shin",
   "material": "PA6-CF along the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 102 MPa dry in the layers, x0.6 humid, x0.8 print: for parts printed so their main stress runs in the layers",
   "mesh": {
    "nodes": 14226,
    "tets": 59243,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      0.0,
      -539.2,
      876.5330398792732
     ],
     "area_mm2": 1430.9
    },
    {
     "kind": "torque",
     "nm": 80.98761498719509,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      306.29999999999995,
      -400.0
     ],
     "area_mm2": 1430.9
    }
   ],
   "max_displacement_mm": 0.7689,
   "probe_displacement_mm": [
    -0.0374,
    0.2745,
    0.1193
   ],
   "max_von_mises_mpa": 18.96,
   "von_mises_design_mpa": 18.96,
   "safety_factor": 2.58,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": null,
   "torsional_stiffness_nm_per_deg": 187.28,
   "animation": "exports/fea/shin-S1-fall.mp4",
   "viewer": "exports/fea/shin-S1-fall.json",
   "case": "S1-fall",
   "material_id": "pa6_cf_xy",
   "load_from": "fall_side or the floor: 877 N vertical, 539 N sideways, wheel offset 40 mm",
   "png": "exports/fea/shin-S1-fall.png",
   "seconds": 77.7,
   "assumed_interfaces": []
  },
  {
   "part": "yoke_bracket",
   "material": "PA6-CF across the layers (humid)",
   "material_note": "Bambu PA6-CF TDS 48 MPa dry across the layers, x0.6 humid, x0.8 print: the safe value when the stress crosses the layers",
   "mesh": {
    "nodes": 33517,
    "tets": 140062,
    "size_mm": 3.5,
    "element": "P2 tetrahedra"
   },
   "loads": [
    {
     "kind": "force",
     "n": [
      0.0,
      -539.2,
      876.5330398792732
     ],
     "area_mm2": 1024.9
    },
    {
     "kind": "torque",
     "nm": 46.06000000000001,
     "axis": [
      1.0,
      0.0,
      0.0
     ],
     "point_mm": [
      0.0,
      239.54999999999998,
      0.0
     ],
     "area_mm2": 1024.9
    },
    {
     "kind": "torque",
     "nm": 165.29,
     "axis": [
      0.0,
      1.0,
      0.0
     ],
     "point_mm": [
      0.0,
      239.54999999999998,
      0.0
     ],
     "area_mm2": 1024.9
    }
   ],
   "max_displacement_mm": 1.5009,
   "probe_displacement_mm": [
    0.3738,
    -0.0491,
    0.5019
   ],
   "max_von_mises_mpa": 18.44,
   "von_mises_design_mpa": 18.44,
   "safety_factor": 1.25,
   "assumptions": "linear elastic, small deflection, isotropic; faces clamped where fixed; no contact, preload or buckling",
   "stiffness_n_per_mm": 2270.5,
   "torsional_stiffness_nm_per_deg": 891.69,
   "animation": "exports/fea/yoke_bracket-Y1-fall.mp4",
   "viewer": "exports/fea/yoke_bracket-Y1-fall.json",
   "case": "Y1-fall",
   "material_id": "pa6_cf_z",
   "load_from": "falls: the whole leg, 877 N up, 539 N sideways, 46 N\u00b7m out of plane",
   "png": "exports/fea/yoke_bracket-Y1-fall.png",
   "seconds": 165.8,
   "assumed_interfaces": []
  }
 ],
 "targets": {
  "sf": 2.0,
  "sf_fall": 1.2,
  "wheel_deflection_mm": 4.0
 },
 "rod": {
  "force_n": 1296,
  "buckling_n": 4245,
  "buckling_sf": 3.3,
  "rod_end_static_n": 7800.0,
  "rod_end_sf": 6.0,
  "sin_phi_min": 0.545
 },
 "output_joint": {
  "torque_nm": 60.0,
  "screws": "9 x M5 on \u00d836, 3.8 kN each",
  "friction_nm": 154.9,
  "dowels_nm": 38.7,
  "capacity_nm": 193.6,
  "sf": 3.23,
  "note": "clamp friction + dowel bearing on PA6-CF (humid, sustained); torque the screws to the preload, re-check after a week"
 },
 "knee_stop": {
  "torque_nm": 99.3,
  "designed": false,
  "note": "the knee torque beyond the motor cap ends on the knee hard stop; size a stop (and a TPU bumper) for it"
 },
 "verdict": {
  "all": {
   "wheel_deflection_mm": 2.61,
   "min_safety_factor": 1.91,
   "min_safety_factor_fall": 0.62,
   "weakest": "thigh T2-fall",
   "ok": false,
   "joint_ok": true,
   "rod_ok": true
  }
 }
}
