{
  "side": "right",
  "value": {
    "hasModel": true,
    "runtimeVersion": "V326_PROXIMAL_PALM_OBJECT_MEET_RESTART",
    "side": "R",
    "meet": {
      "schema": "NEXPROD01_V324_ACTUAL_CALF_OBJECT_MEET_RESTART",
      "active": true,
      "applied": false,
      "pass": false,
      "side": "R",
      "reason": "arm_reach_residual_within_no_meet_band",
      "armResidualM": 0.00359,
      "maxObjectMeetM": 0.08,
      "firstSolve": {
        "schema": "NEXPROD01_V322_ACTUAL_CALF_PALM_SEARCH_SOLVE",
        "active": true,
        "applied": true,
        "pass": false,
        "side": "R",
        "firstPalm": "pinky",
        "rollDeg": -10,
        "before": {
          "indexDistanceM": 0.055301,
          "pinkyDistanceM": 0.042358
        },
        "after": {
          "index": {
            "distanceM": 0.016713,
            "surface": {
              "x": -0.11071,
              "y": 0.71649,
              "z": -0.31177
            }
          },
          "pinky": {
            "distanceM": 0.002056,
            "surface": {
              "x": -0.1033,
              "y": 0.74207,
              "z": -0.32192
            }
          },
          "palmFacesCalf": 0.36923
        },
        "bestCandidate": {
          "deg": -10,
          "firstPalm": "pinky",
          "pass": false,
          "score": 277.149134,
          "indexDistanceM": 0.016713,
          "pinkyDistanceM": 0.002056,
          "firstErrM": 0.002056,
          "secondErrM": 0.016713,
          "palmFacesCalf": 0.36923,
          "firstTarget": {
            "x": -0.1033,
            "y": 0.74207,
            "z": -0.32192
          },
          "indexSurface": {
            "x": -0.11071,
            "y": 0.71649,
            "z": -0.31177
          },
          "pinkySurface": {
            "x": -0.1033,
            "y": 0.74207,
            "z": -0.32192
          },
          "arm1": {
            "ok": true,
            "finalError": 0.00359,
            "iterations": 14
          },
          "arm2": {
            "ok": true,
            "finalError": 0.00242,
            "iterations": 10
          }
        },
        "candidateCount": 39,
        "calfVertexCount": 483,
        "outsideCalfVertexCount": 259,
        "axis": {
          "x": -0.09696,
          "y": -0.94174,
          "z": 0.32205
        },
        "outside": {
          "x": -0.25846,
          "y": -0.28865,
          "z": -0.92189
        },
        "changedFingerLocals": [],
        "policy": "V322 contact search: actual Index1/Pinky1 MCP points shifted 20mm proximally toward the wrist in the palm plane are the only hand points; actual CalfTwist skinned outside vertices are the only object surface. For each first-palm candidate, search L/R_Hand roll around the forearm axis, re-lock first contact with arm IK, and score both palm points against actual calf. No finger local writes and no Foot/ToeBase/legacy palm-target authority."
      },
      "secondSolve": null,
      "policy": "V324 object/leg-meet is only allowed when actual-calf first-palm arm reach has a material residual. Right-side actual-calf success is preserved and not moved. Fingers remain blocked."
    },
    "solve": {
      "schema": "NEXPROD01_V322_ACTUAL_CALF_PALM_SEARCH_SOLVE",
      "active": true,
      "applied": true,
      "pass": false,
      "side": "R",
      "firstPalm": "pinky",
      "rollDeg": -10,
      "before": {
        "indexDistanceM": 0.055301,
        "pinkyDistanceM": 0.042358
      },
      "after": {
        "index": {
          "distanceM": 0.016713,
          "surface": {
            "x": -0.11071,
            "y": 0.71649,
            "z": -0.31177
          }
        },
        "pinky": {
          "distanceM": 0.002056,
          "surface": {
            "x": -0.1033,
            "y": 0.74207,
            "z": -0.32192
          }
        },
        "palmFacesCalf": 0.36923
      },
      "bestCandidate": {
        "deg": -10,
        "firstPalm": "pinky",
        "pass": false,
        "score": 277.149134,
        "indexDistanceM": 0.016713,
        "pinkyDistanceM": 0.002056,
        "firstErrM": 0.002056,
        "secondErrM": 0.016713,
        "palmFacesCalf": 0.36923,
        "firstTarget": {
          "x": -0.1033,
          "y": 0.74207,
          "z": -0.32192
        },
        "indexSurface": {
          "x": -0.11071,
          "y": 0.71649,
          "z": -0.31177
        },
        "pinkySurface": {
          "x": -0.1033,
          "y": 0.74207,
          "z": -0.32192
        },
        "arm1": {
          "ok": true,
          "finalError": 0.00359,
          "iterations": 14
        },
        "arm2": {
          "ok": true,
          "finalError": 0.00242,
          "iterations": 10
        }
      },
      "candidateCount": 39,
      "calfVertexCount": 483,
      "outsideCalfVertexCount": 259,
      "axis": {
        "x": -0.09696,
        "y": -0.94174,
        "z": 0.32205
      },
      "outside": {
        "x": -0.25846,
        "y": -0.28865,
        "z": -0.92189
      },
      "changedFingerLocals": [],
      "policy": "V322 contact search: actual Index1/Pinky1 MCP points shifted 20mm proximally toward the wrist in the palm plane are the only hand points; actual CalfTwist skinned outside vertices are the only object surface. For each first-palm candidate, search L/R_Hand roll around the forearm axis, re-lock first contact with arm IK, and score both palm points against actual calf. No finger local writes and no Foot/ToeBase/legacy palm-target authority."
    },
    "mesh": {
      "schema": "NEXPROD01_V318_ACTUAL_CALF_PALM_MESH_TRUTH",
      "active": true,
      "side": "R",
      "pass": false,
      "status": "ACTUAL_CALF_PALM_CONTACT_BLOCKED",
      "gapM": -0.03469,
      "gapOk": false,
      "nearestPalmCalfM": 0.000915,
      "nearestPalmFootM": 0.008715,
      "nearestOk": true,
      "footCloser": false,
      "counts": {
        "palm": 4763,
        "calf": 2001,
        "foot": 2085,
        "calfBand": 455,
        "palmBand": 3119
      },
      "axisPoint": {
        "x": -0.07883,
        "y": 0.74301,
        "z": -0.32287
      },
      "radial": {
        "x": -0.92224,
        "y": -0.03667,
        "z": -0.38488
      },
      "policy": "V318 actual visible-surface authority: outside-shin palm contact is measured against skinned CALF vertices only. Foot/ToeBase are diagnostics and cannot satisfy the palm gate."
    },
    "prefinger": {
      "schema": "NEXPROD01_V322_ACTUAL_CALF_MESH_PREFINGER_GATE",
      "pass": false,
      "status": "ACTUAL_CALF_PALM_CONTACT_BLOCKED",
      "orientationFail": false,
      "wrongWay": false
    },
    "finger": {
      "active": false,
      "blocked": true,
      "ready": false,
      "reason": "v306_actual_surface_or_entry_frame_gate_not_passed"
    },
    "boneCount": 165,
    "skinnedMeshCount": 12
  },
  "events": [
    "CONSOLE warning [.WebGL-0x13ac00126c00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
    "CONSOLE warning [.WebGL-0x13ac00126c00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
    "CONSOLE warning [.WebGL-0x13ac00126c00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
    "CONSOLE warning [.WebGL-0x13ac00126c00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)",
    "CONSOLE error Failed to load resource: the server responded with a status of 404 (File not found)",
    "CONSOLE warning THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.",
    "CONSOLE warning THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.",
    "CONSOLE warning THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."
  ]
}