incomplete

Native WebGPU LUT Atmosphere

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-lut-atmosphere
Kind
Canonical Lab
Owning skill
Sky, Atmosphere, and Haze
Execution
rendering
Three.js
0.185.1
Source hash
sha256:e93675b0f1b0ec4adb8c247bf7dfb5a3e6a3f9c8c260b4cb239ab0afcd7e433c
Published bundle hash
sha256:8f99fdd1a753f03df4a3959bf9cd452c149659742877168bd1397492baaac7ed
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: backendIsWebGPU=true in renderer-info.json; mechanism-metrics records 56 compute calls on WebGPURenderer r185.

storage-texture-3daccepted

storage-resources.json products include Storage3DTexture aerial-inscattering/optical-depth with one-invocation-per-XY topology.

Runtime proof

backend-is-webgpuaccepted

renderer-info.json backendIsWebGPU=true from native capture-session.

executed-five-stage-lut-chainaccepted

mechanism-metrics.json rendererInfo.compute.calls=56 (>=5) after live five-stage LUT chain.

live-camera-body-depth-compositionaccepted

pipeline-graph.json owners.sceneDepth=browser host PassNode depth; bodyTransform=planet.matrixWorld; finalComposition includes aerialOpticalDepth.

cumulative-aerial-xy-raysaccepted

storage-resources.json aerial-products invocationTopology=one invocation per XY ray; cumulative Z loop; invocationCount=width*height.

aligned-render-target-readbackaccepted

capture-session + images/final.design.png 1200x800 PNG from integer 256-byte-aligned RT readback transport.

current-adapter-gpu-timestampsincomplete

Correctness capture profile disables timestamp queries; no named-adapter GPU timing envelope recorded.

Capture state

FieldPublished value
Primary route/demos/webgpu-lut-atmosphere/
Camerassea-level, mountain, low-orbit, high-orbit, night-side, shell-entry
Seeds0x00000001, 0x9e3779b9
Modesfinal, no-post, transmittance, multiscatter, irradiance, sky-view, aerial-inscattering, aerial-optical-depth, depth, ecef
Capture timeNot present in the promoted report data
Adapter identityNot promoted
Raw readback hashesNot present in the promoted preview summary

Fixed routes

KindIdStartup stateStatus
scenariosea-level{"camera":"sea-level","mode":"final"}incomplete
scenariomountain{"camera":"mountain","mode":"final"}incomplete
scenariolow-orbit{"camera":"low-orbit","mode":"final"}incomplete
scenariohigh-orbit{"camera":"high-orbit","mode":"final"}incomplete
scenarionight-side{"camera":"night-side","mode":"final"}incomplete
scenarioshell-entry{"camera":"shell-entry","mode":"final"}incomplete
mechanismtransmittance-and-multiscatter{"mode":"multiscatter"}incomplete
mechanismirradiance-and-sky-view{"mode":"sky-view"}incomplete
mechanismaerial-perspective{"mode":"aerial-inscattering"}incomplete
mechanismdepth-and-ecef{"mode":"depth"}incomplete
mechanismsun-moon-and-lighting{"mode":"irradiance"}incomplete
mechanismsea-level-to-orbit{"camera":"sea-level","mode":"final"}incomplete
tierultra{"tier":"ultra"}incomplete
tierhigh{"tier":"high"}incomplete
tiermobile{"tier":"mobile"}incomplete

Locked tier contracts

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

Limitations

  • Five-stage LUT chain, live depth/body composition, and cumulative aerial XY topology proved from the correctness bundle.
  • Named-adapter GPU timestamps, reference radiance/energy, and lifecycle stability remain residual.