@paper-design/shaders-react 0.0.44 → 0.0.46

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 (68) hide show
  1. package/README.md +2 -1
  2. package/dist/index.d.ts +12 -0
  3. package/dist/index.js +15 -0
  4. package/dist/index.js.map +2 -2
  5. package/dist/shader-mount.d.ts +7 -2
  6. package/dist/shader-mount.js.map +2 -2
  7. package/dist/shaders/color-panels.js +9 -9
  8. package/dist/shaders/color-panels.js.map +2 -2
  9. package/dist/shaders/dithering.d.ts +1 -1
  10. package/dist/shaders/dithering.js +9 -9
  11. package/dist/shaders/dithering.js.map +2 -2
  12. package/dist/shaders/dot-grid.js +8 -8
  13. package/dist/shaders/dot-grid.js.map +1 -1
  14. package/dist/shaders/dot-orbit.js +5 -3
  15. package/dist/shaders/dot-orbit.js.map +2 -2
  16. package/dist/shaders/fluted-glass.d.ts +12 -0
  17. package/dist/shaders/fluted-glass.js +178 -0
  18. package/dist/shaders/fluted-glass.js.map +7 -0
  19. package/dist/shaders/god-rays.js +14 -12
  20. package/dist/shaders/god-rays.js.map +2 -2
  21. package/dist/shaders/grain-gradient.d.ts +2 -2
  22. package/dist/shaders/grain-gradient.js +33 -36
  23. package/dist/shaders/grain-gradient.js.map +2 -2
  24. package/dist/shaders/image-dithering.d.ts +12 -0
  25. package/dist/shaders/image-dithering.js +148 -0
  26. package/dist/shaders/image-dithering.js.map +7 -0
  27. package/dist/shaders/liquid-metal.d.ts +2 -2
  28. package/dist/shaders/liquid-metal.js +26 -26
  29. package/dist/shaders/liquid-metal.js.map +2 -2
  30. package/dist/shaders/mesh-gradient.js +1 -1
  31. package/dist/shaders/mesh-gradient.js.map +1 -1
  32. package/dist/shaders/metaballs.d.ts +1 -1
  33. package/dist/shaders/metaballs.js +16 -14
  34. package/dist/shaders/metaballs.js.map +2 -2
  35. package/dist/shaders/neuro-noise.js +3 -3
  36. package/dist/shaders/neuro-noise.js.map +1 -1
  37. package/dist/shaders/paper-texture.d.ts +12 -0
  38. package/dist/shaders/paper-texture.js +195 -0
  39. package/dist/shaders/paper-texture.js.map +7 -0
  40. package/dist/shaders/perlin-noise.js +3 -3
  41. package/dist/shaders/perlin-noise.js.map +1 -1
  42. package/dist/shaders/pulsing-border.js +10 -11
  43. package/dist/shaders/pulsing-border.js.map +2 -2
  44. package/dist/shaders/simplex-noise.js +2 -2
  45. package/dist/shaders/simplex-noise.js.map +1 -1
  46. package/dist/shaders/smoke-ring.js +8 -9
  47. package/dist/shaders/smoke-ring.js.map +2 -2
  48. package/dist/shaders/spiral.d.ts +1 -1
  49. package/dist/shaders/spiral.js +18 -18
  50. package/dist/shaders/spiral.js.map +2 -2
  51. package/dist/shaders/static-mesh-gradient.d.ts +1 -1
  52. package/dist/shaders/static-mesh-gradient.js +21 -19
  53. package/dist/shaders/static-mesh-gradient.js.map +2 -2
  54. package/dist/shaders/static-radial-gradient.d.ts +1 -1
  55. package/dist/shaders/static-radial-gradient.js +18 -16
  56. package/dist/shaders/static-radial-gradient.js.map +2 -2
  57. package/dist/shaders/swirl.js +6 -9
  58. package/dist/shaders/swirl.js.map +2 -2
  59. package/dist/shaders/voronoi.js +8 -8
  60. package/dist/shaders/voronoi.js.map +2 -2
  61. package/dist/shaders/warp.js +3 -1
  62. package/dist/shaders/warp.js.map +2 -2
  63. package/dist/shaders/water.d.ts +12 -0
  64. package/dist/shaders/water.js +150 -0
  65. package/dist/shaders/water.js.map +7 -0
  66. package/dist/shaders/waves.js +6 -6
  67. package/dist/shaders/waves.js.map +1 -1
  68. package/package.json +2 -2
