tsl-textures 2.2.0 → 2.2.1

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.1.2
1
+ // TSL Textures v2.2.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$C = {
760
+ var defaults$D = {
761
761
  $name: 'Camouflage',
762
762
 
763
763
  scale: 2,
@@ -774,7 +774,7 @@ var defaults$C = {
774
774
 
775
775
  var camouflage = TSLFn( ( params )=>{
776
776
 
777
- params = prepare( params, defaults$C );
777
+ params = prepare( params, defaults$D );
778
778
 
779
779
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
780
780
 
@@ -807,9 +807,9 @@ var camouflage = TSLFn( ( params )=>{
807
807
 
808
808
  return color;
809
809
 
810
- }, defaults$C );
810
+ }, defaults$D );
811
811
 
812
- var defaults$B = {
812
+ var defaults$C = {
813
813
  $name: 'Cave art',
814
814
 
815
815
  scale: 2,
@@ -826,7 +826,7 @@ var defaults$B = {
826
826
 
827
827
  var caveArt = TSLFn( ( params ) => {
828
828
 
829
- params = prepare( params, defaults$B );
829
+ params = prepare( params, defaults$C );
830
830
 
831
831
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).toVar( );
832
832
 
@@ -850,9 +850,9 @@ var caveArt = TSLFn( ( params ) => {
850
850
 
851
851
  return tsl.mix( params.background, params.color, k );
852
852
 
853
- }, defaults$B );
853
+ }, defaults$C );
854
854
 
855
- var defaults$A = {
855
+ var defaults$B = {
856
856
  $name: 'Circles',
857
857
 
858
858
  scale: 2,
@@ -869,7 +869,7 @@ var defaults$A = {
869
869
 
870
870
  var circles = TSLFn( ( params ) => {
871
871
 
872
- params = prepare( params, defaults$A );
872
+ params = prepare( params, defaults$B );
873
873
 
874
874
  var pos = tsl.select( params.flat, tsl.positionGeometry, tsl.positionGeometry.normalize() );
875
875
 
@@ -899,9 +899,9 @@ var circles = TSLFn( ( params ) => {
899
899
 
900
900
  return hsl( huei.add( huef ).div( 10 ), HSL.y, HSL.z );
901
901
 
902
- }, defaults$A );
902
+ }, defaults$B );
903
903
 
904
- var defaults$z = {
904
+ var defaults$A = {
905
905
  $name: 'Clouds',
906
906
 
907
907
  scale: 2,
@@ -943,24 +943,24 @@ var _clouds = tsl.Fn( ( params ) => {
943
943
  var clouds = TSLFn( ( params ) => {
944
944
 
945
945
  // prepare parameters
946
- params = prepare( params, defaults$z );
946
+ params = prepare( params, defaults$A );
947
947
 
948
948
  return _clouds( params ).rgb;
949
949
 
950
- }, defaults$z );
950
+ }, defaults$A );
951
951
 
952
952
 
953
953
 
954
954
  clouds.opacity = TSLFn( ( params ) => {
955
955
 
956
956
  // prepare parameters
957
- params = prepare( params, defaults$z );
957
+ params = prepare( params, defaults$A );
958
958
 
959
959
  return _clouds( params ).a;
960
960
 
961
- }, defaults$z );
961
+ }, defaults$A );
962
962
 
963
- var defaults$y = {
963
+ var defaults$z = {
964
964
  $name: 'Concrete',
965
965
  $normalNode: true,
966
966
 
@@ -985,7 +985,7 @@ var surfacePos$7 = tsl.Fn( ([ pos, normal, bump, density, seed ]) => {
985
985
 
986
986
  var concrete = TSLFn( ( params ) => {
987
987
 
988
- params = prepare( params, defaults$y );
988
+ params = prepare( params, defaults$z );
989
989
 
990
990
  var eps = 0.001;
991
991
 
@@ -1006,9 +1006,9 @@ var concrete = TSLFn( ( params ) => {
1006
1006
 
1007
1007
  return tsl.transformNormalToView( tsl.cross( dU, dV ).normalize() );
1008
1008
 
1009
- }, defaults$y );
1009
+ }, defaults$z );
1010
1010
 
1011
- var defaults$x = {
1011
+ var defaults$y = {
1012
1012
  $name: 'Cork',
1013
1013
 
1014
1014
  scale: 1,
@@ -1032,7 +1032,7 @@ var cellCenter$1 = tsl.Fn( ([ cell ])=>{
1032
1032
 
1033
1033
  var cork = TSLFn( ( params )=>{
1034
1034
 
1035
- params = prepare( params, defaults$x );
1035
+ params = prepare( params, defaults$y );
1036
1036
 
1037
1037
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale.div( 1.5 ).add( 1 ) ) ).add( params.seed ).toVar( );
1038
1038
 
@@ -1077,9 +1077,9 @@ var cork = TSLFn( ( params )=>{
1077
1077
 
1078
1078
  return color;
1079
1079
 
1080
- }, defaults$x );
1080
+ }, defaults$y );
1081
1081
 
1082
- var defaults$w = {
1082
+ var defaults$x = {
1083
1083
  $name: 'Dalmatian spots',
1084
1084
  $width: 260,
1085
1085
 
@@ -1096,7 +1096,7 @@ var defaults$w = {
1096
1096
 
1097
1097
  var dalmatianSpots = TSLFn( ( params )=>{
1098
1098
 
1099
- params = prepare( params, defaults$w );
1099
+ params = prepare( params, defaults$x );
1100
1100
 
1101
1101
  var pos = tsl.positionGeometry.mul( tsl.exp( params.scale ) ).add( params.seed ).sub( 1000 ).toVar( );
1102
1102
 
@@ -1118,6 +1118,54 @@ var dalmatianSpots = TSLFn( ( params )=>{
1118
1118
 
1119
1119
  return tsl.mix( params.background, params.color, k.clamp( 0, 1 ) );
1120
1120
 
1121
+ }, defaults$x );
1122
+
1123
+ var defaults$w = {
1124
+ $name: 'Darth Maul',
1125
+
1126
+ scale: 2,
1127
+ shift: new three.Vector3( 0, 0, 0 ),
1128
+ complexity: 0,
1129
+
1130
+ angle: 60,
1131
+ distance: 1.9,
1132
+
1133
+ color: new three.Color( 0xD02020 ),
1134
+ background: new three.Color( 0x000000 ),
1135
+ balance: 0,
1136
+
1137
+ seed: 0,
1138
+ };
1139
+
1140
+
1141
+
1142
+ var darthMaul = TSLFn( ( params ) => {
1143
+
1144
+ params = prepare( params, defaults$w );
1145
+
1146
+ //var dX = vec3( params.shift.x, 0, 0 );
1147
+
1148
+ 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( );
1149
+
1150
+ var s = tsl.select( tsl.positionGeometry.y.mul( params.angle.radians().cos() ).add( tsl.positionGeometry.z.mul( params.angle.radians().sin() ) ).greaterThan( params.distance ), 1, 0 );
1151
+
1152
+ // implement symmetry
1153
+ position.x.assign( position.x.add( params.shift.x ).abs() );
1154
+ position.y.addAssign( params.seed );
1155
+ position.z.mulAssign( params.shift.z );
1156
+
1157
+ var n = tsl.mx_noise_float( position ).toVar();
1158
+
1159
+ var k = n.sin().mul( n.mul( params.complexity.mul( 2 ).add( 1 ).exp() ).sin() ).remap( 0, 0.2, 1, -1 ).greaterThan( params.balance ).select( 0, 1 );
1160
+
1161
+ var c = tsl.select( position.x.greaterThan( tsl.mx_noise_float( position.mul( 2.3 ) ).abs().mul( 0.5 ).add( 0.02 ) ), 1, 0 );
1162
+
1163
+ var pos_actual = tsl.positionGeometry.normalize();
1164
+ var angle = tsl.atan( pos_actual.z, pos_actual.x ).add( Math.PI ).mul( 4/Math.PI ).round().div( 4/Math.PI );
1165
+ tsl.vec3( angle.cos(), 0.3, angle.sin() );
1166
+
1167
+ return tsl.mix( params.background, params.color, k.mul( s ).mul( c ).clamp( 0, 1 ) );
1168
+
1121
1169
  }, defaults$w );
1122
1170
 
1123
1171
  var defaults$v = {
@@ -1780,7 +1828,7 @@ var defaults$j = {
1780
1828
  $width: 260,
1781
1829
 
1782
1830
  scale: 2,
1783
- length: 4,
1831
+ lengths: 4,
1784
1832
  strength: 0.3,
1785
1833
  angle: 0,
1786
1834
 
@@ -1806,7 +1854,7 @@ var processedWood = TSLFn( ( params )=>{
1806
1854
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
1807
1855
  var pos = posLocal.mul( tsl.exp( scale ) ).add( params.seed ).toVar( );
1808
1856
 
1809
- var len = params.length.add( 5 ).reciprocal().toVar();
1857
+ var len = params.lengths.add( 5 ).reciprocal().toVar();
1810
1858
  var k = tsl.mx_noise_float( pos.mul( scale, tsl.vec3( 1, len, len ) ) );
1811
1859
  k = k.mul( tsl.mx_noise_float( pos.mul( tsl.vec3( 25, 1, 1 ) ) ).add( -1 ).mul( 0.2 ) );
1812
1860
  k = k.add( params.strength.sub( 0.5 ) ).smoothstep( -0.3, 0.3 ).oneMinus();
@@ -2494,7 +2542,7 @@ var defaults$6 = {
2494
2542
  $name: 'Tiger fur',
2495
2543
 
2496
2544
  scale: 2,
2497
- length: 4,
2545
+ lengths: 4,
2498
2546
  blur: 0.3,
2499
2547
  strength: 0.3,
2500
2548
  hairs: 0.5,
@@ -2514,7 +2562,7 @@ var tigerFur = TSLFn( ( params )=>{
2514
2562
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
2515
2563
  var pos = tsl.positionGeometry.mul( tsl.exp( scale ) ).add( params.seed ).toVar( );
2516
2564
 
2517
- var len = params.length.add( 5 ).reciprocal().toVar();
2565
+ var len = params.lengths.add( 5 ).reciprocal().toVar();
2518
2566
  var hairs = params.hairs.mul( 0.3 ).toVar();
2519
2567
  var k = tsl.mx_noise_float( pos.mul( scale, tsl.vec3( 1, len, len ) ) );
2520
2568
  k = k.add( tsl.mx_noise_float( pos.mul( tsl.vec3( 25, 1, 1 ) ) ).add( 1 ).mul( hairs ) );
@@ -2524,23 +2572,7 @@ var tigerFur = TSLFn( ( params )=>{
2524
2572
 
2525
2573
  return tsl.mix( params.bottomColor, params.color, n ).mul( k );
2526
2574
 
2527
- }, defaults$6 );
2528
-
2529
-
2530
- tigerFur.defaults = {
2531
- $name: 'Tiger fur',
2532
-
2533
- scale: 2,
2534
- length: 4,
2535
- blur: 0.3,
2536
- strength: 0.3,
2537
- hairs: 0.5,
2538
-
2539
- color: new three.Color( 0xFFAA00 ),
2540
- bottomColor: new three.Color( 0xFFFFEE ),
2541
-
2542
- seed: 0,
2543
- };
2575
+ }, defaults$6 );
2544
2576
 
2545
2577
  var defaults$5 = {
2546
2578
  $name: 'Translator',
@@ -2770,7 +2802,7 @@ var defaults$1 = {
2770
2802
  $name: 'Wood',
2771
2803
  scale: 2.5,
2772
2804
  rings: 4.5,
2773
- length: 1,
2805
+ lengths: 1,
2774
2806
  angle: 0,
2775
2807
  fibers: 0.3,
2776
2808
  fibersDensity: 10,
@@ -2794,7 +2826,7 @@ var wood = TSLFn( ( params ) => {
2794
2826
 
2795
2827
 
2796
2828
  // main pattern with rings
2797
- var pos = posLocal.mul( tsl.exp( params.scale.sub( 3 ) ).mul( tsl.vec3( tsl.reciprocal( params.length ), 4, tsl.reciprocal( params.length ) ) ) ).add( params.seed ).toVar( );
2829
+ var pos = posLocal.mul( tsl.exp( params.scale.sub( 3 ) ).mul( tsl.vec3( tsl.reciprocal( params.lengths ), 4, tsl.reciprocal( params.lengths ) ) ) ).add( params.seed ).toVar( );
2798
2830
  var k = tsl.mx_noise_float( pos ).add( 1 ).mul( 10 ).mul( params.rings );
2799
2831
  k = k.add( k.cos() ).cos().add( 1 ).div( 2 );
2800
2832
 
@@ -2868,6 +2900,7 @@ exports.clouds = clouds;
2868
2900
  exports.concrete = concrete;
2869
2901
  exports.cork = cork;
2870
2902
  exports.dalmatianSpots = dalmatianSpots;
2903
+ exports.darthMaul = darthMaul;
2871
2904
  exports.dynamic = dynamic;
2872
2905
  exports.dysonSphere = dysonSphere;
2873
2906
  exports.entangled = entangled;
@@ -1,2 +1,2 @@
1
- /*! TSL Textures v2.1.2 */
2
- "use strict";var o=require("three/tsl"),e=require("three");const a=o.Fn((([e,a,t,r])=>{var s=r.add(e.mul(12)).mod(12),n=a.mul(o.min(t,o.sub(1,t)));return t.sub(n.mul(o.max(-1,o.min(o.min(s.sub(3),o.sub(9,s)),1))))}));a.setLayout({name:"hslHelper",type:"float",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"},{name:"n",type:"float"}]});const t=o.Fn((([e,t,r])=>{e=e.fract().add(1).fract(),t=t.clamp(0,1),r=r.clamp(0,1);var s=a(e,t,r,0),n=a(e,t,r,8),l=a(e,t,r,4);return o.vec3(s,n,l)}));t.setLayout({name:"hsl",type:"vec3",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"}]});const r=o.Fn((([e])=>{var a=o.float(e.x).toVar(),t=o.float(e.y).toVar(),r=o.float(e.z).toVar(),s=o.max(a,o.max(t,r)).toVar(),n=o.min(a,o.min(t,r)).toVar(),l=o.float(0).toVar(),i=o.float(0).toVar(),m=o.add(s,n).div(2);return o.If(n.notEqual(s),(()=>{const e=o.sub(s,n).toVar();i.assign(o.select(m.lessThanEqual(.5),e.div(o.add(n,s)),e.div(o.sub(2,o.add(n,s))))),o.If(s.equal(a),(()=>{l.assign(o.sub(t,r).div(e).add(o.select(t.lessThanEqual(r),6,0)))})).ElseIf(s.equal(t),(()=>{l.assign(o.sub(r,a).div(e).add(2))})).Else((()=>{l.assign(o.sub(a,t).div(e).add(4))})),l.divAssign(6)})),o.vec3(l,i,m)}));r.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const s=o.Fn((([e,a])=>o.vec3(o.sin(a).mul(o.sin(e)),o.cos(e),o.cos(a).mul(o.sin(e)))));s.setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]});const n=o.Fn((([o,e])=>{var a=l(e);return i(o,a)}));n.setLayout({name:"applyEuler",type:"vec4",inputs:[{name:"vec",type:"vec3"},{name:"eu",type:"vec3"}]});const l=o.Fn((([e])=>{var a=o.cos(e.x.div(2)),t=o.cos(e.y.div(2)),r=o.cos(e.z.div(2)),s=o.sin(e.x.div(2)),n=o.sin(e.y.div(2)),l=o.sin(e.z.div(2));return o.vec4(o.add(o.mul(s,t,r),o.mul(a,n,l)),o.sub(o.mul(a,n,r),o.mul(s,t,l)),o.add(o.mul(a,t,l),o.mul(s,n,r)),o.sub(o.mul(a,t,r),o.mul(s,n,l)))}));l.setLayout({name:"quaternionFromEuler",type:"vec4",inputs:[{name:"eu",type:"vec3"}]});const i=o.Fn((([e,a])=>{var t=o.cross(a.xyz,e).mul(2).toVar();return o.add(e,t.mul(a.w),o.cross(a.xyz,t))}));i.setLayout({name:"applyQuaternion",type:"vec3",inputs:[{name:"vec",type:"vec3"},{name:"quat",type:"vec4"}]});const m=o.Fn((([e,a,t,r,s])=>(e=o.remap(e,a,t,0,1),e=o.pow(2,o.mul(e,o.log2(s.div(r))).add(o.log2(r))))));m.setLayout({name:"remapExp",type:"float",inputs:[{name:"x",type:"float"},{name:"fromMin",type:"float"},{name:"fromMax",type:"float"},{name:"toMin",type:"float"},{name:"toMax",type:"float"}]});const d=o.Fn((([e])=>e.dot(o.vec3(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1)));d.setLayout({name:"vnoise",type:"float",inputs:[{name:"v",type:"vec3"}]});const u=o.Fn((([e])=>{var a=e.cos().toVar(),t=e.sin().toVar();return o.mat4(1,0,0,0,0,a,t,0,0,t.negate(),a,0,0,0,0,1)}));u.setLayout({name:"matRotX",type:"mat4",inputs:[{name:"angle",type:"float"}]});const c=o.Fn((([e])=>{var a=e.cos().toVar(),t=e.sin().toVar();return o.mat4(a,0,t.negate(),0,0,1,0,0,t,0,a,0,0,0,0,1)}));c.setLayout({name:"matRotY",type:"mat4",inputs:[{name:"angle",type:"float"}]});const p=o.Fn((([e])=>{var a=e.cos().toVar(),t=e.sin().toVar();return o.mat4(a,t,0,0,t.negate(),a,0,0,0,0,1,0,0,0,0,1)}));p.setLayout({name:"matRotZ",type:"mat4",inputs:[{name:"angle",type:"float"}]});const v=o.Fn((([o])=>{var e=u(o.x),a=c(o.y),t=p(o.z);return a.mul(e).mul(t)}));v.setLayout({name:"matRotYXZ",type:"mat4",inputs:[{name:"angles",type:"vec3"}]});const x=o.Fn((([e])=>o.mat4(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)));x.setLayout({name:"matScale",type:"mat4",inputs:[{name:"scales",type:"vec3"}]});const y=o.Fn((([e])=>o.mat4(1,0,0,0,0,1,0,0,0,0,1,0,e.x,e.y,e.z,1)));y.setLayout({name:"matTrans",type:"mat4",inputs:[{name:"vector",type:"vec3"}]});const f=o.Fn((([e,a,t,r])=>{var n=s(a.x,a.y).mul(r).toVar(),l=t.sub(n.div(2)).sub(e).dot(n).div(n.dot(n)).negate();return o.smoothstep(0,1,l)}));f.setLayout({name:"selectPlanar",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"selAngles",type:"vec2"},{name:"selCenter",type:"vec3"},{name:"selWidth",type:"float"}]});const g=o.Fn((e=>{var a=f(o.positionGeometry,e.selectorAngles,e.selectorCenter,e.selectorWidth).sub(.5).mul(2).abs().oneMinus().pow(.25).negate().mul(e.selectorShow);return o.vec3(0,a,a)})),V=o.Fn((([e])=>{var a=o.dFdx(e),t=o.dFdy(e);return o.transformNormalToView(o.cross(a,t).normalize())}));V.setLayout({name:"normalVector",type:"vec3",inputs:[{name:"pos",type:"vec3"}]});var b=null,w=10;function _(a,t){var r=[];for(var s of a)if(s&&"object"==typeof s){r=Object.keys(s);break}var n={...t};for(var l of r)void 0!==a[l]&&(n[l]=a[l]);for(var i of Object.keys(n))"number"==typeof n[i]?n[i]=o.float(n[i]):n[i]instanceof e.Color?n[i]=o.vec3(n[i].r,n[i].g,n[i].b):n[i]instanceof e.Vector3&&(n[i]=o.vec3(n[i].x,n[i].y,n[i].z));return n}function h(e,a=1,t=1,r=0){return o.mx_noise_float(e.mul(a,t).add(r))}function C(e,a,t=null){const r=o.Fn(e,t),s=new Map;s.set("defaults",a),s.set("opacity",null),s.set("roughness",null),s.set("normal",null);const n=function(){};return Object.setPrototypeOf(n,Object.getPrototypeOf(r.call)),new Proxy(n,{get:(o,e,a)=>"defaults"===e?s.get("defaults"):"opacity"===e?s.get("opacity"):"roughness"===e?s.get("roughness"):"normal"===e?s.get("normal"):"fn"===e?r:Reflect.get(r,e,a),set:(o,e,a,t)=>"defaults"===e?(s.set("defaults",a),!0):"opacity"===e?(s.set("opacity",a),!0):"roughness"===e?(s.set("roughness",a),!0):"normal"===e?(s.set("normal",a),!0):Reflect.set(r,e,a,t),apply:(o,e,a)=>Reflect.apply(r,e,a),getOwnPropertyDescriptor:(o,e)=>"defaults"===e?{value:s.get("defaults"),writable:!0,enumerable:!0,configurable:!0}:("opacity"===e&&Reflect.getOwnPropertyDescriptor(null,e),"roughness"===e&&Reflect.getOwnPropertyDescriptor(null,e),"normal"===e&&Reflect.getOwnPropertyDescriptor(null,e),Reflect.getOwnPropertyDescriptor(r,e))})}var z={$name:"Camouflage",scale:2,colorA:new e.Color(12762792),colorB:new e.Color(10258782),colorC:new e.Color(9610101),colorD:new e.Color(7435617),seed:0},G=C((e=>{e=_(e,z);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.vec3(0,0,0).toVar();return o.If(o.round(o.mx_noise_float(a,1,.2)).greaterThanEqual(1),(()=>{t.assign(e.colorA)})).ElseIf(o.round(o.mx_noise_float(a.yzx,1,.3)).greaterThanEqual(1),(()=>{t.assign(e.colorB)})).ElseIf(o.round(o.mx_noise_float(a.zxy,1,.4)).greaterThanEqual(1),(()=>{t.assign(e.colorC)})).Else((()=>{t.assign(e.colorD)})),t}),z),k={$name:"Cave art",scale:2,thinness:2,noise:.3,color:new e.Color(13845829),background:new e.Color(16775408),seed:0},M=C((e=>{e=_(e,k);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.mx_noise_float(a,4).sin().toVar(),r=o.mx_noise_float(a.mul(1.5),4).cos().toVar(),s=o.exp(o.sub(o.float(3),e.thinness)),n=o.sub(s,o.pow2(o.abs(o.add(t,r))).mul(20)).toVar();return o.If(o.or(t.greaterThan(r),n.lessThan(0)),(()=>{n.assign(0)})),o.If(n.lessThanEqual(0),(()=>{n.assign(e.noise.mul(o.pow2(o.mx_noise_float(a.mul(30)))))})),o.mix(e.background,e.color,n)}),k),A={$name:"Circles",scale:2,variety:1,color:new e.Color(15786192),flat:0,seed:0},L=C((e=>{e=_(e,A);for(var a=o.select(e.flat,o.positionGeometry,o.positionGeometry.normalize()),s=o.acos(o.clamp(a.y,-1,1)).mul(20),n=o.exp(e.scale.sub(1)),l=s.div(3e3).mul(n),i=o.float(e.seed.sin().mul(100)).toVar(),m=0;m<=10;m++)i.addAssign(o.sin(l.mul(2**m).sub(Math.PI*m/2)).mul(-m*(m+1)/2));i.assign(i.div(200).clamp(-2,2));var d=r(e.color),u=d.x.add(i.mul(e.variety)).mod(1).mul(10),c=u.floor(),p=u.sub(c);return p=o.select(p.lessThan(.5),p.pow(1.5),p.pow(1/1.5)),t(c.add(p).div(10),d.y,d.z)}),A),$={$name:"Clouds",scale:2,density:.5,opacity:1,color:new e.Color(16777215),subcolor:new e.Color(10526896),seed:0},F=o.Fn((e=>{const a=o.positionGeometry,t=o.exp(e.scale.div(1.5).sub(.5)),r=o.add(h(a,t,1,e.seed),h(a,t,2,e.seed).mul(.8),h(a,t,6,e.seed).mul(.1),h(a,t,8,e.seed).mul(.07,e.opacity),e.density.remap(0,1,-.5,1.5)),s=o.clamp(0,1,o.mul(r,2).pow(1.5).sub(1).mul(e.opacity));return o.vec4(o.mix(e.subcolor,e.color,r.clamp(0,1)),s)})),I=C((o=>(o=_(o,$),F(o).rgb)),$);I.opacity=C((o=>(o=_(o,$),F(o).a)),$);var P={$name:"Concrete",$normalNode:!0,scale:2,density:.5,bump:.5,seed:0},T=o.Fn((([e,a,t,r,s])=>{var n=o.mx_noise_float(e.add(s)).mul(.5).add(.5);return n=t.mul(o.pow(o.abs(n),r)),e.add(n.mul(a))})),S=C((e=>{e=_(e,P);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(2))).toVar(),t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.001).toVar(),s=o.cross(t,r).normalize().mul(.001).toVar(),n=o.remap(e.density,0,1,10,.5).toVar(),l=o.vec3(o.sin(e.seed).mul(100),o.cos(e.seed.div(2)).mul(100),o.sin(e.seed.div(3)).mul(100)).toVar(),i=T(a,t,e.bump,n,l),m=T(a.add(r),t,e.bump,n,l),d=T(a.add(s),t,e.bump,n,l),u=o.sub(m,i),c=o.sub(d,i);return o.transformNormalToView(o.cross(u,c).normalize())}),P),E={$name:"Cork",scale:1,straight:1,noise:.3,color:new e.Color(16773312),background:new e.Color(13664352),seed:0},R=o.Fn((([o])=>o.add(d(o)))),W=C((e=>{e=_(e,E);var a=o.positionGeometry.mul(o.exp(e.scale.div(1.5).add(1))).add(e.seed).toVar(),t=a.round().toVar(),r=t.toVar(),s=o.float(1).toVar(),n=o.vec3().toVar(),l=o.float().toVar(),i=o.float(0).toVar();o.Loop(27,(()=>{var m=i.mod(3).sub(1),d=i.div(3).floor().mod(3).sub(1),u=i.div(9).floor().sub(1);n.assign(t.add(o.vec3(m,d,u))),l.assign(a.distance(R(n))),l.addAssign(o.mx_noise_float(a.add(n)).div(e.straight.exp())),o.If(l.lessThan(s),(()=>{s.assign(l),r.assign(n)})),i.addAssign(1)}));var m=o.mx_noise_float(r.mul(Math.PI)).toVar(),d=o.mx_noise_float(a.mul(12)).toVar();d.assign(d.sign().mul(d.abs().pow3())),d.addAssign(o.mx_noise_float(a.mul(40)).div(3));var u=m.add(1).div(2);return o.mix(e.color,e.background,u.add(d.mul(e.noise))).toVar()}),E),q={$name:"Dalmatian spots",$width:260,scale:2,density:.6,color:new e.Color(16777215),background:new e.Color(0),seed:0},B=C((e=>{e=_(e,q);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).sub(1e3).toVar(),t=o.float(1).toVar(),r=o.float(1.5).sub(e.density).mul(2).toVar(),s=e.density.mul(5).add(5).toVar();return o.Loop(s,(()=>{t.mulAssign(o.mx_noise_float(a).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01)),t.mulAssign(o.mx_noise_float(a.yzx).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01)),t.mulAssign(o.mx_noise_float(a.zxy).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01))})),o.mix(e.background,e.color,t.clamp(0,1))}),q),N={$name:"Dyson sphere",scale:2,complexity:2,variation:0,color:new e.Color(12636415),background:new e.Color(0),seed:0},D=o.Fn((([e])=>{var a=e.mul(5**.5).fract().toVar();return a.addAssign(a.dot(a.add(o.vec3(31.4159,27.1828,14.142)))),a.z.mul(a.x.add(a.y)).fract().mul(2).sub(1)})),O=o.Fn((([e])=>{var a=e.oneMinus().clamp(0,1).toVar();return a.mul(a).mul(o.float(3).sub(a.mul(2)))})),U=o.Fn((([e])=>{var a=e.x.floor().toVar(),t=a.add(1).toVar(),r=e.y.floor().toVar(),s=r.add(1).toVar(),n=e.z.floor().toVar(),l=n.add(1).toVar(),i=O(e.x.fract()).toVar(),m=O(e.y.fract()).toVar(),d=O(e.z.fract()).toVar(),u=O(i.oneMinus()).toVar(),c=O(m.oneMinus()).toVar(),p=O(d.oneMinus()).toVar(),v=D(o.vec3(a,r,n)).mul(u).mul(c).mul(p).toVar(),x=D(o.vec3(a,r,l)).mul(u).mul(c).mul(d).toVar(),y=D(o.vec3(a,s,n)).mul(u).mul(m).mul(p).toVar(),f=D(o.vec3(a,s,l)).mul(u).mul(m).mul(d).toVar(),g=D(o.vec3(t,r,n)).mul(i).mul(c).mul(p).toVar(),V=D(o.vec3(t,r,l)).mul(i).mul(c).mul(d).toVar(),b=D(o.vec3(t,s,n)).mul(i).mul(m).mul(p).toVar(),w=D(o.vec3(t,s,l)).mul(i).mul(m).mul(d).toVar();return v.add(x).add(y).add(f).add(g).add(V).add(b).add(w)})),Y=C((e=>{e=_(e,N);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(.5))).add(e.seed).toVar(),t=o.vec3().toVar(),r=o.float(1).toVar();return o.Loop(e.complexity.add(4),(()=>{t.addAssign(U(a.mul(r))),r.addAssign(r)})),o.mix(e.background,e.color,t.x.add(1).div(5))}),N),j={$name:"Entangled",scale:2,density:10,color:new e.Color(8256),background:new e.Color(16777215),seed:0},H=C((e=>{e=_(e,j);var a=o.exp(e.scale.div(2)).toVar(),t=o.positionGeometry.add(e.seed).toVar(),r=o.float(-1e4).toVar(),s=o.float(0).toVar();return o.Loop(o.floor(o.float(e.density)),(()=>{s.assign(o.sin(o.mx_noise_float(o.mul(t,a)).mul(3*Math.PI))),r.assign(o.max(r,s)),a.mulAssign(1.2)})),r.assign(o.oneMinus(o.pow(o.abs(r),5)).mul(6)),o.mix(e.color,e.background,r)}),j),Z={$name:"Fordite",scale:2,color:new e.Color(0,0,0),seed:0},X=C((e=>{e=_(e,Z);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),r=o.mx_noise_float(o.vec3(o.mx_noise_float(a),o.mx_noise_float(a).mul(2),o.mx_noise_float(a).mul(3))).toVar();return t(r,1,o.sin(o.mul(r,Math.PI,4)).mul(.5).add(.5)).add(e.color)}),Z),K={$name:"Gas giant",scale:2,turbulence:.3,blur:.6,colorA:new e.Color(16775408),colorB:new e.Color(15788208),colorC:new e.Color(11509968),seed:0},Q=C((e=>{var a=(e=_(e,K)).scale.div(2).add(1).toVar(),s=o.positionGeometry.mul(o.exp(a)).add(e.seed).toVar(),n=e.turbulence.mul(o.mx_noise_float(o.vec3(0,s.y.mul(.5),0).add(1)).add(o.mx_noise_float(o.vec3(0,s.y.mul(1),0).add(1)).mul(.5),o.mx_noise_float(o.vec3(1,s.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),l=o.mx_noise_float(s.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);s.addAssign(o.vec3(o.mx_noise_float(s),o.mx_noise_float(s.yxz),o.mx_noise_float(s.yzx)).mul(n.mul(l.mul(2).exp())));var i=e.blur.pow(.2).oneMinus().mul(n.add(1)).toVar(),m=o.mx_noise_float(s.mul(o.vec3(0,a,0)));m=(m=m.add(o.mx_noise_float(s.mul(o.vec3(1,15,1))).mul(i))).add(-.5).smoothstep(-1,1).oneMinus();var d=o.mx_noise_float(o.vec3(0,s.y.mul(.75),0)).add(1),u=r(o.mix(e.colorB,e.colorA,d)),c=t(u.x.add(o.mx_noise_float(s.mul(o.vec3(0,a,0))).div(4)),u.y,u.z).toVar();return c.assign(o.mix(c,e.colorC,n.mul(.3))),c.mul(m)}),K),J={$name:"Grid",countU:32,countV:16,thinness:.8,color:new e.Color(0),background:new e.Color(16777215),flat:0},oo=C((e=>{e=_(e,J);var a=o.select(e.flat,o.screenSize.x.div(o.screenSize.y),2),t=o.select(e.flat,o.screenUV,o.equirectUV(o.positionGeometry.normalize())).toVar(),r=o.mul(t.x,a,Math.PI),s=o.mul(t.y,Math.PI).toVar(),n=o.div(o.round(o.mul(t.x,e.countU)),e.countU),l=o.div(o.round(o.mul(t.y,e.countV)),e.countV),i=o.mul(n,a,Math.PI),m=o.mul(l,Math.PI),d=o.abs(o.sub(r,i)).mul(o.select(e.flat,1,o.sin(s))),u=o.abs(o.sub(s,m)),c=o.min(d,u),p=o.mul(o.min(o.div(a.mul(Math.PI),e.countU),o.div(Math.PI,e.countV)),o.remapClamp(o.pow(e.thinness,.5),0,1,.9,.04),.5),v=o.oneMinus(o.smoothstep(o.sub(p,.002),o.add(p,.002),c));return o.mix(e.background,e.color,v)}),J),eo={$name:"Isolines",scale:2,density:40,blur:.3,thinness:.6,color:new e.Color(16777215),background:new e.Color(0),seed:0},ao=C((e=>{e=_(e,eo);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.mx_noise_float(a).mul(e.density);return t=o.oneMinus(o.sin(t)).div(2),t=o.smoothstep(o.sub(e.thinness,e.blur),o.add(e.thinness,e.blur),t),o.mix(e.color,e.background,t)}),eo),to={$name:"Karst rock",scale:2,color:new e.Color(16774384),background:new e.Color(13684944),seed:0},ro=C((e=>{e=_(e,to);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed.sin().mul(5)).toVar(),t=a.add(o.mx_noise_float(a.mul(2))).toVar(),r=o.mx_noise_float(t).div(o.mx_noise_float(t.mul(1.01))).clamp(0,2).toVar();return r.addAssign(o.mx_noise_float(a.mul(100)).div(3)),r.addAssign(o.mx_noise_float(a.mul(2)).div(2)),o.mix(e.background,e.color,r).mul(r.pow(.1))}),to),so={$name:"Marble",scale:1.2,thinness:5,noise:.3,color:new e.Color(4539859),background:new e.Color(15792383),seed:0},no=C((e=>{e=_(e,so);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.add(o.mx_noise_float(a),o.mx_noise_float(a.mul(2)).mul(.5),o.mx_noise_float(a.mul(6)).mul(.1)),r=(t=o.oneMinus(t.abs().pow(2.5)).toVar(),o.oneMinus(o.pow(.5,e.thinness.add(7))).toVar()),s=o.oneMinus(o.pow(.5,e.thinness.add(7).mul(.5))).toVar();return o.If(t.greaterThan(r),(()=>{t.assign(1)})).ElseIf(t.lessThan(s),(()=>{t.assign(0)})).Else((()=>{var e=t.sub(s),n=r.sub(s);t.assign(o.pow(o.div(e,n),5).mul(.75)),t.assign(t.mul(o.add(.5,o.mx_noise_float(a.mul(2)).mul(1.5))))})),t.assign(t.add(o.mul(e.noise,o.mx_noise_float(a.mul(150)).abs().pow3()))),o.mix(e.background,e.color,t)}),so),lo={$name:"Neon Lights",scale:1.5,thinness:.8,mode:0,colorA:new e.Color(16711680),colorB:new e.Color(65280),colorC:new e.Color(255),background:new e.Color(0),seed:0},io=C((e=>{e=_(e,lo);var a=o.positionGeometry,s=o.exp(e.scale.remap(0,4,2,-2)).toVar(),n=o.exp(e.thinness.remap(0,1,1.5,0)).toVar(),l=e.background.toVar(),i=o.vec3(0).toVar(),m=o.mx_noise_float(a.xyz).toVar(),d=o.mx_noise_float(a.yzx).toVar(),u=o.mx_noise_float(a.zxy).toVar(),c=o.mx_noise_float(o.vec3(m,d,u).mul(s).add(e.seed)).toVar();c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),i.assign(e.colorA);var p=r(i);i.assign(t(p.x,p.y,p.z.mul(c))),l.addAssign(o.select(e.mode.equal(0),i,i.negate()).mul(n)),c.assign(o.mx_noise_float(o.vec3(d,u,m).mul(s).sub(e.seed))),c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),i.assign(e.colorB);p=r(i);i.assign(t(p.x,p.y,p.z.mul(c))),l.addAssign(o.select(e.mode.equal(0),i,i.negate()).mul(n)),c.assign(o.mx_noise_float(o.vec3(u,m,d.negate()).mul(s).add(e.seed))),c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),i.assign(e.colorC);p=r(i);return i.assign(t(p.x,p.y,p.z.mul(c))),l.addAssign(o.select(e.mode.equal(0),i,i.negate()).mul(n)),l}),lo),mo={$name:"Photosphere",scale:2,color:new e.Color(16776960),background:new e.Color(16711680),seed:0},uo=C((e=>{e=_(e,mo);var a=o.exp(e.scale.add(1)).toVar(),t=o.positionGeometry.toVar(),r=o.vec3(t).toVar();o.Loop(6,(()=>{r.assign(n(r,t.mul(a))),a.mulAssign(e.seed.mul(a).sin().mul(.05).add(1.1))}));var s=o.mx_noise_float(r).add(1).div(2);return o.mix(e.background,e.color,s)}),mo),co={$name:"Planet",scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new e.Color(1194585).convertLinearToSRGB(),colorShallow:new e.Color(8900331).convertLinearToSRGB(),colorBeach:new e.Color(16775885).convertLinearToSRGB(),colorGrass:new e.Color(3978097).convertLinearToSRGB(),colorForest:new e.Color(12288).convertLinearToSRGB(),colorSnow:new e.Color(15794175).convertLinearToSRGB(),seed:0},po=C((e=>{e=_(e,co);var a=o.float(0).toVar(),t=o.float(0).toVar(),r=o.exp(e.scale.sub(2)).toVar(),s=o.float(2).toVar();o.Loop(e.iterations.add(10),(()=>{a.addAssign(o.mul(s,o.mx_noise_float(o.positionGeometry.mul(r).add(e.seed)))),t.addAssign(s),r.mulAssign(1.5),s.mulAssign(.8)})),a.assign(o.mul(a,a,.5).div(t));var n=e.levelSea.pow(2).toVar(),l=e.levelMountain.pow(2).toVar(),i=o.mix(n,l,e.balanceSand).toVar(),m=o.mix(n,i,.4).toVar(),d=o.mix(n,i,.6).toVar(),u=o.vec3().toVar();return o.If(a.lessThan(n),(()=>{u.assign(o.mix(e.colorDeep,e.colorShallow,o.remap(a,0,n,0,1).pow(o.exp(e.balanceWater.mul(-8).add(4)))))})).ElseIf(a.lessThan(m),(()=>{u.assign(o.mix(e.colorShallow,e.colorBeach,o.remap(a,n,m)))})).ElseIf(a.lessThan(d),(()=>{u.assign(e.colorBeach)})).ElseIf(a.lessThan(i),(()=>{u.assign(o.mix(e.colorBeach,e.colorGrass,o.remap(a,d,i)))})).ElseIf(a.lessThan(l),(()=>{u.assign(o.mix(e.colorGrass,e.colorForest,o.remap(a,i,l).pow(.75)))})).Else((()=>{var t=o.mix(1,l,e.balanceSnow);u.assign(o.mix(e.colorForest,e.colorSnow,o.smoothstep(o.mix(t,l,e.balanceSnow.pow(.5)),t,a)))})),u}),co),vo={$name:"Polka dots",count:2,size:.5,blur:.25,color:new e.Color(0),background:new e.Color(16777215),flat:0},xo=(1+5**.5)/2,yo=C((e=>{e=_(e,vo);var a=o.float(1).toVar();o.If(e.flat.equal(1),(()=>{var t=e.count.pow(2).sub(.5).toVar(),r=o.positionGeometry.xy.mul(t).mul(o.mat2(1,1,-1,1)),s=r.round().toVar();a.assign(r.distance(s).div(t))})).Else((()=>{var t=o.pow(10,e.count).toVar(),r=o.positionGeometry.normalize().toVar(),n=o.oneMinus(r.y).mul(t).sub(1).div(2),l=o.max(10,t.pow(.5)),i=n.sub(l).floor().clamp(0,t),m=n.add(l).floor().clamp(0,t);a.assign(1).toVar(),o.Loop(m.sub(i),(({i:e})=>{var n=o.add(e,i),l=o.mod(o.mul(2*Math.PI/xo,n),2*Math.PI),m=o.acos(o.oneMinus(o.float(n).mul(2).add(1).div(t))),d=s(m,l);a.assign(o.min(a,o.distance(r,d)))}))}));var t=o.exp(e.size.mul(5).sub(5)).toVar(),r=e.blur.pow(4).toVar(),n=o.smoothstep(t.sub(r),t.add(r),a);return o.mix(e.color,e.background,n)}),vo),fo={$name:"Processed wood",$width:260,scale:2,length:4,strength:.3,angle:0,color:new e.Color(7348256),background:new e.Color(15782048),seed:0},go=C((e=>{e=_(e,fo);var a=o.radians(e.angle).toVar(),t=o.vec3(o.sub(o.positionGeometry.x.mul(o.cos(a)),o.positionGeometry.y.mul(o.sin(a))),o.add(o.positionGeometry.x.mul(o.sin(a)),o.positionGeometry.y.mul(o.cos(a))),o.positionGeometry.z).toVar(),r=e.scale.div(2).add(1).toVar(),s=t.mul(o.exp(r)).add(e.seed).toVar(),n=e.length.add(5).reciprocal().toVar(),l=o.mx_noise_float(s.mul(r,o.vec3(1,n,n)));return l=(l=l.mul(o.mx_noise_float(s.mul(o.vec3(25,1,1))).add(-1).mul(.2))).add(e.strength.sub(.5)).smoothstep(-.3,.3).oneMinus(),o.mix(e.color,e.background,l)}),fo),Vo={$name:"Protozoa",scale:1.5,fat:.7,amount:.4,color:new e.Color(10526880),subcolor:new e.Color(14739711),background:new e.Color(15792383),seed:0},bo=o.Fn((([e,a])=>o.mx_noise_float(e).mul(a).clamp(-3.14,3.14).cos().add(1).div(2))),wo=C((e=>{e=_(e,Vo);var a=o.positionGeometry.mul(o.exp(e.scale.sub(1))).add(e.seed).toVar(),t=o.vec3(o.matcapUV,o.matcapUV.length()).toVar(),r=o.float(0).toVar(),s=o.float(0).toVar(),n=o.float(0).toVar(),l=o.float(0).toVar(),i=e.fat.add(.2).oneMinus().mul(60).add(30).toVar(),m=o.float(2).toVar(),d=e.amount.div(2).add(.5).exp().toVar();return o.Loop(10,(()=>{r.assign(bo(a.xyz.add(t),i)),s.assign(bo(a.yzx.add(t),i)),n.addAssign(r.mul(s).mul(m)),l.addAssign(r.max(s).mul(m)),a.assign(o.mix(a.mul(d),0,.4)),m.mulAssign(.9)})),o.mix(e.background,o.mix(e.color,e.subcolor,l.mul(.1)),n)}),Vo),_o={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new e.Vector3(.4,-.6,0),center:new e.Vector3(0,0,0),selectorCenter:new e.Vector3(0,0,0),selectorAngles:new e.Vector2(0,0),selectorWidth:2},ho=o.Fn((([e,a])=>{var t=f(e,a.selectorAngles,a.selectorCenter,a.selectorWidth),r=v(a.angles.mul(t)),s=y(a.center),n=y(a.center.negate());return s.mul(r).mul(n).mul(o.vec4(e,1)).xyz})),Co=C((e=>(e=_(e,_o),ho(o.positionGeometry,e))),_o);Co.normal=C((e=>{e=_(e,_o);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=ho(a,e),l=ho(a.add(r),e),i=ho(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),_o);var zo={$name:"Rough clay",$normalNode:!0,scale:2,bump:.5,curvature:.2,seed:0},Go=o.Fn((([e,a,t,r])=>{var s=o.mx_worley_noise_float(e.add(o.mx_noise_float(e).mul(r))).add(.8).pow(5).toVar();return s.addAssign(s.pow(.5)),e.add(a.mul(s).mul(t))})),ko=C((e=>{var a=(e=_(e,zo)).bump.div(50).toVar(),t=o.positionGeometry.mul(o.exp(e.scale.div(2))).add(e.seed.sin().mul(10)).toVar(),r=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.001).toVar(),n=o.cross(r,s).normalize().mul(.001).toVar(),l=Go(t,r,a,e.curvature),i=Go(t.add(s),r,a,e.curvature),m=Go(t.add(n),r,a,e.curvature),d=o.sub(i,l),u=o.sub(m,l);return o.transformNormalToView(o.cross(d,u).normalize())}),zo),Mo={$name:"Runny eggs",scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new e.Color("orange"),colorWhite:new e.Color("white"),colorBackground:new e.Color("lightgray"),seed:0},Ao=C((e=>{e=_(e,Mo);var a=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),t=e.sizeYolk.oneMinus(),r=e.sizeWhite.oneMinus(),s=o.mx_worley_noise_float(a).toVar(),n=s.add(r).pow(8).oneMinus().clamp(-.5,1),l=s.add(t).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return o.mix(e.colorBackground,o.mix(e.colorWhite,e.colorYolk,l),n)}),Mo),Lo=o.Fn((([e,a,t,r,s])=>{var n=o.mx_worley_noise_float(e).toVar(),l=n.add(s).pow(8).oneMinus(),i=n.add(r).pow(18).oneMinus().clamp(0,1),m=o.mix(0,o.mix(0,1,i),l);return e.add(a.mul(m).mul(t))}));Ao.normal=C((e=>{e=_(e,Mo);var a=.05,t=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),r=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.001).toVar(),n=o.cross(r,s).normalize().mul(.001).toVar(),l=e.sizeYolk.oneMinus(),i=e.sizeWhite.oneMinus(),m=Lo(t,r,a,l,i),d=Lo(t.add(s),r,a,l,i),u=Lo(t.add(n),r,a,l,i),c=o.sub(d,m),p=o.sub(u,m);return o.transformNormalToView(o.cross(c,p).normalize())}),Mo),Ao.roughness=C((e=>{e=_(e,Mo);var a=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),t=e.sizeYolk.oneMinus();return o.mx_worley_noise_float(a).toVar().add(t).pow(18).clamp(0,1)}),Mo);var $o={$name:"rust",scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new e.Color(12615680),background:new e.Color(32),seed:0},Fo=o.Fn((e=>{var a=o.positionGeometry.mul(o.exp(e.scale.div(4).add(-1))).add(e.seed).toVar(),t=e.amount.mul(o.mx_noise_float(a.mul(e.amount.div(2).add(4))).add(4)).toVar(),r=o.mx_noise_float(a).toVar();return o.Loop(e.iterations,(()=>{a.mulAssign(2),r.addAssign(o.mx_noise_float(a))})),r.subAssign(o.mx_noise_float(a.mul(2)).abs()),r.assign(r.sub(t).clamp(0,15)),r})),Io=C((e=>{e=_(e,$o);var a=Fo(e).mul(1.25).pow(.5),t=o.positionGeometry.mul(o.exp(e.scale.add(e.noiseScale.mul(3),2)));return a.addAssign(e.noise.mul(o.mx_noise_float(t).abs().add(.1).pow(2))),o.mix(e.color,e.background,a)}),$o);Io.opacity=C((o=>(o=_(o,$o),Fo(o).mul(o.opacity.add(.2)).oneMinus())),$o);var Po={$name:"Satin",scale:2,color:new e.Color(7373055),background:new e.Color(80),seed:0},To=C((e=>{e=_(e,Po);var a=o.positionGeometry.toVar(),t=o.exp(e.scale.div(3)).toVar(),r=o.mx_noise_float(o.vec3(o.mx_noise_float(o.vec3(a.x.mul(2),a.y,a.z).mul(t)),o.mx_noise_float(o.vec3(a.x,a.y.mul(2),a.z).mul(t)),o.mx_noise_float(o.vec3(a.x,a.y,a.z.mul(2)).mul(t))).mul(t).add(e.seed));return r=o.pow(o.abs(r),3).mul(20),o.mix(e.background,e.color,r)}),Po);To.defaults={$name:"Satin",scale:2,color:new e.Color(7373055),background:new e.Color(80),seed:0};var So={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new e.Vector3(.01,.9,1.7),center:new e.Vector3(0,0,0),selectorCenter:new e.Vector3(0,0,0),selectorAngles:new e.Vector2(0,0),selectorWidth:2},Eo=o.Fn((([e,a])=>{var t=f(e,a.selectorAngles,a.selectorCenter,a.selectorWidth),r=x(o.mix(o.vec3(1,1,1),a.scales,t)),s=y(a.center),n=y(a.center.negate());return s.mul(r).mul(n).mul(o.vec4(e,1)).xyz})),Ro=C((e=>(e=_(e,So),Eo(o.positionGeometry,e))),So);Ro.normal=C((e=>{e=_(e,So);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=Eo(a,e),l=Eo(a.add(r),e),i=Eo(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),So);var Wo={$name:"Scepter head",xFactor:10,yFactor:22,zFactor:10,colorRim:new e.Color(16777215),colorA:new e.Color(7397631),colorB:new e.Color(3145983)},qo=C((e=>{e=_(e,Wo);var a=o.positionGeometry,s=a.x.mul(m(e.xFactor,0,100,1.35,30)).toVar(),n=a.y.mul(m(e.yFactor,0,100,1.35,30)).toVar(),l=a.z.mul(m(e.zFactor,0,100,1.35,30)).toVar(),i=o.cos(s).toVar(),d=o.cos(n).toVar(),u=o.cos(l).toVar(),c=o.mx_noise_float(o.vec3(a.x.div(i),a.y.div(d),a.z.div(u)));c=o.sign(c).mul(o.abs(c).pow(.75));var p=o.abs(o.mul(s,o.tan(s)).add(1).div(o.cos(s))),v=o.abs(o.mul(n,o.tan(n)).add(1).div(o.cos(n))),x=o.abs(o.mul(l,o.tan(l)).add(1).div(o.cos(l))),y=o.vec3().toVar(),f=o.abs(o.floor(s.mul(2/Math.PI).add(1).div(2))),g=o.abs(o.floor(n.mul(2/Math.PI).add(1).div(2))),V=o.abs(o.floor(l.mul(2/Math.PI).add(1).div(2))),b=o.mod(o.add(f,g,V),2);y.assign(r(o.mix(e.colorA,e.colorB,b)));var w=t(y.x,y.y,y.z.mul(c)).toVar();y.assign(r(e.colorRim));var h=t(y.x,y.y,o.mul(2,c,y.z)).toVar();return o.mix(w,h,o.remapClamp(o.max(p,o.max(v,x)),45,65))}),Wo),Bo={$name:"Scream",scale:2,variety:1,color:new e.Color(15790176),background:new e.Color(13668496),seed:0},No=C((e=>{e=_(e,Bo);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),s=o.mx_noise_float(o.add(o.sin(a.xyz),o.cos(a.yzx)));a.assign(o.positionGeometry.mul(o.exp(e.scale).mul(s)).add(e.seed));s=o.mx_noise_float(o.add(o.sin(a.xyz),o.cos(a.yzx)).mul(2));var n=o.mix(e.background,e.color,s).toVar(),l=r(n).toVar();return t(o.add(l.x,e.variety.mul(o.sin(s.mul(Math.PI))).mul(.5)),l.y,l.z)}),Bo);No.defaults={$name:"Scream",scale:2,variety:1,color:new e.Color(15790176),background:new e.Color(13668496),seed:0};var Do={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new e.Color(16777215),background:new e.Color(0),seed:0},Oo=C((e=>{e=_(e,Do);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed),t=o.clamp(0,1,o.mx_noise_float(a).mul(.5,o.exp(e.contrast)).add(.5,e.balance));return o.mix(e.background,e.color,t)}),Do);Oo.defaults={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new e.Color(16777215),background:new e.Color(0),seed:0};var Uo={$name:"Stars",scale:2,density:2,variation:0,color:new e.Color(16774640),background:new e.Color(96),seed:0},Yo=C((e=>{e=_(e,Uo);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(3))).add(e.seed).toVar(),s=o.abs(o.mx_noise_float(a)).pow(10).mul(10);s=s.mul(o.exp(e.density.sub(2)));var n=o.select(s.greaterThan(.1),e.variation.mul(o.mx_noise_float(a)),0),l=r(o.mix(e.background,e.color,s));return t(o.add(l.x,n),l.y,l.z)}),Uo),jo={$name:"Supersphere",$positionNode:!0,exponent:3},Ho=o.Fn((([e,a])=>{var t=o.float(2).pow(a.exponent),r=e.div(e.length()).toVar(),s=r.x.abs().pow(t).add(r.y.abs().pow(t)).add(r.z.abs().pow(t)).pow(o.float(1).div(t));return r.div(s)})),Zo=C((e=>(e=_(e,jo),Ho(o.positionGeometry,e))),jo);Zo.normal=C((e=>{e=_(e,jo);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=Ho(a,e),l=Ho(a.add(r),e),i=Ho(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),jo);var Xo={$name:"Tiger fur",scale:2,length:4,blur:.3,strength:.3,hairs:.5,color:new e.Color(16755200),bottomColor:new e.Color(16777198),seed:0},Ko=C((e=>{var a=(e=_(e,Xo)).scale.div(2).add(1).toVar(),t=o.positionGeometry.mul(o.exp(a)).add(e.seed).toVar(),r=e.length.add(5).reciprocal().toVar(),s=e.hairs.mul(.3).toVar(),n=o.mx_noise_float(t.mul(a,o.vec3(1,r,r)));n=(n=n.add(o.mx_noise_float(t.mul(o.vec3(25,1,1))).add(1).mul(s))).add(e.strength.sub(.5)).smoothstep(e.blur.negate(),e.blur).oneMinus();var l=o.positionGeometry.y.add(s.sub(.5)).smoothstep(-1,.5);return o.mix(e.bottomColor,e.color,l).mul(n)}),Xo);Ko.defaults={$name:"Tiger fur",scale:2,length:4,blur:.3,strength:.3,hairs:.5,color:new e.Color(16755200),bottomColor:new e.Color(16777198),seed:0};var Qo={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new e.Vector3(-.5,0,.2),selectorCenter:new e.Vector3(0,0,0),selectorAngles:new e.Vector2(0,0),selectorWidth:.7},Jo=o.Fn((([e,a])=>{var t=f(e,a.selectorAngles,a.selectorCenter,a.selectorWidth);return y(a.distance.mul(t)).mul(o.vec4(e,1)).xyz})),oe=C((e=>(e=_(e,Qo),Jo(o.positionGeometry,e))),Qo);oe.normal=C((e=>{e=_(e,Qo);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=Jo(a,e),l=Jo(a.add(r),e),i=Jo(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),Qo);var ee={$name:"Voronoi cells",scale:2,variation:0,facet:0,color:new e.Color(0),background:new e.Color(12636415),seed:0},ae=o.Fn((([e])=>e.add(o.mx_noise_float(e.mul(Math.PI))))),te=C((e=>{e=_(e,ee);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(.5))).add(e.seed).toVar(),t=a.round().toVar(),r=t.toVar(),s=o.float(1).toVar(),n=o.vec3().toVar(),l=o.float().toVar(),i=o.float(0).toVar();o.Loop(27,(()=>{var e=i.mod(3).sub(1),m=i.div(3).floor().mod(3).sub(1),d=i.div(9).floor().sub(1);n.assign(t.add(o.vec3(e,m,d))),l.assign(a.distance(ae(n)).add(o.mx_noise_float(a).div(5))),o.If(l.lessThan(s),(()=>{s.assign(l),r.assign(n)})),i.addAssign(1)}));var m=o.mx_noise_float(r.mul(Math.PI)).toVar(),d=o.mix(s,m.add(1).div(2),e.facet),u=o.mix(e.color,e.background,d).toVar(),c=o.vec3(m.mul(16.8),m.mul(31.4159),m.mul(27.1828)).sin().add(1).div(2);return o.mix(u,o.mix(u,c,e.variation),e.variation)}),ee),re={$name:"Water Drops",$normalNode:!0,scale:1.4,density:.5,bump:.6,seed:0},se=o.Fn((([e,a,t,r,s])=>{var n=o.mx_noise_float(e.add(s)).add(r).clamp(0,1);return n=o.cos(n.mul(Math.PI)).add(1).pow(.5).toVar(),e.add(n.mul(a,t))})),ne=C((e=>{e=_(e,re);var a=o.positionGeometry.mul(o.exp(e.scale.div(1).add(1))).toVar(),t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.001).toVar(),s=o.cross(t,r).normalize().mul(.001).toVar(),n=o.remap(e.density,0,1,1.5,.7).toVar(),l=o.vec3(o.sin(e.seed).mul(100),o.cos(e.seed.div(2)).mul(100),o.sin(e.seed.div(3)).mul(100)).toVar(),i=se(a,t,e.bump,n,l),m=se(a.add(r),t,e.bump,n,l),d=se(a.add(s),t,e.bump,n,l),u=o.sub(m,i),c=o.sub(d,i);return o.transformNormalToView(o.cross(u,c).normalize())}),re),le={$name:"Watermelon",scale:2,stripes:12,variation:.5,noise:.25,color:new e.Color("yellowgreen"),background:new e.Color("darkgreen"),flat:0,seed:0},ie=C((e=>{e=_(e,le);var a=o.select(e.flat,e.variation.mul(.85).add(.15),e.variation),t=o.positionGeometry.mul(o.exp(e.scale.div(4).add(2))).add(e.seed).toVar(),r=o.select(e.flat,o.screenUV,o.equirectUV(o.positionGeometry.normalize())).toVar(),s=r.x.mul(e.stripes.round(),o.select(e.flat,Math.PI,2*Math.PI)).add(o.mx_noise_float(t.mul(o.vec3(1,.3,1))).mul(2)).sin().add(.5).div(2).mul(r.y.remap(0,1,-Math.PI,Math.PI).cos().add(1.2).clamp(0,1)).add(a.mul(2,o.mx_noise_float(t.mul(1.5)).div(2))).add(a.mul(2,o.mx_noise_float(t.mul(4)).div(6))).toVar();return s.assign(s.mix(s.round(),.75).add(o.mx_noise_float(t.mul(2)).mul(e.noise,.5)).add(o.mx_noise_float(t.mul(3)).mul(e.noise,1)).add(o.mx_noise_float(t.mul(15)).mul(e.noise,.2)).clamp(0,1)),o.mix(e.background,e.color,s).toVar()}),le),me={$name:"Wood",scale:2.5,rings:4.5,length:1,angle:0,fibers:.3,fibersDensity:10,color:new e.Color(.8,.4,0),background:new e.Color(.4,.1,0),seed:0},de=C((e=>{e=_(e,me);var a=o.radians(e.angle).toVar(),t=o.vec3(o.sub(o.positionGeometry.x.mul(o.cos(a)),o.positionGeometry.y.mul(o.sin(a))),o.add(o.positionGeometry.x.mul(o.sin(a)),o.positionGeometry.y.mul(o.cos(a))),o.positionGeometry.z).toVar(),r=t.mul(o.exp(e.scale.sub(3)).mul(o.vec3(o.reciprocal(e.length),4,o.reciprocal(e.length)))).add(e.seed).toVar(),s=o.mx_noise_float(r).add(1).mul(10).mul(e.rings);s=s.add(s.cos()).cos().add(1).div(2);var n=o.float(0).toVar(),l=o.float(0).toVar(),i=o.exp(e.scale.sub(2)).mul(o.vec3(1,e.fibersDensity,1)).toVar(),m=o.float(2).toVar();return o.Loop(10,(()=>{n.addAssign(o.mul(m,o.mx_noise_float(t.mul(i).add(e.seed)))),l.addAssign(m),i.mulAssign(1.8),m.mulAssign(.6)})),n.assign(o.mul(n,5).div(l).mul(10).sin().add(1).div(2)),o.mix(e.color,e.background,o.mix(s,n,e.fibers))}),me),ue={$name:"Zebra lines",scale:2,thinness:.5,phi:0,theta:0,color:new e.Color(0),background:new e.Color(16777215),flat:0},ce=C((e=>{e=_(e,ue);var a=o.select(e.flat,o.positionGeometry,o.positionGeometry.normalize()).toVar(),t=o.select(e.flat,o.vec2(o.cos(e.phi),o.sin(e.phi)),s(e.phi,e.theta)).toVar(),r=o.select(e.flat,o.clamp(t.dot(a),-2,2),o.acos(o.clamp(t.dot(a),-1,1))).toVar(),n=o.exp(e.scale.add(1)).toVar(),l=o.sin(r.mul(n)).sub(e.thinness.sub(.5).mul(2));return l=o.clamp(l.mul(1e3).div(n),-1,1).mul(.5).add(.5),o.mix(e.background,e.color,l)}),ue);Object.defineProperty(exports,"noise",{enumerable:!0,get:function(){return o.mx_noise_float}}),exports.TSLFn=C,exports.applyEuler=n,exports.camouflage=G,exports.caveArt=M,exports.circles=L,exports.clouds=I,exports.concrete=S,exports.cork=W,exports.dalmatianSpots=B,exports.dynamic=function(a){var t={};for(var[r,s]of Object.entries(a))"$"!=r[0]&&(s instanceof e.Vector3?t[r]=o.uniform(s,"vec3"):t[r]=o.uniform(s));return t},exports.dysonSphere=Y,exports.entangled=H,exports.fordite=X,exports.gasGiant=Q,exports.grid=oo,exports.hideFallbackWarning=function(){b&&(w>0?w--:(b.style.display="none",b=null))},exports.hsl=t,exports.isolines=ao,exports.karstRock=ro,exports.marble=no,exports.matRotX=u,exports.matRotY=c,exports.matRotYXZ=v,exports.matRotZ=p,exports.matScale=x,exports.matTrans=y,exports.neonLights=io,exports.noised=h,exports.normalVector=V,exports.overlayPlanar=g,exports.photosphere=uo,exports.planet=po,exports.polkaDots=yo,exports.prepare=_,exports.processedWood=go,exports.protozoa=wo,exports.remapExp=m,exports.rotator=Co,exports.roughClay=ko,exports.runnyEggs=Ao,exports.rust=Io,exports.satin=To,exports.scaler=Ro,exports.scepterHead=qo,exports.scream=No,exports.selectPlanar=f,exports.showFallbackWarning=async function(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(b=document.createElement("div")).innerHTML='\n\t<div style="font-size:1.25em; font-weight:bold;">PLEASE, WAIT</div>\n\t<div style="font-size:0.85em; font-weight:100;" >NO WEBGPU &mdash; TRYING WEBGL2</div>\n\t<div id="counter"></div>\n\t',b.style.left="calc(50% - 8em)",b.style.width="16em",b.style.fontFamily="Bahnschrifts, Arial",b.style.position="absolute",b.style.bottom="20px",b.style.padding="12px 6px",b.style.border="1px solid white",b.style.borderRadius="4px",b.style.background="rgba(0,0,0,0.5)",b.style.color="white",b.style.textAlign="center",b.style.opacity="0.8",b.style.outline="none",b.style.zIndex="999",document.body.appendChild(b)},exports.simplexNoise=Oo,exports.spherical=s,exports.stars=Yo,exports.supersphere=Zo,exports.tigerFur=Ko,exports.toHsl=r,exports.translator=oe,exports.vnoise=d,exports.voronoiCells=te,exports.waterDrops=ne,exports.watermelon=ie,exports.wood=de,exports.zebraLines=ce;
1
+ /*! TSL Textures v2.2.0 */
2
+ "use strict";var o=require("three/tsl"),e=require("three");const a=o.Fn((([e,a,t,r])=>{var s=r.add(e.mul(12)).mod(12),n=a.mul(o.min(t,o.sub(1,t)));return t.sub(n.mul(o.max(-1,o.min(o.min(s.sub(3),o.sub(9,s)),1))))}));a.setLayout({name:"hslHelper",type:"float",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"},{name:"n",type:"float"}]});const t=o.Fn((([e,t,r])=>{e=e.fract().add(1).fract(),t=t.clamp(0,1),r=r.clamp(0,1);var s=a(e,t,r,0),n=a(e,t,r,8),l=a(e,t,r,4);return o.vec3(s,n,l)}));t.setLayout({name:"hsl",type:"vec3",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"}]});const r=o.Fn((([e])=>{var a=o.float(e.x).toVar(),t=o.float(e.y).toVar(),r=o.float(e.z).toVar(),s=o.max(a,o.max(t,r)).toVar(),n=o.min(a,o.min(t,r)).toVar(),l=o.float(0).toVar(),i=o.float(0).toVar(),m=o.add(s,n).div(2);return o.If(n.notEqual(s),(()=>{const e=o.sub(s,n).toVar();i.assign(o.select(m.lessThanEqual(.5),e.div(o.add(n,s)),e.div(o.sub(2,o.add(n,s))))),o.If(s.equal(a),(()=>{l.assign(o.sub(t,r).div(e).add(o.select(t.lessThanEqual(r),6,0)))})).ElseIf(s.equal(t),(()=>{l.assign(o.sub(r,a).div(e).add(2))})).Else((()=>{l.assign(o.sub(a,t).div(e).add(4))})),l.divAssign(6)})),o.vec3(l,i,m)}));r.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const s=o.Fn((([e,a])=>o.vec3(o.sin(a).mul(o.sin(e)),o.cos(e),o.cos(a).mul(o.sin(e)))));s.setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]});const n=o.Fn((([o,e])=>{var a=l(e);return i(o,a)}));n.setLayout({name:"applyEuler",type:"vec4",inputs:[{name:"vec",type:"vec3"},{name:"eu",type:"vec3"}]});const l=o.Fn((([e])=>{var a=o.cos(e.x.div(2)),t=o.cos(e.y.div(2)),r=o.cos(e.z.div(2)),s=o.sin(e.x.div(2)),n=o.sin(e.y.div(2)),l=o.sin(e.z.div(2));return o.vec4(o.add(o.mul(s,t,r),o.mul(a,n,l)),o.sub(o.mul(a,n,r),o.mul(s,t,l)),o.add(o.mul(a,t,l),o.mul(s,n,r)),o.sub(o.mul(a,t,r),o.mul(s,n,l)))}));l.setLayout({name:"quaternionFromEuler",type:"vec4",inputs:[{name:"eu",type:"vec3"}]});const i=o.Fn((([e,a])=>{var t=o.cross(a.xyz,e).mul(2).toVar();return o.add(e,t.mul(a.w),o.cross(a.xyz,t))}));i.setLayout({name:"applyQuaternion",type:"vec3",inputs:[{name:"vec",type:"vec3"},{name:"quat",type:"vec4"}]});const m=o.Fn((([e,a,t,r,s])=>(e=o.remap(e,a,t,0,1),e=o.pow(2,o.mul(e,o.log2(s.div(r))).add(o.log2(r))))));m.setLayout({name:"remapExp",type:"float",inputs:[{name:"x",type:"float"},{name:"fromMin",type:"float"},{name:"fromMax",type:"float"},{name:"toMin",type:"float"},{name:"toMax",type:"float"}]});const d=o.Fn((([e])=>e.dot(o.vec3(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1)));d.setLayout({name:"vnoise",type:"float",inputs:[{name:"v",type:"vec3"}]});const u=o.Fn((([e])=>{var a=e.cos().toVar(),t=e.sin().toVar();return o.mat4(1,0,0,0,0,a,t,0,0,t.negate(),a,0,0,0,0,1)}));u.setLayout({name:"matRotX",type:"mat4",inputs:[{name:"angle",type:"float"}]});const c=o.Fn((([e])=>{var a=e.cos().toVar(),t=e.sin().toVar();return o.mat4(a,0,t.negate(),0,0,1,0,0,t,0,a,0,0,0,0,1)}));c.setLayout({name:"matRotY",type:"mat4",inputs:[{name:"angle",type:"float"}]});const p=o.Fn((([e])=>{var a=e.cos().toVar(),t=e.sin().toVar();return o.mat4(a,t,0,0,t.negate(),a,0,0,0,0,1,0,0,0,0,1)}));p.setLayout({name:"matRotZ",type:"mat4",inputs:[{name:"angle",type:"float"}]});const x=o.Fn((([o])=>{var e=u(o.x),a=c(o.y),t=p(o.z);return a.mul(e).mul(t)}));x.setLayout({name:"matRotYXZ",type:"mat4",inputs:[{name:"angles",type:"vec3"}]});const v=o.Fn((([e])=>o.mat4(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)));v.setLayout({name:"matScale",type:"mat4",inputs:[{name:"scales",type:"vec3"}]});const y=o.Fn((([e])=>o.mat4(1,0,0,0,0,1,0,0,0,0,1,0,e.x,e.y,e.z,1)));y.setLayout({name:"matTrans",type:"mat4",inputs:[{name:"vector",type:"vec3"}]});const f=o.Fn((([e,a,t,r])=>{var n=s(a.x,a.y).mul(r).toVar(),l=t.sub(n.div(2)).sub(e).dot(n).div(n.dot(n)).negate();return o.smoothstep(0,1,l)}));f.setLayout({name:"selectPlanar",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"selAngles",type:"vec2"},{name:"selCenter",type:"vec3"},{name:"selWidth",type:"float"}]});const g=o.Fn((e=>{var a=f(o.positionGeometry,e.selectorAngles,e.selectorCenter,e.selectorWidth).sub(.5).mul(2).abs().oneMinus().pow(.25).negate().mul(e.selectorShow);return o.vec3(0,a,a)})),V=o.Fn((([e])=>{var a=o.dFdx(e),t=o.dFdy(e);return o.transformNormalToView(o.cross(a,t).normalize())}));V.setLayout({name:"normalVector",type:"vec3",inputs:[{name:"pos",type:"vec3"}]});var b=null,w=10;function _(a,t){var r=[];for(var s of a)if(s&&"object"==typeof s){r=Object.keys(s);break}var n={...t};for(var l of r)void 0!==a[l]&&(n[l]=a[l]);for(var i of Object.keys(n))"number"==typeof n[i]?n[i]=o.float(n[i]):n[i]instanceof e.Color?n[i]=o.vec3(n[i].r,n[i].g,n[i].b):n[i]instanceof e.Vector3&&(n[i]=o.vec3(n[i].x,n[i].y,n[i].z));return n}function h(e,a=1,t=1,r=0){return o.mx_noise_float(e.mul(a,t).add(r))}function C(e,a,t=null){const r=o.Fn(e,t),s=new Map;s.set("defaults",a),s.set("opacity",null),s.set("roughness",null),s.set("normal",null);const n=function(){};return Object.setPrototypeOf(n,Object.getPrototypeOf(r.call)),new Proxy(n,{get:(o,e,a)=>"defaults"===e?s.get("defaults"):"opacity"===e?s.get("opacity"):"roughness"===e?s.get("roughness"):"normal"===e?s.get("normal"):"fn"===e?r:Reflect.get(r,e,a),set:(o,e,a,t)=>"defaults"===e?(s.set("defaults",a),!0):"opacity"===e?(s.set("opacity",a),!0):"roughness"===e?(s.set("roughness",a),!0):"normal"===e?(s.set("normal",a),!0):Reflect.set(r,e,a,t),apply:(o,e,a)=>Reflect.apply(r,e,a),getOwnPropertyDescriptor:(o,e)=>"defaults"===e?{value:s.get("defaults"),writable:!0,enumerable:!0,configurable:!0}:("opacity"===e&&Reflect.getOwnPropertyDescriptor(null,e),"roughness"===e&&Reflect.getOwnPropertyDescriptor(null,e),"normal"===e&&Reflect.getOwnPropertyDescriptor(null,e),Reflect.getOwnPropertyDescriptor(r,e))})}var z={$name:"Camouflage",scale:2,colorA:new e.Color(12762792),colorB:new e.Color(10258782),colorC:new e.Color(9610101),colorD:new e.Color(7435617),seed:0},G=C((e=>{e=_(e,z);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.vec3(0,0,0).toVar();return o.If(o.round(o.mx_noise_float(a,1,.2)).greaterThanEqual(1),(()=>{t.assign(e.colorA)})).ElseIf(o.round(o.mx_noise_float(a.yzx,1,.3)).greaterThanEqual(1),(()=>{t.assign(e.colorB)})).ElseIf(o.round(o.mx_noise_float(a.zxy,1,.4)).greaterThanEqual(1),(()=>{t.assign(e.colorC)})).Else((()=>{t.assign(e.colorD)})),t}),z),k={$name:"Cave art",scale:2,thinness:2,noise:.3,color:new e.Color(13845829),background:new e.Color(16775408),seed:0},M=C((e=>{e=_(e,k);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.mx_noise_float(a,4).sin().toVar(),r=o.mx_noise_float(a.mul(1.5),4).cos().toVar(),s=o.exp(o.sub(o.float(3),e.thinness)),n=o.sub(s,o.pow2(o.abs(o.add(t,r))).mul(20)).toVar();return o.If(o.or(t.greaterThan(r),n.lessThan(0)),(()=>{n.assign(0)})),o.If(n.lessThanEqual(0),(()=>{n.assign(e.noise.mul(o.pow2(o.mx_noise_float(a.mul(30)))))})),o.mix(e.background,e.color,n)}),k),A={$name:"Circles",scale:2,variety:1,color:new e.Color(15786192),flat:0,seed:0},L=C((e=>{e=_(e,A);for(var a=o.select(e.flat,o.positionGeometry,o.positionGeometry.normalize()),s=o.acos(o.clamp(a.y,-1,1)).mul(20),n=o.exp(e.scale.sub(1)),l=s.div(3e3).mul(n),i=o.float(e.seed.sin().mul(100)).toVar(),m=0;m<=10;m++)i.addAssign(o.sin(l.mul(2**m).sub(Math.PI*m/2)).mul(-m*(m+1)/2));i.assign(i.div(200).clamp(-2,2));var d=r(e.color),u=d.x.add(i.mul(e.variety)).mod(1).mul(10),c=u.floor(),p=u.sub(c);return p=o.select(p.lessThan(.5),p.pow(1.5),p.pow(1/1.5)),t(c.add(p).div(10),d.y,d.z)}),A),$={$name:"Clouds",scale:2,density:.5,opacity:1,color:new e.Color(16777215),subcolor:new e.Color(10526896),seed:0},F=o.Fn((e=>{const a=o.positionGeometry,t=o.exp(e.scale.div(1.5).sub(.5)),r=o.add(h(a,t,1,e.seed),h(a,t,2,e.seed).mul(.8),h(a,t,6,e.seed).mul(.1),h(a,t,8,e.seed).mul(.07,e.opacity),e.density.remap(0,1,-.5,1.5)),s=o.clamp(0,1,o.mul(r,2).pow(1.5).sub(1).mul(e.opacity));return o.vec4(o.mix(e.subcolor,e.color,r.clamp(0,1)),s)})),I=C((o=>(o=_(o,$),F(o).rgb)),$);I.opacity=C((o=>(o=_(o,$),F(o).a)),$);var P={$name:"Concrete",$normalNode:!0,scale:2,density:.5,bump:.5,seed:0},T=o.Fn((([e,a,t,r,s])=>{var n=o.mx_noise_float(e.add(s)).mul(.5).add(.5);return n=t.mul(o.pow(o.abs(n),r)),e.add(n.mul(a))})),S=C((e=>{e=_(e,P);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(2))).toVar(),t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.001).toVar(),s=o.cross(t,r).normalize().mul(.001).toVar(),n=o.remap(e.density,0,1,10,.5).toVar(),l=o.vec3(o.sin(e.seed).mul(100),o.cos(e.seed.div(2)).mul(100),o.sin(e.seed.div(3)).mul(100)).toVar(),i=T(a,t,e.bump,n,l),m=T(a.add(r),t,e.bump,n,l),d=T(a.add(s),t,e.bump,n,l),u=o.sub(m,i),c=o.sub(d,i);return o.transformNormalToView(o.cross(u,c).normalize())}),P),E={$name:"Cork",scale:1,straight:1,noise:.3,color:new e.Color(16773312),background:new e.Color(13664352),seed:0},R=o.Fn((([o])=>o.add(d(o)))),W=C((e=>{e=_(e,E);var a=o.positionGeometry.mul(o.exp(e.scale.div(1.5).add(1))).add(e.seed).toVar(),t=a.round().toVar(),r=t.toVar(),s=o.float(1).toVar(),n=o.vec3().toVar(),l=o.float().toVar(),i=o.float(0).toVar();o.Loop(27,(()=>{var m=i.mod(3).sub(1),d=i.div(3).floor().mod(3).sub(1),u=i.div(9).floor().sub(1);n.assign(t.add(o.vec3(m,d,u))),l.assign(a.distance(R(n))),l.addAssign(o.mx_noise_float(a.add(n)).div(e.straight.exp())),o.If(l.lessThan(s),(()=>{s.assign(l),r.assign(n)})),i.addAssign(1)}));var m=o.mx_noise_float(r.mul(Math.PI)).toVar(),d=o.mx_noise_float(a.mul(12)).toVar();d.assign(d.sign().mul(d.abs().pow3())),d.addAssign(o.mx_noise_float(a.mul(40)).div(3));var u=m.add(1).div(2);return o.mix(e.color,e.background,u.add(d.mul(e.noise))).toVar()}),E),q={$name:"Dalmatian spots",$width:260,scale:2,density:.6,color:new e.Color(16777215),background:new e.Color(0),seed:0},B=C((e=>{e=_(e,q);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).sub(1e3).toVar(),t=o.float(1).toVar(),r=o.float(1.5).sub(e.density).mul(2).toVar(),s=e.density.mul(5).add(5).toVar();return o.Loop(s,(()=>{t.mulAssign(o.mx_noise_float(a).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01)),t.mulAssign(o.mx_noise_float(a.yzx).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01)),t.mulAssign(o.mx_noise_float(a.zxy).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01))})),o.mix(e.background,e.color,t.clamp(0,1))}),q),N={$name:"Darth Maul",scale:2,shift:new e.Vector3(0,0,0),complexity:0,angle:60,distance:1.9,color:new e.Color(13639712),background:new e.Color(0),balance:0,seed:0},D=C((e=>{e=_(e,N);var a=o.positionGeometry.add(e.shift).mul(o.exp(e.scale.div(1.5).sub(1))).sub(e.shift).mul(o.vec3(1,.5,.5)).toVar(),t=o.select(o.positionGeometry.y.mul(e.angle.radians().cos()).add(o.positionGeometry.z.mul(e.angle.radians().sin())).greaterThan(e.distance),1,0);a.x.assign(a.x.add(e.shift.x).abs()),a.y.addAssign(e.seed),a.z.mulAssign(e.shift.z);var r=o.mx_noise_float(a).toVar(),s=r.sin().mul(r.mul(e.complexity.mul(2).add(1).exp()).sin()).remap(0,.2,1,-1).greaterThan(e.balance).select(0,1),n=o.select(a.x.greaterThan(o.mx_noise_float(a.mul(2.3)).abs().mul(.5).add(.02)),1,0),l=o.positionGeometry.normalize(),i=o.atan(l.z,l.x).add(Math.PI).mul(4/Math.PI).round().div(4/Math.PI);return o.vec3(i.cos(),.3,i.sin()),o.mix(e.background,e.color,s.mul(t).mul(n).clamp(0,1))}),N),O={$name:"Dyson sphere",scale:2,complexity:2,variation:0,color:new e.Color(12636415),background:new e.Color(0),seed:0},U=o.Fn((([e])=>{var a=e.mul(5**.5).fract().toVar();return a.addAssign(a.dot(a.add(o.vec3(31.4159,27.1828,14.142)))),a.z.mul(a.x.add(a.y)).fract().mul(2).sub(1)})),Y=o.Fn((([e])=>{var a=e.oneMinus().clamp(0,1).toVar();return a.mul(a).mul(o.float(3).sub(a.mul(2)))})),j=o.Fn((([e])=>{var a=e.x.floor().toVar(),t=a.add(1).toVar(),r=e.y.floor().toVar(),s=r.add(1).toVar(),n=e.z.floor().toVar(),l=n.add(1).toVar(),i=Y(e.x.fract()).toVar(),m=Y(e.y.fract()).toVar(),d=Y(e.z.fract()).toVar(),u=Y(i.oneMinus()).toVar(),c=Y(m.oneMinus()).toVar(),p=Y(d.oneMinus()).toVar(),x=U(o.vec3(a,r,n)).mul(u).mul(c).mul(p).toVar(),v=U(o.vec3(a,r,l)).mul(u).mul(c).mul(d).toVar(),y=U(o.vec3(a,s,n)).mul(u).mul(m).mul(p).toVar(),f=U(o.vec3(a,s,l)).mul(u).mul(m).mul(d).toVar(),g=U(o.vec3(t,r,n)).mul(i).mul(c).mul(p).toVar(),V=U(o.vec3(t,r,l)).mul(i).mul(c).mul(d).toVar(),b=U(o.vec3(t,s,n)).mul(i).mul(m).mul(p).toVar(),w=U(o.vec3(t,s,l)).mul(i).mul(m).mul(d).toVar();return x.add(v).add(y).add(f).add(g).add(V).add(b).add(w)})),H=C((e=>{e=_(e,O);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(.5))).add(e.seed).toVar(),t=o.vec3().toVar(),r=o.float(1).toVar();return o.Loop(e.complexity.add(4),(()=>{t.addAssign(j(a.mul(r))),r.addAssign(r)})),o.mix(e.background,e.color,t.x.add(1).div(5))}),O),Z={$name:"Entangled",scale:2,density:10,color:new e.Color(8256),background:new e.Color(16777215),seed:0},X=C((e=>{e=_(e,Z);var a=o.exp(e.scale.div(2)).toVar(),t=o.positionGeometry.add(e.seed).toVar(),r=o.float(-1e4).toVar(),s=o.float(0).toVar();return o.Loop(o.floor(o.float(e.density)),(()=>{s.assign(o.sin(o.mx_noise_float(o.mul(t,a)).mul(3*Math.PI))),r.assign(o.max(r,s)),a.mulAssign(1.2)})),r.assign(o.oneMinus(o.pow(o.abs(r),5)).mul(6)),o.mix(e.color,e.background,r)}),Z),K={$name:"Fordite",scale:2,color:new e.Color(0,0,0),seed:0},Q=C((e=>{e=_(e,K);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),r=o.mx_noise_float(o.vec3(o.mx_noise_float(a),o.mx_noise_float(a).mul(2),o.mx_noise_float(a).mul(3))).toVar();return t(r,1,o.sin(o.mul(r,Math.PI,4)).mul(.5).add(.5)).add(e.color)}),K),J={$name:"Gas giant",scale:2,turbulence:.3,blur:.6,colorA:new e.Color(16775408),colorB:new e.Color(15788208),colorC:new e.Color(11509968),seed:0},oo=C((e=>{var a=(e=_(e,J)).scale.div(2).add(1).toVar(),s=o.positionGeometry.mul(o.exp(a)).add(e.seed).toVar(),n=e.turbulence.mul(o.mx_noise_float(o.vec3(0,s.y.mul(.5),0).add(1)).add(o.mx_noise_float(o.vec3(0,s.y.mul(1),0).add(1)).mul(.5),o.mx_noise_float(o.vec3(1,s.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),l=o.mx_noise_float(s.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);s.addAssign(o.vec3(o.mx_noise_float(s),o.mx_noise_float(s.yxz),o.mx_noise_float(s.yzx)).mul(n.mul(l.mul(2).exp())));var i=e.blur.pow(.2).oneMinus().mul(n.add(1)).toVar(),m=o.mx_noise_float(s.mul(o.vec3(0,a,0)));m=(m=m.add(o.mx_noise_float(s.mul(o.vec3(1,15,1))).mul(i))).add(-.5).smoothstep(-1,1).oneMinus();var d=o.mx_noise_float(o.vec3(0,s.y.mul(.75),0)).add(1),u=r(o.mix(e.colorB,e.colorA,d)),c=t(u.x.add(o.mx_noise_float(s.mul(o.vec3(0,a,0))).div(4)),u.y,u.z).toVar();return c.assign(o.mix(c,e.colorC,n.mul(.3))),c.mul(m)}),J),eo={$name:"Grid",countU:32,countV:16,thinness:.8,color:new e.Color(0),background:new e.Color(16777215),flat:0},ao=C((e=>{e=_(e,eo);var a=o.select(e.flat,o.screenSize.x.div(o.screenSize.y),2),t=o.select(e.flat,o.screenUV,o.equirectUV(o.positionGeometry.normalize())).toVar(),r=o.mul(t.x,a,Math.PI),s=o.mul(t.y,Math.PI).toVar(),n=o.div(o.round(o.mul(t.x,e.countU)),e.countU),l=o.div(o.round(o.mul(t.y,e.countV)),e.countV),i=o.mul(n,a,Math.PI),m=o.mul(l,Math.PI),d=o.abs(o.sub(r,i)).mul(o.select(e.flat,1,o.sin(s))),u=o.abs(o.sub(s,m)),c=o.min(d,u),p=o.mul(o.min(o.div(a.mul(Math.PI),e.countU),o.div(Math.PI,e.countV)),o.remapClamp(o.pow(e.thinness,.5),0,1,.9,.04),.5),x=o.oneMinus(o.smoothstep(o.sub(p,.002),o.add(p,.002),c));return o.mix(e.background,e.color,x)}),eo),to={$name:"Isolines",scale:2,density:40,blur:.3,thinness:.6,color:new e.Color(16777215),background:new e.Color(0),seed:0},ro=C((e=>{e=_(e,to);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.mx_noise_float(a).mul(e.density);return t=o.oneMinus(o.sin(t)).div(2),t=o.smoothstep(o.sub(e.thinness,e.blur),o.add(e.thinness,e.blur),t),o.mix(e.color,e.background,t)}),to),so={$name:"Karst rock",scale:2,color:new e.Color(16774384),background:new e.Color(13684944),seed:0},no=C((e=>{e=_(e,so);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed.sin().mul(5)).toVar(),t=a.add(o.mx_noise_float(a.mul(2))).toVar(),r=o.mx_noise_float(t).div(o.mx_noise_float(t.mul(1.01))).clamp(0,2).toVar();return r.addAssign(o.mx_noise_float(a.mul(100)).div(3)),r.addAssign(o.mx_noise_float(a.mul(2)).div(2)),o.mix(e.background,e.color,r).mul(r.pow(.1))}),so),lo={$name:"Marble",scale:1.2,thinness:5,noise:.3,color:new e.Color(4539859),background:new e.Color(15792383),seed:0},io=C((e=>{e=_(e,lo);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.add(o.mx_noise_float(a),o.mx_noise_float(a.mul(2)).mul(.5),o.mx_noise_float(a.mul(6)).mul(.1)),r=(t=o.oneMinus(t.abs().pow(2.5)).toVar(),o.oneMinus(o.pow(.5,e.thinness.add(7))).toVar()),s=o.oneMinus(o.pow(.5,e.thinness.add(7).mul(.5))).toVar();return o.If(t.greaterThan(r),(()=>{t.assign(1)})).ElseIf(t.lessThan(s),(()=>{t.assign(0)})).Else((()=>{var e=t.sub(s),n=r.sub(s);t.assign(o.pow(o.div(e,n),5).mul(.75)),t.assign(t.mul(o.add(.5,o.mx_noise_float(a.mul(2)).mul(1.5))))})),t.assign(t.add(o.mul(e.noise,o.mx_noise_float(a.mul(150)).abs().pow3()))),o.mix(e.background,e.color,t)}),lo),mo={$name:"Neon Lights",scale:1.5,thinness:.8,mode:0,colorA:new e.Color(16711680),colorB:new e.Color(65280),colorC:new e.Color(255),background:new e.Color(0),seed:0},uo=C((e=>{e=_(e,mo);var a=o.positionGeometry,s=o.exp(e.scale.remap(0,4,2,-2)).toVar(),n=o.exp(e.thinness.remap(0,1,1.5,0)).toVar(),l=e.background.toVar(),i=o.vec3(0).toVar(),m=o.mx_noise_float(a.xyz).toVar(),d=o.mx_noise_float(a.yzx).toVar(),u=o.mx_noise_float(a.zxy).toVar(),c=o.mx_noise_float(o.vec3(m,d,u).mul(s).add(e.seed)).toVar();c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),i.assign(e.colorA);var p=r(i);i.assign(t(p.x,p.y,p.z.mul(c))),l.addAssign(o.select(e.mode.equal(0),i,i.negate()).mul(n)),c.assign(o.mx_noise_float(o.vec3(d,u,m).mul(s).sub(e.seed))),c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),i.assign(e.colorB);p=r(i);i.assign(t(p.x,p.y,p.z.mul(c))),l.addAssign(o.select(e.mode.equal(0),i,i.negate()).mul(n)),c.assign(o.mx_noise_float(o.vec3(u,m,d.negate()).mul(s).add(e.seed))),c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),i.assign(e.colorC);p=r(i);return i.assign(t(p.x,p.y,p.z.mul(c))),l.addAssign(o.select(e.mode.equal(0),i,i.negate()).mul(n)),l}),mo),co={$name:"Photosphere",scale:2,color:new e.Color(16776960),background:new e.Color(16711680),seed:0},po=C((e=>{e=_(e,co);var a=o.exp(e.scale.add(1)).toVar(),t=o.positionGeometry.toVar(),r=o.vec3(t).toVar();o.Loop(6,(()=>{r.assign(n(r,t.mul(a))),a.mulAssign(e.seed.mul(a).sin().mul(.05).add(1.1))}));var s=o.mx_noise_float(r).add(1).div(2);return o.mix(e.background,e.color,s)}),co),xo={$name:"Planet",scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new e.Color(1194585).convertLinearToSRGB(),colorShallow:new e.Color(8900331).convertLinearToSRGB(),colorBeach:new e.Color(16775885).convertLinearToSRGB(),colorGrass:new e.Color(3978097).convertLinearToSRGB(),colorForest:new e.Color(12288).convertLinearToSRGB(),colorSnow:new e.Color(15794175).convertLinearToSRGB(),seed:0},vo=C((e=>{e=_(e,xo);var a=o.float(0).toVar(),t=o.float(0).toVar(),r=o.exp(e.scale.sub(2)).toVar(),s=o.float(2).toVar();o.Loop(e.iterations.add(10),(()=>{a.addAssign(o.mul(s,o.mx_noise_float(o.positionGeometry.mul(r).add(e.seed)))),t.addAssign(s),r.mulAssign(1.5),s.mulAssign(.8)})),a.assign(o.mul(a,a,.5).div(t));var n=e.levelSea.pow(2).toVar(),l=e.levelMountain.pow(2).toVar(),i=o.mix(n,l,e.balanceSand).toVar(),m=o.mix(n,i,.4).toVar(),d=o.mix(n,i,.6).toVar(),u=o.vec3().toVar();return o.If(a.lessThan(n),(()=>{u.assign(o.mix(e.colorDeep,e.colorShallow,o.remap(a,0,n,0,1).pow(o.exp(e.balanceWater.mul(-8).add(4)))))})).ElseIf(a.lessThan(m),(()=>{u.assign(o.mix(e.colorShallow,e.colorBeach,o.remap(a,n,m)))})).ElseIf(a.lessThan(d),(()=>{u.assign(e.colorBeach)})).ElseIf(a.lessThan(i),(()=>{u.assign(o.mix(e.colorBeach,e.colorGrass,o.remap(a,d,i)))})).ElseIf(a.lessThan(l),(()=>{u.assign(o.mix(e.colorGrass,e.colorForest,o.remap(a,i,l).pow(.75)))})).Else((()=>{var t=o.mix(1,l,e.balanceSnow);u.assign(o.mix(e.colorForest,e.colorSnow,o.smoothstep(o.mix(t,l,e.balanceSnow.pow(.5)),t,a)))})),u}),xo),yo={$name:"Polka dots",count:2,size:.5,blur:.25,color:new e.Color(0),background:new e.Color(16777215),flat:0},fo=(1+5**.5)/2,go=C((e=>{e=_(e,yo);var a=o.float(1).toVar();o.If(e.flat.equal(1),(()=>{var t=e.count.pow(2).sub(.5).toVar(),r=o.positionGeometry.xy.mul(t).mul(o.mat2(1,1,-1,1)),s=r.round().toVar();a.assign(r.distance(s).div(t))})).Else((()=>{var t=o.pow(10,e.count).toVar(),r=o.positionGeometry.normalize().toVar(),n=o.oneMinus(r.y).mul(t).sub(1).div(2),l=o.max(10,t.pow(.5)),i=n.sub(l).floor().clamp(0,t),m=n.add(l).floor().clamp(0,t);a.assign(1).toVar(),o.Loop(m.sub(i),(({i:e})=>{var n=o.add(e,i),l=o.mod(o.mul(2*Math.PI/fo,n),2*Math.PI),m=o.acos(o.oneMinus(o.float(n).mul(2).add(1).div(t))),d=s(m,l);a.assign(o.min(a,o.distance(r,d)))}))}));var t=o.exp(e.size.mul(5).sub(5)).toVar(),r=e.blur.pow(4).toVar(),n=o.smoothstep(t.sub(r),t.add(r),a);return o.mix(e.color,e.background,n)}),yo),Vo={$name:"Processed wood",$width:260,scale:2,lengths:4,strength:.3,angle:0,color:new e.Color(7348256),background:new e.Color(15782048),seed:0},bo=C((e=>{e=_(e,Vo);var a=o.radians(e.angle).toVar(),t=o.vec3(o.sub(o.positionGeometry.x.mul(o.cos(a)),o.positionGeometry.y.mul(o.sin(a))),o.add(o.positionGeometry.x.mul(o.sin(a)),o.positionGeometry.y.mul(o.cos(a))),o.positionGeometry.z).toVar(),r=e.scale.div(2).add(1).toVar(),s=t.mul(o.exp(r)).add(e.seed).toVar(),n=e.lengths.add(5).reciprocal().toVar(),l=o.mx_noise_float(s.mul(r,o.vec3(1,n,n)));return l=(l=l.mul(o.mx_noise_float(s.mul(o.vec3(25,1,1))).add(-1).mul(.2))).add(e.strength.sub(.5)).smoothstep(-.3,.3).oneMinus(),o.mix(e.color,e.background,l)}),Vo),wo={$name:"Protozoa",scale:1.5,fat:.7,amount:.4,color:new e.Color(10526880),subcolor:new e.Color(14739711),background:new e.Color(15792383),seed:0},_o=o.Fn((([e,a])=>o.mx_noise_float(e).mul(a).clamp(-3.14,3.14).cos().add(1).div(2))),ho=C((e=>{e=_(e,wo);var a=o.positionGeometry.mul(o.exp(e.scale.sub(1))).add(e.seed).toVar(),t=o.vec3(o.matcapUV,o.matcapUV.length()).toVar(),r=o.float(0).toVar(),s=o.float(0).toVar(),n=o.float(0).toVar(),l=o.float(0).toVar(),i=e.fat.add(.2).oneMinus().mul(60).add(30).toVar(),m=o.float(2).toVar(),d=e.amount.div(2).add(.5).exp().toVar();return o.Loop(10,(()=>{r.assign(_o(a.xyz.add(t),i)),s.assign(_o(a.yzx.add(t),i)),n.addAssign(r.mul(s).mul(m)),l.addAssign(r.max(s).mul(m)),a.assign(o.mix(a.mul(d),0,.4)),m.mulAssign(.9)})),o.mix(e.background,o.mix(e.color,e.subcolor,l.mul(.1)),n)}),wo),Co={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new e.Vector3(.4,-.6,0),center:new e.Vector3(0,0,0),selectorCenter:new e.Vector3(0,0,0),selectorAngles:new e.Vector2(0,0),selectorWidth:2},zo=o.Fn((([e,a])=>{var t=f(e,a.selectorAngles,a.selectorCenter,a.selectorWidth),r=x(a.angles.mul(t)),s=y(a.center),n=y(a.center.negate());return s.mul(r).mul(n).mul(o.vec4(e,1)).xyz})),Go=C((e=>(e=_(e,Co),zo(o.positionGeometry,e))),Co);Go.normal=C((e=>{e=_(e,Co);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=zo(a,e),l=zo(a.add(r),e),i=zo(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),Co);var ko={$name:"Rough clay",$normalNode:!0,scale:2,bump:.5,curvature:.2,seed:0},Mo=o.Fn((([e,a,t,r])=>{var s=o.mx_worley_noise_float(e.add(o.mx_noise_float(e).mul(r))).add(.8).pow(5).toVar();return s.addAssign(s.pow(.5)),e.add(a.mul(s).mul(t))})),Ao=C((e=>{var a=(e=_(e,ko)).bump.div(50).toVar(),t=o.positionGeometry.mul(o.exp(e.scale.div(2))).add(e.seed.sin().mul(10)).toVar(),r=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.001).toVar(),n=o.cross(r,s).normalize().mul(.001).toVar(),l=Mo(t,r,a,e.curvature),i=Mo(t.add(s),r,a,e.curvature),m=Mo(t.add(n),r,a,e.curvature),d=o.sub(i,l),u=o.sub(m,l);return o.transformNormalToView(o.cross(d,u).normalize())}),ko),Lo={$name:"Runny eggs",scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new e.Color("orange"),colorWhite:new e.Color("white"),colorBackground:new e.Color("lightgray"),seed:0},$o=C((e=>{e=_(e,Lo);var a=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),t=e.sizeYolk.oneMinus(),r=e.sizeWhite.oneMinus(),s=o.mx_worley_noise_float(a).toVar(),n=s.add(r).pow(8).oneMinus().clamp(-.5,1),l=s.add(t).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return o.mix(e.colorBackground,o.mix(e.colorWhite,e.colorYolk,l),n)}),Lo),Fo=o.Fn((([e,a,t,r,s])=>{var n=o.mx_worley_noise_float(e).toVar(),l=n.add(s).pow(8).oneMinus(),i=n.add(r).pow(18).oneMinus().clamp(0,1),m=o.mix(0,o.mix(0,1,i),l);return e.add(a.mul(m).mul(t))}));$o.normal=C((e=>{e=_(e,Lo);var a=.05,t=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),r=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.001).toVar(),n=o.cross(r,s).normalize().mul(.001).toVar(),l=e.sizeYolk.oneMinus(),i=e.sizeWhite.oneMinus(),m=Fo(t,r,a,l,i),d=Fo(t.add(s),r,a,l,i),u=Fo(t.add(n),r,a,l,i),c=o.sub(d,m),p=o.sub(u,m);return o.transformNormalToView(o.cross(c,p).normalize())}),Lo),$o.roughness=C((e=>{e=_(e,Lo);var a=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),t=e.sizeYolk.oneMinus();return o.mx_worley_noise_float(a).toVar().add(t).pow(18).clamp(0,1)}),Lo);var Io={$name:"rust",scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new e.Color(12615680),background:new e.Color(32),seed:0},Po=o.Fn((e=>{var a=o.positionGeometry.mul(o.exp(e.scale.div(4).add(-1))).add(e.seed).toVar(),t=e.amount.mul(o.mx_noise_float(a.mul(e.amount.div(2).add(4))).add(4)).toVar(),r=o.mx_noise_float(a).toVar();return o.Loop(e.iterations,(()=>{a.mulAssign(2),r.addAssign(o.mx_noise_float(a))})),r.subAssign(o.mx_noise_float(a.mul(2)).abs()),r.assign(r.sub(t).clamp(0,15)),r})),To=C((e=>{e=_(e,Io);var a=Po(e).mul(1.25).pow(.5),t=o.positionGeometry.mul(o.exp(e.scale.add(e.noiseScale.mul(3),2)));return a.addAssign(e.noise.mul(o.mx_noise_float(t).abs().add(.1).pow(2))),o.mix(e.color,e.background,a)}),Io);To.opacity=C((o=>(o=_(o,Io),Po(o).mul(o.opacity.add(.2)).oneMinus())),Io);var So={$name:"Satin",scale:2,color:new e.Color(7373055),background:new e.Color(80),seed:0},Eo=C((e=>{e=_(e,So);var a=o.positionGeometry.toVar(),t=o.exp(e.scale.div(3)).toVar(),r=o.mx_noise_float(o.vec3(o.mx_noise_float(o.vec3(a.x.mul(2),a.y,a.z).mul(t)),o.mx_noise_float(o.vec3(a.x,a.y.mul(2),a.z).mul(t)),o.mx_noise_float(o.vec3(a.x,a.y,a.z.mul(2)).mul(t))).mul(t).add(e.seed));return r=o.pow(o.abs(r),3).mul(20),o.mix(e.background,e.color,r)}),So);Eo.defaults={$name:"Satin",scale:2,color:new e.Color(7373055),background:new e.Color(80),seed:0};var Ro={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new e.Vector3(.01,.9,1.7),center:new e.Vector3(0,0,0),selectorCenter:new e.Vector3(0,0,0),selectorAngles:new e.Vector2(0,0),selectorWidth:2},Wo=o.Fn((([e,a])=>{var t=f(e,a.selectorAngles,a.selectorCenter,a.selectorWidth),r=v(o.mix(o.vec3(1,1,1),a.scales,t)),s=y(a.center),n=y(a.center.negate());return s.mul(r).mul(n).mul(o.vec4(e,1)).xyz})),qo=C((e=>(e=_(e,Ro),Wo(o.positionGeometry,e))),Ro);qo.normal=C((e=>{e=_(e,Ro);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=Wo(a,e),l=Wo(a.add(r),e),i=Wo(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),Ro);var Bo={$name:"Scepter head",xFactor:10,yFactor:22,zFactor:10,colorRim:new e.Color(16777215),colorA:new e.Color(7397631),colorB:new e.Color(3145983)},No=C((e=>{e=_(e,Bo);var a=o.positionGeometry,s=a.x.mul(m(e.xFactor,0,100,1.35,30)).toVar(),n=a.y.mul(m(e.yFactor,0,100,1.35,30)).toVar(),l=a.z.mul(m(e.zFactor,0,100,1.35,30)).toVar(),i=o.cos(s).toVar(),d=o.cos(n).toVar(),u=o.cos(l).toVar(),c=o.mx_noise_float(o.vec3(a.x.div(i),a.y.div(d),a.z.div(u)));c=o.sign(c).mul(o.abs(c).pow(.75));var p=o.abs(o.mul(s,o.tan(s)).add(1).div(o.cos(s))),x=o.abs(o.mul(n,o.tan(n)).add(1).div(o.cos(n))),v=o.abs(o.mul(l,o.tan(l)).add(1).div(o.cos(l))),y=o.vec3().toVar(),f=o.abs(o.floor(s.mul(2/Math.PI).add(1).div(2))),g=o.abs(o.floor(n.mul(2/Math.PI).add(1).div(2))),V=o.abs(o.floor(l.mul(2/Math.PI).add(1).div(2))),b=o.mod(o.add(f,g,V),2);y.assign(r(o.mix(e.colorA,e.colorB,b)));var w=t(y.x,y.y,y.z.mul(c)).toVar();y.assign(r(e.colorRim));var h=t(y.x,y.y,o.mul(2,c,y.z)).toVar();return o.mix(w,h,o.remapClamp(o.max(p,o.max(x,v)),45,65))}),Bo),Do={$name:"Scream",scale:2,variety:1,color:new e.Color(15790176),background:new e.Color(13668496),seed:0},Oo=C((e=>{e=_(e,Do);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),s=o.mx_noise_float(o.add(o.sin(a.xyz),o.cos(a.yzx)));a.assign(o.positionGeometry.mul(o.exp(e.scale).mul(s)).add(e.seed));s=o.mx_noise_float(o.add(o.sin(a.xyz),o.cos(a.yzx)).mul(2));var n=o.mix(e.background,e.color,s).toVar(),l=r(n).toVar();return t(o.add(l.x,e.variety.mul(o.sin(s.mul(Math.PI))).mul(.5)),l.y,l.z)}),Do);Oo.defaults={$name:"Scream",scale:2,variety:1,color:new e.Color(15790176),background:new e.Color(13668496),seed:0};var Uo={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new e.Color(16777215),background:new e.Color(0),seed:0},Yo=C((e=>{e=_(e,Uo);var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed),t=o.clamp(0,1,o.mx_noise_float(a).mul(.5,o.exp(e.contrast)).add(.5,e.balance));return o.mix(e.background,e.color,t)}),Uo);Yo.defaults={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new e.Color(16777215),background:new e.Color(0),seed:0};var jo={$name:"Stars",scale:2,density:2,variation:0,color:new e.Color(16774640),background:new e.Color(96),seed:0},Ho=C((e=>{e=_(e,jo);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(3))).add(e.seed).toVar(),s=o.abs(o.mx_noise_float(a)).pow(10).mul(10);s=s.mul(o.exp(e.density.sub(2)));var n=o.select(s.greaterThan(.1),e.variation.mul(o.mx_noise_float(a)),0),l=r(o.mix(e.background,e.color,s));return t(o.add(l.x,n),l.y,l.z)}),jo),Zo={$name:"Supersphere",$positionNode:!0,exponent:3},Xo=o.Fn((([e,a])=>{var t=o.float(2).pow(a.exponent),r=e.div(e.length()).toVar(),s=r.x.abs().pow(t).add(r.y.abs().pow(t)).add(r.z.abs().pow(t)).pow(o.float(1).div(t));return r.div(s)})),Ko=C((e=>(e=_(e,Zo),Xo(o.positionGeometry,e))),Zo);Ko.normal=C((e=>{e=_(e,Zo);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=Xo(a,e),l=Xo(a.add(r),e),i=Xo(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),Zo);var Qo={$name:"Tiger fur",scale:2,lengths:4,blur:.3,strength:.3,hairs:.5,color:new e.Color(16755200),bottomColor:new e.Color(16777198),seed:0},Jo=C((e=>{var a=(e=_(e,Qo)).scale.div(2).add(1).toVar(),t=o.positionGeometry.mul(o.exp(a)).add(e.seed).toVar(),r=e.lengths.add(5).reciprocal().toVar(),s=e.hairs.mul(.3).toVar(),n=o.mx_noise_float(t.mul(a,o.vec3(1,r,r)));n=(n=n.add(o.mx_noise_float(t.mul(o.vec3(25,1,1))).add(1).mul(s))).add(e.strength.sub(.5)).smoothstep(e.blur.negate(),e.blur).oneMinus();var l=o.positionGeometry.y.add(s.sub(.5)).smoothstep(-1,.5);return o.mix(e.bottomColor,e.color,l).mul(n)}),Qo),oe={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new e.Vector3(-.5,0,.2),selectorCenter:new e.Vector3(0,0,0),selectorAngles:new e.Vector2(0,0),selectorWidth:.7},ee=o.Fn((([e,a])=>{var t=f(e,a.selectorAngles,a.selectorCenter,a.selectorWidth);return y(a.distance.mul(t)).mul(o.vec4(e,1)).xyz})),ae=C((e=>(e=_(e,oe),ee(o.positionGeometry,e))),oe);ae.normal=C((e=>{e=_(e,oe);var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.01).toVar(),s=o.cross(t,r).normalize().mul(.01).toVar(),n=ee(a,e),l=ee(a.add(r),e),i=ee(a.add(s),e),m=o.sub(l,n),d=o.sub(i,n);return o.transformNormalToView(o.cross(m,d).normalize())}),oe);var te={$name:"Voronoi cells",scale:2,variation:0,facet:0,color:new e.Color(0),background:new e.Color(12636415),seed:0},re=o.Fn((([e])=>e.add(o.mx_noise_float(e.mul(Math.PI))))),se=C((e=>{e=_(e,te);var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(.5))).add(e.seed).toVar(),t=a.round().toVar(),r=t.toVar(),s=o.float(1).toVar(),n=o.vec3().toVar(),l=o.float().toVar(),i=o.float(0).toVar();o.Loop(27,(()=>{var e=i.mod(3).sub(1),m=i.div(3).floor().mod(3).sub(1),d=i.div(9).floor().sub(1);n.assign(t.add(o.vec3(e,m,d))),l.assign(a.distance(re(n)).add(o.mx_noise_float(a).div(5))),o.If(l.lessThan(s),(()=>{s.assign(l),r.assign(n)})),i.addAssign(1)}));var m=o.mx_noise_float(r.mul(Math.PI)).toVar(),d=o.mix(s,m.add(1).div(2),e.facet),u=o.mix(e.color,e.background,d).toVar(),c=o.vec3(m.mul(16.8),m.mul(31.4159),m.mul(27.1828)).sin().add(1).div(2);return o.mix(u,o.mix(u,c,e.variation),e.variation)}),te),ne={$name:"Water Drops",$normalNode:!0,scale:1.4,density:.5,bump:.6,seed:0},le=o.Fn((([e,a,t,r,s])=>{var n=o.mx_noise_float(e.add(s)).add(r).clamp(0,1);return n=o.cos(n.mul(Math.PI)).add(1).pow(.5).toVar(),e.add(n.mul(a,t))})),ie=C((e=>{e=_(e,ne);var a=o.positionGeometry.mul(o.exp(e.scale.div(1).add(1))).toVar(),t=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.001).toVar(),s=o.cross(t,r).normalize().mul(.001).toVar(),n=o.remap(e.density,0,1,1.5,.7).toVar(),l=o.vec3(o.sin(e.seed).mul(100),o.cos(e.seed.div(2)).mul(100),o.sin(e.seed.div(3)).mul(100)).toVar(),i=le(a,t,e.bump,n,l),m=le(a.add(r),t,e.bump,n,l),d=le(a.add(s),t,e.bump,n,l),u=o.sub(m,i),c=o.sub(d,i);return o.transformNormalToView(o.cross(u,c).normalize())}),ne),me={$name:"Watermelon",scale:2,stripes:12,variation:.5,noise:.25,color:new e.Color("yellowgreen"),background:new e.Color("darkgreen"),flat:0,seed:0},de=C((e=>{e=_(e,me);var a=o.select(e.flat,e.variation.mul(.85).add(.15),e.variation),t=o.positionGeometry.mul(o.exp(e.scale.div(4).add(2))).add(e.seed).toVar(),r=o.select(e.flat,o.screenUV,o.equirectUV(o.positionGeometry.normalize())).toVar(),s=r.x.mul(e.stripes.round(),o.select(e.flat,Math.PI,2*Math.PI)).add(o.mx_noise_float(t.mul(o.vec3(1,.3,1))).mul(2)).sin().add(.5).div(2).mul(r.y.remap(0,1,-Math.PI,Math.PI).cos().add(1.2).clamp(0,1)).add(a.mul(2,o.mx_noise_float(t.mul(1.5)).div(2))).add(a.mul(2,o.mx_noise_float(t.mul(4)).div(6))).toVar();return s.assign(s.mix(s.round(),.75).add(o.mx_noise_float(t.mul(2)).mul(e.noise,.5)).add(o.mx_noise_float(t.mul(3)).mul(e.noise,1)).add(o.mx_noise_float(t.mul(15)).mul(e.noise,.2)).clamp(0,1)),o.mix(e.background,e.color,s).toVar()}),me),ue={$name:"Wood",scale:2.5,rings:4.5,lengths:1,angle:0,fibers:.3,fibersDensity:10,color:new e.Color(.8,.4,0),background:new e.Color(.4,.1,0),seed:0},ce=C((e=>{e=_(e,ue);var a=o.radians(e.angle).toVar(),t=o.vec3(o.sub(o.positionGeometry.x.mul(o.cos(a)),o.positionGeometry.y.mul(o.sin(a))),o.add(o.positionGeometry.x.mul(o.sin(a)),o.positionGeometry.y.mul(o.cos(a))),o.positionGeometry.z).toVar(),r=t.mul(o.exp(e.scale.sub(3)).mul(o.vec3(o.reciprocal(e.lengths),4,o.reciprocal(e.lengths)))).add(e.seed).toVar(),s=o.mx_noise_float(r).add(1).mul(10).mul(e.rings);s=s.add(s.cos()).cos().add(1).div(2);var n=o.float(0).toVar(),l=o.float(0).toVar(),i=o.exp(e.scale.sub(2)).mul(o.vec3(1,e.fibersDensity,1)).toVar(),m=o.float(2).toVar();return o.Loop(10,(()=>{n.addAssign(o.mul(m,o.mx_noise_float(t.mul(i).add(e.seed)))),l.addAssign(m),i.mulAssign(1.8),m.mulAssign(.6)})),n.assign(o.mul(n,5).div(l).mul(10).sin().add(1).div(2)),o.mix(e.color,e.background,o.mix(s,n,e.fibers))}),ue),pe={$name:"Zebra lines",scale:2,thinness:.5,phi:0,theta:0,color:new e.Color(0),background:new e.Color(16777215),flat:0},xe=C((e=>{e=_(e,pe);var a=o.select(e.flat,o.positionGeometry,o.positionGeometry.normalize()).toVar(),t=o.select(e.flat,o.vec2(o.cos(e.phi),o.sin(e.phi)),s(e.phi,e.theta)).toVar(),r=o.select(e.flat,o.clamp(t.dot(a),-2,2),o.acos(o.clamp(t.dot(a),-1,1))).toVar(),n=o.exp(e.scale.add(1)).toVar(),l=o.sin(r.mul(n)).sub(e.thinness.sub(.5).mul(2));return l=o.clamp(l.mul(1e3).div(n),-1,1).mul(.5).add(.5),o.mix(e.background,e.color,l)}),pe);Object.defineProperty(exports,"noise",{enumerable:!0,get:function(){return o.mx_noise_float}}),exports.TSLFn=C,exports.applyEuler=n,exports.camouflage=G,exports.caveArt=M,exports.circles=L,exports.clouds=I,exports.concrete=S,exports.cork=W,exports.dalmatianSpots=B,exports.darthMaul=D,exports.dynamic=function(a){var t={};for(var[r,s]of Object.entries(a))"$"!=r[0]&&(s instanceof e.Vector3?t[r]=o.uniform(s,"vec3"):t[r]=o.uniform(s));return t},exports.dysonSphere=H,exports.entangled=X,exports.fordite=Q,exports.gasGiant=oo,exports.grid=ao,exports.hideFallbackWarning=function(){b&&(w>0?w--:(b.style.display="none",b=null))},exports.hsl=t,exports.isolines=ro,exports.karstRock=no,exports.marble=io,exports.matRotX=u,exports.matRotY=c,exports.matRotYXZ=x,exports.matRotZ=p,exports.matScale=v,exports.matTrans=y,exports.neonLights=uo,exports.noised=h,exports.normalVector=V,exports.overlayPlanar=g,exports.photosphere=po,exports.planet=vo,exports.polkaDots=go,exports.prepare=_,exports.processedWood=bo,exports.protozoa=ho,exports.remapExp=m,exports.rotator=Go,exports.roughClay=Ao,exports.runnyEggs=$o,exports.rust=To,exports.satin=Eo,exports.scaler=qo,exports.scepterHead=No,exports.scream=Oo,exports.selectPlanar=f,exports.showFallbackWarning=async function(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(b=document.createElement("div")).innerHTML='\n\t<div style="font-size:1.25em; font-weight:bold;">PLEASE, WAIT</div>\n\t<div style="font-size:0.85em; font-weight:100;" >NO WEBGPU &mdash; TRYING WEBGL2</div>\n\t<div id="counter"></div>\n\t',b.style.left="calc(50% - 8em)",b.style.width="16em",b.style.fontFamily="Bahnschrifts, Arial",b.style.position="absolute",b.style.bottom="20px",b.style.padding="12px 6px",b.style.border="1px solid white",b.style.borderRadius="4px",b.style.background="rgba(0,0,0,0.5)",b.style.color="white",b.style.textAlign="center",b.style.opacity="0.8",b.style.outline="none",b.style.zIndex="999",document.body.appendChild(b)},exports.simplexNoise=Yo,exports.spherical=s,exports.stars=Ho,exports.supersphere=Ko,exports.tigerFur=Jo,exports.toHsl=r,exports.translator=ae,exports.vnoise=d,exports.voronoiCells=se,exports.waterDrops=ie,exports.watermelon=de,exports.wood=ce,exports.zebraLines=xe;
@@ -1,6 +1,6 @@
1
- // TSL Textures v2.1.2
1
+ // TSL Textures v2.2.0
2
2
 
