Repository navigation
feat(registry): eight more WebGPU shader backgrounds and a bundle with thirty new shaders - #5191
Open
miguel-heygen wants to merge 8 commits into
Open
miguel-heygen wants to merge 8 commits into
miguel-heygen wants to merge 8 commits into
Conversation
…h thirty new shaders
miguel-heygen
marked this pull request as ready for review
October 8, 2026 08:50
Edit accuracy: accurate 2059 (base branch 2059), smooth 1604 of thoseThe gate passes. Quarantined, measured but not gated (0) |
miguel-heygen
force-pushed
the
feat/registry-shaders-30
branch
from
October 8, 2026 15:17
8be63b4 to
38814cc
Compare
miguel-heygen
enabled auto-merge
October 8, 2026 16:33
miguel-heygen
disabled auto-merge
October 8, 2026 18:50
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Eight more 2-second WebGPU background blocks from the MIT Shaders library, used as they are with their default settings: Aurora, Plasma, Voronoi, Strands, Frost, Water, Prism and Stripes. They follow #5138's six: tagged
webgpuandwebgpu-shader,data-requires-webgpu, preview video, no poster.The shared bundle now holds thirty new shaders, so the next blocks only add their folders and never touch the bundle.
How
godrays/source/build.mjsowns the list of shaders; the driver imports it from a module the build generates, so a new shader is one line. The build copies the bundle into every block whoselib/already holds it. 1.31 MB to 1.44 MB for 30 more shaders.shaders@4.0.0; the shader sources are byte-identical in the latest 4.0.2.shaderspackage, soshaders.THIRD-PARTY-LICENSES.txtis unchanged.Verification
Seek order, all 36 shaders in the bundle. t = 1.5 s is pixel-identical when reached from 0, from 1.9 s, or in steps (0, 0.25, 1.0, 1.5). Frames at 1.0 and 1.75 s differ, so every shader moves. Not vacuous: a driver that passes the target time as a delta fails the same check.
Old six unchanged. Godrays, Liquid Metal, Marble, Mesh Gradient, Nebula and Flowing Gradient draw pixel-identical frames at 0, 1 and 2 s with the new bundle and with main's.
hyperframes checkpasses on each new block with 0 errors and 0 warnings.Guard for the stacked blocks. Two new tests in
registryBlocks.test.ts: every block that installs a file undercompositions/lib/ships the same bytes (a stale bundle in one block would overwrite the shared copy for all), and every shader block names a shader its bundle holds. Each fails when one block carries main's old bundle or a misspelled shader name.Build. It finds shader blocks by their
registry-item.jsonand fills a new block'slib/with both files. Its guard now throws if either edit to the library's index misses, not only both. A cleannpm ci && node build.mjsreproduces the committed bundle byte for byte.oxfmt --check,oxlintand the CLI typecheck pass. Outside the tests, the PR changes only block folders.Previews. Each is
hyperframes renderof the block on a Metal GPU at 24 fps, then the same web encode asscripts/generate-catalog-previews.ts(1280 wide, H.264 CRF 28), which itself skips WebGPU blocks. A rendered frame at 1 s is pixel-identical to the block seeked to 1 s in the browser. Uploaded to the docs CDN under new names only; each URL serves the uploaded bytes.Limits
Same as #5138: one shader block per page, and a host without a GPU renders these blocks only with #5133's opt-in. Frost and Water move slowly with their default speeds.
Frames from the uploaded previews at 0.25, 1.0 and 1.75 s: