@dailies-studio/tsl-textures 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +142 -0
- package/dist/cjs/tsl-textures.cjs +4749 -0
- package/dist/cjs/tsl-textures.min.cjs +2 -0
- package/dist/tsl-textures.js +4659 -0
- package/dist/tsl-textures.min.js +2 -0
- package/package.json +36 -0
- package/src/brain.js +116 -0
- package/src/bricks.js +116 -0
- package/src/camouflage.js +85 -0
- package/src/caustics.js +75 -0
- package/src/cave-art.js +83 -0
- package/src/circle-decor.js +76 -0
- package/src/circles.js +83 -0
- package/src/clouds.js +114 -0
- package/src/concrete.js +95 -0
- package/src/cork.js +104 -0
- package/src/crumpled-fabric.js +81 -0
- package/src/dalmatian-spots.js +80 -0
- package/src/darth-maul.js +84 -0
- package/src/dyson-sphere.js +144 -0
- package/src/entangled.js +75 -0
- package/src/fordite.js +69 -0
- package/src/gas-giant.js +94 -0
- package/src/grid.js +84 -0
- package/src/halftone.js +252 -0
- package/src/isolayers.js +79 -0
- package/src/isolines.js +72 -0
- package/src/karst-rock.js +67 -0
- package/src/marble.js +96 -0
- package/src/melter.js +76 -0
- package/src/neon-lights.js +107 -0
- package/src/perlin-noise.js +66 -0
- package/src/photosphere.js +73 -0
- package/src/planet.js +168 -0
- package/src/polka-dots.js +106 -0
- package/src/processed-wood.js +80 -0
- package/src/protozoa.js +110 -0
- package/src/reticular-veins.js +72 -0
- package/src/roman-paving.js +58 -0
- package/src/rotator.js +120 -0
- package/src/rough-clay.js +90 -0
- package/src/runny-eggs.js +180 -0
- package/src/rust.js +144 -0
- package/src/satin.js +69 -0
- package/src/scaler.js +111 -0
- package/src/scepter-head.js +94 -0
- package/src/scream.js +72 -0
- package/src/stars.js +72 -0
- package/src/static-noise.js +73 -0
- package/src/supersphere.js +108 -0
- package/src/tiger-fur.js +77 -0
- package/src/translator.js +116 -0
- package/src/tsl-textures.js +63 -0
- package/src/tsl-utils.js +344 -0
- package/src/turbulent-smoke.js +73 -0
- package/src/voronoi-cells.js +99 -0
- package/src/water-drops.js +96 -0
- package/src/watermelon.js +87 -0
- package/src/waves.js +150 -0
- package/src/wood.js +99 -0
- package/src/zebra-lines.js +77 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! TSL Textures v3.0.4 */
|
|
2
|
+
import{Fn as e,vec3 as a,sub as t,transformNormalToView as n,cross as o,remap as s,pow as r,mul as l,log2 as i,min as m,max as u,float as p,add as d,If as c,select as y,sin as v,cos as f,rotate as g,smoothstep as b,mx_fractal_noise_float as w,mix as V,mx_noise_float as h,time as x,positionGeometry as k,or as z,acos as L,clamp as A,exp as R,normalLocal as M,tangentLocal as $,int as S,Loop as C,oneMinus as P,abs as I,equirectUV as T,screenSize as E,exp2 as W,div as B,round as _,remapClamp as q,screenUV as D,sqrt as N,mat2 as F,mod as G,distance as j,radians as Y,matcapUV as U,mx_worley_noise_float as H,sign as O,tan as J,floor as K,screenCoordinate as X,reciprocal as Z,vec2 as Q,mx_worley_noise_vec2 as ee,mx_fractal_noise_vec3 as ae,mx_worley_noise_vec3 as te,vertexColor as ne,Discard as oe,Switch as se,positionView as re}from"three/tsl";export{mx_fractal_noise_float as fractal,mx_fractal_noise_vec3 as fractal3,mx_noise_float as noise,mx_noise_vec3 as noise3,mx_worley_noise_float as voronoi,mx_worley_noise_vec2 as voronoi2,mx_worley_noise_vec3 as voronoi3}from"three/tsl";import{Color as le,Vector3 as ie,Vector2 as me}from"three";const ue=e((([e])=>e.dot(a(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1))).setLayout({name:"vnoise",type:"float",inputs:[{name:"v",type:"vec3"}]}),pe=e((([e,a,s])=>{var r=t(a,e),l=t(s,e);return n(o(r,l).normalize())})).setLayout({name:"approximateNormal",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"posU",type:"vec3"},{name:"posV",type:"vec3"}]}),de=e((([e,a,t,n,o])=>(e=s(e,a,t,0,1),e=r(2,l(e,i(o.div(n))).add(i(n)))))).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"}]});var ce=null,ye=10;async function ve(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(ce=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',ce.style.left="calc(50% - 8em)",ce.style.width="16em",ce.style.fontFamily="Bahnschrifts, Arial",ce.style.position="absolute",ce.style.bottom="20px",ce.style.padding="12px 6px",ce.style.border="1px solid white",ce.style.borderRadius="4px",ce.style.background="rgba(0,0,0,0.5)",ce.style.color="white",ce.style.textAlign="center",ce.style.opacity="0.8",ce.style.outline="none",ce.style.zIndex="999",document.body.appendChild(ce)}function fe(){ce&&(ye>0?ye--:(ce.style.display="none",ce=null))}const ge=e((([e,a,n,o])=>{var s=o.add(e.mul(12)).mod(12),r=a.mul(m(n,t(1,n)));return n.sub(r.mul(u(-1,m(m(s.sub(3),t(9,s)),1))))})).setLayout({name:"hslHelper",type:"float",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"},{name:"n",type:"float"}]}),be=e((([e])=>{var t=e.x.fract().add(1).fract(),n=e.y.clamp(0,1),o=e.z.clamp(0,1),s=ge(t,n,o,0),r=ge(t,n,o,8),l=ge(t,n,o,4);return a(s,r,l)})).setLayout({name:"hsl",type:"vec3",inputs:[{name:"col",type:"vec3"}]}),we=e((([e])=>{var n=p(e.x).toVar(),o=p(e.y).toVar(),s=p(e.z).toVar(),r=u(n,u(o,s)).toVar(),l=m(n,m(o,s)).toVar(),i=p(0).toVar(),v=p(0).toVar(),f=d(r,l).div(2);return c(l.notEqual(r),(()=>{const e=t(r,l).toVar();v.assign(y(f.lessThanEqual(.5),e.div(d(l,r)),e.div(t(2,d(l,r))))),c(r.equal(n),(()=>{i.assign(t(o,s).div(e).add(y(o.lessThanEqual(s),6,0)))})).ElseIf(r.equal(o),(()=>{i.assign(t(s,n).div(e).add(2))})).Else((()=>{i.assign(t(n,o).div(e).add(4))})),i.divAssign(6)})),a(i,v,f)}));we.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const Ve=e((([e,t])=>a(v(t).mul(v(e)),f(e),f(t).mul(v(e))))).setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]}),he=e((([e,a,t])=>g(e.sub(a),t).add(a))).setLayout({name:"rotatePivot",type:"vec3",inputs:[{name:"vector",type:"vec3"},{name:"pivot",type:"vec3"},{name:"angle",type:"vec3"}]}),xe=e((([e,a,t,n])=>{var o=Ve(a.x,a.y).mul(n).toVar(),s=t.sub(o.div(2)).sub(e).dot(o).div(o.dot(o)).negate();return b(0,1,s)})).setLayout({name:"selectPlanar",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"selAngles",type:"vec2"},{name:"selCenter",type:"vec3"},{name:"selWidth",type:"float"}]});var ke={$name:"Brain",position:k,scale:2,smooth:.5,wave:.5,speed:2.5,time:x,color:new le(16765136),background:new le(5242880),seed:0},ze=e((([e,a,t,n,o,s])=>{var r=e.mul(a.div(3).exp()).add(s).toVar("pos"),l=t.oneMinus().mul(2).exp().toVar("octaves"),i=w(r.mul(5),l).add(1).div(2).clamp(0,1).pow(2);return V(n,o,i)})).setLayout({name:"brainRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"xsmooth",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]}),Le=e((([e,t,n,o,s,r,l])=>{var i=e.mul(t.div(3).exp()).add(l).toVar("pos"),m=n.oneMinus().mul(2).exp().toVar("octaves");const u=.01;var p=w(i.mul(5),m).toVar("n"),d=w(i.add(a(u,0,0)).mul(5),m).sub(p).div(u).toVar("dx"),c=w(i.add(a(0,u,0)).mul(5),m).sub(p).div(u).toVar("dy"),y=h(i.mul(o,5)).add(1).div(2).mul(6.28).toVar("dTime");return a(d,c,r.mul(s).add(y).sin().add(p,1)).normalize()})).setLayout({name:"brainNormalRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"xsmooth",type:"float"},{name:"wave",type:"float"},{name:"speed",type:"float"},{name:"time",type:"float"},{name:"seed",type:"float"}]});function Ae(e={}){var{position:a,scale:t,smooth:n,color:o,background:s,seed:r}={...ke,...e};return ze(a,t,n,o,s,r)}Ae.normal=function(e={}){var{position:a,scale:t,smooth:n,wave:o,speed:s,time:r,seed:l}={...ke,...e};return Le(a,t,n,o,s,r,l)},Ae.defaults=ke;var Re={$name:"Camouflage",position:k,scale:2,colorA:new le(12762792),colorB:new le(10258782),colorC:new le(9610101),colorD:new le(7435617),seed:0},Me=e((([e,a,t,n,o,s,r])=>{var l=e.mul(a.exp()).add(r).toVar("pos"),i=s.toVar("color");return c(h(l).greaterThanEqual(.3),(()=>{i.assign(t)})).ElseIf(h(l.yzx).greaterThanEqual(.2),(()=>{i.assign(n)})).ElseIf(h(l.zxy).greaterThanEqual(.1),(()=>{i.assign(o)})),i})).setLayout({name:"camouflageRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"colorA",type:"vec3"},{name:"colorB",type:"vec3"},{name:"colorC",type:"vec3"},{name:"colorD",type:"vec3"},{name:"seed",type:"float"}]});function $e(e={}){var{position:a,scale:t,colorA:n,colorB:o,colorC:s,colorD:r,seed:l}={...Re,...e};return Me(a,t,n,o,s,r,l)}$e.defaults=Re;var Se={$name:"Cave art",position:k,scale:2,thinness:2,noise:.3,color:new le(13845829),background:new le(16775408),seed:0},Ce=e((([e,a,t,n,o,s,r])=>{var l=e.mul(a.exp()).add(r).toVar("pos");t=p(3).sub(t).exp();var i=h(l,4).sin().toVar("k1"),m=h(l.mul(1.5),4).cos().toVar("k2"),u=t.sub(i.add(m).abs().pow2().mul(20)).toVar("k");return c(z(i.greaterThan(m),u.lessThan(0)),(()=>{u.assign(0)})),c(u.lessThanEqual(0),(()=>{u.assign(n.mul(h(l.mul(30)).pow2()))})),V(s,o,u)})).setLayout({name:"caveArtRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"thinness",type:"float"},{name:"xnoise",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Pe(e={}){var{position:a,scale:t,thinness:n,noise:o,color:s,background:r,seed:l}={...Se,...e};return Ce(a,t,n,o,s,r,l)}Pe.defaults=Se;var Ie={$name:"Circles",position:k,scale:2,variety:1,color:new le(15786192),seed:0},Te=e((([e,t,n,o,s])=>{for(var r=e.toVar(),l=L(A(r.y,-1,1)).mul(20).div(3e3).mul(R(t.sub(1))),i=s.sin().mul(100).toVar(),m=0;m<=10;m++)i.addAssign(v(l.mul(2**m).sub(Math.PI*m/2)).mul(-m*(m+1)/2));i.assign(i.div(200).clamp(-2,2));var u=we(o),p=u.x.add(i.mul(n)).mod(1).mul(10),d=p.floor(),c=p.sub(d);return c=y(c.lessThan(.5),c.pow(1.5),c.pow(1/1.5)),be(a(d.add(c).div(10),u.yz))})).setLayout({name:"circlesRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"variety",type:"float"},{name:"color",type:"vec3"},{name:"seed",type:"float"}]});function Ee(e={}){var{position:a,scale:t,variety:n,color:o,seed:s}={...Ie,...e};return Te(a,t,n,o,s)}Ee.defaults=Ie;var We={$name:"Clouds",position:k,scale:2,density:.5,opacity:1,color:new le(16777215),subcolor:new le(10526896),seed:0},Be=e((([e,a,t,n])=>{const o=e.mul(R(a.div(1.5).sub(.5))).add(n).toVar("pos");return w(o,4).add(t.remap(0,1,-.5,1.5))})).setLayout({name:"cloud_core",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"seed",type:"float"}]}),_e=e((([e,a,t,n,o,s])=>{var r=Be(e,a,t,s);return V(o,n,r.clamp(0,1))})).setLayout({name:"cloudsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"color",type:"vec3"},{name:"subcolor",type:"vec3"},{name:"seed",type:"float"}]}),qe=e((([e,a,t,n,o])=>{var s=Be(e,a,t,o);return A(0,1,l(s,2).pow(1.5).sub(1).mul(n))})).setLayout({name:"cloudsOpacityRaw",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"opacity",type:"float"},{name:"seed",type:"float"}]});function De(e={}){var{position:a,scale:t,density:n,color:o,subcolor:s,seed:r}={...We,...e};return _e(a,t,n,o,s,r)}De.opacity=function(e={}){var{position:a,scale:t,density:n,opacity:o,seed:s}={...We,...e};return qe(a,t,n,o,s)},De.defaults=We;var Ne={$name:"Concrete",$normalNode:!0,position:k,scale:2,density:.5,bump:.5,seed:0},Fe=e((([e,a,t])=>{var n=h(e,.5,.5).abs().pow(t);return e.add(a.mul(n))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"density",type:"float"}]}),Ge=e((([e,t,n,r,l,i,m])=>{var u=a(1,2,3).mul(m).sin().mul(100).toVar("seed3d"),p=e.mul(R(r.div(2).add(2))).add(u).toVar("xposition"),d=t.normalize().toVar("xnormal"),c=n.normalize().mul(.001).toVar("xtangent"),y=o(d,c).normalize().mul(.001).toVar("xbitangent"),v=s(l,0,1,10,.5).toVar("xdensity");d.mulAssign(i);var f=Fe(p,d,v).toVar("pos"),g=Fe(p.add(c),d,v).toVar("posU"),b=Fe(p.add(y),d,v).toVar("posV");return pe(f,g,b)})).setLayout({name:"concreteRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"tangent",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"bump",type:"float"},{name:"seed",type:"float"}]});function je(e={}){var{position:a,scale:t,density:n,bump:o,seed:s}={...Ne,...e};return Ge(a,M,$,t,n,o,s)}je.defaults=Ne;var Ye={$name:"Cork",position:k,scale:1,straight:1,noise:.3,color:new le(16773312),background:new le(13664352),seed:0},Ue=e((([e,t,n,o,s,r,l])=>{var i=e.mul(R(t.div(1.5).add(1))).add(l).toVar("pos"),m=i.round().toConst("midCell"),u=m.toVar("minCell"),d=p(1).toVar("minDist"),y=a().toVar("cell"),v=p().toVar("dist"),f=n.exp().reciprocal().toVar("strtaightness"),g=S(0).toVar("i"),b=S(0).toVar("j"),w=S(0).toVar("k");C(3,3,3,(()=>{y.assign(m.add(a(g,b,w).sub(1)));var e=y.add(ue(y));v.assign(i.distance(e)),v.addAssign(h(i.add(y),f)),c(v.lessThan(d),(()=>{d.assign(v),u.assign(y)}))}));var x=h(u.mul(Math.PI),.5,.5).toVar("n"),k=h(i.mul(12)).toVar("r");return k.mulAssign(k,k),k.addAssign(h(i.mul(40),1/3)),V(s,r,x.add(k.mul(o)))})).setLayout({name:"camouflageRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"straight",type:"float"},{name:"xnoise",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function He(e={}){var{position:a,scale:t,straight:n,noise:o,color:s,background:r,seed:l}={...Ye,...e};return Ue(a,t,n,o,s,r,l)}He.defaults=Ye;var Oe={$name:"Dalmatian spots",$width:260,position:k,scale:2,density:.6,color:new le(16777215),background:new le(0),seed:0},Je=e((([e,a,t,n,o,s])=>{var r=e.mul(a.exp()).add(s).sub(1e3).toVar("pos"),l=p(1).toVar("k"),i=p(1.5).sub(t).mul(2).toVar("d"),m=t.mul(5).add(5).toVar("count");return C(m,(()=>{l.mulAssign(h(r).abs().pow(i).mul(100).sub(50).clamp(0,1).oneMinus()),r.assign(r.mul(1.01)),l.mulAssign(h(r.yzx).abs().pow(i).mul(100).sub(50).clamp(0,1).oneMinus()),r.assign(r.mul(1.01)),l.mulAssign(h(r.zxy).abs().pow(i).mul(100).sub(50).clamp(0,1).oneMinus()),r.assign(r.mul(1.01))})),V(o,n,l.clamp(0,1))})).setLayout({name:"dalmatianSpotsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Ke(e={}){var{position:a,scale:t,density:n,color:o,background:s,seed:r}={...Oe,...e};return Je(a,t,n,o,s,r)}Ke.defaults=Oe;var Xe={$name:"Darth Maul",position:k,scale:2,shift:new ie(0,0,0),complexity:0,angle:60,distance:1.9,color:new le(15745088),background:new le(0),balance:0,seed:0},Ze=e((([e,t,n,o,s,r,l,i,m,u])=>{var p=e.add(n).mul(R(t.div(1.5).sub(1))).sub(n).mul(a(1,.5,.5)).toVar(),d=y(e.y.mul(s.radians().cos()).add(e.z.mul(s.radians().sin())).greaterThan(r),1,0);p.x.assign(p.x.add(n.x).abs()),p.y.addAssign(u),p.z.mulAssign(n.z);var c=h(p).toVar(),v=c.sin().mul(c.mul(o.mul(2).add(1).exp()).sin()).remap(0,.2,1,-1).greaterThan(m).select(0,1),f=y(p.x.greaterThan(h(p.mul(2.3)).abs().mul(.5).add(.02)),1,0);return V(i,l,v.mul(d).mul(f).clamp(0,1))})).setLayout({name:"darthMaulRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"shift",type:"vec3"},{name:"complexity",type:"float"},{name:"angle",type:"float"},{name:"distance",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"balance",type:"float"},{name:"seed",type:"float"}]});function Qe(e={}){var{position:a,scale:t,shift:n,complexity:o,angle:s,distance:r,color:l,background:i,balance:m,seed:u}={...Xe,...e};return Ze(a,t,n,o,s,r,l,i,m,u)}Qe.defaults=Xe;var ea={$name:"Dyson sphere",position:k,scale:2,complexity:2,variation:0,color:new le(12636415),background:new le(0),seed:0},aa=e((([e])=>{var t=e.mul(5**.5).fract().toVar();return t.addAssign(t.dot(t.add(a(31.4159,27.1828,14.142)))),t.z.mul(t.x.add(t.y)).fract().mul(2).sub(1)})).setLayout({name:"noisea",type:"float",inputs:[{name:"pos",type:"vec3"}]}),ta=e((([e])=>{var a=e.oneMinus().clamp(0,1).toVar();return a.mul(a).mul(p(3).sub(a.mul(2)))})).setLayout({name:"smoother",type:"float",inputs:[{name:"x",type:"float"}]}),na=e((([e])=>{var t=e.x.floor().toVar(),n=t.add(1).toVar(),o=e.y.floor().toVar(),s=o.add(1).toVar(),r=e.z.floor().toVar(),l=r.add(1).toVar(),i=ta(e.x.fract()).toVar(),m=ta(e.y.fract()).toVar(),u=ta(e.z.fract()).toVar(),p=ta(i.oneMinus()).toVar(),d=ta(m.oneMinus()).toVar(),c=ta(u.oneMinus()).toVar(),y=aa(a(t,o,r)).mul(p).mul(d).mul(c).toVar(),v=aa(a(t,o,l)).mul(p).mul(d).mul(u).toVar(),f=aa(a(t,s,r)).mul(p).mul(m).mul(c).toVar(),g=aa(a(t,s,l)).mul(p).mul(m).mul(u).toVar(),b=aa(a(n,o,r)).mul(i).mul(d).mul(c).toVar(),w=aa(a(n,o,l)).mul(i).mul(d).mul(u).toVar(),V=aa(a(n,s,r)).mul(i).mul(m).mul(c).toVar(),h=aa(a(n,s,l)).mul(i).mul(m).mul(u).toVar();return y.add(v).add(f).add(g).add(b).add(w).add(V).add(h)})).setLayout({name:"noiseg",type:"float",inputs:[{name:"pos",type:"vec3"}]}),oa=e((([e,t,n,o,s,r])=>{var l=e.mul(R(t.div(2).add(.5))).add(r).toVar(),i=a().toVar(),m=p(1).toVar();return C(n.add(4),(()=>{i.addAssign(na(l.mul(m))),m.addAssign(m)})),V(s,o,i.x.add(1).div(5))})).setLayout({name:"dysonSphereRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"complexity",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function sa(e={}){var{position:a,scale:t,complexity:n,color:o,background:s,seed:r}={...ea,...e};return oa(a,t,n,o,s,r)}sa.defaults=ea;var ra={$name:"Entangled",position:k,scale:2,density:10,color:new le(8256),background:new le(16777215),seed:0},la=e((([e,a,t,n,o,s])=>{var i=R(a.div(2)).toVar(),m=e.add(s).toVar(),d=p(-1e4).toVar(),c=p(0).toVar();return C(t,(()=>{c.assign(v(h(l(m,i)).mul(3*Math.PI))),d.assign(u(d,c)),i.mulAssign(1.2)})),d.assign(P(r(I(d),5)).mul(6)),V(n,o,d)})).setLayout({name:"entangled",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"int"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function ia(e={}){var{position:a,scale:t,density:n,color:o,background:s,seed:r}={...ra,...e};return la(a,t,n,o,s,r)}ia.defaults=ra;var ma={$name:"Fordite",position:k,scale:2,color:new le(0,0,0),seed:0},ua=e((([e,t,n,o])=>{var s=e.mul(R(t)).add(o).toVar(),r=h(a(h(s,1),h(s,2),h(s,3))).toVar();return be(a(r,1,v(l(r,Math.PI,4)).mul(.5).add(.5))).add(n)})).setLayout({name:"forditeRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"color",type:"vec3"},{name:"seed",type:"float"}]});function pa(e={}){var{position:a,scale:t,color:n,seed:o}={...ma,...e};return ua(a,t,n,o)}pa.defaults=ma;var da={$name:"Gas giant",position:k,scale:2,turbulence:.3,blur:.6,colorA:new le(16775408),colorB:new le(15788208),colorC:new le(11509968),seed:0},ca=e((([e,t,n,o,s,r,l,i])=>{var m=t.div(2).add(1).toVar(),u=e.mul(R(m)).add(i).toVar(),p=n.mul(h(a(0,u.y.mul(.5),0).add(1)).add(h(a(0,u.y.mul(1),0).add(1)).mul(.5),h(a(1,u.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),d=h(u.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);u.addAssign(a(h(u),h(u.yxz),h(u.yzx)).mul(p.mul(d.mul(2).exp())));var c=o.pow(.2).oneMinus().mul(p.add(1)).toVar(),y=h(u.mul(a(0,m,0)));y=(y=y.add(h(u.mul(a(1,15,1))).mul(c))).add(-.5).smoothstep(-1,1).oneMinus();var v=h(a(0,u.y.mul(.75),0)).add(1),f=we(V(r,s,v)),g=be(a(f.x.add(h(u.mul(a(0,m,0))).div(4)),f.yz)).toVar();return g.assign(V(g,l,p.mul(.3))),g.mul(y)})).setLayout({name:"gasGiantRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"turbulence",type:"float"},{name:"blur",type:"float"},{name:"colorA",type:"vec3"},{name:"colorB",type:"vec3"},{name:"colorC",type:"vec3"},{name:"seed",type:"float"}]});function ya(e={}){var{position:a,scale:t,turbulence:n,blur:o,colorA:s,colorB:r,colorC:l,seed:i}={...da,...e};return ca(a,t,n,o,s,r,l,i)}ya.defaults=da;var va={$name:"Grid",$replaceExportUVS:D,$replaceExportASP:E.x.div(E.y).log2(),uvs:T(k.normalize()),countU:32,countV:16,aspect:1,thinness:.8,equirectangular:!0,color:new le(0),background:new le(16777215)},fa=e((([e,a,n,o,s,i,p,c])=>{var y=u(W(o),1),f=l(e.x,y,Math.PI).toVar(),g=l(e.y,Math.PI).toVar(),w=B(_(l(e.x,a)),a),h=B(_(l(e.y,n)),n),x=l(w,y,Math.PI),k=l(h,Math.PI),z=I(t(f,x)).mul(V(1,v(g),i)),L=I(t(g,k)),A=m(z,L),R=l(m(B(y.mul(Math.PI),a),B(Math.PI,n)),q(r(s,.5),0,1,.9,.04),.5),M=P(b(t(R,.002),d(R,.002),A));return V(c,p,M)})).setLayout({name:"gridRaw",type:"vec3",inputs:[{name:"uvs",type:"vec2"},{name:"countU",type:"float"},{name:"countV",type:"float"},{name:"aspect",type:"float"},{name:"thinness",type:"float"},{name:"equirectangular",type:"int"},{name:"color",type:"vec3"},{name:"background",type:"vec3"}]});function ga(e={}){var{uvs:a,countU:t,countV:n,aspect:o,thinness:s,equirectangular:r,color:l,background:i}={...va,...e};return fa(a,t,n,o,s,r,l,i)}ga.defaults=va;var ba={$name:"Isolines",position:k,scale:2,density:40,blur:.3,thinness:.6,color:new le(16777215),background:new le(0),seed:0},wa=e((([e,a,n,o,s,r,l,i])=>{var m=e.mul(R(a)).add(i).toVar(),u=h(m,n);return u=P(v(u)).div(2),u=b(t(s,o),d(s,o),u),V(r,l,u)})).setLayout({name:"isolinesRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"blur",type:"float"},{name:"thinness",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Va(e={}){var{position:a,scale:t,density:n,blur:o,thinness:s,color:r,background:l,seed:i}={...ba,...e};return wa(a,t,n,o,s,r,l,i)}Va.defaults=ba;var ha={$name:"Karst rock",position:k,scale:2,color:new le(16774384),background:new le(13684944),seed:0},xa=e((([e,a,t,n,o])=>{var s=e.mul(R(a)).add(o.sin().mul(5)).toVar(),r=s.add(h(s.mul(2))).toVar(),l=h(r).div(h(r.mul(1.01))).clamp(0,2).toVar();return l.addAssign(h(s.mul(100)).div(3)),l.addAssign(h(s.mul(2)).div(2)),V(n,t,l).mul(l.pow(.1))})).setLayout({name:"karstRockRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function ka(e={}){var{position:a,scale:t,color:n,background:o,seed:s}={...ha,...e};return xa(a,t,n,o,s)}ka.defaults=ha;var za={$name:"Marble",position:k,scale:1.2,thinness:5,noise:.3,color:new le(4539859),background:new le(15792383),seed:0},La=e((([e,a,t,n,o,s,i])=>{var m=e.mul(R(a)).add(i).toVar(),u=d(h(m),h(m.mul(2)).mul(.5),h(m.mul(6)).mul(.1)),p=(u=P(u.abs().pow(2.5)).toVar(),P(r(.5,t.add(7))).toVar()),y=P(r(.5,t.add(7).mul(.5))).toVar();return c(u.greaterThan(p),(()=>{u.assign(1)})).ElseIf(u.lessThan(y),(()=>{u.assign(0)})).Else((()=>{var e=u.sub(y),a=p.sub(y);u.assign(r(B(e,a),5).mul(.75)),u.assign(u.mul(d(.5,h(m.mul(2)).mul(1.5))))})),u.assign(u.add(l(n,h(m.mul(150)).abs().pow3()))),V(s,o,u)})).setLayout({name:"marbleRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"thinness",type:"float"},{name:"xnoise",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Aa(e={}){var{position:a,scale:t,thinness:n,noise:o,color:s,background:r,seed:l}={...za,...e};return La(a,t,n,o,s,r,l)}Aa.defaults=za;var Ra={$name:"Neon Lights",position:k,scale:2,thinness:.8,mode:0,colorA:new le(16711680),colorB:new le(65280),colorC:new le(255),background:new le(0),seed:0},Ma=e((([e,t,n,o,s,r,l,i,m])=>{var u=e,p=R(t.remap(0,4,-2,2)).toVar(),d=R(n.remap(0,1,1.5,0)).toVar(),c=i.toVar(),v=a(0).toVar(),f=h(u.xyz).toVar(),g=h(u.yzx).toVar(),b=h(u.zxy).toVar(),w=h(a(f,g,b).mul(p).add(m)).toVar();w.assign(P(N(I(w))).pow(3)),v.assign(s);var V=we(v);v.assign(be(a(V.xy,V.z.mul(w)))),c.addAssign(y(o.equal(0),v,v.negate()).mul(d)),w.assign(h(a(g,b,f).mul(p).sub(m))),w.assign(P(N(I(w))).pow(3)),v.assign(r);V=we(v);v.assign(be(a(V.xy,V.z.mul(w)))),c.addAssign(y(o.equal(0),v,v.negate()).mul(d)),w.assign(h(a(b,f,g.negate()).mul(p).add(m))),w.assign(P(N(I(w))).pow(3)),v.assign(l);V=we(v);return v.assign(be(a(V.xy,V.z.mul(w)))),c.addAssign(y(o.equal(0),v,v.negate()).mul(d)),c})).setLayout({name:"neonLightsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"thinness",type:"float"},{name:"node",type:"float"},{name:"colorA",type:"vec3"},{name:"colorB",type:"vec3"},{name:"colorC",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function $a(e={}){var{position:a,scale:t,thinness:n,mode:o,colorA:s,colorB:r,colorC:l,background:i,seed:m}={...Ra,...e};return Ma(a,t,n,o,s,r,l,i,m)}$a.defaults=Ra;var Sa={$name:"Perlin noise",position:k,scale:2,balance:0,contrast:0,color:new le(16777215),background:new le(0),seed:0},Ca=e((([e,a,t,n,o,s,r])=>{var l=e.mul(R(a)).add(r),i=A(0,1,h(l).mul(.5,R(n)).add(.5,t));return V(s,o,i)})).setLayout({name:"perlinNoiseRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"balance",type:"float"},{name:"contrast",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Pa(e={}){var{position:a,scale:t,balance:n,contrast:o,color:s,background:r,seed:l}={...Sa,...e};return Ca(a,t,n,o,s,r,l)}Pa.defaults=Sa;var Ia={$name:"Photosphere",position:k,scale:2,color:new le(16776960),background:new le(16711680),seed:0},Ta=e((([e,t,n,o,s])=>{var r=R(t.add(1)).toVar(),l=e.toVar(),i=a(l).toVar();C(6,(()=>{i.assign(g(i,l.mul(r))),r.mulAssign(s.mul(r).sin().mul(.05).add(1.1))}));var m=h(i).add(1).div(2);return V(o,n,m)})).setLayout({name:"photosphereRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Ea(e={}){var{position:a,scale:t,color:n,background:o,seed:s}={...Ia,...e};return Ta(a,t,n,o,s)}Ea.defaults=Ia;var Wa={$name:"Planet",position:k,scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new le(1194585).convertLinearToSRGB(),colorShallow:new le(8900331).convertLinearToSRGB(),colorBeach:new le(16775885).convertLinearToSRGB(),colorGrass:new le(3978097).convertLinearToSRGB(),colorForest:new le(12288).convertLinearToSRGB(),colorSnow:new le(15794175).convertLinearToSRGB(),seed:0},Ba=e((([e,t,n,o,r,i,m,u,d,y,v,f,g,w,x])=>{var k=p(0).toVar(),z=p(0).toVar(),L=R(t.sub(2)).toVar(),A=p(2).toVar();C(n.add(10),(()=>{k.addAssign(l(A,h(e.mul(L).add(x)))),z.addAssign(A),L.mulAssign(1.5),A.mulAssign(.8)})),k.assign(l(k,k,.5).div(z));o=o.pow(2).toVar(),r=r.pow(2).toVar();var M=V(o,r,m).toVar(),$=V(o,M,.4).toVar(),S=V(o,M,.6).toVar(),P=a().toVar();return c(k.lessThan(o),(()=>{P.assign(V(d,y,s(k,0,o,0,1).pow(R(i.mul(-8).add(4)))))})).ElseIf(k.lessThan($),(()=>{P.assign(V(y,v,s(k,o,$)))})).ElseIf(k.lessThan(S),(()=>{P.assign(v)})).ElseIf(k.lessThan(M),(()=>{P.assign(V(v,f,s(k,S,M)))})).ElseIf(k.lessThan(r),(()=>{P.assign(V(f,g,s(k,M,r).pow(.75)))})).Else((()=>{var e=V(1,r,u);P.assign(V(g,w,b(V(e,r,u.pow(.5)),e,k)))})),P})).setLayout({name:"planetRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"iterations",type:"int"},{name:"levelSea",type:"float"},{name:"levelMountain",type:"float"},{name:"balanceWater",type:"float"},{name:"balanceSand",type:"float"},{name:"balanceSnow",type:"float"},{name:"colorDeep",type:"vec3"},{name:"colorShallow",type:"vec3"},{name:"colorBeach",type:"vec3"},{name:"colorGrass",type:"vec3"},{name:"colorForest",type:"vec3"},{name:"colorSnow",type:"vec3"},{name:"seed",type:"float"}]});function _a(e={}){var{position:a,scale:t,iterations:n,levelSea:o,levelMountain:s,balanceWater:r,balanceSand:l,balanceSnow:i,colorDeep:m,colorShallow:u,colorBeach:p,colorGrass:d,colorForest:c,colorSnow:y,seed:v}={...Wa,...e};return Ba(a,t,n,o,s,r,l,i,m,u,p,d,c,y,v)}_a.defaults=Wa;var qa={$name:"Polka dots",position:k,count:2,size:.5,blur:.25,color:new le(0),background:new le(16777215),flat:0},Da=(1+5**.5)/2,Na=e((([e,a,t,n,o,s,i])=>{var y=p(1).toVar();c(i.equal(1),(()=>{var t=a.pow(2).sub(.5).toVar(),n=e.xy.mul(t).mul(F(1,1,-1,1)),o=n.round().toVar();y.assign(n.distance(o).div(t))})).Else((()=>{var t=r(10,a).toVar(),n=e.normalize().toVar(),o=P(n.y).mul(t).sub(1).div(2),s=u(10,t.pow(.5)),i=o.sub(s).floor().clamp(0,t),c=o.add(s).floor().clamp(0,t);y.assign(1).toVar(),C(c.sub(i),(({i:e})=>{var a=d(e,i),o=G(l(2*Math.PI/Da,a),2*Math.PI),s=L(P(p(a).mul(2).add(1).div(t))),r=Ve(s,o);y.assign(m(y,j(n,r)))}))}));var v=R(t.mul(5).sub(5)).toVar(),f=n.pow(4).toVar(),g=b(v.sub(f),v.add(f),y);return V(o,s,g)})).setLayout({name:"polkaDotsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"count",type:"float"},{name:"size",type:"float"},{name:"blur",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"xflat",type:"int"}]});function Fa(e={}){var{position:a,count:t,size:n,blur:o,color:s,background:r,flat:l}={...qa,...e};return Na(a,t,n,o,s,r,l)}Fa.defaults=qa;var Ga={$name:"Processed wood",$width:260,position:k,scale:2,lengths:4,strength:.3,angle:0,color:new le(7348256),background:new le(15782048),seed:0},ja=e((([e,n,o,s,r,l,i,m])=>{r=Y(r).toVar();var u=a(t(e.x.mul(f(r)),e.y.mul(v(r))),d(e.x.mul(v(r)),e.y.mul(f(r))),e.z).toVar(),p=n.div(2).add(1).toVar(),c=u.mul(R(n)).add(m).toVar(),y=o.add(5).reciprocal().toVar(),g=h(c.mul(p,a(1,y,y)));return g=(g=g.mul(h(c.mul(a(25,1,1))).add(-1).mul(.2))).add(s.sub(.5)).smoothstep(-.3,.3).oneMinus(),V(l,i,g)})).setLayout({name:"processedWoodRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"lengths",type:"float"},{name:"strength",type:"float"},{name:"angle",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Ya(e={}){var{position:a,scale:t,lengths:n,strength:o,angle:s,color:r,background:l,seed:i}={...Ga,...e};return ja(a,t,n,o,s,r,l,i)}Ya.defaults=Ga;var Ua={$name:"Protozoa",position:k,matcap:U,scale:1.5,fat:.7,amount:.4,color:new le(10526880),subcolor:new le(14739711),background:new le(15792383),seed:0},Ha=e((([e,a])=>h(e).mul(a).clamp(-3.14,3.14).cos().add(1).div(2))).setLayout({name:"pnoise",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"fat",type:"float"}]}),Oa=e((([e,t,n,o,s,r,l,i,m])=>{var u=e.mul(R(n.sub(1))).add(m).toVar(),d=a(t,t.length()).toVar(),c=p(0).toVar(),y=p(0).toVar(),v=p(0).toVar(),f=p(0).toVar(),g=(o=o.add(.2).oneMinus().mul(60).add(30).toVar(),p(2).toVar()),b=s.div(2).add(.5).exp().toVar();return C(10,(()=>{c.assign(Ha(u.xyz.add(d),o)),y.assign(Ha(u.yzx.add(d),o)),v.addAssign(c.mul(y).mul(g)),f.addAssign(c.max(y).mul(g)),u.assign(V(u.mul(b),0,.4)),g.mulAssign(.9)})),V(i,V(r,l,f.mul(.1)),v)})).setLayout({name:"protozoaRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"matcap",type:"vec2"},{name:"scale",type:"float"},{name:"fat",type:"float"},{name:"amount",type:"float"},{name:"color",type:"vec3"},{name:"subcolor",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Ja(e={}){var{position:a,matcap:t,scale:n,fat:o,amount:s,color:r,subcolor:l,background:i,seed:m}={...Ua,...e};return Oa(a,t,n,o,s,r,l,i,m)}Ja.defaults=Ua;var Ka={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new ie(-.2,.7,0),center:new ie(0,0,0),selectorCenter:new ie(0,0,0),selectorAngles:new me(0,0),selectorWidth:2},Xa=e((([e,a,t,n,o,s])=>{var r=xe(e,n,o,s);return he(e,t,a.mul(r))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"angles",type:"vec3"},{name:"center",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]}),Za=e((([e,a,t,n,o])=>Xa(k,e,a,t,n,o))).setLayout({name:"rotatorRaw",type:"vec3",inputs:[{name:"angles",type:"vec3"},{name:"center",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]}),Qa=e((([e,a,t,n,s])=>{var r=k,l=M.normalize().toVar(),i=$.normalize().mul(.01).toVar(),m=o(l,i).normalize().mul(.01).toVar(),u=Xa(r,e,a,t,n,s),p=Xa(r.add(i),e,a,t,n,s),d=Xa(r.add(m),e,a,t,n,s);return pe(u,p,d)})).setLayout({name:"rotatorNormalRaw",type:"vec3",inputs:[{name:"angles",type:"vec3"},{name:"center",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]});function et(e={}){var{angles:a,center:t,selectorAngles:n,selectorCenter:o,selectorWidth:s}={...Ka,...e};return Za(a,t,n,o,s)}et.normal=function(e={}){var{angles:a,center:t,selectorAngles:n,selectorCenter:o,selectorWidth:s}={...Ka,...e};return Qa(a,t,n,o,s)},et.defaults=Ka;var at={$name:"Rough clay",$normalNode:!0,position:k,scale:2,bump:.5,curvature:.2,seed:0},tt=e((([e,a,t])=>{var n=H(e.add(h(e).mul(t))).add(.8).pow(5).toVar();return n.addAssign(n.pow(.5)),e.add(a.mul(n))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"curvature",type:"float"}]}),nt=e((([e,a,t,n,s,r,l])=>{var i=e.mul(R(n.div(2))).add(l.sin().mul(10)).toVar(),m=a.normalize().toVar(),u=t.normalize().mul(.001).toVar(),p=o(m,u).normalize().mul(.001).toVar();m.mulAssign(s,.02);var d=tt(i,m,r),c=tt(i.add(u),m,r),y=tt(i.add(p),m,r);return pe(d,c,y)})).setLayout({name:"concreteRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"tangent",type:"vec3"},{name:"scale",type:"float"},{name:"bump",type:"float"},{name:"curvature",type:"float"},{name:"seed",type:"float"}]});function ot(e={}){var{position:a,scale:t,bump:n,curvature:o,seed:s}={...at,...e};return nt(a,M,$,t,n,o,s)}ot.defaults=at;var st={$name:"Runny eggs",position:k,scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new le("orange"),colorWhite:new le("white"),colorBackground:new le("lightgray"),seed:0},rt=e((([e,a,t,n])=>{var o=H(e).toVar(),s=o.add(n).pow(8).oneMinus(),r=o.add(t).pow(18).oneMinus().clamp(0,1),l=V(0,V(0,1,r),s);return e.add(a.mul(l))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"normal",type:"vec3"},{name:"sizeYolk",type:"float"},{name:"sizeWhite",type:"float"}]}),lt=e((([e,a,t,n,o,s,r,l])=>{var i=e.mul(R(a)).add(l.sin().mul(10)).toVar(),m=H(i).toVar(),u=m.add(n.oneMinus()).pow(8).oneMinus().clamp(-.5,1),p=m.add(t.oneMinus()).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return V(r,V(s,o,p),u)})).setLayout({name:"runnyEggsRaw",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"normal",type:"vec3"},{name:"sizeYolk",type:"float"},{name:"sizeWhite",type:"float"},{name:"colorYolk",type:"vec3"},{name:"colorWhite",type:"vec3"},{name:"colorBackground",type:"vec3"},{name:"seed",type:"float"}]}),it=e((([e,a,t,n,s,r,l])=>{var i=e.mul(R(n)).add(l.sin().mul(10)).toVar(),m=a.normalize().toVar(),u=t.normalize().mul(.001).toVar(),p=o(m,u).normalize().mul(.001).toVar(),d=s.oneMinus(),c=r.oneMinus();m.mulAssign(.05);var y=rt(i,m,d,c),v=rt(i.add(u),m,d,c),f=rt(i.add(p),m,d,c);return pe(y,v,f)})).setLayout({name:"runnyEggsNormalRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"tangent",type:"vec3"},{name:"scale",type:"float"},{name:"sizeYolk",type:"float"},{name:"sizeWhite",type:"float"},{name:"seed",type:"float"}]}),mt=e((([e,a,t,n])=>{var o=e.mul(R(a)).add(n.sin().mul(10)).toVar();return H(o).toVar().add(t.oneMinus()).pow(18).clamp(0,1)})).setLayout({name:"runnyEggsRoughnessRaw",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"sizeYolk",type:"float"},{name:"seed",type:"float"}]});function ut(e={}){var{position:a,scale:t,sizeYolk:n,sizeWhite:o,colorYolk:s,colorWhite:r,colorBackground:l,seed:i}={...st,...e};return lt(a,t,n,o,s,r,l,i)}ut.normal=function(e={}){var{position:a,scale:t,sizeYolk:n,sizeWhite:o,seed:s}={...st,...e};return it(a,M,$,t,n,o,s)},ut.roughness=function(e={}){var{position:a,scale:t,sizeYolk:n,seed:o}={...st,...e};return mt(a,t,n,o)},ut.defaults=st;var pt={$name:"rust",position:k,scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new le(12615680),background:new le(32),seed:0},dt=e((([e,a,t,n,o])=>{var s=e.mul(R(a.div(4).add(-1))).add(o).toVar(),r=n.mul(h(s.mul(n.div(2).add(4))).add(4)).toVar(),l=h(s).toVar();return C(t,(()=>{s.mulAssign(2),l.addAssign(h(s))})),l.subAssign(h(s.mul(2)).abs()),l.assign(l.sub(r).clamp(0,15)),l})).setLayout({name:"_rust",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"iterations",type:"int"},{name:"amount",type:"float"},{name:"seed",type:"float"}]}),ct=e((([e,a,t,n,o,s,r,l,i])=>{var m=dt(e,a,t,n,i).mul(1.25).pow(.5),u=e.mul(R(a.add(s.mul(3),2)));return m.addAssign(o.mul(h(u).abs().add(.1).pow(2))),V(r,l,m)})).setLayout({name:"rustRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"iterations",type:"int"},{name:"amount",type:"float"},{name:"xnoise",type:"float"},{name:"noiseScale",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]}),yt=e((([e,a,t,n,o,s])=>dt(e,a,t,n,s).mul(o.add(.2)).oneMinus())).setLayout({name:"rustOpacityRaw",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"iterations",type:"int"},{name:"amount",type:"float"},{name:"opacity",type:"float"},{name:"seed",type:"float"}]});function vt(e={}){var{position:a,scale:t,iterations:n,amount:o,noise:s,noiseScale:r,color:l,background:i,seed:m}={...pt,...e};return ct(a,t,n,o,s,r,l,i,m)}vt.opacity=function(e={}){var{position:a,scale:t,iterations:n,amount:o,opacity:s,seed:r}={...pt,...e};return yt(a,t,n,o,s,r)},vt.defaults=pt;var ft={$name:"Satin",position:k,scale:2,color:new le(7373055),background:new le(80),seed:0},gt=e((([e,t,n,o,s])=>{var r=e.toVar("pos"),l=(t=t.div(3).exp().toVar("xscale"),h(a(h(a(r.x.mul(2),r.y,r.z).mul(t)),h(a(r.x,r.y.mul(2),r.z).mul(t)),h(a(r.x,r.y,r.z.mul(2)).mul(t))).mul(t).add(s)).abs().pow(3).mul(20).toVar("k"));return V(o,n,l)})).setLayout({name:"satinRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function bt(e={}){var{position:a,scale:t,color:n,background:o,seed:s}={...ft,...e};return gt(a,t,n,o,s)}bt.defaults=ft;var wt={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new ie(.01,.9,1.7),center:new ie(0,0,0),selectorCenter:new ie(0,0,0),selectorAngles:new me(0,0),selectorWidth:2},Vt=e((([e,t,n,o,s,r])=>{var l=xe(e,o,s,r),i=V(a(1,1,1),t,l);return e.sub(n).mul(i).add(n)})),ht=e((([e,a,t,n,o])=>Vt(k,e,a,t,n,o))).setLayout({name:"scalerRaw",type:"vec3",inputs:[{name:"scales",type:"vec3"},{name:"center",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]}),xt=e((([e,a,t,n,s])=>{var r=k,l=M.normalize().toVar(),i=$.normalize().mul(.01).toVar(),m=o(l,i).normalize().mul(.01).toVar(),u=Vt(r,e,a,t,n,s),p=Vt(r.add(i),e,a,t,n,s),d=Vt(r.add(m),e,a,t,n,s);return pe(u,p,d)})).setLayout({name:"scalerNormalRaw",type:"vec3",inputs:[{name:"scales",type:"vec3"},{name:"center",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]});function kt(e={}){var{scales:a,center:t,selectorAngles:n,selectorCenter:o,selectorWidth:s}={...wt,...e};return ht(a,t,n,o,s)}kt.normal=function(e={}){var{scales:a,center:t,selectorAngles:n,selectorCenter:o,selectorWidth:s}={...wt,...e};return xt(a,t,n,o,s)},kt.defaults=wt;var zt={$name:"Scepter head",position:k,xFactor:10,yFactor:22,zFactor:10,colorRim:new le(16777215),colorA:new le(7397631),colorB:new le(3145983)},Lt=e((([e,t,n,o,s,r,i])=>{var m=e.toVar("pos"),p=m.x.mul(de(t,0,100,1.35,30)).toVar("fx"),c=m.y.mul(de(n,0,100,1.35,30)).toVar("fy"),y=m.z.mul(de(o,0,100,1.35,30)).toVar("fz"),v=f(p),g=f(c),b=f(y),w=h(a(m.x.div(v),m.y.div(g),m.z.div(b)));w=O(w).mul(I(w).pow(.75));var x=I(l(p,J(p)).add(1).div(v)),k=I(l(c,J(c)).add(1).div(g)),z=I(l(y,J(y)).add(1).div(b)),L=a().toVar(),A=I(K(p.mul(2/Math.PI).add(1).div(2))),R=I(K(c.mul(2/Math.PI).add(1).div(2))),M=I(K(y.mul(2/Math.PI).add(1).div(2))),$=G(d(A,R,M),2);L.assign(we(V(r,i,$)));var S=be(a(L.xy,L.z.mul(w))).toVar("color1");L.assign(we(s));var C=be(a(L.xy,l(2,w,L.z))).toVar("color2");return V(S,C,q(u(x,u(k,z)),45,65))})).setLayout({name:"scepterHeadRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"xFactor",type:"float"},{name:"yFactor",type:"float"},{name:"zFactor",type:"float"},{name:"colorRim",type:"vec3"},{name:"colorA",type:"vec3"},{name:"colorB",type:"vec3"}]});function At(e={}){var{position:a,xFactor:t,yFactor:n,zFactor:o,colorRim:s,colorA:r,colorB:l}={...zt,...e};return Lt(a,t,n,o,s,r,l)}At.defaults=zt;var Rt={$name:"Scream",position:k,scale:2,variety:1,color:new le(15790176),background:new le(13668496),seed:0},Mt=e((([e,t,n,o,s,r])=>{var l=e.mul(R(t)).add(r).toVar("pos"),i=h(d(v(l.xyz),f(l.yzx)));l.assign(e.mul(R(t).mul(i)).add(r));i=h(d(v(l.xyz),f(l.yzx)).mul(2));var m=V(s,o,i).toVar("col"),u=we(m).toVar("HSL");return be(a(d(u.x,n.mul(v(i.mul(Math.PI))).mul(.5)),u.yz))})).setLayout({name:"satinRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"variety",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function $t(e={}){var{position:a,scale:t,variety:n,color:o,background:s,seed:r}={...Rt,...e};return Mt(a,t,n,o,s,r)}$t.defaults=Rt;var St={$name:"Stars",position:k,scale:2,density:2,variation:0,color:new le(16774640),background:new le(96),seed:0},Ct=e((([e,t,n,o,s,r,l])=>{var i=e.mul(R(t.div(2).add(3))).add(l).toVar(),m=I(h(i)).pow(10).mul(10);m=m.mul(R(n.sub(2)));var u=y(m.greaterThan(.1),o.mul(h(i)),0),p=we(V(r,s,m));return be(a(d(p.x,u),p.yz))})).setLayout({name:"starsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"variation",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Pt(e={}){var{position:a,scale:t,density:n,variation:o,color:s,background:r,seed:l}={...St,...e};return Ct(a,t,n,o,s,r,l)}Pt.defaults=St;var It={$name:"Static noise",position:X,time:x,scale:2,balance:0,contrast:0,delay:0,seed:0},Tt=e((([e,t,n,o,s,r,l])=>{var i=e.div(R(n)).add(l),m=r.sub(1).mul(5).exp(),u=t.div(m).round().mul(m),p=ue(u.sin()).mul(1e3),d=A(0,1,h(i.add(p)));return d=d.mul(.5,R(s)).add(.5,o),a(d)})).setLayout({name:"staticNoiseRaw",type:"vec3",inputs:[{name:"position",type:"vec2"},{name:"time",type:"float"},{name:"scale",type:"float"},{name:"balance",type:"float"},{name:"contrast",type:"float"},{name:"delay",type:"float"},{name:"seed",type:"float"}]});function Et(e={}){var{position:a,time:t,scale:n,balance:o,contrast:s,delay:r,seed:l}={...It,...e};return Tt(a,t,n,o,s,r,l)}Et.defaults=It;var Wt={$name:"Supersphere",$positionNode:!0,exponent:3},Bt=e((([e,a])=>{var t=p(2).pow(a),n=e.div(e.length()).toVar(),o=n.abs().pow(t).toVar(),s=o.x.add(o.y).add(o.z).pow(t.reciprocal());return n.div(s)})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"exponent",type:"float"}]}),_t=e((([e])=>Bt(k,e))).setLayout({name:"supersphereRaw",type:"vec3",inputs:[{name:"exponent",type:"float"}]}),qt=e((([e])=>{var a=k,t=M.normalize().toVar(),n=$.normalize().mul(.01).toVar(),s=o(t,n).normalize().mul(.01).toVar(),r=Bt(a,e),l=Bt(a.add(n),e),i=Bt(a.add(s),e);return pe(r,l,i)})).setLayout({name:"supersphereRaw",type:"vec3",inputs:[{name:"exponent",type:"float"}]});function Dt(e={}){var{exponent:a}={...Wt,...e};return _t(a)}Dt.normal=function(e={}){var{exponent:a}={...Wt,...e};return qt(a)},Dt.defaults=Wt;var Nt={$name:"Tiger fur",position:k,scale:2,lengths:4,blur:.3,strength:.3,hairs:.5,color:new le(16755200),bottomColor:new le(16777198),seed:0},Ft=e((([e,t,n,o,s,r,l,i,m])=>{var u=t.div(2).add(1).toVar(),p=e.mul(R(u)).add(m).toVar(),d=n.add(5).reciprocal().toVar(),c=(r=r.mul(.3).toVar(),h(p.mul(u,a(1,d,d))));c=(c=c.add(h(p.mul(a(25,1,1))).add(1).mul(r))).add(s.sub(.5)).smoothstep(o.negate(),o).oneMinus();var y=e.y.add(r.sub(.5)).smoothstep(-1,.5);return V(i,l,y).mul(c)})).setLayout({name:"tigerFurRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"lengths",type:"float"},{name:"blur",type:"float"},{name:"strength",type:"float"},{name:"hairs",type:"float"},{name:"color",type:"vec3"},{name:"bottomColor",type:"vec3"},{name:"seed",type:"float"}]});function Gt(e={}){var{position:a,scale:t,lengths:n,blur:o,strength:s,hairs:r,color:l,bottomColor:i,seed:m}={...Nt,...e};return Ft(a,t,n,o,s,r,l,i,m)}Gt.defaults=Nt;var jt={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new ie(-.5,0,.2),selectorCenter:new ie(0,0,0),selectorAngles:new me(0,0),selectorWidth:.7},Yt=e((([e,a,t,n,o])=>{var s=xe(e,t,n,o);return e.add(a.mul(s))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"distance",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]}),Ut=e((([e,a,t,n])=>Yt(k,e,a,t,n))).setLayout({name:"translatorRaw",type:"vec3",inputs:[{name:"distance",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]}),Ht=e((([e,a,t,n])=>{var s=k,r=M.normalize().toVar(),l=$.normalize().mul(.01).toVar(),i=o(r,l).normalize().mul(.01).toVar(),m=Yt(s,e,a,t,n),u=Yt(s.add(l),e,a,t,n),p=Yt(s.add(i),e,a,t,n);return pe(m,u,p)})).setLayout({name:"translatorNormalRaw",type:"vec3",inputs:[{name:"distance",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]});function Ot(e={}){var{distance:a,selectorAngles:t,selectorCenter:n,selectorWidth:o}={...jt,...e};return Ut(a,t,n,o)}Ot.normal=function(e={}){var{distance:a,selectorAngles:t,selectorCenter:n,selectorWidth:o}={...jt,...e};return Ht(a,t,n,o)},Ot.defaults=jt;var Jt={$name:"Voronoi cells",position:k,scale:2,variation:0,facet:0,color:new le(0),background:new le(12636415),seed:0},Kt=e((([e,t,n,o,s,r,l])=>{var i=e.mul(R(t.div(2).add(.5))).add(l).toVar(),m=i.round().toVar(),u=m.toVar(),d=p(1).toVar(),y=a().toVar(),v=p().toVar(),f=S(0).toVar("i"),g=S(0).toVar("j"),b=S(0).toVar("k");C(3,3,3,(()=>{y.assign(m.add(a(f,g,b).sub(1)));var e=y.add(ue(y.mul(2*Math.PI)).div(2));v.assign(i.distance(e)),c(v.lessThan(d),(()=>{d.assign(v),u.assign(y)}))}));var w=h(u.mul(Math.PI)).toVar(),x=V(d,w.add(1).div(2),o),k=(s=V(s,r,x).toVar(),a(w.mul(16.8),w.mul(31.4159),w.mul(27.1828)).sin().add(1).div(2));return V(s,V(s,k,n),n)})).setLayout({name:"voronoiCellsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"variation",type:"float"},{name:"facet",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Xt(e={}){var{position:a,scale:t,variation:n,facet:o,color:s,background:r,seed:l}={...Jt,...e};return Kt(a,t,n,o,s,r,l)}Xt.defaults=Jt;var Zt={$name:"Water Drops",$normalNode:!0,position:k,scale:1.4,density:.5,bump:.6,seed:0},Qt=e((([e,a,t])=>{var n=h(e,1,t).clamp(0,1);return n=f(n.mul(Math.PI)).add(1).pow(.5).toVar(),e.add(a.mul(n))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"density",type:"float"}]}),en=e((([e,t,n,r,l,i,m])=>{var u=a(1,2,3).mul(m).sin().mul(100).toVar(),p=e.mul(R(r.div(1).add(1))).add(u).toVar(),d=t.normalize().toVar(),c=n.normalize().mul(.001).toVar(),y=o(d,c).normalize().mul(.001).toVar(),v=s(l,0,1,1.5,.7).toVar();d.mulAssign(i);var f=Qt(p,d,v),g=Qt(p.add(c),d,v),b=Qt(p.add(y),d,v);return pe(f,g,b)})).setLayout({name:"waterDropsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"tangent",type:"vec3"},{name:"scale",type:"float"},{name:"density",type:"float"},{name:"bump",type:"float"},{name:"seed",type:"float"}]});function an(e={}){var{position:a,scale:t,density:n,bump:o,seed:s}={...Zt,...e};return en(a,M,$,t,n,o,s)}an.defaults=Zt;var tn={$name:"Watermelon",$replaceExportUVS:D,position:k,uvs:T(k.normalize()),scale:2,stripes:12,variation:.5,noise:.25,color:new le("yellowgreen"),background:new le("darkgreen"),seed:0},nn=e((([e,t,n,o,s,r,l,i,m])=>{var u=e.mul(R(n.div(4).add(2))).add(m).toVar(),p=t.x.mul(o,2*Math.PI).add(h(u.mul(a(1,.3,1))).mul(2)).sin().add(.5).div(2).mul(t.y.remap(0,1,-Math.PI,Math.PI).cos().add(1.2).clamp(0,1)).add(s.mul(2,h(u.mul(1.5)).div(2))).add(s.mul(2,h(u.mul(4)).div(6))).toVar();return p.assign(p.mix(p.round(),.75).add(h(u.mul(2)).mul(r,.5)).add(h(u.mul(3)).mul(r,1)).add(h(u.mul(15)).mul(r,.2)).clamp(0,1)),l=V(i,l,p).toVar()})).setLayout({name:"watermelonRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"uvs",type:"vec2"},{name:"scale",type:"float"},{name:"stripes",type:"int"},{name:"variation",type:"float"},{name:"xnoise",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function on(e={}){var{position:a,uvs:t,scale:n,stripes:o,variation:s,noise:r,color:l,background:i,seed:m}={...tn,...e};return nn(a,t,n,o,s,r,l,i,m)}on.defaults=tn;var sn={$name:"Waves",position:k,scale:2,speed:0,time:x,level:-.4,rough:10,height:.5,foamSize:.2,foamEdge:.5,color:new le(16777215),background:new le(2121983),seed:0},rn=e((([e,t,n,o,s,r,l,i,m])=>{const u=R(t.sub(1)).toVar(),d=e.mul(u).add(m).toVar("pos"),c=o.mul(n.exp());var y=a(d.x,0,d.z).div(3);const v=i.mul(w(d,r.div(2)).div(2).add(1).div(2));var f=l.div(u,.8).toVar();return e.y.sub(s).add(w(y,1).mul(6.28).add(c).sin().div(2).mul(f)).sub(w(d,r).mul(6.28).add(c.mul(2)).sin().sub(1).div(5).mul(f)).smoothstep(p(.5).sub(v),p(.5).add(v)).toVar()})).setLayout({name:"waves_core",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"speed",type:"float"},{name:"time",type:"float"},{name:"level",type:"float"},{name:"rough",type:"float"},{name:"height",type:"float"},{name:"foamSize",type:"float"},{name:"seed",type:"float"}]}),ln=e((([e,a,t,n,o,s,r,l,i,m,u])=>{var p=rn(e,a,t,n,o,s,r,l,u);return V(m,i,p.clamp(0,1))})).setLayout({name:"wavesRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"speed",type:"float"},{name:"time",type:"float"},{name:"level",type:"float"},{name:"rough",type:"float"},{name:"height",type:"float"},{name:"foamSize",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]}),mn=e((([e,a,t,n,o,s,r,l,i,m])=>rn(e,a,t,n,o,s,r,l,m).oneMinus().smoothstep(0,i.oneMinus().div(10)))).setLayout({name:"wavesOpacityRaw",type:"float",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"speed",type:"float"},{name:"time",type:"float"},{name:"level",type:"float"},{name:"rough",type:"float"},{name:"height",type:"float"},{name:"foamSize",type:"float"},{name:"foamEdge",type:"float"},{name:"seed",type:"float"}]});function un(e={}){var{position:a,scale:t,speed:n,time:o,level:s,rough:r,height:l,foamSize:i,color:m,background:u,seed:p}={...sn,...e};return ln(a,t,n,o,s,r,l,i,m,u,p)}un.opacity=function(e={}){var{position:a,scale:t,speed:n,time:o,level:s,rough:r,height:l,foamSize:i,foamEdge:m,seed:u}={...sn,...e};return mn(a,t,n,o,s,r,l,i,m,u)},un.defaults=sn;var pn={$name:"Wood",position:k,scale:2.5,rings:4.5,lengths:1,angle:0,fibers:.3,fibersDensity:10,color:new le(.8,.4,0),background:new le(.4,.1,0),seed:0},dn=e((([e,n,o,s,r,i,m,u,c,y])=>{r=Y(r).toVar();var g=a(t(e.x.mul(f(r)),e.y.mul(v(r))),d(e.x.mul(v(r)),e.y.mul(f(r))),e.z).toVar(),b=g.mul(R(n.sub(3)).mul(a(Z(s),4,Z(s)))).add(y).toVar(),w=h(b).add(1).mul(10).mul(o);w=w.add(w.cos()).cos().add(1).div(2);var x=p(0).toVar(),k=p(0).toVar(),z=(n=R(n.sub(2)).mul(a(1,m,1)).toVar(),p(2).toVar());return C(10,(()=>{x.addAssign(l(z,h(g.mul(n).add(y)))),k.addAssign(z),n.mulAssign(1.8),z.mulAssign(.6)})),x.assign(l(x,5).div(k).mul(10).sin().add(1).div(2)),V(u,c,V(w,x,i))})).setLayout({name:"woodRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"rings",type:"float"},{name:"lengths",type:"float"},{name:"angle",type:"float"},{name:"fibers",type:"float"},{name:"fibersDensity",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function cn(e={}){var{position:a,scale:t,rings:n,lengths:o,angle:s,fibers:r,fibersDensity:l,color:i,background:m,seed:u}={...pn,...e};return dn(a,t,n,o,s,r,l,i,m,u)}cn.defaults=pn;var yn={$name:"Zebra lines",position:k,scale:2,thinness:.5,phi:0,theta:0,color:new le(0),background:new le(16777215),flat:0},vn=e((([e,a,t,n,o,s,r,l])=>{var i=y(l,e,e.normalize()).toVar(),m=y(l,Q(f(n),v(n)),Ve(n,o)).toVar(),u=y(l,A(m.dot(i),-2,2),L(A(m.dot(i),-1,1))).toVar(),p=(a=R(a.add(1)).toVar(),v(u.mul(a)).sub(t.sub(.5).mul(2)));return p=A(p.mul(1e3).div(a),-1,1).mul(.5).add(.5),V(r,s,p)})).setLayout({name:"zebraLinesRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"thinness",type:"float"},{name:"phi",type:"float"},{name:"theta",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"xflat",type:"int"}]});function fn(e={}){var{position:a,scale:t,thinness:n,phi:o,theta:s,color:r,background:l,flat:i}={...yn,...e};return vn(a,t,n,o,s,r,l,i)}fn.defaults=yn;var gn={$name:"Circle decor",position:k,scale:2,grains:.2,complexity:1,blur:.2,color:new le(0),background:new le(16777215),seed:0},bn=e((([e,a,t,n,o,s,r,l])=>{var i=e.mul(R(a.div(4))).add(l).toVar("pos"),m=i.mul(2).toVar("subpos"),u=H(i),p=H(m),d=H(i.mul(t.mul(4).add(2))).mul(2),c=h(i).div(2).add(1),y=u.min(p,d).clamp(0,1).mul(n.add(2).exp(),c,Math.PI).sin().smoothstep(o.negate(),o);return V(s,r,y.oneMinus())})).setLayout({name:"camouflageRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"grains",type:"float"},{name:"complexity",type:"float"},{name:"blur",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function wn(e={}){var{position:a,scale:t,grains:n,complexity:o,blur:s,color:r,background:l,seed:i}={...gn,...e};return bn(a,t,n,o,s,r,l,i)}wn.defaults=gn;var Vn={$name:"Reticular veins",position:k,scale:2,reticulation:5,strength:.2,organelles:.2,color:new le(16777200),background:new le(2129952),seed:0},hn=e((([e,a,t,n,o,s,r,l])=>{var i=e.mul(R(a.div(2).add(.5))).add(l).toVar(),m=H(i),u=H(i.add(100).mul(t)).mul(n),p=h(i.mul(100)).mul(n,o),d=m.add(u).add(p);return V(r,s,d)})).setLayout({name:"reticularVeinsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"reticulation",type:"float"},{name:"strength",type:"float"},{name:"organelles",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function xn(e={}){var{position:a,scale:t,reticulation:n,strength:o,organelles:s,color:r,background:l,seed:i}={...Vn,...e};return hn(a,t,n,o,s,r,l,i)}xn.defaults=Vn;var kn={$name:"Roman paving",position:k,scale:2,depth:.5,seed:0},zn=e((([e,a,t,n])=>{var o=e.mul(R(a)).add(n).toVar(),s=ee(o).toVar();return s.y.sub(s.x).pow(t.mul(3).sub(3).exp()).smoothstep(0,1)})).setLayout({name:"romanPavingRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"depth",type:"float"},{name:"seed",type:"float"}]});function Ln(e={}){var{position:a,scale:t,depth:n,seed:o}={...kn,...e};return zn(a,t,n,o)}Ln.defaults=kn;var An={$name:"Crumpled fabric",$width:260,position:k,scale:2,pinch:.5,color:new le(11596031),subcolor:new le(4210928),background:new le(12288),seed:0},Rn=e((([e,t,n,o,s,r,l])=>{var i=e.mul(R(t.sub(.5))).add(l).toVar();C(4,(()=>{var e=h(i.xyz),t=h(i.yzx),o=h(i.zxy);i.addAssign(a(e,t,o).mul(n))}));var m=h(i).add(1).div(2).clamp(0,1),u=o.mul(m.mul(2).sub(1).abs().oneMinus()),p=s.mul(m).pow(2),d=r.mul(m.oneMinus().pow(2));return u.add(p).add(d)})).setLayout({name:"crumpledFabricRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"pinch",type:"float"},{name:"color",type:"vec3"},{name:"subcolor",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Mn(e={}){var{position:a,scale:t,pinch:n,color:o,subcolor:s,background:r,seed:l}={...An,...e};return Rn(a,t,n,o,s,r,l)}Mn.defaults=An;var $n={$name:"Isolayers",position:k,scale:2,layers:10,edge:.5,darkness:0,color:new le(16777200),background:new le(16728128),seed:0},Sn=e((([e,a,t,n,o,s,r,l])=>{var i=e.mul(R(a.sub(1))).add(l).toVar(),m=n.remap(0,1,40,10),u=h(i,1.2,1).div(2),d=u.mul(t).round().div(t).clamp(0,1),c=u.sub(p(.53).div(t)).mul(t).fract().mul(p(2).pow(m.reciprocal())).pow(m).sub(1).abs().oneMinus(),y=V(we(r),we(s),d).toVar();return y.z.mulAssign(V(1,d.mul(1.5),o).clamp(0,1)),be(y).sub(c)})).setLayout({name:"isolayersRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"layers",type:"int"},{name:"edge",type:"float"},{name:"darkness",type:"float"},{name:"color",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Cn(e={}){var{position:a,scale:t,layers:n,edge:o,darkness:s,color:r,background:l,seed:i}={...$n,...e};return Sn(a,t,n,o,s,r,l,i)}Cn.defaults=$n;var Pn={$name:"Turbulent smoke",$width:260,position:k,scale:2,speed:0,details:5,time:x,seed:0},In=e((([e,t,n,o,s,r])=>{var l=e.mul(R(t.sub(1))).add(r).toVar(),i=s.mul(n.sub(1).exp()),m=l.add(a(w(l.add(a(1,i.sin(),-1))),w(l.add(a(i.add(2*Math.PI/3).sin(),1,-1))),w(l.add(a(1,-1,i.add(4*Math.PI/3).sin()))))),u=ae(m,o);return H(l.add(u.div(2))).pow(4).mul(4).oneMinus()})).setLayout({name:"turbulentSmokeRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"speed",type:"float"},{name:"details",type:"int"},{name:"time",type:"float"},{name:"seed",type:"float"}]});function Tn(e={}){var{position:a,scale:t,speed:n,details:o,time:s,seed:r}={...Pn,...e};return In(a,t,n,o,s,r)}Tn.defaults=Pn;var En={$name:"Caustics",position:k,scale:2,speed:0,time:x,color:new le(5286080),seed:0},Wn=e((([e,t,n,o,s,r])=>{var l=e.mul(R(t.sub(1))).add(r).toVar(),i=o.mul(n.sub(1).exp()).add(a(0,2*Math.PI/3,4*Math.PI/3)).sin();return te(l.add(a(H(l.add(i.xyz)),H(l.add(i.yzx)),H(l.add(i.zxy))))).length().div(Math.sqrt(3)).add(s.sub(.5).mul(2))})).setLayout({name:"causticsRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"speed",type:"float"},{name:"time",type:"float"},{name:"color",type:"vec3"},{name:"seed",type:"float"}]});function Bn(e={}){var{position:a,scale:t,speed:n,time:o,color:s,seed:r}={...En,...e};return Wn(a,t,n,o,s,r)}Bn.defaults=En;var _n={$name:"Bricks",position:k,scale:2,brickSize:new ie(2,1,2),brickShift:2,jointSize:.05,jointSpan:.5,jointJitter:.5,jointBlur:.03,noiseSize:.5,noiseStrength:.2,colorShade:.5,color:new le(16728064),additional:new le(13672496),background:new le(11184810),seed:0},qn=e((([e,t,n,o,s,r,i,m,u,d,c,y,v,f,g])=>{var b=e.mul(R(t)).add(g).toVar(),w=n,x=b.div(w).floor().div(o),k=a(x.y,0,x.y).toVar(),z=b.div(w).fract().add(k).fract().toVar(),L=ae(b.mul(de(r,0,1,20,.2))).div(de(i,0,1,500,1)).toVar(),A=l(z.mul(w).add(L.z).smoothstep(w.y.sub(s,m),w.y.sub(s)).y.oneMinus(),z.mul(w).add(L.y).smoothstep(s,s.add(m)).y,z.mul(w).add(L.y).smoothstep(w.x.sub(s,m),w.x.sub(s)).x.oneMinus(),z.mul(w).add(L.x).smoothstep(s,s.add(m)).x,z.mul(w).add(L.x).smoothstep(w.z.sub(s,m),w.z.sub(s)).z.oneMinus(),z.mul(w).add(L.z).smoothstep(s,s.add(m)).z).clamp(0,1),M=V(p(1),h(h(b.xyz.div(w).add(k).floor().zxy.mul(100).add(Math.PI)).mul(10)).add(2).div(2).pow(4).clamp(0,1),c),$=h(b.mul(de(u,0,1,5,250))).mul(d).add(1),S=h(h(b.xyz.div(w).add(k).floor().zxy.mul(200).add(Math.PI)).mul(10)).add(1).div(1),C=V(y,v,S.pow(2));return V(f,M.mul(C,A),A).mul($)})).setLayout({name:"bricksRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"brickSize",type:"vec3"},{name:"brickShift",type:"float"},{name:"jointSize",type:"float"},{name:"jointSpan",type:"float"},{name:"jointJitter",type:"float"},{name:"jointBlur",type:"float"},{name:"noiseSize",type:"float"},{name:"noiseStrength",type:"float"},{name:"colorShade",type:"float"},{name:"color",type:"vec3"},{name:"additional",type:"vec3"},{name:"background",type:"vec3"},{name:"seed",type:"float"}]});function Dn(e={}){var{position:a,scale:t,brickSize:n,brickShift:o,jointSize:s,jointSpan:r,jointJitter:l,jointBlur:i,noiseSize:m,noiseStrength:u,colorShade:p,color:d,additional:c,background:y,seed:v}={..._n,...e};return qn(a,t,n,o,s,r,l,i,m,u,p,d,c,y,v)}Dn.defaults=_n;var Nn={$name:"Halftone",position:X,scale:2,radius:.5,pattern:1,attenuation:0,near:6,far:14,color:ne(),positionView:re},Fn=e((([e,a,t,n,o,s,r,l])=>{var i=p(5).sub(a).exp().toVar(),m=e.toVar(),u=t.div(Math.sqrt(2)).toVar(),d=m.div(i).round().mul(i);return c(n.notEqual(0),(()=>{u.mulAssign(l.z.mul(-1).smoothstep(o,s).pow(.5))})),c(m.distance(d).greaterThan(i.mul(u)),(()=>oe())),r})).setLayout({name:"halftoneGridRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"radius",type:"float"},{name:"attenuation",type:"int"},{name:"far",type:"float"},{name:"near",type:"float"},{name:"color",type:"vec3"},{name:"positionView",type:"vec3"}]}),Gn=e((([e,a,t,n,o,s,r,l])=>{var i=p(5).sub(a).exp().toVar(),u=e.toVar(),d=t.div(Math.sqrt(2)).toVar(),y=u.y.div(i).round().mod(2),v=u.div(i).round().mulAssign(i).toVar();c(y.equal(0),(()=>{v.x.addAssign(i.mul(.5))}));var f=Q(v.x.sub(i),v.y).toVar();return c(n.notEqual(0),(()=>{d.mulAssign(l.z.mul(-1).smoothstep(o,s).pow(.5))})),c(m(u.distance(v),u.distance(f)).greaterThan(i.mul(d)),(()=>oe())),r})).setLayout({name:"halftoneDiagRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"radius",type:"float"},{name:"attenuation",type:"int"},{name:"far",type:"float"},{name:"near",type:"float"},{name:"color",type:"vec3"},{name:"positionView",type:"vec3"}]}),jn=e((([e,a,t,n,o,s,r,l,i])=>{var m=e.mul(a.sub(3.5).exp()).sin().add(1).div(2).toVar(),u=m.x,d=m.y,y=t.div(Math.sqrt(2)).toVar(),v=p(0);return se(n).Case(2,(()=>{v.assign(u.add(d).div(2))})).Case(3,(()=>{v.assign(u.sub(d).abs().oneMinus())})).Case(10,(()=>{v.assign(u.sub(d).abs())})).Case(4,(()=>{v.assign(u.mul(d).oneMinus())})).Case(9,(()=>{v.assign(u.mul(d))})).Case(5,(()=>{v.assign(u.max(d))})).Case(6,(()=>{v.assign(u.min(d))})).Case(7,(()=>{v.assign(u)})).Case(8,(()=>{v.assign(d)})),c(o.notEqual(0),(()=>{y.mulAssign(i.z.mul(-1).smoothstep(s,r).pow(.5))})),c(v.greaterThan(y),(()=>oe())),l})).setLayout({name:"halftoneTrigRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"radius",type:"float"},{name:"pattern",type:"int"},{name:"attenuation",type:"int"},{name:"far",type:"float"},{name:"near",type:"float"},{name:"color",type:"vec3"},{name:"positionView",type:"vec3"}]}),Yn=e((([e,t,n,o,s,r,l,i,m])=>{var u=a(0).toVar();return se(o).Case(0,(()=>{u.assign(Fn(e,t,n,s,r,l,i,m))})).Case(1,(()=>{u.assign(Gn(e,t,n,s,r,l,i,m))})).Default((()=>{u.assign(jn(e,t,n,o,s,r,l,i,m))})),u})).setLayout({name:"halftoneRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"radius",type:"float"},{name:"pattern",type:"int"},{name:"attenuation",type:"int"},{name:"far",type:"float"},{name:"near",type:"float"},{name:"color",type:"vec3"},{name:"positionView",type:"vec3"}]});function Un(e={}){var{position:a,scale:t,radius:n,pattern:o,attenuation:s,far:r,near:l,color:i,positionView:m}={...Nn,...e};return Yn(a,t,n,o,s,r,l,i,m)}Un.defaults=Nn,"undefined"!=typeof window&&(window.__TSL_TEXTURES__=3);export{pe as approximateNormal,Ae as brain,Dn as bricks,$e as camouflage,Bn as caustics,Pe as caveArt,wn as circleDecor,Ee as circles,De as clouds,je as concrete,He as cork,Mn as crumpledFabric,Ke as dalmatianSpots,Qe as darthMaul,sa as dysonSphere,ia as entangled,pa as fordite,ya as gasGiant,ga as grid,Un as halftone,fe as hideFallbackWarning,be as hsl,Cn as isolayers,Va as isolines,ka as karstRock,Aa as marble,$a as neonLights,Pa as perlinNoise,Ea as photosphere,_a as planet,Fa as polkaDots,Ya as processedWood,Ja as protozoa,de as remapExp,xn as reticularVeins,Ln as romanPaving,he as rotatePivot,et as rotator,ot as roughClay,ut as runnyEggs,vt as rust,bt as satin,kt as scaler,At as scepterHead,$t as scream,xe as selectPlanar,ve as showFallbackWarning,Ve as spherical,Pt as stars,Et as staticNoise,Dt as supersphere,Gt as tigerFur,we as toHsl,Ot as translator,Tn as turbulentSmoke,ue as vnoise,Xt as voronoiCells,an as waterDrops,on as watermelon,un as waves,cn as wood,fn as zebraLines};
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dailies-studio/tsl-textures",
|
|
3
|
+
"version": "3.0.4",
|
|
4
|
+
"description": "Vendored fork of tsl-textures@3.0.4 (Pavel Boytchev, MIT) carrying the perlin-noise/static-noise clamp fix.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./src/tsl-textures.js",
|
|
7
|
+
"module": "./src/tsl-textures.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
"./tsl-textures.js": {
|
|
10
|
+
"require": "./dist/cjs/tsl-textures.cjs",
|
|
11
|
+
"import": "./dist/tsl-textures.js"
|
|
12
|
+
},
|
|
13
|
+
".": {
|
|
14
|
+
"require": "./dist/cjs/tsl-textures.cjs",
|
|
15
|
+
"import": "./dist/tsl-textures.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"LICENSE",
|
|
20
|
+
"package.json",
|
|
21
|
+
"README.md",
|
|
22
|
+
"dist",
|
|
23
|
+
"src"
|
|
24
|
+
],
|
|
25
|
+
"keywords": [
|
|
26
|
+
"texture",
|
|
27
|
+
"tsl",
|
|
28
|
+
"three.js"
|
|
29
|
+
],
|
|
30
|
+
"homepage": "https://boytchev.github.io/tsl-textures/",
|
|
31
|
+
"author": "Pavel Boytchev",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"three": "^0.185.1"
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/brain.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
|
|
2
|
+
// TSL-Textures: Brain
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import { Color } from "three";
|
|
7
|
+
import { Fn, mix, positionGeometry, time, vec3 } from 'three/tsl';
|
|
8
|
+
import { fractal, noise } from './tsl-utils.js';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var defaults = {
|
|
13
|
+
$name: 'Brain',
|
|
14
|
+
|
|
15
|
+
position: positionGeometry,
|
|
16
|
+
scale: 2,
|
|
17
|
+
|
|
18
|
+
smooth: 0.5,
|
|
19
|
+
wave: 0.5,
|
|
20
|
+
speed: 2.5,
|
|
21
|
+
time: time,
|
|
22
|
+
|
|
23
|
+
color: new Color( 0xFFD0D0 ),
|
|
24
|
+
background: new Color( 0x500000 ),
|
|
25
|
+
|
|
26
|
+
seed: 0,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
var brainRaw = Fn( ([ position, scale, xsmooth, /*wave, speed, time,*/ color, background, seed ])=>{
|
|
32
|
+
|
|
33
|
+
var pos = position.mul( scale.div( 3 ).exp( ) ).add( seed ).toVar( 'pos' );
|
|
34
|
+
|
|
35
|
+
var octaves = xsmooth.oneMinus().mul( 2 ).exp( ).toVar( 'octaves' );
|
|
36
|
+
|
|
37
|
+
var n = fractal( pos.mul( 5 ), octaves ).add( 1 ).div( 2 ).clamp( 0, 1 ).pow( 2 );
|
|
38
|
+
|
|
39
|
+
return mix( color, background, n );
|
|
40
|
+
|
|
41
|
+
} ).setLayout( {
|
|
42
|
+
name: 'brainRaw',
|
|
43
|
+
type: 'vec3',
|
|
44
|
+
inputs: [
|
|
45
|
+
{ name: 'position', type: 'vec3' },
|
|
46
|
+
{ name: 'scale', type: 'float' },
|
|
47
|
+
{ name: 'xsmooth', type: 'float' },
|
|
48
|
+
/*{ name: 'wave', type: 'float' },*/
|
|
49
|
+
/*{ name: 'speed', type: 'float' },*/
|
|
50
|
+
/*{ name: 'time', type: 'float' },*/
|
|
51
|
+
{ name: 'color', type: 'vec3' },
|
|
52
|
+
{ name: 'background', type: 'vec3' },
|
|
53
|
+
{ name: 'seed', type: 'float' },
|
|
54
|
+
] }
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
var brainNormalRaw = Fn( ([ position, scale, xsmooth, wave, speed, time, /*color, background,*/ seed ])=>{
|
|
59
|
+
|
|
60
|
+
var pos = position.mul( scale.div( 3 ).exp( ) ).add( seed ).toVar( 'pos' );
|
|
61
|
+
|
|
62
|
+
var octaves = xsmooth.oneMinus().mul( 2 ).exp( ).toVar( 'octaves' );
|
|
63
|
+
|
|
64
|
+
const EPS = 0.01;
|
|
65
|
+
|
|
66
|
+
var n = fractal( pos.mul( 5 ), octaves ).toVar( 'n' ),
|
|
67
|
+
dx = fractal( pos.add( vec3( EPS, 0, 0 ) ).mul( 5 ), octaves ).sub( n ).div( EPS ).toVar( 'dx' ),
|
|
68
|
+
dy = fractal( pos.add( vec3( 0, EPS, 0 ) ).mul( 5 ), octaves ).sub( n ).div( EPS ).toVar( 'dy' );
|
|
69
|
+
|
|
70
|
+
var dTime = noise( pos.mul( wave, 5 ) ).add( 1 ).div( 2 ).mul( 6.28 ).toVar( 'dTime' );
|
|
71
|
+
|
|
72
|
+
return vec3( dx, dy, time.mul( speed ).add( dTime ).sin().add( n, 1 ) ).normalize();
|
|
73
|
+
|
|
74
|
+
} ).setLayout( {
|
|
75
|
+
name: 'brainNormalRaw',
|
|
76
|
+
type: 'vec3',
|
|
77
|
+
inputs: [
|
|
78
|
+
{ name: 'position', type: 'vec3' },
|
|
79
|
+
{ name: 'scale', type: 'float' },
|
|
80
|
+
{ name: 'xsmooth', type: 'float' },
|
|
81
|
+
{ name: 'wave', type: 'float' },
|
|
82
|
+
{ name: 'speed', type: 'float' },
|
|
83
|
+
{ name: 'time', type: 'float' },
|
|
84
|
+
/*{ name: 'color', type: 'vec3' },*/
|
|
85
|
+
/*{ name: 'background', type: 'vec3' },*/
|
|
86
|
+
{ name: 'seed', type: 'float' },
|
|
87
|
+
] }
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
function brain( params={} ) {
|
|
93
|
+
|
|
94
|
+
var { position, scale, smooth, /*wave, speed, time,*/ color, background, seed } = { ...defaults, ...params };
|
|
95
|
+
|
|
96
|
+
return brainRaw( position, scale, smooth, /*wave, speed, time,*/ color, background, seed );
|
|
97
|
+
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
brain.normal = function ( params={} ) {
|
|
103
|
+
|
|
104
|
+
var { position, scale, smooth, wave, speed, time, /*color, background,*/ seed } = { ...defaults, ...params };
|
|
105
|
+
|
|
106
|
+
return brainNormalRaw( position, scale, smooth, wave, speed, time, /*color, background,*/ seed );
|
|
107
|
+
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
brain.defaults = defaults;
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
export { brain };
|
package/src/bricks.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
|
|
2
|
+
// TSL-Textures: Bricks
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import { Color, Vector3 } from 'three';
|
|
7
|
+
import { exp, float, Fn, mix, mul, positionGeometry, vec3 } from 'three/tsl';
|
|
8
|
+
import { fractal3, noise, remapExp } from './tsl-utils.js';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var defaults = {
|
|
13
|
+
$name: 'Bricks',
|
|
14
|
+
|
|
15
|
+
position: positionGeometry,
|
|
16
|
+
scale: 2,
|
|
17
|
+
|
|
18
|
+
brickSize: new Vector3( 2, 1, 2 ),
|
|
19
|
+
brickShift: 2,
|
|
20
|
+
|
|
21
|
+
jointSize: 0.05,
|
|
22
|
+
jointSpan: 0.5,
|
|
23
|
+
jointJitter: 0.5,
|
|
24
|
+
jointBlur: 0.03,
|
|
25
|
+
|
|
26
|
+
noiseSize: 0.5,
|
|
27
|
+
noiseStrength: 0.2,
|
|
28
|
+
|
|
29
|
+
colorShade: 0.5,
|
|
30
|
+
|
|
31
|
+
color: new Color( 0xFF4000 ),
|
|
32
|
+
additional: new Color( 0xD0A030 ),
|
|
33
|
+
background: new Color( 0xAAAAAA ),
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
seed: 0,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
var bricksRaw = Fn( ([ position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed ])=>{
|
|
42
|
+
|
|
43
|
+
var pos = position.mul( exp( scale ) ).add( seed ).toVar( );
|
|
44
|
+
|
|
45
|
+
var size = brickSize;
|
|
46
|
+
|
|
47
|
+
var floor = pos.div( size ).floor().div( brickShift );
|
|
48
|
+
|
|
49
|
+
var offset = vec3( floor.y, 0, floor.y ).toVar();
|
|
50
|
+
|
|
51
|
+
var p = pos.div( size ).fract().add( offset ).fract().toVar();
|
|
52
|
+
|
|
53
|
+
var n = fractal3( pos.mul( remapExp( jointSpan, 0, 1, 20, 0.2 ) ) ).div( remapExp( jointJitter, 0, 1, 500, 1 ) ).toVar();
|
|
54
|
+
|
|
55
|
+
var border = mul(
|
|
56
|
+
p.mul( size ).add( n.z ).smoothstep( size.y.sub( jointSize, jointBlur ), size.y.sub( jointSize ) ).y.oneMinus(),
|
|
57
|
+
p.mul( size ).add( n.y ).smoothstep( jointSize, jointSize.add( jointBlur ) ).y,
|
|
58
|
+
|
|
59
|
+
p.mul( size ).add( n.y ).smoothstep( size.x.sub( jointSize, jointBlur ), size.x.sub( jointSize ) ).x.oneMinus(),
|
|
60
|
+
p.mul( size ).add( n.x ).smoothstep( jointSize, jointSize.add( jointBlur ) ).x,
|
|
61
|
+
|
|
62
|
+
p.mul( size ).add( n.x ).smoothstep( size.z.sub( jointSize, jointBlur ), size.z.sub( jointSize ) ).z.oneMinus(),
|
|
63
|
+
p.mul( size ).add( n.z ).smoothstep( jointSize, jointSize.add( jointBlur ) ).z,
|
|
64
|
+
).clamp( 0, 1 );
|
|
65
|
+
|
|
66
|
+
var shade = mix( float( 1 ), noise( noise( pos.xyz.div( size ).add( offset ).floor().zxy.mul( 100 ).add( Math.PI ) ).mul( 10 ) ).add( 2 ).div( 2 ).pow( 4 ).clamp( 0, 1 ), colorShade );
|
|
67
|
+
|
|
68
|
+
var ns = noise( pos.mul( remapExp( noiseSize, 0, 1, 5, 250 ) ) ).mul( noiseStrength ).add( 1 );
|
|
69
|
+
|
|
70
|
+
var brickNoise = noise( noise( pos.xyz.div( size ).add( offset ).floor().zxy.mul( 200 ).add( Math.PI ) ).mul( 10 ) ).add( 1 ).div( 1 );
|
|
71
|
+
var brickColor = mix( color, additional, brickNoise.pow( 2 ) );
|
|
72
|
+
|
|
73
|
+
return mix( background, shade.mul( brickColor, border ), border ).mul( ns );
|
|
74
|
+
|
|
75
|
+
} ).setLayout( {
|
|
76
|
+
name: 'bricksRaw',
|
|
77
|
+
type: 'vec3',
|
|
78
|
+
inputs: [
|
|
79
|
+
{ name: 'position', type: 'vec3' },
|
|
80
|
+
{ name: 'scale', type: 'float' },
|
|
81
|
+
|
|
82
|
+
{ name: 'brickSize', type: 'vec3' },
|
|
83
|
+
{ name: 'brickShift', type: 'float' },
|
|
84
|
+
{ name: 'jointSize', type: 'float' },
|
|
85
|
+
{ name: 'jointSpan', type: 'float' },
|
|
86
|
+
{ name: 'jointJitter', type: 'float' },
|
|
87
|
+
{ name: 'jointBlur', type: 'float' },
|
|
88
|
+
{ name: 'noiseSize', type: 'float' },
|
|
89
|
+
{ name: 'noiseStrength', type: 'float' },
|
|
90
|
+
{ name: 'colorShade', type: 'float' },
|
|
91
|
+
|
|
92
|
+
{ name: 'color', type: 'vec3' },
|
|
93
|
+
{ name: 'additional', type: 'vec3' },
|
|
94
|
+
{ name: 'background', type: 'vec3' },
|
|
95
|
+
|
|
96
|
+
{ name: 'seed', type: 'float' },
|
|
97
|
+
] }
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
function bricks( params={} ) {
|
|
103
|
+
|
|
104
|
+
var { position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed } = { ...defaults, ...params };
|
|
105
|
+
|
|
106
|
+
return bricksRaw( position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed );
|
|
107
|
+
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
bricks.defaults = defaults;
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
export { bricks };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
|
|
2
|
+
// TSL-Textures: Camouflage
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import { Color } from 'three';
|
|
7
|
+
import { Fn, If, positionGeometry } from 'three/tsl';
|
|
8
|
+
import { noise } from './tsl-utils.js';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var defaults = {
|
|
13
|
+
$name: 'Camouflage',
|
|
14
|
+
|
|
15
|
+
position: positionGeometry,
|
|
16
|
+
scale: 2,
|
|
17
|
+
|
|
18
|
+
colorA: new Color( 0xc2bea8 ),
|
|
19
|
+
colorB: new Color( 0x9c895e ),
|
|
20
|
+
colorC: new Color( 0x92a375 ),
|
|
21
|
+
colorD: new Color( 0x717561 ),
|
|
22
|
+
|
|
23
|
+
seed: 0,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
var camouflageRaw = Fn( ([ position, scale, colorA, colorB, colorC, colorD, seed ])=>{
|
|
29
|
+
|
|
30
|
+
var pos = position.mul( scale.exp( ) ).add( seed ).toVar( 'pos' );
|
|
31
|
+
|
|
32
|
+
var color = colorD.toVar( 'color' );
|
|
33
|
+
|
|
34
|
+
If( noise( pos ).greaterThanEqual( 0.3 ), () => {
|
|
35
|
+
|
|
36
|
+
color.assign( colorA );
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
.ElseIf( noise( pos.yzx ).greaterThanEqual( 0.2 ), () => {
|
|
41
|
+
|
|
42
|
+
color.assign( colorB );
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
.ElseIf( noise( pos.zxy ).greaterThanEqual( 0.1 ), () => {
|
|
47
|
+
|
|
48
|
+
color.assign( colorC );
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
return color;
|
|
54
|
+
|
|
55
|
+
} ).setLayout( {
|
|
56
|
+
name: 'camouflageRaw',
|
|
57
|
+
type: 'vec3',
|
|
58
|
+
inputs: [
|
|
59
|
+
{ name: 'position', type: 'vec3' },
|
|
60
|
+
{ name: 'scale', type: 'float' },
|
|
61
|
+
{ name: 'colorA', type: 'vec3' },
|
|
62
|
+
{ name: 'colorB', type: 'vec3' },
|
|
63
|
+
{ name: 'colorC', type: 'vec3' },
|
|
64
|
+
{ name: 'colorD', type: 'vec3' },
|
|
65
|
+
{ name: 'seed', type: 'float' },
|
|
66
|
+
] }
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
function camouflage( params={} ) {
|
|
72
|
+
|
|
73
|
+
var { position, scale, colorA, colorB, colorC, colorD, seed } = { ...defaults, ...params };
|
|
74
|
+
|
|
75
|
+
return camouflageRaw( position, scale, colorA, colorB, colorC, colorD, seed );
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
camouflage.defaults = defaults;
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
export { camouflage };
|
package/src/caustics.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
|
|
2
|
+
// TSL-Textures: Caustics
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import { Color } from 'three';
|
|
7
|
+
import { exp, Fn, positionGeometry, time, vec3 } from 'three/tsl';
|
|
8
|
+
import { voronoi, voronoi3 } from './tsl-utils.js';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var defaults = {
|
|
13
|
+
$name: 'Caustics',
|
|
14
|
+
|
|
15
|
+
position: positionGeometry,
|
|
16
|
+
scale: 2,
|
|
17
|
+
speed: 0,
|
|
18
|
+
time: time,
|
|
19
|
+
|
|
20
|
+
color: new Color( 0x50A8C0 ),
|
|
21
|
+
|
|
22
|
+
seed: 0,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
var causticsRaw = Fn( ([ position, scale, speed, time, color, seed ])=>{
|
|
28
|
+
|
|
29
|
+
var pos = position.mul( exp( scale.sub( 1 ) ) ).add( seed ).toVar( );
|
|
30
|
+
|
|
31
|
+
var t = time.mul( speed.sub( 1 ).exp() )
|
|
32
|
+
.add( vec3( 0, 2*Math.PI/3, 4*Math.PI/3 ) )
|
|
33
|
+
.sin();
|
|
34
|
+
|
|
35
|
+
var p = voronoi3(
|
|
36
|
+
pos.add( vec3(
|
|
37
|
+
voronoi( pos.add( t.xyz ) ),
|
|
38
|
+
voronoi( pos.add( t.yzx ) ),
|
|
39
|
+
voronoi( pos.add( t.zxy ) ),
|
|
40
|
+
) ) );
|
|
41
|
+
|
|
42
|
+
var k = p.length().div( Math.sqrt( 3 ) );
|
|
43
|
+
|
|
44
|
+
return k.add( color.sub( 0.5 ).mul( 2 ) );
|
|
45
|
+
|
|
46
|
+
} ).setLayout( {
|
|
47
|
+
name: 'causticsRaw',
|
|
48
|
+
type: 'vec3',
|
|
49
|
+
inputs: [
|
|
50
|
+
{ name: 'position', type: 'vec3' },
|
|
51
|
+
{ name: 'scale', type: 'float' },
|
|
52
|
+
{ name: 'speed', type: 'float' },
|
|
53
|
+
{ name: 'time', type: 'float' },
|
|
54
|
+
{ name: 'color', type: 'vec3' },
|
|
55
|
+
{ name: 'seed', type: 'float' },
|
|
56
|
+
] }
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
function caustics( params={} ) {
|
|
62
|
+
|
|
63
|
+
var { position, scale, speed, time, color, seed } = { ...defaults, ...params };
|
|
64
|
+
|
|
65
|
+
return causticsRaw( position, scale, speed, time, color, seed );
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
caustics.defaults = defaults;
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
export { caustics };
|