3
- import { Fn, min, sub, max, vec3, float, add, If, select, sin, cos, vec4, mul, cross, remap, pow, log2, mat4, smoothstep, positionGeometry, dFdx, dFdy, transformNormalToView, mx_noise_float, uniform, exp, round, pow2, abs, or, mix, acos, clamp, normalLocal, tangentLocal, Loop, floor, oneMinus, screenSize, screenUV, equirectUV, div, remapClamp, sqrt, mat2, mod, distance, radians, matcapUV, mx_worley_noise_float, sign, tan, reciprocal, vec2 } from 'three/tsl';
3
+ import { Fn, min, sub, max, vec3, float, add, If, select, sin, cos, vec4, mul, cross, remap, pow, log2, mat4, smoothstep, positionGeometry, dFdx, dFdy, transformNormalToView, mx_noise_float, uniform, exp, round, pow2, abs, or, mix, acos, clamp, normalLocal, tangentLocal, Loop, atan, floor, oneMinus, screenSize, screenUV, equirectUV, div, remapClamp, sqrt, mat2, mod, distance, radians, matcapUV, mx_worley_noise_float, sign, tan, reciprocal, vec2 } from 'three/tsl';
4
4
  export { mx_noise_float as noise } from 'three/tsl';
5
5
  import { Color, Vector3, Vector2 } from 'three';
