tsl-textures
Version:
A collection of Three.js Shading Language (TSL) textures
3 lines (2 loc) • 37.1 kB
JavaScript
/*! TSL Textures v2.1.1 */
"use strict";var o=require("three/tsl"),e=require("three");const a=o.Fn((([e,a,t,s])=>{var r=s.add(e.mul(12)).mod(12),l=a.mul(o.min(t,o.sub(1,t)));return t.sub(l.mul(o.max(-1,o.min(o.min(r.sub(3),o.sub(9,r)),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,s])=>{e=e.fract().add(1).fract(),t=t.clamp(0,1),s=s.clamp(0,1);var r=a(e,t,s,0),l=a(e,t,s,8),n=a(e,t,s,4);return o.vec3(r,l,n)}));t.setLayout({name:"hsl",type:"vec3",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"}]});const s=o.Fn((([e])=>{var a=o.float(e.x).toVar(),t=o.float(e.y).toVar(),s=o.float(e.z).toVar(),r=o.max(a,o.max(t,s)).toVar(),l=o.min(a,o.min(t,s)).toVar(),n=o.float(0).toVar(),d=o.float(0).toVar(),m=o.add(r,l).div(2);return o.If(l.notEqual(r),(()=>{const e=o.sub(r,l).toVar();d.assign(o.select(m.lessThanEqual(.5),e.div(o.add(l,r)),e.div(o.sub(2,o.add(l,r))))),o.If(r.equal(a),(()=>{n.assign(o.sub(t,s).div(e).add(o.select(t.lessThanEqual(s),6,0)))})).ElseIf(r.equal(t),(()=>{n.assign(o.sub(s,a).div(e).add(2))})).Else((()=>{n.assign(o.sub(a,t).div(e).add(4))})),n.divAssign(6)})),o.vec3(n,d,m)}));s.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const r=o.Fn((([e,a])=>o.vec3(o.sin(a).mul(o.sin(e)),o.cos(e),o.cos(a).mul(o.sin(e)))));r.setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]});const l=o.Fn((([o,e])=>{var a=n(e);return d(o,a)}));l.setLayout({name:"applyEuler",type:"vec4",inputs:[{name:"vec",type:"vec3"},{name:"eu",type:"vec3"}]});const n=o.Fn((([e])=>{var a=o.cos(e.x.div(2)),t=o.cos(e.y.div(2)),s=o.cos(e.z.div(2)),r=o.sin(e.x.div(2)),l=o.sin(e.y.div(2)),n=o.sin(e.z.div(2));return o.vec4(o.add(o.mul(r,t,s),o.mul(a,l,n)),o.sub(o.mul(a,l,s),o.mul(r,t,n)),o.add(o.mul(a,t,n),o.mul(r,l,s)),o.sub(o.mul(a,t,s),o.mul(r,l,n)))}));n.setLayout({name:"quaternionFromEuler",type:"vec4",inputs:[{name:"eu",type:"vec3"}]});const d=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))}));d.setLayout({name:"applyQuaternion",type:"vec3",inputs:[{name:"vec",type:"vec3"},{name:"quat",type:"vec4"}]});const m=o.Fn((([e,a,t,s,r])=>(e=o.remap(e,a,t,0,1),e=o.pow(2,o.mul(e,o.log2(r.div(s))).add(o.log2(s))))));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 i=o.Fn((([e])=>e.dot(o.vec3(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1)));i.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 f=o.Fn((([e])=>o.mat4(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)));f.setLayout({name:"matScale",type:"mat4",inputs:[{name:"scales",type:"vec3"}]});const x=o.Fn((([e])=>o.mat4(1,0,0,0,0,1,0,0,0,0,1,0,e.x,e.y,e.z,1)));x.setLayout({name:"matTrans",type:"mat4",inputs:[{name:"vector",type:"vec3"}]});const y=o.Fn((([e,a,t,s])=>{var l=r(a.x,a.y).mul(s).toVar(),n=t.sub(l.div(2)).sub(e).dot(l).div(l.dot(l)).negate();return o.smoothstep(0,1,n)}));y.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=y(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,_=10;function w(a){for(var t of Object.keys(a))"number"==typeof a[t]?a[t]=o.float(a[t]):a[t]instanceof e.Color?a[t]=o.vec3(a[t].r,a[t].g,a[t].b):a[t]instanceof e.Vector3&&(a[t]=o.vec3(a[t].x,a[t].y,a[t].z));return a}function h(e,a=1,t=1,s=0){return o.mx_noise_float(e.mul(a,t).add(s))}var z=o.Fn((e=>{e=w({...z.defaults,...e});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.defaults={$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};var C=o.Fn((e=>{e=w({...C.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),t=o.mx_noise_float(a,4).sin().toVar(),s=o.mx_noise_float(a.mul(1.5),4).cos().toVar(),r=o.exp(o.sub(o.float(3),e.thinness)),l=o.sub(r,o.pow2(o.abs(o.add(t,s))).mul(20)).toVar();return o.If(o.or(t.greaterThan(s),l.lessThan(0)),(()=>{l.assign(0)})),o.If(l.lessThanEqual(0),(()=>{l.assign(e.noise.mul(o.pow2(o.mx_noise_float(a.mul(30)))))})),o.mix(e.background,e.color,l)}));C.defaults={$name:"Cave art",scale:2,thinness:2,noise:.3,color:new e.Color(13845829),background:new e.Color(16775408),seed:0};var F=o.Fn((e=>{e=w({...F.defaults,...e});for(var a=o.select(e.flat,o.positionGeometry,o.positionGeometry.normalize()),r=o.acos(o.clamp(a.y,-1,1)).mul(20),l=o.exp(e.scale.sub(1)),n=r.div(3e3).mul(l),d=o.float(e.seed.sin().mul(100)).toVar(),m=0;m<=10;m++)d.addAssign(o.sin(n.mul(2**m).sub(Math.PI*m/2)).mul(-m*(m+1)/2));d.assign(d.div(200).clamp(-2,2));var i=s(e.color),u=i.x.add(d.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),i.y,i.z)}));F.defaults={$name:"Circles",scale:2,variety:1,color:new e.Color(15786192),flat:0,seed:0};var G=o.Fn((e=>{e=w({...k.defaults,...e});const a=o.positionGeometry,t=o.exp(e.scale.div(1.5).sub(.5)),s=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)),r=o.clamp(0,1,o.mul(s,2).pow(1.5).sub(1).mul(e.opacity));return o.vec4(o.mix(e.subcolor,e.color,s.clamp(0,1)),r)})),k=o.Fn((o=>G(o).rgb));k.opacity=o.Fn((o=>G(o).a)),k.defaults={$name:"Clouds",scale:2,density:.5,opacity:1,color:new e.Color(16777215),subcolor:new e.Color(10526896),seed:0};var M=o.Fn((([e,a,t,s,r])=>{var l=o.mx_noise_float(e.add(r)).mul(.5).add(.5);return l=t.mul(o.pow(o.abs(l),s)),e.add(l.mul(a))})),A=o.Fn((e=>{e=w({...A.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(2))).toVar(),t=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.001).toVar(),r=o.cross(t,s).normalize().mul(.001).toVar(),l=o.remap(e.density,0,1,10,.5).toVar(),n=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(),d=M(a,t,e.bump,l,n),m=M(a.add(s),t,e.bump,l,n),i=M(a.add(r),t,e.bump,l,n),u=o.sub(m,d),c=o.sub(i,d);return o.transformNormalToView(o.cross(u,c).normalize())}));A.defaults={$name:"Concrete",$normalNode:!0,scale:2,density:.5,bump:.5,seed:0};var L=o.Fn((([o])=>o.add(i(o)))),$=o.Fn((e=>{e=w({...$.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(1.5).add(1))).add(e.seed).toVar(),t=a.round().toVar(),s=t.toVar(),r=o.float(1).toVar(),l=o.vec3().toVar(),n=o.float().toVar(),d=o.float(0).toVar();o.Loop(27,(()=>{var m=d.mod(3).sub(1),i=d.div(3).floor().mod(3).sub(1),u=d.div(9).floor().sub(1);l.assign(t.add(o.vec3(m,i,u))),n.assign(a.distance(L(l))),n.addAssign(o.mx_noise_float(a.add(l)).div(e.straight.exp())),o.If(n.lessThan(r),(()=>{r.assign(n),s.assign(l)})),d.addAssign(1)}));var m=o.mx_noise_float(s.mul(Math.PI)).toVar(),i=o.mx_noise_float(a.mul(12)).toVar();i.assign(i.sign().mul(i.abs().pow3())),i.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(i.mul(e.noise))).toVar()}));$.defaults={$name:"Cork",scale:1,straight:1,noise:.3,color:new e.Color(16773312),background:new e.Color(13664352),seed:0};var I=o.Fn((e=>{e=w({...I.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).sub(1e3).toVar(),t=o.float(1).toVar(),s=o.float(1.5).sub(e.density).mul(2).toVar(),r=e.density.mul(5).add(5).toVar();return o.Loop(r,(()=>{t.mulAssign(o.mx_noise_float(a).abs().pow(s).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01)),t.mulAssign(o.mx_noise_float(a.yzx).abs().pow(s).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01)),t.mulAssign(o.mx_noise_float(a.zxy).abs().pow(s).mul(100).sub(50).clamp(0,1).oneMinus()),a.assign(a.mul(1.01))})),o.mix(e.background,e.color,t.clamp(0,1))}));I.defaults={$name:"Dalmatian spots",$width:260,scale:2,density:.6,color:new e.Color(16777215),background:new e.Color(0),seed:0};var T=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)})),P=o.Fn((([e])=>{var a=e.oneMinus().clamp(0,1).toVar();return a.mul(a).mul(o.float(3).sub(a.mul(2)))})),S=o.Fn((([e])=>{var a=e.x.floor().toVar(),t=a.add(1).toVar(),s=e.y.floor().toVar(),r=s.add(1).toVar(),l=e.z.floor().toVar(),n=l.add(1).toVar(),d=P(e.x.fract()).toVar(),m=P(e.y.fract()).toVar(),i=P(e.z.fract()).toVar(),u=P(d.oneMinus()).toVar(),c=P(m.oneMinus()).toVar(),p=P(i.oneMinus()).toVar(),v=T(o.vec3(a,s,l)).mul(u).mul(c).mul(p).toVar(),f=T(o.vec3(a,s,n)).mul(u).mul(c).mul(i).toVar(),x=T(o.vec3(a,r,l)).mul(u).mul(m).mul(p).toVar(),y=T(o.vec3(a,r,n)).mul(u).mul(m).mul(i).toVar(),g=T(o.vec3(t,s,l)).mul(d).mul(c).mul(p).toVar(),V=T(o.vec3(t,s,n)).mul(d).mul(c).mul(i).toVar(),b=T(o.vec3(t,r,l)).mul(d).mul(m).mul(p).toVar(),_=T(o.vec3(t,r,n)).mul(d).mul(m).mul(i).toVar();return v.add(f).add(x).add(y).add(g).add(V).add(b).add(_)})),E=o.Fn((e=>{e=w({...E.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(.5))).add(e.seed).toVar(),t=o.vec3().toVar(),s=o.float(1).toVar();return o.Loop(e.complexity.add(4),(()=>{t.addAssign(S(a.mul(s))),s.addAssign(s)})),o.mix(e.background,e.color,t.x.add(1).div(5))}));E.defaults={$name:"Dyson sphere",scale:2,complexity:2,variation:0,color:new e.Color(12636415),background:new e.Color(0),seed:0};var W=o.Fn((e=>{e=w({...W.defaults,...e});var a=o.exp(e.scale.div(2)).toVar(),t=o.positionGeometry.add(e.seed).toVar(),s=o.float(-1e4).toVar(),r=o.float(0).toVar();return o.Loop(o.floor(o.float(e.density)),(()=>{r.assign(o.sin(o.mx_noise_float(o.mul(t,a)).mul(3*Math.PI))),s.assign(o.max(s,r)),a.mulAssign(1.2)})),s.assign(o.oneMinus(o.pow(o.abs(s),5)).mul(6)),o.mix(e.color,e.background,s)}));W.defaults={$name:"Entangled",scale:2,density:10,color:new e.Color(8256),background:new e.Color(16777215),seed:0};var q=o.Fn((e=>{e=w({...q.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),s=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(s,1,o.sin(o.mul(s,Math.PI,4)).mul(.5).add(.5)).add(e.color)}));q.defaults={$name:"Fordite",scale:2,color:new e.Color(0,0,0),seed:0};var B=o.Fn((e=>{var a=(e=w({...B.defaults,...e})).scale.div(2).add(1).toVar(),r=o.positionGeometry.mul(o.exp(a)).add(e.seed).toVar(),l=e.turbulence.mul(o.mx_noise_float(o.vec3(0,r.y.mul(.5),0).add(1)).add(o.mx_noise_float(o.vec3(0,r.y.mul(1),0).add(1)).mul(.5),o.mx_noise_float(o.vec3(1,r.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),n=o.mx_noise_float(r.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);r.addAssign(o.vec3(o.mx_noise_float(r),o.mx_noise_float(r.yxz),o.mx_noise_float(r.yzx)).mul(l.mul(n.mul(2).exp())));var d=e.blur.pow(.2).oneMinus().mul(l.add(1)).toVar(),m=o.mx_noise_float(r.mul(o.vec3(0,a,0)));m=(m=m.add(o.mx_noise_float(r.mul(o.vec3(1,15,1))).mul(d))).add(-.5).smoothstep(-1,1).oneMinus();var i=o.mx_noise_float(o.vec3(0,r.y.mul(.75),0)).add(1),u=s(o.mix(e.colorB,e.colorA,i)),c=t(u.x.add(o.mx_noise_float(r.mul(o.vec3(0,a,0))).div(4)),u.y,u.z).toVar();return c.assign(o.mix(c,e.colorC,l.mul(.3))),c.mul(m)}));B.defaults={$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};var R=o.Fn((e=>{e=w({...R.defaults,...e});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(),s=o.mul(t.x,a,Math.PI),r=o.mul(t.y,Math.PI).toVar(),l=o.div(o.round(o.mul(t.x,e.countU)),e.countU),n=o.div(o.round(o.mul(t.y,e.countV)),e.countV),d=o.mul(l,a,Math.PI),m=o.mul(n,Math.PI),i=o.abs(o.sub(s,d)).mul(o.select(e.flat,1,o.sin(r))),u=o.abs(o.sub(r,m)),c=o.min(i,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)}));R.defaults={$name:"Grid",countU:32,countV:16,thinness:.8,color:new e.Color(0),background:new e.Color(16777215),flat:0};var N=o.Fn((e=>{e=w({...N.defaults,...e});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)}));N.defaults={$name:"Isolines",scale:2,density:40,blur:.3,thinness:.6,color:new e.Color(16777215),background:new e.Color(0),seed:0};var D=o.Fn((e=>{e=w({...D.defaults,...e});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(),s=o.mx_noise_float(t).div(o.mx_noise_float(t.mul(1.01))).clamp(0,2).toVar();return s.addAssign(o.mx_noise_float(a.mul(100)).div(3)),s.addAssign(o.mx_noise_float(a.mul(2)).div(2)),o.mix(e.background,e.color,s).mul(s.pow(.1))}));D.defaults={$name:"Karst rock",scale:2,color:new e.Color(16774384),background:new e.Color(13684944),seed:0};var U=o.Fn((e=>{e=w({...U.defaults,...e});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)),s=(t=o.oneMinus(t.abs().pow(2.5)).toVar(),o.oneMinus(o.pow(.5,e.thinness.add(7))).toVar()),r=o.oneMinus(o.pow(.5,e.thinness.add(7).mul(.5))).toVar();return o.If(t.greaterThan(s),(()=>{t.assign(1)})).ElseIf(t.lessThan(r),(()=>{t.assign(0)})).Else((()=>{var e=t.sub(r),l=s.sub(r);t.assign(o.pow(o.div(e,l),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)}));U.defaults={$name:"Marble",scale:1.2,thinness:5,noise:.3,color:new e.Color(4539859),background:new e.Color(15792383),seed:0};var Y=o.Fn((e=>{e=w({...Y.defaults,...e});var a=o.positionGeometry,r=o.exp(e.scale.remap(0,4,2,-2)).toVar(),l=o.exp(e.thinness.remap(0,1,1.5,0)).toVar(),n=e.background.toVar(),d=o.vec3(0).toVar(),m=o.mx_noise_float(a.xyz).toVar(),i=o.mx_noise_float(a.yzx).toVar(),u=o.mx_noise_float(a.zxy).toVar(),c=o.mx_noise_float(o.vec3(m,i,u).mul(r).add(e.seed)).toVar();c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),d.assign(e.colorA);var p=s(d);d.assign(t(p.x,p.y,p.z.mul(c))),n.addAssign(o.select(e.mode.equal(0),d,d.negate()).mul(l)),c.assign(o.mx_noise_float(o.vec3(i,u,m).mul(r).sub(e.seed))),c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),d.assign(e.colorB);p=s(d);d.assign(t(p.x,p.y,p.z.mul(c))),n.addAssign(o.select(e.mode.equal(0),d,d.negate()).mul(l)),c.assign(o.mx_noise_float(o.vec3(u,m,i.negate()).mul(r).add(e.seed))),c.assign(o.oneMinus(o.sqrt(o.abs(c))).pow(3)),d.assign(e.colorC);p=s(d);return d.assign(t(p.x,p.y,p.z.mul(c))),n.addAssign(o.select(e.mode.equal(0),d,d.negate()).mul(l)),n}));Y.defaults={$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};var H=o.Fn((e=>{e=w({...H.defaults,...e});var a=o.exp(e.scale.add(1)).toVar(),t=o.positionGeometry.toVar(),s=o.vec3(t).toVar();o.Loop(6,(()=>{s.assign(l(s,t.mul(a))),a.mulAssign(e.seed.mul(a).sin().mul(.05).add(1.1))}));var r=o.mx_noise_float(s).add(1).div(2);return o.mix(e.background,e.color,r)}));H.defaults={$name:"Photosphere",scale:2,color:new e.Color(16776960),background:new e.Color(16711680),seed:0};var Z=o.Fn((e=>{e=w({...Z.defaults,...e});var a=o.float(0).toVar(),t=o.float(0).toVar(),s=o.exp(e.scale.sub(2)).toVar(),r=o.float(2).toVar();o.Loop(e.iterations.add(10),(()=>{a.addAssign(o.mul(r,o.mx_noise_float(o.positionGeometry.mul(s).add(e.seed)))),t.addAssign(r),s.mulAssign(1.5),r.mulAssign(.8)})),a.assign(o.mul(a,a,.5).div(t));var l=e.levelSea.pow(2).toVar(),n=e.levelMountain.pow(2).toVar(),d=o.mix(l,n,e.balanceSand).toVar(),m=o.mix(l,d,.4).toVar(),i=o.mix(l,d,.6).toVar(),u=o.vec3().toVar();return o.If(a.lessThan(l),(()=>{u.assign(o.mix(e.colorDeep,e.colorShallow,o.remap(a,0,l,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,l,m)))})).ElseIf(a.lessThan(i),(()=>{u.assign(e.colorBeach)})).ElseIf(a.lessThan(d),(()=>{u.assign(o.mix(e.colorBeach,e.colorGrass,o.remap(a,i,d)))})).ElseIf(a.lessThan(n),(()=>{u.assign(o.mix(e.colorGrass,e.colorForest,o.remap(a,d,n).pow(.75)))})).Else((()=>{var t=o.mix(1,n,e.balanceSnow);u.assign(o.mix(e.colorForest,e.colorSnow,o.smoothstep(o.mix(t,n,e.balanceSnow.pow(.5)),t,a)))})),u}));Z.defaults={$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};var O=(1+5**.5)/2,X=o.Fn((e=>{e=w({...X.defaults,...e});var a=o.float(1).toVar();o.If(e.flat.equal(1),(()=>{var t=e.count.pow(2).sub(.5).toVar(),s=o.positionGeometry.xy.mul(t).mul(o.mat2(1,1,-1,1)),r=s.round().toVar();a.assign(s.distance(r).div(t))})).Else((()=>{var t=o.pow(10,e.count).toVar(),s=o.positionGeometry.normalize().toVar(),l=o.oneMinus(s.y).mul(t).sub(1).div(2),n=o.max(10,t.pow(.5)),d=l.sub(n).floor().clamp(0,t),m=l.add(n).floor().clamp(0,t);a.assign(1).toVar(),o.Loop(m.sub(d),(({i:e})=>{var l=o.add(e,d),n=o.mod(o.mul(2*Math.PI/O,l),2*Math.PI),m=o.acos(o.oneMinus(o.float(l).mul(2).add(1).div(t))),i=r(m,n);a.assign(o.min(a,o.distance(s,i)))}))}));var t=o.exp(e.size.mul(5).sub(5)).toVar(),s=e.blur.pow(4).toVar(),l=o.smoothstep(t.sub(s),t.add(s),a);return o.mix(e.color,e.background,l)}));X.defaults={$name:"Polka dots",count:2,size:.5,blur:.25,color:new e.Color(0),background:new e.Color(16777215),flat:0};var j=o.Fn((e=>{e=w({...j.defaults,...e});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(),s=e.scale.div(2).add(1).toVar(),r=t.mul(o.exp(s)).add(e.seed).toVar(),l=e.length.add(5).reciprocal().toVar(),n=o.mx_noise_float(r.mul(s,o.vec3(1,l,l)));return n=(n=n.mul(o.mx_noise_float(r.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,n)}));j.defaults={$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};var K=o.Fn((([e,a])=>o.mx_noise_float(e).mul(a).clamp(-3.14,3.14).cos().add(1).div(2))),Q=o.Fn((e=>{e=w({...Q.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.sub(1))).add(e.seed).toVar(),t=o.vec3(o.matcapUV,o.matcapUV.length()).toVar(),s=o.float(0).toVar(),r=o.float(0).toVar(),l=o.float(0).toVar(),n=o.float(0).toVar(),d=e.fat.add(.2).oneMinus().mul(60).add(30).toVar(),m=o.float(2).toVar(),i=e.amount.div(2).add(.5).exp().toVar();return o.Loop(10,(()=>{s.assign(K(a.xyz.add(t),d)),r.assign(K(a.yzx.add(t),d)),l.addAssign(s.mul(r).mul(m)),n.addAssign(s.max(r).mul(m)),a.assign(o.mix(a.mul(i),0,.4)),m.mulAssign(.9)})),o.mix(e.background,o.mix(e.color,e.subcolor,n.mul(.1)),l)}));Q.defaults={$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};var J=o.Fn((([e,a])=>{var t=y(e,a.selectorAngles,a.selectorCenter,a.selectorWidth),s=v(a.angles.mul(t)),r=x(a.center),l=x(a.center.negate());return r.mul(s).mul(l).mul(o.vec4(e,1)).xyz})),oo=o.Fn((e=>(e=w({...oo.defaults,...e}),J(o.positionGeometry,e))));oo.normal=o.Fn((e=>{e=w({...oo.defaults,...e});var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.01).toVar(),r=o.cross(t,s).normalize().mul(.01).toVar(),l=J(a,e),n=J(a.add(s),e),d=J(a.add(r),e),m=o.sub(n,l),i=o.sub(d,l);return o.transformNormalToView(o.cross(m,i).normalize())})),oo.defaults={$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};var eo=o.Fn((([e,a,t,s])=>{var r=o.mx_worley_noise_float(e.add(o.mx_noise_float(e).mul(s))).add(.8).pow(5).toVar();return r.addAssign(r.pow(.5)),e.add(a.mul(r).mul(t))})),ao=o.Fn((e=>{var a=(e=w({...ao.defaults,...e})).bump.div(50).toVar(),t=o.positionGeometry.mul(o.exp(e.scale.div(2))).add(e.seed.sin().mul(10)).toVar(),s=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.001).toVar(),l=o.cross(s,r).normalize().mul(.001).toVar(),n=eo(t,s,a,e.curvature),d=eo(t.add(r),s,a,e.curvature),m=eo(t.add(l),s,a,e.curvature),i=o.sub(d,n),u=o.sub(m,n);return o.transformNormalToView(o.cross(i,u).normalize())}));ao.defaults={$name:"Rough clay",$normalNode:!0,scale:2,bump:.5,curvature:.2,seed:0};var to=o.Fn((e=>{e=w({...to.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),t=e.sizeYolk.oneMinus(),s=e.sizeWhite.oneMinus(),r=o.mx_worley_noise_float(a).toVar(),l=r.add(s).pow(8).oneMinus().clamp(-.5,1),n=r.add(t).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return o.mix(e.colorBackground,o.mix(e.colorWhite,e.colorYolk,n),l)})),so=o.Fn((([e,a,t,s,r])=>{var l=o.mx_worley_noise_float(e).toVar(),n=l.add(r).pow(8).oneMinus(),d=l.add(s).pow(18).oneMinus().clamp(0,1),m=o.mix(0,o.mix(0,1,d),n);return e.add(a.mul(m).mul(t))}));to.normal=o.Fn((e=>{e=w({...to.defaults,...e});var a=.05,t=o.positionGeometry.mul(o.exp(e.scale.div(1))).add(e.seed.sin().mul(10)).toVar(),s=o.normalLocal.normalize().toVar(),r=o.tangentLocal.normalize().mul(.001).toVar(),l=o.cross(s,r).normalize().mul(.001).toVar(),n=e.sizeYolk.oneMinus(),d=e.sizeWhite.oneMinus(),m=so(t,s,a,n,d),i=so(t.add(r),s,a,n,d),u=so(t.add(l),s,a,n,d),c=o.sub(i,m),p=o.sub(u,m);return o.transformNormalToView(o.cross(c,p).normalize())})),to.roughness=o.Fn((e=>{e=w({...to.defaults,...e});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)})),to.defaults={$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};var ro=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(),s=o.mx_noise_float(a).toVar();return o.Loop(e.iterations,(()=>{a.mulAssign(2),s.addAssign(o.mx_noise_float(a))})),s.subAssign(o.mx_noise_float(a.mul(2)).abs()),s.assign(s.sub(t).clamp(0,15)),s})),lo=o.Fn((e=>{e=w({...lo.defaults,...e});var a=ro(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)}));lo.opacity=o.Fn((o=>(o=w({...lo.defaults,...o}),ro(o).mul(o.opacity.add(.2)).oneMinus()))),lo.defaults={$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};var no=o.Fn((e=>{e=w({...no.defaults,...e});var a=o.positionGeometry.toVar(),t=o.exp(e.scale.div(3)).toVar(),s=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 s=o.pow(o.abs(s),3).mul(20),o.mix(e.background,e.color,s)}));no.defaults={$name:"Satin",scale:2,color:new e.Color(7373055),background:new e.Color(80),seed:0};var mo=o.Fn((([e,a])=>{var t=y(e,a.selectorAngles,a.selectorCenter,a.selectorWidth),s=f(o.mix(o.vec3(1,1,1),a.scales,t)),r=x(a.center),l=x(a.center.negate());return r.mul(s).mul(l).mul(o.vec4(e,1)).xyz})),io=o.Fn((e=>(e=w({...io.defaults,...e}),mo(o.positionGeometry,e))));io.normal=o.Fn((e=>{e=w({...io.defaults,...e});var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.01).toVar(),r=o.cross(t,s).normalize().mul(.01).toVar(),l=mo(a,e),n=mo(a.add(s),e),d=mo(a.add(r),e),m=o.sub(n,l),i=o.sub(d,l);return o.transformNormalToView(o.cross(m,i).normalize())})),io.defaults={$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};var uo=o.Fn((e=>{e=w({...uo.defaults,...e});var a=o.positionGeometry,r=a.x.mul(m(e.xFactor,0,100,1.35,30)).toVar(),l=a.y.mul(m(e.yFactor,0,100,1.35,30)).toVar(),n=a.z.mul(m(e.zFactor,0,100,1.35,30)).toVar(),d=o.cos(r).toVar(),i=o.cos(l).toVar(),u=o.cos(n).toVar(),c=o.mx_noise_float(o.vec3(a.x.div(d),a.y.div(i),a.z.div(u)));c=o.sign(c).mul(o.abs(c).pow(.75));var p=o.abs(o.mul(r,o.tan(r)).add(1).div(o.cos(r))),v=o.abs(o.mul(l,o.tan(l)).add(1).div(o.cos(l))),f=o.abs(o.mul(n,o.tan(n)).add(1).div(o.cos(n))),x=o.vec3().toVar(),y=o.abs(o.floor(r.mul(2/Math.PI).add(1).div(2))),g=o.abs(o.floor(l.mul(2/Math.PI).add(1).div(2))),V=o.abs(o.floor(n.mul(2/Math.PI).add(1).div(2))),b=o.mod(o.add(y,g,V),2);x.assign(s(o.mix(e.colorA,e.colorB,b)));var _=t(x.x,x.y,x.z.mul(c)).toVar();x.assign(s(e.colorRim));var h=t(x.x,x.y,o.mul(2,c,x.z)).toVar();return o.mix(_,h,o.remapClamp(o.max(p,o.max(v,f)),45,65))}));uo.defaults={$name:"Scepter head",xFactor:10,yFactor:22,zFactor:10,colorRim:new e.Color(16777215),colorA:new e.Color(7397631),colorB:new e.Color(3145983)};var co=o.Fn((e=>{e=w({...co.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale)).add(e.seed).toVar(),r=o.mx_noise_float(o.add(o.sin(a.xyz),o.cos(a.yzx)));a.assign(o.positionGeometry.mul(o.exp(e.scale).mul(r)).add(e.seed));r=o.mx_noise_float(o.add(o.sin(a.xyz),o.cos(a.yzx)).mul(2));var l=o.mix(e.background,e.color,r).toVar(),n=s(l).toVar();return t(o.add(n.x,e.variety.mul(o.sin(r.mul(Math.PI))).mul(.5)),n.y,n.z)}));co.defaults={$name:"Scream",scale:2,variety:1,color:new e.Color(15790176),background:new e.Color(13668496),seed:0};var po=o.Fn((e=>{e=w({...po.defaults,...e});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)}));po.defaults={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new e.Color(16777215),background:new e.Color(0),seed:0};var vo=o.Fn((e=>{e=w({...vo.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(3))).add(e.seed).toVar(),r=o.abs(o.mx_noise_float(a)).pow(10).mul(10);r=r.mul(o.exp(e.density.sub(2)));var l=o.select(r.greaterThan(.1),e.variation.mul(o.mx_noise_float(a)),0),n=s(o.mix(e.background,e.color,r));return t(o.add(n.x,l),n.y,n.z)}));vo.defaults={$name:"Stars",scale:2,density:2,variation:0,color:new e.Color(16774640),background:new e.Color(96),seed:0};var fo=o.Fn((([e,a])=>{var t=o.float(2).pow(a.exponent),s=e.div(e.length()).toVar(),r=s.x.abs().pow(t).add(s.y.abs().pow(t)).add(s.z.abs().pow(t)).pow(o.float(1).div(t));return s.div(r)})),xo=o.Fn((e=>(e=w({...xo.defaults,...e}),fo(o.positionGeometry,e))));xo.normal=o.Fn((e=>{e=w({...xo.defaults,...e});var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.01).toVar(),r=o.cross(t,s).normalize().mul(.01).toVar(),l=fo(a,e),n=fo(a.add(s),e),d=fo(a.add(r),e),m=o.sub(n,l),i=o.sub(d,l);return o.transformNormalToView(o.cross(m,i).normalize())})),xo.defaults={$name:"Supersphere",$positionNode:!0,exponent:3};var yo=o.Fn((e=>{var a=(e=w({...yo.defaults,...e})).scale.div(2).add(1).toVar(),t=o.positionGeometry.mul(o.exp(a)).add(e.seed).toVar(),s=e.length.add(5).reciprocal().toVar(),r=e.hairs.mul(.3).toVar(),l=o.mx_noise_float(t.mul(a,o.vec3(1,s,s)));l=(l=l.add(o.mx_noise_float(t.mul(o.vec3(25,1,1))).add(1).mul(r))).add(e.strength.sub(.5)).smoothstep(e.blur.negate(),e.blur).oneMinus();var n=o.positionGeometry.y.add(r.sub(.5)).smoothstep(-1,.5);return o.mix(e.bottomColor,e.color,n).mul(l)}));yo.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 go=o.Fn((([e,a])=>{var t=y(e,a.selectorAngles,a.selectorCenter,a.selectorWidth);return x(a.distance.mul(t)).mul(o.vec4(e,1)).xyz})),Vo=o.Fn((e=>(e=w({...Vo.defaults,...e}),go(o.positionGeometry,e))));Vo.normal=o.Fn((e=>{e=w({...Vo.defaults,...e});var a=o.positionGeometry,t=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.01).toVar(),r=o.cross(t,s).normalize().mul(.01).toVar(),l=go(a,e),n=go(a.add(s),e),d=go(a.add(r),e),m=o.sub(n,l),i=o.sub(d,l);return o.transformNormalToView(o.cross(m,i).normalize())})),Vo.defaults={$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};var bo=o.Fn((([e])=>e.add(o.mx_noise_float(e.mul(Math.PI))))),_o=o.Fn((e=>{e=w({..._o.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(2).add(.5))).add(e.seed).toVar(),t=a.round().toVar(),s=t.toVar(),r=o.float(1).toVar(),l=o.vec3().toVar(),n=o.float().toVar(),d=o.float(0).toVar();o.Loop(27,(()=>{var e=d.mod(3).sub(1),m=d.div(3).floor().mod(3).sub(1),i=d.div(9).floor().sub(1);l.assign(t.add(o.vec3(e,m,i))),n.assign(a.distance(bo(l)).add(o.mx_noise_float(a).div(5))),o.If(n.lessThan(r),(()=>{r.assign(n),s.assign(l)})),d.addAssign(1)}));var m=o.mx_noise_float(s.mul(Math.PI)).toVar(),i=o.mix(r,m.add(1).div(2),e.facet),u=o.mix(e.color,e.background,i).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)}));_o.defaults={$name:"Voronoi cells",scale:2,variation:0,facet:0,color:new e.Color(0),background:new e.Color(12636415),seed:0};var wo=o.Fn((([e,a,t,s,r])=>{var l=o.mx_noise_float(e.add(r)).add(s).clamp(0,1);return l=o.cos(l.mul(Math.PI)).add(1).pow(.5).toVar(),e.add(l.mul(a,t))})),ho=o.Fn((e=>{e=w({...ho.defaults,...e});var a=o.positionGeometry.mul(o.exp(e.scale.div(1).add(1))).toVar(),t=o.normalLocal.normalize().toVar(),s=o.tangentLocal.normalize().mul(.001).toVar(),r=o.cross(t,s).normalize().mul(.001).toVar(),l=o.remap(e.density,0,1,1.5,.7).toVar(),n=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(),d=wo(a,t,e.bump,l,n),m=wo(a.add(s),t,e.bump,l,n),i=wo(a.add(r),t,e.bump,l,n),u=o.sub(m,d),c=o.sub(i,d);return o.transformNormalToView(o.cross(u,c).normalize())}));ho.defaults={$name:"Water Drops",$normalNode:!0,scale:1.4,density:.5,bump:.6,seed:0};var zo=o.Fn((e=>{e=w({...zo.defaults,...e});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(),s=o.select(e.flat,o.screenUV,o.equirectUV(o.positionGeometry.normalize())).toVar(),r=s.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(s.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 r.assign(r.mix(r.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,r).toVar()}));zo.defaults={$name:"Watermelon",scale:2,stripes:12,variation:.5,noise:.25,color:new e.Color("yellowgreen"),background:new e.Color("darkgreen"),flat:0,seed:0};var Co=o.Fn((e=>{e=w({...Co.defaults,...e});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(),s=t.mul(o.exp(e.scale.sub(3)).mul(o.vec3(o.reciprocal(e.length),4,o.reciprocal(e.length)))).add(e.seed).toVar(),r=o.mx_noise_float(s).add(1).mul(10).mul(e.rings);r=r.add(r.cos()).cos().add(1).div(2);var l=o.float(0).toVar(),n=o.float(0).toVar(),d=o.exp(e.scale.sub(2)).mul(o.vec3(1,e.fibersDensity,1)).toVar(),m=o.float(2).toVar();return o.Loop(10,(()=>{l.addAssign(o.mul(m,o.mx_noise_float(t.mul(d).add(e.seed)))),n.addAssign(m),d.mulAssign(1.8),m.mulAssign(.6)})),l.assign(o.mul(l,5).div(n).mul(10).sin().add(1).div(2)),o.mix(e.color,e.background,o.mix(r,l,e.fibers))}));Co.defaults={$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};var Fo=o.Fn((e=>{e=w({...Fo.defaults,...e});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)),r(e.phi,e.theta)).toVar(),s=o.select(e.flat,o.clamp(t.dot(a),-2,2),o.acos(o.clamp(t.dot(a),-1,1))).toVar(),l=o.exp(e.scale.add(1)).toVar(),n=o.sin(s.mul(l)).sub(e.thinness.sub(.5).mul(2));return n=o.clamp(n.mul(1e3).div(l),-1,1).mul(.5).add(.5),o.mix(e.background,e.color,n)}));Fo.defaults={$name:"Zebra lines",scale:2,thinness:.5,phi:0,theta:0,color:new e.Color(0),background:new e.Color(16777215),flat:0},Object.defineProperty(exports,"noise",{enumerable:!0,get:function(){return o.mx_noise_float}}),exports.applyEuler=l,exports.camouflage=z,exports.caveArt=C,exports.circles=F,exports.clouds=k,exports.concrete=A,exports.cork=$,exports.dalmatianSpots=I,exports.dynamic=function(a){var t={};for(var[s,r]of Object.entries(a))"$"!=s[0]&&(r instanceof e.Vector3?t[s]=o.uniform(r,"vec3"):t[s]=o.uniform(r));return t},exports.dysonSphere=E,exports.entangled=W,exports.fordite=q,exports.gasGiant=B,exports.grid=R,exports.hideFallbackWarning=function(){b&&(_>0?_--:(b.style.display="none",b=null))},exports.hsl=t,exports.isolines=N,exports.karstRock=D,exports.marble=U,exports.matRotX=u,exports.matRotY=c,exports.matRotYXZ=v,exports.matRotZ=p,exports.matScale=f,exports.matTrans=x,exports.neonLights=Y,exports.noised=h,exports.normalVector=V,exports.overlayPlanar=g,exports.photosphere=H,exports.planet=Z,exports.polkaDots=X,exports.prepare=w,exports.processedWood=j,exports.protozoa=Q,exports.remapExp=m,exports.rotator=oo,exports.roughClay=ao,exports.runnyEggs=to,exports.rust=lo,exports.satin=no,exports.scaler=io,exports.scepterHead=uo,exports.scream=co,exports.selectPlanar=y,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=po,exports.spherical=r,exports.stars=vo,exports.supersphere=xo,exports.tigerFur=yo,exports.toHsl=s,exports.translator=Vo,exports.vnoise=i,exports.voronoiCells=_o,exports.waterDrops=ho,exports.watermelon=zo,exports.wood=Co,exports.zebraLines=Fo;