{
  "schema": "metheus.independent-engineering-review/2",
  "version": "1.3",
  "review_status": "verified_for_stated_geometry_and_finger_FEM_scope",
  "reviewed_at_utc": "2026-09-21T02:50:58.335350+00:00",
  "reviewed_at_kst": "2026-09-21T11:50:58.335350+09:00",
  "method": "Read-only inspection of saved source XML, final CAD audit and BOM records, actual solver input decks and result JSON. Independent arithmetic, distributed-force sums and constrained/loaded face coordinates checked. Native and FEM BRep local geometry compared using both Boolean differences without opening or modifying a document.",
  "source": {
    "generate_job": "836ef4d5f2bb46898ac779721e468de2",
    "candidate_index": 93,
    "candidate_rank": 94,
    "family": "t09/shape_1_R",
    "motion_samples": 72,
    "new_generate_run_in_v1_3": false,
    "unchanged_vs_reviewed_v1_2_source": {
      "DocJson": true,
      "MeasuresJson": true
    },
    "source_export_sha256": "b2c86af97ae2d127cfacfd71c1f39d10dc9b493f02f8106bdf2f46eccbf0d031",
    "historical_source_sample_caveat": "The preserved 72 saved source coordinates previously differed from exact four-bar reconstruction by up to 0.027984491 mm. Preserving these records does not remove that inherited sampling discrepancy."
  },
  "geometry": {
    "exposed_finger_reach_previous_mm": 25,
    "exposed_finger_reach_mm": 50,
    "reference_datum": "Front-cover plane Z32 to tip Z82",
    "pad_length_previous_mm": 23,
    "pad_length_mm": 48,
    "part_count": 97,
    "bom_groups": 36,
    "mass_kg": 1.0318296234836593,
    "mass_scope": "CAD estimate with mounting hardware; robot reference geometry excluded.",
    "swept_envelope_mm": [
      120.0,
      117.0,
      178.20000000000002
    ],
    "envelope_scope": "Includes mounting screws projecting 7 mm beyond the robot mating plane and the locating pin; excludes robot body.",
    "robot_reference_present": false,
    "all_single_valid_solids": true
  },
  "clearance": {
    "poses": 72,
    "unintended_interferences": 0,
    "threshold_mm3": 0.001,
    "mounting_static_pairs": 26,
    "mounting_static_interferences": 0,
    "scope": "All moving members vs listed fixed enclosure/frame components, opposite chain cross-pairs, selected nonadjacent same-side pins, and 9 actual gear mesh cases. Intended same-joint mating/thread intersections excluded. Finite samples and CAD boundary geometry; not tolerance/deflection/continuous collision certification.",
    "minimum_journal_seat_gap_mm": 0.019827814111960173,
    "journal_fit_note": "This is an intentional approximately 0.02 mm radial journal fit (4 mm pin / 4.04 mm bore), not exterior free-clearance certification."
  },
  "mounting": {
    "UR_to_body_rotation_z_deg": -45,
    "body_flange_center_xy_mm": [
      0,
      10
    ],
    "official_bolt_angles_deg": [
      45,
      135,
      225,
      315
    ],
    "body_bolt_angles_deg": [
      0,
      90,
      180,
      270
    ],
    "official_pin_angle_deg": 90,
    "body_pin_angle_deg": 45,
    "bolt_projection_into_robot_mm": 7,
    "stated_robot_limit_mm": 8,
    "male_pilot_diameter_length_mm": [
      31.48,
      2
    ],
    "robot_recess_diameter_depth_mm": [
      31.5,
      6.2
    ],
    "radial_slot_width_length_mm": [
      6.1,
      8
    ],
    "pin_ownership": "Robot-side retained dowel,6x10 nominal,5mm insertion each side; tool radial slot6.1x8 accepts tool-facing portion. Retention/fit to be verified.",
    "installation_access": "Bolt integrated rear adapter to robot before installing actuator and enclosure; M6 screw axes overlap occupied actuator region, so actuator/front enclosure removal is required for access. Dedicated installation sequence and torque validation remain.",
    "limits": "Nominal CAD mating geometry only. Actual robot fit, fastener supplier tolerances, thread engagement, tightening torque and pin retention need physical review."
  },
  "finger_FEM": {
    "runtime": "Installed METHEUS FEM service, FreeCAD 1.1.1 / CalculiX 2.22, separate headless FreeCAD process",
    "analysis": "Linear-elastic static analysis of each actual extended finger alone",
    "material": {
      "name": "Aluminium 7075-T6",
      "E_MPa": 71700,
      "poisson_ratio": 0.33,
      "assigned_yield_MPa": 503
    },
    "boundary_conditions": "Entire mounting-foot bottom face fixed in all three translations; forces distributed on the Z82 tip face. Right foot Z17, left foot Z23.",
    "load_assumptions": "25 N normal force on each independently analyzed finger. Tangential 7.405 N = 0.5 kg × (9.81 + 5 m/s²) is assigned fully to each separate case. No contact, slip or assembly-compliance model.",
    "geometry_identity": {
      "checked_at_utc": "2026-09-21T02:29:40.541108+00:00",
      "method": "Read native BRep members and final FEM BRep without opening or modifying a CAD document; reset global placements and compare both Boolean differences.",
      "working_native_sha256": "9839673b3ecfbd041c2df0f35c54d0bbf1682e3910504814c52fff1b31d0d22d",
      "rows": [
        {
          "side": "R",
          "native_local_volume_mm3": 7397.32809527987,
          "analysis_volume_mm3": 7397.328095279868,
          "native_only_volume_mm3": 0.0,
          "analysis_only_volume_mm3": 0.0,
          "native_valid_single_solid": true,
          "analysis_valid_single_solid": true
        },
        {
          "side": "L",
          "native_local_volume_mm3": 6722.791397951771,
          "analysis_volume_mm3": 6722.79139795177,
          "native_only_volume_mm3": 0.0,
          "analysis_only_volume_mm3": 0.0,
          "native_valid_single_solid": true,
          "analysis_valid_single_solid": true
        }
      ],
      "result": "same_local_solid_geometry"
    },
    "mesh_cases": [
      {
        "case": "R-1p8",
        "side": "R",
        "maximum_element_size_mm": 1.8,
        "element_type": "C3D10",
        "node_count": 22881,
        "input_sha256": "04e9381626034b94ed70204d62ed6291bcf442d400e8a0539e88473abcd89861",
        "solver_input_sha256": "4e5fcc01ba7ca8acbabeff54409a129b9854284fa435f1f6d05ab87110b1ba81",
        "result_sha256": "4f07da9b0c5a7b36bca66fa6c1e2505caf4b85266f0345bbf00aa9da94a48c75",
        "shape_sha256": "f409404d2cc4fba46f47f3a38ed2963c693557dc3ec54e72a71e15fcacfbaa33",
        "normal_load_sum_N": 25.00000000000017,
        "tangential_load_sum_N": -7.404999999999981,
        "fixed_nodes": 843,
        "fixed_face_plane_error_mm": 0.0,
        "loaded_face_plane_error_mm": 0.0,
        "max_von_mises_MPa": 17.131985575550637,
        "max_displacement_mm": 0.0517397718923238,
        "peak_stress_location_mm": [
          14.61170599972057,
          -1.6351618479151804,
          38.7792156456571
        ]
      },
      {
        "case": "R-1p2",
        "side": "R",
        "maximum_element_size_mm": 1.2,
        "element_type": "C3D10",
        "node_count": 45891,
        "input_sha256": "31f151c598c06432f28856edea0a9dd6d8a68ebac624584eb8f9e1741098642d",
        "solver_input_sha256": "38e9d639d421c0cc547aca9eb445412a153628e73702caceab639eb8c1f3503c",
        "result_sha256": "b01a016b7ce7616d4ebb54a79cc9b32f736fb5273a55737e98428de32866fa83",
        "shape_sha256": "f409404d2cc4fba46f47f3a38ed2963c693557dc3ec54e72a71e15fcacfbaa33",
        "normal_load_sum_N": 25.000000000000046,
        "tangential_load_sum_N": -7.404999999999958,
        "fixed_nodes": 1251,
        "fixed_face_plane_error_mm": 0.0,
        "loaded_face_plane_error_mm": 0.0,
        "max_von_mises_MPa": 18.557844473932633,
        "max_displacement_mm": 0.051912611169022314,
        "peak_stress_location_mm": [
          7.0,
          7.0,
          21.598039215686274
        ]
      },
      {
        "case": "R-0p8",
        "side": "R",
        "maximum_element_size_mm": 0.8,
        "element_type": "C3D10",
        "node_count": 105369,
        "input_sha256": "a6dd8e67537e8ad2a9deea80cfcccd6c43d79a1c589edf4c8e05819da74e1c0f",
        "solver_input_sha256": "7726dfd4a1f68b80feedaced830ffe9aa92fedcaa822ef3509c2a8491f626c94",
        "result_sha256": "9b8823ad4e87ad8b8e00f67fa35fd168112a0832199c2c60138d36a1a900a909",
        "shape_sha256": "f409404d2cc4fba46f47f3a38ed2963c693557dc3ec54e72a71e15fcacfbaa33",
        "normal_load_sum_N": 25.00000000000002,
        "tangential_load_sum_N": -7.405000000000145,
        "fixed_nodes": 1833,
        "fixed_face_plane_error_mm": 0.0,
        "loaded_face_plane_error_mm": 0.0,
        "max_von_mises_MPa": 21.479053179334585,
        "max_displacement_mm": 0.0519719074912101,
        "peak_stress_location_mm": [
          7.0,
          7.0,
          21.39610389610389
        ]
      },
      {
        "case": "L-1p8",
        "side": "L",
        "maximum_element_size_mm": 1.8,
        "element_type": "C3D10",
        "node_count": 21751,
        "input_sha256": "1d5008eba559798a850bd1f3a5fba4bb8ac7692efa99ec82767b86270f52b8fa",
        "solver_input_sha256": "2c47fb16f5243a672172bcde57cc9f33395a2e26bf0a4c90a8df0e3914ed7ac6",
        "result_sha256": "b636834b26bbfc718ac97e2d35194ee185f59a6a68d70ea94d05bd38f662d578",
        "shape_sha256": "5e7b4843f29fcd2557b7f91708369a8081c25b59b3ea561740c0e30e36636333",
        "normal_load_sum_N": -25.000000000000426,
        "tangential_load_sum_N": -7.40499999999995,
        "fixed_nodes": 639,
        "fixed_face_plane_error_mm": 0.0,
        "loaded_face_plane_error_mm": 0.0,
        "max_von_mises_MPa": 16.592136274414667,
        "max_displacement_mm": 0.039110564174488716,
        "peak_stress_location_mm": [
          -6.999999999999999,
          1.65,
          38.99999999817377
        ]
      },
      {
        "case": "L-1p2",
        "side": "L",
        "maximum_element_size_mm": 1.2,
        "element_type": "C3D10",
        "node_count": 42780,
        "input_sha256": "c7597113987556976e3250752cc5e1e2086b44bb91a06124cc33dc1aa91b16e3",
        "solver_input_sha256": "2bf83e23b8c6ff5407d378bfe3f63c10bd9facb0339d547d6d033faf34c4407d",
        "result_sha256": "f1a74c9a89ad8bc4c0dec38abffe740f825d7656f91864fc5fd8cb73181bf456",
        "shape_sha256": "5e7b4843f29fcd2557b7f91708369a8081c25b59b3ea561740c0e30e36636333",
        "normal_load_sum_N": -25.000000000000078,
        "tangential_load_sum_N": -7.404999999999909,
        "fixed_nodes": 1019,
        "fixed_face_plane_error_mm": 0.0,
        "loaded_face_plane_error_mm": 0.0,
        "max_von_mises_MPa": 17.73936823653455,
        "max_displacement_mm": 0.039256654562970596,
        "peak_stress_location_mm": [
          -6.999999999999999,
          1.65,
          38.99999999817377
        ]
      },
      {
        "case": "L-0p8",
        "side": "L",
        "maximum_element_size_mm": 0.8,
        "element_type": "C3D10",
        "node_count": 95833,
        "input_sha256": "eb00988a90c0ef411c97781f7c38e4317c618d57c86ce792d90296e070c3b6b6",
        "solver_input_sha256": "c70bdb1c47bdabd5709dac0d9de429fa89567638851bcc5c817740981f65aed8",
        "result_sha256": "332ae45d63062a6cbac91ac6acbda8f3d2b25bb3b7d9f8a61632b99194129358",
        "shape_sha256": "5e7b4843f29fcd2557b7f91708369a8081c25b59b3ea561740c0e30e36636333",
        "normal_load_sum_N": -25.000000000000007,
        "tangential_load_sum_N": -7.40500000000014,
        "fixed_nodes": 1633,
        "fixed_face_plane_error_mm": 0.0,
        "loaded_face_plane_error_mm": 0.0,
        "max_von_mises_MPa": 19.59325312616052,
        "max_displacement_mm": 0.03930721110198738,
        "peak_stress_location_mm": [
          -15.0,
          -7.0,
          27.398550724637676
        ]
      }
    ],
    "last_refinement_change_percent": {
      "R": {
        "peak_stress_increase_percent": 15.741099185873896,
        "max_displacement_increase_percent": 0.11422334737645201
      },
      "L": {
        "peak_stress_increase_percent": 10.450681585197952,
        "max_displacement_increase_percent": 0.12878463429859544
      }
    },
    "interpretation": "Maximum displacement changes by about 0.11–0.13% from 1.2 to 0.8 mm maximum element size. Peak stress rises by about 10.45–15.74% and shifts to sharp foot-to-shank corners. Stress convergence is not established; the low nominal stress-to-yield comparison is not a validated safety factor or a whole-gripper PASS.",
    "status": "results_reviewed_with_mesh_and_model_limits"
  },
  "planar_drive_review": {
    "samples": 72,
    "source_job": "836ef4d5f2bb46898ac779721e468de2",
    "source_rank": 94,
    "extension_direction": "Only Z reach changed; XY force application and generalized rotary coordinate unchanged.",
    "normal_pair_peak_Nm": 1.9133904819739866,
    "payload_tangent_peak_Nm": 0.24711550716536299,
    "conservative_sum_peak_Nm": 1.955724135197917,
    "conservative_sum_working_peak_Nm": 1.955724135197917,
    "motor_rated_Nm": 2.5,
    "efficiency_assumption": 0.85,
    "motor_demand_peak_Nm": 2.3008519237622553,
    "scope": "Finite-difference rigid-body virtual work. Pair normal25N each and total tangential7.405N. Absolute component sum conservatively covers relative force direction. No inertia, friction model, motor thermal duty or out-of-plane strength. Historical three-plate MFBD is kept separately.",
    "status": "independently_recomputed_for_stated_quasistatic_scope",
    "method_review": "Recomputed from the preserved 72 source positions with explicit central differences and one-sided endpoints. Normal and tangential absolute components are added at each common sample before taking the peak; maxima from different poses are not combined.",
    "peak_sample_zero_based": 26,
    "peak_normal_component_Nm": -1.9045522038971998,
    "peak_payload_component_Nm": -0.05117193130071405,
    "independently_recomputed_motor_demand_Nm": 2.3008519237622513,
    "rated_to_demand_margin_percent": 8.655406033783809,
    "margin_definition": "100 × (rated motor torque / estimated required motor torque − 1)",
    "source_export_sha256": "b2c86af97ae2d127cfacfd71c1f39d10dc9b493f02f8106bdf2f46eccbf0d031",
    "review_record_sha256": "e7c5d654782e4d2905c299128060ff41aeb4a36f1f11104c7315d1a86308cb66",
    "caveat": "Uses sampled rigid-body XY kinematics and an assumed constant 85% efficiency. No dynamic-inertia, measured friction, gear or motor thermal validation. This estimate is separate from single-finger bending FEM and does not certify a complete motor selection."
  },
  "remaining_checks": [
    "Model production fillets and check stress convergence.",
    "Verify mounting-foot screws, carrier and assembly compliance.",
    "Verify pad contact, friction, adhesive/bond retention and physical payload capacity.",
    "Verify fatigue, impact, thermal effects and duty cycle.",
    "Verify actual UR5e fit, tolerances, locating-pin retention and installation torque."
  ],
  "public_native_status": "passed",
  "provenance": [
    {
      "record": "final-clearance-audit.json",
      "sha256": "3e4d8bc8010b38ee00fcc8aa31b60358f1738d38cf10367ebf4088e980cfcda0",
      "modified_at_utc": "2026-09-21T02:17:01.432394+00:00"
    },
    {
      "record": "mounting-interface-audit.json",
      "sha256": "051145de916c5943247263058f31ed81092e0394e5855278fb3218108ae383ea",
      "modified_at_utc": "2026-09-21T02:14:47.425220+00:00"
    },
    {
      "record": "delivery-cad-summary.json",
      "sha256": "bc9211af48d1149aeeda1a9d6d5cea19574ce8491b5611e3a15c98c0acff8415",
      "modified_at_utc": "2026-09-21T02:24:29.592961+00:00"
    },
    {
      "record": "bom-grouped.json",
      "sha256": "4f9eabdaae1d2426e0d91242b673d3c4373e3ea776a4ec3d2bad8457c267fcf1",
      "modified_at_utc": "2026-09-21T02:24:28.221647+00:00"
    },
    {
      "record": "repair-revision-geometry.py",
      "sha256": "04c9ca2f84b05ea47fbfcd89c38a45609e018f32eecfcc376b642f29608a403a",
      "modified_at_utc": "2026-09-21T02:10:15.209342+00:00"
    },
    {
      "record": "run-finger-fem.py",
      "sha256": "7adeb78d629fa556d88778577f5be0b418d3c60773f7ba2d33d002a91cd8abf0",
      "modified_at_utc": "2026-09-21T02:21:45.964980+00:00"
    },
    {
      "record": "public-native-verification.json",
      "sha256": "508fd0a4d51e0d556f060374471328d8023876e3cf95168d35832161e2910a53",
      "modified_at_utc": "2026-09-21T02:44:08.407160+00:00"
    },
    {
      "record": "public-native-open-verification.json",
      "sha256": "b775e282f8cb1088f6d2bff30257f154f69128ebdd3acd1a59a7ad15c5e46f92",
      "modified_at_utc": "2026-09-21T02:44:53.408749+00:00"
    },
    {
      "record": "flange-topology-equivalence.json",
      "sha256": "b01c71e94f29606c4211c6b3834becdaeb26f4fbf2f9e18689bfc603b8919a3d",
      "modified_at_utc": "2026-09-21T02:44:07.775564+00:00"
    },
    {
      "record": "final-package-verification.json",
      "sha256": "553990d69f1634da5ead9e0ce192b26ef2474b9da634e741ddfef93167d11362",
      "modified_at_utc": "2026-09-21T02:46:26.155656+00:00"
    },
    {
      "record": "gripper-evidence.json",
      "sha256": "3d697e96398ff1d6df58680393ec5c81ceedfc67ec21d3efb9d8cf87251b489a",
      "modified_at_utc": "2026-09-21T02:46:00.525035+00:00"
    },
    {
      "record": "delivery/independent-fem-geometry-check.json",
      "sha256": "61c940d2ac1745c9e05edf351089640ef46d69a78b3acc6d81b1ea3e8f12e84b",
      "modified_at_utc": "2026-09-21T02:29:40.543108+00:00"
    },
    {
      "record": "planar-drive-review.json",
      "sha256": "e7c5d654782e4d2905c299128060ff41aeb4a36f1f11104c7315d1a86308cb66",
      "modified_at_utc": "2026-09-21T02:33:47.916056+00:00"
    }
  ],
  "public_native": {
    "filename": "wrist-gripper-v1.3.FCStd",
    "sha256": "28dca81b846bc514f53f81a39c843a9a77313d201db7ba484b9630db3ccc4523",
    "privacy": "passed",
    "crc": "passed",
    "colocated_dependencies": [
      "gripper-analysis-report.html",
      "gripper-drawing-template.svg"
    ],
    "reopen": {
      "opened": true,
      "parts": 97,
      "valid_single_solids": true,
      "invalid_objects": [],
      "mass_kg": 1.03182962348366,
      "source_samples": 72
    },
    "source_DocJson_and_72_MeasuresJson_identity": true,
    "source_native_sha256": "26414d47a15b56918a75fa6d9120984363ee8a2d889a9e72347987ebc2cc472f",
    "changed_zip_members_vs_source": [
      "Document.xml"
    ],
    "other_geometry_and_gui_members_byte_identical": true,
    "template_and_report_exist_beside_public_file": true,
    "serialization_healing": {
      "before_volume": 34967.045332358575,
      "after_volume": 34967.04533235857,
      "before_minus_after_mm3": 0.0,
      "after_minus_before_mm3": 0.0,
      "before_faces": 68,
      "after_faces": 68,
      "kind": "Orientation/tolerance healing of serialized BREP only; no intentional geometry or dimensional change"
    },
    "macro": {
      "filename": "gripper-motion.FCMacro",
      "sha256": "c4699c9a1c46f87ecf47714ae98ffb80f9f75785ec4ac2f27d563594fb77bb61",
      "review": "Reads embedded motion samples and changes the active document placements with a timer. No filesystem writes, network, subprocess, dynamic code evaluation or document-save calls."
    },
    "step": {
      "filename": "wrist-gripper-v1.3.step",
      "sha256": "a2b3a4de95207c5c63a1a9479e2a0107ee19fa9bb26fa038f05413247010054b"
    }
  }
}
