tsl-textures 3.0.0 → 3.0.4

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.
@@ -1,7 +1,7 @@
1
- // TSL Textures v2.5.1
1
+ // TSL Textures v3.0.4
2
2
 
3
- import { Fn, vec3, sub, transformNormalToView, cross, remap, pow, mul, log2, min, max, float, add, If, select, sin, cos, rotate, smoothstep, mx_fractal_noise_float, mix, mx_noise_float, time, positionGeometry, or, acos, clamp, exp, normalLocal, tangentLocal, int, Loop, oneMinus, abs, equirectUV, screenSize, exp2, div, round, remapClamp, screenUV, sqrt, mat2, mod, distance, radians, matcapUV, mx_worley_noise_float, sign, tan, floor, screenCoordinate, reciprocal, vec2, mx_worley_noise_vec2, mx_fractal_noise_vec3, mx_worley_noise_vec3 } from 'three/tsl';
4
- export { mx_fractal_noise_float as fractal, mx_fractal_noise_vec3 as fractal3, mx_noise_float as noise, mx_worley_noise_float as voronoi, mx_worley_noise_vec2 as voronoi2, mx_worley_noise_vec3 as voronoi3 } from 'three/tsl';
3
+ import { Fn, vec3, sub, transformNormalToView, cross, remap, pow, mul, log2, min, max, float, add, If, select, sin, cos, rotate, smoothstep, mx_fractal_noise_float, mix, mx_noise_float, time, positionGeometry, or, acos, clamp, exp, normalLocal, tangentLocal, int, Loop, oneMinus, abs, equirectUV, screenSize, exp2, div, round, remapClamp, screenUV, sqrt, mat2, mod, distance, radians, matcapUV, mx_worley_noise_float, sign, tan, floor, screenCoordinate, reciprocal, vec2, mx_worley_noise_vec2, mx_fractal_noise_vec3, mx_worley_noise_vec3, vertexColor, Discard, Switch, positionView } from 'three/tsl';
4
+ export { mx_fractal_noise_float as fractal, mx_fractal_noise_vec3 as fractal3, mx_noise_float as noise, mx_noise_vec3 as noise3, mx_worley_noise_float as voronoi, mx_worley_noise_vec2 as voronoi2, mx_worley_noise_vec3 as voronoi3 } from 'three/tsl';
5
5
  import { Color, Vector3, Vector2 } from 'three';
6
6
 
7
7
  // simple vector noise, vec3->float[-1,1]
@@ -295,7 +295,7 @@ const selectPlanar = Fn( ([ pos, selAngles, selCenter, selWidth ])=>{
295
295
  ]
296
296
  } );
297
297
 
