Skip to content

backgrounds: five fluid shader background presets (core roadmap 65 M2) - #20

Open
AlexZ005 wants to merge 1 commit into
mainfrom
feat/65-visuals
Open

AlexZ005 wants to merge 1 commit into
mainfrom
feat/65-visuals

Conversation

@AlexZ005

Copy link
Copy Markdown
Contributor

Five animated background presets for core's new Configure Scene ▸ Background (core roadmap 65 M2, core PR into feat/65 from feat/65-visuals).

File Preset
backgrounds/mesh-gradient.json Mesh gradient — four drifting colours; the first leans towards the pointer
backgrounds/silk-gradient.json Silk gradient — a warped two-tone gradient
backgrounds/noise-flow.json Noise flow — domain-warped fBm, liquid / marble
backgrounds/metaballs.json Metaballs — soft blobs, one follows the pointer
backgrounds/grain-dither.json Grain & dither — gradient + film grain + ordered dither
backgrounds/index.json the list core reads (PACKS_BASE/backgrounds/index.json)
  • Each file is an ordinary background-domain shader graph document (format: 1, domain: "background", plus layer defaults). Core copies the graph into the scene when one is picked, so peers receive the document, never a CDN path.
  • Generated by tools/backgrounds/build.cjs. node tools/backgrounds/build.cjs --check fails if the committed files are stale.
  • CC0, our own work. Nothing was copied from WebGL-Fluid-Simulation or any other project.
  • Not added to the root index.json: these are not Explorer packs.

Proof (core lane):

  • tests/e2e/background-presets.test.cjs (node only): every file loads through core's loader and compiles. The GLSL passes glslangValidator at both budget tiers (octave cap 8 and 2).
  • tests/e2e/background-layer.test.cjs serves these exact files to the app through a route on PACKS_BASE/backgrounds/. In the browser, each preset compiles, draws full screen and changes >50 % of the view. A held clock gives a still frame, and the pointer moves it.
  • tests/e2e/visuals-xr-iwer.test.cjs covers the emulated Quest 3: the sphere at the low tier.

After merge (integrator): retag format-1 onto the merge commit and purge jsDelivr for backgrounds/*, then check each file's content. Until then core falls back to its one built-in preset and shows a Retry line.

🤖 Generated with Claude Code

mesh-gradient, silk-gradient, noise-flow, metaballs, grain-dither — ordinary background-domain
shader graphs built by tools/backgrounds/build.cjs (--check verifies the committed files). CC0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant