accepted

WebGPU Bounded Water

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-bounded-water
Kind
Canonical Lab
Owning skill
Water Optics
Execution
rendering
Three.js
0.185.1
Source hash
sha256:612685e33fbfc7296ba884f439f79240bd08404beee9e39690176c935f87ae70
Published bundle hash
sha256:fa42a9cb2b2f4a07fa037a6450d9785db5d463df79f6147838a579170f6fb13d
Build revision
sha256:348d7584a398e339bdf08ac952ded6eb67b5ed813416a6fe3ba445615164b63a
Renderer
WebGPURenderer
Backend
WebGPU
Evidence contract
v2
Tracked release bundle
Present

Claim verdicts

visualCorrectnessINSUFFICIENT_EVIDENCE
mechanismCorrectnessPASS
performanceComplianceNOT_CLAIMED
gpuAttributionNOT_CLAIMED
lifecycleStabilityPASS
visualErrorPASS

Promoted same-lab media

Required capability and runtime proof

Capabilities

native-webgpuaccepted

capture-session proves nativeWebGPU/backend isWebGPUBackend with device identity; raw-capture-session evidence-manifest validates.

Runtime proof

backend-is-webgpuaccepted

rendererBackendEvidence.isWebGPUBackend===true on correctness capture-session.

heightfield-readbackincomplete

presentation final/no-post/diagnostics RGBA8 readbacks captured; specialized heightfield storage probe remains residual for full acceptance.

receiver-caustic-energy-readbackincomplete

GPU storage-buffer energy-closure probe required for full acceptance; not claimed on primary correctness lane.

opaque-color-depth-without-waterincomplete

primary correctness presentation captured; specialized opaque-without-water pass proof residual for full acceptance.

gpu-mutation-probesincomplete

async-impulse-loss and receiver-energy-closure probes required for full acceptance; not claimed on primary correctness lane.

render-target-readbackaccepted

aligned RGBA8 transport/normalized readbacks present for final/no-post/diagnostics.

Capture state

FieldPublished value
Primary route/demos/webgpu-bounded-water/
Camerasnear, design, far
Seeds0x00000001, 0x9e3779b9
Modesfinal, height, velocity, normals, caustics, fresnel-and-tir, absorption, optical-transport-unavailable
Capture timeNot present in the promoted report data
Adapter identity{"source":"exact retained renderer.backend.device reference after renderer.init()","backendType":"WebGPUBackend","deviceType":"GPUDevice","deviceLabel":"","deviceIdentityVerified":true,"lossPromiseObservedOnActualDevice":true,"rendererDeviceGeneration":1}
Raw readback hashesNot present in the promoted preview summary

Fixed routes

KindIdStartup stateStatus
scenariointeractive-bounded-pool{"scenario":"interactive-bounded-pool"}accepted
mechanismheightfield-simulation{"mechanism":"heightfield-simulation"}accepted
mechanismdrops-and-object-ripples{"mechanism":"drops-and-object-ripples"}accepted
mechanismdifferential-caustics{"mechanism":"differential-caustics"}accepted
mechanismrefraction-and-absorption{"mechanism":"refraction-and-absorption"}accepted
mechanismfresnel-and-tir{"mechanism":"fresnel-and-tir"}accepted
mechanismbuoyancy-spray-and-masks{"mechanism":"buoyancy-spray-and-masks"}accepted
tierultra{"tier":"ultra"}accepted
tierhigh{"tier":"high"}accepted
tiermedium{"tier":"medium"}accepted
tierlow{"tier":"low"}accepted

Locked tier contracts

ultra · accepted
{
  "targetClass": "unmeasured-current-adapter",
  "frameTargetMs": null,
  "resolutionPolicy": {
    "simulationResolution": 512,
    "causticResolution": 512,
    "meshSegments": 192,
    "dpr": 1
  },
  "mechanismLimits": {
    "maxSubsteps": 4,
    "analyticBands": 5,
    "microBands": 4,
    "causticUpdateEverySimulationSteps": 1
  },
  "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"
  ]
}
high · accepted
{
  "targetClass": "unmeasured-current-adapter",
  "frameTargetMs": null,
  "resolutionPolicy": {
    "simulationResolution": 256,
    "causticResolution": 192,
    "meshSegments": 128,
    "dpr": 1
  },
  "mechanismLimits": {
    "maxSubsteps": 3,
    "analyticBands": 4,
    "microBands": 3,
    "causticUpdateEverySimulationSteps": 1
  },
  "resourceLimits": {
    "derivedPersistentGpuBytes": 2015392,
    "eventSnapshotBytes": 64,
    "gpuProbeBytes": 64
  },
  "degradationFromPrevious": [
    "simulation 512→256",
    "receiver caustics 512→192",
    "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"
  ]
}
medium · accepted
{
  "targetClass": "unmeasured-current-adapter",
  "frameTargetMs": null,
  "resolutionPolicy": {
    "simulationResolution": 192,
    "causticResolution": 96,
    "meshSegments": 96,
    "dpr": 1
  },
  "mechanismLimits": {
    "maxSubsteps": 3,
    "analyticBands": 3,
    "microBands": 2,
    "causticUpdateEverySimulationSteps": 2
  },
  "resourceLimits": {
    "derivedPersistentGpuBytes": 995488,
    "eventSnapshotBytes": 64,
    "gpuProbeBytes": 64
  },
  "degradationFromPrevious": [
    "simulation 256→192",
    "receiver caustics 192→96",
    "caustic cadence 1→2 simulation steps",
    "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"
  ]
}
low · accepted
{
  "targetClass": "unmeasured-current-adapter",
  "frameTargetMs": null,
  "resolutionPolicy": {
    "simulationResolution": 96,
    "causticResolution": 48,
    "meshSegments": 48,
    "dpr": 1
  },
  "mechanismLimits": {
    "maxSubsteps": 2,
    "analyticBands": 2,
    "microBands": 0,
    "causticUpdateEverySimulationSteps": 4
  },
  "resourceLimits": {
    "derivedPersistentGpuBytes": 248992,
    "eventSnapshotBytes": 64,
    "gpuProbeBytes": 64
  },
  "degradationFromPrevious": [
    "simulation 192→96",
    "receiver caustics 96→48",
    "caustic cadence 2→4 simulation steps",
    "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"
  ]
}

Limitations

  • Correctness capture records native r185 WebGPUBackend with device identity proof via existing Google Chrome CDP.
  • GPU timestamps / 60 Hz hardwarePerformance remain NOT_CLAIMED.
  • Lab acceptance remains incomplete where not already accepted.