tsl-textures 2.3.0 → 2.5.0

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.2.1
1
+ // TSL Textures v2.4.0
2
2
 
3
3
  'use strict';
4
4
 
@@ -757,7 +757,7 @@ function TSLFn( jsFunc, defaults, layout = null ) {
757
757
 
758
758
  } // TSLFn
759
759
 
760
- var defaults$H = {
760
+ var defaults$N = {
761
761
  $name: 'Brain',
762
762
 
763
763
  scale: 2,
@@ -776,7 +776,7 @@ var defaults$H = {
776
776
 
777
777
  var brain = TSLFn( ( params )=>{
778
778
 
779
- params = prepare( params, defaults$H );
779
+ params = prepare( params, defaults$N );
780
780
 
781
781
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 3 ) ) ).add( params.seed ).toVar( );
782
782
 
@@ -786,13 +786,13 @@ var brain = TSLFn( ( params )=>{
786
786
 
787
787
  return tsl.mix( params.color, params.background, n );
788
788
 
789
- }, defaults$H );
789
+ }, defaults$N );
790
790
 
791
791
 
792
792
 
793
793
  brain.normal = TSLFn( ( params )=>{
794
794
 
795
- params = prepare( params, defaults$H );
795
+ params = prepare( params, defaults$N );
796
796
 
797
797
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 3 ) ) ).add( params.seed ).toVar( );
798
798
 
@@ -806,9 +806,9 @@ brain.normal = TSLFn( ( params )=>{
806
806
  var dTime = tsl.mx_noise_float( pos.mul( params.wave.mul( 5 ) ) ).add( 1 ).div( 2 ).mul( 6.28 );
807
807
  return tsl.vec3( dx, dy, tsl.time.mul( params.speed ).add( dTime ).sin().add( n, 1 ) ).normalize();
808
808
 
809
- }, defaults$H );
809
+ }, defaults$N );
810
810
 