6
6
 
@@ -756,7 +756,7 @@ function TSLFn( jsFunc, defaults, layout = null ) {
756
756
 
757
757
  } // TSLFn
758
758
 
759
- var defaults$C = {
759
+ var defaults$D = {
760
760
  $name: 'Camouflage',
761
761
 
762
762
  scale: 2,
@@ -773,7 +773,7 @@ var defaults$C = {
773
773
 
774
774
  var camouflage = TSLFn( ( params )=>{
775
775
 
776
- params = prepare( params, defaults$C );
776
+ params = prepare( params, defaults$D );
777
777
 
778
778
  var pos = positionGeometry.mul( exp( params.scale ) ).add( params.seed ).toVar( );
779
779
 
@@ -806,9 +806,9 @@ var camouflage = TSLFn( ( params )=>{
806
806
 
807
807
  return color;
808
808
 
809
- }, defaults$C );
809
+ }, defaults$D );
810
810
 
811
- var defaults$B = {
811
+ var defaults$C = {
812
812
  $name: 'Cave art',
813
813
 
814
814
  scale: 2,
@@ -825,7 +825,7 @@ var defaults$B = {
825
825
 
826
826
  var caveArt = TSLFn( ( params ) => {
827
827
 
828
- params = prepare( params, defaults$B );
828
+ params = prepare( params, defaults$C );
829
829
 
830
830
  var pos = positionGeometry.mul( exp( params.scale ) ).add( params.seed ).toVar( );
831
831
 
@@ -849,9 +849,9 @@ var caveArt = TSLFn( ( params ) => {
849
849
 
850
850
  return mix( params.background, params.color, k );
851
851
 
852
- }, defaults$B );
852
+ }, defaults$C );
853
853
 
854
- var defaults$A = {
854
+ var defaults$B = {
855
855
  $name: 'Circles',
856
856
 
857
857
  scale: 2,
@@ -868,7 +868,7 @@ var defaults$A = {
868
868
 
869
869
  var circles = TSLFn( ( params ) => {
870
870
 
871
- params = prepare( params, defaults$A );
871
+ params = prepare( params, defaults$B );
872
872
 
873
873
  var pos = select( params.flat, positionGeometry, positionGeometry.normalize() );
874
874
 
@@ -898,9 +898,9 @@ var circles = TSLFn( ( params ) => {
898
898
 
899
899
  return hsl( huei.add( huef ).div( 10 ), HSL.y, HSL.z );
900
900
 
901
- }, defaults$A );
901
+ }, defaults$B );
902
902
 
903
- var defaults$z = {
903
+ var defaults$A = {
904
904
  $name: 'Clouds',
905
905
 
906
906
  scale: 2,
@@ -942,24 +942,24 @@ var _clouds = Fn( ( params ) => {
942
942
  var clouds = TSLFn( ( params ) => {
943
943
 
944
944
  // prepare parameters
945
- params = prepare( params, defaults$z );
945
+ params = prepare( params, defaults$A );
946
946
 
947
947
  return _clouds( params ).rgb;
948
948
 
949
- }, defaults$z );
949
+ }, defaults$A );
950
950
 
951
951
 
952
952
 
953
953
  clouds.opacity = TSLFn( ( params ) => {
954
954
 
955
955
  // prepare parameters
956
- params = prepare( params, defaults$z );
956
+ params = prepare( params, defaults$A );
957
957
 
958
958
  return _clouds( params ).a;
959
959
 
960
- }, defaults$z );
960
+ }, defaults$A );
961
961
 
962
- var defaults$y = {
962
+ var defaults$z = {
963
963
  $name: 'Concrete',
964
964
  $normalNode: true,
965
965
 
@@ -984,7 +984,7 @@ var surfacePos$7 = Fn( ([ pos, normal, bump, density, seed ]) => {
984
984
 
985
985
  var concrete = TSLFn( ( params ) => {
986
986
 
987
- params = prepare( params, defaults$y );
987
+ params = prepare( params, defaults$z );
988
988
 
989
989
  var eps = 0.001;
990
990
 
@@ -1005,9 +1005,9 @@ var concrete = TSLFn( ( params ) => {
1005
1005
 
1006
1006
  return transformNormalToView( cross( dU, dV ).normalize() );
1007
1007
 
1008
- }, defaults$y );
1008
+ }, defaults$z );
1009
1009
 
1010
- var defaults$x = {
1010
+ var defaults$y = {
1011
1011
  $name: 'Cork',
1012
1012
 
1013
1013
  scale: 1,
@@ -1031,7 +1031,7 @@ var cellCenter$1 = Fn( ([ cell ])=>{
1031
1031
 
1032
1032
  var cork = TSLFn( ( params )=>{
1033
1033
 
1034
- params = prepare( params, defaults$x );
1034
+ params = prepare( params, defaults$y );
1035
1035
 
1036
1036
  var pos = positionGeometry.mul( exp( params.scale.div( 1.5 ).add( 1 ) ) ).add( params.seed ).toVar( );
1037
1037
 
@@ -1076,9 +1076,9 @@ var cork = TSLFn( ( params )=>{
1076
1076
 
1077
1077
  return color;
1078
1078
 
1079
- }, defaults$x );
1079
+ }, defaults$y );
1080
1080
 
1081
- var defaults$w = {
1081
+ var defaults$x = {
1082
1082
  $name: 'Dalmatian spots',
1083
1083
  $width: 260,
1084
1084
 
@@ -1095,7 +1095,7 @@ var defaults$w = {
1095
1095
 
1096
1096
  var dalmatianSpots = TSLFn( ( params )=>{
1097
1097
 
1098
- params = prepare( params, defaults$w );
1098
+ params = prepare( params, defaults$x );
1099
1099
 
1100
1100
  var pos = positionGeometry.mul( exp( params.scale ) ).add( params.seed ).sub( 1000 ).toVar( );
1101
1101
 
@@ -1117,6 +1117,54 @@ var dalmatianSpots = TSLFn( ( params )=>{
1117
1117
 
1118
1118
  return mix( params.background, params.color, k.clamp( 0, 1 ) );
1119
1119
 
1120
+ }, defaults$x );
1121
+
1122
+ var defaults$w = {
1123
+ $name: 'Darth Maul',
1124
+
1125
+ scale: 2,
1126
+ shift: new Vector3( 0, 0, 0 ),
1127
+ complexity: 0,
1128
+
1129
+ angle: 60,
1130
+ distance: 1.9,
1131
+
1132
+ color: new Color( 0xD02020 ),
1133
+ background: new Color( 0x000000 ),
1134
+ balance: 0,
1135
+
1136
+ seed: 0,
1137
+ };
1138
+
1139
+
1140
+
1141
+ var darthMaul = TSLFn( ( params ) => {
1142
+
1143
+ params = prepare( params, defaults$w );
1144
+
1145
+ //var dX = vec3( params.shift.x, 0, 0 );
1146
+
1147
+ var position = positionGeometry.add( params.shift ).mul( exp( params.scale.div( 1.5 ).sub( 1 ) ) ).sub( params.shift ).mul( vec3( 1, 1/2, 1/2 ) ).toVar( );
1148
+
1149
+ var s = select( positionGeometry.y.mul( params.angle.radians().cos() ).add( positionGeometry.z.mul( params.angle.radians().sin() ) ).greaterThan( params.distance ), 1, 0 );
1150
+
1151
+ // implement symmetry
1152
+ position.x.assign( position.x.add( params.shift.x ).abs() );
1153
+ position.y.addAssign( params.seed );
1154
+ position.z.mulAssign( params.shift.z );
1155
+
1156
+ var n = mx_noise_float( position ).toVar();
1157
+
1158
+ var k = n.sin().mul( n.mul( params.complexity.mul( 2 ).add( 1 ).exp() ).sin() ).remap( 0, 0.2, 1, -1 ).greaterThan( params.balance ).select( 0, 1 );
1159
+
1160
+ var c = select( position.x.greaterThan( mx_noise_float( position.mul( 2.3 ) ).abs().mul( 0.5 ).add( 0.02 ) ), 1, 0 );
1161
+
1162
+ var pos_actual = positionGeometry.normalize();
1163
+ var angle = atan( pos_actual.z, pos_actual.x ).add( Math.PI ).mul( 4/Math.PI ).round().div( 4/Math.PI );
1164
+ vec3( angle.cos(), 0.3, angle.sin() );
1165
+
1166
+ return mix( params.background, params.color, k.mul( s ).mul( c ).clamp( 0, 1 ) );
1167
+
1120
1168
  }, defaults$w );
1121
1169
 
1122
1170
  var defaults$v = {
@@ -1779,7 +1827,7 @@ var defaults$j = {
1779
1827
  $width: 260,
1780
1828
 
1781
1829
  scale: 2,
1782
- length: 4,
1830
+ lengths: 4,
1783
1831
  strength: 0.3,
1784
1832
  angle: 0,
1785
1833
 
@@ -1805,7 +1853,7 @@ var processedWood = TSLFn( ( params )=>{
1805
1853
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
1806
1854
  var pos = posLocal.mul( exp( scale ) ).add( params.seed ).toVar( );
1807
1855
 
1808
- var len = params.length.add( 5 ).reciprocal().toVar();
1856
+ var len = params.lengths.add( 5 ).reciprocal().toVar();
1809
1857
  var k = mx_noise_float( pos.mul( scale, vec3( 1, len, len ) ) );
1810
1858
  k = k.mul( mx_noise_float( pos.mul( vec3( 25, 1, 1 ) ) ).add( -1 ).mul( 0.2 ) );
1811
1859
  k = k.add( params.strength.sub( 0.5 ) ).smoothstep( -0.3, 0.3 ).oneMinus();
@@ -2493,7 +2541,7 @@ var defaults$6 = {
2493
2541
  $name: 'Tiger fur',
2494
2542
 
2495
2543
  scale: 2,
2496
- length: 4,
2544
+ lengths: 4,
2497
2545
  blur: 0.3,
2498
2546
  strength: 0.3,
2499
2547
  hairs: 0.5,
@@ -2513,7 +2561,7 @@ var tigerFur = TSLFn( ( params )=>{
2513
2561
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
2514
2562
  var pos = positionGeometry.mul( exp( scale ) ).add( params.seed ).toVar( );
2515
2563
 
2516
- var len = params.length.add( 5 ).reciprocal().toVar();
2564
+ var len = params.lengths.add( 5 ).reciprocal().toVar();
2517
2565
  var hairs = params.hairs.mul( 0.3 ).toVar();
2518
2566
  var k = mx_noise_float( pos.mul( scale, vec3( 1, len, len ) ) );
2519
2567
  k = k.add( mx_noise_float( pos.mul( vec3( 25, 1, 1 ) ) ).add( 1 ).mul( hairs ) );
@@ -2523,23 +2571,7 @@ var tigerFur = TSLFn( ( params )=>{
2523
2571
 
2524
2572
  return mix( params.bottomColor, params.color, n ).mul( k );
2525
2573
 
2526
- }, defaults$6 );
2527
-
2528
-
2529
- tigerFur.defaults = {
2530
- $name: 'Tiger fur',
2531
-
2532
- scale: 2,
2533
- length: 4,
2534
- blur: 0.3,
2535
- strength: 0.3,
2536
- hairs: 0.5,
2537
-
2538
- color: new Color( 0xFFAA00 ),
2539
- bottomColor: new Color( 0xFFFFEE ),
2540
-
2541
- seed: 0,
2542
- };
2574
+ }, defaults$6 );
2543
2575
 
2544
2576
  var defaults$5 = {
2545
2577
  $name: 'Translator',
@@ -2769,7 +2801,7 @@ var defaults$1 = {
2769
2801
  $name: 'Wood',
2770
2802
  scale: 2.5,
2771
2803
  rings: 4.5,
2772
- length: 1,
2804
+ lengths: 1,
2773
2805
  angle: 0,
2774
2806
  fibers: 0.3,
2775
2807
  fibersDensity: 10,
@@ -2793,7 +2825,7 @@ var wood = TSLFn( ( params ) => {
2793
2825
 
2794
2826
 
2795
2827
  // main pattern with rings
2796
- var pos = posLocal.mul( exp( params.scale.sub( 3 ) ).mul( vec3( reciprocal( params.length ), 4, reciprocal( params.length ) ) ) ).add( params.seed ).toVar( );
2828
+ var pos = posLocal.mul( exp( params.scale.sub( 3 ) ).mul( vec3( reciprocal( params.lengths ), 4, reciprocal( params.lengths ) ) ) ).add( params.seed ).toVar( );
2797
2829
  var k = mx_noise_float( pos ).add( 1 ).mul( 10 ).mul( params.rings );
2798
2830
  k = k.add( k.cos() ).cos().add( 1 ).div( 2 );
2799
2831
 
@@ -2854,4 +2886,4 @@ var zebraLines = TSLFn( ( params ) => {
2854
2886
 
2855
2887
  }, defaults );
2856
2888
 
2857
- export { TSLFn, applyEuler, camouflage, caveArt, circles, clouds, concrete, cork, dalmatianSpots, dynamic, dysonSphere, entangled, fordite, gasGiant, grid, hideFallbackWarning, hsl, isolines, karstRock, marble, matRotX, matRotY, matRotYXZ, matRotZ, matScale, matTrans, neonLights, noised, normalVector, overlayPlanar, photosphere, planet, polkaDots, prepare, processedWood, protozoa, remapExp, rotator, roughClay, runnyEggs, rust, satin, scaler, scepterHead, scream, selectPlanar, showFallbackWarning, simplexNoise, spherical, stars, supersphere, tigerFur, toHsl, translator, vnoise, voronoiCells, waterDrops, watermelon, wood, zebraLines };
2889
+ export { TSLFn, applyEuler, camouflage, caveArt, circles, clouds, concrete, cork, dalmatianSpots, darthMaul, dynamic, dysonSphere, entangled, fordite, gasGiant, grid, hideFallbackWarning, hsl, isolines, karstRock, marble, matRotX, matRotY, matRotYXZ, matRotZ, matScale, matTrans, neonLights, noised, normalVector, overlayPlanar, photosphere, planet, polkaDots, prepare, processedWood, protozoa, remapExp, rotator, roughClay, runnyEggs, rust, satin, scaler, scepterHead, scream, selectPlanar, showFallbackWarning, simplexNoise, spherical, stars, supersphere, tigerFur, toHsl, translator, vnoise, voronoiCells, waterDrops, watermelon, wood, zebraLines };
@@ -1,2 +1,2 @@
1
- /*! TSL Textures v2.1.2 */
2
- import{Fn as a,min as e,sub as o,max as r,vec3 as t,float as n,add as l,If as s,select as d,sin as u,cos as m,vec4 as i,mul as c,cross as v,remap as g,pow as p,log2 as V,mat4 as y,smoothstep as b,positionGeometry as w,dFdx as h,dFdy as f,transformNormalToView as z,mx_noise_float as x,uniform as k,exp as A,round as $,pow2 as M,abs as P,or as I,mix as S,acos as T,clamp as E,normalLocal as L,tangentLocal as C,Loop as R,floor as B,oneMinus as W,screenSize as q,screenUV as D,equirectUV as G,div as O,remapClamp as F,sqrt as N,mat2 as Y,mod as j,distance as U,radians as H,matcapUV as Z,mx_worley_noise_float as X,sign as _,tan as K,reciprocal as Q,vec2 as J}from"three/tsl";export{mx_noise_float as noise}from"three/tsl";import{Color as aa,Vector3 as ea,Vector2 as oa}from"three";const ra=a((([a,t,n,l])=>{var s=l.add(a.mul(12)).mod(12),d=t.mul(e(n,o(1,n)));return n.sub(d.mul(r(-1,e(e(s.sub(3),o(9,s)),1))))}));ra.setLayout({name:"hslHelper",type:"float",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"},{name:"n",type:"float"}]});const ta=a((([a,e,o])=>{a=a.fract().add(1).fract(),e=e.clamp(0,1),o=o.clamp(0,1);var r=ra(a,e,o,0),n=ra(a,e,o,8),l=ra(a,e,o,4);return t(r,n,l)}));ta.setLayout({name:"hsl",type:"vec3",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"}]});const na=a((([a])=>{var u=n(a.x).toVar(),m=n(a.y).toVar(),i=n(a.z).toVar(),c=r(u,r(m,i)).toVar(),v=e(u,e(m,i)).toVar(),g=n(0).toVar(),p=n(0).toVar(),V=l(c,v).div(2);return s(v.notEqual(c),(()=>{const a=o(c,v).toVar();p.assign(d(V.lessThanEqual(.5),a.div(l(v,c)),a.div(o(2,l(v,c))))),s(c.equal(u),(()=>{g.assign(o(m,i).div(a).add(d(m.lessThanEqual(i),6,0)))})).ElseIf(c.equal(m),(()=>{g.assign(o(i,u).div(a).add(2))})).Else((()=>{g.assign(o(u,m).div(a).add(4))})),g.divAssign(6)})),t(g,p,V)}));function la(a){var e={};for(var[o,r]of Object.entries(a))"$"!=o[0]&&(e[o]=r instanceof ea?k(r,"vec3"):k(r));return e}na.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const sa=a((([a,e])=>t(u(e).mul(u(a)),m(a),m(e).mul(u(a)))));sa.setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]});const da=a((([a,e])=>{var o=ua(e);return ma(a,o)}));da.setLayout({name:"applyEuler",type:"vec4",inputs:[{name:"vec",type:"vec3"},{name:"eu",type:"vec3"}]});const ua=a((([a])=>{var e=m(a.x.div(2)),r=m(a.y.div(2)),t=m(a.z.div(2)),n=u(a.x.div(2)),s=u(a.y.div(2)),d=u(a.z.div(2));return i(l(c(n,r,t),c(e,s,d)),o(c(e,s,t),c(n,r,d)),l(c(e,r,d),c(n,s,t)),o(c(e,r,t),c(n,s,d)))}));ua.setLayout({name:"quaternionFromEuler",type:"vec4",inputs:[{name:"eu",type:"vec3"}]});const ma=a((([a,e])=>{var o=v(e.xyz,a).mul(2).toVar();return l(a,o.mul(e.w),v(e.xyz,o))}));ma.setLayout({name:"applyQuaternion",type:"vec3",inputs:[{name:"vec",type:"vec3"},{name:"quat",type:"vec4"}]});const ia=a((([a,e,o,r,t])=>(a=g(a,e,o,0,1),a=p(2,c(a,V(t.div(r))).add(V(r))))));ia.setLayout({name:"remapExp",type:"float",inputs:[{name:"x",type:"float"},{name:"fromMin",type:"float"},{name:"fromMax",type:"float"},{name:"toMin",type:"float"},{name:"toMax",type:"float"}]});const ca=a((([a])=>a.dot(t(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1)));ca.setLayout({name:"vnoise",type:"float",inputs:[{name:"v",type:"vec3"}]});const va=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return y(1,0,0,0,0,e,o,0,0,o.negate(),e,0,0,0,0,1)}));va.setLayout({name:"matRotX",type:"mat4",inputs:[{name:"angle",type:"float"}]});const ga=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return y(e,0,o.negate(),0,0,1,0,0,o,0,e,0,0,0,0,1)}));ga.setLayout({name:"matRotY",type:"mat4",inputs:[{name:"angle",type:"float"}]});const pa=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return y(e,o,0,0,o.negate(),e,0,0,0,0,1,0,0,0,0,1)}));pa.setLayout({name:"matRotZ",type:"mat4",inputs:[{name:"angle",type:"float"}]});const Va=a((([a])=>{var e=va(a.x),o=ga(a.y),r=pa(a.z);return o.mul(e).mul(r)}));Va.setLayout({name:"matRotYXZ",type:"mat4",inputs:[{name:"angles",type:"vec3"}]});const ya=a((([a])=>y(a.x,0,0,0,0,a.y,0,0,0,0,a.z,0,0,0,0,1)));ya.setLayout({name:"matScale",type:"mat4",inputs:[{name:"scales",type:"vec3"}]});const ba=a((([a])=>y(1,0,0,0,0,1,0,0,0,0,1,0,a.x,a.y,a.z,1)));ba.setLayout({name:"matTrans",type:"mat4",inputs:[{name:"vector",type:"vec3"}]});const wa=a((([a,e,o,r])=>{var t=sa(e.x,e.y).mul(r).toVar(),n=o.sub(t.div(2)).sub(a).dot(t).div(t.dot(t)).negate();return b(0,1,n)}));wa.setLayout({name:"selectPlanar",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"selAngles",type:"vec2"},{name:"selCenter",type:"vec3"},{name:"selWidth",type:"float"}]});const ha=a((a=>{var e=wa(w,a.selectorAngles,a.selectorCenter,a.selectorWidth).sub(.5).mul(2).abs().oneMinus().pow(.25).negate().mul(a.selectorShow);return t(0,e,e)})),fa=a((([a])=>{var e=h(a),o=f(a);return z(v(e,o).normalize())}));fa.setLayout({name:"normalVector",type:"vec3",inputs:[{name:"pos",type:"vec3"}]});var za=null,xa=10;async function ka(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(za=document.createElement("div")).innerHTML='\n\t<div style="font-size:1.25em; font-weight:bold;">PLEASE, WAIT</div>\n\t<div style="font-size:0.85em; font-weight:100;" >NO WEBGPU &mdash; TRYING WEBGL2</div>\n\t<div id="counter"></div>\n\t',za.style.left="calc(50% - 8em)",za.style.width="16em",za.style.fontFamily="Bahnschrifts, Arial",za.style.position="absolute",za.style.bottom="20px",za.style.padding="12px 6px",za.style.border="1px solid white",za.style.borderRadius="4px",za.style.background="rgba(0,0,0,0.5)",za.style.color="white",za.style.textAlign="center",za.style.opacity="0.8",za.style.outline="none",za.style.zIndex="999",document.body.appendChild(za)}function Aa(){za&&(xa>0?xa--:(za.style.display="none",za=null))}function $a(a,e){var o=[];for(var r of a)if(r&&"object"==typeof r){o=Object.keys(r);break}var l={...e};for(var s of o)void 0!==a[s]&&(l[s]=a[s]);for(var d of Object.keys(l))"number"==typeof l[d]?l[d]=n(l[d]):l[d]instanceof aa?l[d]=t(l[d].r,l[d].g,l[d].b):l[d]instanceof ea&&(l[d]=t(l[d].x,l[d].y,l[d].z));return l}function Ma(a,e=1,o=1,r=0){return x(a.mul(e,o).add(r))}function Pa(e,o,r=null){const t=a(e,r),n=new Map;n.set("defaults",o),n.set("opacity",null),n.set("roughness",null),n.set("normal",null);const l=function(){};return Object.setPrototypeOf(l,Object.getPrototypeOf(t.call)),new Proxy(l,{get:(a,e,o)=>"defaults"===e?n.get("defaults"):"opacity"===e?n.get("opacity"):"roughness"===e?n.get("roughness"):"normal"===e?n.get("normal"):"fn"===e?t:Reflect.get(t,e,o),set:(a,e,o,r)=>"defaults"===e?(n.set("defaults",o),!0):"opacity"===e?(n.set("opacity",o),!0):"roughness"===e?(n.set("roughness",o),!0):"normal"===e?(n.set("normal",o),!0):Reflect.set(t,e,o,r),apply:(a,e,o)=>Reflect.apply(t,e,o),getOwnPropertyDescriptor:(a,e)=>"defaults"===e?{value:n.get("defaults"),writable:!0,enumerable:!0,configurable:!0}:("opacity"===e&&Reflect.getOwnPropertyDescriptor(null,e),"roughness"===e&&Reflect.getOwnPropertyDescriptor(null,e),"normal"===e&&Reflect.getOwnPropertyDescriptor(null,e),Reflect.getOwnPropertyDescriptor(t,e))})}var Ia={$name:"Camouflage",scale:2,colorA:new aa(12762792),colorB:new aa(10258782),colorC:new aa(9610101),colorD:new aa(7435617),seed:0},Sa=Pa((a=>{a=$a(a,Ia);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=t(0,0,0).toVar();return s($(x(e,1,.2)).greaterThanEqual(1),(()=>{o.assign(a.colorA)})).ElseIf($(x(e.yzx,1,.3)).greaterThanEqual(1),(()=>{o.assign(a.colorB)})).ElseIf($(x(e.zxy,1,.4)).greaterThanEqual(1),(()=>{o.assign(a.colorC)})).Else((()=>{o.assign(a.colorD)})),o}),Ia),Ta={$name:"Cave art",scale:2,thinness:2,noise:.3,color:new aa(13845829),background:new aa(16775408),seed:0},Ea=Pa((a=>{a=$a(a,Ta);var e=w.mul(A(a.scale)).add(a.seed).toVar(),r=x(e,4).sin().toVar(),t=x(e.mul(1.5),4).cos().toVar(),d=A(o(n(3),a.thinness)),u=o(d,M(P(l(r,t))).mul(20)).toVar();return s(I(r.greaterThan(t),u.lessThan(0)),(()=>{u.assign(0)})),s(u.lessThanEqual(0),(()=>{u.assign(a.noise.mul(M(x(e.mul(30)))))})),S(a.background,a.color,u)}),Ta),La={$name:"Circles",scale:2,variety:1,color:new aa(15786192),flat:0,seed:0},Ca=Pa((a=>{a=$a(a,La);for(var e=d(a.flat,w,w.normalize()),o=T(E(e.y,-1,1)).mul(20),r=A(a.scale.sub(1)),t=o.div(3e3).mul(r),l=n(a.seed.sin().mul(100)).toVar(),s=0;s<=10;s++)l.addAssign(u(t.mul(2**s).sub(Math.PI*s/2)).mul(-s*(s+1)/2));l.assign(l.div(200).clamp(-2,2));var m=na(a.color),i=m.x.add(l.mul(a.variety)).mod(1).mul(10),c=i.floor(),v=i.sub(c);return v=d(v.lessThan(.5),v.pow(1.5),v.pow(1/1.5)),ta(c.add(v).div(10),m.y,m.z)}),La),Ra={$name:"Clouds",scale:2,density:.5,opacity:1,color:new aa(16777215),subcolor:new aa(10526896),seed:0},Ba=a((a=>{const e=w,o=A(a.scale.div(1.5).sub(.5)),r=l(Ma(e,o,1,a.seed),Ma(e,o,2,a.seed).mul(.8),Ma(e,o,6,a.seed).mul(.1),Ma(e,o,8,a.seed).mul(.07,a.opacity),a.density.remap(0,1,-.5,1.5)),t=E(0,1,c(r,2).pow(1.5).sub(1).mul(a.opacity));return i(S(a.subcolor,a.color,r.clamp(0,1)),t)})),Wa=Pa((a=>(a=$a(a,Ra),Ba(a).rgb)),Ra);Wa.opacity=Pa((a=>(a=$a(a,Ra),Ba(a).a)),Ra);var qa={$name:"Concrete",$normalNode:!0,scale:2,density:.5,bump:.5,seed:0},Da=a((([a,e,o,r,t])=>{var n=x(a.add(t)).mul(.5).add(.5);return n=o.mul(p(P(n),r)),a.add(n.mul(e))})),Ga=Pa((a=>{a=$a(a,qa);var e=w.mul(A(a.scale.div(2).add(2))).toVar(),r=L.normalize().toVar(),n=C.normalize().mul(.001).toVar(),l=v(r,n).normalize().mul(.001).toVar(),s=g(a.density,0,1,10,.5).toVar(),d=t(u(a.seed).mul(100),m(a.seed.div(2)).mul(100),u(a.seed.div(3)).mul(100)).toVar(),i=Da(e,r,a.bump,s,d),c=Da(e.add(n),r,a.bump,s,d),p=Da(e.add(l),r,a.bump,s,d),V=o(c,i),y=o(p,i);return z(v(V,y).normalize())}),qa),Oa={$name:"Cork",scale:1,straight:1,noise:.3,color:new aa(16773312),background:new aa(13664352),seed:0},Fa=a((([a])=>a.add(ca(a)))),Na=Pa((a=>{a=$a(a,Oa);var e=w.mul(A(a.scale.div(1.5).add(1))).add(a.seed).toVar(),o=e.round().toVar(),r=o.toVar(),l=n(1).toVar(),d=t().toVar(),u=n().toVar(),m=n(0).toVar();R(27,(()=>{var n=m.mod(3).sub(1),i=m.div(3).floor().mod(3).sub(1),c=m.div(9).floor().sub(1);d.assign(o.add(t(n,i,c))),u.assign(e.distance(Fa(d))),u.addAssign(x(e.add(d)).div(a.straight.exp())),s(u.lessThan(l),(()=>{l.assign(u),r.assign(d)})),m.addAssign(1)}));var i=x(r.mul(Math.PI)).toVar(),c=x(e.mul(12)).toVar();c.assign(c.sign().mul(c.abs().pow3())),c.addAssign(x(e.mul(40)).div(3));var v=i.add(1).div(2);return S(a.color,a.background,v.add(c.mul(a.noise))).toVar()}),Oa),Ya={$name:"Dalmatian spots",$width:260,scale:2,density:.6,color:new aa(16777215),background:new aa(0),seed:0},ja=Pa((a=>{a=$a(a,Ya);var e=w.mul(A(a.scale)).add(a.seed).sub(1e3).toVar(),o=n(1).toVar(),r=n(1.5).sub(a.density).mul(2).toVar(),t=a.density.mul(5).add(5).toVar();return R(t,(()=>{o.mulAssign(x(e).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01)),o.mulAssign(x(e.yzx).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01)),o.mulAssign(x(e.zxy).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01))})),S(a.background,a.color,o.clamp(0,1))}),Ya),Ua={$name:"Dyson sphere",scale:2,complexity:2,variation:0,color:new aa(12636415),background:new aa(0),seed:0},Ha=a((([a])=>{var e=a.mul(5**.5).fract().toVar();return e.addAssign(e.dot(e.add(t(31.4159,27.1828,14.142)))),e.z.mul(e.x.add(e.y)).fract().mul(2).sub(1)})),Za=a((([a])=>{var e=a.oneMinus().clamp(0,1).toVar();return e.mul(e).mul(n(3).sub(e.mul(2)))})),Xa=a((([a])=>{var e=a.x.floor().toVar(),o=e.add(1).toVar(),r=a.y.floor().toVar(),n=r.add(1).toVar(),l=a.z.floor().toVar(),s=l.add(1).toVar(),d=Za(a.x.fract()).toVar(),u=Za(a.y.fract()).toVar(),m=Za(a.z.fract()).toVar(),i=Za(d.oneMinus()).toVar(),c=Za(u.oneMinus()).toVar(),v=Za(m.oneMinus()).toVar(),g=Ha(t(e,r,l)).mul(i).mul(c).mul(v).toVar(),p=Ha(t(e,r,s)).mul(i).mul(c).mul(m).toVar(),V=Ha(t(e,n,l)).mul(i).mul(u).mul(v).toVar(),y=Ha(t(e,n,s)).mul(i).mul(u).mul(m).toVar(),b=Ha(t(o,r,l)).mul(d).mul(c).mul(v).toVar(),w=Ha(t(o,r,s)).mul(d).mul(c).mul(m).toVar(),h=Ha(t(o,n,l)).mul(d).mul(u).mul(v).toVar(),f=Ha(t(o,n,s)).mul(d).mul(u).mul(m).toVar();return g.add(p).add(V).add(y).add(b).add(w).add(h).add(f)})),_a=Pa((a=>{a=$a(a,Ua);var e=w.mul(A(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=t().toVar(),r=n(1).toVar();return R(a.complexity.add(4),(()=>{o.addAssign(Xa(e.mul(r))),r.addAssign(r)})),S(a.background,a.color,o.x.add(1).div(5))}),Ua),Ka={$name:"Entangled",scale:2,density:10,color:new aa(8256),background:new aa(16777215),seed:0},Qa=Pa((a=>{a=$a(a,Ka);var e=A(a.scale.div(2)).toVar(),o=w.add(a.seed).toVar(),t=n(-1e4).toVar(),l=n(0).toVar();return R(B(n(a.density)),(()=>{l.assign(u(x(c(o,e)).mul(3*Math.PI))),t.assign(r(t,l)),e.mulAssign(1.2)})),t.assign(W(p(P(t),5)).mul(6)),S(a.color,a.background,t)}),Ka),Ja={$name:"Fordite",scale:2,color:new aa(0,0,0),seed:0},ae=Pa((a=>{a=$a(a,Ja);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=x(t(x(e),x(e).mul(2),x(e).mul(3))).toVar();return ta(o,1,u(c(o,Math.PI,4)).mul(.5).add(.5)).add(a.color)}),Ja),ee={$name:"Gas giant",scale:2,turbulence:.3,blur:.6,colorA:new aa(16775408),colorB:new aa(15788208),colorC:new aa(11509968),seed:0},oe=Pa((a=>{var e=(a=$a(a,ee)).scale.div(2).add(1).toVar(),o=w.mul(A(e)).add(a.seed).toVar(),r=a.turbulence.mul(x(t(0,o.y.mul(.5),0).add(1)).add(x(t(0,o.y.mul(1),0).add(1)).mul(.5),x(t(1,o.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),n=x(o.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);o.addAssign(t(x(o),x(o.yxz),x(o.yzx)).mul(r.mul(n.mul(2).exp())));var l=a.blur.pow(.2).oneMinus().mul(r.add(1)).toVar(),s=x(o.mul(t(0,e,0)));s=(s=s.add(x(o.mul(t(1,15,1))).mul(l))).add(-.5).smoothstep(-1,1).oneMinus();var d=x(t(0,o.y.mul(.75),0)).add(1),u=na(S(a.colorB,a.colorA,d)),m=ta(u.x.add(x(o.mul(t(0,e,0))).div(4)),u.y,u.z).toVar();return m.assign(S(m,a.colorC,r.mul(.3))),m.mul(s)}),ee),re={$name:"Grid",countU:32,countV:16,thinness:.8,color:new aa(0),background:new aa(16777215),flat:0},te=Pa((a=>{a=$a(a,re);var r=d(a.flat,q.x.div(q.y),2),t=d(a.flat,D,G(w.normalize())).toVar(),n=c(t.x,r,Math.PI),s=c(t.y,Math.PI).toVar(),m=O($(c(t.x,a.countU)),a.countU),i=O($(c(t.y,a.countV)),a.countV),v=c(m,r,Math.PI),g=c(i,Math.PI),V=P(o(n,v)).mul(d(a.flat,1,u(s))),y=P(o(s,g)),h=e(V,y),f=c(e(O(r.mul(Math.PI),a.countU),O(Math.PI,a.countV)),F(p(a.thinness,.5),0,1,.9,.04),.5),z=W(b(o(f,.002),l(f,.002),h));return S(a.background,a.color,z)}),re),ne={$name:"Isolines",scale:2,density:40,blur:.3,thinness:.6,color:new aa(16777215),background:new aa(0),seed:0},le=Pa((a=>{a=$a(a,ne);var e=w.mul(A(a.scale)).add(a.seed).toVar(),r=x(e).mul(a.density);return r=W(u(r)).div(2),r=b(o(a.thinness,a.blur),l(a.thinness,a.blur),r),S(a.color,a.background,r)}),ne),se={$name:"Karst rock",scale:2,color:new aa(16774384),background:new aa(13684944),seed:0},de=Pa((a=>{a=$a(a,se);var e=w.mul(A(a.scale)).add(a.seed.sin().mul(5)).toVar(),o=e.add(x(e.mul(2))).toVar(),r=x(o).div(x(o.mul(1.01))).clamp(0,2).toVar();return r.addAssign(x(e.mul(100)).div(3)),r.addAssign(x(e.mul(2)).div(2)),S(a.background,a.color,r).mul(r.pow(.1))}),se),ue={$name:"Marble",scale:1.2,thinness:5,noise:.3,color:new aa(4539859),background:new aa(15792383),seed:0},me=Pa((a=>{a=$a(a,ue);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=l(x(e),x(e.mul(2)).mul(.5),x(e.mul(6)).mul(.1)),r=(o=W(o.abs().pow(2.5)).toVar(),W(p(.5,a.thinness.add(7))).toVar()),t=W(p(.5,a.thinness.add(7).mul(.5))).toVar();return s(o.greaterThan(r),(()=>{o.assign(1)})).ElseIf(o.lessThan(t),(()=>{o.assign(0)})).Else((()=>{var a=o.sub(t),n=r.sub(t);o.assign(p(O(a,n),5).mul(.75)),o.assign(o.mul(l(.5,x(e.mul(2)).mul(1.5))))})),o.assign(o.add(c(a.noise,x(e.mul(150)).abs().pow3()))),S(a.background,a.color,o)}),ue),ie={$name:"Neon Lights",scale:1.5,thinness:.8,mode:0,colorA:new aa(16711680),colorB:new aa(65280),colorC:new aa(255),background:new aa(0),seed:0},ce=Pa((a=>{a=$a(a,ie);var e=w,o=A(a.scale.remap(0,4,2,-2)).toVar(),r=A(a.thinness.remap(0,1,1.5,0)).toVar(),n=a.background.toVar(),l=t(0).toVar(),s=x(e.xyz).toVar(),u=x(e.yzx).toVar(),m=x(e.zxy).toVar(),i=x(t(s,u,m).mul(o).add(a.seed)).toVar();i.assign(W(N(P(i))).pow(3)),l.assign(a.colorA);var c=na(l);l.assign(ta(c.x,c.y,c.z.mul(i))),n.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),i.assign(x(t(u,m,s).mul(o).sub(a.seed))),i.assign(W(N(P(i))).pow(3)),l.assign(a.colorB);c=na(l);l.assign(ta(c.x,c.y,c.z.mul(i))),n.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),i.assign(x(t(m,s,u.negate()).mul(o).add(a.seed))),i.assign(W(N(P(i))).pow(3)),l.assign(a.colorC);c=na(l);return l.assign(ta(c.x,c.y,c.z.mul(i))),n.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),n}),ie),ve={$name:"Photosphere",scale:2,color:new aa(16776960),background:new aa(16711680),seed:0},ge=Pa((a=>{a=$a(a,ve);var e=A(a.scale.add(1)).toVar(),o=w.toVar(),r=t(o).toVar();R(6,(()=>{r.assign(da(r,o.mul(e))),e.mulAssign(a.seed.mul(e).sin().mul(.05).add(1.1))}));var n=x(r).add(1).div(2);return S(a.background,a.color,n)}),ve),pe={$name:"Planet",scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new aa(1194585).convertLinearToSRGB(),colorShallow:new aa(8900331).convertLinearToSRGB(),colorBeach:new aa(16775885).convertLinearToSRGB(),colorGrass:new aa(3978097).convertLinearToSRGB(),colorForest:new aa(12288).convertLinearToSRGB(),colorSnow:new aa(15794175).convertLinearToSRGB(),seed:0},Ve=Pa((a=>{a=$a(a,pe);var e=n(0).toVar(),o=n(0).toVar(),r=A(a.scale.sub(2)).toVar(),l=n(2).toVar();R(a.iterations.add(10),(()=>{e.addAssign(c(l,x(w.mul(r).add(a.seed)))),o.addAssign(l),r.mulAssign(1.5),l.mulAssign(.8)})),e.assign(c(e,e,.5).div(o));var d=a.levelSea.pow(2).toVar(),u=a.levelMountain.pow(2).toVar(),m=S(d,u,a.balanceSand).toVar(),i=S(d,m,.4).toVar(),v=S(d,m,.6).toVar(),p=t().toVar();return s(e.lessThan(d),(()=>{p.assign(S(a.colorDeep,a.colorShallow,g(e,0,d,0,1).pow(A(a.balanceWater.mul(-8).add(4)))))})).ElseIf(e.lessThan(i),(()=>{p.assign(S(a.colorShallow,a.colorBeach,g(e,d,i)))})).ElseIf(e.lessThan(v),(()=>{p.assign(a.colorBeach)})).ElseIf(e.lessThan(m),(()=>{p.assign(S(a.colorBeach,a.colorGrass,g(e,v,m)))})).ElseIf(e.lessThan(u),(()=>{p.assign(S(a.colorGrass,a.colorForest,g(e,m,u).pow(.75)))})).Else((()=>{var o=S(1,u,a.balanceSnow);p.assign(S(a.colorForest,a.colorSnow,b(S(o,u,a.balanceSnow.pow(.5)),o,e)))})),p}),pe),ye={$name:"Polka dots",count:2,size:.5,blur:.25,color:new aa(0),background:new aa(16777215),flat:0},be=(1+5**.5)/2,we=Pa((a=>{a=$a(a,ye);var o=n(1).toVar();s(a.flat.equal(1),(()=>{var e=a.count.pow(2).sub(.5).toVar(),r=w.xy.mul(e).mul(Y(1,1,-1,1)),t=r.round().toVar();o.assign(r.distance(t).div(e))})).Else((()=>{var t=p(10,a.count).toVar(),s=w.normalize().toVar(),d=W(s.y).mul(t).sub(1).div(2),u=r(10,t.pow(.5)),m=d.sub(u).floor().clamp(0,t),i=d.add(u).floor().clamp(0,t);o.assign(1).toVar(),R(i.sub(m),(({i:a})=>{var r=l(a,m),d=j(c(2*Math.PI/be,r),2*Math.PI),u=T(W(n(r).mul(2).add(1).div(t))),i=sa(u,d);o.assign(e(o,U(s,i)))}))}));var t=A(a.size.mul(5).sub(5)).toVar(),d=a.blur.pow(4).toVar(),u=b(t.sub(d),t.add(d),o);return S(a.color,a.background,u)}),ye),he={$name:"Processed wood",$width:260,scale:2,length:4,strength:.3,angle:0,color:new aa(7348256),background:new aa(15782048),seed:0},fe=Pa((a=>{a=$a(a,he);var e=H(a.angle).toVar(),r=t(o(w.x.mul(m(e)),w.y.mul(u(e))),l(w.x.mul(u(e)),w.y.mul(m(e))),w.z).toVar(),n=a.scale.div(2).add(1).toVar(),s=r.mul(A(n)).add(a.seed).toVar(),d=a.length.add(5).reciprocal().toVar(),i=x(s.mul(n,t(1,d,d)));return i=(i=i.mul(x(s.mul(t(25,1,1))).add(-1).mul(.2))).add(a.strength.sub(.5)).smoothstep(-.3,.3).oneMinus(),S(a.color,a.background,i)}),he),ze={$name:"Protozoa",scale:1.5,fat:.7,amount:.4,color:new aa(10526880),subcolor:new aa(14739711),background:new aa(15792383),seed:0},xe=a((([a,e])=>x(a).mul(e).clamp(-3.14,3.14).cos().add(1).div(2))),ke=Pa((a=>{a=$a(a,ze);var e=w.mul(A(a.scale.sub(1))).add(a.seed).toVar(),o=t(Z,Z.length()).toVar(),r=n(0).toVar(),l=n(0).toVar(),s=n(0).toVar(),d=n(0).toVar(),u=a.fat.add(.2).oneMinus().mul(60).add(30).toVar(),m=n(2).toVar(),i=a.amount.div(2).add(.5).exp().toVar();return R(10,(()=>{r.assign(xe(e.xyz.add(o),u)),l.assign(xe(e.yzx.add(o),u)),s.addAssign(r.mul(l).mul(m)),d.addAssign(r.max(l).mul(m)),e.assign(S(e.mul(i),0,.4)),m.mulAssign(.9)})),S(a.background,S(a.color,a.subcolor,d.mul(.1)),s)}),ze),Ae={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new ea(.4,-.6,0),center:new ea(0,0,0),selectorCenter:new ea(0,0,0),selectorAngles:new oa(0,0),selectorWidth:2},$e=a((([a,e])=>{var o=wa(a,e.selectorAngles,e.selectorCenter,e.selectorWidth),r=Va(e.angles.mul(o)),t=ba(e.center),n=ba(e.center.negate());return t.mul(r).mul(n).mul(i(a,1)).xyz})),Me=Pa((a=>(a=$a(a,Ae),$e(w,a))),Ae);Me.normal=Pa((a=>{a=$a(a,Ae);var e=w,r=L.normalize().toVar(),t=C.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=$e(e,a),s=$e(e.add(t),a),d=$e(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),Ae);var Pe={$name:"Rough clay",$normalNode:!0,scale:2,bump:.5,curvature:.2,seed:0},Ie=a((([a,e,o,r])=>{var t=X(a.add(x(a).mul(r))).add(.8).pow(5).toVar();return t.addAssign(t.pow(.5)),a.add(e.mul(t).mul(o))})),Se=Pa((a=>{var e=(a=$a(a,Pe)).bump.div(50).toVar(),r=w.mul(A(a.scale.div(2))).add(a.seed.sin().mul(10)).toVar(),t=L.normalize().toVar(),n=C.normalize().mul(.001).toVar(),l=v(t,n).normalize().mul(.001).toVar(),s=Ie(r,t,e,a.curvature),d=Ie(r.add(n),t,e,a.curvature),u=Ie(r.add(l),t,e,a.curvature),m=o(d,s),i=o(u,s);return z(v(m,i).normalize())}),Pe),Te={$name:"Runny eggs",scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new aa("orange"),colorWhite:new aa("white"),colorBackground:new aa("lightgray"),seed:0},Ee=Pa((a=>{a=$a(a,Te);var e=w.mul(A(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),o=a.sizeYolk.oneMinus(),r=a.sizeWhite.oneMinus(),t=X(e).toVar(),n=t.add(r).pow(8).oneMinus().clamp(-.5,1),l=t.add(o).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return S(a.colorBackground,S(a.colorWhite,a.colorYolk,l),n)}),Te),Le=a((([a,e,o,r,t])=>{var n=X(a).toVar(),l=n.add(t).pow(8).oneMinus(),s=n.add(r).pow(18).oneMinus().clamp(0,1),d=S(0,S(0,1,s),l);return a.add(e.mul(d).mul(o))}));Ee.normal=Pa((a=>{a=$a(a,Te);var e=.05,r=w.mul(A(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),t=L.normalize().toVar(),n=C.normalize().mul(.001).toVar(),l=v(t,n).normalize().mul(.001).toVar(),s=a.sizeYolk.oneMinus(),d=a.sizeWhite.oneMinus(),u=Le(r,t,e,s,d),m=Le(r.add(n),t,e,s,d),i=Le(r.add(l),t,e,s,d),c=o(m,u),g=o(i,u);return z(v(c,g).normalize())}),Te),Ee.roughness=Pa((a=>{a=$a(a,Te);var e=w.mul(A(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),o=a.sizeYolk.oneMinus();return X(e).toVar().add(o).pow(18).clamp(0,1)}),Te);var Ce={$name:"rust",scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new aa(12615680),background:new aa(32),seed:0},Re=a((a=>{var e=w.mul(A(a.scale.div(4).add(-1))).add(a.seed).toVar(),o=a.amount.mul(x(e.mul(a.amount.div(2).add(4))).add(4)).toVar(),r=x(e).toVar();return R(a.iterations,(()=>{e.mulAssign(2),r.addAssign(x(e))})),r.subAssign(x(e.mul(2)).abs()),r.assign(r.sub(o).clamp(0,15)),r})),Be=Pa((a=>{a=$a(a,Ce);var e=Re(a).mul(1.25).pow(.5),o=w.mul(A(a.scale.add(a.noiseScale.mul(3),2)));return e.addAssign(a.noise.mul(x(o).abs().add(.1).pow(2))),S(a.color,a.background,e)}),Ce);Be.opacity=Pa((a=>(a=$a(a,Ce),Re(a).mul(a.opacity.add(.2)).oneMinus())),Ce);var We={$name:"Satin",scale:2,color:new aa(7373055),background:new aa(80),seed:0},qe=Pa((a=>{a=$a(a,We);var e=w.toVar(),o=A(a.scale.div(3)).toVar(),r=x(t(x(t(e.x.mul(2),e.y,e.z).mul(o)),x(t(e.x,e.y.mul(2),e.z).mul(o)),x(t(e.x,e.y,e.z.mul(2)).mul(o))).mul(o).add(a.seed));return r=p(P(r),3).mul(20),S(a.background,a.color,r)}),We);qe.defaults={$name:"Satin",scale:2,color:new aa(7373055),background:new aa(80),seed:0};var De={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new ea(.01,.9,1.7),center:new ea(0,0,0),selectorCenter:new ea(0,0,0),selectorAngles:new oa(0,0),selectorWidth:2},Ge=a((([a,e])=>{var o=wa(a,e.selectorAngles,e.selectorCenter,e.selectorWidth),r=ya(S(t(1,1,1),e.scales,o)),n=ba(e.center),l=ba(e.center.negate());return n.mul(r).mul(l).mul(i(a,1)).xyz})),Oe=Pa((a=>(a=$a(a,De),Ge(w,a))),De);Oe.normal=Pa((a=>{a=$a(a,De);var e=w,r=L.normalize().toVar(),t=C.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=Ge(e,a),s=Ge(e.add(t),a),d=Ge(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),De);var Fe={$name:"Scepter head",xFactor:10,yFactor:22,zFactor:10,colorRim:new aa(16777215),colorA:new aa(7397631),colorB:new aa(3145983)},Ne=Pa((a=>{a=$a(a,Fe);var e=w,o=e.x.mul(ia(a.xFactor,0,100,1.35,30)).toVar(),n=e.y.mul(ia(a.yFactor,0,100,1.35,30)).toVar(),s=e.z.mul(ia(a.zFactor,0,100,1.35,30)).toVar(),d=m(o).toVar(),u=m(n).toVar(),i=m(s).toVar(),v=x(t(e.x.div(d),e.y.div(u),e.z.div(i)));v=_(v).mul(P(v).pow(.75));var g=P(c(o,K(o)).add(1).div(m(o))),p=P(c(n,K(n)).add(1).div(m(n))),V=P(c(s,K(s)).add(1).div(m(s))),y=t().toVar(),b=P(B(o.mul(2/Math.PI).add(1).div(2))),h=P(B(n.mul(2/Math.PI).add(1).div(2))),f=P(B(s.mul(2/Math.PI).add(1).div(2))),z=j(l(b,h,f),2);y.assign(na(S(a.colorA,a.colorB,z)));var k=ta(y.x,y.y,y.z.mul(v)).toVar();y.assign(na(a.colorRim));var A=ta(y.x,y.y,c(2,v,y.z)).toVar();return S(k,A,F(r(g,r(p,V)),45,65))}),Fe),Ye={$name:"Scream",scale:2,variety:1,color:new aa(15790176),background:new aa(13668496),seed:0},je=Pa((a=>{a=$a(a,Ye);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=x(l(u(e.xyz),m(e.yzx)));e.assign(w.mul(A(a.scale).mul(o)).add(a.seed));o=x(l(u(e.xyz),m(e.yzx)).mul(2));var r=S(a.background,a.color,o).toVar(),t=na(r).toVar();return ta(l(t.x,a.variety.mul(u(o.mul(Math.PI))).mul(.5)),t.y,t.z)}),Ye);je.defaults={$name:"Scream",scale:2,variety:1,color:new aa(15790176),background:new aa(13668496),seed:0};var Ue={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new aa(16777215),background:new aa(0),seed:0},He=Pa((a=>{a=$a(a,Ue);var e=w.mul(A(a.scale)).add(a.seed),o=E(0,1,x(e).mul(.5,A(a.contrast)).add(.5,a.balance));return S(a.background,a.color,o)}),Ue);He.defaults={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new aa(16777215),background:new aa(0),seed:0};var Ze={$name:"Stars",scale:2,density:2,variation:0,color:new aa(16774640),background:new aa(96),seed:0},Xe=Pa((a=>{a=$a(a,Ze);var e=w.mul(A(a.scale.div(2).add(3))).add(a.seed).toVar(),o=P(x(e)).pow(10).mul(10);o=o.mul(A(a.density.sub(2)));var r=d(o.greaterThan(.1),a.variation.mul(x(e)),0),t=na(S(a.background,a.color,o));return ta(l(t.x,r),t.y,t.z)}),Ze),_e={$name:"Supersphere",$positionNode:!0,exponent:3},Ke=a((([a,e])=>{var o=n(2).pow(e.exponent),r=a.div(a.length()).toVar(),t=r.x.abs().pow(o).add(r.y.abs().pow(o)).add(r.z.abs().pow(o)).pow(n(1).div(o));return r.div(t)})),Qe=Pa((a=>(a=$a(a,_e),Ke(w,a))),_e);Qe.normal=Pa((a=>{a=$a(a,_e);var e=w,r=L.normalize().toVar(),t=C.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=Ke(e,a),s=Ke(e.add(t),a),d=Ke(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),_e);var Je={$name:"Tiger fur",scale:2,length:4,blur:.3,strength:.3,hairs:.5,color:new aa(16755200),bottomColor:new aa(16777198),seed:0},ao=Pa((a=>{var e=(a=$a(a,Je)).scale.div(2).add(1).toVar(),o=w.mul(A(e)).add(a.seed).toVar(),r=a.length.add(5).reciprocal().toVar(),n=a.hairs.mul(.3).toVar(),l=x(o.mul(e,t(1,r,r)));l=(l=l.add(x(o.mul(t(25,1,1))).add(1).mul(n))).add(a.strength.sub(.5)).smoothstep(a.blur.negate(),a.blur).oneMinus();var s=w.y.add(n.sub(.5)).smoothstep(-1,.5);return S(a.bottomColor,a.color,s).mul(l)}),Je);ao.defaults={$name:"Tiger fur",scale:2,length:4,blur:.3,strength:.3,hairs:.5,color:new aa(16755200),bottomColor:new aa(16777198),seed:0};var eo={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new ea(-.5,0,.2),selectorCenter:new ea(0,0,0),selectorAngles:new oa(0,0),selectorWidth:.7},oo=a((([a,e])=>{var o=wa(a,e.selectorAngles,e.selectorCenter,e.selectorWidth);return ba(e.distance.mul(o)).mul(i(a,1)).xyz})),ro=Pa((a=>(a=$a(a,eo),oo(w,a))),eo);ro.normal=Pa((a=>{a=$a(a,eo);var e=w,r=L.normalize().toVar(),t=C.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=oo(e,a),s=oo(e.add(t),a),d=oo(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),eo);var to={$name:"Voronoi cells",scale:2,variation:0,facet:0,color:new aa(0),background:new aa(12636415),seed:0},no=a((([a])=>a.add(x(a.mul(Math.PI))))),lo=Pa((a=>{a=$a(a,to);var e=w.mul(A(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=e.round().toVar(),r=o.toVar(),l=n(1).toVar(),d=t().toVar(),u=n().toVar(),m=n(0).toVar();R(27,(()=>{var a=m.mod(3).sub(1),n=m.div(3).floor().mod(3).sub(1),i=m.div(9).floor().sub(1);d.assign(o.add(t(a,n,i))),u.assign(e.distance(no(d)).add(x(e).div(5))),s(u.lessThan(l),(()=>{l.assign(u),r.assign(d)})),m.addAssign(1)}));var i=x(r.mul(Math.PI)).toVar(),c=S(l,i.add(1).div(2),a.facet),v=S(a.color,a.background,c).toVar(),g=t(i.mul(16.8),i.mul(31.4159),i.mul(27.1828)).sin().add(1).div(2);return S(v,S(v,g,a.variation),a.variation)}),to),so={$name:"Water Drops",$normalNode:!0,scale:1.4,density:.5,bump:.6,seed:0},uo=a((([a,e,o,r,t])=>{var n=x(a.add(t)).add(r).clamp(0,1);return n=m(n.mul(Math.PI)).add(1).pow(.5).toVar(),a.add(n.mul(e,o))})),mo=Pa((a=>{a=$a(a,so);var e=w.mul(A(a.scale.div(1).add(1))).toVar(),r=L.normalize().toVar(),n=C.normalize().mul(.001).toVar(),l=v(r,n).normalize().mul(.001).toVar(),s=g(a.density,0,1,1.5,.7).toVar(),d=t(u(a.seed).mul(100),m(a.seed.div(2)).mul(100),u(a.seed.div(3)).mul(100)).toVar(),i=uo(e,r,a.bump,s,d),c=uo(e.add(n),r,a.bump,s,d),p=uo(e.add(l),r,a.bump,s,d),V=o(c,i),y=o(p,i);return z(v(V,y).normalize())}),so),io={$name:"Watermelon",scale:2,stripes:12,variation:.5,noise:.25,color:new aa("yellowgreen"),background:new aa("darkgreen"),flat:0,seed:0},co=Pa((a=>{a=$a(a,io);var e=d(a.flat,a.variation.mul(.85).add(.15),a.variation),o=w.mul(A(a.scale.div(4).add(2))).add(a.seed).toVar(),r=d(a.flat,D,G(w.normalize())).toVar(),n=r.x.mul(a.stripes.round(),d(a.flat,Math.PI,2*Math.PI)).add(x(o.mul(t(1,.3,1))).mul(2)).sin().add(.5).div(2).mul(r.y.remap(0,1,-Math.PI,Math.PI).cos().add(1.2).clamp(0,1)).add(e.mul(2,x(o.mul(1.5)).div(2))).add(e.mul(2,x(o.mul(4)).div(6))).toVar();return n.assign(n.mix(n.round(),.75).add(x(o.mul(2)).mul(a.noise,.5)).add(x(o.mul(3)).mul(a.noise,1)).add(x(o.mul(15)).mul(a.noise,.2)).clamp(0,1)),S(a.background,a.color,n).toVar()}),io),vo={$name:"Wood",scale:2.5,rings:4.5,length:1,angle:0,fibers:.3,fibersDensity:10,color:new aa(.8,.4,0),background:new aa(.4,.1,0),seed:0},go=Pa((a=>{a=$a(a,vo);var e=H(a.angle).toVar(),r=t(o(w.x.mul(m(e)),w.y.mul(u(e))),l(w.x.mul(u(e)),w.y.mul(m(e))),w.z).toVar(),s=r.mul(A(a.scale.sub(3)).mul(t(Q(a.length),4,Q(a.length)))).add(a.seed).toVar(),d=x(s).add(1).mul(10).mul(a.rings);d=d.add(d.cos()).cos().add(1).div(2);var i=n(0).toVar(),v=n(0).toVar(),g=A(a.scale.sub(2)).mul(t(1,a.fibersDensity,1)).toVar(),p=n(2).toVar();return R(10,(()=>{i.addAssign(c(p,x(r.mul(g).add(a.seed)))),v.addAssign(p),g.mulAssign(1.8),p.mulAssign(.6)})),i.assign(c(i,5).div(v).mul(10).sin().add(1).div(2)),S(a.color,a.background,S(d,i,a.fibers))}),vo),po={$name:"Zebra lines",scale:2,thinness:.5,phi:0,theta:0,color:new aa(0),background:new aa(16777215),flat:0},Vo=Pa((a=>{a=$a(a,po);var e=d(a.flat,w,w.normalize()).toVar(),o=d(a.flat,J(m(a.phi),u(a.phi)),sa(a.phi,a.theta)).toVar(),r=d(a.flat,E(o.dot(e),-2,2),T(E(o.dot(e),-1,1))).toVar(),t=A(a.scale.add(1)).toVar(),n=u(r.mul(t)).sub(a.thinness.sub(.5).mul(2));return n=E(n.mul(1e3).div(t),-1,1).mul(.5).add(.5),S(a.background,a.color,n)}),po);export{Pa as TSLFn,da as applyEuler,Sa as camouflage,Ea as caveArt,Ca as circles,Wa as clouds,Ga as concrete,Na as cork,ja as dalmatianSpots,la as dynamic,_a as dysonSphere,Qa as entangled,ae as fordite,oe as gasGiant,te as grid,Aa as hideFallbackWarning,ta as hsl,le as isolines,de as karstRock,me as marble,va as matRotX,ga as matRotY,Va as matRotYXZ,pa as matRotZ,ya as matScale,ba as matTrans,ce as neonLights,Ma as noised,fa as normalVector,ha as overlayPlanar,ge as photosphere,Ve as planet,we as polkaDots,$a as prepare,fe as processedWood,ke as protozoa,ia as remapExp,Me as rotator,Se as roughClay,Ee as runnyEggs,Be as rust,qe as satin,Oe as scaler,Ne as scepterHead,je as scream,wa as selectPlanar,ka as showFallbackWarning,He as simplexNoise,sa as spherical,Xe as stars,Qe as supersphere,ao as tigerFur,na as toHsl,ro as translator,ca as vnoise,lo as voronoiCells,mo as waterDrops,co as watermelon,go as wood,Vo as zebraLines};
1
+ /*! TSL Textures v2.2.0 */
2
+ import{Fn as a,min as e,sub as o,max as r,vec3 as t,float as n,add as l,If as s,select as d,sin as u,cos as m,vec4 as i,mul as c,cross as v,remap as g,pow as p,log2 as V,mat4 as y,smoothstep as b,positionGeometry as w,dFdx as h,dFdy as f,transformNormalToView as z,mx_noise_float as x,uniform as k,exp as A,round as M,pow2 as $,abs as P,or as I,mix as T,acos as S,clamp as E,normalLocal as L,tangentLocal as R,Loop as B,atan as C,floor as W,oneMinus as q,screenSize as D,screenUV as G,equirectUV as O,div as F,remapClamp as N,sqrt as Y,mat2 as j,mod as U,distance as H,radians as Z,matcapUV as X,mx_worley_noise_float as _,sign as K,tan as Q,reciprocal as J,vec2 as aa}from"three/tsl";export{mx_noise_float as noise}from"three/tsl";import{Color as ea,Vector3 as oa,Vector2 as ra}from"three";const ta=a((([a,t,n,l])=>{var s=l.add(a.mul(12)).mod(12),d=t.mul(e(n,o(1,n)));return n.sub(d.mul(r(-1,e(e(s.sub(3),o(9,s)),1))))}));ta.setLayout({name:"hslHelper",type:"float",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"},{name:"n",type:"float"}]});const na=a((([a,e,o])=>{a=a.fract().add(1).fract(),e=e.clamp(0,1),o=o.clamp(0,1);var r=ta(a,e,o,0),n=ta(a,e,o,8),l=ta(a,e,o,4);return t(r,n,l)}));na.setLayout({name:"hsl",type:"vec3",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"}]});const la=a((([a])=>{var u=n(a.x).toVar(),m=n(a.y).toVar(),i=n(a.z).toVar(),c=r(u,r(m,i)).toVar(),v=e(u,e(m,i)).toVar(),g=n(0).toVar(),p=n(0).toVar(),V=l(c,v).div(2);return s(v.notEqual(c),(()=>{const a=o(c,v).toVar();p.assign(d(V.lessThanEqual(.5),a.div(l(v,c)),a.div(o(2,l(v,c))))),s(c.equal(u),(()=>{g.assign(o(m,i).div(a).add(d(m.lessThanEqual(i),6,0)))})).ElseIf(c.equal(m),(()=>{g.assign(o(i,u).div(a).add(2))})).Else((()=>{g.assign(o(u,m).div(a).add(4))})),g.divAssign(6)})),t(g,p,V)}));function sa(a){var e={};for(var[o,r]of Object.entries(a))"$"!=o[0]&&(e[o]=r instanceof oa?k(r,"vec3"):k(r));return e}la.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const da=a((([a,e])=>t(u(e).mul(u(a)),m(a),m(e).mul(u(a)))));da.setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]});const ua=a((([a,e])=>{var o=ma(e);return ia(a,o)}));ua.setLayout({name:"applyEuler",type:"vec4",inputs:[{name:"vec",type:"vec3"},{name:"eu",type:"vec3"}]});const ma=a((([a])=>{var e=m(a.x.div(2)),r=m(a.y.div(2)),t=m(a.z.div(2)),n=u(a.x.div(2)),s=u(a.y.div(2)),d=u(a.z.div(2));return i(l(c(n,r,t),c(e,s,d)),o(c(e,s,t),c(n,r,d)),l(c(e,r,d),c(n,s,t)),o(c(e,r,t),c(n,s,d)))}));ma.setLayout({name:"quaternionFromEuler",type:"vec4",inputs:[{name:"eu",type:"vec3"}]});const ia=a((([a,e])=>{var o=v(e.xyz,a).mul(2).toVar();return l(a,o.mul(e.w),v(e.xyz,o))}));ia.setLayout({name:"applyQuaternion",type:"vec3",inputs:[{name:"vec",type:"vec3"},{name:"quat",type:"vec4"}]});const ca=a((([a,e,o,r,t])=>(a=g(a,e,o,0,1),a=p(2,c(a,V(t.div(r))).add(V(r))))));ca.setLayout({name:"remapExp",type:"float",inputs:[{name:"x",type:"float"},{name:"fromMin",type:"float"},{name:"fromMax",type:"float"},{name:"toMin",type:"float"},{name:"toMax",type:"float"}]});const va=a((([a])=>a.dot(t(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1)));va.setLayout({name:"vnoise",type:"float",inputs:[{name:"v",type:"vec3"}]});const ga=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return y(1,0,0,0,0,e,o,0,0,o.negate(),e,0,0,0,0,1)}));ga.setLayout({name:"matRotX",type:"mat4",inputs:[{name:"angle",type:"float"}]});const pa=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return y(e,0,o.negate(),0,0,1,0,0,o,0,e,0,0,0,0,1)}));pa.setLayout({name:"matRotY",type:"mat4",inputs:[{name:"angle",type:"float"}]});const Va=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return y(e,o,0,0,o.negate(),e,0,0,0,0,1,0,0,0,0,1)}));Va.setLayout({name:"matRotZ",type:"mat4",inputs:[{name:"angle",type:"float"}]});const ya=a((([a])=>{var e=ga(a.x),o=pa(a.y),r=Va(a.z);return o.mul(e).mul(r)}));ya.setLayout({name:"matRotYXZ",type:"mat4",inputs:[{name:"angles",type:"vec3"}]});const ba=a((([a])=>y(a.x,0,0,0,0,a.y,0,0,0,0,a.z,0,0,0,0,1)));ba.setLayout({name:"matScale",type:"mat4",inputs:[{name:"scales",type:"vec3"}]});const wa=a((([a])=>y(1,0,0,0,0,1,0,0,0,0,1,0,a.x,a.y,a.z,1)));wa.setLayout({name:"matTrans",type:"mat4",inputs:[{name:"vector",type:"vec3"}]});const ha=a((([a,e,o,r])=>{var t=da(e.x,e.y).mul(r).toVar(),n=o.sub(t.div(2)).sub(a).dot(t).div(t.dot(t)).negate();return b(0,1,n)}));ha.setLayout({name:"selectPlanar",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"selAngles",type:"vec2"},{name:"selCenter",type:"vec3"},{name:"selWidth",type:"float"}]});const fa=a((a=>{var e=ha(w,a.selectorAngles,a.selectorCenter,a.selectorWidth).sub(.5).mul(2).abs().oneMinus().pow(.25).negate().mul(a.selectorShow);return t(0,e,e)})),za=a((([a])=>{var e=h(a),o=f(a);return z(v(e,o).normalize())}));za.setLayout({name:"normalVector",type:"vec3",inputs:[{name:"pos",type:"vec3"}]});var xa=null,ka=10;async function Aa(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(xa=document.createElement("div")).innerHTML='\n\t<div style="font-size:1.25em; font-weight:bold;">PLEASE, WAIT</div>\n\t<div style="font-size:0.85em; font-weight:100;" >NO WEBGPU &mdash; TRYING WEBGL2</div>\n\t<div id="counter"></div>\n\t',xa.style.left="calc(50% - 8em)",xa.style.width="16em",xa.style.fontFamily="Bahnschrifts, Arial",xa.style.position="absolute",xa.style.bottom="20px",xa.style.padding="12px 6px",xa.style.border="1px solid white",xa.style.borderRadius="4px",xa.style.background="rgba(0,0,0,0.5)",xa.style.color="white",xa.style.textAlign="center",xa.style.opacity="0.8",xa.style.outline="none",xa.style.zIndex="999",document.body.appendChild(xa)}function Ma(){xa&&(ka>0?ka--:(xa.style.display="none",xa=null))}function $a(a,e){var o=[];for(var r of a)if(r&&"object"==typeof r){o=Object.keys(r);break}var l={...e};for(var s of o)void 0!==a[s]&&(l[s]=a[s]);for(var d of Object.keys(l))"number"==typeof l[d]?l[d]=n(l[d]):l[d]instanceof ea?l[d]=t(l[d].r,l[d].g,l[d].b):l[d]instanceof oa&&(l[d]=t(l[d].x,l[d].y,l[d].z));return l}function Pa(a,e=1,o=1,r=0){return x(a.mul(e,o).add(r))}function Ia(e,o,r=null){const t=a(e,r),n=new Map;n.set("defaults",o),n.set("opacity",null),n.set("roughness",null),n.set("normal",null);const l=function(){};return Object.setPrototypeOf(l,Object.getPrototypeOf(t.call)),new Proxy(l,{get:(a,e,o)=>"defaults"===e?n.get("defaults"):"opacity"===e?n.get("opacity"):"roughness"===e?n.get("roughness"):"normal"===e?n.get("normal"):"fn"===e?t:Reflect.get(t,e,o),set:(a,e,o,r)=>"defaults"===e?(n.set("defaults",o),!0):"opacity"===e?(n.set("opacity",o),!0):"roughness"===e?(n.set("roughness",o),!0):"normal"===e?(n.set("normal",o),!0):Reflect.set(t,e,o,r),apply:(a,e,o)=>Reflect.apply(t,e,o),getOwnPropertyDescriptor:(a,e)=>"defaults"===e?{value:n.get("defaults"),writable:!0,enumerable:!0,configurable:!0}:("opacity"===e&&Reflect.getOwnPropertyDescriptor(null,e),"roughness"===e&&Reflect.getOwnPropertyDescriptor(null,e),"normal"===e&&Reflect.getOwnPropertyDescriptor(null,e),Reflect.getOwnPropertyDescriptor(t,e))})}var Ta={$name:"Camouflage",scale:2,colorA:new ea(12762792),colorB:new ea(10258782),colorC:new ea(9610101),colorD:new ea(7435617),seed:0},Sa=Ia((a=>{a=$a(a,Ta);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=t(0,0,0).toVar();return s(M(x(e,1,.2)).greaterThanEqual(1),(()=>{o.assign(a.colorA)})).ElseIf(M(x(e.yzx,1,.3)).greaterThanEqual(1),(()=>{o.assign(a.colorB)})).ElseIf(M(x(e.zxy,1,.4)).greaterThanEqual(1),(()=>{o.assign(a.colorC)})).Else((()=>{o.assign(a.colorD)})),o}),Ta),Ea={$name:"Cave art",scale:2,thinness:2,noise:.3,color:new ea(13845829),background:new ea(16775408),seed:0},La=Ia((a=>{a=$a(a,Ea);var e=w.mul(A(a.scale)).add(a.seed).toVar(),r=x(e,4).sin().toVar(),t=x(e.mul(1.5),4).cos().toVar(),d=A(o(n(3),a.thinness)),u=o(d,$(P(l(r,t))).mul(20)).toVar();return s(I(r.greaterThan(t),u.lessThan(0)),(()=>{u.assign(0)})),s(u.lessThanEqual(0),(()=>{u.assign(a.noise.mul($(x(e.mul(30)))))})),T(a.background,a.color,u)}),Ea),Ra={$name:"Circles",scale:2,variety:1,color:new ea(15786192),flat:0,seed:0},Ba=Ia((a=>{a=$a(a,Ra);for(var e=d(a.flat,w,w.normalize()),o=S(E(e.y,-1,1)).mul(20),r=A(a.scale.sub(1)),t=o.div(3e3).mul(r),l=n(a.seed.sin().mul(100)).toVar(),s=0;s<=10;s++)l.addAssign(u(t.mul(2**s).sub(Math.PI*s/2)).mul(-s*(s+1)/2));l.assign(l.div(200).clamp(-2,2));var m=la(a.color),i=m.x.add(l.mul(a.variety)).mod(1).mul(10),c=i.floor(),v=i.sub(c);return v=d(v.lessThan(.5),v.pow(1.5),v.pow(1/1.5)),na(c.add(v).div(10),m.y,m.z)}),Ra),Ca={$name:"Clouds",scale:2,density:.5,opacity:1,color:new ea(16777215),subcolor:new ea(10526896),seed:0},Wa=a((a=>{const e=w,o=A(a.scale.div(1.5).sub(.5)),r=l(Pa(e,o,1,a.seed),Pa(e,o,2,a.seed).mul(.8),Pa(e,o,6,a.seed).mul(.1),Pa(e,o,8,a.seed).mul(.07,a.opacity),a.density.remap(0,1,-.5,1.5)),t=E(0,1,c(r,2).pow(1.5).sub(1).mul(a.opacity));return i(T(a.subcolor,a.color,r.clamp(0,1)),t)})),qa=Ia((a=>(a=$a(a,Ca),Wa(a).rgb)),Ca);qa.opacity=Ia((a=>(a=$a(a,Ca),Wa(a).a)),Ca);var Da={$name:"Concrete",$normalNode:!0,scale:2,density:.5,bump:.5,seed:0},Ga=a((([a,e,o,r,t])=>{var n=x(a.add(t)).mul(.5).add(.5);return n=o.mul(p(P(n),r)),a.add(n.mul(e))})),Oa=Ia((a=>{a=$a(a,Da);var e=w.mul(A(a.scale.div(2).add(2))).toVar(),r=L.normalize().toVar(),n=R.normalize().mul(.001).toVar(),l=v(r,n).normalize().mul(.001).toVar(),s=g(a.density,0,1,10,.5).toVar(),d=t(u(a.seed).mul(100),m(a.seed.div(2)).mul(100),u(a.seed.div(3)).mul(100)).toVar(),i=Ga(e,r,a.bump,s,d),c=Ga(e.add(n),r,a.bump,s,d),p=Ga(e.add(l),r,a.bump,s,d),V=o(c,i),y=o(p,i);return z(v(V,y).normalize())}),Da),Fa={$name:"Cork",scale:1,straight:1,noise:.3,color:new ea(16773312),background:new ea(13664352),seed:0},Na=a((([a])=>a.add(va(a)))),Ya=Ia((a=>{a=$a(a,Fa);var e=w.mul(A(a.scale.div(1.5).add(1))).add(a.seed).toVar(),o=e.round().toVar(),r=o.toVar(),l=n(1).toVar(),d=t().toVar(),u=n().toVar(),m=n(0).toVar();B(27,(()=>{var n=m.mod(3).sub(1),i=m.div(3).floor().mod(3).sub(1),c=m.div(9).floor().sub(1);d.assign(o.add(t(n,i,c))),u.assign(e.distance(Na(d))),u.addAssign(x(e.add(d)).div(a.straight.exp())),s(u.lessThan(l),(()=>{l.assign(u),r.assign(d)})),m.addAssign(1)}));var i=x(r.mul(Math.PI)).toVar(),c=x(e.mul(12)).toVar();c.assign(c.sign().mul(c.abs().pow3())),c.addAssign(x(e.mul(40)).div(3));var v=i.add(1).div(2);return T(a.color,a.background,v.add(c.mul(a.noise))).toVar()}),Fa),ja={$name:"Dalmatian spots",$width:260,scale:2,density:.6,color:new ea(16777215),background:new ea(0),seed:0},Ua=Ia((a=>{a=$a(a,ja);var e=w.mul(A(a.scale)).add(a.seed).sub(1e3).toVar(),o=n(1).toVar(),r=n(1.5).sub(a.density).mul(2).toVar(),t=a.density.mul(5).add(5).toVar();return B(t,(()=>{o.mulAssign(x(e).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01)),o.mulAssign(x(e.yzx).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01)),o.mulAssign(x(e.zxy).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01))})),T(a.background,a.color,o.clamp(0,1))}),ja),Ha={$name:"Darth Maul",scale:2,shift:new oa(0,0,0),complexity:0,angle:60,distance:1.9,color:new ea(13639712),background:new ea(0),balance:0,seed:0},Za=Ia((a=>{a=$a(a,Ha);var e=w.add(a.shift).mul(A(a.scale.div(1.5).sub(1))).sub(a.shift).mul(t(1,.5,.5)).toVar(),o=d(w.y.mul(a.angle.radians().cos()).add(w.z.mul(a.angle.radians().sin())).greaterThan(a.distance),1,0);e.x.assign(e.x.add(a.shift.x).abs()),e.y.addAssign(a.seed),e.z.mulAssign(a.shift.z);var r=x(e).toVar(),n=r.sin().mul(r.mul(a.complexity.mul(2).add(1).exp()).sin()).remap(0,.2,1,-1).greaterThan(a.balance).select(0,1),l=d(e.x.greaterThan(x(e.mul(2.3)).abs().mul(.5).add(.02)),1,0),s=w.normalize(),u=C(s.z,s.x).add(Math.PI).mul(4/Math.PI).round().div(4/Math.PI);return t(u.cos(),.3,u.sin()),T(a.background,a.color,n.mul(o).mul(l).clamp(0,1))}),Ha),Xa={$name:"Dyson sphere",scale:2,complexity:2,variation:0,color:new ea(12636415),background:new ea(0),seed:0},_a=a((([a])=>{var e=a.mul(5**.5).fract().toVar();return e.addAssign(e.dot(e.add(t(31.4159,27.1828,14.142)))),e.z.mul(e.x.add(e.y)).fract().mul(2).sub(1)})),Ka=a((([a])=>{var e=a.oneMinus().clamp(0,1).toVar();return e.mul(e).mul(n(3).sub(e.mul(2)))})),Qa=a((([a])=>{var e=a.x.floor().toVar(),o=e.add(1).toVar(),r=a.y.floor().toVar(),n=r.add(1).toVar(),l=a.z.floor().toVar(),s=l.add(1).toVar(),d=Ka(a.x.fract()).toVar(),u=Ka(a.y.fract()).toVar(),m=Ka(a.z.fract()).toVar(),i=Ka(d.oneMinus()).toVar(),c=Ka(u.oneMinus()).toVar(),v=Ka(m.oneMinus()).toVar(),g=_a(t(e,r,l)).mul(i).mul(c).mul(v).toVar(),p=_a(t(e,r,s)).mul(i).mul(c).mul(m).toVar(),V=_a(t(e,n,l)).mul(i).mul(u).mul(v).toVar(),y=_a(t(e,n,s)).mul(i).mul(u).mul(m).toVar(),b=_a(t(o,r,l)).mul(d).mul(c).mul(v).toVar(),w=_a(t(o,r,s)).mul(d).mul(c).mul(m).toVar(),h=_a(t(o,n,l)).mul(d).mul(u).mul(v).toVar(),f=_a(t(o,n,s)).mul(d).mul(u).mul(m).toVar();return g.add(p).add(V).add(y).add(b).add(w).add(h).add(f)})),Ja=Ia((a=>{a=$a(a,Xa);var e=w.mul(A(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=t().toVar(),r=n(1).toVar();return B(a.complexity.add(4),(()=>{o.addAssign(Qa(e.mul(r))),r.addAssign(r)})),T(a.background,a.color,o.x.add(1).div(5))}),Xa),ae={$name:"Entangled",scale:2,density:10,color:new ea(8256),background:new ea(16777215),seed:0},ee=Ia((a=>{a=$a(a,ae);var e=A(a.scale.div(2)).toVar(),o=w.add(a.seed).toVar(),t=n(-1e4).toVar(),l=n(0).toVar();return B(W(n(a.density)),(()=>{l.assign(u(x(c(o,e)).mul(3*Math.PI))),t.assign(r(t,l)),e.mulAssign(1.2)})),t.assign(q(p(P(t),5)).mul(6)),T(a.color,a.background,t)}),ae),oe={$name:"Fordite",scale:2,color:new ea(0,0,0),seed:0},re=Ia((a=>{a=$a(a,oe);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=x(t(x(e),x(e).mul(2),x(e).mul(3))).toVar();return na(o,1,u(c(o,Math.PI,4)).mul(.5).add(.5)).add(a.color)}),oe),te={$name:"Gas giant",scale:2,turbulence:.3,blur:.6,colorA:new ea(16775408),colorB:new ea(15788208),colorC:new ea(11509968),seed:0},ne=Ia((a=>{var e=(a=$a(a,te)).scale.div(2).add(1).toVar(),o=w.mul(A(e)).add(a.seed).toVar(),r=a.turbulence.mul(x(t(0,o.y.mul(.5),0).add(1)).add(x(t(0,o.y.mul(1),0).add(1)).mul(.5),x(t(1,o.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),n=x(o.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);o.addAssign(t(x(o),x(o.yxz),x(o.yzx)).mul(r.mul(n.mul(2).exp())));var l=a.blur.pow(.2).oneMinus().mul(r.add(1)).toVar(),s=x(o.mul(t(0,e,0)));s=(s=s.add(x(o.mul(t(1,15,1))).mul(l))).add(-.5).smoothstep(-1,1).oneMinus();var d=x(t(0,o.y.mul(.75),0)).add(1),u=la(T(a.colorB,a.colorA,d)),m=na(u.x.add(x(o.mul(t(0,e,0))).div(4)),u.y,u.z).toVar();return m.assign(T(m,a.colorC,r.mul(.3))),m.mul(s)}),te),le={$name:"Grid",countU:32,countV:16,thinness:.8,color:new ea(0),background:new ea(16777215),flat:0},se=Ia((a=>{a=$a(a,le);var r=d(a.flat,D.x.div(D.y),2),t=d(a.flat,G,O(w.normalize())).toVar(),n=c(t.x,r,Math.PI),s=c(t.y,Math.PI).toVar(),m=F(M(c(t.x,a.countU)),a.countU),i=F(M(c(t.y,a.countV)),a.countV),v=c(m,r,Math.PI),g=c(i,Math.PI),V=P(o(n,v)).mul(d(a.flat,1,u(s))),y=P(o(s,g)),h=e(V,y),f=c(e(F(r.mul(Math.PI),a.countU),F(Math.PI,a.countV)),N(p(a.thinness,.5),0,1,.9,.04),.5),z=q(b(o(f,.002),l(f,.002),h));return T(a.background,a.color,z)}),le),de={$name:"Isolines",scale:2,density:40,blur:.3,thinness:.6,color:new ea(16777215),background:new ea(0),seed:0},ue=Ia((a=>{a=$a(a,de);var e=w.mul(A(a.scale)).add(a.seed).toVar(),r=x(e).mul(a.density);return r=q(u(r)).div(2),r=b(o(a.thinness,a.blur),l(a.thinness,a.blur),r),T(a.color,a.background,r)}),de),me={$name:"Karst rock",scale:2,color:new ea(16774384),background:new ea(13684944),seed:0},ie=Ia((a=>{a=$a(a,me);var e=w.mul(A(a.scale)).add(a.seed.sin().mul(5)).toVar(),o=e.add(x(e.mul(2))).toVar(),r=x(o).div(x(o.mul(1.01))).clamp(0,2).toVar();return r.addAssign(x(e.mul(100)).div(3)),r.addAssign(x(e.mul(2)).div(2)),T(a.background,a.color,r).mul(r.pow(.1))}),me),ce={$name:"Marble",scale:1.2,thinness:5,noise:.3,color:new ea(4539859),background:new ea(15792383),seed:0},ve=Ia((a=>{a=$a(a,ce);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=l(x(e),x(e.mul(2)).mul(.5),x(e.mul(6)).mul(.1)),r=(o=q(o.abs().pow(2.5)).toVar(),q(p(.5,a.thinness.add(7))).toVar()),t=q(p(.5,a.thinness.add(7).mul(.5))).toVar();return s(o.greaterThan(r),(()=>{o.assign(1)})).ElseIf(o.lessThan(t),(()=>{o.assign(0)})).Else((()=>{var a=o.sub(t),n=r.sub(t);o.assign(p(F(a,n),5).mul(.75)),o.assign(o.mul(l(.5,x(e.mul(2)).mul(1.5))))})),o.assign(o.add(c(a.noise,x(e.mul(150)).abs().pow3()))),T(a.background,a.color,o)}),ce),ge={$name:"Neon Lights",scale:1.5,thinness:.8,mode:0,colorA:new ea(16711680),colorB:new ea(65280),colorC:new ea(255),background:new ea(0),seed:0},pe=Ia((a=>{a=$a(a,ge);var e=w,o=A(a.scale.remap(0,4,2,-2)).toVar(),r=A(a.thinness.remap(0,1,1.5,0)).toVar(),n=a.background.toVar(),l=t(0).toVar(),s=x(e.xyz).toVar(),u=x(e.yzx).toVar(),m=x(e.zxy).toVar(),i=x(t(s,u,m).mul(o).add(a.seed)).toVar();i.assign(q(Y(P(i))).pow(3)),l.assign(a.colorA);var c=la(l);l.assign(na(c.x,c.y,c.z.mul(i))),n.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),i.assign(x(t(u,m,s).mul(o).sub(a.seed))),i.assign(q(Y(P(i))).pow(3)),l.assign(a.colorB);c=la(l);l.assign(na(c.x,c.y,c.z.mul(i))),n.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),i.assign(x(t(m,s,u.negate()).mul(o).add(a.seed))),i.assign(q(Y(P(i))).pow(3)),l.assign(a.colorC);c=la(l);return l.assign(na(c.x,c.y,c.z.mul(i))),n.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),n}),ge),Ve={$name:"Photosphere",scale:2,color:new ea(16776960),background:new ea(16711680),seed:0},ye=Ia((a=>{a=$a(a,Ve);var e=A(a.scale.add(1)).toVar(),o=w.toVar(),r=t(o).toVar();B(6,(()=>{r.assign(ua(r,o.mul(e))),e.mulAssign(a.seed.mul(e).sin().mul(.05).add(1.1))}));var n=x(r).add(1).div(2);return T(a.background,a.color,n)}),Ve),be={$name:"Planet",scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new ea(1194585).convertLinearToSRGB(),colorShallow:new ea(8900331).convertLinearToSRGB(),colorBeach:new ea(16775885).convertLinearToSRGB(),colorGrass:new ea(3978097).convertLinearToSRGB(),colorForest:new ea(12288).convertLinearToSRGB(),colorSnow:new ea(15794175).convertLinearToSRGB(),seed:0},we=Ia((a=>{a=$a(a,be);var e=n(0).toVar(),o=n(0).toVar(),r=A(a.scale.sub(2)).toVar(),l=n(2).toVar();B(a.iterations.add(10),(()=>{e.addAssign(c(l,x(w.mul(r).add(a.seed)))),o.addAssign(l),r.mulAssign(1.5),l.mulAssign(.8)})),e.assign(c(e,e,.5).div(o));var d=a.levelSea.pow(2).toVar(),u=a.levelMountain.pow(2).toVar(),m=T(d,u,a.balanceSand).toVar(),i=T(d,m,.4).toVar(),v=T(d,m,.6).toVar(),p=t().toVar();return s(e.lessThan(d),(()=>{p.assign(T(a.colorDeep,a.colorShallow,g(e,0,d,0,1).pow(A(a.balanceWater.mul(-8).add(4)))))})).ElseIf(e.lessThan(i),(()=>{p.assign(T(a.colorShallow,a.colorBeach,g(e,d,i)))})).ElseIf(e.lessThan(v),(()=>{p.assign(a.colorBeach)})).ElseIf(e.lessThan(m),(()=>{p.assign(T(a.colorBeach,a.colorGrass,g(e,v,m)))})).ElseIf(e.lessThan(u),(()=>{p.assign(T(a.colorGrass,a.colorForest,g(e,m,u).pow(.75)))})).Else((()=>{var o=T(1,u,a.balanceSnow);p.assign(T(a.colorForest,a.colorSnow,b(T(o,u,a.balanceSnow.pow(.5)),o,e)))})),p}),be),he={$name:"Polka dots",count:2,size:.5,blur:.25,color:new ea(0),background:new ea(16777215),flat:0},fe=(1+5**.5)/2,ze=Ia((a=>{a=$a(a,he);var o=n(1).toVar();s(a.flat.equal(1),(()=>{var e=a.count.pow(2).sub(.5).toVar(),r=w.xy.mul(e).mul(j(1,1,-1,1)),t=r.round().toVar();o.assign(r.distance(t).div(e))})).Else((()=>{var t=p(10,a.count).toVar(),s=w.normalize().toVar(),d=q(s.y).mul(t).sub(1).div(2),u=r(10,t.pow(.5)),m=d.sub(u).floor().clamp(0,t),i=d.add(u).floor().clamp(0,t);o.assign(1).toVar(),B(i.sub(m),(({i:a})=>{var r=l(a,m),d=U(c(2*Math.PI/fe,r),2*Math.PI),u=S(q(n(r).mul(2).add(1).div(t))),i=da(u,d);o.assign(e(o,H(s,i)))}))}));var t=A(a.size.mul(5).sub(5)).toVar(),d=a.blur.pow(4).toVar(),u=b(t.sub(d),t.add(d),o);return T(a.color,a.background,u)}),he),xe={$name:"Processed wood",$width:260,scale:2,lengths:4,strength:.3,angle:0,color:new ea(7348256),background:new ea(15782048),seed:0},ke=Ia((a=>{a=$a(a,xe);var e=Z(a.angle).toVar(),r=t(o(w.x.mul(m(e)),w.y.mul(u(e))),l(w.x.mul(u(e)),w.y.mul(m(e))),w.z).toVar(),n=a.scale.div(2).add(1).toVar(),s=r.mul(A(n)).add(a.seed).toVar(),d=a.lengths.add(5).reciprocal().toVar(),i=x(s.mul(n,t(1,d,d)));return i=(i=i.mul(x(s.mul(t(25,1,1))).add(-1).mul(.2))).add(a.strength.sub(.5)).smoothstep(-.3,.3).oneMinus(),T(a.color,a.background,i)}),xe),Ae={$name:"Protozoa",scale:1.5,fat:.7,amount:.4,color:new ea(10526880),subcolor:new ea(14739711),background:new ea(15792383),seed:0},Me=a((([a,e])=>x(a).mul(e).clamp(-3.14,3.14).cos().add(1).div(2))),$e=Ia((a=>{a=$a(a,Ae);var e=w.mul(A(a.scale.sub(1))).add(a.seed).toVar(),o=t(X,X.length()).toVar(),r=n(0).toVar(),l=n(0).toVar(),s=n(0).toVar(),d=n(0).toVar(),u=a.fat.add(.2).oneMinus().mul(60).add(30).toVar(),m=n(2).toVar(),i=a.amount.div(2).add(.5).exp().toVar();return B(10,(()=>{r.assign(Me(e.xyz.add(o),u)),l.assign(Me(e.yzx.add(o),u)),s.addAssign(r.mul(l).mul(m)),d.addAssign(r.max(l).mul(m)),e.assign(T(e.mul(i),0,.4)),m.mulAssign(.9)})),T(a.background,T(a.color,a.subcolor,d.mul(.1)),s)}),Ae),Pe={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new oa(.4,-.6,0),center:new oa(0,0,0),selectorCenter:new oa(0,0,0),selectorAngles:new ra(0,0),selectorWidth:2},Ie=a((([a,e])=>{var o=ha(a,e.selectorAngles,e.selectorCenter,e.selectorWidth),r=ya(e.angles.mul(o)),t=wa(e.center),n=wa(e.center.negate());return t.mul(r).mul(n).mul(i(a,1)).xyz})),Te=Ia((a=>(a=$a(a,Pe),Ie(w,a))),Pe);Te.normal=Ia((a=>{a=$a(a,Pe);var e=w,r=L.normalize().toVar(),t=R.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=Ie(e,a),s=Ie(e.add(t),a),d=Ie(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),Pe);var Se={$name:"Rough clay",$normalNode:!0,scale:2,bump:.5,curvature:.2,seed:0},Ee=a((([a,e,o,r])=>{var t=_(a.add(x(a).mul(r))).add(.8).pow(5).toVar();return t.addAssign(t.pow(.5)),a.add(e.mul(t).mul(o))})),Le=Ia((a=>{var e=(a=$a(a,Se)).bump.div(50).toVar(),r=w.mul(A(a.scale.div(2))).add(a.seed.sin().mul(10)).toVar(),t=L.normalize().toVar(),n=R.normalize().mul(.001).toVar(),l=v(t,n).normalize().mul(.001).toVar(),s=Ee(r,t,e,a.curvature),d=Ee(r.add(n),t,e,a.curvature),u=Ee(r.add(l),t,e,a.curvature),m=o(d,s),i=o(u,s);return z(v(m,i).normalize())}),Se),Re={$name:"Runny eggs",scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new ea("orange"),colorWhite:new ea("white"),colorBackground:new ea("lightgray"),seed:0},Be=Ia((a=>{a=$a(a,Re);var e=w.mul(A(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),o=a.sizeYolk.oneMinus(),r=a.sizeWhite.oneMinus(),t=_(e).toVar(),n=t.add(r).pow(8).oneMinus().clamp(-.5,1),l=t.add(o).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return T(a.colorBackground,T(a.colorWhite,a.colorYolk,l),n)}),Re),Ce=a((([a,e,o,r,t])=>{var n=_(a).toVar(),l=n.add(t).pow(8).oneMinus(),s=n.add(r).pow(18).oneMinus().clamp(0,1),d=T(0,T(0,1,s),l);return a.add(e.mul(d).mul(o))}));Be.normal=Ia((a=>{a=$a(a,Re);var e=.05,r=w.mul(A(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),t=L.normalize().toVar(),n=R.normalize().mul(.001).toVar(),l=v(t,n).normalize().mul(.001).toVar(),s=a.sizeYolk.oneMinus(),d=a.sizeWhite.oneMinus(),u=Ce(r,t,e,s,d),m=Ce(r.add(n),t,e,s,d),i=Ce(r.add(l),t,e,s,d),c=o(m,u),g=o(i,u);return z(v(c,g).normalize())}),Re),Be.roughness=Ia((a=>{a=$a(a,Re);var e=w.mul(A(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),o=a.sizeYolk.oneMinus();return _(e).toVar().add(o).pow(18).clamp(0,1)}),Re);var We={$name:"rust",scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new ea(12615680),background:new ea(32),seed:0},qe=a((a=>{var e=w.mul(A(a.scale.div(4).add(-1))).add(a.seed).toVar(),o=a.amount.mul(x(e.mul(a.amount.div(2).add(4))).add(4)).toVar(),r=x(e).toVar();return B(a.iterations,(()=>{e.mulAssign(2),r.addAssign(x(e))})),r.subAssign(x(e.mul(2)).abs()),r.assign(r.sub(o).clamp(0,15)),r})),De=Ia((a=>{a=$a(a,We);var e=qe(a).mul(1.25).pow(.5),o=w.mul(A(a.scale.add(a.noiseScale.mul(3),2)));return e.addAssign(a.noise.mul(x(o).abs().add(.1).pow(2))),T(a.color,a.background,e)}),We);De.opacity=Ia((a=>(a=$a(a,We),qe(a).mul(a.opacity.add(.2)).oneMinus())),We);var Ge={$name:"Satin",scale:2,color:new ea(7373055),background:new ea(80),seed:0},Oe=Ia((a=>{a=$a(a,Ge);var e=w.toVar(),o=A(a.scale.div(3)).toVar(),r=x(t(x(t(e.x.mul(2),e.y,e.z).mul(o)),x(t(e.x,e.y.mul(2),e.z).mul(o)),x(t(e.x,e.y,e.z.mul(2)).mul(o))).mul(o).add(a.seed));return r=p(P(r),3).mul(20),T(a.background,a.color,r)}),Ge);Oe.defaults={$name:"Satin",scale:2,color:new ea(7373055),background:new ea(80),seed:0};var Fe={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new oa(.01,.9,1.7),center:new oa(0,0,0),selectorCenter:new oa(0,0,0),selectorAngles:new ra(0,0),selectorWidth:2},Ne=a((([a,e])=>{var o=ha(a,e.selectorAngles,e.selectorCenter,e.selectorWidth),r=ba(T(t(1,1,1),e.scales,o)),n=wa(e.center),l=wa(e.center.negate());return n.mul(r).mul(l).mul(i(a,1)).xyz})),Ye=Ia((a=>(a=$a(a,Fe),Ne(w,a))),Fe);Ye.normal=Ia((a=>{a=$a(a,Fe);var e=w,r=L.normalize().toVar(),t=R.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=Ne(e,a),s=Ne(e.add(t),a),d=Ne(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),Fe);var je={$name:"Scepter head",xFactor:10,yFactor:22,zFactor:10,colorRim:new ea(16777215),colorA:new ea(7397631),colorB:new ea(3145983)},Ue=Ia((a=>{a=$a(a,je);var e=w,o=e.x.mul(ca(a.xFactor,0,100,1.35,30)).toVar(),n=e.y.mul(ca(a.yFactor,0,100,1.35,30)).toVar(),s=e.z.mul(ca(a.zFactor,0,100,1.35,30)).toVar(),d=m(o).toVar(),u=m(n).toVar(),i=m(s).toVar(),v=x(t(e.x.div(d),e.y.div(u),e.z.div(i)));v=K(v).mul(P(v).pow(.75));var g=P(c(o,Q(o)).add(1).div(m(o))),p=P(c(n,Q(n)).add(1).div(m(n))),V=P(c(s,Q(s)).add(1).div(m(s))),y=t().toVar(),b=P(W(o.mul(2/Math.PI).add(1).div(2))),h=P(W(n.mul(2/Math.PI).add(1).div(2))),f=P(W(s.mul(2/Math.PI).add(1).div(2))),z=U(l(b,h,f),2);y.assign(la(T(a.colorA,a.colorB,z)));var k=na(y.x,y.y,y.z.mul(v)).toVar();y.assign(la(a.colorRim));var A=na(y.x,y.y,c(2,v,y.z)).toVar();return T(k,A,N(r(g,r(p,V)),45,65))}),je),He={$name:"Scream",scale:2,variety:1,color:new ea(15790176),background:new ea(13668496),seed:0},Ze=Ia((a=>{a=$a(a,He);var e=w.mul(A(a.scale)).add(a.seed).toVar(),o=x(l(u(e.xyz),m(e.yzx)));e.assign(w.mul(A(a.scale).mul(o)).add(a.seed));o=x(l(u(e.xyz),m(e.yzx)).mul(2));var r=T(a.background,a.color,o).toVar(),t=la(r).toVar();return na(l(t.x,a.variety.mul(u(o.mul(Math.PI))).mul(.5)),t.y,t.z)}),He);Ze.defaults={$name:"Scream",scale:2,variety:1,color:new ea(15790176),background:new ea(13668496),seed:0};var Xe={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new ea(16777215),background:new ea(0),seed:0},_e=Ia((a=>{a=$a(a,Xe);var e=w.mul(A(a.scale)).add(a.seed),o=E(0,1,x(e).mul(.5,A(a.contrast)).add(.5,a.balance));return T(a.background,a.color,o)}),Xe);_e.defaults={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new ea(16777215),background:new ea(0),seed:0};var Ke={$name:"Stars",scale:2,density:2,variation:0,color:new ea(16774640),background:new ea(96),seed:0},Qe=Ia((a=>{a=$a(a,Ke);var e=w.mul(A(a.scale.div(2).add(3))).add(a.seed).toVar(),o=P(x(e)).pow(10).mul(10);o=o.mul(A(a.density.sub(2)));var r=d(o.greaterThan(.1),a.variation.mul(x(e)),0),t=la(T(a.background,a.color,o));return na(l(t.x,r),t.y,t.z)}),Ke),Je={$name:"Supersphere",$positionNode:!0,exponent:3},ao=a((([a,e])=>{var o=n(2).pow(e.exponent),r=a.div(a.length()).toVar(),t=r.x.abs().pow(o).add(r.y.abs().pow(o)).add(r.z.abs().pow(o)).pow(n(1).div(o));return r.div(t)})),eo=Ia((a=>(a=$a(a,Je),ao(w,a))),Je);eo.normal=Ia((a=>{a=$a(a,Je);var e=w,r=L.normalize().toVar(),t=R.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=ao(e,a),s=ao(e.add(t),a),d=ao(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),Je);var oo={$name:"Tiger fur",scale:2,lengths:4,blur:.3,strength:.3,hairs:.5,color:new ea(16755200),bottomColor:new ea(16777198),seed:0},ro=Ia((a=>{var e=(a=$a(a,oo)).scale.div(2).add(1).toVar(),o=w.mul(A(e)).add(a.seed).toVar(),r=a.lengths.add(5).reciprocal().toVar(),n=a.hairs.mul(.3).toVar(),l=x(o.mul(e,t(1,r,r)));l=(l=l.add(x(o.mul(t(25,1,1))).add(1).mul(n))).add(a.strength.sub(.5)).smoothstep(a.blur.negate(),a.blur).oneMinus();var s=w.y.add(n.sub(.5)).smoothstep(-1,.5);return T(a.bottomColor,a.color,s).mul(l)}),oo),to={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new oa(-.5,0,.2),selectorCenter:new oa(0,0,0),selectorAngles:new ra(0,0),selectorWidth:.7},no=a((([a,e])=>{var o=ha(a,e.selectorAngles,e.selectorCenter,e.selectorWidth);return wa(e.distance.mul(o)).mul(i(a,1)).xyz})),lo=Ia((a=>(a=$a(a,to),no(w,a))),to);lo.normal=Ia((a=>{a=$a(a,to);var e=w,r=L.normalize().toVar(),t=R.normalize().mul(.01).toVar(),n=v(r,t).normalize().mul(.01).toVar(),l=no(e,a),s=no(e.add(t),a),d=no(e.add(n),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),to);var so={$name:"Voronoi cells",scale:2,variation:0,facet:0,color:new ea(0),background:new ea(12636415),seed:0},uo=a((([a])=>a.add(x(a.mul(Math.PI))))),mo=Ia((a=>{a=$a(a,so);var e=w.mul(A(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=e.round().toVar(),r=o.toVar(),l=n(1).toVar(),d=t().toVar(),u=n().toVar(),m=n(0).toVar();B(27,(()=>{var a=m.mod(3).sub(1),n=m.div(3).floor().mod(3).sub(1),i=m.div(9).floor().sub(1);d.assign(o.add(t(a,n,i))),u.assign(e.distance(uo(d)).add(x(e).div(5))),s(u.lessThan(l),(()=>{l.assign(u),r.assign(d)})),m.addAssign(1)}));var i=x(r.mul(Math.PI)).toVar(),c=T(l,i.add(1).div(2),a.facet),v=T(a.color,a.background,c).toVar(),g=t(i.mul(16.8),i.mul(31.4159),i.mul(27.1828)).sin().add(1).div(2);return T(v,T(v,g,a.variation),a.variation)}),so),io={$name:"Water Drops",$normalNode:!0,scale:1.4,density:.5,bump:.6,seed:0},co=a((([a,e,o,r,t])=>{var n=x(a.add(t)).add(r).clamp(0,1);return n=m(n.mul(Math.PI)).add(1).pow(.5).toVar(),a.add(n.mul(e,o))})),vo=Ia((a=>{a=$a(a,io);var e=w.mul(A(a.scale.div(1).add(1))).toVar(),r=L.normalize().toVar(),n=R.normalize().mul(.001).toVar(),l=v(r,n).normalize().mul(.001).toVar(),s=g(a.density,0,1,1.5,.7).toVar(),d=t(u(a.seed).mul(100),m(a.seed.div(2)).mul(100),u(a.seed.div(3)).mul(100)).toVar(),i=co(e,r,a.bump,s,d),c=co(e.add(n),r,a.bump,s,d),p=co(e.add(l),r,a.bump,s,d),V=o(c,i),y=o(p,i);return z(v(V,y).normalize())}),io),go={$name:"Watermelon",scale:2,stripes:12,variation:.5,noise:.25,color:new ea("yellowgreen"),background:new ea("darkgreen"),flat:0,seed:0},po=Ia((a=>{a=$a(a,go);var e=d(a.flat,a.variation.mul(.85).add(.15),a.variation),o=w.mul(A(a.scale.div(4).add(2))).add(a.seed).toVar(),r=d(a.flat,G,O(w.normalize())).toVar(),n=r.x.mul(a.stripes.round(),d(a.flat,Math.PI,2*Math.PI)).add(x(o.mul(t(1,.3,1))).mul(2)).sin().add(.5).div(2).mul(r.y.remap(0,1,-Math.PI,Math.PI).cos().add(1.2).clamp(0,1)).add(e.mul(2,x(o.mul(1.5)).div(2))).add(e.mul(2,x(o.mul(4)).div(6))).toVar();return n.assign(n.mix(n.round(),.75).add(x(o.mul(2)).mul(a.noise,.5)).add(x(o.mul(3)).mul(a.noise,1)).add(x(o.mul(15)).mul(a.noise,.2)).clamp(0,1)),T(a.background,a.color,n).toVar()}),go),Vo={$name:"Wood",scale:2.5,rings:4.5,lengths:1,angle:0,fibers:.3,fibersDensity:10,color:new ea(.8,.4,0),background:new ea(.4,.1,0),seed:0},yo=Ia((a=>{a=$a(a,Vo);var e=Z(a.angle).toVar(),r=t(o(w.x.mul(m(e)),w.y.mul(u(e))),l(w.x.mul(u(e)),w.y.mul(m(e))),w.z).toVar(),s=r.mul(A(a.scale.sub(3)).mul(t(J(a.lengths),4,J(a.lengths)))).add(a.seed).toVar(),d=x(s).add(1).mul(10).mul(a.rings);d=d.add(d.cos()).cos().add(1).div(2);var i=n(0).toVar(),v=n(0).toVar(),g=A(a.scale.sub(2)).mul(t(1,a.fibersDensity,1)).toVar(),p=n(2).toVar();return B(10,(()=>{i.addAssign(c(p,x(r.mul(g).add(a.seed)))),v.addAssign(p),g.mulAssign(1.8),p.mulAssign(.6)})),i.assign(c(i,5).div(v).mul(10).sin().add(1).div(2)),T(a.color,a.background,T(d,i,a.fibers))}),Vo),bo={$name:"Zebra lines",scale:2,thinness:.5,phi:0,theta:0,color:new ea(0),background:new ea(16777215),flat:0},wo=Ia((a=>{a=$a(a,bo);var e=d(a.flat,w,w.normalize()).toVar(),o=d(a.flat,aa(m(a.phi),u(a.phi)),da(a.phi,a.theta)).toVar(),r=d(a.flat,E(o.dot(e),-2,2),S(E(o.dot(e),-1,1))).toVar(),t=A(a.scale.add(1)).toVar(),n=u(r.mul(t)).sub(a.thinness.sub(.5).mul(2));return n=E(n.mul(1e3).div(t),-1,1).mul(.5).add(.5),T(a.background,a.color,n)}),bo);export{Ia as TSLFn,ua as applyEuler,Sa as camouflage,La as caveArt,Ba as circles,qa as clouds,Oa as concrete,Ya as cork,Ua as dalmatianSpots,Za as darthMaul,sa as dynamic,Ja as dysonSphere,ee as entangled,re as fordite,ne as gasGiant,se as grid,Ma as hideFallbackWarning,na as hsl,ue as isolines,ie as karstRock,ve as marble,ga as matRotX,pa as matRotY,ya as matRotYXZ,Va as matRotZ,ba as matScale,wa as matTrans,pe as neonLights,Pa as noised,za as normalVector,fa as overlayPlanar,ye as photosphere,we as planet,ze as polkaDots,$a as prepare,ke as processedWood,$e as protozoa,ca as remapExp,Te as rotator,Le as roughClay,Be as runnyEggs,De as rust,Oe as satin,Ye as scaler,Ue as scepterHead,Ze as scream,ha as selectPlanar,Aa as showFallbackWarning,_e as simplexNoise,da as spherical,Qe as stars,eo as supersphere,ro as tigerFur,la as toHsl,lo as translator,va as vnoise,mo as voronoiCells,vo as waterDrops,po as watermelon,yo as wood,wo as zebraLines};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tsl-textures",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "A collection of Three.js Shading Language (TSL) textures ",
5
5
  "main": "./src/tsl-textures.js",
6
6
  "module": "./src/tsl-textures.js",
package/src/darth-maul.js CHANGED
@@ -5,13 +5,32 @@
5
5
 
6
6
  import { Color, Vector3 } from "three";
7
7
  import { atan, exp, Fn, mix, positionGeometry, select, vec3 } from 'three/tsl';
8
- import { noise, prepare } from './tsl-utils.js';
8
+ import { noise, prepare, TSLFn } from './tsl-utils.js';
9
9
 
10
10
 
11
11
 
12
- var darthMaul = Fn( ( params ) => {
12
+ var defaults = {
13
+ $name: 'Darth Maul',
14
+
15
+ scale: 2,
16
+ shift: new Vector3( 0, 0, 0 ),
17
+ complexity: 0,
13
18
 
14
- params = prepare( { ...darthMaul.defaults, ...params } );
19
+ angle: 60,
20
+ distance: 1.9,
21
+
22
+ color: new Color( 0xD02020 ),
23
+ background: new Color( 0x000000 ),
24
+ balance: 0,
25
+
26
+ seed: 0,
27
+ };
28
+
29
+
30
+
31
+ var darthMaul = TSLFn( ( params ) => {
32
+
33
+ params = prepare( params, defaults );
15
34
 
16
35
  //var dX = vec3( params.shift.x, 0, 0 );
17
36
 
@@ -34,31 +53,9 @@ var darthMaul = Fn( ( params ) => {
34
53
  var angle = atan( pos_actual.z, pos_actual.x ).add( Math.PI ).mul( 4/Math.PI ).round().div( 4/Math.PI );
35
54
  var pos_center = vec3( angle.cos(), 0.3, angle.sin() );
36
55
 
37
- var kk1 = pos_center.dot( pos_actual.add( vec3( 0, 0.3, 0 ) ) ).acos();
38
- var kk = select( kk1.greaterThan( 2.8 ), 1, 0 );
39
-
40
- return mix( mix( params.background, params.color, k.mul( s ).mul( c ).clamp( 0, 1 ) ), vec3( 1, 1, 0 ), kk );
56
+ return mix( params.background, params.color, k.mul( s ).mul( c ).clamp( 0, 1 ) );
41
57
 
42
- } );
43
-
44
-
45
-
46
- darthMaul.defaults = {
47
- $name: 'Darth Maul',
48
-
49
- scale: 2,
50
- shift: new Vector3( 0, 0, 0 ),
51
- complexity: 0,
52
-
53
- angle: 60,
54
- distance: 1.9,
55
-
56
- color: new Color( 0xD02020 ),
57
- background: new Color( 0x000000 ),
58
- balance: 0,
59
-
60
- seed: 0,
61
- };
58
+ }, defaults );
62
59
 
63
60
 
64
61
 
@@ -14,7 +14,7 @@ var defaults = {
14
14
  $width: 260,
15
15
 
16
16
  scale: 2,
17
- length: 4,
17
+ lengths: 4,
18
18
  strength: 0.3,
19
19
  angle: 0,
20
20
 
@@ -40,7 +40,7 @@ var processedWood = TSLFn( ( params )=>{
40
40
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
41
41
  var pos = posLocal.mul( exp( scale ) ).add( params.seed ).toVar( );
42
42
 
43
- var len = params.length.add( 5 ).reciprocal().toVar();
43
+ var len = params.lengths.add( 5 ).reciprocal().toVar();
44
44
  var k = noise( pos.mul( scale, vec3( 1, len, len ) ) );
45
45
  k = k.mul( noise( pos.mul( vec3( 25, 1, 1 ) ) ).add( -1 ).mul( 0.2 ) );
46
46
  k = k.add( params.strength.sub( 0.5 ) ).smoothstep( -0.3, 0.3 ).oneMinus();
package/src/tiger-fur.js CHANGED
@@ -13,7 +13,7 @@ var defaults = {
13
13
  $name: 'Tiger fur',
14
14
 
15
15
  scale: 2,
16
- length: 4,
16
+ lengths: 4,
17
17
  blur: 0.3,
18
18
  strength: 0.3,
19
19
  hairs: 0.5,
@@ -33,7 +33,7 @@ var tigerFur = TSLFn( ( params )=>{
33
33
  var scale = params.scale.div( 2 ).add( 1 ).toVar();
34
34
  var pos = positionGeometry.mul( exp( scale ) ).add( params.seed ).toVar( );
35
35
 
36
- var len = params.length.add( 5 ).reciprocal().toVar();
36
+ var len = params.lengths.add( 5 ).reciprocal().toVar();
37
37
  var hairs = params.hairs.mul( 0.3 ).toVar();
38
38
  var k = noise( pos.mul( scale, vec3( 1, len, len ) ) );
39
39
  k = k.add( noise( pos.mul( vec3( 25, 1, 1 ) ) ).add( 1 ).mul( hairs ) );
@@ -46,21 +46,5 @@ var tigerFur = TSLFn( ( params )=>{
46
46
  }, defaults );
47
47
 
48
48
 
49
- tigerFur.defaults = {
50
- $name: 'Tiger fur',
51
-
52
- scale: 2,
53
- length: 4,
54
- blur: 0.3,
55
- strength: 0.3,
56
- hairs: 0.5,
57
-
58
- color: new Color( 0xFFAA00 ),
59
- bottomColor: new Color( 0xFFFFEE ),
60
-
61
- seed: 0,
62
- };
63
-
64
-
65
49
 
66
50
  export { tigerFur };
@@ -10,7 +10,7 @@ export { clouds } from './clouds.js';
10
10
  export { concrete } from './concrete.js';
11
11
  export { cork } from './cork.js';
12
12
  export { dalmatianSpots } from './dalmatian-spots.js';
13
- //export { darthMaul } from './darth-maul.js';
13
+ export { darthMaul } from './darth-maul.js';
14
14
  export { dysonSphere } from './dyson-sphere.js';
15
15
  export { entangled } from './entangled.js';
16
16
  export { fordite } from './fordite.js';
package/src/wood.js CHANGED
@@ -13,7 +13,7 @@ var defaults = {
13
13
  $name: 'Wood',
14
14
  scale: 2.5,
15
15
  rings: 4.5,
16
- length: 1,
16
+ lengths: 1,
17
17
  angle: 0,
18
18
  fibers: 0.3,
19
19
  fibersDensity: 10,
@@ -37,7 +37,7 @@ var wood = TSLFn( ( params ) => {
37
37
 
38
38
 
39
39
  // main pattern with rings
40
- var pos = posLocal.mul( exp( params.scale.sub( 3 ) ).mul( vec3( reciprocal( params.length ), 4, reciprocal( params.length ) ) ) ).add( params.seed ).toVar( );
40
+ var pos = posLocal.mul( exp( params.scale.sub( 3 ) ).mul( vec3( reciprocal( params.lengths ), 4, reciprocal( params.lengths ) ) ) ).add( params.seed ).toVar( );
41
41
  var k = noise( pos ).add( 1 ).mul( 10 ).mul( params.rings );
42
42
  k = k.add( k.cos() ).cos().add( 1 ).div( 2 );
43
43