react-native-webrtc-kaleidoscope 2.7.1 → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/ShadersGenerated.kt +8 -0
  2. package/catalog/shaders/README.md +56 -0
  3. package/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.ts +3 -0
  4. package/catalog/shaders/aurora-silk/aurora-silk.ts +3 -0
  5. package/catalog/shaders/clouds/clouds.ts +3 -0
  6. package/catalog/shaders/corporate-blobs/corporate-blobs.ts +3 -0
  7. package/catalog/shaders/data-mesh/data-mesh.ts +3 -0
  8. package/catalog/shaders/fireflies/fireflies.ts +3 -0
  9. package/catalog/shaders/godrays/godrays.ts +3 -0
  10. package/catalog/shaders/halftone-waves/halftone-waves.ts +3 -0
  11. package/catalog/shaders/kaleidoscope/kaleidoscope.ts +3 -0
  12. package/catalog/shaders/light-beams-and-motes/light-beams-and-motes.ts +3 -0
  13. package/catalog/shaders/nebula/nebula.ts +3 -0
  14. package/catalog/shaders/neo-memphis/neo-memphis.ts +3 -0
  15. package/catalog/shaders/outrun-grid/outrun-grid.frag +8 -0
  16. package/catalog/shaders/outrun-grid/outrun-grid.ts +3 -0
  17. package/catalog/shaders/plasma/plasma.ts +3 -0
  18. package/catalog/shaders/simianlights/simianlights.ts +3 -0
  19. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.d.ts.map +1 -1
  20. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.js.map +1 -1
  21. package/dist/catalog/shaders/aurora-silk/aurora-silk.d.ts.map +1 -1
  22. package/dist/catalog/shaders/aurora-silk/aurora-silk.js.map +1 -1
  23. package/dist/catalog/shaders/clouds/clouds.d.ts.map +1 -1
  24. package/dist/catalog/shaders/clouds/clouds.js.map +1 -1
  25. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.d.ts.map +1 -1
  26. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.js.map +1 -1
  27. package/dist/catalog/shaders/data-mesh/data-mesh.d.ts.map +1 -1
  28. package/dist/catalog/shaders/data-mesh/data-mesh.js.map +1 -1
  29. package/dist/catalog/shaders/fireflies/fireflies.d.ts.map +1 -1
  30. package/dist/catalog/shaders/fireflies/fireflies.js.map +1 -1
  31. package/dist/catalog/shaders/godrays/godrays.d.ts.map +1 -1
  32. package/dist/catalog/shaders/godrays/godrays.js.map +1 -1
  33. package/dist/catalog/shaders/halftone-waves/halftone-waves.d.ts.map +1 -1
  34. package/dist/catalog/shaders/halftone-waves/halftone-waves.js.map +1 -1
  35. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.d.ts.map +1 -1
  36. package/dist/catalog/shaders/kaleidoscope/kaleidoscope.js.map +1 -1
  37. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.d.ts.map +1 -1
  38. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.js.map +1 -1
  39. package/dist/catalog/shaders/nebula/nebula.d.ts.map +1 -1
  40. package/dist/catalog/shaders/nebula/nebula.js.map +1 -1
  41. package/dist/catalog/shaders/neo-memphis/neo-memphis.d.ts.map +1 -1
  42. package/dist/catalog/shaders/neo-memphis/neo-memphis.js.map +1 -1
  43. package/dist/catalog/shaders/outrun-grid/outrun-grid.d.ts.map +1 -1
  44. package/dist/catalog/shaders/outrun-grid/outrun-grid.js.map +1 -1
  45. package/dist/catalog/shaders/plasma/plasma.d.ts.map +1 -1
  46. package/dist/catalog/shaders/plasma/plasma.js.map +1 -1
  47. package/dist/catalog/shaders/simianlights/simianlights.d.ts.map +1 -1
  48. package/dist/catalog/shaders/simianlights/simianlights.js.map +1 -1
  49. package/dist/web-driver/shaders.generated.d.ts +1 -1
  50. package/dist/web-driver/shaders.generated.d.ts.map +1 -1
  51. package/dist/web-driver/shaders.generated.js +8 -0
  52. package/dist/web-driver/shaders.generated.js.map +1 -1
  53. package/ios/KaleidoscopeModule/shaders/outrun-grid.metalsrc +8 -7
  54. package/package.json +1 -1
@@ -595,6 +595,14 @@ void main() {
595
595
  lines += (1.0 - smoothstep(vec2(0.0), sz * 4.0, e)) * 0.5;
596
596
  float gridVal = clamp(lines.x + lines.y, 0.0, 1.0);
597
597
 
598
+ // Fade the grid out BEFORE rung spacing goes sub-pixel near the horizon: that
599
+ // zone moires/shimmers as it scrolls no matter how clean each line is (a second
600
+ // flicker source, separate from line width). subpx is the depth at which rungs
601
+ // are ~2 px apart, derived from uResolution; the seam glow below covers the
602
+ // faded edge so the horizon still reads as a bright line.
603
+ float subpx = sqrt(num * uResolution.y * 0.25);
604
+ gridVal *= 1.0 - smoothstep(subpx * 0.55, subpx, depth);
605
+
598
606
  vec3 floorBase = uSkyHorizon * 0.06;
599
607
  col = mix(floorBase, uGridColor, gridVal * calm);
600
608
  }
@@ -112,3 +112,59 @@ If you do edit a `.frag`:
112
112
 
113
113
  - Debian/Ubuntu/WSL: `sudo apt install -y glslang-tools spirv-tools spirv-cross`
114
114
  - macOS: `brew install glslang spirv-tools spirv-cross`
115
+
116
+ ## Cost (relative GPU budget)
117
+
118
+ Each shader carries a `// Cost:` line in its `<name>.ts` so the price is visible
119
+ where you pick presets. Use it to decide what to ship, and to drop the expensive
120
+ ones on mobile or slow devices (e.g. "nothing above MODERATE on phones").
121
+
122
+ **The portable number is `x plasma`, not the milliseconds.** Plasma is the
123
+ cheapest shader and is re-measured as the anchor on every bench run, so the ratio
124
+ is roughly device-independent; the absolute ms is one desktop iGPU at one
125
+ resolution and does **not** transfer to a phone. Rank and budget by the ratio.
126
+
127
+ **Rubric** (multiples of plasma, the floor):
128
+
129
+ | Tier | x plasma | Read it as |
130
+ |------|---------:|------------|
131
+ | CHEAP | < 5x | ship anywhere, including low-end mobile |
132
+ | MODERATE | 5–25x | fine on most devices; one at a time on weak GPUs |
133
+ | HEAVY | 25–100x | desktop / strong mobile; gate behind a capability check |
134
+ | VERY-HEAVY | > 100x | desktop-class only, or accept a low frame rate |
135
+
136
+ **Ranking** (shader:view GPU-time meter, 1920x1080, Intel UHD 770, each at its
137
+ `.ts` default uniforms, 2026-06-14; plasma anchor held ~0.29 ms across all runs):
138
+
139
+ | Shader | ms/draw | x plasma | Tier |
140
+ |--------|--------:|---------:|------|
141
+ | light-beams-and-motes | 142 | ~490x | VERY-HEAVY |
142
+ | clouds | 70 | ~240x | VERY-HEAVY |
143
+ | fireflies | 18 | ~61x | HEAVY |
144
+ | nebula | 15 | ~51x | HEAVY |
145
+ | corporate-blobs | 12 | ~42x | HEAVY |
146
+ | simianlights | 11 | ~39x | HEAVY |
147
+ | data-mesh | 6.4 | ~22x | MODERATE |
148
+ | aurora-silk | 1.9 | ~6.5x | MODERATE |
149
+ | neo-memphis | 1.0 | ~3.4x | CHEAP |
150
+ | kaleidoscope | 0.96 | ~3.3x | CHEAP |
151
+ | anamorphic-lensflare | 0.91 | ~3.1x | CHEAP |
152
+ | godrays | 0.68 | ~2.4x | CHEAP |
153
+ | outrun-grid | 0.53 | ~1.8x | CHEAP |
154
+ | halftone-waves | 0.45 | ~1.6x | CHEAP |
155
+ | plasma | 0.35 | 1x | CHEAP |
156
+
157
+ **Caveats.** The meter runs each `.frag` at full meter resolution; at runtime,
158
+ effects render at the resolution tier (much lower) and some run reduced-resolution
159
+ passes (clouds is half-res in the live pipeline), so real device cost is a
160
+ fraction of these numbers. Cost also moves with uniforms (mote count, raymarch
161
+ steps, grid density), so a specific preset can land in a neighbouring tier. The
162
+ `composite-*` and `blur` primitives are excluded: they sample the camera texture,
163
+ so they cannot be metered standalone (`blur` is a full-res 13-tap in the pipeline).
164
+
165
+ **Keeping it current.** These numbers are filled in by hand today. The intent is a
166
+ `bench` tool (the analog of the thumbnail maker) that drives the shader:view meter
167
+ headless, co-measures plasma, derives the ratio and tier, and writes the `Cost:`
168
+ line — so a new shader gets benched the same way it gets a thumbnail. Because the
169
+ ms is GPU-specific, the tool stamps the rig and date and the committed signal is
170
+ the ratio.
@@ -4,6 +4,9 @@
4
4
  // be color-matched to whatever sits behind it (e.g. the simianlights field in the
5
5
  // observation-deck composite). Shader source is ./anamorphic-lensflare.frag.
6
6
 
7
+ // Cost: CHEAP -- ~0.91 ms/draw, ~3.1x plasma (shader:view meter
8
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
9
+ // Rubric + full ranking: ../README.md ("Cost").
7
10
  import type { RGB } from '../../../src/lib/primitives.types';
8
11
  import type { UniformControl } from '../_shared/types';
9
12
 
@@ -5,6 +5,9 @@
5
5
  // these uniforms; the palette and uStyle are the big levers. Shader source is
6
6
  // shaders/aurora-silk.frag.
7
7
 
8
+ // Cost: MODERATE -- ~1.9 ms/draw, ~6.5x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -4,6 +4,9 @@
4
4
  // shows up in editors and for LLMs). This is the first of the per-shader type