@@ -16,6 +16,24 @@ import {
16
16
  import { jsx } from "react/jsx-runtime";
17
17
  const defaultPreset = {
18
18
  name: "Default",
19
+ params: {
20
+ ...defaultObjectSizing,
21
+ scale: 0.7,
22
+ speed: 1,
23
+ frame: 8e3,
24
+ colorBack: "#000000",
25
+ colorTint: "#ffffff",
26
+ softness: 0.3,
27
+ repetition: 4,
28
+ shiftRed: 0.3,
29
+ shiftBlue: 0.3,
30
+ distortion: 0.1,
31
+ contour: 1,
32
+ shape: "circle"
33
+ }
34
+ };
35
+ const dropsPreset = {
36
+ name: "Drops",
19
37
  params: {
20
38
  ...defaultObjectSizing,
21
39
  speed: 1,
@@ -31,8 +49,8 @@ const defaultPreset = {
31
49
  shape: "metaballs"
32
50
  }
33
51
  };
34
- const fullScreenPreset = {
35
- name: "Full Screen",
52
+ const containedPreset = {
53
+ name: "Contained",
36
54
  params: {
37
55
  ...defaultObjectSizing,
38
56
  speed: 1,
@@ -50,26 +68,8 @@ const fullScreenPreset = {
50
68
  worldHeight: 0
51
69
  }
52
70
  };
53
- const spherePreset = {
54
- name: "Sphere",
55
- params: {
56
- ...defaultObjectSizing,
57
- scale: 0.7,
58
- speed: 2,
59
- frame: 0,
60
- colorBack: "#ffffff00",
61
- colorTint: "#d1e0ff",
62
- softness: 0.45,
63
- repetition: 4,
64
- shiftRed: 1,
65
- shiftBlue: 0.3,
66
- distortion: 0.1,
67
- contour: 0.4,
68
- shape: "circle"
69
- }
70
- };
71
- const dropsPreset = {
72
- name: "Drops",
71
+ const fullScreenPreset = {
72
+ name: "Full Screen",
73
73
  params: {
74
74
  ...defaultObjectSizing,
75
75
  scale: 2.2,
@@ -83,10 +83,10 @@ const dropsPreset = {
83
83
  shiftBlue: -1,
84
84
  distortion: 0.1,
85
85
  contour: 1,
86
- shape: "metaballs"
86
+ shape: "none"
87
87
  }
88
88
  };
89
- const liquidMetalPresets = [defaultPreset, spherePreset, dropsPreset, fullScreenPreset];
89
+ const liquidMetalPresets = [defaultPreset, containedPreset, dropsPreset, fullScreenPreset];
90
90
  const LiquidMetal = memo(function LiquidMetalImpl({
91
91
  // Own props
92
92
  colorBack = defaultPreset.params.colorBack,
@@ -147,10 +147,10 @@ const LiquidMetal = memo(function LiquidMetalImpl({
147
147
  }, colorPropsAreEqual);
148
148
  export {
149
149
  LiquidMetal,
150
+ containedPreset,
150
151
  defaultPreset,
151
152
  dropsPreset,
152
153
  fullScreenPreset,
153
- liquidMetalPresets,
154
- spherePreset
154
+ liquidMetalPresets
155
155
  };
156
156
  //# sourceMappingURL=liquid-metal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/liquid-metal.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n liquidMetalFragmentShader,\n ShaderFitOptions,\n type LiquidMetalUniforms,\n type LiquidMetalParams,\n type ShaderPreset,\n defaultObjectSizing,\n getShaderColorFromString,\n LiquidMetalShapes,\n} from '@paper-design/shaders';\n\nexport interface LiquidMetalProps extends ShaderComponentProps, LiquidMetalParams {}\n\ntype LiquidMetalPreset = ShaderPreset<LiquidMetalParams>;\n\nexport const defaultPreset: LiquidMetalPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#ffffff00',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 3,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.3,\n contour: 0.88,\n shape: 'metaballs',\n },\n};\n\nexport const fullScreenPreset: LiquidMetalPreset = {\n name: 'Full Screen',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#ffffff00',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 3,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.07,\n contour: 0,\n shape: 'none',\n worldWidth: 0,\n worldHeight: 0,\n },\n};\n\nexport const spherePreset: LiquidMetalPreset = {\n name: 'Sphere',\n params: {\n ...defaultObjectSizing,\n scale: 0.7,\n speed: 2,\n frame: 0,\n colorBack: '#ffffff00',\n colorTint: '#d1e0ff',\n softness: 0.45,\n repetition: 4,\n shiftRed: 1,\n shiftBlue: 0.3,\n distortion: 0.1,\n contour: 0.4,\n shape: 'circle',\n },\n};\n\nexport const dropsPreset: LiquidMetalPreset = {\n name: 'Drops',\n params: {\n ...defaultObjectSizing,\n scale: 2.2,\n speed: 1,\n frame: 0,\n colorBack: '#00042e',\n colorTint: '#5b4dc7',\n softness: 0.45,\n repetition: 4,\n shiftRed: -0.5,\n shiftBlue: -1,\n distortion: 0.1,\n contour: 1,\n shape: 'metaballs',\n },\n};\n\nexport const liquidMetalPresets: LiquidMetalPreset[] = [defaultPreset, spherePreset, dropsPreset, fullScreenPreset];\n\nexport const LiquidMetal: React.FC<LiquidMetalProps> = memo(function LiquidMetalImpl({\n // Own props\n colorBack = defaultPreset.params.colorBack,\n colorTint = defaultPreset.params.colorTint,\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n softness = defaultPreset.params.softness,\n repetition = defaultPreset.params.repetition,\n shiftRed = defaultPreset.params.shiftRed,\n shiftBlue = defaultPreset.params.shiftBlue,\n distortion = defaultPreset.params.distortion,\n contour = defaultPreset.params.contour,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: LiquidMetalProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorTint: getShaderColorFromString(colorTint),\n\n u_softness: softness,\n u_repetition: repetition,\n u_shiftRed: shiftRed,\n u_shiftBlue: shiftBlue,\n u_distortion: distortion,\n u_contour: contour,\n u_shape: LiquidMetalShapes[shape],\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies LiquidMetalUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={liquidMetalFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n liquidMetalFragmentShader,\n ShaderFitOptions,\n type LiquidMetalUniforms,\n type LiquidMetalParams,\n type ShaderPreset,\n defaultObjectSizing,\n getShaderColorFromString,\n LiquidMetalShapes,\n} from '@paper-design/shaders';\n\nexport interface LiquidMetalProps extends ShaderComponentProps, LiquidMetalParams {}\n\ntype LiquidMetalPreset = ShaderPreset<LiquidMetalParams>;\n\nexport const defaultPreset: LiquidMetalPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 0.7,\n speed: 1,\n frame: 8000,\n colorBack: '#000000',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 4,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.1,\n contour: 1,\n shape: 'circle',\n },\n};\n\nexport const dropsPreset: LiquidMetalPreset = {\n name: 'Drops',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#ffffff00',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 3,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.3,\n contour: 0.88,\n shape: 'metaballs',\n },\n};\n\nexport const containedPreset: LiquidMetalPreset = {\n name: 'Contained',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colorBack: '#ffffff00',\n colorTint: '#ffffff',\n softness: 0.3,\n repetition: 3,\n shiftRed: 0.3,\n shiftBlue: 0.3,\n distortion: 0.07,\n contour: 0,\n shape: 'none',\n worldWidth: 0,\n worldHeight: 0,\n },\n};\n\nexport const fullScreenPreset: LiquidMetalPreset = {\n name: 'Full Screen',\n params: {\n ...defaultObjectSizing,\n scale: 2.2,\n speed: 1,\n frame: 0,\n colorBack: '#00042e',\n colorTint: '#5b4dc7',\n softness: 0.45,\n repetition: 4,\n shiftRed: -0.5,\n shiftBlue: -1,\n distortion: 0.1,\n contour: 1,\n shape: 'none',\n },\n};\n\nexport const liquidMetalPresets: LiquidMetalPreset[] = [defaultPreset, containedPreset, dropsPreset, fullScreenPreset];\n\nexport const LiquidMetal: React.FC<LiquidMetalProps> = memo(function LiquidMetalImpl({\n // Own props\n colorBack = defaultPreset.params.colorBack,\n colorTint = defaultPreset.params.colorTint,\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n softness = defaultPreset.params.softness,\n repetition = defaultPreset.params.repetition,\n shiftRed = defaultPreset.params.shiftRed,\n shiftBlue = defaultPreset.params.shiftBlue,\n distortion = defaultPreset.params.distortion,\n contour = defaultPreset.params.contour,\n shape = defaultPreset.params.shape,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: LiquidMetalProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorTint: getShaderColorFromString(colorTint),\n\n u_softness: softness,\n u_repetition: repetition,\n u_shiftRed: shiftRed,\n u_shiftBlue: shiftBlue,\n u_distortion: distortion,\n u_contour: contour,\n u_shape: LiquidMetalShapes[shape],\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies LiquidMetalUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={liquidMetalFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -19,7 +19,7 @@ const defaultPreset = {
19
19
  ...defaultObjectSizing,
20
20
  speed: 1,
21
21
  frame: 0,
22
- colors: ["#5100ff", "#00ff80", "#ffcc00", "#ea00ff"],
22
+ colors: ["#e0eaff", "#241d9a", "#f75092", "#9f50d3"],
23
23
  distortion: 0.8,
24
24
  swirl: 0.1
25
25
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/mesh-gradient.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n meshGradientFragmentShader,\n ShaderFitOptions,\n type MeshGradientParams,\n type MeshGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {}\n\ntype MeshGradientPreset = ShaderPreset<MeshGradientParams>;\n\nexport const defaultPreset: MeshGradientPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['#5100ff', '#00ff80', '#ffcc00', '#ea00ff'],\n distortion: 0.8,\n swirl: 0.1,\n },\n};\n\nexport const purplePreset: MeshGradientPreset = {\n name: 'Purple',\n params: {\n ...defaultObjectSizing,\n speed: 0.6,\n frame: 0,\n colors: ['#aaa7d7', '#3c2b8e'],\n distortion: 1,\n swirl: 1,\n },\n};\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\n ...defaultObjectSizing,\n speed: 0.1,\n frame: 0,\n colors: ['#bcecf6', '#00aaff', '#00f7ff', '#ffd447'],\n distortion: 0.8,\n swirl: 0.35,\n },\n};\n\nexport const inkPreset: MeshGradientPreset = {\n name: 'Ink',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['#ffffff', '#000000'],\n distortion: 1,\n swirl: 0.2,\n rotation: 90,\n },\n};\n\nexport const meshGradientPresets: MeshGradientPreset[] = [defaultPreset, inkPreset, purplePreset, beachPreset];\n\nexport const MeshGradient: React.FC<MeshGradientProps> = memo(function MeshGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n distortion = defaultPreset.params.distortion,\n swirl = defaultPreset.params.swirl,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MeshGradientProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_distortion: distortion,\n u_swirl: swirl,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MeshGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={meshGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n meshGradientFragmentShader,\n ShaderFitOptions,\n type MeshGradientParams,\n type MeshGradientUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MeshGradientProps extends ShaderComponentProps, MeshGradientParams {}\n\ntype MeshGradientPreset = ShaderPreset<MeshGradientParams>;\n\nexport const defaultPreset: MeshGradientPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['#e0eaff', '#241d9a', '#f75092', '#9f50d3'],\n distortion: 0.8,\n swirl: 0.1,\n },\n};\n\nexport const purplePreset: MeshGradientPreset = {\n name: 'Purple',\n params: {\n ...defaultObjectSizing,\n speed: 0.6,\n frame: 0,\n colors: ['#aaa7d7', '#3c2b8e'],\n distortion: 1,\n swirl: 1,\n },\n};\n\nexport const beachPreset: MeshGradientPreset = {\n name: 'Beach',\n params: {\n ...defaultObjectSizing,\n speed: 0.1,\n frame: 0,\n colors: ['#bcecf6', '#00aaff', '#00f7ff', '#ffd447'],\n distortion: 0.8,\n swirl: 0.35,\n },\n};\n\nexport const inkPreset: MeshGradientPreset = {\n name: 'Ink',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['#ffffff', '#000000'],\n distortion: 1,\n swirl: 0.2,\n rotation: 90,\n },\n};\n\nexport const meshGradientPresets: MeshGradientPreset[] = [defaultPreset, inkPreset, purplePreset, beachPreset];\n\nexport const MeshGradient: React.FC<MeshGradientProps> = memo(function MeshGradientImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colors = defaultPreset.params.colors,\n distortion = defaultPreset.params.distortion,\n swirl = defaultPreset.params.swirl,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MeshGradientProps) {\n const uniforms = {\n // Own uniforms\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_distortion: distortion,\n u_swirl: swirl,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MeshGradientUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={meshGradientFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
5
  "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAiGH;AA3FG,MAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,WAAW,SAAS;AAAA,IACnD,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,eAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,SAAS;AAAA,IAC7B,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,cAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,WAAW,SAAS;AAAA,IACnD,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF;AAEO,MAAM,YAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,SAAS;AAAA,IAC7B,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,sBAA4C,CAAC,eAAe,WAAW,cAAc,WAAW;AAEtG,MAAM,eAA4C,KAAK,SAAS,iBAAiB;AAAA;AAAA,EAEtF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,SAAS,cAAc,OAAO;AAAA,EAC9B,aAAa,cAAc,OAAO;AAAA,EAClC,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAsB;AACpB,QAAM,WAAW;AAAA;AAAA,IAEf,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,cAAc;AAAA,IACd,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -6,7 +6,7 @@ type MetaballsPreset = ShaderPreset<MetaballsParams>;
6
6
  export declare const defaultPreset: MetaballsPreset;
7
7
  export declare const inkDropsPreset: MetaballsPreset;
8
8
  export declare const backgroundPreset: MetaballsPreset;
9
- export declare const metallicPreset: MetaballsPreset;
9
+ export declare const solarPreset: MetaballsPreset;
10
10
  export declare const metaballsPresets: MetaballsPreset[];
11
11
  export declare const Metaballs: React.FC<MetaballsProps>;
12
12
  export {};
@@ -9,6 +9,7 @@ import { colorPropsAreEqual } from "../color-props-are-equal.js";
9
9
  import {
10
10
  defaultObjectSizing,
11
11
  getShaderColorFromString,
12
+ getShaderNoiseTexture,
12
13
  metaballsFragmentShader,
13
14
  ShaderFitOptions
14
15
  } from "@paper-design/shaders";
@@ -20,10 +21,10 @@ const defaultPreset = {
20
21
  scale: 1,
21
22
  speed: 1,
22
23
  frame: 0,
23
- colorBack: "#103086",
24
- colors: ["#FFC802", "#FF5601", "#FFC206"],
25
- count: 7,
26
- size: 0.75
24
+ colorBack: "#121212",
25
+ colors: ["#6e33cc", "#ff5500", "#ffc105", "#ffc800", "#f585ff"],
26
+ count: 10,
27
+ size: 0.83
27
28
  }
28
29
  };
29
30
  const inkDropsPreset = {
@@ -54,20 +55,20 @@ const backgroundPreset = {
54
55
  offsetX: -0.3
55
56
  }
56
57
  };
57
- const metallicPreset = {
58
- name: "Metallic",
58
+ const solarPreset = {
59
+ name: "Solar",
59
60
  params: {
60
61
  ...defaultObjectSizing,
61
- speed: 2,
62
+ speed: 1,
62
63
  frame: 0,
63
- colors: ["#000000bb", "#00000000", "#33ffaa54"],
64
- colorBack: "#003e6b",
65
- count: 10,
66
- size: 0.81,
67
- scale: 1.7
64
+ colors: ["#ffc800", "#ff5500", "#ffc105"],
65
+ colorBack: "#102f84",
66
+ count: 7,
67
+ size: 0.75,
68
+ scale: 1
68
69
  }
69
70
  };
70
- const metaballsPresets = [defaultPreset, inkDropsPreset, metallicPreset, backgroundPreset];
71
+ const metaballsPresets = [defaultPreset, inkDropsPreset, solarPreset, backgroundPreset];
71
72
  const Metaballs = memo(function MetaballsImpl({
72
73
  // Own props
73
74
  speed = defaultPreset.params.speed,
@@ -95,6 +96,7 @@ const Metaballs = memo(function MetaballsImpl({
95
96
  u_colorsCount: colors.length,
96
97
  u_size: size,
97
98
  u_count: count,
99
+ u_noiseTexture: getShaderNoiseTexture(),
98
100
  // Sizing uniforms
99
101
  u_fit: ShaderFitOptions[fit],
100
102
  u_rotation: rotation,
@@ -114,6 +116,6 @@ export {
114
116
  defaultPreset,
115
117
  inkDropsPreset,
116
118
  metaballsPresets,
117
- metallicPreset
119
+ solarPreset
118
120
  };
119
121
  //# sourceMappingURL=metaballs.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/metaballs.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n metaballsFragmentShader,\n ShaderFitOptions,\n type MetaballsParams,\n type MetaballsUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MetaballsProps extends ShaderComponentProps, MetaballsParams {}\n\ntype MetaballsPreset = ShaderPreset<MetaballsParams>;\n\nexport const defaultPreset: MetaballsPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 1,\n frame: 0,\n colorBack: '#103086',\n colors: ['#FFC802', '#FF5601', '#FFC206'],\n count: 7,\n size: 0.75,\n },\n};\n\nexport const inkDropsPreset: MetaballsPreset = {\n name: 'Ink Drops',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 2,\n frame: 0,\n colorBack: '#ffffff00',\n colors: ['#000000'],\n count: 18,\n size: 0.1,\n },\n};\n\nexport const backgroundPreset: MetaballsPreset = {\n name: 'Background',\n params: {\n ...defaultObjectSizing,\n speed: 0.5,\n frame: 0,\n colors: ['#ae00ff', '#00ff95', '#ffc105'],\n colorBack: '#2a273f',\n count: 13,\n size: 0.81,\n scale: 4.0,\n rotation: 0,\n offsetX: -0.3,\n },\n};\n\nexport const metallicPreset: MetaballsPreset = {\n name: 'Metallic',\n params: {\n ...defaultObjectSizing,\n speed: 2.0,\n frame: 0,\n colors: ['#000000bb', '#00000000', '#33ffaa54'],\n colorBack: '#003e6b',\n count: 10,\n size: 0.81,\n scale: 1.7,\n },\n};\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset, inkDropsPreset, metallicPreset, backgroundPreset];\n\nexport const Metaballs: React.FC<MetaballsProps> = memo(function MetaballsImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n size = defaultPreset.params.size,\n count = defaultPreset.params.count,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MetaballsProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_size: size,\n u_count: count,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MetaballsUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={metaballsFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
- "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA4GH;AAtGG,MAAM,gBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,iBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,SAAS;AAAA,IAClB,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,mBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,iBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,aAAa,aAAa,WAAW;AAAA,IAC9C,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAsC,CAAC,eAAe,gBAAgB,gBAAgB,gBAAgB;AAE5G,MAAM,YAAsC,KAAK,SAAS,cAAc;AAAA;AAAA,EAE7E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,YAAY,cAAc,OAAO;AAAA,EACjC,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAmB;AACjB,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,SAAS;AAAA;AAAA,IAGT,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,yBAAyB,UAAoB;AAErH,GAAG,kBAAkB;",
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n metaballsFragmentShader,\n ShaderFitOptions,\n type MetaballsParams,\n type MetaballsUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface MetaballsProps extends ShaderComponentProps, MetaballsParams {}\n\ntype MetaballsPreset = ShaderPreset<MetaballsParams>;\n\nexport const defaultPreset: MetaballsPreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 1,\n frame: 0,\n colorBack: '#121212',\n colors: ['#6e33cc', '#ff5500', '#ffc105', '#ffc800', '#f585ff'],\n count: 10,\n size: 0.83,\n },\n};\n\nexport const inkDropsPreset: MetaballsPreset = {\n name: 'Ink Drops',\n params: {\n ...defaultObjectSizing,\n scale: 1,\n speed: 2,\n frame: 0,\n colorBack: '#ffffff00',\n colors: ['#000000'],\n count: 18,\n size: 0.1,\n },\n};\n\nexport const backgroundPreset: MetaballsPreset = {\n name: 'Background',\n params: {\n ...defaultObjectSizing,\n speed: 0.5,\n frame: 0,\n colors: ['#ae00ff', '#00ff95', '#ffc105'],\n colorBack: '#2a273f',\n count: 13,\n size: 0.81,\n scale: 4.0,\n rotation: 0,\n offsetX: -0.3,\n },\n};\n\nexport const solarPreset: MetaballsPreset = {\n name: 'Solar',\n params: {\n ...defaultObjectSizing,\n speed: 1,\n frame: 0,\n colors: ['#ffc800', '#ff5500', '#ffc105'],\n colorBack: '#102f84',\n count: 7,\n size: 0.75,\n scale: 1,\n },\n};\n\nexport const metaballsPresets: MetaballsPreset[] = [defaultPreset, inkDropsPreset, solarPreset, backgroundPreset];\n\nexport const Metaballs: React.FC<MetaballsProps> = memo(function MetaballsImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorBack = defaultPreset.params.colorBack,\n colors = defaultPreset.params.colors,\n size = defaultPreset.params.size,\n count = defaultPreset.params.count,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n rotation = defaultPreset.params.rotation,\n scale = defaultPreset.params.scale,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: MetaballsProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colors: colors.map(getShaderColorFromString),\n u_colorsCount: colors.length,\n u_size: size,\n u_count: count,\n u_noiseTexture: getShaderNoiseTexture(),\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_rotation: rotation,\n u_scale: scale,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies MetaballsUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={metaballsFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA6GH;AAvGG,MAAM,gBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,WAAW,WAAW,WAAW,WAAW,SAAS;AAAA,IAC9D,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,iBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ,CAAC,SAAS;AAAA,IAClB,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,mBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,cAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ,CAAC,WAAW,WAAW,SAAS;AAAA,IACxC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAsC,CAAC,eAAe,gBAAgB,aAAa,gBAAgB;AAEzG,MAAM,YAAsC,KAAK,SAAS,cAAc;AAAA;AAAA,EAE7E,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,YAAY,cAAc,OAAO;AAAA,EACjC,SAAS,cAAc,OAAO;AAAA,EAC9B,OAAO,cAAc,OAAO;AAAA,EAC5B,QAAQ,cAAc,OAAO;AAAA;AAAA,EAG7B,MAAM,cAAc,OAAO;AAAA,EAC3B,WAAW,cAAc,OAAO;AAAA,EAChC,QAAQ,cAAc,OAAO;AAAA,EAC7B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAmB;AACjB,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,UAAU,OAAO,IAAI,wBAAwB;AAAA,IAC7C,eAAe,OAAO;AAAA,IACtB,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,gBAAgB,sBAAsB;AAAA;AAAA,IAGtC,OAAO,iBAAiB,GAAG;AAAA,IAC3B,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,yBAAyB,UAAoB;AAErH,GAAG,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -20,10 +20,10 @@ const defaultPreset = {
20
20
  speed: 1,
21
21
  frame: 0,
22
22
  colorFront: "#ffffff",
23
- colorMid: "#bf9eff",
23
+ colorMid: "#00a2ff",
24
24
  colorBack: "#000000",
25
- brightness: 0.15,
26
- contrast: 0.6
25
+ brightness: 0.05,
26
+ contrast: 0.3
27
27
  }
28
28
  };
29
29
  const sensationPreset = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/neuro-noise.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n neuroNoiseFragmentShader,\n ShaderFitOptions,\n type NeuroNoiseParams,\n type NeuroNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {}\n\ntype NeuroNoisePreset = ShaderPreset<NeuroNoiseParams>;\n\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#bf9eff',\n colorBack: '#000000',\n brightness: 0.15,\n contrast: 0.6,\n },\n};\n\nexport const sensationPreset: NeuroNoisePreset = {\n name: 'Sensation',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#00c8ff',\n colorMid: '#fbff00',\n colorBack: '#8b42ff',\n brightness: 0.19,\n contrast: 0.12,\n scale: 3,\n },\n};\n\nexport const bloodstreamPreset: NeuroNoisePreset = {\n name: 'Bloodstream',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ff0000',\n colorMid: '#ff0000',\n colorBack: '#ffffff',\n brightness: 0.24,\n contrast: 0.17,\n scale: 0.7,\n },\n};\n\nexport const ghostPreset: NeuroNoisePreset = {\n name: 'Ghost',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#000000',\n colorBack: '#ffffff',\n brightness: 0.0,\n contrast: 1.0,\n scale: 0.55,\n },\n};\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [\n defaultPreset,\n sensationPreset,\n bloodstreamPreset,\n ghostPreset,\n] as const;\n\nexport const NeuroNoise: React.FC<NeuroNoiseProps> = memo(function NeuroNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorMid = defaultPreset.params.colorMid,\n colorBack = defaultPreset.params.colorBack,\n brightness = defaultPreset.params.brightness,\n contrast = defaultPreset.params.contrast,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: NeuroNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorFront: getShaderColorFromString(colorFront),\n u_colorMid: getShaderColorFromString(colorMid),\n u_colorBack: getShaderColorFromString(colorBack),\n u_brightness: brightness,\n u_contrast: contrast,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies NeuroNoiseUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={neuroNoiseFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n neuroNoiseFragmentShader,\n ShaderFitOptions,\n type NeuroNoiseParams,\n type NeuroNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface NeuroNoiseProps extends ShaderComponentProps, NeuroNoiseParams {}\n\ntype NeuroNoisePreset = ShaderPreset<NeuroNoiseParams>;\n\nexport const defaultPreset: NeuroNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#00a2ff',\n colorBack: '#000000',\n brightness: 0.05,\n contrast: 0.3,\n },\n};\n\nexport const sensationPreset: NeuroNoisePreset = {\n name: 'Sensation',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#00c8ff',\n colorMid: '#fbff00',\n colorBack: '#8b42ff',\n brightness: 0.19,\n contrast: 0.12,\n scale: 3,\n },\n};\n\nexport const bloodstreamPreset: NeuroNoisePreset = {\n name: 'Bloodstream',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ff0000',\n colorMid: '#ff0000',\n colorBack: '#ffffff',\n brightness: 0.24,\n contrast: 0.17,\n scale: 0.7,\n },\n};\n\nexport const ghostPreset: NeuroNoisePreset = {\n name: 'Ghost',\n params: {\n ...defaultPatternSizing,\n speed: 1,\n frame: 0,\n colorFront: '#ffffff',\n colorMid: '#000000',\n colorBack: '#ffffff',\n brightness: 0.0,\n contrast: 1.0,\n scale: 0.55,\n },\n};\n\nexport const neuroNoisePresets: NeuroNoisePreset[] = [\n defaultPreset,\n sensationPreset,\n bloodstreamPreset,\n ghostPreset,\n] as const;\n\nexport const NeuroNoise: React.FC<NeuroNoiseProps> = memo(function NeuroNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorMid = defaultPreset.params.colorMid,\n colorBack = defaultPreset.params.colorBack,\n brightness = defaultPreset.params.brightness,\n contrast = defaultPreset.params.contrast,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: NeuroNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorFront: getShaderColorFromString(colorFront),\n u_colorMid: getShaderColorFromString(colorMid),\n u_colorBack: getShaderColorFromString(colorBack),\n u_brightness: brightness,\n u_contrast: contrast,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies NeuroNoiseUniforms;\n\n return (\n <ShaderMount {...props} speed={speed} frame={frame} fragmentShader={neuroNoiseFragmentShader} uniforms={uniforms} />\n );\n}, colorPropsAreEqual);\n"],
5
5
  "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAmHH;AA7GG,MAAM,gBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,kBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEO,MAAM,oBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEO,MAAM,cAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;AAEO,MAAM,oBAAwC;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,aAAwC,KAAK,SAAS,eAAe;AAAA;AAAA,EAEhF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA,EAChC,YAAY,cAAc,OAAO;AAAA,EACjC,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA;AAAA,EAGhC,MAAM,cAAc,OAAO;AAAA,EAC3B,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAoB;AAClB,QAAM,WAAW;AAAA;AAAA,IAEf,cAAc,yBAAyB,UAAU;AAAA,IACjD,YAAY,yBAAyB,QAAQ;AAAA,IAC7C,aAAa,yBAAyB,SAAS;AAAA,IAC/C,cAAc;AAAA,IACd,YAAY;AAAA;AAAA,IAGZ,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE,oBAAC,eAAa,GAAG,OAAO,OAAc,OAAc,gBAAgB,0BAA0B,UAAoB;AAEtH,GAAG,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,12 @@
1
+ import { type ShaderComponentProps } from '../shader-mount.js';
2
+ import { type PaperTextureParams, type ShaderPreset } from '@paper-design/shaders';
3
+ export interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {
4
+ }
5
+ type PaperTexturePreset = ShaderPreset<PaperTextureParams>;
6
+ export declare const defaultPreset: PaperTexturePreset;
7
+ export declare const abstractPreset: PaperTexturePreset;
8
+ export declare const cardboardPreset: PaperTexturePreset;
9
+ export declare const detailsPreset: PaperTexturePreset;
10
+ export declare const paperTexturePresets: PaperTexturePreset[];
11
+ export declare const PaperTexture: React.FC<PaperTextureProps>;
12
+ export {};
@@ -0,0 +1,195 @@
1
+ /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
+ * Paper Shaders *
3
+ * https://github.com/paper-design/shaders *
4
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5
+
6
+ import { memo } from "react";
7
+ import { ShaderMount } from "../shader-mount.js";
8
+ import { colorPropsAreEqual } from "../color-props-are-equal.js";
9
+ import {
10
+ defaultObjectSizing,
11
+ getShaderColorFromString,
12
+ getShaderNoiseTexture,
13
+ paperTextureFragmentShader,
14
+ ShaderFitOptions
15
+ } from "@paper-design/shaders";
16
+ import { jsx } from "react/jsx-runtime";
17
+ const defaultPreset = {
18
+ name: "Default",
19
+ params: {
20
+ ...defaultObjectSizing,
21
+ // fit: 'cover',
22
+ scale: 0.6,
23
+ speed: 0,
24
+ frame: 0,
25
+ colorFront: "#9fadbc",
26
+ colorBack: "#ffffff",
27
+ image: "/images/image-filters/0018.webp",
28
+ contrast: 0.3,
29
+ roughness: 0.4,
30
+ fiber: 0.3,
31
+ fiberScale: 1,
32
+ crumples: 0.3,
33
+ crumplesScale: 0.6,
34
+ folds: 0.65,
35
+ foldsNumber: 5,
36
+ blur: 0,
37
+ drops: 0.2,
38
+ seed: 5.8
39
+ }
40
+ };
41
+ const abstractPreset = {
42
+ name: "Abstract",
43
+ params: {
44
+ ...defaultObjectSizing,
45
+ speed: 0,
46
+ frame: 0,
47
+ scale: 0.6,
48
+ colorFront: "#00eeff",
49
+ colorBack: "#ff0a81",
50
+ image: "/images/image-filters/0018.webp",
51
+ contrast: 0.85,
52
+ roughness: 0,
53
+ fiber: 0.1,
54
+ fiberScale: 1,
55
+ crumples: 0,
56
+ crumplesScale: 1,
57
+ folds: 1,
58
+ foldsNumber: 3,
59
+ blur: 0,
60
+ drops: 0.2,
61
+ seed: 2.2
62
+ }
63
+ };
64
+ const cardboardPreset = {
65
+ name: "Cardboard",
66
+ params: {
67
+ ...defaultObjectSizing,
68
+ speed: 0,
69
+ frame: 0,
70
+ scale: 0.6,
71
+ colorFront: "#c98e26",
72
+ colorBack: "#573b0a",
73
+ image: "/images/image-filters/0018.webp",
74
+ contrast: 0.4,
75
+ roughness: 0,
76
+ fiber: 0.35,
77
+ fiberScale: 2,
78
+ crumples: 0.7,
79
+ crumplesScale: 0.6,
80
+ folds: 0,
81
+ foldsNumber: 1,
82
+ blur: 0,
83
+ drops: 0.1,
84
+ seed: 1.6
85
+ }
86
+ };
87
+ const detailsPreset = {
88
+ name: "Details",
89
+ params: {
90
+ ...defaultObjectSizing,
91
+ speed: 0,
92
+ frame: 0,
93
+ fit: "cover",
94
+ scale: 3,
95
+ colorFront: "#00000000",
96
+ colorBack: "#ffffff",
97
+ image: "/images/image-filters/0018.webp",
98
+ contrast: 0,
99
+ roughness: 1,
100
+ fiber: 0.27,
101
+ fiberScale: 2,
102
+ crumples: 1,
103
+ crumplesScale: 3,
104
+ folds: 1,
105
+ foldsNumber: 15,
106
+ blur: 0,
107
+ drops: 0,
108
+ seed: 6
109
+ }
110
+ };
111
+ const paperTexturePresets = [
112
+ defaultPreset,
113
+ cardboardPreset,
114
+ abstractPreset,
115
+ detailsPreset
116
+ ];
117
+ const PaperTexture = memo(function PaperTextureImpl({
118
+ // Own props
119
+ speed = defaultPreset.params.speed,
120
+ frame = defaultPreset.params.frame,
121
+ colorFront = defaultPreset.params.colorFront,
122
+ colorBack = defaultPreset.params.colorBack,
123
+ image = defaultPreset.params.image,
124
+ contrast = defaultPreset.params.contrast,
125
+ roughness = defaultPreset.params.roughness,
126
+ fiber = defaultPreset.params.fiber,
127
+ fiberScale = defaultPreset.params.fiberScale,
128
+ crumples = defaultPreset.params.crumples,
129
+ crumplesScale = defaultPreset.params.crumplesScale,
130
+ foldsNumber = defaultPreset.params.foldsNumber,
131
+ folds = defaultPreset.params.folds,
132
+ blur = defaultPreset.params.blur,
133
+ drops = defaultPreset.params.drops,
134
+ seed = defaultPreset.params.seed,
135
+ // Sizing props
136
+ fit = defaultPreset.params.fit,
137
+ scale = defaultPreset.params.scale,
138
+ rotation = defaultPreset.params.rotation,
139
+ originX = defaultPreset.params.originX,
140
+ originY = defaultPreset.params.originY,
141
+ offsetX = defaultPreset.params.offsetX,
142
+ offsetY = defaultPreset.params.offsetY,
143
+ worldWidth = defaultPreset.params.worldWidth,
144
+ worldHeight = defaultPreset.params.worldHeight,
145
+ ...props
146
+ }) {
147
+ const noiseTexture = typeof window !== "undefined" && { u_noiseTexture: getShaderNoiseTexture() };
148
+ const uniforms = {
149
+ // Own uniforms
150
+ u_image: image,
151
+ u_colorFront: getShaderColorFromString(colorFront),
152
+ u_colorBack: getShaderColorFromString(colorBack),
153
+ u_contrast: contrast,
154
+ u_roughness: roughness,
155
+ u_fiber: fiber,
156
+ u_fiberScale: fiberScale,
157
+ u_crumples: crumples,
158
+ u_crumplesScale: crumplesScale,
159
+ u_foldsNumber: foldsNumber,
160
+ u_folds: folds,
161
+ u_blur: blur,
162
+ u_drops: drops,
163
+ u_seed: seed,
164
+ ...noiseTexture,
165
+ // Sizing uniforms
166
+ u_fit: ShaderFitOptions[fit],
167
+ u_scale: scale,
168
+ u_rotation: rotation,
169
+ u_offsetX: offsetX,
170
+ u_offsetY: offsetY,
171
+ u_originX: originX,
172
+ u_originY: originY,
173
+ u_worldWidth: worldWidth,
174
+ u_worldHeight: worldHeight
175
+ };
176
+ return /* @__PURE__ */ jsx(
177
+ ShaderMount,
178
+ {
179
+ ...props,
180
+ speed,
181
+ frame,
182
+ fragmentShader: paperTextureFragmentShader,
183
+ uniforms
184
+ }
185
+ );
186
+ }, colorPropsAreEqual);
187
+ export {
188
+ PaperTexture,
189
+ abstractPreset,
190
+ cardboardPreset,
191
+ defaultPreset,
192
+ detailsPreset,
193
+ paperTexturePresets
194
+ };
195
+ //# sourceMappingURL=paper-texture.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shaders/paper-texture.tsx"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultObjectSizing,\n getShaderColorFromString,\n getShaderNoiseTexture,\n paperTextureFragmentShader,\n ShaderFitOptions,\n type PaperTextureParams,\n type PaperTextureUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PaperTextureProps extends ShaderComponentProps, PaperTextureParams {}\n\ntype PaperTexturePreset = ShaderPreset<PaperTextureParams>;\n\nexport const defaultPreset: PaperTexturePreset = {\n name: 'Default',\n params: {\n ...defaultObjectSizing,\n // fit: 'cover',\n scale: 0.6,\n speed: 0,\n frame: 0,\n colorFront: '#9fadbc',\n colorBack: '#ffffff',\n image: '/images/image-filters/0018.webp',\n contrast: 0.3,\n roughness: 0.4,\n fiber: 0.3,\n fiberScale: 1,\n crumples: 0.3,\n crumplesScale: 0.6,\n folds: 0.65,\n foldsNumber: 5,\n blur: 0,\n drops: 0.2,\n seed: 5.8,\n },\n};\n\nexport const abstractPreset: PaperTexturePreset = {\n name: 'Abstract',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n scale: 0.6,\n colorFront: '#00eeff',\n colorBack: '#ff0a81',\n image: '/images/image-filters/0018.webp',\n contrast: 0.85,\n roughness: 0,\n fiber: 0.1,\n fiberScale: 1,\n crumples: 0,\n crumplesScale: 1,\n folds: 1,\n foldsNumber: 3,\n blur: 0,\n drops: 0.2,\n seed: 2.2,\n },\n};\n\nexport const cardboardPreset: PaperTexturePreset = {\n name: 'Cardboard',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n scale: 0.6,\n colorFront: '#c98e26',\n colorBack: '#573b0a',\n image: '/images/image-filters/0018.webp',\n contrast: 0.4,\n roughness: 0,\n fiber: 0.35,\n fiberScale: 2,\n crumples: 0.7,\n crumplesScale: 0.6,\n folds: 0,\n foldsNumber: 1,\n blur: 0,\n drops: 0.1,\n seed: 1.6,\n },\n};\n\nexport const detailsPreset: PaperTexturePreset = {\n name: 'Details',\n params: {\n ...defaultObjectSizing,\n speed: 0,\n frame: 0,\n fit: 'cover',\n scale: 3,\n colorFront: '#00000000',\n colorBack: '#ffffff',\n image: '/images/image-filters/0018.webp',\n contrast: 0,\n roughness: 1,\n fiber: 0.27,\n fiberScale: 2,\n crumples: 1,\n crumplesScale: 3,\n folds: 1,\n foldsNumber: 15,\n blur: 0,\n drops: 0,\n seed: 6,\n },\n};\n\nexport const paperTexturePresets: PaperTexturePreset[] = [\n defaultPreset,\n cardboardPreset,\n abstractPreset,\n detailsPreset,\n] as const;\n\nexport const PaperTexture: React.FC<PaperTextureProps> = memo(function PaperTextureImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n image = defaultPreset.params.image,\n contrast = defaultPreset.params.contrast,\n roughness = defaultPreset.params.roughness,\n fiber = defaultPreset.params.fiber,\n fiberScale = defaultPreset.params.fiberScale,\n crumples = defaultPreset.params.crumples,\n crumplesScale = defaultPreset.params.crumplesScale,\n foldsNumber = defaultPreset.params.foldsNumber,\n folds = defaultPreset.params.folds,\n blur = defaultPreset.params.blur,\n drops = defaultPreset.params.drops,\n seed = defaultPreset.params.seed,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n ...props\n}: PaperTextureProps) {\n const noiseTexture = typeof window !== 'undefined' && { u_noiseTexture: getShaderNoiseTexture() };\n\n const uniforms = {\n // Own uniforms\n u_image: image,\n u_colorFront: getShaderColorFromString(colorFront),\n u_colorBack: getShaderColorFromString(colorBack),\n u_contrast: contrast,\n u_roughness: roughness,\n u_fiber: fiber,\n u_fiberScale: fiberScale,\n u_crumples: crumples,\n u_crumplesScale: crumplesScale,\n u_foldsNumber: foldsNumber,\n u_folds: folds,\n u_blur: blur,\n u_drops: drops,\n u_seed: seed,\n ...noiseTexture,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies PaperTextureUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={paperTextureFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
+ "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA+KH;AAzKG,MAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA;AAAA,IAEH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,iBAAqC;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,kBAAsC;AAAA,EACjD,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,gBAAoC;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,MAAM,sBAA4C;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,eAA4C,KAAK,SAAS,iBAAiB;AAAA;AAAA,EAEtF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,YAAY,cAAc,OAAO;AAAA,EACjC,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,YAAY,cAAc,OAAO;AAAA,EACjC,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA,EAChC,gBAAgB,cAAc,OAAO;AAAA,EACrC,cAAc,cAAc,OAAO;AAAA,EACnC,QAAQ,cAAc,OAAO;AAAA,EAC7B,OAAO,cAAc,OAAO;AAAA,EAC5B,QAAQ,cAAc,OAAO;AAAA,EAC7B,OAAO,cAAc,OAAO;AAAA;AAAA,EAG5B,MAAM,cAAc,OAAO;AAAA,EAC3B,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,GAAG;AACL,GAAsB;AACpB,QAAM,eAAe,OAAO,WAAW,eAAe,EAAE,gBAAgB,sBAAsB,EAAE;AAEhG,QAAM,WAAW;AAAA;AAAA,IAEf,SAAS;AAAA,IACT,cAAc,yBAAyB,UAAU;AAAA,IACjD,aAAa,yBAAyB,SAAS;AAAA,IAC/C,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,GAAG;AAAA;AAAA,IAGH,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
6
+ "names": []
7
+ }
@@ -19,11 +19,11 @@ const defaultPreset = {
19
19
  ...defaultPatternSizing,
20
20
  speed: 0.5,
21
21
  frame: 0,
22
- colorBack: "#262626",
23
- colorFront: "#d9d9d9",
22
+ colorBack: "#632ad5",
23
+ colorFront: "#fccff7",
24
24
  proportion: 0.35,
25
25
  softness: 0.1,
26
- octaveCount: 2,
26
+ octaveCount: 1,
27
27
  persistence: 1,
28
28
  lacunarity: 1.5
29
29
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/shaders/perlin-noise.tsx"],
4
- "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n perlinNoiseFragmentShader,\n ShaderFitOptions,\n type PerlinNoiseParams,\n type PerlinNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PerlinNoiseProps extends ShaderComponentProps, PerlinNoiseParams {}\n\ntype PerlinNoisePreset = ShaderPreset<PerlinNoiseParams>;\n\nexport const defaultPreset: PerlinNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 0.5,\n frame: 0,\n colorBack: '#262626',\n colorFront: '#d9d9d9',\n proportion: 0.35,\n softness: 0.1,\n octaveCount: 2,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const nintendoWaterPreset: PerlinNoisePreset = {\n name: 'Nintendo Water',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.2,\n speed: 0.4,\n frame: 0,\n colorBack: '#2d69d4',\n colorFront: '#d1eefc',\n proportion: 0.42,\n softness: 0,\n octaveCount: 2,\n persistence: 0.55,\n lacunarity: 1.8,\n },\n};\n\nexport const mossPreset: PerlinNoisePreset = {\n name: 'Moss',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.15,\n speed: 0.02,\n frame: 0,\n colorBack: '#05ff4a',\n colorFront: '#262626',\n proportion: 0.65,\n softness: 0.35,\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n },\n};\n\nexport const wormsPreset: PerlinNoisePreset = {\n name: 'Worms',\n params: {\n ...defaultPatternSizing,\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorBack: '#ffffff',\n colorFront: '#595959',\n proportion: 0.5,\n softness: 0,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const perlinNoisePresets: PerlinNoisePreset[] = [defaultPreset, nintendoWaterPreset, mossPreset, wormsPreset];\n\nexport const PerlinNoise: React.FC<PerlinNoiseProps> = memo(function PerlinNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n proportion = defaultPreset.params.proportion,\n softness = defaultPreset.params.softness,\n octaveCount = defaultPreset.params.octaveCount,\n persistence = defaultPreset.params.persistence,\n lacunarity,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n ...props\n}: PerlinNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_proportion: proportion,\n u_softness: softness ?? defaultPreset.params.softness,\n u_octaveCount: octaveCount ?? defaultPreset.params.octaveCount,\n u_persistence: persistence ?? defaultPreset.params.persistence,\n u_lacunarity: lacunarity ?? defaultPreset.params.lacunarity,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies PerlinNoiseUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={perlinNoiseFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
4
+ "sourcesContent": ["import { memo } from 'react';\nimport { ShaderMount, type ShaderComponentProps } from '../shader-mount.js';\nimport { colorPropsAreEqual } from '../color-props-are-equal.js';\nimport {\n defaultPatternSizing,\n getShaderColorFromString,\n perlinNoiseFragmentShader,\n ShaderFitOptions,\n type PerlinNoiseParams,\n type PerlinNoiseUniforms,\n type ShaderPreset,\n} from '@paper-design/shaders';\n\nexport interface PerlinNoiseProps extends ShaderComponentProps, PerlinNoiseParams {}\n\ntype PerlinNoisePreset = ShaderPreset<PerlinNoiseParams>;\n\nexport const defaultPreset: PerlinNoisePreset = {\n name: 'Default',\n params: {\n ...defaultPatternSizing,\n speed: 0.5,\n frame: 0,\n colorBack: '#632ad5',\n colorFront: '#fccff7',\n proportion: 0.35,\n softness: 0.1,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const nintendoWaterPreset: PerlinNoisePreset = {\n name: 'Nintendo Water',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.2,\n speed: 0.4,\n frame: 0,\n colorBack: '#2d69d4',\n colorFront: '#d1eefc',\n proportion: 0.42,\n softness: 0,\n octaveCount: 2,\n persistence: 0.55,\n lacunarity: 1.8,\n },\n};\n\nexport const mossPreset: PerlinNoisePreset = {\n name: 'Moss',\n params: {\n ...defaultPatternSizing,\n scale: 1 / 0.15,\n speed: 0.02,\n frame: 0,\n colorBack: '#05ff4a',\n colorFront: '#262626',\n proportion: 0.65,\n softness: 0.35,\n octaveCount: 6,\n persistence: 1,\n lacunarity: 2.55,\n },\n};\n\nexport const wormsPreset: PerlinNoisePreset = {\n name: 'Worms',\n params: {\n ...defaultPatternSizing,\n scale: 0.9,\n speed: 0,\n frame: 0,\n colorBack: '#ffffff',\n colorFront: '#595959',\n proportion: 0.5,\n softness: 0,\n octaveCount: 1,\n persistence: 1,\n lacunarity: 1.5,\n },\n};\n\nexport const perlinNoisePresets: PerlinNoisePreset[] = [defaultPreset, nintendoWaterPreset, mossPreset, wormsPreset];\n\nexport const PerlinNoise: React.FC<PerlinNoiseProps> = memo(function PerlinNoiseImpl({\n // Own props\n speed = defaultPreset.params.speed,\n frame = defaultPreset.params.frame,\n colorFront = defaultPreset.params.colorFront,\n colorBack = defaultPreset.params.colorBack,\n proportion = defaultPreset.params.proportion,\n softness = defaultPreset.params.softness,\n octaveCount = defaultPreset.params.octaveCount,\n persistence = defaultPreset.params.persistence,\n lacunarity,\n\n // Sizing props\n fit = defaultPreset.params.fit,\n worldWidth = defaultPreset.params.worldWidth,\n worldHeight = defaultPreset.params.worldHeight,\n scale = defaultPreset.params.scale,\n rotation = defaultPreset.params.rotation,\n originX = defaultPreset.params.originX,\n originY = defaultPreset.params.originY,\n offsetX = defaultPreset.params.offsetX,\n offsetY = defaultPreset.params.offsetY,\n ...props\n}: PerlinNoiseProps) {\n const uniforms = {\n // Own uniforms\n u_colorBack: getShaderColorFromString(colorBack),\n u_colorFront: getShaderColorFromString(colorFront),\n u_proportion: proportion,\n u_softness: softness ?? defaultPreset.params.softness,\n u_octaveCount: octaveCount ?? defaultPreset.params.octaveCount,\n u_persistence: persistence ?? defaultPreset.params.persistence,\n u_lacunarity: lacunarity ?? defaultPreset.params.lacunarity,\n\n // Sizing uniforms\n u_fit: ShaderFitOptions[fit],\n u_scale: scale,\n u_rotation: rotation,\n u_offsetX: offsetX,\n u_offsetY: offsetY,\n u_originX: originX,\n u_originY: originY,\n u_worldWidth: worldWidth,\n u_worldHeight: worldHeight,\n } satisfies PerlinNoiseUniforms;\n\n return (\n <ShaderMount\n {...props}\n speed={speed}\n frame={frame}\n fragmentShader={perlinNoiseFragmentShader}\n uniforms={uniforms}\n />\n );\n}, colorPropsAreEqual);\n"],
5
5
  "mappings": ";;;;;AAAA,SAAS,YAAY;AACrB,SAAS,mBAA8C;AACvD,SAAS,0BAA0B;AACnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AA0HH;AApHG,MAAM,gBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AACF;AAEO,MAAM,sBAAyC;AAAA,EACpD,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO,IAAI;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AACF;AAEO,MAAM,aAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO,IAAI;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AACF;AAEO,MAAM,cAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,QAAQ;AAAA,IACN,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,EACd;AACF;AAEO,MAAM,qBAA0C,CAAC,eAAe,qBAAqB,YAAY,WAAW;AAE5G,MAAM,cAA0C,KAAK,SAAS,gBAAgB;AAAA;AAAA,EAEnF,QAAQ,cAAc,OAAO;AAAA,EAC7B,QAAQ,cAAc,OAAO;AAAA,EAC7B,aAAa,cAAc,OAAO;AAAA,EAClC,YAAY,cAAc,OAAO;AAAA,EACjC,aAAa,cAAc,OAAO;AAAA,EAClC,WAAW,cAAc,OAAO;AAAA,EAChC,cAAc,cAAc,OAAO;AAAA,EACnC,cAAc,cAAc,OAAO;AAAA,EACnC;AAAA;AAAA,EAGA,MAAM,cAAc,OAAO;AAAA,EAC3B,aAAa,cAAc,OAAO;AAAA,EAClC,cAAc,cAAc,OAAO;AAAA,EACnC,QAAQ,cAAc,OAAO;AAAA,EAC7B,WAAW,cAAc,OAAO;AAAA,EAChC,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,UAAU,cAAc,OAAO;AAAA,EAC/B,GAAG;AACL,GAAqB;AACnB,QAAM,WAAW;AAAA;AAAA,IAEf,aAAa,yBAAyB,SAAS;AAAA,IAC/C,cAAc,yBAAyB,UAAU;AAAA,IACjD,cAAc;AAAA,IACd,YAAY,YAAY,cAAc,OAAO;AAAA,IAC7C,eAAe,eAAe,cAAc,OAAO;AAAA,IACnD,eAAe,eAAe,cAAc,OAAO;AAAA,IACnD,cAAc,cAAc,cAAc,OAAO;AAAA;AAAA,IAGjD,OAAO,iBAAiB,GAAG;AAAA,IAC3B,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA;AAAA,EACF;AAEJ,GAAG,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -18,21 +18,21 @@ const defaultPreset = {
18
18
  name: "Default",
19
19
  params: {
20
20
  ...defaultObjectSizing,
21
- scale: 0.55,
21
+ scale: 0.5,
22
22
  speed: 1,
23
23
  frame: 0,
24
24
  colorBack: "#000000",
25
- colors: ["#f2244f", "#4da6e6", "#379590"],
26
- roundness: 0.35,
27
- thickness: 0.05,
25
+ colors: ["#f22652", "#4da6e6", "#ffa600"],
26
+ roundness: 0.25,
27
+ thickness: 0.2,
28
28
  softness: 0.75,
29
- intensity: 0.3,
30
- bloom: 0.5,
29
+ intensity: 0.2,
30
+ bloom: 0.45,
31
31
  spots: 3,
32
- spotSize: 0.3,
33
- pulse: 0,
32
+ spotSize: 0.4,
33
+ pulse: 0.2,
34
34
  smoke: 0.35,
35
- smokeSize: 0.63
35
+ smokeSize: 0.6
36
36
  }
37
37
  };
38
38
  const circlePreset = {
@@ -132,7 +132,6 @@ const PulsingBorder = memo(function PulsingBorderImpl({
132
132
  worldHeight = defaultPreset.params.worldHeight,
133
133
  ...props
134
134
  }) {
135
- const noiseTexture = typeof window !== "undefined" && { u_noiseTexture: getShaderNoiseTexture(0) };
136
135
  const uniforms = {
137
136
  // Own uniforms
138
137
  u_colorBack: getShaderColorFromString(colorBack),
@@ -148,7 +147,7 @@ const PulsingBorder = memo(function PulsingBorderImpl({
148
147
  u_pulse: pulse,
149
148
  u_smoke: smoke,
150
149
  u_smokeSize: smokeSize,
151
- ...noiseTexture,
150
+ u_noiseTexture: getShaderNoiseTexture(),
152
151
  // Sizing uniforms
153
152
  u_fit: ShaderFitOptions[fit],
154
153
  u_rotation: rotation,