{
  "id": "MIN-CV101-MP2",
  "equipment": "CV-101",
  "revision": "MP2 / website inspection A",
  "type": "Fictional inert training prop",
  "units": "Authored coordinate units; physical scale unverified",
  "source_mesh_count": 67,
  "source_transform_nodes": 90,
  "source_glb_nodes": 157,
  "source_sha256": "2509072a8d42d119c78fae8140e8d51afd5a2f78271bf7c0811a74e3cb4472df",
  "notes": "Website views exclude the studio floor and two human context groups from the active scene. Original source GLB is retained intact. All 67 meshes and 157 nodes remain in each file. Inspection views are local derivatives, not an operational simulator.",
  "parts": [
    {
      "id": "M101",
      "node": "motor",
      "name": "Drive motor",
      "description": "Static context; no drive operation.",
      "position": [
        -3.1,
        1.35,
        -0.1
      ]
    },
    {
      "id": "GB101",
      "node": "reducer",
      "name": "Reducer",
      "description": "Static drive context.",
      "position": [
        -0.5,
        1.35,
        -0.1
      ]
    },
    {
      "id": "C101",
      "node": "coupling",
      "name": "Coupling",
      "description": "Visible with the guard open on this inert model.",
      "position": [
        -1.2,
        1.25,
        -0.2
      ]
    },
    {
      "id": "CG101",
      "node": "CG101_panel",
      "name": "Left-hinged guard",
      "description": "GUARD carries both captive cams.",
      "position": [
        0,
        1.8,
        0.2
      ]
    },
    {
      "id": "CAM_A",
      "node": "A_rigid_tongue",
      "name": "Upper cam A",
      "description": "Captive quarter-turn cam parented to GUARD.",
      "position": [
        1.65,
        2.55,
        0.28
      ]
    },
    {
      "id": "KEEPER_A",
      "node": "A_fixed_keeper",
      "name": "Upper fixed keeper",
      "description": "World-fixed striker and integral frame standoff.",
      "position": [
        1.85,
        2.55,
        0.37
      ]
    },
    {
      "id": "CAM_B",
      "node": "B_rigid_tongue",
      "name": "Lower cam B",
      "description": "Captive quarter-turn cam; the fault state leaves B disengaged.",
      "position": [
        1.65,
        0.95,
        0.28
      ]
    },
    {
      "id": "KEEPER_B",
      "node": "B_fixed_keeper",
      "name": "Lower fixed keeper",
      "description": "Inspect B against this fixed retaining face.",
      "position": [
        1.85,
        0.95,
        0.37
      ]
    },
    {
      "id": "DP101",
      "node": "conveyor_belt",
      "name": "Conveyor belt context",
      "description": "Static context. No belt movement or energy simulation.",
      "position": [
        3.45,
        1,
        -2.5
      ]
    }
  ],
  "states": [
    {
      "id": "assembled",
      "title": "Both cams engaged",
      "file": "assets/models/MIN-CV101-MP2-assembled.glb",
      "sha256": "f3dd39e76613e93406cd631dd97d83fe1b487cf810e4764392b645988b4931fc",
      "guard_degrees": 0,
      "cam_a_degrees": 0,
      "cam_b_degrees": 0,
      "part_positions": {
        "M101": [
          -3.1,
          1.35,
          -0.1
        ],
        "GB101": [
          -0.5,
          1.35,
          -0.1
        ],
        "C101": [
          -1.2,
          1.25,
          -0.2
        ],
        "CG101": [
          0.0,
          1.8,
          0.2
        ],
        "CAM_A": [
          1.65,
          2.55,
          0.28
        ],
        "KEEPER_A": [
          1.85,
          2.55,
          0.37
        ],
        "CAM_B": [
          1.65,
          0.95,
          0.28
        ],
        "KEEPER_B": [
          1.85,
          0.95,
          0.37
        ],
        "DP101": [
          3.45,
          1,
          -2.5
        ]
      }
    },
    {
      "id": "fault",
      "title": "Lower B disengaged \u2014 HOLD",
      "file": "assets/models/MIN-CV101-MP2-fault.glb",
      "sha256": "df6eb8536292ca419056613c7a87fa4e3e153599e1ad85fc8c59a98f650ddc99",
      "guard_degrees": 0,
      "cam_a_degrees": 0,
      "cam_b_degrees": 90,
      "part_positions": {
        "M101": [
          -3.1,
          1.35,
          -0.1
        ],
        "GB101": [
          -0.5,
          1.35,
          -0.1
        ],
        "C101": [
          -1.2,
          1.25,
          -0.2
        ],
        "CG101": [
          0.0,
          1.8,
          0.2
        ],
        "CAM_A": [
          1.65,
          2.55,
          0.28
        ],
        "KEEPER_A": [
          1.85,
          2.55,
          0.37
        ],
        "CAM_B": [
          1.65,
          0.95,
          0.28
        ],
        "KEEPER_B": [
          1.85,
          0.95,
          0.37
        ],
        "DP101": [
          3.45,
          1,
          -2.5
        ]
      }
    },
    {
      "id": "open",
      "title": "Open inspection \u2014 both cams disengaged",
      "file": "assets/models/MIN-CV101-MP2-open.glb",
      "sha256": "a5238eee44a9548342be497521b882266a11ebec7d4528c8d2175d8b5cc7a8cd",
      "guard_degrees": -82,
      "cam_a_degrees": 90,
      "cam_b_degrees": 90,
      "part_positions": {
        "M101": [
          -3.1,
          1.35,
          -0.1
        ],
        "GB101": [
          -0.5,
          1.35,
          -0.1
        ],
        "C101": [
          -1.2,
          1.25,
          -0.2
        ],
        "CG101": [
          -1.5391965516648805,
          1.8,
          1.730643085538799
        ],
        "CAM_A": [
          -1.388782380580098,
          2.55,
          3.3757192470391955
        ],
        "KEEPER_A": [
          1.85,
          2.55,
          0.37
        ],
        "CAM_B": [
          -1.388782380580098,
          0.95,
          3.3757192470391955
        ],
        "KEEPER_B": [
          1.85,
          0.95,
          0.37
        ],
        "DP101": [
          3.45,
          1,
          -2.5
        ]
      }
    },
    {
      "id": "exploded",
      "title": "Exploded inspection layout",
      "file": "assets/models/MIN-CV101-MP2-exploded.glb",
      "sha256": "c3db51ca40d68e9522b9d031747e9426074168cc15038930460c2ac969c29dc7",
      "guard_degrees": 0,
      "cam_a_degrees": 0,
      "cam_b_degrees": 0,
      "part_positions": {
        "M101": [
          -4.5,
          1.35,
          -0.1
        ],
        "GB101": [
          -0.5,
          2.6500000000000004,
          -0.1
        ],
        "C101": [
          -1.2,
          1.25,
          0.9000000000000001
        ],
        "CG101": [
          0,
          1.8,
          2.4000000000000004
        ],
        "CAM_A": [
          1.65,
          2.55,
          2.4800000000000004
        ],
        "KEEPER_A": [
          3.0,
          2.55,
          1.5699999999999998
        ],
        "CAM_B": [
          1.65,
          0.95,
          2.4800000000000004
        ],
        "KEEPER_B": [
          3.0,
          0.95,
          1.5699999999999998
        ],
        "DP101": [
          3.45,
          1,
          -2.5
        ]
      }
    }
  ]
}