5
5
  // files; the shader source is shaders/clouds.frag.
6
6
 
7
+ // Cost: VERY-HEAVY -- ~70 ms/draw, ~240x plasma (shader:view meter
8
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). 32-step fbm raymarch; the live pipeline runs it half-res (~1/4 this); scales with step size and octaves.
9
+ // Rubric + full ranking: ../README.md ("Cost").
7
10
  import type { RGB } from '../../../src/lib/primitives.types';
8
11
  import type { UniformControl } from '../_shared/types';
9
12
 
@@ -5,6 +5,9 @@
5
5
  // blobs' positions and colors are fixed in the shader; the tunables below grade,
6
6
  // scale, and pace the field. Defaults reproduce the stock prototype look.
7
7
 
8
+ // Cost: HEAVY -- ~12 ms/draw, ~42x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). Eight-blob loop.
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -5,6 +5,9 @@
5
5
  // big lever (gradient + line/crest/haze/accent), the structural dials set
6
6
  // composition and motion. Shader source is shaders/data-mesh/data-mesh.frag.
7
7
 
8
+ // Cost: MODERATE -- ~6.4 ms/draw, ~22x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). Per-pixel row loop; scales with ROWS, uGridX, uParticles.
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -2,6 +2,9 @@
2
2
  // transparent overlay of drifting glowing dots (use blend 'additive'). Shader
3
3
  // source is ./fireflies.frag.
4
4
 
5
+ // Cost: HEAVY -- ~18 ms/draw, ~61x plasma (shader:view meter
6
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
7
+ // Rubric + full ranking: ../README.md ("Cost").
5
8
  import type { RGB } from '../../../src/lib/primitives.types';
6
9
  import type { UniformControl } from '../_shared/types';
7
10
 
@@ -2,6 +2,9 @@
2
2
  // additive overlay (premultiplied), reusable on any target. Shader source is
3
3
  // ./godrays.frag.
4
4
 
5
+ // Cost: CHEAP -- ~0.68 ms/draw, ~2.4x plasma (shader:view meter
6
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
7
+ // Rubric + full ranking: ../README.md ("Cost").
5
8
  import type { RGB } from '../../../src/lib/primitives.types';
6
9
  import type { UniformControl } from '../_shared/types';
7
10
 
@@ -5,6 +5,9 @@
5
5
  // ripple) by varying these uniforms; the two-tone palette is the big lever.
6
6
  // Shader source is shaders/halftone-waves.frag.
7
7
 
8
+ // Cost: CHEAP -- ~0.45 ms/draw, ~1.6x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -5,6 +5,9 @@
5
5
  // segment count and palette are the big levers. Shader source is
6
6
  // shaders/kaleidoscope.frag.
7
7
 
8
+ // Cost: CHEAP -- ~0.96 ms/draw, ~3.3x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -5,6 +5,9 @@
5
5
  // 4-point quad (row-major TL, TR, BL, BR; y-up), a color, a fill strength, and an
6
6
  // on/off flag; the motes are shared. Defaults reproduce the stock prototype look.
7
7
 
8
+ // Cost: VERY-HEAVY -- ~142 ms/draw, ~490x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). Per-pixel mote loop dominates; scales with uMoteCount and uGlowSize. An overlay (not always on).
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -4,6 +4,9 @@
4
4
  // composite runs it full-frame behind the masked subject). Shader source is
5
5
  // ./nebula.frag.
6
6
 
7
+ // Cost: HEAVY -- ~15 ms/draw, ~51x plasma (shader:view meter
8
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). Layers x a 3x3 cell sweep; scales with STARFIELD_LAYERS_COUNT.
9
+ // Rubric + full ranking: ../README.md ("Cost").
7
10
  import type { RGB } from '../../../src/lib/primitives.types';
8
11
  import type { UniformControl } from '../_shared/types';
9
12
 
@@ -5,6 +5,9 @@
5
5
  // confetti) by varying these uniforms; the palette is the big lever. Shader
6
6
  // source is shaders/neo-memphis.frag.
7
7
 
8
+ // Cost: CHEAP -- ~1.0 ms/draw, ~3.4x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -120,6 +120,14 @@ void main() {
120
120
  lines += (1.0 - smoothstep(vec2(0.0), sz * 4.0, e)) * 0.5;
121
121
  float gridVal = clamp(lines.x + lines.y, 0.0, 1.0);
122
122
 
123
+ // Fade the grid out BEFORE rung spacing goes sub-pixel near the horizon: that
124
+ // zone moires/shimmers as it scrolls no matter how clean each line is (a second
125
+ // flicker source, separate from line width). subpx is the depth at which rungs
126
+ // are ~2 px apart, derived from uResolution; the seam glow below covers the
127
+ // faded edge so the horizon still reads as a bright line.
128
+ float subpx = sqrt(num * uResolution.y * 0.25);
129
+ gridVal *= 1.0 - smoothstep(subpx * 0.55, subpx, depth);
130
+
123
131
  vec3 floorBase = uSkyHorizon * 0.06;
124
132
  col = mix(floorBase, uGridColor, gridVal * calm);
125
133
  }
@@ -5,6 +5,9 @@
5
5
  // three color pairs (grid, sun, sky) are the big levers. Shader source is
6
6
  // shaders/outrun-grid/outrun-grid.frag.
7
7
 
8
+ // Cost: CHEAP -- ~0.53 ms/draw, ~1.8x plasma (shader:view meter
9
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). Loop-free perspective grid.
10
+ // Rubric + full ranking: ../README.md ("Cost").
8
11
  import type { RGB } from '../../../src/lib/primitives.types';
9
12
  import type { UniformControl } from '../_shared/types';
10
13
 
@@ -4,6 +4,9 @@
4
4
  // `plasma` book presets (ocean/sunset/mint/fast) via ShaderOptionsMap; this file
5
5
  // is the layer-side type + control surface. Shader source is shaders/plasma.frag.
6
6
 
7
+ // Cost: CHEAP -- ~0.35 ms/draw, ~1x plasma (shader:view meter
8
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14). The cost floor: a bare sum of sines.
9
+ // Rubric + full ranking: ../README.md ("Cost").
7
10
  import type { RGB } from '../../../src/lib/primitives.types';
8
11
  import type { UniformControl } from '../_shared/types';
9
12
 
@@ -3,6 +3,9 @@
3
3
  // scale), same opaque BACKGROUND-layer role and same uniform surface. Shader
4
4
  // source is ./simianlights.frag.
5
5
 
6
+ // Cost: HEAVY -- ~11 ms/draw, ~39x plasma (shader:view meter
7
+ // @1920, Intel UHD 770, default uniforms, 2026-06-14).
8
+ // Rubric + full ranking: ../README.md ("Cost").
6
9
  import type { RGB } from '../../../src/lib/primitives.types';
7
10
  import type { UniformControl } from '../_shared/types';