811
- var defaults$G = {
811
+ var defaults$M = {
812
812
  $name: 'Camouflage',
813
813
 
814
814
  scale: 2,
@@ -825,7 +825,7 @@ var defaults$G = {
825
825
 
826
826
  var camouflage = TSLFn( ( params )=>{
827
827
 
828
- params = prepare( params, defaults$G );
828
+ params = prepare( params, defaults$M );
829
829
 
830
830
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
831
831
 
@@ -858,9 +858,9 @@ var camouflage = TSLFn( ( params )=>{
858
858
 
859
859
  return color;
860
860
 
861
- }, defaults$G );
861
+ }, defaults$M );
862
862
 
863
- var defaults$F = {
863
+ var defaults$L = {
864
864
  $name: 'Cave art',
865
865
 
866
866
  scale: 2,
@@ -877,7 +877,7 @@ var defaults$F = {
877
877
 
878
878
  var caveArt = TSLFn( ( params ) => {
879
879
 
880
- params = prepare( params, defaults$F );
880
+ params = prepare( params, defaults$L );
881
881
 
882
882
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
883
883
 
@@ -901,9 +901,9 @@ var caveArt = TSLFn( ( params ) => {
901
901
 
902
902
  return tsl.mix( params.background, params.color, k );
903
903
 
904
- }, defaults$F );
904
+ }, defaults$L );
905
905
 
906
- var defaults$E = {
906
+ var defaults$K = {
907
907
  $name: 'Circles',
908
908
 
909
909
  scale: 2,
@@ -920,7 +920,7 @@ var defaults$E = {
920
920
 
921
921
  var circles = TSLFn( ( params ) => {
922
922
 
923
- params = prepare( params, defaults$E );
923
+ params = prepare( params, defaults$K );
924
924
 
925
925
  var pos = tsl.select( params.flat, tsl.positionGeometry, tsl.positionGeometry.normalize() );
926
926
 
@@ -950,9 +950,9 @@ var circles = TSLFn( ( params ) => {
950
950
 
951
951
  return hsl( huei.add( huef ).div( 10 ), HSL.y, HSL.z );
952
952
 
953
- }, defaults$E );
953
+ }, defaults$K );
954
954
 
955
- var defaults$D = {
955
+ var defaults$J = {
956
956
  $name: 'Clouds',
957
957
 
958
958
  scale: 2,
@@ -994,24 +994,24 @@ var _clouds = tsl.Fn( ( params ) => {
994
994
  var clouds = TSLFn( ( params ) => {
995
995
 
996
996
  // prepare parameters
997
- params = prepare( params, defaults$D );
997
+ params = prepare( params, defaults$J );
998
998
 
999
999
  return _clouds( params ).rgb;
1000
1000
 
1001
- }, defaults$D );
1001
+ }, defaults$J );
1002
1002
 
1003
1003
 
1004
1004
 
1005
1005
  clouds.opacity = TSLFn( ( params ) => {
1006
1006
 
1007
1007
  // prepare parameters
1008
- params = prepare( params, defaults$D );
1008
+ params = prepare( params, defaults$J );
1009
1009
 
1010
1010
  return _clouds( params ).a;
1011
1011
 
1012
- }, defaults$D );
1012
+ }, defaults$J );
1013
1013
 
1014
- var defaults$C = {
1014
+ var defaults$I = {
1015
1015
  $name: 'Concrete',
1016
1016
  $normalNode: true,
1017
1017
 
@@ -1036,7 +1036,7 @@ var surfacePos$7 = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
1036
1036
 
1037
1037
  var concrete = TSLFn( ( params ) => {
1038
1038
 
1039
- params = prepare( params, defaults$C );
1039
+ params = prepare( params, defaults$I );
1040
1040
 
1041
1041
  var eps = 0.001;
1042
1042
 
@@ -1057,9 +1057,9 @@ var concrete = TSLFn( ( params ) => {
1057
1057
 
1058
1058
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
1059
1059
 
1060
- }, defaults$C );
1060
+ }, defaults$I );
1061
1061
 
1062
- var defaults$B = {
1062
+ var defaults$H = {
1063
1063
  $name: 'Cork',
1064
1064
 
1065
1065
  scale: 1,
@@ -1083,7 +1083,7 @@ var cellCenter$1 = tsl.Fn( ([ cell ])=>{
1083
1083
 
1084
1084
  var cork = TSLFn( ( params )=>{
1085
1085
 
1086
- params = prepare( params, defaults$B );
1086
+ params = prepare( params, defaults$H );
1087
1087
 
1088
1088
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1.5 ).add( 1 ) ) ).add( params.seed ).toVar( );
1089
1089
 
@@ -1128,9 +1128,9 @@ var cork = TSLFn( ( params )=>{
1128
1128
 
1129
1129
  return color;
1130
1130
 
1131
- }, defaults$B );
1131
+ }, defaults$H );
1132
1132
 
1133
- var defaults$A = {
1133
+ var defaults$G = {
1134
1134
  $name: 'Dalmatian spots',
1135
1135
  $width: 260,
1136
1136
 
@@ -1147,7 +1147,7 @@ var defaults$A = {
1147
1147
 
1148
1148
  var dalmatianSpots = TSLFn( ( params )=>{
1149
1149
 
1150
- params = prepare( params, defaults$A );
1150
+ params = prepare( params, defaults$G );
1151
1151
 
1152
1152
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).sub( 1000 ).toVar( );
1153
1153
 
@@ -1169,9 +1169,9 @@ var dalmatianSpots = TSLFn( ( params )=>{
1169
1169
 
1170
1170
  return tsl.mix( params.background, params.color, k.clamp( 0, 1 ) );
1171
1171
 
1172
- }, defaults$A );
1172
+ }, defaults$G );
1173
1173
 
1174
- var defaults$z = {
1174
+ var defaults$F = {
1175
1175
  $name: 'Darth Maul',
1176
1176
 
1177
1177
  scale: 2,
@@ -1192,7 +1192,7 @@ var defaults$z = {
1192
1192
 
1193
1193
  var darthMaul = TSLFn( ( params ) => {
1194
1194
 
1195
- params = prepare( params, defaults$z );
1195
+ params = prepare( params, defaults$F );
1196
1196
 
1197
1197
  var position = tsl.positionGeometry.add( params.shift ).mul( tsl.exp( params.scale.div( 1.5 ).sub( 1 ) ) ).sub( params.shift ).mul( tsl.vec3( 1, 1/2, 1/2 ) ).toVar( );
1198
1198
 
@@ -1211,9 +1211,9 @@ var darthMaul = TSLFn( ( params ) => {
1211
1211
 
1212
1212
  return tsl.mix( params.background, params.color, k.mul( s ).mul( c ).clamp( 0, 1 ) );
1213
1213
 
1214
- }, defaults$z );
1214
+ }, defaults$F );
1215
1215
 
1216
- var defaults$y = {
1216
+ var defaults$E = {
1217
1217
  $name: 'Dyson sphere',
1218
1218
 
1219
1219
  scale: 2,
@@ -1282,7 +1282,7 @@ var noiseg = tsl.Fn( ([ pos ])=>{
1282
1282
 
1283
1283
  var dysonSphere = TSLFn( ( params )=>{
1284
1284
 
1285
- params = prepare( params, defaults$y );
1285
+ params = prepare( params, defaults$E );
1286
1286
 
1287
1287
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 0.5 ) ) ).add( params.seed ).toVar( );
1288
1288
 
@@ -1298,9 +1298,9 @@ var dysonSphere = TSLFn( ( params )=>{
1298
1298
 
1299
1299
  return tsl.mix( params.background, params.color, res.x.add( 1 ).div( 5 ) );
1300
1300
 
1301
- }, defaults$y );
1301
+ }, defaults$E );
1302
1302
 
1303
- var defaults$x = {
1303
+ var defaults$D = {
1304
1304
  $name: 'Entangled',
1305
1305
 
1306
1306
  scale: 2,
@@ -1316,7 +1316,7 @@ var defaults$x = {
1316
1316
 
1317
1317
  var entangled = TSLFn( ( params ) => {
1318
1318
 
1319
- params = prepare( params, defaults$x );
1319
+ params = prepare( params, defaults$D );
1320
1320
 
1321
1321
  var scale = tsl.exp( params.scale.div( 2 ) ).toVar( );
1322
1322
  var pos = tsl.positionGeometry.add( params.seed ).toVar( );
@@ -1335,9 +1335,9 @@ var entangled = TSLFn( ( params ) => {
1335
1335
 
1336
1336
  return tsl.mix( params.color, params.background, k );
1337
1337
 
1338
- }, defaults$x );
1338
+ }, defaults$D );
1339
1339
 
1340
- var defaults$w = {
1340
+ var defaults$C = {
1341
1341
  $name: 'Fordite',
1342
1342
  scale: 2,
1343
1343
  color: new three.Color( 0, 0, 0 ),
@@ -1348,7 +1348,7 @@ var defaults$w = {
1348
1348
 
1349
1349
  var fordite = TSLFn( ( params ) => {
1350
1350
 
1351
- params = prepare( params, defaults$w );
1351
+ params = prepare( params, defaults$C );
1352
1352
 
1353
1353
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
1354
1354
 
@@ -1366,9 +1366,9 @@ var fordite = TSLFn( ( params ) => {
1366
1366
  tsl.sin( tsl.mul( k, Math.PI, 4 ) ).mul( 0.5 ).add( 0.5 )
1367
1367
  ).add( params.color );
1368
1368
 
1369
- }, defaults$w );
1369
+ }, defaults$C );
1370
1370
 
1371
- var defaults$v = {
1371
+ var defaults$B = {
1372
1372
  $name: 'Gas giant',
1373
1373
 
1374
1374
  scale: 2,
@@ -1386,7 +1386,7 @@ var defaults$v = {
1386
1386
 
1387
1387
  var gasGiant = TSLFn( ( params )=>{
1388
1388
 
1389
- params = prepare( params, defaults$v );
1389
+ params = prepare( params, defaults$B );
1390
1390
 
1391
1391
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
1392
1392
  var pos = tsl.positionGeometry.mul( tsl.exp( scale ) ).add( params.seed ).toVar( );
@@ -1420,9 +1420,9 @@ var gasGiant = TSLFn( ( params )=>{
1420
1420
 
1421
1421
  return color.mul( k );
1422
1422
 
1423
- }, defaults$v );
1423
+ }, defaults$B );
1424
1424
 
1425
- var defaults$u = {
1425
+ var defaults$A = {
1426
1426
  $name: 'Grid',
1427
1427
 
1428
1428
  countU: 32,
@@ -1440,7 +1440,7 @@ var defaults$u = {
1440
1440
 
1441
1441
  var grid = TSLFn( ( params ) => {
1442
1442
 
1443
- params = prepare( params, defaults$u );
1443
+ params = prepare( params, defaults$A );
1444
1444
 
1445
1445
  var aspect = tsl.select( params.flat, tsl.screenSize.x.div( tsl.screenSize.y ), 2 );
1446
1446
 
@@ -1462,9 +1462,9 @@ var grid = TSLFn( ( params ) => {
1462
1462
 
1463
1463
  return tsl.mix( params.background, params.color, k );
1464
1464
 
1465
- }, defaults$u );
1465
+ }, defaults$A );
1466
1466
 
1467
- var defaults$t = {
1467
+ var defaults$z = {
1468
1468
  $name: 'Isolines',
1469
1469
 
1470
1470
  scale: 2,
@@ -1482,7 +1482,7 @@ var defaults$t = {
1482
1482
 
1483
1483
  var isolines = TSLFn( ( params )=>{
1484
1484
 
1485
- params = prepare( params, defaults$t );
1485
+ params = prepare( params, defaults$z );
1486
1486
 
1487
1487
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
1488
1488
 
@@ -1494,9 +1494,9 @@ var isolines = TSLFn( ( params )=>{
1494
1494
 
1495
1495
  return tsl.mix( params.color, params.background, k );
1496
1496
 
1497
- }, defaults$t );
1497
+ }, defaults$z );
1498
1498
 
1499
- var defaults$s = {
1499
+ var defaults$y = {
1500
1500
  $name: 'Karst rock',
1501
1501
 
1502
1502
  scale: 2,
@@ -1511,7 +1511,7 @@ var defaults$s = {
1511
1511
 
1512
1512
  var karstRock = TSLFn( ( params )=>{
1513
1513
 
1514
- params = prepare( params, defaults$s );
1514
+ params = prepare( params, defaults$y );
1515
1515
 
1516
1516
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed.sin().mul( 5 ) ).toVar( );
1517
1517
 
@@ -1524,9 +1524,9 @@ var karstRock = TSLFn( ( params )=>{
1524
1524
 
1525
1525
  return tsl.mix( params.background, params.color, k ).mul( k.pow( 0.1 ) );
1526
1526
 
1527
- }, defaults$s );
1527
+ }, defaults$y );
1528
1528
 
1529
- var defaults$r = {
1529
+ var defaults$x = {
1530
1530
  $name: 'Marble',
1531
1531
 
1532
1532
  scale: 1.2,
@@ -1543,7 +1543,7 @@ var defaults$r = {
1543
1543
 
1544
1544
  var marble = TSLFn( ( params ) => {
1545
1545
 
1546
- params = prepare( params, defaults$r );
1546
+ params = prepare( params, defaults$x );
1547
1547
 
1548
1548
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
1549
1549
 
@@ -1581,9 +1581,9 @@ var marble = TSLFn( ( params ) => {
1581
1581
 
1582
1582
  return tsl.mix( params.background, params.color, k );
1583
1583
 
1584
- }, defaults$r );
1584
+ }, defaults$x );
1585
1585
 
1586
- var defaults$q = {
1586
+ var defaults$w = {
1587
1587
  $name: 'Neon Lights',
1588
1588
 
1589
1589
  scale: 1.5,
@@ -1602,7 +1602,7 @@ var defaults$q = {
1602
1602
 
1603
1603
  var neonLights = TSLFn( ( params ) => {
1604
1604
 
1605
- params = prepare( params, defaults$q );
1605
+ params = prepare( params, defaults$w );
1606
1606
 
1607
1607
  var pos = tsl.positionGeometry;//.mul( exp( params.scale ) ).add( params.seed ).toVar( );
1608
1608
 
@@ -1646,9 +1646,9 @@ var neonLights = TSLFn( ( params ) => {
1646
1646
 
1647
1647
  return color;
1648
1648
 
1649
- }, defaults$q );
1649
+ }, defaults$w );
1650
1650
 
1651
- var defaults$p = {
1651
+ var defaults$v = {
1652
1652
  $name: 'Photosphere',
1653
1653
 
1654
1654
  scale: 2,
@@ -1663,7 +1663,7 @@ var defaults$p = {
1663
1663
 
1664
1664
  var photosphere = TSLFn( ( params ) => {
1665
1665
 
1666
- params = prepare( params, defaults$p );
1666
+ params = prepare( params, defaults$v );
1667
1667
 
1668
1668
  var scale = tsl.exp( params.scale.add( 1 ) ).toVar( );
1669
1669
  var pos = tsl.positionGeometry.toVar( );
@@ -1682,9 +1682,9 @@ var photosphere = TSLFn( ( params ) => {
1682
1682
 
1683
1683
  return tsl.mix( params.background, params.color, k );
1684
1684
 
1685
- }, defaults$p );
1685
+ }, defaults$v );
1686
1686
 
1687
- var defaults$o = {
1687
+ var defaults$u = {
1688
1688
  $name: 'Planet',
1689
1689
 
1690
1690
  scale: 2,
@@ -1712,7 +1712,7 @@ var defaults$o = {
1712
1712
 
1713
1713
  var planet = TSLFn( ( params )=>{
1714
1714
 
1715
- params = prepare( params, defaults$o );
1715
+ params = prepare( params, defaults$u );
1716
1716
 
1717
1717
  var k = tsl.float( 0 ).toVar(),
1718
1718
  sum = tsl.float( 0 ).toVar(),
@@ -1799,9 +1799,9 @@ var planet = TSLFn( ( params )=>{
1799
1799
 
1800
1800
  return color;
1801
1801
 
1802
- }, defaults$o );
1802
+ }, defaults$u );
1803
1803
 
1804
- var defaults$n = {
1804
+ var defaults$t = {
1805
1805
  $name: 'Polka dots',
1806
1806
 
1807
1807
  count: 2,
@@ -1822,7 +1822,7 @@ var goldenRatio = ( 1+5**0.5 )/2;
1822
1822
 
1823
1823
  var polkaDots = TSLFn( ( params ) => {
1824
1824
 
1825
- params = prepare( params, defaults$n );
1825
+ params = prepare( params, defaults$t );
1826
1826
 
1827
1827
  var dist = tsl.float( 1 ).toVar();
1828
1828
 
@@ -1866,9 +1866,9 @@ var polkaDots = TSLFn( ( params ) => {
1866
1866
 
1867
1867
  return tsl.mix( params.color, params.background, k );
1868
1868
 
1869
- }, defaults$n );
1869
+ }, defaults$t );
1870
1870
 
1871
- var defaults$m = {
1871
+ var defaults$s = {
1872
1872
  $name: 'Processed wood',
1873
1873
  $width: 260,
1874
1874
 
@@ -1887,7 +1887,7 @@ var defaults$m = {
1887
1887
 
1888
1888
  var processedWood = TSLFn( ( params )=>{
1889
1889
 
1890
- params = prepare( params, defaults$m );
1890
+ params = prepare( params, defaults$s );
1891
1891
 
1892
1892
  var angle = tsl.radians( params.angle ).toVar();
1893
1893
  var posLocal = tsl.vec3(
@@ -1906,9 +1906,9 @@ var processedWood = TSLFn( ( params )=>{
1906
1906
 
1907
1907
  return tsl.mix( params.color, params.background, k );
1908
1908
 
1909
- }, defaults$m );
1909
+ }, defaults$s );
1910
1910
 
1911
- var defaults$l = {
1911
+ var defaults$r = {
1912
1912
  $name: 'Protozoa',
1913
1913
 
1914
1914
  scale: 1.5,
@@ -1934,7 +1934,7 @@ var pnoise = tsl.Fn( ([ pos, fat ])=>{
1934
1934
 
1935
1935
  var protozoa = TSLFn( ( params )=>{
1936
1936
 
1937
- params = prepare( params, defaults$l );
1937
+ params = prepare( params, defaults$r );
1938
1938
 
1939
1939
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.sub( 1 ) ) ).add( params.seed ).toVar( );
1940
1940
 
@@ -1967,9 +1967,9 @@ var protozoa = TSLFn( ( params )=>{
1967
1967
 
1968
1968
  return tsl.mix( params.background, tsl.mix( params.color, params.subcolor, n2.mul( 0.1 ) ), n1 );
1969
1969
 
1970
- }, defaults$l );
1970
+ }, defaults$r );
1971
1971
 
1972
- var defaults$k = {
1972
+ var defaults$q = {
1973
1973
  $name: 'Rotator',
1974
1974
  $positionNode: true,
1975
1975
  $selectorPlanar: true,
@@ -2001,17 +2001,17 @@ var surfacePos$6 = tsl.Fn( ([ pos, params ])=>{
2001
2001
 
2002
2002
  var rotator = TSLFn( ( params )=>{
2003
2003
 
2004
- params = prepare( params, defaults$k );
2004
+ params = prepare( params, defaults$q );
2005
2005
 
2006
2006
  return surfacePos$6( tsl.positionGeometry, params );
2007
2007
 
2008
- }, defaults$k );
2008
+ }, defaults$q );
2009
2009
 
2010
2010
 
2011
2011
 
2012
2012
  rotator.normal = TSLFn( ( params ) => {
2013
2013
 
2014
- params = prepare( params, defaults$k );
2014
+ params = prepare( params, defaults$q );
2015
2015
 
2016
2016
  var eps = 0.01;
2017
2017
 
@@ -2029,9 +2029,9 @@ rotator.normal = TSLFn( ( params ) => {
2029
2029
 
2030
2030
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2031
2031
 
2032
- }, defaults$k );
2032
+ }, defaults$q );
2033
2033
 
2034
- var defaults$j = {
2034
+ var defaults$p = {
2035
2035
  $name: 'Rough clay',
2036
2036
  $normalNode: true,
2037
2037
 
@@ -2057,7 +2057,7 @@ var surfacePos$5 = tsl.Fn( ([ pos, normal, bump, curvature ]) => {
2057
2057
 
2058
2058
  var roughClay = TSLFn( ( params ) => {
2059
2059
 
2060
- params = prepare( params, defaults$j );
2060
+ params = prepare( params, defaults$p );
2061
2061
 
2062
2062
  var eps = 0.001;
2063
2063
 
@@ -2078,9 +2078,9 @@ var roughClay = TSLFn( ( params ) => {
2078
2078
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2079
2079
 
2080
2080
 
2081
- }, defaults$j );
2081
+ }, defaults$p );
2082
2082
 
2083
- var defaults$i = {
2083
+ var defaults$o = {
2084
2084
  $name: 'Runny eggs',
2085
2085
 
2086
2086
  scale: 1,
@@ -2099,7 +2099,7 @@ var defaults$i = {
2099
2099
 
2100
2100
  var runnyEggs = TSLFn( ( params ) => {
2101
2101
 
2102
- params = prepare( params, defaults$i );
2102
+ params = prepare( params, defaults$o );
2103
2103
 
2104
2104
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1 ) ) ).add( params.seed.sin().mul( 10 ) ).toVar( );
2105
2105
 
@@ -2112,7 +2112,7 @@ var runnyEggs = TSLFn( ( params ) => {
2112
2112
 
2113
2113
  return tsl.mix( params.colorBackground, tsl.mix( params.colorWhite, params.colorYolk, yolks ), whites );
2114
2114
 
2115
- }, defaults$i );
2115
+ }, defaults$o );
2116
2116
 
2117
2117
 
2118
2118
  var surfacePos$4 = tsl.Fn( ([ pos, normal, bump, sizeYolk, sizeWhite ]) => {
@@ -2130,7 +2130,7 @@ var surfacePos$4 = tsl.Fn( ([ pos, normal, bump, sizeYolk, sizeWhite ]) => {
2130
2130
 
2131
2131
  runnyEggs.normal = TSLFn( ( params ) => {
2132
2132
 
2133
- params = prepare( params, defaults$i );
2133
+ params = prepare( params, defaults$o );
2134
2134
 
2135
2135
  var eps = 0.001;
2136
2136
  var bump = 0.05;
@@ -2152,12 +2152,12 @@ runnyEggs.normal = TSLFn( ( params ) => {
2152
2152
 
2153
2153
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2154
2154
 
2155
- }, defaults$i );
2155
+ }, defaults$o );
2156
2156
 
2157
2157
 
2158
2158
  runnyEggs.roughness = TSLFn( ( params ) => {
2159
2159
 
2160
- params = prepare( params, defaults$i );
2160
+ params = prepare( params, defaults$o );
2161
2161
 
2162
2162
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1 ) ) ).add( params.seed.sin().mul( 10 ) ).toVar( );
2163
2163
 
@@ -2168,9 +2168,9 @@ runnyEggs.roughness = TSLFn( ( params ) => {
2168
2168
 
2169
2169
  return yolks;
2170
2170
 
2171
- }, defaults$i );
2171
+ }, defaults$o );
2172
2172
 
2173
- var defaults$h = {
2173
+ var defaults$n = {
2174
2174
  $name: 'rust',
2175
2175
 
2176
2176
  scale: 2,
@@ -2214,7 +2214,7 @@ var _rust = tsl.Fn( ( params )=>{
2214
2214
 
2215
2215
  var rust = TSLFn( ( params )=>{
2216
2216
 
2217
- params = prepare( params, defaults$h );
2217
+ params = prepare( params, defaults$n );
2218
2218
 
2219
2219
  var k = _rust( params ).mul( 1.25 ).pow( 0.5 );
2220
2220
 
@@ -2224,21 +2224,21 @@ var rust = TSLFn( ( params )=>{
2224
2224
 
2225
2225
  return tsl.mix( params.color, params.background, k );
2226
2226
 
2227
- }, defaults$h );
2227
+ }, defaults$n );
2228
2228
 
2229
2229
 
2230
2230
 
2231
2231
  rust.opacity = TSLFn( ( params )=>{
2232
2232
 
2233
- params = prepare( params, defaults$h );
2233
+ params = prepare( params, defaults$n );
2234
2234
 
2235
2235
  var k = _rust( params ).mul( params.opacity.add( 0.2 ) );
2236
2236
 
2237
2237
  return k.oneMinus();
2238
2238
 
2239
- }, defaults$h );
2239
+ }, defaults$n );
2240
2240
 
2241
- var defaults$g = {
2241
+ var defaults$m = {
2242
2242
  $name: 'Satin',
2243
2243
 
2244
2244
  scale: 2,
@@ -2253,7 +2253,7 @@ var defaults$g = {
2253
2253
 
2254
2254
  var satin = TSLFn( ( params ) => {
2255
2255
 
2256
- params = prepare( params, defaults$g );
2256
+ params = prepare( params, defaults$m );
2257
2257
 
2258
2258
  var pos = tsl.positionGeometry.toVar( );
2259
2259
 
@@ -2271,7 +2271,7 @@ var satin = TSLFn( ( params ) => {
2271
2271
 
2272
2272
  return tsl.mix( params.background, params.color, k );
2273
2273
 
2274
- }, defaults$g );
2274
+ }, defaults$m );
2275
2275
 
2276
2276
 
2277
2277
 
@@ -2286,7 +2286,7 @@ satin.defaults = {
2286
2286
  seed: 0,
2287
2287
  };
2288
2288
 
2289
- var defaults$f = {
2289
+ var defaults$l = {
2290
2290
  $name: 'Scaler',
2291
2291
  $positionNode: true,
2292
2292
  $selectorPlanar: true,
@@ -2318,17 +2318,17 @@ var surfacePos$3 = tsl.Fn( ([ pos, params ])=>{
2318
2318
 
2319
2319
  var scaler = TSLFn( ( params )=>{
2320
2320
 
2321
- params = prepare( params, defaults$f );
2321
+ params = prepare( params, defaults$l );
2322
2322
 
2323
2323
  return surfacePos$3( tsl.positionGeometry, params );
2324
2324
 
2325
- }, defaults$f );
2325
+ }, defaults$l );
2326
2326
 
2327
2327
 
2328
2328
 
2329
2329
  scaler.normal = TSLFn( ( params ) => {
2330
2330
 
2331
- params = prepare( params, defaults$f );
2331
+ params = prepare( params, defaults$l );
2332
2332
 
2333
2333
  var eps = 0.01;
2334
2334
 
@@ -2346,9 +2346,9 @@ scaler.normal = TSLFn( ( params ) => {
2346
2346
 
2347
2347
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2348
2348
 
2349
- }, defaults$f );
2349
+ }, defaults$l );
2350
2350
 
2351
- var defaults$e = {
2351
+ var defaults$k = {
2352
2352
  $name: 'Scepter head',
2353
2353
 
2354
2354
  xFactor: 10,
@@ -2364,7 +2364,7 @@ var defaults$e = {
2364
2364
 
2365
2365
  var scepterHead = TSLFn( ( params ) => {
2366
2366
 
2367
- params = prepare( params, defaults$e );
2367
+ params = prepare( params, defaults$k );
2368
2368
 
2369
2369
  var pos = tsl.positionGeometry;
2370
2370
 
@@ -2400,9 +2400,9 @@ var scepterHead = TSLFn( ( params ) => {
2400
2400
 
2401
2401
  return tsl.mix( color1, color2, tsl.remapClamp( tsl.max( dx, tsl.max( dy, dz ) ), 55-10, 55+10 ) );
2402
2402
 
2403
- }, defaults$e );
2403
+ }, defaults$k );
2404
2404
 
2405
- var defaults$d = {
2405
+ var defaults$j = {
2406
2406
  $name: 'Scream',
2407
2407
 
2408
2408
  scale: 2,
@@ -2418,7 +2418,7 @@ var defaults$d = {
2418
2418
 
2419
2419
  var scream = TSLFn( ( params ) => {
2420
2420
 
2421
- params = prepare( params, defaults$d );
2421
+ params = prepare( params, defaults$j );
2422
2422
 
2423
2423
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
2424
2424
 
@@ -2434,7 +2434,7 @@ var scream = TSLFn( ( params ) => {
2434
2434
 
2435
2435
  return hsl( tsl.add( HSL.x, params.variety.mul( tsl.sin( k.mul( Math.PI ) ) ).mul( 0.5 ) ), HSL.y, HSL.z );
2436
2436
 
2437
- }, defaults$d );
2437
+ }, defaults$j );
2438
2438
 
2439
2439
 
2440
2440
 
@@ -2450,7 +2450,7 @@ scream.defaults = {
2450
2450
  seed: 0,
2451
2451
  };
2452
2452
 
2453
- var defaults$c = {
2453
+ var defaults$i = {
2454
2454
  $name: 'Simplex noise',
2455
2455
 
2456
2456
  scale: 2,
@@ -2467,7 +2467,7 @@ var defaults$c = {
2467
2467
 
2468
2468
  var simplexNoise = TSLFn( ( params ) => {
2469
2469
 
2470
- params = prepare( params, defaults$c );
2470
+ params = prepare( params, defaults$i );
2471
2471
 
2472
2472
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed );
2473
2473
 
@@ -2475,9 +2475,9 @@ var simplexNoise = TSLFn( ( params ) => {
2475
2475
 
2476
2476
  return tsl.mix( params.background, params.color, k );
2477
2477
 
2478
- }, defaults$c );
2478
+ }, defaults$i );
2479
2479
 
2480
- var defaults$b = {
2480
+ var defaults$h = {
2481
2481
  $name: 'Stars',
2482
2482
 
2483
2483
  scale: 2,
@@ -2494,7 +2494,7 @@ var defaults$b = {
2494
2494
 
2495
2495
  var stars = TSLFn( ( params ) => {
2496
2496
 
2497
- params = prepare( params, defaults$b );
2497
+ params = prepare( params, defaults$h );
2498
2498
 
2499
2499
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 3 ) ) ).add( params.seed ).toVar( );
2500
2500
 
@@ -2508,9 +2508,9 @@ var stars = TSLFn( ( params ) => {
2508
2508
 
2509
2509
  return hsl( tsl.add( col.x, dS ), col.y, col.z );
2510
2510
 
2511
- }, defaults$b );
2511
+ }, defaults$h );
2512
2512
 
2513
- var defaults$a = {
2513
+ var defaults$g = {
2514
2514
  $name: 'Static noise',
2515
2515
 
2516
2516
  scale: 2,
@@ -2526,7 +2526,7 @@ var defaults$a = {
2526
2526
 
2527
2527
  var staticNoise = TSLFn( ( params ) => {
2528
2528
 
2529
- params = prepare( params, defaults$a );
2529
+ params = prepare( params, defaults$g );
2530
2530
 
2531
2531
  var pos = tsl.screenCoordinate.div( tsl.exp( params.scale ) ).add( params.seed );
2532
2532
 
@@ -2541,9 +2541,9 @@ var staticNoise = TSLFn( ( params ) => {
2541
2541
 
2542
2542
  return tsl.vec3( k );
2543
2543
 
2544
- }, defaults$a );
2544
+ }, defaults$g );
2545
2545
 
2546
- var defaults$9 = {
2546
+ var defaults$f = {
2547
2547
  $name: 'Supersphere',
2548
2548
  $positionNode: true,
2549
2549
 
@@ -2571,17 +2571,17 @@ var surfacePos$2 = tsl.Fn( ([ pos, params ])=>{
2571
2571
 
2572
2572
  var supersphere = TSLFn( ( params )=>{
2573
2573
 
2574
- params = prepare( params, defaults$9 );
2574
+ params = prepare( params, defaults$f );
2575
2575
 
2576
2576
  return surfacePos$2( tsl.positionGeometry, params );
2577
2577
 
2578
- }, defaults$9 );
2578
+ }, defaults$f );
2579
2579
 
2580
2580
 
2581
2581
 
2582
2582
  supersphere.normal = TSLFn( ( params ) => {
2583
2583
 
2584
- params = prepare( params, defaults$9 );
2584
+ params = prepare( params, defaults$f );
2585
2585
 
2586
2586
  var eps = 0.01;
2587
2587
 
@@ -2599,9 +2599,9 @@ supersphere.normal = TSLFn( ( params ) => {
2599
2599
 
2600
2600
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2601
2601
 
2602
- }, defaults$9 );
2602
+ }, defaults$f );
2603
2603
 
2604
- var defaults$8 = {
2604
+ var defaults$e = {
2605
2605
  $name: 'Tiger fur',
2606
2606
 
2607
2607
  scale: 2,
@@ -2620,7 +2620,7 @@ var defaults$8 = {
2620
2620
 
2621
2621
  var tigerFur = TSLFn( ( params )=>{
2622
2622
 
2623
- params = prepare( params, defaults$8 );
2623
+ params = prepare( params, defaults$e );
2624
2624
 
2625
2625
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
2626
2626
  var pos = tsl.positionGeometry.mul( tsl.exp( scale ) ).add( params.seed ).toVar( );
@@ -2635,9 +2635,9 @@ var tigerFur = TSLFn( ( params )=>{
2635
2635
 
2636
2636
  return tsl.mix( params.bottomColor, params.color, n ).mul( k );
2637
2637
 
2638
- }, defaults$8 );
2638
+ }, defaults$e );
2639
2639
 
2640
- var defaults$7 = {
2640
+ var defaults$d = {
2641
2641
  $name: 'Translator',
2642
2642
  $positionNode: true,
2643
2643
  $selectorPlanar: true,
@@ -2666,17 +2666,17 @@ var surfacePos$1 = tsl.Fn( ([ pos, params ])=>{
2666
2666
 
2667
2667
  var translator = TSLFn( ( params )=>{
2668
2668
 
2669
- params = prepare( params, defaults$7 );
2669
+ params = prepare( params, defaults$d );
2670
2670
 
2671
2671
  return surfacePos$1( tsl.positionGeometry, params );
2672
2672
 
2673
- }, defaults$7 );
2673
+ }, defaults$d );
2674
2674
 
2675
2675
 
2676
2676
 
2677
2677
  translator.normal = TSLFn( ( params ) => {
2678
2678
 
2679
- params = prepare( params, defaults$7 );
2679
+ params = prepare( params, defaults$d );
2680
2680
 
2681
2681
  var eps = 0.01;
2682
2682
 
@@ -2694,9 +2694,9 @@ translator.normal = TSLFn( ( params ) => {
2694
2694
 
2695
2695
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2696
2696
 
2697
- }, defaults$7 );
2697
+ }, defaults$d );
2698
2698
 
2699
- var defaults$6 = {
2699
+ var defaults$c = {
2700
2700
  $name: 'Voronoi cells',
2701
2701
 
2702
2702
  scale: 2,
@@ -2720,7 +2720,7 @@ var cellCenter = tsl.Fn( ([ cell ])=>{
2720
2720
 
2721
2721
  var voronoiCells = TSLFn( ( params )=>{
2722
2722
 
2723
- params = prepare( params, defaults$6 );
2723
+ params = prepare( params, defaults$c );
2724
2724
 
2725
2725
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 0.5 ) ) ).add( params.seed ).toVar( );
2726
2726
 
@@ -2761,9 +2761,9 @@ var voronoiCells = TSLFn( ( params )=>{
2761
2761
 
2762
2762
  return tsl.mix( color, tsl.mix( color, randomColor, params.variation ), params.variation );
2763
2763
 
2764
- }, defaults$6 );
2764
+ }, defaults$c );
2765
2765
 
2766
- var defaults$5 = {
2766
+ var defaults$b = {
2767
2767
  $name: 'Water Drops',
2768
2768
  $normalNode: true,
2769
2769
 
@@ -2789,7 +2789,7 @@ var surfacePos = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
2789
2789
 
2790
2790
  var waterDrops = TSLFn( ( params ) => {
2791
2791
 
2792
- params = prepare( params, defaults$5 );
2792
+ params = prepare( params, defaults$b );
2793
2793
 
2794
2794
  var eps = 0.001;
2795
2795
 
@@ -2811,9 +2811,9 @@ var waterDrops = TSLFn( ( params ) => {
2811
2811
 
2812
2812
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
2813
2813
 
2814
- }, defaults$5 );
2814
+ }, defaults$b );
2815
2815
 
2816
- var defaults$4 = {
2816
+ var defaults$a = {
2817
2817
  $name: 'Watermelon',
2818
2818
 
2819
2819
  scale: 2,
@@ -2833,7 +2833,7 @@ var defaults$4 = {
2833
2833
 
2834
2834
  var watermelon = TSLFn( ( params )=>{
2835
2835
 
2836
- params = prepare( params, defaults$4 );
2836
+ params = prepare( params, defaults$a );
2837
2837
 
2838
2838
  var variation = tsl.select( params.flat, params.variation.mul( 0.85 ).add( 0.15 ), params.variation );
2839
2839
 
@@ -2859,9 +2859,9 @@ var watermelon = TSLFn( ( params )=>{
2859
2859
 
2860
2860
  return color;
2861
2861
 
2862
- }, defaults$4 );
2862
+ }, defaults$a );
2863
2863
 
2864
- var defaults$3 = {
2864
+ var defaults$9 = {
2865
2865
  $name: 'Wood',
2866
2866
  scale: 2.5,
2867
2867
  rings: 4.5,
@@ -2878,7 +2878,7 @@ var defaults$3 = {
2878
2878
 
2879
2879
  var wood = TSLFn( ( params ) => {
2880
2880
 
2881
- params = prepare( params, defaults$3 );
2881
+ params = prepare( params, defaults$9 );
2882
2882
 
2883
2883
  var angle = tsl.radians( params.angle ).toVar();
2884
2884
  var posLocal = tsl.vec3(
@@ -2911,9 +2911,9 @@ var wood = TSLFn( ( params ) => {
2911
2911
 
2912
2912
  return tsl.mix( params.color, params.background, tsl.mix( k, kk, params.fibers ) );
2913
2913
 
2914
- }, defaults$3 );
2914
+ }, defaults$9 );
2915
2915
 
2916
- var defaults$2 = {
2916
+ var defaults$8 = {
2917
2917
  $name: 'Zebra lines',
2918
2918
 
2919
2919
  scale: 2,
@@ -2932,7 +2932,7 @@ var defaults$2 = {
2932
2932
 
2933
2933
  var zebraLines = TSLFn( ( params ) => {
2934
2934
 
2935
- params = prepare( params, defaults$2 );
2935
+ params = prepare( params, defaults$8 );
2936
2936
 
2937
2937
  var pos = tsl.select( params.flat, tsl.positionGeometry, tsl.positionGeometry.normalize() ).toVar( );
2938
2938
 
@@ -2948,9 +2948,9 @@ var zebraLines = TSLFn( ( params ) => {
2948
2948
 
2949
2949
  return tsl.mix( params.background, params.color, k );
2950
2950
 
2951
- }, defaults$2 );
2951
+ }, defaults$8 );
2952
2952
 
2953
- var defaults$1 = {
2953
+ var defaults$7 = {
2954
2954
  $name: 'Circle decor',
2955
2955
 
2956
2956
  scale: 2,
@@ -2969,7 +2969,7 @@ var defaults$1 = {
2969
2969
 
2970
2970
  var circleDecor = TSLFn( ( params )=>{
2971
2971
 
2972
- params = prepare( params, defaults$1 );
2972
+ params = prepare( params, defaults$7 );
2973
2973
 
2974
2974
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 4 ) ) ).add( params.seed ).toVar( );
2975
2975
  var subpos = pos.mul( 2 ).toVar( );
@@ -2984,9 +2984,9 @@ var circleDecor = TSLFn( ( params )=>{
2984
2984
 
2985
2985
  return tsl.mix( params.color, params.background, k.oneMinus() );
2986
2986
 
2987
- }, defaults$1 );
2987
+ }, defaults$7 );
2988
2988
 
2989
- var defaults = {
2989
+ var defaults$6 = {
2990
2990
  $name: 'Reticular veins',
2991
2991
 
2992
2992
  scale: 2,
@@ -3004,7 +3004,7 @@ var defaults = {
3004
3004
 
3005
3005
  var reticularVeins = TSLFn( ( params )=>{
3006
3006
 
3007
- params = prepare( params, defaults );
3007
+ params = prepare( params, defaults$6 );
3008
3008
 
3009
3009
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 2 ).add( 0.5 ) ) ).add( params.seed ).toVar( );
3010
3010
 
@@ -3016,6 +3016,250 @@ var reticularVeins = TSLFn( ( params )=>{
3016
3016
 
3017
3017
  return tsl.mix( params.background, params.color, k );
3018
3018
 
3019
+ }, defaults$6 );
3020
+
3021
+ var defaults$5 = {
3022
+ $name: 'Roman paving',
3023
+
3024
+ scale: 2,
3025
+ depth: 0.5,
3026
+
3027
+ seed: 0,
3028
+ };
3029
+
3030
+
3031
+
3032
+ var romanPaving = TSLFn( ( params )=>{
3033
+
3034
+ params = prepare( params, defaults$5 );
3035
+
3036
+ var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
3037
+
3038
+ var k = tsl.mx_worley_noise_vec2( pos ).toVar();
3039
+
3040
+ return k.y.sub( k.x ).pow( params.depth.mul( 3 ).sub( 3 ).exp() ).smoothstep( 0, 1 );
3041
+
3042
+ }, defaults$5 );
3043
+
3044
+ var defaults$4 = {
3045
+ $name: 'Crumpled fabric',
3046
+ $width: 260,
3047
+
3048
+ scale: 2,
3049
+ pinch: 0.5,
3050
+
3051
+ color: new three.Color( 0xB0F0FF ),
3052
+ subcolor: new three.Color( 0x4040F0 ),
3053
+ background: new three.Color( 0x003000 ),
3054
+
3055
+ seed: 0,
3056
+ };
3057
+
3058
+
3059
+
3060
+ var crumpledFabric = TSLFn( ( params )=>{
3061
+
3062
+ params = prepare( params, defaults$4 );
3063
+
3064
+ var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.sub( 0.5 ) ) ).add( params.seed ).toVar( );
3065
+
3066
+ tsl.Loop( 4, ()=>{
3067
+
3068
+ var x = tsl.mx_noise_float( pos.xyz ).mul( params.pinch );
3069
+ var y = tsl.mx_noise_float( pos.yzx ).mul( params.pinch );
3070
+ var z = tsl.mx_noise_float( pos.zxy ).mul( params.pinch );
3071
+
3072
+ pos.addAssign( tsl.vec3( x, y, z ) );
3073
+
3074
+ } );
3075
+
3076
+ var k = tsl.mx_noise_float( pos ).add( 1 ).div( 2 ).clamp( 0, 1 );
3077
+
3078
+ var color1 = params.color.mul( k.mul( 2 ).sub( 1 ).abs().oneMinus() );
3079
+ var color2 = params.subcolor.mul( k ).pow( 2 );
3080
+ var color3 = params.background.mul( k.oneMinus().pow( 2 ) );
3081
+
3082
+ return color1.add( color2 ).add( color3 );
3083
+
3084
+ }, defaults$4 );
3085
+
3086
+ var defaults$3 = {
3087
+ $name: 'Isolayers',
3088
+
3089
+ scale: 2,
3090
+ layers: 10,
3091
+ edge: 0.5,
3092
+ darkness: 0,
3093
+
3094
+ color: new three.Color( 0xFFFFF0 ),
3095
+ background: new three.Color( 0xFF4040 ),
3096
+
3097
+ seed: 0,
3098
+ };
3099
+
3100
+
3101
+
3102
+ var isolayers = TSLFn( ( params )=>{
3103
+
3104
+ params = prepare( params, defaults$3 );
3105
+
3106
+ var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.sub( 1 ) ) ).add( params.seed ).toVar( );
3107
+
3108
+ var depth = params.edge.remap( 0, 1, 40, 10 );
3109
+
3110
+ var k = tsl.mx_noise_float( pos ).mul( 1.2 ).add( 1 ).div( 2 );
3111
+
3112
+ var i = k.mul( params.layers ).round().div( params.layers ).clamp( 0, 1 );
3113
+ var f = k.sub( tsl.float( 0.5+0.03 ).div( params.layers ) )
3114
+ .mul( params.layers ).fract()
3115
+ .mul( tsl.float( 2 ).pow( depth.reciprocal() ) )
3116
+ .pow( depth ).sub( 1 ).abs().oneMinus();
3117
+
3118
+ var hslColor = tsl.mix( toHsl( params.background ), toHsl( params.color ), i ).toVar();
3119
+ hslColor.z.mulAssign( tsl.mix( 1, i.mul( 1.5 ), params.darkness ).clamp( 0, 1 ) );
3120
+
3121
+ return hsl( hslColor.x, hslColor.y, hslColor.z ).sub( f );
3122
+
3123
+ }, defaults$3 );
3124
+
3125
+ var defaults$2 = {
3126
+ $name: 'Turbulent smoke',
3127
+ $width: 260,
3128
+
3129
+ scale: 2,
3130
+ speed: 0,
3131
+ details: 5,
3132
+
3133
+ seed: 0,
3134
+ };
3135
+
3136
+
3137
+
3138
+ var turbulentSmoke = TSLFn( ( params )=>{
3139
+
3140
+ params = prepare( params, defaults$2 );
3141
+
3142
+ var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.sub( 1 ) ) ).add( params.seed ).toVar( );
3143
+
3144
+ var t = tsl.time.mul( params.speed.sub( 1 ).exp() );
3145
+
3146
+ var q = pos.add( tsl.vec3(
3147
+ tsl.mx_fractal_noise_float( pos.add( tsl.vec3( 1, t.sin(), -1 ) ) ),
3148
+ tsl.mx_fractal_noise_float( pos.add( tsl.vec3( t.add( 2*Math.PI/3 ).sin(), 1, -1 ) ) ),
3149
+ tsl.mx_fractal_noise_float( pos.add( tsl.vec3( 1, -1, t.add( 4*Math.PI/3 ).sin() ) ) ),
3150
+ ) );
3151
+
3152
+ var p = tsl.mx_fractal_noise_vec3( q, params.details );
3153
+
3154
+ var k = tsl.mx_worley_noise_float( pos.add( p.div( 2 ) ) ).pow( 4 ).mul( 4 ).oneMinus();
3155
+
3156
+ return k;
3157
+
3158
+ }, defaults$2 );
3159
+
3160
+ var defaults$1 = {
3161
+ $name: 'Caustics',
3162
+
3163
+ scale: 2,
3164
+ speed: 0,
3165
+
3166
+ color: new three.Color( 0x50A8C0 ),
3167
+
3168
+ seed: 0,
3169
+ };
3170
+
3171
+
3172
+
3173
+ var caustics = TSLFn( ( params )=>{
3174
+
3175
+ params = prepare( params, defaults$1 );
3176
+
3177
+ var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.sub( 1 ) ) ).add( params.seed ).toVar( );
3178
+
3179
+ var t = tsl.time.mul( params.speed.sub( 1 ).exp() )
3180
+ .add( tsl.vec3( 0, 2*Math.PI/3, 4*Math.PI/3 ) )
3181
+ .sin();
3182
+
3183
+ var p = tsl.mx_worley_noise_vec3(
3184
+ pos.add( tsl.vec3(
3185
+ tsl.mx_worley_noise_float( pos.add( t.xyz ) ),
3186
+ tsl.mx_worley_noise_float( pos.add( t.yzx ) ),
3187
+ tsl.mx_worley_noise_float( pos.add( t.zxy ) ),
3188
+ ) ) );
3189
+
3190
+ var k = p.length().div( Math.sqrt( 3 ) );
3191
+
3192
+ return k.add( params.color.sub( 0.5 ).mul( 2 ) );
3193
+
3194
+ }, defaults$1 );
3195
+
3196
+ var defaults = {
3197
+ $name: 'Bricks',
3198
+
3199
+ scale: 2,
3200
+
3201
+ brickSize: new three.Vector3( 2, 1, 2 ),
3202
+ brickShift: 2,
3203
+
3204
+ jointSize: 0.05,
3205
+ jointSpan: 0.5,
3206
+ jointJitter: 0.5,
3207
+ jointBlur: 0.03,
3208
+
3209
+ noiseSize: 0.5,
3210
+ noiseStrength: 0.2,
3211
+
3212
+ colorShade: 0.5,
3213
+
3214
+ color: new three.Color( 0xFF4000 ),
3215
+ additional: new three.Color( 0xD0A030 ),
3216
+ background: new three.Color( 0xAAAAAA ),
3217
+
3218
+
3219
+ seed: 0,
3220
+ };
3221
+
3222
+ // mortar joint
3223
+
3224
+
3225
+
3226
+ var bricks = TSLFn( ( params )=>{
3227
+
3228
+ params = prepare( params, defaults );
3229
+
3230
+
3231
+ var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
3232
+
3233
+ var size = params.brickSize;
3234
+
3235
+ var floor = pos.div( size ).floor().div( params.brickShift );
3236
+
3237
+ var offset = tsl.vec3( floor.y, 0, floor.y ).toVar();
3238
+
3239
+ var p = pos.div( size ).fract().add( offset ).fract().toVar();
3240
+
3241
+ var n = tsl.mx_fractal_noise_vec3( pos.mul( remapExp( params.jointSpan, 0, 1, 20, 0.2 ) ) ).div( remapExp( params.jointJitter, 0, 1, 500, 1 ) ).toVar();
3242
+
3243
+ var border = tsl.mul(
3244
+ p.mul( size ).add( n.z ).smoothstep( size.y.sub( params.jointSize, params.jointBlur ), size.y.sub( params.jointSize ) ).y.oneMinus(),
3245
+ p.mul( size ).add( n.y ).smoothstep( params.jointSize, params.jointSize.add( params.jointBlur ) ).y,
3246
+
3247
+ p.mul( size ).add( n.y ).smoothstep( size.x.sub( params.jointSize, params.jointBlur ), size.x.sub( params.jointSize ) ).x.oneMinus(),
3248
+ p.mul( size ).add( n.x ).smoothstep( params.jointSize, params.jointSize.add( params.jointBlur ) ).x,
3249
+
3250
+ p.mul( size ).add( n.x ).smoothstep( size.z.sub( params.jointSize, params.jointBlur ), size.z.sub( params.jointSize ) ).z.oneMinus(),
3251
+ p.mul( size ).add( n.z ).smoothstep( params.jointSize, params.jointSize.add( params.jointBlur ) ).z,
3252
+ ).clamp( 0, 1 );
3253
+
3254
+ var shade = tsl.mix( tsl.float( 1 ), tsl.mx_noise_float( tsl.mx_noise_float( pos.xyz.div( size ).add( offset ).floor().zxy.mul( 100 ).add( Math.PI ) ).mul( 10 ) ).add( 2 ).div( 2 ).pow( 4 ).clamp( 0, 1 ), params.colorShade );
3255
+
3256
+ var ns = tsl.mx_noise_float( pos.mul( remapExp( params.noiseSize, 0, 1, 5, 250 ) ) ).mul( params.noiseStrength ).add( 1 );
3257
+
3258
+ var brickNoise = tsl.mx_noise_float( tsl.mx_noise_float( pos.xyz.div( size ).add( offset ).floor().zxy.mul( 200 ).add( Math.PI ) ).mul( 10 ) ).add( 1 ).div( 1 );
3259
+ var brickColor = tsl.mix( params.color, params.additional, brickNoise.pow( 2 ) );
3260
+
3261
+ return tsl.mix( params.background, shade.mul( brickColor, border ), border ).mul( ns );
3262
+
3019
3263
  }, defaults );
3020
3264
 
3021
3265
  Object.defineProperty(exports, "noise", {
@@ -3025,13 +3269,16 @@ Object.defineProperty(exports, "noise", {
3025
3269
  exports.TSLFn = TSLFn;
3026
3270
  exports.applyEuler = applyEuler;
3027
3271
  exports.brain = brain;
3272
+ exports.bricks = bricks;
3028
3273
  exports.camouflage = camouflage;
3274
+ exports.caustics = caustics;
3029
3275
  exports.caveArt = caveArt;
3030
3276
  exports.circleDecor = circleDecor;
3031
3277
  exports.circles = circles;
3032
3278
  exports.clouds = clouds;
3033
3279
  exports.concrete = concrete;
3034
3280
  exports.cork = cork;
3281
+ exports.crumpledFabric = crumpledFabric;
3035
3282
  exports.dalmatianSpots = dalmatianSpots;
3036
3283
  exports.darthMaul = darthMaul;
3037
3284
  exports.dynamic = dynamic;
@@ -3042,6 +3289,7 @@ exports.gasGiant = gasGiant;
3042
3289
  exports.grid = grid;
3043
3290
  exports.hideFallbackWarning = hideFallbackWarning;
3044
3291
  exports.hsl = hsl;
3292
+ exports.isolayers = isolayers;
3045
3293
  exports.isolines = isolines;
3046
3294
  exports.karstRock = karstRock;
3047
3295
  exports.marble = marble;
@@ -3063,6 +3311,7 @@ exports.processedWood = processedWood;
3063
3311
  exports.protozoa = protozoa;
3064
3312
  exports.remapExp = remapExp;
3065
3313
  exports.reticularVeins = reticularVeins;
3314
+ exports.romanPaving = romanPaving;
3066
3315
  exports.rotator = rotator;
3067
3316
  exports.roughClay = roughClay;
3068
3317
  exports.runnyEggs = runnyEggs;
@@ -3081,6 +3330,7 @@ exports.supersphere = supersphere;
3081
3330
  exports.tigerFur = tigerFur;
3082
3331
  exports.toHsl = toHsl;
3083
3332
  exports.translator = translator;
3333
+ exports.turbulentSmoke = turbulentSmoke;
3084
3334
  exports.vnoise = vnoise;
3085
3335
  exports.voronoiCells = voronoiCells;
3086
3336
  exports.waterDrops = waterDrops;