298
- var defaults$N = {
298
+ var defaults$P = {
299
299
  $name: 'Brain',
300
300
 
301
301
  position: positionGeometry,
@@ -377,7 +377,7 @@ var brainNormalRaw = Fn( ([ position, scale, xsmooth, wave, speed, time, /*color
377
377
 
378
378
  function brain( params={} ) {
379
379
 
380
- var { position, scale, smooth, /*wave, speed, time,*/ color, background, seed } = { ...defaults$N, ...params };
380
+ var { position, scale, smooth, /*wave, speed, time,*/ color, background, seed } = { ...defaults$P, ...params };
381
381
 
382
382
  return brainRaw( position, scale, smooth, /*wave, speed, time,*/ color, background, seed );
383
383
 
@@ -387,7 +387,7 @@ function brain( params={} ) {
387
387
 
388
388
  brain.normal = function ( params={} ) {
389
389
 
390
- var { position, scale, smooth, wave, speed, time, /*color, background,*/ seed } = { ...defaults$N, ...params };
390
+ var { position, scale, smooth, wave, speed, time, /*color, background,*/ seed } = { ...defaults$P, ...params };
391
391
 
392
392
  return brainNormalRaw( position, scale, smooth, wave, speed, time, /*color, background,*/ seed );
393
393
 
@@ -395,9 +395,9 @@ brain.normal = function ( params={} ) {
395
395
 
396
396
 
397
397
 
398
- brain.defaults = defaults$N;
398
+ brain.defaults = defaults$P;
399
399
 
400
- var defaults$M = {
400
+ var defaults$O = {
401
401
  $name: 'Camouflage',
402
402
 
403
403
  position: positionGeometry,
@@ -458,7 +458,7 @@ var camouflageRaw = Fn( ([ position, scale, colorA, colorB, colorC, colorD, seed
458
458
 
459
459
  function camouflage( params={} ) {
460
460
 
461
- var { position, scale, colorA, colorB, colorC, colorD, seed } = { ...defaults$M, ...params };
461
+ var { position, scale, colorA, colorB, colorC, colorD, seed } = { ...defaults$O, ...params };
462
462
 
463
463
  return camouflageRaw( position, scale, colorA, colorB, colorC, colorD, seed );
464
464
 
@@ -466,9 +466,9 @@ function camouflage( params={} ) {
466
466
 
467
467
 
468
468
 
469
- camouflage.defaults = defaults$M;
469
+ camouflage.defaults = defaults$O;
470
470
 
471
- var defaults$L = {
471
+ var defaults$N = {
472
472
  $name: 'Cave art',
473
473
 
474
474
  position: positionGeometry,
@@ -527,7 +527,7 @@ var caveArtRaw = Fn( ([ position, scale, thinness, xnoise, color, background, se
527
527
 
528
528
  function caveArt( params={} ) {
529
529
 
530
- var { position, scale, thinness, noise, color, background, seed } = { ...defaults$L, ...params };
530
+ var { position, scale, thinness, noise, color, background, seed } = { ...defaults$N, ...params };
531
531
 
532
532
  return caveArtRaw( position, scale, thinness, noise, color, background, seed );
533
533
 
@@ -535,9 +535,9 @@ function caveArt( params={} ) {
535
535
 
536
536
 
537
537
 
538
- caveArt.defaults = defaults$L;
538
+ caveArt.defaults = defaults$N;
539
539
 
540
- var defaults$K = {
540
+ var defaults$M = {
541
541
  $name: 'Circles',
542
542
 
543
543
  position: positionGeometry,
@@ -596,7 +596,7 @@ var circlesRaw = Fn( ([ position, scale, variety, color, seed ]) => {
596
596
 
597
597
  function circles( params={} ) {
598
598
 
599
- var { position, scale, variety, color, seed } = { ...defaults$K, ...params };
599
+ var { position, scale, variety, color, seed } = { ...defaults$M, ...params };
600
600
 
601
601
  return circlesRaw( position, scale, variety, color, seed );
602
602
 
@@ -604,9 +604,9 @@ function circles( params={} ) {
604
604
 
605
605
 
606
606
 
607
- circles.defaults = defaults$K;
607
+ circles.defaults = defaults$M;
608
608
 
609
- var defaults$J = {
609
+ var defaults$L = {
610
610
  $name: 'Clouds',
611
611
 
612
612
  position: positionGeometry,
@@ -686,7 +686,7 @@ var cloudsOpacityRaw = Fn( ([ position, scale, density, opacity, /*color,subcolo
686
686
 
687
687
  function clouds( params={} ) {
688
688
 
689
- var { position, scale, density, /*opacity,*/color, subcolor, seed } = { ...defaults$J, ...params };
689
+ var { position, scale, density, /*opacity,*/color, subcolor, seed } = { ...defaults$L, ...params };
690
690
 
691
691
  return cloudsRaw( position, scale, density, /*opacity,*/color, subcolor, seed );
692
692
 
@@ -696,7 +696,7 @@ function clouds( params={} ) {
696
696
 
697
697
  clouds.opacity = function ( params={} ) {
698
698
 
699
- var { position, scale, density, opacity, /*color,subcolor,*/seed } = { ...defaults$J, ...params };
699
+ var { position, scale, density, opacity, /*color,subcolor,*/seed } = { ...defaults$L, ...params };
700
700
 
701
701
  return cloudsOpacityRaw( position, scale, density, opacity, /*color,subcolor,*/seed );
702
702
 
@@ -704,9 +704,9 @@ clouds.opacity = function ( params={} ) {
704
704
 
705
705
 
706
706
 
707
- clouds.defaults = defaults$J;
707
+ clouds.defaults = defaults$L;
708
708
 
709
- var defaults$I = {
709
+ var defaults$K = {
710
710
  $name: 'Concrete',
711
711
  $normalNode: true,
712
712
 
@@ -778,7 +778,7 @@ var concreteRaw = Fn( ([ position, normal, tangent, scale, density, bump, seed ]
778
778
 
779
779
  function concrete( params={} ) {
780
780
 
781
- var { position, scale, density, bump, seed } = { ...defaults$I, ...params };
781
+ var { position, scale, density, bump, seed } = { ...defaults$K, ...params };
782
782
 
783
783
  return concreteRaw( position, normalLocal, tangentLocal, scale, density, bump, seed );
784
784
 
@@ -786,9 +786,9 @@ function concrete( params={} ) {
786
786
 
787
787
 
788
788
 
789
- concrete.defaults = defaults$I;
789
+ concrete.defaults = defaults$K;
790
790
 
791
- var defaults$H = {
791
+ var defaults$J = {
792
792
  $name: 'Cork',
793
793
 
794
794
  position: positionGeometry,
@@ -868,7 +868,7 @@ var corkRaw = Fn( ([ position, scale, straight, xnoise, color, background, seed
868
868
 
869
869
  function cork( params={} ) {
870
870
 
871
- var { position, scale, straight, noise, color, background, seed } = { ...defaults$H, ...params };
871
+ var { position, scale, straight, noise, color, background, seed } = { ...defaults$J, ...params };
872
872
 
873
873
  return corkRaw( position, scale, straight, noise, color, background, seed );
874
874
 
@@ -876,9 +876,9 @@ function cork( params={} ) {
876
876
 
877
877
 
878
878
 
879
- cork.defaults = defaults$H;
879
+ cork.defaults = defaults$J;
880
880
 
881
- var defaults$G = {
881
+ var defaults$I = {
882
882
  $name: 'Dalmatian spots',
883
883
  $width: 260,
884
884
 
@@ -934,7 +934,7 @@ var dalmatianSpotsRaw = Fn( ([ position, scale, density, color, background, seed
934
934
 
935
935
  function dalmatianSpots( params={} ) {
936
936
 
937
- var { position, scale, density, color, background, seed } = { ...defaults$G, ...params };
937
+ var { position, scale, density, color, background, seed } = { ...defaults$I, ...params };
938
938
 
939
939
  return dalmatianSpotsRaw( position, scale, density, color, background, seed );
940
940
 
@@ -942,9 +942,9 @@ function dalmatianSpots( params={} ) {
942
942
 
943
943
 
944
944
 
945
- dalmatianSpots.defaults = defaults$G;
945
+ dalmatianSpots.defaults = defaults$I;
946
946
 
947
- var defaults$F = {
947
+ var defaults$H = {
948
948
  $name: 'Darth Maul',
949
949
 
950
950
  position: positionGeometry,
@@ -1004,7 +1004,7 @@ var darthMaulRaw = Fn( ([ position, scale, shift, complexity, angle, distance, c
1004
1004
 
1005
1005
  function darthMaul( params={} ) {
1006
1006
 
1007
- var { position, scale, shift, complexity, angle, distance, color, background, balance, seed } = { ...defaults$F, ...params };
1007
+ var { position, scale, shift, complexity, angle, distance, color, background, balance, seed } = { ...defaults$H, ...params };
1008
1008
 
1009
1009
  return darthMaulRaw( position, scale, shift, complexity, angle, distance, color, background, balance, seed );
1010
1010
 
@@ -1012,9 +1012,9 @@ function darthMaul( params={} ) {
1012
1012
 
1013
1013
 
1014
1014
 
1015
- darthMaul.defaults = defaults$F;
1015
+ darthMaul.defaults = defaults$H;
1016
1016
 
1017
- var defaults$E = {
1017
+ var defaults$G = {
1018
1018
  $name: 'Dyson sphere',
1019
1019
 
1020
1020
  position: positionGeometry,
@@ -1135,7 +1135,7 @@ var dysonSphereRaw = Fn( ([ position, scale, complexity, color, background, seed
1135
1135
 
1136
1136
  function dysonSphere( params={} ) {
1137
1137
 
1138
- var { position, scale, complexity, color, background, seed } = { ...defaults$E, ...params };
1138
+ var { position, scale, complexity, color, background, seed } = { ...defaults$G, ...params };
1139
1139
 
1140
1140
  return dysonSphereRaw( position, scale, complexity, color, background, seed );
1141
1141
 
@@ -1143,9 +1143,9 @@ function dysonSphere( params={} ) {
1143
1143
 
1144
1144
 
1145
1145
 
1146
- dysonSphere.defaults = defaults$E;
1146
+ dysonSphere.defaults = defaults$G;
1147
1147
 
1148
- var defaults$D = {
1148
+ var defaults$F = {
1149
1149
  $name: 'Entangled',
1150
1150
 
1151
1151
  position: positionGeometry,
@@ -1196,7 +1196,7 @@ var entangledRaw = Fn( ([ position, scale, density, color, background, seed ]) =
1196
1196
 
1197
1197
  function entangled( params={} ) {
1198
1198
 
1199
- var { position, scale, density, color, background, seed } = { ...defaults$D, ...params };
1199
+ var { position, scale, density, color, background, seed } = { ...defaults$F, ...params };
1200
1200
 
1201
1201
  return entangledRaw( position, scale, density, color, background, seed );
1202
1202
 
@@ -1204,9 +1204,9 @@ function entangled( params={} ) {
1204
1204
 
1205
1205
 
1206
1206
 
1207
- entangled.defaults = defaults$D;
1207
+ entangled.defaults = defaults$F;
1208
1208
 
1209
- var defaults$C = {
1209
+ var defaults$E = {
1210
1210
  $name: 'Fordite',
1211
1211
 
1212
1212
  position: positionGeometry,
@@ -1251,7 +1251,7 @@ var forditeRaw = Fn( ([ position, scale, color, seed ]) => {
1251
1251
 
1252
1252
  function fordite( params={} ) {
1253
1253
 
1254
- var { position, scale, color, seed } = { ...defaults$C, ...params };
1254
+ var { position, scale, color, seed } = { ...defaults$E, ...params };
1255
1255
 
1256
1256
  return forditeRaw( position, scale, color, seed );
1257
1257
 
@@ -1259,9 +1259,9 @@ function fordite( params={} ) {
1259
1259
 
1260
1260
 
1261
1261
 
1262
- fordite.defaults = defaults$C;
1262
+ fordite.defaults = defaults$E;
1263
1263
 
1264
- var defaults$B = {
1264
+ var defaults$D = {
1265
1265
  $name: 'Gas giant',
1266
1266
 
1267
1267
  position: positionGeometry,
@@ -1331,7 +1331,7 @@ var gasGiantRaw = Fn( ([ position, scale, turbulence, blur, colorA, colorB, colo
1331
1331
 
1332
1332
  function gasGiant( params={} ) {
1333
1333
 
1334
- var { position, scale, turbulence, blur, colorA, colorB, colorC, seed } = { ...defaults$B, ...params };
1334
+ var { position, scale, turbulence, blur, colorA, colorB, colorC, seed } = { ...defaults$D, ...params };
1335
1335
 
1336
1336
  return gasGiantRaw( position, scale, turbulence, blur, colorA, colorB, colorC, seed );
1337
1337
 
@@ -1339,9 +1339,9 @@ function gasGiant( params={} ) {
1339
1339
 
1340
1340
 
1341
1341
 
1342
- gasGiant.defaults = defaults$B;
1342
+ gasGiant.defaults = defaults$D;
1343
1343
 
1344
- var defaults$A = {
1344
+ var defaults$C = {
1345
1345
  $name: 'Grid',
1346
1346
  $replaceExportUVS: screenUV,
1347
1347
  $replaceExportASP: screenSize.x.div( screenSize.y ).log2(),
@@ -1402,7 +1402,7 @@ var gridRaw = Fn( ([ uvs, countU, countV, aspect, thinness, equirectangular, col
1402
1402
 
1403
1403
  function grid( params={} ) {
1404
1404
 
1405
- var { uvs, countU, countV, aspect, thinness, equirectangular, color, background } = { ...defaults$A, ...params };
1405
+ var { uvs, countU, countV, aspect, thinness, equirectangular, color, background } = { ...defaults$C, ...params };
1406
1406
 
1407
1407
  return gridRaw( uvs, countU, countV, aspect, thinness, equirectangular, color, background );
1408
1408
 
@@ -1410,9 +1410,9 @@ function grid( params={} ) {
1410
1410
 
1411
1411
 
1412
1412
 
1413
- grid.defaults = defaults$A;
1413
+ grid.defaults = defaults$C;
1414
1414
 
1415
- var defaults$z = {
1415
+ var defaults$B = {
1416
1416
  $name: 'Isolines',
1417
1417
 
1418
1418
  position: positionGeometry,
@@ -1460,7 +1460,7 @@ var isolinesRaw = Fn( ([ position, scale, density, blur, thinness, color, backgr
1460
1460
 
1461
1461
  function isolines( params={} ) {
1462
1462
 
1463
- var { position, scale, density, blur, thinness, color, background, seed } = { ...defaults$z, ...params };
1463
+ var { position, scale, density, blur, thinness, color, background, seed } = { ...defaults$B, ...params };
1464
1464
 
1465
1465
  return isolinesRaw( position, scale, density, blur, thinness, color, background, seed );
1466
1466
 
@@ -1468,9 +1468,9 @@ function isolines( params={} ) {
1468
1468
 
1469
1469
 
1470
1470
 
1471
- isolines.defaults = defaults$z;
1471
+ isolines.defaults = defaults$B;
1472
1472
 
1473
- var defaults$y = {
1473
+ var defaults$A = {
1474
1474
  $name: 'Karst rock',
1475
1475
 
1476
1476
  position: positionGeometry,
@@ -1513,7 +1513,7 @@ var karstRockRaw = Fn( ([ position, scale, color, background, seed ])=>{
1513
1513
 
1514
1514
  function karstRock( params={} ) {
1515
1515
 
1516
- var { position, scale, color, background, seed } = { ...defaults$y, ...params };
1516
+ var { position, scale, color, background, seed } = { ...defaults$A, ...params };
1517
1517
 
1518
1518
  return karstRockRaw( position, scale, color, background, seed );
1519
1519
 
@@ -1521,9 +1521,9 @@ function karstRock( params={} ) {
1521
1521
 
1522
1522
 
1523
1523
 
1524
- karstRock.defaults = defaults$y;
1524
+ karstRock.defaults = defaults$A;
1525
1525
 
1526
- var defaults$x = {
1526
+ var defaults$z = {
1527
1527
  $name: 'Marble',
1528
1528
 
1529
1529
  position: positionGeometry,
@@ -1595,7 +1595,7 @@ var marbleRaw = Fn( ([ position, scale, thinness, xnoise, color, background, see
1595
1595
 
1596
1596
  function marble( params={} ) {
1597
1597
 
1598
- var { position, scale, thinness, noise, color, background, seed } = { ...defaults$x, ...params };
1598
+ var { position, scale, thinness, noise, color, background, seed } = { ...defaults$z, ...params };
1599
1599
 
1600
1600
  return marbleRaw( position, scale, thinness, noise, color, background, seed );
1601
1601
 
@@ -1603,9 +1603,9 @@ function marble( params={} ) {
1603
1603
 
1604
1604
 
1605
1605
 
1606
- marble.defaults = defaults$x;
1606
+ marble.defaults = defaults$z;
1607
1607
 
1608
- var defaults$w = {
1608
+ var defaults$y = {
1609
1609
  $name: 'Neon Lights',
1610
1610
 
1611
1611
  position: positionGeometry,
@@ -1688,7 +1688,7 @@ var neonLightsRaw = Fn( ([ position, scale, thinness, mode, colorA, colorB, colo
1688
1688
 
1689
1689
  function neonLights( params={} ) {
1690
1690
 
1691
- var { position, scale, thinness, mode, colorA, colorB, colorC, background, seed } = { ...defaults$w, ...params };
1691
+ var { position, scale, thinness, mode, colorA, colorB, colorC, background, seed } = { ...defaults$y, ...params };
1692
1692
 
1693
1693
  return neonLightsRaw( position, scale, thinness, mode, colorA, colorB, colorC, background, seed );
1694
1694
 
@@ -1696,9 +1696,9 @@ function neonLights( params={} ) {
1696
1696
 
1697
1697
 
1698
1698
 
1699
- neonLights.defaults = defaults$w;
1699
+ neonLights.defaults = defaults$y;
1700
1700
 
1701
- var defaults$v = {
1701
+ var defaults$x = {
1702
1702
  $name: 'Perlin noise',
1703
1703
 
1704
1704
  position: positionGeometry,
@@ -1740,7 +1740,7 @@ var perlinNoiseRaw = Fn( ([ position, scale, balance, contrast, color, backgroun
1740
1740
 
1741
1741
  function perlinNoise( params={} ) {
1742
1742
 
1743
- var { position, scale, balance, contrast, color, background, seed } = { ...defaults$v, ...params };
1743
+ var { position, scale, balance, contrast, color, background, seed } = { ...defaults$x, ...params };
1744
1744
 
1745
1745
  return perlinNoiseRaw( position, scale, balance, contrast, color, background, seed );
1746
1746
 
@@ -1748,9 +1748,9 @@ function perlinNoise( params={} ) {
1748
1748
 
1749
1749
 
1750
1750
 
1751
- perlinNoise.defaults = defaults$v;
1751
+ perlinNoise.defaults = defaults$x;
1752
1752
 
1753
- var defaults$u = {
1753
+ var defaults$w = {
1754
1754
  $name: 'Photosphere',
1755
1755
 
1756
1756
  position: positionGeometry,
@@ -1799,7 +1799,7 @@ var photosphereRaw = Fn( ([ position, scale, color, background, seed ]) => {
1799
1799
 
1800
1800
  function photosphere( params={} ) {
1801
1801
 
1802
- var { position, scale, color, background, seed } = { ...defaults$u, ...params };
1802
+ var { position, scale, color, background, seed } = { ...defaults$w, ...params };
1803
1803
 
1804
1804
  return photosphereRaw( position, scale, color, background, seed );
1805
1805
 
@@ -1807,9 +1807,9 @@ function photosphere( params={} ) {
1807
1807
 
1808
1808
 
1809
1809
 
1810
- photosphere.defaults = defaults$u;
1810
+ photosphere.defaults = defaults$w;
1811
1811
 
1812
- var defaults$t = {
1812
+ var defaults$v = {
1813
1813
  $name: 'Planet',
1814
1814
 
1815
1815
  position: positionGeometry,
@@ -1952,7 +1952,7 @@ var planetRaw = Fn( ([ position, scale, iterations, levelSea, levelMountain, bal
1952
1952
 
1953
1953
  function planet( params={} ) {
1954
1954
 
1955
- var { position, scale, iterations, levelSea, levelMountain, balanceWater, balanceSand, balanceSnow, colorDeep, colorShallow, colorBeach, colorGrass, colorForest, colorSnow, seed } = { ...defaults$t, ...params };
1955
+ var { position, scale, iterations, levelSea, levelMountain, balanceWater, balanceSand, balanceSnow, colorDeep, colorShallow, colorBeach, colorGrass, colorForest, colorSnow, seed } = { ...defaults$v, ...params };
1956
1956
 
1957
1957
  return planetRaw( position, scale, iterations, levelSea, levelMountain, balanceWater, balanceSand, balanceSnow, colorDeep, colorShallow, colorBeach, colorGrass, colorForest, colorSnow, seed );
1958
1958
 
@@ -1960,9 +1960,9 @@ function planet( params={} ) {
1960
1960
 
1961
1961
 
1962
1962
 
1963
- planet.defaults = defaults$t;
1963
+ planet.defaults = defaults$v;
1964
1964
 
1965
- var defaults$s = {
1965
+ var defaults$u = {
1966
1966
  $name: 'Polka dots',
1967
1967
 
1968
1968
  position: positionGeometry,
@@ -2044,7 +2044,7 @@ var polkaDotsRaw = Fn( ([ position, count, size, blur, color, background, xflat
2044
2044
 
2045
2045
  function polkaDots( params={} ) {
2046
2046
 
2047
- var { position, count, size, blur, color, background, flat } = { ...defaults$s, ...params };
2047
+ var { position, count, size, blur, color, background, flat } = { ...defaults$u, ...params };
2048
2048
 
2049
2049
  return polkaDotsRaw( position, count, size, blur, color, background, flat );
2050
2050
 
@@ -2052,9 +2052,9 @@ function polkaDots( params={} ) {
2052
2052
 
2053
2053
 
2054
2054
 
2055
- polkaDots.defaults = defaults$s;
2055
+ polkaDots.defaults = defaults$u;
2056
2056
 
2057
- var defaults$r = {
2057
+ var defaults$t = {
2058
2058
  $name: 'Processed wood',
2059
2059
  $width: 260,
2060
2060
 
@@ -2110,7 +2110,7 @@ var processedWoodRaw = Fn( ([ position, scale, lengths, strength, angle, color,
2110
2110
 
2111
2111
  function processedWood( params={} ) {
2112
2112
 
2113
- var { position, scale, lengths, strength, angle, color, background, seed } = { ...defaults$r, ...params };
2113
+ var { position, scale, lengths, strength, angle, color, background, seed } = { ...defaults$t, ...params };
2114
2114
 
2115
2115
  return processedWoodRaw( position, scale, lengths, strength, angle, color, background, seed );
2116
2116
 
@@ -2118,9 +2118,9 @@ function processedWood( params={} ) {
2118
2118
 
2119
2119
 
2120
2120
 
2121
- processedWood.defaults = defaults$r;
2121
+ processedWood.defaults = defaults$t;
2122
2122
 
2123
- var defaults$q = {
2123
+ var defaults$s = {
2124
2124
  $name: 'Protozoa',
2125
2125
 
2126
2126
  position: positionGeometry,
@@ -2180,7 +2180,7 @@ var protozoaRaw = Fn( ([ position, matcap, scale, fat, amount, color, subcolor,
2180
2180
 
2181
2181
  pos.assign( mix( pos.mul( dPos ), 0, 0.4 ) );
2182
2182
 
2183
- scale.mulAssign( 0.9 );
2183
+ xscale.mulAssign( 0.9 );
2184
2184
 
2185
2185
  } );
2186
2186
 
@@ -2206,7 +2206,7 @@ var protozoaRaw = Fn( ([ position, matcap, scale, fat, amount, color, subcolor,
2206
2206
 
2207
2207
  function protozoa( params={} ) {
2208
2208
 
2209
- var { position, matcap, scale, fat, amount, color, subcolor, background, seed } = { ...defaults$q, ...params };
2209
+ var { position, matcap, scale, fat, amount, color, subcolor, background, seed } = { ...defaults$s, ...params };
2210
2210
 
2211
2211
  return protozoaRaw( position, matcap, scale, fat, amount, color, subcolor, background, seed );
2212
2212
 
@@ -2214,9 +2214,9 @@ function protozoa( params={} ) {
2214
2214
 
2215
2215
 
2216
2216
 
2217
- protozoa.defaults = defaults$q;
2217
+ protozoa.defaults = defaults$s;
2218
2218
 
2219
- var defaults$p = {
2219
+ var defaults$r = {
2220
2220
  $name: 'Rotator',
2221
2221
  $positionNode: true,
2222
2222
  $selectorPlanar: true,
@@ -2302,7 +2302,7 @@ var rotatorNormalRaw = Fn( ([ angles, center, selectorAngles, selectorCenter, se
2302
2302
 
2303
2303
  function rotator( params={} ) {
2304
2304
 
2305
- var { angles, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$p, ...params };
2305
+ var { angles, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$r, ...params };
2306
2306
 
2307
2307
  return rotatorRaw( angles, center, selectorAngles, selectorCenter, selectorWidth );
2308
2308
 
@@ -2312,7 +2312,7 @@ function rotator( params={} ) {
2312
2312
 
2313
2313
  rotator.normal = function ( params={} ) {
2314
2314
 
2315
- var { angles, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$p, ...params };
2315
+ var { angles, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$r, ...params };
2316
2316
 
2317
2317
  return rotatorNormalRaw( angles, center, selectorAngles, selectorCenter, selectorWidth );
2318
2318
 
@@ -2320,9 +2320,9 @@ rotator.normal = function ( params={} ) {
2320
2320
 
2321
2321
 
2322
2322
 
2323
- rotator.defaults = defaults$p;
2323
+ rotator.defaults = defaults$r;
2324
2324
 
2325
- var defaults$o = {
2325
+ var defaults$q = {
2326
2326
  $name: 'Rough clay',
2327
2327
  $normalNode: true,
2328
2328
 
@@ -2389,7 +2389,7 @@ var roughClayRaw = Fn( ([ position, normal, tangent, scale, bump, curvature, see
2389
2389
 
2390
2390
  function roughClay( params={} ) {
2391
2391
 
2392
- var { position, scale, bump, curvature, seed } = { ...defaults$o, ...params };
2392
+ var { position, scale, bump, curvature, seed } = { ...defaults$q, ...params };
2393
2393
 
2394
2394
  return roughClayRaw( position, normalLocal, tangentLocal, scale, bump, curvature, seed );
2395
2395
 
@@ -2397,9 +2397,9 @@ function roughClay( params={} ) {
2397
2397
 
2398
2398
 
2399
2399
 
2400
- roughClay.defaults = defaults$o;
2400
+ roughClay.defaults = defaults$q;
2401
2401
 
2402
- var defaults$n = {
2402
+ var defaults$p = {
2403
2403
  $name: 'Runny eggs',
2404
2404
 
2405
2405
  position: positionGeometry,
@@ -2535,7 +2535,7 @@ var runnyEggsRoughnessRaw = Fn( ([ position, scale, sizeYolk, /*sizeWhite, color
2535
2535
 
2536
2536
  function runnyEggs( params={} ) {
2537
2537
 
2538
- var { position, scale, sizeYolk, sizeWhite, colorYolk, colorWhite, colorBackground, seed } = { ...defaults$n, ...params };
2538
+ var { position, scale, sizeYolk, sizeWhite, colorYolk, colorWhite, colorBackground, seed } = { ...defaults$p, ...params };
2539
2539
 
2540
2540
  return runnyEggsRaw( position, scale, sizeYolk, sizeWhite, colorYolk, colorWhite, colorBackground, seed );
2541
2541
 
@@ -2545,7 +2545,7 @@ function runnyEggs( params={} ) {
2545
2545
 
2546
2546
  runnyEggs.normal = function ( params={} ) {
2547
2547
 
2548
- var { position, scale, sizeYolk, sizeWhite, /*colorYolk, colorWhite, colorBackground,*/ seed } = { ...defaults$n, ...params };
2548
+ var { position, scale, sizeYolk, sizeWhite, /*colorYolk, colorWhite, colorBackground,*/ seed } = { ...defaults$p, ...params };
2549
2549
 
2550
2550
  return runnyEggsNormalRaw( position, normalLocal, tangentLocal, scale, sizeYolk, sizeWhite, /*colorYolk, colorWhite, colorBackground,*/ seed );
2551
2551
 
@@ -2555,7 +2555,7 @@ runnyEggs.normal = function ( params={} ) {
2555
2555
 
2556
2556
  runnyEggs.roughness = function ( params={} ) {
2557
2557
 
2558
- var { position, scale, sizeYolk, /*sizeWhite, colorYolk, colorWhite, colorBackground,*/ seed } = { ...defaults$n, ...params };
2558
+ var { position, scale, sizeYolk, /*sizeWhite, colorYolk, colorWhite, colorBackground,*/ seed } = { ...defaults$p, ...params };
2559
2559
 
2560
2560
  return runnyEggsRoughnessRaw( position, scale, sizeYolk, /*sizeWhite, colorYolk, colorWhite, colorBackground,*/ seed );
2561
2561
 
@@ -2563,9 +2563,9 @@ runnyEggs.roughness = function ( params={} ) {
2563
2563
 
2564
2564
 
2565
2565
 
2566
- runnyEggs.defaults = defaults$n;
2566
+ runnyEggs.defaults = defaults$p;
2567
2567
 
2568
- var defaults$m = {
2568
+ var defaults$o = {
2569
2569
  $name: 'rust',
2570
2570
 
2571
2571
  position: positionGeometry,
@@ -2675,7 +2675,7 @@ var rustOpacityRaw = Fn( ([ position, scale, iterations, amount, opacity, /*xnoi
2675
2675
 
2676
2676
  function rust( params={} ) {
2677
2677
 
2678
- var { position, scale, iterations, amount, /*opacity,*/ noise, noiseScale, color, background, seed } = { ...defaults$m, ...params };
2678
+ var { position, scale, iterations, amount, /*opacity,*/ noise, noiseScale, color, background, seed } = { ...defaults$o, ...params };
2679
2679
 
2680
2680
  return rustRaw( position, scale, iterations, amount, /*opacity,*/noise, noiseScale, color, background, seed );
2681
2681
 
@@ -2685,7 +2685,7 @@ function rust( params={} ) {
2685
2685
 
2686
2686
  rust.opacity = function ( params={} ) {
2687
2687
 
2688
- var { position, scale, iterations, amount, opacity, /*xnoise, noiseScale, color, background,*/ seed } = { ...defaults$m, ...params };
2688
+ var { position, scale, iterations, amount, opacity, /*xnoise, noiseScale, color, background,*/ seed } = { ...defaults$o, ...params };
2689
2689
 
2690
2690
  return rustOpacityRaw( position, scale, iterations, amount, opacity, /*xnoise, noiseScale, color, background,*/ seed );
2691
2691
 
@@ -2693,9 +2693,9 @@ rust.opacity = function ( params={} ) {
2693
2693
 
2694
2694
 
2695
2695
 
2696
- rust.defaults = defaults$m;
2696
+ rust.defaults = defaults$o;
2697
2697
 
2698
- var defaults$l = {
2698
+ var defaults$n = {
2699
2699
  $name: 'Satin',
2700
2700
 
2701
2701
  position: positionGeometry,
@@ -2740,7 +2740,7 @@ var satinRaw = Fn( ([ position, scale, color, background, seed ]) => {
2740
2740
 
2741
2741
  function satin( params={} ) {
2742
2742
 
2743
- var { position, scale, color, background, seed } = { ...defaults$l, ...params };
2743
+ var { position, scale, color, background, seed } = { ...defaults$n, ...params };
2744
2744
 
2745
2745
  return satinRaw( position, scale, color, background, seed );
2746
2746
 
@@ -2748,9 +2748,9 @@ function satin( params={} ) {
2748
2748
 
2749
2749
 
2750
2750
 
2751
- satin.defaults = defaults$l;
2751
+ satin.defaults = defaults$n;
2752
2752
 
2753
- var defaults$k = {
2753
+ var defaults$m = {
2754
2754
  $name: 'Scaler',
2755
2755
  $positionNode: true,
2756
2756
  $selectorPlanar: true,
@@ -2827,7 +2827,7 @@ var scalerNormalRaw = Fn( ([ scales, center, selectorAngles, selectorCenter, sel
2827
2827
 
2828
2828
  function scaler( params={} ) {
2829
2829
 
2830
- var { scales, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$k, ...params };
2830
+ var { scales, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$m, ...params };
2831
2831
 
2832
2832
  return scalerRaw( scales, center, selectorAngles, selectorCenter, selectorWidth );
2833
2833
 
@@ -2837,7 +2837,7 @@ function scaler( params={} ) {
2837
2837
 
2838
2838
  scaler.normal = function ( params={} ) {
2839
2839
 
2840
- var { scales, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$k, ...params };
2840
+ var { scales, center, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$m, ...params };
2841
2841
 
2842
2842
  return scalerNormalRaw( scales, center, selectorAngles, selectorCenter, selectorWidth );
2843
2843
 
@@ -2845,9 +2845,9 @@ scaler.normal = function ( params={} ) {
2845
2845
 
2846
2846
 
2847
2847
 
2848
- scaler.defaults = defaults$k;
2848
+ scaler.defaults = defaults$m;
2849
2849
 
2850
- var defaults$j = {
2850
+ var defaults$l = {
2851
2851
  $name: 'Scepter head',
2852
2852
 
2853
2853
  position: positionGeometry,
@@ -2917,7 +2917,7 @@ var scepterHeadRaw = Fn( ([ position, xFactor, yFactor, zFactor, colorRim, color
2917
2917
 
2918
2918
  function scepterHead( params={} ) {
2919
2919
 
2920
- var { position, xFactor, yFactor, zFactor, colorRim, colorA, colorB } = { ...defaults$j, ...params };
2920
+ var { position, xFactor, yFactor, zFactor, colorRim, colorA, colorB } = { ...defaults$l, ...params };
2921
2921
 
2922
2922
  return scepterHeadRaw( position, xFactor, yFactor, zFactor, colorRim, colorA, colorB );
2923
2923
 
@@ -2925,9 +2925,9 @@ function scepterHead( params={} ) {
2925
2925
 
2926
2926
 
2927
2927
 
2928
- scepterHead.defaults = defaults$j;
2928
+ scepterHead.defaults = defaults$l;
2929
2929
 
2930
- var defaults$i = {
2930
+ var defaults$k = {
2931
2931
  $name: 'Scream',
2932
2932
 
2933
2933
  position: positionGeometry,
@@ -2975,7 +2975,7 @@ var screamRaw = Fn( ([ position, scale, variety, color, background, seed ]) => {
2975
2975
 
2976
2976
  function scream( params={} ) {
2977
2977
 
2978
- var { position, scale, variety, color, background, seed } = { ...defaults$i, ...params };
2978
+ var { position, scale, variety, color, background, seed } = { ...defaults$k, ...params };
2979
2979
 
2980
2980
  return screamRaw( position, scale, variety, color, background, seed );
2981
2981
 
@@ -2983,9 +2983,9 @@ function scream( params={} ) {
2983
2983
 
2984
2984
 
2985
2985
 
2986
- scream.defaults = defaults$i;
2986
+ scream.defaults = defaults$k;
2987
2987
 
2988
- var defaults$h = {
2988
+ var defaults$j = {
2989
2989
  $name: 'Stars',
2990
2990
 
2991
2991
  position: positionGeometry,
@@ -3033,7 +3033,7 @@ var starsRaw = Fn( ([ position, scale, density, variation, color, background, se
3033
3033
 
3034
3034
  function stars( params={} ) {
3035
3035
 
3036
- var { position, scale, density, variation, color, background, seed } = { ...defaults$h, ...params };
3036
+ var { position, scale, density, variation, color, background, seed } = { ...defaults$j, ...params };
3037
3037
 
3038
3038
  return starsRaw( position, scale, density, variation, color, background, seed );
3039
3039
 
@@ -3041,9 +3041,9 @@ function stars( params={} ) {
3041
3041
 
3042
3042
 
3043
3043
 
3044
- stars.defaults = defaults$h;
3044
+ stars.defaults = defaults$j;
3045
3045
 
3046
- var defaults$g = {
3046
+ var defaults$i = {
3047
3047
  $name: 'Static noise',
3048
3048
 
3049
3049
  position: screenCoordinate,
@@ -3093,7 +3093,7 @@ var staticNoiseRaw = Fn( ([ position, time, scale, balance, contrast, delay, see
3093
3093
 
3094
3094
  function staticNoise( params={} ) {
3095
3095
 
3096
- var { position, time, scale, balance, contrast, delay, seed } = { ...defaults$g, ...params };
3096
+ var { position, time, scale, balance, contrast, delay, seed } = { ...defaults$i, ...params };
3097
3097
 
3098
3098
  return staticNoiseRaw( position, time, scale, balance, contrast, delay, seed );
3099
3099
 
@@ -3101,9 +3101,9 @@ function staticNoise( params={} ) {
3101
3101
 
3102
3102
 
3103
3103
 
3104
- staticNoise.defaults = defaults$g;
3104
+ staticNoise.defaults = defaults$i;
3105
3105
 
3106
- var defaults$f = {
3106
+ var defaults$h = {
3107
3107
  $name: 'Supersphere',
3108
3108
  $positionNode: true,
3109
3109
 
@@ -3178,7 +3178,7 @@ var supersphereNormalRaw = Fn( ([ exponent ]) => {
3178
3178
 
3179
3179
  function supersphere( params={} ) {
3180
3180
 
3181
- var { exponent } = { ...defaults$f, ...params };
3181
+ var { exponent } = { ...defaults$h, ...params };
3182
3182
 
3183
3183
  return supersphereRaw( exponent );
3184
3184
 
@@ -3188,7 +3188,7 @@ function supersphere( params={} ) {
3188
3188
 
3189
3189
  supersphere.normal = function ( params={} ) {
3190
3190
 
3191
- var { exponent } = { ...defaults$f, ...params };
3191
+ var { exponent } = { ...defaults$h, ...params };
3192
3192
 
3193
3193
  return supersphereNormalRaw( exponent );
3194
3194
 
@@ -3196,9 +3196,9 @@ supersphere.normal = function ( params={} ) {
3196
3196
 
3197
3197
 
3198
3198
 
3199
- supersphere.defaults = defaults$f;
3199
+ supersphere.defaults = defaults$h;
3200
3200
 
3201
- var defaults$e = {
3201
+ var defaults$g = {
3202
3202
  $name: 'Tiger fur',
3203
3203
 
3204
3204
  position: positionGeometry,
@@ -3251,7 +3251,7 @@ var tigerFurRaw = Fn( ([ position, scale, lengths, blur, strength, hairs, color,
3251
3251
 
3252
3252
  function tigerFur( params={} ) {
3253
3253
 
3254
- var { position, scale, lengths, blur, strength, hairs, color, bottomColor, seed } = { ...defaults$e, ...params };
3254
+ var { position, scale, lengths, blur, strength, hairs, color, bottomColor, seed } = { ...defaults$g, ...params };
3255
3255
 
3256
3256
  return tigerFurRaw( position, scale, lengths, blur, strength, hairs, color, bottomColor, seed );
3257
3257
 
@@ -3259,9 +3259,9 @@ function tigerFur( params={} ) {
3259
3259
 
3260
3260
 
3261
3261
 
3262
- tigerFur.defaults = defaults$e;
3262
+ tigerFur.defaults = defaults$g;
3263
3263
 
3264
- var defaults$d = {
3264
+ var defaults$f = {
3265
3265
  $name: 'Translator',
3266
3266
  $positionNode: true,
3267
3267
  $selectorPlanar: true,
@@ -3343,7 +3343,7 @@ var translatorNormalRaw = Fn( ([ distance, selectorAngles, selectorCenter, selec
3343
3343
 
3344
3344
  function translator( params={} ) {
3345
3345
 
3346
- var { distance, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$d, ...params };
3346
+ var { distance, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$f, ...params };
3347
3347
 
3348
3348
  return translatorRaw( distance, selectorAngles, selectorCenter, selectorWidth );
3349
3349
 
@@ -3353,7 +3353,7 @@ function translator( params={} ) {
3353
3353
 
3354
3354
  translator.normal = function ( params={} ) {
3355
3355
 
3356
- var { distance, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$d, ...params };
3356
+ var { distance, selectorAngles, selectorCenter, selectorWidth } = { ...defaults$f, ...params };
3357
3357
 
3358
3358
  return translatorNormalRaw( distance, selectorAngles, selectorCenter, selectorWidth );
3359
3359
 
@@ -3361,9 +3361,9 @@ translator.normal = function ( params={} ) {
3361
3361
 
3362
3362
 
3363
3363
 
3364
- translator.defaults = defaults$d;
3364
+ translator.defaults = defaults$f;
3365
3365
 
3366
- var defaults$c = {
3366
+ var defaults$e = {
3367
3367
  $name: 'Voronoi cells',
3368
3368
 
3369
3369
  position: positionGeometry,
@@ -3438,7 +3438,7 @@ var voronoiCellsRaw = Fn( ([ position, scale, variation, facet, color, backgroun
3438
3438
 
3439
3439
  function voronoiCells( params={} ) {
3440
3440
 
3441
- var { position, scale, variation, facet, color, background, seed } = { ...defaults$c, ...params };
3441
+ var { position, scale, variation, facet, color, background, seed } = { ...defaults$e, ...params };
3442
3442
 
3443
3443
  return voronoiCellsRaw( position, scale, variation, facet, color, background, seed );
3444
3444
 
@@ -3446,9 +3446,9 @@ function voronoiCells( params={} ) {
3446
3446
 
3447
3447
 
3448
3448
 
3449
- voronoiCells.defaults = defaults$c;
3449
+ voronoiCells.defaults = defaults$e;
3450
3450
 
3451
- var defaults$b = {
3451
+ var defaults$d = {
3452
3452
  $name: 'Water Drops',
3453
3453
  $normalNode: true,
3454
3454
 
@@ -3521,7 +3521,7 @@ var waterDropsRaw = Fn( ([ position, normal, tangent, scale, density, bump, seed
3521
3521
 
3522
3522
  function waterDrops( params={} ) {
3523
3523
 
3524
- var { position, scale, density, bump, seed } = { ...defaults$b, ...params };
3524
+ var { position, scale, density, bump, seed } = { ...defaults$d, ...params };
3525
3525
 
3526
3526
  return waterDropsRaw( position, normalLocal, tangentLocal, scale, density, bump, seed );
3527
3527
 
@@ -3529,9 +3529,9 @@ function waterDrops( params={} ) {
3529
3529
 
3530
3530
 
3531
3531
 
3532
- waterDrops.defaults = defaults$b;
3532
+ waterDrops.defaults = defaults$d;
3533
3533
 
3534
- var defaults$a = {
3534
+ var defaults$c = {
3535
3535
  $name: 'Watermelon',
3536
3536
  $replaceExportUVS: screenUV,
3537
3537
 
@@ -3594,7 +3594,7 @@ var watermelonRaw = Fn( ([ position, uvs, scale, stripes, variation, xnoise, col
3594
3594
 
3595
3595
  function watermelon( params={} ) {
3596
3596
 
3597
- var { position, uvs, scale, stripes, variation, noise, color, background, seed } = { ...defaults$a, ...params };
3597
+ var { position, uvs, scale, stripes, variation, noise, color, background, seed } = { ...defaults$c, ...params };
3598
3598
 
3599
3599
  return watermelonRaw( position, uvs, scale, stripes, variation, noise, color, background, seed );
3600
3600
 
@@ -3602,9 +3602,146 @@ function watermelon( params={} ) {
3602
3602
 
3603
3603
 
3604
3604
 
3605
- watermelon.defaults = defaults$a;
3605
+ watermelon.defaults = defaults$c;
3606
3606
 
3607
- var defaults$9 = {
3607
+ var defaults$b = {
3608
+ $name: 'Waves',
3609
+
3610
+ position: positionGeometry,
3611
+ scale: 2,
3612
+ speed: 0,
3613
+ time: time,
3614
+ level: -0.4,
3615
+ rough: 10,
3616
+ height: 0.5,
3617
+
3618
+ foamSize: 0.2,
3619
+ foamEdge: 0.5,
3620
+
3621
+ color: new Color( 0xFFFFFF ),
3622
+ background: new Color( 0x2060FF ),
3623
+
3624
+ seed: 0,
3625
+ };
3626
+
3627
+
3628
+
3629
+ var waves_core = Fn( ([ position, scale, speed, time, level, rough, height, foamSize, /*foamEdge,*/ seed ]) => {
3630
+
3631
+ const xscale = exp( scale.sub( 1 ) ).toVar();
3632
+ const pos = position.mul( xscale ).add( seed ).toVar( 'pos' );
3633
+ const xtime = time.mul( speed.exp() );
3634
+
3635
+ var posXZ = vec3( pos.x, 0, pos.z ).div( 3 );
3636
+
3637
+ const xfoamSize = foamSize.mul( mx_fractal_noise_float( pos, rough.div( 2 ) ).div( 2 ).add( 1 ).div( 2 ) );
3638
+
3639
+ var xheight = height.div( xscale, 0.8 ).toVar();
3640
+
3641
+ var wave = position.y.sub( level )
3642
+ .add( mx_fractal_noise_float( posXZ, 1 ).mul( 2*3.14 ).add( xtime ).sin().div( 2 ).mul( xheight ) )
3643
+ .sub( mx_fractal_noise_float( pos, rough ).mul( 2*3.14 ).add( xtime.mul( 2 ) ).sin().sub( 1 ).div( 5 ).mul( xheight ) )
3644
+ .smoothstep( float( 0.5 ).sub( xfoamSize ), float( 0.5 ).add( xfoamSize ) )
3645
+ .toVar();
3646
+
3647
+ return wave;
3648
+
3649
+ } ).setLayout( {
3650
+ name: 'waves_core',
3651
+ type: 'float',
3652
+ inputs: [
3653
+ { name: 'position', type: 'vec3' },
3654
+ { name: 'scale', type: 'float' },
3655
+ { name: 'speed', type: 'float' },
3656
+ { name: 'time', type: 'float' },
3657
+ { name: 'level', type: 'float' },
3658
+ { name: 'rough', type: 'float' },
3659
+ { name: 'height', type: 'float' },
3660
+ { name: 'foamSize', type: 'float' },
3661
+ /*{ name: 'foamEdge', type: 'float' },*/
3662
+ { name: 'seed', type: 'float' },
3663
+ ] }
3664
+ );
3665
+
3666
+
3667
+
3668
+ var wavesRaw = Fn( ([ position, scale, speed, time, level, rough, height, foamSize, /*foamEdge,*/ color, background, seed ]) => {
3669
+
3670
+ var k = waves_core( position, scale, speed, time, level, rough, height, foamSize, /*foamEdge,*/ seed );
3671
+ return mix( background, color, k.clamp( 0, 1 ) );
3672
+
3673
+
3674
+ } ).setLayout( {
3675
+ name: 'wavesRaw',
3676
+ type: 'vec3',
3677
+ inputs: [
3678
+ { name: 'position', type: 'vec3' },
3679
+ { name: 'scale', type: 'float' },
3680
+ { name: 'speed', type: 'float' },
3681
+ { name: 'time', type: 'float' },
3682
+ { name: 'level', type: 'float' },
3683
+ { name: 'rough', type: 'float' },
3684
+ { name: 'height', type: 'float' },
3685
+ { name: 'foamSize', type: 'float' },
3686
+ /*{ name: 'foamEdge', type: 'float' },*/
3687
+ { name: 'color', type: 'vec3' },
3688
+ { name: 'background', type: 'vec3' },
3689
+ { name: 'seed', type: 'float' },
3690
+ ] }
3691
+ );
3692
+
3693
+
3694
+
3695
+ var wavesOpacityRaw = Fn( ([ position, scale, speed, time, level, rough, height, foamSize, foamEdge, /*color,background,*/ seed ]) => {
3696
+
3697
+ var k = waves_core( position, scale, speed, time, level, rough, height, foamSize, /*foamEdge,*/ seed ).oneMinus();
3698
+
3699
+ return k.smoothstep( 0, foamEdge.oneMinus().div( 10 ) );
3700
+
3701
+ } ).setLayout( {
3702
+ name: 'wavesOpacityRaw',
3703
+ type: 'float',
3704
+ inputs: [
3705
+ { name: 'position', type: 'vec3' },
3706
+ { name: 'scale', type: 'float' },
3707
+ { name: 'speed', type: 'float' },
3708
+ { name: 'time', type: 'float' },
3709
+ { name: 'level', type: 'float' },
3710
+ { name: 'rough', type: 'float' },
3711
+ { name: 'height', type: 'float' },
3712
+ { name: 'foamSize', type: 'float' },
3713
+ { name: 'foamEdge', type: 'float' },
3714
+ /*{ name: 'color', type: 'vec3' },*/
3715
+ /*{ name: 'subcolor', type: 'vec3' },*/
3716
+ { name: 'seed', type: 'float' },
3717
+ ] }
3718
+ );
3719
+
3720
+
3721
+
3722
+ function waves( params={} ) {
3723
+
3724
+ var { position, scale, speed, time, level, rough, height, foamSize, /*foamEdge,*/ color, background, seed } = { ...defaults$b, ...params };
3725
+
3726
+ return wavesRaw( position, scale, speed, time, level, rough, height, foamSize, /*foamEdge,*/ color, background, seed );
3727
+
3728
+ }
3729
+
3730
+
3731
+
3732
+ waves.opacity = function ( params={} ) {
3733
+
3734
+ var { position, scale, speed, time, level, rough, height, foamSize, foamEdge, /*color,background,*/seed } = { ...defaults$b, ...params };
3735
+
3736
+ return wavesOpacityRaw( position, scale, speed, time, level, rough, height, foamSize, foamEdge, /*color,background,*/seed );
3737
+
3738
+ };
3739
+
3740
+
3741
+
3742
+ waves.defaults = defaults$b;
3743
+
3744
+ var defaults$a = {
3608
3745
  $name: 'Wood',
3609
3746
 
3610
3747
  position: positionGeometry,
@@ -3679,7 +3816,7 @@ var woodRaw = Fn( ([ position, scale, rings, lengths, angle, fibers, fibersDensi
3679
3816
 
3680
3817
  function wood( params={} ) {
3681
3818
 
3682
- var { position, scale, rings, lengths, angle, fibers, fibersDensity, color, background, seed } = { ...defaults$9, ...params };
3819
+ var { position, scale, rings, lengths, angle, fibers, fibersDensity, color, background, seed } = { ...defaults$a, ...params };
3683
3820
 
3684
3821
  return woodRaw( position, scale, rings, lengths, angle, fibers, fibersDensity, color, background, seed );
3685
3822
 
@@ -3687,9 +3824,9 @@ function wood( params={} ) {
3687
3824
 
3688
3825
 
3689
3826
 
3690
- wood.defaults = defaults$9;
3827
+ wood.defaults = defaults$a;
3691
3828
 
3692
- var defaults$8 = {
3829
+ var defaults$9 = {
3693
3830
  $name: 'Zebra lines',
3694
3831
 
3695
3832
  position: positionGeometry,
@@ -3742,7 +3879,7 @@ var zebraLinesRaw = Fn( ([ position, scale, thinness, phi, theta, color, backgro
3742
3879
 
3743
3880
  function zebraLines( params={} ) {
3744
3881
 
3745
- var { position, scale, thinness, phi, theta, color, background, flat } = { ...defaults$8, ...params };
3882
+ var { position, scale, thinness, phi, theta, color, background, flat } = { ...defaults$9, ...params };
3746
3883
 
3747
3884
  return zebraLinesRaw( position, scale, thinness, phi, theta, color, background, flat );
3748
3885
 
@@ -3750,9 +3887,9 @@ function zebraLines( params={} ) {
3750
3887
 
3751
3888
 
3752
3889
 
3753
- zebraLines.defaults = defaults$8;
3890
+ zebraLines.defaults = defaults$9;
3754
3891
 
3755
- var defaults$7 = {
3892
+ var defaults$8 = {
3756
3893
  $name: 'Circle decor',
3757
3894
 
3758
3895
  position: positionGeometry,
@@ -3804,7 +3941,7 @@ var circleDecorRaw = Fn( ([ position, scale, grains, complexity, blur, color, ba
3804
3941
 
3805
3942
  function circleDecor( params={} ) {
3806
3943
 
3807
- var { position, scale, grains, complexity, blur, color, background, seed } = { ...defaults$7, ...params };
3944
+ var { position, scale, grains, complexity, blur, color, background, seed } = { ...defaults$8, ...params };
3808
3945
 
3809
3946
  return circleDecorRaw( position, scale, grains, complexity, blur, color, background, seed );
3810
3947
 
@@ -3812,9 +3949,9 @@ function circleDecor( params={} ) {
3812
3949
 
3813
3950
 
3814
3951
 
3815
- circleDecor.defaults = defaults$7;
3952
+ circleDecor.defaults = defaults$8;
3816
3953
 
3817
- var defaults$6 = {
3954
+ var defaults$7 = {
3818
3955
  $name: 'Reticular veins',
3819
3956
 
3820
3957
  position: positionGeometry,
@@ -3862,7 +3999,7 @@ var reticularVeinsRaw = Fn( ([ position, scale, reticulation, strength, organell
3862
3999
 
3863
4000
  function reticularVeins( params={} ) {
3864
4001
 
3865
- var { position, scale, reticulation, strength, organelles, color, background, seed } = { ...defaults$6, ...params };
4002
+ var { position, scale, reticulation, strength, organelles, color, background, seed } = { ...defaults$7, ...params };
3866
4003
 
3867
4004
  return reticularVeinsRaw( position, scale, reticulation, strength, organelles, color, background, seed );
3868
4005
 
@@ -3870,9 +4007,9 @@ function reticularVeins( params={} ) {
3870
4007
 
3871
4008
 
3872
4009
 
3873
- reticularVeins.defaults = defaults$6;
4010
+ reticularVeins.defaults = defaults$7;
3874
4011
 
3875
- var defaults$5 = {
4012
+ var defaults$6 = {
3876
4013
  $name: 'Roman paving',
3877
4014
 
3878
4015
  position: positionGeometry,
@@ -3907,7 +4044,7 @@ var romanPavingRaw = Fn( ([ position, scale, depth, seed ])=>{
3907
4044
 
3908
4045
  function romanPaving( params={} ) {
3909
4046
 
3910
- var { position, scale, depth, seed } = { ...defaults$5, ...params };
4047
+ var { position, scale, depth, seed } = { ...defaults$6, ...params };
3911
4048
 
3912
4049
  return romanPavingRaw( position, scale, depth, seed );
3913
4050
 
@@ -3915,9 +4052,9 @@ function romanPaving( params={} ) {
3915
4052
 
3916
4053
 
3917
4054
 
3918
- romanPaving.defaults = defaults$5;
4055
+ romanPaving.defaults = defaults$6;
3919
4056
 
3920
- var defaults$4 = {
4057
+ var defaults$5 = {
3921
4058
  $name: 'Crumpled fabric',
3922
4059
  $width: 260,
3923
4060
 
@@ -3974,7 +4111,7 @@ var crumpledFabricRaw = Fn( ([ position, scale, pinch, color, subcolor, backgrou
3974
4111
 
3975
4112
  function crumpledFabric( params={} ) {
3976
4113
 
3977
- var { position, scale, pinch, color, subcolor, background, seed } = { ...defaults$4, ...params };
4114
+ var { position, scale, pinch, color, subcolor, background, seed } = { ...defaults$5, ...params };
3978
4115
 
3979
4116
  return crumpledFabricRaw( position, scale, pinch, color, subcolor, background, seed );
3980
4117
 
@@ -3982,9 +4119,9 @@ function crumpledFabric( params={} ) {
3982
4119
 
3983
4120
 
3984
4121
 
3985
- crumpledFabric.defaults = defaults$4;
4122
+ crumpledFabric.defaults = defaults$5;
3986
4123
 
3987
- var defaults$3 = {
4124
+ var defaults$4 = {
3988
4125
  $name: 'Isolayers',
3989
4126
 
3990
4127
  position: positionGeometry,
@@ -4039,7 +4176,7 @@ var isolayersRaw = Fn( ([ position, scale, layers, edge, darkness, color, backgr
4039
4176
 
4040
4177
  function isolayers( params={} ) {
4041
4178
 
4042
- var { position, scale, layers, edge, darkness, color, background, seed } = { ...defaults$3, ...params };
4179
+ var { position, scale, layers, edge, darkness, color, background, seed } = { ...defaults$4, ...params };
4043
4180
 
4044
4181
  return isolayersRaw( position, scale, layers, edge, darkness, color, background, seed );
4045
4182
 
@@ -4047,9 +4184,9 @@ function isolayers( params={} ) {
4047
4184
 
4048
4185
 
4049
4186
 
4050
- isolayers.defaults = defaults$3;
4187
+ isolayers.defaults = defaults$4;
4051
4188
 
4052
- var defaults$2 = {
4189
+ var defaults$3 = {
4053
4190
  $name: 'Turbulent smoke',
4054
4191
  $width: 260,
4055
4192
 
@@ -4099,7 +4236,7 @@ var turbulentSmokeRaw = Fn( ([ position, scale, speed, details, time, seed ])=>{
4099
4236
 
4100
4237
  function turbulentSmoke( params={} ) {
4101
4238
 
4102
- var { position, scale, speed, details, time, seed } = { ...defaults$2, ...params };
4239
+ var { position, scale, speed, details, time, seed } = { ...defaults$3, ...params };
4103
4240
 
4104
4241
  return turbulentSmokeRaw( position, scale, speed, details, time, seed );
4105
4242
 
@@ -4107,9 +4244,9 @@ function turbulentSmoke( params={} ) {
4107
4244
 
4108
4245
 
4109
4246
 
4110
- turbulentSmoke.defaults = defaults$2;
4247
+ turbulentSmoke.defaults = defaults$3;
4111
4248
 
4112
- var defaults$1 = {
4249
+ var defaults$2 = {
4113
4250
  $name: 'Caustics',
4114
4251
 
4115
4252
  position: positionGeometry,
@@ -4160,7 +4297,7 @@ var causticsRaw = Fn( ([ position, scale, speed, time, color, seed ])=>{
4160
4297
 
4161
4298
  function caustics( params={} ) {
4162
4299
 
4163
- var { position, scale, speed, time, color, seed } = { ...defaults$1, ...params };
4300
+ var { position, scale, speed, time, color, seed } = { ...defaults$2, ...params };
4164
4301
 
4165
4302
  return causticsRaw( position, scale, speed, time, color, seed );
4166
4303
 
@@ -4168,9 +4305,9 @@ function caustics( params={} ) {
4168
4305
 
4169
4306
 
4170
4307
 
4171
- caustics.defaults = defaults$1;
4308
+ caustics.defaults = defaults$2;
4172
4309
 
4173
- var defaults = {
4310
+ var defaults$1 = {
4174
4311
  $name: 'Bricks',
4175
4312
 
4176
4313
  position: positionGeometry,
@@ -4262,7 +4399,7 @@ var bricksRaw = Fn( ([ position, scale, brickSize, brickShift, jointSize, jointS
4262
4399
 
4263
4400
  function bricks( params={} ) {
4264
4401
 
4265
- var { position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed } = { ...defaults, ...params };
4402
+ var { position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed } = { ...defaults$1, ...params };
4266
4403
 
4267
4404
  return bricksRaw( position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed );
4268
4405
 
@@ -4270,9 +4407,253 @@ function bricks( params={} ) {
4270
4407
 
4271
4408
 
4272
4409
 
4273
- bricks.defaults = defaults;
4410
+ bricks.defaults = defaults$1;
4411
+
4412
+ var defaults = {
4413
+ $name: 'Halftone',
4414
+
4415
+ position: screenCoordinate,
4416
+ scale: 2,
4417
+ radius: 0.5,
4418
+ pattern: 1,
4419
+
4420
+ attenuation: 0,
4421
+ near: 6,
4422
+ far: 14,
4423
+
4424
+ color: vertexColor(),
4425
+
4426
+ positionView: positionView,
4427
+
4428
+ };
4429
+
4430
+
4431
+
4432
+ // square grid of circles
4433
+ var halftoneGridRaw = Fn( ([ position, scale, radius, attenuation, far, near, color, positionView ]) => {
4434
+
4435
+ var xscale = float( 5 ).sub( scale ).exp().toVar(),
4436
+ pos = position.toVar(),
4437
+ xradius = radius.div( Math.sqrt( 2 ) ).toVar();
4438
+
4439
+ var center = pos.div( xscale ).round().mul( xscale );
4440
+
4441
+
4442
+ If( attenuation.notEqual( 0 ), ()=>{
4274
4443
 
4275
- window.__TSL_TEXTURES__ = 3.0;
4444
+ xradius.mulAssign( positionView.z.mul( -1 ).smoothstep( far, near ).pow( 1/2 ) );
4445
+
4446
+ } );
4447
+
4448
+ If( pos.distance( center ).greaterThan( xscale.mul( xradius ) ), ()=>Discard() );
4449
+
4450
+ return color;
4451
+
4452
+ } ).setLayout( {
4453
+ name: 'halftoneGridRaw',
4454
+ type: 'vec3',
4455
+ inputs: [
4456
+ { name: 'position', type: 'vec3' },
4457
+ { name: 'scale', type: 'float' },
4458
+ { name: 'radius', type: 'float' },
4459
+ { name: 'attenuation', type: 'int' },
4460
+ { name: 'far', type: 'float' },
4461
+ { name: 'near', type: 'float' },
4462
+ { name: 'color', type: 'vec3' },
4463
+ { name: 'positionView', type: 'vec3' },
4464
+ ] }
4465
+ );
4466
+
4467
+
4468
+
4469
+ // diagonal geid of circles
4470
+ var halftoneDiagRaw = Fn( ([ position, scale, radius, attenuation, far, near, color, positionView ]) => {
4471
+
4472
+ var xscale = float( 5 ).sub( scale ).exp().toVar(),
4473
+ pos = position.toVar(),
4474
+ xradius = radius.div( Math.sqrt( 2 ) ).toVar();
4475
+
4476
+ var shift = pos.y.div( xscale ).round().mod( 2 );
4477
+
4478
+ var centerA = pos.div( xscale ).round().mulAssign( xscale ).toVar();
4479
+
4480
+ If( shift.equal( 0 ), ()=>{
4481
+
4482
+ centerA.x.addAssign( xscale.mul( 0.5 ) );
4483
+
4484
+ } );
4485
+ var centerB = vec2( centerA.x.sub( xscale ), centerA.y ).toVar();
4486
+
4487
+
4488
+ If( attenuation.notEqual( 0 ), ()=>{
4489
+
4490
+ xradius.mulAssign( positionView.z.mul( -1 ).smoothstep( far, near ).pow( 1/2 ) );
4491
+
4492
+ } );
4493
+
4494
+ If( min( pos.distance( centerA ), pos.distance( centerB ) ).greaterThan( xscale.mul( xradius ) ), ()=>Discard() );
4495
+
4496
+ return color;
4497
+
4498
+ } ).setLayout( {
4499
+ name: 'halftoneDiagRaw',
4500
+ type: 'vec3',
4501
+ inputs: [
4502
+ { name: 'position', type: 'vec3' },
4503
+ { name: 'scale', type: 'float' },
4504
+ { name: 'radius', type: 'float' },
4505
+ { name: 'attenuation', type: 'int' },
4506
+ { name: 'far', type: 'float' },
4507
+ { name: 'near', type: 'float' },
4508
+ { name: 'color', type: 'vec3' },
4509
+ { name: 'positionView', type: 'vec3' },
4510
+ ] }
4511
+ );
4512
+
4513
+
4514
+
4515
+ // trigonetric pattern
4516
+ var halftoneTrigRaw = Fn( ([ position, scale, radius, pattern, attenuation, far, near, color, positionView ]) => {
4517
+
4518
+ var pos = position.mul( scale.sub( 3.5 ).exp() ).sin().add( 1 ).div( 2 ).toVar(),
4519
+ x = pos.x,
4520
+ y = pos.y,
4521
+ xradius = radius.div( Math.sqrt( 2 ) ).toVar();
4522
+
4523
+ var dist = float( 0 );
4524
+
4525
+ Switch( pattern )
4526
+ .Case( 2, ()=>{
4527
+
4528
+ dist.assign( x.add( y ).div( 2 ) );
4529
+
4530
+ } )
4531
+ .Case( 3, ()=>{
4532
+
4533
+ dist.assign( x.sub( y ).abs().oneMinus() );
4534
+
4535
+ } )
4536
+ .Case( 10, ()=>{
4537
+
4538
+ dist.assign( x.sub( y ).abs() );
4539
+
4540
+ } )
4541
+ .Case( 4, ()=>{
4542
+
4543
+ dist.assign( x.mul( y ).oneMinus() );
4544
+
4545
+ } )
4546
+ .Case( 9, ()=>{
4547
+
4548
+ dist.assign( x.mul( y ) );
4549
+
4550
+ } )
4551
+ .Case( 5, ()=>{
4552
+
4553
+ dist.assign( x.max( y ) );
4554
+
4555
+ } )
4556
+ .Case( 6, ()=>{
4557
+
4558
+ dist.assign( x.min( y ) );
4559
+
4560
+ } )
4561
+ .Case( 7, ()=>{
4562
+
4563
+ dist.assign( x );
4564
+
4565
+ } )
4566
+ .Case( 8, ()=>{
4567
+
4568
+ dist.assign( y );
4569
+
4570
+ } );
4571
+
4572
+ If( attenuation.notEqual( 0 ), ()=>{
4573
+
4574
+ xradius.mulAssign( positionView.z.mul( -1 ).smoothstep( far, near ).pow( 1/2 ) );
4575
+
4576
+ } );
4577
+
4578
+ If( dist.greaterThan( xradius ), ()=>Discard() );
4579
+
4580
+ return color;
4581
+
4582
+ } ).setLayout( {
4583
+ name: 'halftoneTrigRaw',
4584
+ type: 'vec3',
4585
+ inputs: [
4586
+ { name: 'position', type: 'vec3' },
4587
+ { name: 'scale', type: 'float' },
4588
+ { name: 'radius', type: 'float' },
4589
+ { name: 'pattern', type: 'int' },
4590
+ { name: 'attenuation', type: 'int' },
4591
+ { name: 'far', type: 'float' },
4592
+ { name: 'near', type: 'float' },
4593
+ { name: 'color', type: 'vec3' },
4594
+ { name: 'positionView', type: 'vec3' },
4595
+ ] }
4596
+ );
4597
+
4598
+
4599
+
4600
+ var halftoneRaw = Fn( ([ position, scale, radius, pattern, attenuation, far, near, color, positionView ]) => {
4601
+
4602
+ var result = vec3( 0 ).toVar();
4603
+
4604
+ Switch( pattern )
4605
+ .Case( 0, ()=>{
4606
+
4607
+ result.assign( halftoneGridRaw( position, scale, radius, attenuation, far, near, color, positionView ) );
4608
+
4609
+ } )
4610
+ .Case( 1, ()=>{
4611
+
4612
+ result.assign( halftoneDiagRaw( position, scale, radius, attenuation, far, near, color, positionView ) );
4613
+
4614
+ } )
4615
+ .Default( ()=>{
4616
+
4617
+ result.assign( halftoneTrigRaw( position, scale, radius, pattern, attenuation, far, near, color, positionView ) );
4618
+
4619
+ } );
4620
+
4621
+ return result;
4622
+
4623
+ } ).setLayout( {
4624
+ name: 'halftoneRaw',
4625
+ type: 'vec3',
4626
+ inputs: [
4627
+ { name: 'position', type: 'vec3' },
4628
+ { name: 'scale', type: 'float' },
4629
+ { name: 'radius', type: 'float' },
4630
+ { name: 'pattern', type: 'int' },
4631
+ { name: 'attenuation', type: 'int' },
4632
+ { name: 'far', type: 'float' },
4633
+ { name: 'near', type: 'float' },
4634
+ { name: 'color', type: 'vec3' },
4635
+ { name: 'positionView', type: 'vec3' },
4636
+ ] }
4637
+ );
4638
+
4639
+
4640
+ function halftone( params={} ) {
4641
+
4642
+ var { position, scale, radius, pattern, attenuation, far, near, color, positionView } = { ...defaults, ...params };
4643
+
4644
+ return halftoneRaw( position, scale, radius, pattern, attenuation, far, near, color, positionView );
4645
+
4646
+ }
4647
+
4648
+
4649
+
4650
+ halftone.defaults = defaults;
4651
+
4652
+ if ( typeof window !== 'undefined' ) {
4653
+
4654
+ window.__TSL_TEXTURES__ = 3.0;
4655
+
4656
+ }
4276
4657
  //export { aaa } from './aaa.js';
4277
4658
 
4278
- export { approximateNormal, brain, bricks, camouflage, caustics, caveArt, circleDecor, circles, clouds, concrete, cork, crumpledFabric, dalmatianSpots, darthMaul, dysonSphere, entangled, fordite, gasGiant, grid, hideFallbackWarning, hsl, isolayers, isolines, karstRock, marble, neonLights, perlinNoise, photosphere, planet, polkaDots, processedWood, protozoa, remapExp, reticularVeins, romanPaving, rotatePivot, rotator, roughClay, runnyEggs, rust, satin, scaler, scepterHead, scream, selectPlanar, showFallbackWarning, spherical, stars, staticNoise, supersphere, tigerFur, toHsl, translator, turbulentSmoke, vnoise, voronoiCells, waterDrops, watermelon, wood, zebraLines };
4659
+ export { approximateNormal, brain, bricks, camouflage, caustics, caveArt, circleDecor, circles, clouds, concrete, cork, crumpledFabric, dalmatianSpots, darthMaul, dysonSphere, entangled, fordite, gasGiant, grid, halftone, hideFallbackWarning, hsl, isolayers, isolines, karstRock, marble, neonLights, perlinNoise, photosphere, planet, polkaDots, processedWood, protozoa, remapExp, reticularVeins, romanPaving, rotatePivot, rotator, roughClay, runnyEggs, rust, satin, scaler, scepterHead, scream, selectPlanar, showFallbackWarning, spherical, stars, staticNoise, supersphere, tigerFur, toHsl, translator, turbulentSmoke, vnoise, voronoiCells, waterDrops, watermelon, waves, wood, zebraLines };