8
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"anamorphic-lensflare.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,kEAAkE;AAClE,MAAM,MAAM,2BAA2B,GAAG;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;CAC1B,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,6BAA6B,EAAE,SAAS,cAAc,EAyElE,CAAC"}
1
+ {"version":3,"file":"anamorphic-lensflare.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,kEAAkE;AAClE,MAAM,MAAM,2BAA2B,GAAG;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;CAC1B,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,6BAA6B,EAAE,SAAS,cAAc,EAyElE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"anamorphic-lensflare.js","sourceRoot":"","sources":["../../../../catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,kFAAkF;AAClF,6EAA6E;;;AA2B7E,mGAAmG;AACtF,QAAA,6BAA6B,GAA8B;IACtE;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wCAAwC;KAC9C;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,qBAAqB;KAC3B;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,0CAA0C;KAChD;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,yBAAyB;KAC/B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QAC1B,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QAC1B,GAAG,EAAE,gCAAgC;KACtC;CACF,CAAC","sourcesContent":["// Anamorphic lens-flare layer-shader interface: typed uniforms + control\n// descriptor. A cinematic camera-lens artifact, a transparent OVERLAY layer\n// (use blend 'additive'). All three palette colors are exposed so the flare can\n// be color-matched to whatever sits behind it (e.g. the simianlights field in the\n// observation-deck composite). Shader source is ./anamorphic-lensflare.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `anamorphic-lensflare` layer shader. */\nexport type AnamorphicLensFlareUniforms = {\n /** Flare X position, 0..1 (it drifts slowly around this). */\n readonly uFlareX: number;\n /** Flare Y position, 0..1 (0 = bottom). */\n readonly uFlareY: number;\n /** Overall brightness multiplier. */\n readonly uIntensity: number;\n /** Horizontal streak reach; higher = longer. */\n readonly uStreakLength: number;\n /** Main streak vertical tightness; higher = thinner. */\n readonly uStreakWidth: number;\n /** Optical-ghost strength along the flare axis. */\n readonly uGhostStrength: number;\n /** Core / warm streak tint. */\n readonly uWarmColor: RGB;\n /** Halo / wide-streak tint. */\n readonly uBlueColor: RGB;\n /** Secondary streak / ghost tint. */\n readonly uPinkColor: RGB;\n};\n\n/** The `anamorphic-lensflare` shader's tunable uniforms; defaults are the stock cinematic look. */\nexport const ANAMORPHIC_LENSFLARE_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uFlareX',\n kind: 'float',\n default: 0.68,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Flare X position (drifts around this).',\n },\n {\n name: 'uFlareY',\n kind: 'float',\n default: 0.34,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Flare Y position (0 = bottom).',\n },\n {\n name: 'uIntensity',\n kind: 'float',\n default: 0.85,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Overall brightness.',\n },\n {\n name: 'uStreakLength',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1.5,\n step: 0.01,\n doc: 'Horizontal streak reach.',\n },\n {\n name: 'uStreakWidth',\n kind: 'float',\n default: 210,\n min: 20,\n max: 400,\n step: 5,\n doc: 'Main streak tightness; higher = thinner.',\n },\n {\n name: 'uGhostStrength',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1.5,\n step: 0.01,\n doc: 'Optical-ghost strength.',\n },\n {\n name: 'uWarmColor',\n kind: 'color',\n default: [1.0, 0.82, 0.58],\n doc: 'Core / warm streak tint.',\n },\n {\n name: 'uBlueColor',\n kind: 'color',\n default: [0.35, 0.55, 1.0],\n doc: 'Halo / wide-streak tint.',\n },\n {\n name: 'uPinkColor',\n kind: 'color',\n default: [1.0, 0.45, 0.95],\n doc: 'Secondary streak / ghost tint.',\n },\n];\n"]}
1
+ {"version":3,"file":"anamorphic-lensflare.js","sourceRoot":"","sources":["../../../../catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,kFAAkF;AAClF,6EAA6E;;;AA8B7E,mGAAmG;AACtF,QAAA,6BAA6B,GAA8B;IACtE;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wCAAwC;KAC9C;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,qBAAqB;KAC3B;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,0CAA0C;KAChD;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,yBAAyB;KAC/B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QAC1B,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;QAC1B,GAAG,EAAE,gCAAgC;KACtC;CACF,CAAC","sourcesContent":["// Anamorphic lens-flare layer-shader interface: typed uniforms + control\n// descriptor. A cinematic camera-lens artifact, a transparent OVERLAY layer\n// (use blend 'additive'). All three palette colors are exposed so the flare can\n// be color-matched to whatever sits behind it (e.g. the simianlights field in the\n// observation-deck composite). Shader source is ./anamorphic-lensflare.frag.\n\n// Cost: CHEAP -- ~0.91 ms/draw, ~3.1x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14).\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `anamorphic-lensflare` layer shader. */\nexport type AnamorphicLensFlareUniforms = {\n /** Flare X position, 0..1 (it drifts slowly around this). */\n readonly uFlareX: number;\n /** Flare Y position, 0..1 (0 = bottom). */\n readonly uFlareY: number;\n /** Overall brightness multiplier. */\n readonly uIntensity: number;\n /** Horizontal streak reach; higher = longer. */\n readonly uStreakLength: number;\n /** Main streak vertical tightness; higher = thinner. */\n readonly uStreakWidth: number;\n /** Optical-ghost strength along the flare axis. */\n readonly uGhostStrength: number;\n /** Core / warm streak tint. */\n readonly uWarmColor: RGB;\n /** Halo / wide-streak tint. */\n readonly uBlueColor: RGB;\n /** Secondary streak / ghost tint. */\n readonly uPinkColor: RGB;\n};\n\n/** The `anamorphic-lensflare` shader's tunable uniforms; defaults are the stock cinematic look. */\nexport const ANAMORPHIC_LENSFLARE_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uFlareX',\n kind: 'float',\n default: 0.68,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Flare X position (drifts around this).',\n },\n {\n name: 'uFlareY',\n kind: 'float',\n default: 0.34,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Flare Y position (0 = bottom).',\n },\n {\n name: 'uIntensity',\n kind: 'float',\n default: 0.85,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Overall brightness.',\n },\n {\n name: 'uStreakLength',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1.5,\n step: 0.01,\n doc: 'Horizontal streak reach.',\n },\n {\n name: 'uStreakWidth',\n kind: 'float',\n default: 210,\n min: 20,\n max: 400,\n step: 5,\n doc: 'Main streak tightness; higher = thinner.',\n },\n {\n name: 'uGhostStrength',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1.5,\n step: 0.01,\n doc: 'Optical-ghost strength.',\n },\n {\n name: 'uWarmColor',\n kind: 'color',\n default: [1.0, 0.82, 0.58],\n doc: 'Core / warm streak tint.',\n },\n {\n name: 'uBlueColor',\n kind: 'color',\n default: [0.35, 0.55, 1.0],\n doc: 'Halo / wide-streak tint.',\n },\n {\n name: 'uPinkColor',\n kind: 'color',\n default: [1.0, 0.45, 0.95],\n doc: 'Secondary streak / ghost tint.',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"aurora-silk.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EA0DzD,CAAC"}
1
+ {"version":3,"file":"aurora-silk.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EA0DzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"aurora-silk.js","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,8EAA8E;AAC9E,4BAA4B;;;AA2B5B,mFAAmF;AACtE,QAAA,oBAAoB,GAA8B;IAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAC7F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC/F,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE;IACzF;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,uBAAuB;KAC7B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sCAAsC;KAC5C;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wBAAwB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,mCAAmC;KACzC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,4CAA4C;KAClD;CACF,CAAC","sourcesContent":["// Aurora-silk layer-shader interface: typed uniforms + control descriptor.\n// Noise-warped ribbon bands over a two-stop gradient (OS-swoosh through SaaS\n// gradient), an opaque BACKGROUND layer (issue #61). One aurora-silk.frag\n// fans out into the book presets (corporate-silk, dusk, polar) by varying\n// these uniforms; the palette and uStyle are the big levers. Shader source is\n// shaders/aurora-silk.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `aurora-silk` layer shader. */\nexport type AuroraSilkUniforms = {\n /** Gradient color at the flow's low side. */\n readonly uColorLow: RGB;\n /** Gradient color at the flow's high side. */\n readonly uColorHigh: RGB;\n /** Ribbon tint; back-of-stack ribbons shade toward uColorHigh. */\n readonly uRibbonColor: RGB;\n /** Visible ribbon count, 1..5. */\n readonly uRibbons: number;\n /** Ribbon edge softness; 0 = paper-cut crisp, 1 = fully diffuse. */\n readonly uSoftness: number;\n /** Flow direction in radians. */\n readonly uAngle: number;\n /** Drift rate; 0 freezes. */\n readonly uSpeed: number;\n /** Aesthetic morph: 0 flat paper-cut, 1 glowing silk. */\n readonly uStyle: number;\n /** Eases ribbons at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `aurora-silk` shader's tunables; defaults are the \"corporate silk\" look. */\nexport const AURORA_SILK_CONTROLS: readonly UniformControl[] = [\n { name: 'uColorLow', kind: 'color', default: [0.08, 0.11, 0.22], doc: 'Gradient low color.' },\n { name: 'uColorHigh', kind: 'color', default: [0.16, 0.29, 0.48], doc: 'Gradient high color.' },\n { name: 'uRibbonColor', kind: 'color', default: [0.36, 0.62, 0.85], doc: 'Ribbon tint.' },\n {\n name: 'uRibbons',\n kind: 'float',\n default: 4,\n min: 1,\n max: 5,\n step: 1,\n doc: 'Visible ribbon count.',\n },\n {\n name: 'uSoftness',\n kind: 'float',\n default: 0.7,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Ribbon edge softness; 0 = paper-cut.',\n },\n {\n name: 'uAngle',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 6.28,\n step: 0.01,\n doc: 'Flow direction, radians.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Drift rate; 0 freezes.',\n },\n {\n name: 'uStyle',\n kind: 'float',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01,\n doc: '0 flat paper-cut, 1 glowing silk.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases ribbons at frame center (face zone).',\n },\n];\n"]}
1
+ {"version":3,"file":"aurora-silk.js","sourceRoot":"","sources":["../../../../catalog/shaders/aurora-silk/aurora-silk.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,8EAA8E;AAC9E,4BAA4B;;;AA8B5B,mFAAmF;AACtE,QAAA,oBAAoB,GAA8B;IAC7D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAC7F,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC/F,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE;IACzF;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,uBAAuB;KAC7B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sCAAsC;KAC5C;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wBAAwB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,mCAAmC;KACzC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,4CAA4C;KAClD;CACF,CAAC","sourcesContent":["// Aurora-silk layer-shader interface: typed uniforms + control descriptor.\n// Noise-warped ribbon bands over a two-stop gradient (OS-swoosh through SaaS\n// gradient), an opaque BACKGROUND layer (issue #61). One aurora-silk.frag\n// fans out into the book presets (corporate-silk, dusk, polar) by varying\n// these uniforms; the palette and uStyle are the big levers. Shader source is\n// shaders/aurora-silk.frag.\n\n// Cost: MODERATE -- ~1.9 ms/draw, ~6.5x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14).\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `aurora-silk` layer shader. */\nexport type AuroraSilkUniforms = {\n /** Gradient color at the flow's low side. */\n readonly uColorLow: RGB;\n /** Gradient color at the flow's high side. */\n readonly uColorHigh: RGB;\n /** Ribbon tint; back-of-stack ribbons shade toward uColorHigh. */\n readonly uRibbonColor: RGB;\n /** Visible ribbon count, 1..5. */\n readonly uRibbons: number;\n /** Ribbon edge softness; 0 = paper-cut crisp, 1 = fully diffuse. */\n readonly uSoftness: number;\n /** Flow direction in radians. */\n readonly uAngle: number;\n /** Drift rate; 0 freezes. */\n readonly uSpeed: number;\n /** Aesthetic morph: 0 flat paper-cut, 1 glowing silk. */\n readonly uStyle: number;\n /** Eases ribbons at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `aurora-silk` shader's tunables; defaults are the \"corporate silk\" look. */\nexport const AURORA_SILK_CONTROLS: readonly UniformControl[] = [\n { name: 'uColorLow', kind: 'color', default: [0.08, 0.11, 0.22], doc: 'Gradient low color.' },\n { name: 'uColorHigh', kind: 'color', default: [0.16, 0.29, 0.48], doc: 'Gradient high color.' },\n { name: 'uRibbonColor', kind: 'color', default: [0.36, 0.62, 0.85], doc: 'Ribbon tint.' },\n {\n name: 'uRibbons',\n kind: 'float',\n default: 4,\n min: 1,\n max: 5,\n step: 1,\n doc: 'Visible ribbon count.',\n },\n {\n name: 'uSoftness',\n kind: 'float',\n default: 0.7,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Ribbon edge softness; 0 = paper-cut.',\n },\n {\n name: 'uAngle',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 6.28,\n step: 0.01,\n doc: 'Flow direction, radians.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Drift rate; 0 freezes.',\n },\n {\n name: 'uStyle',\n kind: 'float',\n default: 0.8,\n min: 0,\n max: 1,\n step: 0.01,\n doc: '0 flat paper-cut, 1 glowing silk.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases ribbons at frame center (face zone).',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"clouds.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/clouds/clouds.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,0BAA0B;IAC1B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAmFpD,CAAC"}
1
+ {"version":3,"file":"clouds.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/clouds/clouds.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,0BAA0B;IAC1B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAmFpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"clouds.js","sourceRoot":"","sources":["../../../../catalog/shaders/clouds/clouds.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,mDAAmD;;;AA+BnD;;;;GAIG;AACU,QAAA,eAAe,GAA8B;IACxD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC3B,GAAG,EAAE,6BAA6B;KACnC;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAChG;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;QACzB,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC3B,GAAG,EAAE,+BAA+B;KACrC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,qBAAqB;KAC3B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0CAA0C;KAChD;IACD;QACE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,yBAAyB;KAC/B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,4CAA4C;KAClD;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,0CAA0C;KAChD;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sCAAsC;KAC5C;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sBAAsB;KAC5B;CACF,CAAC","sourcesContent":["// Clouds layer-shader interface: the typed uniforms + a runtime control\n// descriptor. The descriptor is the single source the demo generates tuning\n// controls from, and it documents every uniform (GLSL can't carry this; TS\n// shows up in editors and for LLMs). This is the first of the per-shader type\n// files; the shader source is shaders/clouds.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `clouds` layer shader. */\nexport type CloudsUniforms = {\n /** Sky color near the horizon. */\n readonly uSkyLowColor: RGB;\n /** Sky color overhead. */\n readonly uSkyHighColor: RGB;\n /** Lit (upper) cloud color. */\n readonly uCloudLightColor: RGB;\n /** Shadowed (lower) cloud color. */\n readonly uCloudDarkColor: RGB;\n /** Overall brightness; lower for night, ~1 for day. */\n readonly uExposure: number;\n /** Raymarch step distance; smaller = finer/slower, larger = coarser/faster. */\n readonly uStepSize: number;\n /** How fast the clouds drift. 0 freezes them. */\n readonly uCloudSpeed: number;\n /** Cloud noise frequency; smaller = larger/broader shapes, larger = busier. */\n readonly uCloudScale: number;\n /** Opacity contributed per sample; higher = more solid clouds. */\n readonly uDensity: number;\n /** Noise threshold; lower = more cloud cover, higher = clearer sky. */\n readonly uCoverage: number;\n /** Cloud edge softness; higher = mistier edges. */\n readonly uSoftness: number;\n};\n\n/**\n * The `clouds` shader's tunable uniforms. Drives the demo's generated control\n * panel. Defaults here are the \"bright day\" look; composites override them (the\n * wizard tower runs a sunset palette, the fairy cave a moonlit-night one).\n */\nexport const CLOUDS_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uSkyLowColor',\n kind: 'color',\n default: [0.48, 0.68, 0.95],\n doc: 'Sky color near the horizon.',\n },\n { name: 'uSkyHighColor', kind: 'color', default: [0.85, 0.93, 1.0], doc: 'Sky color overhead.' },\n {\n name: 'uCloudLightColor',\n kind: 'color',\n default: [1.0, 0.97, 0.9],\n doc: 'Lit (upper) cloud color.',\n },\n {\n name: 'uCloudDarkColor',\n kind: 'color',\n default: [0.62, 0.67, 0.76],\n doc: 'Shadowed (lower) cloud color.',\n },\n {\n name: 'uExposure',\n kind: 'float',\n default: 1.0,\n min: 0.2,\n max: 1.5,\n step: 0.01,\n doc: 'Overall brightness.',\n },\n {\n name: 'uStepSize',\n kind: 'float',\n default: 0.2,\n min: 0.05,\n max: 0.4,\n step: 0.01,\n doc: 'Raymarch step distance; smaller = finer.',\n },\n {\n name: 'uCloudSpeed',\n kind: 'float',\n default: 0.2,\n min: 0.0,\n max: 1.0,\n step: 0.01,\n doc: 'Drift speed; 0 freezes.',\n },\n {\n name: 'uCloudScale',\n kind: 'float',\n default: 0.45,\n min: 0.2,\n max: 2.0,\n step: 0.01,\n doc: 'Cloud frequency; smaller = broader shapes.',\n },\n {\n name: 'uDensity',\n kind: 'float',\n default: 0.07,\n min: 0.01,\n max: 0.3,\n step: 0.005,\n doc: 'Opacity per sample; higher = more solid.',\n },\n {\n name: 'uCoverage',\n kind: 'float',\n default: 0.44,\n min: 0.0,\n max: 0.9,\n step: 0.01,\n doc: 'Threshold; lower = more cloud cover.',\n },\n {\n name: 'uSoftness',\n kind: 'float',\n default: 0.15,\n min: 0.0,\n max: 0.5,\n step: 0.01,\n doc: 'Cloud edge softness.',\n },\n];\n"]}
1
+ {"version":3,"file":"clouds.js","sourceRoot":"","sources":["../../../../catalog/shaders/clouds/clouds.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,mDAAmD;;;AAkCnD;;;;GAIG;AACU,QAAA,eAAe,GAA8B;IACxD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC3B,GAAG,EAAE,6BAA6B;KACnC;IACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IAChG;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;QACzB,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAC3B,GAAG,EAAE,+BAA+B;KACrC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,qBAAqB;KAC3B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0CAA0C;KAChD;IACD;QACE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,yBAAyB;KAC/B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,4CAA4C;KAClD;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,0CAA0C;KAChD;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sCAAsC;KAC5C;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,sBAAsB;KAC5B;CACF,CAAC","sourcesContent":["// Clouds layer-shader interface: the typed uniforms + a runtime control\n// descriptor. The descriptor is the single source the demo generates tuning\n// controls from, and it documents every uniform (GLSL can't carry this; TS\n// shows up in editors and for LLMs). This is the first of the per-shader type\n// files; the shader source is shaders/clouds.frag.\n\n// Cost: VERY-HEAVY -- ~70 ms/draw, ~240x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14). 32-step fbm raymarch; the live pipeline runs it half-res (~1/4 this); scales with step size and octaves.\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `clouds` layer shader. */\nexport type CloudsUniforms = {\n /** Sky color near the horizon. */\n readonly uSkyLowColor: RGB;\n /** Sky color overhead. */\n readonly uSkyHighColor: RGB;\n /** Lit (upper) cloud color. */\n readonly uCloudLightColor: RGB;\n /** Shadowed (lower) cloud color. */\n readonly uCloudDarkColor: RGB;\n /** Overall brightness; lower for night, ~1 for day. */\n readonly uExposure: number;\n /** Raymarch step distance; smaller = finer/slower, larger = coarser/faster. */\n readonly uStepSize: number;\n /** How fast the clouds drift. 0 freezes them. */\n readonly uCloudSpeed: number;\n /** Cloud noise frequency; smaller = larger/broader shapes, larger = busier. */\n readonly uCloudScale: number;\n /** Opacity contributed per sample; higher = more solid clouds. */\n readonly uDensity: number;\n /** Noise threshold; lower = more cloud cover, higher = clearer sky. */\n readonly uCoverage: number;\n /** Cloud edge softness; higher = mistier edges. */\n readonly uSoftness: number;\n};\n\n/**\n * The `clouds` shader's tunable uniforms. Drives the demo's generated control\n * panel. Defaults here are the \"bright day\" look; composites override them (the\n * wizard tower runs a sunset palette, the fairy cave a moonlit-night one).\n */\nexport const CLOUDS_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uSkyLowColor',\n kind: 'color',\n default: [0.48, 0.68, 0.95],\n doc: 'Sky color near the horizon.',\n },\n { name: 'uSkyHighColor', kind: 'color', default: [0.85, 0.93, 1.0], doc: 'Sky color overhead.' },\n {\n name: 'uCloudLightColor',\n kind: 'color',\n default: [1.0, 0.97, 0.9],\n doc: 'Lit (upper) cloud color.',\n },\n {\n name: 'uCloudDarkColor',\n kind: 'color',\n default: [0.62, 0.67, 0.76],\n doc: 'Shadowed (lower) cloud color.',\n },\n {\n name: 'uExposure',\n kind: 'float',\n default: 1.0,\n min: 0.2,\n max: 1.5,\n step: 0.01,\n doc: 'Overall brightness.',\n },\n {\n name: 'uStepSize',\n kind: 'float',\n default: 0.2,\n min: 0.05,\n max: 0.4,\n step: 0.01,\n doc: 'Raymarch step distance; smaller = finer.',\n },\n {\n name: 'uCloudSpeed',\n kind: 'float',\n default: 0.2,\n min: 0.0,\n max: 1.0,\n step: 0.01,\n doc: 'Drift speed; 0 freezes.',\n },\n {\n name: 'uCloudScale',\n kind: 'float',\n default: 0.45,\n min: 0.2,\n max: 2.0,\n step: 0.01,\n doc: 'Cloud frequency; smaller = broader shapes.',\n },\n {\n name: 'uDensity',\n kind: 'float',\n default: 0.07,\n min: 0.01,\n max: 0.3,\n step: 0.005,\n doc: 'Opacity per sample; higher = more solid.',\n },\n {\n name: 'uCoverage',\n kind: 'float',\n default: 0.44,\n min: 0.0,\n max: 0.9,\n step: 0.01,\n doc: 'Threshold; lower = more cloud cover.',\n },\n {\n name: 'uSoftness',\n kind: 'float',\n default: 0.15,\n min: 0.0,\n max: 0.5,\n step: 0.01,\n doc: 'Cloud edge softness.',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"corporate-blobs.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/corporate-blobs/corporate-blobs.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,6DAA6D;AAC7D,MAAM,MAAM,sBAAsB,GAAG;IACnC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAwF7D,CAAC"}
1
+ {"version":3,"file":"corporate-blobs.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/corporate-blobs/corporate-blobs.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,6DAA6D;AAC7D,MAAM,MAAM,sBAAsB,GAAG;IACnC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAwF7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"corporate-blobs.js","sourceRoot":"","sources":["../../../../catalog/shaders/corporate-blobs/corporate-blobs.ts"],"names":[],"mappings":"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","sourcesContent":["// Corporate-blobs layer-shader interface: typed uniforms + control descriptor. A\n// transparent overlay of large decorative edge/vignette blobs in flat brand\n// colors, drifting and morphing (premultiplied output; the blobs sit over\n// whatever is beneath). Shader source is ./corporate-blobs.frag. The eight\n// blobs' positions and colors are fixed in the shader; the tunables below grade,\n// scale, and pace the field. Defaults reproduce the stock prototype look.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `corporate-blobs` layer shader. */\nexport type CorporateBlobsUniforms = {\n /** Overall tint / color grade, multiplied over every blob; [1,1,1] = no grade. */\n readonly uColor: RGB;\n /** Blob 1 base color (stock: light blue). */\n readonly uBlobColor1: RGB;\n /** Blob 2 base color (stock: dark green). */\n readonly uBlobColor2: RGB;\n /** Blob 3 base color (stock: yellow). */\n readonly uBlobColor3: RGB;\n /** Blob 4 base color (stock: orange). */\n readonly uBlobColor4: RGB;\n /** Blob 5 base color (stock: light green). */\n readonly uBlobColor5: RGB;\n /** Blob 6 base color (stock: magenta). */\n readonly uBlobColor6: RGB;\n /** Blob 7 base color (stock: brown). */\n readonly uBlobColor7: RGB;\n /** Blob 8 base color (stock: dark blue). */\n readonly uBlobColor8: RGB;\n /** Overall blob opacity; stock 0.58. */\n readonly uGlobalAlpha: number;\n /** Global blob size multiplier; stock 2.55. */\n readonly uScale: number;\n /** Pushes blobs outward from center; stock 0.32. */\n readonly uEdgePull: number;\n /** Radius around center that repels blobs; stock 0.42. */\n readonly uCenterClear: number;\n /** Positional drift magnitude; 1 = stock, 0 holds blobs still. */\n readonly uMotionAmount: number;\n /** Drift + morph rate; 1 = stock, 0 freezes motion. */\n readonly uMotionSpeed: number;\n /** Blob edge falloff; stock 0.024. */\n readonly uEdgeSoftness: number;\n};\n\n/** The `corporate-blobs` shader's tunable uniforms; defaults reproduce the stock look. */\nexport const CORPORATE_BLOBS_CONTROLS: readonly UniformControl[] = [\n { name: 'uColor', kind: 'color', default: [1, 1, 1], doc: 'Overall tint / color grade.' },\n {\n name: 'uBlobColor1',\n kind: 'color',\n default: [0.376, 0.647, 0.98],\n doc: 'Blob 1 (light blue).',\n },\n {\n name: 'uBlobColor2',\n kind: 'color',\n default: [0.063, 0.725, 0.506],\n doc: 'Blob 2 (dark green).',\n },\n { name: 'uBlobColor3', kind: 'color', default: [0.984, 0.749, 0.141], doc: 'Blob 3 (yellow).' },\n { name: 'uBlobColor4', kind: 'color', default: [0.976, 0.451, 0.086], doc: 'Blob 4 (orange).' },\n {\n name: 'uBlobColor5',\n kind: 'color',\n default: [0.133, 0.773, 0.369],\n doc: 'Blob 5 (light green).',\n },\n { name: 'uBlobColor6', kind: 'color', default: [0.851, 0.275, 0.937], doc: 'Blob 6 (magenta).' },\n { name: 'uBlobColor7', kind: 'color', default: [0.341, 0.325, 0.306], doc: 'Blob 7 (brown).' },\n { name: 'uBlobColor8', kind: 'color', default: [0.008, 0.518, 0.78], doc: 'Blob 8 (dark blue).' },\n {\n name: 'uGlobalAlpha',\n kind: 'float',\n default: 0.58,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Overall blob opacity.',\n },\n {\n name: 'uScale',\n kind: 'float',\n default: 2.55,\n min: 1,\n max: 4,\n step: 0.01,\n doc: 'Global blob size.',\n },\n {\n name: 'uEdgePull',\n kind: 'float',\n default: 0.32,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Outward push from center.',\n },\n {\n name: 'uCenterClear',\n kind: 'float',\n default: 0.42,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Center clear radius.',\n },\n {\n name: 'uMotionAmount',\n kind: 'float',\n default: 1,\n min: 0,\n max: 3,\n step: 0.01,\n doc: 'Drift magnitude; 0 holds still.',\n },\n {\n name: 'uMotionSpeed',\n kind: 'float',\n default: 1,\n min: 0,\n max: 3,\n step: 0.01,\n doc: 'Drift + morph rate; 0 freezes.',\n },\n {\n name: 'uEdgeSoftness',\n kind: 'float',\n default: 0.024,\n min: 0.005,\n max: 0.1,\n step: 0.001,\n doc: 'Blob edge falloff.',\n },\n];\n"]}
1
+ {"version":3,"file":"corporate-blobs.js","sourceRoot":"","sources":["../../../../catalog/shaders/corporate-blobs/corporate-blobs.ts"],"names":[],"mappings":"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","sourcesContent":["// Corporate-blobs layer-shader interface: typed uniforms + control descriptor. A\n// transparent overlay of large decorative edge/vignette blobs in flat brand\n// colors, drifting and morphing (premultiplied output; the blobs sit over\n// whatever is beneath). Shader source is ./corporate-blobs.frag. The eight\n// blobs' positions and colors are fixed in the shader; the tunables below grade,\n// scale, and pace the field. Defaults reproduce the stock prototype look.\n\n// Cost: HEAVY -- ~12 ms/draw, ~42x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14). Eight-blob loop.\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `corporate-blobs` layer shader. */\nexport type CorporateBlobsUniforms = {\n /** Overall tint / color grade, multiplied over every blob; [1,1,1] = no grade. */\n readonly uColor: RGB;\n /** Blob 1 base color (stock: light blue). */\n readonly uBlobColor1: RGB;\n /** Blob 2 base color (stock: dark green). */\n readonly uBlobColor2: RGB;\n /** Blob 3 base color (stock: yellow). */\n readonly uBlobColor3: RGB;\n /** Blob 4 base color (stock: orange). */\n readonly uBlobColor4: RGB;\n /** Blob 5 base color (stock: light green). */\n readonly uBlobColor5: RGB;\n /** Blob 6 base color (stock: magenta). */\n readonly uBlobColor6: RGB;\n /** Blob 7 base color (stock: brown). */\n readonly uBlobColor7: RGB;\n /** Blob 8 base color (stock: dark blue). */\n readonly uBlobColor8: RGB;\n /** Overall blob opacity; stock 0.58. */\n readonly uGlobalAlpha: number;\n /** Global blob size multiplier; stock 2.55. */\n readonly uScale: number;\n /** Pushes blobs outward from center; stock 0.32. */\n readonly uEdgePull: number;\n /** Radius around center that repels blobs; stock 0.42. */\n readonly uCenterClear: number;\n /** Positional drift magnitude; 1 = stock, 0 holds blobs still. */\n readonly uMotionAmount: number;\n /** Drift + morph rate; 1 = stock, 0 freezes motion. */\n readonly uMotionSpeed: number;\n /** Blob edge falloff; stock 0.024. */\n readonly uEdgeSoftness: number;\n};\n\n/** The `corporate-blobs` shader's tunable uniforms; defaults reproduce the stock look. */\nexport const CORPORATE_BLOBS_CONTROLS: readonly UniformControl[] = [\n { name: 'uColor', kind: 'color', default: [1, 1, 1], doc: 'Overall tint / color grade.' },\n {\n name: 'uBlobColor1',\n kind: 'color',\n default: [0.376, 0.647, 0.98],\n doc: 'Blob 1 (light blue).',\n },\n {\n name: 'uBlobColor2',\n kind: 'color',\n default: [0.063, 0.725, 0.506],\n doc: 'Blob 2 (dark green).',\n },\n { name: 'uBlobColor3', kind: 'color', default: [0.984, 0.749, 0.141], doc: 'Blob 3 (yellow).' },\n { name: 'uBlobColor4', kind: 'color', default: [0.976, 0.451, 0.086], doc: 'Blob 4 (orange).' },\n {\n name: 'uBlobColor5',\n kind: 'color',\n default: [0.133, 0.773, 0.369],\n doc: 'Blob 5 (light green).',\n },\n { name: 'uBlobColor6', kind: 'color', default: [0.851, 0.275, 0.937], doc: 'Blob 6 (magenta).' },\n { name: 'uBlobColor7', kind: 'color', default: [0.341, 0.325, 0.306], doc: 'Blob 7 (brown).' },\n { name: 'uBlobColor8', kind: 'color', default: [0.008, 0.518, 0.78], doc: 'Blob 8 (dark blue).' },\n {\n name: 'uGlobalAlpha',\n kind: 'float',\n default: 0.58,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Overall blob opacity.',\n },\n {\n name: 'uScale',\n kind: 'float',\n default: 2.55,\n min: 1,\n max: 4,\n step: 0.01,\n doc: 'Global blob size.',\n },\n {\n name: 'uEdgePull',\n kind: 'float',\n default: 0.32,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Outward push from center.',\n },\n {\n name: 'uCenterClear',\n kind: 'float',\n default: 0.42,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Center clear radius.',\n },\n {\n name: 'uMotionAmount',\n kind: 'float',\n default: 1,\n min: 0,\n max: 3,\n step: 0.01,\n doc: 'Drift magnitude; 0 holds still.',\n },\n {\n name: 'uMotionSpeed',\n kind: 'float',\n default: 1,\n min: 0,\n max: 3,\n step: 0.01,\n doc: 'Drift + morph rate; 0 freezes.',\n },\n {\n name: 'uEdgeSoftness',\n kind: 'float',\n default: 0.024,\n min: 0.005,\n max: 0.1,\n step: 0.001,\n doc: 'Blob edge falloff.',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"data-mesh.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/data-mesh/data-mesh.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAuKvD,CAAC"}
1
+ {"version":3,"file":"data-mesh.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/data-mesh/data-mesh.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAuKvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-mesh.js","sourceRoot":"","sources":["../../../../catalog/shaders/data-mesh/data-mesh.ts"],"names":[],"mappings":"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","sourcesContent":["// Data-mesh layer-shader interface: typed uniforms + control descriptor. A mid-\n// 2000s corporate wireframe-wave background, an opaque BACKGROUND layer. One\n// data-mesh.frag fans out into the book presets (datafield, boardroom, acid,\n// cobalt, and slate) by varying these uniforms; the color set is the\n// big lever (gradient + line/crest/haze/accent), the structural dials set\n// composition and motion. Shader source is shaders/data-mesh/data-mesh.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `data-mesh` layer shader. */\nexport type DataMeshUniforms = {\n /** Background gradient color at the top of frame. */\n readonly uBgTop: RGB;\n /** Background gradient color at the bottom of frame. */\n readonly uBgBottom: RGB;\n /** Mid wireframe-line tint (the trough/body color). */\n readonly uLineColor: RGB;\n /** Crest highlight color (brightest along the peaks). */\n readonly uCrestColor: RGB;\n /** Atmospheric haze tint on the far rows. */\n readonly uHazeColor: RGB;\n /** The one restrained accent color (e.g. enterprise red). */\n readonly uAccentColor: RGB;\n /** Wave-field spatial frequency; lower = looser, broader hills. */\n readonly uWaveScale: number;\n /** Vertical wave displacement amount (near rows). */\n readonly uWaveAmp: number;\n /** Animation rate; 0 freezes the surface. */\n readonly uWaveSpeed: number;\n /** Column-grid density across the surface; keep loose. */\n readonly uGridX: number;\n /** Horizon height in uv.y units (rows converge toward it). */\n readonly uHorizon: number;\n /** Perspective scale of the farthest row; > 0 (guards the divide). */\n readonly uFarScale: number;\n /** Diagonal tilt; raises the right side for corner composition. */\n readonly uSlant: number;\n /** Wireframe line half-width (smaller = finer, sharper). */\n readonly uLineWidth: number;\n /** Emphasis of glowing intersection nodes (the dot reading), 0..1. */\n readonly uNodeMix: number;\n /** Emphasis of vertical struts (the wireframe reading), 0..1. */\n readonly uStrutMix: number;\n /** Overall additive mesh-glow / bloom strength. */\n readonly uGlow: number;\n /** Atmospheric far-haze strength. */\n readonly uHaze: number;\n /** Floating-particle intensity; 0 disables the field. */\n readonly uParticles: number;\n /** Lone accent-mote intensity; 0 disables it. */\n readonly uAccent: number;\n /** Eases the additive glow at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `data-mesh` shader's tunables; defaults are the cyan \"datafield\" look. */\nexport const DATA_MESH_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uBgTop',\n kind: 'color',\n default: [0.01, 0.02, 0.05],\n doc: 'Background color at top of frame.',\n },\n {\n name: 'uBgBottom',\n kind: 'color',\n default: [0.02, 0.05, 0.12],\n doc: 'Background color at bottom of frame.',\n },\n {\n name: 'uLineColor',\n kind: 'color',\n default: [0.1, 0.55, 0.75],\n doc: 'Mid wireframe-line tint.',\n },\n { name: 'uCrestColor', kind: 'color', default: [0.85, 0.97, 1.0], doc: 'Crest highlight color.' },\n {\n name: 'uHazeColor',\n kind: 'color',\n default: [0.05, 0.25, 0.4],\n doc: 'Far-row atmospheric haze tint.',\n },\n {\n name: 'uAccentColor',\n kind: 'color',\n default: [0.9, 0.15, 0.12],\n doc: 'The one restrained accent color.',\n },\n {\n name: 'uWaveScale',\n kind: 'float',\n default: 1.2,\n min: 0.4,\n max: 4,\n step: 0.05,\n doc: 'Wave frequency; lower = looser, broader hills.',\n },\n {\n name: 'uWaveAmp',\n kind: 'float',\n default: 0.14,\n min: 0,\n max: 0.4,\n step: 0.005,\n doc: 'Vertical wave displacement (near rows).',\n },\n {\n name: 'uWaveSpeed',\n kind: 'float',\n default: 0.25,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Animation rate; 0 freezes.',\n },\n {\n name: 'uGridX',\n kind: 'float',\n default: 7,\n min: 1,\n max: 24,\n step: 0.5,\n doc: 'Column-grid density; keep loose.',\n },\n {\n name: 'uHorizon',\n kind: 'float',\n default: 0.16,\n min: -0.2,\n max: 0.45,\n step: 0.01,\n doc: 'Horizon height (rows converge toward it).',\n },\n {\n name: 'uFarScale',\n kind: 'float',\n default: 0.12,\n min: 0.05,\n max: 0.5,\n step: 0.01,\n doc: 'Perspective scale of the farthest row.',\n },\n {\n name: 'uSlant',\n kind: 'float',\n default: 0.18,\n min: -0.6,\n max: 0.6,\n step: 0.01,\n doc: 'Diagonal tilt for corner composition.',\n },\n {\n name: 'uLineWidth',\n kind: 'float',\n default: 0.018,\n min: 0.004,\n max: 0.06,\n step: 0.001,\n doc: 'Wireframe line half-width; smaller = finer.',\n },\n {\n name: 'uNodeMix',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Glowing-node (dot) emphasis.',\n },\n {\n name: 'uStrutMix',\n kind: 'float',\n default: 0.35,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Vertical-strut (wireframe) emphasis.',\n },\n {\n name: 'uGlow',\n kind: 'float',\n default: 1,\n min: 0,\n max: 3,\n step: 0.01,\n doc: 'Overall mesh-glow / bloom strength.',\n },\n {\n name: 'uHaze',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Atmospheric far-haze strength.',\n },\n {\n name: 'uParticles',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Floating-particle intensity; 0 disables.',\n },\n {\n name: 'uAccent',\n kind: 'float',\n default: 0,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Lone accent-mote intensity; 0 disables.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases the additive glow at frame center (face zone).',\n },\n];\n"]}
1
+ {"version":3,"file":"data-mesh.js","sourceRoot":"","sources":["../../../../catalog/shaders/data-mesh/data-mesh.ts"],"names":[],"mappings":"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","sourcesContent":["// Data-mesh layer-shader interface: typed uniforms + control descriptor. A mid-\n// 2000s corporate wireframe-wave background, an opaque BACKGROUND layer. One\n// data-mesh.frag fans out into the book presets (datafield, boardroom, acid,\n// cobalt, and slate) by varying these uniforms; the color set is the\n// big lever (gradient + line/crest/haze/accent), the structural dials set\n// composition and motion. Shader source is shaders/data-mesh/data-mesh.frag.\n\n// Cost: MODERATE -- ~6.4 ms/draw, ~22x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14). Per-pixel row loop; scales with ROWS, uGridX, uParticles.\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `data-mesh` layer shader. */\nexport type DataMeshUniforms = {\n /** Background gradient color at the top of frame. */\n readonly uBgTop: RGB;\n /** Background gradient color at the bottom of frame. */\n readonly uBgBottom: RGB;\n /** Mid wireframe-line tint (the trough/body color). */\n readonly uLineColor: RGB;\n /** Crest highlight color (brightest along the peaks). */\n readonly uCrestColor: RGB;\n /** Atmospheric haze tint on the far rows. */\n readonly uHazeColor: RGB;\n /** The one restrained accent color (e.g. enterprise red). */\n readonly uAccentColor: RGB;\n /** Wave-field spatial frequency; lower = looser, broader hills. */\n readonly uWaveScale: number;\n /** Vertical wave displacement amount (near rows). */\n readonly uWaveAmp: number;\n /** Animation rate; 0 freezes the surface. */\n readonly uWaveSpeed: number;\n /** Column-grid density across the surface; keep loose. */\n readonly uGridX: number;\n /** Horizon height in uv.y units (rows converge toward it). */\n readonly uHorizon: number;\n /** Perspective scale of the farthest row; > 0 (guards the divide). */\n readonly uFarScale: number;\n /** Diagonal tilt; raises the right side for corner composition. */\n readonly uSlant: number;\n /** Wireframe line half-width (smaller = finer, sharper). */\n readonly uLineWidth: number;\n /** Emphasis of glowing intersection nodes (the dot reading), 0..1. */\n readonly uNodeMix: number;\n /** Emphasis of vertical struts (the wireframe reading), 0..1. */\n readonly uStrutMix: number;\n /** Overall additive mesh-glow / bloom strength. */\n readonly uGlow: number;\n /** Atmospheric far-haze strength. */\n readonly uHaze: number;\n /** Floating-particle intensity; 0 disables the field. */\n readonly uParticles: number;\n /** Lone accent-mote intensity; 0 disables it. */\n readonly uAccent: number;\n /** Eases the additive glow at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `data-mesh` shader's tunables; defaults are the cyan \"datafield\" look. */\nexport const DATA_MESH_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uBgTop',\n kind: 'color',\n default: [0.01, 0.02, 0.05],\n doc: 'Background color at top of frame.',\n },\n {\n name: 'uBgBottom',\n kind: 'color',\n default: [0.02, 0.05, 0.12],\n doc: 'Background color at bottom of frame.',\n },\n {\n name: 'uLineColor',\n kind: 'color',\n default: [0.1, 0.55, 0.75],\n doc: 'Mid wireframe-line tint.',\n },\n { name: 'uCrestColor', kind: 'color', default: [0.85, 0.97, 1.0], doc: 'Crest highlight color.' },\n {\n name: 'uHazeColor',\n kind: 'color',\n default: [0.05, 0.25, 0.4],\n doc: 'Far-row atmospheric haze tint.',\n },\n {\n name: 'uAccentColor',\n kind: 'color',\n default: [0.9, 0.15, 0.12],\n doc: 'The one restrained accent color.',\n },\n {\n name: 'uWaveScale',\n kind: 'float',\n default: 1.2,\n min: 0.4,\n max: 4,\n step: 0.05,\n doc: 'Wave frequency; lower = looser, broader hills.',\n },\n {\n name: 'uWaveAmp',\n kind: 'float',\n default: 0.14,\n min: 0,\n max: 0.4,\n step: 0.005,\n doc: 'Vertical wave displacement (near rows).',\n },\n {\n name: 'uWaveSpeed',\n kind: 'float',\n default: 0.25,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Animation rate; 0 freezes.',\n },\n {\n name: 'uGridX',\n kind: 'float',\n default: 7,\n min: 1,\n max: 24,\n step: 0.5,\n doc: 'Column-grid density; keep loose.',\n },\n {\n name: 'uHorizon',\n kind: 'float',\n default: 0.16,\n min: -0.2,\n max: 0.45,\n step: 0.01,\n doc: 'Horizon height (rows converge toward it).',\n },\n {\n name: 'uFarScale',\n kind: 'float',\n default: 0.12,\n min: 0.05,\n max: 0.5,\n step: 0.01,\n doc: 'Perspective scale of the farthest row.',\n },\n {\n name: 'uSlant',\n kind: 'float',\n default: 0.18,\n min: -0.6,\n max: 0.6,\n step: 0.01,\n doc: 'Diagonal tilt for corner composition.',\n },\n {\n name: 'uLineWidth',\n kind: 'float',\n default: 0.018,\n min: 0.004,\n max: 0.06,\n step: 0.001,\n doc: 'Wireframe line half-width; smaller = finer.',\n },\n {\n name: 'uNodeMix',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Glowing-node (dot) emphasis.',\n },\n {\n name: 'uStrutMix',\n kind: 'float',\n default: 0.35,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Vertical-strut (wireframe) emphasis.',\n },\n {\n name: 'uGlow',\n kind: 'float',\n default: 1,\n min: 0,\n max: 3,\n step: 0.01,\n doc: 'Overall mesh-glow / bloom strength.',\n },\n {\n name: 'uHaze',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Atmospheric far-haze strength.',\n },\n {\n name: 'uParticles',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Floating-particle intensity; 0 disables.',\n },\n {\n name: 'uAccent',\n kind: 'float',\n default: 0,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Lone accent-mote intensity; 0 disables.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases the additive glow at frame center (face zone).',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fireflies.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/fireflies/fireflies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,uDAAuD;AACvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAsCvD,CAAC"}
1
+ {"version":3,"file":"fireflies.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/fireflies/fireflies.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,uDAAuD;AACvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAsCvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fireflies.js","sourceRoot":"","sources":["../../../../catalog/shaders/fireflies/fireflies.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,8BAA8B;;;AAmB9B,mFAAmF;AACtE,QAAA,kBAAkB,GAA8B;IAC3D;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,cAAc;KACpB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,qBAAqB;KAC3B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,iBAAiB;KACvB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,oBAAoB;KAC1B;IACD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE;CACpF,CAAC","sourcesContent":["// Fireflies layer-shader interface: typed uniforms + control descriptor. A\n// transparent overlay of drifting glowing dots (use blend 'additive'). Shader\n// source is ./fireflies.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `fireflies` layer shader. */\nexport type FirefliesUniforms = {\n /** Radius of each firefly's soft glow. */\n readonly uGlowSize: number;\n /** Size of the bright center dot. */\n readonly uDotSize: number;\n /** Drift movement speed. */\n readonly uSpeed: number;\n /** Twinkle (fade in/out) speed. */\n readonly uTwinkle: number;\n /** Firefly tint, RGB each channel 0..1 (the warm default is the amber look). */\n readonly uColor: RGB;\n};\n\n/** The `fireflies` shader's tunable uniforms; defaults are the warm amber look. */\nexport const FIREFLIES_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uGlowSize',\n kind: 'float',\n default: 0.035,\n min: 0.005,\n max: 0.1,\n step: 0.001,\n doc: 'Glow radius.',\n },\n {\n name: 'uDotSize',\n kind: 'float',\n default: 0.006,\n min: 0.001,\n max: 0.02,\n step: 0.001,\n doc: 'Bright center size.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.35,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Movement speed.',\n },\n {\n name: 'uTwinkle',\n kind: 'float',\n default: 2.5,\n min: 0,\n max: 5,\n step: 0.1,\n doc: 'Fade in/out speed.',\n },\n { name: 'uColor', kind: 'color', default: [1.0, 0.82, 0.32], doc: 'Firefly tint.' },\n];\n"]}
1
+ {"version":3,"file":"fireflies.js","sourceRoot":"","sources":["../../../../catalog/shaders/fireflies/fireflies.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,8BAA8B;;;AAsB9B,mFAAmF;AACtE,QAAA,kBAAkB,GAA8B;IAC3D;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,cAAc;KACpB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,qBAAqB;KAC3B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,iBAAiB;KACvB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,oBAAoB;KAC1B;IACD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE;CACpF,CAAC","sourcesContent":["// Fireflies layer-shader interface: typed uniforms + control descriptor. A\n// transparent overlay of drifting glowing dots (use blend 'additive'). Shader\n// source is ./fireflies.frag.\n\n// Cost: HEAVY -- ~18 ms/draw, ~61x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14).\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `fireflies` layer shader. */\nexport type FirefliesUniforms = {\n /** Radius of each firefly's soft glow. */\n readonly uGlowSize: number;\n /** Size of the bright center dot. */\n readonly uDotSize: number;\n /** Drift movement speed. */\n readonly uSpeed: number;\n /** Twinkle (fade in/out) speed. */\n readonly uTwinkle: number;\n /** Firefly tint, RGB each channel 0..1 (the warm default is the amber look). */\n readonly uColor: RGB;\n};\n\n/** The `fireflies` shader's tunable uniforms; defaults are the warm amber look. */\nexport const FIREFLIES_CONTROLS: readonly UniformControl[] = [\n {\n name: 'uGlowSize',\n kind: 'float',\n default: 0.035,\n min: 0.005,\n max: 0.1,\n step: 0.001,\n doc: 'Glow radius.',\n },\n {\n name: 'uDotSize',\n kind: 'float',\n default: 0.006,\n min: 0.001,\n max: 0.02,\n step: 0.001,\n doc: 'Bright center size.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.35,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Movement speed.',\n },\n {\n name: 'uTwinkle',\n kind: 'float',\n default: 2.5,\n min: 0,\n max: 5,\n step: 0.1,\n doc: 'Fade in/out speed.',\n },\n { name: 'uColor', kind: 'color', default: [1.0, 0.82, 0.32], doc: 'Firefly tint.' },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"godrays.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/godrays/godrays.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mBAAmB;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EA0ErD,CAAC"}
1
+ {"version":3,"file":"godrays.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/godrays/godrays.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,qDAAqD;AACrD,MAAM,MAAM,eAAe,GAAG;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mBAAmB;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EA0ErD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"godrays.js","sourceRoot":"","sources":["../../../../catalog/shaders/godrays/godrays.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,kBAAkB;;;AA2BlB,yFAAyF;AAC5E,QAAA,gBAAgB,GAA8B;IACzD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;IACpF;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,sBAAsB;KAC5B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,cAAc;KACpB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,iCAAiC;KACvC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,iCAAiC;KACvC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,oBAAoB;KAC1B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,eAAe;KACrB;CACF,CAAC","sourcesContent":["// God rays layer-shader interface: typed uniforms + control descriptor. An\n// additive overlay (premultiplied), reusable on any target. Shader source is\n// ./godrays.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `godrays` layer shader. */\nexport type GodraysUniforms = {\n /** Ray tint (linear-ish RGB). */\n readonly uLightColor: RGB;\n /** Number of ray bands. */\n readonly uRayCount: number;\n /** Drift speed. */\n readonly uRaySpeed: number;\n /** Overall brightness / additive strength. */\n readonly uRayIntensity: number;\n /** Edge falloff exponent; higher = crisper shafts. */\n readonly uRaySoftness: number;\n /** Extra glow concentrated near the top. */\n readonly uTopGlow: number;\n /** Vertical falloff from the top. */\n readonly uFadeDistance: number;\n /** Horizontal wobble magnitude. */\n readonly uWobbleAmount: number;\n /** Wobble animation speed. */\n readonly uWobbleSpeed: number;\n};\n\n/** The `godrays` shader's tunable uniforms; defaults are the neutral cool-white look. */\nexport const GODRAYS_CONTROLS: readonly UniformControl[] = [\n { name: 'uLightColor', kind: 'color', default: [0.85, 0.95, 1.0], doc: 'Ray tint.' },\n {\n name: 'uRayCount',\n kind: 'float',\n default: 16,\n min: 2,\n max: 40,\n step: 1,\n doc: 'Number of ray bands.',\n },\n {\n name: 'uRaySpeed',\n kind: 'float',\n default: 0.95,\n min: 0,\n max: 3,\n step: 0.05,\n doc: 'Drift speed.',\n },\n {\n name: 'uRayIntensity',\n kind: 'float',\n default: 0.85,\n min: 0,\n max: 3,\n step: 0.05,\n doc: 'Brightness / additive strength.',\n },\n {\n name: 'uRaySoftness',\n kind: 'float',\n default: 2.4,\n min: 0.5,\n max: 6,\n step: 0.1,\n doc: 'Edge falloff; higher = crisper.',\n },\n {\n name: 'uTopGlow',\n kind: 'float',\n default: 0.65,\n min: 0,\n max: 1.5,\n step: 0.05,\n doc: 'Extra glow near the top.',\n },\n {\n name: 'uFadeDistance',\n kind: 'float',\n default: 1.25,\n min: 0.2,\n max: 3,\n step: 0.05,\n doc: 'Vertical falloff from the top.',\n },\n {\n name: 'uWobbleAmount',\n kind: 'float',\n default: 0.08,\n min: 0,\n max: 0.3,\n step: 0.01,\n doc: 'Horizontal wobble.',\n },\n {\n name: 'uWobbleSpeed',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 2,\n step: 0.05,\n doc: 'Wobble speed.',\n },\n];\n"]}
1
+ {"version":3,"file":"godrays.js","sourceRoot":"","sources":["../../../../catalog/shaders/godrays/godrays.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,kBAAkB;;;AA8BlB,yFAAyF;AAC5E,QAAA,gBAAgB,GAA8B;IACzD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;IACpF;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,sBAAsB;KAC5B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,cAAc;KACpB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,iCAAiC;KACvC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,iCAAiC;KACvC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,oBAAoB;KAC1B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,eAAe;KACrB;CACF,CAAC","sourcesContent":["// God rays layer-shader interface: typed uniforms + control descriptor. An\n// additive overlay (premultiplied), reusable on any target. Shader source is\n// ./godrays.frag.\n\n// Cost: CHEAP -- ~0.68 ms/draw, ~2.4x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14).\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `godrays` layer shader. */\nexport type GodraysUniforms = {\n /** Ray tint (linear-ish RGB). */\n readonly uLightColor: RGB;\n /** Number of ray bands. */\n readonly uRayCount: number;\n /** Drift speed. */\n readonly uRaySpeed: number;\n /** Overall brightness / additive strength. */\n readonly uRayIntensity: number;\n /** Edge falloff exponent; higher = crisper shafts. */\n readonly uRaySoftness: number;\n /** Extra glow concentrated near the top. */\n readonly uTopGlow: number;\n /** Vertical falloff from the top. */\n readonly uFadeDistance: number;\n /** Horizontal wobble magnitude. */\n readonly uWobbleAmount: number;\n /** Wobble animation speed. */\n readonly uWobbleSpeed: number;\n};\n\n/** The `godrays` shader's tunable uniforms; defaults are the neutral cool-white look. */\nexport const GODRAYS_CONTROLS: readonly UniformControl[] = [\n { name: 'uLightColor', kind: 'color', default: [0.85, 0.95, 1.0], doc: 'Ray tint.' },\n {\n name: 'uRayCount',\n kind: 'float',\n default: 16,\n min: 2,\n max: 40,\n step: 1,\n doc: 'Number of ray bands.',\n },\n {\n name: 'uRaySpeed',\n kind: 'float',\n default: 0.95,\n min: 0,\n max: 3,\n step: 0.05,\n doc: 'Drift speed.',\n },\n {\n name: 'uRayIntensity',\n kind: 'float',\n default: 0.85,\n min: 0,\n max: 3,\n step: 0.05,\n doc: 'Brightness / additive strength.',\n },\n {\n name: 'uRaySoftness',\n kind: 'float',\n default: 2.4,\n min: 0.5,\n max: 6,\n step: 0.1,\n doc: 'Edge falloff; higher = crisper.',\n },\n {\n name: 'uTopGlow',\n kind: 'float',\n default: 0.65,\n min: 0,\n max: 1.5,\n step: 0.05,\n doc: 'Extra glow near the top.',\n },\n {\n name: 'uFadeDistance',\n kind: 'float',\n default: 1.25,\n min: 0.2,\n max: 3,\n step: 0.05,\n doc: 'Vertical falloff from the top.',\n },\n {\n name: 'uWobbleAmount',\n kind: 'float',\n default: 0.08,\n min: 0,\n max: 0.3,\n step: 0.01,\n doc: 'Horizontal wobble.',\n },\n {\n name: 'uWobbleSpeed',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 2,\n step: 0.05,\n doc: 'Wobble speed.',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"halftone-waves.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAkE5D,CAAC"}
1
+ {"version":3,"file":"halftone-waves.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAkE5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"halftone-waves.js","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,oEAAoE;AACpE,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,gDAAgD;;;AA2BhD,iFAAiF;AACpE,QAAA,uBAAuB,GAA8B;IAChE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE;IACnF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE;IAC9E;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,qCAAqC;KAC3C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wBAAwB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,8BAA8B;KACpC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,2CAA2C;KACjD;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,8CAA8C;KACpD;CACF,CAAC","sourcesContent":["// Halftone-waves layer-shader interface: typed uniforms + control descriptor.\n// A dot lattice with traveling-wave size modulation (the late-2000s\n// \"mathematical\" tech texture), an opaque BACKGROUND layer (issue #61). One\n// halftone-waves.frag fans out into the book presets (boardroom, press,\n// ripple) by varying these uniforms; the two-tone palette is the big lever.\n// Shader source is shaders/halftone-waves.frag.\n\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `halftone-waves` layer shader. */\nexport type HalftoneWavesUniforms = {\n /** Field color behind the dots. */\n readonly uPaper: RGB;\n /** Dot color. */\n readonly uInk: RGB;\n /** Dot-grid cells across frame height; higher = finer texture. */\n readonly uPitch: number;\n /** Base dot radius in cell units. */\n readonly uDotSize: number;\n /** Wave modulation depth; 0 = static even dots. */\n readonly uWaveAmp: number;\n /** Wave travel rate; 0 freezes. */\n readonly uSpeed: number;\n /** Dot shape: 0 diamond, 1 circle, 2 square. */\n readonly uShape: number;\n /** Wave direction in radians. */\n readonly uAngle: number;\n /** Eases the waves at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `halftone-waves` shader's tunables; defaults are the \"boardroom\" look. */\nexport const HALFTONE_WAVES_CONTROLS: readonly UniformControl[] = [\n { name: 'uPaper', kind: 'color', default: [0.95, 0.95, 0.94], doc: 'Field color.' },\n { name: 'uInk', kind: 'color', default: [0.62, 0.66, 0.7], doc: 'Dot color.' },\n {\n name: 'uPitch',\n kind: 'float',\n default: 26,\n min: 8,\n max: 60,\n step: 1,\n doc: 'Dot-grid cells across frame height.',\n },\n {\n name: 'uDotSize',\n kind: 'float',\n default: 0.26,\n min: 0.05,\n max: 0.5,\n step: 0.01,\n doc: 'Base dot radius in cell units.',\n },\n {\n name: 'uWaveAmp',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Wave modulation depth.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Wave travel rate; 0 freezes.',\n },\n {\n name: 'uShape',\n kind: 'float',\n default: 1,\n min: 0,\n max: 2,\n step: 0.05,\n doc: 'Dot shape: 0 diamond, 1 circle, 2 square.',\n },\n {\n name: 'uAngle',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 6.28,\n step: 0.01,\n doc: 'Wave direction, radians.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases the waves at frame center (face zone).',\n },\n];\n"]}
1
+ {"version":3,"file":"halftone-waves.js","sourceRoot":"","sources":["../../../../catalog/shaders/halftone-waves/halftone-waves.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,oEAAoE;AACpE,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,gDAAgD;;;AA8BhD,iFAAiF;AACpE,QAAA,uBAAuB,GAA8B;IAChE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE;IACnF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE;IAC9E;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,qCAAqC;KAC3C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,gCAAgC;KACtC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,wBAAwB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,8BAA8B;KACpC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,2CAA2C;KACjD;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,0BAA0B;KAChC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,8CAA8C;KACpD;CACF,CAAC","sourcesContent":["// Halftone-waves layer-shader interface: typed uniforms + control descriptor.\n// A dot lattice with traveling-wave size modulation (the late-2000s\n// \"mathematical\" tech texture), an opaque BACKGROUND layer (issue #61). One\n// halftone-waves.frag fans out into the book presets (boardroom, press,\n// ripple) by varying these uniforms; the two-tone palette is the big lever.\n// Shader source is shaders/halftone-waves.frag.\n\n// Cost: CHEAP -- ~0.45 ms/draw, ~1.6x plasma (shader:view meter\n// @1920, Intel UHD 770, default uniforms, 2026-06-14).\n// Rubric + full ranking: ../README.md (\"Cost\").\nimport type { RGB } from '../../../src/lib/primitives.types';\nimport type { UniformControl } from '../_shared/types';\n\n/** Typed uniforms for the `halftone-waves` layer shader. */\nexport type HalftoneWavesUniforms = {\n /** Field color behind the dots. */\n readonly uPaper: RGB;\n /** Dot color. */\n readonly uInk: RGB;\n /** Dot-grid cells across frame height; higher = finer texture. */\n readonly uPitch: number;\n /** Base dot radius in cell units. */\n readonly uDotSize: number;\n /** Wave modulation depth; 0 = static even dots. */\n readonly uWaveAmp: number;\n /** Wave travel rate; 0 freezes. */\n readonly uSpeed: number;\n /** Dot shape: 0 diamond, 1 circle, 2 square. */\n readonly uShape: number;\n /** Wave direction in radians. */\n readonly uAngle: number;\n /** Eases the waves at frame center (the face zone); 0 = off. */\n readonly uCalm: number;\n};\n\n/** The `halftone-waves` shader's tunables; defaults are the \"boardroom\" look. */\nexport const HALFTONE_WAVES_CONTROLS: readonly UniformControl[] = [\n { name: 'uPaper', kind: 'color', default: [0.95, 0.95, 0.94], doc: 'Field color.' },\n { name: 'uInk', kind: 'color', default: [0.62, 0.66, 0.7], doc: 'Dot color.' },\n {\n name: 'uPitch',\n kind: 'float',\n default: 26,\n min: 8,\n max: 60,\n step: 1,\n doc: 'Dot-grid cells across frame height.',\n },\n {\n name: 'uDotSize',\n kind: 'float',\n default: 0.26,\n min: 0.05,\n max: 0.5,\n step: 0.01,\n doc: 'Base dot radius in cell units.',\n },\n {\n name: 'uWaveAmp',\n kind: 'float',\n default: 0.55,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Wave modulation depth.',\n },\n {\n name: 'uSpeed',\n kind: 'float',\n default: 0.5,\n min: 0,\n max: 2,\n step: 0.01,\n doc: 'Wave travel rate; 0 freezes.',\n },\n {\n name: 'uShape',\n kind: 'float',\n default: 1,\n min: 0,\n max: 2,\n step: 0.05,\n doc: 'Dot shape: 0 diamond, 1 circle, 2 square.',\n },\n {\n name: 'uAngle',\n kind: 'float',\n default: 0.6,\n min: 0,\n max: 6.28,\n step: 0.01,\n doc: 'Wave direction, radians.',\n },\n {\n name: 'uCalm',\n kind: 'float',\n default: 0,\n min: 0,\n max: 1,\n step: 0.01,\n doc: 'Eases the waves at frame center (face zone).',\n },\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"kaleidoscope.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/kaleidoscope/kaleidoscope.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,0DAA0D;AAC1D,MAAM,MAAM,0BAA0B,GAAG;IACvC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,EAAE,SAAS,cAAc,EAiD1D,CAAC"}
1
+ {"version":3,"file":"kaleidoscope.d.ts","sourceRoot":"","sources":["../../../../catalog/shaders/kaleidoscope/kaleidoscope.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,0DAA0D;AAC1D,MAAM,MAAM,0BAA0B,GAAG;IACvC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,EAAE,SAAS,cAAc,EAiD1D,CAAC"}