accepted

Native WebGPU Dense Grass

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-dense-grass
Kind
Canonical Lab
Owning skill
Procedural Vegetation
Execution
rendering
Three.js
0.185.1
Source hash
sha256:588a351cf985a1cbc55b7192354f2e1b61572d70c61ad41b408c73888b017fc6
Published bundle hash
sha256:769958f85b1023291ec86bdc5561b14abd7d57b4e371749e64bf122a6dcef333
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 WebGPUBackend device identity + raw-capture-session evidence-manifest validates under current sourceHash.

storage-computeaccepted

dense-grass static placement compute contract exercised by unit validation; storage ledger residual for full acceptance promotion.

Runtime proof

render-target-readbackaccepted

aligned RGBA8 final/no-post/diagnostics and camera/seed/temporal readbacks in correctness package.

storage-ledgeraccepted

LabController.describeResources available at capture; dedicated storage binary ledger residual.

spatial-lodaccepted

validation.js quadrant occupancy gate (unit); physical LOD capture residual.

renderer-initaccepted

Accepted publishable release-bundle covers renderer-init for webgpu-dense-grass.

backend-is-webgpuaccepted

Accepted publishable release-bundle covers backend-is-webgpu for webgpu-dense-grass.

mechanism-reachableaccepted

Accepted publishable release-bundle covers mechanism-reachable for webgpu-dense-grass.

render-or-compute-workaccepted

Accepted publishable release-bundle covers render-or-compute-work for webgpu-dense-grass.

aligned-readbackaccepted

Accepted publishable release-bundle covers aligned-readback for webgpu-dense-grass.

Capture state

FieldPublished value
Primary route/demos/webgpu-dense-grass/
Camerasnear, design, far
Seeds0x00000001, 0x9e3779b9
Modesfinal, bounds, density, lod, wind, no-post, diagnostics
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
scenariodense-grass-placement{"scenario":"dense-grass-placement"}accepted
scenariodense-grass-wind-and-trampling{"scenario":"dense-grass-wind-and-trampling"}accepted
scenariodense-grass-lod-and-impostors{"scenario":"dense-grass-lod-and-impostors"}accepted
scenariouniform-density{"scenario":"uniform-density"}accepted
scenariomask-a{"scenario":"mask-a"}accepted
scenariomask-b{"scenario":"mask-b"}accepted
scenariomask-c{"scenario":"mask-c"}accepted
mechanismdense-grass-placement{"scenario":"dense-grass-placement","mode":"density"}accepted
mechanismdense-grass-wind-and-trampling{"scenario":"dense-grass-wind-and-trampling","mode":"wind"}accepted
mechanismdense-grass-lod-and-impostors{"scenario":"dense-grass-lod-and-impostors","mode":"lod"}accepted
tierdense/ultra{"tier":"dense/ultra"}accepted
tierdense/high{"tier":"dense/high"}accepted
tierdense/medium{"tier":"dense/medium"}accepted
tierdense/low{"tier":"dense/low"}accepted

Locked tier contracts

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

Limitations

  • Performance and GPU attribution remain NOT_CLAIMED unless a hardware performance lane is present.
  • Promoted media are native-WebGPU correctness readbacks bound by the accepted release-bundle ledger.