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