{
  "schemaVersion": 1,
  "labId": "webgpu-validation-harness",
  "classification": "inspected-runtime-evidence-preview",
  "acceptanceStatus": "accepted",
  "evidenceBundleId": "bundle",
  "canonicalSource": [
    "threejs-visual-validation/examples/webgpu-validation-harness"
  ],
  "canonicalSourceHash": "sha256:c099d8c03b07280a4553e1ea687d4ca092809fba4efc5c67429b954c242359c7",
  "threeRevision": "0.185.1",
  "runtime": {
    "renderer": "WebGPURenderer",
    "backend": "WebGPU",
    "isWebGPUBackend": true,
    "threeRevision": "0.185.1",
    "nativeWebGPU": false,
    "initialized": false,
    "adapterClass": "software",
    "adapterIdentity": null,
    "deviceIdentity": null
  },
  "claimVerdicts": {
    "visualCorrectness": "PASS",
    "mechanismCorrectness": "PASS",
    "performanceCompliance": "PASS",
    "gpuAttribution": "PASS",
    "lifecycleStability": "PASS",
    "visualError": "PASS"
  },
  "primaryImage": "final.design.png",
  "primaryImageLabel": "Native WebGPU validation harness final readback",
  "images": [
    {
      "file": "final.design.png",
      "meaning": "Final presentation readback from the correctness lane.",
      "source": "final.design.png",
      "sourceSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "outputSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "no-post.design.png",
      "meaning": "No-post baseline from the same locked route.",
      "source": "no-post.design.png",
      "sourceSha256": "sha256:97918f2bb0666edfe4f6f5513fda9e39dd6448f967cef0d526996c82cf434902",
      "outputSha256": "sha256:97918f2bb0666edfe4f6f5513fda9e39dd6448f967cef0d526996c82cf434902",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "diagnostics.mosaic.png",
      "meaning": "Diagnostic mosaic proving distinct mechanism outputs.",
      "source": "diagnostics.mosaic.png",
      "sourceSha256": "sha256:c5f7614a27d9b8635a76e3abec2233a01288c86e4eec1ad192a978fd7775a485",
      "outputSha256": "sha256:c5f7614a27d9b8635a76e3abec2233a01288c86e4eec1ad192a978fd7775a485",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "camera.near.png",
      "meaning": "Near camera fixed-view readback.",
      "source": "camera.near.png",
      "sourceSha256": "sha256:52a0cc139fd69acf04f87c76d243ae51afb3211f6c1b95799116fb6544631955",
      "outputSha256": "sha256:52a0cc139fd69acf04f87c76d243ae51afb3211f6c1b95799116fb6544631955",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "camera.design.png",
      "meaning": "Design camera fixed-view readback.",
      "source": "camera.design.png",
      "sourceSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "outputSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "camera.far.png",
      "meaning": "Far camera fixed-view readback.",
      "source": "camera.far.png",
      "sourceSha256": "sha256:b86e6300205d33a80196513884f4a739d6957b570aa61d3c0d7ec54248ee1f63",
      "outputSha256": "sha256:b86e6300205d33a80196513884f4a739d6957b570aa61d3c0d7ec54248ee1f63",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "seed-0001.final.png",
      "meaning": "Representative seed final frame.",
      "source": "seed-0001.final.png",
      "sourceSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "outputSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "seed-9e3779b9.final.png",
      "meaning": "Stress seed final frame.",
      "source": "seed-9e3779b9.final.png",
      "sourceSha256": "sha256:7c79d3065117a6e3838a4910ab2b8e36ff72e58fde061b3ab8a27cfa01a79912",
      "outputSha256": "sha256:7c79d3065117a6e3838a4910ab2b8e36ff72e58fde061b3ab8a27cfa01a79912",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "temporal.t000.png",
      "meaning": "Temporal sample t0.",
      "source": "temporal.t000.png",
      "sourceSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "outputSha256": "sha256:4a02ce8c369fd0a8fc9416f392d0a1decbce7f377f238b07ae0db85b0a07c794",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    },
    {
      "file": "temporal.t001.png",
      "meaning": "Temporal sample t1.",
      "source": "temporal.t001.png",
      "sourceSha256": "sha256:ce0e24010b49f1201ca720bc0002c6cefbae4ef49ae586f971dfa486f5a1bf21",
      "outputSha256": "sha256:ce0e24010b49f1201ca720bc0002c6cefbae4ef49ae586f971dfa486f5a1bf21",
      "width": 1200,
      "height": 800,
      "encoding": "png-copy"
    }
  ],
  "limitations": [
    "Tracked release projection binds the approved correctness, physical-route, and performance lanes to the current source closure.",
    "Promoted gallery images are the retained standard correctness readbacks from the accepted release bundle.",
    "Opaque renderer-internal residency remains unclaimed beyond lab-owned resource ledgers."
  ],
  "status": "accepted",
  "sourceHash": "sha256:c099d8c03b07280a4553e1ea687d4ca092809fba4efc5c67429b954c242359c7",
  "sourceClosureHash": "sha256:aa956019c159086915ced71c85d543c3c61c40a5c705fdca5b7fbe76b19ab512",
  "buildRevision": "sha256:46d117adfeed92df8c1121324611b3746de172caf8ae112a79c3b450ac4c4145",
  "publishable": true,
  "promotionStatus": "APPROVED",
  "updatedAt": "2026-07-13T14:53:56.245Z",
  "dualIdentity": {
    "registrySourceHash": "sha256:c099d8c03b07280a4553e1ea687d4ca092809fba4efc5c67429b954c242359c7",
    "captureSourceClosureHash": "sha256:aa956019c159086915ced71c85d543c3c61c40a5c705fdca5b7fbe76b19ab512",
    "note": "Harness package hash (registry) vs specialized capture tooling ledger (bundle). Equality is not required."
  }
}
