{
  "schemaVersion": 2,
  "threeRevision": "0.185.1",
  "buildRevision": "sha256:a79f750d2469284dc4b5153a99a8ec8a2e320bb75eb07c815f61a9268ec5d128",
  "demoKinds": [
    "canonical-lab",
    "mechanism-demo",
    "tier-demo",
    "integration-demo",
    "proxy-demo",
    "generated-asset-demo",
    "legacy-deprecated",
    "contract-fixture"
  ],
  "primaryDemoKinds": [
    "canonical-lab",
    "mechanism-demo",
    "tier-demo",
    "integration-demo"
  ],
  "acceptanceStatuses": [
    "accepted",
    "incomplete",
    "blocked",
    "secondary",
    "not-applicable"
  ],
  "skillsExpected": 26,
  "integrationIds": [
    "final-image-flight",
    "weathered-world",
    "procedural-district",
    "creature-habitat",
    "relativistic-space-shot"
  ],
  "coverage": [
    {
      "skill": "threejs-ambient-contact-shading",
      "primaryLabIds": [
        "integration-image-pipeline-ao",
        "webgpu-node-gtao"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-black-holes-and-space-effects",
      "primaryLabIds": [
        "tsl-curved-ray"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-bloom",
      "primaryLabIds": [
        "node-selective-bloom"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-camera-controls-and-rigs",
      "primaryLabIds": [
        "webgpu-camera-rig"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-choose-skills",
      "primaryLabIds": [
        "router-manifest-lab"
      ],
      "acceptedPrimaryLabIds": [
        "router-manifest-lab"
      ],
      "status": "accepted"
    },
    {
      "skill": "threejs-compatibility-fallbacks",
      "primaryLabIds": [
        "browser-fallback-harness"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-debugging",
      "primaryLabIds": [
        "debugging-contract-lab"
      ],
      "acceptedPrimaryLabIds": [
        "debugging-contract-lab"
      ],
      "status": "accepted"
    },
    {
      "skill": "threejs-dynamic-surface-effects",
      "primaryLabIds": [
        "integration-temporal-surface",
        "webgpu-touch-history-frost"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-exposure-color-grading",
      "primaryLabIds": [
        "webgpu-exposure-color-pipeline"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-image-pipeline",
      "primaryLabIds": [
        "creature-habitat",
        "final-image-flight",
        "procedural-district",
        "relativistic-space-shot",
        "weathered-world",
        "webgpu-image-pipeline",
        "webgpu-temporal-history"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-particles-trails-and-effects",
      "primaryLabIds": [
        "webgpu-pooled-effects"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-buildings-and-cities",
      "primaryLabIds": [
        "webgpu-material-slot-compiler"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-creatures",
      "primaryLabIds": [
        "webgpu-procedural-creature-lab"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-fields",
      "primaryLabIds": [
        "webgpu-field-bake"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-geometry",
      "primaryLabIds": [
        "semantic-mesh-writer"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-materials",
      "primaryLabIds": [
        "tsl-procedural-pbr"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-motion-systems",
      "primaryLabIds": [
        "webgpu-procedural-timelines"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-planets",
      "primaryLabIds": [
        "webgpu-quadtree-planet"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-procedural-vegetation",
      "primaryLabIds": [
        "structured-ash-growth",
        "webgpu-dense-grass",
        "webgpu-vegetation-integration"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-rain-snow-and-wet-surfaces",
      "primaryLabIds": [
        "integration-precipitation-image-pipeline",
        "webgpu-rain-snow-and-wet-surfaces"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-scalable-real-time-shadows",
      "primaryLabIds": [
        "webgpu-cached-clipmap-shadow",
        "webgpu-shadow-architecture-bench",
        "webgpu-shadow-pipeline-integration"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-sky-atmosphere-and-haze",
      "primaryLabIds": [
        "webgpu-lut-atmosphere"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-spectral-ocean",
      "primaryLabIds": [
        "webgpu-fft-ocean"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-visual-validation",
      "primaryLabIds": [
        "webgpu-validation-harness"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-volumetric-clouds",
      "primaryLabIds": [
        "webgpu-weather-volume-clouds"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    },
    {
      "skill": "threejs-water-optics",
      "primaryLabIds": [
        "webgpu-bounded-water"
      ],
      "acceptedPrimaryLabIds": [],
      "status": "incomplete"
    }
  ],
  "counts": {
    "skills": 26,
    "demos": 86,
    "primary": 39,
    "acceptedPrimary": 2,
    "secondary": 47
  },
  "demos": [
    {
      "schemaVersion": 2,
      "id": "ambient-contact-shading-demo",
      "title": "Ambient Contact Shading Lab",
      "skill": "threejs-ambient-contact-shading",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/ambient-contact-shading-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "no-ao",
        "ao-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run validate",
      "sourceHash": "sha256:a89a693c0ac6a1c9cddff3d872475ac2adda17a9ce4cbf39387be6b1fe12bc42",
      "proxyStatus": {
        "limitation": "The docs page uses live contact-visibility geometry, not the production GTAONode path. The production skill remains RenderPipeline pass/MRT depth-normal sharing with material-context AO composition.",
        "canonicalLabId": "webgpu-node-gtao"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "black-holes-and-space-effects-curved-ray-accretion-volume-fixture",
      "skill": "threejs-black-holes-and-space-effects",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-black-holes-and-space-effects/examples/curved-ray-accretion-volume"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:5e44c7e0c0bb89b3578b426456f59c1f4120c912acfa00bdcfaef7920d5185ea",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-black-holes-and-space-effects/examples/curved-ray-accretion-volume"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "browser-fallback-harness",
      "title": "Explicit WebGPU Fallback Teaching Harness",
      "skill": "threejs-compatibility-fallbacks",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness/fallback-core.mjs",
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness/fallback-fixtures.json",
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness/app.mjs",
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness/compatibility-renderer.mjs",
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness/capture.mjs",
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness/validate-artifacts.mjs"
      ],
      "browserEntry": "threejs-compatibility-fallbacks/examples/browser-fallback-harness/index.html",
      "publishPath": "/demos/browser-fallback-harness/",
      "scenarios": [
        {
          "id": "blocked-default",
          "route": "/demos/browser-fallback-harness/scenario/blocked-default/",
          "startup": {
            "scenario": "blocked-default"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "native-budget-reduction",
          "route": "/demos/browser-fallback-harness/scenario/native-budget-reduction/",
          "startup": {
            "scenario": "native-budget-reduction"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "precomputed-static",
          "route": "/demos/browser-fallback-harness/scenario/precomputed-static/",
          "startup": {
            "scenario": "precomputed-static"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cpu-offline",
          "route": "/demos/browser-fallback-harness/scenario/cpu-offline/",
          "startup": {
            "scenario": "cpu-offline"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "feature-removed",
          "route": "/demos/browser-fallback-harness/scenario/feature-removed/",
          "startup": {
            "scenario": "feature-removed"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "maintained-legacy",
          "route": "/demos/browser-fallback-harness/scenario/maintained-legacy/",
          "startup": {
            "scenario": "maintained-legacy"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "invariant-loss-comparison",
          "route": "/demos/browser-fallback-harness/scenario/invariant-loss-comparison/",
          "startup": {
            "scenario": "invariant-loss-comparison"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "explicit-activation-gate",
          "route": "/demos/browser-fallback-harness/mechanism/explicit-activation-gate/",
          "startup": {
            "scenario": "blocked-default"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ordered-degradation-trace",
          "route": "/demos/browser-fallback-harness/mechanism/ordered-degradation-trace/",
          "startup": {
            "scenario": "maintained-legacy"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bounded-water-loss-oracle",
          "route": "/demos/browser-fallback-harness/mechanism/bounded-water-loss-oracle/",
          "startup": {
            "scenario": "invariant-loss-comparison"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "invariant-ledger",
          "route": "/demos/browser-fallback-harness/mechanism/invariant-ledger/",
          "startup": {
            "scenario": "invariant-loss-comparison"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "force-webgl-branch-isolation",
          "route": "/demos/browser-fallback-harness/mechanism/force-webgl-branch-isolation/",
          "startup": {
            "scenario": "maintained-legacy"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "maintenance-acceptance",
          "route": "/demos/browser-fallback-harness/mechanism/maintenance-acceptance/",
          "startup": {
            "scenario": "maintained-legacy"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [],
      "modes": [
        "plan"
      ],
      "cameras": [
        "comparison"
      ],
      "seeds": [
        0
      ],
      "capabilityRequirements": [
        {
          "id": "tested-webgpu-unavailable",
          "required": true,
          "evidence": "The source gate is implemented; a live no-WebGPU browser capture remains required before acceptance.",
          "status": "incomplete"
        },
        {
          "id": "explicit-user-request",
          "required": true,
          "evidence": "Compatibility branch construction is gated on explicit request authorization.",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "default-blocker",
          "required": true,
          "evidence": "Unit fixtures prove the default result blocks without an explicit request.",
          "status": "accepted"
        },
        {
          "id": "live-backend-probe",
          "required": true,
          "evidence": "A live browser probe must establish the unavailable-WebGPU condition before branch construction.",
          "status": "incomplete"
        },
        {
          "id": "one-degradation-axis",
          "required": true,
          "evidence": "Fixture validation enforces exactly one changed degradation axis per ordered decision step.",
          "status": "accepted"
        },
        {
          "id": "independent-loss-and-timing",
          "required": true,
          "evidence": "Visible loss and CPU-fixture timing have independent provenance; GPU timing remains insufficient without timestamps.",
          "status": "accepted"
        },
        {
          "id": "isolated-force-webgl-branch",
          "required": true,
          "evidence": "The forceWebGL module is lazily imported only after explicit authorization and unavailable-WebGPU proof.",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-compatibility-fallbacks/examples/browser-fallback-harness/fallback-harness.test.mjs",
      "commands": {
        "check": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run check",
        "test": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run validate:unit",
        "mutations": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run test:mutations",
        "capture": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run capture",
        "validateArtifacts": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run validate:artifacts",
        "validateQuick": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run validate:quick",
        "validateFull": "npm --prefix threejs-compatibility-fallbacks/examples/browser-fallback-harness run validate:full"
      },
      "sourceHash": "sha256:9231fa99929b91403d81f6e359d3355bdc75731afc8491203e1482c54f1024da",
      "proxyStatus": null,
      "notes": [
        "Browser acceptance remains incomplete until a live no-WebGPU capture proves the backend gate and isolated compatibility branch."
      ],
      "sourceHashInputs": [
        "threejs-compatibility-fallbacks/examples/browser-fallback-harness"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "camera-rig-handoff-demo",
      "title": "Scale-Aware Camera Rig",
      "skill": "threejs-camera-controls-and-rigs",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/camera-rig-handoff-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "side",
        "handoff"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/cameraValidation.mjs",
      "sourceHash": "sha256:960d7fd221155e33c8e58573a98bcecd6ec0f0207b5a340efcb73aea3d91247d",
      "proxyStatus": {
        "limitation": "The docs page demonstrates pose ownership and projection changes, not the full storage-buffer floating-origin path. The production skill remains camera contract, control lifecycle, post/depth ownership, and replay validation across frame rates.",
        "canonicalLabId": "webgpu-camera-rig"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "cloud-generated-weather-maps",
      "title": "Weather Map Cloud Layers",
      "skill": "threejs-volumetric-clouds",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/cloud-generated-weather-maps/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "weather-debug",
        "shell-slice"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds run validate:generated-assets",
      "sourceHash": "sha256:cabfdd5fa44b66a2c53e2eb30c4d951284c3c8ec0b164f7dec278b7ad5512685",
      "proxyStatus": {
        "limitation": "Generated weather maps are reduced-tier diagnostic inputs. The production cloud path remains bounded raymarch, temporal reprojection, and cloud-shadow storage products.",
        "canonicalLabId": "webgpu-weather-volume-clouds"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "compatibility-fallback-planner-demo",
      "title": "Fallback Loss Ledger",
      "skill": "threejs-compatibility-fallbacks",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-compatibility-fallbacks/examples/tier-planner",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/compatibility-fallback-planner-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "loss-ledger",
        "blocked"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-compatibility-fallbacks/examples/tier-planner/validate-tier-plan.mjs",
      "sourceHash": "sha256:0ccd0dfb3838faa4112489cc77e204876db8378dd602fc5c9e3857830aa32363",
      "proxyStatus": {
        "limitation": "The docs page is a teaching visualization and intentionally shows a blocked mode when no explicit fallback request exists. The canonical skill must not weaken flagship WebGPU guidance or silently route to WebGL-compatible behavior.",
        "canonicalLabId": "browser-fallback-harness"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-compatibility-fallbacks/examples/tier-planner"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "compatibility-fallbacks-tier-planner-fixture",
      "skill": "threejs-compatibility-fallbacks",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-compatibility-fallbacks/examples/tier-planner"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:54d150726a7f8f34b49f6a389c2882fd42aaf52112be594fa3d510e530874387",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-compatibility-fallbacks/examples/tier-planner"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "creature-habitat",
      "title": "Creature Habitat",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "integration-labs/creature-habitat/contract.json",
        "integration-labs/creature-habitat/habitat-controller.js",
        "integration-labs/creature-habitat/contact-registry.mjs",
        "integration-labs/creature-habitat/ownership-audit.mjs",
        "integration-labs/creature-habitat/quality-governor.mjs",
        "integration-labs/creature-habitat/resource-ledger.mjs",
        "integration-labs/creature-habitat/scaled-water-stage.js",
        "integration-labs/creature-habitat/habitat-weather-stage.js",
        "integration-labs/creature-habitat/static-storage-audit.mjs",
        "integration-labs/creature-habitat/route-state.mjs",
        "integration-labs/creature-habitat/main.js",
        "integration-labs/creature-habitat/capture-hook.mjs",
        "integration-labs/creature-habitat/capture.mjs",
        "integration-labs/creature-habitat/index.html",
        "integration-labs/creature-habitat/styles.css",
        "integration-labs/creature-habitat/mechanism/shared-world-wind/index.html",
        "integration-labs/creature-habitat/mechanism/contact-ripple-trampling/index.html",
        "integration-labs/creature-habitat/mechanism/immutable-spawn-storage/index.html",
        "integration-labs/creature-habitat/mechanism/subject-consistent-culling-shadow-outline/index.html",
        "integration-labs/creature-habitat/mechanism/owner-graph/index.html",
        "integration-labs/creature-habitat/tier/hero/index.html",
        "integration-labs/creature-habitat/tier/balanced/index.html",
        "integration-labs/creature-habitat/tier/budgeted/index.html"
      ],
      "browserEntry": "integration-labs/creature-habitat/index.html",
      "publishPath": "/demos/creature-habitat/",
      "scenarios": [
        {
          "id": "habitat",
          "route": "/demos/creature-habitat/",
          "startup": {
            "tier": "balanced",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "shared-world-wind",
          "route": "/demos/creature-habitat/mechanism/shared-world-wind/",
          "startup": {
            "mode": "final",
            "tier": "balanced"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "contact-ripple-trampling",
          "route": "/demos/creature-habitat/mechanism/contact-ripple-trampling/",
          "startup": {
            "mode": "contact-events",
            "tier": "balanced"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "immutable-spawn-storage",
          "route": "/demos/creature-habitat/mechanism/immutable-spawn-storage/",
          "startup": {
            "mode": "vegetation-trampling",
            "tier": "hero"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "subject-consistent-culling-shadow-outline",
          "route": "/demos/creature-habitat/mechanism/subject-consistent-culling-shadow-outline/",
          "startup": {
            "mode": "shadow-parity",
            "tier": "hero"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "owner-graph",
          "route": "/demos/creature-habitat/mechanism/owner-graph/",
          "startup": {
            "mode": "owner-graph",
            "tier": "balanced"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "60-hz-flagship",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz contract; current adapter unmeasured"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "waterScale": 1,
            "dprCap": 2
          },
          "mechanismLimits": {
            "creatureTier": "hero",
            "creatureCapacity": 4,
            "vegetationTier": "high",
            "waterTier": "ultra",
            "weatherTier": "high",
            "cameraTier": "full",
            "shadowMapSize": 2048
          },
          "resourceLimits": {
            "status": "runtime inventory implemented; evidence bundle required"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "shared frozen contact snapshot",
            "immutable spawn storage",
            "shared units/wind",
            "subject consistency",
            "one final owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "60-hz-balanced",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz contract; current adapter unmeasured"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "waterScale": 0.75,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "creatureTier": "crowd",
            "creatureCapacity": 12,
            "vegetationTier": "medium",
            "waterTier": "high",
            "weatherTier": "medium",
            "cameraTier": "budgeted",
            "shadowMapSize": 1024
          },
          "resourceLimits": {
            "status": "runtime inventory implemented; evidence bundle required"
          },
          "degradationFromPrevious": [
            "reduce creature surface detail",
            "reduce vegetation/water/shadow resources"
          ],
          "preservedInvariants": [
            "shared frozen contact snapshot",
            "immutable spawn storage",
            "shared units/wind",
            "subject consistency",
            "one final owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "60-hz-budgeted",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz contract; current adapter unmeasured"
          },
          "resolutionPolicy": {
            "sceneScale": 0.85,
            "waterScale": 0.5,
            "dprCap": 1
          },
          "mechanismLimits": {
            "creatureTier": "background",
            "creatureCapacity": 20,
            "vegetationTier": "low",
            "waterTier": "medium",
            "weatherTier": "budgeted",
            "cameraTier": "minimum",
            "shadowMapSize": 512
          },
          "resourceLimits": {
            "status": "runtime inventory implemented; evidence bundle required"
          },
          "degradationFromPrevious": [
            "cap DPR",
            "reduce water and vegetation resources",
            "reduce shadow resolution",
            "use background creature surface tier"
          ],
          "preservedInvariants": [
            "shared frozen contact snapshot",
            "immutable spawn storage",
            "shared units/wind",
            "subject consistency",
            "one final owner",
            "locomotion physics"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "contact-events",
        "water-ripples",
        "vegetation-trampling",
        "culling",
        "outline",
        "shadow-parity",
        "owner-graph"
      ],
      "cameras": [
        "subject",
        "habitat",
        "population"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "creature/vegetation/water storage requires native WebGPU",
          "status": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "required": true,
          "evidence": "required for 60 Hz claims",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "single-owner-graph",
          "required": true,
          "evidence": "runtime ownership audit and duplicate-owner mutation exist; browser graph capture pending",
          "status": "incomplete"
        },
        {
          "id": "contact-and-subject-readback",
          "required": true,
          "evidence": "aligned color-managed presentation readback, raw emissive-MRT readback, real shadow-atlas diagnostic readback, and same-snapshot fanout code exist; capture pending",
          "status": "incomplete"
        },
        {
          "id": "immutable-spawn-storage",
          "required": true,
          "evidence": "byte hash baseline and blocking rewrite mutation exist; browser evidence pending",
          "status": "incomplete"
        },
        {
          "id": "resource-ledger",
          "required": true,
          "evidence": "resident/transient/bandwidth records reconcile exactly with labelled provenance; browser inventory capture pending",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "runtime governor accepts only finite positive GPU timestamp windows; no accepted capture exists",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix integration-labs/creature-habitat run validate:quick",
      "commands": {
        "check": "npm --prefix integration-labs/creature-habitat run check",
        "test": "npm --prefix integration-labs/creature-habitat run validate:unit",
        "mutations": "npm --prefix integration-labs/creature-habitat run test:mutations",
        "capture": "npm --prefix integration-labs/creature-habitat run capture",
        "validateArtifacts": "npm --prefix integration-labs/creature-habitat run validate:artifacts",
        "validateQuick": "npm --prefix integration-labs/creature-habitat run validate:quick",
        "validateFull": "npm --prefix integration-labs/creature-habitat run validate:full"
      },
      "sourceHash": "sha256:23fd93054de8c4ebf99c95239a06e43816a2c8b9f43e94c56c7c04d3d1bb2e15",
      "proxyStatus": null,
      "notes": [
        "Native composition and local adapters are implemented. Status stays incomplete until authorized browser capture records v2 images, resource ledgers, current-adapter timing, and lifecycle evidence.",
        "The outline is derived from the creature-only emissive attachment in the one primary MRT; it does not add a duplicate beauty pass.",
        "The canonical weather visual stage renders live rain, snow, wet-road/puddle response, accumulated snow response, and GPU impact splashes from the shared weather envelope."
      ],
      "sourceHashInputs": [
        "integration-labs/creature-habitat",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraDirectionController.mjs",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/blend-dag.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/candidate-certification.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/driver.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/field.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/lcg.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/locomotion/flyer.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/locomotion/gait.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/locomotion/hopper.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/locomotion/ik.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/locomotion/rope.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/locomotion/swim.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/newton-snap.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/rig-compiler.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/shell-writer.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/core/spec-schema.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/lab/specs/biped.json",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/runtime/creature-stage.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/tsl/field-nodes.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/tsl/materials.js",
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/src/tsl/pose-storage.js",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-a.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-b.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-c.png",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/dense-grass-system.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/integration-adapter.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/precipitation-system.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/weather-webgpu-lab.js",
        "threejs-water-optics/examples/webgpu-bounded-water/constants.js",
        "threejs-water-optics/examples/webgpu-bounded-water/cpu-water-height.js",
        "threejs-water-optics/examples/webgpu-bounded-water/webgpu-bounded-water.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "debugging-contract-lab",
      "title": "Three.js Debugging Decision Lab",
      "skill": "threejs-debugging",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "accepted",
      "canonicalSource": [
        "threejs-debugging/SKILL.md",
        "threejs-debugging/references/upstream-research.md",
        "threejs-debugging/examples/triage-cases.json",
        "threejs-debugging/examples/debugging-contract.test.mjs",
        "threejs-debugging/examples/debugging-contract-lab/app.mjs",
        "threejs-debugging/examples/debugging-contract-lab/contract-lab.test.mjs"
      ],
      "browserEntry": "threejs-debugging/examples/debugging-contract-lab/index.html",
      "publishPath": "/demos/debugging-contract-lab/",
      "scenarios": [
        {
          "id": "ordinary-scene-design",
          "route": "/demos/debugging-contract-lab/scenario/ordinary-scene-design/",
          "startup": {
            "scenario": "ordinary-scene-design"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "older-release-suspicious-output",
          "route": "/demos/debugging-contract-lab/scenario/older-release-suspicious-output/",
          "startup": {
            "scenario": "older-release-suspicious-output"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "merged-but-unreleased",
          "route": "/demos/debugging-contract-lab/scenario/merged-but-unreleased/",
          "startup": {
            "scenario": "merged-but-unreleased"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "closed-but-unrelated",
          "route": "/demos/debugging-contract-lab/scenario/closed-but-unrelated/",
          "startup": {
            "scenario": "closed-but-unrelated"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "installed-source-docs-disagree",
          "route": "/demos/debugging-contract-lab/scenario/installed-source-docs-disagree/",
          "startup": {
            "scenario": "installed-source-docs-disagree"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "current-release-reproduces-without-match",
          "route": "/demos/debugging-contract-lab/scenario/current-release-reproduces-without-match/",
          "startup": {
            "scenario": "current-release-reproduces-without-match"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "local-usage-error",
          "route": "/demos/debugging-contract-lab/scenario/local-usage-error/",
          "startup": {
            "scenario": "local-usage-error"
          },
          "acceptanceStatus": "accepted"
        }
      ],
      "mechanisms": [
        {
          "id": "activation-gate",
          "route": "/demos/debugging-contract-lab/mechanism/activation-gate/",
          "startup": {
            "scenario": "ordinary-scene-design"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "version-matrix",
          "route": "/demos/debugging-contract-lab/mechanism/version-matrix/",
          "startup": {
            "scenario": "older-release-suspicious-output"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "release-containment",
          "route": "/demos/debugging-contract-lab/mechanism/release-containment/",
          "startup": {
            "scenario": "merged-but-unreleased"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "candidate-classification",
          "route": "/demos/debugging-contract-lab/mechanism/candidate-classification/",
          "startup": {
            "scenario": "closed-but-unrelated"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "decision-boundary",
          "route": "/demos/debugging-contract-lab/mechanism/decision-boundary/",
          "startup": {
            "scenario": "local-usage-error"
          },
          "acceptanceStatus": "accepted"
        }
      ],
      "tiers": [],
      "modes": [
        "triage"
      ],
      "cameras": [
        "case"
      ],
      "seeds": [
        0
      ],
      "capabilityRequirements": [
        {
          "id": "rendering-not-required",
          "required": false,
          "evidence": "This diagnostic contract suite performs no rendering and makes no GPU claim.",
          "status": "not-applicable"
        }
      ],
      "runtimeProof": [
        {
          "id": "fixture-driven-ui",
          "required": true,
          "evidence": "The browser and tests consume the same seven triage cases.",
          "status": "accepted"
        },
        {
          "id": "stable-decision-outcomes",
          "required": true,
          "evidence": "Every case freezes activation and the required evidence-backed decision class.",
          "status": "accepted"
        },
        {
          "id": "no-static-issue-cache",
          "required": true,
          "evidence": "The contract rejects static upstream issue folklore in skill guidance.",
          "status": "accepted"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-debugging/examples/debugging-contract-lab/contract-lab.test.mjs",
      "commands": {
        "check": "npm --prefix threejs-debugging/examples/debugging-contract-lab run check",
        "test": "npm --prefix threejs-debugging/examples/debugging-contract-lab run validate:unit",
        "mutations": "npm --prefix threejs-debugging/examples/debugging-contract-lab run test:mutations",
        "capture": "npm --prefix threejs-debugging/examples/debugging-contract-lab run capture",
        "validateArtifacts": "npm --prefix threejs-debugging/examples/debugging-contract-lab run validate:artifacts",
        "validateQuick": "npm --prefix threejs-debugging/examples/debugging-contract-lab run validate:quick",
        "validateFull": "npm --prefix threejs-debugging/examples/debugging-contract-lab run validate:full"
      },
      "sourceHash": "sha256:f2bdc1ae6bdef99e8072c87235bb5fbbd0d89c1aaff0eb4a095824635fa9e989",
      "proxyStatus": null,
      "nonRenderingScenarioSuite": true,
      "sourceHashInputs": [
        "threejs-debugging/examples/debugging-contract-lab",
        "threejs-debugging/examples/debugging-contract.test.mjs",
        "threejs-debugging/examples/triage-cases.json",
        "threejs-debugging/references/upstream-research.md",
        "threejs-debugging/SKILL.md"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "dynamic-surface-effects-touch-history-frost-fixture",
      "skill": "threejs-dynamic-surface-effects",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-dynamic-surface-effects/examples/touch-history-frost"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:d728331885545880cafe2c406e2dc74304e08d68e627abc8eb696c75934afa70",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-dynamic-surface-effects/examples/touch-history-frost"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "exposure-color-grading-demo",
      "title": "Scene-Referred Exposure Rig",
      "skill": "threejs-exposure-color-grading",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/exposure-color-grading-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "identity-lut",
        "meter-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline run validate",
      "sourceHash": "sha256:aae11b11004a57015726c6caba0c65b4aaabfdd23493b8980f4ddf8ca83c0e23",
      "proxyStatus": {
        "limitation": "The docs page simulates the meter state in live scene controls for readability. The production skill remains compute-reduced HDR luminance, storage-buffer exposure, explicit tone mapping, and post-tone-map LUT sampling.",
        "canonicalLabId": "webgpu-exposure-color-pipeline"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "fields-generated-biome-maps",
      "title": "Biome Field Terrain",
      "skill": "threejs-procedural-fields",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-fields/examples/webgpu-field-bake",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/fields-generated-biome-maps/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "flat",
        "channel-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-fields/examples/webgpu-field-bake run validate:generated-assets",
      "sourceHash": "sha256:673c7ab179bba44bca8b3c5f4b43a983d50d57e3849af2af063235a938b1063a",
      "proxyStatus": {
        "limitation": "Generated biome maps are reduced-tier diagnostics. The production field path remains shared CPU/TSL parity plus compute/storage bakes when reuse justifies it.",
        "canonicalLabId": "webgpu-field-bake"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-fields/examples/webgpu-field-bake"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "final-image-flight",
      "title": "Final Image Flight",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "integration-labs/final-image-flight/main.mjs",
        "integration-labs/final-image-flight/browser.mjs",
        "integration-labs/final-image-flight/routes.mjs",
        "integration-labs/final-image-flight/owner-graph.mjs",
        "integration-labs/final-image-flight/quality-governor.mjs",
        "integration-labs/final-image-flight/capture.mjs",
        "integration-labs/final-image-flight/contract.json",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/main.mjs",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/main.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/timeline.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/gpu-instance-motion.js",
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao/main.js",
        "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/host-adapter.js",
        "threejs-bloom/examples/node-selective-bloom/index.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/stage.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/shadow-architectures.js",
        "threejs-visual-validation/examples/webgpu-validation-harness/src/readback.js"
      ],
      "browserEntry": "integration-labs/final-image-flight/index.html",
      "publishPath": "/demos/final-image-flight/",
      "scenarios": [
        {
          "id": "flight",
          "title": "Final Image Flight",
          "route": ".",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "final",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "camera-motion-ownership",
          "title": "Camera and motion ownership",
          "route": "mechanism/camera-motion-ownership",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "owner-graph",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ao-prepass-lit-pair",
          "title": "AO prepass and lit pair",
          "route": "mechanism/ao-prepass-lit-pair",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "ao",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-emissive-bloom",
          "title": "Shared emissive bloom",
          "route": "mechanism/shared-emissive-bloom",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "bloom",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "exposure-output-order",
          "title": "Exposure and output order",
          "route": "mechanism/exposure-output-order",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "exposure",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shadow-contribution",
          "title": "Shadow contribution",
          "route": "mechanism/shadow-contribution",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "shadow-contribution",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "owner-graph",
          "title": "Runtime owner graph",
          "route": "mechanism/owner-graph",
          "startup": {
            "scenario": "flight",
            "tier": "balanced",
            "mode": "owner-graph",
            "camera": "design",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "current-adapter-60-hz-flagship",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration flagship 60 Hz target"
          },
          "resolutionPolicy": {
            "sceneScale": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.hero.sceneScale"
            },
            "aoScale": {
              "value": 0.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "AO ultra tier"
            },
            "bloomScale": {
              "value": 0.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.hero.bloomScale"
            },
            "dprCap": {
              "value": 2,
              "unit": "device-pixels-per-css-pixel",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.hero.dprCap"
            }
          },
          "mechanismLimits": {
            "aoTier": "ultra",
            "exposureTier": "full-histogram",
            "shadowMapSize": {
              "value": 1024,
              "unit": "texels-per-axis",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.hero.shadowMapSize"
            },
            "effectInstances": {
              "value": 256,
              "unit": "instances",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.hero.effectInstances"
            }
          },
          "resourceLimits": {
            "status": "runtime byte inventory required before acceptance"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "one renderer and RenderPipeline",
            "one tone-map and output-transform owner",
            "one gbuffer prepass plus one lit pass",
            "shared depth, normal, emissive, and velocity producers",
            "camera and motion equations"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "current-adapter-60-hz-balanced",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration flagship 60 Hz target"
          },
          "resolutionPolicy": {
            "sceneScale": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.balanced.sceneScale"
            },
            "aoScale": {
              "value": 0.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "AO high tier"
            },
            "bloomScale": {
              "value": 0.33,
              "unit": "ratio",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.balanced.bloomScale"
            },
            "dprCap": {
              "value": 1.5,
              "unit": "device-pixels-per-css-pixel",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.balanced.dprCap"
            }
          },
          "mechanismLimits": {
            "aoTier": "high",
            "exposureTier": "balanced-log-reduction",
            "shadowMapSize": {
              "value": 512,
              "unit": "texels-per-axis",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.balanced.shadowMapSize"
            },
            "effectInstances": {
              "value": 128,
              "unit": "instances",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.balanced.effectInstances"
            }
          },
          "resourceLimits": {
            "status": "runtime byte inventory required before acceptance"
          },
          "degradationFromPrevious": [
            "reduce Bloom resolution",
            "reduce AO samples and shadow resolution",
            "reduce decorative effect instances"
          ],
          "preservedInvariants": [
            "one renderer and RenderPipeline",
            "one tone-map and output-transform owner",
            "one gbuffer prepass plus one lit pass",
            "shared depth, normal, emissive, and velocity producers",
            "camera and motion equations"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "current-adapter-60-hz-budgeted",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration flagship 60 Hz target"
          },
          "resolutionPolicy": {
            "sceneScale": {
              "value": 0.85,
              "unit": "ratio",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.budgeted.sceneScale"
            },
            "aoScale": {
              "value": 0.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "AO medium tier"
            },
            "bloomScale": {
              "value": 0.25,
              "unit": "ratio",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.budgeted.bloomScale"
            },
            "dprCap": {
              "value": 1,
              "unit": "device-pixels-per-css-pixel",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.budgeted.dprCap"
            }
          },
          "mechanismLimits": {
            "aoTier": "medium",
            "exposureTier": "minimum-fixed-shot",
            "shadowMapSize": {
              "value": 256,
              "unit": "texels-per-axis",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.budgeted.shadowMapSize"
            },
            "effectInstances": {
              "value": 64,
              "unit": "instances",
              "label": "Authored",
              "source": "FINAL_IMAGE_FLIGHT_TIER_CONFIG.budgeted.effectInstances"
            }
          },
          "resourceLimits": {
            "status": "runtime byte inventory required before acceptance"
          },
          "degradationFromPrevious": [
            "lower scene and Bloom resolution",
            "reduce AO samples and shadow resolution",
            "reduce decorative effect instances"
          ],
          "preservedInvariants": [
            "one renderer and RenderPipeline",
            "one tone-map and output-transform owner",
            "one gbuffer prepass plus one lit pass",
            "shared depth, normal, emissive, and velocity producers",
            "camera and motion equations"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "velocity",
        "ao",
        "emissive",
        "bloom",
        "exposure",
        "shadow-contribution",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "await renderer.init() followed by renderer.backend.isWebGPUBackend === true; unsupported WebGPU throws and activates no fallback",
          "status": "incomplete"
        },
        {
          "id": "timestamp-query",
          "required": true,
          "evidence": "current-adapter performance claims require finite renderer timestamp results",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "host source awaits the sole renderer initialization",
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": "host rejects every backend except native WebGPU",
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": "selected RenderPipeline output must reach camera, motion, AO, shared emissive Bloom, exposure, shadow, and validation paths",
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": "capturePixels uses real RenderTarget readback and integer 256-byte row alignment unpacking",
          "status": "incomplete"
        },
        {
          "id": "single-owner-graph",
          "required": true,
          "evidence": "runtime graph must prove exactly one renderer, RenderPipeline, tone map, and output transform owner",
          "status": "incomplete"
        },
        {
          "id": "live-mrt-signals",
          "required": true,
          "evidence": "one gbuffer PassNode must expose output, depth, normal, emissive, and velocity texture nodes",
          "status": "incomplete"
        },
        {
          "id": "ao-pass-pair",
          "required": true,
          "evidence": "runtime graph must reconcile one gbuffer prepass plus one material-context lit pass and one full lit output",
          "status": "incomplete"
        },
        {
          "id": "materialized-pre-grade-hdr",
          "required": true,
          "evidence": "one RGBA16F RTT materializes lit plus Bloom and the same node identity is passed to exposure metering and HDR presentation",
          "status": "incomplete"
        },
        {
          "id": "actual-diagnostic-nodes",
          "required": true,
          "evidence": "shadow-contribution selects a real ShadowNodeMaterial pass texture; owner-graph selects a tiled node composed from live MRT, AO, Bloom, and pre-grade signals",
          "status": "incomplete"
        },
        {
          "id": "sustained-quality-governor",
          "required": true,
          "evidence": "renderer timestamp-query render plus compute samples feed sustained p95 windows with hysteresis, cooldown, route locks, transition trace, and no transition on absent timestamps",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "finite warm-up, p50, p95, misses, cadence, and stage attribution are not captured",
          "status": "incomplete"
        },
        {
          "id": "lifecycle-loop",
          "required": true,
          "evidence": "50–100 measured create/render/resize/mode/tier/dispose cycles are not captured",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix integration-labs/final-image-flight run validate:full",
      "commands": {
        "check": "npm --prefix integration-labs/final-image-flight run check",
        "test": "npm --prefix integration-labs/final-image-flight run validate:unit",
        "mutations": "npm --prefix integration-labs/final-image-flight run test:mutations",
        "capture": "npm --prefix integration-labs/final-image-flight run capture",
        "validateArtifacts": "npm --prefix integration-labs/final-image-flight run validate:artifacts",
        "validateQuick": "npm --prefix integration-labs/final-image-flight run validate:quick",
        "validateFull": "npm --prefix integration-labs/final-image-flight run validate:full"
      },
      "sourceHash": "sha256:2fc27a668cad3236daa8e5274566ad8022a308fb4052241d1d312c304c949d68",
      "proxyStatus": null,
      "notes": [
        "This integration is a real host-owned native-WebGPU implementation, not the generic integration dashboard.",
        "Status remains incomplete because browser capture, current-adapter GPU timing, lifecycle evidence, and the complete v2 bundle are absent.",
        "The truthful material-context AO architecture performs one gbuffer prepass and one lit scene pass; shadow-contribution declares one additional diagnostic-only scene pass when that mode is reachable.",
        "The capture command is wired to the shared root browser runner and hook but has not been executed in this workstream."
      ],
      "sourceHashInputs": [
        "integration-labs/final-image-flight",
        "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/host-adapter.js",
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao/main.js",
        "threejs-bloom/examples/node-selective-bloom/index.js",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraDirectionController.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraRelativeOrigin.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/main.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/routeState.mjs",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/constants.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/exposure-nodes.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/lut.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/stage.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/gpu-instance-motion.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/main.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/quaternion-helpers.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/route-state.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/timeline.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/cached-clipmap-shadow-node-v2.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/clipmap-config.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/shadow-architectures.js",
        "threejs-visual-validation/examples/webgpu-validation-harness/src/readback.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "frost-generated-crystals",
      "title": "Frost Crystal Surface",
      "skill": "threejs-dynamic-surface-effects",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/frost-generated-crystals/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "structure",
        "thaw-band"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost run validate:generated-assets",
      "sourceHash": "sha256:da568d7fd4651e62cb87fe3d06465df20d3bf1c301483308bf53b50894884a0f",
      "proxyStatus": {
        "limitation": "Generated crystal maps are reduced-tier static inputs. The production frost path remains StorageTexture history, reduced blur, and TSL refraction.",
        "canonicalLabId": "webgpu-touch-history-frost"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "image-pipeline-framegraph-demo",
      "title": "Shared Signal Framegraph",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-image-pipeline/examples/webgpu-image-pipeline",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/image-pipeline-framegraph-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "signals",
        "bypass-post"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-image-pipeline/examples/webgpu-image-pipeline run validate",
      "sourceHash": "sha256:48fd78a732d2f8b0ba32cc219fd9bb69ecc2885c9ea6c2cf8ab378d422b849f2",
      "proxyStatus": {
        "limitation": "The docs page visualizes the signal contract with live panels rather than allocating production MRT targets. The production skill remains one RenderPipeline, one pass/MRT producer, and one tone-map/output conversion owner.",
        "canonicalLabId": "webgpu-image-pipeline"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-image-pipeline/examples/webgpu-image-pipeline"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "image-pipeline-integration-shared-framegraph-fixture",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-image-pipeline/examples/integration-shared-framegraph"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:ec0f1a9e862f3cd75ce4a4204d2fad7efe17c49225cf1a643549c54a6948979c",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-image-pipeline/examples/integration-shared-framegraph"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "integration-image-pipeline-ao",
      "title": "Image Pipeline and Material-context AO Integration",
      "skill": "threejs-ambient-contact-shading",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/main.js",
        "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/host-adapter.js",
        "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/browser.js"
      ],
      "browserEntry": "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/index.html",
      "publishPath": "/demos/integration-image-pipeline-ao/",
      "scenarios": [
        {
          "id": "wall-receiver",
          "startup": {
            "scenario": "wall-receiver",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "direct-emissive",
          "startup": {
            "scenario": "direct-emissive",
            "mode": "indirect-visibility"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "shared-gbuffer",
          "route": "mechanism/shared-gbuffer/",
          "startup": {
            "mode": "normal"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "indirect-only-application",
          "route": "mechanism/indirect-only-application/",
          "startup": {
            "mode": "indirect-visibility"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "owner-graph",
          "route": "mechanism/owner-graph/",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "aoScale": {
              "value": 0.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "AO ultra starting tier"
            }
          },
          "mechanismLimits": {
            "samples": {
              "value": 16,
              "unit": "samples",
              "label": "Authored",
              "source": "AO ultra starting tier"
            }
          },
          "resourceLimits": {},
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "one shared gbuffer owner",
            "one prepass plus one lit pass",
            "indirect-only application",
            "one tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "aoScale": {
              "value": 0.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "AO high starting tier"
            }
          },
          "mechanismLimits": {
            "samples": {
              "value": 12,
              "unit": "samples",
              "label": "Authored",
              "source": "AO high starting tier"
            }
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "reduce GTAO samples"
          ],
          "preservedInvariants": [
            "one shared gbuffer owner",
            "one prepass plus one lit pass",
            "indirect-only application",
            "one tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "aoScale": {
              "value": 0.33,
              "unit": "ratio",
              "label": "Authored",
              "source": "AO medium starting tier"
            }
          },
          "mechanismLimits": {
            "samples": {
              "value": 8,
              "unit": "samples",
              "label": "Authored",
              "source": "AO medium starting tier"
            },
            "reconstruction": "raw"
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "reduce GTAO samples",
            "reduce AO resolution",
            "remove denoise from the active material-context path"
          ],
          "preservedInvariants": [
            "one shared gbuffer owner",
            "one prepass plus one lit pass",
            "indirect-only application",
            "one tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "raw-ao",
        "denoised-ao",
        "temporal-ao",
        "normal",
        "depth",
        "velocity",
        "indirect-visibility",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "standard-depth",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "exclusive-owners",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "one-prepass-one-lit-pass",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run validate",
      "commands": {
        "check": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run check",
        "test": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run validate:unit",
        "mutations": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run test:mutations",
        "capture": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run capture",
        "validateArtifacts": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run validate:artifacts",
        "validateQuick": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run validate:quick",
        "validateFull": "npm --prefix threejs-ambient-contact-shading/examples/integration-image-pipeline-ao run validate:full"
      },
      "sourceHash": "sha256:4d88113f290e8e53ad49edf55808870f57372d200559e3f8dfac503a08a707ca",
      "proxyStatus": null,
      "notes": [
        "Status remains incomplete until authorized native-WebGPU captures, current-adapter timestamps, and lifecycle evidence exist.",
        "The integration imports the AO stage factory without importing or auto-running either browser application."
      ],
      "sourceHashInputs": [
        "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao",
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao/main.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "integration-precipitation-image-pipeline",
      "skill": "threejs-rain-snow-and-wet-surfaces",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/precipitation-image-pipeline-integration.js",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/browser-host.js",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/route-state.mjs",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/main.js",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/index.html",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/validate-integration.mjs",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/test-mutations.mjs",
        "README.md"
      ],
      "browserEntry": "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/index.html",
      "publishPath": "/demos/integration-precipitation-image-pipeline/",
      "scenarios": [
        {
          "id": "shared-weather-primary-pass",
          "route": "/demos/integration-precipitation-image-pipeline/?scenario=shared-weather-primary-pass",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "recurrent-weather-primary-pass",
          "route": "/demos/integration-precipitation-image-pipeline/?scenario=recurrent-weather-primary-pass",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "shared-signal-identity",
          "route": "/demos/integration-precipitation-image-pipeline/mechanism/shared-signal-identity/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "host-output-ownership",
          "route": "/demos/integration-precipitation-image-pipeline/mechanism/host-output-ownership/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "single-scene-submission",
          "route": "/demos/integration-precipitation-image-pipeline/mechanism/single-scene-submission/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "weather-compute-before-host-render",
          "route": "/demos/integration-precipitation-image-pipeline/mechanism/weather-compute-before-host-render/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "high",
          "targetClass": "integration-close-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "receiverScale": 1
          },
          "mechanismLimits": {
            "rainInstances": 24576,
            "snowInstances": 12288,
            "impactCapacity": 4096
          },
          "resourceLimits": {
            "sceneSubmissions": 1,
            "rendererOwners": 1,
            "outputOwners": 1
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "shared-weather-identity",
            "one-scene-pass",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "integration-ordinary-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "receiverScale": 0.5
          },
          "mechanismLimits": {
            "rainInstances": 12288,
            "snowInstances": 6144,
            "impactCapacity": 2048
          },
          "resourceLimits": {
            "sceneSubmissions": 1,
            "rendererOwners": 1,
            "outputOwners": 1
          },
          "degradationFromPrevious": [
            "reduce-precipitation-samples",
            "disable-recurrent-turbulence"
          ],
          "preservedInvariants": [
            "shared-weather-identity",
            "one-scene-pass",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "integration-small-footprint",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "receiverScale": 0.25
          },
          "mechanismLimits": {
            "rainInstances": 4096,
            "snowInstances": 2048,
            "impactCapacity": 512
          },
          "resourceLimits": {
            "sceneSubmissions": 1,
            "rendererOwners": 1,
            "outputOwners": 1
          },
          "degradationFromPrevious": [
            "reduce-receiver-resolution",
            "bound-impact-capacity"
          ],
          "preservedInvariants": [
            "shared-weather-identity",
            "one-scene-pass",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "weather-state",
        "particles",
        "wetness",
        "snow",
        "impacts",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "host-native-webgpu",
          "required": true,
          "evidence": "host backend identity gate",
          "status": "incomplete"
        },
        {
          "id": "host-primary-scene-pass",
          "required": true,
          "evidence": "single host scenePass identity",
          "status": "incomplete"
        },
        {
          "id": "storage-buffer-compute",
          "required": true,
          "evidence": "weather recurrence and impact storage dispatches",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "host-owner-identity",
          "required": true,
          "evidence": "one renderer, pipeline, scene pass, tone map, and output owner",
          "status": "incomplete"
        },
        {
          "id": "shared-weather-identity",
          "required": true,
          "evidence": "all consumers receive identical host signal nodes",
          "status": "incomplete"
        },
        {
          "id": "native-browser-evidence",
          "required": true,
          "evidence": "pending v2 readback and current-adapter timing",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node validate-integration.mjs",
      "commands": {
        "check": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run check",
        "test": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run validate:unit",
        "mutations": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run test:mutations",
        "capture": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run capture",
        "validateArtifacts": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run validate:artifacts",
        "validateQuick": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run validate:quick",
        "validateFull": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline run validate:full"
      },
      "sourceHash": "sha256:fd1c8e3d52557e281c4b2fb7c4ab4c4ecbc4729936a7021bdb3265a0065a3a1a",
      "proxyStatus": null,
      "sourceHashInputs": [
        "README.md",
        "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/precipitation-system.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/weather-webgpu-lab.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "integration-temporal-surface",
      "skill": "threejs-dynamic-surface-effects",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/temporal-surface-integration.js",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/browser-host.js",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/route-state.mjs",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/main.js",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/index.html",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/validate-integration.mjs",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface/test-mutations.mjs",
        "README.md"
      ],
      "browserEntry": "threejs-dynamic-surface-effects/examples/integration-temporal-surface/index.html",
      "publishPath": "/demos/integration-temporal-surface/",
      "scenarios": [
        {
          "id": "host-scene-linear-frost",
          "route": "/demos/integration-temporal-surface/?scenario=host-scene-linear-frost",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "host-temporal-reset-coupling",
          "route": "/demos/integration-temporal-surface/?scenario=host-temporal-reset-coupling",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "shared-scene-color",
          "route": "/demos/integration-temporal-surface/mechanism/shared-scene-color/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-depth-velocity-camera",
          "route": "/demos/integration-temporal-surface/mechanism/shared-depth-velocity-camera/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "feature-local-history",
          "route": "/demos/integration-temporal-surface/mechanism/feature-local-history/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "host-reset-registry",
          "route": "/demos/integration-temporal-surface/mechanism/host-reset-registry/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "host-output-ownership",
          "route": "/demos/integration-temporal-surface/mechanism/host-output-ownership/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "integration-close-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "historyScale": 1,
            "blurScale": 0.5
          },
          "mechanismLimits": {
            "workgroupSize": [
              8,
              8,
              1
            ],
            "twoScaleRefraction": true
          },
          "resourceLimits": {
            "sceneSubmissions": 1,
            "rendererOwners": 1,
            "outputOwners": 1,
            "featureHistorySlots": 2
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "shared-host-signals",
            "feature-local-history",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "integration-ordinary-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "historyScale": 0.5,
            "blurScale": 0.33
          },
          "mechanismLimits": {
            "workgroupSize": [
              8,
              8,
              1
            ],
            "twoScaleRefraction": true
          },
          "resourceLimits": {
            "sceneSubmissions": 1,
            "rendererOwners": 1,
            "outputOwners": 1,
            "featureHistorySlots": 2
          },
          "degradationFromPrevious": [
            "half-resolution-feature-history",
            "lower-blur-scale"
          ],
          "preservedInvariants": [
            "shared-host-signals",
            "feature-local-history",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "integration-small-footprint",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "historyScale": 0.25,
            "blurScale": 0.25
          },
          "mechanismLimits": {
            "workgroupSize": [
              8,
              8,
              1
            ],
            "twoScaleRefraction": false
          },
          "resourceLimits": {
            "sceneSubmissions": 1,
            "rendererOwners": 1,
            "outputOwners": 1,
            "featureHistorySlots": 2
          },
          "degradationFromPrevious": [
            "quarter-resolution-feature-history",
            "single-scale-refraction"
          ],
          "preservedInvariants": [
            "shared-host-signals",
            "feature-local-history",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "host-scene-color",
        "surface-history",
        "frost-mask",
        "refraction",
        "host-velocity",
        "reset-reason",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "host-native-webgpu",
          "required": true,
          "evidence": "host backend identity gate",
          "status": "incomplete"
        },
        {
          "id": "host-scene-color-depth-velocity",
          "required": true,
          "evidence": "shared host pass signal identities",
          "status": "incomplete"
        },
        {
          "id": "storage-texture-compute",
          "required": true,
          "evidence": "feature-local RGBA16F history dispatch",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "host-owner-identity",
          "required": true,
          "evidence": "one renderer, pipeline, scene pass, temporal, jitter, tone-map, and output owner",
          "status": "incomplete"
        },
        {
          "id": "shared-signal-identity",
          "required": true,
          "evidence": "scene color, depth, velocity, camera, and reset registry retain host identity",
          "status": "incomplete"
        },
        {
          "id": "native-browser-evidence",
          "required": true,
          "evidence": "pending v2 readback and current-adapter timing",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node validate-integration.mjs",
      "commands": {
        "check": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run check",
        "test": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run validate:unit",
        "mutations": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run test:mutations",
        "capture": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run capture",
        "validateArtifacts": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run validate:artifacts",
        "validateQuick": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run validate:quick",
        "validateFull": "npm --prefix threejs-dynamic-surface-effects/examples/integration-temporal-surface run validate:full"
      },
      "sourceHash": "sha256:0964e514ce075881516482b6c4141498bcba40ff1a4823b9ceb473cfc1daba8e",
      "proxyStatus": null,
      "sourceHashInputs": [
        "README.md",
        "threejs-dynamic-surface-effects/examples/integration-temporal-surface",
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/frost-surface-effect.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "materials-generated-lava-causes",
      "title": "Lava Cause Material",
      "skill": "threejs-procedural-materials",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-materials/examples/tsl-procedural-pbr",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/materials-generated-lava-causes/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "cool-crust",
        "raw-emissive"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-materials/examples/tsl-procedural-pbr run validate:generated-assets",
      "sourceHash": "sha256:ff190486a7ec06195ed87864bc6a256a99d041dac07ca53c543a77de44877603",
      "proxyStatus": {
        "limitation": "Generated lava maps are reduced-tier diagnostic inputs. The production material path remains NodeMaterial PBR slots with HDR emissive and BloomNode ownership.",
        "canonicalLabId": "tsl-procedural-pbr"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-materials/examples/tsl-procedural-pbr"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "node-selective-bloom",
      "skill": "threejs-bloom",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-bloom/examples/node-selective-bloom"
      ],
      "browserEntry": "threejs-bloom/examples/node-selective-bloom/index.html",
      "publishPath": "/demos/node-selective-bloom/",
      "scenarios": [
        {
          "id": "threshold-and-knee",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "point-spread-function",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "emissive-hierarchy",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "transparent-emitters",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "depth-and-occlusion",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-emissive-integration",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "threshold-and-knee",
          "route": "mechanism/threshold-and-knee/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "point-spread-function",
          "route": "mechanism/point-spread-function/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "emissive-hierarchy",
          "route": "mechanism/emissive-hierarchy/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "transparent-emitters",
          "route": "mechanism/transparent-emitters/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "depth-and-occlusion",
          "route": "mechanism/depth-and-occlusion/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-emissive-integration",
          "route": "mechanism/shared-emissive-integration/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "bloomScale": 0.5,
            "dprCap": 2
          },
          "mechanismLimits": {},
          "resourceLimits": {},
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "pre-tone-map",
            "selective-emissive"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "bloomScale": 0.33,
            "dprCap": 1.5
          },
          "mechanismLimits": {},
          "resourceLimits": {},
          "degradationFromPrevious": [
            "lower bloom resolution",
            "fewer animated contributors"
          ],
          "preservedInvariants": [
            "pre-tone-map",
            "selective-emissive"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mobile",
          "targetClass": "mobile-class-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "bloomScale": 0.25,
            "dprCap": 1
          },
          "mechanismLimits": {},
          "resourceLimits": {},
          "degradationFromPrevious": [
            "lower bloom resolution",
            "cap DPR",
            "fewer animated contributors"
          ],
          "preservedInvariants": [
            "pre-tone-map",
            "selective-emissive"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "reduced-readable-base",
          "targetClass": "readability-reference",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "bloomScale": 0,
            "dprCap": 1
          },
          "mechanismLimits": {
            "bloom": "disabled"
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "remove bloom and emissive MRT from active graph"
          ],
          "preservedInvariants": [
            "base-scene-readability",
            "single-output-transform"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "combined",
        "emissive-only",
        "bloom-only",
        "no-post-baseline",
        "false-color-luminance",
        "resolution-scale-overlay",
        "transparent-emitter"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "actual-bloomnode-target-inventory",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-gpu-timestamps",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-bloom/examples/node-selective-bloom/validate-node-selective-bloom.mjs",
      "commands": {
        "check": "npm --prefix threejs-bloom/examples/node-selective-bloom run check",
        "test": "npm --prefix threejs-bloom/examples/node-selective-bloom run validate:unit",
        "mutations": "npm --prefix threejs-bloom/examples/node-selective-bloom run test:mutations",
        "capture": "npm --prefix threejs-bloom/examples/node-selective-bloom run capture --",
        "validateArtifacts": "npm --prefix threejs-bloom/examples/node-selective-bloom run validate:artifacts",
        "validateQuick": "npm --prefix threejs-bloom/examples/node-selective-bloom run validate:quick",
        "validateFull": "npm --prefix threejs-bloom/examples/node-selective-bloom run validate:full"
      },
      "sourceHash": "sha256:b81b7b546366f221d40f1c049810b0261aea89b9daa54519ec7f57da3b513d84",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-bloom/examples/node-selective-bloom"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "ocean-generated-wave-seeds",
      "title": "Directional Wave Seed Surface",
      "skill": "threejs-spectral-ocean",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-spectral-ocean/examples/webgpu-fft-ocean",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/ocean-generated-wave-seeds/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "calm",
        "slope-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-spectral-ocean/examples/webgpu-fft-ocean run validate:generated-assets",
      "sourceHash": "sha256:76a2f44a942d79e4f83dd191037ca02850d101cf0f6afd8fff635c7052e6428e",
      "proxyStatus": {
        "limitation": "Generated wave seeds are reduced-tier preview/debug inputs. The production ocean path remains compute FFT cascades, derivative maps, and persistent foam history.",
        "canonicalLabId": "webgpu-fft-ocean"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "particles-trails-and-effects-reentry-plasma-fixture",
      "skill": "threejs-particles-trails-and-effects",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-particles-trails-and-effects/examples/reentry-plasma"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:bd1ef37f2c380f87d1a8826a4c0039999ccf8e65f9e7b8d2329cdb19f2af39a8",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-particles-trails-and-effects/examples/reentry-plasma"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "planet-generated-craters",
      "title": "Reduced-Tier Crater Mask Planet",
      "skill": "threejs-procedural-planets",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-planets/examples/webgpu-quadtree-planet",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/planet-generated-craters/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "flat",
        "diagnostic"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run validate:generated-assets",
      "sourceHash": "sha256:06bf9efd5d64e399aeee6cef790af08b3ef43074302d4dd6d20242ec8fd15979",
      "proxyStatus": {
        "limitation": "Generated crater masks are reduced-tier diagnostics. The production planet path remains planetFields() plus cube-sphere quadtree LOD and parity checks.",
        "canonicalLabId": "webgpu-quadtree-planet"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "pooled-particles-effects-demo",
      "title": "Pooled Particles And Trails",
      "skill": "threejs-particles-trails-and-effects",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/pooled-particles-effects-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "pool-debug",
        "bloom-off"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/validate-effects.mjs",
      "sourceHash": "sha256:fa7d7b297a96955a48f967e6730518b219a55a703a62cde8e8f39ea8aa89b0b5",
      "proxyStatus": {
        "limitation": "The docs page uses instanced visual particles and authored shells rather than the full compute dense-swap storage path. The production skill remains GPU-resident pools, deterministic spawn packets, dense compaction, MRT emissive, and bloom-disabled proof.",
        "canonicalLabId": "webgpu-pooled-effects"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-building-compiler-demo",
      "title": "Material-Slot Building Compiler",
      "skill": "threejs-procedural-buildings-and-cities",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/procedural-building-compiler-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "exposed-edges",
        "material-slots"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/validate-fixtures.mjs",
      "sourceHash": "sha256:7871ff6a259f26e44ee0da80dc54b6aac5e7a4a6479138dedee80eb9ff94f635",
      "proxyStatus": {
        "limitation": "The docs page uses compact runtime geometry instead of the full fixture compiler and BatchedMesh capacity accounting. The production skill remains plan validation, interval overlap checks, physical UV scale, material-slot mesh compilation, and city-chunk budget evidence.",
        "canonicalLabId": "webgpu-material-slot-compiler"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-buildings-and-cities-authored-financial-tower-fixture",
      "skill": "threejs-procedural-buildings-and-cities",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-buildings-and-cities/examples/authored-financial-tower"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:785b15901554bec1068cad907c08b4f1b5ac4c658e5977c2e6d5131ea6f7ff80",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-buildings-and-cities/examples/authored-financial-tower"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-creature-lab-demo",
      "title": "Reduced Creature Lab",
      "skill": "threejs-procedural-creatures",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-creatures/SKILL.md",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/procedural-creature-lab-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "rig-debug",
        "field-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node --check docs/demos/shared/provider-demo.mjs",
      "sourceHash": "sha256:03f6e4de4660774e3c9aa9545218e631ec152a132455c644e832b6576dec1969",
      "proxyStatus": {
        "limitation": "The full creature lab that exports SDF snap residuals, planted-foot drift, candidate-set parity, and silhouette/shadow masks is still pending in the skill contract. The docs page is a reduced live rig and field-shell demonstration; it does not claim accepted creature-lab evidence.",
        "canonicalLabId": "webgpu-procedural-creature-lab"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-creatures/SKILL.md"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-district",
      "title": "Procedural District",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "integration-labs/procedural-district"
      ],
      "browserEntry": "integration-labs/procedural-district/index.html",
      "publishPath": "/demos/procedural-district/",
      "scenarios": [
        {
          "id": "district",
          "startup": {
            "tier": "balanced",
            "mode": "final",
            "camera": "district",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "shared-cause-field",
          "route": "mechanism/shared-cause-field",
          "startup": {
            "mode": "shared-field"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "structural-topology",
          "route": "mechanism/structural-topology",
          "startup": {
            "mode": "shared-field"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "facade-ownership",
          "route": "mechanism/facade-ownership",
          "startup": {
            "mode": "facade-ownership"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "material-slot-weather",
          "route": "mechanism/material-slot-weather",
          "startup": {
            "mode": "weather-state"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ao-shadow-order",
          "route": "mechanism/ao-shadow-order",
          "startup": {
            "mode": "shadow-contribution"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "owner-graph",
          "route": "mechanism/owner-graph",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "60-hz-flagship",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz target; current-adapter timing pending"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "aoScale": 0.5,
            "dprCap": 2
          },
          "mechanismLimits": {
            "fieldExtent": 256,
            "terrainSegments": 64,
            "buildingCount": 9,
            "buildingTier": "hero",
            "aoTier": "ultra",
            "shadowMapSize": 2048
          },
          "resourceLimits": {
            "status": "logical runtime inventory implemented; physical allocation unmeasured"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "one shared cause field",
            "no duplicate facades",
            "static geometry under weather",
            "honest AO scene submissions",
            "one final owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "60-hz-balanced",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz target; current-adapter timing pending"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "aoScale": 0.5,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "fieldExtent": 128,
            "terrainSegments": 48,
            "buildingCount": 7,
            "buildingTier": "city",
            "aoTier": "high",
            "shadowMapSize": 1024
          },
          "resourceLimits": {
            "status": "logical runtime inventory implemented; physical allocation unmeasured"
          },
          "degradationFromPrevious": [
            "halve field extent",
            "reduce terrain/building detail",
            "reduce shadow map and DPR cap"
          ],
          "preservedInvariants": [
            "one shared cause field",
            "no duplicate facades",
            "static geometry under weather",
            "honest AO scene submissions",
            "one final owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "60-hz-budgeted",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz target; current-adapter timing pending"
          },
          "resolutionPolicy": {
            "sceneScale": 0.85,
            "aoScale": 0.5,
            "dprCap": 1
          },
          "mechanismLimits": {
            "fieldExtent": 64,
            "terrainSegments": 32,
            "buildingCount": 5,
            "buildingTier": "distant",
            "aoTier": "medium",
            "shadowMapSize": 512
          },
          "resourceLimits": {
            "status": "logical runtime inventory implemented; physical allocation unmeasured"
          },
          "degradationFromPrevious": [
            "halve field extent",
            "reduce terrain/district counts",
            "use distant compiler tier",
            "reduce shadow and display scale"
          ],
          "preservedInvariants": [
            "one shared cause field",
            "no duplicate facades",
            "static geometry under weather",
            "honest AO scene submissions",
            "one final owner",
            "structural topology"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "shared-field",
        "facade-ownership",
        "material-slots",
        "weather-state",
        "shadow-contribution",
        "ao",
        "owner-graph"
      ],
      "cameras": [
        "street",
        "district",
        "aerial"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer backend must prove isWebGPUBackend === true",
          "status": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "required": true,
          "evidence": "required before any 60 Hz performance claim",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "single-owner-graph",
          "required": true,
          "evidence": "runtime graph and mutation suite implemented; browser evidence pending",
          "status": "incomplete"
        },
        {
          "id": "field-storage-readback",
          "required": true,
          "evidence": "field atlas is sampled by render diagnostics; accepted readback bundle pending",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "lifecycle-loop",
          "required": true,
          "evidence": "50-100 cycle evidence not captured",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix integration-labs/procedural-district run validate:quick",
      "commands": {
        "check": "npm --prefix integration-labs/procedural-district run check",
        "test": "npm --prefix integration-labs/procedural-district run validate:unit",
        "mutations": "npm --prefix integration-labs/procedural-district run test:mutations",
        "capture": "npm --prefix integration-labs/procedural-district run capture",
        "validateArtifacts": "npm --prefix integration-labs/procedural-district run validate:artifacts",
        "validateQuick": "npm --prefix integration-labs/procedural-district run validate:quick",
        "validateFull": "npm --prefix integration-labs/procedural-district run validate:full"
      },
      "sourceHash": "sha256:0610238964bdd587347cd5ba8298565de173bdf582676ca262d4c80cb81b9fd1",
      "proxyStatus": null,
      "notes": [
        "All host adapters are executable; acceptance remains incomplete until real native-WebGPU readbacks, current-adapter timestamps, image metrics, and lifecycle evidence pass."
      ],
      "sourceHashInputs": [
        "integration-labs/procedural-district",
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao/main.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/building-plan.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/compiler.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/diagnostics.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/exposed-edges.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/modules.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/placements.js",
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/uv-debug.js",
        "threejs-procedural-fields/examples/webgpu-field-bake/field-bake.mjs",
        "threejs-procedural-fields/examples/webgpu-field-bake/field-bundle.mjs",
        "threejs-procedural-fields/examples/webgpu-field-bake/field-constants.mjs",
        "threejs-procedural-geometry/examples/semantic-mesh-writer/mesh-writer.js",
        "threejs-procedural-materials/assets/generated-variants/lava-cause-a.png",
        "threejs-procedural-materials/assets/generated-variants/lava-cause-b.png",
        "threejs-procedural-materials/assets/generated-variants/lava-cause-c.png",
        "threejs-procedural-materials/examples/tsl-procedural-pbr/procedural-pbr-materials.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/precipitation-system.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/cached-clipmap-shadow-node-v2.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/clipmap-config.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/shadow-architectures.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-geometry-sculpted-gallery-frame-fixture",
      "skill": "threejs-procedural-geometry",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-geometry/examples/sculpted-gallery-frame"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:bf15726bed9a0b511b7b7e75bf807dbb308b67c8b8058426990592b1a288458f",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-geometry/examples/sculpted-gallery-frame"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-geometry-writer-demo",
      "title": "Semantic Mesh Writer Bench",
      "skill": "threejs-procedural-geometry",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-geometry/examples/semantic-mesh-writer",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/procedural-geometry-writer-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "groups",
        "wire"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-geometry/examples/semantic-mesh-writer/validate-geometry.js --fixture frame-hero --json",
      "sourceHash": "sha256:e9c97609abfe6e39fa501c23558f603edcd1c9dd32ff1437192b70893b976e81",
      "proxyStatus": {
        "limitation": "The docs page implements a compact runtime frame-profile writer for inspection. The production skill remains preallocated typed-array writers, exact group coverage, tangent validation, batching decisions, and targeted update ranges.",
        "canonicalLabId": "semantic-mesh-writer"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-geometry/examples/semantic-mesh-writer"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-materials-lava-flow-surface-fixture",
      "skill": "threejs-procedural-materials",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-materials/examples/lava-flow-surface"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:37039808fa46b9f0ef1a03b7ebcc7b101c96ad1e24ce7b7f0dc53098e5071748",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-materials/examples/lava-flow-surface"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-motion-timeline-demo",
      "title": "Procedural Motion Timeline",
      "skill": "threejs-procedural-motion-systems",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/procedural-motion-timeline-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "phase-debug",
        "replay-slice"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/validation.js",
      "sourceHash": "sha256:577c7252836a83e69bef32c47b612a4baca536bb035cd3aa1d63d472acc447ef",
      "proxyStatus": {
        "limitation": "The docs page uses a small CPU-side hero actor set for readability. The production skill remains fixed-step replay, previous/current storage slots, compute dispatch ownership, and quaternion frame contracts.",
        "canonicalLabId": "webgpu-procedural-timelines"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-planets-procedural-planet-surface-fixture",
      "skill": "threejs-procedural-planets",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-planets/examples/procedural-planet-surface"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:15d2df936ed4192dc1368bdb5abfa37f88407e79fa198a783c65b319152fdccd",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-planets/examples/procedural-planet-surface"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-vegetation-gpu-computed-grass-fixture",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/gpu-computed-grass"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:409e7cb951ba943328212e06b39d91be612aac6a5568323dbd412d5617146093",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-vegetation/examples/gpu-computed-grass"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-vegetation-stylized-meadow-grass-fixture",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/stylized-meadow-grass"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:191b0a6eaa3da069f84704300b68bb59df3d2340995edf9a2539d2e8e23fb117",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-vegetation/examples/stylized-meadow-grass"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "procedural-vegetation-validation-fixture",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/validation"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:f4a911703ac2f8ea7a2d828b329613e6137bb0a3de7e7b3627f683c8c8373a34",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-procedural-vegetation/examples/validation"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "rain-generated-ripples",
      "title": "Wet Surface Ripple Normals",
      "skill": "threejs-rain-snow-and-wet-surfaces",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/rain-generated-ripples/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "wet-baseline",
        "normal-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces run validate:generated-assets",
      "sourceHash": "sha256:4bbf15952bced678c76059dc9038a457734aa89e39cf831bb0c96c6f63c49797",
      "proxyStatus": {
        "limitation": "The rain streaks in this docs demo are visual context, not the high-tier storage-instanced precipitation path. Dynamic compute/event ripples remain the high-tier skill implementation.",
        "canonicalLabId": "webgpu-rain-snow-and-wet-surfaces"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "rain-snow-and-wet-surfaces-snow-accumulation-fixture",
      "skill": "threejs-rain-snow-and-wet-surfaces",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-rain-snow-and-wet-surfaces/examples/snow-accumulation"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:24ecd41f50403e7a575d6e5046fa38685a772673935705b43a20c2d71d0e703e",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-rain-snow-and-wet-surfaces/examples/snow-accumulation"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "rain-snow-and-wet-surfaces-wet-puddle-rain-fixture",
      "skill": "threejs-rain-snow-and-wet-surfaces",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-rain-snow-and-wet-surfaces/examples/wet-puddle-rain"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:52b96d55caf731333e0e630c7d09f7576de57898a53fa34dad68619464f0e98b",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-rain-snow-and-wet-surfaces/examples/wet-puddle-rain"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "relativistic-space-shot",
      "title": "Relativistic Space Shot",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "integration-labs/relativistic-space-shot/main.mjs",
        "integration-labs/relativistic-space-shot/browser.mjs",
        "integration-labs/relativistic-space-shot/host-stages.mjs",
        "integration-labs/relativistic-space-shot/routes.mjs",
        "integration-labs/relativistic-space-shot/owner-graph.mjs",
        "integration-labs/relativistic-space-shot/quality-governor.mjs",
        "integration-labs/relativistic-space-shot/contract.json",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/main.mjs",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/main.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/timeline.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-transfer-stage.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/lab.mjs",
        "threejs-image-pipeline/examples/webgpu-image-pipeline/stage.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/stage.js",
        "threejs-visual-validation/examples/webgpu-validation-harness/src/readback.js"
      ],
      "browserEntry": "integration-labs/relativistic-space-shot/index.html",
      "publishPath": "/demos/relativistic-space-shot/",
      "scenarios": [
        {
          "id": "shot",
          "route": "/demos/relativistic-space-shot/",
          "startup": {
            "tier": "balanced",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "curved-ray-hdr",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "motion-event-packets",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gpu-particle-pools",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-emissive-bloom",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "single-temporal-exposure-output",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "owner-graph",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "60-hz-flagship",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz contract"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "rayScale": 1,
            "bloomScale": 0.5,
            "dprCap": 2
          },
          "mechanismLimits": {
            "curvedRayTier": "hero",
            "curvedRayMaxSteps": 160,
            "particleTier": "ultra",
            "sparkPoolCapacity": 65536,
            "debrisPoolCapacity": 8192,
            "sparkEventCount": 4096,
            "debrisEventCount": 512,
            "exposureTier": "full-histogram",
            "temporal": true
          },
          "resourceLimits": {
            "status": "runtime inventory required"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "bounded finite rays",
            "deterministic event packets",
            "GPU particle identity",
            "shared emissive",
            "single temporal/tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "60-hz-balanced",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz contract"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "rayScale": 1,
            "bloomScale": 0.33,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "curvedRayTier": "standard",
            "curvedRayMaxSteps": 96,
            "particleTier": "high",
            "sparkPoolCapacity": 24576,
            "debrisPoolCapacity": 3072,
            "sparkEventCount": 2048,
            "debrisEventCount": 256,
            "exposureTier": "balanced-log-reduction",
            "temporal": true
          },
          "resourceLimits": {
            "status": "runtime inventory required"
          },
          "degradationFromPrevious": [
            "reduce curved-ray integration detail",
            "reduce particle secondary detail",
            "lower bloom resolution",
            "simplify exposure metering"
          ],
          "preservedInvariants": [
            "bounded finite rays",
            "deterministic event packets",
            "GPU particle identity",
            "shared emissive",
            "single temporal/tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "60-hz-budgeted",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz contract"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "rayScale": 1,
            "bloomScale": 0.25,
            "dprCap": 1
          },
          "mechanismLimits": {
            "curvedRayTier": "background",
            "curvedRayMaxSteps": 48,
            "particleTier": "medium",
            "sparkPoolCapacity": 8192,
            "debrisPoolCapacity": 1024,
            "sparkEventCount": 1024,
            "debrisEventCount": 128,
            "exposureTier": "minimum-fixed-shot",
            "temporal": true
          },
          "resourceLimits": {
            "status": "runtime inventory required"
          },
          "degradationFromPrevious": [
            "reduce optional integration samples",
            "reduce particle pools, counts, and layers",
            "lower bloom resolution",
            "use fixed-shot exposure",
            "disable optional decoration"
          ],
          "preservedInvariants": [
            "bounded finite rays",
            "deterministic event packets",
            "GPU particle identity",
            "shared emissive",
            "single temporal/tone/output owner",
            "finite termination physics"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "curved-ray",
        "integration-pressure",
        "velocity",
        "particles",
        "emissive",
        "bloom",
        "exposure",
        "temporal-confidence",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer.init plus backend.isWebGPUBackend runtime gate",
          "status": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "required": true,
          "evidence": "required for 60 Hz claims",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "single-owner-graph",
          "required": true,
          "evidence": "browser-free graph and mutation validation; runtime capture pending",
          "status": "incomplete"
        },
        {
          "id": "curved-ray-particle-readback",
          "required": true,
          "evidence": "aligned readback path implemented; capture not executed",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "lifecycle",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix integration-labs/relativistic-space-shot run validate:quick",
      "commands": {
        "check": "npm --prefix integration-labs/relativistic-space-shot run check",
        "test": "npm --prefix integration-labs/relativistic-space-shot run validate:unit",
        "mutations": "npm --prefix integration-labs/relativistic-space-shot run test:mutations",
        "capture": "npm --prefix integration-labs/relativistic-space-shot run capture",
        "validateArtifacts": "npm --prefix integration-labs/relativistic-space-shot run validate:artifacts",
        "validateQuick": "npm --prefix integration-labs/relativistic-space-shot run validate:quick",
        "validateFull": "npm --prefix integration-labs/relativistic-space-shot run validate:full"
      },
      "sourceHash": "sha256:cd1a484962b562728a67488ed71312fa4b68126e261a801024bfee9b2aa89f96",
      "proxyStatus": null,
      "notes": [
        "Real native-WebGPU composition is implemented. Acceptance remains incomplete until current-adapter v2 capture, timing, lifecycle, and manual visual inspection are available.",
        "Stock r185 TRAANode requires scene color, depth, and velocity at drawing-buffer extent. All tiers keep sceneScale and rayScale at 1 in the one-shared-pass graph; actual degradation changes integration steps, particle pools/counts, DPR, BloomNode scale, and exposure-meter complexity."
      ],
      "sourceHashInputs": [
        "integration-labs/relativistic-space-shot",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/curved-ray-accretion.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-gpu-probes.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-integrators.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-transfer-stage.js",
        "threejs-bloom/examples/node-selective-bloom/index.js",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraDirectionController.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraRelativeOrigin.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/main.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/routeState.mjs",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/constants.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/exposure-nodes.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/lut.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/stage.js",
        "threejs-image-pipeline/examples/webgpu-image-pipeline/stage.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/effect-pool.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/effect-visuals.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/gpu-compaction-pool.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/lab.mjs",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/reentry-shell.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/gpu-instance-motion.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/main.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/quaternion-helpers.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/route-state.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/timeline.js",
        "threejs-visual-validation/examples/webgpu-validation-harness/src/readback.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "router-manifest-lab",
      "title": "Skill Router Manifest Lab",
      "skill": "threejs-choose-skills",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "accepted",
      "canonicalSource": [
        "threejs-choose-skills/examples/router-manifest-lab/router-core.mjs",
        "threejs-choose-skills/examples/router-manifest-lab/router-fixtures.json",
        "threejs-choose-skills/examples/router-manifest-lab/app.mjs"
      ],
      "browserEntry": "threejs-choose-skills/examples/router-manifest-lab/index.html",
      "publishPath": "/demos/router-manifest-lab/",
      "scenarios": [
        {
          "id": "ocean-planet",
          "route": "/demos/router-manifest-lab/scenario/ocean-planet/",
          "startup": {
            "scenario": "ocean-planet"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "rainy-city",
          "route": "/demos/router-manifest-lab/scenario/rainy-city/",
          "startup": {
            "scenario": "rainy-city"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "forest",
          "route": "/demos/router-manifest-lab/scenario/forest/",
          "startup": {
            "scenario": "forest"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "black-hole-shot",
          "route": "/demos/router-manifest-lab/scenario/black-hole-shot/",
          "startup": {
            "scenario": "black-hole-shot"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "post-pipeline-dashboard",
          "route": "/demos/router-manifest-lab/scenario/post-pipeline-dashboard/",
          "startup": {
            "scenario": "post-pipeline-dashboard"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "ocean-fauna",
          "route": "/demos/router-manifest-lab/scenario/ocean-fauna/",
          "startup": {
            "scenario": "ocean-fauna"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "route-away-unsupported",
          "route": "/demos/router-manifest-lab/scenario/route-away-unsupported/",
          "startup": {
            "scenario": "route-away-unsupported"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "over-budget-17.5-to-16.5",
          "route": "/demos/router-manifest-lab/scenario/over-budget-17.5-to-16.5/",
          "startup": {
            "scenario": "over-budget-17.5-to-16.5"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "missing-webgpu",
          "route": "/demos/router-manifest-lab/scenario/missing-webgpu/",
          "startup": {
            "scenario": "missing-webgpu"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "duplicate-output-owner",
          "route": "/demos/router-manifest-lab/scenario/duplicate-output-owner/",
          "startup": {
            "scenario": "duplicate-output-owner"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "duplicate-velocity-owner",
          "route": "/demos/router-manifest-lab/scenario/duplicate-velocity-owner/",
          "startup": {
            "scenario": "duplicate-velocity-owner"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "fabricated-tier",
          "route": "/demos/router-manifest-lab/scenario/fabricated-tier/",
          "startup": {
            "scenario": "fabricated-tier"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "post-before-physical-cause",
          "route": "/demos/router-manifest-lab/scenario/post-before-physical-cause/",
          "startup": {
            "scenario": "post-before-physical-cause"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "inventory-drift",
          "route": "/demos/router-manifest-lab/scenario/inventory-drift/",
          "startup": {
            "scenario": "inventory-drift"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "unsupported-route-away",
          "route": "/demos/router-manifest-lab/scenario/unsupported-route-away/",
          "startup": {
            "scenario": "unsupported-route-away"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "automatic-fallback",
          "route": "/demos/router-manifest-lab/scenario/automatic-fallback/",
          "startup": {
            "scenario": "automatic-fallback"
          },
          "acceptanceStatus": "accepted"
        }
      ],
      "mechanisms": [
        {
          "id": "inventory-intersection",
          "route": "/demos/router-manifest-lab/mechanism/inventory-intersection/",
          "startup": {
            "scenario": "inventory-drift"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "capability-gate",
          "route": "/demos/router-manifest-lab/mechanism/capability-gate/",
          "startup": {
            "scenario": "missing-webgpu"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "causal-ordering",
          "route": "/demos/router-manifest-lab/mechanism/causal-ordering/",
          "startup": {
            "scenario": "post-before-physical-cause"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "exclusive-ownership",
          "route": "/demos/router-manifest-lab/mechanism/exclusive-ownership/",
          "startup": {
            "scenario": "duplicate-output-owner"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "tier-provenance",
          "route": "/demos/router-manifest-lab/mechanism/tier-provenance/",
          "startup": {
            "scenario": "fabricated-tier"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "stage-budget-aggregation",
          "route": "/demos/router-manifest-lab/mechanism/stage-budget-aggregation/",
          "startup": {
            "scenario": "over-budget-17.5-to-16.5"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "route-away",
          "route": "/demos/router-manifest-lab/mechanism/route-away/",
          "startup": {
            "scenario": "route-away-unsupported"
          },
          "acceptanceStatus": "accepted"
        },
        {
          "id": "fallback-quarantine",
          "route": "/demos/router-manifest-lab/mechanism/fallback-quarantine/",
          "startup": {
            "scenario": "automatic-fallback"
          },
          "acceptanceStatus": "accepted"
        }
      ],
      "tiers": [],
      "modes": [
        "route"
      ],
      "cameras": [
        "manifest"
      ],
      "seeds": [
        0
      ],
      "capabilityRequirements": [
        {
          "id": "webgpu-requirement-declaration",
          "required": true,
          "evidence": "Every fixture declares its canonical WebGPU requirement; the planning suite itself performs no rendering.",
          "status": "accepted"
        }
      ],
      "runtimeProof": [
        {
          "id": "fixture-driven-ui",
          "required": true,
          "evidence": "The browser UI loads router-fixtures.json and evaluates it through router-core.mjs.",
          "status": "accepted"
        },
        {
          "id": "stable-machine-readable-verdicts",
          "required": true,
          "evidence": "Positive and negative fixtures assert stable verdict and reason codes.",
          "status": "accepted"
        },
        {
          "id": "exact-skill-inventory",
          "required": true,
          "evidence": "The suite asserts the exact unique 26-skill inventory against the authoritative repository directories.",
          "status": "accepted"
        },
        {
          "id": "stage-budget-rejection",
          "required": true,
          "evidence": "The suite rejects stage sums above targetFrameMs without fabricating a cheaper tier.",
          "status": "accepted"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-choose-skills/examples/router-manifest-lab/router-manifest.test.mjs",
      "commands": {
        "check": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run check",
        "test": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run validate:unit",
        "mutations": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run test:mutations",
        "capture": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run capture",
        "validateArtifacts": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run validate:artifacts",
        "validateQuick": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run validate:quick",
        "validateFull": "npm --prefix threejs-choose-skills/examples/router-manifest-lab run validate:full"
      },
      "sourceHash": "sha256:96be1085980ca50ff873f19032b100df87005f0b6ffc7875c7acecb49b864eb7",
      "proxyStatus": null,
      "nonRenderingScenarioSuite": true,
      "sourceHashInputs": [
        "threejs-choose-skills/examples/router-manifest-lab"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "selective-bloom-demo",
      "title": "Selective HDR Bloom Bench",
      "skill": "threejs-bloom",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-bloom/examples/node-selective-bloom",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/selective-bloom-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "base-only",
        "bloom-only"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-bloom/examples/node-selective-bloom/validate-node-selective-bloom.mjs",
      "sourceHash": "sha256:1ef52d6683e6463e6ee0ddd773ee2266af748c23bf98d5a942ad6f87bcc55de8",
      "proxyStatus": {
        "limitation": "The live page uses additive response geometry for interaction and mode switching. The production skill remains MRT emissive output feeding BloomNode inside one RenderPipeline output path.",
        "canonicalLabId": "node-selective-bloom"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-bloom/examples/node-selective-bloom"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "semantic-mesh-writer",
      "skill": "threejs-procedural-geometry",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-geometry/examples/semantic-mesh-writer"
      ],
      "browserEntry": "threejs-procedural-geometry/examples/semantic-mesh-writer/index.html",
      "publishPath": "/demos/semantic-mesh-writer/",
      "scenarios": [
        {
          "id": "frame-and-rail-profile",
          "startup": {
            "mode": "frame-and-rail-profile"
          }
        },
        {
          "id": "branch-rings",
          "startup": {
            "mode": "branch-rings"
          }
        },
        {
          "id": "semantic-groups-and-materials",
          "startup": {
            "mode": "semantic-groups-and-materials"
          }
        },
        {
          "id": "batching-comparison",
          "startup": {
            "mode": "batching-comparison"
          }
        },
        {
          "id": "dynamic-updates",
          "startup": {
            "mode": "dynamic-updates"
          }
        },
        {
          "id": "indirect-draw",
          "startup": {
            "mode": "indirect-draw"
          }
        }
      ],
      "mechanisms": [
        {
          "id": "frame-and-rail-profile",
          "route": "mechanism/frame-and-rail-profile/",
          "startup": {
            "mode": "frame-and-rail-profile"
          }
        },
        {
          "id": "branch-rings",
          "route": "mechanism/branch-rings/",
          "startup": {
            "mode": "branch-rings"
          }
        },
        {
          "id": "semantic-groups-and-materials",
          "route": "mechanism/semantic-groups-and-materials/",
          "startup": {
            "mode": "semantic-groups-and-materials"
          }
        },
        {
          "id": "batching-comparison",
          "route": "mechanism/batching-comparison/",
          "startup": {
            "mode": "batching-comparison"
          }
        },
        {
          "id": "dynamic-updates",
          "route": "mechanism/dynamic-updates/",
          "startup": {
            "mode": "dynamic-updates"
          }
        },
        {
          "id": "indirect-draw",
          "route": "mechanism/indirect-draw/",
          "startup": {
            "mode": "indirect-draw"
          }
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "close-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 2
          },
          "mechanismLimits": {
            "profileSamples": 72,
            "railSegments": 96,
            "branchRadialSegments": 18
          },
          "resourceLimits": {
            "maxVertices": 35000,
            "maxTriangles": 70000
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "semantic extrema",
            "hard edges",
            "material slots",
            "physical UV scale"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "standard",
          "targetClass": "ordinary-view-envelope",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "profileSamples": 48,
            "railSegments": 48,
            "branchRadialSegments": 12
          },
          "resourceLimits": {
            "maxVertices": 8000,
            "maxTriangles": 16000
          },
          "degradationFromPrevious": [
            "reduced profile and longitudinal tessellation under projected-error gates"
          ],
          "preservedInvariants": [
            "semantic extrema",
            "hard edges",
            "material slots",
            "physical UV scale"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "crowd",
          "targetClass": "distant-repetition",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1
          },
          "mechanismLimits": {
            "profileSamples": 40,
            "railSegments": 24,
            "branchRadialSegments": 6
          },
          "resourceLimits": {
            "maxVertices": 2600,
            "maxTriangles": 5200
          },
          "degradationFromPrevious": [
            "removed sub-pixel curvature samples under projected-error gates"
          ],
          "preservedInvariants": [
            "primary silhouette",
            "semantic extrema",
            "material slots",
            "physical UV scale"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "frame-and-rail-profile",
        "branch-rings",
        "semantic-groups-and-materials",
        "batching-comparison",
        "dynamic-updates",
        "indirect-draw"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "The canonical controller blocks unless renderer.backend.isWebGPUBackend is true after initialization.",
          "status": "incomplete"
        },
        {
          "id": "storage-buffers",
          "required": true,
          "evidence": "StorageInstancedBufferAttribute and IndirectStorageBufferAttribute are required by the batching-comparison and indirect-draw routes.",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "Await createGeometryLabController(), which awaits renderer.init() before constructing proof state.",
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": "Capture renderer.backend.isWebGPUBackend === true from the initialized controller.",
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": "Load every physical mechanism route and reconcile the selected runtime graph against its locked startup mode.",
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": "Capture MRT pixels using the controller's integer 256-byte-aligned row-stride contract.",
          "status": "incomplete"
        },
        {
          "id": "indirect-command",
          "required": true,
          "evidence": "Read back the compute-written indexed indirect command and reconcile its instanceCount with submitted work.",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-geometry/examples/semantic-mesh-writer/validate-geometry.js --sweep all --json",
      "commands": {
        "check": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run check",
        "test": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run validate:unit",
        "mutations": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run test:mutations",
        "capture": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-geometry/examples/semantic-mesh-writer run validate:full"
      },
      "sourceHash": "sha256:9218a7322fe2c95e48d0640697f04334c0d71b870de7e27bcf4c4ab287d2d6a8",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-procedural-geometry/examples/semantic-mesh-writer"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "shadow-cascade-demo",
      "title": "Scalable Shadow Coverage",
      "skill": "threejs-scalable-real-time-shadows",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/shadow-cascade-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "cascade-debug",
        "single-map"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/validate.js --allow-missing-gpu",
      "sourceHash": "sha256:55c4cd97c49ab7157f8eec431487e238b76b239ebd8f2ee634147fd5494124db",
      "proxyStatus": {
        "limitation": "The live page uses a single real shadow map plus debug coverage overlays. The production skill chooses one shadow, CSMShadowNode, TileShadowNode, or a measured custom cached clipmap from the target scene.",
        "canonicalLabId": "webgpu-cached-clipmap-shadow"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "skill-router-manifest-demo",
      "title": "Skill Router Manifest Bench",
      "skill": "threejs-choose-skills",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-choose-skills/examples/router-contract.test.mjs",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/skill-router-manifest-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "budget",
        "ownership"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-choose-skills/examples/router-contract.test.mjs",
      "sourceHash": "sha256:940983723b138f64d42f9400455f36bef4e6d5074fe8ebe7753d4f4fdbfa7860",
      "proxyStatus": {
        "limitation": "The docs page visualizes routing contracts and budget ownership, not a generated application scene. The production skill remains the decision procedure that chooses the smallest expert skill set and records backend manifests, blockers, ownership maps, and acceptance evidence.",
        "canonicalLabId": "router-manifest-lab"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-choose-skills/examples/router-contract.test.mjs"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "sky-atmosphere-and-haze-lut-aerial-perspective-fixture",
      "skill": "threejs-sky-atmosphere-and-haze",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-sky-atmosphere-and-haze/examples/lut-aerial-perspective"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:d97a565d5514695b7ae3c752514470dd0682c6fa1e05f795dc11146d9286e488",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-sky-atmosphere-and-haze/examples/lut-aerial-perspective"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "sky-atmosphere-haze-demo",
      "title": "Atmosphere And Haze Stack",
      "skill": "threejs-sky-atmosphere-and-haze",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/sky-atmosphere-haze-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "no-haze",
        "lut-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/validation.js",
      "sourceHash": "sha256:61cce1f93d01278d105b77547a037caf639b32fc5fa76d6a5f5e13e56bc4a290",
      "proxyStatus": {
        "limitation": "The docs page uses procedural sky bands and haze layers for direct interaction. The production skill remains compute-generated transmittance, multiscatter, sky-view, and aerial-perspective LUT/froxel products.",
        "canonicalLabId": "webgpu-lut-atmosphere"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "space-generated-starfields",
      "title": "Curved-Ray Starfield Preview",
      "skill": "threejs-black-holes-and-space-effects",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/space-generated-starfields/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "no-lens",
        "star-debug"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-black-holes-and-space-effects/examples/tsl-curved-ray run validate:generated-assets",
      "sourceHash": "sha256:513fd70c0595a2c92e34333f4f8ce06b527e03da729dfb423e8387cea5ccda9e",
      "proxyStatus": {
        "limitation": "Generated star tiles are distant/background-tier inputs. The production space path remains bounded adaptive ray integration and final-direction environment lookup.",
        "canonicalLabId": "tsl-curved-ray"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "spectral-ocean-hybrid-clear-water-ocean-fixture",
      "skill": "threejs-spectral-ocean",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-spectral-ocean/examples/hybrid-clear-water-ocean"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:c53a1535b83359c5116a6d1713d0fcf95cf69415e5dd85ee0852624013cb7eef",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-spectral-ocean/examples/hybrid-clear-water-ocean"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "spectral-ocean-spectral-cascade-ocean-fixture",
      "skill": "threejs-spectral-ocean",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-spectral-ocean/examples/spectral-cascade-ocean"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:279163a0ff01f7577f395a2d767b6830a6d7c91d70bc7fa51449573694e4a573",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-spectral-ocean/examples/spectral-cascade-ocean"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "spectral-ocean-stylized-above-below-ocean-fixture",
      "skill": "threejs-spectral-ocean",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-spectral-ocean/examples/stylized-above-below-ocean"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:1bc6ecb73282caa6a446b186a8fc22abaf56e9cdb69b186825ffe3f285771b87",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-spectral-ocean/examples/stylized-above-below-ocean"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "structured-ash-growth",
      "title": "Native WebGPU Structured Ash Growth",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/structured-ash-growth/browser-lab.js",
        "threejs-procedural-vegetation/examples/structured-ash-growth/ash-scene.js",
        "threejs-procedural-vegetation/examples/structured-ash-growth/tree-system.js",
        "threejs-procedural-vegetation/examples/structured-ash-growth/route-contract.js"
      ],
      "browserEntry": "threejs-procedural-vegetation/examples/structured-ash-growth/index.html",
      "publishPath": "/demos/structured-ash-growth/",
      "scenarios": [
        {
          "id": "ash-contract",
          "route": "/demos/structured-ash-growth/?scenario=ash-contract",
          "startup": {
            "scenario": "ash-contract"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ash-forest",
          "route": "/demos/structured-ash-growth/?scenario=ash-forest",
          "startup": {
            "scenario": "ash-forest"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "structured-growth",
          "route": "/demos/structured-ash-growth/?scenario=structured-growth",
          "startup": {
            "scenario": "structured-growth"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "leaf-origins-and-normals",
          "route": "/demos/structured-ash-growth/?scenario=leaf-origins-and-normals",
          "startup": {
            "scenario": "leaf-origins-and-normals"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "forest-storage-and-lod",
          "route": "/demos/structured-ash-growth/?scenario=forest-storage-and-lod",
          "startup": {
            "scenario": "forest-storage-and-lod"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "vegetation-shadow-parity",
          "route": "/demos/structured-ash-growth/?scenario=vegetation-shadow-parity",
          "startup": {
            "scenario": "vegetation-shadow-parity"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "structured-growth",
          "route": "/demos/structured-ash-growth/mechanism/structured-growth/",
          "startup": {
            "scenario": "structured-growth",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "leaf-origins-and-normals",
          "route": "/demos/structured-ash-growth/mechanism/leaf-origins-and-normals/",
          "startup": {
            "scenario": "leaf-origins-and-normals",
            "mode": "leaf-origins"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "forest-storage-and-lod",
          "route": "/demos/structured-ash-growth/mechanism/forest-storage-and-lod/",
          "startup": {
            "scenario": "forest-storage-and-lod",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "vegetation-shadow-parity",
          "route": "/demos/structured-ash-growth/mechanism/vegetation-shadow-parity/",
          "startup": {
            "scenario": "vegetation-shadow-parity",
            "mode": "wind-displacement"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "growth/hero",
          "targetClass": "Foreground Ash fidelity contract; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 2,
              "unit": "ratio",
              "label": "Authored",
              "source": "growth hero route"
            }
          },
          "mechanismLimits": {
            "foregroundTrees": {
              "value": 1,
              "unit": "trees",
              "label": "Gated",
              "source": "Ash named fixture"
            }
          },
          "resourceLimits": {
            "branchVertices": {
              "value": 6639,
              "unit": "vertices",
              "label": "Gated",
              "source": "Ash legacy-fidelity contract"
            },
            "leafVertices": {
              "value": 21760,
              "unit": "vertices",
              "label": "Gated",
              "source": "Ash legacy-fidelity contract"
            }
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "exact Ash topology",
            "terminal continuations",
            "rooted leaf wind",
            "single tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "growth/forest",
          "targetClass": "Storage-instanced named forest fixture; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "growth forest route"
            }
          },
          "mechanismLimits": {
            "backgroundTrees": {
              "value": 100,
              "unit": "trees",
              "label": "Gated",
              "source": "Ash named fixture"
            },
            "lodBands": {
              "value": 2,
              "unit": "bands",
              "label": "Authored",
              "source": "storage forest compiler"
            }
          },
          "resourceLimits": {
            "drawCount": {
              "value": 4,
              "unit": "draws",
              "label": "Gated",
              "source": "two material draws per LOD band"
            },
            "instanceStorage": {
              "value": 3200,
              "unit": "bytes",
              "label": "Derived",
              "source": "100*2 vec4*16 bytes"
            }
          },
          "degradationFromPrevious": [
            "instance shared topology",
            "split background into two LOD bands"
          ],
          "preservedInvariants": [
            "Ash topology",
            "storage-backed transforms and phase",
            "rooted wind",
            "four forest draws"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "growth/background",
          "targetClass": "Background-only storage forest fixture; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "growth background route"
            }
          },
          "mechanismLimits": {
            "foregroundTrees": {
              "value": 0,
              "unit": "trees",
              "label": "Derived",
              "source": "background route visibility"
            },
            "backgroundTrees": {
              "value": 100,
              "unit": "trees",
              "label": "Gated",
              "source": "Ash named fixture"
            }
          },
          "resourceLimits": {
            "drawCount": {
              "value": 4,
              "unit": "draws",
              "label": "Gated",
              "source": "two material draws per LOD band"
            }
          },
          "degradationFromPrevious": [
            "remove foreground tree submission"
          ],
          "preservedInvariants": [
            "storage-backed transforms and phase",
            "rooted wind",
            "four forest draws"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "branch-levels",
        "continuations",
        "child-slots",
        "angular-slots",
        "leaf-origins",
        "bark-uv-checker",
        "wind-displacement"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        36330
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer.backend.isWebGPUBackend after renderer.init",
          "status": "incomplete"
        },
        {
          "id": "storage-instancing",
          "required": true,
          "evidence": "AshForestTransform and AshForestTintPhase storage attributes",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "render-target-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "exact-ash-contract",
          "required": true,
          "evidence": "verify-ash-contract.js",
          "status": "incomplete"
        },
        {
          "id": "shadow-parity",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run check",
        "test": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run validate:unit",
        "mutations": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run test:mutations",
        "capture": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-vegetation/examples/structured-ash-growth run validate:full"
      },
      "sourceHash": "sha256:047eef14e678046964839d0403d5d409e7604613b720c07c4d47b89e2b4c2509",
      "proxyStatus": null,
      "notes": [
        "Status remains incomplete until native-WebGPU images, shadow-atlas parity, lifecycle, and timing evidence are captured.",
        "The background route uses storage-instanced full topology; impostor acceptance remains pending."
      ],
      "sourceHashInputs": [
        "labs/runtime/strict-lab-controller.mjs",
        "threejs-procedural-vegetation/assets/structured-ash-growth/ash.png",
        "threejs-procedural-vegetation/assets/structured-ash-growth/bark-color.jpg",
        "threejs-procedural-vegetation/assets/structured-ash-growth/bark-normal.jpg",
        "threejs-procedural-vegetation/assets/structured-ash-growth/bark-roughness.jpg",
        "threejs-procedural-vegetation/examples/structured-ash-growth"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "tsl-curved-ray",
      "skill": "threejs-black-holes-and-space-effects",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-lab.mjs",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-transfer-stage.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-gpu-probes.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-integrators.js",
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/curved-ray-accretion.js"
      ],
      "browserEntry": "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/index.html",
      "publishPath": "/demos/tsl-curved-ray/",
      "scenarios": [
        {
          "id": "accretion-disk",
          "route": "mechanism/accretion-disk/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ellis-wormhole",
          "route": "mechanism/ellis-wormhole/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "schwarzschild-lensing",
          "route": "mechanism/schwarzschild-lensing/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "integration-convergence",
          "route": "mechanism/integration-convergence/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "temporal-reconstruction",
          "route": "mechanism/temporal-reconstruction/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "lens-cache",
          "route": "mechanism/lens-cache/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "accretion-disk",
          "route": "mechanism/accretion-disk",
          "startup": {
            "scenario": "accretion-disk"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ellis-wormhole",
          "route": "mechanism/ellis-wormhole",
          "startup": {
            "scenario": "ellis-wormhole"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "schwarzschild-lensing",
          "route": "mechanism/schwarzschild-lensing",
          "startup": {
            "scenario": "schwarzschild-lensing"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "integration-convergence",
          "route": "mechanism/integration-convergence",
          "startup": {
            "scenario": "integration-convergence"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "temporal-reconstruction",
          "route": "mechanism/temporal-reconstruction",
          "startup": {
            "scenario": "temporal-reconstruction"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "lens-cache",
          "route": "mechanism/lens-cache",
          "startup": {
            "scenario": "lens-cache"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "current-adapter authored shot",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "effectScale": 0.5,
            "cacheExtent": [
              512,
              512
            ]
          },
          "mechanismLimits": {
            "artisticMaxSteps": 160,
            "opacityCutoff": 0.01
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "bounded miss rejection",
            "exact step cap",
            "termination classes",
            "linear HDR transfer"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "standard",
          "targetClass": "current-adapter authored shot",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "effectScale": 0.5,
            "cacheExtent": [
              256,
              256
            ]
          },
          "mechanismLimits": {
            "artisticMaxSteps": 96,
            "opacityCutoff": 0.03
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "lower bounded integration cap",
            "smaller direction cache"
          ],
          "preservedInvariants": [
            "bounded miss rejection",
            "exact step cap",
            "termination classes",
            "linear HDR transfer"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "background",
          "targetClass": "current-adapter authored shot",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "effectScale": 0.25,
            "cacheExtent": [
              128,
              128
            ]
          },
          "mechanismLimits": {
            "artisticMaxSteps": 48,
            "opacityCutoff": 0.03
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "quarter-scale effect",
            "lower integration cap"
          ],
          "preservedInvariants": [
            "bounded miss rejection",
            "exact step cap",
            "termination classes",
            "linear HDR transfer"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "distant",
          "targetClass": "current-adapter authored approximation",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "effectScale": 0.25,
            "cacheExtent": [
              128,
              128
            ]
          },
          "mechanismLimits": {
            "artisticMaxSteps": 16,
            "opacityCutoff": 0.05
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "distant authored representation",
            "minimum optional numerical detail"
          ],
          "preservedInvariants": [
            "bounded miss rejection",
            "exact step cap",
            "termination classes",
            "single output owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "step-count",
        "termination",
        "bent-direction"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "webgpu-backend",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-texture",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "compute",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "transfer-lut-sampled",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "direct-metric-probe-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "cache-compute-dispatched",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "angular-cache-invalidation",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "world-position-temporal-reprojection",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "temporal-reset-matches-fresh",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "render-target-output",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-black-holes-and-space-effects/examples/tsl-curved-ray/space-integrators.test.mjs",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:88f02b547cf8c5ad93a38e88b1a3bc1fe8de1185524820c282eec39e9bc3bde8",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-black-holes-and-space-effects/examples/tsl-curved-ray"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "tsl-procedural-pbr",
      "skill": "threejs-procedural-materials",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-materials/examples/tsl-procedural-pbr"
      ],
      "browserEntry": "threejs-procedural-materials/examples/tsl-procedural-pbr/index.html",
      "publishPath": "/demos/tsl-procedural-pbr/",
      "scenarios": [
        {
          "id": "pbr-identity",
          "route": "/demos/tsl-procedural-pbr/mechanism/pbr-identity/",
          "startup": {
            "scenario": "pbr-identity"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "specular-aa-and-filtering",
          "route": "/demos/tsl-procedural-pbr/mechanism/specular-aa-and-filtering/",
          "startup": {
            "scenario": "specular-aa-and-filtering"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "atlas-array-and-triplanar",
          "route": "/demos/tsl-procedural-pbr/mechanism/atlas-array-and-triplanar/",
          "startup": {
            "scenario": "atlas-array-and-triplanar"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "instanced-dissolve",
          "route": "/demos/tsl-procedural-pbr/mechanism/instanced-dissolve/",
          "startup": {
            "scenario": "instanced-dissolve"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shadow-parity",
          "route": "/demos/tsl-procedural-pbr/mechanism/shadow-parity/",
          "startup": {
            "scenario": "shadow-parity"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "wet-rock-and-occlusion",
          "route": "/demos/tsl-procedural-pbr/mechanism/wet-rock-and-occlusion/",
          "startup": {
            "scenario": "wet-rock-and-occlusion"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "pbr-identity",
          "route": "/demos/tsl-procedural-pbr/mechanism/pbr-identity/",
          "startup": {
            "scenario": "pbr-identity"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "specular-aa-and-filtering",
          "route": "/demos/tsl-procedural-pbr/mechanism/specular-aa-and-filtering/",
          "startup": {
            "scenario": "specular-aa-and-filtering"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "atlas-array-and-triplanar",
          "route": "/demos/tsl-procedural-pbr/mechanism/atlas-array-and-triplanar/",
          "startup": {
            "scenario": "atlas-array-and-triplanar"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "instanced-dissolve",
          "route": "/demos/tsl-procedural-pbr/mechanism/instanced-dissolve/",
          "startup": {
            "scenario": "instanced-dissolve"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shadow-parity",
          "route": "/demos/tsl-procedural-pbr/mechanism/shadow-parity/",
          "startup": {
            "scenario": "shadow-parity"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "wet-rock-and-occlusion",
          "route": "/demos/tsl-procedural-pbr/mechanism/wet-rock-and-occlusion/",
          "startup": {
            "scenario": "wet-rock-and-occlusion"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current-adapter close inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 2,
            "bloomScale": 0.5
          },
          "mechanismLimits": {
            "normalStrength": 1,
            "varianceScale": 1
          },
          "resourceLimits": {
            "validationMrtAttachments": 7,
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "PBR identity",
            "shared causes",
            "dissolve parity",
            "color-space ownership"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current-adapter authored workload",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1.5,
            "bloomScale": 0.33
          },
          "mechanismLimits": {
            "normalStrength": 0.8,
            "varianceScale": 1
          },
          "resourceLimits": {
            "validationMrtAttachments": 7,
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "reduce DPR cap",
            "reduce bloom resolution",
            "attenuate micro-normal amplitude"
          ],
          "preservedInvariants": [
            "PBR identity",
            "shared causes",
            "dissolve parity",
            "color-space ownership"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mobile",
          "targetClass": "native-WebGPU minimum correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1,
            "bloomScale": 0.25
          },
          "mechanismLimits": {
            "normalStrength": 0.55,
            "varianceScale": 1.15
          },
          "resourceLimits": {
            "validationMrtAttachments": 7,
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "reduce DPR cap",
            "reduce bloom resolution",
            "further attenuate unresolved normal detail"
          ],
          "preservedInvariants": [
            "PBR identity",
            "shared causes",
            "dissolve parity",
            "color-space ownership"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "raw-emissive",
        "bloom-only",
        "material-albedo",
        "material-params",
        "material-normal",
        "material-footprint",
        "material-normal-variance",
        "roughness-aa",
        "normal-variance",
        "dissolve",
        "triplanar-weights"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "node-material",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mrt",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "texture-array",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "shadow-depth-texture",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "material-channel-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "atlas-gutter-mip-runtime",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "dissolve-shadow-atlas-parity",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "supersampled-specular-error",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-materials/examples/tsl-procedural-pbr/validate-procedural-pbr.mjs",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:6b8c319820150ebd12ca802aa3e10575b13de28c8ce148712f3883bb3c77cf50",
      "proxyStatus": null,
      "sourceHashInputs": [
        "labs/runtime/aligned-readback.mjs",
        "threejs-procedural-materials/assets/generated-variants/lava-cause-a.png",
        "threejs-procedural-materials/assets/generated-variants/lava-cause-b.png",
        "threejs-procedural-materials/assets/generated-variants/lava-cause-c.png",
        "threejs-procedural-materials/examples/tsl-procedural-pbr"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "vegetation-generated-meadow-density",
      "title": "Meadow Density Placement",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/webgpu-dense-grass",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/vegetation-generated-meadow-density/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "density-debug",
        "low-lod"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run validate:generated-assets",
      "sourceHash": "sha256:e9eeaa8b8624b2388316aac1d3ae6938580b8e3e28ed019c512ff40a3746389e",
      "proxyStatus": {
        "limitation": "Generated meadow maps are reduced-tier diagnostic inputs. The production vegetation path remains chunked compute/storage instance data, patch culling, and rooted wind.",
        "canonicalLabId": "webgpu-dense-grass"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "visual-validation-harness-demo",
      "title": "Validation Evidence Harness",
      "skill": "threejs-visual-validation",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-visual-validation/examples/webgpu-validation-harness",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/visual-validation-harness-demo/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "diagnostics",
        "bundle"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "node threejs-visual-validation/examples/webgpu-validation-harness/src/validate.js",
      "sourceHash": "sha256:4163ff796a28cd7a092f78fe695a8272c5d8872f8fd24246b24212d9b8f1d5ce",
      "proxyStatus": {
        "limitation": "The docs page visualizes the evidence bundle and diagnostic obligations; the canonical harness writes the JSON/PNG artifact contract. Production validation still requires rendered captures, target/storage inventories, timing labels, leak loops, and explicit accept/withhold decisions.",
        "canonicalLabId": "webgpu-validation-harness"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-visual-validation/examples/webgpu-validation-harness"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "volumetric-clouds-deprecated-weather-volume-clouds-fixture",
      "skill": "threejs-volumetric-clouds",
      "threeRevision": "0.185.1",
      "kind": "legacy-deprecated",
      "status": "secondary",
      "canonicalSource": [
        "threejs-volumetric-clouds/examples/deprecated-weather-volume-clouds"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:e614148807546567ed01a40ce50ad32517584de33af2ba7ae5424f575ddd4843",
      "proxyStatus": {
        "limitation": "Legacy or deprecated source retained for reference; it cannot satisfy canonical acceptance.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-volumetric-clouds/examples/deprecated-weather-volume-clouds"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "water-generated-caustics",
      "title": "Bounded Water Caustic Projection",
      "skill": "threejs-water-optics",
      "threeRevision": "0.185.1",
      "kind": "generated-asset-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-water-optics/examples/webgpu-bounded-water",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/water-generated-caustics/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "final",
        "no-caustics",
        "diagnostic"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-water-optics/examples/webgpu-bounded-water run validate:generated-assets",
      "sourceHash": "sha256:1935fb54daf784b1640d742223e329da03b9fdfd52dc904df3df7a3afe798192",
      "proxyStatus": {
        "limitation": "Generated caustic textures are reduced-tier source data. The production path remains compute differential-area caustics in the water skill.",
        "canonicalLabId": "webgpu-bounded-water"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-water-optics/examples/webgpu-bounded-water"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "water-integration-surface",
      "title": "Water Integration Surface",
      "skill": "threejs-water-optics",
      "threeRevision": "0.185.1",
      "kind": "proxy-demo",
      "status": "secondary",
      "canonicalSource": [
        "threejs-water-optics/EXPERIMENTAL/water-integration-surface",
        "scripts/provider-demos.mjs",
        "labs/provider-proxies/provider-demo.mjs",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/generated-variants"
      ],
      "browserEntry": null,
      "publishPath": "/demos/water-integration-surface/",
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [
        "live",
        "preset-switch",
        "sync-tick"
      ],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-water-optics/EXPERIMENTAL/water-integration-surface run validate",
      "sourceHash": "sha256:4b2959fc6e37bf7f39eadb3d08ddac108bb6d9418bc4e47ba4a6c0f2d0d1f8f8",
      "proxyStatus": {
        "limitation": "The mask registry is intentionally shown as incomplete until a screen-space mask texture and water-material hook are implemented. The host project owns post-processing, transparent ordering, and final output conversion.",
        "canonicalLabId": "webgpu-bounded-water"
      },
      "sourceHashInputs": [
        "labs/provider-proxies/generated-variants",
        "labs/provider-proxies/provider-demo.css",
        "labs/provider-proxies/provider-demo.mjs",
        "scripts/provider-demos.mjs",
        "threejs-water-optics/EXPERIMENTAL/water-integration-surface"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "water-optics-analytic-wave-optics-fixture",
      "skill": "threejs-water-optics",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-water-optics/examples/analytic-wave-optics"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:eee97d35f6b41be4e5393f8e1de50e0f106d5f8db457a7cb8a04f9855082e4a5",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-water-optics/examples/analytic-wave-optics"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "water-optics-interactive-pool-volume-fixture",
      "skill": "threejs-water-optics",
      "threeRevision": "0.185.1",
      "kind": "contract-fixture",
      "status": "secondary",
      "canonicalSource": [
        "threejs-water-optics/examples/interactive-pool-volume"
      ],
      "browserEntry": null,
      "publishPath": null,
      "scenarios": [],
      "mechanisms": [],
      "tiers": [],
      "modes": [],
      "cameras": [],
      "seeds": [],
      "capabilityRequirements": [],
      "runtimeProof": [],
      "evidenceContract": "none",
      "evidenceBundle": null,
      "validationCommand": null,
      "sourceHash": "sha256:8b59e98452a54760841879b912e5603713c4824cc86cc4571ea4e030d83d1242",
      "proxyStatus": {
        "limitation": "Source or contract fixture without an accepted native-WebGPU browser/evidence contract.",
        "canonicalLabId": null
      },
      "sourceHashInputs": [
        "threejs-water-optics/examples/interactive-pool-volume"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "weathered-world",
      "title": "Weathered World",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "integration-labs/weathered-world"
      ],
      "browserEntry": "integration-labs/weathered-world/index.html",
      "publishPath": "/demos/weathered-world/",
      "scenarios": [
        {
          "id": "world",
          "startup": {
            "tier": "balanced",
            "mode": "final",
            "camera": "horizon",
            "seed": 1,
            "time": 0
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "shared-world-units",
          "route": "mechanism/shared-world-units",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-weather-envelope",
          "route": "mechanism/shared-weather-envelope",
          "startup": {
            "mode": "weather-envelope"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "atmosphere-cloud-hdr",
          "route": "mechanism/atmosphere-cloud-hdr",
          "startup": {
            "mode": "atmosphere"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ocean-bounded-water-ownership",
          "route": "mechanism/ocean-bounded-water-ownership",
          "startup": {
            "mode": "ocean"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cloud-opaque-shadow-separation",
          "route": "mechanism/cloud-opaque-shadow-separation",
          "startup": {
            "mode": "shadow-contribution"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "owner-graph",
          "route": "mechanism/owner-graph",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "60-hz-flagship",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz target; current-adapter timing pending"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "cloudScale": 0.5,
            "dprCap": 2
          },
          "mechanismLimits": {
            "atmosphere": "ultra",
            "clouds": "ultra",
            "ocean": "ultra",
            "boundedWater": "ultra",
            "weather": "high",
            "vegetation": "ultra",
            "shadowMapSize": 2048
          },
          "resourceLimits": {
            "status": "logical inventory implemented; physical inventory unmeasured"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "one unit system",
            "one weather object",
            "separate water domains",
            "separate shadow domains",
            "one final owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "60-hz-balanced",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz target; current-adapter timing pending"
          },
          "resolutionPolicy": {
            "sceneScale": 1,
            "cloudScale": 0.5,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "atmosphere": "high",
            "clouds": "high",
            "ocean": "high",
            "boundedWater": "high",
            "weather": "medium",
            "vegetation": "high",
            "shadowMapSize": 1024
          },
          "resourceLimits": {
            "status": "logical inventory implemented; physical inventory unmeasured"
          },
          "degradationFromPrevious": [
            "reduce optional samples and texture dimensions",
            "reduce shadow and vegetation detail"
          ],
          "preservedInvariants": [
            "one unit system",
            "one weather object",
            "separate water domains",
            "separate shadow domains",
            "one final owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "60-hz-budgeted",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "integration 60 Hz target; current-adapter timing pending"
          },
          "resolutionPolicy": {
            "sceneScale": 0.85,
            "cloudScale": 0.25,
            "dprCap": 1
          },
          "mechanismLimits": {
            "atmosphere": "mobile",
            "clouds": "default",
            "ocean": "medium",
            "boundedWater": "medium",
            "weather": "budgeted",
            "vegetation": "medium",
            "shadowMapSize": 512
          },
          "resourceLimits": {
            "status": "logical inventory implemented; physical inventory unmeasured"
          },
          "degradationFromPrevious": [
            "lower post resolution",
            "reduce optional samples",
            "reduce valid update cadence",
            "reduce counts and LOD",
            "disable optional decoration"
          ],
          "preservedInvariants": [
            "one unit system",
            "one weather object",
            "separate water domains",
            "separate shadow domains",
            "one final owner",
            "core physical contracts"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "weather-envelope",
        "atmosphere",
        "cloud-optical-depth",
        "ocean",
        "bounded-water",
        "precipitation",
        "wetness",
        "snow",
        "vegetation-wind",
        "shadow-contribution",
        "owner-graph"
      ],
      "cameras": [
        "orbit",
        "horizon",
        "surface"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer backend must prove isWebGPUBackend === true",
          "status": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "required": true,
          "evidence": "required before any 60 Hz performance claim",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "single-owner-graph",
          "required": true,
          "evidence": "runtime graph and mutation suite implemented; browser evidence pending",
          "status": "incomplete"
        },
        {
          "id": "world-signal-readback",
          "required": true,
          "evidence": "aligned render-target readback hook implemented; accepted bundle absent",
          "status": "incomplete"
        },
        {
          "id": "atmosphere-cloud-mechanism",
          "required": true,
          "evidence": "corrected source stages require native-WebGPU readback and oracle comparison",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "lifecycle-loop",
          "required": true,
          "evidence": "50-100 cycle evidence not captured",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix integration-labs/weathered-world run validate:quick",
      "commands": {
        "check": "npm --prefix integration-labs/weathered-world run check",
        "test": "npm --prefix integration-labs/weathered-world run validate:unit",
        "mutations": "npm --prefix integration-labs/weathered-world run test:mutations",
        "capture": "npm --prefix integration-labs/weathered-world run capture",
        "validateArtifacts": "npm --prefix integration-labs/weathered-world run validate:artifacts",
        "validateQuick": "npm --prefix integration-labs/weathered-world run validate:quick",
        "validateFull": "npm --prefix integration-labs/weathered-world run validate:full"
      },
      "sourceHash": "sha256:c1dccbab60bc81921b3f9271c521b595fce85b0dfe6dd1504a2f12728b8a909a",
      "proxyStatus": null,
      "notes": [
        "The atmosphere and cloud stages now contain the corrected live-input, bounded-domain, persistent-history, sampled-depth, radiometric, and source-level composition paths.",
        "The planet stage uses the canonical quadtree patch mesh and field-atlas integration adapter, translated into the shared local tangent frame.",
        "Current-adapter timestamps, visual-error evidence, and 50-cycle lifecycle evidence remain insufficient."
      ],
      "sourceHashInputs": [
        "integration-labs/weathered-world",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/integration-adapter.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/patch-compute.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-config.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-field-atlas.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-field-constants.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-fields.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-mesh.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-quadtree.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-tiers.js",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-a.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-b.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-c.png",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/dense-grass-system.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/integration-adapter.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/precipitation-system.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/weather-webgpu-lab.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/atmosphere-config.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/runtime-state.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/webgpu-lut-atmosphere.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/compute-kernels.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/constants.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/cpu-water-height.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/integration-stage.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/ocean-nodes.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/ocean-system.js",
        "threejs-spectral-ocean/examples/webgpu-fft-ocean/validation.js",
        "threejs-visual-validation/examples/webgpu-validation-harness/src/readback.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-composite.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-config.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-history.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-nodes.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-shadows.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/webgpu-weather-volume-clouds.js",
        "threejs-water-optics/examples/webgpu-bounded-water/constants.js",
        "threejs-water-optics/examples/webgpu-bounded-water/cpu-water-height.js",
        "threejs-water-optics/examples/webgpu-bounded-water/integration-stage.js",
        "threejs-water-optics/examples/webgpu-bounded-water/webgpu-bounded-water.js"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-bounded-water",
      "skill": "threejs-water-optics",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-water-optics/examples/webgpu-bounded-water",
        "scripts/capture-lab-browser.mjs",
        "scripts/lib/evidence-v2.mjs"
      ],
      "browserEntry": "threejs-water-optics/examples/webgpu-bounded-water/index.html",
      "publishPath": "/demos/webgpu-bounded-water/",
      "scenarios": [
        {
          "id": "interactive-bounded-pool",
          "route": "/demos/webgpu-bounded-water/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "heightfield-simulation",
          "route": "/demos/webgpu-bounded-water/mechanism/heightfield-simulation/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "drops-and-object-ripples",
          "route": "/demos/webgpu-bounded-water/mechanism/drops-and-object-ripples/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "differential-caustics",
          "route": "/demos/webgpu-bounded-water/mechanism/differential-caustics/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "refraction-and-absorption",
          "route": "/demos/webgpu-bounded-water/mechanism/refraction-and-absorption/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "fresnel-and-tir",
          "route": "/demos/webgpu-bounded-water/mechanism/fresnel-and-tir/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "buoyancy-spray-and-masks",
          "route": "/demos/webgpu-bounded-water/mechanism/buoyancy-spray-and-masks/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "simulationResolution": 512,
            "meshSegments": 192,
            "dpr": 1
          },
          "mechanismLimits": {
            "maxSubsteps": 4,
            "analyticBands": 5,
            "microBands": 4
          },
          "resourceLimits": {
            "derivedPersistentGpuBytes": 9437344,
            "eventSnapshotBytes": 64,
            "gpuProbeBytes": 64
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "anisotropic CFL ≤ 0.85",
            "fixed-step event semantics",
            "exact analytic+heightfield differential",
            "side-aware exact Fresnel",
            "source-driven receiver deposition"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "simulationResolution": 256,
            "meshSegments": 128,
            "dpr": 1
          },
          "mechanismLimits": {
            "maxSubsteps": 3,
            "analyticBands": 4,
            "microBands": 3
          },
          "resourceLimits": {
            "derivedPersistentGpuBytes": 2359456,
            "eventSnapshotBytes": 64,
            "gpuProbeBytes": 64
          },
          "degradationFromPrevious": [
            "simulation 512→256",
            "mesh 192→128",
            "max substeps 4→3",
            "analytic bands 5→4",
            "micro bands 4→3"
          ],
          "preservedInvariants": [
            "anisotropic CFL ≤ 0.85",
            "fixed-step event semantics",
            "exact analytic+heightfield differential",
            "side-aware exact Fresnel",
            "source-driven receiver deposition"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "simulationResolution": 192,
            "meshSegments": 96,
            "dpr": 1
          },
          "mechanismLimits": {
            "maxSubsteps": 3,
            "analyticBands": 3,
            "microBands": 2
          },
          "resourceLimits": {
            "derivedPersistentGpuBytes": 1327264,
            "eventSnapshotBytes": 64,
            "gpuProbeBytes": 64
          },
          "degradationFromPrevious": [
            "simulation 256→192",
            "mesh 128→96",
            "analytic bands 4→3",
            "micro bands 3→2"
          ],
          "preservedInvariants": [
            "anisotropic CFL ≤ 0.85",
            "fixed-step event semantics",
            "exact analytic+heightfield differential",
            "side-aware exact Fresnel",
            "source-driven receiver deposition"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "low",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "simulationResolution": 96,
            "meshSegments": 48,
            "dpr": 1
          },
          "mechanismLimits": {
            "maxSubsteps": 2,
            "analyticBands": 2,
            "microBands": 0
          },
          "resourceLimits": {
            "derivedPersistentGpuBytes": 331936,
            "eventSnapshotBytes": 64,
            "gpuProbeBytes": 64
          },
          "degradationFromPrevious": [
            "simulation 192→96",
            "mesh 96→48",
            "max substeps 3→2",
            "analytic bands 3→2",
            "micro bands 2→0"
          ],
          "preservedInvariants": [
            "anisotropic CFL ≤ 0.85",
            "fixed-step event semantics",
            "exact analytic+heightfield differential",
            "side-aware exact Fresnel",
            "source-driven receiver deposition"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "height",
        "velocity",
        "normals",
        "caustics",
        "fresnel-and-tir",
        "absorption",
        "optical-transport-unavailable"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "heightfield-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "receiver-caustic-energy-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "opaque-color-depth-without-water",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "gpu-mutation-probes",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "render-target-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node validate-water-contracts.mjs",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:9995f2b2ec9854d4653c2d23486bcaf2e441bb742f5121f7f5989b473ebb0265",
      "proxyStatus": null,
      "notes": [
        "browser WebGPU execution and state readback are not captured",
        "receiver-space atomic caustic energy closure is not captured",
        "depth-reconstructed refracted-ray GPU validation and manual visual inspection are not captured",
        "50-cycle lifecycle evidence is not captured",
        "current-adapter GPU timing is not measured"
      ],
      "sourceHashInputs": [
        "labs/runtime/aligned-readback.mjs",
        "scripts/capture-lab-browser.mjs",
        "scripts/lib/evidence-v2.mjs",
        "scripts/lib/lab-registry.mjs",
        "scripts/lib/png-rgba.mjs",
        "scripts/lib/vite-lab-config.mjs",
        "scripts/provider-demos.mjs",
        "threejs-water-optics/examples/webgpu-bounded-water"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-cached-clipmap-shadow",
      "title": "Native WebGPU Cached Clipmap Shadow Lab",
      "skill": "threejs-scalable-real-time-shadows",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow"
      ],
      "browserEntry": "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/canonical.html",
      "publishPath": "/demos/webgpu-cached-clipmap-shadow/",
      "scenarios": [
        {
          "id": "bounded-baseline",
          "startup": {
            "scenario": "bounded-baseline",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "depth-span",
          "startup": {
            "scenario": "depth-span",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "fixed-footprint",
          "startup": {
            "scenario": "fixed-footprint",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "persistent-coverage",
          "startup": {
            "scenario": "persistent-coverage",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "slow-subtexel-pan",
          "startup": {
            "scenario": "slow-subtexel-pan",
            "tier": "high",
            "mode": "level-centers"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bias-sweep",
          "startup": {
            "scenario": "bias-sweep",
            "tier": "high",
            "mode": "shadow-contribution"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "swept-caster-invalidation",
          "startup": {
            "scenario": "swept-caster-invalidation",
            "tier": "high",
            "mode": "level-validity"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "age-priority-round-robin",
          "startup": {
            "scenario": "age-priority-round-robin",
            "tier": "high",
            "mode": "scheduler"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "alpha-displaced-instanced-morph",
          "startup": {
            "scenario": "alpha-displaced-instanced-morph",
            "tier": "high",
            "mode": "silhouette-parity"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "bounded-shadow",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/bounded-shadow/",
          "startup": {
            "scenario": "bounded-baseline",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "csm",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/csm/",
          "startup": {
            "scenario": "depth-span",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tiled-shadow",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/tiled-shadow/",
          "startup": {
            "scenario": "fixed-footprint",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cached-clipmap",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/cached-clipmap/",
          "startup": {
            "scenario": "persistent-coverage",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "texel-snap-and-pan",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/texel-snap-and-pan/",
          "startup": {
            "scenario": "slow-subtexel-pan",
            "tier": "high",
            "mode": "level-centers"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bias-sweep",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/bias-sweep/",
          "startup": {
            "scenario": "bias-sweep",
            "tier": "high",
            "mode": "shadow-contribution"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "targeted-invalidation",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/targeted-invalidation/",
          "startup": {
            "scenario": "swept-caster-invalidation",
            "tier": "high",
            "mode": "level-validity"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "scheduler-fairness",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/scheduler-fairness/",
          "startup": {
            "scenario": "age-priority-round-robin",
            "tier": "high",
            "mode": "scheduler"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "caster-position-parity",
          "route": "/demos/webgpu-cached-clipmap-shadow/mechanism/caster-position-parity/",
          "startup": {
            "scenario": "alpha-displaced-instanced-morph",
            "tier": "high",
            "mode": "silhouette-parity"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current high-end WebGPU adapter",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "Authored 60 Hz frame allowance; current-adapter timing evidence pending"
          },
          "resolutionPolicy": {
            "width": 1920,
            "height": 1080,
            "dprCap": 2
          },
          "mechanismLimits": {
            "dynamicLevels": 2,
            "updateBudget": 3,
            "correctionBudget": 3,
            "maxCacheAgeFrames": 48
          },
          "resourceLimits": {
            "mapSizes": [
              2048,
              2048,
              1024,
              1024,
              512,
              512,
              512
            ],
            "nominalMemoryGateBytes": 134217728
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "receiver-backed child shadow nodes",
            "stable light basis",
            "correctness invalidation before age refresh",
            "one directional illumination owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current general-purpose WebGPU adapter",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "Authored 60 Hz frame allowance; current-adapter timing evidence pending"
          },
          "resolutionPolicy": {
            "width": 1920,
            "height": 1080,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "dynamicLevels": 2,
            "updateBudget": 2,
            "correctionBudget": 2,
            "maxCacheAgeFrames": 64
          },
          "resourceLimits": {
            "mapSizes": [
              1024,
              1024,
              1024,
              512,
              512,
              512,
              512
            ],
            "nominalMemoryGateBytes": 67108864
          },
          "degradationFromPrevious": [
            "reduce the two finest map dimensions",
            "reduce ordinary and correction update budgets"
          ],
          "preservedInvariants": [
            "receiver-backed child shadow nodes",
            "stable light basis",
            "correctness invalidation before age refresh",
            "one directional illumination owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "reduced",
          "targetClass": "binding and memory constrained WebGPU adapter",
          "frameTargetMs": {
            "value": 16.67,
            "unit": "ms",
            "label": "Gated",
            "source": "Authored 60 Hz frame allowance; target-adapter timing evidence pending"
          },
          "resolutionPolicy": {
            "width": 1280,
            "height": 720,
            "dprCap": 1
          },
          "mechanismLimits": {
            "dynamicLevels": 1,
            "updateBudget": 1,
            "correctionBudget": 1,
            "maxCacheAgeFrames": 96
          },
          "resourceLimits": {
            "mapSizes": [
              512,
              512,
              512,
              256,
              256,
              256,
              256
            ],
            "nominalMemoryGateBytes": 33554432
          },
          "degradationFromPrevious": [
            "halve shadow map dimensions",
            "update one dynamic and one queued level at a time"
          ],
          "preservedInvariants": [
            "receiver-backed child shadow nodes",
            "stable light basis",
            "correctness invalidation before age refresh",
            "one directional illumination owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "shadow-contribution",
        "shadow-depth",
        "level-centers",
        "level-validity",
        "scheduler",
        "silhouette-parity",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "comparison-depth-textures",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "receiver-consumes-committed-levels",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "actual-depth-resource-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "sequential-child-shadow-submissions",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "scheduler-fairness",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "caster-visible-shadow-parity",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/validate-v2.js",
      "commands": {
        "check": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run check",
        "test": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run validate:unit",
        "mutations": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run test:mutations",
        "capture": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run capture",
        "validateArtifacts": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run validate:artifacts",
        "validateQuick": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run validate:quick",
        "validateFull": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow run validate:full"
      },
      "sourceHash": "sha256:ef8576bd7bb49d234967864afbb9638e126f5398b3704015c39f285d14a33281",
      "proxyStatus": null,
      "notes": [
        "The receiver-backed runtime and a real candidate native-WebGPU capture adapter are implemented; accepted numeric ROI, timing, complete resource, and lifecycle evidence is pending.",
        "The retained browser.html subject is a Phase-1 contract fixture and cannot satisfy canonical acceptance."
      ],
      "sourceHashInputs": [
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-camera-rig",
      "skill": "threejs-camera-controls-and-rigs",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraDirectionController.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/CameraRelativeOrigin.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/routeState.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/main.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/browser.mjs",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/mechanism/scale-aware-framing/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/mechanism/handoff-and-replay/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/mechanism/pointer-orbit-and-collision/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/mechanism/floating-origin/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/mechanism/projection-and-depth/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/mechanism/shared-jitter-and-velocity/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/tier/full/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/tier/budgeted/index.html",
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/tier/minimum/index.html"
      ],
      "browserEntry": "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/index.html",
      "publishPath": "/demos/webgpu-camera-rig/",
      "scenarios": [
        {
          "id": "default",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "scale-aware-framing",
          "route": "mechanism/scale-aware-framing/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "handoff-and-replay",
          "route": "mechanism/handoff-and-replay/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "pointer-orbit-and-collision",
          "route": "mechanism/pointer-orbit-and-collision/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "floating-origin",
          "route": "mechanism/floating-origin/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "projection-and-depth",
          "route": "mechanism/projection-and-depth/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-jitter-and-velocity",
          "route": "mechanism/shared-jitter-and-velocity/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "current native-WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 2,
              "unit": "ratio",
              "label": "Authored",
              "source": "camera lab tier"
            }
          },
          "mechanismLimits": {
            "collision": true,
            "thrustLag": true,
            "floatingOrigin": true
          },
          "resourceLimits": {},
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "body-relative basis",
            "one camera owner",
            "one output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "current native-WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "camera lab tier"
            }
          },
          "mechanismLimits": {
            "collision": true,
            "thrustLag": true,
            "floatingOrigin": true
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "lower DPR cap"
          ],
          "preservedInvariants": [
            "body-relative basis",
            "one camera owner",
            "one output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "minimum",
          "targetClass": "current native-WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "camera lab tier"
            }
          },
          "mechanismLimits": {
            "collision": false,
            "thrustLag": false,
            "floatingOrigin": true
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "disable optional collision",
            "disable optional thrust lag",
            "lower DPR cap"
          ],
          "preservedInvariants": [
            "body-relative basis",
            "one camera owner",
            "one output owner",
            "native WebGPU"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "overview",
        "profile",
        "inspection"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-buffer",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mrt-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "origin-storage-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-gpu-timestamp",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/cameraValidation.mjs",
      "commands": {
        "check": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run check",
        "test": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run validate:unit",
        "mutations": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run test:mutations",
        "capture": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run capture",
        "validateArtifacts": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run validate:artifacts",
        "validateQuick": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run validate:quick",
        "validateFull": "npm --prefix threejs-camera-controls-and-rigs/examples/webgpu-camera-rig run validate:full"
      },
      "sourceHash": "sha256:65da557ed0239e743e9d91115cf57a8dd06a29116d833538042104aa486c60e2",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-dense-grass",
      "title": "Native WebGPU Dense Grass",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/browser-lab.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/dense-grass-system.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/integration-adapter.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/route-contract.js"
      ],
      "browserEntry": "threejs-procedural-vegetation/examples/webgpu-dense-grass/index.html",
      "publishPath": "/demos/webgpu-dense-grass/",
      "scenarios": [
        {
          "id": "dense-grass-placement",
          "route": "/demos/webgpu-dense-grass/?scenario=dense-grass-placement",
          "startup": {
            "scenario": "dense-grass-placement"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense-grass-wind-and-trampling",
          "route": "/demos/webgpu-dense-grass/?scenario=dense-grass-wind-and-trampling",
          "startup": {
            "scenario": "dense-grass-wind-and-trampling"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense-grass-lod-and-impostors",
          "route": "/demos/webgpu-dense-grass/?scenario=dense-grass-lod-and-impostors",
          "startup": {
            "scenario": "dense-grass-lod-and-impostors"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "uniform-density",
          "route": "/demos/webgpu-dense-grass/?scenario=uniform-density",
          "startup": {
            "scenario": "uniform-density"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mask-a",
          "route": "/demos/webgpu-dense-grass/?scenario=mask-a",
          "startup": {
            "scenario": "mask-a"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mask-b",
          "route": "/demos/webgpu-dense-grass/?scenario=mask-b",
          "startup": {
            "scenario": "mask-b"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mask-c",
          "route": "/demos/webgpu-dense-grass/?scenario=mask-c",
          "startup": {
            "scenario": "mask-c"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "dense-grass-placement",
          "route": "/demos/webgpu-dense-grass/mechanism/dense-grass-placement/",
          "startup": {
            "scenario": "dense-grass-placement",
            "mode": "density"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense-grass-wind-and-trampling",
          "route": "/demos/webgpu-dense-grass/mechanism/dense-grass-wind-and-trampling/",
          "startup": {
            "scenario": "dense-grass-wind-and-trampling",
            "mode": "wind"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense-grass-lod-and-impostors",
          "route": "/demos/webgpu-dense-grass/mechanism/dense-grass-lod-and-impostors/",
          "startup": {
            "scenario": "dense-grass-lod-and-impostors",
            "mode": "lod"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "dense/ultra",
          "targetClass": "Correctness workload; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 2,
              "unit": "ratio",
              "label": "Authored",
              "source": "dense tier route"
            }
          },
          "mechanismLimits": {
            "patches": {
              "value": 81,
              "unit": "patches",
              "label": "Derived",
              "source": "(2*4+1)^2"
            },
            "bladesPerPatch": {
              "value": 18000,
              "unit": "blades",
              "label": "Authored",
              "source": "denseGrassQualityTiers.ultra"
            }
          },
          "resourceLimits": {
            "bytesPerBlade": {
              "value": 64,
              "unit": "bytes",
              "label": "Derived",
              "source": "four vec4 storage records"
            }
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "native WebGPU",
            "spatially ranked LOD",
            "rooted wind",
            "immutable static storage between streaming events"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense/high",
          "targetClass": "Exact audited dense-high workload; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "dense tier route"
            }
          },
          "mechanismLimits": {
            "patches": {
              "value": 49,
              "unit": "patches",
              "label": "Gated",
              "source": "dense-high acceptance contract"
            },
            "bladesPerPatch": {
              "value": 12000,
              "unit": "blades",
              "label": "Gated",
              "source": "dense-high acceptance contract"
            }
          },
          "resourceLimits": {
            "allocatedBlades": {
              "value": 588000,
              "unit": "blades",
              "label": "Derived",
              "source": "49*12000"
            },
            "bytesPerBlade": {
              "value": 64,
              "unit": "bytes",
              "label": "Gated",
              "source": "dense-high acceptance contract"
            },
            "initDispatches": {
              "value": 49,
              "unit": "dispatches",
              "label": "Gated",
              "source": "one per patch"
            }
          },
          "degradationFromPrevious": [
            "reduce patch radius",
            "reduce blades per patch"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "spatially ranked LOD",
            "rooted wind",
            "one representation per visible patch"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense/medium",
          "targetClass": "Balanced correctness workload; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.25,
              "unit": "ratio",
              "label": "Authored",
              "source": "dense tier route"
            }
          },
          "mechanismLimits": {
            "patches": {
              "value": 25,
              "unit": "patches",
              "label": "Derived",
              "source": "(2*2+1)^2"
            },
            "bladesPerPatch": {
              "value": 8000,
              "unit": "blades",
              "label": "Authored",
              "source": "denseGrassQualityTiers.medium"
            }
          },
          "resourceLimits": {
            "bytesPerBlade": {
              "value": 64,
              "unit": "bytes",
              "label": "Derived",
              "source": "four vec4 storage records"
            }
          },
          "degradationFromPrevious": [
            "reduce patch radius",
            "reduce blades per patch",
            "earlier impostors"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "spatially ranked LOD",
            "rooted wind",
            "bounded touch channel"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dense/low",
          "targetClass": "Minimum native-WebGPU dense workload; target performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "dense tier route"
            }
          },
          "mechanismLimits": {
            "patches": {
              "value": 9,
              "unit": "patches",
              "label": "Derived",
              "source": "(2*1+1)^2"
            },
            "bladesPerPatch": {
              "value": 3000,
              "unit": "blades",
              "label": "Authored",
              "source": "denseGrassQualityTiers.low"
            }
          },
          "resourceLimits": {
            "bytesPerBlade": {
              "value": 64,
              "unit": "bytes",
              "label": "Derived",
              "source": "four vec4 storage records"
            }
          },
          "degradationFromPrevious": [
            "reduce patch radius",
            "reduce blades per patch",
            "larger patches",
            "earlier impostors"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "spatially ranked LOD",
            "rooted wind",
            "bounded touch channel"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "bounds",
        "density",
        "lod",
        "wind"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer.backend.isWebGPUBackend after renderer.init",
          "status": "incomplete"
        },
        {
          "id": "storage-compute",
          "required": true,
          "evidence": "one static placement compute dispatch per patch",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "render-target-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-ledger",
          "required": true,
          "evidence": "LabController.describeResources",
          "status": "incomplete"
        },
        {
          "id": "spatial-lod",
          "required": true,
          "evidence": "validation.js quadrant occupancy gate",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run check",
        "test": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run validate:unit",
        "mutations": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run test:mutations",
        "capture": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-vegetation/examples/webgpu-dense-grass run validate:full"
      },
      "sourceHash": "sha256:6203a4de2601015034bba82f5910ca7997bbfe786526d925290f577ac4839111",
      "proxyStatus": null,
      "notes": [
        "Status remains incomplete until a native-WebGPU v2 evidence bundle is captured on the current adapter.",
        "Generated meadow-density pages remain asset proxies and are not primary evidence."
      ],
      "sourceHashInputs": [
        "labs/runtime/strict-lab-controller.mjs",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-a.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-b.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-c.png",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-exposure-color-pipeline",
      "skill": "threejs-exposure-color-grading",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline"
      ],
      "browserEntry": "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/index.html",
      "publishPath": "/demos/webgpu-exposure-color-pipeline/",
      "scenarios": [
        {
          "id": "emitter",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gray-card",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "swatches",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bright-window",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "masked-ui",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "log-luminance-reduction",
          "route": "mechanism/log-luminance-reduction/",
          "startup": {
            "tier": "balanced-log-reduction",
            "mode": "meter-source",
            "scenario": "emitter"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "histogram-and-percentiles",
          "route": "mechanism/histogram-and-percentiles/",
          "startup": {
            "tier": "full-histogram",
            "mode": "histogram",
            "scenario": "emitter"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "adaptation",
          "route": "mechanism/adaptation/",
          "startup": {
            "tier": "balanced-log-reduction",
            "mode": "adaptation",
            "scenario": "bright-window"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "metering-masks",
          "route": "mechanism/metering-masks/",
          "startup": {
            "tier": "full-histogram",
            "mode": "meter-mask",
            "scenario": "masked-ui"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tone-mapping",
          "route": "mechanism/tone-mapping/",
          "startup": {
            "tier": "balanced-log-reduction",
            "mode": "tone-map",
            "scenario": "swatches"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "lut-grading",
          "route": "mechanism/lut-grading/",
          "startup": {
            "tier": "full-histogram",
            "mode": "lut",
            "scenario": "swatches"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full-histogram",
          "targetClass": "current-adapter correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "meterGrid": [
              64,
              36
            ],
            "lutEdge": 32
          },
          "mechanismLimits": {
            "meter": "histogram-percentile",
            "histogramBins": 64
          },
          "resourceLimits": {
            "storageBytes": 872
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "GPU EV ownership",
            "single tone map",
            "single output transform"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced-log-reduction",
          "targetClass": "current-adapter correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "meterGrid": [
              64,
              36
            ],
            "lutEdge": 32
          },
          "mechanismLimits": {
            "meter": "weighted-log"
          },
          "resourceLimits": {
            "storageBytes": 320
          },
          "degradationFromPrevious": [
            "remove histogram clear/bin/prefix/percentile dispatches"
          ],
          "preservedInvariants": [
            "GPU EV ownership",
            "single tone map",
            "single output transform"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "minimum-fixed-shot",
          "targetClass": "controlled shot",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "meterGrid": null,
            "lutEdge": 32
          },
          "mechanismLimits": {
            "meter": "fixed-shot"
          },
          "resourceLimits": {
            "storageBytes": 320
          },
          "degradationFromPrevious": [
            "disable meter updates",
            "retain authored fixed EV"
          ],
          "preservedInvariants": [
            "single tone map",
            "single output transform"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "meter-source",
        "histogram",
        "adaptation",
        "meter-mask",
        "tone-map",
        "lut"
      ],
      "cameras": [
        "design"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-buffers",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-atomics",
          "required": true,
          "evidence": "required by full-histogram tier",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "compute-readback",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm run validate:full",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:4a896359be4a21d22a8009e04ba9253a95b63168be13916b23420740123381c5",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-fft-ocean",
      "skill": "threejs-spectral-ocean",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-spectral-ocean/examples/webgpu-fft-ocean"
      ],
      "browserEntry": "threejs-spectral-ocean/examples/webgpu-fft-ocean/index.html",
      "publishPath": "/demos/webgpu-fft-ocean/",
      "scenarios": [
        {
          "id": "directional-sea",
          "route": "/demos/webgpu-fft-ocean/",
          "startup": {
            "mode": "final",
            "camera": "design"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "spectrum-and-fft",
          "route": "/demos/webgpu-fft-ocean/mechanism/spectrum-and-fft/",
          "startup": {
            "mode": "spectrum-fft",
            "camera": "design"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "dispersion-and-cascades",
          "route": "/demos/webgpu-fft-ocean/mechanism/dispersion-and-cascades/",
          "startup": {
            "mode": "cascade-bands",
            "camera": "design"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "derivatives-and-jacobian",
          "route": "/demos/webgpu-fft-ocean/mechanism/derivatives-and-jacobian/",
          "startup": {
            "mode": "jacobian",
            "camera": "near"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "whitecaps-and-foam",
          "route": "/demos/webgpu-fft-ocean/mechanism/whitecaps-and-foam/",
          "startup": {
            "mode": "foam",
            "camera": "near"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "above-and-below-surface",
          "route": "/demos/webgpu-fft-ocean/mechanism/above-and-below-surface/",
          "startup": {
            "mode": "underwater-optics",
            "camera": "underwater"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cpu-query-parity",
          "route": "/demos/webgpu-fft-ocean/mechanism/cpu-query-parity/",
          "startup": {
            "mode": "cpu-query",
            "camera": "design"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fftResolution": 512,
            "dpr": 1
          },
          "mechanismLimits": {
            "cascadeCount": 3,
            "packedComplexTransformCount": 4
          },
          "resourceLimits": {
            "authoredStorageBudgetMiB": 104,
            "derivedStorageBytes": 106954752
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "dimensional spectrum",
            "Hermitian evolution",
            "explicit inverse-transform convention",
            "resolved-band geometry/normal parity",
            "native-resolution per-cascade foam history"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fftResolution": 256,
            "dpr": 1
          },
          "mechanismLimits": {
            "cascadeCount": 3,
            "packedComplexTransformCount": 4
          },
          "resourceLimits": {
            "authoredStorageBudgetMiB": 28,
            "derivedStorageBytes": 26738688
          },
          "degradationFromPrevious": [
            "FFT resolution 512 to 256"
          ],
          "preservedInvariants": [
            "dimensional spectrum",
            "Hermitian evolution",
            "explicit inverse-transform convention",
            "resolved-band geometry/normal parity",
            "native-resolution per-cascade foam history"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fftResolution": 256,
            "dpr": 1
          },
          "mechanismLimits": {
            "cascadeCount": 2,
            "packedComplexTransformCount": 4
          },
          "resourceLimits": {
            "authoredStorageBudgetMiB": 22,
            "derivedStorageBytes": 17825792
          },
          "degradationFromPrevious": [
            "cascade count 3 to 2"
          ],
          "preservedInvariants": [
            "dimensional spectrum",
            "Hermitian evolution",
            "explicit inverse-transform convention",
            "resolved-band geometry/normal parity",
            "native-resolution per-cascade foam history"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "low",
          "targetClass": "unmeasured-current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fftResolution": 128,
            "dpr": 1
          },
          "mechanismLimits": {
            "cascadeCount": 1,
            "packedComplexTransformCount": 4
          },
          "resourceLimits": {
            "authoredStorageBudgetMiB": 8,
            "derivedStorageBytes": 2228224
          },
          "degradationFromPrevious": [
            "FFT resolution 256 to 128",
            "cascade count 2 to 1"
          ],
          "preservedInvariants": [
            "dimensional spectrum",
            "Hermitian evolution",
            "explicit inverse-transform convention",
            "resolved-band geometry/normal parity",
            "native-resolution per-cascade foam history"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "height",
        "displacement",
        "slopes",
        "jacobian",
        "foam",
        "normal",
        "spectrum-fft",
        "cascade-bands",
        "underwater-optics",
        "cpu-query",
        "no-post",
        "diagnostics"
      ],
      "cameras": [
        "near",
        "design",
        "far",
        "underwater"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "minimum-four-storage-textures",
          "required": true,
          "evidence": "initialized adapter limit",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "render-or-compute-work",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "complete-2d-fft-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "per-cascade-surface-and-foam-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "pages-source-hash",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node validate-ocean-contracts.js",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:747f813c18711c5f4a56a092af254831aef8ec4fed2a036bcee63e9a19029d2f",
      "proxyStatus": null,
      "notes": [
        "browser WebGPU execution and readback are not captured",
        "per-cascade surface and foam GPU readback are not captured",
        "below-surface diagnostic optics are implemented but full scene-depth transport is not claimed",
        "current-adapter GPU timing is not measured"
      ],
      "sourceHashInputs": [
        "threejs-spectral-ocean/examples/webgpu-fft-ocean"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-field-bake",
      "skill": "threejs-procedural-fields",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-fields/examples/webgpu-field-bake/field-constants.mjs",
        "threejs-procedural-fields/examples/webgpu-field-bake/field-bundle.mjs",
        "threejs-procedural-fields/examples/webgpu-field-bake/field-bake.mjs",
        "threejs-procedural-fields/examples/webgpu-field-bake/browser-app.js"
      ],
      "browserEntry": "threejs-procedural-fields/examples/webgpu-field-bake/index.html",
      "publishPath": "/demos/webgpu-field-bake/",
      "scenarios": [
        {
          "id": "field-and-gradient-gallery",
          "route": "/demos/webgpu-field-bake/mechanism/field-and-gradient-gallery/",
          "startup": {
            "scenario": "field-and-gradient-gallery"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "domain-warp-jacobian",
          "route": "/demos/webgpu-field-bake/mechanism/domain-warp-jacobian/",
          "startup": {
            "scenario": "domain-warp-jacobian"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "storage-bake-and-mips",
          "route": "/demos/webgpu-field-bake/mechanism/storage-bake-and-mips/",
          "startup": {
            "scenario": "storage-bake-and-mips"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "direct-vs-baked",
          "route": "/demos/webgpu-field-bake/mechanism/direct-vs-baked/",
          "startup": {
            "scenario": "direct-vs-baked"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "structured-placement",
          "route": "/demos/webgpu-field-bake/mechanism/structured-placement/",
          "startup": {
            "scenario": "structured-placement"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-cause-composition",
          "route": "/demos/webgpu-field-bake/mechanism/shared-cause-composition/",
          "startup": {
            "scenario": "shared-cause-composition"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "field-and-gradient-gallery",
          "route": "/demos/webgpu-field-bake/mechanism/field-and-gradient-gallery/",
          "startup": {
            "scenario": "field-and-gradient-gallery"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "domain-warp-jacobian",
          "route": "/demos/webgpu-field-bake/mechanism/domain-warp-jacobian/",
          "startup": {
            "scenario": "domain-warp-jacobian"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "storage-bake-and-mips",
          "route": "/demos/webgpu-field-bake/mechanism/storage-bake-and-mips/",
          "startup": {
            "scenario": "storage-bake-and-mips"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "direct-vs-baked",
          "route": "/demos/webgpu-field-bake/mechanism/direct-vs-baked/",
          "startup": {
            "scenario": "direct-vs-baked"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "structured-placement",
          "route": "/demos/webgpu-field-bake/mechanism/structured-placement/",
          "startup": {
            "scenario": "structured-placement"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-cause-composition",
          "route": "/demos/webgpu-field-bake/mechanism/shared-cause-composition/",
          "startup": {
            "scenario": "shared-cause-composition"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "gpu-storage",
          "targetClass": "current-adapter correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fieldExtent": [
              641,
              359
            ],
            "explicitMipChain": true
          },
          "mechanismLimits": {
            "path": "compute-storage",
            "dirtyUpdates": true
          },
          "resourceLimits": {
            "format": "rgba16float",
            "bytesPerTexel": 8
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "field identity",
            "analytic gradient",
            "deterministic seed",
            "classification guard"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gpu-direct-evaluate",
          "targetClass": "current-adapter correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fieldExtent": null,
            "explicitMipChain": false
          },
          "mechanismLimits": {
            "path": "direct-tsl",
            "sharedLocalBundle": true
          },
          "resourceLimits": {
            "storageBytes": 0
          },
          "degradationFromPrevious": [
            "remove persistent storage and mip pyramid"
          ],
          "preservedInvariants": [
            "field identity",
            "analytic gradient",
            "deterministic seed",
            "classification guard"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "precomputed-minimum",
          "targetClass": "native-WebGPU minimum",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "fieldExtent": [
              512,
              512
            ],
            "explicitMipChain": true
          },
          "mechanismLimits": {
            "path": "precomputed-generated-data",
            "runtimeBake": false
          },
          "resourceLimits": {
            "sampledTextures": 1,
            "storageTextures": 0,
            "storageBuffers": 0,
            "decodedBytes": 1048576,
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "replace runtime evaluation with immutable generated field data"
          ],
          "preservedInvariants": [
            "field identity",
            "deterministic seed",
            "classification guard"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "coordinates",
        "warp",
        "macro-height",
        "gradient",
        "slope",
        "packed",
        "direct-vs-baked",
        "placement"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "rgba16float-storage",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-buffer",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "direct-f32-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-and-mip-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "placement-buffer-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-fields/examples/webgpu-field-bake/validate-field-contract.mjs --allow-missing-gpu",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:555355c7341ff6cefdaf0eb681bcd2440bdb30b957f79aebff935b6d0d9ce0e7",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-procedural-fields/examples/webgpu-field-bake"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-image-pipeline",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-image-pipeline/examples/webgpu-image-pipeline"
      ],
      "browserEntry": "threejs-image-pipeline/examples/webgpu-image-pipeline/index.html",
      "publishPath": "/demos/webgpu-image-pipeline/",
      "scenarios": [
        {
          "id": "pipeline-fixture",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "signal-inspector",
          "route": "mechanism/signal-inspector/",
          "startup": {
            "tier": "debug",
            "mode": "normal"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "ao-bloom-exposure-order",
          "route": "mechanism/ao-bloom-exposure-order/",
          "startup": {
            "tier": "full",
            "mode": "ao"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "temporal-velocity-and-history",
          "route": "mechanism/temporal-velocity-and-history/",
          "startup": {
            "tier": "full",
            "mode": "temporal-history"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "output-and-color-ownership",
          "route": "mechanism/output-and-color-ownership/",
          "startup": {
            "tier": "full",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "resource-budget",
          "route": "mechanism/resource-budget/",
          "startup": {
            "tier": "debug",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "diagnostic-extra-pass",
          "route": "mechanism/diagnostic-extra-pass/",
          "startup": {
            "tier": "debug",
            "mode": "albedo-extra-pass"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "current-adapter correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scene": 1,
            "ao": 0.5,
            "bloom": 0.5
          },
          "mechanismLimits": {
            "temporal": true,
            "normalMrt": true,
            "emissiveMrt": true
          },
          "resourceLimits": {
            "physicalBytes": null
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "one renderer",
            "one primary scene pass",
            "one tone map",
            "one output transform"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "reduced",
          "targetClass": "bandwidth-reduced correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scene": 1,
            "ao": 0.5,
            "bloom": 0.33
          },
          "mechanismLimits": {
            "temporal": false,
            "normalMrt": false,
            "emissiveMrt": true
          },
          "resourceLimits": {
            "physicalBytes": null
          },
          "degradationFromPrevious": [
            "remove velocity/history",
            "reconstruct AO normals from depth",
            "reduce bloom scale"
          ],
          "preservedInvariants": [
            "one renderer",
            "one primary scene pass",
            "one tone map",
            "one output transform"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "debug",
          "targetClass": "diagnostics",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scene": 1,
            "ao": 1,
            "bloom": 0.5
          },
          "mechanismLimits": {
            "temporal": true,
            "diagnosticAlbedoPass": true
          },
          "resourceLimits": {
            "physicalBytes": null
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "explicit extra scene cost only when albedo diagnostic is reachable"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "output",
        "depth",
        "view-z",
        "linear-depth",
        "normal",
        "emissive",
        "velocity",
        "ao",
        "bloom",
        "exposure",
        "temporal-current",
        "temporal-history",
        "temporal-resolved",
        "albedo-extra-pass"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "timestamp-query",
          "required": true,
          "evidence": "required for performance claims",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "mrt-readback",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "temporal-reset",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm run validate:full",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:d50e5b0ce11ff03b4f8d95eaf17a18b99d275759de12bb63e39b818d263b50d4",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/constants.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/exposure-nodes.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/lut.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/stage.js",
        "threejs-image-pipeline/examples/webgpu-image-pipeline"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-lut-atmosphere",
      "title": "Native WebGPU LUT Atmosphere",
      "skill": "threejs-sky-atmosphere-and-haze",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/webgpu-lut-atmosphere.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/atmosphere-config.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/atmosphere-math.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/depth-contract.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/runtime-state.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/browser-app.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/lab-routes.js",
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/route-shell.js"
      ],
      "browserEntry": "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/index.html",
      "publishPath": "/demos/webgpu-lut-atmosphere/",
      "scenarios": [
        {
          "id": "sea-level",
          "route": "scenario/sea-level/",
          "startup": {
            "camera": "sea-level",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mountain",
          "route": "scenario/mountain/",
          "startup": {
            "camera": "mountain",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "low-orbit",
          "route": "scenario/low-orbit/",
          "startup": {
            "camera": "low-orbit",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high-orbit",
          "route": "scenario/high-orbit/",
          "startup": {
            "camera": "high-orbit",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "night-side",
          "route": "scenario/night-side/",
          "startup": {
            "camera": "night-side",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shell-entry",
          "route": "scenario/shell-entry/",
          "startup": {
            "camera": "shell-entry",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "transmittance-and-multiscatter",
          "route": "mechanism/transmittance-and-multiscatter/",
          "startup": {
            "mode": "multiscatter"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "irradiance-and-sky-view",
          "route": "mechanism/irradiance-and-sky-view/",
          "startup": {
            "mode": "sky-view"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "aerial-perspective",
          "route": "mechanism/aerial-perspective/",
          "startup": {
            "mode": "aerial-inscattering"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "depth-and-ecef",
          "route": "mechanism/depth-and-ecef/",
          "startup": {
            "mode": "depth"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "sun-moon-and-lighting",
          "route": "mechanism/sun-moon-and-lighting/",
          "startup": {
            "mode": "irradiance"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "sea-level-to-orbit",
          "route": "mechanism/sea-level-to-orbit/",
          "startup": {
            "camera": "sea-level",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current-adapter-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "transmittance": [
              256,
              64
            ],
            "skyView": [
              192,
              108
            ],
            "aerial": [
              192,
              108,
              48
            ]
          },
          "mechanismLimits": {
            "transmittanceSamples": 32,
            "aerialSamples": 24
          },
          "resourceLimits": {
            "aerialPayloads": 2,
            "aerialFormat": "RGBA16F"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "rgb-inscattering-and-rgb-optical-depth",
            "single-output-owner",
            "meter-unit-boundary"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current-adapter-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "transmittance": [
              192,
              48
            ],
            "skyView": [
              128,
              64
            ],
            "aerial": [
              160,
              90,
              32
            ]
          },
          "mechanismLimits": {
            "transmittanceSamples": 32,
            "aerialSamples": 24
          },
          "resourceLimits": {
            "aerialPayloads": 2,
            "aerialFormat": "RGBA16F"
          },
          "degradationFromPrevious": [
            "lower LUT resolution",
            "fewer aerial depth slices"
          ],
          "preservedInvariants": [
            "rgb-inscattering-and-rgb-optical-depth",
            "single-output-owner",
            "meter-unit-boundary"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mobile",
          "targetClass": "mobile-class-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "transmittance": [
              128,
              32
            ],
            "skyView": [
              96,
              48
            ],
            "aerial": [
              96,
              54,
              20
            ]
          },
          "mechanismLimits": {
            "transmittanceSamples": 32,
            "aerialSamples": 24
          },
          "resourceLimits": {
            "aerialPayloads": 2,
            "aerialFormat": "RGBA16F"
          },
          "degradationFromPrevious": [
            "lower view-product resolution",
            "amortize dirty aerial slices"
          ],
          "preservedInvariants": [
            "rgb-inscattering-and-rgb-optical-depth",
            "single-output-owner",
            "meter-unit-boundary"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "transmittance",
        "multiscatter",
        "irradiance",
        "sky-view",
        "aerial-inscattering",
        "aerial-optical-depth",
        "depth",
        "ecef"
      ],
      "cameras": [
        "sea-level",
        "mountain",
        "low-orbit",
        "high-orbit",
        "night-side",
        "shell-entry"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-texture-3d",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "executed-five-stage-lut-chain",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "live-camera-body-depth-composition",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "cumulative-aerial-xy-rays",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-render-target-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-gpu-timestamps",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/validation.js",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:551de40c2730a4ca58fed3ba792ff39c57961b8db97761040519eaca1f2ebc61",
      "proxyStatus": null,
      "notes": [
        "Node structural, dependency-invalidation, homogeneous-radiometry, cumulative-aerial, camera/body-transform, and float64 oracle validation passes.",
        "The browser host now binds live controls to selective recomputation, samples actual PassNode depth, reconstructs body/ECEF positions, and composes the real scene with aerial/sky products.",
        "Browser/GPU capture is blocked in the current execution policy, so native execution, reference-radiance, timing, lifecycle, and final acceptance remain incomplete."
      ],
      "sourceHashInputs": [
        "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-material-slot-compiler",
      "skill": "threejs-procedural-buildings-and-cities",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler"
      ],
      "browserEntry": "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/index.html",
      "publishPath": "/demos/webgpu-material-slot-compiler/",
      "scenarios": [
        {
          "id": "single-tower",
          "startup": {
            "scenario": "single-tower"
          }
        },
        {
          "id": "compound-footprint",
          "startup": {
            "scenario": "compound-footprint"
          }
        },
        {
          "id": "courtyard",
          "startup": {
            "scenario": "courtyard"
          }
        },
        {
          "id": "twin-towers-bridge",
          "startup": {
            "scenario": "twin-towers-bridge"
          }
        },
        {
          "id": "high-ornament",
          "startup": {
            "scenario": "high-ornament"
          }
        },
        {
          "id": "distant-skyline",
          "startup": {
            "scenario": "distant-skyline"
          }
        }
      ],
      "mechanisms": [
        {
          "id": "massing-grammar",
          "route": "mechanism/massing-grammar/",
          "startup": {
            "mode": "massing-grammar"
          }
        },
        {
          "id": "exposed-edge-analysis",
          "route": "mechanism/exposed-edge-analysis/",
          "startup": {
            "mode": "exposed-edge-analysis"
          }
        },
        {
          "id": "facade-ownership",
          "route": "mechanism/facade-ownership/",
          "startup": {
            "mode": "facade-ownership"
          }
        },
        {
          "id": "module-geometry",
          "route": "mechanism/module-geometry/",
          "startup": {
            "mode": "module-geometry"
          }
        },
        {
          "id": "material-slot-compilation",
          "route": "mechanism/material-slot-compilation/",
          "startup": {
            "mode": "material-slot-compilation"
          }
        },
        {
          "id": "city-chunks-and-lod",
          "route": "mechanism/city-chunks-and-lod/",
          "startup": {
            "mode": "city-chunks-and-lod"
          }
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "close-inspection-building",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 2
          },
          "mechanismLimits": {
            "facadeFloorStride": 1,
            "archRadialSegments": 10,
            "ornament": true,
            "representation": "merged-or-editable-batched"
          },
          "resourceLimits": {
            "materialSlots": 8
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "mass grammar",
            "exposed-edge ownership",
            "structural closure",
            "physical UV scale",
            "material slots"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "city",
          "targetClass": "city-chunk",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "facadeFloorStride": 2,
            "archRadialSegments": 6,
            "ornament": false,
            "representation": "chunked-material-slots"
          },
          "resourceLimits": {
            "materialSlots": 8
          },
          "degradationFromPrevious": [
            "reduced facade sampling",
            "removed one-off ornament rewrites"
          ],
          "preservedInvariants": [
            "mass grammar",
            "exposed-edge ownership",
            "structural closure",
            "physical UV scale",
            "material slots"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "distant",
          "targetClass": "skyline-sector",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1
          },
          "mechanismLimits": {
            "facadeFloorStride": 4,
            "archRadialSegments": 6,
            "ornament": false,
            "representation": "runtime-compiled-merged-material-slots"
          },
          "resourceLimits": {
            "materialSlots": 8
          },
          "degradationFromPrevious": [
            "replaced sub-pixel window modules with facade panels",
            "coarsened roof detail"
          ],
          "preservedInvariants": [
            "primary silhouette",
            "mass grammar",
            "exposed-edge ownership",
            "structural closure",
            "material slots"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "massing-grammar",
        "exposed-edge-analysis",
        "facade-ownership",
        "module-geometry",
        "material-slot-compilation",
        "city-chunks-and-lod"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "The canonical controller blocks unless renderer.backend.isWebGPUBackend is true after initialization.",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "Await createBuildingLabController(), which awaits renderer.init() before constructing proof state.",
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": "Capture renderer.backend.isWebGPUBackend === true from the initialized controller.",
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": "Load every physical mechanism route and reconcile its locked startup mode with the compiled runtime representation.",
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": "Capture MRT pixels using the controller's integer 256-byte-aligned row-stride contract.",
          "status": "incomplete"
        },
        {
          "id": "compiled-resource-ledger",
          "required": true,
          "evidence": "Reconcile actual material-slot vertex/index allocation and r185 BatchedMesh backend draw entries from runtime resources.",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/validate-fixtures.mjs",
      "commands": {
        "check": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run check",
        "test": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run validate:unit",
        "mutations": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run test:mutations",
        "capture": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler run validate:full"
      },
      "sourceHash": "sha256:7ad7958a7bf3a2a3bdda298b38666f2e4f4983b7b0780aef6b74d4795e99da3b",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-node-gtao",
      "skill": "threejs-ambient-contact-shading",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao"
      ],
      "browserEntry": "threejs-ambient-contact-shading/examples/webgpu-node-gtao/index.html",
      "publishPath": "/demos/webgpu-node-gtao/",
      "scenarios": [
        {
          "id": "wall-receiver",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "thin-silhouette",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "sky-edge",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "emissive-direct",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "non-square-projection",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "moving-occluder",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bent-normal-wall",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "scalar-gtao",
          "route": "mechanism/scalar-gtao/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bilateral-denoise-and-halo",
          "route": "mechanism/bilateral-denoise-and-halo/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "temporal-ao",
          "route": "mechanism/temporal-ao/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "bent-normal-wall",
          "route": "mechanism/bent-normal-wall/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "indirect-only-application",
          "route": "mechanism/indirect-only-application/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "depth-conventions",
          "route": "mechanism/depth-conventions/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "aoScale": 0.5
          },
          "mechanismLimits": {
            "samples": 16
          },
          "resourceLimits": {},
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "indirect-only-application",
            "standard-depth"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "aoScale": 0.5
          },
          "mechanismLimits": {
            "samples": 12
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "reduce samples"
          ],
          "preservedInvariants": [
            "indirect-only-application",
            "standard-depth"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "current-adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "aoScale": 0.33
          },
          "mechanismLimits": {
            "samples": 8,
            "reconstruction": "raw"
          },
          "resourceLimits": {},
          "degradationFromPrevious": [
            "reduce AO resolution",
            "remove denoise from active graph"
          ],
          "preservedInvariants": [
            "indirect-only-application",
            "standard-depth"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "raw-ao",
        "denoised-ao",
        "normal",
        "raw-depth",
        "linear-view-z",
        "sky-classification",
        "velocity",
        "bent-normal",
        "indirect-delta",
        "disabled"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "standard-depth",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "one-prepass-one-lit-pass",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-gpu-timestamps",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-ambient-contact-shading/examples/webgpu-node-gtao/validate.js",
      "commands": {
        "check": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run check",
        "test": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run validate:unit",
        "mutations": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run test:mutations",
        "capture": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run capture --",
        "validateArtifacts": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run validate:artifacts",
        "validateQuick": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run validate:quick",
        "validateFull": "npm --prefix threejs-ambient-contact-shading/examples/webgpu-node-gtao run validate:full"
      },
      "sourceHash": "sha256:20fb14a2e099cf0047b8eddfdb5f5fd4a38dbf336bcb80cf1bdf60adee772f24",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-ambient-contact-shading/examples/webgpu-node-gtao"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-pooled-effects",
      "skill": "threejs-particles-trails-and-effects",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/lab.mjs",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/gpu-compaction-pool.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/effect-visuals.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/effect-pool.js",
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/reentry-shell.js"
      ],
      "browserEntry": "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/index.html",
      "publishPath": "/demos/webgpu-pooled-effects/",
      "scenarios": [
        {
          "id": "reentry-shell-and-wake",
          "route": "mechanism/reentry-shell-and-wake/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "impact-sparks",
          "route": "mechanism/impact-sparks/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "debris-dissolve",
          "route": "mechanism/debris-dissolve/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gpu-pool-and-compaction",
          "route": "mechanism/gpu-pool-and-compaction/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "indirect-draws",
          "route": "mechanism/indirect-draws/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "hdr-emissive-and-depth",
          "route": "mechanism/hdr-emissive-and-depth/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tier-benchmark",
          "route": "mechanism/tier-benchmark/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "reentry-shell-and-wake",
          "route": "mechanism/reentry-shell-and-wake",
          "startup": {
            "scenario": "reentry-shell-and-wake"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "impact-sparks",
          "route": "mechanism/impact-sparks",
          "startup": {
            "scenario": "impact-sparks"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "debris-dissolve",
          "route": "mechanism/debris-dissolve",
          "startup": {
            "scenario": "debris-dissolve"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gpu-pool-and-compaction",
          "route": "mechanism/gpu-pool-and-compaction",
          "startup": {
            "scenario": "gpu-pool-and-compaction"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "indirect-draws",
          "route": "mechanism/indirect-draws",
          "startup": {
            "scenario": "indirect-draws"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "hdr-emissive-and-depth",
          "route": "mechanism/hdr-emissive-and-depth",
          "startup": {
            "scenario": "hdr-emissive-and-depth"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tier-benchmark",
          "route": "mechanism/tier-benchmark",
          "startup": {
            "scenario": "tier-benchmark"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current-adapter authored workload",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "sceneScale": 1,
            "bloomScale": 0.5,
            "dprCap": 2
          },
          "mechanismLimits": {
            "poolCap": 65536,
            "shellLayers": 5,
            "wakeFamilies": 3,
            "fieldOctaves": 3
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "event physics",
            "mark-scan-scatter",
            "indirect draw",
            "depth occlusion",
            "HDR hierarchy"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current-adapter authored workload",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "sceneScale": 1,
            "bloomScale": 0.5,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "poolCap": 24576,
            "shellLayers": 4,
            "wakeFamilies": 2,
            "fieldOctaves": 2
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "lower active capacity",
            "merge one shell layer",
            "remove one field octave"
          ],
          "preservedInvariants": [
            "event physics",
            "mark-scan-scatter",
            "indirect draw",
            "depth occlusion",
            "HDR hierarchy"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "current-adapter authored workload",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "sceneScale": 1,
            "bloomScale": 0.25,
            "dprCap": 1
          },
          "mechanismLimits": {
            "poolCap": 8192,
            "shellLayers": 2,
            "wakeFamilies": 1,
            "fieldOctaves": 1
          },
          "resourceLimits": {
            "gpuTimingRequiredForAcceptance": true
          },
          "degradationFromPrevious": [
            "lower active capacity",
            "primary wake only",
            "single field octave"
          ],
          "preservedInvariants": [
            "event physics",
            "mark-scan-scatter",
            "indirect draw",
            "depth occlusion",
            "HDR hierarchy"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "raw-emissive",
        "bloom-only",
        "normal"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "webgpu-backend",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-buffer",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "indirect-draw",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mrt",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "ordered-compute-dispatch",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "stable-identity-free-list-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "indirect-count-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "live-soft-depth-sampling",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "render-target-output",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/gpu-compaction.test.mjs",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:acc472f7c027972d668998d5087a5d42534983271f7c156af24af4ec1a4e0ffb",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-procedural-creature-lab",
      "skill": "threejs-procedural-creatures",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab"
      ],
      "browserEntry": "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/index.html",
      "publishPath": "/demos/webgpu-procedural-creature-lab/",
      "scenarios": [
        {
          "id": "field-and-surface-certification",
          "startup": {
            "scenario": "field-and-surface-certification"
          }
        },
        {
          "id": "snap-and-ownership",
          "startup": {
            "scenario": "snap-and-ownership"
          }
        },
        {
          "id": "locomotion-and-foot-planting",
          "startup": {
            "scenario": "locomotion-and-foot-planting"
          }
        },
        {
          "id": "tails-ears-and-secondary-motion",
          "startup": {
            "scenario": "tails-ears-and-secondary-motion"
          }
        },
        {
          "id": "crowd-and-culling",
          "startup": {
            "scenario": "crowd-and-culling"
          }
        },
        {
          "id": "outline-and-shadow",
          "startup": {
            "scenario": "outline-and-shadow"
          }
        },
        {
          "id": "genome-variation",
          "startup": {
            "scenario": "genome-variation"
          }
        }
      ],
      "mechanisms": [
        {
          "id": "field-and-surface-certification",
          "route": "mechanism/field-and-surface-certification/",
          "startup": {
            "scenario": "field-and-surface-certification"
          }
        },
        {
          "id": "snap-and-ownership",
          "route": "mechanism/snap-and-ownership/",
          "startup": {
            "scenario": "snap-and-ownership"
          }
        },
        {
          "id": "locomotion-and-foot-planting",
          "route": "mechanism/locomotion-and-foot-planting/",
          "startup": {
            "scenario": "locomotion-and-foot-planting"
          }
        },
        {
          "id": "tails-ears-and-secondary-motion",
          "route": "mechanism/tails-ears-and-secondary-motion/",
          "startup": {
            "scenario": "tails-ears-and-secondary-motion"
          }
        },
        {
          "id": "crowd-and-culling",
          "route": "mechanism/crowd-and-culling/",
          "startup": {
            "scenario": "crowd-and-culling"
          }
        },
        {
          "id": "outline-and-shadow",
          "route": "mechanism/outline-and-shadow/",
          "startup": {
            "scenario": "outline-and-shadow"
          }
        },
        {
          "id": "genome-variation",
          "route": "mechanism/genome-variation/",
          "startup": {
            "scenario": "genome-variation"
          }
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "close-subject",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 2
          },
          "mechanismLimits": {
            "candidateK": "certified per genome; authored start 8",
            "snapTrials": 2,
            "outline": "hero or shared post"
          },
          "resourceLimits": {
            "population": 4,
            "fixedPageCapacity": 64
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "field parity",
            "deterministic ownership",
            "fixed-step locomotion",
            "shadow deformation parity"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "crowd",
          "targetClass": "repeated-population",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "candidateK": "certified per genome; authored start 6",
            "snapTrials": 1,
            "outline": "shared post"
          },
          "resourceLimits": {
            "population": 64,
            "fixedPageCapacity": 64
          },
          "degradationFromPrevious": [
            "reduced diagnostic-shell tessellation",
            "reduced correction trials"
          ],
          "preservedInvariants": [
            "field parity",
            "deterministic ownership",
            "fixed-step locomotion",
            "shadow deformation parity"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "background",
          "targetClass": "small-projected-silhouette",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": 1
          },
          "mechanismLimits": {
            "candidateK": "certified per genome; authored start 4",
            "snapTrials": 1,
            "outline": "none"
          },
          "resourceLimits": {
            "population": 96,
            "fixedPageCapacity": 96
          },
          "degradationFromPrevious": [
            "reduced diagnostic-shell tessellation",
            "outline disabled"
          ],
          "preservedInvariants": [
            "field parity",
            "deterministic ownership",
            "fixed-step locomotion",
            "primary silhouette"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "off",
        "unsnapped",
        "distance",
        "weights",
        "normals",
        "ownership"
      ],
      "cameras": [
        "near",
        "design",
        "far",
        "population"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "src/lab/browser-app.js blocks unless renderer.backend.isWebGPUBackend is true; current-source capture is pending",
          "status": "incomplete"
        },
        {
          "id": "storage-buffers",
          "required": true,
          "evidence": "src/tsl/pose-storage.js defines pose, root, and owner-inclusive candidate storage; current-source readback evidence is pending",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "src/lab/browser-app.js awaits renderer.init() before capability checks; matching source-hash evidence is pending",
          "status": "incomplete"
        },
        {
          "id": "native-backend",
          "required": true,
          "evidence": "src/lab/browser-app.js requires renderer.backend.isWebGPUBackend === true; matching source-hash evidence is pending",
          "status": "incomplete"
        },
        {
          "id": "candidate-certification",
          "required": true,
          "evidence": "candidate-set-sweep and raise-k-policy-fixture prove frozen-corpus K/storage agreement on CPU; GPU binding recapture is pending",
          "status": "incomplete"
        },
        {
          "id": "render-target-readback",
          "required": true,
          "evidence": "captureFrame implements integer 256-byte-aligned WebGPU readback; current-source images are pending",
          "status": "incomplete"
        },
        {
          "id": "shadow-parity",
          "required": true,
          "evidence": "visible and cast-shadow materials share the owner-masked deformation node; current-source atlas evidence is pending",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run validate",
      "commands": {
        "check": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run check",
        "test": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run validate:unit",
        "mutations": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run test:mutations",
        "capture": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-creatures/examples/webgpu-procedural-creature-lab run validate:full"
      },
      "sourceHash": "sha256:49685873c12aeb57f13b1f1d6ce4df2033e65cb9361daa0b4c3be930a99778f0",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-procedural-timelines",
      "skill": "threejs-procedural-motion-systems",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/timeline.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/quaternion-helpers.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/gpu-instance-motion.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/route-state.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/main.js",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/browser.mjs",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/mechanism/launch-and-staging/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/mechanism/spin-docking/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/mechanism/debris-release/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/mechanism/quaternion-and-reparent/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/mechanism/compute-storage/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/mechanism/interpolation-and-velocity/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/tier/full/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/tier/balanced/index.html",
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/tier/test-minimum/index.html"
      ],
      "browserEntry": "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/index.html",
      "publishPath": "/demos/webgpu-procedural-timelines/",
      "scenarios": [
        {
          "id": "launch-and-staging",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "spin-docking",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "debris-release",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "launch-and-staging",
          "route": "mechanism/launch-and-staging/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "spin-docking",
          "route": "mechanism/spin-docking/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "debris-release",
          "route": "mechanism/debris-release/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "quaternion-and-reparent",
          "route": "mechanism/quaternion-and-reparent/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "compute-storage",
          "route": "mechanism/compute-storage/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "interpolation-and-velocity",
          "route": "mechanism/interpolation-and-velocity/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "current native-WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 2,
              "unit": "ratio",
              "label": "Authored",
              "source": "motion lab tier"
            }
          },
          "mechanismLimits": {
            "instanceCapacity": {
              "value": 4096,
              "unit": "instances",
              "label": "Authored",
              "source": "motion lab tier"
            }
          },
          "resourceLimits": {
            "motionStorageBytes": {
              "value": 589824,
              "unit": "bytes",
              "label": "Derived",
              "source": "4096 * 144"
            }
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "fixed-step semantics",
            "exact terminal lock",
            "previous/current transforms"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "current native-WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "motion lab tier"
            }
          },
          "mechanismLimits": {
            "instanceCapacity": {
              "value": 2048,
              "unit": "instances",
              "label": "Authored",
              "source": "motion lab tier"
            }
          },
          "resourceLimits": {
            "motionStorageBytes": {
              "value": 294912,
              "unit": "bytes",
              "label": "Derived",
              "source": "2048 * 144"
            }
          },
          "degradationFromPrevious": [
            "halve recurrent instance capacity",
            "lower DPR cap"
          ],
          "preservedInvariants": [
            "fixed-step semantics",
            "exact terminal lock",
            "previous/current transforms"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "test-minimum",
          "targetClass": "correctness fixture",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "motion lab tier"
            }
          },
          "mechanismLimits": {
            "instanceCapacity": {
              "value": 64,
              "unit": "instances",
              "label": "Authored",
              "source": "motion lab tier"
            }
          },
          "resourceLimits": {
            "motionStorageBytes": {
              "value": 9216,
              "unit": "bytes",
              "label": "Derived",
              "source": "64 * 144"
            }
          },
          "degradationFromPrevious": [
            "reduce recurrent instance capacity to fixture scale",
            "lower DPR cap"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "fixed-step semantics",
            "exact terminal lock",
            "previous/current transforms"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "velocity",
        "emissive",
        "normal"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-buffer",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "compute",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "compute-storage-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mrt-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-gpu-timestamp",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run check",
        "test": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run validate:unit",
        "mutations": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run test:mutations",
        "capture": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-motion-systems/examples/webgpu-procedural-timelines run validate:full"
      },
      "sourceHash": "sha256:19124fd4449829f795f22a3b12d3309b52b2058db6968dd0c65f844ac73b5ecc",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-quadtree-planet",
      "title": "Native WebGPU Quadtree Planet",
      "skill": "threejs-procedural-planets",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/browser-lab.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-fields.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-field-atlas.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/patch-compute.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/integration-adapter.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/route-contract.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-tiers.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-mesh.js",
        "threejs-procedural-planets/examples/webgpu-quadtree-planet/planet-quadtree.js"
      ],
      "browserEntry": "threejs-procedural-planets/examples/webgpu-quadtree-planet/index.html",
      "publishPath": "/demos/webgpu-quadtree-planet/",
      "scenarios": [
        {
          "id": "field-crater-climate",
          "route": "/demos/webgpu-quadtree-planet/?scenario=field-crater-climate",
          "startup": {
            "scenario": "field-crater-climate"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cross-face-quadtree",
          "route": "/demos/webgpu-quadtree-planet/?scenario=cross-face-quadtree",
          "startup": {
            "scenario": "cross-face-quadtree"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balance-and-stitching",
          "route": "/demos/webgpu-quadtree-planet/?scenario=balance-and-stitching",
          "startup": {
            "scenario": "balance-and-stitching"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "field-atlas",
          "route": "/demos/webgpu-quadtree-planet/?scenario=field-atlas",
          "startup": {
            "scenario": "field-atlas"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "solid-body-material",
          "route": "/demos/webgpu-quadtree-planet/?scenario=solid-body-material",
          "startup": {
            "scenario": "solid-body-material"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gas-and-ice-giants",
          "route": "/demos/webgpu-quadtree-planet/?scenario=gas-and-ice-giants",
          "startup": {
            "scenario": "gas-and-ice-giants"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "orbit-to-surface",
          "route": "/demos/webgpu-quadtree-planet/?scenario=orbit-to-surface",
          "startup": {
            "scenario": "orbit-to-surface"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "field-crater-climate",
          "route": "/demos/webgpu-quadtree-planet/mechanism/field-crater-climate/",
          "startup": {
            "scenario": "field-crater-climate",
            "mode": "field-crater-climate"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cross-face-quadtree",
          "route": "/demos/webgpu-quadtree-planet/mechanism/cross-face-quadtree/",
          "startup": {
            "scenario": "cross-face-quadtree",
            "mode": "patch-level"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balance-and-stitching",
          "route": "/demos/webgpu-quadtree-planet/mechanism/balance-and-stitching/",
          "startup": {
            "scenario": "balance-and-stitching",
            "mode": "transition-mask"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "field-atlas",
          "route": "/demos/webgpu-quadtree-planet/mechanism/field-atlas/",
          "startup": {
            "scenario": "field-atlas",
            "mode": "derivative-candidate"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "solid-body-material",
          "route": "/demos/webgpu-quadtree-planet/mechanism/solid-body-material/",
          "startup": {
            "scenario": "solid-body-material",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gas-and-ice-giants",
          "route": "/demos/webgpu-quadtree-planet/mechanism/gas-and-ice-giants/",
          "startup": {
            "scenario": "gas-and-ice-giants",
            "mode": "final",
            "camera": "giants"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "orbit-to-surface",
          "route": "/demos/webgpu-quadtree-planet/mechanism/orbit-to-surface/",
          "startup": {
            "scenario": "orbit-to-surface",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "Current-adapter correctness trial; performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 2,
              "unit": "ratio",
              "label": "Authored",
              "source": "quality route"
            }
          },
          "mechanismLimits": {
            "gridSide": {
              "value": 33,
              "unit": "vertices",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.full"
            },
            "maxLevel": {
              "value": 7,
              "unit": "levels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.full"
            },
            "splitPixelError": {
              "value": 8,
              "unit": "physical pixels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.full"
            },
            "mergePixelError": {
              "value": 4.5,
              "unit": "physical pixels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.full"
            }
          },
          "resourceLimits": {
            "atlasTileSide": {
              "value": 33,
              "unit": "core texels",
              "label": "Authored",
              "source": "field atlas full tier"
            },
            "atlasGutter": {
              "value": 4,
              "unit": "base-level texels",
              "label": "Derived",
              "source": "declared warp/filter/derivative/footprint support"
            }
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "native WebGPU",
            "shared field function",
            "2:1 balance",
            "transition masks",
            "single tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "Current-adapter correctness trial; performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "quality route"
            }
          },
          "mechanismLimits": {
            "gridSide": {
              "value": 17,
              "unit": "vertices",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.balanced"
            },
            "maxLevel": {
              "value": 6,
              "unit": "levels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.balanced"
            },
            "splitPixelError": {
              "value": 9,
              "unit": "physical pixels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.balanced"
            },
            "mergePixelError": {
              "value": 5,
              "unit": "physical pixels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.balanced"
            }
          },
          "resourceLimits": {
            "atlasTileSide": {
              "value": 17,
              "unit": "core texels",
              "label": "Authored",
              "source": "field atlas balanced tier"
            },
            "atlasGutter": {
              "value": 4,
              "unit": "base-level texels",
              "label": "Derived",
              "source": "declared warp/filter/derivative/footprint support"
            }
          },
          "degradationFromPrevious": [
            "reduce shared-grid side",
            "raise split/merge error thresholds",
            "reduce maximum camera-selected level"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "shared field function",
            "2:1 balance",
            "transition masks",
            "single tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "reduced-webgpu",
          "targetClass": "Minimum native-WebGPU resident trial; performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "quality route"
            }
          },
          "mechanismLimits": {
            "gridSide": {
              "value": 17,
              "unit": "vertices",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.reduced-webgpu"
            },
            "maxLevel": {
              "value": 4,
              "unit": "levels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.reduced-webgpu"
            },
            "splitPixelError": {
              "value": 11,
              "unit": "physical pixels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.reduced-webgpu"
            },
            "mergePixelError": {
              "value": 6,
              "unit": "physical pixels",
              "label": "Authored",
              "source": "PLANET_TIER_CONFIG.reduced-webgpu"
            }
          },
          "resourceLimits": {
            "atlasTileSide": {
              "value": 17,
              "unit": "core texels",
              "label": "Authored",
              "source": "field atlas reduced tier"
            },
            "atlasGutter": {
              "value": 4,
              "unit": "base-level texels",
              "label": "Derived",
              "source": "declared warp/filter/derivative/footprint support"
            }
          },
          "degradationFromPrevious": [
            "raise split/merge error thresholds",
            "reduce maximum camera-selected level",
            "permit root-level horizon-hidden leaves"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "shared field function",
            "2:1 balance",
            "transition masks",
            "single tone/output owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "height",
        "patch-level",
        "transition-mask",
        "derivative-candidate",
        "field-crater-climate",
        "craters",
        "climate"
      ],
      "cameras": [
        "near",
        "design",
        "far",
        "orbit",
        "horizon",
        "surface",
        "giants"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer.backend.isWebGPUBackend after await renderer.init",
          "status": "incomplete"
        },
        {
          "id": "storage-compute",
          "required": true,
          "evidence": "three channel-separated field bakes, patch-local mip dispatches, and analytic patch-bounds compute",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "render-target-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "pipeline-graph",
          "required": true,
          "evidence": "LabController.describePipeline",
          "status": "incomplete"
        },
        {
          "id": "resource-ledger",
          "required": true,
          "evidence": "LabController.describeResources",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run check",
        "test": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run validate:unit",
        "mutations": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run test:mutations",
        "capture": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-planets/examples/webgpu-quadtree-planet run validate:full"
      },
      "sourceHash": "sha256:6c5063ccb8e9b53f5e7e7b9202e8f4073745a7c3f27705001c4190bc9b4d762f",
      "proxyStatus": null,
      "notes": [
        "Status remains incomplete until a native-WebGPU v2 evidence bundle is captured on the current adapter.",
        "The live material consumes the patch-resident storage atlas and its first patch-local mip; gutters derive from declared warp/filter/derivative/projected-footprint support and dirty updates are patch-indexed.",
        "The runtime selects a six-face horizon-aware frontier from physical-pixel projected error, globally enforces 2:1 balance, submits one indexed group per leaf, and morphs transition edges to the exact next-coarser bilinear representation.",
        "Planet/atmosphere integration publishes metric radii, body/world transforms, ECEF conversion, altitude, and world-up queries from one worldUnitsPerMeter contract.",
        "The fused height derivative is candidate-only and does not drive the preview normal; derivative correctness remains unproved.",
        "The default scene MRT is output-only; no normal or velocity attachment is allocated without a consumer."
      ],
      "sourceHashInputs": [
        "threejs-procedural-planets/examples/webgpu-quadtree-planet"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-rain-snow-and-wet-surfaces",
      "skill": "threejs-rain-snow-and-wet-surfaces",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/precipitation-system.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/weather-webgpu-lab.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/test-runtime-contracts.mjs",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/route-wrapper.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/main.js",
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/index.html"
      ],
      "browserEntry": "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/index.html",
      "publishPath": "/demos/webgpu-rain-snow-and-wet-surfaces/",
      "scenarios": [
        {
          "id": "coupled-weather",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/",
          "startup": {
            "scenario": "coupled-weather",
            "tier": "medium"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "precipitation-volume",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/mechanism/precipitation-volume/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "analytic-vs-recurrent",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/mechanism/analytic-vs-recurrent/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "wet-road-and-puddles",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/mechanism/wet-road-and-puddles/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "impact-and-splashes",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/mechanism/impact-and-splashes/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "snow-accumulation-and-caps",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/mechanism/snow-accumulation-and-caps/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "weather-envelope-coupling",
          "route": "/demos/webgpu-rain-snow-and-wet-surfaces/mechanism/weather-envelope-coupling/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "high",
          "targetClass": "close-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "receiverScale": 1,
            "dprCap": 2
          },
          "mechanismLimits": {
            "rainInstances": 24576,
            "snowInstances": 12288,
            "impactCapacity": 4096,
            "recurrentTurbulence": true
          },
          "resourceLimits": {
            "precipitationDraws": 2,
            "splashDraws": 1
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "shared-weather-object",
            "world-stable-impacts",
            "integrated-surface-state",
            "single-field-snow-normal"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "medium",
          "targetClass": "ordinary-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "receiverScale": 0.5,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "rainInstances": 12288,
            "snowInstances": 6144,
            "impactCapacity": 2048,
            "recurrentTurbulence": false
          },
          "resourceLimits": {
            "precipitationDraws": 2,
            "splashDraws": 1
          },
          "degradationFromPrevious": [
            "halve-visible-samples",
            "disable-recurrent-turbulence"
          ],
          "preservedInvariants": [
            "shared-weather-object",
            "world-stable-impacts",
            "integrated-surface-state",
            "single-field-snow-normal"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "small-projected-footprint",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "receiverScale": 0.25,
            "dprCap": 1
          },
          "mechanismLimits": {
            "rainInstances": 4096,
            "snowInstances": 2048,
            "impactCapacity": 512,
            "recurrentTurbulence": false
          },
          "resourceLimits": {
            "precipitationDraws": 2,
            "splashDraws": 1
          },
          "degradationFromPrevious": [
            "reduce-visible-samples",
            "reduce-receiver-resolution",
            "bound-impact-ring"
          ],
          "preservedInvariants": [
            "shared-weather-object",
            "world-stable-impacts",
            "integrated-surface-state",
            "single-field-snow-normal"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "mask",
        "normals",
        "particles",
        "events",
        "progress"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer backend gate after initialization",
          "status": "incomplete"
        },
        {
          "id": "storage-buffer",
          "required": true,
          "evidence": "immutable and recurrent storage-backed instance resources",
          "status": "incomplete"
        },
        {
          "id": "compute",
          "required": true,
          "evidence": "recurrent weather and bounded impact dispatch graph",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "await renderer.init() in canonical browser controller",
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": "renderer.backend.isWebGPUBackend === true",
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": "fixed mechanism routes change live visibility, material graph reachability, receiver work, and compute dispatch selection",
          "status": "incomplete"
        },
        {
          "id": "world-stable-impact-receivers",
          "required": true,
          "evidence": "camera-independent world-cell scheduler queries registered upward/visible/unoccluded receivers before GPU event upload",
          "status": "incomplete"
        },
        {
          "id": "runtime-seed-rebuild",
          "required": true,
          "evidence": "setSeed replaces precipitation seed/recurrent/impact storage and scheduler state",
          "status": "incomplete"
        },
        {
          "id": "resource-derived-diagnostics",
          "required": true,
          "evidence": "normal diagnostics consume the live MRT attachment; masks/events/particles consume live material or storage nodes",
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": "capturePixels derives integer 256-byte-aligned row stride",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": false,
          "evidence": "required before any performance acceptance",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node validate.js",
      "sourceHash": "sha256:9e552daa3e86398238544b5eaf98af3400ead574a5c65629db4ae6291200b114",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-shadow-architecture-bench",
      "title": "WebGPU Directional Shadow Architecture Bench",
      "skill": "threejs-scalable-real-time-shadows",
      "threeRevision": "0.185.1",
      "kind": "mechanism-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench/main.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench/index.html",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/canonical-lab.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/shadow-architectures.js"
      ],
      "browserEntry": "threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench/index.html",
      "publishPath": "/demos/webgpu-shadow-architecture-bench/",
      "scenarios": [
        {
          "id": "bounded",
          "title": "One bounded directional shadow",
          "startup": {
            "scenario": "bounded",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "csm",
          "title": "r185 cascade shadow map",
          "startup": {
            "scenario": "csm",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tiled",
          "title": "r185 tiled directional shadow",
          "startup": {
            "scenario": "tiled",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cached",
          "title": "Receiver-backed cached clipmap",
          "startup": {
            "scenario": "cached",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "bounded-shadow",
          "route": "/demos/webgpu-shadow-architecture-bench/?scenario=bounded",
          "startup": {
            "scenario": "bounded",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "csm",
          "route": "/demos/webgpu-shadow-architecture-bench/?scenario=csm",
          "startup": {
            "scenario": "csm",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tiled-shadow",
          "route": "/demos/webgpu-shadow-architecture-bench/?scenario=tiled",
          "startup": {
            "scenario": "tiled",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cached-clipmap",
          "route": "/demos/webgpu-shadow-architecture-bench/?scenario=cached",
          "startup": {
            "scenario": "cached",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "high",
          "targetClass": "current WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "width": 1200,
            "height": 800,
            "dpr": 1
          },
          "mechanismLimits": {
            "architectureCount": 4,
            "fixedTier": "high"
          },
          "resourceLimits": {
            "inventorySource": "runtime-owned shadow targets"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "identical seeded receiver/caster scene",
            "normal depth for the stock r185 tile comparison",
            "one directional illumination owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "shadow-depth",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "comparison-depth-textures",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "timestamp-query",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "same-scene-architecture-comparison",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "actual-shadow-resource-inventory",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run check",
        "test": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run validate:unit",
        "mutations": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run test:mutations",
        "capture": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run capture",
        "validateArtifacts": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run validate:artifacts",
        "validateQuick": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run validate:quick",
        "validateFull": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench run validate:full"
      },
      "sourceHash": "sha256:40940db67adf92fe7da2e55717e3ef0b5a58e672e51dddf4a986618f97628367",
      "proxyStatus": null,
      "notes": [
        "Measured current-adapter comparison evidence is pending; timing values must remain unavailable rather than synthetic."
      ],
      "sourceHashInputs": [
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/cached-clipmap-shadow-node-v2.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/canonical-lab.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/clipmap-config.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/routes.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/shadow-architectures.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-shadow-pipeline-integration",
      "title": "WebGPU Cached Shadow Pipeline Integration",
      "skill": "threejs-scalable-real-time-shadows",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration/main.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration/index.html",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/canonical-lab.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/cached-clipmap-shadow-node-v2.js"
      ],
      "browserEntry": "threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration/index.html",
      "publishPath": "/demos/webgpu-shadow-pipeline-integration/",
      "scenarios": [
        {
          "id": "cached-shadow-image-pipeline",
          "title": "Cached clipmap through one final image pipeline",
          "startup": {
            "scenario": "cached-shadow-image-pipeline",
            "tier": "high",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "child-shadow-receiver-blend",
          "route": "/demos/webgpu-shadow-pipeline-integration/?mechanism=child-shadow-receiver-blend",
          "startup": {
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "sequential-shadow-updates",
          "route": "/demos/webgpu-shadow-pipeline-integration/?mechanism=sequential-shadow-updates",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "single-output-ownership",
          "route": "/demos/webgpu-shadow-pipeline-integration/?mechanism=single-output-ownership",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "high",
          "targetClass": "current WebGPU adapter",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "width": 1200,
            "height": 800,
            "dpr": 1
          },
          "mechanismLimits": {
            "cachedShadowTier": "high",
            "receiverTopology": "independent-textures-static-loop-frustum-gated"
          },
          "resourceLimits": {
            "rendererOwners": 1,
            "finalRenderPipelineOwners": 1,
            "toneMapOwners": 1,
            "outputTransformOwners": 1
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "one renderer owner",
            "one final RenderPipeline owner",
            "one tone-map owner",
            "one output-color-transform owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "shadow-depth",
        "owner-graph"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "comparison-depth-textures",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "child-shadow-targets-consumed",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "single-final-output-ownership",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run check",
        "test": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run validate:unit",
        "mutations": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run test:mutations",
        "capture": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run capture",
        "validateArtifacts": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run validate:artifacts",
        "validateQuick": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run validate:quick",
        "validateFull": "npm --prefix threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration run validate:full"
      },
      "sourceHash": "sha256:27394576b055625138a3c3ca1d2b9a5e5e34dbe53b36d8ddb2bcdb0bd066dab8",
      "proxyStatus": null,
      "notes": [
        "The owner graph is implemented, but current-adapter native-WebGPU render-target, timing, resource, and lifecycle evidence is pending."
      ],
      "sourceHashInputs": [
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/cached-clipmap-shadow-node-v2.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/canonical-lab.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/clipmap-config.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/routes.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/shadow-architectures.js",
        "threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-temporal-history",
      "skill": "threejs-image-pipeline",
      "threeRevision": "0.185.1",
      "kind": "mechanism-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-image-pipeline/examples/webgpu-image-pipeline/canonical-main.js",
        "threejs-image-pipeline/examples/webgpu-temporal-history"
      ],
      "browserEntry": "threejs-image-pipeline/examples/webgpu-temporal-history/index.html",
      "publishPath": "/demos/webgpu-temporal-history/",
      "scenarios": [
        {
          "id": "moving-rigid-subject",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "velocity-history-rejection-reset",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "current-adapter correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scene": 1
          },
          "mechanismLimits": {
            "temporal": true
          },
          "resourceLimits": {
            "physicalBytes": null
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "current-minus-previous NDC velocity",
            "TRAA jitter owner",
            "rebuild-on-reset"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "velocity",
        "temporal-current",
        "temporal-history",
        "temporal-resolved"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "static-velocity-zero",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "moving-velocity-sign",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        },
        {
          "id": "fresh-history-after-reset",
          "required": true,
          "evidence": "INSUFFICIENT_EVIDENCE",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm run validate:full",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:488b22e084958397dd5c1677b050b3d75723e96a1ff4b01ea3c1bd49dca2401f",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/constants.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/exposure-nodes.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/lut.js",
        "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/stage.js",
        "threejs-image-pipeline/examples/webgpu-image-pipeline/canonical-browser-app.js",
        "threejs-image-pipeline/examples/webgpu-image-pipeline/canonical-main.js",
        "threejs-image-pipeline/examples/webgpu-temporal-history"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-touch-history-frost",
      "skill": "threejs-dynamic-surface-effects",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/frost-surface-effect.js",
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/frost-webgpu-lab.js",
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/route-wrapper.js",
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/main.js",
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/index.html"
      ],
      "browserEntry": "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/index.html",
      "publishPath": "/demos/webgpu-touch-history-frost/",
      "scenarios": [
        {
          "id": "touch-history-frost",
          "route": "/demos/webgpu-touch-history-frost/",
          "startup": {
            "scenario": "touch-history-frost",
            "tier": "balanced"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "history-and-deposit",
          "route": "/demos/webgpu-touch-history-frost/mechanism/history-and-deposit/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "diffusion",
          "route": "/demos/webgpu-touch-history-frost/mechanism/diffusion/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "blur-and-reconstruction",
          "route": "/demos/webgpu-touch-history-frost/mechanism/blur-and-reconstruction/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "crystal-field-and-normals",
          "route": "/demos/webgpu-touch-history-frost/mechanism/crystal-field-and-normals/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "refraction-and-fresnel",
          "route": "/demos/webgpu-touch-history-frost/mechanism/refraction-and-fresnel/",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "full-vs-dirty-vs-idle",
          "route": "/demos/webgpu-touch-history-frost/mechanism/full-vs-dirty-vs-idle/",
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "full",
          "targetClass": "close-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "historyScale": 1,
            "blurScale": 0.5,
            "dprCap": 2
          },
          "mechanismLimits": {
            "workgroupSize": [
              8,
              8,
              1
            ],
            "diffusion": true,
            "twoScaleRefraction": true
          },
          "resourceLimits": {
            "historyFormat": "RGBA16F",
            "historySlots": 2,
            "bytesPerTexel": 8
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "persistent-history",
            "same-frame-response",
            "dt-correct-decay-and-deposit",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "ordinary-inspection",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "historyScale": 0.5,
            "blurScale": 0.33,
            "dprCap": 1.5
          },
          "mechanismLimits": {
            "workgroupSize": [
              8,
              8,
              1
            ],
            "diffusion": true,
            "twoScaleRefraction": true
          },
          "resourceLimits": {
            "historyFormat": "RGBA16F",
            "historySlots": 2,
            "bytesPerTexel": 8
          },
          "degradationFromPrevious": [
            "half-resolution-history",
            "lower-blur-resolution"
          ],
          "preservedInvariants": [
            "persistent-history",
            "same-frame-response",
            "dt-correct-decay-and-deposit",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "small-projected-footprint",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "historyScale": 0.25,
            "blurScale": 0.25,
            "dprCap": 1
          },
          "mechanismLimits": {
            "workgroupSize": [
              8,
              8,
              1
            ],
            "diffusion": true,
            "twoScaleRefraction": false
          },
          "resourceLimits": {
            "historyFormat": "RGBA16F",
            "historySlots": 2,
            "bytesPerTexel": 8
          },
          "degradationFromPrevious": [
            "quarter-resolution-history",
            "single-scale-refraction"
          ],
          "preservedInvariants": [
            "persistent-history",
            "same-frame-response",
            "dt-correct-decay-and-deposit",
            "one-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "scene-color",
        "vertical-blur",
        "horizontal-blur",
        "frost-noise",
        "frozen-structure",
        "highlight-structure",
        "previous-history-ra",
        "deposit-ra",
        "next-history-ra",
        "frost-mask-before-pointer",
        "frost-mask-after-pointer",
        "sharp-blur-mix",
        "main-refraction-offset",
        "detail-refraction-offset",
        "final-without-refraction"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer backend gate after initialization",
          "status": "incomplete"
        },
        {
          "id": "storage-texture",
          "required": true,
          "evidence": "real RGBA16F ping-pong history textures",
          "status": "incomplete"
        },
        {
          "id": "compute",
          "required": true,
          "evidence": "guarded two-dimensional history update dispatch",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "await renderer.init() in canonical browser controller",
          "status": "incomplete"
        },
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": "renderer.backend.isWebGPUBackend === true",
          "status": "incomplete"
        },
        {
          "id": "mechanism-reachable",
          "required": true,
          "evidence": "fixed mechanism routes select canonical graph state",
          "status": "incomplete"
        },
        {
          "id": "odd-size-dispatch",
          "required": true,
          "evidence": "641x359 coverage with explicit 8x8 bounds",
          "status": "incomplete"
        },
        {
          "id": "aligned-readback",
          "required": true,
          "evidence": "capturePixels derives integer 256-byte-aligned row stride",
          "status": "incomplete"
        },
        {
          "id": "current-adapter-timing",
          "required": false,
          "evidence": "required before any performance acceptance",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node validate-temporal-surface.js",
      "sourceHash": "sha256:e541d9f92d87a2d58a4658fa3ef2e1dd49fa0ffd64ca1d9bd9f651dee5ada385",
      "proxyStatus": null,
      "sourceHashInputs": [
        "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-validation-harness",
      "title": "Native WebGPU validation harness",
      "skill": "threejs-visual-validation",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-visual-validation/examples/webgpu-validation-harness"
      ],
      "browserEntry": "threejs-visual-validation/examples/webgpu-validation-harness/index.html",
      "publishPath": "/demos/webgpu-validation-harness/",
      "scenarios": [
        {
          "id": "browser-capture",
          "route": "/demos/webgpu-validation-harness/?scenario=browser-capture",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "pipeline-graph-inspector",
          "route": "/demos/webgpu-validation-harness/?scenario=pipeline-graph-inspector",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "resource-ledger",
          "route": "/demos/webgpu-validation-harness/?scenario=resource-ledger",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "timing-and-governor",
          "route": "/demos/webgpu-validation-harness/?scenario=timing-and-governor",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "lifecycle-and-leaks",
          "route": "/demos/webgpu-validation-harness/?scenario=lifecycle-and-leaks",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "visual-error-metrics",
          "route": "/demos/webgpu-validation-harness/?scenario=visual-error-metrics",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mutation-gallery",
          "route": "/demos/webgpu-validation-harness/?scenario=mutation-gallery",
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "artifact-inspector",
          "route": "/demos/webgpu-validation-harness/?scenario=artifact-inspector",
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "aligned-readback",
          "route": "/demos/webgpu-validation-harness/mechanism/aligned-readback/",
          "startup": {
            "scenario": "browser-capture",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "claim-verdicts",
          "route": "/demos/webgpu-validation-harness/mechanism/claim-verdicts/",
          "startup": {
            "scenario": "artifact-inspector",
            "mode": "emissive"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "gpu-timestamps",
          "route": "/demos/webgpu-validation-harness/mechanism/gpu-timestamps/",
          "startup": {
            "scenario": "timing-and-governor",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "resource-inventory",
          "route": "/demos/webgpu-validation-harness/mechanism/resource-inventory/",
          "startup": {
            "scenario": "resource-ledger",
            "mode": "normal"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "visual-errors",
          "route": "/demos/webgpu-validation-harness/mechanism/visual-errors/",
          "startup": {
            "scenario": "visual-error-metrics",
            "mode": "normal"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "lifecycle-trend",
          "route": "/demos/webgpu-validation-harness/mechanism/lifecycle-trend/",
          "startup": {
            "scenario": "lifecycle-and-leaks",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "schema-fixture",
          "targetClass": "schema-transport-only",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scenePassScale": 1,
            "dprCap": 1
          },
          "mechanismLimits": {
            "runtimeClaims": 0
          },
          "resourceLimits": {
            "publishable": false
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "schema v2",
            "claim separation",
            "fixture quarantine"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "webgpu-correctness",
          "targetClass": "current-adapter-correctness",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scenePassScale": 1,
            "dprCap": 2
          },
          "mechanismLimits": {
            "mrtAttachments": 3
          },
          "resourceLimits": {
            "lifecycleCyclesMinimum": 50,
            "lifecycleCyclesMaximum": 100
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "native WebGPU",
            "real MRT",
            "aligned readback",
            "one output owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "target-performance",
          "targetClass": "current-adapter-performance",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scenePassScale": 1,
            "dprCap": 1
          },
          "mechanismLimits": {
            "gpuTimestampsRequired": true
          },
          "resourceLimits": {
            "sustainedTraceRequired": true
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "native WebGPU",
            "timestamp-backed GPU attribution"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "governor-stress",
          "targetClass": "current-adapter-governor-stress",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scenePassScale": 0.5,
            "dprCap": 1
          },
          "mechanismLimits": {
            "governorTraceRequired": true
          },
          "resourceLimits": {
            "oscillationAllowed": false
          },
          "degradationFromPrevious": [
            "scene pass resolution scale reduced to 0.5"
          ],
          "preservedInvariants": [
            "native WebGPU",
            "MRT semantics",
            "output ownership"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "release",
          "targetClass": "current-adapter-release",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "scenePassScale": 1,
            "dprCap": 1
          },
          "mechanismLimits": {
            "allClaimClassesResolved": true
          },
          "resourceLimits": {
            "lifecycleCyclesMinimum": 50,
            "lifecycleCyclesMaximum": 100
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "native WebGPU",
            "schema v2",
            "real images",
            "lifecycle stability"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "no-post",
        "normal",
        "emissive"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "renderer.backend.isWebGPUBackend after await renderer.init()",
          "status": "incomplete"
        },
        {
          "id": "render-target-readback",
          "required": true,
          "evidence": "RGBA8 capture target copied through an aligned WebGPU row layout",
          "status": "incomplete"
        },
        {
          "id": "timestamp-query",
          "required": false,
          "evidence": "Required only by target-performance and release GPU-attribution claims",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "renderer-init",
          "required": true,
          "evidence": "Native browser subject initialization and backend gate",
          "status": "incomplete"
        },
        {
          "id": "mrt-readback",
          "required": true,
          "evidence": "Actual output, normal, and emissive render-target readback",
          "status": "incomplete"
        },
        {
          "id": "schema-v2",
          "required": true,
          "evidence": "Fourteen semantic JSON artifacts plus required real images",
          "status": "incomplete"
        },
        {
          "id": "lifecycle",
          "required": true,
          "evidence": "50-100 create/render/resize/mode/tier/dispose cycles",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run validate:full",
      "commands": {
        "check": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run check",
        "test": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run validate:unit",
        "mutations": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run test:mutations",
        "capture": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run capture",
        "validateArtifacts": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run validate:artifacts",
        "validateQuick": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run validate:quick",
        "validateFull": "npm --prefix threejs-visual-validation/examples/webgpu-validation-harness run validate:full"
      },
      "sourceHash": "sha256:44bfcf58370e5d312508fc0e0e7e4ad94c596b6f12254783625de76e93e77aa6",
      "proxyStatus": null,
      "notes": [
        "Current-adapter browser capture and lifecycle evidence remain incomplete; no runtime acceptance is claimed."
      ],
      "sourceHashInputs": [
        "threejs-visual-validation/examples/webgpu-validation-harness"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-vegetation-integration",
      "title": "Host-Owned Planet, Terrain, Dense Grass, and Ash Integration",
      "skill": "threejs-procedural-vegetation",
      "threeRevision": "0.185.1",
      "kind": "integration-demo",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-procedural-vegetation/examples/webgpu-vegetation-integration/browser-lab.js",
        "threejs-procedural-vegetation/examples/webgpu-vegetation-integration/route-contract.js",
        "threejs-procedural-vegetation/examples/webgpu-vegetation-integration/vegetation-integration.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/integration-adapter.js",
        "threejs-procedural-vegetation/examples/structured-ash-growth/ash-scene.js"
      ],
      "browserEntry": "threejs-procedural-vegetation/examples/webgpu-vegetation-integration/index.html",
      "publishPath": "/demos/webgpu-vegetation-integration/",
      "scenarios": [
        {
          "id": "weathered-world-host",
          "route": "/demos/webgpu-vegetation-integration/?scenario=weathered-world-host",
          "startup": {
            "scenario": "weathered-world-host"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "creature-habitat-host",
          "route": "/demos/webgpu-vegetation-integration/?scenario=creature-habitat-host",
          "startup": {
            "scenario": "creature-habitat-host"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "host-ownership",
          "route": "/demos/webgpu-vegetation-integration/mechanism/host-ownership/",
          "startup": {
            "mode": "owner-graph"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-weather",
          "route": "/demos/webgpu-vegetation-integration/mechanism/shared-weather/",
          "startup": {
            "mode": "weather-diagnostics"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "shared-contacts",
          "route": "/demos/webgpu-vegetation-integration/mechanism/shared-contacts/",
          "startup": {
            "mode": "contact-diagnostics"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "hero",
          "targetClass": "Integration correctness workload; performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 2,
              "unit": "ratio",
              "label": "Authored",
              "source": "integration hero tier"
            }
          },
          "mechanismLimits": {
            "denseTier": "high",
            "ashForestCount": {
              "value": 100,
              "unit": "trees",
              "label": "Authored",
              "source": "integration hero fixture"
            }
          },
          "resourceLimits": {
            "vegetationForestDraws": {
              "value": 4,
              "unit": "draws",
              "label": "Gated",
              "source": "two materials across two Ash LOD bands"
            },
            "denseStorageBytes": {
              "value": 37632000,
              "unit": "bytes",
              "label": "Derived",
              "source": "49*12000*64"
            },
            "ashForestStorageBytes": {
              "value": 3200,
              "unit": "bytes",
              "label": "Derived",
              "source": "100*2*vec4<f32>"
            }
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "host-owned planet and terrain",
            "one host pipeline",
            "one tone map",
            "one output transform",
            "shared weather and units"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "balanced",
          "targetClass": "Integration correctness workload; performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1.5,
              "unit": "ratio",
              "label": "Authored",
              "source": "integration balanced tier"
            }
          },
          "mechanismLimits": {
            "denseTier": "medium",
            "ashForestCount": {
              "value": 100,
              "unit": "trees",
              "label": "Authored",
              "source": "integration balanced fixture"
            }
          },
          "resourceLimits": {
            "vegetationForestDraws": {
              "value": 4,
              "unit": "draws",
              "label": "Gated",
              "source": "two materials across two Ash LOD bands"
            },
            "denseStorageBytes": {
              "value": 12800000,
              "unit": "bytes",
              "label": "Derived",
              "source": "25*8000*64"
            },
            "ashForestStorageBytes": {
              "value": 3200,
              "unit": "bytes",
              "label": "Derived",
              "source": "100*2*vec4<f32>"
            }
          },
          "degradationFromPrevious": [
            "reduce dense placement tier"
          ],
          "preservedInvariants": [
            "host-owned planet and terrain",
            "one host pipeline",
            "one tone map",
            "one output transform",
            "shared weather and units"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "budgeted",
          "targetClass": "Minimum integration correctness workload; performance unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "dprCap": {
              "value": 1,
              "unit": "ratio",
              "label": "Authored",
              "source": "integration budgeted tier"
            }
          },
          "mechanismLimits": {
            "denseTier": "low",
            "ashForestCount": {
              "value": 50,
              "unit": "trees",
              "label": "Authored",
              "source": "integration budgeted fixture"
            }
          },
          "resourceLimits": {
            "vegetationForestDraws": {
              "value": 4,
              "unit": "draws",
              "label": "Gated",
              "source": "two materials across two Ash LOD bands"
            },
            "denseStorageBytes": {
              "value": 1728000,
              "unit": "bytes",
              "label": "Derived",
              "source": "9*3000*64"
            },
            "ashForestStorageBytes": {
              "value": 1600,
              "unit": "bytes",
              "label": "Derived",
              "source": "50*2*vec4<f32>"
            }
          },
          "degradationFromPrevious": [
            "reduce dense placement tier",
            "reduce background Ash instances"
          ],
          "preservedInvariants": [
            "host-owned planet and terrain",
            "one host pipeline",
            "one tone map",
            "one output transform",
            "shared weather and units"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "owner-graph",
        "weather-diagnostics",
        "contact-diagnostics"
      ],
      "cameras": [
        "host-camera"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": "host renderer backend contract",
          "status": "incomplete"
        },
        {
          "id": "host-pipeline",
          "required": true,
          "evidence": "pipeline/tone/output share one injected owner id",
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "owner-graph",
          "required": true,
          "evidence": "validate-integration.mjs duplicate-owner mutations",
          "status": "incomplete"
        },
        {
          "id": "shared-world-units",
          "required": true,
          "evidence": "planet and terrain unit equality gate",
          "status": "incomplete"
        },
        {
          "id": "shared-weather",
          "required": true,
          "evidence": "same host weather object drives dense grass and Ash",
          "status": "incomplete"
        },
        {
          "id": "shared-contacts",
          "required": true,
          "evidence": "host contacts update dense touch channel without static topology regeneration",
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run validate:unit",
      "commands": {
        "check": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run check",
        "test": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run validate:unit",
        "mutations": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run test:mutations",
        "capture": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run capture",
        "validateArtifacts": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run validate:artifacts",
        "validateQuick": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run validate:quick",
        "validateFull": "npm --prefix threejs-procedural-vegetation/examples/webgpu-vegetation-integration run validate:full"
      },
      "sourceHash": "sha256:31984441062514cab7c0c7fa5a3156d32290c6f981b3e4ce4aa250de7031da6f",
      "proxyStatus": null,
      "notes": [
        "The browser entry is a native-WebGPU host proof with one renderer, one RenderPipeline, one tone map, and one output conversion.",
        "Status remains incomplete until a current-adapter v2 evidence bundle is captured and consumed by Weathered World and Creature Habitat."
      ],
      "sourceHashInputs": [
        "labs/runtime/strict-lab-controller.mjs",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-a.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-b.png",
        "threejs-procedural-vegetation/assets/generated-variants/meadow-density-c.png",
        "threejs-procedural-vegetation/assets/structured-ash-growth/ash.png",
        "threejs-procedural-vegetation/assets/structured-ash-growth/bark-color.jpg",
        "threejs-procedural-vegetation/assets/structured-ash-growth/bark-normal.jpg",
        "threejs-procedural-vegetation/assets/structured-ash-growth/bark-roughness.jpg",
        "threejs-procedural-vegetation/examples/structured-ash-growth/ash-preset.js",
        "threejs-procedural-vegetation/examples/structured-ash-growth/ash-scene.js",
        "threejs-procedural-vegetation/examples/structured-ash-growth/tree-system.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/dense-grass-system.js",
        "threejs-procedural-vegetation/examples/webgpu-dense-grass/integration-adapter.js",
        "threejs-procedural-vegetation/examples/webgpu-vegetation-integration"
      ]
    },
    {
      "schemaVersion": 2,
      "id": "webgpu-weather-volume-clouds",
      "title": "Native WebGPU Weather Volume Clouds",
      "skill": "threejs-volumetric-clouds",
      "threeRevision": "0.185.1",
      "kind": "canonical-lab",
      "status": "incomplete",
      "canonicalSource": [
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/webgpu-weather-volume-clouds.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-config.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-domains.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-nodes.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-history.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-shadows.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/cloud-composite.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/browser-app.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/lab-routes.js",
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/route-shell.js"
      ],
      "browserEntry": "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/index.html",
      "publishPath": "/demos/webgpu-weather-volume-clouds/",
      "scenarios": [
        {
          "id": "spherical-shell",
          "route": "scenario/spherical-shell/",
          "startup": {
            "scenario": "spherical-shell",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "planar-slab",
          "route": "scenario/planar-slab/",
          "startup": {
            "scenario": "planar-slab",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "obb-cloud-bank",
          "route": "scenario/obb-cloud-bank/",
          "startup": {
            "scenario": "obb-cloud-bank",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "atmosphere-composition",
          "route": "scenario/atmosphere-composition/",
          "startup": {
            "scenario": "spherical-shell",
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "mechanisms": [
        {
          "id": "flagship-transport",
          "route": "mechanism/flagship-transport/",
          "startup": {
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "density-and-bounds",
          "route": "mechanism/density-and-bounds/",
          "startup": {
            "mode": "ray-near-far"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "cloud-shadows",
          "route": "mechanism/cloud-shadows/",
          "startup": {
            "mode": "cloud-shadow"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "temporal-and-upsample",
          "route": "mechanism/temporal-and-upsample/",
          "startup": {
            "mode": "history-rejection"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "tier-benchmark",
          "route": "mechanism/tier-benchmark/",
          "startup": {
            "mode": "storage-budget"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "atmosphere-composition",
          "route": "mechanism/atmosphere-composition/",
          "startup": {
            "mode": "final"
          },
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "failure-diagnostics",
          "route": "mechanism/failure-diagnostics/",
          "startup": {
            "mode": "sample-counts"
          },
          "acceptanceStatus": "incomplete"
        }
      ],
      "tiers": [
        {
          "id": "ultra",
          "targetClass": "current-adapter-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "linearScale": 0.5
          },
          "mechanismLimits": {
            "primarySteps": 160,
            "lightSteps": 8,
            "shadowCascades": 3,
            "shadowResolution": 1024
          },
          "resourceLimits": {
            "representativeDepth": "R32F",
            "cloudHistory": "RGBA16F"
          },
          "degradationFromPrevious": [],
          "preservedInvariants": [
            "bounded-domain-march",
            "beer-lambert-transfer",
            "advected-temporal-history",
            "single-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "high",
          "targetClass": "current-adapter-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "linearScale": 0.5
          },
          "mechanismLimits": {
            "primarySteps": 96,
            "lightSteps": 6,
            "shadowCascades": 3,
            "shadowResolution": 512
          },
          "resourceLimits": {
            "representativeDepth": "R32F",
            "cloudHistory": "RGBA16F"
          },
          "degradationFromPrevious": [
            "fewer primary and light samples",
            "lower shadow resolution"
          ],
          "preservedInvariants": [
            "bounded-domain-march",
            "beer-lambert-transfer",
            "advected-temporal-history",
            "single-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "default",
          "targetClass": "current-adapter-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "linearScale": 0.25
          },
          "mechanismLimits": {
            "primarySteps": 64,
            "lightSteps": 4,
            "shadowCascades": 2,
            "shadowResolution": 384
          },
          "resourceLimits": {
            "representativeDepth": "R32F",
            "cloudHistory": "RGBA16F"
          },
          "degradationFromPrevious": [
            "quarter-linear cloud grid",
            "fewer light samples",
            "two shadow cascades"
          ],
          "preservedInvariants": [
            "bounded-domain-march",
            "beer-lambert-transfer",
            "advected-temporal-history",
            "single-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        },
        {
          "id": "mobile",
          "targetClass": "mobile-class-unmeasured",
          "frameTargetMs": null,
          "resolutionPolicy": {
            "linearScale": 0.25
          },
          "mechanismLimits": {
            "primarySteps": 32,
            "lightSteps": 2,
            "shadowCascades": 1,
            "shadowResolution": 256
          },
          "resourceLimits": {
            "representativeDepth": "R32F",
            "cloudHistory": "RGBA16F"
          },
          "degradationFromPrevious": [
            "fewer primary and light samples",
            "disable unresolved detail",
            "one shadow cascade"
          ],
          "preservedInvariants": [
            "bounded-domain-march",
            "beer-lambert-transfer",
            "advected-temporal-history",
            "single-output-owner"
          ],
          "acceptanceStatus": "incomplete"
        }
      ],
      "modes": [
        "final",
        "density",
        "ray-near-far",
        "sample-counts",
        "sun-optical-depth",
        "cloud-shadow",
        "transmittance",
        "representative-depth",
        "velocity",
        "history-uv",
        "variance-bounds",
        "history-rejection",
        "upsample-depth-weights",
        "storage-budget"
      ],
      "cameras": [
        "near",
        "design",
        "far"
      ],
      "seeds": [
        1,
        2654435769
      ],
      "capabilityRequirements": [
        {
          "id": "native-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "storage-textures",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "runtimeProof": [
        {
          "id": "backend-is-webgpu",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "bounded-compute-dispatch",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "metric-r32f-depth-readback",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "temporal-disocclusion-rejection",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        },
        {
          "id": "current-adapter-gpu-timestamps",
          "required": true,
          "evidence": null,
          "status": "incomplete"
        }
      ],
      "evidenceContract": "v2",
      "evidenceBundle": null,
      "validationCommand": "node threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/validation.js",
      "commands": {
        "check": "npm run check",
        "test": "npm run validate:unit",
        "mutations": "npm run test:mutations",
        "capture": "npm run capture",
        "validateArtifacts": "npm run validate:artifacts",
        "validateQuick": "npm run validate:quick",
        "validateFull": "npm run validate:full"
      },
      "sourceHash": "sha256:7f234f0be198c3471e8600d5b9457438affaec1ead9a67bf7e7ba7faf0a2b912",
      "proxyStatus": null,
      "notes": [
        "Generated weather-map pages remain generated-asset previews and are not canonical mechanism evidence.",
        "Node structural and float64 oracle validation passes; browser/GPU capture is blocked in the current execution policy, so acceptance remains incomplete."
      ],
      "sourceHashInputs": [
        "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds"
      ]
    }
  ],
  "origins": {
    "router-manifest-lab": {
      "type": "source-manifest",
      "path": "threejs-choose-skills/examples/router-manifest-lab/lab.manifest.json",
      "canonicalDir": "threejs-choose-skills/examples/router-manifest-lab"
    },
    "debugging-contract-lab": {
      "type": "source-manifest",
      "path": "threejs-debugging/examples/debugging-contract-lab/lab.manifest.json",
      "canonicalDir": "threejs-debugging/examples/debugging-contract-lab"
    },
    "browser-fallback-harness": {
      "type": "source-manifest",
      "path": "threejs-compatibility-fallbacks/examples/browser-fallback-harness/lab.manifest.json",
      "canonicalDir": "threejs-compatibility-fallbacks/examples/browser-fallback-harness"
    },
    "webgpu-validation-harness": {
      "type": "source-manifest",
      "path": "threejs-visual-validation/examples/webgpu-validation-harness/lab.manifest.json",
      "canonicalDir": "threejs-visual-validation/examples/webgpu-validation-harness"
    },
    "webgpu-camera-rig": {
      "type": "source-manifest",
      "path": "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig/lab.manifest.json",
      "canonicalDir": "threejs-camera-controls-and-rigs/examples/webgpu-camera-rig"
    },
    "webgpu-procedural-timelines": {
      "type": "source-manifest",
      "path": "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines/lab.manifest.json",
      "canonicalDir": "threejs-procedural-motion-systems/examples/webgpu-procedural-timelines"
    },
    "webgpu-node-gtao": {
      "type": "source-manifest",
      "path": "threejs-ambient-contact-shading/examples/webgpu-node-gtao/lab.manifest.json",
      "canonicalDir": "threejs-ambient-contact-shading/examples/webgpu-node-gtao"
    },
    "node-selective-bloom": {
      "type": "source-manifest",
      "path": "threejs-bloom/examples/node-selective-bloom/lab.manifest.json",
      "canonicalDir": "threejs-bloom/examples/node-selective-bloom"
    },
    "webgpu-exposure-color-pipeline": {
      "type": "source-manifest",
      "path": "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline/lab.manifest.json",
      "canonicalDir": "threejs-exposure-color-grading/examples/webgpu-exposure-color-pipeline"
    },
    "webgpu-image-pipeline": {
      "type": "source-manifest",
      "path": "threejs-image-pipeline/examples/webgpu-image-pipeline/lab.manifest.json",
      "canonicalDir": "threejs-image-pipeline/examples/webgpu-image-pipeline"
    },
    "webgpu-cached-clipmap-shadow": {
      "type": "source-manifest",
      "path": "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow/lab.manifest.json",
      "canonicalDir": "threejs-scalable-real-time-shadows/examples/webgpu-cached-clipmap-shadow"
    },
    "webgpu-lut-atmosphere": {
      "type": "source-manifest",
      "path": "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere/lab.manifest.json",
      "canonicalDir": "threejs-sky-atmosphere-and-haze/examples/webgpu-lut-atmosphere"
    },
    "webgpu-weather-volume-clouds": {
      "type": "source-manifest",
      "path": "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds/lab.manifest.json",
      "canonicalDir": "threejs-volumetric-clouds/examples/webgpu-weather-volume-clouds"
    },
    "webgpu-fft-ocean": {
      "type": "source-manifest",
      "path": "threejs-spectral-ocean/examples/webgpu-fft-ocean/lab.manifest.json",
      "canonicalDir": "threejs-spectral-ocean/examples/webgpu-fft-ocean"
    },
    "webgpu-bounded-water": {
      "type": "source-manifest",
      "path": "threejs-water-optics/examples/webgpu-bounded-water/lab.manifest.json",
      "canonicalDir": "threejs-water-optics/examples/webgpu-bounded-water"
    },
    "webgpu-rain-snow-and-wet-surfaces": {
      "type": "source-manifest",
      "path": "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces/lab.manifest.json",
      "canonicalDir": "threejs-rain-snow-and-wet-surfaces/examples/webgpu-rain-snow-and-wet-surfaces"
    },
    "webgpu-touch-history-frost": {
      "type": "source-manifest",
      "path": "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost/lab.manifest.json",
      "canonicalDir": "threejs-dynamic-surface-effects/examples/webgpu-touch-history-frost"
    },
    "webgpu-field-bake": {
      "type": "source-manifest",
      "path": "threejs-procedural-fields/examples/webgpu-field-bake/lab.manifest.json",
      "canonicalDir": "threejs-procedural-fields/examples/webgpu-field-bake"
    },
    "tsl-procedural-pbr": {
      "type": "source-manifest",
      "path": "threejs-procedural-materials/examples/tsl-procedural-pbr/lab.manifest.json",
      "canonicalDir": "threejs-procedural-materials/examples/tsl-procedural-pbr"
    },
    "semantic-mesh-writer": {
      "type": "source-manifest",
      "path": "threejs-procedural-geometry/examples/semantic-mesh-writer/lab.manifest.json",
      "canonicalDir": "threejs-procedural-geometry/examples/semantic-mesh-writer"
    },
    "webgpu-material-slot-compiler": {
      "type": "source-manifest",
      "path": "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler/lab.manifest.json",
      "canonicalDir": "threejs-procedural-buildings-and-cities/examples/webgpu-material-slot-compiler"
    },
    "webgpu-quadtree-planet": {
      "type": "source-manifest",
      "path": "threejs-procedural-planets/examples/webgpu-quadtree-planet/lab.manifest.json",
      "canonicalDir": "threejs-procedural-planets/examples/webgpu-quadtree-planet"
    },
    "webgpu-dense-grass": {
      "type": "source-manifest",
      "path": "threejs-procedural-vegetation/examples/webgpu-dense-grass/lab.manifest.json",
      "canonicalDir": "threejs-procedural-vegetation/examples/webgpu-dense-grass"
    },
    "structured-ash-growth": {
      "type": "source-manifest",
      "path": "threejs-procedural-vegetation/examples/structured-ash-growth/lab.manifest.json",
      "canonicalDir": "threejs-procedural-vegetation/examples/structured-ash-growth"
    },
    "webgpu-procedural-creature-lab": {
      "type": "source-manifest",
      "path": "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab/lab.manifest.json",
      "canonicalDir": "threejs-procedural-creatures/examples/webgpu-procedural-creature-lab"
    },
    "webgpu-pooled-effects": {
      "type": "source-manifest",
      "path": "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects/lab.manifest.json",
      "canonicalDir": "threejs-particles-trails-and-effects/examples/webgpu-pooled-effects"
    },
    "tsl-curved-ray": {
      "type": "source-manifest",
      "path": "threejs-black-holes-and-space-effects/examples/tsl-curved-ray/lab.manifest.json",
      "canonicalDir": "threejs-black-holes-and-space-effects/examples/tsl-curved-ray"
    },
    "final-image-flight": {
      "type": "source-manifest",
      "path": "integration-labs/final-image-flight/lab.manifest.json",
      "canonicalDir": "integration-labs/final-image-flight",
      "ownerSkills": [
        "threejs-camera-controls-and-rigs",
        "threejs-procedural-motion-systems",
        "threejs-image-pipeline",
        "threejs-ambient-contact-shading",
        "threejs-bloom",
        "threejs-exposure-color-grading",
        "threejs-scalable-real-time-shadows",
        "threejs-visual-validation"
      ]
    },
    "weathered-world": {
      "type": "source-manifest",
      "path": "integration-labs/weathered-world/lab.manifest.json",
      "canonicalDir": "integration-labs/weathered-world",
      "ownerSkills": [
        "threejs-procedural-planets",
        "threejs-sky-atmosphere-and-haze",
        "threejs-volumetric-clouds",
        "threejs-spectral-ocean",
        "threejs-water-optics",
        "threejs-rain-snow-and-wet-surfaces",
        "threejs-procedural-vegetation",
        "threejs-scalable-real-time-shadows",
        "threejs-image-pipeline"
      ]
    },
    "procedural-district": {
      "type": "source-manifest",
      "path": "integration-labs/procedural-district/lab.manifest.json",
      "canonicalDir": "integration-labs/procedural-district",
      "ownerSkills": [
        "threejs-procedural-fields",
        "threejs-procedural-geometry",
        "threejs-procedural-materials",
        "threejs-procedural-buildings-and-cities",
        "threejs-rain-snow-and-wet-surfaces",
        "threejs-scalable-real-time-shadows",
        "threejs-ambient-contact-shading",
        "threejs-image-pipeline"
      ]
    },
    "creature-habitat": {
      "type": "source-manifest",
      "path": "integration-labs/creature-habitat/lab.manifest.json",
      "canonicalDir": "integration-labs/creature-habitat",
      "ownerSkills": [
        "threejs-procedural-creatures",
        "threejs-procedural-vegetation",
        "threejs-water-optics",
        "threejs-rain-snow-and-wet-surfaces",
        "threejs-camera-controls-and-rigs",
        "threejs-scalable-real-time-shadows",
        "threejs-image-pipeline"
      ]
    },
    "relativistic-space-shot": {
      "type": "source-manifest",
      "path": "integration-labs/relativistic-space-shot/lab.manifest.json",
      "canonicalDir": "integration-labs/relativistic-space-shot",
      "ownerSkills": [
        "threejs-black-holes-and-space-effects",
        "threejs-particles-trails-and-effects",
        "threejs-camera-controls-and-rigs",
        "threejs-procedural-motion-systems",
        "threejs-bloom",
        "threejs-exposure-color-grading",
        "threejs-image-pipeline"
      ]
    },
    "integration-image-pipeline-ao": {
      "type": "source-manifest",
      "path": "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao/lab.manifest.json",
      "canonicalDir": "threejs-ambient-contact-shading/examples/integration-image-pipeline-ao"
    },
    "integration-temporal-surface": {
      "type": "source-manifest",
      "path": "threejs-dynamic-surface-effects/examples/integration-temporal-surface/lab.manifest.json",
      "canonicalDir": "threejs-dynamic-surface-effects/examples/integration-temporal-surface"
    },
    "webgpu-temporal-history": {
      "type": "source-manifest",
      "path": "threejs-image-pipeline/examples/webgpu-temporal-history/lab.manifest.json",
      "canonicalDir": "threejs-image-pipeline/examples/webgpu-temporal-history"
    },
    "webgpu-vegetation-integration": {
      "type": "source-manifest",
      "path": "threejs-procedural-vegetation/examples/webgpu-vegetation-integration/lab.manifest.json",
      "canonicalDir": "threejs-procedural-vegetation/examples/webgpu-vegetation-integration"
    },
    "integration-precipitation-image-pipeline": {
      "type": "source-manifest",
      "path": "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline/lab.manifest.json",
      "canonicalDir": "threejs-rain-snow-and-wet-surfaces/examples/integration-precipitation-image-pipeline"
    },
    "webgpu-shadow-architecture-bench": {
      "type": "source-manifest",
      "path": "threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench/lab.manifest.json",
      "canonicalDir": "threejs-scalable-real-time-shadows/examples/webgpu-shadow-architecture-bench"
    },
    "webgpu-shadow-pipeline-integration": {
      "type": "source-manifest",
      "path": "threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration/lab.manifest.json",
      "canonicalDir": "threejs-scalable-real-time-shadows/examples/webgpu-shadow-pipeline-integration"
    },
    "black-holes-and-space-effects-curved-ray-accretion-volume-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-black-holes-and-space-effects/examples/curved-ray-accretion-volume",
      "canonicalDir": "threejs-black-holes-and-space-effects/examples/curved-ray-accretion-volume"
    },
    "compatibility-fallbacks-tier-planner-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-compatibility-fallbacks/examples/tier-planner",
      "canonicalDir": "threejs-compatibility-fallbacks/examples/tier-planner"
    },
    "dynamic-surface-effects-touch-history-frost-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-dynamic-surface-effects/examples/touch-history-frost",
      "canonicalDir": "threejs-dynamic-surface-effects/examples/touch-history-frost"
    },
    "image-pipeline-integration-shared-framegraph-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-image-pipeline/examples/integration-shared-framegraph",
      "canonicalDir": "threejs-image-pipeline/examples/integration-shared-framegraph"
    },
    "particles-trails-and-effects-reentry-plasma-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-particles-trails-and-effects/examples/reentry-plasma",
      "canonicalDir": "threejs-particles-trails-and-effects/examples/reentry-plasma"
    },
    "procedural-buildings-and-cities-authored-financial-tower-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-buildings-and-cities/examples/authored-financial-tower",
      "canonicalDir": "threejs-procedural-buildings-and-cities/examples/authored-financial-tower"
    },
    "procedural-geometry-sculpted-gallery-frame-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-geometry/examples/sculpted-gallery-frame",
      "canonicalDir": "threejs-procedural-geometry/examples/sculpted-gallery-frame"
    },
    "procedural-materials-lava-flow-surface-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-materials/examples/lava-flow-surface",
      "canonicalDir": "threejs-procedural-materials/examples/lava-flow-surface"
    },
    "procedural-planets-procedural-planet-surface-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-planets/examples/procedural-planet-surface",
      "canonicalDir": "threejs-procedural-planets/examples/procedural-planet-surface"
    },
    "procedural-vegetation-gpu-computed-grass-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-vegetation/examples/gpu-computed-grass",
      "canonicalDir": "threejs-procedural-vegetation/examples/gpu-computed-grass"
    },
    "procedural-vegetation-stylized-meadow-grass-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-vegetation/examples/stylized-meadow-grass",
      "canonicalDir": "threejs-procedural-vegetation/examples/stylized-meadow-grass"
    },
    "procedural-vegetation-validation-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-procedural-vegetation/examples/validation",
      "canonicalDir": "threejs-procedural-vegetation/examples/validation"
    },
    "rain-snow-and-wet-surfaces-snow-accumulation-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-rain-snow-and-wet-surfaces/examples/snow-accumulation",
      "canonicalDir": "threejs-rain-snow-and-wet-surfaces/examples/snow-accumulation"
    },
    "rain-snow-and-wet-surfaces-wet-puddle-rain-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-rain-snow-and-wet-surfaces/examples/wet-puddle-rain",
      "canonicalDir": "threejs-rain-snow-and-wet-surfaces/examples/wet-puddle-rain"
    },
    "sky-atmosphere-and-haze-lut-aerial-perspective-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-sky-atmosphere-and-haze/examples/lut-aerial-perspective",
      "canonicalDir": "threejs-sky-atmosphere-and-haze/examples/lut-aerial-perspective"
    },
    "spectral-ocean-hybrid-clear-water-ocean-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-spectral-ocean/examples/hybrid-clear-water-ocean",
      "canonicalDir": "threejs-spectral-ocean/examples/hybrid-clear-water-ocean"
    },
    "spectral-ocean-spectral-cascade-ocean-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-spectral-ocean/examples/spectral-cascade-ocean",
      "canonicalDir": "threejs-spectral-ocean/examples/spectral-cascade-ocean"
    },
    "spectral-ocean-stylized-above-below-ocean-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-spectral-ocean/examples/stylized-above-below-ocean",
      "canonicalDir": "threejs-spectral-ocean/examples/stylized-above-below-ocean"
    },
    "volumetric-clouds-deprecated-weather-volume-clouds-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-volumetric-clouds/examples/deprecated-weather-volume-clouds",
      "canonicalDir": "threejs-volumetric-clouds/examples/deprecated-weather-volume-clouds"
    },
    "water-optics-analytic-wave-optics-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-water-optics/examples/analytic-wave-optics",
      "canonicalDir": "threejs-water-optics/examples/analytic-wave-optics"
    },
    "water-optics-interactive-pool-volume-fixture": {
      "type": "inferred-secondary",
      "path": "threejs-water-optics/examples/interactive-pool-volume",
      "canonicalDir": "threejs-water-optics/examples/interactive-pool-volume"
    },
    "water-integration-surface": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "ambient-contact-shading-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "selective-bloom-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "exposure-color-grading-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "image-pipeline-framegraph-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "shadow-cascade-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "sky-atmosphere-haze-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "camera-rig-handoff-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "procedural-motion-timeline-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "pooled-particles-effects-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "procedural-geometry-writer-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "skill-router-manifest-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "compatibility-fallback-planner-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "procedural-building-compiler-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "procedural-creature-lab-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "visual-validation-harness-demo": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "water-generated-caustics": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "cloud-generated-weather-maps": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "fields-generated-biome-maps": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "frost-generated-crystals": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "materials-generated-lava-causes": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "ocean-generated-wave-seeds": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "space-generated-starfields": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "vegetation-generated-meadow-density": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "rain-generated-ripples": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    },
    "planet-generated-craters": {
      "type": "provider-registry",
      "path": "scripts/provider-demos.mjs"
    }
  }
}
