incomplete

WebGPU FFT Ocean

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-fft-ocean
Kind
Canonical Lab
Owning skill
Spectral Ocean
Execution
rendering
Three.js
0.185.1
Source hash
sha256:d8bfba57799a06f5fb8bdaf78eb70bb58a6de29a5de8f98724aa03bf85bda91a
Published bundle hash
sha256:fea09ca36e3de2839b52f25a9215f7e4110136c32152bf2eecbbf48827961c58
Build revision
sha256:d929feed6bb69df4ba0bca7a58c723f6c257d003c20d1e9417d25ccb25e4ecf9
Renderer
WebGPURenderer
Backend
WebGPUBackend
Evidence contract
v2
Tracked release bundle
Absent

Claim verdicts

visualCorrectnessPASS
mechanismCorrectnessPASS
performanceComplianceINSUFFICIENT_EVIDENCE
gpuAttributionINSUFFICIENT_EVIDENCE
lifecycleStabilityINSUFFICIENT_EVIDENCE

Promoted same-lab media

Required capability and runtime proof

Capabilities

native-webgpuaccepted

Native browser capture-session: nativeWebGPU/backend WebGPU after renderer.init(); GPU FFT fixture suite pass.

minimum-four-storage-texturesaccepted

Ocean capabilities gate requires adapter maxStorageTexturesPerShaderStage >= 4; capture initializes full cascade storage layout.

Runtime proof

renderer-initaccepted

createWebGPUFftOcean after await renderer.init(); capture-session records initialized native WebGPU.

backend-is-webgpuaccepted

metrics.backend=WebGPU / isWebGPUBackend=true in capture-session and renderer-info.json.

mechanism-reachableaccepted

Mechanism debug modes spectrum-fft/jacobian/foam/underwater captured as distinct PNG readbacks.

render-or-compute-workaccepted

GPU FFT fixture suite and per-frame compute dispatches recorded; mechanism-metrics.gpuReadback.pass=true.

aligned-readbackaccepted

Integer 256-byte-aligned RT transport-readbacks for final/diagnostics/seed/temporal captures.

complete-2d-fft-readbackaccepted

runBrowserGpuReadbackFixtures complete-2d-fft suite pass (textureLoad-based storage stages) recorded in mechanism-metrics.json.

per-cascade-surface-and-foam-readbackaccepted

whitecaps-and-foam.png + temporal foam frames and cascade surface materialCascades ledger from native capture.

pages-source-hashaccepted

evidence-manifest.sourceHash matches demo-registry sourceHash for this capture session.

Capture state

FieldPublished value
Primary route/demos/webgpu-fft-ocean/
Camerasnear, design, far, underwater
Seeds0x00000001, 0x9e3779b9
Modesfinal, height, displacement, slopes, jacobian, foam, normal, spectrum-fft, cascade-bands, underwater-optics, cpu-query, no-post, diagnostics
Capture timeNot present in the promoted report data
Adapter identityNot promoted
Raw readback hashesNot present in the promoted preview summary

Fixed routes

KindIdStartup stateStatus
scenariodirectional-sea{"mode":"final","camera":"design"}incomplete
mechanismspectrum-and-fft{"mode":"spectrum-fft","camera":"design"}incomplete
mechanismdispersion-and-cascades{"mode":"cascade-bands","camera":"design"}incomplete
mechanismderivatives-and-jacobian{"mode":"jacobian","camera":"near"}incomplete
mechanismwhitecaps-and-foam{"mode":"foam","camera":"near"}incomplete
mechanismabove-and-below-surface{"mode":"underwater-optics","camera":"underwater"}incomplete
mechanismcpu-query-parity{"mode":"cpu-query","camera":"design"}incomplete
tierultra{"tier":"ultra"}incomplete
tierhigh{"tier":"high"}incomplete
tiermedium{"tier":"medium"}incomplete
tierlow{"tier":"low"}incomplete

Locked tier contracts

ultra · incomplete
{
  "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"
  ]
}
high · incomplete
{
  "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"
  ]
}
medium · incomplete
{
  "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"
  ]
}
low · incomplete
{
  "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"
  ]
}

Limitations

  • Native WebGPU capture proves complete 2D FFT fixture readbacks, cascade surface modes, and foam temporal frames.
  • Named-adapter GPU timestamps, lifecycle soak, and release-bundle acceptance remain residual.