{
  "status": "PASS",
  "captures": {
    "all": {
      "selection": "all",
      "clay": false,
      "rear": false,
      "fullRender": {
        "frame": 15,
        "calls": 3,
        "triangles": 6,
        "points": 0,
        "lines": 0
      },
      "assetMainPass": {
        "frame": 16,
        "calls": 2,
        "triangles": 4,
        "points": 0,
        "lines": 0
      },
      "batch": {
        "buildings": 1,
        "instances": 1,
        "greyBoxes": 0,
        "drawCalls": 2,
        "tris": 4,
        "wallVertices": 0,
        "perBuildingBytes": 128,
        "bytes": 128
      },
      "bounds": {
        "min": [
          0,
          0,
          0
        ],
        "max": [
          2,
          2,
          0
        ]
      },
      "camera": {
        "mode": "orbit",
        "position": [
          2.0322773299927004,
          3.7527395466472013,
          3.440924433309002
        ],
        "target": [
          1,
          1,
          0
        ],
        "fov": 33
      },
      "textures": 9,
      "geometries": 3,
      "file": "preflight_runtime_all.png",
      "sha256": "0c73b05c23016631d9c3b5353460c9336fc7f5db6e16f27508e12d7de658fb87"
    }
  },
  "ready": true,
  "atoms": [
    "probe"
  ],
  "materialNames": [
    "Blue",
    "Red"
  ],
  "parity": {
    "probe": {
      "rawPrimitives": 2,
      "runtimePrimitives": 2,
      "rawTriangles": 4,
      "runtimeTriangles": 4,
      "manifestTriangles": 4,
      "primitives": [
        {
          "name": "mesh_0",
          "material": "Red",
          "triangles": 2,
          "groups": 0
        },
        {
          "name": "mesh_0_1",
          "material": "Blue",
          "triangles": 2,
          "groups": 0
        }
      ]
    }
  },
  "sharedBytesEstimate": {
    "geometry": 332,
    "textures": 2048
  },
  "textureBinding": [
    {
      "name": "",
      "flipY": false,
      "colorSpace": "srgb",
      "width": 8,
      "height": 8
    },
    {
      "name": "",
      "flipY": false,
      "colorSpace": "",
      "width": 8,
      "height": 8
    },
    {
      "name": "",
      "flipY": false,
      "colorSpace": "",
      "width": 8,
      "height": 8
    },
    {
      "name": "",
      "flipY": false,
      "colorSpace": "srgb",
      "width": 8,
      "height": 8
    },
    {
      "name": "",
      "flipY": false,
      "colorSpace": "",
      "width": 8,
      "height": 8
    },
    {
      "name": "",
      "flipY": false,
      "colorSpace": "",
      "width": 8,
      "height": 8
    }
  ],
  "instancing": {
    "one": {
      "batch": {
        "buildings": 1,
        "instances": 1,
        "greyBoxes": 0,
        "drawCalls": 2,
        "tris": 4,
        "wallVertices": 0,
        "perBuildingBytes": 128,
        "bytes": 128
      },
      "assetMainPass": {
        "frame": 4,
        "calls": 2,
        "triangles": 4,
        "points": 0,
        "lines": 0
      }
    },
    "three": {
      "batch": {
        "buildings": 1,
        "instances": 3,
        "greyBoxes": 0,
        "drawCalls": 2,
        "tris": 12,
        "wallVertices": 0,
        "perBuildingBytes": 384,
        "bytes": 384
      },
      "assetMainPass": {
        "frame": 7,
        "calls": 2,
        "triangles": 12,
        "points": 0,
        "lines": 0
      }
    }
  },
  "assemblyAvailable": false,
  "renderer": "WebKit WebGL",
  "threeRevision": "184",
  "viewport": {
    "width": 1440,
    "height": 1080,
    "pixelRatio": 1
  },
  "all_metrics": {
    "selection": "all",
    "clay": false,
    "rear": false,
    "fullRender": {
      "frame": 15,
      "calls": 3,
      "triangles": 6,
      "points": 0,
      "lines": 0
    },
    "assetMainPass": {
      "frame": 16,
      "calls": 2,
      "triangles": 4,
      "points": 0,
      "lines": 0
    },
    "batch": {
      "buildings": 1,
      "instances": 1,
      "greyBoxes": 0,
      "drawCalls": 2,
      "tris": 4,
      "wallVertices": 0,
      "perBuildingBytes": 128,
      "bytes": 128
    },
    "bounds": {
      "min": [
        0,
        0,
        0
      ],
      "max": [
        2,
        2,
        0
      ]
    },
    "camera": {
      "mode": "orbit",
      "position": [
        2.0322773299927004,
        3.7527395466472013,
        3.440924433309002
      ],
      "target": [
        1,
        1,
        0
      ],
      "fov": 33
    },
    "textures": 9,
    "geometries": 3,
    "file": "preflight_runtime_all.png",
    "sha256": "0c73b05c23016631d9c3b5353460c9336fc7f5db6e16f27508e12d7de658fb87"
  },
  "primitivePixels": {
    "red": 233039,
    "blue": 277753
  },
  "errors": [],
  "failedRequests": [],
  "httpFindings": [
    {
      "url": "http://127.0.0.1:44651/viewer/preflight/style.json",
      "status": 404
    },
    {
      "url": "http://127.0.0.1:44651/viewer/preflight/test_house.glb",
      "status": 404
    }
  ],
  "inputHashes": {
    "viewer/preflight/kit.glb": "d7c2e6e4560998b50bb9ebfc0da759acc42f1ffed5542d8e7b127aea519bb7e7",
    "viewer/preflight/kit.json": "98ef57a02f9b6d81f2f536f78f09b695a7e9e11b6dee37a3f92ee69616f49053",
    "viewer/preflight/materials.json": "88dbcb3dc72a822ffcffa9fb814c4a727004a008336849d64831acaf02213d10",
    "browser_check.py": "6c15b9213b64f2ff1f44706c257dfa2374d17d8efcc436e8d1fed12fd80a3f0a",
    "viewer/index.html": "46e64473802bbc7be49d7d5a2be5d0d3a7e2957154c6af03a111ac06798336a3",
    "viewer/main.mjs": "f19683fdc9f66d212912738db03ea397515c6e3d59ec687d253e0c6aba624a30",
    "viewer/runtime-loader.mjs": "63371d5bfaa7a0b93e1a91423c8b47f0316eb0eb6b0425c55b824d9b698fd2aa",
    "viewer/shelf-extras.mjs": "8d95f95557fe0fe2191eb7c68bdc5e568c445499100423b42a78378b9e71adf2",
    "viewer/lib/three.module.js": "61134198639a10885daf893fb29669ca26386e2a4cde76e8399f51e329f741f2",
    "viewer/lib/three.core.js": "368dc78835287709a48939e8eb9a7a61d0732098bdf916e56840d458aae9ccf3",
    "viewer/lib/jsm/loaders/GLTFLoader.js": "97642d720f16cc9a0c9844934198e4d0c023bea8e89576d0f7545d03b2d103d2"
  },
  "textureHashes": {
    "viewer/preflight/Blue/BaseColor.png": "b03e63db250dc77ac085b6ddbc3f7cd6c470004e61610b030b972e6e327491d2",
    "viewer/preflight/Blue/Normal.png": "421b6168b82633df0cecf3aed97459a0baacecb5980080786d9465d8b6167615",
    "viewer/preflight/Blue/ORM.png": "14a39e482d6a17bfd5e373728a08eec69aa23cef1ef7887925dd5a0ba5c4d5a1",
    "viewer/preflight/Red/BaseColor.png": "23413226f71165e0c3b1462b96f280c4a781feff9fd8858e6490e3daae8d3504",
    "viewer/preflight/Red/Normal.png": "421b6168b82633df0cecf3aed97459a0baacecb5980080786d9465d8b6167615",
    "viewer/preflight/Red/ORM.png": "14a39e482d6a17bfd5e373728a08eec69aa23cef1ef7887925dd5a0ba5c4d5a1"
  },
  "browserVersion": "148.0.7778.0",
  "performance_note": "Chromium SwiftShader software WebGL. No device FPS or timing claim. assetMainPass is a measured asset-only render with floor and shadow passes disabled. fullRender is the displayed main-pass renderer.info count including the floor; Three r184 resets renderer.info after its shadow pass, so shadow draws are not included.",
  "sharedBytes_note": "Estimate from decoded geometry and texture sizes in loader; does not include allocation overhead.",
  "loader_note": "Copied production render.mjs snapshot from medieval-trades; narrow patches compact per-material groups, reject missing shelf materials, and include index bytes in geometry footprint. Shared maps use flipY=false and shelf emissive metadata."
}