accepted

WebGPU Exposure Color Pipeline

This report separates published implementation state from accepted evidence. Every value below comes from the schema-v2 registry, the emitted source manifest, or promoted same-lab artifacts.

Lab id
webgpu-exposure-color-pipeline
Kind
Canonical Lab
Owning skill
Exposure And Color Grading
Execution
rendering
Three.js
0.185.1
Source hash
sha256:f238d4795026d7eee618bb68657735e143873008a57b23f304866b075361dc97
Published bundle hash
sha256:45227bfccf749ebc2a2a76074f0ae9eefaf8ca9bbae007f33cc0cf52be3f6809
Build revision
sha256:b951f17018466135b2d841a246127bf96c7f617f6274e73736ec257a7293369f
Renderer
Not promoted
Backend
Not promoted
Evidence contract
v2
Tracked release bundle
Present

Claim verdicts

canonicalAcceptancePASS
hardwarePerformanceNOT_CLAIMED

Promoted same-lab media

No same-lab evidence image is promoted for this report. The page intentionally shows status and proof requirements instead of substitute art.

Required capability and runtime proof

Capabilities

native-webgpuaccepted

mechanism-metrics.json backend.isWebGPUBackend=true; WebGPUBackend r185 correctness bundle.

storage-buffersaccepted

storage-resources.json + mechanism-metrics histogram/partial storage byte ledger from native capture.

storage-atomicsaccepted

full-histogram tier uses atomic histogram counters; storage-resources.json histogramBytes recorded.

Runtime proof

renderer-initaccepted

capture-contract + mechanism-metrics after await renderer.init() on native WebGPU backend.

compute-readbackaccepted

exposure-readback.json GPU meter state + validate:artifacts oracle keyLuminance/targetEV parity on the v2 bundle.

current-adapter-timingincomplete

No named-adapter timestamp capture accepted; performance remains INSUFFICIENT_EVIDENCE.

Capture state

FieldPublished value
Primary route/demos/webgpu-exposure-color-pipeline/
Camerasnear, design, far
Seeds0x00000001, 0x9e3779b9
Modesfinal, meter-source, histogram, adaptation, meter-mask, tone-map, lut
Capture timeNot present in the promoted report data
Adapter identityNot promoted
Raw readback hashesNot promoted

Fixed routes

KindIdStartup stateStatus
scenarioemitter{"scenario":"emitter"}accepted
scenariogray-card{"scenario":"gray-card"}accepted
scenarioswatches{"scenario":"swatches"}accepted
scenariobright-window{"scenario":"bright-window"}accepted
scenariomasked-ui{"scenario":"masked-ui"}accepted
mechanismlog-luminance-reduction{"tier":"balanced-log-reduction","mode":"meter-source","scenario":"emitter"}accepted
mechanismhistogram-and-percentiles{"tier":"full-histogram","mode":"histogram","scenario":"emitter"}accepted
mechanismadaptation{"tier":"balanced-log-reduction","mode":"adaptation","scenario":"bright-window"}accepted
mechanismmetering-masks{"tier":"full-histogram","mode":"meter-mask","scenario":"masked-ui"}accepted
mechanismtone-mapping{"tier":"balanced-log-reduction","mode":"tone-map","scenario":"swatches"}accepted
mechanismlut-grading{"tier":"full-histogram","mode":"lut","scenario":"swatches"}accepted
tierfull-histogram{"tier":"full-histogram"}accepted
tierbalanced-log-reduction{"tier":"balanced-log-reduction"}accepted
tierminimum-fixed-shot{"tier":"minimum-fixed-shot"}accepted

Locked tier contracts

full-histogram · accepted
{
  "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"
  ]
}
balanced-log-reduction · accepted
{
  "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"
  ]
}
minimum-fixed-shot · accepted
{
  "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"
  ]
}

Limitations

  • 1 required runtime-proof record remain incomplete.
  • No current-hardware performance claim is published without named-adapter timestamp evidence.