tsl-textures 2.5.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/tsl-textures.js +2449 -1426
  2. package/dist/cjs/tsl-textures.min.js +2 -2
  3. package/dist/tsl-textures.js +2435 -1421
  4. package/dist/tsl-textures.min.js +2 -2
  5. package/package.json +1 -1
  6. package/src/brain.js +72 -21
  7. package/src/bricks.js +56 -23
  8. package/src/camouflage.js +39 -20
  9. package/src/caustics.js +39 -14
  10. package/src/cave-art.js +39 -13
  11. package/src/circle-decor.js +39 -13
  12. package/src/circles.js +36 -16
  13. package/src/clouds.js +69 -28
  14. package/src/concrete.js +57 -23
  15. package/src/cork.js +54 -35
  16. package/src/crumpled-fabric.js +39 -14
  17. package/src/dalmatian-spots.js +37 -12
  18. package/src/darth-maul.js +43 -15
  19. package/src/dyson-sphere.js +61 -18
  20. package/src/entangled.js +36 -12
  21. package/src/fordite.js +36 -12
  22. package/src/gas-giant.js +42 -16
  23. package/src/grid.js +45 -17
  24. package/src/isolayers.js +41 -15
  25. package/src/isolines.js +36 -10
  26. package/src/karst-rock.js +31 -8
  27. package/src/marble.js +36 -11
  28. package/src/melter.js +0 -1
  29. package/src/neon-lights.js +51 -23
  30. package/src/perlin-noise.js +66 -0
  31. package/src/photosphere.js +34 -11
  32. package/src/planet.js +66 -30
  33. package/src/polka-dots.js +42 -17
  34. package/src/processed-wood.js +42 -16
  35. package/src/protozoa.js +51 -16
  36. package/src/reticular-veins.js +37 -11
  37. package/src/roman-paving.js +30 -8
  38. package/src/rotator.js +71 -27
  39. package/src/rough-clay.js +50 -22
  40. package/src/runny-eggs.js +120 -44
  41. package/src/rust.js +81 -19
  42. package/src/satin.js +27 -20
  43. package/src/scaler.js +61 -26
  44. package/src/scepter-head.js +46 -20
  45. package/src/scream.js +29 -19
  46. package/src/stars.js +36 -11
  47. package/src/static-noise.js +36 -9
  48. package/src/supersphere.js +63 -26
  49. package/src/tiger-fur.js +41 -14
  50. package/src/translator.js +67 -24
  51. package/src/tsl-textures.js +2 -1
  52. package/src/tsl-utils.js +172 -623
  53. package/src/turbulent-smoke.js +38 -13
  54. package/src/voronoi-cells.js +44 -26
  55. package/src/water-drops.js +55 -22
  56. package/src/watermelon.js +43 -18
  57. package/src/wood.js +48 -15
  58. package/src/zebra-lines.js +38 -12
  59. package/src/simplex-noise.js +0 -41
