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.
- package/dist/cjs/tsl-textures.js +79 -46
- package/dist/cjs/tsl-textures.min.js +2 -2
- package/dist/tsl-textures.js +80 -48
- package/dist/tsl-textures.min.js +2 -2
- package/package.json +1 -1
- package/src/darth-maul.js +24 -27
- package/src/processed-wood.js +2 -2
- package/src/tiger-fur.js +2 -18
- package/src/tsl-textures.js +1 -1
- package/src/wood.js +2 -2
package/dist/cjs/tsl-textures.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// TSL Textures v2.
|
|
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$
|
|
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$
|
|
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$
|
|
810
|
+
}, defaults$D );
|
|
811
811
|
|
|
812
|
-
var defaults$
|
|
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$
|
|
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$
|
|
853
|
+
}, defaults$C );
|
|
854
854
|
|
|
855
|
-
var defaults$
|
|
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$
|
|
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$
|
|
902
|
+
}, defaults$B );
|
|
903
903
|
|
|
904
|
-
var defaults$
|
|
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$
|
|
946
|
+
params = prepare( params, defaults$A );
|
|
947
947
|
|
|
948
948
|
return _clouds( params ).rgb;
|
|
949
949
|
|
|
950
|
-
}, defaults$
|
|
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$
|
|
957
|
+
params = prepare( params, defaults$A );
|
|
958
958
|
|
|
959
959
|
return _clouds( params ).a;
|
|
960
960
|
|
|
961
|
-
}, defaults$
|
|
961
|
+
}, defaults$A );
|
|
962
962
|
|
|
963
|
-
var defaults$
|
|
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$
|
|
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$
|
|
1009
|
+
}, defaults$z );
|
|
1010
1010
|
|
|
1011
|
-
var defaults$
|
|
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$
|
|
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$
|
|
1080
|
+
}, defaults$y );
|
|
1081
1081
|
|
|
1082
|
-
var defaults$
|
|
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$
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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 — 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 — 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;
|
package/dist/tsl-textures.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// TSL Textures v2.
|
|
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$
|
|
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$
|
|
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$
|
|
809
|
+
}, defaults$D );
|
|
810
810
|
|
|
811
|
-
var defaults$
|
|
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$
|
|
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$
|
|
852
|
+
}, defaults$C );
|
|
853
853
|
|
|
854
|
-
var defaults$
|
|
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$
|
|
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$
|
|
901
|
+
}, defaults$B );
|
|
902
902
|
|
|
903
|
-
var defaults$
|
|
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$
|
|
945
|
+
params = prepare( params, defaults$A );
|
|
946
946
|
|
|
947
947
|
return _clouds( params ).rgb;
|
|
948
948
|
|
|
949
|
-
}, defaults$
|
|
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$
|
|
956
|
+
params = prepare( params, defaults$A );
|
|
957
957
|
|
|
958
958
|
return _clouds( params ).a;
|
|
959
959
|
|
|
960
|
-
}, defaults$
|
|
960
|
+
}, defaults$A );
|
|
961
961
|
|
|
962
|
-
var defaults$
|
|
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$
|
|
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$
|
|
1008
|
+
}, defaults$z );
|
|
1009
1009
|
|
|
1010
|
-
var defaults$
|
|
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$
|
|
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$
|
|
1079
|
+
}, defaults$y );
|
|
1080
1080
|
|
|
1081
|
-
var defaults$
|
|
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$
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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 };
|
package/dist/tsl-textures.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! TSL Textures v2.
|
|
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 — 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 — 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
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
|
|
12
|
+
var defaults = {
|
|
13
|
+
$name: 'Darth Maul',
|
|
14
|
+
|
|
15
|
+
scale: 2,
|
|
16
|
+
shift: new Vector3( 0, 0, 0 ),
|
|
17
|
+
complexity: 0,
|
|
13
18
|
|
|
14
|
-
|
|
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
|
-
|
|
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
|
|
package/src/processed-wood.js
CHANGED
|
@@ -14,7 +14,7 @@ var defaults = {
|
|
|
14
14
|
$width: 260,
|
|
15
15
|
|
|
16
16
|
scale: 2,
|
|
17
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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 };
|
package/src/tsl-textures.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|