{
  "side": "left",
  "value": {
    "hasModel": true,
    "runtimeVersion": "V330_NEUTRAL_HAND_RESTART",
    "side": "L",
    "neutral": {
      "schema": "NEXPROD01_V330_NEUTRAL_HANDS_BEFORE_GRIP",
      "active": true,
      "applied": true,
      "pass": true,
      "stage": "v330_active_grip_restart_L",
      "rows": [
        {
          "side": "L",
          "ok": true,
          "hand": "L_Hand",
          "beforeLocalQuat": {
            "x": -0.017111981,
            "y": 7.4568e-05,
            "z": 0.010081891,
            "w": 0.999802746
          },
          "neutralLocalQuat": {
            "x": -0.017111981,
            "y": 7.4568e-05,
            "z": 0.010081891,
            "w": 0.999802746
          },
          "resetFingerBones": [
            "L_Thumb1",
            "L_Thumb2",
            "L_Thumb3",
            "L_Index1",
            "L_Index2",
            "L_Index3",
            "L_Mid1",
            "L_Mid2",
            "L_Mid3",
            "L_Ring1",
            "L_Ring2",
            "L_Ring3",
            "L_Pinky1",
            "L_Pinky2",
            "L_Pinky3"
          ]
        },
        {
          "side": "R",
          "ok": true,
          "hand": "R_Hand",
          "beforeLocalQuat": {
            "x": -0.017111864,
            "y": -7.4397e-05,
            "z": -0.010081958,
            "w": 0.999802747
          },
          "neutralLocalQuat": {
            "x": -0.017111864,
            "y": -7.4397e-05,
            "z": -0.010081958,
            "w": 0.999802747
          },
          "resetFingerBones": [
            "R_Thumb1",
            "R_Thumb2",
            "R_Thumb3",
            "R_Index1",
            "R_Index2",
            "R_Index3",
            "R_Mid1",
            "R_Mid2",
            "R_Mid3",
            "R_Ring1",
            "R_Ring2",
            "R_Ring3",
            "R_Pinky1",
            "R_Pinky2",
            "R_Pinky3"
          ]
        }
      ],
      "policy": "Both wrist/hand nodes are reset to rig rest local quaternion before grip-entry. Finger bones are also reset/open. Grip candidate A starts from neutral; candidate B starts from neutral plus 180 degrees. No stale wrist flexion/deviation/roll may enter grip solve."
    },
    "meet": {
      "schema": "NEXPROD01_V324_ACTUAL_CALF_OBJECT_MEET_RESTART",
      "active": true,
      "applied": false,
      "pass": false,
      "side": "L",
      "reason": "arm_reach_residual_within_no_meet_band",
      "armResidualM": 0.00578,
      "maxObjectMeetM": 0.08,
      "firstSolve": {
        "schema": "NEXPROD01_V330_NEUTRAL_HAND_RESTART_PALM_SOLVE",
        "active": true,
        "applied": true,
        "pass": false,
        "side": "L",
        "firstPalm": "pinky",
        "baseFlipDeg": 180,
        "rollDeg": 40,
        "totalWristDeg": 220,
        "before": {
          "indexDistanceM": 0.081298,
          "pinkyDistanceM": 0.048487
        },
        "after": {
          "index": {
            "distanceM": 0.022633,
            "surface": {
              "x": 0.15358,
              "y": 0.76286,
              "z": -0.42399
            }
          },
          "pinky": {
            "distanceM": 0.006065,
            "surface": {
              "x": 0.15931,
              "y": 0.74331,
              "z": -0.40533
            }
          },
          "palmFacesCalf": 0.437706,
          "palmPatch": {
            "gapM": -0.083326,
            "pass": false,
            "calfCount": 48,
            "palmCount": 650
          }
        },
        "bestCandidate": {
          "deg": 40,
          "baseFlipDeg": 180,
          "totalDeg": 220,
          "firstPalm": "pinky",
          "pass": false,
          "score": 2961.986816,
          "indexDistanceM": 0.022633,
          "pinkyDistanceM": 0.006065,
          "firstErrM": 0.006065,
          "secondErrM": 0.022633,
          "palmFacesCalf": 0.437706,
          "palmPatch": {
            "gapM": -0.083326,
            "pass": false,
            "calfCount": 48,
            "palmCount": 650
          },
          "firstTarget": {
            "x": 0.15931,
            "y": 0.74331,
            "z": -0.40533
          },
          "indexSurface": {
            "x": 0.15358,
            "y": 0.76286,
            "z": -0.42399
          },
          "pinkySurface": {
            "x": 0.15931,
            "y": 0.74331,
            "z": -0.40533
          },
          "arm1": {
            "ok": true,
            "finalError": 0.00578,
            "iterations": 14
          },
          "arm2": {
            "ok": true,
            "finalError": 0.00232,
            "iterations": 10
          }
        },
        "candidateCount": 148,
        "neutralization": {
          "schema": "NEXPROD01_V330_NEUTRAL_HANDS_BEFORE_GRIP",
          "active": true,
          "applied": true,
          "pass": true,
          "stage": "v330_active_grip_restart_L",
          "rows": [
            {
              "side": "L",
              "ok": true,
              "hand": "L_Hand",
              "beforeLocalQuat": {
                "x": -0.017111981,
                "y": 7.4568e-05,
                "z": 0.010081891,
                "w": 0.999802746
              },
              "neutralLocalQuat": {
                "x": -0.017111981,
                "y": 7.4568e-05,
                "z": 0.010081891,
                "w": 0.999802746
              },
              "resetFingerBones": [
                "L_Thumb1",
                "L_Thumb2",
                "L_Thumb3",
                "L_Index1",
                "L_Index2",
                "L_Index3",
                "L_Mid1",
                "L_Mid2",
                "L_Mid3",
                "L_Ring1",
                "L_Ring2",
                "L_Ring3",
                "L_Pinky1",
                "L_Pinky2",
                "L_Pinky3"
              ]
            },
            {
              "side": "R",
              "ok": true,
              "hand": "R_Hand",
              "beforeLocalQuat": {
                "x": -0.017111864,
                "y": -7.4397e-05,
                "z": -0.010081958,
                "w": 0.999802747
              },
              "neutralLocalQuat": {
                "x": -0.017111864,
                "y": -7.4397e-05,
                "z": -0.010081958,
                "w": 0.999802747
              },
              "resetFingerBones": [
                "R_Thumb1",
                "R_Thumb2",
                "R_Thumb3",
                "R_Index1",
                "R_Index2",
                "R_Index3",
                "R_Mid1",
                "R_Mid2",
                "R_Mid3",
                "R_Ring1",
                "R_Ring2",
                "R_Ring3",
                "R_Pinky1",
                "R_Pinky2",
                "R_Pinky3"
              ]
            }
          ],
          "policy": "Both wrist/hand nodes are reset to rig rest local quaternion before grip-entry. Finger bones are also reset/open. Grip candidate A starts from neutral; candidate B starts from neutral plus 180 degrees. No stale wrist flexion/deviation/roll may enter grip solve."
        },
        "calfVertexCount": 494,
        "outsideCalfVertexCount": 240,
        "palmPatchVertexCount": 650,
        "axis": {
          "x": -0.06945,
          "y": -0.91358,
          "z": 0.40069
        },
        "outside": {
          "x": 0.33873,
          "y": -0.39939,
          "z": -0.85191
        },
        "changedFingerLocals": [],
        "policy": "V330 resets both hands to rig-neutral before grip. Candidate A starts at neutral and searches only local wrist roll; candidate B is attempted only if A cannot produce collision-free two-palm contact and starts from neutral+180 before arm snap restarts. It uses Index/Pinky MCP points shifted 10 mm proximally toward the wrist in the palm plane. Those two points remain the only contact authority; nearby actual skinned palm vertices are only a penetration guard. Candidates that push the palm patch through actual CalfTwist skin cannot win. No finger writes and no Foot/ToeBase/legacy palm targets."
      },
      "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_V330_NEUTRAL_HAND_RESTART_PALM_SOLVE",
      "active": true,
      "applied": true,
      "pass": false,
      "side": "L",
      "firstPalm": "pinky",
      "baseFlipDeg": 180,
      "rollDeg": 40,
      "totalWristDeg": 220,
      "before": {
        "indexDistanceM": 0.081298,
        "pinkyDistanceM": 0.048487
      },
      "after": {
        "index": {
          "distanceM": 0.022633,
          "surface": {
            "x": 0.15358,
            "y": 0.76286,
            "z": -0.42399
          }
        },
        "pinky": {
          "distanceM": 0.006065,
          "surface": {
            "x": 0.15931,
            "y": 0.74331,
            "z": -0.40533
          }
        },
        "palmFacesCalf": 0.437706,
        "palmPatch": {
          "gapM": -0.083326,
          "pass": false,
          "calfCount": 48,
          "palmCount": 650
        }
      },
      "bestCandidate": {
        "deg": 40,
        "baseFlipDeg": 180,
        "totalDeg": 220,
        "firstPalm": "pinky",
        "pass": false,
        "score": 2961.986816,
        "indexDistanceM": 0.022633,
        "pinkyDistanceM": 0.006065,
        "firstErrM": 0.006065,
        "secondErrM": 0.022633,
        "palmFacesCalf": 0.437706,
        "palmPatch": {
          "gapM": -0.083326,
          "pass": false,
          "calfCount": 48,
          "palmCount": 650
        },
        "firstTarget": {
          "x": 0.15931,
          "y": 0.74331,
          "z": -0.40533
        },
        "indexSurface": {
          "x": 0.15358,
          "y": 0.76286,
          "z": -0.42399
        },
        "pinkySurface": {
          "x": 0.15931,
          "y": 0.74331,
          "z": -0.40533
        },
        "arm1": {
          "ok": true,
          "finalError": 0.00578,
          "iterations": 14
        },
        "arm2": {
          "ok": true,
          "finalError": 0.00232,
          "iterations": 10
        }
      },
      "candidateCount": 148,
      "neutralization": {
        "schema": "NEXPROD01_V330_NEUTRAL_HANDS_BEFORE_GRIP",
        "active": true,
        "applied": true,
        "pass": true,
        "stage": "v330_active_grip_restart_L",
        "rows": [
          {
            "side": "L",
            "ok": true,
            "hand": "L_Hand",
            "beforeLocalQuat": {
              "x": -0.017111981,
              "y": 7.4568e-05,
              "z": 0.010081891,
              "w": 0.999802746
            },
            "neutralLocalQuat": {
              "x": -0.017111981,
              "y": 7.4568e-05,
              "z": 0.010081891,
              "w": 0.999802746
            },
            "resetFingerBones": [
              "L_Thumb1",
              "L_Thumb2",
              "L_Thumb3",
              "L_Index1",
              "L_Index2",
              "L_Index3",
              "L_Mid1",
              "L_Mid2",
              "L_Mid3",
              "L_Ring1",
              "L_Ring2",
              "L_Ring3",
              "L_Pinky1",
              "L_Pinky2",
              "L_Pinky3"
            ]
          },
          {
            "side": "R",
            "ok": true,
            "hand": "R_Hand",
            "beforeLocalQuat": {
              "x": -0.017111864,
              "y": -7.4397e-05,
              "z": -0.010081958,
              "w": 0.999802747
            },
            "neutralLocalQuat": {
              "x": -0.017111864,
              "y": -7.4397e-05,
              "z": -0.010081958,
              "w": 0.999802747
            },
            "resetFingerBones": [
              "R_Thumb1",
              "R_Thumb2",
              "R_Thumb3",
              "R_Index1",
              "R_Index2",
              "R_Index3",
              "R_Mid1",
              "R_Mid2",
              "R_Mid3",
              "R_Ring1",
              "R_Ring2",
              "R_Ring3",
              "R_Pinky1",
              "R_Pinky2",
              "R_Pinky3"
            ]
          }
        ],
        "policy": "Both wrist/hand nodes are reset to rig rest local quaternion before grip-entry. Finger bones are also reset/open. Grip candidate A starts from neutral; candidate B starts from neutral plus 180 degrees. No stale wrist flexion/deviation/roll may enter grip solve."
      },
      "calfVertexCount": 494,
      "outsideCalfVertexCount": 240,
      "palmPatchVertexCount": 650,
      "axis": {
        "x": -0.06945,
        "y": -0.91358,
        "z": 0.40069
      },
      "outside": {
        "x": 0.33873,
        "y": -0.39939,
        "z": -0.85191
      },
      "changedFingerLocals": [],
      "policy": "V330 resets both hands to rig-neutral before grip. Candidate A starts at neutral and searches only local wrist roll; candidate B is attempted only if A cannot produce collision-free two-palm contact and starts from neutral+180 before arm snap restarts. It uses Index/Pinky MCP points shifted 10 mm proximally toward the wrist in the palm plane. Those two points remain the only contact authority; nearby actual skinned palm vertices are only a penetration guard. Candidates that push the palm patch through actual CalfTwist skin cannot win. No finger writes and no Foot/ToeBase/legacy palm targets."
    },
    "mesh": {
      "schema": "NEXPROD01_V318_ACTUAL_CALF_PALM_MESH_TRUTH",
      "active": true,
      "side": "L",
      "pass": false,
      "status": "ACTUAL_CALF_PALM_CONTACT_BLOCKED",
      "gapM": -0.021039,
      "gapOk": false,
      "nearestPalmCalfM": 0.001267,
      "nearestPalmFootM": 0.001267,
      "nearestOk": true,
      "footCloser": false,
      "counts": {
        "palm": 4763,
        "calf": 2000,
        "foot": 2085,
        "calfBand": 493,
        "palmBand": 675
      },
      "axisPoint": {
        "x": 0.1332,
        "y": 0.69332,
        "z": -0.37981
      },
      "radial": {
        "x": 0.75484,
        "y": -0.31073,
        "z": -0.57763
      },
      "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_V327_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
  },
  "manualNeutral": {
    "schema": "NEXPROD01_V330_NEUTRAL_HANDS_BEFORE_GRIP",
    "active": true,
    "applied": true,
    "pass": true,
    "stage": "v330_debug_manual_neutral",
    "rows": [
      {
        "side": "L",
        "ok": true,
        "hand": "L_Hand",
        "beforeLocalQuat": {
          "x": 0.015358283,
          "y": 0.939481467,
          "z": 0.012630817,
          "w": -0.342022198
        },
        "neutralLocalQuat": {
          "x": -0.017111981,
          "y": 7.4568e-05,
          "z": 0.010081891,
          "w": 0.999802746
        },
        "resetFingerBones": [
          "L_Thumb1",
          "L_Thumb2",
          "L_Thumb3",
          "L_Index1",
          "L_Index2",
          "L_Index3",
          "L_Mid1",
          "L_Mid2",
          "L_Mid3",
          "L_Ring1",
          "L_Ring2",
          "L_Ring3",
          "L_Pinky1",
          "L_Pinky2",
          "L_Pinky3"
        ]
      },
      {
        "side": "R",
        "ok": true,
        "hand": "R_Hand",
        "beforeLocalQuat": {
          "x": -0.017111864,
          "y": -7.4397e-05,
          "z": -0.010081958,
          "w": 0.999802747
        },
        "neutralLocalQuat": {
          "x": -0.017111864,
          "y": -7.4397e-05,
          "z": -0.010081958,
          "w": 0.999802747
        },
        "resetFingerBones": [
          "R_Thumb1",
          "R_Thumb2",
          "R_Thumb3",
          "R_Index1",
          "R_Index2",
          "R_Index3",
          "R_Mid1",
          "R_Mid2",
          "R_Mid3",
          "R_Ring1",
          "R_Ring2",
          "R_Ring3",
          "R_Pinky1",
          "R_Pinky2",
          "R_Pinky3"
        ]
      }
    ],
    "policy": "Both wrist/hand nodes are reset to rig rest local quaternion before grip-entry. Finger bones are also reset/open. Grip candidate A starts from neutral; candidate B starts from neutral plus 180 degrees. No stale wrist flexion/deviation/roll may enter grip solve."
  },
  "events": [
    "CONSOLE warning [.WebGL-0x20c00163800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
    "CONSOLE warning [.WebGL-0x20c00163800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
    "CONSOLE warning [.WebGL-0x20c00163800]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
    "CONSOLE warning [.WebGL-0x20c00163800]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."
  ]
}