@@ -1,2 +1,2 @@
1
- /*! TSL Textures v2.5.0 */
2
- import{Fn as a,min as e,sub as o,max as r,vec3 as n,float as t,add as l,If as s,select as d,sin as u,cos as m,vec4 as i,mul as c,cross as v,remap as p,pow as g,log2 as y,mat4 as V,smoothstep as b,positionGeometry as w,dFdx as h,dFdy as f,transformNormalToView as z,mx_noise_float as x,uniform as k,exp as M,mx_fractal_noise_float as $,mix as A,time as S,round as P,pow2 as I,abs as T,or as B,acos as j,clamp as E,normalLocal as L,tangentLocal as C,Loop as R,floor as W,oneMinus as q,screenSize as D,screenUV as G,equirectUV as O,div as F,remapClamp as N,sqrt as Y,mat2 as U,mod as H,distance as Z,radians as J,matcapUV as X,mx_worley_noise_float as _,sign as K,tan as Q,screenCoordinate as aa,reciprocal as ea,vec2 as oa,mx_worley_noise_vec2 as ra,mx_fractal_noise_vec3 as na,mx_worley_noise_vec3 as ta}from"three/tsl";export{mx_noise_float as noise}from"three/tsl";import{Color as la,Vector3 as sa,Vector2 as da}from"three";const ua=a((([a,n,t,l])=>{var s=l.add(a.mul(12)).mod(12),d=n.mul(e(t,o(1,t)));return t.sub(d.mul(r(-1,e(e(s.sub(3),o(9,s)),1))))}));ua.setLayout({name:"hslHelper",type:"float",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"},{name:"n",type:"float"}]});const ma=a((([a,e,o])=>{a=a.fract().add(1).fract(),e=e.clamp(0,1),o=o.clamp(0,1);var r=ua(a,e,o,0),t=ua(a,e,o,8),l=ua(a,e,o,4);return n(r,t,l)}));ma.setLayout({name:"hsl",type:"vec3",inputs:[{name:"h",type:"float"},{name:"s",type:"float"},{name:"l",type:"float"}]});const ia=a((([a])=>{var u=t(a.x).toVar(),m=t(a.y).toVar(),i=t(a.z).toVar(),c=r(u,r(m,i)).toVar(),v=e(u,e(m,i)).toVar(),p=t(0).toVar(),g=t(0).toVar(),y=l(c,v).div(2);return s(v.notEqual(c),(()=>{const a=o(c,v).toVar();g.assign(d(y.lessThanEqual(.5),a.div(l(v,c)),a.div(o(2,l(v,c))))),s(c.equal(u),(()=>{p.assign(o(m,i).div(a).add(d(m.lessThanEqual(i),6,0)))})).ElseIf(c.equal(m),(()=>{p.assign(o(i,u).div(a).add(2))})).Else((()=>{p.assign(o(u,m).div(a).add(4))})),p.divAssign(6)})),n(p,g,y)}));function ca(a){var e={};for(var[o,r]of Object.entries(a))"$"!=o[0]&&(e[o]=r instanceof sa?k(r,"vec3"):k(r));return e}ia.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const va=a((([a,e])=>n(u(e).mul(u(a)),m(a),m(e).mul(u(a)))));va.setLayout({name:"spherical",type:"vec3",inputs:[{name:"phi",type:"float"},{name:"theta",type:"float"}]});const pa=a((([a,e])=>{var o=ga(e);return ya(a,o)}));pa.setLayout({name:"applyEuler",type:"vec4",inputs:[{name:"vec",type:"vec3"},{name:"eu",type:"vec3"}]});const ga=a((([a])=>{var e=m(a.x.div(2)),r=m(a.y.div(2)),n=m(a.z.div(2)),t=u(a.x.div(2)),s=u(a.y.div(2)),d=u(a.z.div(2));return i(l(c(t,r,n),c(e,s,d)),o(c(e,s,n),c(t,r,d)),l(c(e,r,d),c(t,s,n)),o(c(e,r,n),c(t,s,d)))}));ga.setLayout({name:"quaternionFromEuler",type:"vec4",inputs:[{name:"eu",type:"vec3"}]});const ya=a((([a,e])=>{var o=v(e.xyz,a).mul(2).toVar();return l(a,o.mul(e.w),v(e.xyz,o))}));ya.setLayout({name:"applyQuaternion",type:"vec3",inputs:[{name:"vec",type:"vec3"},{name:"quat",type:"vec4"}]});const Va=a((([a,e,o,r,n])=>(a=p(a,e,o,0,1),a=g(2,c(a,y(n.div(r))).add(y(r))))));Va.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 ba=a((([a])=>a.dot(n(12.9898,78.233,-97.5123)).sin().mul(43758.5453).fract().mul(2).sub(1)));ba.setLayout({name:"vnoise",type:"float",inputs:[{name:"v",type:"vec3"}]});const wa=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return V(1,0,0,0,0,e,o,0,0,o.negate(),e,0,0,0,0,1)}));wa.setLayout({name:"matRotX",type:"mat4",inputs:[{name:"angle",type:"float"}]});const ha=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return V(e,0,o.negate(),0,0,1,0,0,o,0,e,0,0,0,0,1)}));ha.setLayout({name:"matRotY",type:"mat4",inputs:[{name:"angle",type:"float"}]});const fa=a((([a])=>{var e=a.cos().toVar(),o=a.sin().toVar();return V(e,o,0,0,o.negate(),e,0,0,0,0,1,0,0,0,0,1)}));fa.setLayout({name:"matRotZ",type:"mat4",inputs:[{name:"angle",type:"float"}]});const za=a((([a])=>{var e=wa(a.x),o=ha(a.y),r=fa(a.z);return o.mul(e).mul(r)}));za.setLayout({name:"matRotYXZ",type:"mat4",inputs:[{name:"angles",type:"vec3"}]});const xa=a((([a])=>V(a.x,0,0,0,0,a.y,0,0,0,0,a.z,0,0,0,0,1)));xa.setLayout({name:"matScale",type:"mat4",inputs:[{name:"scales",type:"vec3"}]});const ka=a((([a])=>V(1,0,0,0,0,1,0,0,0,0,1,0,a.x,a.y,a.z,1)));ka.setLayout({name:"matTrans",type:"mat4",inputs:[{name:"vector",type:"vec3"}]});const Ma=a((([a,e,o,r])=>{var n=va(e.x,e.y).mul(r).toVar(),t=o.sub(n.div(2)).sub(a).dot(n).div(n.dot(n)).negate();return b(0,1,t)}));Ma.setLayout({name:"selectPlanar",type:"float",inputs:[{name:"pos",type:"vec3"},{name:"selAngles",type:"vec2"},{name:"selCenter",type:"vec3"},{name:"selWidth",type:"float"}]});const $a=a((a=>{var e=Ma(w,a.selectorAngles,a.selectorCenter,a.selectorWidth).sub(.5).mul(2).abs().oneMinus().pow(.25).negate().mul(a.selectorShow);return n(0,e,e)})),Aa=a((([a])=>{var e=h(a),o=f(a);return z(v(e,o).normalize())}));Aa.setLayout({name:"normalVector",type:"vec3",inputs:[{name:"pos",type:"vec3"}]});var Sa=null,Pa=10;async function Ia(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(Sa=document.createElement("div")).innerHTML='\n\t<div style="font-size:1.25em; font-weight:bold;">PLEASE, WAIT</div>\n\t<div style="font-size:0.85em; font-weight:100;" >NO WEBGPU &mdash; TRYING WEBGL2</div>\n\t<div id="counter"></div>\n\t',Sa.style.left="calc(50% - 8em)",Sa.style.width="16em",Sa.style.fontFamily="Bahnschrifts, Arial",Sa.style.position="absolute",Sa.style.bottom="20px",Sa.style.padding="12px 6px",Sa.style.border="1px solid white",Sa.style.borderRadius="4px",Sa.style.background="rgba(0,0,0,0.5)",Sa.style.color="white",Sa.style.textAlign="center",Sa.style.opacity="0.8",Sa.style.outline="none",Sa.style.zIndex="999",document.body.appendChild(Sa)}function Ta(){Sa&&(Pa>0?Pa--:(Sa.style.display="none",Sa=null))}function Ba(a,e){var o=[];for(var r of a)if(r&&"object"==typeof r){o=Object.keys(r);break}var l={...e};for(var s of o)void 0!==a[s]&&(l[s]=a[s]);for(var d of Object.keys(l))"number"==typeof l[d]?l[d]=t(l[d]):l[d]instanceof la?l[d]=n(l[d].r,l[d].g,l[d].b):l[d]instanceof sa&&(l[d]=n(l[d].x,l[d].y,l[d].z));return l}function ja(a,e=1,o=1,r=0){return x(a.mul(e,o).add(r))}function Ea(e,o,r=null){const n=a(e,r),t=new Map;t.set("defaults",o),t.set("opacity",null),t.set("roughness",null),t.set("normal",null);const l=function(){};return Object.setPrototypeOf(l,Object.getPrototypeOf(n.call)),new Proxy(l,{get:(a,e,o)=>"defaults"===e?t.get("defaults"):"opacity"===e?t.get("opacity"):"roughness"===e?t.get("roughness"):"normal"===e?t.get("normal"):"fn"===e?n:Reflect.get(n,e,o),set:(a,e,o,r)=>"defaults"===e?(t.set("defaults",o),!0):"opacity"===e?(t.set("opacity",o),!0):"roughness"===e?(t.set("roughness",o),!0):"normal"===e?(t.set("normal",o),!0):Reflect.set(n,e,o,r),apply:(a,e,o)=>Reflect.apply(n,e,o),getOwnPropertyDescriptor:(a,e)=>"defaults"===e?{value:t.get("defaults"),writable:!0,enumerable:!0,configurable:!0}:("opacity"===e&&Reflect.getOwnPropertyDescriptor(null,e),"roughness"===e&&Reflect.getOwnPropertyDescriptor(null,e),"normal"===e&&Reflect.getOwnPropertyDescriptor(null,e),Reflect.getOwnPropertyDescriptor(n,e))})}var La={$name:"Brain",scale:2,smooth:.5,wave:.5,speed:2.5,color:new la(16765136),background:new la(5242880),seed:0},Ca=Ea((a=>{a=Ba(a,La);var e=w.mul(M(a.scale.div(3))).add(a.seed).toVar(),o=M(a.smooth.oneMinus().mul(2)),r=$(e.mul(5),o).add(1).div(2).clamp(0,1).pow(2);return A(a.color,a.background,r)}),La);Ca.normal=Ea((a=>{a=Ba(a,La);var e=w.mul(M(a.scale.div(3))).add(a.seed).toVar(),o=M(a.smooth.oneMinus().mul(2)),r=.01,t=$(e.mul(5),o),l=$(e.add(n(r,0,0)).mul(5),o).sub(t).div(r),s=$(e.add(n(0,r,0)).mul(5),o).sub(t).div(r),d=x(e.mul(a.wave.mul(5))).add(1).div(2).mul(6.28);return n(l,s,S.mul(a.speed).add(d).sin().add(t,1)).normalize()}),La);var Ra={$name:"Camouflage",scale:2,colorA:new la(12762792),colorB:new la(10258782),colorC:new la(9610101),colorD:new la(7435617),seed:0},Wa=Ea((a=>{a=Ba(a,Ra);var e=w.mul(M(a.scale)).add(a.seed).toVar(),o=n(0,0,0).toVar();return s(P(x(e,1,.2)).greaterThanEqual(1),(()=>{o.assign(a.colorA)})).ElseIf(P(x(e.yzx,1,.3)).greaterThanEqual(1),(()=>{o.assign(a.colorB)})).ElseIf(P(x(e.zxy,1,.4)).greaterThanEqual(1),(()=>{o.assign(a.colorC)})).Else((()=>{o.assign(a.colorD)})),o}),Ra),qa={$name:"Cave art",scale:2,thinness:2,noise:.3,color:new la(13845829),background:new la(16775408),seed:0},Da=Ea((a=>{a=Ba(a,qa);var e=w.mul(M(a.scale)).add(a.seed).toVar(),r=x(e,4).sin().toVar(),n=x(e.mul(1.5),4).cos().toVar(),d=M(o(t(3),a.thinness)),u=o(d,I(T(l(r,n))).mul(20)).toVar();return s(B(r.greaterThan(n),u.lessThan(0)),(()=>{u.assign(0)})),s(u.lessThanEqual(0),(()=>{u.assign(a.noise.mul(I(x(e.mul(30)))))})),A(a.background,a.color,u)}),qa),Ga={$name:"Circles",scale:2,variety:1,color:new la(15786192),flat:0,seed:0},Oa=Ea((a=>{a=Ba(a,Ga);for(var e=d(a.flat,w,w.normalize()),o=j(E(e.y,-1,1)).mul(20),r=M(a.scale.sub(1)),n=o.div(3e3).mul(r),l=t(a.seed.sin().mul(100)).toVar(),s=0;s<=10;s++)l.addAssign(u(n.mul(2**s).sub(Math.PI*s/2)).mul(-s*(s+1)/2));l.assign(l.div(200).clamp(-2,2));var m=ia(a.color),i=m.x.add(l.mul(a.variety)).mod(1).mul(10),c=i.floor(),v=i.sub(c);return v=d(v.lessThan(.5),v.pow(1.5),v.pow(1/1.5)),ma(c.add(v).div(10),m.y,m.z)}),Ga),Fa={$name:"Clouds",scale:2,density:.5,opacity:1,color:new la(16777215),subcolor:new la(10526896),seed:0},Na=a((a=>{const e=w,o=M(a.scale.div(1.5).sub(.5)),r=l(ja(e,o,1,a.seed),ja(e,o,2,a.seed).mul(.8),ja(e,o,6,a.seed).mul(.1),ja(e,o,8,a.seed).mul(.07,a.opacity),a.density.remap(0,1,-.5,1.5)),n=E(0,1,c(r,2).pow(1.5).sub(1).mul(a.opacity));return i(A(a.subcolor,a.color,r.clamp(0,1)),n)})),Ya=Ea((a=>(a=Ba(a,Fa),Na(a).rgb)),Fa);Ya.opacity=Ea((a=>(a=Ba(a,Fa),Na(a).a)),Fa);var Ua={$name:"Concrete",$normalNode:!0,scale:2,density:.5,bump:.5,seed:0},Ha=a((([a,e,o,r,n])=>{var t=x(a.add(n)).mul(.5).add(.5);return t=o.mul(g(T(t),r)),a.add(t.mul(e))})),Za=Ea((a=>{a=Ba(a,Ua);var e=w.mul(M(a.scale.div(2).add(2))).toVar(),r=L.normalize().toVar(),t=C.normalize().mul(.001).toVar(),l=v(r,t).normalize().mul(.001).toVar(),s=p(a.density,0,1,10,.5).toVar(),d=n(u(a.seed).mul(100),m(a.seed.div(2)).mul(100),u(a.seed.div(3)).mul(100)).toVar(),i=Ha(e,r,a.bump,s,d),c=Ha(e.add(t),r,a.bump,s,d),g=Ha(e.add(l),r,a.bump,s,d),y=o(c,i),V=o(g,i);return z(v(y,V).normalize())}),Ua),Ja={$name:"Cork",scale:1,straight:1,noise:.3,color:new la(16773312),background:new la(13664352),seed:0},Xa=a((([a])=>a.add(ba(a)))),_a=Ea((a=>{a=Ba(a,Ja);var e=w.mul(M(a.scale.div(1.5).add(1))).add(a.seed).toVar(),o=e.round().toVar(),r=o.toVar(),l=t(1).toVar(),d=n().toVar(),u=t().toVar(),m=t(0).toVar();R(27,(()=>{var t=m.mod(3).sub(1),i=m.div(3).floor().mod(3).sub(1),c=m.div(9).floor().sub(1);d.assign(o.add(n(t,i,c))),u.assign(e.distance(Xa(d))),u.addAssign(x(e.add(d)).div(a.straight.exp())),s(u.lessThan(l),(()=>{l.assign(u),r.assign(d)})),m.addAssign(1)}));var i=x(r.mul(Math.PI)).toVar(),c=x(e.mul(12)).toVar();c.assign(c.sign().mul(c.abs().pow3())),c.addAssign(x(e.mul(40)).div(3));var v=i.add(1).div(2);return A(a.color,a.background,v.add(c.mul(a.noise))).toVar()}),Ja),Ka={$name:"Dalmatian spots",$width:260,scale:2,density:.6,color:new la(16777215),background:new la(0),seed:0},Qa=Ea((a=>{a=Ba(a,Ka);var e=w.mul(M(a.scale)).add(a.seed).sub(1e3).toVar(),o=t(1).toVar(),r=t(1.5).sub(a.density).mul(2).toVar(),n=a.density.mul(5).add(5).toVar();return R(n,(()=>{o.mulAssign(x(e).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01)),o.mulAssign(x(e.yzx).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01)),o.mulAssign(x(e.zxy).abs().pow(r).mul(100).sub(50).clamp(0,1).oneMinus()),e.assign(e.mul(1.01))})),A(a.background,a.color,o.clamp(0,1))}),Ka),ae={$name:"Darth Maul",scale:2,shift:new sa(0,0,0),complexity:0,angle:60,distance:1.9,color:new la(15745088),background:new la(0),balance:0,seed:0},ee=Ea((a=>{a=Ba(a,ae);var e=w.add(a.shift).mul(M(a.scale.div(1.5).sub(1))).sub(a.shift).mul(n(1,.5,.5)).toVar(),o=d(w.y.mul(a.angle.radians().cos()).add(w.z.mul(a.angle.radians().sin())).greaterThan(a.distance),1,0);e.x.assign(e.x.add(a.shift.x).abs()),e.y.addAssign(a.seed),e.z.mulAssign(a.shift.z);var r=x(e).toVar(),t=r.sin().mul(r.mul(a.complexity.mul(2).add(1).exp()).sin()).remap(0,.2,1,-1).greaterThan(a.balance).select(0,1),l=d(e.x.greaterThan(x(e.mul(2.3)).abs().mul(.5).add(.02)),1,0);return A(a.background,a.color,t.mul(o).mul(l).clamp(0,1))}),ae),oe={$name:"Dyson sphere",scale:2,complexity:2,variation:0,color:new la(12636415),background:new la(0),seed:0},re=a((([a])=>{var e=a.mul(5**.5).fract().toVar();return e.addAssign(e.dot(e.add(n(31.4159,27.1828,14.142)))),e.z.mul(e.x.add(e.y)).fract().mul(2).sub(1)})),ne=a((([a])=>{var e=a.oneMinus().clamp(0,1).toVar();return e.mul(e).mul(t(3).sub(e.mul(2)))})),te=a((([a])=>{var e=a.x.floor().toVar(),o=e.add(1).toVar(),r=a.y.floor().toVar(),t=r.add(1).toVar(),l=a.z.floor().toVar(),s=l.add(1).toVar(),d=ne(a.x.fract()).toVar(),u=ne(a.y.fract()).toVar(),m=ne(a.z.fract()).toVar(),i=ne(d.oneMinus()).toVar(),c=ne(u.oneMinus()).toVar(),v=ne(m.oneMinus()).toVar(),p=re(n(e,r,l)).mul(i).mul(c).mul(v).toVar(),g=re(n(e,r,s)).mul(i).mul(c).mul(m).toVar(),y=re(n(e,t,l)).mul(i).mul(u).mul(v).toVar(),V=re(n(e,t,s)).mul(i).mul(u).mul(m).toVar(),b=re(n(o,r,l)).mul(d).mul(c).mul(v).toVar(),w=re(n(o,r,s)).mul(d).mul(c).mul(m).toVar(),h=re(n(o,t,l)).mul(d).mul(u).mul(v).toVar(),f=re(n(o,t,s)).mul(d).mul(u).mul(m).toVar();return p.add(g).add(y).add(V).add(b).add(w).add(h).add(f)})),le=Ea((a=>{a=Ba(a,oe);var e=w.mul(M(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=n().toVar(),r=t(1).toVar();return R(a.complexity.add(4),(()=>{o.addAssign(te(e.mul(r))),r.addAssign(r)})),A(a.background,a.color,o.x.add(1).div(5))}),oe),se={$name:"Entangled",scale:2,density:10,color:new la(8256),background:new la(16777215),seed:0},de=Ea((a=>{a=Ba(a,se);var e=M(a.scale.div(2)).toVar(),o=w.add(a.seed).toVar(),n=t(-1e4).toVar(),l=t(0).toVar();return R(W(t(a.density)),(()=>{l.assign(u(x(c(o,e)).mul(3*Math.PI))),n.assign(r(n,l)),e.mulAssign(1.2)})),n.assign(q(g(T(n),5)).mul(6)),A(a.color,a.background,n)}),se),ue={$name:"Fordite",scale:2,color:new la(0,0,0),seed:0},me=Ea((a=>{a=Ba(a,ue);var e=w.mul(M(a.scale)).add(a.seed).toVar(),o=x(n(x(e),x(e).mul(2),x(e).mul(3))).toVar();return ma(o,1,u(c(o,Math.PI,4)).mul(.5).add(.5)).add(a.color)}),ue),ie={$name:"Gas giant",scale:2,turbulence:.3,blur:.6,colorA:new la(16775408),colorB:new la(15788208),colorC:new la(11509968),seed:0},ce=Ea((a=>{var e=(a=Ba(a,ie)).scale.div(2).add(1).toVar(),o=w.mul(M(e)).add(a.seed).toVar(),r=a.turbulence.mul(x(n(0,o.y.mul(.5),0).add(1)).add(x(n(0,o.y.mul(1),0).add(1)).mul(.5),x(n(1,o.y.mul(2),1).add(1)).mul(.25))).mul(5).abs().toVar(),t=x(o.div(4)).add(1).div(2).pow(10).mul(10).smoothstep(0,1);o.addAssign(n(x(o),x(o.yxz),x(o.yzx)).mul(r.mul(t.mul(2).exp())));var l=a.blur.pow(.2).oneMinus().mul(r.add(1)).toVar(),s=x(o.mul(n(0,e,0)));s=(s=s.add(x(o.mul(n(1,15,1))).mul(l))).add(-.5).smoothstep(-1,1).oneMinus();var d=x(n(0,o.y.mul(.75),0)).add(1),u=ia(A(a.colorB,a.colorA,d)),m=ma(u.x.add(x(o.mul(n(0,e,0))).div(4)),u.y,u.z).toVar();return m.assign(A(m,a.colorC,r.mul(.3))),m.mul(s)}),ie),ve={$name:"Grid",countU:32,countV:16,thinness:.8,color:new la(0),background:new la(16777215),flat:0},pe=Ea((a=>{a=Ba(a,ve);var r=d(a.flat,D.x.div(D.y),2),n=d(a.flat,G,O(w.normalize())).toVar(),t=c(n.x,r,Math.PI),s=c(n.y,Math.PI).toVar(),m=F(P(c(n.x,a.countU)),a.countU),i=F(P(c(n.y,a.countV)),a.countV),v=c(m,r,Math.PI),p=c(i,Math.PI),y=T(o(t,v)).mul(d(a.flat,1,u(s))),V=T(o(s,p)),h=e(y,V),f=c(e(F(r.mul(Math.PI),a.countU),F(Math.PI,a.countV)),N(g(a.thinness,.5),0,1,.9,.04),.5),z=q(b(o(f,.002),l(f,.002),h));return A(a.background,a.color,z)}),ve),ge={$name:"Isolines",scale:2,density:40,blur:.3,thinness:.6,color:new la(16777215),background:new la(0),seed:0},ye=Ea((a=>{a=Ba(a,ge);var e=w.mul(M(a.scale)).add(a.seed).toVar(),r=x(e).mul(a.density);return r=q(u(r)).div(2),r=b(o(a.thinness,a.blur),l(a.thinness,a.blur),r),A(a.color,a.background,r)}),ge),Ve={$name:"Karst rock",scale:2,color:new la(16774384),background:new la(13684944),seed:0},be=Ea((a=>{a=Ba(a,Ve);var e=w.mul(M(a.scale)).add(a.seed.sin().mul(5)).toVar(),o=e.add(x(e.mul(2))).toVar(),r=x(o).div(x(o.mul(1.01))).clamp(0,2).toVar();return r.addAssign(x(e.mul(100)).div(3)),r.addAssign(x(e.mul(2)).div(2)),A(a.background,a.color,r).mul(r.pow(.1))}),Ve),we={$name:"Marble",scale:1.2,thinness:5,noise:.3,color:new la(4539859),background:new la(15792383),seed:0},he=Ea((a=>{a=Ba(a,we);var e=w.mul(M(a.scale)).add(a.seed).toVar(),o=l(x(e),x(e.mul(2)).mul(.5),x(e.mul(6)).mul(.1)),r=(o=q(o.abs().pow(2.5)).toVar(),q(g(.5,a.thinness.add(7))).toVar()),n=q(g(.5,a.thinness.add(7).mul(.5))).toVar();return s(o.greaterThan(r),(()=>{o.assign(1)})).ElseIf(o.lessThan(n),(()=>{o.assign(0)})).Else((()=>{var a=o.sub(n),t=r.sub(n);o.assign(g(F(a,t),5).mul(.75)),o.assign(o.mul(l(.5,x(e.mul(2)).mul(1.5))))})),o.assign(o.add(c(a.noise,x(e.mul(150)).abs().pow3()))),A(a.background,a.color,o)}),we),fe={$name:"Neon Lights",scale:1.5,thinness:.8,mode:0,colorA:new la(16711680),colorB:new la(65280),colorC:new la(255),background:new la(0),seed:0},ze=Ea((a=>{a=Ba(a,fe);var e=w,o=M(a.scale.remap(0,4,2,-2)).toVar(),r=M(a.thinness.remap(0,1,1.5,0)).toVar(),t=a.background.toVar(),l=n(0).toVar(),s=x(e.xyz).toVar(),u=x(e.yzx).toVar(),m=x(e.zxy).toVar(),i=x(n(s,u,m).mul(o).add(a.seed)).toVar();i.assign(q(Y(T(i))).pow(3)),l.assign(a.colorA);var c=ia(l);l.assign(ma(c.x,c.y,c.z.mul(i))),t.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),i.assign(x(n(u,m,s).mul(o).sub(a.seed))),i.assign(q(Y(T(i))).pow(3)),l.assign(a.colorB);c=ia(l);l.assign(ma(c.x,c.y,c.z.mul(i))),t.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),i.assign(x(n(m,s,u.negate()).mul(o).add(a.seed))),i.assign(q(Y(T(i))).pow(3)),l.assign(a.colorC);c=ia(l);return l.assign(ma(c.x,c.y,c.z.mul(i))),t.addAssign(d(a.mode.equal(0),l,l.negate()).mul(r)),t}),fe),xe={$name:"Photosphere",scale:2,color:new la(16776960),background:new la(16711680),seed:0},ke=Ea((a=>{a=Ba(a,xe);var e=M(a.scale.add(1)).toVar(),o=w.toVar(),r=n(o).toVar();R(6,(()=>{r.assign(pa(r,o.mul(e))),e.mulAssign(a.seed.mul(e).sin().mul(.05).add(1.1))}));var t=x(r).add(1).div(2);return A(a.background,a.color,t)}),xe),Me={$name:"Planet",scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new la(1194585).convertLinearToSRGB(),colorShallow:new la(8900331).convertLinearToSRGB(),colorBeach:new la(16775885).convertLinearToSRGB(),colorGrass:new la(3978097).convertLinearToSRGB(),colorForest:new la(12288).convertLinearToSRGB(),colorSnow:new la(15794175).convertLinearToSRGB(),seed:0},$e=Ea((a=>{a=Ba(a,Me);var e=t(0).toVar(),o=t(0).toVar(),r=M(a.scale.sub(2)).toVar(),l=t(2).toVar();R(a.iterations.add(10),(()=>{e.addAssign(c(l,x(w.mul(r).add(a.seed)))),o.addAssign(l),r.mulAssign(1.5),l.mulAssign(.8)})),e.assign(c(e,e,.5).div(o));var d=a.levelSea.pow(2).toVar(),u=a.levelMountain.pow(2).toVar(),m=A(d,u,a.balanceSand).toVar(),i=A(d,m,.4).toVar(),v=A(d,m,.6).toVar(),g=n().toVar();return s(e.lessThan(d),(()=>{g.assign(A(a.colorDeep,a.colorShallow,p(e,0,d,0,1).pow(M(a.balanceWater.mul(-8).add(4)))))})).ElseIf(e.lessThan(i),(()=>{g.assign(A(a.colorShallow,a.colorBeach,p(e,d,i)))})).ElseIf(e.lessThan(v),(()=>{g.assign(a.colorBeach)})).ElseIf(e.lessThan(m),(()=>{g.assign(A(a.colorBeach,a.colorGrass,p(e,v,m)))})).ElseIf(e.lessThan(u),(()=>{g.assign(A(a.colorGrass,a.colorForest,p(e,m,u).pow(.75)))})).Else((()=>{var o=A(1,u,a.balanceSnow);g.assign(A(a.colorForest,a.colorSnow,b(A(o,u,a.balanceSnow.pow(.5)),o,e)))})),g}),Me),Ae={$name:"Polka dots",count:2,size:.5,blur:.25,color:new la(0),background:new la(16777215),flat:0},Se=(1+5**.5)/2,Pe=Ea((a=>{a=Ba(a,Ae);var o=t(1).toVar();s(a.flat.equal(1),(()=>{var e=a.count.pow(2).sub(.5).toVar(),r=w.xy.mul(e).mul(U(1,1,-1,1)),n=r.round().toVar();o.assign(r.distance(n).div(e))})).Else((()=>{var n=g(10,a.count).toVar(),s=w.normalize().toVar(),d=q(s.y).mul(n).sub(1).div(2),u=r(10,n.pow(.5)),m=d.sub(u).floor().clamp(0,n),i=d.add(u).floor().clamp(0,n);o.assign(1).toVar(),R(i.sub(m),(({i:a})=>{var r=l(a,m),d=H(c(2*Math.PI/Se,r),2*Math.PI),u=j(q(t(r).mul(2).add(1).div(n))),i=va(u,d);o.assign(e(o,Z(s,i)))}))}));var n=M(a.size.mul(5).sub(5)).toVar(),d=a.blur.pow(4).toVar(),u=b(n.sub(d),n.add(d),o);return A(a.color,a.background,u)}),Ae),Ie={$name:"Processed wood",$width:260,scale:2,lengths:4,strength:.3,angle:0,color:new la(7348256),background:new la(15782048),seed:0},Te=Ea((a=>{a=Ba(a,Ie);var e=J(a.angle).toVar(),r=n(o(w.x.mul(m(e)),w.y.mul(u(e))),l(w.x.mul(u(e)),w.y.mul(m(e))),w.z).toVar(),t=a.scale.div(2).add(1).toVar(),s=r.mul(M(t)).add(a.seed).toVar(),d=a.lengths.add(5).reciprocal().toVar(),i=x(s.mul(t,n(1,d,d)));return i=(i=i.mul(x(s.mul(n(25,1,1))).add(-1).mul(.2))).add(a.strength.sub(.5)).smoothstep(-.3,.3).oneMinus(),A(a.color,a.background,i)}),Ie),Be={$name:"Protozoa",scale:1.5,fat:.7,amount:.4,color:new la(10526880),subcolor:new la(14739711),background:new la(15792383),seed:0},je=a((([a,e])=>x(a).mul(e).clamp(-3.14,3.14).cos().add(1).div(2))),Ee=Ea((a=>{a=Ba(a,Be);var e=w.mul(M(a.scale.sub(1))).add(a.seed).toVar(),o=n(X,X.length()).toVar(),r=t(0).toVar(),l=t(0).toVar(),s=t(0).toVar(),d=t(0).toVar(),u=a.fat.add(.2).oneMinus().mul(60).add(30).toVar(),m=t(2).toVar(),i=a.amount.div(2).add(.5).exp().toVar();return R(10,(()=>{r.assign(je(e.xyz.add(o),u)),l.assign(je(e.yzx.add(o),u)),s.addAssign(r.mul(l).mul(m)),d.addAssign(r.max(l).mul(m)),e.assign(A(e.mul(i),0,.4)),m.mulAssign(.9)})),A(a.background,A(a.color,a.subcolor,d.mul(.1)),s)}),Be),Le={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new sa(.4,-.6,0),center:new sa(0,0,0),selectorCenter:new sa(0,0,0),selectorAngles:new da(0,0),selectorWidth:2},Ce=a((([a,e])=>{var o=Ma(a,e.selectorAngles,e.selectorCenter,e.selectorWidth),r=za(e.angles.mul(o)),n=ka(e.center),t=ka(e.center.negate());return n.mul(r).mul(t).mul(i(a,1)).xyz})),Re=Ea((a=>(a=Ba(a,Le),Ce(w,a))),Le);Re.normal=Ea((a=>{a=Ba(a,Le);var e=w,r=L.normalize().toVar(),n=C.normalize().mul(.01).toVar(),t=v(r,n).normalize().mul(.01).toVar(),l=Ce(e,a),s=Ce(e.add(n),a),d=Ce(e.add(t),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),Le);var We={$name:"Rough clay",$normalNode:!0,scale:2,bump:.5,curvature:.2,seed:0},qe=a((([a,e,o,r])=>{var n=_(a.add(x(a).mul(r))).add(.8).pow(5).toVar();return n.addAssign(n.pow(.5)),a.add(e.mul(n).mul(o))})),De=Ea((a=>{var e=(a=Ba(a,We)).bump.div(50).toVar(),r=w.mul(M(a.scale.div(2))).add(a.seed.sin().mul(10)).toVar(),n=L.normalize().toVar(),t=C.normalize().mul(.001).toVar(),l=v(n,t).normalize().mul(.001).toVar(),s=qe(r,n,e,a.curvature),d=qe(r.add(t),n,e,a.curvature),u=qe(r.add(l),n,e,a.curvature),m=o(d,s),i=o(u,s);return z(v(m,i).normalize())}),We),Ge={$name:"Runny eggs",scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new la("orange"),colorWhite:new la("white"),colorBackground:new la("lightgray"),seed:0},Oe=Ea((a=>{a=Ba(a,Ge);var e=w.mul(M(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),o=a.sizeYolk.oneMinus(),r=a.sizeWhite.oneMinus(),n=_(e).toVar(),t=n.add(r).pow(8).oneMinus().clamp(-.5,1),l=n.add(o).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return A(a.colorBackground,A(a.colorWhite,a.colorYolk,l),t)}),Ge),Fe=a((([a,e,o,r,n])=>{var t=_(a).toVar(),l=t.add(n).pow(8).oneMinus(),s=t.add(r).pow(18).oneMinus().clamp(0,1),d=A(0,A(0,1,s),l);return a.add(e.mul(d).mul(o))}));Oe.normal=Ea((a=>{a=Ba(a,Ge);var e=.05,r=w.mul(M(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),n=L.normalize().toVar(),t=C.normalize().mul(.001).toVar(),l=v(n,t).normalize().mul(.001).toVar(),s=a.sizeYolk.oneMinus(),d=a.sizeWhite.oneMinus(),u=Fe(r,n,e,s,d),m=Fe(r.add(t),n,e,s,d),i=Fe(r.add(l),n,e,s,d),c=o(m,u),p=o(i,u);return z(v(c,p).normalize())}),Ge),Oe.roughness=Ea((a=>{a=Ba(a,Ge);var e=w.mul(M(a.scale.div(1))).add(a.seed.sin().mul(10)).toVar(),o=a.sizeYolk.oneMinus();return _(e).toVar().add(o).pow(18).clamp(0,1)}),Ge);var Ne={$name:"rust",scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new la(12615680),background:new la(32),seed:0},Ye=a((a=>{var e=w.mul(M(a.scale.div(4).add(-1))).add(a.seed).toVar(),o=a.amount.mul(x(e.mul(a.amount.div(2).add(4))).add(4)).toVar(),r=x(e).toVar();return R(a.iterations,(()=>{e.mulAssign(2),r.addAssign(x(e))})),r.subAssign(x(e.mul(2)).abs()),r.assign(r.sub(o).clamp(0,15)),r})),Ue=Ea((a=>{a=Ba(a,Ne);var e=Ye(a).mul(1.25).pow(.5),o=w.mul(M(a.scale.add(a.noiseScale.mul(3),2)));return e.addAssign(a.noise.mul(x(o).abs().add(.1).pow(2))),A(a.color,a.background,e)}),Ne);Ue.opacity=Ea((a=>(a=Ba(a,Ne),Ye(a).mul(a.opacity.add(.2)).oneMinus())),Ne);var He={$name:"Satin",scale:2,color:new la(7373055),background:new la(80),seed:0},Ze=Ea((a=>{a=Ba(a,He);var e=w.toVar(),o=M(a.scale.div(3)).toVar(),r=x(n(x(n(e.x.mul(2),e.y,e.z).mul(o)),x(n(e.x,e.y.mul(2),e.z).mul(o)),x(n(e.x,e.y,e.z.mul(2)).mul(o))).mul(o).add(a.seed));return r=g(T(r),3).mul(20),A(a.background,a.color,r)}),He);Ze.defaults={$name:"Satin",scale:2,color:new la(7373055),background:new la(80),seed:0};var Je={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new sa(.01,.9,1.7),center:new sa(0,0,0),selectorCenter:new sa(0,0,0),selectorAngles:new da(0,0),selectorWidth:2},Xe=a((([a,e])=>{var o=Ma(a,e.selectorAngles,e.selectorCenter,e.selectorWidth),r=xa(A(n(1,1,1),e.scales,o)),t=ka(e.center),l=ka(e.center.negate());return t.mul(r).mul(l).mul(i(a,1)).xyz})),_e=Ea((a=>(a=Ba(a,Je),Xe(w,a))),Je);_e.normal=Ea((a=>{a=Ba(a,Je);var e=w,r=L.normalize().toVar(),n=C.normalize().mul(.01).toVar(),t=v(r,n).normalize().mul(.01).toVar(),l=Xe(e,a),s=Xe(e.add(n),a),d=Xe(e.add(t),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),Je);var Ke={$name:"Scepter head",xFactor:10,yFactor:22,zFactor:10,colorRim:new la(16777215),colorA:new la(7397631),colorB:new la(3145983)},Qe=Ea((a=>{a=Ba(a,Ke);var e=w,o=e.x.mul(Va(a.xFactor,0,100,1.35,30)).toVar(),t=e.y.mul(Va(a.yFactor,0,100,1.35,30)).toVar(),s=e.z.mul(Va(a.zFactor,0,100,1.35,30)).toVar(),d=m(o).toVar(),u=m(t).toVar(),i=m(s).toVar(),v=x(n(e.x.div(d),e.y.div(u),e.z.div(i)));v=K(v).mul(T(v).pow(.75));var p=T(c(o,Q(o)).add(1).div(m(o))),g=T(c(t,Q(t)).add(1).div(m(t))),y=T(c(s,Q(s)).add(1).div(m(s))),V=n().toVar(),b=T(W(o.mul(2/Math.PI).add(1).div(2))),h=T(W(t.mul(2/Math.PI).add(1).div(2))),f=T(W(s.mul(2/Math.PI).add(1).div(2))),z=H(l(b,h,f),2);V.assign(ia(A(a.colorA,a.colorB,z)));var k=ma(V.x,V.y,V.z.mul(v)).toVar();V.assign(ia(a.colorRim));var M=ma(V.x,V.y,c(2,v,V.z)).toVar();return A(k,M,N(r(p,r(g,y)),45,65))}),Ke),ao={$name:"Scream",scale:2,variety:1,color:new la(15790176),background:new la(13668496),seed:0},eo=Ea((a=>{a=Ba(a,ao);var e=w.mul(M(a.scale)).add(a.seed).toVar(),o=x(l(u(e.xyz),m(e.yzx)));e.assign(w.mul(M(a.scale).mul(o)).add(a.seed));o=x(l(u(e.xyz),m(e.yzx)).mul(2));var r=A(a.background,a.color,o).toVar(),n=ia(r).toVar();return ma(l(n.x,a.variety.mul(u(o.mul(Math.PI))).mul(.5)),n.y,n.z)}),ao);eo.defaults={$name:"Scream",scale:2,variety:1,color:new la(15790176),background:new la(13668496),seed:0};var oo={$name:"Simplex noise",scale:2,balance:0,contrast:0,color:new la(16777215),background:new la(0),seed:0},ro=Ea((a=>{a=Ba(a,oo);var e=w.mul(M(a.scale)).add(a.seed),o=E(0,1,x(e).mul(.5,M(a.contrast)).add(.5,a.balance));return A(a.background,a.color,o)}),oo),no={$name:"Stars",scale:2,density:2,variation:0,color:new la(16774640),background:new la(96),seed:0},to=Ea((a=>{a=Ba(a,no);var e=w.mul(M(a.scale.div(2).add(3))).add(a.seed).toVar(),o=T(x(e)).pow(10).mul(10);o=o.mul(M(a.density.sub(2)));var r=d(o.greaterThan(.1),a.variation.mul(x(e)),0),n=ia(A(a.background,a.color,o));return ma(l(n.x,r),n.y,n.z)}),no),lo={$name:"Static noise",scale:2,balance:0,contrast:0,delay:0,seed:0},so=Ea((a=>{a=Ba(a,lo);var e=aa.div(M(a.scale)).add(a.seed),o=a.delay.sub(1).mul(5).exp(),r=S.div(o).round().mul(o),t=ba(r.sin()).mul(1e3),l=E(0,1,x(e.add(t)));return l=l.mul(.5,M(a.contrast)).add(.5,a.balance),n(l)}),lo),uo={$name:"Supersphere",$positionNode:!0,exponent:3},mo=a((([a,e])=>{var o=t(2).pow(e.exponent),r=a.div(a.length()).toVar(),n=r.x.abs().pow(o).add(r.y.abs().pow(o)).add(r.z.abs().pow(o)).pow(t(1).div(o));return r.div(n)})),io=Ea((a=>(a=Ba(a,uo),mo(w,a))),uo);io.normal=Ea((a=>{a=Ba(a,uo);var e=w,r=L.normalize().toVar(),n=C.normalize().mul(.01).toVar(),t=v(r,n).normalize().mul(.01).toVar(),l=mo(e,a),s=mo(e.add(n),a),d=mo(e.add(t),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),uo);var co={$name:"Tiger fur",scale:2,lengths:4,blur:.3,strength:.3,hairs:.5,color:new la(16755200),bottomColor:new la(16777198),seed:0},vo=Ea((a=>{var e=(a=Ba(a,co)).scale.div(2).add(1).toVar(),o=w.mul(M(e)).add(a.seed).toVar(),r=a.lengths.add(5).reciprocal().toVar(),t=a.hairs.mul(.3).toVar(),l=x(o.mul(e,n(1,r,r)));l=(l=l.add(x(o.mul(n(25,1,1))).add(1).mul(t))).add(a.strength.sub(.5)).smoothstep(a.blur.negate(),a.blur).oneMinus();var s=w.y.add(t.sub(.5)).smoothstep(-1,.5);return A(a.bottomColor,a.color,s).mul(l)}),co),po={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new sa(-.5,0,.2),selectorCenter:new sa(0,0,0),selectorAngles:new da(0,0),selectorWidth:.7},go=a((([a,e])=>{var o=Ma(a,e.selectorAngles,e.selectorCenter,e.selectorWidth);return ka(e.distance.mul(o)).mul(i(a,1)).xyz})),yo=Ea((a=>(a=Ba(a,po),go(w,a))),po);yo.normal=Ea((a=>{a=Ba(a,po);var e=w,r=L.normalize().toVar(),n=C.normalize().mul(.01).toVar(),t=v(r,n).normalize().mul(.01).toVar(),l=go(e,a),s=go(e.add(n),a),d=go(e.add(t),a),u=o(s,l),m=o(d,l);return z(v(u,m).normalize())}),po);var Vo={$name:"Voronoi cells",scale:2,variation:0,facet:0,color:new la(0),background:new la(12636415),seed:0},bo=a((([a])=>a.add(x(a.mul(Math.PI))))),wo=Ea((a=>{a=Ba(a,Vo);var e=w.mul(M(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=e.round().toVar(),r=o.toVar(),l=t(1).toVar(),d=n().toVar(),u=t().toVar(),m=t(0).toVar();R(27,(()=>{var a=m.mod(3).sub(1),t=m.div(3).floor().mod(3).sub(1),i=m.div(9).floor().sub(1);d.assign(o.add(n(a,t,i))),u.assign(e.distance(bo(d)).add(x(e).div(5))),s(u.lessThan(l),(()=>{l.assign(u),r.assign(d)})),m.addAssign(1)}));var i=x(r.mul(Math.PI)).toVar(),c=A(l,i.add(1).div(2),a.facet),v=A(a.color,a.background,c).toVar(),p=n(i.mul(16.8),i.mul(31.4159),i.mul(27.1828)).sin().add(1).div(2);return A(v,A(v,p,a.variation),a.variation)}),Vo),ho={$name:"Water Drops",$normalNode:!0,scale:1.4,density:.5,bump:.6,seed:0},fo=a((([a,e,o,r,n])=>{var t=x(a.add(n)).add(r).clamp(0,1);return t=m(t.mul(Math.PI)).add(1).pow(.5).toVar(),a.add(t.mul(e,o))})),zo=Ea((a=>{a=Ba(a,ho);var e=w.mul(M(a.scale.div(1).add(1))).toVar(),r=L.normalize().toVar(),t=C.normalize().mul(.001).toVar(),l=v(r,t).normalize().mul(.001).toVar(),s=p(a.density,0,1,1.5,.7).toVar(),d=n(u(a.seed).mul(100),m(a.seed.div(2)).mul(100),u(a.seed.div(3)).mul(100)).toVar(),i=fo(e,r,a.bump,s,d),c=fo(e.add(t),r,a.bump,s,d),g=fo(e.add(l),r,a.bump,s,d),y=o(c,i),V=o(g,i);return z(v(y,V).normalize())}),ho),xo={$name:"Watermelon",scale:2,stripes:12,variation:.5,noise:.25,color:new la("yellowgreen"),background:new la("darkgreen"),flat:0,seed:0},ko=Ea((a=>{a=Ba(a,xo);var e=d(a.flat,a.variation.mul(.85).add(.15),a.variation),o=w.mul(M(a.scale.div(4).add(2))).add(a.seed).toVar(),r=d(a.flat,G,O(w.normalize())).toVar(),t=r.x.mul(a.stripes.round(),d(a.flat,Math.PI,2*Math.PI)).add(x(o.mul(n(1,.3,1))).mul(2)).sin().add(.5).div(2).mul(r.y.remap(0,1,-Math.PI,Math.PI).cos().add(1.2).clamp(0,1)).add(e.mul(2,x(o.mul(1.5)).div(2))).add(e.mul(2,x(o.mul(4)).div(6))).toVar();return t.assign(t.mix(t.round(),.75).add(x(o.mul(2)).mul(a.noise,.5)).add(x(o.mul(3)).mul(a.noise,1)).add(x(o.mul(15)).mul(a.noise,.2)).clamp(0,1)),A(a.background,a.color,t).toVar()}),xo),Mo={$name:"Wood",scale:2.5,rings:4.5,lengths:1,angle:0,fibers:.3,fibersDensity:10,color:new la(.8,.4,0),background:new la(.4,.1,0),seed:0},$o=Ea((a=>{a=Ba(a,Mo);var e=J(a.angle).toVar(),r=n(o(w.x.mul(m(e)),w.y.mul(u(e))),l(w.x.mul(u(e)),w.y.mul(m(e))),w.z).toVar(),s=r.mul(M(a.scale.sub(3)).mul(n(ea(a.lengths),4,ea(a.lengths)))).add(a.seed).toVar(),d=x(s).add(1).mul(10).mul(a.rings);d=d.add(d.cos()).cos().add(1).div(2);var i=t(0).toVar(),v=t(0).toVar(),p=M(a.scale.sub(2)).mul(n(1,a.fibersDensity,1)).toVar(),g=t(2).toVar();return R(10,(()=>{i.addAssign(c(g,x(r.mul(p).add(a.seed)))),v.addAssign(g),p.mulAssign(1.8),g.mulAssign(.6)})),i.assign(c(i,5).div(v).mul(10).sin().add(1).div(2)),A(a.color,a.background,A(d,i,a.fibers))}),Mo),Ao={$name:"Zebra lines",scale:2,thinness:.5,phi:0,theta:0,color:new la(0),background:new la(16777215),flat:0},So=Ea((a=>{a=Ba(a,Ao);var e=d(a.flat,w,w.normalize()).toVar(),o=d(a.flat,oa(m(a.phi),u(a.phi)),va(a.phi,a.theta)).toVar(),r=d(a.flat,E(o.dot(e),-2,2),j(E(o.dot(e),-1,1))).toVar(),n=M(a.scale.add(1)).toVar(),t=u(r.mul(n)).sub(a.thinness.sub(.5).mul(2));return t=E(t.mul(1e3).div(n),-1,1).mul(.5).add(.5),A(a.background,a.color,t)}),Ao),Po={$name:"Circle decor",scale:2,grains:.2,complexity:1,blur:.2,color:new la(0),background:new la(16777215),seed:0},Io=Ea((a=>{a=Ba(a,Po);var e=w.mul(M(a.scale.div(4))).add(a.seed).toVar(),o=e.mul(2).toVar(),r=_(e),n=_(o),t=_(e.mul(a.grains.mul(4).add(2))).mul(2),l=x(e).div(2).add(1),s=r.min(n,t).clamp(0,1).mul(a.complexity.add(2).exp(),l,Math.PI).sin().smoothstep(a.blur.negate(),a.blur);return A(a.color,a.background,s.oneMinus())}),Po),To={$name:"Reticular veins",scale:2,reticulation:5,strength:.2,organelles:.2,color:new la(16777200),background:new la(2129952),seed:0},Bo=Ea((a=>{a=Ba(a,To);var e=w.mul(M(a.scale.div(2).add(.5))).add(a.seed).toVar(),o=_(e.mul(1)),r=_(e.add(100).mul(a.reticulation)).mul(a.strength),n=x(e.mul(100)).mul(a.strength,a.organelles),t=o.add(r).add(n);return A(a.background,a.color,t)}),To),jo={$name:"Roman paving",scale:2,depth:.5,seed:0},Eo=Ea((a=>{a=Ba(a,jo);var e=w.mul(M(a.scale)).add(a.seed).toVar(),o=ra(e).toVar();return o.y.sub(o.x).pow(a.depth.mul(3).sub(3).exp()).smoothstep(0,1)}),jo),Lo={$name:"Crumpled fabric",$width:260,scale:2,pinch:.5,color:new la(11596031),subcolor:new la(4210928),background:new la(12288),seed:0},Co=Ea((a=>{a=Ba(a,Lo);var e=w.mul(M(a.scale.sub(.5))).add(a.seed).toVar();R(4,(()=>{var o=x(e.xyz).mul(a.pinch),r=x(e.yzx).mul(a.pinch),t=x(e.zxy).mul(a.pinch);e.addAssign(n(o,r,t))}));var o=x(e).add(1).div(2).clamp(0,1),r=a.color.mul(o.mul(2).sub(1).abs().oneMinus()),t=a.subcolor.mul(o).pow(2),l=a.background.mul(o.oneMinus().pow(2));return r.add(t).add(l)}),Lo),Ro={$name:"Isolayers",scale:2,layers:10,edge:.5,darkness:0,color:new la(16777200),background:new la(16728128),seed:0},Wo=Ea((a=>{a=Ba(a,Ro);var e=w.mul(M(a.scale.sub(1))).add(a.seed).toVar(),o=a.edge.remap(0,1,40,10),r=x(e).mul(1.2).add(1).div(2),n=r.mul(a.layers).round().div(a.layers).clamp(0,1),l=r.sub(t(.53).div(a.layers)).mul(a.layers).fract().mul(t(2).pow(o.reciprocal())).pow(o).sub(1).abs().oneMinus(),s=A(ia(a.background),ia(a.color),n).toVar();return s.z.mulAssign(A(1,n.mul(1.5),a.darkness).clamp(0,1)),ma(s.x,s.y,s.z).sub(l)}),Ro),qo={$name:"Turbulent smoke",$width:260,scale:2,speed:0,details:5,seed:0},Do=Ea((a=>{a=Ba(a,qo);var e=w.mul(M(a.scale.sub(1))).add(a.seed).toVar(),o=S.mul(a.speed.sub(1).exp()),r=e.add(n($(e.add(n(1,o.sin(),-1))),$(e.add(n(o.add(2*Math.PI/3).sin(),1,-1))),$(e.add(n(1,-1,o.add(4*Math.PI/3).sin()))))),t=na(r,a.details);return _(e.add(t.div(2))).pow(4).mul(4).oneMinus()}),qo),Go={$name:"Caustics",scale:2,speed:0,color:new la(5286080),seed:0},Oo=Ea((a=>{a=Ba(a,Go);var e=w.mul(M(a.scale.sub(1))).add(a.seed).toVar(),o=S.mul(a.speed.sub(1).exp()).add(n(0,2*Math.PI/3,4*Math.PI/3)).sin();return ta(e.add(n(_(e.add(o.xyz)),_(e.add(o.yzx)),_(e.add(o.zxy))))).length().div(Math.sqrt(3)).add(a.color.sub(.5).mul(2))}),Go),Fo={$name:"Bricks",scale:2,brickSize:new sa(2,1,2),brickShift:2,jointSize:.05,jointSpan:.5,jointJitter:.5,jointBlur:.03,noiseSize:.5,noiseStrength:.2,colorShade:.5,color:new la(16728064),additional:new la(13672496),background:new la(11184810),seed:0},No=Ea((a=>{a=Ba(a,Fo);var e=w.mul(M(a.scale)).add(a.seed).toVar(),o=a.brickSize,r=e.div(o).floor().div(a.brickShift),l=n(r.y,0,r.y).toVar(),s=e.div(o).fract().add(l).fract().toVar(),d=na(e.mul(Va(a.jointSpan,0,1,20,.2))).div(Va(a.jointJitter,0,1,500,1)).toVar(),u=c(s.mul(o).add(d.z).smoothstep(o.y.sub(a.jointSize,a.jointBlur),o.y.sub(a.jointSize)).y.oneMinus(),s.mul(o).add(d.y).smoothstep(a.jointSize,a.jointSize.add(a.jointBlur)).y,s.mul(o).add(d.y).smoothstep(o.x.sub(a.jointSize,a.jointBlur),o.x.sub(a.jointSize)).x.oneMinus(),s.mul(o).add(d.x).smoothstep(a.jointSize,a.jointSize.add(a.jointBlur)).x,s.mul(o).add(d.x).smoothstep(o.z.sub(a.jointSize,a.jointBlur),o.z.sub(a.jointSize)).z.oneMinus(),s.mul(o).add(d.z).smoothstep(a.jointSize,a.jointSize.add(a.jointBlur)).z).clamp(0,1),m=A(t(1),x(x(e.xyz.div(o).add(l).floor().zxy.mul(100).add(Math.PI)).mul(10)).add(2).div(2).pow(4).clamp(0,1),a.colorShade),i=x(e.mul(Va(a.noiseSize,0,1,5,250))).mul(a.noiseStrength).add(1),v=x(x(e.xyz.div(o).add(l).floor().zxy.mul(200).add(Math.PI)).mul(10)).add(1).div(1),p=A(a.color,a.additional,v.pow(2));return A(a.background,m.mul(p,u),u).mul(i)}),Fo);export{Ea as TSLFn,pa as applyEuler,Ca as brain,No as bricks,Wa as camouflage,Oo as caustics,Da as caveArt,Io as circleDecor,Oa as circles,Ya as clouds,Za as concrete,_a as cork,Co as crumpledFabric,Qa as dalmatianSpots,ee as darthMaul,ca as dynamic,le as dysonSphere,de as entangled,me as fordite,ce as gasGiant,pe as grid,Ta as hideFallbackWarning,ma as hsl,Wo as isolayers,ye as isolines,be as karstRock,he as marble,wa as matRotX,ha as matRotY,za as matRotYXZ,fa as matRotZ,xa as matScale,ka as matTrans,ze as neonLights,ja as noised,Aa as normalVector,$a as overlayPlanar,ke as photosphere,$e as planet,Pe as polkaDots,Ba as prepare,Te as processedWood,Ee as protozoa,Va as remapExp,Bo as reticularVeins,Eo as romanPaving,Re as rotator,De as roughClay,Oe as runnyEggs,Ue as rust,Ze as satin,_e as scaler,Qe as scepterHead,eo as scream,Ma as selectPlanar,Ia as showFallbackWarning,ro as simplexNoise,va as spherical,to as stars,so as staticNoise,io as supersphere,vo as tigerFur,ia as toHsl,yo as translator,Do as turbulentSmoke,ba as vnoise,wo as voronoiCells,zo as waterDrops,ko as watermelon,$o as wood,So as zebraLines};
1
+ /*! TSL Textures v3.0.0 */
2
+ import{Fn as e,vec3 as a,sub as t,transformNormalToView as o,cross as n,remap as s,pow as r,mul as l,log2 as i,min as m,max as u,float as c,add as d,If as p,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 P,oneMinus as C,abs as I,equirectUV as T,screenSize as W,exp2 as E,div as B,round as _,remapClamp as q,screenUV as N,sqrt as D,mat2 as F,mod as G,distance as j,radians as Y,matcapUV as U,mx_worley_noise_float as H,sign as J,tan as O,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}from"three/tsl";export{mx_fractal_noise_float as fractal,mx_fractal_noise_vec3 as fractal3,mx_noise_float as noise,mx_worley_noise_float as voronoi,mx_worley_noise_vec2 as voronoi2,mx_worley_noise_vec3 as voronoi3}from"three/tsl";import{Color as oe,Vector3 as ne,Vector2 as se}from"three";const re=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"}]}),le=e((([e,a,s])=>{var r=t(a,e),l=t(s,e);return o(n(r,l).normalize())})).setLayout({name:"approximateNormal",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"posU",type:"vec3"},{name:"posV",type:"vec3"}]}),ie=e((([e,a,t,o,n])=>(e=s(e,a,t,0,1),e=r(2,l(e,i(n.div(o))).add(i(o)))))).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 me=null,ue=10;async function ce(){if(null!=navigator.gpu&&await navigator.gpu.requestAdapter())return;(me=document.createElement("div")).innerHTML='\n\t<div style="font-size:1.25em; font-weight:bold;">PLEASE, WAIT</div>\n\t<div style="font-size:0.85em; font-weight:100;" >NO WEBGPU &mdash; TRYING WEBGL2</div>\n\t<div id="counter"></div>\n\t',me.style.left="calc(50% - 8em)",me.style.width="16em",me.style.fontFamily="Bahnschrifts, Arial",me.style.position="absolute",me.style.bottom="20px",me.style.padding="12px 6px",me.style.border="1px solid white",me.style.borderRadius="4px",me.style.background="rgba(0,0,0,0.5)",me.style.color="white",me.style.textAlign="center",me.style.opacity="0.8",me.style.outline="none",me.style.zIndex="999",document.body.appendChild(me)}function de(){me&&(ue>0?ue--:(me.style.display="none",me=null))}const pe=e((([e,a,o,n])=>{var s=n.add(e.mul(12)).mod(12),r=a.mul(m(o,t(1,o)));return o.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"}]}),ye=e((([e])=>{var t=e.x.fract().add(1).fract(),o=e.y.clamp(0,1),n=e.z.clamp(0,1),s=pe(t,o,n,0),r=pe(t,o,n,8),l=pe(t,o,n,4);return a(s,r,l)})).setLayout({name:"hsl",type:"vec3",inputs:[{name:"col",type:"vec3"}]}),ve=e((([e])=>{var o=c(e.x).toVar(),n=c(e.y).toVar(),s=c(e.z).toVar(),r=u(o,u(n,s)).toVar(),l=m(o,m(n,s)).toVar(),i=c(0).toVar(),v=c(0).toVar(),f=d(r,l).div(2);return p(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))))),p(r.equal(o),(()=>{i.assign(t(n,s).div(e).add(y(n.lessThanEqual(s),6,0)))})).ElseIf(r.equal(n),(()=>{i.assign(t(s,o).div(e).add(2))})).Else((()=>{i.assign(t(o,n).div(e).add(4))})),i.divAssign(6)})),a(i,v,f)}));ve.setLayout({name:"toHsl",type:"vec3",inputs:[{name:"rgb",type:"vec3"}]});const fe=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"}]}),ge=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"}]}),be=e((([e,a,t,o])=>{var n=fe(a.x,a.y).mul(o).toVar(),s=t.sub(n.div(2)).sub(e).dot(n).div(n.dot(n)).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 we={$name:"Brain",position:k,scale:2,smooth:.5,wave:.5,speed:2.5,time:x,color:new oe(16765136),background:new oe(5242880),seed:0},Ve=e((([e,a,t,o,n,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(o,n,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"}]}),he=e((([e,t,o,n,s,r,l])=>{var i=e.mul(t.div(3).exp()).add(l).toVar("pos"),m=o.oneMinus().mul(2).exp().toVar("octaves");const u=.01;var c=w(i.mul(5),m).toVar("n"),d=w(i.add(a(u,0,0)).mul(5),m).sub(c).div(u).toVar("dx"),p=w(i.add(a(0,u,0)).mul(5),m).sub(c).div(u).toVar("dy"),y=h(i.mul(n,5)).add(1).div(2).mul(6.28).toVar("dTime");return a(d,p,r.mul(s).add(y).sin().add(c,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 xe(e={}){var{position:a,scale:t,smooth:o,color:n,background:s,seed:r}={...we,...e};return Ve(a,t,o,n,s,r)}xe.normal=function(e={}){var{position:a,scale:t,smooth:o,wave:n,speed:s,time:r,seed:l}={...we,...e};return he(a,t,o,n,s,r,l)},xe.defaults=we;var ke={$name:"Camouflage",position:k,scale:2,colorA:new oe(12762792),colorB:new oe(10258782),colorC:new oe(9610101),colorD:new oe(7435617),seed:0},ze=e((([e,a,t,o,n,s,r])=>{var l=e.mul(a.exp()).add(r).toVar("pos"),i=s.toVar("color");return p(h(l).greaterThanEqual(.3),(()=>{i.assign(t)})).ElseIf(h(l.yzx).greaterThanEqual(.2),(()=>{i.assign(o)})).ElseIf(h(l.zxy).greaterThanEqual(.1),(()=>{i.assign(n)})),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 Le(e={}){var{position:a,scale:t,colorA:o,colorB:n,colorC:s,colorD:r,seed:l}={...ke,...e};return ze(a,t,o,n,s,r,l)}Le.defaults=ke;var Ae={$name:"Cave art",position:k,scale:2,thinness:2,noise:.3,color:new oe(13845829),background:new oe(16775408),seed:0},Re=e((([e,a,t,o,n,s,r])=>{var l=e.mul(a.exp()).add(r).toVar("pos");t=c(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 p(z(i.greaterThan(m),u.lessThan(0)),(()=>{u.assign(0)})),p(u.lessThanEqual(0),(()=>{u.assign(o.mul(h(l.mul(30)).pow2()))})),V(s,n,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 Me(e={}){var{position:a,scale:t,thinness:o,noise:n,color:s,background:r,seed:l}={...Ae,...e};return Re(a,t,o,n,s,r,l)}Me.defaults=Ae;var $e={$name:"Circles",position:k,scale:2,variety:1,color:new oe(15786192),seed:0},Se=e((([e,t,o,n,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=ve(n),c=u.x.add(i.mul(o)).mod(1).mul(10),d=c.floor(),p=c.sub(d);return p=y(p.lessThan(.5),p.pow(1.5),p.pow(1/1.5)),ye(a(d.add(p).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 Pe(e={}){var{position:a,scale:t,variety:o,color:n,seed:s}={...$e,...e};return Se(a,t,o,n,s)}Pe.defaults=$e;var Ce={$name:"Clouds",position:k,scale:2,density:.5,opacity:1,color:new oe(16777215),subcolor:new oe(10526896),seed:0},Ie=e((([e,a,t,o])=>{const n=e.mul(R(a.div(1.5).sub(.5))).add(o).toVar("pos");return w(n,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"}]}),Te=e((([e,a,t,o,n,s])=>{var r=Ie(e,a,t,s);return V(n,o,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"}]}),We=e((([e,a,t,o,n])=>{var s=Ie(e,a,t,n);return A(0,1,l(s,2).pow(1.5).sub(1).mul(o))})).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 Ee(e={}){var{position:a,scale:t,density:o,color:n,subcolor:s,seed:r}={...Ce,...e};return Te(a,t,o,n,s,r)}Ee.opacity=function(e={}){var{position:a,scale:t,density:o,opacity:n,seed:s}={...Ce,...e};return We(a,t,o,n,s)},Ee.defaults=Ce;var Be={$name:"Concrete",$normalNode:!0,position:k,scale:2,density:.5,bump:.5,seed:0},_e=e((([e,a,t])=>{var o=h(e,.5,.5).abs().pow(t);return e.add(a.mul(o))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"density",type:"float"}]}),qe=e((([e,t,o,r,l,i,m])=>{var u=a(1,2,3).mul(m).sin().mul(100).toVar("seed3d"),c=e.mul(R(r.div(2).add(2))).add(u).toVar("xposition"),d=t.normalize().toVar("xnormal"),p=o.normalize().mul(.001).toVar("xtangent"),y=n(d,p).normalize().mul(.001).toVar("xbitangent"),v=s(l,0,1,10,.5).toVar("xdensity");d.mulAssign(i);var f=_e(c,d,v).toVar("pos"),g=_e(c.add(p),d,v).toVar("posU"),b=_e(c.add(y),d,v).toVar("posV");return le(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 Ne(e={}){var{position:a,scale:t,density:o,bump:n,seed:s}={...Be,...e};return qe(a,M,$,t,o,n,s)}Ne.defaults=Be;var De={$name:"Cork",position:k,scale:1,straight:1,noise:.3,color:new oe(16773312),background:new oe(13664352),seed:0},Fe=e((([e,t,o,n,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=c(1).toVar("minDist"),y=a().toVar("cell"),v=c().toVar("dist"),f=o.exp().reciprocal().toVar("strtaightness"),g=S(0).toVar("i"),b=S(0).toVar("j"),w=S(0).toVar("k");P(3,3,3,(()=>{y.assign(m.add(a(g,b,w).sub(1)));var e=y.add(re(y));v.assign(i.distance(e)),v.addAssign(h(i.add(y),f)),p(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(n)))})).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 Ge(e={}){var{position:a,scale:t,straight:o,noise:n,color:s,background:r,seed:l}={...De,...e};return Fe(a,t,o,n,s,r,l)}Ge.defaults=De;var je={$name:"Dalmatian spots",$width:260,position:k,scale:2,density:.6,color:new oe(16777215),background:new oe(0),seed:0},Ye=e((([e,a,t,o,n,s])=>{var r=e.mul(a.exp()).add(s).sub(1e3).toVar("pos"),l=c(1).toVar("k"),i=c(1.5).sub(t).mul(2).toVar("d"),m=t.mul(5).add(5).toVar("count");return P(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(n,o,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 Ue(e={}){var{position:a,scale:t,density:o,color:n,background:s,seed:r}={...je,...e};return Ye(a,t,o,n,s,r)}Ue.defaults=je;var He={$name:"Darth Maul",position:k,scale:2,shift:new ne(0,0,0),complexity:0,angle:60,distance:1.9,color:new oe(15745088),background:new oe(0),balance:0,seed:0},Je=e((([e,t,o,n,s,r,l,i,m,u])=>{var c=e.add(o).mul(R(t.div(1.5).sub(1))).sub(o).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);c.x.assign(c.x.add(o.x).abs()),c.y.addAssign(u),c.z.mulAssign(o.z);var p=h(c).toVar(),v=p.sin().mul(p.mul(n.mul(2).add(1).exp()).sin()).remap(0,.2,1,-1).greaterThan(m).select(0,1),f=y(c.x.greaterThan(h(c.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 Oe(e={}){var{position:a,scale:t,shift:o,complexity:n,angle:s,distance:r,color:l,background:i,balance:m,seed:u}={...He,...e};return Je(a,t,o,n,s,r,l,i,m,u)}Oe.defaults=He;var Ke={$name:"Dyson sphere",position:k,scale:2,complexity:2,variation:0,color:new oe(12636415),background:new oe(0),seed:0},Xe=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"}]}),Ze=e((([e])=>{var a=e.oneMinus().clamp(0,1).toVar();return a.mul(a).mul(c(3).sub(a.mul(2)))})).setLayout({name:"smoother",type:"float",inputs:[{name:"x",type:"float"}]}),Qe=e((([e])=>{var t=e.x.floor().toVar(),o=t.add(1).toVar(),n=e.y.floor().toVar(),s=n.add(1).toVar(),r=e.z.floor().toVar(),l=r.add(1).toVar(),i=Ze(e.x.fract()).toVar(),m=Ze(e.y.fract()).toVar(),u=Ze(e.z.fract()).toVar(),c=Ze(i.oneMinus()).toVar(),d=Ze(m.oneMinus()).toVar(),p=Ze(u.oneMinus()).toVar(),y=Xe(a(t,n,r)).mul(c).mul(d).mul(p).toVar(),v=Xe(a(t,n,l)).mul(c).mul(d).mul(u).toVar(),f=Xe(a(t,s,r)).mul(c).mul(m).mul(p).toVar(),g=Xe(a(t,s,l)).mul(c).mul(m).mul(u).toVar(),b=Xe(a(o,n,r)).mul(i).mul(d).mul(p).toVar(),w=Xe(a(o,n,l)).mul(i).mul(d).mul(u).toVar(),V=Xe(a(o,s,r)).mul(i).mul(m).mul(p).toVar(),h=Xe(a(o,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"}]}),ea=e((([e,t,o,n,s,r])=>{var l=e.mul(R(t.div(2).add(.5))).add(r).toVar(),i=a().toVar(),m=c(1).toVar();return P(o.add(4),(()=>{i.addAssign(Qe(l.mul(m))),m.addAssign(m)})),V(s,n,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 aa(e={}){var{position:a,scale:t,complexity:o,color:n,background:s,seed:r}={...Ke,...e};return ea(a,t,o,n,s,r)}aa.defaults=Ke;var ta={$name:"Entangled",position:k,scale:2,density:10,color:new oe(8256),background:new oe(16777215),seed:0},oa=e((([e,a,t,o,n,s])=>{var i=R(a.div(2)).toVar(),m=e.add(s).toVar(),d=c(-1e4).toVar(),p=c(0).toVar();return P(t,(()=>{p.assign(v(h(l(m,i)).mul(3*Math.PI))),d.assign(u(d,p)),i.mulAssign(1.2)})),d.assign(C(r(I(d),5)).mul(6)),V(o,n,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 na(e={}){var{position:a,scale:t,density:o,color:n,background:s,seed:r}={...ta,...e};return oa(a,t,o,n,s,r)}na.defaults=ta;var sa={$name:"Fordite",position:k,scale:2,color:new oe(0,0,0),seed:0},ra=e((([e,t,o,n])=>{var s=e.mul(R(t)).add(n).toVar(),r=h(a(h(s,1),h(s,2),h(s,3))).toVar();return ye(a(r,1,v(l(r,Math.PI,4)).mul(.5).add(.5))).add(o)})).setLayout({name:"forditeRaw",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"scale",type:"float"},{name:"color",type:"vec3"},{name:"seed",type:"float"}]});function la(e={}){var{position:a,scale:t,color:o,seed:n}={...sa,...e};return ra(a,t,o,n)}la.defaults=sa;var ia={$name:"Gas giant",position:k,scale:2,turbulence:.3,blur:.6,colorA:new oe(16775408),colorB:new oe(15788208),colorC:new oe(11509968),seed:0},ma=e((([e,t,o,n,s,r,l,i])=>{var m=t.div(2).add(1).toVar(),u=e.mul(R(m)).add(i).toVar(),c=o.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(c.mul(d.mul(2).exp())));var p=n.pow(.2).oneMinus().mul(c.add(1)).toVar(),y=h(u.mul(a(0,m,0)));y=(y=y.add(h(u.mul(a(1,15,1))).mul(p))).add(-.5).smoothstep(-1,1).oneMinus();var v=h(a(0,u.y.mul(.75),0)).add(1),f=ve(V(r,s,v)),g=ye(a(f.x.add(h(u.mul(a(0,m,0))).div(4)),f.yz)).toVar();return g.assign(V(g,l,c.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 ua(e={}){var{position:a,scale:t,turbulence:o,blur:n,colorA:s,colorB:r,colorC:l,seed:i}={...ia,...e};return ma(a,t,o,n,s,r,l,i)}ua.defaults=ia;var ca={$name:"Grid",$replaceExportUVS:N,$replaceExportASP:W.x.div(W.y).log2(),uvs:T(k.normalize()),countU:32,countV:16,aspect:1,thinness:.8,equirectangular:!0,color:new oe(0),background:new oe(16777215)},da=e((([e,a,o,n,s,i,c,p])=>{var y=u(E(n),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,o)),o),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,o)),q(r(s,.5),0,1,.9,.04),.5),M=C(b(t(R,.002),d(R,.002),A));return V(p,c,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 pa(e={}){var{uvs:a,countU:t,countV:o,aspect:n,thinness:s,equirectangular:r,color:l,background:i}={...ca,...e};return da(a,t,o,n,s,r,l,i)}pa.defaults=ca;var ya={$name:"Isolines",position:k,scale:2,density:40,blur:.3,thinness:.6,color:new oe(16777215),background:new oe(0),seed:0},va=e((([e,a,o,n,s,r,l,i])=>{var m=e.mul(R(a)).add(i).toVar(),u=h(m,o);return u=C(v(u)).div(2),u=b(t(s,n),d(s,n),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 fa(e={}){var{position:a,scale:t,density:o,blur:n,thinness:s,color:r,background:l,seed:i}={...ya,...e};return va(a,t,o,n,s,r,l,i)}fa.defaults=ya;var ga={$name:"Karst rock",position:k,scale:2,color:new oe(16774384),background:new oe(13684944),seed:0},ba=e((([e,a,t,o,n])=>{var s=e.mul(R(a)).add(n.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(o,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 wa(e={}){var{position:a,scale:t,color:o,background:n,seed:s}={...ga,...e};return ba(a,t,o,n,s)}wa.defaults=ga;var Va={$name:"Marble",position:k,scale:1.2,thinness:5,noise:.3,color:new oe(4539859),background:new oe(15792383),seed:0},ha=e((([e,a,t,o,n,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)),c=(u=C(u.abs().pow(2.5)).toVar(),C(r(.5,t.add(7))).toVar()),y=C(r(.5,t.add(7).mul(.5))).toVar();return p(u.greaterThan(c),(()=>{u.assign(1)})).ElseIf(u.lessThan(y),(()=>{u.assign(0)})).Else((()=>{var e=u.sub(y),a=c.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(o,h(m.mul(150)).abs().pow3()))),V(s,n,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 xa(e={}){var{position:a,scale:t,thinness:o,noise:n,color:s,background:r,seed:l}={...Va,...e};return ha(a,t,o,n,s,r,l)}xa.defaults=Va;var ka={$name:"Neon Lights",position:k,scale:2,thinness:.8,mode:0,colorA:new oe(16711680),colorB:new oe(65280),colorC:new oe(255),background:new oe(0),seed:0},za=e((([e,t,o,n,s,r,l,i,m])=>{var u=e,c=R(t.remap(0,4,-2,2)).toVar(),d=R(o.remap(0,1,1.5,0)).toVar(),p=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(c).add(m)).toVar();w.assign(C(D(I(w))).pow(3)),v.assign(s);var V=ve(v);v.assign(ye(a(V.xy,V.z.mul(w)))),p.addAssign(y(n.equal(0),v,v.negate()).mul(d)),w.assign(h(a(g,b,f).mul(c).sub(m))),w.assign(C(D(I(w))).pow(3)),v.assign(r);V=ve(v);v.assign(ye(a(V.xy,V.z.mul(w)))),p.addAssign(y(n.equal(0),v,v.negate()).mul(d)),w.assign(h(a(b,f,g.negate()).mul(c).add(m))),w.assign(C(D(I(w))).pow(3)),v.assign(l);V=ve(v);return v.assign(ye(a(V.xy,V.z.mul(w)))),p.addAssign(y(n.equal(0),v,v.negate()).mul(d)),p})).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 La(e={}){var{position:a,scale:t,thinness:o,mode:n,colorA:s,colorB:r,colorC:l,background:i,seed:m}={...ka,...e};return za(a,t,o,n,s,r,l,i,m)}La.defaults=ka;var Aa={$name:"Perlin noise",position:k,scale:2,balance:0,contrast:0,color:new oe(16777215),background:new oe(0),seed:0},Ra=e((([e,a,t,o,n,s,r])=>{var l=e.mul(R(a)).add(r),i=A(0,1,h(l).mul(.5,R(o)).add(.5,t));return V(s,n,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 Ma(e={}){var{position:a,scale:t,balance:o,contrast:n,color:s,background:r,seed:l}={...Aa,...e};return Ra(a,t,o,n,s,r,l)}Ma.defaults=Aa;var $a={$name:"Photosphere",position:k,scale:2,color:new oe(16776960),background:new oe(16711680),seed:0},Sa=e((([e,t,o,n,s])=>{var r=R(t.add(1)).toVar(),l=e.toVar(),i=a(l).toVar();P(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(n,o,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 Pa(e={}){var{position:a,scale:t,color:o,background:n,seed:s}={...$a,...e};return Sa(a,t,o,n,s)}Pa.defaults=$a;var Ca={$name:"Planet",position:k,scale:2,iterations:5,levelSea:.3,levelMountain:.7,balanceWater:.3,balanceSand:.2,balanceSnow:.8,colorDeep:new oe(1194585).convertLinearToSRGB(),colorShallow:new oe(8900331).convertLinearToSRGB(),colorBeach:new oe(16775885).convertLinearToSRGB(),colorGrass:new oe(3978097).convertLinearToSRGB(),colorForest:new oe(12288).convertLinearToSRGB(),colorSnow:new oe(15794175).convertLinearToSRGB(),seed:0},Ia=e((([e,t,o,n,r,i,m,u,d,y,v,f,g,w,x])=>{var k=c(0).toVar(),z=c(0).toVar(),L=R(t.sub(2)).toVar(),A=c(2).toVar();P(o.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));n=n.pow(2).toVar(),r=r.pow(2).toVar();var M=V(n,r,m).toVar(),$=V(n,M,.4).toVar(),S=V(n,M,.6).toVar(),C=a().toVar();return p(k.lessThan(n),(()=>{C.assign(V(d,y,s(k,0,n,0,1).pow(R(i.mul(-8).add(4)))))})).ElseIf(k.lessThan($),(()=>{C.assign(V(y,v,s(k,n,$)))})).ElseIf(k.lessThan(S),(()=>{C.assign(v)})).ElseIf(k.lessThan(M),(()=>{C.assign(V(v,f,s(k,S,M)))})).ElseIf(k.lessThan(r),(()=>{C.assign(V(f,g,s(k,M,r).pow(.75)))})).Else((()=>{var e=V(1,r,u);C.assign(V(g,w,b(V(e,r,u.pow(.5)),e,k)))})),C})).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 Ta(e={}){var{position:a,scale:t,iterations:o,levelSea:n,levelMountain:s,balanceWater:r,balanceSand:l,balanceSnow:i,colorDeep:m,colorShallow:u,colorBeach:c,colorGrass:d,colorForest:p,colorSnow:y,seed:v}={...Ca,...e};return Ia(a,t,o,n,s,r,l,i,m,u,c,d,p,y,v)}Ta.defaults=Ca;var Wa={$name:"Polka dots",position:k,count:2,size:.5,blur:.25,color:new oe(0),background:new oe(16777215),flat:0},Ea=(1+5**.5)/2,Ba=e((([e,a,t,o,n,s,i])=>{var y=c(1).toVar();p(i.equal(1),(()=>{var t=a.pow(2).sub(.5).toVar(),o=e.xy.mul(t).mul(F(1,1,-1,1)),n=o.round().toVar();y.assign(o.distance(n).div(t))})).Else((()=>{var t=r(10,a).toVar(),o=e.normalize().toVar(),n=C(o.y).mul(t).sub(1).div(2),s=u(10,t.pow(.5)),i=n.sub(s).floor().clamp(0,t),p=n.add(s).floor().clamp(0,t);y.assign(1).toVar(),P(p.sub(i),(({i:e})=>{var a=d(e,i),n=G(l(2*Math.PI/Ea,a),2*Math.PI),s=L(C(c(a).mul(2).add(1).div(t))),r=fe(s,n);y.assign(m(y,j(o,r)))}))}));var v=R(t.mul(5).sub(5)).toVar(),f=o.pow(4).toVar(),g=b(v.sub(f),v.add(f),y);return V(n,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 _a(e={}){var{position:a,count:t,size:o,blur:n,color:s,background:r,flat:l}={...Wa,...e};return Ba(a,t,o,n,s,r,l)}_a.defaults=Wa;var qa={$name:"Processed wood",$width:260,position:k,scale:2,lengths:4,strength:.3,angle:0,color:new oe(7348256),background:new oe(15782048),seed:0},Na=e((([e,o,n,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(),c=o.div(2).add(1).toVar(),p=u.mul(R(o)).add(m).toVar(),y=n.add(5).reciprocal().toVar(),g=h(p.mul(c,a(1,y,y)));return g=(g=g.mul(h(p.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 Da(e={}){var{position:a,scale:t,lengths:o,strength:n,angle:s,color:r,background:l,seed:i}={...qa,...e};return Na(a,t,o,n,s,r,l,i)}Da.defaults=qa;var Fa={$name:"Protozoa",position:k,matcap:U,scale:1.5,fat:.7,amount:.4,color:new oe(10526880),subcolor:new oe(14739711),background:new oe(15792383),seed:0},Ga=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"}]}),ja=e((([e,t,o,n,s,r,l,i,m])=>{var u=e.mul(R(o.sub(1))).add(m).toVar(),d=a(t,t.length()).toVar(),p=c(0).toVar(),y=c(0).toVar(),v=c(0).toVar(),f=c(0).toVar(),g=(n=n.add(.2).oneMinus().mul(60).add(30).toVar(),c(2).toVar()),b=s.div(2).add(.5).exp().toVar();return P(10,(()=>{p.assign(Ga(u.xyz.add(d),n)),y.assign(Ga(u.yzx.add(d),n)),v.addAssign(p.mul(y).mul(g)),f.addAssign(p.max(y).mul(g)),u.assign(V(u.mul(b),0,.4)),o.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 Ya(e={}){var{position:a,matcap:t,scale:o,fat:n,amount:s,color:r,subcolor:l,background:i,seed:m}={...Fa,...e};return ja(a,t,o,n,s,r,l,i,m)}Ya.defaults=Fa;var Ua={$name:"Rotator",$positionNode:!0,$selectorPlanar:!0,angles:new ne(-.2,.7,0),center:new ne(0,0,0),selectorCenter:new ne(0,0,0),selectorAngles:new se(0,0),selectorWidth:2},Ha=e((([e,a,t,o,n,s])=>{var r=be(e,o,n,s);return ge(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"}]}),Ja=e((([e,a,t,o,n])=>Ha(k,e,a,t,o,n))).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"}]}),Oa=e((([e,a,t,o,s])=>{var r=k,l=M.normalize().toVar(),i=$.normalize().mul(.01).toVar(),m=n(l,i).normalize().mul(.01).toVar(),u=Ha(r,e,a,t,o,s),c=Ha(r.add(i),e,a,t,o,s),d=Ha(r.add(m),e,a,t,o,s);return le(u,c,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 Ka(e={}){var{angles:a,center:t,selectorAngles:o,selectorCenter:n,selectorWidth:s}={...Ua,...e};return Ja(a,t,o,n,s)}Ka.normal=function(e={}){var{angles:a,center:t,selectorAngles:o,selectorCenter:n,selectorWidth:s}={...Ua,...e};return Oa(a,t,o,n,s)},Ka.defaults=Ua;var Xa={$name:"Rough clay",$normalNode:!0,position:k,scale:2,bump:.5,curvature:.2,seed:0},Za=e((([e,a,t])=>{var o=H(e.add(h(e).mul(t))).add(.8).pow(5).toVar();return o.addAssign(o.pow(.5)),e.add(a.mul(o))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"curvature",type:"float"}]}),Qa=e((([e,a,t,o,s,r,l])=>{var i=e.mul(R(o.div(2))).add(l.sin().mul(10)).toVar(),m=a.normalize().toVar(),u=t.normalize().mul(.001).toVar(),c=n(m,u).normalize().mul(.001).toVar();m.mulAssign(s,.02);var d=Za(i,m,r),p=Za(i.add(u),m,r),y=Za(i.add(c),m,r);return le(d,p,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 et(e={}){var{position:a,scale:t,bump:o,curvature:n,seed:s}={...Xa,...e};return Qa(a,M,$,t,o,n,s)}et.defaults=Xa;var at={$name:"Runny eggs",position:k,scale:1,sizeYolk:.2,sizeWhite:.7,colorYolk:new oe("orange"),colorWhite:new oe("white"),colorBackground:new oe("lightgray"),seed:0},tt=e((([e,a,t,o])=>{var n=H(e).toVar(),s=n.add(o).pow(8).oneMinus(),r=n.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"}]}),ot=e((([e,a,t,o,n,s,r,l])=>{var i=e.mul(R(a)).add(l.sin().mul(10)).toVar(),m=H(i).toVar(),u=m.add(o.oneMinus()).pow(8).oneMinus().clamp(-.5,1),c=m.add(t.oneMinus()).pow(18).oneMinus().clamp(0,1).pow(.4).clamp(0,1);return V(r,V(s,n,c),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"}]}),nt=e((([e,a,t,o,s,r,l])=>{var i=e.mul(R(o)).add(l.sin().mul(10)).toVar(),m=a.normalize().toVar(),u=t.normalize().mul(.001).toVar(),c=n(m,u).normalize().mul(.001).toVar(),d=s.oneMinus(),p=r.oneMinus();m.mulAssign(.05);var y=tt(i,m,d,p),v=tt(i.add(u),m,d,p),f=tt(i.add(c),m,d,p);return le(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"}]}),st=e((([e,a,t,o])=>{var n=e.mul(R(a)).add(o.sin().mul(10)).toVar();return H(n).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 rt(e={}){var{position:a,scale:t,sizeYolk:o,sizeWhite:n,colorYolk:s,colorWhite:r,colorBackground:l,seed:i}={...at,...e};return ot(a,t,o,n,s,r,l,i)}rt.normal=function(e={}){var{position:a,scale:t,sizeYolk:o,sizeWhite:n,seed:s}={...at,...e};return nt(a,M,$,t,o,n,s)},rt.roughness=function(e={}){var{position:a,scale:t,sizeYolk:o,seed:n}={...at,...e};return st(a,t,o,n)},rt.defaults=at;var lt={$name:"rust",position:k,scale:2,iterations:8,amount:-.3,opacity:.5,noise:.5,noiseScale:.5,color:new oe(12615680),background:new oe(32),seed:0},it=e((([e,a,t,o,n])=>{var s=e.mul(R(a.div(4).add(-1))).add(n).toVar(),r=o.mul(h(s.mul(o.div(2).add(4))).add(4)).toVar(),l=h(s).toVar();return P(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"}]}),mt=e((([e,a,t,o,n,s,r,l,i])=>{var m=it(e,a,t,o,i).mul(1.25).pow(.5),u=e.mul(R(a.add(s.mul(3),2)));return m.addAssign(n.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"}]}),ut=e((([e,a,t,o,n,s])=>it(e,a,t,o,s).mul(n.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 ct(e={}){var{position:a,scale:t,iterations:o,amount:n,noise:s,noiseScale:r,color:l,background:i,seed:m}={...lt,...e};return mt(a,t,o,n,s,r,l,i,m)}ct.opacity=function(e={}){var{position:a,scale:t,iterations:o,amount:n,opacity:s,seed:r}={...lt,...e};return ut(a,t,o,n,s,r)},ct.defaults=lt;var dt={$name:"Satin",position:k,scale:2,color:new oe(7373055),background:new oe(80),seed:0},pt=e((([e,t,o,n,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(n,o,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 yt(e={}){var{position:a,scale:t,color:o,background:n,seed:s}={...dt,...e};return pt(a,t,o,n,s)}yt.defaults=dt;var vt={$name:"Scaler",$positionNode:!0,$selectorPlanar:!0,scales:new ne(.01,.9,1.7),center:new ne(0,0,0),selectorCenter:new ne(0,0,0),selectorAngles:new se(0,0),selectorWidth:2},ft=e((([e,t,o,n,s,r])=>{var l=be(e,n,s,r),i=V(a(1,1,1),t,l);return e.sub(o).mul(i).add(o)})),gt=e((([e,a,t,o,n])=>ft(k,e,a,t,o,n))).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"}]}),bt=e((([e,a,t,o,s])=>{var r=k,l=M.normalize().toVar(),i=$.normalize().mul(.01).toVar(),m=n(l,i).normalize().mul(.01).toVar(),u=ft(r,e,a,t,o,s),c=ft(r.add(i),e,a,t,o,s),d=ft(r.add(m),e,a,t,o,s);return le(u,c,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 wt(e={}){var{scales:a,center:t,selectorAngles:o,selectorCenter:n,selectorWidth:s}={...vt,...e};return gt(a,t,o,n,s)}wt.normal=function(e={}){var{scales:a,center:t,selectorAngles:o,selectorCenter:n,selectorWidth:s}={...vt,...e};return bt(a,t,o,n,s)},wt.defaults=vt;var Vt={$name:"Scepter head",position:k,xFactor:10,yFactor:22,zFactor:10,colorRim:new oe(16777215),colorA:new oe(7397631),colorB:new oe(3145983)},ht=e((([e,t,o,n,s,r,i])=>{var m=e.toVar("pos"),c=m.x.mul(ie(t,0,100,1.35,30)).toVar("fx"),p=m.y.mul(ie(o,0,100,1.35,30)).toVar("fy"),y=m.z.mul(ie(n,0,100,1.35,30)).toVar("fz"),v=f(c),g=f(p),b=f(y),w=h(a(m.x.div(v),m.y.div(g),m.z.div(b)));w=J(w).mul(I(w).pow(.75));var x=I(l(c,O(c)).add(1).div(v)),k=I(l(p,O(p)).add(1).div(g)),z=I(l(y,O(y)).add(1).div(b)),L=a().toVar(),A=I(K(c.mul(2/Math.PI).add(1).div(2))),R=I(K(p.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(ve(V(r,i,$)));var S=ye(a(L.xy,L.z.mul(w))).toVar("color1");L.assign(ve(s));var P=ye(a(L.xy,l(2,w,L.z))).toVar("color2");return V(S,P,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 xt(e={}){var{position:a,xFactor:t,yFactor:o,zFactor:n,colorRim:s,colorA:r,colorB:l}={...Vt,...e};return ht(a,t,o,n,s,r,l)}xt.defaults=Vt;var kt={$name:"Scream",position:k,scale:2,variety:1,color:new oe(15790176),background:new oe(13668496),seed:0},zt=e((([e,t,o,n,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,n,i).toVar("col"),u=ve(m).toVar("HSL");return ye(a(d(u.x,o.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 Lt(e={}){var{position:a,scale:t,variety:o,color:n,background:s,seed:r}={...kt,...e};return zt(a,t,o,n,s,r)}Lt.defaults=kt;var At={$name:"Stars",position:k,scale:2,density:2,variation:0,color:new oe(16774640),background:new oe(96),seed:0},Rt=e((([e,t,o,n,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(o.sub(2)));var u=y(m.greaterThan(.1),n.mul(h(i)),0),c=ve(V(r,s,m));return ye(a(d(c.x,u),c.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 Mt(e={}){var{position:a,scale:t,density:o,variation:n,color:s,background:r,seed:l}={...At,...e};return Rt(a,t,o,n,s,r,l)}Mt.defaults=At;var $t={$name:"Static noise",position:X,time:x,scale:2,balance:0,contrast:0,delay:0,seed:0},St=e((([e,t,o,n,s,r,l])=>{var i=e.div(R(o)).add(l),m=r.sub(1).mul(5).exp(),u=t.div(m).round().mul(m),c=re(u.sin()).mul(1e3),d=A(0,1,h(i.add(c)));return d=d.mul(.5,R(s)).add(.5,n),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 Pt(e={}){var{position:a,time:t,scale:o,balance:n,contrast:s,delay:r,seed:l}={...$t,...e};return St(a,t,o,n,s,r,l)}Pt.defaults=$t;var Ct={$name:"Supersphere",$positionNode:!0,exponent:3},It=e((([e,a])=>{var t=c(2).pow(a),o=e.div(e.length()).toVar(),n=o.abs().pow(t).toVar(),s=n.x.add(n.y).add(n.z).pow(t.reciprocal());return o.div(s)})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"pos",type:"vec3"},{name:"exponent",type:"float"}]}),Tt=e((([e])=>It(k,e))).setLayout({name:"supersphereRaw",type:"vec3",inputs:[{name:"exponent",type:"float"}]}),Wt=e((([e])=>{var a=k,t=M.normalize().toVar(),o=$.normalize().mul(.01).toVar(),s=n(t,o).normalize().mul(.01).toVar(),r=It(a,e),l=It(a.add(o),e),i=It(a.add(s),e);return le(r,l,i)})).setLayout({name:"supersphereRaw",type:"vec3",inputs:[{name:"exponent",type:"float"}]});function Et(e={}){var{exponent:a}={...Ct,...e};return Tt(a)}Et.normal=function(e={}){var{exponent:a}={...Ct,...e};return Wt(a)},Et.defaults=Ct;var Bt={$name:"Tiger fur",position:k,scale:2,lengths:4,blur:.3,strength:.3,hairs:.5,color:new oe(16755200),bottomColor:new oe(16777198),seed:0},_t=e((([e,t,o,n,s,r,l,i,m])=>{var u=t.div(2).add(1).toVar(),c=e.mul(R(u)).add(m).toVar(),d=o.add(5).reciprocal().toVar(),p=(r=r.mul(.3).toVar(),h(c.mul(u,a(1,d,d))));p=(p=p.add(h(c.mul(a(25,1,1))).add(1).mul(r))).add(s.sub(.5)).smoothstep(n.negate(),n).oneMinus();var y=e.y.add(r.sub(.5)).smoothstep(-1,.5);return V(i,l,y).mul(p)})).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 qt(e={}){var{position:a,scale:t,lengths:o,blur:n,strength:s,hairs:r,color:l,bottomColor:i,seed:m}={...Bt,...e};return _t(a,t,o,n,s,r,l,i,m)}qt.defaults=Bt;var Nt={$name:"Translator",$positionNode:!0,$selectorPlanar:!0,distance:new ne(-.5,0,.2),selectorCenter:new ne(0,0,0),selectorAngles:new se(0,0),selectorWidth:.7},Dt=e((([e,a,t,o,n])=>{var s=be(e,t,o,n);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"}]}),Ft=e((([e,a,t,o])=>Dt(k,e,a,t,o))).setLayout({name:"translatorRaw",type:"vec3",inputs:[{name:"distance",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]}),Gt=e((([e,a,t,o])=>{var s=k,r=M.normalize().toVar(),l=$.normalize().mul(.01).toVar(),i=n(r,l).normalize().mul(.01).toVar(),m=Dt(s,e,a,t,o),u=Dt(s.add(l),e,a,t,o),c=Dt(s.add(i),e,a,t,o);return le(m,u,c)})).setLayout({name:"translatorNormalRaw",type:"vec3",inputs:[{name:"distance",type:"vec3"},{name:"selectorAngles",type:"vec2"},{name:"selectorCenter",type:"vec3"},{name:"selectorWidth",type:"float"}]});function jt(e={}){var{distance:a,selectorAngles:t,selectorCenter:o,selectorWidth:n}={...Nt,...e};return Ft(a,t,o,n)}jt.normal=function(e={}){var{distance:a,selectorAngles:t,selectorCenter:o,selectorWidth:n}={...Nt,...e};return Gt(a,t,o,n)},jt.defaults=Nt;var Yt={$name:"Voronoi cells",position:k,scale:2,variation:0,facet:0,color:new oe(0),background:new oe(12636415),seed:0},Ut=e((([e,t,o,n,s,r,l])=>{var i=e.mul(R(t.div(2).add(.5))).add(l).toVar(),m=i.round().toVar(),u=m.toVar(),d=c(1).toVar(),y=a().toVar(),v=c().toVar(),f=S(0).toVar("i"),g=S(0).toVar("j"),b=S(0).toVar("k");P(3,3,3,(()=>{y.assign(m.add(a(f,g,b).sub(1)));var e=y.add(re(y.mul(2*Math.PI)).div(2));v.assign(i.distance(e)),p(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),n),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,o),o)})).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 Ht(e={}){var{position:a,scale:t,variation:o,facet:n,color:s,background:r,seed:l}={...Yt,...e};return Ut(a,t,o,n,s,r,l)}Ht.defaults=Yt;var Jt={$name:"Water Drops",$normalNode:!0,position:k,scale:1.4,density:.5,bump:.6,seed:0},Ot=e((([e,a,t])=>{var o=h(e,1,t).clamp(0,1);return o=f(o.mul(Math.PI)).add(1).pow(.5).toVar(),e.add(a.mul(o))})).setLayout({name:"surfacePos",type:"vec3",inputs:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"density",type:"float"}]}),Kt=e((([e,t,o,r,l,i,m])=>{var u=a(1,2,3).mul(m).sin().mul(100).toVar(),c=e.mul(R(r.div(1).add(1))).add(u).toVar(),d=t.normalize().toVar(),p=o.normalize().mul(.001).toVar(),y=n(d,p).normalize().mul(.001).toVar(),v=s(l,0,1,1.5,.7).toVar();d.mulAssign(i);var f=Ot(c,d,v),g=Ot(c.add(p),d,v),b=Ot(c.add(y),d,v);return le(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 Xt(e={}){var{position:a,scale:t,density:o,bump:n,seed:s}={...Jt,...e};return Kt(a,M,$,t,o,n,s)}Xt.defaults=Jt;var Zt={$name:"Watermelon",$replaceExportUVS:N,position:k,uvs:T(k.normalize()),scale:2,stripes:12,variation:.5,noise:.25,color:new oe("yellowgreen"),background:new oe("darkgreen"),seed:0},Qt=e((([e,t,o,n,s,r,l,i,m])=>{var u=e.mul(R(o.div(4).add(2))).add(m).toVar(),c=t.x.mul(n,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 c.assign(c.mix(c.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,c).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 eo(e={}){var{position:a,uvs:t,scale:o,stripes:n,variation:s,noise:r,color:l,background:i,seed:m}={...Zt,...e};return Qt(a,t,o,n,s,r,l,i,m)}eo.defaults=Zt;var ao={$name:"Wood",position:k,scale:2.5,rings:4.5,lengths:1,angle:0,fibers:.3,fibersDensity:10,color:new oe(.8,.4,0),background:new oe(.4,.1,0),seed:0},to=e((([e,o,n,s,r,i,m,u,p,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(o.sub(3)).mul(a(Z(s),4,Z(s)))).add(y).toVar(),w=h(b).add(1).mul(10).mul(n);w=w.add(w.cos()).cos().add(1).div(2);var x=c(0).toVar(),k=c(0).toVar(),z=(o=R(o.sub(2)).mul(a(1,m,1)).toVar(),c(2).toVar());return P(10,(()=>{x.addAssign(l(z,h(g.mul(o).add(y)))),k.addAssign(z),o.mulAssign(1.8),z.mulAssign(.6)})),x.assign(l(x,5).div(k).mul(10).sin().add(1).div(2)),V(u,p,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 oo(e={}){var{position:a,scale:t,rings:o,lengths:n,angle:s,fibers:r,fibersDensity:l,color:i,background:m,seed:u}={...ao,...e};return to(a,t,o,n,s,r,l,i,m,u)}oo.defaults=ao;var no={$name:"Zebra lines",position:k,scale:2,thinness:.5,phi:0,theta:0,color:new oe(0),background:new oe(16777215),flat:0},so=e((([e,a,t,o,n,s,r,l])=>{var i=y(l,e,e.normalize()).toVar(),m=y(l,Q(f(o),v(o)),fe(o,n)).toVar(),u=y(l,A(m.dot(i),-2,2),L(A(m.dot(i),-1,1))).toVar(),c=(a=R(a.add(1)).toVar(),v(u.mul(a)).sub(t.sub(.5).mul(2)));return c=A(c.mul(1e3).div(a),-1,1).mul(.5).add(.5),V(r,s,c)})).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 ro(e={}){var{position:a,scale:t,thinness:o,phi:n,theta:s,color:r,background:l,flat:i}={...no,...e};return so(a,t,o,n,s,r,l,i)}ro.defaults=no;var lo={$name:"Circle decor",position:k,scale:2,grains:.2,complexity:1,blur:.2,color:new oe(0),background:new oe(16777215),seed:0},io=e((([e,a,t,o,n,s,r,l])=>{var i=e.mul(R(a.div(4))).add(l).toVar("pos"),m=i.mul(2).toVar("subpos"),u=H(i),c=H(m),d=H(i.mul(t.mul(4).add(2))).mul(2),p=h(i).div(2).add(1),y=u.min(c,d).clamp(0,1).mul(o.add(2).exp(),p,Math.PI).sin().smoothstep(n.negate(),n);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 mo(e={}){var{position:a,scale:t,grains:o,complexity:n,blur:s,color:r,background:l,seed:i}={...lo,...e};return io(a,t,o,n,s,r,l,i)}mo.defaults=lo;var uo={$name:"Reticular veins",position:k,scale:2,reticulation:5,strength:.2,organelles:.2,color:new oe(16777200),background:new oe(2129952),seed:0},co=e((([e,a,t,o,n,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(o),c=h(i.mul(100)).mul(o,n),d=m.add(u).add(c);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 po(e={}){var{position:a,scale:t,reticulation:o,strength:n,organelles:s,color:r,background:l,seed:i}={...uo,...e};return co(a,t,o,n,s,r,l,i)}po.defaults=uo;var yo={$name:"Roman paving",position:k,scale:2,depth:.5,seed:0},vo=e((([e,a,t,o])=>{var n=e.mul(R(a)).add(o).toVar(),s=ee(n).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 fo(e={}){var{position:a,scale:t,depth:o,seed:n}={...yo,...e};return vo(a,t,o,n)}fo.defaults=yo;var go={$name:"Crumpled fabric",$width:260,position:k,scale:2,pinch:.5,color:new oe(11596031),subcolor:new oe(4210928),background:new oe(12288),seed:0},bo=e((([e,t,o,n,s,r,l])=>{var i=e.mul(R(t.sub(.5))).add(l).toVar();P(4,(()=>{var e=h(i.xyz),t=h(i.yzx),n=h(i.zxy);i.addAssign(a(e,t,n).mul(o))}));var m=h(i).add(1).div(2).clamp(0,1),u=n.mul(m.mul(2).sub(1).abs().oneMinus()),c=s.mul(m).pow(2),d=r.mul(m.oneMinus().pow(2));return u.add(c).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 wo(e={}){var{position:a,scale:t,pinch:o,color:n,subcolor:s,background:r,seed:l}={...go,...e};return bo(a,t,o,n,s,r,l)}wo.defaults=go;var Vo={$name:"Isolayers",position:k,scale:2,layers:10,edge:.5,darkness:0,color:new oe(16777200),background:new oe(16728128),seed:0},ho=e((([e,a,t,o,n,s,r,l])=>{var i=e.mul(R(a.sub(1))).add(l).toVar(),m=o.remap(0,1,40,10),u=h(i,1.2,1).div(2),d=u.mul(t).round().div(t).clamp(0,1),p=u.sub(c(.53).div(t)).mul(t).fract().mul(c(2).pow(m.reciprocal())).pow(m).sub(1).abs().oneMinus(),y=V(ve(r),ve(s),d).toVar();return y.z.mulAssign(V(1,d.mul(1.5),n).clamp(0,1)),ye(y).sub(p)})).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 xo(e={}){var{position:a,scale:t,layers:o,edge:n,darkness:s,color:r,background:l,seed:i}={...Vo,...e};return ho(a,t,o,n,s,r,l,i)}xo.defaults=Vo;var ko={$name:"Turbulent smoke",$width:260,position:k,scale:2,speed:0,details:5,time:x,seed:0},zo=e((([e,t,o,n,s,r])=>{var l=e.mul(R(t.sub(1))).add(r).toVar(),i=s.mul(o.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,n);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 Lo(e={}){var{position:a,scale:t,speed:o,details:n,time:s,seed:r}={...ko,...e};return zo(a,t,o,n,s,r)}Lo.defaults=ko;var Ao={$name:"Caustics",position:k,scale:2,speed:0,time:x,color:new oe(5286080),seed:0},Ro=e((([e,t,o,n,s,r])=>{var l=e.mul(R(t.sub(1))).add(r).toVar(),i=n.mul(o.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 Mo(e={}){var{position:a,scale:t,speed:o,time:n,color:s,seed:r}={...Ao,...e};return Ro(a,t,o,n,s,r)}Mo.defaults=Ao;var $o={$name:"Bricks",position:k,scale:2,brickSize:new ne(2,1,2),brickShift:2,jointSize:.05,jointSpan:.5,jointJitter:.5,jointBlur:.03,noiseSize:.5,noiseStrength:.2,colorShade:.5,color:new oe(16728064),additional:new oe(13672496),background:new oe(11184810),seed:0},So=e((([e,t,o,n,s,r,i,m,u,d,p,y,v,f,g])=>{var b=e.mul(R(t)).add(g).toVar(),w=o,x=b.div(w).floor().div(n),k=a(x.y,0,x.y).toVar(),z=b.div(w).fract().add(k).fract().toVar(),L=ae(b.mul(ie(r,0,1,20,.2))).div(ie(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(c(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),p),$=h(b.mul(ie(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),P=V(y,v,S.pow(2));return V(f,M.mul(P,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 Po(e={}){var{position:a,scale:t,brickSize:o,brickShift:n,jointSize:s,jointSpan:r,jointJitter:l,jointBlur:i,noiseSize:m,noiseStrength:u,colorShade:c,color:d,additional:p,background:y,seed:v}={...$o,...e};return So(a,t,o,n,s,r,l,i,m,u,c,d,p,y,v)}Po.defaults=$o,window.__TSL_TEXTURES__=3;export{le as approximateNormal,xe as brain,Po as bricks,Le as camouflage,Mo as caustics,Me as caveArt,mo as circleDecor,Pe as circles,Ee as clouds,Ne as concrete,Ge as cork,wo as crumpledFabric,Ue as dalmatianSpots,Oe as darthMaul,aa as dysonSphere,na as entangled,la as fordite,ua as gasGiant,pa as grid,de as hideFallbackWarning,ye as hsl,xo as isolayers,fa as isolines,wa as karstRock,xa as marble,La as neonLights,Ma as perlinNoise,Pa as photosphere,Ta as planet,_a as polkaDots,Da as processedWood,Ya as protozoa,ie as remapExp,po as reticularVeins,fo as romanPaving,ge as rotatePivot,Ka as rotator,et as roughClay,rt as runnyEggs,ct as rust,yt as satin,wt as scaler,xt as scepterHead,Lt as scream,be as selectPlanar,ce as showFallbackWarning,fe as spherical,Mt as stars,Pt as staticNoise,Et as supersphere,qt as tigerFur,ve as toHsl,jt as translator,Lo as turbulentSmoke,re as vnoise,Ht as voronoiCells,Xt as waterDrops,eo as watermelon,oo as wood,ro as zebraLines};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tsl-textures",
3
- "version": "2.5.1",
3
+ "version": "3.0.1",
4
4
  "description": "A collection of Three.js Shading Language (TSL) textures ",
5
5
  "main": "./src/tsl-textures.js",
6
6
  "module": "./src/tsl-textures.js",
package/src/brain.js CHANGED
@@ -4,19 +4,21 @@
4
4
 
5
5
 
6
6
  import { Color } from "three";
7
- import { exp, mix, mx_fractal_noise_float, positionGeometry, time, vec3 } from 'three/tsl';
8
- import { noise, prepare, TSLFn } from './tsl-utils.js';
7
+ import { Fn, mix, positionGeometry, time, vec3 } from 'three/tsl';
8
+ import { fractal, noise } from './tsl-utils.js';
9
9
 
10
10
 
11
11
 
12
12
  var defaults = {
13
13
  $name: 'Brain',
14
14
 
15
+ position: positionGeometry,
15
16
  scale: 2,
16
- smooth: 0.5,
17
17
 
18
+ smooth: 0.5,
18
19
  wave: 0.5,
19
20
  speed: 2.5,
21
+ time: time,
20
22
 
21
23
  color: new Color( 0xFFD0D0 ),
22
24
  background: new Color( 0x500000 ),
@@ -26,39 +28,88 @@ var defaults = {
26
28
 
27
29
 
28
30
 
29
- var brain = TSLFn( ( params )=>{
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 ])=>{
30
59
 
31
- params = prepare( params, defaults );
60
+ var pos = position.mul( scale.div( 3 ).exp( ) ).add( seed ).toVar( 'pos' );
32
61
 
33
- var pos = positionGeometry.mul( exp( params.scale.div( 3 ) ) ).add( params.seed ).toVar( );
62
+ var octaves = xsmooth.oneMinus().mul( 2 ).exp( ).toVar( 'octaves' );
34
63
 
35
- var octaves = exp( params.smooth.oneMinus().mul( 2 ) );
64
+ const EPS = 0.01;
36
65
 
37
- var n = mx_fractal_noise_float( pos.mul( 5 ), octaves ).add( 1 ).div( 2 ).clamp( 0, 1 ).pow( 2 );
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' );
38
69
 
39
- return mix( params.color, params.background, n );
70
+ var dTime = noise( pos.mul( wave, 5 ) ).add( 1 ).div( 2 ).mul( 6.28 ).toVar( 'dTime' );
40
71
 
41
- }, defaults );
72
+ return vec3( dx, dy, time.mul( speed ).add( dTime ).sin().add( n, 1 ) ).normalize();
42
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
+ );
43
89
 
44
90
 
45
- brain.normal = TSLFn( ( params )=>{
46
91
 
47
- params = prepare( params, defaults );
92
+ function brain( params={} ) {
48
93
 
49
- var pos = positionGeometry.mul( exp( params.scale.div( 3 ) ) ).add( params.seed ).toVar( );
94
+ var { position, scale, smooth, /*wave, speed, time,*/ color, background, seed } = { ...defaults, ...params };
50
95
 
51
- var octaves = exp( params.smooth.oneMinus().mul( 2 ) );
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
+ };
52
109
 
53
- var eps = 0.01;
54
- var n = mx_fractal_noise_float( pos.mul( 5 ), octaves );
55
- var dx = mx_fractal_noise_float( pos.add( vec3( eps, 0, 0 ) ).mul( 5 ), octaves ).sub( n ).div( eps );
56
- var dy = mx_fractal_noise_float( pos.add( vec3( 0, eps, 0 ) ).mul( 5 ), octaves ).sub( n ).div( eps );
57
110
 
58
- var dTime = noise( pos.mul( params.wave.mul( 5 ) ) ).add( 1 ).div( 2 ).mul( 6.28 );
59
- return vec3( dx, dy, time.mul( params.speed ).add( dTime ).sin().add( n, 1 ) ).normalize();
60
111
 
61
- }, defaults );
112
+ brain.defaults = defaults;
62
113
 
63
114
 
64
115
 
package/src/bricks.js CHANGED
@@ -4,14 +4,15 @@
4
4
 
5
5
 
6
6
  import { Color, Vector3 } from 'three';
7
- import { exp, float, mix, mul, mx_fractal_noise_vec3, positionGeometry, vec3 } from 'three/tsl';
8
- import { noise, prepare, remapExp, TSLFn } from './tsl-utils.js';
7
+ import { exp, float, Fn, mix, mul, positionGeometry, vec3 } from 'three/tsl';
8
+ import { fractal3, noise, remapExp } from './tsl-utils.js';
9
9
 
10
10
 
11
11
 
12
12
  var defaults = {
13
13
  $name: 'Bricks',
14
14
 
15
+ position: positionGeometry,
15
16
  scale: 2,
16
17
 
17
18
  brickSize: new Vector3( 2, 1, 2 ),
@@ -35,48 +36,80 @@ var defaults = {
35
36
  seed: 0,
36
37
  };
37
38
 
38
- // mortar joint
39
39
 
40
40
 
41
+ var bricksRaw = Fn( ([ position, scale, brickSize, brickShift, jointSize, jointSpan, jointJitter, jointBlur, noiseSize, noiseStrength, colorShade, color, additional, background, seed ])=>{
41
42
 
42
- var bricks = TSLFn( ( params )=>{
43
+ var pos = position.mul( exp( scale ) ).add( seed ).toVar( );
43
44
 
44
- params = prepare( params, defaults );
45
+ var size = brickSize;
45
46
 
46
-
47
- var pos = positionGeometry.mul( exp( params.scale ) ).add( params.seed ).toVar( );
48
-
49
- var size = params.brickSize;
50
-
51
- var floor = pos.div( size ).floor().div( params.brickShift );
47
+ var floor = pos.div( size ).floor().div( brickShift );
52
48
 
53
49
  var offset = vec3( floor.y, 0, floor.y ).toVar();
54
50
 
55
51
  var p = pos.div( size ).fract().add( offset ).fract().toVar();
56
52
 
57
- var n = mx_fractal_noise_vec3( pos.mul( remapExp( params.jointSpan, 0, 1, 20, 0.2 ) ) ).div( remapExp( params.jointJitter, 0, 1, 500, 1 ) ).toVar();
53
+ var n = fractal3( pos.mul( remapExp( jointSpan, 0, 1, 20, 0.2 ) ) ).div( remapExp( jointJitter, 0, 1, 500, 1 ) ).toVar();
58
54
 
59
55
  var border = mul(
60
- p.mul( size ).add( n.z ).smoothstep( size.y.sub( params.jointSize, params.jointBlur ), size.y.sub( params.jointSize ) ).y.oneMinus(),
61
- p.mul( size ).add( n.y ).smoothstep( params.jointSize, params.jointSize.add( params.jointBlur ) ).y,
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,
62
58
 
63
- p.mul( size ).add( n.y ).smoothstep( size.x.sub( params.jointSize, params.jointBlur ), size.x.sub( params.jointSize ) ).x.oneMinus(),
64
- p.mul( size ).add( n.x ).smoothstep( params.jointSize, params.jointSize.add( params.jointBlur ) ).x,
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,
65
61
 
66
- p.mul( size ).add( n.x ).smoothstep( size.z.sub( params.jointSize, params.jointBlur ), size.z.sub( params.jointSize ) ).z.oneMinus(),
67
- p.mul( size ).add( n.z ).smoothstep( params.jointSize, params.jointSize.add( params.jointBlur ) ).z,
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,
68
64
  ).clamp( 0, 1 );
69
65
 
70
- 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 ), params.colorShade );
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 );
71
67
 
72
- var ns = noise( pos.mul( remapExp( params.noiseSize, 0, 1, 5, 250 ) ) ).mul( params.noiseStrength ).add( 1 );
68
+ var ns = noise( pos.mul( remapExp( noiseSize, 0, 1, 5, 250 ) ) ).mul( noiseStrength ).add( 1 );
73
69
 
74
70
  var brickNoise = noise( noise( pos.xyz.div( size ).add( offset ).floor().zxy.mul( 200 ).add( Math.PI ) ).mul( 10 ) ).add( 1 ).div( 1 );
75
- var brickColor = mix( params.color, params.additional, brickNoise.pow( 2 ) );
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
+
76
110
 
77
- return mix( params.background, shade.mul( brickColor, border ), border ).mul( ns );
78
111
 
79
- }, defaults );
112
+ bricks.defaults = defaults;
80
113
 
81
114
 
82
115
 
package/src/camouflage.js CHANGED
@@ -4,14 +4,15 @@
4
4
 
5
5
 
6
6
  import { Color } from 'three';
7
- import { exp, If, positionGeometry, round, vec3 } from 'three/tsl';
8
- import { noise, prepare, TSLFn } from './tsl-utils.js';
7
+ import { Fn, If, positionGeometry } from 'three/tsl';
8
+ import { noise } from './tsl-utils.js';
9
9
 
10
10
 
11
11
 
12
12
  var defaults = {
13
13
  $name: 'Camouflage',
14
14
 
15
+ position: positionGeometry,
15
16
  scale: 2,
16
17
 
17
18
  colorA: new Color( 0xc2bea8 ),
@@ -24,42 +25,60 @@ var defaults = {
24
25
 
25
26
 
26
27
 
27
- var camouflage = TSLFn( ( params )=>{
28
+ var camouflageRaw = Fn( ([ position, scale, colorA, colorB, colorC, colorD, seed ])=>{
28
29
 
29
- params = prepare( params, defaults );
30
+ var pos = position.mul( scale.exp( ) ).add( seed ).toVar( 'pos' );
30
31
 
31
- var pos = positionGeometry.mul( exp( params.scale ) ).add( params.seed ).toVar( );
32
+ var color = colorD.toVar( 'color' );
32
33
 
33
- var color = vec3( 0, 0, 0 ).toVar( );
34
+ If( noise( pos ).greaterThanEqual( 0.3 ), () => {
34
35
 
35
- If( round( noise( pos, 1, 0.2 ) ).greaterThanEqual( 1 ), () => {
36
-
37
- color.assign( params.colorA );
36
+ color.assign( colorA );
38
37
 
39
38
  }
40
39
  )
41
- .ElseIf( round( noise( pos.yzx, 1, 0.3 ) ).greaterThanEqual( 1 ), () => {
40
+ .ElseIf( noise( pos.yzx ).greaterThanEqual( 0.2 ), () => {
42
41
 
43
- color.assign( params.colorB );
42
+ color.assign( colorB );
44
43
 
45
44
  }
46
45
  )
47
- .ElseIf( round( noise( pos.zxy, 1, 0.4 ) ).greaterThanEqual( 1 ), () => {
46
+ .ElseIf( noise( pos.zxy ).greaterThanEqual( 0.1 ), () => {
48
47
 
49
- color.assign( params.colorC );
50
-
51
- }
52
- )
53
- .Else( () => {
54
-
55
- color.assign( params.colorD );
48
+ color.assign( colorC );
56
49
 
57
50
  }
58
51
  );
59
52
 
60
53
  return color;
61
54
 
62
- }, defaults );
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;
63
82
 
64
83
 
65
84