{
  "provenance": {
    "checked_at_utc": "2026-10-04T08:14:16Z",
    "scope": "Public sample byte inspection and synthetic accounting tests; no generation, rendering, FPS, LOD, or product quality benchmark.",
    "samples": [
      {
        "name": "Box",
        "repository_commit": "edc7c9e67c639d230715049ee31f9a96a6babbbe",
        "download_url": "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/edc7c9e67c639d230715049ee31f9a96a6babbbe/Models/Box/glTF-Binary/Box.glb",
        "source_page": "https://github.com/KhronosGroup/glTF-Sample-Assets/tree/edc7c9e67c639d230715049ee31f9a96a6babbbe/Models/Box",
        "license_url": "https://github.com/KhronosGroup/glTF-Sample-Assets/blob/edc7c9e67c639d230715049ee31f9a96a6babbbe/Models/Box/LICENSE.md",
        "copyright": "2017 Cesium",
        "license": "CC-BY-4.0; logos and associated trademarks excluded",
        "redistributed": false,
        "byte_length": 1664,
        "sha256": "ed52f7192b8311d700ac0ce80644e3852cd01537e4d62241b9acba023da3d54e",
        "audit_file": "box-audit.json"
      },
      {
        "name": "BoxTextured",
        "repository_commit": "edc7c9e67c639d230715049ee31f9a96a6babbbe",
        "download_url": "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/edc7c9e67c639d230715049ee31f9a96a6babbbe/Models/BoxTextured/glTF-Binary/BoxTextured.glb",
        "source_page": "https://github.com/KhronosGroup/glTF-Sample-Assets/tree/edc7c9e67c639d230715049ee31f9a96a6babbbe/Models/BoxTextured",
        "license_url": "https://github.com/KhronosGroup/glTF-Sample-Assets/blob/edc7c9e67c639d230715049ee31f9a96a6babbbe/Models/BoxTextured/LICENSE.md",
        "copyright": "2017 Cesium",
        "license": "CC-BY-4.0; logos and associated trademarks excluded",
        "redistributed": false,
        "byte_length": 5956,
        "sha256": "b510eca2e2ef33f62f9ed57d6e7ce2d10ebb2bdebc4a8e59d347719ba81abdf4",
        "audit_file": "box-textured-audit.json"
      }
    ],
    "technical_sources": [
      {
        "url": "https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#meshes",
        "purpose": "Accessor, primitive, index and node semantics"
      },
      {
        "url": "https://github.com/KhronosGroup/glTF-Blender-IO/blob/6e6990a22385bc7325c205ad98ab4c404568c7e1/docs/blender_docs/scene_gltf2.rst#meshes",
        "purpose": "Triangulation and attribute discontinuities",
        "raw_source_sha256": "270ce297b72025898536061dd94af1a07d36341cd5feb0ff1ec8fb59ba00c565"
      },
      {
        "url": "https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing",
        "purpose": "Instance count, shared mesh reuse, no extra non-instanced copy"
      }
    ]
  },
  "observations": {
    "Box": {
      "inspector_version": "1.0.0",
      "byte_length": 1664,
      "sha256": "ed52f7192b8311d700ac0ce80644e3852cd01537e4d62241b9acba023da3d54e",
      "extensions_used": [],
      "extensions_required": [],
      "stored": {
        "meshes": 1,
        "primitives": 1,
        "assembled_triangles": 12,
        "primitive_position_rows": 24,
        "unique_position_accessor_rows": 24,
        "referenced_materials": [
          0
        ],
        "declared_materials": 1
      },
      "selected_scene": {
        "scene": 0,
        "mesh_nodes": 1,
        "mesh_copies": 1,
        "assembled_triangles": 12,
        "primitive_position_rows": 24,
        "primitive_copies": 1,
        "referenced_materials": [
          0
        ]
      },
      "per_primitive": [
        {
          "mesh": 0,
          "primitive": 0,
          "mode": "TRIANGLES",
          "position_accessor": 2,
          "position_rows": 24,
          "distinct_local_position_tuples": 8,
          "indexed": true,
          "element_count": 36,
          "assembled_triangles": 12,
          "material": 0,
          "normal_evidence": {
            "distinct_normal_tuples": 6,
            "distinct_position_normal_pairs": 24,
            "positions_with_multiple_normal_values": 8,
            "normal_variants_per_distinct_position": [
              3,
              3,
              3,
              3,
              3,
              3,
              3,
              3
            ]
          }
        }
      ],
      "per_mesh": [
        {
          "triangles": 12,
          "primitive_position_rows": 24,
          "primitive_count": 1,
          "distinct_local_position_tuples": 8
        }
      ],
      "limitations": [
        "Base geometry only; no animation, skinning, morph, texture or memory-cost evaluation.",
        "Assembled triangle slots include degenerate triangles; no area test is performed.",
        "Position rows are attribute entries, not unique topological vertices or vertex-shader invocations.",
        "Distinct positions use exact local float tuples; matching coordinates do not prove vertices may be welded.",
        "Per-primitive row totals can count a shared POSITION accessor more than once.",
        "Scene counts include every selected-scene copy before culling, runtime LOD, batching or render passes.",
        "Primitive counts are not measured draw calls; expanded rows are not allocated GPU memory.",
        "No default scene means selected_scene=null; pass --scene explicitly if desired.",
        "Not a full glTF validator; run Khronos glTF Validator separately."
      ]
    },
    "BoxTextured": {
      "inspector_version": "1.0.0",
      "byte_length": 5956,
      "sha256": "b510eca2e2ef33f62f9ed57d6e7ce2d10ebb2bdebc4a8e59d347719ba81abdf4",
      "extensions_used": [],
      "extensions_required": [],
      "stored": {
        "meshes": 1,
        "primitives": 1,
        "assembled_triangles": 12,
        "primitive_position_rows": 24,
        "unique_position_accessor_rows": 24,
        "referenced_materials": [
          0
        ],
        "declared_materials": 1
      },
      "selected_scene": {
        "scene": 0,
        "mesh_nodes": 1,
        "mesh_copies": 1,
        "assembled_triangles": 12,
        "primitive_position_rows": 24,
        "primitive_copies": 1,
        "referenced_materials": [
          0
        ]
      },
      "per_primitive": [
        {
          "mesh": 0,
          "primitive": 0,
          "mode": "TRIANGLES",
          "position_accessor": 2,
          "position_rows": 24,
          "distinct_local_position_tuples": 8,
          "indexed": true,
          "element_count": 36,
          "assembled_triangles": 12,
          "material": 0,
          "normal_evidence": {
            "distinct_normal_tuples": 6,
            "distinct_position_normal_pairs": 24,
            "positions_with_multiple_normal_values": 8,
            "normal_variants_per_distinct_position": [
              3,
              3,
              3,
              3,
              3,
              3,
              3,
              3
            ]
          }
        }
      ],
      "per_mesh": [
        {
          "triangles": 12,
          "primitive_position_rows": 24,
          "primitive_count": 1,
          "distinct_local_position_tuples": 8
        }
      ],
      "limitations": [
        "Base geometry only; no animation, skinning, morph, texture or memory-cost evaluation.",
        "Assembled triangle slots include degenerate triangles; no area test is performed.",
        "Position rows are attribute entries, not unique topological vertices or vertex-shader invocations.",
        "Distinct positions use exact local float tuples; matching coordinates do not prove vertices may be welded.",
        "Per-primitive row totals can count a shared POSITION accessor more than once.",
        "Scene counts include every selected-scene copy before culling, runtime LOD, batching or render passes.",
        "Primitive counts are not measured draw calls; expanded rows are not allocated GPU memory.",
        "No default scene means selected_scene=null; pass --scene explicitly if desired.",
        "Not a full glTF validator; run Khronos glTF Validator separately."
      ]
    }
  }
}
