{
  "experiment": "A35 mesh face vertex mask",
  "protocol": {
    "source": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a34_persistent_surface_labels/analysis.json",
    "selection_uses_gt": false,
    "retrospective_validation_uses_gt": false,
    "method": "nearest surface sample voting to repair mesh face centroids, then incident-face voting to vertices",
    "k_nearest_samples": 5,
    "outputs": [
      "face_vertex_masks.npz",
      "mesh_face_mask.ply",
      "mesh_vertex_mask.ply",
      "face mask PNG panels"
    ]
  },
  "case_rows": [
    {
      "case_id": "gso_002_input4",
      "mesh_faces": 234960,
      "mesh_vertices": 117482,
      "mean_face_confidence": 0.9122583270072937,
      "mean_vertex_confidence": 0.9765620231628418,
      "mask_npz_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a35_mesh_face_vertex_mask/gso_002_input4/face_vertex_masks.npz",
      "face_mask_ply_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a35_mesh_face_vertex_mask/gso_002_input4/mesh_face_mask.ply",
      "vertex_mask_ply_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a35_mesh_face_vertex_mask/gso_002_input4/mesh_vertex_mask.ply",
      "repair_mesh_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/mesh_repair_v6/hybrid_protocol4_limit10/gso_002_input4/mesh_watertight.obj",
      "face_surface_improved": 144712,
      "face_surface_conflict": 46329,
      "face_surface_neutral": 37926,
      "face_unobserved_closable": 5993,
      "vertex_surface_improved": 72493,
      "vertex_surface_conflict": 23191,
      "vertex_surface_neutral": 18808,
      "vertex_unobserved_closable": 2990,
      "face_surface_improved_ratio": 0.6159005788219272,
      "face_surface_conflict_ratio": 0.1971782431052094,
      "face_surface_neutral_ratio": 0.161414708886619,
      "face_unobserved_closable_ratio": 0.025506469186244468,
      "vertex_surface_improved_ratio": 0.6170562298905364,
      "vertex_surface_conflict_ratio": 0.19740045283532798,
      "vertex_surface_neutral_ratio": 0.16009260993173421,
      "vertex_unobserved_closable_ratio": 0.025450707342401388
    },
    {
      "case_id": "gso_008_input4",
      "mesh_faces": 827994,
      "mesh_vertices": 413999,
      "mean_face_confidence": 0.9532220959663391,
      "mean_vertex_confidence": 0.9904590845108032,
      "mask_npz_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a35_mesh_face_vertex_mask/gso_008_input4/face_vertex_masks.npz",
      "face_mask_ply_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a35_mesh_face_vertex_mask/gso_008_input4/mesh_face_mask.ply",
      "vertex_mask_ply_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/support_guidance_a35_mesh_face_vertex_mask/gso_008_input4/mesh_vertex_mask.ply",
      "repair_mesh_path": "/home/jiachen/TRELLIS/experiments/nonorthogonal_gpt_orthoview/outputs/data_survey/vggt_spatial_adapter/mesh_repair_v6/hybrid_protocol4_limit10/gso_008_input4/mesh_watertight.obj",
      "face_surface_improved": 142927,
      "face_surface_conflict": 575286,
      "face_surface_neutral": 109668,
      "face_unobserved_closable": 113,
      "vertex_surface_improved": 71345,
      "vertex_surface_conflict": 288269,
      "vertex_surface_neutral": 54329,
      "vertex_unobserved_closable": 56,
      "face_surface_improved_ratio": 0.17261840061642958,
      "face_surface_conflict_ratio": 0.6947948898180422,
      "face_surface_neutral_ratio": 0.13245023514663148,
      "face_unobserved_closable_ratio": 0.0001364744188967553,
      "vertex_surface_improved_ratio": 0.17233133413365734,
      "vertex_surface_conflict_ratio": 0.6963036142599378,
      "vertex_surface_neutral_ratio": 0.1312297855791922,
      "vertex_unobserved_closable_ratio": 0.00013526602721262613
    }
  ],
  "assets": {
    "gso_002_input4": {
      "face_mask_projection": "trellis2_vggt_assets/a35/gso_002_input4_face_mask_projection.png"
    },
    "gso_008_input4": {
      "face_mask_projection": "trellis2_vggt_assets/a35/gso_008_input4_face_mask_projection.png"
    }
  },
  "aggregate": {
    "cases": 2,
    "persisted_mask_npz_files": 2,
    "persisted_face_ply_files": 2,
    "persisted_vertex_ply_files": 2,
    "mean_face_confidence": 0.9327402114868164,
    "mean_vertex_confidence": 0.9835105538368225,
    "mean_face_improved_ratio": 0.39425948971917835,
    "mean_face_conflict_ratio": 0.44598656646162577,
    "mean_face_neutral_ratio": 0.14693247201662524,
    "mean_face_unobserved_ratio": 0.012821471802570612
  },
  "conclusion": {
    "status": "positive_mask_step_not_topology_edit",
    "summary": "A35 projects A34 sample evidence onto actual repair mesh faces and vertices. It outputs reusable masks and colored meshes, enabling A36 local replacement/smoothing, but it still does not alter mesh geometry or topology."
  }
}