mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-11-04 21:17:30 +00:00
* feat(registry): eight more WebGPU shader backgrounds and a bundle with thirty new shaders * refactor(registry): simpler bundle copy step in the shader build * test(registry): every shader block ships the same bundle and names a shader in it * refactor(registry): one block loader for the shader block tests * test(registry): name the stale block and match only shader names * chore(registry): shorter licence line at the top of the shader bundle * test(registry): every shader block installs the bundle's licences
268 lines
1.4 MiB
Plaintext
268 lines
1.4 MiB
Plaintext
/*! Shaders library (shaders@4.0.0), Copyright 2026 Shader Effects Inc., MIT. Licence texts ship beside this bundle. */
|
|
(()=>{var od=class extends Error{reason;constructor(e,t,s){super(t??`[gpu] WebGPU unavailable (${e})`),this.name="GpuUnavailableError",this.reason=e,s?.cause!==void 0&&(this.cause=s.cause)}};function f1(e){return!!e&&typeof e=="object"&&e.name==="GpuUnavailableError"&&typeof e.reason=="string"}var X0=null;function Ou(){if(X0!==null)return X0;let e=globalThis.__SHADERS_DEBUG__;if(e!=null)return!!e;try{if(typeof localStorage<"u"&&localStorage.getItem("shaders:debug")==="1")return!0}catch{}return!1}var H0=!1;function j0(){H0=!0}function Vu(...e){(Ou()||H0)&&console.error(...e)}function vi(...e){Ou()&&console.warn(...e)}function yr(...e){Ou()&&console.error(...e)}function K0(){return typeof navigator<"u"&&!!navigator.gpu}var Wu=null;function Z0(){return Wu||(Wu=(async()=>{if(!K0())return{supported:!1,reason:"unsupported"};try{return await navigator.gpu.requestAdapter({powerPreference:"high-performance"})?{supported:!0}:{supported:!1,reason:"no-adapter"}}catch(e){return yr("[gpu] adapter probe threw:",e),{supported:!1,reason:"no-adapter"}}})(),Wu)}var vP=new Set(["unsupported","no-adapter","no-device","out-of-memory","gpu-error"]),m1=null;function Q0(e){m1||!vP.has(e)||(m1=e)}function J0(){return m1}function Xs(e,t){let s=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(t[0])||(t=t.map(i=>[i]));let r=t[0].length,o=t[0].map((i,d)=>t.map(l=>l[d])),n=e.map(i=>o.map(d=>{let l=0;if(!Array.isArray(i)){for(let c of d)l+=i*c;return l}for(let c=0;c<i.length;c++)l+=i[c]*(d[c]||0);return l}));return s===1&&(n=n[0]),r===1?n.map(i=>i[0]):n}function Cl(e){return Pa(e)==="string"}function Pa(e){return(Object.prototype.toString.call(e).match(/^\[object\s+(.*?)\]$/)[1]||"").toLowerCase()}function e_(e,{precision:t,unit:s}){return Ma(e)?"none":Zg(e,t)+(s??"")}function Ma(e){return Number.isNaN(e)||e instanceof Number&&e?.none}function _r(e){return Ma(e)?0:e}function Zg(e,t){if(e===0)return 0;let s=~~e,r=0;s&&t&&(r=~~Math.log10(Math.abs(s))+1);let o=10**(t-r);return Math.floor(e*o+.5)/o}var hP={deg:1,grad:.9,rad:180/Math.PI,turn:360};function Qg(e){if(!e)return;e=e.trim();let t=/^([a-z]+)\((.+?)\)$/i,s=/^-?[\d.]+$/,r=/%|deg|g?rad|turn$/,o=/\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g,n=e.match(t);if(n){let i=[];return n[2].replace(o,(d,l)=>{let c=l.match(r),_=l;if(c){let p=c[0],f=_.slice(0,-p.length);p==="%"?(_=new Number(f/100),_.type="<percentage>"):(_=new Number(f*hP[p]),_.type="<angle>",_.unit=p)}else s.test(_)?(_=new Number(_),_.type="<number>"):_==="none"&&(_=new Number(NaN),_.none=!0);d.startsWith("/")&&(_=_ instanceof Number?_:new Number(_),_.alpha=!0),typeof _=="object"&&_ instanceof Number&&(_.raw=l),i.push(_)}),{name:n[1].toLowerCase(),rawName:n[1],rawArgs:n[2],args:i}}}function Jg(e){return e[e.length-1]}function Ml(e,t,s){return isNaN(e)?t:isNaN(t)?e:e+(t-e)*s}function ex(e,t,s){return(s-e)/(t-e)}function z1(e,t,s){return Ml(t[0],t[1],ex(e[0],e[1],s))}function tx(e){return e.map(t=>t.split("|").map(s=>{s=s.trim();let r=s.match(/^(<[a-z]+>)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);if(r){let o=new String(r[1]);return o.range=[+r[2],+r[3]],o}return s}))}function sx(e,t,s){return Math.max(Math.min(s,t),e)}function o_(e,t){return Math.sign(e)===Math.sign(t)?e:-e}function Un(e,t){return o_(Math.abs(e)**t,e)}function G1(e,t){return t===0?0:e/t}function rx(e,t,s=0,r=e.length){for(;s<r;){let o=s+r>>1;e[o]<t?s=o+1:r=o}return s}var yP=Object.freeze({__proto__:null,bisectLeft:rx,clamp:sx,copySign:o_,interpolate:Ml,interpolateInv:ex,isNone:Ma,isString:Cl,last:Jg,mapRange:z1,multiplyMatrices:Xs,parseCoordGrammar:tx,parseFunction:Qg,serializeNumber:e_,skipNone:_r,spow:Un,toPrecision:Zg,type:Pa,zdiv:G1}),gP=class{add(e,t,s){if(typeof arguments[0]!="string"){for(var e in arguments[0])this.add(e,arguments[0][e],arguments[1]);return}(Array.isArray(e)?e:[e]).forEach(function(r){this[r]=this[r]||[],t&&this[r][s?"unshift":"push"](t)},this)}run(e,t){this[e]=this[e]||[],this[e].forEach(function(s){s.call(t&&t.context?t.context:t,t)})}},ka=new gP,Fo={gamut_mapping:"css",precision:5,deltaE:"76",verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!=="test",warn:function(t){this.verbose&&globalThis?.console?.warn?.(t)}},ao={D50:[.3457/.3585,1,.2958/.3585],D65:[.3127/.329,1,.3583/.329]};function E1(e){return Array.isArray(e)?e:ao[e]}function t_(e,t,s,r={}){if(e=E1(e),t=E1(t),!e||!t)throw new TypeError(`Missing white point to convert ${e?"":"from"}${!e&&!t?"/":""}${t?"":"to"}`);if(e===t)return s;let o={W1:e,W2:t,XYZ:s,options:r};if(ka.run("chromatic-adaptation-start",o),o.M||(o.W1===ao.D65&&o.W2===ao.D50?o.M=[[1.0479297925449969,.022946870601609652,-.05019226628920524],[.02962780877005599,.9904344267538799,-.017073799063418826],[-.009243040646204504,.015055191490298152,.7518742814281371]]:o.W1===ao.D50&&o.W2===ao.D65&&(o.M=[[.955473421488075,-.02309845494876471,.06325924320057072],[-.0283697093338637,1.0099953980813041,.021041441191917323],[.012314014864481998,-.020507649298898964,1.330365926242124]])),ka.run("chromatic-adaptation-end",o),o.M)return Xs(o.M,o.XYZ);throw new TypeError("Only Bradford CAT with white points D50 and D65 supported for now.")}var xP=new Set(["<number>","<percentage>","<angle>"]);function eg(e,t,s,r){return Object.entries(e.coords).map(([o,n],i)=>{let d=t.coordGrammar[i],l=r[i],c=l?.type,_;if(l.none?_=d.find(h=>xP.has(h)):_=d.find(h=>h==c),!_){let h=n.name||o;throw new TypeError(`${c??l.raw} not allowed for ${h} in ${s}()`)}let p=_.range;c==="<percentage>"&&(p||=[0,1]);let f=n.range||n.refRange;return p&&f&&(r[i]=z1(p,f,r[i])),_})}function ox(e,{meta:t}={}){let s={str:String(e)?.trim()};if(ka.run("parse-start",s),s.color)return s.color;if(s.parsed=Qg(s.str),s.parsed){let r=s.parsed.name;if(r==="color"){let o=s.parsed.args.shift(),n=o.startsWith("--")?o.substring(2):`--${o}`,i=[o,n],d=s.parsed.rawArgs.indexOf("/")>0?s.parsed.args.pop():1;for(let _ of _t.all){let p=_.getFormat("color");if(p&&(i.includes(p.id)||p.ids?.filter(f=>i.includes(f)).length)){let f=Object.keys(_.coords).map((g,x)=>s.parsed.args[x]||0),h;return p.coordGrammar&&(h=eg(_,p,"color",f)),t&&Object.assign(t,{formatId:"color",types:h}),p.id.startsWith("--")&&!o.startsWith("--")&&Fo.warn(`${_.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${p.id}) instead of color(${o}).`),o.startsWith("--")&&!p.id.startsWith("--")&&Fo.warn(`${_.name} is a standard space and supported in the CSS spec. Use color(${p.id}) instead of prefixed color(${o}).`),{spaceId:_.id,coords:f,alpha:d}}}let l="",c=o in _t.registry?o:n;if(c in _t.registry){let _=_t.registry[c].formats?.color?.id;_&&(l=`Did you mean color(${_})?`)}throw new TypeError(`Cannot parse color(${o}). `+(l||"Missing a plugin?"))}else for(let o of _t.all){let n=o.getFormat(r);if(n&&n.type==="function"){let i=1;(n.lastAlpha||Jg(s.parsed.args).alpha)&&(i=s.parsed.args.pop());let d=s.parsed.args,l;return n.coordGrammar&&(l=eg(o,n,r,d)),t&&Object.assign(t,{formatId:n.name,types:l}),{spaceId:o.id,coords:d,alpha:i}}}}else for(let r of _t.all)for(let o in r.formats){let n=r.formats[o];if(n.type!=="custom"||n.test&&!n.test(s.str))continue;let i=n.parse(s.str);if(i)return i.alpha??=1,t&&(t.formatId=o),i}throw new TypeError(`Could not parse ${e} as a color. Missing a plugin?`)}function Bt(e){if(Array.isArray(e))return e.map(Bt);if(!e)throw new TypeError("Empty color reference");Cl(e)&&(e=ox(e));let t=e.space||e.spaceId;return t instanceof _t||(e.space=_t.get(t)),e.alpha===void 0&&(e.alpha=1),e}var bP=75e-6,_t=class hn{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?hn.get(t.base):null,this.aliases=t.aliases,this.base&&(this.fromBase=t.fromBase,this.toBase=t.toBase);let s=t.coords??this.base.coords;for(let r in s)"name"in s[r]||(s[r].name=r);this.coords=s,this.white=E1(t.white??this.base.white??"D65"),this.formats=t.formats??{};for(let r in this.formats){let o=this.formats[r];o.type||="function",o.name||=r}this.formats.color?.id||(this.formats.color={...this.formats.color??{},id:t.cssId||this.id}),t.gamutSpace?this.gamutSpace=t.gamutSpace==="self"?this:hn.get(t.gamutSpace):this.isPolar?this.gamutSpace=this.base:this.gamutSpace=this,this.gamutSpace.isUnbounded&&(this.inGamut=(r,o)=>!0),this.referred=t.referred,Object.defineProperty(this,"path",{value:wP(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),ka.run("colorspace-init-end",this)}inGamut(t,{epsilon:s=bP}={}){if(!this.equals(this.gamutSpace))return t=this.to(this.gamutSpace,t),this.gamutSpace.inGamut(t,{epsilon:s});let r=Object.values(this.coords);return t.every((o,n)=>{let i=r[n];if(i.type!=="angle"&&i.range){if(Number.isNaN(o))return!0;let[d,l]=i.range;return(d===void 0||o>=d-s)&&(l===void 0||o<=l+s)}return!0})}get isUnbounded(){return Object.values(this.coords).every(t=>!("range"in t))}get cssId(){return this.formats?.color?.id||this.id}get isPolar(){for(let t in this.coords)if(this.coords[t].type==="angle")return!0;return!1}getFormat(t){if(typeof t=="object")return t=tg(t,this),t;let s;return t==="default"?s=Object.values(this.formats)[0]:s=this.formats[t],s?(s=tg(s,this),s):null}equals(t){return t?this===t||this.id===t||this.id===t.id:!1}to(t,s){if(arguments.length===1){let d=Bt(t);[t,s]=[d.space,d.coords]}if(t=hn.get(t),this.equals(t))return s;s=s.map(d=>Number.isNaN(d)?0:d);let r=this.path,o=t.path,n,i;for(let d=0;d<r.length&&r[d].equals(o[d]);d++)n=r[d],i=d;if(!n)throw new Error(`Cannot convert between color spaces ${this} and ${t}: no connection space was found`);for(let d=r.length-1;d>i;d--)s=r[d].toBase(s);for(let d=i+1;d<o.length;d++)s=o[d].fromBase(s);return s}from(t,s){if(arguments.length===1){let r=Bt(t);[t,s]=[r.space,r.coords]}return t=hn.get(t),t.to(this,s)}toString(){return`${this.name} (${this.id})`}getMinCoords(){let t=[];for(let s in this.coords){let r=this.coords[s],o=r.range||r.refRange;t.push(o?.min??0)}return t}static registry={};static get all(){return[...new Set(Object.values(hn.registry))]}static register(t,s){if(arguments.length===1&&(s=arguments[0],t=s.id),s=this.get(s),this.registry[t]&&this.registry[t]!==s)throw new Error(`Duplicate color space registration: '${t}'`);if(this.registry[t]=s,arguments.length===1&&s.aliases)for(let r of s.aliases)this.register(r,s);return s}static get(t,...s){if(!t||t instanceof hn)return t;if(Pa(t)==="string"){let r=hn.registry[t.toLowerCase()];if(!r)throw new TypeError(`No color space found with id = "${t}"`);return r}if(s.length)return hn.get(...s);throw new TypeError(`${t} is not a valid color space`)}static resolveCoord(t,s){let r=Pa(t),o,n;if(r==="string"?t.includes(".")?[o,n]=t.split("."):[o,n]=[,t]:Array.isArray(t)?[o,n]=t:(o=t.space,n=t.coordId),o=hn.get(o),o||(o=s),!o)throw new TypeError(`Cannot resolve coordinate reference ${t}: No color space specified and relative references are not allowed here`);if(r=Pa(n),r==="number"||r==="string"&&n>=0){let l=Object.entries(o.coords)[n];if(l)return{space:o,id:l[0],index:n,...l[1]}}o=hn.get(o);let i=n.toLowerCase(),d=0;for(let l in o.coords){let c=o.coords[l];if(l.toLowerCase()===i||c.name?.toLowerCase()===i)return{space:o,id:l,index:d,...c};d++}throw new TypeError(`No "${n}" coordinate found in ${o.name}. Its coordinates are: ${Object.keys(o.coords).join(", ")}`)}static DEFAULT_FORMAT={type:"functions",name:"color"}};function wP(e){let t=[e];for(let s=e;s=s.base;)t.push(s);return t}function tg(e,{coords:t}={}){if(e.coords&&!e.coordGrammar){e.type||="function",e.name||="color",e.coordGrammar=tx(e.coords);let s=Object.entries(t).map(([r,o],n)=>{let i=e.coordGrammar[n][0],d=o.range||o.refRange,l=i.range,c="";return i=="<percentage>"?(l=[0,100],c="%"):i=="<angle>"&&(c="deg"),{fromRange:d,toRange:l,suffix:c}});e.serializeCoords=(r,o)=>r.map((n,i)=>{let{fromRange:d,toRange:l,suffix:c}=s[i];return d&&l&&(n=z1(d,l,n)),n=e_(n,{precision:o,unit:c}),n})}return e}var Or=new _t({id:"xyz-d65",name:"XYZ D65",coords:{x:{name:"X"},y:{name:"Y"},z:{name:"Z"}},white:"D65",formats:{color:{ids:["xyz-d65","xyz"]}},aliases:["xyz"]}),bo=class extends _t{constructor(e){e.coords||(e.coords={r:{range:[0,1],name:"Red"},g:{range:[0,1],name:"Green"},b:{range:[0,1],name:"Blue"}}),e.base||(e.base=Or),e.toXYZ_M&&e.fromXYZ_M&&(e.toBase??=t=>{let s=Xs(e.toXYZ_M,t);return this.white!==this.base.white&&(s=t_(this.white,this.base.white,s)),s},e.fromBase??=t=>(t=t_(this.base.white,this.white,t),Xs(e.fromXYZ_M,t))),e.referred??="display",super(e)}};function Rl(e,t){return e=Bt(e),!t||e.space.equals(t)?e.coords.slice():(t=_t.get(t),t.from(e))}function Do(e,t){e=Bt(e);let{space:s,index:r}=_t.resolveCoord(t,e.space);return Rl(e,s)[r]}function D1(e,t,s){return e=Bt(e),t=_t.get(t),e.coords=t.to(e.space,s),e}D1.returns="color";function Jn(e,t,s){if(e=Bt(e),arguments.length===2&&Pa(arguments[1])==="object"){let r=arguments[1];for(let o in r)Jn(e,o,r[o])}else{typeof s=="function"&&(s=s(Do(e,t)));let{space:r,index:o}=_t.resolveCoord(t,e.space),n=Rl(e,r);n[o]=s,D1(e,r,n)}return e}Jn.returns="color";var L1=new _t({id:"xyz-d50",name:"XYZ D50",white:"D50",base:Or,fromBase:e=>t_(Or.white,"D50",e),toBase:e=>t_("D50",Or.white,e)}),TP=216/24389,sg=24/116,Nu=24389/27,v1=ao.D50,Lo=new _t({id:"lab",name:"Lab",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:v1,base:L1,fromBase(e){let t=e.map((s,r)=>s/v1[r]).map(s=>s>TP?Math.cbrt(s):(Nu*s+16)/116);return[116*t[1]-16,500*(t[0]-t[1]),200*(t[1]-t[2])]},toBase(e){let t=[];return t[1]=(e[0]+16)/116,t[0]=e[1]/500+t[1],t[2]=t[1]-e[2]/200,[t[0]>sg?Math.pow(t[0],3):(116*t[0]-16)/Nu,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/Nu,t[2]>sg?Math.pow(t[2],3):(116*t[2]-16)/Nu].map((s,r)=>s*v1[r])},formats:{lab:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});function zn(e){return(e%360+360)%360}function SP(e,t){if(e==="raw")return t;let[s,r]=t.map(zn),o=r-s;return e==="increasing"?o<0&&(r+=360):e==="decreasing"?o>0&&(s+=360):e==="longer"?-180<o&&o<180&&(o>0?s+=360:r+=360):e==="shorter"&&(o>180?s+=360:o<-180&&(r+=360)),[s,r]}var kl=new _t({id:"lch",name:"LCH",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,150],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:Lo,fromBase(e){let[t,s,r]=e,o,n=.02;return Math.abs(s)<n&&Math.abs(r)<n?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),zn(o)]},toBase(e){let[t,s,r]=e;return s<0&&(s=0),isNaN(r)&&(r=0),[t,s*Math.cos(r*Math.PI/180),s*Math.sin(r*Math.PI/180)]},formats:{lch:{coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),rg=25**7,s_=Math.PI,og=180/s_,nd=s_/180;function ng(e){let t=e*e;return t*t*t*e}function nx(e,t,{kL:s=1,kC:r=1,kH:o=1}={}){[e,t]=Bt([e,t]);let[n,i,d]=Lo.from(e),l=kl.from(Lo,[n,i,d])[1],[c,_,p]=Lo.from(t),f=kl.from(Lo,[c,_,p])[1];l<0&&(l=0),f<0&&(f=0);let h=ng((l+f)/2),g=.5*(1-Math.sqrt(h/(h+rg))),x=(1+g)*i,T=(1+g)*_,S=Math.sqrt(x**2+d**2),A=Math.sqrt(T**2+p**2),E=x===0&&d===0?0:Math.atan2(d,x),M=T===0&&p===0?0:Math.atan2(p,T);E<0&&(E+=2*s_),M<0&&(M+=2*s_),E*=og,M*=og;let $=c-n,L=A-S,B=M-E,D=E+M,G=Math.abs(B),I;S*A===0?I=0:G<=180?I=B:B>180?I=B-360:B<-180?I=B+360:Fo.warn("the unthinkable has happened");let X=2*Math.sqrt(A*S)*Math.sin(I*nd/2),H=(n+c)/2,ee=(S+A)/2,Q=ng(ee),de;S*A===0?de=D:G<=180?de=D/2:D<360?de=(D+360)/2:de=(D-360)/2;let Ee=(H-50)**2,he=1+.015*Ee/Math.sqrt(20+Ee),Me=1+.045*ee,Te=1;Te-=.17*Math.cos((de-30)*nd),Te+=.24*Math.cos(2*de*nd),Te+=.32*Math.cos((3*de+6)*nd),Te-=.2*Math.cos((4*de-63)*nd);let Pe=1+.015*ee*Te,Ce=30*Math.exp(-1*((de-275)/25)**2),ie=2*Math.sqrt(Q/(Q+rg)),Ne=-1*Math.sin(2*Ce*nd)*ie,ye=($/(s*he))**2;return ye+=(L/(r*Me))**2,ye+=(X/(o*Pe))**2,ye+=Ne*(L/(r*Me))*(X/(o*Pe)),Math.sqrt(ye)}var AP=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],EP=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],PP=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],MP=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],ld=new _t({id:"oklab",name:"Oklab",coords:{l:{refRange:[0,1],name:"Lightness"},a:{refRange:[-.4,.4]},b:{refRange:[-.4,.4]}},white:"D65",base:Or,fromBase(e){return Xs(PP,Xs(AP,e).map(t=>Math.cbrt(t)))},toBase(e){return Xs(EP,Xs(MP,e).map(t=>t**3))},formats:{oklab:{coords:["<percentage> | <number>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});function P1(e,t){[e,t]=Bt([e,t]);let[s,r,o]=ld.from(e),[n,i,d]=ld.from(t),l=s-n,c=r-i,_=o-d;return Math.sqrt(l**2+c**2+_**2)}var kP=75e-6;function yi(e,t,{epsilon:s=kP}={}){e=Bt(e),t||(t=e.space),t=_t.get(t);let r=e.coords;return t!==e.space&&(r=t.from(e)),t.inGamut(r,{epsilon:s})}function cd(e){return{space:e.space,coords:e.coords.slice(),alpha:e.alpha}}function ax(e,t,s="lab"){s=_t.get(s);let r=s.from(e),o=s.from(t);return Math.sqrt(r.reduce((n,i,d)=>{let l=o[d];return isNaN(i)||isNaN(l)?n:n+(l-i)**2},0))}function $P(e,t){return ax(e,t,"lab")}var ag=Math.PI/180;function CP(e,t,{l:s=2,c:r=1}={}){[e,t]=Bt([e,t]);let[o,n,i]=Lo.from(e),[,d,l]=kl.from(Lo,[o,n,i]),[c,_,p]=Lo.from(t),f=kl.from(Lo,[c,_,p])[1];d<0&&(d=0),f<0&&(f=0);let h=o-c,g=d-f,x=n-_,T=i-p,S=x**2+T**2-g**2,A=.511;o>=16&&(A=.040975*o/(1+.01765*o));let E=.0638*d/(1+.0131*d)+.638,M;Number.isNaN(l)&&(l=0),l>=164&&l<=345?M=.56+Math.abs(.2*Math.cos((l+168)*ag)):M=.36+Math.abs(.4*Math.cos((l+35)*ag));let $=Math.pow(d,4),L=Math.sqrt($/($+1900)),B=E*(L*M+1-L),D=(h/(s*A))**2;return D+=(g/(r*E))**2,D+=S/B**2,Math.sqrt(D)}var ig=203,F1=new _t({id:"xyz-abs-d65",cssId:"--xyz-abs-d65",name:"Absolute XYZ D65",coords:{x:{refRange:[0,9504.7],name:"Xa"},y:{refRange:[0,1e4],name:"Ya"},z:{refRange:[0,10888.3],name:"Za"}},base:Or,fromBase(e){return e.map(t=>Math.max(t*ig,0))},toBase(e){return e.map(t=>Math.max(t/ig,0))}}),qu=1.15,Xu=.66,dg=2610/2**14,RP=2**14/2610,lg=3424/2**12,cg=2413/2**7,ug=2392/2**7,UP=1.7*2523/2**5,_g=2**5/(1.7*2523),Hu=-.56,h1=16295499532821565e-27,zP=[[.41478972,.579999,.014648],[-.20151,1.120649,.0531008],[-.0166008,.2648,.6684799]],GP=[[1.9242264357876067,-1.0047923125953657,.037651404030618],[.35031676209499907,.7264811939316552,-.06538442294808501],[-.09098281098284752,-.3127282905230739,1.5227665613052603]],DP=[[.5,.5,0],[3.524,-4.066708,.542708],[.199076,1.096799,-1.295875]],LP=[[1,.1386050432715393,.05804731615611886],[.9999999999999999,-.1386050432715393,-.05804731615611886],[.9999999999999998,-.09601924202631895,-.8118918960560388]],ix=new _t({id:"jzazbz",name:"Jzazbz",coords:{jz:{refRange:[0,1],name:"Jz"},az:{refRange:[-.5,.5]},bz:{refRange:[-.5,.5]}},base:F1,fromBase(e){let[t,s,r]=e,[o,n,i]=Xs(DP,Xs(zP,[qu*t-(qu-1)*r,Xu*s-(Xu-1)*t,r]).map(function(d){return((lg+cg*(d/1e4)**dg)/(1+ug*(d/1e4)**dg))**UP}));return[(1+Hu)*o/(1+Hu*o)-h1,n,i]},toBase(e){let[t,s,r]=e,[o,n,i]=Xs(GP,Xs(LP,[(t+h1)/(1+Hu-Hu*(t+h1)),s,r]).map(function(l){return 1e4*((lg-l**_g)/(ug*l**_g-cg))**RP})),d=(o+(qu-1)*i)/qu;return[d,(n+(Xu-1)*d)/Xu,i]},formats:{color:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),M1=new _t({id:"jzczhz",name:"JzCzHz",coords:{jz:{refRange:[0,1],name:"Jz"},cz:{refRange:[0,1],name:"Chroma"},hz:{refRange:[0,360],type:"angle",name:"Hue"}},base:ix,fromBase(e){let[t,s,r]=e,o,n=2e-4;return Math.abs(s)<n&&Math.abs(r)<n?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),zn(o)]},toBase(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}});function FP(e,t){[e,t]=Bt([e,t]);let[s,r,o]=M1.from(e),[n,i,d]=M1.from(t),l=s-n,c=r-i;Number.isNaN(o)&&Number.isNaN(d)?(o=0,d=0):Number.isNaN(o)?o=d:Number.isNaN(d)&&(d=o);let _=o-d,p=2*Math.sqrt(r*i)*Math.sin(_/2*(Math.PI/180));return Math.sqrt(l**2+c**2+p**2)}var dx=3424/4096,lx=2413/128,cx=2392/128,pg=2610/16384,BP=2523/32,IP=16384/2610,mg=32/2523,YP=[[.3592832590121217,.6976051147779502,-.035891593232029],[-.1920808463704993,1.100476797037432,.0753748658519118],[.0070797844607479,.0748396662186362,.8433265453898765]],WP=[[2048/4096,2048/4096,0],[6610/4096,-13613/4096,7003/4096],[17933/4096,-17390/4096,-543/4096]],OP=[[.9999999999999998,.0086090370379328,.111029625003026],[.9999999999999998,-.0086090370379328,-.1110296250030259],[.9999999999999998,.5600313357106791,-.3206271749873188]],VP=[[2.0701522183894223,-1.3263473389671563,.2066510476294053],[.3647385209748072,.6805660249472273,-.0453045459220347],[-.0497472075358123,-.0492609666966131,1.1880659249923042]],k1=new _t({id:"ictcp",name:"ICTCP",coords:{i:{refRange:[0,1],name:"I"},ct:{refRange:[-.5,.5],name:"CT"},cp:{refRange:[-.5,.5],name:"CP"}},base:F1,fromBase(e){return NP(Xs(YP,e))},toBase(e){return Xs(VP,qP(e))}});function NP(e){return Xs(WP,e.map(function(t){return((dx+lx*(t/1e4)**pg)/(1+cx*(t/1e4)**pg))**BP}))}function qP(e){return Xs(OP,e).map(function(t){return 1e4*(Math.max(t**mg-dx,0)/(lx-cx*t**mg))**IP})}function XP(e,t){[e,t]=Bt([e,t]);let[s,r,o]=k1.from(e),[n,i,d]=k1.from(t);return 720*Math.sqrt((s-n)**2+.25*(r-i)**2+(o-d)**2)}var HP=ao.D65,ux=.42,fg=1/ux,y1=2*Math.PI,_x=[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],jP=[[1.8620678550872327,-1.0112546305316843,.14918677544445175],[.38752654323613717,.6214474419314753,-.008973985167612518],[-.015841498849333856,-.03412293802851557,1.0499644368778496]],KP=[[460,451,288],[460,-891,-261],[460,-220,-6300]],ZP={dark:[.8,.525,.8],dim:[.9,.59,.9],average:[1,.69,1]},hi={h:[20.14,90,164.25,237.53,380.14],e:[.8,.7,1,1.2,.8],H:[0,100,200,300,400]},QP=180/Math.PI,vg=Math.PI/180;function px(e,t){return e.map(s=>{let r=Un(t*Math.abs(s)*.01,ux);return 400*o_(r,s)/(r+27.13)})}function JP(e,t){let s=100/t*27.13**fg;return e.map(r=>{let o=Math.abs(r);return o_(s*Un(o/(400-o),fg),r)})}function eM(e){let t=zn(e);t<=hi.h[0]&&(t+=360);let s=rx(hi.h,t)-1,[r,o]=hi.h.slice(s,s+2),[n,i]=hi.e.slice(s,s+2),d=hi.H[s],l=(t-r)/n;return d+100*l/(l+(o-t)/i)}function tM(e){let t=(e%400+400)%400,s=Math.floor(.01*t);t=t%100;let[r,o]=hi.h.slice(s,s+2),[n,i]=hi.e.slice(s,s+2);return zn((t*(i*r-n*o)-100*r*i)/(t*(i-n)-100*i))}function mx(e,t,s,r,o){let n={};n.discounting=o,n.refWhite=e,n.surround=r;let i=e.map(h=>h*100);n.la=t,n.yb=s;let d=i[1],l=Xs(_x,i);r=ZP[n.surround];let c=r[0];n.c=r[1],n.nc=r[2];let _=(1/(5*n.la+1))**4;n.fl=_*n.la+.1*(1-_)*(1-_)*Math.cbrt(5*n.la),n.flRoot=n.fl**.25,n.n=n.yb/d,n.z=1.48+Math.sqrt(n.n),n.nbb=.725*n.n**-.2,n.ncb=n.nbb;let p=o?1:Math.max(Math.min(c*(1-1/3.6*Math.exp((-n.la-42)/92)),1),0);n.dRgb=l.map(h=>Ml(1,d/h,p)),n.dRgbInv=n.dRgb.map(h=>1/h);let f=px(l.map((h,g)=>h*n.dRgb[g]),n.fl);return n.aW=n.nbb*(2*f[0]+f[1]+.05*f[2]),n}var hg=mx(HP,64/Math.PI*.2,20,"average",!1);function $1(e,t){if(!(e.J!==void 0^e.Q!==void 0))throw new Error("Conversion requires one and only one: 'J' or 'Q'");if(!(e.C!==void 0^e.M!==void 0^e.s!==void 0))throw new Error("Conversion requires one and only one: 'C', 'M' or 's'");if(!(e.h!==void 0^e.H!==void 0))throw new Error("Conversion requires one and only one: 'h' or 'H'");if(e.J===0||e.Q===0)return[0,0,0];let s=0;e.h!==void 0?s=zn(e.h)*vg:s=tM(e.H)*vg;let r=Math.cos(s),o=Math.sin(s),n=0;e.J!==void 0?n=Un(e.J,1/2)*.1:e.Q!==void 0&&(n=.25*t.c*e.Q/((t.aW+4)*t.flRoot));let i=0;e.C!==void 0?i=e.C/n:e.M!==void 0?i=e.M/t.flRoot/n:e.s!==void 0&&(i=4e-4*e.s**2*(t.aW+4)/t.c);let d=Un(i*Math.pow(1.64-Math.pow(.29,t.n),-.73),10/9),l=.25*(Math.cos(s+2)+3.8),c=t.aW*Un(n,2/t.c/t.z),_=5e4/13*t.nc*t.ncb*l,p=c/t.nbb,f=23*(p+.305)*G1(d,23*_+d*(11*r+108*o));return Xs(jP,JP(Xs(KP,[p,f*r,f*o]).map(h=>h*1/1403),t.fl).map((h,g)=>h*t.dRgbInv[g])).map(h=>h/100)}function fx(e,t){let s=px(Xs(_x,e.map(x=>x*100)).map((x,T)=>x*t.dRgb[T]),t.fl),r=s[0]+(-12*s[1]+s[2])/11,o=(s[0]+s[1]-2*s[2])/9,n=(Math.atan2(o,r)%y1+y1)%y1,i=.25*(Math.cos(n+2)+3.8),d=Un(5e4/13*t.nc*t.ncb*G1(i*Math.sqrt(r**2+o**2),s[0]+s[1]+1.05*s[2]+.305),.9)*Math.pow(1.64-Math.pow(.29,t.n),.73),l=Un(t.nbb*(2*s[0]+s[1]+.05*s[2])/t.aW,.5*t.c*t.z),c=100*Un(l,2),_=4/t.c*l*(t.aW+4)*t.flRoot,p=d*l,f=p*t.flRoot,h=zn(n*QP),g=eM(h);return{J:c,C:p,h,s:50*Un(t.c*d/(t.aW+4),1/2),Q:_,M:f,H:g}}var sM=new _t({id:"cam16-jmh",cssId:"--cam16-jmh",name:"CAM16-JMh",coords:{j:{refRange:[0,100],name:"J"},m:{refRange:[0,105],name:"Colorfulness"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:Or,fromBase(e){let t=fx(e,hg);return[t.J,t.M,t.h]},toBase(e){return $1({J:e[0],M:e[1],h:e[2]},hg)}}),rM=ao.D65,oM=216/24389,vx=24389/27;function nM(e){return 116*(e>oM?Math.cbrt(e):(vx*e+16)/116)-16}function C1(e){return e>8?Math.pow((e+16)/116,3):e/vx}function aM(e,t){let[s,r,o]=e,n=[],i=0;if(o===0)return[0,0,0];let d=C1(o);o>0?i=.00379058511492914*o**2+.608983189401032*o+.9155088574762233:i=9514440756550361e-21*o**2+.08693057439788597*o-21.928975842194614;let l=2e-12,c=15,_=0,p=1/0;for(;_<=c;){n=$1({J:i,C:r,h:s},t);let f=Math.abs(n[1]-d);if(f<p){if(f<=l)return n;p=f}i=i-(n[1]-d)*i/(2*n[1]),_+=1}return $1({J:i,C:r,h:s},t)}function iM(e,t){let s=nM(e[1]);if(s===0)return[0,0,0];let r=fx(e,B1);return[zn(r.h),r.C,s]}var B1=mx(rM,200/Math.PI*C1(50),C1(50)*100,"average",!1),$l=new _t({id:"hct",name:"HCT",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},c:{refRange:[0,145],name:"Colorfulness"},t:{refRange:[0,100],name:"Tone"}},base:Or,fromBase(e){return iM(e)},toBase(e){return aM(e,B1)},formats:{color:{id:"--hct",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),dM=Math.PI/180,yg=[1,.007,.0228];function gg(e){e[1]<0&&(e=$l.fromBase($l.toBase(e)));let t=Math.log(Math.max(1+yg[2]*e[1]*B1.flRoot,1))/yg[2],s=e[0]*dM,r=t*Math.cos(s),o=t*Math.sin(s);return[e[2],r,o]}function lM(e,t){[e,t]=Bt([e,t]);let[s,r,o]=gg($l.from(e)),[n,i,d]=gg($l.from(t));return Math.sqrt((s-n)**2+(r-i)**2+(o-d)**2)}var ud={deltaE76:$P,deltaECMC:CP,deltaE2000:nx,deltaEJz:FP,deltaEITP:XP,deltaEOK:P1,deltaEHCT:lM};function cM(e){let t=e?Math.floor(Math.log10(Math.abs(e))):0;return Math.max(parseFloat(`1e${t-2}`),1e-6)}var xg={hct:{method:"hct.c",jnd:2,deltaEMethod:"hct",blackWhiteClamp:{}},"hct-tonal":{method:"hct.c",jnd:0,deltaEMethod:"hct",blackWhiteClamp:{channel:"hct.t",min:0,max:100}}};function $a(e,{method:t=Fo.gamut_mapping,space:s=void 0,deltaEMethod:r="",jnd:o=2,blackWhiteClamp:n={}}={}){if(e=Bt(e),Cl(arguments[1])?s=arguments[1]:s||(s=e.space),s=_t.get(s),yi(e,s,{epsilon:0}))return e;let i;if(t==="css")i=uM(e,{space:s});else{if(t!=="clip"&&!yi(e,s)){Object.prototype.hasOwnProperty.call(xg,t)&&({method:t,jnd:o,deltaEMethod:r,blackWhiteClamp:n}=xg[t]);let d=nx;if(r!==""){for(let c in ud)if("deltae"+r.toLowerCase()===c.toLowerCase()){d=ud[c];break}}let l=$a(qs(e,s),{method:"clip",space:s});if(d(e,l)>o){if(Object.keys(n).length===3){let S=_t.resolveCoord(n.channel),A=Do(qs(e,S.space),S.id);if(Ma(A)&&(A=0),A>=n.max)return qs({space:"xyz-d65",coords:ao.D65},e.space);if(A<=n.min)return qs({space:"xyz-d65",coords:[0,0,0]},e.space)}let c=_t.resolveCoord(t),_=c.space,p=c.id,f=qs(e,_);f.coords.forEach((S,A)=>{Ma(S)&&(f.coords[A]=0)});let h=(c.range||c.refRange)[0],g=cM(o),x=h,T=Do(f,p);for(;T-x>g;){let S=cd(f);S=$a(S,{space:s,method:"clip"}),d(f,S)-o<g?x=Do(f,p):T=Do(f,p),Jn(f,p,(x+T)/2)}i=qs(f,s)}else i=l}else i=qs(e,s);if(t==="clip"||!yi(i,s,{epsilon:0})){let d=Object.values(s.coords).map(l=>l.range||[]);i.coords=i.coords.map((l,c)=>{let[_,p]=d[c];return _!==void 0&&(l=Math.max(_,l)),p!==void 0&&(l=Math.min(l,p)),l})}}return s!==e.space&&(i=qs(i,e.space)),e.coords=i.coords,e}$a.returns="color";var bg={WHITE:{space:ld,coords:[1,0,0]},BLACK:{space:ld,coords:[0,0,0]}};function uM(e,{space:t}={}){e=Bt(e),t||(t=e.space),t=_t.get(t);let o=_t.get("oklch");if(t.isUnbounded)return qs(e,t);let n=qs(e,o),i=n.coords[0];if(i>=1){let g=qs(bg.WHITE,t);return g.alpha=e.alpha,qs(g,t)}if(i<=0){let g=qs(bg.BLACK,t);return g.alpha=e.alpha,qs(g,t)}if(yi(n,t,{epsilon:0}))return qs(n,t);function d(g){let x=qs(g,t),T=Object.values(t.coords);return x.coords=x.coords.map((S,A)=>{if("range"in T[A]){let[E,M]=T[A].range;return sx(E,S,M)}return S}),x}let l=0,c=n.coords[1],_=!0,p=cd(n),f=d(p),h=P1(f,p);if(h<.02)return f;for(;c-l>1e-4;){let g=(l+c)/2;if(p.coords[1]=g,_&&yi(p,t,{epsilon:0}))l=g;else if(f=d(p),h=P1(f,p),h<.02){if(.02-h<1e-4)break;_=!1,l=g}else c=g}return f}function qs(e,t,{inGamut:s}={}){e=Bt(e),t=_t.get(t);let r=t.from(e),o={space:t,coords:r,alpha:e.alpha};return s&&(o=$a(o,s===!0?void 0:s)),o}qs.returns="color";function Pl(e,{precision:t=Fo.precision,format:s="default",inGamut:r=!0,...o}={}){let n;e=Bt(e);let i=s;s=e.space.getFormat(s)??e.space.getFormat("default")??_t.DEFAULT_FORMAT;let d=e.coords.slice();if(r||=s.toGamut,r&&!yi(e)&&(d=$a(cd(e),r===!0?void 0:r).coords),s.type==="custom")if(o.precision=t,s.serialize)n=s.serialize(d,e.alpha,o);else throw new TypeError(`format ${i} can only be used to parse colors, not for serialization`);else{let l=s.name||"color";s.serializeCoords?d=s.serializeCoords(d,t):t!==null&&(d=d.map(f=>e_(f,{precision:t})));let c=[...d];if(l==="color"){let f=s.id||s.ids?.[0]||e.space.id;c.unshift(f)}let _=e.alpha;t!==null&&(_=e_(_,{precision:t}));let p=e.alpha>=1||s.noAlpha?"":`${s.commas?",":" /"} ${_}`;n=`${l}(${c.join(s.commas?", ":" ")}${p})`}return n}var n_=new bo({id:"rec2020-linear",cssId:"--rec2020-linear",name:"Linear REC.2020",white:"D65",toXYZ_M:[[.6369580483012914,.14461690358620832,.1688809751641721],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],fromXYZ_M:[[1.716651187971268,-.355670783776392,-.25336628137366],[-.666684351832489,1.616481236634939,.0157685458139111],[.017639857445311,-.042770613257809,.942103121235474]]}),ju=1.09929682680944,wg=.018053968510807,hx=new bo({id:"rec2020",name:"REC.2020",base:n_,toBase(e){return e.map(function(t){return t<wg*4.5?t/4.5:Math.pow((t+ju-1)/ju,1/.45)})},fromBase(e){return e.map(function(t){return t>=wg?ju*Math.pow(t,.45)-(ju-1):4.5*t})}}),yx=new bo({id:"p3-linear",cssId:"--display-p3-linear",name:"Linear P3",white:"D65",toXYZ_M:[[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],fromXYZ_M:[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]]}),_M=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],gr=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],gx=new bo({id:"srgb-linear",name:"Linear sRGB",white:"D65",toXYZ_M:_M,fromXYZ_M:gr}),Tg={aliceblue:[240/255,248/255,1],antiquewhite:[250/255,235/255,215/255],aqua:[0,1,1],aquamarine:[127/255,1,212/255],azure:[240/255,1,1],beige:[245/255,245/255,220/255],bisque:[1,228/255,196/255],black:[0,0,0],blanchedalmond:[1,235/255,205/255],blue:[0,0,1],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,1,0],chocolate:[210/255,105/255,30/255],coral:[1,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[1,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0,1,1],darkblue:[0,0,139/255],darkcyan:[0,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0,100/255,0],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[1,140/255,0],darkorchid:[153/255,50/255,204/255],darkred:[139/255,0,0],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0,206/255,209/255],darkviolet:[148/255,0,211/255],deeppink:[1,20/255,147/255],deepskyblue:[0,191/255,1],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,1],firebrick:[178/255,34/255,34/255],floralwhite:[1,250/255,240/255],forestgreen:[34/255,139/255,34/255],fuchsia:[1,0,1],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,1],gold:[1,215/255,0],goldenrod:[218/255,165/255,32/255],gray:[128/255,128/255,128/255],green:[0,128/255,0],greenyellow:[173/255,1,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,1,240/255],hotpink:[1,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0,130/255],ivory:[1,1,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[1,240/255,245/255],lawngreen:[124/255,252/255,0],lemonchiffon:[1,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,1,1],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[1,182/255,193/255],lightsalmon:[1,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,153/255],lightslategrey:[119/255,136/255,153/255],lightsteelblue:[176/255,196/255,222/255],lightyellow:[1,1,224/255],lime:[0,1,0],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[1,0,1],maroon:[128/255,0,0],mediumaquamarine:[102/255,205/255,170/255],mediumblue:[0,0,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0,250/255,154/255],mediumturquoise:[72/255,209/255,204/255],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,1,250/255],mistyrose:[1,228/255,225/255],moccasin:[1,228/255,181/255],navajowhite:[1,222/255,173/255],navy:[0,0,128/255],oldlace:[253/255,245/255,230/255],olive:[128/255,128/255,0],olivedrab:[107/255,142/255,35/255],orange:[1,165/255,0],orangered:[1,69/255,0],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[1,239/255,213/255],peachpuff:[1,218/255,185/255],peru:[205/255,133/255,63/255],pink:[1,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],purple:[128/255,0,128/255],rebeccapurple:[102/255,51/255,153/255],red:[1,0,0],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[1,245/255,238/255],sienna:[160/255,82/255,45/255],silver:[192/255,192/255,192/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[1,250/255,250/255],springgreen:[0,1,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],teal:[0,128/255,128/255],thistle:[216/255,191/255,216/255],tomato:[1,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],white:[1,1,1],whitesmoke:[245/255,245/255,245/255],yellow:[1,1,0],yellowgreen:[154/255,205/255,50/255]},Sg=Array(3).fill("<percentage> | <number>[0, 255]"),Ag=Array(3).fill("<number>[0, 255]"),_d=new bo({id:"srgb",name:"sRGB",base:gx,fromBase:e=>e.map(t=>{let s=t<0?-1:1,r=t*s;return r>.0031308?s*(1.055*r**(1/2.4)-.055):12.92*t}),toBase:e=>e.map(t=>{let s=t<0?-1:1,r=t*s;return r<=.04045?t/12.92:s*((r+.055)/1.055)**2.4}),formats:{rgb:{coords:Sg},rgb_number:{name:"rgb",commas:!0,coords:Ag,noAlpha:!0},color:{},rgba:{coords:Sg,commas:!0,lastAlpha:!0},rgba_number:{name:"rgba",commas:!0,coords:Ag},hex:{type:"custom",toGamut:!0,test:e=>/^#([a-f0-9]{3,4}){1,2}$/i.test(e),parse(e){e.length<=5&&(e=e.replace(/[a-f0-9]/gi,"$&$&"));let t=[];return e.replace(/[a-f0-9]{2}/gi,s=>{t.push(parseInt(s,16)/255)}),{spaceId:"srgb",coords:t.slice(0,3),alpha:t.slice(3)[0]}},serialize:(e,t,{collapse:s=!0}={})=>{t<1&&e.push(t),e=e.map(o=>Math.round(o*255));let r=s&&e.every(o=>o%17===0);return"#"+e.map(o=>r?(o/17).toString(16):o.toString(16).padStart(2,"0")).join("")}},keyword:{type:"custom",test:e=>/^[a-z]+$/i.test(e),parse(e){e=e.toLowerCase();let t={spaceId:"srgb",coords:null,alpha:1};if(e==="transparent"?(t.coords=Tg.black,t.alpha=0):t.coords=Tg[e],t.coords)return t}}}}),xx=new bo({id:"p3",cssId:"display-p3",name:"P3",base:yx,fromBase:_d.fromBase,toBase:_d.toBase});Fo.display_space=_d;var pM;if(typeof CSS<"u"&&CSS.supports)for(let e of[Lo,hx,xx]){let t=Pl({space:e,coords:e.getMinCoords(),alpha:1});if(CSS.supports("color",t)){Fo.display_space=e;break}}function mM(e,{space:t=Fo.display_space,...s}={}){let r=Pl(e,s);if(typeof CSS>"u"||CSS.supports("color",r)||!Fo.display_space)r=new String(r),r.color=e;else{let o=e;if((e.coords.some(Ma)||Ma(e.alpha))&&!(pM??=CSS.supports("color","hsl(none 50% 50%)"))&&(o=cd(e),o.coords=o.coords.map(_r),o.alpha=_r(o.alpha),r=Pl(o,s),CSS.supports("color",r)))return r=new String(r),r.color=o,r;o=qs(o,t),r=new String(Pl(o,s)),r.color=o}return r}function fM(e,t){return e=Bt(e),t=Bt(t),e.space===t.space&&e.alpha===t.alpha&&e.coords.every((s,r)=>s===t.coords[r])}function Ca(e){return Do(e,[Or,"y"])}function bx(e,t){Jn(e,[Or,"y"],t)}function vM(e){Object.defineProperty(e.prototype,"luminance",{get(){return Ca(this)},set(t){bx(this,t)}})}var hM=Object.freeze({__proto__:null,getLuminance:Ca,register:vM,setLuminance:bx});function yM(e,t){e=Bt(e),t=Bt(t);let s=Math.max(Ca(e),0),r=Math.max(Ca(t),0);return r>s&&([s,r]=[r,s]),(s+.05)/(r+.05)}var gM=.56,xM=.57,bM=.62,wM=.65,Eg=.022,TM=1.414,SM=.1,AM=5e-4,EM=1.14,Pg=.027,PM=1.14;function Mg(e){return e>=Eg?e:e+(Eg-e)**TM}function ad(e){let t=e<0?-1:1,s=Math.abs(e);return t*Math.pow(s,2.4)}function MM(e,t){t=Bt(t),e=Bt(e);let s,r,o,n,i,d;t=qs(t,"srgb"),[n,i,d]=t.coords;let l=ad(n)*.2126729+ad(i)*.7151522+ad(d)*.072175;e=qs(e,"srgb"),[n,i,d]=e.coords;let c=ad(n)*.2126729+ad(i)*.7151522+ad(d)*.072175,_=Mg(l),p=Mg(c),f=p>_;return Math.abs(p-_)<AM?r=0:f?(s=p**gM-_**xM,r=s*EM):(s=p**wM-_**bM,r=s*PM),Math.abs(r)<SM?o=0:r>0?o=r-Pg:o=r+Pg,o*100}function kM(e,t){e=Bt(e),t=Bt(t);let s=Math.max(Ca(e),0),r=Math.max(Ca(t),0);r>s&&([s,r]=[r,s]);let o=s+r;return o===0?0:(s-r)/o}var $M=5e4;function CM(e,t){e=Bt(e),t=Bt(t);let s=Math.max(Ca(e),0),r=Math.max(Ca(t),0);return r>s&&([s,r]=[r,s]),r===0?$M:(s-r)/r}function RM(e,t){e=Bt(e),t=Bt(t);let s=Do(e,[Lo,"l"]),r=Do(t,[Lo,"l"]);return Math.abs(s-r)}var UM=216/24389,kg=24/116,Ku=24389/27,g1=ao.D65,R1=new _t({id:"lab-d65",name:"Lab D65",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:g1,base:Or,fromBase(e){let t=e.map((s,r)=>s/g1[r]).map(s=>s>UM?Math.cbrt(s):(Ku*s+16)/116);return[116*t[1]-16,500*(t[0]-t[1]),200*(t[1]-t[2])]},toBase(e){let t=[];return t[1]=(e[0]+16)/116,t[0]=e[1]/500+t[1],t[2]=t[1]-e[2]/200,[t[0]>kg?Math.pow(t[0],3):(116*t[0]-16)/Ku,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/Ku,t[2]>kg?Math.pow(t[2],3):(116*t[2]-16)/Ku].map((s,r)=>s*g1[r])},formats:{"lab-d65":{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),x1=Math.pow(5,.5)*.5+.5;function zM(e,t){e=Bt(e),t=Bt(t);let s=Do(e,[R1,"l"]),r=Do(t,[R1,"l"]),o=Math.abs(Math.pow(s,x1)-Math.pow(r,x1)),n=Math.pow(o,1/x1)*Math.SQRT2-40;return n<7.5?0:n}var Ju=Object.freeze({__proto__:null,contrastAPCA:MM,contrastDeltaPhi:zM,contrastLstar:RM,contrastMichelson:kM,contrastWCAG21:yM,contrastWeber:CM});function GM(e,t,s={}){Cl(s)&&(s={algorithm:s});let{algorithm:r,...o}=s;if(!r){let n=Object.keys(Ju).map(i=>i.replace(/^contrast/,"")).join(", ");throw new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${n}`)}e=Bt(e),t=Bt(t);for(let n in Ju)if("contrast"+r.toLowerCase()===n.toLowerCase())return Ju[n](e,t,o);throw new TypeError(`Unknown contrast algorithm: ${r}`)}function a_(e){let[t,s,r]=Rl(e,Or),o=t+15*s+3*r;return[4*t/o,9*s/o]}function wx(e){let[t,s,r]=Rl(e,Or),o=t+s+r;return[t/o,s/o]}function DM(e){Object.defineProperty(e.prototype,"uv",{get(){return a_(this)}}),Object.defineProperty(e.prototype,"xy",{get(){return wx(this)}})}var LM=Object.freeze({__proto__:null,register:DM,uv:a_,xy:wx});function El(e,t,s={}){Cl(s)&&(s={method:s});let{method:r=Fo.deltaE,...o}=s;for(let n in ud)if("deltae"+r.toLowerCase()===n.toLowerCase())return ud[n](e,t,o);throw new TypeError(`Unknown deltaE method: ${r}`)}function FM(e,t=.25){return Jn(e,[_t.get("oklch","lch"),"l"],s=>s*(1+t))}function BM(e,t=.25){return Jn(e,[_t.get("oklch","lch"),"l"],s=>s*(1-t))}var IM=Object.freeze({__proto__:null,darken:BM,lighten:FM});function Tx(e,t,s=.5,r={}){return[e,t]=[Bt(e),Bt(t)],Pa(s)==="object"&&([s,r]=[.5,s]),Ul(e,t,r)(s)}function Sx(e,t,s={}){let r;I1(e)&&([r,s]=[e,t],[e,t]=r.rangeArgs.colors);let{maxDeltaE:o,deltaEMethod:n,steps:i=2,maxSteps:d=1e3,...l}=s;r||([e,t]=[Bt(e),Bt(t)],r=Ul(e,t,l));let c=El(e,t),_=o>0?Math.max(i,Math.ceil(c/o)+1):i,p=[];if(d!==void 0&&(_=Math.min(_,d)),_===1)p=[{p:.5,color:r(.5)}];else{let f=1/(_-1);p=Array.from({length:_},(h,g)=>{let x=g*f;return{p:x,color:r(x)}})}if(o>0){let f=p.reduce((h,g,x)=>{if(x===0)return 0;let T=El(g.color,p[x-1].color,n);return Math.max(h,T)},0);for(;f>o;){f=0;for(let h=1;h<p.length&&p.length<d;h++){let g=p[h-1],x=p[h],T=(x.p+g.p)/2,S=r(T);f=Math.max(f,El(S,g.color),El(S,x.color)),p.splice(h,0,{p:T,color:r(T)}),h++}}}return p=p.map(f=>f.color),p}function Ul(e,t,s={}){if(I1(e)){let[l,c]=[e,t];return Ul(...l.rangeArgs.colors,{...l.rangeArgs.options,...c})}let{space:r,outputSpace:o,progression:n,premultiplied:i}=s;e=Bt(e),t=Bt(t),e=cd(e),t=cd(t);let d={colors:[e,t],options:s};if(r?r=_t.get(r):r=_t.registry[Fo.interpolationSpace]||e.space,o=o?_t.get(o):r,e=qs(e,r),t=qs(t,r),e=$a(e),t=$a(t),r.coords.h&&r.coords.h.type==="angle"){let l=s.hue=s.hue||"shorter",c=[r,"h"],[_,p]=[Do(e,c),Do(t,c)];isNaN(_)&&!isNaN(p)?_=p:isNaN(p)&&!isNaN(_)&&(p=_),[_,p]=SP(l,[_,p]),Jn(e,c,_),Jn(t,c,p)}return i&&(e.coords=e.coords.map(l=>l*e.alpha),t.coords=t.coords.map(l=>l*t.alpha)),Object.assign(l=>{l=n?n(l):l;let c=e.coords.map((f,h)=>{let g=t.coords[h];return Ml(f,g,l)}),_=Ml(e.alpha,t.alpha,l),p={space:r,coords:c,alpha:_};return i&&(p.coords=p.coords.map(f=>f/_)),o!==r&&(p=qs(p,o)),p},{rangeArgs:d})}function I1(e){return Pa(e)==="function"&&!!e.rangeArgs}Fo.interpolationSpace="lab";function YM(e){e.defineFunction("mix",Tx,{returns:"color"}),e.defineFunction("range",Ul,{returns:"function<color>"}),e.defineFunction("steps",Sx,{returns:"array<color>"})}var WM=Object.freeze({__proto__:null,isRange:I1,mix:Tx,range:Ul,register:YM,steps:Sx}),Ax=new _t({id:"hsl",name:"HSL",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:_d,fromBase:e=>{let t=Math.max(...e),s=Math.min(...e),[r,o,n]=e,[i,d,l]=[NaN,0,(s+t)/2],c=t-s;if(c!==0){switch(d=l===0||l===1?0:(t-l)/Math.min(l,1-l),t){case r:i=(o-n)/c+(o<n?6:0);break;case o:i=(n-r)/c+2;break;case n:i=(r-o)/c+4}i=i*60}return d<0&&(i+=180,d=Math.abs(d)),i>=360&&(i-=360),[i,d*100,l*100]},toBase:e=>{let[t,s,r]=e;t=t%360,t<0&&(t+=360),s/=100,r/=100;function o(n){let i=(n+t/30)%12,d=s*Math.min(r,1-r);return r-d*Math.max(-1,Math.min(i-3,9-i,1))}return[o(0),o(8),o(4)]},formats:{hsl:{coords:["<number> | <angle>","<percentage>","<percentage>"]},hsla:{coords:["<number> | <angle>","<percentage>","<percentage>"],commas:!0,lastAlpha:!0}}}),Ex=new _t({id:"hsv",name:"HSV",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},v:{range:[0,100],name:"Value"}},base:Ax,fromBase(e){let[t,s,r]=e;s/=100,r/=100;let o=r+s*Math.min(r,1-r);return[t,o===0?0:200*(1-r/o),100*o]},toBase(e){let[t,s,r]=e;s/=100,r/=100;let o=r*(1-s/2);return[t,o===0||o===1?0:(r-o)/Math.min(o,1-o)*100,o*100]},formats:{color:{id:"--hsv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),OM=new _t({id:"hwb",name:"HWB",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},w:{range:[0,100],name:"Whiteness"},b:{range:[0,100],name:"Blackness"}},base:Ex,fromBase(e){let[t,s,r]=e;return[t,r*(100-s)/100,100-r]},toBase(e){let[t,s,r]=e;s/=100,r/=100;let o=s+r;if(o>=1)return[t,0,s/o*100];let n=1-r;return[t,(n===0?0:1-s/n)*100,n*100]},formats:{hwb:{coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),Px=new bo({id:"a98rgb-linear",cssId:"--a98-rgb-linear",name:"Linear Adobe\xAE 98 RGB compatible",white:"D65",toXYZ_M:[[.5766690429101305,.1855582379065463,.1882286462349947],[.29734497525053605,.6273635662554661,.07529145849399788],[.02703136138641234,.07068885253582723,.9913375368376388]],fromXYZ_M:[[2.0415879038107465,-.5650069742788596,-.34473135077832956],[-.9692436362808795,1.8759675015077202,.04155505740717557],[.013444280632031142,-.11836239223101838,1.0151749943912054]]}),VM=new bo({id:"a98rgb",cssId:"a98-rgb",name:"Adobe\xAE 98 RGB compatible",base:Px,toBase:e=>e.map(t=>Math.pow(Math.abs(t),563/256)*Math.sign(t)),fromBase:e=>e.map(t=>Math.pow(Math.abs(t),256/563)*Math.sign(t))}),Mx=new bo({id:"prophoto-linear",cssId:"--prophoto-rgb-linear",name:"Linear ProPhoto",white:"D50",base:L1,toXYZ_M:[[.7977666449006423,.13518129740053308,.0313477341283922],[.2880748288194013,.711835234241873,8993693872564e-17],[0,0,.8251046025104602]],fromXYZ_M:[[1.3457868816471583,-.25557208737979464,-.05110186497554526],[-.5446307051249019,1.5082477428451468,.02052744743642139],[0,0,1.2119675456389452]]}),NM=1/512,qM=16/512,XM=new bo({id:"prophoto",cssId:"prophoto-rgb",name:"ProPhoto",base:Mx,toBase(e){return e.map(t=>t<qM?t/16:t**1.8)},fromBase(e){return e.map(t=>t>=NM?t**(1/1.8):16*t)}}),HM=new _t({id:"oklch",name:"Oklch",coords:{l:{refRange:[0,1],name:"Lightness"},c:{refRange:[0,.4],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},white:"D65",base:ld,fromBase(e){let[t,s,r]=e,o,n=2e-4;return Math.abs(s)<n&&Math.abs(r)<n?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),zn(o)]},toBase(e){let[t,s,r]=e,o,n;return isNaN(r)?(o=0,n=0):(o=s*Math.cos(r*Math.PI/180),n=s*Math.sin(r*Math.PI/180)),[t,o,n]},formats:{oklch:{coords:["<percentage> | <number>","<number> | <percentage>[0,1]","<number> | <angle>"]}}}),kx=ao.D65,jM=216/24389,$g=24389/27,[Cg,Rg]=a_({space:Or,coords:kx}),$x=new _t({id:"luv",name:"Luv",coords:{l:{refRange:[0,100],name:"Lightness"},u:{refRange:[-215,215]},v:{refRange:[-215,215]}},white:kx,base:Or,fromBase(e){let t=[_r(e[0]),_r(e[1]),_r(e[2])],s=t[1],[r,o]=a_({space:Or,coords:t});if(!Number.isFinite(r)||!Number.isFinite(o))return[0,0,0];let n=s<=jM?$g*s:116*Math.cbrt(s)-16;return[n,13*n*(r-Cg),13*n*(o-Rg)]},toBase(e){let[t,s,r]=e;if(t===0||Ma(t))return[0,0,0];s=_r(s),r=_r(r);let o=s/(13*t)+Cg,n=r/(13*t)+Rg,i=t<=8?t/$g:Math.pow((t+16)/116,3);return[i*(9*o/(4*n)),i,i*((12-3*o-20*n)/(4*n))]},formats:{color:{id:"--luv",coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),Y1=new _t({id:"lchuv",name:"LChuv",coords:{l:{refRange:[0,100],name:"Lightness"},c:{refRange:[0,220],name:"Chroma"},h:{refRange:[0,360],type:"angle",name:"Hue"}},base:$x,fromBase(e){let[t,s,r]=e,o,n=.02;return Math.abs(s)<n&&Math.abs(r)<n?o=NaN:o=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),zn(o)]},toBase(e){let[t,s,r]=e;return s<0&&(s=0),isNaN(r)&&(r=0),[t,s*Math.cos(r*Math.PI/180),s*Math.sin(r*Math.PI/180)]},formats:{color:{id:"--lchuv",coords:["<number> | <percentage>","<number> | <percentage>","<number> | <angle>"]}}}),KM=216/24389,ZM=24389/27,Ug=gr[0][0],zg=gr[0][1],b1=gr[0][2],Gg=gr[1][0],Dg=gr[1][1],w1=gr[1][2],Lg=gr[2][0],Fg=gr[2][1],T1=gr[2][2];function id(e,t,s){let r=t/(Math.sin(s)-e*Math.cos(s));return r<0?1/0:r}function r_(e){let t=Math.pow(e+16,3)/1560896,s=t>KM?t:e/ZM,r=s*(284517*Ug-94839*b1),o=s*(838422*b1+769860*zg+731718*Ug),n=s*(632260*b1-126452*zg),i=s*(284517*Gg-94839*w1),d=s*(838422*w1+769860*Dg+731718*Gg),l=s*(632260*w1-126452*Dg),c=s*(284517*Lg-94839*T1),_=s*(838422*T1+769860*Fg+731718*Lg),p=s*(632260*T1-126452*Fg);return{r0s:r/n,r0i:o*e/n,r1s:r/(n+126452),r1i:(o-769860)*e/(n+126452),g0s:i/l,g0i:d*e/l,g1s:i/(l+126452),g1i:(d-769860)*e/(l+126452),b0s:c/p,b0i:_*e/p,b1s:c/(p+126452),b1i:(_-769860)*e/(p+126452)}}function Bg(e,t){let s=t/360*Math.PI*2,r=id(e.r0s,e.r0i,s),o=id(e.r1s,e.r1i,s),n=id(e.g0s,e.g0i,s),i=id(e.g1s,e.g1i,s),d=id(e.b0s,e.b0i,s),l=id(e.b1s,e.b1i,s);return Math.min(r,o,n,i,d,l)}var QM=new _t({id:"hsluv",name:"HSLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:Y1,gamutSpace:_d,fromBase(e){let[t,s,r]=[_r(e[0]),_r(e[1]),_r(e[2])],o;return t>99.9999999?(o=0,t=100):t<1e-8?(o=0,t=0):o=s/Bg(r_(t),r)*100,[r,o,t]},toBase(e){let[t,s,r]=[_r(e[0]),_r(e[1]),_r(e[2])],o;return r>99.9999999?(r=100,o=0):r<1e-8?(r=0,o=0):o=Bg(r_(r),t)/100*s,[r,o,t]},formats:{color:{id:"--hsluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}});gr[0][0];gr[0][1];gr[0][2];gr[1][0];gr[1][1];gr[1][2];gr[2][0];gr[2][1];gr[2][2];function dd(e,t){return Math.abs(t)/Math.sqrt(Math.pow(e,2)+1)}function Ig(e){let t=dd(e.r0s,e.r0i),s=dd(e.r1s,e.r1i),r=dd(e.g0s,e.g0i),o=dd(e.g1s,e.g1i),n=dd(e.b0s,e.b0i),i=dd(e.b1s,e.b1i);return Math.min(t,s,r,o,n,i)}var JM=new _t({id:"hpluv",name:"HPLuv",coords:{h:{refRange:[0,360],type:"angle",name:"Hue"},s:{range:[0,100],name:"Saturation"},l:{range:[0,100],name:"Lightness"}},base:Y1,gamutSpace:"self",fromBase(e){let[t,s,r]=[_r(e[0]),_r(e[1]),_r(e[2])],o;return t>99.9999999?(o=0,t=100):t<1e-8?(o=0,t=0):o=s/Ig(r_(t))*100,[r,o,t]},toBase(e){let[t,s,r]=[_r(e[0]),_r(e[1]),_r(e[2])],o;return r>99.9999999?(r=100,o=0):r<1e-8?(r=0,o=0):o=Ig(r_(r))/100*s,[r,o,t]},formats:{color:{id:"--hpluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),Yg=203,Wg=2610/2**14,ek=2**14/2610,tk=2523/2**5,Og=2**5/2523,Vg=3424/2**12,Ng=2413/2**7,qg=2392/2**7,sk=new bo({id:"rec2100pq",cssId:"rec2100-pq",name:"REC.2100-PQ",base:n_,toBase(e){return e.map(function(t){return(Math.max(t**Og-Vg,0)/(Ng-qg*t**Og))**ek*1e4/Yg})},fromBase(e){return e.map(function(t){let s=Math.max(t*Yg/1e4,0);return((Vg+Ng*s**Wg)/(1+qg*s**Wg))**tk})}}),Xg=.17883277,Hg=.28466892,jg=.55991073,S1=3.7743,rk=new bo({id:"rec2100hlg",cssId:"rec2100-hlg",name:"REC.2100-HLG",referred:"scene",base:n_,toBase(e){return e.map(function(t){return t<=.5?t**2/3*S1:(Math.exp((t-jg)/Xg)+Hg)/12*S1})},fromBase(e){return e.map(function(t){return t/=S1,t<=1/12?Math.sqrt(3*t):Xg*Math.log(12*t-Hg)+jg})}}),Cx={};ka.add("chromatic-adaptation-start",e=>{e.options.method&&(e.M=Rx(e.W1,e.W2,e.options.method))});ka.add("chromatic-adaptation-end",e=>{e.M||(e.M=Rx(e.W1,e.W2,e.options.method))});function i_({id:e,toCone_M:t,fromCone_M:s}){Cx[e]=arguments[0]}function Rx(e,t,s="Bradford"){let r=Cx[s],[o,n,i]=Xs(r.toCone_M,e),[d,l,c]=Xs(r.toCone_M,t),_=Xs([[d/o,0,0],[0,l/n,0],[0,0,c/i]],r.toCone_M);return Xs(r.fromCone_M,_)}i_({id:"von Kries",toCone_M:[[.40024,.7076,-.08081],[-.2263,1.16532,.0457],[0,0,.91822]],fromCone_M:[[1.8599363874558397,-1.1293816185800916,.21989740959619328],[.3611914362417676,.6388124632850422,-6370596838649899e-21],[0,0,1.0890636230968613]]});i_({id:"Bradford",toCone_M:[[.8951,.2664,-.1614],[-.7502,1.7135,.0367],[.0389,-.0685,1.0296]],fromCone_M:[[.9869929054667121,-.14705425642099013,.15996265166373122],[.4323052697233945,.5183602715367774,.049291228212855594],[-.00852866457517732,.04004282165408486,.96848669578755]]});i_({id:"CAT02",toCone_M:[[.7328,.4296,-.1624],[-.7036,1.6975,.0061],[.003,.0136,.9834]],fromCone_M:[[1.0961238208355142,-.27886900021828726,.18274517938277307],[.4543690419753592,.4735331543074117,.07209780371722911],[-.009627608738429355,-.00569803121611342,1.0153256399545427]]});i_({id:"CAT16",toCone_M:[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],fromCone_M:[[1.862067855087233,-1.0112546305316845,.14918677544445172],[.3875265432361372,.6214474419314753,-.008973985167612521],[-.01584149884933386,-.03412293802851557,1.0499644368778496]]});Object.assign(ao,{A:[1.0985,1,.35585],C:[.98074,1,1.18232],D55:[.95682,1,.92149],D75:[.94972,1,1.22638],E:[1,1,1],F2:[.99186,1,.67393],F7:[.95041,1,1.08747],F11:[1.00962,1,.6435]});ao.ACES=[.32168/.33767,1,.34065/.33767];var Ux=new bo({id:"acescg",cssId:"--acescg",name:"ACEScg",coords:{r:{range:[0,65504],name:"Red"},g:{range:[0,65504],name:"Green"},b:{range:[0,65504],name:"Blue"}},referred:"scene",white:ao.ACES,toXYZ_M:[[.6624541811085053,.13400420645643313,.1561876870049078],[.27222871678091454,.6740817658111484,.05368951740793705],[-.005574649490394108,.004060733528982826,1.0103391003129971]],fromXYZ_M:[[1.6410233796943257,-.32480329418479,-.23642469523761225],[-.6636628587229829,1.6153315916573379,.016756347685530137],[.011721894328375376,-.008284441996237409,.9883948585390215]]}),Zu=2**-16,A1=-.35828683,Qu=(Math.log2(65504)+9.72)/17.52,ok=new bo({id:"acescc",cssId:"--acescc",name:"ACEScc",coords:{r:{range:[A1,Qu],name:"Red"},g:{range:[A1,Qu],name:"Green"},b:{range:[A1,Qu],name:"Blue"}},referred:"scene",base:Ux,toBase(e){let t=-.3013698630136986;return e.map(function(s){return s<=t?(2**(s*17.52-9.72)-Zu)*2:s<Qu?2**(s*17.52-9.72):65504})},fromBase(e){return e.map(function(t){return t<=0?(Math.log2(Zu)+9.72)/17.52:t<Zu?(Math.log2(Zu+t*.5)+9.72)/17.52:(Math.log2(t)+9.72)/17.52})}}),Kg=Object.freeze({__proto__:null,A98RGB:VM,A98RGB_Linear:Px,ACEScc:ok,ACEScg:Ux,CAM16_JMh:sM,HCT:$l,HPLuv:JM,HSL:Ax,HSLuv:QM,HSV:Ex,HWB:OM,ICTCP:k1,JzCzHz:M1,Jzazbz:ix,LCH:kl,LCHuv:Y1,Lab:Lo,Lab_D65:R1,Luv:$x,OKLCH:HM,OKLab:ld,P3:xx,P3_Linear:yx,ProPhoto:XM,ProPhoto_Linear:Mx,REC_2020:hx,REC_2020_Linear:n_,REC_2100_HLG:rk,REC_2100_PQ:sk,XYZ_ABS_D65:F1,XYZ_D50:L1,XYZ_D65:Or,sRGB:_d,sRGB_Linear:gx}),io=class xo{constructor(...t){let s;t.length===1&&(s=Bt(t[0]));let r,o,n;s?(r=s.space||s.spaceId,o=s.coords,n=s.alpha):[r,o,n]=t,Object.defineProperty(this,"space",{value:_t.get(r),writable:!1,enumerable:!0,configurable:!0}),this.coords=o?o.slice():[0,0,0],this.alpha=n>1||n===void 0?1:n<0?0:n;for(let i=0;i<this.coords.length;i++)this.coords[i]==="NaN"&&(this.coords[i]=NaN);for(let i in this.space.coords)Object.defineProperty(this,i,{get:()=>this.get(i),set:d=>this.set(i,d)})}get spaceId(){return this.space.id}clone(){return new xo(this.space,this.coords,this.alpha)}toJSON(){return{spaceId:this.spaceId,coords:this.coords,alpha:this.alpha}}display(...t){let s=mM(this,...t);return s.color=new xo(s.color),s}static get(t,...s){return t instanceof xo?t:new xo(t,...s)}static defineFunction(t,s,r=s){let{instance:o=!0,returns:n}=r,i=function(...d){let l=s(...d);if(n==="color")l=xo.get(l);else if(n==="function<color>"){let c=l;l=function(..._){let p=c(..._);return xo.get(p)},Object.assign(l,c)}else n==="array<color>"&&(l=l.map(c=>xo.get(c)));return l};t in xo||(xo[t]=i),o&&(xo.prototype[t]=function(...d){return i(this,...d)})}static defineFunctions(t){for(let s in t)xo.defineFunction(s,t[s],t[s])}static extend(t){if(t.register)t.register(xo);else for(let s in t)xo.defineFunction(s,t[s])}};io.defineFunctions({get:Do,getAll:Rl,set:Jn,setAll:D1,to:qs,equals:fM,inGamut:yi,toGamut:$a,distance:ax,toString:Pl});Object.assign(io,{util:yP,hooks:ka,WHITES:ao,Space:_t,spaces:_t.registry,parse:ox,defaults:Fo});for(let e of Object.keys(Kg))_t.register(Kg[e]);for(let e in _t.registry)U1(e,_t.registry[e]);ka.add("colorspace-init-end",e=>{U1(e.id,e),e.aliases?.forEach(t=>{U1(t,e)})});function U1(e,t){let s=e.replace(/-/g,"_");Object.defineProperty(io.prototype,s,{get(){let r=this.getAll(e);return typeof Proxy>"u"?r:new Proxy(r,{has:(o,n)=>{try{return _t.resolveCoord([t,n]),!0}catch{}return Reflect.has(o,n)},get:(o,n,i)=>{if(n&&typeof n!="symbol"&&!(n in o)){let{index:d}=_t.resolveCoord([t,n]);if(d>=0)return o[d]}return Reflect.get(o,n,i)},set:(o,n,i,d)=>{if(n&&typeof n!="symbol"&&!(n in o)||n>=0){let{index:l}=_t.resolveCoord([t,n]);if(l>=0)return o[l]=i,this.setAll(e,o),!0}return Reflect.set(o,n,i,d)}})},set(r){this.setAll(e,r)},configurable:!0,enumerable:!0})}io.extend(ud);io.extend({deltaE:El});Object.assign(io,{deltaEMethods:ud});io.extend(IM);io.extend({contrast:GM});io.extend(LM);io.extend(hM);io.extend(WM);io.extend(Ju);var zx="p3-linear",Gx=e=>{zx=e},Dx=e=>e?1:-1;function nk(e){try{let t=new io(e),s=zx==="srgb"?"srgb-linear":"p3-linear",r=t.to(s).coords,o=Number(t.alpha);return{r:Number.isFinite(r?.[0])?r[0]:0,g:Number.isFinite(r?.[1])?r[1]:0,b:Number.isFinite(r?.[2])?r[2]:0,a:Number.isFinite(o)?o:1}}catch{return{r:0,g:0,b:0,a:0}}}var ke=e=>nk(e),ct=e=>{let t=.5,s=.5,r=(n,i=!1)=>{if(typeof n=="number")return n;if(typeof n=="object"&&n!==null)return n.value;let d=n.toLowerCase().trim();if(i){if(d==="top")return 0;if(d==="bottom")return 1;if(d==="center")return .5}else{if(d==="left")return 0;if(d==="right")return 1;if(d==="center")return .5}return console.warn(`Invalid position value: ${n}. Defaulting to center.`),.5};if(typeof e=="string"){let n=e.toLowerCase().trim().split(/\s+/);n.includes("left")?t=0:n.includes("right")?t=1:(n.includes("center")||n.length===1&&(n[0]==="top"||n[0]==="bottom"))&&(t=.5),n.includes("top")?s=0:n.includes("bottom")?s=1:(n.includes("center")||n.length===1&&(n[0]==="left"||n[0]==="right"))&&(s=.5),n.length===1&&n[0]==="center"&&(t=.5,s=.5)}else typeof e=="object"&&e!==null?(t=r(e.x,!1),s=r(e.y,!0)):console.warn(`Invalid position value provided: ${e}. Defaulting to center.`);let o=1-s;return{x:t,y:o}},Ra=e=>{if(typeof e=="number")return(e%360+360)%360;let t=e.toLowerCase().trim();switch(t){case"to right":return 0;case"to bottom":return 90;case"to left":return 180;case"to top":return 270;case"to bottom right":case"to right bottom":return 45;case"to bottom left":case"to left bottom":return 135;case"to top left":case"to left top":return 225;case"to top right":case"to right top":return 315;case"from left":return 0;case"from top":return 90;case"from right":return 180;case"from bottom":return 270;case"from top left":return 45;case"from top right":return 135;case"from bottom right":return 225;case"from bottom left":return 315;default:let s=t.match(/^(-?\d*\.?\d+)(deg|rad|turn)?$/);if(s){let[,r,o="deg"]=s,n=parseFloat(r);switch(o){case"deg":return(n%360+360)%360;case"rad":return(n*180/Math.PI%360+360)%360;case"turn":return(n*360%360+360)%360;default:return(n%360+360)%360}}return console.warn(`Invalid angle value: ${e}. Defaulting to 0 degrees.`),0}};var Lx=e=>({outside:0,center:1,inside:2})[e?.toLowerCase()]??1,At=[{label:"Linear RGB",value:"linear"},{label:"OKLCh",value:"oklch"},{label:"OKLAB",value:"oklab"},{label:"HSL",value:"hsl"},{label:"HSV",value:"hsv"},{label:"LCH",value:"lch"}],ft=e=>{let t={linear:0,oklch:1,oklab:2,hsl:3,hsv:4,lch:5}[e.toLowerCase()];return t===void 0?(console.warn(`Invalid color space mode: ${e}. Defaulting to 'linear'.`),0):t};var ak=Object.defineProperty,Pn=e=>{let t={};for(var s in e)ak(t,s,{get:e[s],enumerable:!0});return t};function Bo(e){typeof Symbol[e]>"u"&&Object.defineProperty(Symbol,e,{value:Symbol.for(`Symbol.${e}`),writable:!1,enumerable:!1,configurable:!1})}function Fx(e,t){return typeof e?.[t]=="function"}function Zd(e,t,s,r){let o=Vr.deferOperation;return Fx(e,s)&&(o=e[s](e,t)),o===Vr.deferOperation&&Fx(t,s)&&(o=t[s](e,t)),o===Vr.deferOperation?r(e,t):o}var ik=(e,t)=>e+t;function dk(e,t){return(typeof e=="number"||typeof e=="string")&&(typeof t=="number"||typeof t=="string")?e+t:Zd(e,t,Vr.plus,ik)}var lk=(e,t)=>e-t;function ck(e,t){return typeof e=="number"&&typeof t=="number"?e-t:Zd(e,t,Vr.minus,lk)}var uk=(e,t)=>e*t;function _k(e,t){return typeof e=="number"&&typeof t=="number"?e*t:Zd(e,t,Vr.star,uk)}var pk=(e,t)=>e/t;function mk(e,t){return typeof e=="number"&&typeof t=="number"?e/t:Zd(e,t,Vr.slash,pk)}var fk=(e,t)=>e**t;function vk(e,t){return typeof e=="number"&&typeof t=="number"?e**t:Zd(e,t,Vr.starStar,fk)}var hk=(e,t)=>e%t;function yk(e,t){return typeof e=="number"&&typeof t=="number"?e%t:Zd(e,t,Vr.percent,hk)}var Vr=(Bo("deferOperation"),Bo("operatorPlus"),Bo("operatorMinus"),Bo("operatorStar"),Bo("operatorSlash"),Bo("operatorStarStar"),Bo("operatorPercent"),Bo("operatorEqEq"),Bo("operatorPrePlusPlus"),Bo("operatorPreMinusMinus"),Bo("operatorPostPlusPlus"),Bo("operatorPostMinusMinus"),Bo("operatorPreMinus"),globalThis.__tsover_add=dk,globalThis.__tsover_sub=ck,globalThis.__tsover_mul=_k,globalThis.__tsover_div=mk,globalThis.__tsover_pow=vk,globalThis.__tsover_mod=yk,{deferOperation:Symbol.deferOperation,plus:Symbol.operatorPlus,minus:Symbol.operatorMinus,star:Symbol.operatorStar,slash:Symbol.operatorSlash,starStar:Symbol.operatorStarStar,percent:Symbol.operatorPercent,eqEq:Symbol.operatorEqEq,prePlusPlus:Symbol.operatorPrePlusPlus,preMinusMinus:Symbol.operatorPreMinusMinus,postPlusPlus:Symbol.operatorPostPlusPlus,postMinusMinus:Symbol.operatorPostMinusMinus,preMinus:Symbol.operatorPreMinus}),sm=!1,ch=!1,kr="0.12.3",q=Symbol(`typegpu:${kr}:$internal`),be=Symbol(`typegpu:${kr}:$soul`),$o=Symbol(`typegpu:${kr}:$gpuValueOf`),Pr=Symbol(`typegpu:${kr}:$getNameForward`),co=Symbol(`typegpu:${kr}:$providing`),Na=Symbol(`typegpu:${kr}:$ownSnippet`),ts=Symbol(`typegpu:${kr}:$resolve`),uh=Symbol(`typegpu:${kr}:$cast`),mr=Symbol(`typegpu:${kr}:$gpuCallable`),Qd=Symbol(`typegpu:${kr}:$repr`);`${kr}`;`${kr}`;`${kr}`;`${kr}`;`${kr}`;`${kr}`;`${kr}`;`${kr}`;`${kr}`;function Rt(e){return!!e?.[q]}var Ns={[q]:{},type:"void",toString(){return"void"}},gk=["bool","f32","f16","i32","u32","u16","vec2f","vec2h","vec2i","vec2u","vec2<bool>","vec3f","vec3h","vec3i","vec3u","vec3<bool>","vec4f","vec4h","vec4i","vec4u","vec4<bool>","mat2x2f","mat3x3f","mat4x4f","struct","array","ptr","atomic","decorated","abstractInt","abstractFloat","void","texture_1d","texture_storage_1d","texture_2d","texture_storage_2d","texture_multisampled_2d","texture_depth_2d","texture_depth_multisampled_2d","texture_2d_array","texture_storage_2d_array","texture_depth_2d_array","texture_cube","texture_depth_cube","texture_cube_array","texture_depth_cube_array","texture_3d","texture_storage_3d","texture_external","sampler","sampler_comparison"];function Xr(e){let t=e;return Rt(t)&&typeof t.kind=="string"&&t.kind.startsWith("vec")}function xk(e){return Xr(e)&&e.kind.includes("b")}function bk(e){let t=e;return Rt(t)&&typeof t.type=="string"&&t.type.startsWith("vec2")}function wk(e){let t=e;return Rt(t)&&typeof t.type=="string"&&t.type.startsWith("vec3")}function Tk(e){let t=e;return Rt(t)&&typeof t.type=="string"&&t.type.startsWith("vec4")}function as(e){return bk(e)||wk(e)||Tk(e)}function _h(e){return as(e)&&e.type.includes("b")}function xn(e){let t=e;return Rt(t)&&typeof t.kind?.startsWith=="function"&&t.kind.startsWith("mat")}function V5(e){return Rt(e)&&e?.type==="mat2x2f"}function N5(e){return Rt(e)&&e?.type==="mat3x3f"}function Sk(e){return Rt(e)&&e?.type==="mat4x4f"}function On(e){return V5(e)||N5(e)||Sk(e)}function q5(e){return Rt(e)&&["abstractInt","i32","u32"].includes(e?.type)}function Ak(e){return as(e)&&q5(e.primitive)}function Bx(e){return Xr(e)&&["vec2f","vec3f","vec4f"].includes(e.kind)}function H_(e){return Xr(e)&&/[iu]$/.test(e.kind)}function X5(e){return Xr(e)&&/[u]$/.test(e.kind)}function Oi(e){return Rt(e)&&gk.includes(e?.type)}function cr(e){return Rt(e)&&e?.type==="array"}function Es(e){return Rt(e)&&e?.type==="struct"}function Hr(e){return Rt(e)&&e?.type==="ptr"}function rm(e){return Rt(e)&&e?.type==="atomic"}function H5(e){return Rt(e)&&e?.type==="@align"}function j5(e){return Rt(e)&&e?.type==="@size"}function K5(e){return Rt(e)&&e?.type==="@location"}function Ek(e){return Rt(e)&&e?.type==="@builtin"}function ya(e){return Rt(e)&&e?.type==="decorated"}function om(e){return Rt(e)&&e.type==="void"}function Ga(e){return Rt(e)&&e.type==="bool"}function Gf(e){let t=e?.type;return Rt(e)&&(t==="abstractInt"||t==="abstractFloat"||t==="f32"||t==="f16"||t==="i32"||t==="u32")}function ph(e){let t=e?.type;return Rt(e)&&(t==="f16"||t==="vec2h"||t==="vec3h"||t==="vec4h")}var Pk=["abstractInt","abstractFloat","f32","f16","i32","u32","bool"];function gn(e){return!Rt(e)||Pk.includes(e?.type)}function nm(e){return e.schema}var Mk=["deprecated","suspicious","fallback","precision-loss","implicit-conversion","webgpu-feature-missing","webgpu-limits-exceeded","locations-mismatched","log-limit-exceeded","external-omitted","uniform-schema-misaligned"],kk=class{#e;#t;#s=new WeakMap;constructor(e){e?this.#e=["webgpu-feature-missing","webgpu-limits-exceeded","locations-mismatched","log-limit-exceeded","external-omitted"]:this.#e=Mk,this.#t=new Set(this.#e)}disable(e){this.#t.delete(e)}reset(){this.#t=new Set(this.#e)}warn(e,...t){this.#t.has(e)&&console.warn(`\u26A0\uFE0F [${e}] `,...t)}warnOnce(e,t,s,...r){if(!this.#t.has(e))return;let o=this.#s.get(t);o||(o=new Set,this.#s.set(t,o));let n=`${e}:${s}`;o.has(n)||(o.add(n),this.warn(e,...r))}},Z5=new kk(!(sm||ch)),fs=Z5,Q5=Z5;function Oo(e){if(Array.isArray(e))return`[${e.map(Oo).join(", ")}]`;let t=String(e);if(t!=="[object Object]")return t;try{return JSON.stringify(e)}catch(s){return fs.warn("suspicious","Error parsing JSON:",s),"<invalid json>"}}function Df(e){return Xr(e)||xn(e)?e.toString():Array.isArray(e)?`[${e.map(Df).join(", ")}]`:e&&typeof e=="object"?`{ ${Object.entries(e).map(([t,s])=>`${t}: ${Df(s)}`).join(", ")} }`:String(e)}function $k(e){let t={};for(let[s,r]of Object.entries(e))Object.defineProperty(t,s,{get:r,enumerable:!0});return t}function Ck(e){if(e.v===1){let t=e.externals;return{...e,externals:typeof t=="function"?t:()=>t}}if(e.v===2){let t=$k(e?.externals);return{...e,externals:()=>t}}throw new Error(`Unrecognized TypeGPU metadata format: ${Oo(e)}`)}var J5="0.12.3",pa=globalThis;pa.__TYPEGPU_VERSION__!==void 0&&console.warn(`Found duplicate TypeGPU version. First was ${pa.__TYPEGPU_VERSION__}, this one is ${J5}. This may cause unexpected behavior.`);pa.__TYPEGPU_VERSION__=J5;pa.__TYPEGPU_AUTONAME__=(e,t)=>$d(e)&&Rt(e)&&!Re(e)?e.$name(t):e;var j_=new WeakMap;function $d(e){return!!e?.$name}function e6(e){return!!e?.[Pr]}function t6(e){return e?.[be]}function Re(e){return e6(e)?Re(e[Pr]):j_.get(e)??t6(e)?.label??pa.__TYPEGPU_META__?.get(e)?.name}function Tt(e,t){if(e6(e)){Tt(e[Pr],t);return}j_.set(e,t);let s=t6(e);s&&(s.label=t)}var Ix=new WeakMap;function mh(e){let t=pa.__TYPEGPU_META__?.get(e);if(t){pa.__TYPEGPU_META__?.delete(e);let s=Ck(t);Ix.set(e,s),t.name&&j_.get(e)===void 0&&j_.set(e,t.name)}return Ix.get(e)}function Cd(e){return typeof e=="function"&&!!mh(e)}var fh=(sm||ch)&&{get enabled(){return!!pa.__TYPEGPU_MEASURE_PERF__},record(e,t){let s=pa.__TYPEGPU_PERF_RECORDS__??=new Map,r=s.get(e);r||(r=[],s.set(e,r)),r.push(t)}}||void 0,W1="Invariant failed";function Ws(e,t){if(e)return;if(!sm&&!ch)throw new Error(W1);let s=typeof t=="function"?t():t,r=s?`${W1}: ${s}`:W1;throw new Error(r)}var gd=class Lf extends Error{cause;trace;constructor(t,s){let r=s.map(o=>`- ${Cd(o)?`fn*:${Re(o)}`:o}`);r.length>20&&(r=[...r.slice(0,11),"...",...r.slice(-10)]),super(`Resolution of the following tree failed:
|
|
${r.join(`
|
|
`)}: ${t&&typeof t=="object"&&"message"in t?t.message:t}`),this.cause=t,this.trace=s,Object.setPrototypeOf(this,Lf.prototype)}appendToTrace(t){let s=[t,...this.trace];return new Lf(this.cause,s)}},Yx=class Ff extends Error{cause;trace;constructor(t,s){let r=s.map(o=>`- ${o}`);r.length>20&&(r=[...r.slice(0,11),"...",...r.slice(-10)]),super(`Execution of the following tree failed:
|
|
${r.join(`
|
|
`)}: ${t&&typeof t=="object"&&"message"in t?t.message:t}`),this.cause=t,this.trace=s,Object.setPrototypeOf(this,Ff.prototype)}appendToTrace(t){let s=[t,...this.trace];return new Ff(this.cause,s)}},Rk=class s6 extends Error{slot;constructor(t){super(`Missing value for '${t}'`),this.slot=t,Object.setPrototypeOf(this,s6.prototype)}},Uk=class r6 extends Error{constructor(t){super(`Buffer '${Re(t)??"<unnamed>"}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`),Object.setPrototypeOf(this,r6.prototype)}},zk=class o6 extends Error{constructor(t){super(`Missing bind groups for layouts: '${[...t].map(s=>Re(s)??"<unnamed>").join(", ")}'. Please provide it using pipeline.with(bindGroup).(...)`),Object.setPrototypeOf(this,o6.prototype)}},Gk=class n6 extends Error{constructor(t){super(`Missing vertex buffers for layouts: '${[...t].map(s=>Re(s)??"<unnamed>").join(", ")}'. Please provide it using pipeline.with(layout, buffer).(...)`),Object.setPrototypeOf(this,n6.prototype)}},Wx=class a6 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,a6.prototype)}},Ox=class i6 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,i6.prototype)}},vt=class d6 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,d6.prototype)}},er=class l6 extends Error{constructor(t,s){super(`Unsupported data types: ${t.map(r=>r.type).join(", ")}. Supported types are: ${s.map(r=>r.type).join(", ")}.`),Object.setPrototypeOf(this,l6.prototype)}},kc=class c6 extends Error{constructor(t,s){super(`Cannot convert value '${t}' to type ${s.type} because of the Finite Math Assumption (see: https://www.w3.org/TR/WGSL/#finite-math-assumption)`),Object.setPrototypeOf(this,c6.prototype)}},u6=["uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],Dk={f32:"float32",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",f16:"float16",vec2h:"float16x2",vec4h:"float16x4",u32:"uint32",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",i32:"sint32",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4"};function qo(e){return ya(e)||oi(e)?e.inner:e}function wi(e){return Hr(e)?e.inner:e}var Lk=["unstruct","disarray","loose-decorated",...u6];function am(e){return Rt(e)&&Lk.includes(e?.type)}function Vi(e){return Rt(e)&&e?.type==="disarray"}function Zn(e){return Rt(e)&&e?.type==="unstruct"}function oi(e){return Rt(e)&&e?.type==="loose-decorated"}function rc(e){return e.attribs?.find(H5)?.params[0]}function Fk(e){return e.attribs?.find(j5)?.params[0]}function qa(e){return e.attribs?.find(K5)?.params[0]}function $c(e){return Oi(e)||am(e)}var os=Symbol("UNKNOWN"),_6=class{matrix;constructor(e){this.matrix=e}};function Bk(e){return e==="runtime"||e==="constant"?e:"runtime"}function In(e){return!(e.origin==="runtime"||e.origin==="constant")}var Ik={uniform:{space:"uniform",access:"read"},readonly:{space:"storage",access:"read"},mutable:{space:"storage",access:"read-write"},workgroup:{space:"workgroup",access:"read-write"},private:{space:"private",access:"read-write"},function:{space:"function",access:"read-write"},"local-def":{space:"function",access:"read-write"}},Cc=class{value;dataType;origin;possibleSideEffects;constructor(e,t,s,r){this.value=e,this.dataType=t,this.origin=s,this.possibleSideEffects=r}};function Rc(e){return e instanceof Cc}function Kl(e){return Gf(e.dataType)}function Ae(e,t,s,r=!0){if(sm&&Rc(e))throw new Error("Cannot nest snippets");return new Cc(e,qo(t),s,r)}function vh(e,t){return new Cc(t.value,e,t.origin,t.possibleSideEffects)}function p6(e,t){return new Cc(e,t.dataType,t.origin,t.possibleSideEffects)}function Yk(e,t){return new Cc(t.value,t.dataType,t.origin,e)}function Wk(e){return Yk(!1,e)}function Bf(e){return e?.resourceType==="slot"}function If(e){return e?.resourceType==="lazy"}function U_(e){return e?.[co]!==void 0}function Jd(e){return e?.resourceType==="accessor"}function el(e){return e?.resourceType==="mutable-accessor"}var tl=class{type="normal"},Ok=class{type="codegen"},Vk=class{type="simulate";buffers;vars;constructor(e,t){this.buffers=e,this.vars=t}};function m6(e){return!!e?.[ts]}function im(e){return e?.[Na]}function K_(e){return!!e?.[mr]}function Nk(e){return!!e?.[uh]}function js(e){return(typeof e.value!="string"||e.dataType===os)&&im(e.value)===void 0}function qk(e){return typeof e=="number"||typeof e=="boolean"||m6(e)||Oi(e)||Bf(e)||If(e)||U_(e)}function ca(e){return!!e&&typeof e=="object"&&"getMappedRange"in e&&"mapAsync"in e}function fc(e){return e.resourceType==="buffer"}function f6(e){return!!e.usableAsUniform}function Z_(e){return!!e?.usableAsStorage}var z_=!1;function Xk(e){if(z_)return e();try{return z_=!0,e()}finally{z_=!1}}function Q_(){return z_}var Mi;function v6(e,t){if(Mi===e)return t();let s=Mi;Mi=e;try{return t()}finally{Mi=s}}function Li(){return Mi}var h6=new tl;function Vx(){return Mi?.mode??h6}function dm(){return Mi?.mode.type==="codegen"}function fe(e,...t){let s=Li();function r(n){return Rc(n)?s.resolveSnippet(n).value:n}let o="";for(let n=0;n<e.length;++n){o+=e[n];let i=t[n];Array.isArray(i)?o+=i.filter(d=>d!==void 0).map(r).join(", "):i&&(o+=r(i))}return o}function y6(e){return lm("function",e,"read-write")}function lm(e,t,s,r=!1){return{[q]:{},type:"ptr",addressSpace:e,inner:t,access:s,implicit:r,toString:()=>`ptr<${e}, ${t}, ${s}>`}}function hh(e,t){let s=Ik[e];if(s)return lm(s.space,t,s.access)}function g6(e){return lm(e.addressSpace,e.inner,e.access,!0)}function Hk(e){return lm(e.addressSpace,e.inner,e.access,!1)}var jk=(()=>{let e=(t=>Kk(t));return Tt(e,"ref"),e.toString=()=>"ref",e[q]=!0,e[mr]={call(t,[s]){if(s.origin==="argument")throw new vt(fe`d.ref(${s}) is illegal, cannot take a reference of an argument. Copy the value first, and take a reference of the copy.`);if(s.origin==="constant-immutable-def"||s.origin==="runtime-immutable-def"){let o=t.resolve(s.dataType).value;throw new vt(fe`d.ref(${s}) is illegal, cannot take a reference to a constant.
|
|
-----
|
|
- Try 'd.ref(${o}(${s}));' instead to create a new referencable value.
|
|
-----`)}if(In(s)&&gn(s.dataType)){let o=t.resolve(s.dataType).value;throw new vt(fe`d.ref(${s}) is illegal, cannot take a reference to a scalar value.
|
|
-----
|
|
- Try 'd.ref(${o}(${s}));' instead to create a new referencable scalar.
|
|
-----`)}if(Hr(s.dataType))return vh(Hk(s.dataType),s);let r=hh(s.origin,s.dataType);return Ae(new ia(s,r),r??os,"runtime",s.possibleSideEffects)}},e})();function x6(e){return e?.[q]?.type==="ref"}function Kk(e){let t={[q]:{type:"ref"},get $(){return e},set $(s){if(s&&typeof s=="object")for(let r of Object.keys(s))e[r]=s[r];else e=s}};if(e==null)throw new Error("Cannot create a ref from undefined or null");return typeof e=="object"?new Proxy(t,{get(s,r){return r in s?s[r]:e[r]},set(s,r,o){return r===q?!1:Reflect.set(r==="$"?t:e,r,o)}}):t}var ia=class{[q];snippet;#e;constructor(e,t){this[q]=!0,this.snippet=e,this.#e=t}get[Na](){if(!this.#e)throw new Error(fe`Cannot take a reference of ${this.snippet}`);return Ae(this,this.#e,this.snippet.origin,this.snippet.possibleSideEffects)}[ts](){if(!this.#e)throw new Error(fe`Cannot take a reference of ${this.snippet}`);return Ae(fe`(&${this.snippet})`,this.#e,this.snippet.origin,this.snippet.possibleSideEffects)}};function yh(e){if(!Hr(e.dataType))return e;let t=e.dataType.inner;return e.value instanceof ia?Ae(fe`${e.value.snippet}`,t,e.origin,e.possibleSideEffects):Ae(fe`(*${e})`,t,e.origin,e.possibleSideEffects)}function Xa(e,t){let s=e;return Nk(s)?s[uh](t):typeof s!="function"?t:t===void 0?s():s(t)}function b6(e,t,s){if(!K_(t))return s;let r=t;return s===void 0||s.value===void 0?r[mr].call(e,[]):r[mr].call(e,[s])}function vc(e,t){throw new Error(`Failed to handle ${e} at ${t}`)}function w6(e,t){Ws(Es(e.dataType)||Zn(e.dataType),"Expected snippet type to be struct/unstruct.");let s=e.dataType.propTypes[t];if(s)return s=qo(s),Ae(fe`${e}.${t}`,s,e.origin,e.possibleSideEffects)}var gh={rank:Number.POSITIVE_INFINITY,action:"none"};function J_(e,t){let s=qo(e),r=qo(t);if(s.type===r.type)return s.type==="struct"&&s!==r?{rank:1,action:"cast",targetType:t}:{rank:0,action:"none"};if(s.type==="abstractFloat"){if(r.type==="f32")return{rank:1,action:"none"};if(r.type==="f16")return{rank:2,action:"none"}}if(s.type==="abstractInt"){if(r.type==="i32")return{rank:3,action:"none"};if(r.type==="u32")return{rank:4,action:"none"};if(r.type==="abstractFloat")return{rank:5,action:"none"};if(r.type==="f32")return{rank:6,action:"none"};if(r.type==="f16")return{rank:7,action:"none"}}return as(s)&&as(r)&&s.type[3]===r.type[3]?J_(s.primitive,r.primitive):On(s)&&On(r)&&s.type[3]===r.type[3]?{rank:0,action:"none"}:gh}function Zk(e,t){let s=qo(e),r=qo(t);if(Hr(s)&&s.implicit&&J_(s.inner,r).rank<Number.POSITIVE_INFINITY)return{rank:0,action:"deref"};if(Hr(r)&&J_(s,r.inner).rank<Number.POSITIVE_INFINITY)return{rank:1,action:"ref"};let o={f32:0,f16:1,i32:2,u32:3,bool:4};if(s.type in o&&r.type in o){let n=s.type,i=r.type;if(n!==i){let d=o[n];return{rank:o[i]<d?10:20,action:"cast",targetType:r}}}if((s.type==="u32"||s.type==="i32")&&r.type==="abstractFloat")return{rank:1,action:"cast",targetType:r.concretized};if(s.type==="abstractFloat"){if(r.type==="i32")return{rank:2,action:"cast",targetType:r};if(r.type==="u32")return{rank:3,action:"cast",targetType:r}}return gh}function Qk(e,t,s){let r=J_(e,t);return r.rank<Number.POSITIVE_INFINITY?r:s?Zk(e,t):gh}function Yf(e,t,s){let r;for(let n of t){let i=n,d=[],l=0;for(let c of e){let _=Qk(c,n,s);if(l+=_.rank,_.rank===Number.POSITIVE_INFINITY)break;d.push(_),_.action==="cast"&&(i=_.targetType)}l<(r?.sum??Number.POSITIVE_INFINITY)&&(r={type:i,details:d,sum:l})}if(!r)return;let o=r.details.map((n,i)=>({sourceIndex:i,action:n.action,...n.action==="cast"&&{targetType:n.targetType}}));return{targetType:r.type,actions:o,hasImplicitConversions:o.some(n=>n.action==="cast")}}function xh(e,t){if(e.length===0)return;let s=[...new Set((t||e).map(qo))],r=Yf(e,s,!1);if(r)return r;let o=Yf(e,s,!0);if(o)return o}function Jk(e,t,s,r){if(s.action==="none")return r===t.dataType?t:vh(r,t);switch(s.action){case"ref":return Ae(new ia(t,r),r,t.origin,t.possibleSideEffects);case"deref":return yh(t);case"cast":if(Es(t.dataType)&&Es(r)){let o=Re(t.dataType)??"<unnamed>",n=Re(r)??"<unnamed>";if(t.possibleSideEffects)throw new Error(`Cannot resolve struct cast from '${o}' to '${n}'. Store the value to a variable first, then cast it.`);let i=Object.entries(r.propTypes).map(([l,c])=>{let _=w6(t,l);if(!_)throw new Error(`Cannot auto-convert struct '${o}' to '${n}' because the property '${l}' is missing.`);let p=La(e,[_],[c]);if(!p||!p[0])throw new Error(`Cannot auto-convert struct '${o}' to '${n}' because type '${Re(_.dataType)??"<unnamed>"}' is not convertible to '${Re(qo(c))??"<unnamed>"}'.`);return p[0]}),d=e.resolve(r).value;return Ae(`${d}(${i.map(l=>l.value).join(", ")})`,r,"runtime",!1)}return b6(e,r,t);default:vc(s.action,"applyActionToSnippet")}}function jr(e,t){if(e.some(r=>r===os))return;let s=xh(e,t);if(s)return e.map(r=>as(r)||On(r)?r:s.targetType)}function cm(e,t){if(e.some(r=>r===os))return;let s=Yf(e,[...new Set((t||e).map(qo))],!1);if(s)return e.map(r=>as(r)||On(r)?r:s.targetType)}function La(e,t,s,r=!0){let o=t.map(i=>i.dataType);if(o.some(i=>i===os))return;Ws(!(Array.isArray(s)&&s.length===0),"Internal error, expected 'restrictTo' to not be an empty array.");let n=xh(o,s);if(n)return r&&n.hasImplicitConversions&&fs.warn("implicit-conversion",`Implicit conversions from [
|
|
${t.map(i=>` ${e.resolveSnippet(i).value}: ${Oo(i.dataType)}`).join(`,
|
|
`)}
|
|
] to ${n.targetType.type} are supported, but not recommended.
|
|
Consider using explicit conversions instead.`),t.map((i,d)=>{let l=n.actions[d];return Ws(l,"Action should not be undefined"),Jk(e,i,l,n.targetType)})}function wo(e,t,s,r=!0){let o=Array.isArray(s)?s:[s],{value:n,dataType:i,origin:d,possibleSideEffects:l}=t;if(o.length===1){let _=o[0];if(_===i)return Ae(n,_,d,l);if(i===os)return e.resolveSnippet(Ae(n,_,d,l))}let c=La(e,[t],o,r);if(c)return c[0];throw new vt(`Cannot convert value of type '${String(i)}' to any of the target types: [${o.map(_=>_.type).join(", ")}]`)}function Nx(e,t,s){return Object.entries(t.propTypes).map(([r,o])=>{let n=s[r];if(!n)throw new Error(`Missing property ${r}`);return La(e,[n],[o])?.[0]??n})}function Ni(e){let t=((...s)=>e.normalImpl(...s));return Tt(t,e.name),t.toString=()=>e.name,t[mr]={get strictSignature(){},call(s,r){let o=e.argTypes(...r.map(d=>Hr(d.dataType)&&d.dataType.implicit?d.dataType.inner:d.dataType)),n=r.map((d,l)=>{let c=o[l];if(!c)throw new Error("Function called with invalid arguments");return wo(s,d,c,!1)}),i;if(n.every(d=>js(d))){s.pushMode(new tl);try{i=Ae(e.normalImpl(...n.map(d=>d.value)),e.schema(),"constant")}finally{s.popMode("normal")}}else i=e.codegenImpl(s,n);return r.some(d=>d.possibleSideEffects)?i:Wk(i)}},t}var e$=Ni({name:"bool",schema:()=>Ft,argTypes:e=>e?[e]:[],normalImpl(e=!1){if(typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new kc(e,Ft);return!!e}throw new Error(`Invalid argument type for 'd.bool'. Got '${typeof e}', expected number or boolean`)},codegenImpl:(e,[t])=>{if(t===void 0)return e.gen.typeInstantiation(Ft,[]);if(Ga(t.dataType)||Kl(t))return e.gen.typeInstantiation(Ft,[t]);throw t.dataType===os?new vt("Unknown argument type for 'd.bool'."):new er([t.dataType],[Ft,Y,oe,a,Zs])}}),Ft=Object.assign(e$,{[q]:{},type:"bool"}),t$=Ni({name:"u32",schema:()=>Y,argTypes:e=>e?[e]:[],normalImpl(e){if(e===void 0)return 0;if(typeof e=="boolean")return e?1:0;if(!Number.isFinite(e))throw new kc(e,Y);if(!Number.isInteger(e)){let t=Math.trunc(e);return t<0?0:t>4294967295?4294967295:t}return(e&4294967295)>>>0},codegenImpl:(e,[t])=>e.gen.typeInstantiation(Y,t?[t]:[])}),Y=Object.assign(t$,{[q]:{},type:"u32"}),s$=Ni({name:"i32",schema:()=>oe,argTypes:e=>e?[e]:[],normalImpl(e){if(e===void 0)return 0;if(typeof e=="boolean")return e?1:0;if(!Number.isFinite(e))throw new kc(e,oe);return e|0},codegenImpl:(e,[t])=>e.gen.typeInstantiation(oe,t?[t]:[])}),bW={[q]:{},type:"u16"},oe=Object.assign(s$,{[q]:{},type:"i32"}),r$=Ni({name:"f32",schema:()=>a,argTypes:e=>e?[e]:[],normalImpl(e){if(e===void 0)return 0;if(typeof e=="boolean")return e?1:0;if(!Number.isFinite(e))throw new kc(e,a);return Math.fround(e)},codegenImpl:(e,[t])=>e.gen.typeInstantiation(a,t?[t]:[])}),a=Object.assign(r$,{[q]:{},type:"f32"}),T6=new ArrayBuffer(4),o$=new Float32Array(T6),n$=new Uint32Array(T6);function ep(e){o$[0]=e;let t=n$[0],s=t>>>31&1,r=t>>>23&255,o=t&8388607;if(r===255)return s<<15|31744|(o?512:0);if(r=r-127+15,r<=0){if(r<-10)return s<<15;let l=o|8388608,c=14-r,_=l>>>c-1&1,p=l&(1<<c-1)-1?1:0,f=l>>>c;return _&(p|f&1)&&(f+=1),s<<15|f}if(r>=31)return s<<15|31744;let n=o>>>12&1,i=o&4095?1:0,d=o>>>13;return n&(i|d&1)&&(d+=1),d===1024&&(d=0,++r,r>=31)?s<<15|31744:s<<15|r<<10|d}function bh(e){let t=e&32768?-1:1,s=e>>10&31,r=e&1023;return s===0?r?t*r*2**-24:t*0:s===31?r?NaN:t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t*(1+r/1024)*2**(s-15)}function a$(e){return bh(ep(e))}var i$=Ni({name:"f16",schema:()=>Zs,argTypes:e=>e?[e]:[],normalImpl(e){if(e===void 0)return 0;if(typeof e=="boolean")return e?1:0;if(!Number.isFinite(e))throw new kc(e,Zs);return a$(e)},codegenImpl:(e,[t])=>e.gen.typeInstantiation(Zs,t?[t]:[])}),Zs=Object.assign(i$,{[q]:{},type:"f16"}),Uc={[q]:{},type:"abstractInt",toString(){return"abstractInt"},concretized:oe},Fi={[q]:{},type:"abstractFloat",toString(){return"abstractFloat"},concretized:a};function Vn(e){return e>=2**63||e<-(2**63)?Ae(e,Fi,"constant",!1):Number.isInteger(e)?(Number.isSafeInteger(e)||fs.warn("precision-loss",`The integer ${e} exceeds the safe integer range and may have lost precision.`),Ae(e,Uc,"constant",!1)):Ae(e,Fi,"constant",!1)}function Wo(e){return e.type==="abstractFloat"?a:e.type==="abstractInt"?oe:e}function d$(e){return vh(Wo(e.dataType),e)}function To(e){if(Rc(e))return e;if(x6(e))throw new Error("Cannot use refs (d.ref(...)) from the outer scope.");let t=im(e);return t||(Xr(e)||xn(e)?Ae(e,nm(e),"constant",!1):typeof e=="number"?Vn(e):typeof e=="boolean"?Ae(e,Ft,"constant",!1):Ae(e,os,"constant",!1))}var oc=class{[q]=!0;type;elements;constructor(e,t){this.type=e,this.elements=t}toString(){return"ArrayExpression"}[ts](e){for(let t of this.elements)if(In(t)&&!gn(t.dataType)){let s=e.resolveSnippet(t).value,r=e.resolve(Wo(t.dataType)).value;throw new vt(`'${s}' reference cannot be used in an array constructor.
|
|
-----
|
|
Try '${r}(${s})' or 'arrayOf(${r}, count)([...])' to copy the value instead.
|
|
-----`)}return e.gen.typeInstantiation(this.type,this.elements)}};function nn(e){let t=((...s)=>e(...s));return t.toString=()=>"comptime",t[Pr]=e,t[mr]={call(s,r){if(!r.every(o=>js(o)))throw new vt(`Called comptime function with runtime-known values: ${r.filter(o=>!js(o)).map(o=>`'${o.value}'`).join(", ")}`);s.pushMode(new tl);try{return To(e(...r.map(o=>o.value)))}finally{s.popMode()}}},t.$name=s=>(Tt(e,s),t),Object.defineProperty(t,q,{value:{isComptime:!0}}),t}var vr=class extends Error{constructor(e){super(e),this.name=this.constructor.name}};function we(e){let t=((...s)=>{if(typeof e.normalImpl=="string")throw new vr(e.normalImpl);return e.normalImpl(...s)});return e.name&&Tt(t,e.name),t.toString=()=>e.name??"<unknown>",t[mr]={get strictSignature(){return typeof e.signature!="function"?e.signature:void 0},call(s,r){let{argTypes:o,returnType:n}=typeof e.signature=="function"?e.signature(...r.map(c=>Hr(c.dataType)&&c.dataType.implicit?c.dataType.inner:c.dataType)):e.signature,i=r.map((c,_)=>{let p=o[_];if(!p)throw new Error("Function called with invalid arguments");return wo(s,c,p,!e.ignoreImplicitCastWarning)});if(!e.noComptime&&i.every(c=>js(c))&&typeof e.normalImpl=="function"){s.pushMode(new tl);try{return Ae(e.normalImpl(...i.map(c=>c.value)),n,"constant",e.sideEffects)}catch(c){if(!(c instanceof vr))throw c}finally{s.popMode("normal")}}let d=e.sideEffects||r.some(c=>c.possibleSideEffects),l=Wo(n);return Ae(e.codegenImpl(s,i,l),l,"runtime",d)}},t}var ea=["x","y","z","w"],ta=["r","g","b","a"],Yn=class bi extends Array{static#e=(()=>{for(let t=0;t<4;t++)for(let s=0;s<4;s++)for(let r=0;r<4;r++)for(let o=0;o<4;o++){let n=`${ea[t]}${ea[s]}${ea[r]}${ea[o]}`,i=`${ta[t]}${ta[s]}${ta[r]}${ta[o]}`;Object.defineProperty(bi.prototype,n,{get(){return new this._Vec4(this[t],this[s],this[r],this[o])}}),Object.defineProperty(bi.prototype,i,{get(){return new this._Vec4(this[t],this[s],this[r],this[o])}})}for(let t=0;t<4;t++)for(let s=0;s<4;s++)for(let r=0;r<4;r++){let o=`${ea[t]}${ea[s]}${ea[r]}`,n=`${ta[t]}${ta[s]}${ta[r]}`;Object.defineProperty(bi.prototype,o,{get(){return new this._Vec3(this[t],this[s],this[r])}}),Object.defineProperty(bi.prototype,n,{get(){return new this._Vec3(this[t],this[s],this[r])}})}for(let t=0;t<4;t++)for(let s=0;s<4;s++){let r=`${ea[t]}${ea[s]}`,o=`${ta[t]}${ta[s]}`;Object.defineProperty(bi.prototype,r,{get(){return new this._Vec2(this[t],this[s])}}),Object.defineProperty(bi.prototype,o,{get(){return new this._Vec2(this[t],this[s])}})}})();castElement(){return this[q].elementSchema}[ts](t){let s=nm(this);return this.every(r=>!r)?t.gen.typeInstantiation(s,[]):this.every(r=>this[0]===r)?t.gen.typeInstantiation(s,[Vn(this[0])]):t.gen.typeInstantiation(s,this.map(r=>Vn(r)))}toString(){return`${this.kind}(${this.join(", ")})`}},zc=class extends Yn{e0;e1;constructor(e,t){super(2),this.e0=this.castElement()(e),this.e1=this.castElement()(t??e)}get 0(){return this.e0}get 1(){return this.e1}set 0(e){this.e0=this.castElement()(e)}set 1(e){this.e1=this.castElement()(e)}get x(){return this[0]}get y(){return this[1]}set x(e){this[0]=this.castElement()(e)}set y(e){this[1]=this.castElement()(e)}get r(){return this[0]}get g(){return this[1]}set r(e){this[0]=this.castElement()(e)}set g(e){this[1]=this.castElement()(e)}},Gc=class extends Yn{e0;e1;e2;constructor(e,t,s){super(3),this.e0=this.castElement()(e),this.e1=this.castElement()(t??e),this.e2=this.castElement()(s??e)}get 0(){return this.e0}get 1(){return this.e1}get 2(){return this.e2}set 0(e){this.e0=this.castElement()(e)}set 1(e){this.e1=this.castElement()(e)}set 2(e){this.e2=this.castElement()(e)}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(e){this[0]=this.castElement()(e)}set y(e){this[1]=this.castElement()(e)}set z(e){this[2]=this.castElement()(e)}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}set r(e){this[0]=this.castElement()(e)}set g(e){this[1]=this.castElement()(e)}set b(e){this[2]=this.castElement()(e)}},Dc=class extends Yn{e0;e1;e2;e3;constructor(e,t,s,r){super(4),this.e0=this.castElement()(e),this.e1=this.castElement()(t??e),this.e2=this.castElement()(s??e),this.e3=this.castElement()(r??e)}get 0(){return this.e0}get 1(){return this.e1}get 2(){return this.e2}get 3(){return this.e3}set 0(e){this.e0=this.castElement()(e)}set 1(e){this.e1=this.castElement()(e)}set 2(e){this.e2=this.castElement()(e)}set 3(e){this.e3=this.castElement()(e)}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}get w(){return this[3]}set x(e){this[0]=e}set y(e){this[1]=e}set z(e){this[2]=e}set w(e){this[3]=e}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}get a(){return this[3]}set r(e){this[0]=e}set g(e){this[1]=e}set b(e){this[2]=e}set a(e){this[3]=e}},wh=class S6 extends zc{get[q](){return{elementSchema:a}}get kind(){return"vec2f"}get _Vec2(){return S6}get _Vec3(){return Ph}get _Vec4(){return Rh}},Th=class A6 extends zc{get[q](){return{elementSchema:Zs}}get kind(){return"vec2h"}get _Vec2(){return A6}get _Vec3(){return Mh}get _Vec4(){return Uh}},Sh=class E6 extends zc{get[q](){return{elementSchema:oe}}get kind(){return"vec2i"}get _Vec2(){return E6}get _Vec3(){return kh}get _Vec4(){return zh}},Ah=class P6 extends zc{get[q](){return{elementSchema:Y}}get kind(){return"vec2u"}get _Vec2(){return P6}get _Vec3(){return $h}get _Vec4(){return Gh}},Eh=class M6 extends zc{get[q](){return{elementSchema:Ft}}get kind(){return"vec2<bool>"}get _Vec2(){return M6}get _Vec3(){return Ch}get _Vec4(){return Dh}},Ph=class k6 extends Gc{get[q](){return{elementSchema:a}}get kind(){return"vec3f"}get _Vec2(){return wh}get _Vec3(){return k6}get _Vec4(){return Rh}},Mh=class $6 extends Gc{get[q](){return{elementSchema:Zs}}get kind(){return"vec3h"}get _Vec2(){return Th}get _Vec3(){return $6}get _Vec4(){return Uh}},kh=class C6 extends Gc{get[q](){return{elementSchema:oe}}get kind(){return"vec3i"}get _Vec2(){return Sh}get _Vec3(){return C6}get _Vec4(){return zh}},$h=class R6 extends Gc{get[q](){return{elementSchema:Y}}get kind(){return"vec3u"}get _Vec2(){return Ah}get _Vec3(){return R6}get _Vec4(){return Gh}},Ch=class U6 extends Gc{get[q](){return{elementSchema:Ft}}get kind(){return"vec3<bool>"}get _Vec2(){return Eh}get _Vec3(){return U6}get _Vec4(){return Dh}},Rh=class z6 extends Dc{get[q](){return{elementSchema:a}}get kind(){return"vec4f"}get _Vec2(){return wh}get _Vec3(){return Ph}get _Vec4(){return z6}},Uh=class G6 extends Dc{get[q](){return{elementSchema:Zs}}get kind(){return"vec4h"}get _Vec2(){return Th}get _Vec3(){return Mh}get _Vec4(){return G6}},zh=class D6 extends Dc{get[q](){return{elementSchema:oe}}get kind(){return"vec4i"}get _Vec2(){return Sh}get _Vec3(){return kh}get _Vec4(){return D6}},Gh=class L6 extends Dc{get[q](){return{elementSchema:Y}}get kind(){return"vec4u"}get _Vec2(){return Ah}get _Vec3(){return $h}get _Vec4(){return L6}},Dh=class F6 extends Dc{get[q](){return{elementSchema:Ft}}get kind(){return"vec4<bool>"}get _Vec2(){return Eh}get _Vec3(){return Ch}get _Vec4(){return F6}},$t=fo(wh,a),Sr=fo(Th,Zs),xs=fo(Sh,oe),ns=fo(Ah,Y),So=fo(Eh,Ft),cs=fo(Ph,a),po=fo(Mh,Zs),Os=fo(kh,oe),Ot=fo($h,Y),Ao=fo(Ch,Ft),lt=fo(Rh,a),Ar=fo(Uh,Zs),ps=fo(zh,oe),es=fo(Gh,Y),Eo=fo(Dh,Ft),l$={vec2f:$t,vec2h:Sr,vec2i:xs,vec2u:ns,"vec2<bool>":So,vec3f:cs,vec3h:po,vec3i:Os,vec3u:Ot,"vec3<bool>":Ao,vec4f:lt,vec4h:Ar,vec4i:ps,vec4u:es,"vec4<bool>":Eo};function fo(e,t){let{kind:s,length:r}=new e,o=r,i=Ni({name:s,schema:()=>d,argTypes:(...l)=>l.map(c=>as(c)?c:t),normalImpl:(...l)=>{let c=Array.from({length:l.length}),_=0;for(let p of l)if(typeof p=="number"||typeof p=="boolean")c[_++]=p;else for(let f=0;f<p.length;++f)c[_++]=p[f];if(c.length<=1||c.length===o)return new e(...c);throw new Error(`'${s}' constructor called with invalid number of arguments.`)},codegenImpl:(l,c)=>l.gen.typeInstantiation(d,c)}),d=Object.assign(i,{[q]:{},type:s,primitive:t,componentCount:o,[Qd]:void 0});return e.prototype.schema=d,d}var Td=class{};function Lh(e){let t=Ni({name:e.type,schema:()=>s,normalImpl:(...r)=>{let o=[];for(let n of r)if(typeof n=="number")o.push(n);else for(let i=0;i<n.length;++i)o.push(n[i]);if(o.length!==0&&o.length!==e.columns*e.rows)throw new Error(`'${e.type}' constructor called with invalid number of arguments.`);for(let n=o.length;n<e.columns*e.rows;++n)o.push(0);return new e.MatImpl(...o)},argTypes:(...r)=>r.map(o=>as(o)?o:a),codegenImpl:(r,o)=>r.gen.typeInstantiation(s,o)}),s=Object.assign(t,{[q]:{},type:e.type,primitive:a,identity:g$[e.columns],translation:e.columns===4?x$:void 0,scaling:e.columns===4?b$:void 0,rotationX:e.columns===4?w$:void 0,rotationY:e.columns===4?T$:void 0,rotationZ:e.columns===4?S$:void 0});return e.MatImpl.prototype.schema=s,s}var qx=[0,1,2,3],c$=class extends Td{[q]=!0;columns;length=4;constructor(...e){super(),this.columns=[this.makeColumn(e[0],e[1]),this.makeColumn(e[2],e[3])]}get 0(){return this.columns[0].x}get 1(){return this.columns[0].y}get 2(){return this.columns[1].x}get 3(){return this.columns[1].y}set 0(e){this.columns[0].x=e}set 1(e){this.columns[0].y=e}set 2(e){this.columns[1].x=e}set 3(e){this.columns[1].y=e}*[Symbol.iterator](){yield this[0],yield this[1],yield this[2],yield this[3]}[ts](e){return e.gen.typeInstantiation(ga,qx.map(t=>Vn(this[t])))}toString(){return`${this.kind}(${qx.map(e=>this[e]).join(", ")})`}},u$=class extends c${kind="mat2x2f";makeColumn(e,t){return $t(e,t)}},Xx=[0,1,2,4,5,6,8,9,10],_$=class extends Td{[q]=!0;columns;length=12;constructor(...e){super(),this.columns=[this.makeColumn(e[0],e[1],e[2]),this.makeColumn(e[3],e[4],e[5]),this.makeColumn(e[6],e[7],e[8])]}get 0(){return this.columns[0].x}get 1(){return this.columns[0].y}get 2(){return this.columns[0].z}get 3(){return 0}get 4(){return this.columns[1].x}get 5(){return this.columns[1].y}get 6(){return this.columns[1].z}get 7(){return 0}get 8(){return this.columns[2].x}get 9(){return this.columns[2].y}get 10(){return this.columns[2].z}get 11(){return 0}set 0(e){this.columns[0].x=e}set 1(e){this.columns[0].y=e}set 2(e){this.columns[0].z=e}set 3(e){}set 4(e){this.columns[1].x=e}set 5(e){this.columns[1].y=e}set 6(e){this.columns[1].z=e}set 7(e){}set 8(e){this.columns[2].x=e}set 9(e){this.columns[2].y=e}set 10(e){this.columns[2].z=e}set 11(e){}*[Symbol.iterator](){for(let e=0;e<12;e++)yield this[e]}[ts](e){return e.gen.typeInstantiation(xa,Xx.map(t=>Vn(this[t])))}toString(){return`${this.kind}(${Xx.map(e=>this[e]).join(", ")})`}},p$=class extends _${kind="mat3x3f";makeColumn(e,t,s){return cs(e,t,s)}},Hx=Array.from({length:16},(e,t)=>t),m$=class extends Td{[q]=!0;columns;constructor(...e){super(),this.columns=[this.makeColumn(e[0],e[1],e[2],e[3]),this.makeColumn(e[4],e[5],e[6],e[7]),this.makeColumn(e[8],e[9],e[10],e[11]),this.makeColumn(e[12],e[13],e[14],e[15])]}length=16;get 0(){return this.columns[0].x}get 1(){return this.columns[0].y}get 2(){return this.columns[0].z}get 3(){return this.columns[0].w}get 4(){return this.columns[1].x}get 5(){return this.columns[1].y}get 6(){return this.columns[1].z}get 7(){return this.columns[1].w}get 8(){return this.columns[2].x}get 9(){return this.columns[2].y}get 10(){return this.columns[2].z}get 11(){return this.columns[2].w}get 12(){return this.columns[3].x}get 13(){return this.columns[3].y}get 14(){return this.columns[3].z}get 15(){return this.columns[3].w}set 0(e){this.columns[0].x=e}set 1(e){this.columns[0].y=e}set 2(e){this.columns[0].z=e}set 3(e){this.columns[0].w=e}set 4(e){this.columns[1].x=e}set 5(e){this.columns[1].y=e}set 6(e){this.columns[1].z=e}set 7(e){this.columns[1].w=e}set 8(e){this.columns[2].x=e}set 9(e){this.columns[2].y=e}set 10(e){this.columns[2].z=e}set 11(e){this.columns[2].w=e}set 12(e){this.columns[3].x=e}set 13(e){this.columns[3].y=e}set 14(e){this.columns[3].z=e}set 15(e){this.columns[3].w=e}*[Symbol.iterator](){for(let e=0;e<16;e++)yield this[e]}[ts](e){return e.gen.typeInstantiation(Mr,Hx.map(t=>Vn(this[t])))}toString(){return`${this.kind}(${Hx.map(e=>this[e]).join(", ")})`}},f$=class extends m${kind="mat4x4f";makeColumn(e,t,s,r){return lt(e,t,s,r)}},v$=nn(()=>ga(1,0,0,1)).$name("identity2"),h$=nn(()=>xa(1,0,0,0,1,0,0,0,1)).$name("identity3"),y$=nn(()=>Mr(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)).$name("identity4"),g$={2:v$,3:h$,4:y$},x$=we({name:"translation4",normalImpl:e=>Mr(1,0,0,0,0,1,0,0,0,0,1,0,e.x,e.y,e.z,1),get signature(){return{argTypes:[cs],returnType:Mr}},codegenImpl:(e,[t])=>fe`mat4x4f(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, ${t}.x, ${t}.y, ${t}.z, 1)`,sideEffects:!1}),b$=we({name:"scaling4",normalImpl:e=>Mr(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1),get signature(){return{argTypes:[cs],returnType:Mr}},codegenImpl:(e,[t])=>fe`mat4x4f(${t}.x, 0, 0, 0, 0, ${t}.y, 0, 0, 0, 0, ${t}.z, 0, 0, 0, 0, 1)`,sideEffects:!1}),w$=we({name:"rotationX4",normalImpl:e=>Mr(1,0,0,0,0,Math.cos(e),Math.sin(e),0,0,-Math.sin(e),Math.cos(e),0,0,0,0,1),get signature(){return{argTypes:[a],returnType:Mr}},codegenImpl:(e,[t])=>fe`mat4x4f(1, 0, 0, 0, 0, cos(${t}), sin(${t}), 0, 0, -sin(${t}), cos(${t}), 0, 0, 0, 0, 1)`,sideEffects:!1}),T$=we({name:"rotationY4",normalImpl:e=>Mr(Math.cos(e),0,-Math.sin(e),0,0,1,0,0,Math.sin(e),0,Math.cos(e),0,0,0,0,1),get signature(){return{argTypes:[a],returnType:Mr}},codegenImpl:(e,[t])=>fe`mat4x4f(cos(${t}), 0, -sin(${t}), 0, 0, 1, 0, 0, sin(${t}), 0, cos(${t}), 0, 0, 0, 0, 1)`,sideEffects:!1}),S$=we({name:"rotationZ4",normalImpl:e=>Mr(Math.cos(e),Math.sin(e),0,0,-Math.sin(e),Math.cos(e),0,0,0,0,1,0,0,0,0,1),get signature(){return{argTypes:[a],returnType:Mr}},codegenImpl:(e,[t])=>fe`mat4x4f(cos(${t}), sin(${t}), 0, 0, -sin(${t}), cos(${t}), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)`,sideEffects:!1}),ga=Lh({type:"mat2x2f",rows:2,columns:2,MatImpl:u$}),xa=Lh({type:"mat3x3f",rows:3,columns:3,MatImpl:p$}),Mr=Lh({type:"mat4x4f",rows:4,columns:4,MatImpl:f$});var A$=(e,t,s)=>{if(e===t)return 0;let r=B6((s-e)/(t-e),0,1);return r*r*(3-2*r)},B6=(e,t,s)=>Math.min(Math.max(t,e),s),Fh=new ArrayBuffer(4),I6=new Float32Array(Fh),Bh=new Uint32Array(Fh),E$=new Int32Array(Fh);function Ln(e){return Bh[0]=e,I6[0]}function Fn(e){return Bh[0]=e,E$[0]}function Bn(e){return I6[0]=e,Bh[0]}var jx=e=>Math.sqrt(e.x**2+e.y**2),Kx=e=>Math.sqrt(e.x**2+e.y**2+e.z**2),Zx=e=>Math.sqrt(e.x**2+e.y**2+e.z**2+e.w**2),d_=(e,t)=>e.x*t.x+e.y*t.y,l_=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z,c_=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w,Qx=e=>(t,s)=>ns(e(t.x,s.x),e(t.y,s.y)),Jx=e=>(t,s)=>Ot(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),eb=e=>(t,s)=>es(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),tb=e=>(t,s)=>xs(e(t.x,s.x),e(t.y,s.y)),sb=e=>(t,s)=>Os(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),rb=e=>(t,s)=>ps(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),Mo={all:{"vec2<bool>":e=>e.x&&e.y,"vec3<bool>":e=>e.x&&e.y&&e.z,"vec4<bool>":e=>e.x&&e.y&&e.z&&e.w},length:{vec2f:jx,vec2h:jx,vec3f:Kx,vec3h:Kx,vec4f:Zx,vec4h:Zx},mulMxM:{mat2x2f:(e,t)=>{let s=e.columns,r=t.columns;return ga(s[0].x*r[0].x+s[1].x*r[0].y,s[0].y*r[0].x+s[1].y*r[0].y,s[0].x*r[1].x+s[1].x*r[1].y,s[0].y*r[1].x+s[1].y*r[1].y)},mat3x3f:(e,t)=>{let s=e.columns,r=t.columns;return xa(s[0].x*r[0].x+s[1].x*r[0].y+s[2].x*r[0].z,s[0].y*r[0].x+s[1].y*r[0].y+s[2].y*r[0].z,s[0].z*r[0].x+s[1].z*r[0].y+s[2].z*r[0].z,s[0].x*r[1].x+s[1].x*r[1].y+s[2].x*r[1].z,s[0].y*r[1].x+s[1].y*r[1].y+s[2].y*r[1].z,s[0].z*r[1].x+s[1].z*r[1].y+s[2].z*r[1].z,s[0].x*r[2].x+s[1].x*r[2].y+s[2].x*r[2].z,s[0].y*r[2].x+s[1].y*r[2].y+s[2].y*r[2].z,s[0].z*r[2].x+s[1].z*r[2].y+s[2].z*r[2].z)},mat4x4f:(e,t)=>{let s=e.columns,r=t.columns;return Mr(s[0].x*r[0].x+s[1].x*r[0].y+s[2].x*r[0].z+s[3].x*r[0].w,s[0].y*r[0].x+s[1].y*r[0].y+s[2].y*r[0].z+s[3].y*r[0].w,s[0].z*r[0].x+s[1].z*r[0].y+s[2].z*r[0].z+s[3].z*r[0].w,s[0].w*r[0].x+s[1].w*r[0].y+s[2].w*r[0].z+s[3].w*r[0].w,s[0].x*r[1].x+s[1].x*r[1].y+s[2].x*r[1].z+s[3].x*r[1].w,s[0].y*r[1].x+s[1].y*r[1].y+s[2].y*r[1].z+s[3].y*r[1].w,s[0].z*r[1].x+s[1].z*r[1].y+s[2].z*r[1].z+s[3].z*r[1].w,s[0].w*r[1].x+s[1].w*r[1].y+s[2].w*r[1].z+s[3].w*r[1].w,s[0].x*r[2].x+s[1].x*r[2].y+s[2].x*r[2].z+s[3].x*r[2].w,s[0].y*r[2].x+s[1].y*r[2].y+s[2].y*r[2].z+s[3].y*r[2].w,s[0].z*r[2].x+s[1].z*r[2].y+s[2].z*r[2].z+s[3].z*r[2].w,s[0].w*r[2].x+s[1].w*r[2].y+s[2].w*r[2].z+s[3].w*r[2].w,s[0].x*r[3].x+s[1].x*r[3].y+s[2].x*r[3].z+s[3].x*r[3].w,s[0].y*r[3].x+s[1].y*r[3].y+s[2].y*r[3].z+s[3].y*r[3].w,s[0].z*r[3].x+s[1].z*r[3].y+s[2].z*r[3].z+s[3].z*r[3].w,s[0].w*r[3].x+s[1].w*r[3].y+s[2].w*r[3].z+s[3].w*r[3].w)}},mulMxV:{mat2x2f:(e,t)=>{let s=e.columns;return $t(s[0].x*t.x+s[1].x*t.y,s[0].y*t.x+s[1].y*t.y)},mat3x3f:(e,t)=>{let s=e.columns;return cs(s[0].x*t.x+s[1].x*t.y+s[2].x*t.z,s[0].y*t.x+s[1].y*t.y+s[2].y*t.z,s[0].z*t.x+s[1].z*t.y+s[2].z*t.z)},mat4x4f:(e,t)=>{let s=e.columns;return lt(s[0].x*t.x+s[1].x*t.y+s[2].x*t.z+s[3].x*t.w,s[0].y*t.x+s[1].y*t.y+s[2].y*t.z+s[3].y*t.w,s[0].z*t.x+s[1].z*t.y+s[2].z*t.z+s[3].z*t.w,s[0].w*t.x+s[1].w*t.y+s[2].w*t.z+s[3].w*t.w)}},mulVxM:{mat2x2f:(e,t)=>{let s=t.columns;return $t(e.x*s[0].x+e.y*s[0].y,e.x*s[1].x+e.y*s[1].y)},mat3x3f:(e,t)=>{let s=t.columns;return cs(e.x*s[0].x+e.y*s[0].y+e.z*s[0].z,e.x*s[1].x+e.y*s[1].y+e.z*s[1].z,e.x*s[2].x+e.y*s[2].y+e.z*s[2].z)},mat4x4f:(e,t)=>{let s=t.columns;return lt(e.x*s[0].x+e.y*s[0].y+e.z*s[0].z+e.w*s[0].w,e.x*s[1].x+e.y*s[1].y+e.z*s[1].z+e.w*s[1].w,e.x*s[2].x+e.y*s[2].y+e.z*s[2].z+e.w*s[2].w,e.x*s[3].x+e.y*s[3].y+e.z*s[3].z+e.w*s[3].w)}},dot:{vec2f:d_,vec2h:d_,vec2i:d_,vec2u:d_,vec3f:l_,vec3h:l_,vec3i:l_,vec3u:l_,vec4f:c_,vec4h:c_,vec4i:c_,vec4u:c_},cross:{vec3f:(e,t)=>cs(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x),vec3h:(e,t)=>po(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)},bitShiftLeft:{vec2i:tb((e,t)=>e<<t),vec2u:Qx((e,t)=>e<<t),vec3i:sb((e,t)=>e<<t),vec3u:Jx((e,t)=>e<<t),vec4i:rb((e,t)=>e<<t),vec4u:eb((e,t)=>e<<t)},bitShiftRight:{vec2i:tb((e,t)=>e>>t),vec2u:Qx((e,t)=>e>>>t),vec3i:sb((e,t)=>e>>t),vec3u:Jx((e,t)=>e>>>t),vec4i:rb((e,t)=>e>>t),vec4u:eb((e,t)=>e>>>t)},bitcastU32toF32:{vec2u:e=>$t(Ln(e.x),Ln(e.y)),vec3u:e=>cs(Ln(e.x),Ln(e.y),Ln(e.z)),vec4u:e=>lt(Ln(e.x),Ln(e.y),Ln(e.z),Ln(e.w))},bitcastU32toI32:{vec2u:e=>xs(Fn(e.x),Fn(e.y)),vec3u:e=>Os(Fn(e.x),Fn(e.y),Fn(e.z)),vec4u:e=>ps(Fn(e.x),Fn(e.y),Fn(e.z),Fn(e.w))},bitcastF32toU32:{vec2f:e=>ns(Bn(e.x),Bn(e.y)),vec3f:e=>Ot(Bn(e.x),Bn(e.y),Bn(e.z)),vec4f:e=>es(Bn(e.x),Bn(e.y),Bn(e.z),Bn(e.w))}},P$={vec2f:So,vec2h:So,vec2i:So,vec2u:So,"vec2<bool>":So,vec3f:Ao,vec3h:Ao,vec3i:Ao,vec3u:Ao,"vec3<bool>":Ao,vec4f:Eo,vec4h:Eo,vec4i:Eo,vec4u:Eo,"vec4<bool>":Eo},Wf={...l$,mat2x2f:ga,mat3x3f:xa,mat4x4f:Mr};function M$(e,t){let s=e==="boolean"?P$:Wf;if(t in s)return s[t];throw new Error(`No corresponding vector/matrix type for '${t}' kind in '${e}' mode.`)}function k$(e){return e.kind.startsWith("vec")?e:e.columns.flat()}function Y6(e,t,s){let r=t.map($$);if(r.every(l=>l==="boolean"||l==="number"))return e(...t);let o=r[0];Ws(o,"Expected kind of the first argument to be present.");let n=M$(s,o),i=t.map(k$),d=i[0]?.length;return Ws(d!==void 0,"Expected constructor to have at least one argument."),n(...Array.from({length:d},(l,c)=>e(...i.map(_=>_[c]))))}function qt(e,t){return Y6(e,t,"first")}function um(e,t){return Y6(e,t,"boolean")}function $$(e){return typeof e=="number"?"number":typeof e=="boolean"?"boolean":e.kind}function Ih(e){let[t,s]=e;if(typeof t=="number"&&Xr(s)){let r=Wf[s.kind];return[r(t),s]}else if(Xr(t)&&typeof s=="number"){let r=Wf[t.kind];return[t,r(s)]}return[t,s]}var ob=e=>"primitive"in e?e.primitive:e,Yh=e=>(t,s)=>{let{restrict:r}=e??{},o=_=>{throw r?new er([t,s],r):new Error(`Cannot apply operator to ${t.type} and ${s.type}: ${_}`)};if(e?.noMat&&(On(t)||On(s)))return o("matrices not supported");let n=as(t)||On(t),i=as(s)||On(s);if(!n&&!i){let _=jr([t,s],r);return _?{argTypes:_,returnType:_[0]}:o("incompatible scalar types")}if(n&&i)return e?.matVecProduct&&as(t)!==as(s)?{argTypes:[t,s],returnType:as(t)?t:s}:t.type!==s.type?o("operands must have the same type"):{argTypes:[t,s],returnType:t};let[d,l]=n?[s,t]:[t,s],c=jr([d],[ob(l)]);return c?{argTypes:n?[t,c[0]]:[c[0],s],returnType:l}:o(`scalar not convertible to ${ob(l).type}`)},W6=Yh(),C$=Yh({matVecProduct:!0}),O6=Yh({noMat:!0,restrict:[a,Zs,Fi]});function V6(e,t){if(typeof e=="number"&&typeof t=="number")return e+t;if(typeof e=="number"&&Xr(t))return qt(s=>e+s,[t]);if(Xr(e)&&typeof t=="number")return qt(s=>s+t,[e]);if(Xr(e)&&Xr(t)||xn(e)&&xn(t))return qt((s,r)=>s+r,[e,t]);throw new Error("Add/Sub called with invalid arguments.")}var ua=we({name:"add",signature:W6,normalImpl:V6,codegenImpl:(e,[t,s])=>e.gen.emitBinaryOp(t,"+",s),sideEffects:!1});function R$(e,t){return V6(e,N6(-1,t))}var It=we({name:"sub",signature:W6,normalImpl:R$,codegenImpl:(e,[t,s])=>e.gen.emitBinaryOp(t,"-",s),sideEffects:!1});function N6(e,t){if(typeof e=="number"&&typeof t=="number")return e*t;if(typeof e=="number"&&(Xr(t)||xn(t)))return qt(s=>e*s,[t]);if((Xr(e)||xn(e))&&typeof t=="number")return qt(s=>s*t,[e]);if(Xr(e)&&Xr(t))return qt((s,r)=>s*r,[e,t]);if(Bx(e)&&xn(t))return Mo.mulVxM[t.kind](e,t);if(xn(e)&&Bx(t))return Mo.mulMxV[e.kind](e,t);if(xn(e)&&xn(t))return Mo.mulMxM[e.kind](e,t);throw new Error("Mul called with invalid arguments.")}var Kr=we({name:"mul",signature:C$,normalImpl:N6,codegenImpl:(e,[t,s])=>e.gen.emitBinaryOp(t,"*",s),sideEffects:!1});function U$(e,t){return qt((s,r)=>s/r,Ih([e,t]))}var Of=we({name:"div",signature:O6,normalImpl:U$,codegenImpl:(e,[t,s])=>e.gen.emitBinaryOp(t,"/",s),ignoreImplicitCastWarning:!0,sideEffects:!1}),tn=we({name:"mod",signature:O6,normalImpl:((e,t)=>qt((s,r)=>s%r,Ih([e,t]))),codegenImpl:(e,[t,s])=>e.gen.emitBinaryOp(t,"%",s),sideEffects:!1});function z$(e){return qt(t=>-t,[e])}var nb=we({name:"neg",signature:e=>({argTypes:[e],returnType:e}),normalImpl:z$,codegenImpl:(e,[t])=>fe`-(${t})`,sideEffects:!1}),q6={vec2i:ns,vec2u:ns,vec3i:Ot,vec3u:Ot,vec4i:es,vec4u:es},X6=(e,t)=>{let s=jr([e],[xs,Os,ps,ns,Ot,es])?.[0];if(!s||!as(s))throw new er([e],[xs,Os,ps,ns,Ot,es]);let r=s.componentCount,o=r===2?ns:r===3?Ot:es,n=jr([t],[Y,o])?.[0];if(!n)throw new er([t],[Y,o]);return{argTypes:[s,n],returnType:s}};function G$(e,t){if(H_(e)&&X5(t)&&e.length==t.length)return Mo.bitShiftLeft[e.kind](e,t);if(H_(e)&&typeof t=="number"){let s=q6[e.kind](t);return Mo.bitShiftLeft[e.kind](e,s)}throw new Error("'bitShiftLeft' called with invalid arguments, expected: left-hand side to be an integer vector, right-hand side to be a number or unsigned integer vector of the same arity as the left-hand side.")}var D$=we({name:"bitShiftLeft",signature:X6,normalImpl:G$,codegenImpl:(e,[t,s])=>{if(as(t.dataType)&&!as(s.dataType)){let r=t.dataType.componentCount,o=r===2?ns:r===3?Ot:es;return e.gen.emitBinaryOp(t,"<<",e.gen.typeInstantiation(o,[s]))}return e.gen.emitBinaryOp(t,"<<",s)},sideEffects:!1});function L$(e,t){if(H_(e)&&X5(t)&&e.length==t.length)return Mo.bitShiftRight[e.kind](e,t);if(H_(e)&&typeof t=="number"){let s=q6[e.kind](t);return Mo.bitShiftRight[e.kind](e,s)}throw new Error("'bitShiftRight' called with invalid arguments, expected: left-hand side to be an integer vector, right-hand side to be a number or unsigned integer vector of the same arity as the left-hand side.")}var Vf={add:ua,sub:It,mul:Kr,div:Of,mod:tn,bitShiftLeft:D$,bitShiftRight:we({name:"bitShiftRight",signature:X6,normalImpl:L$,codegenImpl:(e,[t,s])=>{if(as(t.dataType)&&!as(s.dataType)){let r=t.dataType.componentCount,o=r===2?ns:r===3?Ot:es;return e.gen.emitBinaryOp(t,">>",e.gen.typeInstantiation(o,[s]))}return e.gen.emitBinaryOp(t,">>",s)},sideEffects:!1})},Wh=class{lhs;operator;constructor(e,t){this.lhs=e,this.operator=t}};function F$(e){return e instanceof Wh}function Gn(e,t,s){let r=Vf[t];Object.defineProperty(e.prototype,s,{value:r});function o(n){return r(this,n)}Object.defineProperty(e.prototype,t,{get(){return dm()?new Wh(this,r):o}})}var ab=!1;function Fr(){ab||(ab=!0,Gn(Yn,"add",Vr.plus),Gn(Td,"add",Vr.plus),Gn(Yn,"sub",Vr.minus),Gn(Td,"sub",Vr.minus),Gn(Yn,"mul",Vr.star),Gn(Td,"mul",Vr.star),Gn(Yn,"div",Vr.slash),Gn(Yn,"mod",Vr.percent),Gn(Yn,"bitShiftLeft",Symbol()),Gn(Yn,"bitShiftRight",Symbol()))}var Oh=new Set(["alias","break","case","const","const_assert","continue","continuing","default","diagnostic","discard","else","enable","false","fn","for","if","let","loop","override","requires","return","struct","switch","true","var","while","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","highp","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","non_coherent","noncoherent","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","readonly","ref","regardless","register","reinterpret_cast","require","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","sampler","uniform","storage"]),B$=new Set(["array","bool","f16","f32","i32","u32","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","bitcast","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","dot4U8Packed","dot4I8Packed","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","textureStore","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack4xI8","pack4xU8","pack4xI8Clamp","pack4xU8Clamp","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack4xI8","unpack4xU8","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","textureBarrier","workgroupBarrier","workgroupUniformLoad","subgroupAdd","subgroupExclusiveAdd","subgroupInclusiveAdd","subgroupAll","subgroupAnd","subgroupAny","subgroupBallot","subgroupBroadcast","subgroupBroadcastFirst","subgroupElect","subgroupMax","subgroupMin","subgroupMul","subgroupExclusiveMul","subgroupInclusiveMul","subgroupOr","subgroupShuffle","subgroupShuffleDown","subgroupShuffleUp","subgroupShuffleXor","subgroupXor","quadBroadcast","quadSwapDiagonal","quadSwapX","quadSwapY"]);function I$(e){if(e){let t=e.replaceAll(/\s/g,"_").replaceAll(/[^\w]/g,"");return _m(t).success?t:"item"}return"item"}function _m(e){return e==="_"||e===""?{success:!1,error:"Identifiers cannot be equal to '' or '_'"}:/\s/.test(e)?{success:!1,error:"Identifiers cannot contain whitespace."}:e.startsWith("__")?{success:!1,error:"Identifiers cannot start with double underscores."}:/^(([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}]))$/u.test(e)?{success:!0}:{success:!1,error:"Not compliant with WGSL guidelines."}}function H6(e){let t=_m(e);return t.success?Oh.has(e)?{success:!1,error:"Identifiers cannot start with reserved keywords."}:{success:!0}:t}function Ct(e){return pm(e,!1)}function zr(e){return pm(e,!0)}function pm(e,t){Object.keys(e).forEach(r=>{let o=H6(r);if(!o.success)throw new Error(`Invalid property key '${r}'${o.error?`: ${o.error}`:""}`)});let s=r=>Object.fromEntries(Object.entries(e).map(([o,n])=>[o,Xa(n,r?.[o])]));return Object.setPrototypeOf(s,Y$),s.propTypes=e,Object.defineProperty(s,q,{value:{isAbstruct:t}}),s}var Y$={type:"struct",$name(e){return Tt(this,e),this},toString(){return`struct:${Re(this)??"<unnamed>"}`}},Er=(e,t)=>{let s=t-1,r=~s;return(e&s)===0?e:(e&r)+t},Yt=class{[q]={};type;[mr];constructor(e){this.type=e,this[mr]={call:(t,[s])=>b6(t,ma[this.type],s)}}[uh](e){return Xa(ma[this.type],e)}},ma={uint8:Y,uint8x2:ns,uint8x4:es,sint8:oe,sint8x2:xs,sint8x4:ps,unorm8:a,unorm8x2:$t,unorm8x4:lt,snorm8:a,snorm8x2:$t,snorm8x4:lt,uint16:Y,uint16x2:ns,uint16x4:es,sint16:oe,sint16x2:xs,sint16x4:ps,unorm16:a,unorm16x2:$t,unorm16x4:lt,snorm16:a,snorm16x2:$t,snorm16x4:lt,float16:a,float16x2:$t,float16x4:lt,float32:a,float32x2:$t,float32x3:cs,float32x4:lt,uint32:Y,uint32x2:ns,uint32x3:Ot,uint32x4:es,sint32:oe,sint32x2:xs,sint32x3:Os,sint32x4:ps,"unorm10-10-10-2":lt,"unorm8x4-bgra":lt},j6=new Set(Object.keys(ma)),wW=new Yt("uint8"),TW=new Yt("uint8x2"),SW=new Yt("uint8x4"),AW=new Yt("sint8"),EW=new Yt("sint8x2"),PW=new Yt("sint8x4"),MW=new Yt("unorm8"),kW=new Yt("unorm8x2"),$W=new Yt("unorm8x4"),CW=new Yt("snorm8"),RW=new Yt("snorm8x2"),UW=new Yt("snorm8x4"),zW=new Yt("uint16"),GW=new Yt("uint16x2"),DW=new Yt("uint16x4"),LW=new Yt("sint16"),FW=new Yt("sint16x2"),BW=new Yt("sint16x4"),IW=new Yt("unorm16"),YW=new Yt("unorm16x2"),WW=new Yt("unorm16x4"),OW=new Yt("snorm16"),VW=new Yt("snorm16x2"),NW=new Yt("snorm16x4"),qW=new Yt("float16"),XW=new Yt("float16x2"),HW=new Yt("float16x4"),jW=new Yt("float32"),KW=new Yt("float32x2"),ZW=new Yt("float32x3"),QW=new Yt("float32x4"),JW=new Yt("uint32"),eO=new Yt("uint32x2"),tO=new Yt("uint32x3"),sO=new Yt("uint32x4"),rO=new Yt("sint32"),oO=new Yt("sint32x2"),nO=new Yt("sint32x3"),aO=new Yt("sint32x4"),iO=new Yt("unorm10-10-10-2"),dO=new Yt("unorm8x4-bgra");function W$(e){return Rt(e)&&j6.has(e?.type)}var O$={f32:4,f16:2,i32:4,u32:4,bool:4,u16:2,vec2f:8,vec2h:4,vec2i:8,vec2u:8,"vec2<bool>":8,vec3f:16,vec3h:8,vec3i:16,vec3u:16,"vec3<bool>":16,vec4f:16,vec4h:8,vec4i:16,vec4u:16,"vec4<bool>":16,mat2x2f:8,mat3x3f:16,mat4x4f:16,atomic:4};function V$(e){let t=e?.type,s=O$[t];if(s!==void 0)return s;if(Es(e))return Object.values(e.propTypes).map(ks).reduce((r,o)=>r>o?r:o);if(cr(e))return ks(e.elementType);if(Zn(e)){let r=Object.values(e.propTypes)[0];return r?rc(r)??1:1}if(Vi(e))return rc(e.elementType)??1;if(ya(e)||oi(e))return rc(e)??ks(e.inner);if(j6.has(t))return 1;throw new Error(`Cannot determine alignment of data: ${Oo(e)}`)}function N$(e){if(Zn(e)){let t=Object.values(e.propTypes)[0];return t?sn(t):1}return Vi(e)?sn(e.elementType):oi(e)?rc(e)??sn(e.inner):rc(e)??1}var ib=new WeakMap,db=new WeakMap;function ks(e){let t=ib.get(e);return t===void 0&&(t=V$(e),ib.set(e,t)),t}function sn(e){let t=db.get(e);return t===void 0&&(t=N$(e),db.set(e,t)),t}var q$={bool:4,f32:4,f16:2,i32:4,u32:4,u16:2,vec2f:8,vec2h:4,vec2i:8,vec2u:8,"vec2<bool>":8,vec3f:12,vec3h:6,vec3i:12,vec3u:12,"vec3<bool>":12,vec4f:16,vec4h:8,vec4i:16,vec4u:16,"vec4<bool>":16,mat2x2f:16,mat3x3f:48,mat4x4f:64,uint8:1,uint8x2:2,uint8x4:4,sint8:1,sint8x2:2,sint8x4:4,unorm8:1,unorm8x2:2,unorm8x4:4,snorm8:1,snorm8x2:2,snorm8x4:4,uint16:2,uint16x2:4,uint16x4:8,sint16:2,sint16x2:4,sint16x4:8,unorm16:2,unorm16x2:4,unorm16x4:8,snorm16:2,snorm16x2:4,snorm16x4:8,float16:2,float16x2:4,float16x4:8,float32:4,float32x2:8,float32x3:12,float32x4:16,uint32:4,uint32x2:8,uint32x3:12,uint32x4:16,sint32:4,sint32x2:8,sint32x3:12,sint32x4:16,"unorm10-10-10-2":4,"unorm8x4-bgra":4,atomic:4};function X$(e){let t=0,s=0,r=!0,o=!1;for(let i of Object.values(e.propTypes)){if(Number.isNaN(t))throw new Error("Only the last property of a struct can be unbounded");let d=t;t=Er(t,ks(i));let l=d!==t,c=Bi(i);if(t+=c.size,Number.isNaN(t)&&i.type!=="array")throw new Error("Cannot nest unbounded struct within another struct");o||(!l&&c.isContiguous?s+=c.size:(o=!0,r=!1,l||(s+=c.longestContiguousPrefix)))}let n=Er(t,ks(e));return{isContiguous:t===n&&r,size:n,longestContiguousPrefix:s}}function H$(e){let t=0,s=0,r=!0,o=!1;for(let n of Object.values(e.propTypes)){let i=sn(n),d=t;t=Er(t,i);let l=d!==t;l&&(r=!1);let c=Bi(n);t+=c.size,!o&&(!l&&c.isContiguous?s+=c.size:(o=!0,r=!1,l||(s+=c.longestContiguousPrefix)))}return{isContiguous:r,size:t,longestContiguousPrefix:s}}function j$(e){let t=e.elementType,s=Bi(t),r=s.size,o=Er(r,ks(t)),n=!(o>r)&&s.isContiguous,i=e.elementCount===0?NaN:e.elementCount*o,d;return n?d=i:d=s.longestContiguousPrefix,{size:i,isContiguous:n,longestContiguousPrefix:d}}function K$(e){let t=e.elementType,s=Bi(t),r=s.size,o=Er(r,sn(t)),n=!(o>r)&&s.isContiguous,i=e.elementCount*o,d;return n?d=i:d=s.longestContiguousPrefix,{size:i,isContiguous:n,longestContiguousPrefix:d}}function Bi(e){let t=q$[e.type];if(t!==void 0)return{isContiguous:e.type!=="mat3x3f",size:t,longestContiguousPrefix:e.type==="mat3x3f"?12:t};if(Es(e))return X$(e);if(Zn(e))return H$(e);if(cr(e))return j$(e);if(Vi(e))return K$(e);if(ya(e)||oi(e)){let s=Fk(e),r=Bi(qo(e));return s?{isContiguous:s===r.size&&r.isContiguous,size:s,longestContiguousPrefix:r.longestContiguousPrefix}:Bi(e.inner)}throw new Error(`Cannot determine memory layout of data: ${e}`)}var lb=new WeakMap;function Vh(e,t){let s=lb.get(e);return s===void 0&&(s=Bi(e),lb.set(e,s)),s[t]}function kt(e){return Vh(e,"size")}function cb(e){return kt(e)}var zt=nn(((e,t)=>{if(ya(e)&&!e.attribs.every(K5))throw new Error("Arrays cannot hold decorated types other than @location. Wrap it in a struct instead, e.g. d.arrayOf(d.struct({ value: d.align(16, d.u32) }), n).");return t===void 0?nn(s=>ub(e,s)):ub(e,t)})).$name("arrayOf");function ub(e,t){let s=r=>{if(r&&r.length!==t)throw new Error(`Array schema of ${t} elements of type ${e.type} called with ${r.length} argument(s).`);return Array.from({length:t},(o,n)=>Xa(e,r?.[n]))};if(Object.setPrototypeOf(s,Z$),Number.isNaN(kt(e)))throw new Error("Cannot nest runtime sized arrays.");if(s.elementType=e,!Number.isInteger(t)||t<0)throw new Error(`Cannot create array schema with invalid element count: ${t}.`);return s.elementCount=t,s}var Z$={[q]:!0,type:"array",toString(){return`arrayOf(${String(this.elementType)}, ${this.elementCount})`}};function Q$(e){if("multisampled"in e){if(e.multisampled){if(e.dimension==="2d")return eC(e.sampleType);throw new Error(`Multisampled textures only support '2d' dimension, got '${e.dimension}'`)}switch(e.dimension){case"1d":return J$(e.sampleType);case"2d":return Hs(e.sampleType);case"2d-array":return tC(e.sampleType);case"3d":return oC(e.sampleType);case"cube":return sC(e.sampleType);case"cube-array":return rC(e.sampleType);default:throw new Error(`Unsupported texture dimension: '${e.dimension}'`)}}if(!("access"in e))throw new Error("Descriptor is neither a sampled nor a storage texture");switch(e.dimension){case"1d":return nC(e.format,e.access);case"2d":return an(e.format,e.access);case"2d-array":return aC(e.format,e.access);case"3d":return iC(e.format,e.access);default:throw new Error(`Unsupported storage texture dimension: '${e.dimension}'`)}}function qi(e,t){let s=e.startsWith("texture_depth")?["depth","float","unfilterable-float"]:t.sampleType.type==="i32"?["sint"]:t.sampleType.type==="u32"?["uint"]:["float","unfilterable-float"];return{[q]:{},[Qd]:void 0,type:e,bindingSampleType:s,...t}}function mm(e,t){return{[q]:{},[Qd]:void 0,type:e,...t}}var _b=new Map,Lc={"write-only":"write","read-only":"read","read-write":"read_write"};function cn(e,t){let s=_b.get(e);return s||(s=t(),_b.set(e,s)),s}function J$(e){let t=e||a;return cn(`texture_1d<${t.type}>`,()=>qi("texture_1d",{dimension:"1d",sampleType:t,multisampled:!1}))}function Hs(e){let t=e||a;return cn(`texture_2d<${t.type}>`,()=>qi("texture_2d",{dimension:"2d",sampleType:t,multisampled:!1}))}function eC(e){let t=e||a;return cn(`texture_multisampled_2d<${t.type}>`,()=>qi("texture_multisampled_2d",{dimension:"2d",sampleType:t,multisampled:!0}))}function tC(e){let t=e||a;return cn(`texture_2d_array<${t.type}>`,()=>qi("texture_2d_array",{dimension:"2d-array",sampleType:t,multisampled:!1}))}function sC(e){let t=e||a;return cn(`texture_cube<${t.type}>`,()=>qi("texture_cube",{dimension:"cube",sampleType:t,multisampled:!1}))}function rC(e){let t=e||a;return cn(`texture_cube_array<${t.type}>`,()=>qi("texture_cube_array",{dimension:"cube-array",sampleType:t,multisampled:!1}))}function oC(e){let t=e||a;return cn(`texture_3d<${t.type}>`,()=>qi("texture_3d",{dimension:"3d",sampleType:t,multisampled:!1}))}function nC(e,t){let s=t||"write-only";return cn(`texture_storage_1d<${e}, ${Lc[s]}>`,()=>mm("texture_storage_1d",{dimension:"1d",format:e,access:s}))}function an(e,t){let s=t||"write-only";return cn(`texture_storage_2d<${e}, ${Lc[s]}>`,()=>mm("texture_storage_2d",{dimension:"2d",format:e,access:s}))}function aC(e,t){let s=t||"write-only";return cn(`texture_storage_2d_array<${e}, ${Lc[s]}>`,()=>mm("texture_storage_2d_array",{dimension:"2d-array",format:e,access:s}))}function iC(e,t){let s=t||"write-only";return cn(`texture_storage_3d<${e}, ${Lc[s]}>`,()=>mm("texture_storage_3d",{dimension:"3d",format:e,access:s}))}function K6(){return cn("texture_external",()=>({[q]:{},[Qd]:void 0,type:"texture_external",dimension:"2d"}))}function Z6(e){return!!e[q]&&typeof e.multisampled=="boolean"}function G_(e){return!!e[q]&&typeof e.format=="string"&&typeof e.access=="string"}function dC(e){return!!e[q]&&e.type==="texture_external"}function Nh(){return{[q]:{},type:"sampler",[Qd]:void 0}}function Q6(){return{[q]:{},type:"sampler_comparison",[Qd]:void 0}}function lC(e){return!!e[q]&&e.type==="sampler"}function cC(e){return!!e[q]&&e.type==="sampler_comparison"}var lO=nn(((e,t)=>t===void 0?s=>pb(e,s):pb(e,t))).$name("disarrayOf");function pb(e,t){let s=r=>{if(r&&r.length!==t)throw new Error(`Disarray schema of ${t} elements of type ${e.type} called with ${r.length} argument(s).`);return Array.from({length:t},(o,n)=>Xa(e,r?.[n]))};if(Object.setPrototypeOf(s,uC),s.elementType=e,!Number.isInteger(t)||t<0)throw new Error(`Cannot create disarray schema with invalid element count: ${t}.`);return s.elementCount=t,s}var uC={[q]:!0,type:"disarray",toString(){return`disarrayOf(${this.elementType}, ${this.elementCount})`}};var cO={[q]:!0,type:"unstruct",$name(e){return Tt(this,e),this},toString(){return`unstruct:${Re(this)??"<unnamed>"}`}};function _C(e){return new pC(e)}var pC=class{[q]={};type="atomic";inner;constructor(e){this.inner=e}};function fm(e,t){return ya(e)?new mb(e.inner,[t,...e.attribs]):oi(e)?new fb(e.inner,[t,...e.attribs]):am(e)?new fb(e,[t]):new mb(e,[t])}function J6(e,t){return fm(t,{[q]:!0,type:"@align",params:[e]})}function ew(e,t){return fm(t,{[q]:!0,type:"@size",params:[e]})}function Nf(e,t){return fm(t,{[q]:!0,type:"@location",params:[e]})}function Nn(e){return(ya(e)||oi(e))&&e.attribs.find(Ek)!==void 0}function hc(e){return!ya(e)&&!oi(e)?"":e.attribs.map(t=>t.params.length===0?`${t.type} `:`${t.type}(${t.params.join(", ")}) `).join("")}var tw=class{[q]={};inner;attribs;constructor(e,t){this.inner=e,this.attribs=t;let s=t.find(H5)?.params[0],r=t.find(j5)?.params[0];if(s!==void 0){if(s<=0)throw new Error(`Custom data alignment must be a positive number, got: ${s}.`);if(Math.log2(s)%1!==0)throw new Error(`Alignment has to be a power of 2, got: ${s}.`);if(Oi(this.inner)&&s%ks(this.inner)!==0)throw new Error(`Custom alignment has to be a multiple of the standard data alignment. Got: ${s}, expected multiple of: ${ks(this.inner)}.`)}if(r!==void 0){if(r<kt(this.inner))throw new Error(`Custom data size cannot be smaller then the standard data size. Got: ${r}, expected at least: ${kt(this.inner)}.`);if(r<=0)throw new Error(`Custom data size must be a positive number. Got: ${r}.`)}}},mb=class extends tw{[q]={};type="decorated"},fb=class extends tw{[q]={};type="loose-decorated"};function sw(e){return Vh(e,"isContiguous")}function rw(e){return Vh(e,"longestContiguousPrefix")}var ow=Object.defineProperty,mC=(e,t,s)=>t in e?ow(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,fC=(e,t)=>{for(var s in t)ow(e,s,{get:t[s],enumerable:!0})},Kt=(e,t,s)=>mC(e,typeof t!="symbol"?t+"":t,s);fC({},{BufferReader:()=>sl,BufferWriter:()=>Xi,MaxValue:()=>ar,Measurer:()=>Qs,UnresolvedReferenceError:()=>Ti,ValidationError:()=>vm,arrayOf:()=>xC,bool:()=>wC,byte:()=>PC,chars:()=>YC,concat:()=>NC,dynamicArrayOf:()=>XC,f16:()=>LC,f32:()=>BC,f32Array:()=>l4,f64Array:()=>c4,generic:()=>OC,genericEnum:()=>VC,i16:()=>kC,i16Array:()=>i4,i32:()=>UC,i32Array:()=>d4,i8:()=>AC,i8Array:()=>a4,keyed:()=>KC,object:()=>WC,optional:()=>QC,string:()=>TC,tupleOf:()=>t4,u16:()=>CC,u16Array:()=>o4,u32:()=>GC,u32Array:()=>n4,u8:()=>lw,u8Array:()=>s4,u8ClampedArray:()=>r4});var Ti=class nw extends Error{constructor(t){super(t),Object.setPrototypeOf(this,nw.prototype)}},vm=class aw extends Error{constructor(t){super(t),Object.setPrototypeOf(this,aw.prototype)}},vC=class{constructor(){Kt(this,"size",NaN),Kt(this,"unbounded",this),Kt(this,"isUnbounded",!0)}add(){return this}fork(){return this}},hC=new vC,Qs=class iw{constructor(){Kt(this,"size",0),Kt(this,"unbounded",hC),Kt(this,"isUnbounded",!1)}add(t){return this.size+=t,this}fork(){let t=new iw;return t.size=this.size,t}},ar=Symbol("The biggest (in amount of bytes needed) value a schema can represent"),Br=class{constructor(){Kt(this,"__unwrapped")}resolveReferences(e){}seekProperty(e,t){return null}},yC=class{constructor(e){this.key=e}},nc={STRING:"string",ENUM:"enum"},gC=class extends Br{constructor(e,t){super(),this._unstableElementSchema=e,this.length=t,Kt(this,"elementSchema"),this.elementSchema=e}resolveReferences(e){this.elementSchema=e.resolve(this._unstableElementSchema)}write(e,t){if(t.length!==this.length)throw new vm(`Expected array of length ${this.length}, got ${t.length}`);for(let s of t)this.elementSchema.write(e,s)}read(e){let t=[];for(let s=0;s<this.length;++s)t.push(this.elementSchema.read(e));return t}get maxSize(){return this.elementSchema.measure(ar).size*this.length}measure(e,t=new Qs){for(let s=0;s<this.length;++s)this.elementSchema.measure(e===ar?ar:e[s],t);return t}};function xC(e,t){return new gC(e,t)}var bC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",1)}read(e){return e.readBool()}write(e,t){e.writeBool(t)}measure(e,t=new Qs){return t.add(1)}},wC=new bC,dw=class Zl extends Br{static get _encoder(){return Zl._cachedEncoder||(Zl._cachedEncoder=new TextEncoder),Zl._cachedEncoder}read(t){return t.readString()}write(t,s){t.writeString(s)}measure(t,s=new Qs){if(t===ar)return s.unbounded;let r=Zl._encoder.encode(t);return s.add(r.byteLength+1)}};Kt(dw,"_cachedEncoder");var TC=new dw,SC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",1)}read(e){return e.readInt8()}write(e,t){e.writeInt8(t)}measure(e,t=new Qs){return t.add(1)}},AC=new SC,EC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",1)}read(e){return e.readUint8()}write(e,t){e.writeUint8(t)}measure(e,t=new Qs){return t.add(1)}},lw=new EC,PC=lw,MC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",2)}read(e){return e.readInt16()}write(e,t){e.writeInt16(t)}measure(e,t=new Qs){return t.add(2)}},kC=new MC,$C=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",2)}read(e){return e.readUint16()}write(e,t){e.writeUint16(t)}measure(e,t=new Qs){return t.add(2)}},CC=new $C,RC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",4)}read(e){return e.readInt32()}write(e,t){e.writeInt32(t)}measure(e,t=new Qs){return t.add(4)}},UC=new RC,zC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",4)}read(e){return e.readUint32()}write(e,t){e.writeUint32(t)}measure(e,t=new Qs){return t.add(4)}},GC=new zC,DC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",2)}read(e){return e.readFloat16()}write(e,t){e.writeFloat16(t)}measure(e,t=new Qs){return t.add(2)}},LC=new DC,FC=class extends Br{constructor(){super(...arguments),Kt(this,"maxSize",4)}read(e){return e.readFloat32()}write(e,t){e.writeFloat32(t)}measure(e,t=new Qs){return t.add(4)}},BC=new FC,IC=class extends Br{constructor(e){super(),this.length=e}write(e,t){if(t.length!==this.length)throw new vm(`Expected char-string of length ${this.length}, got ${t.length}`);for(let s=0;s<t.length;++s)e.writeUint8(t.charCodeAt(s))}read(e){let t="";for(let s=0;s<this.length;++s)t+=String.fromCharCode(e.readByte());return t}measure(e,t=new Qs){return t.add(this.length)}};function YC(e){return new IC(e)}function Fa(e){return Object.entries(e)}function cw(e,t){let s={};for(let[r,o]of Fa(t))s[r]=e.resolve(o);return s}var qh=class extends Br{constructor(e){super(),this._properties=e,Kt(this,"properties"),this.properties=e}resolveReferences(e){this.properties=cw(e,this._properties)}write(e,t){for(let[s,r]of Fa(this.properties))r.write(e,t[s])}read(e){let t={};for(let[s,r]of Fa(this.properties))t[s]=r.read(e);return t}get maxSize(){let e=new Qs;for(let t of Object.values(this.properties))t.measure(ar,e);return e.size}measure(e,t=new Qs){for(let[s,r]of Fa(this.properties))r.measure(e===ar?ar:e[s],t);return t}seekProperty(e,t){let s=0;for(let[r,o]of Fa(this.properties)){if(r===t)return{bufferOffset:s,schema:o};s+=o.measure(e).size}return null}};function WC(e){return new qh(e)}var uw=class extends Br{constructor(e,t,s){super(),this.keyedBy=e,this._subTypeMap=s,Kt(this,"_baseObject"),Kt(this,"subTypeMap"),this._baseObject=new qh(t),this.subTypeMap=s}resolveReferences(e){this._baseObject.resolveReferences(e),this.subTypeMap=cw(e,this._subTypeMap)}write(e,t){let s=t.type,r=this.subTypeMap[s]||null;if(r===null)throw new Error(`Unknown sub-type '${s.toString()}' in among '${JSON.stringify(Object.keys(this.subTypeMap))}'`);this.keyedBy===nc.ENUM?e.writeUint8(t.type):e.writeString(t.type),this._baseObject.write(e,t);for(let[o,n]of Fa(r.properties))n.write(e,t[o])}read(e){let t=this.keyedBy===nc.ENUM?e.readByte():e.readString(),s=this.subTypeMap[t]||null;if(s===null)throw new Error(`Unknown sub-type '${t}' in among '${JSON.stringify(Object.keys(this.subTypeMap))}'`);let r=this._baseObject.read(e);if(r.type=t,s!==null)for(let[o,n]of Fa(s.properties))r[o]=n.read(e);return r}measure(e,t=new Qs){if(this._baseObject.measure(e,t),this.keyedBy===nc.ENUM)t.add(1);else if(e!==ar)t.add(e.type.length+1);else return t.unbounded;if(e===ar){let s=Object.values(this.subTypeMap).map(r=>{let o=t.fork();for(let n of Object.values(r.properties))n.measure(ar,o);return[r,o.size]}).reduce((r,o)=>r[1]>o[1]?r:o)[0];for(let r of Object.values(s.properties))r.measure(ar,t)}else{let s=e.type,r=this.subTypeMap[s]||null;if(r===null)throw new Error(`Unknown sub-type '${s.toString()}', expected one of '${JSON.stringify(Object.keys(this.subTypeMap))}'`);for(let[o,n]of Fa(r.properties))n.measure(e[o],t)}return t}};function OC(e,t){return new uw(nc.STRING,e,t)}function VC(e,t){return new uw(nc.ENUM,e,t)}function NC(e){return new qh(Object.fromEntries(e.flatMap(({properties:t})=>Object.entries(t))))}var qC=class extends Br{constructor(e){super(),this._unstableElementType=e,Kt(this,"elementType"),this.elementType=e}resolveReferences(e){this.elementType=e.resolve(this._unstableElementType)}write(e,t){e.writeUint32(t.length);for(let s of t)this.elementType.write(e,s)}read(e){let t=[],s=e.readUint32();for(let r=0;r<s;++r)t.push(this.elementType.read(e));return t}get maxSize(){return this.measure(ar).size}measure(e,t=new Qs){if(e===ar)return t.unbounded;t.add(4);for(let s of e)this.elementType.measure(s,t);return t}seekProperty(e,t){if(typeof t=="symbol")return null;let s=Number.parseInt(String(t),10);if(Number.isNaN(s))return null;if(e===ar)return{bufferOffset:this.elementType.measure(ar).size*s,schema:this.elementType};if(s>=e.length)return null;let r=new Qs;for(let o=0;o<s;++o)this.elementType.measure(e[o],r);return{bufferOffset:r.size,schema:this.elementType}}};function XC(e){return new qC(e)}var _w=class{constructor(e){Kt(this,"__unwrapped"),Kt(this,"ref"),this.ref=new yC(e)}resolveReferences(){throw new Ti("Tried to resolve a reference directly. Do it through a RefResolver instead.")}read(){throw new Ti("Tried to read a reference directly. Resolve it instead.")}write(){throw new Ti("Tried to write a reference directly. Resolve it instead.")}measure(){throw new Ti("Tried to measure size of a reference directly. Resolve it instead.")}seekProperty(){throw new Ti("Tried to seek property of a reference directly. Resolve it instead.")}},HC=class{constructor(){Kt(this,"registry",{})}hasKey(e){return this.registry[e]!==void 0}register(e,t){this.registry[e]=t}resolve(e){if(e instanceof _w){let t=e.ref.key;if(this.registry[t]!==void 0)return this.registry[t];throw new Ti(`Couldn't resolve reference to ${t}. Unknown key.`)}return e.resolveReferences(this),e}},jC=class{constructor(e,t){this.key=e,Kt(this,"__unwrapped"),Kt(this,"__keyDefinition"),Kt(this,"innerType"),this.innerType=t(new _w(e)),this.resolveReferences(new HC)}resolveReferences(e){e.hasKey(this.key)||(e.register(this.key,this.innerType),this.innerType.resolveReferences(e))}read(e){return this.innerType.read(e)}write(e,t){this.innerType.write(e,t)}get maxSize(){return this.measure(ar).size}measure(e,t=new Qs){return this.innerType.measure(e,t)}seekProperty(e,t){return this.innerType.seekProperty(e,t)}};function KC(e,t){return new jC(e,t)}var ZC=class extends Br{constructor(e){super(),this._innerUnstableSchema=e,Kt(this,"innerSchema"),this.innerSchema=e}resolveReferences(e){this.innerSchema=e.resolve(this._innerUnstableSchema)}write(e,t){t!=null?(e.writeBool(!0),this.innerSchema.write(e,t)):e.writeBool(!1)}read(e){if(e.readBool())return this.innerSchema.read(e)}get maxSize(){return this.measure(ar).size}measure(e,t=new Qs){return e!==void 0&&this.innerSchema.measure(e,t),t.add(1)}};function QC(e){return new ZC(e)}function JC(e,t){return t.map(s=>e.resolve(s))}var e4=class extends Br{constructor(e){super(),this._unstableSchemas=e,Kt(this,"schemas"),this.schemas=e}resolveReferences(e){this.schemas=JC(e,this._unstableSchemas)}write(e,t){if(t.length!==this.schemas.length)throw new vm(`Expected tuple of length ${this.schemas.length}, got ${t.length}`);for(let s=0;s<this.schemas.length;++s)this.schemas[s].write(e,t[s])}read(e){let t=[];for(let s=0;s<this.schemas.length;++s)t.push(this.schemas[s].read(e));return t}get maxSize(){return this.measure(ar).size}measure(e,t=new Qs){for(let s=0;s<this.schemas.length;++s)this.schemas[s].measure(e===ar?ar:e[s],t);return t}};function t4(e){return new e4(e)}var ba=class extends Br{constructor(e,t){super(),this.length=e,this._arrayConstructor=t,Kt(this,"byteLength"),this.byteLength=e*t.BYTES_PER_ELEMENT}write(e,t){e.writeSlice(t)}read(e){let t=new ArrayBuffer(this.byteLength),s=new this._arrayConstructor(t,0,this.length);return e.readSlice(s,0,this.byteLength),s}measure(e,t=new Qs){return t.add(this.byteLength)}},s4=e=>new ba(e,Uint8Array),r4=e=>new ba(e,Uint8ClampedArray),o4=e=>new ba(e,Uint16Array),n4=e=>new ba(e,Uint32Array),a4=e=>new ba(e,Int8Array),i4=e=>new ba(e,Int16Array),d4=e=>new ba(e,Int32Array),l4=e=>new ba(e,Float32Array),c4=e=>new ba(e,Float64Array);function u4(){let e=new Uint8Array(4),t=new Uint32Array(e.buffer);return t[0]=1,e[0]===0}function Xh(){return u4()?"big":"little"}function Hh(e){let t=0,s=e;return s&&"buffer"in s&&"byteOffset"in s&&(t+=s.byteOffset,s=s.buffer),{buffer:s,byteOffset:t,byteLength:e.byteLength}}var pw=class{constructor(e,t){Kt(this,"dataView"),Kt(this,"littleEndian"),Kt(this,"needsByteSwap"),Kt(this,"byteOffset",0),Kt(this,"endianness");let{byteOffset:s=0,endianness:r="system"}=t??{};this.byteOffset=s;let o=Xh();this.endianness=r==="system"?o:r,this.littleEndian=this.endianness==="little",this.needsByteSwap=this.endianness!==o;let n=Hh(e);this.byteOffset+=n.byteOffset,this.dataView=new DataView(n.buffer)}get currentByteOffset(){return this.byteOffset}seekTo(e){this.byteOffset=e}skipBytes(e){this.byteOffset+=e}},sl=class extends pw{constructor(){super(...arguments),Kt(this,"_cachedTextDecoder")}get _textDecoder(){return this._cachedTextDecoder||(this._cachedTextDecoder=new TextDecoder(void 0,{fatal:!0})),this._cachedTextDecoder}readBool(){return this.dataView.getUint8(this.byteOffset++)!==0}readByte(){return this.dataView.getUint8(this.byteOffset++)}readInt8(){return this.dataView.getInt8(this.byteOffset++)}readUint8(){return this.dataView.getUint8(this.byteOffset++)}readInt16(){let e=this.dataView.getInt16(this.byteOffset,this.littleEndian);return this.byteOffset+=2,e}readUint16(){let e=this.dataView.getUint16(this.byteOffset,this.littleEndian);return this.byteOffset+=2,e}readInt32(){let e=this.dataView.getInt32(this.byteOffset,this.littleEndian);return this.byteOffset+=4,e}readUint32(){let e=this.dataView.getUint32(this.byteOffset,this.littleEndian);return this.byteOffset+=4,e}readFloat16(){let e=this.dataView.getFloat16(this.byteOffset,this.littleEndian);return this.byteOffset+=2,e}readFloat32(){let e=this.dataView.getFloat32(this.byteOffset,this.littleEndian);return this.byteOffset+=4,e}readString(){let e=0;for(;this.byteOffset+e<this.dataView.byteLength&&this.dataView.getUint8(this.byteOffset+e++)!==0;);let t=this._textDecoder.decode(new Uint8Array(this.dataView.buffer,this.byteOffset,e-1));return this.byteOffset+=e,t}readSlice(e,t,s){let r=Hh(e),o=new Uint8Array(r.buffer,r.byteOffset+t),n=e.BYTES_PER_ELEMENT;if(this.needsByteSwap&&n>1)for(let i=0;i<s;i+=n)for(let d=n-1;d>=0;d--)o[i+d]=this.dataView.getUint8(this.byteOffset++);else o.set(new Uint8Array(this.dataView.buffer,this.byteOffset,s)),this.byteOffset+=s}},Xi=class extends pw{constructor(){super(...arguments),Kt(this,"_cachedTextEncoder")}get _textEncoder(){return this._cachedTextEncoder||(this._cachedTextEncoder=new TextEncoder),this._cachedTextEncoder}writeBool(e){this.dataView.setUint8(this.byteOffset++,e?1:0)}writeByte(e){this.dataView.setUint8(this.byteOffset++,e)}writeInt8(e){this.dataView.setInt8(this.byteOffset++,e)}writeUint8(e){this.dataView.setUint8(this.byteOffset++,e)}writeInt16(e){this.dataView.setInt16(this.byteOffset,e,this.littleEndian),this.byteOffset+=2}writeUint16(e){this.dataView.setUint16(this.byteOffset,e,this.littleEndian),this.byteOffset+=2}writeInt32(e){this.dataView.setInt32(this.byteOffset,e,this.littleEndian),this.byteOffset+=4}writeUint32(e){this.dataView.setUint32(this.byteOffset,e,this.littleEndian),this.byteOffset+=4}writeFloat16(e){this.dataView.setFloat16(this.byteOffset,e,this.littleEndian),this.byteOffset+=2}writeFloat32(e){this.dataView.setFloat32(this.byteOffset,e,this.littleEndian),this.byteOffset+=4}writeString(e){let t=this._textEncoder.encodeInto(e,new Uint8Array(this.dataView.buffer,this.byteOffset));this.byteOffset+=t.written,this.dataView.setUint8(this.byteOffset++,0)}writeSlice(e){let t=Hh(e),s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=e.BYTES_PER_ELEMENT;if(this.needsByteSwap&&r>1)for(let o=0;o<s.length;o+=r)for(let n=r-1;n>=0;n--)this.dataView.setUint8(this.byteOffset++,s[o+n]);else new Uint8Array(this.dataView.buffer,this.byteOffset).set(s),this.byteOffset+=s.length}};function _4(e,t){let s="size"in e?e.size:e.currentByteOffset,r=t-1,o=s&r;"skipBytes"in e?e.skipBytes(t-o&r):e.add(t-o&r)}var Tr=_4,vb=new WeakMap;function hm(e){let t=vb.get(e);if(t)return t;let s=new Qs,r={},o;for(let n in e.propTypes){let i=e.propTypes[n];if(i===void 0)throw new Error(`Property ${n} is undefined in struct`);let d=s.size;Tr(s,Zn(e)?sn(i):ks(i)),o&&(o.padding=s.size-d);let l=kt(i);r[n]={offset:s.size,size:l},o=r[n],s.add(l)}return o&&(o.padding=Er(kt(e),ks(e))-s.size),vb.set(e,r),r}var Ha=Symbol("indirectOffset"),ja=Symbol("indirectContiguous");function p4(e){return typeof e=="object"&&e!==null&&Ha in e&&ja in e}function Ql(e,t){return{[Ha]:e,[ja]:t}}function jh(e,t){if(t===Ha)return e[Ha];if(t===ja)return e[ja]}function Kh(e,t,s=kt(e)){let r=qo(e),o=as(r)?r.componentCount:void 0;if(o!==void 0){let n=kt(r.primitive);return f4(Ql(t,s),n,o)}return Es(r)?h4(r,Ql(t,s)):cr(r)?v4(r,Ql(t,s)):Ql(t,s)}function m4(e,t=0){return Kh(e,t,kt(e))}function f4(e,t,s){let r=e[Ha];return new Proxy(e,{get(o,n){let i=jh(o,n);if(i!==void 0)return i;let d=n==="x"||n==="0"?0:n==="y"||n==="1"?1:n==="z"||n==="2"?2:n==="w"||n==="3"?3:-1;if(d<0||d>=s)return;let l=d*t,c=Math.max(0,o[ja]-l);return Ql(r+l,c)}})}function v4(e,t){let s=e.elementType,r=kt(s),o=Er(r,ks(s)),n=o>r;return new Proxy(t,{get(i,d){let l=jh(i,d);if(l!==void 0)return l;if(d==="length")return e.elementCount;if(typeof d!="string")return;let c=Number(d);if(!Number.isInteger(c)||c<0||c>=e.elementCount)return;let _=c*o,p=sw(s)?Math.max(0,i[ja]-_):r+rw(s),f=n?Math.min(p,r):p;return Kh(s,i[Ha]+_,f)}})}function h4(e,t){let s=hm(e),r=e.propTypes,o=Object.keys(r),n=new Map,i=0;for(let d=0;d<o.length;d++){let l=o[d];if(!l)continue;let c=r[l];if(!c)continue;let _=s[l],p=_.padding??0,f=sw(c);if(!(d===o.length-1||p>0||!f))continue;let h=_.offset+(f?_.size:rw(c));for(let g=i;g<=d;g++){let x=o[g];if(!x)continue;let T=s[x];n.set(x,{offset:T.offset,runEnd:h})}i=d+1}return new Proxy(t,{get(d,l){let c=jh(d,l);if(c!==void 0)return c;if(typeof l!="string")return;let _=n.get(l);if(!_)return;let p=Math.max(0,d[ja]-_.offset),f=Math.max(0,_.runEnd-_.offset),h=r[l];if(h)return Kh(h,d[Ha]+_.offset,kt(e)===_.runEnd?p:f)}})}function y4(e){let t=qo(e);if(Es(t)){let s=hm(t),r=t.propTypes,o=Object.keys(r);for(let n=0;n<o.length;n++){let i=o[n];if(!i)continue;let d=s[i],l=d.padding??0,c=d.offset+d.size;if(n===o.length-1||l>0)return c}return 0}if(cr(t)){let s=t.elementType,r=kt(s),o=Er(r,ks(s)),n=kt(e);return Number.isFinite(n)?o>r?r:n:r}return kt(e)}function D_(e,t){if(!t)return{offset:0,contiguous:y4(e)};let s=t(m4(e));if(p4(s))return{offset:s[Ha],contiguous:s[ja]};throw new Error("memoryLayoutOf: accessor did not return a schema element. Make sure the accessor navigates to a field or element of the schema (e.g. `(s) => s.position.x`).")}function pr(e,t){return fm(e,{[q]:!0,type:"@builtin",params:[t]})}var qr={vertexIndex:pr(Y,"vertex_index"),instanceIndex:pr(Y,"instance_index"),clipDistances:pr(zt(Y,8),"clip_distances"),position:pr(lt,"position"),frontFacing:pr(Ft,"front_facing"),fragDepth:pr(a,"frag_depth"),primitiveIndex:pr(Y,"primitive_index"),sampleIndex:pr(Y,"sample_index"),sampleMask:pr(Y,"sample_mask"),localInvocationId:pr(Ot,"local_invocation_id"),localInvocationIndex:pr(Y,"local_invocation_index"),globalInvocationId:pr(Ot,"global_invocation_id"),globalInvocationIndex:pr(Y,"global_invocation_index"),workgroupId:pr(Ot,"workgroup_id"),workgroupIndex:pr(Y,"workgroup_index"),numWorkgroups:pr(Ot,"num_workgroups"),subgroupInvocationId:pr(Y,"subgroup_invocation_id"),subgroupSize:pr(Y,"subgroup_size"),subgroupId:pr(Y,"subgroup_id"),numSubgroups:pr(Y,"num_subgroups")};var uO=(Fr(),So),u=(Fr(),$t),_O=(Fr(),Sr),tp=(Fr(),xs),He=(Fr(),ns),pO=(Fr(),Ao),v=(Fr(),cs),mO=(Fr(),po),fO=(Fr(),Os),Gi=(Fr(),Ot),vO=(Fr(),Eo),b=(Fr(),lt),hO=(Fr(),Ar),yO=(Fr(),ps),gO=(Fr(),es),xO=(Fr(),ga),rl=(Fr(),xa),bO=(Fr(),Mr);function g4(e){return e?.[$o]}function Zh(e,t={}){let s=0,r=new Set;return Object.fromEntries(Object.entries(e??{}).map(([o,n])=>{let i=qa(n);if(i!==void 0){if(r.has(i))throw new Error("Duplicate custom location attributes found");r.add(i)}return[o,n]}).map(([o,n])=>{if(Nn(n))return[o,n];if(qa(n)!==void 0)return[o,n];if(t[o])return[o,Nf(t[o],n)];for(;r.has(s);)s++;return[o,Nf(s++,n)]}))}function mw(e,t={}){let s=[],r={};for(let[o,n]of Object.entries(e))Nn(n)?s.push({schemaKey:o,type:n}):r[o]=n;return{dataSchema:Object.keys(r).length>0?pm(Zh(r,t),!1):void 0,positionalArgs:s}}function x4(e){let t=Zh(e);return{dataSchema:void 0,positionalArgs:Object.entries(t).map(([s,r])=>({schemaKey:s,type:r}))}}function Fc(e,t={}){return $c(e)?om(e)||Nn(e)||qa(e)!==void 0?e:Nf(0,e):pm(Zh(e,t),!1)}var Sn=class{#e;#t;#s;#r;#o;#n;constructor(e,t,s){this.#e=e,this.#n=t,this.#t={},this.#r=s,this.#s=new Set}accessProp(e){let t=this.#e[e]??this.#n;if(t)return this.provideProp(e,t)}provideProp(e,t){let s=this.#t[e];if(!s){let r=e.replaceAll("$","");if(this.#s.has(r))throw new Error(`Property name '${r}' causes naming clashes. Choose a different name.`);let o=H6(r);if(!o.success)throw new Error(`Invalid property key '${e}'${o.error?`: ${o.error}`:""}`);this.#s.add(r),s={prop:r,type:t},this.#t[e]=s}return s}get completeStruct(){if(!this.#o){this.#o=Fc(Object.fromEntries(Object.values(this.#t).map(t=>[t.prop,t.type])),this.#r);let e=Re(this);e&&Tt(this.#o,e)}return this.#o}[ts](e){return e.resolve(this.completeStruct)}toString(){return`auto-struct:${Re(this)??"<unnamed>"}`}};Sn.prototype[q]={};Sn.prototype.type="auto-struct";var fw=class{[q]={};type="entry-input-router";structArg;positionalArgsMap;constructor(e,t){this.structArg=e,this.positionalArgsMap=new Map(t.map(s=>[s.schemaKey,s.arg]))}toString(){return"entry-input-router"}accessProp(e){let t=this.positionalArgsMap.get(e);if(t)return t();let s=this.structArg?.();if(s&&Es(s.dataType))return{target:s,prop:e}}},b4=["vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","mat2x2f","mat3x3f","mat4x4f"],w4={f:{1:a,2:$t,3:cs,4:lt},h:{1:Zs,2:Sr,3:po,4:Ar},i:{1:oe,2:xs,3:Os,4:ps},u:{1:Y,2:ns,3:Ot,4:es},b:{1:Ft,2:So,3:Ao,4:Eo}};function Rd(e,t){if(b4.includes(e.dataType.type)&&t in Vf){let r=Vf[t];return Ae(new Wh(e,r),os,e.origin,e.possibleSideEffects)}if(cr(e.dataType)&&t==="length")return e.dataType.elementCount===0?Ae(fe`arrayLength(&${e})`,Y,"runtime",e.possibleSideEffects):Vn(e.dataType.elementCount);if(On(e.dataType)&&t==="columns")return Ae(new _6(e),os,e.origin,e.possibleSideEffects);if(Es(e.dataType)||Zn(e.dataType))return w6(e,t);if(e.dataType instanceof Sn){let r=e.dataType.accessProp(t);return r?Ae(fe`${e}.${r.prop}`,r.type,"argument",e.possibleSideEffects):void 0}if(e.dataType instanceof fw){let r=e.dataType.accessProp(t);return Rc(r)?r:r?Rd(r.target,r.prop):void 0}if(Hr(e.dataType)){let r=yh(e);return t==="$"?r:Rd(r,t)}if(as(e.dataType)&&t==="kind")return Ae(e.dataType.type,os,"constant",!1);let s=t.length;if(as(e.dataType)&&s>=1&&s<=4&&/^[xyzw]+$|^[rgba]+$/.test(t)){let r=w4[e.dataType.type.includes("bool")?"b":e.dataType.type[4]][s];return r?Ae(js(e)?e.value[t]:fe`${e}.${t}`,r,s===1?e.origin:e.origin==="constant"||e.origin==="constant-immutable-def"?"constant":"runtime",e.possibleSideEffects):void 0}if(js(e)||e.dataType===os){let r=e.value[t];return $d(r)&&Re(r)===void 0&&Tt(r,t),To(r)}}var hb={mat2x2f:$t,mat3x3f:cs,mat4x4f:lt};function ym(e,t){let s=typeof t=="number"?To(t):t;if(cr(e.dataType)||Vi(e.dataType)){let r=e.dataType.elementType,o;return e.origin==="constant-immutable-def"?o=s.origin==="constant"||s.origin==="constant-immutable-def"?"constant-immutable-def":"runtime-immutable-def":e.origin==="constant"?o=s.origin==="constant"||s.origin==="constant-immutable-def"?"constant":"runtime":o=e.origin,e.value instanceof oc&&js(s)?e.value.elements[s.value]:Ae(js(e)&&js(s)?e.value[s.value]:fe`${e}[${s}]`,r,o,e.possibleSideEffects||s.possibleSideEffects)}if(as(e.dataType))return Ae(js(e)&&js(s)?e.value[s.value]:fe`${e}[${s}]`,e.dataType.primitive,e.origin,e.possibleSideEffects||s.possibleSideEffects);if(Hr(e.dataType))return ym(yh(e),s);if(e.value instanceof _6){let r=hb[e.value.matrix.dataType.type];return Ae(fe`${e.value.matrix}[${s}]`,r,e.origin,e.possibleSideEffects||s.possibleSideEffects)}if(e.dataType.type in hb)throw new Error("The only way of accessing matrix elements in TypeGPU functions is through the 'columns' property.");if(js(e)&&js(s))return To(e.value[s.value]);if(Es(e.dataType)&&js(s)&&typeof s.value=="string")return Rd(e,s.value)}var Ud={get(e,t){if(t in e)return Reflect.get(e,t);if(t==="toString"||t===Symbol.toStringTag||t===Symbol.toPrimitive)return()=>e.toString();if(typeof t=="symbol")return;let s=im(e),r=Number(t);if(!Number.isNaN(r)){let n=ym(s,r);return n?new Proxy({[q]:!0,[ts]:i=>i.resolveSnippet(n),[Na]:n,toString:()=>`${String(e)}[${t}]`},Ud):void 0}let o=Rd(s,String(t));if(o)return new Proxy({[q]:!0,[ts]:n=>n.resolveSnippet(o),[Na]:o,toString:()=>`${String(e)}.${t}`},Ud)}};function sp(e){let t=e;for(;;){let s=g4(t);if(!s)break;t=s}return t}function Qn(e,t){return Object.defineProperty(e,$o,{get(){if("get"in t.codegenMode)return t.codegenMode.get.apply(this);let s=this;return new Proxy({[q]:!0,get[Na](){if(!("getBaseSnippet"in t.codegenMode))throw new Error("Expected 'getBaseSnippet' to be defined.");return t.codegenMode.getBaseSnippet.apply(s,[this])},[ts]:r=>r.resolve(s),toString:()=>`${s.toString()}.$`},Ud)}}),Object.defineProperty(e,"$",{get(){let s=Vx();return s.type==="codegen"?this[$o]:s.type==="simulate"?t.simulateMode?.get?t.simulateMode.get.apply(this,[s]):t.normalMode.get.apply(this):s.type==="normal"?t.normalMode.get.apply(this):vc(s,"makeDereferenceable.ts#$ (get)")},set(s){let r=Vx();if(r.type==="normal"){if(!t.normalMode.set)throw new Error(`'${this.toString()}' cannot be set in normal mode`);t.normalMode.set.apply(this,[s]);return}if(r.type==="simulate"){if(t.simulateMode?.set)t.simulateMode.set.apply(this,[r,s]);else if(t.normalMode.set)t.normalMode.set.apply(this,[s]);else throw new Error(`'${this.toString()}' cannot be set in simulate mode`);return}if(r.type==="codegen")throw new Error("Unreachable makeDerefenceable.ts#$ (set)");return vc(r,"makeDereferenceable.ts#$ (set)")}}),e}function wa(e,t){return Rt(e)||Object.defineProperty(e,q,{value:!0,writable:!0}),Object.defineProperty(e,"toString",{value(){return t.asString.apply(this)}}),Object.defineProperty(e,ts,{value(s){return t.resolve.apply(this,[s])}}),e}function Qh(e,t){if(!$c(e)){if(!Array.isArray(t))throw new Error(`Expected an array value for a partially-applied array schema, but received: ${typeof t}.`);return new yb(e(t.length),t)}return new yb(e,t)}function vw(e){let t=Reflect.ownKeys(e);for(let s of t){let r=e[s];(r&&typeof r=="object"||typeof r=="function")&&vw(r)}return Object.freeze(e)}var yb=class L_{[be];static#e=void(L_.prototype[q]={},L_.prototype.resourceType="const",Qn(wa(L_.prototype,{asString(){return`const:${Re(this)??"<unnamed>"}`},resolve(t){let s=t.makeUniqueIdentifier(Re(this),"global");return t.gen.declareGlobalConst({id:s,dataType:this.dataType,init:Ae(this[be].value,this.dataType,"constant")})}}),{codegenMode:{getBaseSnippet(t){return Ae(t,this.dataType,"constant-immutable-def",!1)}},normalMode:{get(){return this[be].value}}}));constructor(t,s){this[be]={type:"const",dataType:t,value:s&&typeof s=="object"?vw(s):s,label:void 0}}get dataType(){return this[be].dataType}$name(t){return Tt(this,t),this}};function T4(e){return qk(e)||am(e)||Cd(e)}function gb(e){let t=e.pluginProvided??e.userProvided??{},s=Object.defineProperties({},Object.getOwnPropertyDescriptors(t));for(let r of[e.args,e.out].filter(o=>o!==void 0))for(let[o,n]of Object.entries(r)){if(o in s&&s[o]!==n)throw new Error(`Key '${o}' appears in externals despite already being used for argument/return type. Please rename this external.`);s[o]=n}return s}function S4(e,t,s){let r=[...e.matchAll(/:\s*(?<arg>.*?)\s*[,)]/g)].map(n=>n?.[1]),o=Object.fromEntries(t.flatMap((n,i)=>{let d=r?.[i];return Es(n)&&d!==void 0?[[d,n]]:[]}));s.setExternals("args",o)}function hw(e,t,s){let r=e.match(/->\s(?<output>[\w\d_]+)\s{/),o=r?r[1]?.trim():void 0;Es(t)&&o&&!/\s/g.test(o)&&s.setExternals("out",{[o]:t})}var xb=/([$_\p{XID_Start}][$\p{XID_Continue}]*)/u,A4=new RegExp(`(${xb.source})(\\.${xb.source})*`,"ug"),E4=new RegExp(`(?<![\\p{XID_Continue}\\$.])${A4.source}(?![\\p{XID_Continue}\\$])`,"ug");function gm(e,t,s){let r=Object.keys(t);if(r.length===0)return s;let o=r.find(n=>n.includes("."));if(o)throw new Error(`External key '${o}' contains invalid character '.'`);return s.replaceAll(E4,n=>{let i=n.split(".");if(!Object.hasOwn(t,i.at(0)))return n;let d=t,l="";for(let[c,_]of i.entries()){if(d=d[_],T4(d)||typeof d=="string"){l=i.slice(c+1).map(p=>`.${p}`).join(""),$d(d)&&Re(d)===void 0&&Tt(d,i.slice(0,c+1).join("_"));break}if(typeof d!="object"||d===null||c===i.length-1)return fs.warn("external-omitted",`During resolution, the external '${i.slice(0,c+1).join(".")}' has been omitted. Only TGPU resources, 'use gpu' functions, primitives, and plain JS objects can be used as externals.`),n}return e.resolve(d).value+l})}var P4=class{[q]=!0;#e;constructor(e){this.#e=e}[ts](){return Ae(this.#e,os,"runtime",!0)}},Jh=new Set([`
|
|
`,"\v","\f","\r","\x85","\u2028","\u2029"]),yw=new Set([...Jh," "," ","\u200E","\u200F"]);function M4(e){let{strippedCode:t,argRange:s}=k4(e),r=new gw(t);r.consume("(");let o=[];for(;!r.isAt(")");){let i=[];for(;r.isAt("@");)r.parseUntil(bb,wb),r.consume(")"),i.push(r.lastParsed);r.parseUntil($4);let d=r.lastParsed,l;r.isAt(":")&&(r.consume(":"),r.parseUntil(C4,U4),l=r.lastParsed),o.push({identifier:d,attributes:i,type:l}),r.isAt(",")&&r.consume(",")}r.consume(")");let n;if(r.isAt("->")){r.consume("->");let i=[];for(;r.isAt("@");)r.parseUntil(bb,wb),r.consume(")"),i.push(r.lastParsed);n={type:r.str.slice(r.pos),attributes:i}}return{args:o,ret:n,range:{begin:s[0],end:s[1]}}}function k4(e){let t=new gw(e),s="",r;for(;!t.isFinished();){if(t.isAt(yw)){t.advanceBy(1);continue}if(t.isAt("//")){t.consume("//"),t.parseUntil(Jh),t.advanceBy(1);continue}if(t.isAt("/*")){t.parseUntil(R4,z4),t.consume("*/");continue}if(t.isAt("{"))return{strippedCode:s,argRange:[r,t.pos]};t.isAt("(")&&r===void 0&&(r=t.pos),r!==void 0&&(s+=t.str[t.pos]),t.advanceBy(1)}throw new Error("Invalid wgsl code!")}var gw=class{str;#e;#t;constructor(e){this.str=e,this.#t=0}get pos(){return this.#t}get lastParsed(){if(this.#e===void 0)throw new Error("Parse was not called yet!");return this.str.slice(this.#e,this.pos)}isFinished(){return this.#t>=this.str.length}isAt(e){if(typeof e=="string"){for(let t=0;t<e.length;t++)if(this.str[this.#t+t]!==e[t])return!1;return!0}for(let t of e)if(this.isAt(t))return!0;return!1}parseUntil(e,t){this.#e=this.#t;let s=0;for(;this.#t<this.str.length;){if(t&&this.isAt(t[0])&&(s+=1),t&&this.isAt(t[1])&&(s-=1),s===0&&this.isAt(e))return this.#t;this.#t+=1}throw new Error("Reached the end of the string without finding a match!")}advanceBy(e){this.#t+=e}consume(e){if(!this.isAt(e))throw new Error(`Expected '${e}' at position ${this.#t}, but found '${this.str.slice(this.#t,this.#t+e.length)}'`);this.advanceBy(e.length)}},bb=new Set([")"]),$4=new Set([":",",",")"]),C4=new Set([",",")"]),R4=new Set(["*/"]),wb=["(",")"],U4=["<",">"],z4=["/*","*/"];function Hi(e,t,s){let r={};return{[Pr]:typeof e=="function"?e:void 0,setExternals(o,n){if(o==="userProvided"&&"userProvided"in r)throw new Error("Cannot call '$uses' multiple times. If you wish to override dependencies, use slots or accessors instead.");if(r[o]=n,r.userProvided&&r.pluginProvided)throw new Error("Cannot call '$uses' on functions whose metadata was provided by unplugin-typegpu.")},resolve(o,n,i,d){let l="";t==="compute"?l=`@compute @workgroup_size(${s?.join(", ")}) `:t==="vertex"?l="@vertex ":t==="fragment"&&(l="@fragment ");let c=o.makeUniqueIdentifier(Re(this),"global");if(typeof e=="string"){if(!i)throw new Error("Explicit return type is required for string implementation");if(d){for(let E of d.positionalArgs){let M=_m(E.schemaKey);if(!M.success)throw new Error(`Invalid argument name "${E.schemaKey}"${M.error?`: ${M.error}`:""}`);if(o.isIdentifierBanned(E.schemaKey))throw new Error(`Invalid argument name "${E.schemaKey}", the identifier is a reserved keyword.`)}this.setExternals("args",{in:Object.fromEntries(d.positionalArgs.map(E=>[E.schemaKey,new P4(E.schemaKey)]))})}let T=gm(o,gb(r),e),S="",A="";if(t!=="normal"&&d){let{dataSchema:E,positionalArgs:M}=d,$=[];E&&Tb("in",T)&&$.push(`in: ${o.resolve(E).value}`);for(let D of M){let G=D.schemaKey;Tb(G,T)&&$.push(`${hc(D.type)}${G}: ${o.resolve(D.type).value}`)}let L=`(${$.join(", ")})`,B=Oi(i)?hc(i):"";S=`${L}${i!==Ns?Es(i)?` -> ${o.resolve(i).value} `:` -> ${B!==""?B:"@location(0)"} ${o.resolve(i).value} `:" "}`,A=T}else{let E=M4(T);if(E.args.length!==n.length)throw new Error(`WGSL implementation has ${E.args.length} arguments, while the shell has ${n.length} arguments.`);S=`(${E.args.map((M,$)=>`${M.identifier}: ${Sb(o,`parameter ${M.identifier}`,M.type,n[$])}`).join(", ")})${i===Ns?" ":` -> ${Sb(o,"return type",E.ret?.type,i)} `}`,A=T.slice(E.range.end)}return o.addDeclaration(`${l}fn ${c}${S}${A}`,c),Ae(c,i,"runtime")}let _=mh(e),p=_?.externals();p&&this.setExternals("pluginProvided",p);let f=_?.ast;if(!f)throw new Error("Missing metadata for tgpu.fn function body (either missing 'use gpu' directive, or misconfigured `unplugin-typegpu`)");let h=f.params[1];h&&h.type==="i"&&t!=="normal"&&this.setExternals("out",{[h.name]:qo(i)});let{code:g,returnType:x}=o.resolveFunction({functionType:t,name:c,workgroupSize:s,argTypes:n,entryInput:d,params:f.params,returnType:i,body:f.body,externalMap:gb(r)});return o.addDeclaration(g,c),Ae(c,x,"runtime")}}}function Tb(e,t){return new RegExp(`\\b${e}\\b`).test(t)}function Sb(e,t,s,r){let o=e.resolve(r).value.replace(/\s/g,"");if(!s)return o;let n=s.replace(/\s/g,"");if(n!==o)throw new Error(`Type mismatch between TGPU shell and WGSL code string: ${t}, JS type "${o}", WGSL type "${n}".`);return s}function xm(e,...t){return G4(e)?D4(e,...t):e}function G4(e){return Array.isArray(e)&&"raw"in e&&Array.isArray(e.raw)&&e.raw.every(t=>typeof t=="string")}function D4(e,...t){return e.slice(1).reduce((s,r,o)=>`${s}${t[o]}${r}`,e[0])}function gs(e,t){if(typeof e=="function")return bw(e,[]);let s=e,r={[q]:!0,argTypes:s,returnType:t??Ns};return Object.assign((n,...i)=>L4(r,xm(n,...i)),r)}function qf(e){return Rt(e)&&e?.resourceType==="function"}function Xf(e){return Rt(e)&&e?.resourceType==="generic-function"}function xw([e,t]){return`${Re(e)??"<unnamed>"}=${t}`}function L4(e,t){let s=[],r;Xf(t)?(s=t[co]?.pairs??[],r=t[q].inner):r=t;let o=Hi(r,"normal"),n={shell:e,resourceType:"function",[q]:{implementation:r},$uses(l){return o.setExternals("userProvided",l),this},[Pr]:o,$name(l){return Tt(this,l),this},with:nn((l,c)=>Hf(d,[[Jd(l)||el(l)?l.slot:l,c]])),[ts](l){return typeof r=="string"&&(S4(r,e.argTypes,o),hw(r,e.returnType,o)),o.resolve(l,e.argTypes,e.returnType)}},i=we({name:void 0,noComptime:!0,signature:{argTypes:e.argTypes,returnType:e.returnType},normalImpl:(...l)=>Xk(()=>{try{if(typeof r=="string")throw new Error("Cannot execute on the CPU functions constructed with raw WGSL");let c=l.map((p,f)=>Xa(e.argTypes[f],p)),_=r(...c);return Xa(e.returnType,_)}catch(c){throw c instanceof Yx?c.appendToTrace(d):new Yx(c,[d])}}),codegenImpl:(l,c)=>l.withResetIndentLevel(()=>fe`${l.resolve(d).value}(${c})`),sideEffects:!0}),d=Object.assign(i,n);return Object.defineProperty(d,"toString",{value(){return`fn:${Re(o)??"<unnamed>"}`}}),s.length>0?Hf(d,s):d}function Hf(e,t){let s={resourceType:"function",shell:e.shell,[q]:{implementation:e[q].implementation},[co]:{inner:e,pairs:t},$uses(i){return e.$uses(i),this},$name(i){return Tt(this,i),this},with:nn((i,d)=>{let l=Jd(i)||el(i)?i.slot:i;return Hf(e,[...t,[l,d]])})},r=we({name:void 0,noComptime:!0,signature:{argTypes:e.shell.argTypes,returnType:e.shell.returnType},normalImpl:e,codegenImpl:(i,d)=>i.withResetIndentLevel(()=>fe`${i.resolve(o).value}(${d})`),sideEffects:!0}),o=Object.assign(r,s);Object.defineProperty(o,"toString",{value(){return`fn:${Re(this)??"<unnamed>"}[${t.map(xw).join(", ")}]`}});let n=Re(e);return n&&Tt(o,n),o}function bw(e,t){let s={[q]:{inner:e},resourceType:"generic-function",[co]:t.length>0?{inner:e,pairs:t}:void 0,$name(i){return Tt(this,i),Re(e)||Tt(e,i),this},[ts](i){return i.resolve(e)},with(i,d){let l=Jd(i)||el(i)?i.slot:i;return bw(e,[...t,[l,d]])}},o=Object.assign((...i)=>e(...i),s),n=Re(e);return n&&Tt(o,n),Object.defineProperty(o,"toString",{value(){let i=Re(o)??"<unnamed>";return t.length>0?`fn*:${i}[${t.map(xw).join(", ")}]`:`fn*:${i}`}}),o}var F4={block:0,binaryExpr:1,assignmentExpr:2,logicalExpr:3,unaryExpr:4,numericLiteral:5,call:6,memberAccess:7,indexAccess:8,return:10,if:11,let:12,const:13,for:14,while:15,continue:16,break:17,forOf:18,arrayExpr:100,preUpdate:101,postUpdate:102,stringLiteral:103,objectExpr:104,conditionalExpr:105},Jl={identifier:"i",destructuredObject:"d"},ww=Pn({FuncParameterType:()=>Jl,NodeTypeCatalog:()=>F4}),ey=e=>({argTypes:[e],returnType:e}),ty=(...e)=>{let t=jr(e)??e;return{argTypes:t,returnType:t[0]}},Ht=e=>(...t)=>{let s=jr(t,e);if(!s)throw new er(t,e);return{argTypes:s,returnType:s[0]}};function Tw(e){return(t,...s)=>{let r=t;for(let o of s)r=e(r,o);return r}}function Sw(e){return(t,[s,...r])=>{let o=fe`${s}`;for(let n of r)o=fe`${e}(${o}, ${n})`;return o}}var B4=[a,Zs,Fi],yc=[$t,cs,lt,Sr,po,Ar],Xt=[...B4,...yc],I4=[oe,Y],Y4=[xs,Os,ps,ns,Ot,es],fa=[...I4,...Y4];function W4(e){return qt(Math.abs,[e])}var W=we({name:"abs",signature:ey,normalImpl:W4,codegenImpl:(e,[t])=>fe`abs(${t})`,sideEffects:!1});function O4(e){return qt(Math.acos,[e])}var V4=we({name:"acos",signature:Ht(Xt),normalImpl:O4,codegenImpl:(e,[t])=>fe`acos(${t})`,sideEffects:!1});function N4(e){return qt(Math.acosh,[e])}var q4=we({name:"acosh",signature:Ht(Xt),normalImpl:N4,codegenImpl:(e,[t])=>fe`acosh(${t})`,sideEffects:!1});function X4(e){return qt(Math.asin,[e])}var jf=we({name:"asin",signature:Ht(Xt),normalImpl:X4,codegenImpl:(e,[t])=>fe`asin(${t})`,sideEffects:!1});function H4(e){return qt(Math.asinh,[e])}var j4=we({name:"asinh",signature:Ht(Xt),normalImpl:H4,codegenImpl:(e,[t])=>fe`asinh(${t})`,sideEffects:!1});function K4(e){return qt(Math.atan,[e])}var Z4=we({name:"atan",signature:Ht(Xt),normalImpl:K4,codegenImpl:(e,[t])=>fe`atan(${t})`,sideEffects:!1});function Q4(e){return qt(Math.atanh,[e])}var J4=we({name:"atanh",signature:Ht(Xt),normalImpl:Q4,codegenImpl:(e,[t])=>fe`atanh(${t})`,sideEffects:!1});function eR(e,t){return qt(Math.atan2,[e,t])}var bt=we({name:"atan2",signature:Ht(Xt),normalImpl:eR,codegenImpl:(e,[t,s])=>fe`atan2(${t}, ${s})`,sideEffects:!1});function tR(e){return qt(Math.ceil,[e])}var ac=we({name:"ceil",signature:Ht(Xt),normalImpl:tR,codegenImpl:(e,[t])=>fe`ceil(${t})`,sideEffects:!1});function sR(e,t,s){return qt(B6,[e,t,s])}var z=we({name:"clamp",signature:ty,normalImpl:sR,codegenImpl:(e,[t,s,r])=>fe`clamp(${t}, ${s}, ${r})`,sideEffects:!1});function rR(e){return qt(Math.cos,[e])}var J=we({name:"cos",signature:Ht(Xt),normalImpl:rR,codegenImpl:(e,[t])=>fe`cos(${t})`,sideEffects:!1});function oR(e){return qt(Math.cosh,[e])}var nR=we({name:"cosh",signature:Ht(Xt),normalImpl:oR,codegenImpl:(e,[t])=>fe`cosh(${t})`,sideEffects:!1}),aR=we({name:"countLeadingZeros",signature:Ht(fa),normalImpl:"CPU implementation for countLeadingZeros not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`countLeadingZeros(${t})`,sideEffects:!1});we({name:"countOneBits",signature:Ht(fa),normalImpl:"CPU implementation for countOneBits not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`countOneBits(${t})`,sideEffects:!1});we({name:"countTrailingZeros",signature:Ht(fa),normalImpl:"CPU implementation for countTrailingZeros not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`countTrailingZeros(${t})`,sideEffects:!1});var wO=we({name:"cross",signature:Ht([cs,po]),normalImpl:(e,t)=>Mo.cross[e.kind](e,t),codegenImpl:(e,[t,s])=>fe`cross(${t}, ${s})`,sideEffects:!1});function iR(e){if(typeof e=="number")return e*180/Math.PI;throw new vr("CPU implementation for degrees on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}we({name:"degrees",signature:Ht(Xt),normalImpl:iR,codegenImpl:(e,[t])=>fe`degrees(${t})`,sideEffects:!1});we({name:"determinant",signature:e=>{if(!(e.type==="mat2x2f"||e.type==="mat3x3f"||e.type==="mat4x4f"))throw new er([e],[ga,xa,Mr]);return{argTypes:[e],returnType:a}},normalImpl:"CPU implementation for determinant not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`determinant(${t})`,sideEffects:!1});function dR(e,t){return typeof e=="number"&&typeof t=="number"?Math.abs(e-t):te(It(e,t))}we({name:"distance",signature:(...e)=>{let t=jr(e,Xt);if(!t)throw new er(e,Xt);return{argTypes:t,returnType:ph(t[0])?Zs:a}},normalImpl:dR,codegenImpl:(e,[t,s])=>fe`distance(${t}, ${s})`,sideEffects:!1});var le=we({name:"dot",signature:(...e)=>({argTypes:e,returnType:e[0].primitive}),normalImpl:(e,t)=>Mo.dot[e.kind](e,t),codegenImpl:(e,[t,s])=>fe`dot(${t}, ${s})`,sideEffects:!1});we({name:"dot4U8Packed",signature:{argTypes:[Y,Y],returnType:Y},normalImpl:"CPU implementation for dot4U8Packed not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s])=>fe`dot4U8Packed(${t}, ${s})`,sideEffects:!1});we({name:"dot4I8Packed",signature:{argTypes:[Y,Y],returnType:oe},normalImpl:"CPU implementation for dot4I8Packed not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s])=>fe`dot4I8Packed(${t}, ${s})`,sideEffects:!1});function lR(e){return qt(Math.exp,[e])}var Mt=we({name:"exp",signature:Ht(Xt),normalImpl:lR,codegenImpl:(e,[t])=>fe`exp(${t})`,sideEffects:!1});function cR(e){return qt(t=>2**t,[e])}var rp=we({name:"exp2",signature:Ht(Xt),normalImpl:cR,codegenImpl:(e,[t])=>fe`exp2(${t})`,sideEffects:!1}),TO=we({name:"extractBits",signature:(e,t,s)=>{let r=jr([e],fa)?.[0];if(!r)throw new er([e],fa);return{argTypes:[r,Y,Y],returnType:r}},normalImpl:"CPU implementation for extractBits not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s,r])=>fe`extractBits(${t}, ${s}, ${r})`,sideEffects:!1});we({name:"faceForward",signature:Ht(yc),normalImpl:"CPU implementation for faceForward not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s,r])=>fe`faceForward(${t}, ${s}, ${r})`,sideEffects:!1});we({name:"firstLeadingBit",signature:ey,normalImpl:"CPU implementation for firstLeadingBit not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`firstLeadingBit(${t})`,sideEffects:!1});we({name:"firstTrailingBit",signature:Ht(fa),normalImpl:"CPU implementation for firstTrailingBit not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`firstTrailingBit(${t})`,sideEffects:!1});function uR(e){return qt(Math.floor,[e])}var K=we({name:"floor",signature:Ht(Xt),normalImpl:uR,codegenImpl:(e,[t])=>fe`floor(${t})`,sideEffects:!1});function _R(e,t,s){if(typeof e=="number")return e*t+s;throw new vr("CPU implementation for fma on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}we({name:"fma",signature:Ht(Xt),normalImpl:_R,codegenImpl:(e,[t,s,r])=>fe`fma(${t}, ${s}, ${r})`,sideEffects:!1});function pR(e){return qt(t=>t-Math.floor(t),[e])}var ve=we({name:"fract",signature:Ht(Xt),normalImpl:pR,codegenImpl:(e,[t])=>fe`fract(${t})`,sideEffects:!1}),mR={f32:zr({fract:a,exp:oe}),f16:zr({fract:Zs,exp:oe}),abstractFloat:zr({fract:Fi,exp:Uc}),vec2f:zr({fract:$t,exp:xs}),vec3f:zr({fract:cs,exp:Os}),vec4f:zr({fract:lt,exp:ps}),vec2h:zr({fract:Sr,exp:xs}),vec3h:zr({fract:po,exp:Os}),vec4h:zr({fract:Ar,exp:ps})};we({name:"frexp",normalImpl:"CPU implementation for frexp not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",signature:e=>{let t=mR[e.type];if(!t)throw new er([e],Xt);return{argTypes:[e],returnType:t}},codegenImpl:(e,[t])=>fe`frexp(${t})`,sideEffects:!1});we({name:"insertBits",signature:(e,t,s,r)=>{let o=jr([e,t],fa);if(!o)throw new er([e,t],fa);return{argTypes:[...o,Y,Y],returnType:o[0]}},normalImpl:"CPU implementation for insertBits not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s,r,o])=>fe`insertBits(${t}, ${s}, ${r}, ${o})`,sideEffects:!1});function fR(e){if(typeof e=="number")return 1/Math.sqrt(e);throw new vr("CPU implementation for inverseSqrt on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}we({name:"inverseSqrt",signature:Ht(Xt),normalImpl:fR,codegenImpl:(e,[t])=>fe`inverseSqrt(${t})`,sideEffects:!1});we({name:"ldexp",signature:(e,t)=>{switch(e.type){case"abstractFloat":return{argTypes:[e,Uc],returnType:e};case"f32":case"f16":return{argTypes:[e,oe],returnType:e};case"vec2f":case"vec2h":return{argTypes:[e,xs],returnType:e};case"vec3f":case"vec3h":return{argTypes:[e,Os],returnType:e};case"vec4f":case"vec4h":return{argTypes:[e,ps],returnType:e};default:throw new Error(`Unsupported data type for ldexp: ${e.type}. Supported types are abstractFloat, f32, f16, vec2f, vec2h, vec3f, vec3h, vec4f, vec4h.`)}},normalImpl:"CPU implementation for ldexp not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s])=>fe`ldexp(${t}, ${s})`,sideEffects:!1});function vR(e){return typeof e=="number"?Math.abs(e):Mo.length[e.kind](e)}var te=we({name:"length",signature:e=>{let t=jr([e],Xt);if(!t)throw new er([e],Xt);return{argTypes:t,returnType:ph(t[0])?Zs:a}},normalImpl:vR,codegenImpl:(e,[t])=>fe`length(${t})`,sideEffects:!1});function hR(e){return qt(Math.log,[e])}var yR=we({name:"log",signature:Ht(Xt),normalImpl:hR,codegenImpl:(e,[t])=>fe`log(${t})`,sideEffects:!1});function gR(e){return qt(Math.log2,[e])}var Kf=we({name:"log2",signature:Ht(Xt),normalImpl:gR,codegenImpl:(e,[t])=>fe`log2(${t})`,sideEffects:!1});function xR(e,t){return qt(Math.max,[e,t])}var w=we({name:"max",signature:ty,normalImpl:Tw(xR),codegenImpl:Sw("max"),sideEffects:!1});function bR(e,t){return qt(Math.min,[e,t])}var ue=we({name:"min",signature:ty,normalImpl:Tw(bR),codegenImpl:Sw("min"),sideEffects:!1});function wR(e,t,s){return qt((r,o,n)=>r*(1-n)+o*n,[e,...Ih([t,s])])}var Z=we({name:"mix",signature:(e,t,s)=>{if(e.type.startsWith("vec")&&!s.type.startsWith("vec")){let o=jr([s],[e.primitive]);if(!o)throw new er([s],[e.primitive]);return{argTypes:[e,t,o[0]],returnType:e}}let r=jr([e,t,s],Xt);if(!r)throw new er([e,t,s],Xt);return{argTypes:r,returnType:r[0]}},normalImpl:wR,codegenImpl:(e,[t,s,r])=>fe`mix(${t}, ${s}, ${r})`,sideEffects:!1}),TR={f32:zr({fract:a,whole:a}),f16:zr({fract:Zs,whole:Zs}),abstractFloat:zr({fract:Fi,whole:Fi}),vec2f:zr({fract:$t,whole:$t}),vec3f:zr({fract:cs,whole:cs}),vec4f:zr({fract:lt,whole:lt}),vec2h:zr({fract:Sr,whole:Sr}),vec3h:zr({fract:po,whole:po}),vec4h:zr({fract:Ar,whole:Ar})};we({name:"modf",signature:e=>{let t=TR[e.type];if(!t)throw new Error(`Unsupported data type for modf: ${e.type}. Supported types are f32, f16, abstractFloat, vec2f, vec3f, vec4f, vec2h, vec3h, vec4h.`);return{argTypes:[e],returnType:t}},normalImpl:"CPU implementation for modf not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`modf(${t})`,sideEffects:!1});var Rs=we({name:"normalize",signature:Ht(yc),normalImpl:e=>{let t=te(e);return qt(s=>s/t,[e])},codegenImpl:(e,[t])=>fe`normalize(${t})`,sideEffects:!1});function SR(e,t){return qt((s,r)=>s**r,[e,t])}var Ye=we({name:"pow",signature:Ht(Xt),normalImpl:SR,codegenImpl:(e,[t,s])=>fe`pow(${t}, ${s})`,sideEffects:!1});we({name:"quantizeToF16",signature:e=>{let t=[$t,cs,lt,a],s=jr([e],t)?.[0];if(!s)throw new er([e],t);return{argTypes:[s],returnType:s}},normalImpl:"CPU implementation for quantizeToF16 not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`quantizeToF16(${t})`,sideEffects:!1});function AR(e){if(typeof e=="number")return e*Math.PI/180;throw new vr("CPU implementation for radians on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Ab=we({name:"radians",signature:Ht(Xt),normalImpl:AR,codegenImpl:(e,[t])=>fe`radians(${t})`,sideEffects:!1});we({name:"reflect",signature:(...e)=>{let t=jr(e,yc);if(!t)throw new er(e,yc);return{argTypes:t,returnType:t[0]}},normalImpl:(e,t)=>It(e,Kr(2*le(t,e),t)),codegenImpl:(e,[t,s])=>fe`reflect(${t}, ${s})`,sideEffects:!1});we({name:"refract",normalImpl:"CPU implementation for refract not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s,r])=>fe`refract(${t}, ${s}, ${r})`,signature:(e,t,s)=>({argTypes:[e,t,ph(e)?Zs:a],returnType:e}),sideEffects:!1});we({name:"reverseBits",signature:Ht(fa),normalImpl:"CPU implementation for reverseBits not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`reverseBits(${t})`,sideEffects:!1});function ER(e){if(typeof e=="number"){let t=Math.floor(e);return e===t+.5?t%2===0?t:t+1:Math.round(e)}throw new vr("CPU implementation for round on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Wa=we({name:"round",signature:Ht(Xt),normalImpl:ER,codegenImpl:(e,[t])=>fe`round(${t})`,sideEffects:!1});function PR(e){if(typeof e=="number")return Math.max(0,Math.min(1,e));throw new vr("CPU implementation for saturate on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}we({name:"saturate",signature:Ht(Xt),normalImpl:PR,codegenImpl:(e,[t])=>e.gen.emitCall("saturate",[],[t]),sideEffects:!1});function MR(e){return qt(Math.sign,[e])}var ir=we({name:"sign",signature:e=>{let t=[...Xt,oe,xs,Os,ps],s=jr([e],t)?.[0];if(!s)throw new er([e],t);return{argTypes:[s],returnType:s}},normalImpl:MR,codegenImpl:(e,[t])=>fe`sign(${t})`,sideEffects:!1});function kR(e){return qt(Math.sin,[e])}var O=we({name:"sin",signature:Ht(Xt),normalImpl:kR,codegenImpl:(e,[t])=>fe`sin(${t})`,sideEffects:!1});function $R(e){return qt(Math.sinh,[e])}var CR=we({name:"sinh",signature:Ht(Xt),normalImpl:$R,codegenImpl:(e,[t])=>fe`sinh(${t})`,sideEffects:!1});function RR(e,t,s){return qt(A$,[e,t,s])}var ce=we({name:"smoothstep",signature:Ht(Xt),normalImpl:RR,codegenImpl:(e,[t,s,r])=>fe`smoothstep(${t}, ${s}, ${r})`,sideEffects:!1});function UR(e){return qt(Math.sqrt,[e])}var $e=we({name:"sqrt",signature:Ht(Xt),normalImpl:UR,codegenImpl:(e,[t])=>fe`sqrt(${t})`,sideEffects:!1});function zR(e,t){if(typeof e=="number")return e<=t?1:0;throw new vr("CPU implementation for step on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var ot=we({name:"step",signature:Ht(Xt),normalImpl:zR,codegenImpl:(e,[t,s])=>fe`step(${t}, ${s})`,sideEffects:!1});function GR(e){if(typeof e=="number")return Math.tan(e);throw new vr("CPU implementation for tan on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Zf=we({name:"tan",signature:Ht(Xt),normalImpl:GR,codegenImpl:(e,[t])=>fe`tan(${t})`,sideEffects:!1});function DR(e){return qt(Math.tanh,[e])}var LR=we({name:"tanh",signature:Ht(Xt),normalImpl:DR,codegenImpl:(e,[t])=>fe`tanh(${t})`,sideEffects:!1});function FR(e){let t=nm(e)(),s=e.columns,r=t.columns;if(s.length===2)r[0][0]=s[0][0],r[0][1]=s[1][0],r[1][0]=s[0][1],r[1][1]=s[1][1];else if(s.length===3){r[0][0]=s[0][0],r[0][1]=s[1][0],r[0][2]=s[2][0],r[1][0]=s[0][1],r[1][1]=s[1][1],r[1][2]=s[2][1];let o=r[2];o[0]=s[0][2],o[1]=s[1][2],o[2]=s[2][2]}else if(s.length===4){r[0][0]=s[0][0],r[0][1]=s[1][0],r[0][2]=s[2][0],r[0][3]=s[3][0],r[1][0]=s[0][1],r[1][1]=s[1][1],r[1][2]=s[2][1],r[1][3]=s[3][1];let o=r[2];o[0]=s[0][2],o[1]=s[1][2],o[2]=s[2][2],o[3]=s[3][2];let n=r[3];n[0]=s[0][3],n[1]=s[1][3],n[2]=s[2][3],n[3]=s[3][3]}else vc(s,"std/numeric.ts#cpuTranspose");return t}we({name:"transpose",signature:ey,normalImpl:FR,codegenImpl:(e,[t])=>fe`transpose(${t})`,sideEffects:!1});var BR=we({name:"trunc",signature:Ht(Xt),normalImpl:"CPU implementation for trunc not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>fe`trunc(${t})`,sideEffects:!1});function IR(e,t){if(typeof e!="number"||typeof t!="number")throw new Error("std.intdiv called with invalid arguments.");return Math.trunc(Math.trunc(e)/Math.trunc(t))}we({name:"intdiv",signature:(e,t)=>{let s=jr([e,t],[Y,oe]);if(!s)throw new er([e,t],[Y,oe,Uc]);return{argTypes:s,returnType:s[0]}},normalImpl:IR,codegenImpl:(e,[t,s])=>e.gen.emitBinaryOp(t,"/",s),sideEffects:!1});function op(e){return Xr(e)||xn(e)?nm(e)(e):Array.isArray(e)?e.map(op):typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e).map(([t,s])=>[t,op(s)])):e}we({name:"copy",signature:e=>({argTypes:[e],returnType:e}),normalImpl:op,codegenImpl(e,[t]){return fe`${t}`},sideEffects:!1});function ol(e){return e.type.includes("2")?So:e.type.includes("3")?Ao:Eo}var YR=we({name:"allEq",signature:(...e)=>({argTypes:e,returnType:Ft}),normalImpl:(e,t)=>ry(Bc(e,t)),codegenImpl:(e,[t,s])=>fe`all(${t} == ${s})`,sideEffects:!1}),Bc=(e,t)=>um((s,r)=>s===r,[e,t]),WR=we({name:"eq",signature:(...e)=>({argTypes:e,returnType:ol(e[0])}),normalImpl:Bc,codegenImpl:(e,[t,s])=>fe`(${t} == ${s})`,sideEffects:!1}),OR=we({name:"ne",signature:(...e)=>({argTypes:e,returnType:ol(e[0])}),normalImpl:(e,t)=>Gr(Bc(e,t)),codegenImpl:(e,[t,s])=>fe`(${t} != ${s})`,sideEffects:!1}),bm=(e,t)=>um((s,r)=>s<r,[e,t]),VR=we({name:"lt",signature:(...e)=>({argTypes:e,returnType:ol(e[0])}),normalImpl:bm,codegenImpl:(e,[t,s])=>fe`(${t} < ${s})`,sideEffects:!1}),gc=we({name:"le",signature:(...e)=>({argTypes:e,returnType:ol(e[0])}),normalImpl:(e,t)=>sy(bm(e,t),Bc(e,t)),codegenImpl:(e,[t,s])=>fe`(${t} <= ${s})`,sideEffects:!1}),NR=we({name:"gt",signature:(...e)=>({argTypes:e,returnType:ol(e[0])}),normalImpl:(e,t)=>Aw(Gr(bm(e,t)),Gr(Bc(e,t))),codegenImpl:(e,[t,s])=>fe`(${t} > ${s})`,sideEffects:!1}),Qf=we({name:"ge",signature:(...e)=>({argTypes:e,returnType:ol(e[0])}),normalImpl:(e,t)=>Gr(bm(e,t)),codegenImpl:(e,[t,s])=>fe`(${t} >= ${s})`,sideEffects:!1});function Gr(e){if(typeof e=="boolean")return!e;if(!xk(e))throw new Error("'std.not' requires a boolean or boolean vector.");switch(e.length){case 2:return So(Gr(e.x),Gr(e.y));case 3:return Ao(Gr(e.x),Gr(e.y),Gr(e.z));case 4:return Eo(Gr(e.x),Gr(e.y),Gr(e.z),Gr(e.w))}}var qR=we({name:"not",signature:e=>{if(!Ga(e)&&!_h(e))throw new er([e],[Ft,So,Ao,Eo]);return{argTypes:[e],returnType:e}},normalImpl:Gr,codegenImpl:(e,[t])=>fe`!(${t})`,sideEffects:!1}),sy=(e,t)=>um((s,r)=>s||r,[e,t]);we({name:"or",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:sy,codegenImpl:(e,[t,s])=>fe`(${t} | ${s})`,sideEffects:!1});var Aw=(e,t)=>Gr(sy(Gr(e),Gr(t)));we({name:"and",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:Aw,codegenImpl:(e,[t,s])=>fe`(${t} & ${s})`,sideEffects:!1});var ry=e=>Mo.all[e.kind](e),XR=we({name:"all",signature:(...e)=>({argTypes:e,returnType:Ft}),normalImpl:ry,codegenImpl:(e,[t])=>fe`all(${t})`,sideEffects:!1});we({name:"any",signature:(...e)=>({argTypes:e,returnType:Ft}),normalImpl:e=>!ry(Gr(e)),codegenImpl:(e,[t])=>fe`any(${t})`,sideEffects:!1});we({name:"isCloseTo",signature:(...e)=>({argTypes:e,returnType:Ft}),normalImpl:(e,t,s=.01)=>{let r=um((o,n)=>Math.abs(o-n)<s,[e,t]);return typeof r=="boolean"?r:XR(r)},codegenImpl:(e,[t,s,r=Ae(.01,a,"constant",!1)])=>Kl(t)&&Kl(s)?fe`(abs(f32(${t}) - f32(${s})) <= ${r})`:!Kl(t)&&!Kl(s)?fe`all(abs(${t} - ${s}) <= (${t} - ${t}) + ${r})`:"false",sideEffects:!1});function HR(e,t,s){return typeof s=="boolean"?op(s?t:e):qt((r,o,n)=>n?o:r,[e,t,s])}var F_=[a,Zs,oe,Y,Ft,$t,cs,lt,Sr,po,Ar,xs,Os,ps,ns,Ot,es,So,Ao,Eo],F=we({name:"select",signature:(e,t,s)=>{let[r,o]=jr([e,t],F_)??[e,t];return{argTypes:[r,o,s],returnType:r}},normalImpl:HR,codegenImpl:(e,[t,s,r])=>{let o=e.gen.emitCall("select",[],[t,s,r]);if(!F_.includes(t.dataType)||!F_.includes(s.dataType))throw new Error(`'${o}' is invalid, std.select requires both branches to be either scalars or vectors.`);if(t.dataType!==s.dataType){let n=e.resolve(t.dataType),i=e.resolve(s.dataType);throw new Error(`'${o}' is invalid, std.select requires both branches to be the same type, got [${n.value}, ${i.value}].`)}return o},sideEffects:!1});function wm(e){return typeof e?.format=="string"}function jR(e,t){let s=[];if($c(e)){if(!wm(t))throw new Error("Shader expected a single attribute, not a record of attributes to be passed in.");return s.push(t._layout),{usedVertexLayouts:s,bufferDefinitions:[{arrayStride:t._layout.stride,stepMode:t._layout.stepMode,attributes:[{format:t.format,offset:t.offset,shaderLocation:qa(e)??0}]}]}}let r=[],o=new WeakMap,n=0;for(let[i,d]of Object.entries(e)){if(Nn(d))continue;let l=t[i];if(!l)throw new Error(`An attribute by the name of '${i}' was not provided to the shader.`);let c=l._layout,_=o.get(c);_||(s.push(c),_=[],r.push({arrayStride:c.stride,stepMode:c.stepMode,attributes:_}),o.set(c,_)),n=qa(d)??n,_.push({format:l.format,offset:l.offset,shaderLocation:n++})}return{usedVertexLayouts:s,bufferDefinitions:r}}var KR=["bool","f32","f16","i32","u32","vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","vec2<bool>","vec3<bool>","vec4<bool>","mat2x2f","mat3x3f","mat4x4f","texture_external"];function ZR(e){return KR.includes(e.type)}function Jf(e,[t,s]){return` ${hc(s)}${t}: ${e.resolve(s).value},
|
|
`}function QR(e,t){if(t[q].isAbstruct)throw new Error("Cannot resolve abstract struct types to WGSL.");let s=e.makeUniqueIdentifier(Re(t),"global");return e.addDeclaration(`struct ${s} {
|
|
${Object.entries(t.propTypes).map(r=>Jf(e,r)).join("")}}`,s),s}function JR(e,t){let s=e.makeUniqueIdentifier(Re(t),"global");return e.addDeclaration(`struct ${s} {
|
|
${Object.entries(t.propTypes).map(r=>wm(r[1])?Jf(e,[r[0],ma[r[1].format]]):Jf(e,r)).join("")}
|
|
}`,s),s}function eU(e,t){let s=e.resolve(t.elementType).value;return t.elementCount===0?`array<${s}>`:`array<${s}, ${t.elementCount}>`}function tU(e,t){let s=e.resolve(wm(t.elementType)?ma[t.elementType.format]:t.elementType).value;return t.elementCount===0?`array<${s}>`:`array<${s}, ${t.elementCount}>`}function Ew(e,t){if(am(t))return t.type==="unstruct"?JR(e,t):t.type==="disarray"?tU(e,t):t.type==="loose-decorated"?e.resolve(wm(t.inner)?ma[t.inner.format]:t.inner).value:e.resolve(ma[t.type]).value;if(ZR(t))return t.type;if(t.type==="struct")return QR(e,t);if(t.type==="array")return eU(e,t);if(t.type==="atomic")return`atomic<${Ew(e,t.inner)}>`;if(t.type==="decorated")return e.resolve(t.inner).value;if(t.type==="ptr")return t.addressSpace==="storage"?`ptr<storage, ${e.resolve(t.inner).value}, ${t.access==="read-write"?"read_write":t.access}>`:`ptr<${t.addressSpace}, ${e.resolve(t.inner).value}>`;if(t.type==="abstractInt"||t.type==="abstractFloat"||t.type==="void"||t.type==="u16")throw new Error(`${t.type} has no representation in WGSL`);if(G_(t))return`${t.type}<${t.format}, ${Lc[t.access]}>`;if(Z6(t))return t.type.startsWith("texture_depth")?t.type:`${t.type}<${t.sampleType.type}>`;if(cC(t)||lC(t))return t.type;vc(t,"resolveData")}var Pw=class{[q]=!0;snippet;constructor(e){this.snippet=e}[ts](e){return e.resolveSnippet(this.snippet)}},Mw=(()=>{function e(s){return s}let t=e;return Tt(t,"unroll"),t.toString=()=>"unroll",t[q]=!0,t[mr]={call(s,[r]){return p6(new Pw(r),r)}},t})(),Eb=new Map([[Math.abs,W],[Math.acos,V4],[Math.acosh,q4],[Math.asin,jf],[Math.asinh,j4],[Math.atan,Z4],[Math.atan2,bt],[Math.atanh,J4],[Math.ceil,ac],[Math.cos,J],[Math.cosh,nR],[Math.exp,Mt],[Math.floor,K],[Math.fround,a],[Math.clz32,aR],[Math.trunc,BR],[Math.log,yR],[Math.log2,Kf],[Math.pow,Ye],[Math.sign,ir],[Math.sin,O],[Math.sinh,CR],[Math.sqrt,$e],[Math.tan,Zf],[Math.tanh,LR],[Math.max,w],[Math.min,ue]]),sU=()=>[console.log,console.debug,console.info,console.warn,console.error,console.clear],Pb=e=>Hr(e)&&cr(e.inner)?e.inner.elementCount:0,rU=we({name:"arrayLength",signature:e=>{let t=Hr(e)?e:y6(e);return{argTypes:[t],returnType:Pb(t)>0?Uc:Y}},normalImpl:e=>x6(e)?e.$.length:e.length,codegenImpl(e,[t]){let s=Pb(t.dataType);return s>0?`${s}`:e.gen.emitCall("arrayLength",[],[t])},sideEffects:!1});nn((e,t,s=1)=>{if(t===void 0&&(t=e,e=0),!Number.isInteger(e))throw new Error(`'start' must be an integer, got ${e}`);if(!Number.isInteger(t))throw new Error(`'end' must be an integer, got ${t}`);if(!Number.isInteger(s)||s===0)throw new Error(`'step' must be a non-zero integer, got ${s}`);let r=[];if(r.start=e,r.end=t,r.step=s,Math.sign(s)!==Math.sign(t-e))return r;if(s>0)for(let o=e;o<t;o+=s)r.push(o);if(s<0)for(let o=e;o>t;o+=s)r.push(o);return r});function ev(e){return Array.isArray(e)&&"start"in e&&"end"in e&&"step"in e}function oU(e){return e.origin==="constant-immutable-def"?"const":"let"}function Mb(e,t){let s=ym(e,t);if(!s)throw new vt("`for ... of ...` loops only support array or vector iterables");return s}function nU(e,t){let s=e.dataType;if(s===os)throw new vt(fe`The elements in iterable ${t} are of unknown type`);if(gn(e.dataType)||e.origin==="runtime"||e.origin==="constant"||e.origin==="constant-immutable-def"||e.origin==="runtime-immutable-def")return s;if(!Hr(s)){let r=hh(e.origin,Wo(s));Ws(r!==void 0,`Creating pointer type from origin ${e.origin}`),s=r}return g6(s)}function aU(e,t,s=!1){let{value:r,dataType:o}=t;if(ev(r)){let{start:i,end:d,step:l}=r,c=[i,d,l].every(_=>_>=0)?Y:oe;return{start:Ae(i,c,"constant",!1),end:Ae(d,c,"constant",!1),step:Ae(l,c,"constant",!1),comparison:l<0?">":"<"}}if(!s&&!In(t))throw new Error("`for ... of ...` loops only support std.range or iterables stored in variables.\n-----\nYou can wrap iterable with `tgpu.unroll(...)`. If iterable is known at comptime, the loop will be unrolled.\n-----");let n={start:Ae(0,Y,"constant",!1),step:Ae(1,Y,"constant",!1),comparison:"<"};if(cr(o))return{...n,end:o.elementCount>0?Ae(o.elementCount,Y,"constant",!1):rU[mr].call(e,[t])};if(as(o))return{...n,end:Ae(o.componentCount,Y,"constant",!1)};if(s){if(Array.isArray(r))return{...n,end:Ae(r.length,Y,"constant",!1)};if(r instanceof oc)return{...n,end:Ae(r.elements.length,Y,"constant",!1)}}throw new vt("`for ... of ...` loops only support array or vector iterables")}var{NodeTypeCatalog:Pt}=ww;function ws(e){return $w(e)?Nr(e,""):na(e,"")}function na(e,t){if($w(e))return`${t}${Nr(e,t)};`;if(e[0]===Pt.block)return`{
|
|
${e[1].map(s=>na(s,t+" ")).join(`
|
|
`)}
|
|
${t}}`;if(e[0]===Pt.return)return`${t}return${e[1]===void 0?"":` ${Nr(e[1],"")}`};`;if(e[0]===Pt.if){let s=`${t}if (${Nr(e[1],t)}) ${na(e[2],t)}`;return e[3]!==void 0?`${s} else ${na(e[3],t)}`:s}if(e[0]===Pt.let)return e[2]!==void 0?`${t}let ${e[1]} = ${Nr(e[2],t)};`:`${t}let ${e[1]};`;if(e[0]===Pt.const)return e[2]!==void 0?`${t}const ${e[1]} = ${Nr(e[2],t)};`:`${t}const ${e[1]};`;if(e[0]===Pt.for){let s=e[1]?na(e[1],""):";",r=e[2]?Nr(e[2],t):"",o=e[3]?na(e[3],""):"",n=na(e[4],t);return`${t}for (${s} ${r}; ${o.slice(0,-1)}) ${n}`}if(e[0]===Pt.while)return`${t}while (${Nr(e[1],t)}) ${na(e[2],t)}`;if(e[0]===Pt.continue)return`${t}continue;`;if(e[0]===Pt.break)return`${t}break;`;if(e[0]===Pt.forOf)return`${t}for (${e[1][0]===Pt.const?"const":"let"} ${e[1][1]} of ${Nr(e[2],t)}) ${na(e[3],t)}`;kw(e)}function Nr(e,t){if(typeof e=="string")return e;if(typeof e=="boolean")return`${e}`;if(e[0]===Pt.numericLiteral)return e[1];if(e[0]===Pt.stringLiteral)return JSON.stringify(e[1]);if(e[0]===Pt.arrayExpr)return`[${e[1].map(s=>Nr(s,t)).join(", ")}]`;if(e[0]===Pt.binaryExpr)return`${Io(e[1],t)} ${e[2]} ${Io(e[3],t)}`;if(e[0]===Pt.assignmentExpr)return`${Nr(e[1],t)} ${e[2]} ${Nr(e[3],t)}`;if(e[0]===Pt.logicalExpr)return`${Io(e[1],t)} ${e[2]} ${Io(e[3],t)}`;if(e[0]===Pt.unaryExpr){let s=e[1].length>1?" ":"";return`${e[1]}${s}${Io(e[2],t)}`}if(e[0]===Pt.call)return`${Io(e[1],t)}(${e[2].map(s=>Nr(s,t)).join(", ")})`;if(e[0]===Pt.memberAccess)return Array.isArray(e[1])&&e[1][0]===Pt.numericLiteral?`(${Nr(e[1],t)}).${e[2]}`:`${Io(e[1],t)}.${e[2]}`;if(e[0]===Pt.indexAccess)return`${Io(e[1],t)}[${Nr(e[2],t)}]`;if(e[0]===Pt.preUpdate)return`${e[1]}${Io(e[2],t)}`;if(e[0]===Pt.postUpdate)return`${Io(e[2],t)}${e[1]}`;if(e[0]===Pt.objectExpr)return`{ ${Object.entries(e[1]).map(([s,r])=>`${s}: ${Nr(r,t)}`).join(", ")} }`;if(e[0]===Pt.conditionalExpr)return`${Io(e[1],t)} ? ${Io(e[2],t)} : ${Io(e[3],t)}`;kw(e)}function kw(e){throw new Error(`'${JSON.stringify(e)}' was not handled by the stringify function.`)}function $w(e){return typeof e=="string"||typeof e=="boolean"||e[0]===Pt.numericLiteral||e[0]===Pt.stringLiteral||e[0]===Pt.arrayExpr||e[0]===Pt.binaryExpr||e[0]===Pt.assignmentExpr||e[0]===Pt.logicalExpr||e[0]===Pt.unaryExpr||e[0]===Pt.call||e[0]===Pt.memberAccess||e[0]===Pt.indexAccess||e[0]===Pt.preUpdate||e[0]===Pt.postUpdate||e[0]===Pt.objectExpr||e[0]===Pt.conditionalExpr}var iU=[Pt.memberAccess,Pt.indexAccess,Pt.call,Pt.arrayExpr,Pt.stringLiteral,Pt.numericLiteral];function Io(e,t){let s=Nr(e,t);return typeof e=="string"||typeof e=="boolean"||iU.includes(e[0])?s:`(${s})`}var{NodeTypeCatalog:Jt}=ww,dU=["==","!=","===","!==","<","<=",">",">=","<<",">>",">>>","+","-","*","/","%","|","^","&"],lU=["&&","||","==","!=","===","!==","<","<=",">",">="],cU={"===":WR.toString(),"!==":OR.toString(),"<":VR.toString(),"<=":gc.toString(),">":NR.toString(),">=":Qf.toString()},uU=["<<",">>","<<=",">>=",">>>",">>>="],_U={"===":"==","!==":"!=",">>>":">>",get in(){throw new Error("The `in` operator is unsupported in TypeGPU functions.")},get instanceof(){throw new Error("The `instanceof` operator is unsupported in TypeGPU functions.")},get"|>"(){throw new Error("The `|>` operator is unsupported in TypeGPU functions.")},get"??"(){throw new Error("The `??` operator is unsupported in TypeGPU functions.")},">>>=":">>=",get"**="(){throw new Error("The `**=` operator is unsupported in TypeGPU functions.")},get"??="(){throw new Error("The `??=` operator is unsupported in TypeGPU functions.")},get"&&="(){throw new Error("The `&&=` operator is unsupported in TypeGPU functions.")},get"||="(){throw new Error("The `||=` operator is unsupported in TypeGPU functions.")}};function kb(e,t,s){return s?lU.includes(t)?Ft:t==="="?s:e:t==="!"?Ft:e}var pU={"-":nb[mr].call.bind(nb),void:()=>Ae(void 0,Ns,"constant",!1),"!":(e,[t])=>{if(t===void 0)throw new Error("The unary operator `!` expects 1 argument, but 0 were provided.");if(js(t))return Ae(!t.value,Ft,"constant",!1);let s=e.resolveSnippet(t).value;if(!Ga(t.dataType))throw new vt(`Unary operator ! requires boolean operand. Got ${String(t.dataType)}.${_h(t.dataType)?` For component-wise negation, use 'std.${qR.toString()}'.`:""}`);return Ae(`!(${s})`,Ft,"runtime",t.possibleSideEffects)}},mU={"+":ua[mr].call.bind(ua),"-":It[mr].call.bind(It),"*":Kr[mr].call.bind(Kr),"/":Of[mr].call.bind(Of),"**":Ye[mr].call.bind(Ye)},$b={private:"private",workgroup:"workgroup",uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"},O1=2,fU=class Cw{#e=void 0;#t=[];static#s=Cw.prototype.languageKey="wgsl";initGenerator(t){if(this.#e!==void 0)throw new Error("Cannot initialize shader generators twice. Create one generator per resolution.");this.#e=t}get ctx(){if(!this.#e)throw new Error("WGSL Generator has not yet been initialized. Please call initialize(ctx) before using the generator.");return this.#e}_block([t,s],r,o){this.ctx.pushBlockScope();try{if(o){let c=Object.fromEntries(Object.entries(o).map(([_,p])=>[_,To(p)]));this.ctx.setBlockExternals(c)}let n="",i=!1,d;this.ctx.indent();for(let c of s){let _=this._statement(c);if(_.code.length>0&&(n+=`${_.code}
|
|
`),i||=_.definesInNearestScope??!1,_.endsWithControlFlow!==void 0){d=_.endsWithControlFlow;break}}this.ctx.dedent();let l=r&&!i;return this.ctx.blockDepth===O1&&(n=n.replace(/[ ]*return\s*;\s*$/u,"")),n===""?{code:"",endsWithControlFlow:d,definesInNearestScope:!1}:l?{code:this.ctx.getDedented(n.trim()),endsWithControlFlow:d,definesInNearestScope:i}:{code:`{
|
|
${n}${this.ctx.pre}}`,endsWithControlFlow:d,definesInNearestScope:!1}}finally{this.ctx.popBlockScope()}}_blockStatement(t,s){let{code:r,...o}=this._block(t,!0,s);return r===""?{...o,code:""}:{...o,code:`${this.ctx.pre}${r}`}}refVariable(t,s){let r=this.ctx.makeUniqueIdentifier(t,"block"),o=y6(s),n=Ae(new ia(Ae(r,s,"function",!1),o),o,"function",!1);return this.ctx.defineVariable(t,n),r}_emitVarDecl(t,s,r,o){return`${this.ctx.pre}${t} ${s} = ${o};`}_identifier(t){if(!t)throw new Error("Cannot resolve an empty identifier");if(t==="undefined")return Ae(void 0,Ns,"constant",!1);let s=this.ctx.getById(t);if(!s)throw new Error(`Identifier ${t} not found`);return s}_callShellless(t,s){let r=Xf(t),o=r?t[co]?.pairs??[]:[],n=r?t[q].inner:t;return this.ctx.withRenamed(n,Re(t),()=>this.ctx.withSlots(o,()=>{let i=this.ctx.shelllessRepo.get(n,s);if(!i)return;let d=s.map((l,c)=>{let _=i.argTypes[c];return wo(this.ctx,l,_,!1)});return this.ctx.withResetIndentLevel(()=>{let l=this.ctx.resolve(i);return Ae(fe`${l.value}(${d})`,l.dataType,"runtime")})}))}_typedExpression(t,s){let r=this.ctx.expectedType;this.ctx.expectedType=s;try{let o=this._expression(t);return s instanceof Sn?o:wo(this.ctx,o,s)}finally{this.ctx.expectedType=r}}_expression(t){if(typeof t=="string")return this._identifier(t);if(typeof t=="boolean")return Ae(t,Ft,"constant",!1);if(t[0]===Jt.logicalExpr){let[s,r,o,n]=t,i=this._expression(r);if(js(i)){let _=Ga(this.ctx.expectedType);if(!(o==="&&"?i.value:!i.value))return _?Ae(o==="||",Ft,"constant",!1):To(i.value);let p=this._expression(n);if(js(p)){let f=To(p.value);return _?wo(this.ctx,f,Ft,!1):f}if(p.dataType===os)throw new vt(`Right-hand side of '${o}' is of unknown type`);return _?wo(this.ctx,p,Ft,!1):p}let d=this._expression(n);if(i.dataType===os)throw new vt(`Left-hand side of '${o}' is of unknown type`);if(!js(d)&&d.dataType===os)throw new vt(`Right-hand side of '${o}' is of unknown type`);if(!Ga(i.dataType)||!Ga(d.dataType))throw new vt(`Logical expression '${o}' requires boolean operands. Got '${String(i.dataType)}' and '${String(d.dataType)}'.`);let l=this.ctx.resolveSnippet(i).value,c=this.ctx.resolveSnippet(d).value;return Ae(`(${l} ${o} ${c})`,Ft,"runtime",i.possibleSideEffects||d.possibleSideEffects)}if(t[0]===Jt.binaryExpr||t[0]===Jt.assignmentExpr){let[s,r,o,n]=t,i=this._expression(r),d=this._expression(n);if(d.value instanceof ia)throw new vt(fe`Cannot assign a ref to an existing variable '${ws(r)}', define a new variable instead.`);if(o==="==")throw new Error("Please use the === operator instead of ==");if(o==="!=")throw new Error("Please use the !== operator instead of !=");let l=cU[o];if(l&&js(i)&&js(d)){let h=i.value,g=d.value;switch(o){case"===":return Ae(h===g,Ft,"constant",!1);case"!==":return Ae(h!==g,Ft,"constant",!1)}if(typeof h!="number"||typeof g!="number")throw new vt(`Comparison '${o}' requires numeric operands.${as(i.dataType)&&as(d.dataType)?` For component-wise comparison, use 'std.${l}'.`:""}`);switch(o){case"<":return Ae(h<g,Ft,"constant",!1);case"<=":return Ae(h<=g,Ft,"constant",!1);case">":return Ae(h>g,Ft,"constant",!1);case">=":return Ae(h>=g,Ft,"constant",!1)}}if(i.dataType===os)throw new vt(`Left-hand side of '${o}' is of unknown type`);if(d.dataType===os)throw new vt(`Right-hand side of '${o}' is of unknown type`);let c=mU[o];if(c)return c(this.ctx,[i,d]);let _,p;if(uU.includes(o)){let h=i.dataType;if(!q5(h)&&!Ak(h))throw new vt(`Expression: ${ws(t)}
|
|
Left-hand side of '${o}' must be an integer or vector of integers.
|
|
Got ${this.ctx.resolve(h).value}.`);let g=as(h)?h.primitive:h;if([">>>",">>>="].includes(o)&&g.type!=="u32")throw new vt(`Expression: ${ws(t)}
|
|
Left-hand side of '${o}' must be an unsigned integer or vector of unsigned integers.
|
|
Got ${this.ctx.resolve(h).value}.
|
|
Use ${o.slice(1)} instead.`);[">>",">>="].includes(o)&&g.type==="u32"&&fs.warn("deprecated",`
|
|
Expression: ${ws(t)}
|
|
Using u32 or vecN<u32> as left-hand side of ${o} is deprecated.
|
|
Use >${o} instead.`);let x;if(as(h)){let T=h.componentCount;x=T===2?ns:T===3?Ot:es}else x=Y;p=wo(this.ctx,d,x,!1),_=i}else{let h=s===Jt.assignmentExpr?[i.dataType]:void 0;[_,p]=La(this.ctx,[i,d],h)??[i,d]}let f=kb(_.dataType,o,p.dataType);if(s===Jt.assignmentExpr&&(Cb(_,t),this.tryMarkModified(r),o==="="&&In(d)&&!gn(d.dataType)))throw new vt(`'${ws(t)}' is invalid, because references cannot be assigned.
|
|
-----
|
|
Try '${ws(r)} = ${this.ctx.resolve(wi(d.dataType)).value}(${ws(n)})' to copy the value instead.
|
|
-----`);if(l){let h=["===","!=="].includes(o);if(!(Gf(_.dataType)&&Gf(p.dataType)||h&&Ga(_.dataType)&&Ga(p.dataType))){let g=as(_.dataType)&&as(p.dataType);throw new vt(`Comparison '${o}' requires numeric${h?" or boolean":""} operands. Got '${String(_.dataType)}' and '${String(p.dataType)}'.${g?` For component-wise comparison, use 'std.${l}'.`:""}`)}}return Ae(this.emitBinaryOp(_,_U[o]??o,p),f,"runtime",s===Jt.assignmentExpr||i.possibleSideEffects||d.possibleSideEffects)}if(t[0]===Jt.postUpdate)throw new Error(`'${ws(t)}' is invalid because update is only allowed as a statement.`);if(t[0]===Jt.unaryExpr){let[s,r,o]=t,n=this._expression(o),i=pU[r];if(i)return i(this.ctx,[n]);let d=this.ctx.resolveSnippet(n).value,l=kb(n.dataType,r);return Ae(`${r}${d}`,l,"runtime",n.possibleSideEffects)}if(t[0]===Jt.memberAccess){let[s,r,o]=t,n=Rd(this._expression(r),o);if(!n)throw new Error(`Property '${o}' not found on '${ws(r)}'`);return n}if(t[0]===Jt.indexAccess){let[s,r,o]=t,n=this._expression(r),i=this._expression(o),d=ym(n,La(this.ctx,[i],[Y,oe],!1)?.[0]??i);if(!d)throw new Error(`Index access '${ws(t)}' is invalid. If the value is an array, to address this, consider one of the following approaches: (1) declare the array using 'tgpu.const', (2) store the array in a buffer, or (3) define the array within the GPU function scope.`);return d}if(t[0]===Jt.numericLiteral){let s=typeof t[1]=="string"?Vn(hU(t[1])):Vn(t[1]);return Ws(s,`Expected ${ws(t)} to be valid numeric literal`),s}if(t[0]===Jt.call){let[s,r,o]=t,n=this._expression(r),i=Eb.has(n.value)?Ae(Eb.get(n.value),os,"runtime",n.possibleSideEffects):n;if(sU().includes(i.value))return this.ctx.generateLog(i.value,o.map(c=>this._expression(c)));if(Es(i.value)){if(o.length>1)throw new vt("Struct schemas should always be called with at most 1 argument");if(!o[0])return Ae(`${this.ctx.resolve(i.value).value}()`,i.value,"runtime",!1);let c=this._typedExpression(o[0],i.value);return Ae(this.ctx.resolveSnippet(c).value,i.value,"runtime",c.possibleSideEffects)}if(cr(i.value)){if(o.length>1)throw new vt("Array schemas should always be called with at most 1 argument");if(!o[0])return this.typeInstantiation(i.value,[]);let c=this._typedExpression(o[0],i.value);return c.value instanceof oc?this.typeInstantiation(i.value,c.value.elements):Ae(this.ctx.resolveSnippet(c).value,i.value,"runtime",c.possibleSideEffects)}if(i.value===Qh)throw new Error("Constants cannot be defined within TypeGPU function scope. To address this, move the constant definition outside the function scope.");if(F$(i.value)){if(!o[0])throw new vt(`An infix operator '${Re(i.value.operator)}' was called without any arguments`);let c=To(i.value.lhs),_=this._expression(o[0]);return i.value.operator[mr].call(this.ctx,[c,_])}if((i.value===jk||i.value===Mw)&&o[0]&&this.tryMarkModified(o[0]),K_(i.value)){let c=i.value[mr],_=c.strictSignature,p;_?p=o.map((f,h)=>{let g=_.argTypes[h];if(!g)throw new vt(`Call '${ws(t)}' is invalid since the function expected fewer arguments`);return this._typedExpression(f,g)}):p=o.map(f=>this._expression(f));try{return c.call(this.ctx,p)}catch(f){throw f instanceof gd?f:new gd(f,[{toString:()=>`fn:${Re(i.value)}`}])}}if(!Rt(i.value)||Xf(i.value)){let c=o.map(p=>this._expression(p)),_=this._callShellless(i.value,c);if(_)return _}let d=Object.getOwnPropertyNames(Math).find(c=>Math[c]===i.value);if(d)throw new Error(`Unsupported Math functionality 'Math.${d}()'. Use an std alternative, or implement the function manually.`);let l=Object.getOwnPropertyNames(console).find(c=>console[c]===i.value);throw l?new Error(`Unsupported console functionality 'console.${l}()'.`):new Error(`Function '${Re(i.value)??String(i.value)}' is not marked with the 'use gpu' directive and cannot be used in a shader`)}if(t[0]===Jt.objectExpr){let s=t[1],r=this.ctx.expectedType;if(r instanceof Sn){let o=Object.fromEntries(Object.entries(s).map(([d,l])=>{let c=r.accessProp(d),_;if(c)_=this._typedExpression(l,c.type);else{if(_=this._expression(l),_.dataType===os)throw new vt(fe`Property ${d} in object literal has a value of unknown type: '${_}'`);c=r.provideProp(d,wi(Wo(_.dataType)))}return[c.prop,_]})),n=r.completeStruct,i=Nx(this.ctx,n,o);return Ae(fe`${this.ctx.resolve(r).value}(${i})`,n,"runtime")}if(Es(r)){let o=Object.fromEntries(Object.entries(r.propTypes).map(([i,d])=>{let l=s[i];if(l===void 0)throw new vt(`Missing property ${i} in object literal for struct ${r}`);return[i,this._typedExpression(l,d)]})),n=Nx(this.ctx,r,o);return Ae(fe`${this.ctx.resolve(r).value}(${n})`,r,"runtime",n.some(i=>i.possibleSideEffects))}throw new vt(`No target type could be inferred for object '${ws(t)}', please wrap the object in the corresponding schema.`)}if(t[0]===Jt.arrayExpr){let[s,r]=t,o=this.ctx.expectedType,n,i;if(cr(o)){if(n=o.elementType,i=r.map(c=>this._typedExpression(c,n)),i.length!==o.elementCount)throw new vt(`Cannot create value of type '${o}' from an array of length: ${i.length}`)}else{let c=r.map(p=>this._expression(p));if(c.length===0)throw new vt("Cannot infer the type of an empty array literal.");let _=La(this.ctx,c);if(!_)throw new vt(`Values '${ws(t)}' cannot be automatically converted to a common type. Consider wrapping the array in an appropriate schema`);i=_,n=Wo(i[0]?.dataType)}let d=zt(n,i.length),l=i.every(c=>c.origin==="constant");return Ae(new oc(d,i),d,l?"constant":"runtime",i.some(c=>c.possibleSideEffects))}if(t[0]===Jt.conditionalExpr){let[s,r,o,n]=t,i=this._expression(r);if(js(i))return i.value?this._expression(o):this._expression(n);{let d=wo(this.ctx,i,Ft,!1),l=this._expression(o),c=this._expression(n),[_,p]=La(this.ctx,[l,c],F_)??[];if(!_||!p||l.possibleSideEffects||c.possibleSideEffects||In(l)&&!gn(l.dataType)||In(c)&&!gn(c.dataType))throw new Error(`Ternary operator '${ws(t)}' is invalid. For more complex branching, please use 'std.select' or if/else statements.`);return Ae(fe`select(${p}, ${_}, ${d})`,_.dataType,"runtime",i.possibleSideEffects)}}if(t[0]===Jt.stringLiteral)return Ae(t[1],os,"constant",!1);if(t[0]===Jt.preUpdate)throw new Error("Cannot use pre-updates in TypeGPU functions.");vU(t)}declareGlobalConst(t){let s=this.ctx.resolve(t.dataType).value,r=this.ctx.resolveSnippet(t.init).value;return this.ctx.addDeclaration(`const ${t.id}: ${s} = ${r};`,t.id),Ae(t.id,t.dataType,"constant-immutable-def")}declareGlobalVar(t){let s="";return t.group!==void 0&&(s+=`@group(${t.group}) `),t.binding!==void 0&&(s+=`@binding(${t.binding}) `),t.scope in $b?s+=`var<${$b[t.scope]}> `:s+="var ",s+=`${t.id}: ${this.ctx.resolve(t.dataType).value}`,this.ctx.addDeclaration(t.init?`${s} = ${this.ctx.resolveSnippet(t.init).value};`:`${s};`,t.id),Ae(t.id,t.dataType,t.scope)}functionDefinition(t){Ws(this.ctx.blockDepth===O1-1,`Expecting exactly ${O1-1} block(s) before going into the first function block scope`);let s=this._block(t.body,!1),r=this.ctx.topFunctionScope;Ws(r,"Expected function scope to be present");let o=Object.fromEntries([...r.placeholderForVariable.entries()].map(([c,_])=>[_,r.modifiedVariables.has(c)?"var":"let"]));if(Object.keys(o).length>0){let c=new RegExp(Object.keys(o).join("|"),"gi");s.code=s.code.replace(c,_=>o[_]??"#ERR")}let n=t.determineReturnType(),i=t.args.filter(c=>c.used||t.functionType==="normal").map(c=>`${hc(c.decoratedType)}${c.name}: ${this.ctx.resolve(c.decoratedType).value}`).join(", "),d=n.type!=="void"?`(${i}) -> ${hc(n)}${this.ctx.resolve(n).value} `:`(${i}) `,l="";if(t.functionType==="compute"){if(!t.workgroupSize)throw new Error("Compute shaders must have a workgroup size");l=`@compute @workgroup_size(${t.workgroupSize.join(", ")}) `}else t.functionType==="vertex"?l="@vertex ":t.functionType==="fragment"&&(l="@fragment ");return`${l}fn ${t.name}${d}${s.code||"{}"}`}emitTypeAnnotation(t){return Ew(this.ctx,t)}typeInstantiation(t,s){return s.length===1&&s[0]?.dataType===t?Ae(fe`${s[0]}`,t,Bk(s[0].origin),s[0].possibleSideEffects):Ae(fe`${this.ctx.resolve(t).value}(${s})`,t,"runtime",s.some(r=>r.possibleSideEffects))}numericLiteral(t,s){if(!Number.isFinite(t))throw new Error(`Value '${t}' (${s.type}) cannot be resolved due to WGSL's Finite Math Assumption (see: https://www.w3.org/TR/WGSL/#finite-math-assumption). This value might be a result of a comptime-evaluated operation.`);if(s.type==="abstractInt")return Ae(`${t}`,s,"constant",!1);if(s.type==="u32")return Ae(`${t}u`,s,"constant",!1);if(s.type==="i32")return Ae(`${t}i`,s,"constant",!1);let r=t.toExponential(),o=s.type==="abstractFloat"&&Number.isInteger(t)?`${t}.`:`${t}`,n=r.length<o.length?r:o;return s.type==="f32"?Ae(`${n}f`,s,"constant",!1):s.type==="f16"?Ae(`${n}h`,s,"constant",!1):Ae(n,s,"constant",!1)}emitCall(t,s,r){let o=s.map(i=>this.ctx.resolveSnippet(i).value).join(", "),n=r.map(i=>this.ctx.resolveSnippet(i).value).join(", ");return o.length>0?`${t}<${o}>(${n})`:`${t}(${n})`}emitBinaryOp(t,s,r){let o=this.ctx.resolveSnippet(t).value,n=this.ctx.resolveSnippet(r).value;return dU.includes(s)?`(${o} ${s} ${n})`:`${o} ${s} ${n}`}_return(t){let s=t[1];if(s!==void 0){let r=this.ctx.topFunctionReturnType,o=r?this._typedExpression(s,r):this._expression(s);if(o.value===void 0&&om(o.dataType))return this.ctx.reportReturnType(Ns),`${this.ctx.pre}return;`;if(o.value instanceof ia)throw new vt(`Cannot return '${ws(s)}' because it is a d.ref`);if(o.origin==="argument"&&!gn(o.dataType)&&this.ctx.topFunctionScope?.functionType==="normal")throw new vt(`'${ws(t)}' is invalid, cannot return references to arguments. Copy the argument before returning it.`);if(!r&&In(o)&&!gn(o.dataType)&&o.origin!=="local-def"){let n=ws(s),i=this.ctx.resolve(wi(o.dataType)).value;throw new vt(`'return ${n};' is invalid, cannot return references.
|
|
-----
|
|
Try 'return ${i}(${n});' instead.
|
|
-----`)}return o=wo(this.ctx,o,wi(o.dataType),!1),Ws(o.dataType!==os,"Return type should be known"),this.ctx.reportReturnType(o.dataType),fe`${this.ctx.pre}return ${o};`}return this.ctx.reportReturnType(Ns),`${this.ctx.pre}return;`}_letStatement(t){let[s,r,o]=t;if(o===void 0)throw new Error(`'${ws(t)}' is invalid because all variables need initializers.`);let n=this._expression(o);if(n.value instanceof ia){let h=ws(o);throw new vt(`'let ${r} = ${h}' is invalid, cannot initialize 'let' variables with d.ref()
|
|
-----
|
|
- Try 'const ${r} = ${h}'.
|
|
-----`)}let i=n.dataType;if(i===os){let h=ws(o);throw new vt(`'let ${r} = ${h}' is invalid, cannot determine WGSL type of '${h}'
|
|
-----
|
|
- Try using or defining a schema that matches your desired value the most, and wrap the value with it: 'let ${r} = Schema(${h})'
|
|
-----`)}if(In(n)&&!gn(n.dataType)){let h=ws(o),g=this.ctx.resolve(wi(n.dataType)).value;throw new vt(`'let ${r} = ${h}' is invalid, because references cannot be assigned to 'let' variable declarations.
|
|
-----
|
|
- Try 'let ${r} = ${g}(${h})' if you need to reassign '${r}' later
|
|
- Try 'const ${r} = ${h}' if you won't reassign '${r}' later.
|
|
-----`)}let d=Wo(i),l=Ae(this.ctx.makeUniqueIdentifier(r,"block"),d,"local-def",!1);this.ctx.defineVariable(r,l);let c=wo(this.ctx,n,i,!1),_=this.ctx.resolveSnippet(c).value,p=this.ctx.topFunctionScope;Ws(p,`Expected function scope to be present for ${r}`);let f=`#VAR_${p.placeholderForVariable.size}#`;return p.placeholderForVariable.set(l,f),{code:this._emitVarDecl(f,l.value,d,_),definesInNearestScope:!0}}_constStatement(t){let[s,r,o]=t;if(o===void 0)throw new Error(`'${ws(t)}' is invalid because all variables need initializers.`);let n=this._expression(o);if(n.value instanceof ia){if(n.dataType!==os)throw new vt("Cannot store d.ref() in a variable if it references another value. Copy the value passed into d.ref() instead.");let x=n.value.snippet,T=this.refVariable(r,Wo(x.dataType));return{code:fe`${this.ctx.pre}var ${T} = ${wo(this.ctx,x,x.dataType,!1)};`,definesInNearestScope:!0}}let i=gn(n.dataType),d="local-def",l="<deferred>",c=n.dataType;if(c===os){let x=ws(o);throw new vt(`'const ${r} = ${x}' is invalid, cannot determine WGSL type of '${x}'
|
|
-----
|
|
- Try using or defining a schema that matches your desired value the most, and wrap the value with it: 'const ${r} = Schema(${x})'
|
|
-----`)}if(n.origin==="argument")l="let",d=i?"local-def":"argument";else if(n.origin==="constant-immutable-def")l="const",d="constant-immutable-def";else if(n.origin==="runtime-immutable-def")l="let",d="runtime-immutable-def";else if(i)l=n.origin==="constant"?"const":"let",d="local-def";else if(!In(n))l="<deferred>",d="local-def";else return this._aliasConstStatement(r,o,n);let _=Wo(c),p=Ae(this.ctx.makeUniqueIdentifier(r,"block"),_,d,!1);this.ctx.defineVariable(r,p);let f=wo(this.ctx,n,c,!1),h=this.ctx.resolveSnippet(f).value,g;if(l==="<deferred>"){let x=this.ctx.topFunctionScope;Ws(x,`Expected function scope to be present for ${r}`),g=`#VAR_${x.placeholderForVariable.size}#`,x.placeholderForVariable.set(p,g)}else g=l;return{code:this._emitVarDecl(g,p.value,_,h),definesInNearestScope:!0}}_aliasConstStatement(t,s,r){let o=r.dataType;if(!Hr(o)){let c=hh(r.origin,Wo(o));Ws(c!==void 0,`Creating pointer type from origin ${r.origin}`),o=c}o=g6(o),this.tryMarkModified(s);let n=Wo(o),i=Ae(this.ctx.makeUniqueIdentifier(t,"block"),n,r.origin,!1);this.ctx.defineVariable(t,i);let d=wo(this.ctx,r,o,!1),l=this.ctx.resolveSnippet(d).value;return{code:this._emitVarDecl("let",i.value,n,l),definesInNearestScope:!0}}_statement(t){if(typeof t=="string"){let o=this._identifier(t),n=o.value!==void 0&&o.value!==null?this.ctx.resolveSnippet(o).value:"";return{code:n?`${this.ctx.pre}${n};`:"",definesInNearestScope:!1}}if(typeof t=="boolean")return{code:`${this.ctx.pre}${t?"true":"false"};`,definesInNearestScope:!1};if(t[0]===Jt.return)return{code:this._return(t),endsWithControlFlow:"return",definesInNearestScope:!1};if(t[0]===Jt.if){let[o,n,i,d]=t,l=this._typedExpression(n,Ft);if(typeof l.value=="boolean"){let p=l.value?i:d;return p===void 0?{code:"",definesInNearestScope:!1}:(Array.isArray(p)||(p=gi(p)),p[0]===Jt.block&&p[1].length===1&&p[1][0][0]===Jt.if?this._statement(p[1][0]):p[0]===Jt.if?this._statement(p):this._blockStatement(gi(p)))}let c=this._block(gi(i),!1),_=d?this._block(gi(d),!1).code:void 0;return _?{code:fe`\
|
|
${this.ctx.pre}if (${l}) ${c.code||"{}"}
|
|
${this.ctx.pre}else ${_}`,definesInNearestScope:!1}:{code:fe`${this.ctx.pre}if (${l}) ${c.code||"{}"}`,definesInNearestScope:!1}}if(t[0]===Jt.let)return this._letStatement(t);if(t[0]===Jt.const)return this._constStatement(t);if(t[0]===Jt.block)return this._blockStatement(t);if(t[0]===Jt.for){let[o,n,i,d,l]=t,c=this.#t;this.#t=[];try{this.ctx.pushBlockScope();let[_,p,f]=this.ctx.withResetIndentLevel(()=>[n?this._statement(n).code:void 0,i?this._typedExpression(i,Ft):void 0,d?this._statement(d).code:void 0]),h=_?_.slice(0,-1):"",g=f?f.slice(0,-1):"",x=this._block(gi(l),!1).code;return{code:fe`${this.ctx.pre}for (${h}; ${p}; ${g}) ${x||"{}"}`,definesInNearestScope:!1}}finally{this.#t=c,this.ctx.popBlockScope()}}if(t[0]===Jt.while){let o=this.#t;this.#t=[];try{let[n,i,d]=t,l=this._typedExpression(i,Ft),c=this.ctx.resolveSnippet(l).value,_=this._block(gi(d),!1).code;return{code:`${this.ctx.pre}while (${c}) ${_||"{}"}`,definesInNearestScope:!1}}finally{this.#t=o}}if(t[0]===Jt.forOf){let[o,n,i,d]=t;if(n[0]!==Jt.const)throw new vt("Only `for (const ... of ... )` loops are supported");this.tryMarkModified(i);let l=!1,c=this.#t;try{this.ctx.pushBlockScope();let _=this._expression(i),p=_.value instanceof Pw,f=p?_.value.snippet:_,h=aU(this.ctx,f,p),g=n[1],x=gi(d);if(p){if(!js(h.end))throw new Error("Cannot unroll loop. Length of iterable is unknown at comptime.");let E=h.end.value;if(E===0)return{code:"",definesInNearestScope:!1};let{value:M}=f,$=ev(M)?M.map(I=>To(I)):M instanceof oc?M.elements:Array.from({length:E},(I,X)=>Mb(f,Ae(X,Y,"constant"))),L=$[0];if(!In(L)&&!gn(L.dataType))throw new vt(`Cannot unroll '${ws(i)}'. The elements of iterable are constructed in place but are not value types.`);let B="",D,G=!1;for(let I=0;I<$.length;I++){let X=$[I];this.#t=[...c,I];let H=this._blockStatement(x,{[g]:X});if(G||=H.definesInNearestScope,B+=`${this.ctx.pre}// unrolled iteration ${this.#t.map(ee=>`#${ee}`).join(" / ")}
|
|
${H.code}
|
|
`,H.endsWithControlFlow!==void 0){D=H.endsWithControlFlow;break}}return{code:`${B}${this.ctx.pre}// ---`,endsWithControlFlow:D,definesInNearestScope:G}}this.#t=[];let T=this.ctx.makeUniqueIdentifier("i","block"),S=fe`${this.ctx.pre}for (var ${T} = ${h.start}; ${T} ${h.comparison} ${h.end}; ${T} += ${h.step})`,A="";if(ev(f.value))A=this._block(x,!1,{[g]:Ae(T,h.start.dataType,"runtime",!1)}).code;else{this.ctx.indent(),l=!0;let E=this.ctx.makeUniqueIdentifier(g,"block"),M=Mb(f,Ae(T,Y,"runtime")),$=oU(M),L=nU(M,f);A=`{
|
|
${fe`${this.ctx.pre}${$} ${E} = ${wo(this.ctx,M,L,!1)};`}
|
|
${this._blockStatement(x,{[g]:Ae(E,L,M.origin,!1)}).code}
|
|
`,this.ctx.dedent(),A+=`${this.ctx.pre}}`,l=!1}return{code:fe`${S} ${A.trim()||"{}"}`,definesInNearestScope:!1}}finally{l&&this.ctx.dedent(),this.#t=c,this.ctx.popBlockScope()}}if(t[0]===Jt.postUpdate){let[o,n,i]=t,d=this._expression(i),l=this.ctx.resolveSnippet(d).value;return Cb(d,t),this.tryMarkModified(i),{code:`${this.ctx.pre}${l}${n};`,definesInNearestScope:!1}}if(t[0]===Jt.continue){if(this.#t.length>0)throw new vt("Cannot unroll loop containing `continue`");return{code:`${this.ctx.pre}continue;`,endsWithControlFlow:"continue",definesInNearestScope:!1}}if(t[0]===Jt.break){if(this.#t.length>0)throw new vt("Cannot unroll loop containing `break`");return{code:`${this.ctx.pre}break;`,endsWithControlFlow:"break",definesInNearestScope:!1}}let s=this._expression(t),r=s.value!==void 0&&s.value!==null?this.ctx.resolveSnippet(s).value:"";return{code:r?`${this.ctx.pre}${r};`:"",definesInNearestScope:!1}}tryMarkModified(t){if(!t)return;let s=yU(t);if(s!==void 0){let r=this.ctx.getById(s),o=this.ctx.topFunctionScope;r&&o&&o.placeholderForVariable.has(r)&&o.modifiedVariables.add(r)}}};function Cb(e,t){if(e.origin==="constant"||e.origin==="constant-immutable-def"||e.origin==="runtime-immutable-def")throw js(e)?new vt(`'${ws(t)}' is invalid, because the left side is defined outside of the shader, and therefore is immutable during its execution. Try using tgpu.privateVar or buffers.`):new vt(`'${ws(t)}' is invalid, because the left side is a constant.`);if(e.origin==="uniform")throw new vt(`'${ws(t)}' is invalid, because uniform buffers cannot be mutated.`);if(e.origin==="readonly")throw new vt(`'${ws(t)}' is invalid, because readonly buffers cannot be mutated.`);if(e.origin==="argument")throw new vt(`'${ws(t)}' is invalid, because non-pointer arguments cannot be mutated.`)}function vU(e){throw new Error(`'${Oo(e)}' was not handled by the WGSL generator.`)}function hU(e){return/^0x[0-9a-f]+$/i.test(e)?Number.parseInt(e):/^0b[01]+$/i.test(e)?Number.parseInt(e.slice(2),2):Number.parseFloat(e)}function gi(e){return typeof e!="object"||e[0]!==Jt.block?[Jt.block,[e]]:e}function yU(e){let t=e;for(;Array.isArray(t)&&(t[0]===Jt.memberAccess||t[0]===Jt.indexAccess);)t=t[1];if(typeof t=="string")return t}var gU=(()=>{try{return new Function("return true"),!0}catch{return!1}})(),Rb=new WeakMap,Ub=!1,u_={u32:"u32",vec2u:"u32",vec3u:"u32",vec4u:"u32",u16:"u16",i32:"i32",vec2i:"i32",vec3i:"i32",vec4i:"i32",f32:"f32",vec2f:"f32",vec3f:"f32",vec4f:"f32",f16:"f16",vec2h:"f16",vec3h:"f16",vec4h:"f16",mat2x2f:"f32",mat3x3f:"f32",mat4x4f:"f32"},xU={uint8:"u8",uint8x2:"u8",uint8x4:"u8",sint8:"i8",sint8x2:"i8",sint8x4:"i8",unorm8:"u8",unorm8x2:"u8",unorm8x4:"u8",snorm8:"i8",snorm8x2:"i8",snorm8x4:"i8",uint16:"u16",uint16x2:"u16",uint16x4:"u16",sint16:"i16",sint16x2:"i16",sint16x4:"i16",unorm16:"u16",unorm16x2:"u16",unorm16x4:"u16",snorm16:"i16",snorm16x2:"i16",snorm16x4:"i16",float16:"f16",float16x2:"f16",float16x4:"f16",float32:"f32",float32x2:"f32",float32x3:"f32",float32x4:"f32",uint32:"u32",uint32x2:"u32",uint32x3:"u32",uint32x4:"u32",sint32:"i32",sint32x2:"i32",sint32x3:"i32",sint32x4:"i32"},__={u32:"setUint32",i32:"setInt32",f32:"setFloat32",u16:"setUint16",i16:"setInt16",f16:"setFloat16",u8:"setUint8",i8:"setInt8"},bU={unorm8:e=>`Math.round(${e} * 255)`,unorm8x2:e=>`Math.round(${e} * 255)`,unorm8x4:e=>`Math.round(${e} * 255)`,snorm8:e=>`Math.round(${e} * 127)`,snorm8x2:e=>`Math.round(${e} * 127)`,snorm8x4:e=>`Math.round(${e} * 127)`,unorm16:e=>`Math.round(${e} * 65535)`,unorm16x2:e=>`Math.round(${e} * 65535)`,unorm16x4:e=>`Math.round(${e} * 65535)`,snorm16:e=>`Math.round(${e} * 32767)`,snorm16x2:e=>`Math.round(${e} * 32767)`,snorm16x4:e=>`Math.round(${e} * 32767)`},zb={"unorm10-10-10-2":{writeFunction:"setUint32",generator:(e,t)=>`output.setUint32(${e}, ((${t}.x*1023&0x3FF)<<22)|((${t}.y*1023&0x3FF)<<12)|((${t}.z*1023&0x3FF)<<2)|(${t}.w*3&3), littleEndian);
|
|
`},"unorm8x4-bgra":{writeFunction:"setUint8",generator:(e,t)=>["z","y","x","w"].map((s,r)=>`output.setUint8((${e} + ${r}), Math.round(${t}.${s} * 255), littleEndian);
|
|
`).join("")}};function Gb(e,t,s,r=0,o=!1){let n=(l,c,_)=>o?`if (${c} < endOffset) { output.${l}(${c}, ${_}, littleEndian); }
|
|
`:`output.${l}(${c}, ${_}, littleEndian);
|
|
`,i=(l,c)=>o?`if (${l} < endOffset) {
|
|
${c}}
|
|
`:c;function d(l,c,_,p){let f=["i","j","k"][p]||`i${p}`;if(rm(l)||ya(l))return d(l.inner,c,_,p);if(Es(l)||Zn(l))return Object.entries(hm(l)).map(([g,x])=>{let T=l.propTypes[g];return T?d(T,`(${c} + ${x.offset})`,`${_}.${g}`,p):""}).join("");if(cr(l)||Vi(l)){if(l.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let g=Er(kt(l.elementType),ks(l)),x=l.elementCount*g,T=o?`Math.min(${_}.byteLength, Math.max(0, endOffset - (${c})))`:`Math.min(${_}.byteLength, ${x})`,S=`if (ArrayBuffer.isView(${_})) {
|
|
`;return S+=` new Uint8Array(output.buffer).set(new Uint8Array(${_}.buffer, ${_}.byteOffset, ${T}), output.byteOffset + (${c}));
|
|
`,S+=`} else {
|
|
`,S+=`for (let ${f} = 0; ${f} < ${l.elementCount}; ${f}++) {
|
|
`,o&&(S+=`if ((${c} + ${f} * ${g}) >= endOffset) return;
|
|
`),S+=d(l.elementType,`(${c} + ${f} * ${g})`,`${_}[${f}]`,p+1),S+=`}
|
|
`,S+=`}
|
|
`,S}if(as(l)){if(_h(l))throw new Error("Compiled writers do not support boolean vectors");let g=u_[l.type],x=kt(l.primitive),T=__[g];return Array.from({length:l.componentCount},(S,A)=>n(T,`(${c} + ${A*x})`,`${_}[${A}]`)).join("")}if(On(l)){let g=__[u_[l.type]],x=V5(l)?2:N5(l)?3:4,T=Er(x*4,8),S=["x","y","z","w"],A=T/4;return Array.from({length:x*x},(E,M)=>{let $=Math.floor(M/x),L=M%x,B=$*x+L,D=$*A+L;return n(g,`(${c} + ${$*T+L*4})`,`ArrayBuffer.isView(${_}) ? ${_}[${D}] : Array.isArray(${_}) ? ${_}[${B}] : ${_}.columns[${$}].${S[L]}`)}).join("")}if(W$(l)){let g=l.type;if(g in zb){let L=zb[g];return i(`(${c})`,L.generator(c,_))}let x=xU[g],T=__[x],S=ma[g],A=as(S)?S.componentCount:1,E=x==="u8"||x==="i8"?1:x==="u16"||x==="i16"||x==="f16"?2:4,M=["x","y","z","w"],$=bU[g];return Array.from({length:A},(L,B)=>{let D=A===1?_:`${_}.${M[B]}`,G=$?$(D):D;return n(T,`(${c} + ${B*E})`,G)}).join("")}if(!Object.hasOwn(u_,l.type))throw new Error(`Primitive ${l.type} is unsupported by compiled writer`);let h=u_[l.type];return n(__[h],c,_)}return d(e,t,s,r)}function oy(e){if(!gU){Ub||(fs.warn("fallback","This environment does not allow eval - using default writer as fallback"),Ub=!0);return}let t=Rb.get(e);if(t)return t;try{let s=Gb(e,"offset","value",0,!1),r=`if (offset > 0 || endOffset < output.byteLength) {
|
|
${Gb(e,"offset","value",0,!0)}} else {
|
|
${s}}
|
|
`,o=new Function("output","offset","value","littleEndian=true","endOffset=output.byteLength",r);return Rb.set(e,o),o}catch(s){fs.warn("fallback",`Failed to compile writer for schema: ${e}
|
|
Reason: ${s instanceof Error?s.message:String(s)}
|
|
Falling back to default writer`)}}function xr(e,t){e.writeUint16(ep(t))}function br(e){return bh(e.readUint16())}var hd={bool(){throw new Error("Booleans are not host-shareable")},f32(e,t,s){e.writeFloat32(s)},f16(e,t,s){xr(e,s)},i32(e,t,s){e.writeInt32(s)},u32(e,t,s){e.writeUint32(s)},u16(e,t,s){e.writeUint16(s)},vec2f(e,t,s){e.writeFloat32(s[0]),e.writeFloat32(s[1])},vec2h(e,t,s){xr(e,s[0]),xr(e,s[1])},vec2i(e,t,s){e.writeInt32(s[0]),e.writeInt32(s[1])},vec2u(e,t,s){e.writeUint32(s[0]),e.writeUint32(s[1])},"vec2<bool>"(){throw new Error("Booleans are not host-shareable")},vec3f(e,t,s){e.writeFloat32(s[0]),e.writeFloat32(s[1]),e.writeFloat32(s[2])},vec3h(e,t,s){xr(e,s[0]),xr(e,s[1]),xr(e,s[2])},vec3i(e,t,s){e.writeInt32(s[0]),e.writeInt32(s[1]),e.writeInt32(s[2])},vec3u(e,t,s){e.writeUint32(s[0]),e.writeUint32(s[1]),e.writeUint32(s[2])},"vec3<bool>"(){throw new Error("Booleans are not host-shareable")},vec4f(e,t,s){e.writeFloat32(s[0]),e.writeFloat32(s[1]),e.writeFloat32(s[2]),e.writeFloat32(s[3])},vec4h(e,t,s){xr(e,s[0]),xr(e,s[1]),xr(e,s[2]),xr(e,s[3])},vec4i(e,t,s){e.writeInt32(s[0]),e.writeInt32(s[1]),e.writeInt32(s[2]),e.writeInt32(s[3])},vec4u(e,t,s){e.writeUint32(s[0]),e.writeUint32(s[1]),e.writeUint32(s[2]),e.writeUint32(s[3])},"vec4<bool>"(){throw new Error("Booleans are not host-shareable")},mat2x2f(e,t,s){for(let r=0;r<s.length;++r)e.writeFloat32(s[r])},mat3x3f(e,t,s){for(let r=0;r<s.length;++r)e.writeFloat32(s[r])},mat4x4f(e,t,s){for(let r=0;r<s.length;++r)e.writeFloat32(s[r])},struct(e,t,s){let r=ks(t);Tr(e,r);for(let[o,n]of Object.entries(t.propTypes))Tr(e,ks(n)),np(e,n,s[o]);Tr(e,r)},array(e,t,s){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let r=ks(t);Tr(e,r);let o=e.currentByteOffset;for(let n=0;n<Math.min(t.elementCount,s.length);n++)Tr(e,r),np(e,t.elementType,s[n]);e.seekTo(o+kt(t))},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t,s){hd[t.inner.type]?.(e,t,s)},decorated(e,t,s){Tr(e,sn(t));let r=e.currentByteOffset;hd[t.inner?.type]?.(e,t.inner,s),e.seekTo(r+kt(t))},uint8(e,t,s){e.writeUint8(s)},uint8x2(e,t,s){e.writeUint8(s.x),e.writeUint8(s.y)},uint8x4(e,t,s){e.writeUint8(s.x),e.writeUint8(s.y),e.writeUint8(s.z),e.writeUint8(s.w)},sint8(e,t,s){e.writeInt8(s)},sint8x2(e,t,s){e.writeInt8(s.x),e.writeInt8(s.y)},sint8x4(e,t,s){e.writeInt8(s.x),e.writeInt8(s.y),e.writeInt8(s.z),e.writeInt8(s.w)},unorm8(e,t,s){e.writeUint8(Math.round(s*255))},unorm8x2(e,t,s){e.writeUint8(Math.round(s.x*255)),e.writeUint8(Math.round(s.y*255))},unorm8x4(e,t,s){e.writeUint8(Math.round(s.x*255)),e.writeUint8(Math.round(s.y*255)),e.writeUint8(Math.round(s.z*255)),e.writeUint8(Math.round(s.w*255))},snorm8(e,t,s){e.writeInt8(Math.round(s*127))},snorm8x2(e,t,s){e.writeInt8(Math.round(s.x*127)),e.writeInt8(Math.round(s.y*127))},snorm8x4(e,t,s){e.writeInt8(Math.round(s.x*127)),e.writeInt8(Math.round(s.y*127)),e.writeInt8(Math.round(s.z*127)),e.writeInt8(Math.round(s.w*127))},uint16(e,t,s){e.writeUint16(s)},uint16x2(e,t,s){e.writeUint16(s.x),e.writeUint16(s.y)},uint16x4(e,t,s){e.writeUint16(s.x),e.writeUint16(s.y),e.writeUint16(s.z),e.writeUint16(s.w)},sint16(e,t,s){e.writeInt16(s)},sint16x2(e,t,s){e.writeInt16(s.x),e.writeInt16(s.y)},sint16x4(e,t,s){e.writeInt16(s.x),e.writeInt16(s.y),e.writeInt16(s.z),e.writeInt16(s.w)},unorm16(e,t,s){e.writeUint16(s*65535)},unorm16x2(e,t,s){e.writeUint16(s.x*65535),e.writeUint16(s.y*65535)},unorm16x4(e,t,s){e.writeUint16(s.x*65535),e.writeUint16(s.y*65535),e.writeUint16(s.z*65535),e.writeUint16(s.w*65535)},snorm16(e,t,s){e.writeInt16(Math.round(s*32767))},snorm16x2(e,t,s){e.writeInt16(Math.round(s.x*32767)),e.writeInt16(Math.round(s.y*32767))},snorm16x4(e,t,s){e.writeInt16(Math.round(s.x*32767)),e.writeInt16(Math.round(s.y*32767)),e.writeInt16(Math.round(s.z*32767)),e.writeInt16(Math.round(s.w*32767))},float16(e,t,s){xr(e,s)},float16x2(e,t,s){xr(e,s.x),xr(e,s.y)},float16x4(e,t,s){xr(e,s.x),xr(e,s.y),xr(e,s.z),xr(e,s.w)},float32(e,t,s){e.writeFloat32(s)},float32x2(e,t,s){e.writeFloat32(s.x),e.writeFloat32(s.y)},float32x3(e,t,s){e.writeFloat32(s.x),e.writeFloat32(s.y),e.writeFloat32(s.z)},float32x4(e,t,s){e.writeFloat32(s.x),e.writeFloat32(s.y),e.writeFloat32(s.z),e.writeFloat32(s.w)},uint32(e,t,s){e.writeUint32(s)},uint32x2(e,t,s){e.writeUint32(s.x),e.writeUint32(s.y)},uint32x3(e,t,s){e.writeUint32(s.x),e.writeUint32(s.y),e.writeUint32(s.z)},uint32x4(e,t,s){e.writeUint32(s.x),e.writeUint32(s.y),e.writeUint32(s.z),e.writeUint32(s.w)},sint32(e,t,s){e.writeInt32(s)},sint32x2(e,t,s){e.writeInt32(s.x),e.writeInt32(s.y)},sint32x3(e,t,s){e.writeInt32(s.x),e.writeInt32(s.y),e.writeInt32(s.z)},sint32x4(e,t,s){e.writeInt32(s.x),e.writeInt32(s.y),e.writeInt32(s.z),e.writeInt32(s.w)},"unorm10-10-10-2"(e,t,s){let r=0;r|=(s.x*1023&1023)<<22,r|=(s.y*1023&1023)<<12,r|=(s.z*1023&1023)<<2,r|=s.w*3&3,e.writeUint32(r)},"unorm8x4-bgra"(e,t,s){e.writeUint8(s.z*255),e.writeUint8(s.y*255),e.writeUint8(s.x*255),e.writeUint8(s.w*255)},disarray(e,t,s){let r=ks(t);Tr(e,r);let o=e.currentByteOffset;for(let n=0;n<Math.min(t.elementCount,s.length);n++)Tr(e,r),hd[t.elementType?.type]?.(e,t.elementType,s[n]);e.seekTo(o+kt(t))},unstruct(e,t,s){let r=t.propTypes;for(let[o,n]of Object.entries(r))hd[n.type]?.(e,n,s[o])},"loose-decorated"(e,t,s){Tr(e,sn(t));let r=e.currentByteOffset,o=hd[t.inner?.type];return o?.(e,t.inner,s),e.seekTo(r+kt(t)),s}};function np(e,t,s){if(ArrayBuffer.isView(s)){let o=s,n=kt(t);o.byteLength!==n&&fs.warn("suspicious",`TypedArray size mismatch: schema expects ${n} bytes, got ${o.byteLength}. `+(o.byteLength<n?"Data truncated.":"Excess ignored."));let i=e.currentByteOffset;e.writeSlice(new Uint8Array(o.buffer,o.byteOffset,Math.min(o.byteLength,n))),e.seekTo(i+n);return}let r=hd[t.type];if(!r)throw new Error(`Cannot write data of type '${t.type}'.`);r(e,t,s)}var wU={bool(){throw new Error("Booleans are not host-shareable")},f32(e){return e.readFloat32()},f16(e){return br(e)},i32(e){return e.readInt32()},u32(e){return e.readUint32()},u16(e){return e.readUint16()},vec2f(e){return $t(e.readFloat32(),e.readFloat32())},vec3f(e){return cs(e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return lt(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return Sr(br(e),br(e))},vec3h(e){return po(br(e),br(e),br(e))},vec4h(e){return Ar(br(e),br(e),br(e),br(e))},vec2i(e){return xs(e.readInt32(),e.readInt32())},vec3i(e){return Os(e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return ps(e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return ns(e.readUint32(),e.readUint32())},vec3u(e){return Ot(e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return es(e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32())},"vec2<bool>"(){throw new Error("Booleans are not host-shareable")},"vec3<bool>"(){throw new Error("Booleans are not host-shareable")},"vec4<bool>"(){throw new Error("Booleans are not host-shareable")},mat2x2f(e){return ga(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let s=e.readFloat32();return e.readFloat32(),s};return xa(e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return Mr(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},struct(e,t){let s=ks(t);Tr(e,s);let r={},o=t.propTypes;for(let[n,i]of Object.entries(o))Tr(e,ks(i)),r[n]=za(e,i);return Tr(e,s),r},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let s=ks(t),r=[];for(let o=0;o<t.elementCount;o++){Tr(e,s);let n=t.elementType,i=za(e,n);r.push(i)}return Tr(e,s),r},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t){return za(e,t.inner)},decorated(e,t){Tr(e,sn(t));let s=e.currentByteOffset,r=za(e,t.inner);return e.seekTo(s+kt(t)),r},uint8:e=>e.readUint8(),uint8x2:e=>ns(e.readUint8(),e.readUint8()),uint8x4:e=>es(e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8()),sint8:e=>e.readInt8(),sint8x2:e=>xs(e.readInt8(),e.readInt8()),sint8x4:e=>ps(e.readInt8(),e.readInt8(),e.readInt8(),e.readInt8()),unorm8:e=>e.readUint8()/255,unorm8x2:e=>$t(e.readUint8()/255,e.readUint8()/255),unorm8x4:e=>lt(e.readUint8()/255,e.readUint8()/255,e.readUint8()/255,e.readUint8()/255),snorm8:e=>e.readInt8()/127,snorm8x2:e=>$t(e.readInt8()/127,e.readInt8()/127),snorm8x4:e=>lt(e.readInt8()/127,e.readInt8()/127,e.readInt8()/127,e.readInt8()/127),uint16:e=>e.readUint16(),uint16x2:e=>ns(e.readUint16(),e.readUint16()),uint16x4:e=>es(e.readUint16(),e.readUint16(),e.readUint16(),e.readUint16()),sint16:e=>e.readInt16(),sint16x2:e=>xs(e.readInt16(),e.readInt16()),sint16x4:e=>ps(e.readInt16(),e.readInt16(),e.readInt16(),e.readInt16()),unorm16:e=>e.readUint16()/65535,unorm16x2:e=>$t(e.readUint16()/65535,e.readUint16()/65535),unorm16x4:e=>lt(e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535),snorm16:e=>e.readInt16()/32767,snorm16x2:e=>$t(e.readInt16()/32767,e.readInt16()/32767),snorm16x4:e=>lt(e.readInt16()/32767,e.readInt16()/32767,e.readInt16()/32767,e.readInt16()/32767),float16(e){return br(e)},float16x2:e=>$t(br(e),br(e)),float16x4:e=>lt(br(e),br(e),br(e),br(e)),float32:e=>e.readFloat32(),float32x2:e=>$t(e.readFloat32(),e.readFloat32()),float32x3:e=>cs(e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>lt(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>ns(e.readUint32(),e.readUint32()),uint32x3:e=>Ot(e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>es(e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>xs(e.readInt32(),e.readInt32()),sint32x3:e=>Os(e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>ps(e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32()),"unorm10-10-10-2"(e){let t=e.readUint32();return lt((t>>22)/1023,(t>>12&1023)/1023,(t>>2&1023)/1023,(t&3)/3)},"unorm8x4-bgra"(e){let t=e.readByte()/255,s=e.readByte()/255;return lt(e.readByte()/255,s,t,e.readByte()/255)},unstruct(e,t){let s={},r=t.propTypes;for(let[o,n]of Object.entries(r))s[o]=za(e,n);return s},disarray(e,t){let s=ks(t),r=[];for(let o=0;o<t.elementCount;o++)Tr(e,s),r.push(za(e,t.elementType));return Tr(e,s),r},"loose-decorated"(e,t){Tr(e,sn(t));let s=e.currentByteOffset,r=za(e,t.inner);return e.seekTo(s+kt(t)),r}};function za(e,t){let s=wU[t.type];if(!s)throw new Error(`Cannot read data of type '${t.type}'.`);return s(e,t)}var TU=Xh();function Rw(e,t,s){let r=kt(t),o=e?.startOffset??0,n;cr(t)&&Array.isArray(s)?n=s.length*Er(kt(t.elementType),ks(t.elementType)):(ArrayBuffer.isView(s)||s instanceof ArrayBuffer)&&(n=s.byteLength);let i=n!==void 0?Math.min(o+n,r):void 0;return{startOffset:o,endOffset:e?.endOffset??i??r}}function V1(e,t,s,r){let{startOffset:o,endOffset:n}=Rw(r,t,s);if(s instanceof ArrayBuffer||ArrayBuffer.isView(s)){let _=s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength),p=n-o;_.byteLength!==p&&fs.warn("suspicious",`Buffer size mismatch: expected ${p} bytes, got ${_.byteLength}. `+(_.byteLength<p?"Data truncated.":"Excess ignored."));let f=Math.min(_.byteLength,p);new Uint8Array(e).set(_.subarray(0,f),o);return}let i=new DataView(e),d=TU==="little",l=oy(t);if(l)try{l(i,o,s,d,n);return}catch(_){fs.warn("fallback",`Error when using compiled writer for data type '${t.type}' (${Re(t)??"unnamed"}) - this is likely a bug, please submit an issue at https://github.com/software-mansion/TypeGPU/issues
|
|
Using fallback writer instead.`,_)}let c=new Xi(e);c.seekTo(o),np(c,t,s)}function N1(e,t){return za(new sl(e),t)}function tv(e,t){if(t==null)return t;if(Es(e)||Zn(e)){let s={},r=t;for(let o of Object.keys(e.propTypes)){let n=e.propTypes[o],i=r[o];i!==void 0&&n&&(s[o]=tv(n,i))}return s}if(cr(e)||Vi(e)){let s=e,r={};for(let{idx:o,value:n}of t)r[o]=tv(s.elementType,n);return r}return t}var SU=Xh()==="little";function Uw(e,t,s){let r=kt(e);if(r===0||t===void 0||t===null)return[];let o=s??new ArrayBuffer(r),n=new Xi(o),i=new DataView(o),d=[];function l(p,f,h,g){if(f==null)return;if(Es(p)||Zn(p)){let S=hm(p);for(let[A,E]of Object.entries(S)){let M=f[A],$=p.propTypes[A];M!==void 0&&$&&l($,M,h+E.offset,E.padding??g)}return}if(cr(p)||Vi(p)){let S=p,A=Er(kt(S.elementType),ks(S.elementType)),E=A-kt(S.elementType);if(ArrayBuffer.isView(f)){let $=Math.min(f.byteLength,S.elementCount*A);new Uint8Array(o,h,$).set(new Uint8Array(f.buffer,f.byteOffset,$)),d.push({start:h,end:h+$,padding:g});return}if(Array.isArray(f)){for(let $=0;$<Math.min(S.elementCount,f.length);$++)l(S.elementType,f[$],h+$*A,E);return}let M=f;for(let $ of Object.keys(M)){let L=Number($);Number.isNaN(L)||l(S.elementType,M[$],h+L*A,E)}return}let x=kt(p),T=oy(p);T?T(i,h,f,SU,h+x):(n.seekTo(h),np(n,p,f)),d.push({start:h,end:h+x,padding:g})}l(e,t,0);let c=[],_=null;for(let p of d)_&&p.start===_.end+(_.padding??0)?_={start:_.start,end:p.end,padding:p.padding}:(_&&c.push({gpuOffset:_.start,data:new Uint8Array(o,_.start,_.end-_.start).slice()}),_=p);return _&&c.push({gpuOffset:_.start,data:new Uint8Array(o,_.start,_.end-_.start).slice()}),c}function AU(e,t,s){let r=Uw(t,s,e),o=new Uint8Array(e);for(let{data:n,gpuOffset:i}of r)o.set(n,i)}var Db=class zw extends Error{constructor(t){super(`Resource '${Re(t)??"<unnamed>"}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,zw.prototype)}};function Ic(e){return e instanceof Di}function EU(e){return Ic(e)&&e.resourceType==="uniform"}function PU(e){return Ic(e)&&e.resourceType==="mutable"}function MU(e){return Ic(e)&&e.resourceType==="readonly"}var Di=class sv{[be];[Pr];resourceType;static#e=void(sv.prototype[q]=!0,Qn(wa(sv.prototype,{asString(){return`${this.resourceType}BufferBinding:${Re(this)??"<unnamed>"}`},resolve(t){let s=this.buffer.dataType,r=t.makeUniqueIdentifier(Re(this),"global"),{group:o,binding:n}=t.allocateFixedEntry(this.resourceType==="uniform"?{uniform:s}:{storage:s,access:this.resourceType},this.buffer);return t.gen.declareGlobalVar({group:o,binding:n,scope:this.resourceType,id:r,dataType:s,init:void 0})}}),{codegenMode:{getBaseSnippet(t){return Ae(t,this.buffer.dataType,this.resourceType,!1)}},simulateMode:{get(t){return t.buffers.has(this.buffer)||t.buffers.set(this.buffer,Xa(this.buffer.dataType,this.buffer.initial)),t.buffers.get(this.buffer)},set(t,s){t.buffers.set(this.buffer,s)}},normalMode:{get(){throw new Ox(Q_()?`Cannot access ${String(this.buffer)}. TypeGPU functions that depends on GPU resources need to be part of a compute dispatch, draw call or simulation`:".$ is inaccessible during normal JS execution. Try `.read()`")},set(){throw new Ox(Q_()?`Cannot access ${String(this.buffer)}. TypeGPU functions that depends on GPU resources need to be part of a compute dispatch, draw call or simulation`:".$ is inaccessible during normal JS execution. Try `.write()`")}}}));constructor(t,s){this.resourceType=t,this[Pr]=s,this[be]={type:t,buffer:s,label:void 0}}get buffer(){return this[be].buffer}$name(t){return Tt(this,t),this}write(t,s){this.buffer.write(t,s)}writePartial(t){this.buffer.writePartial(t)}patch(t){this.buffer.patch(t)}read(){return this.buffer.read()}},Lb=new WeakMap;function kU(e){if(!Z_(e))throw new Error(`Cannot call as('mutable') on ${e}, as it is not allowed to be used as storage. To allow it, call .$usage('storage') when creating the buffer.`);let t=Lb.get(e);return t||(t=new Di("mutable",e),Lb.set(e,t)),t}var Fb=new WeakMap;function $U(e){if(!Z_(e))throw new Error(`Cannot call as('readonly') on ${e}, as it is not allowed to be used as storage. To allow it, call .$usage('storage') when creating the buffer.`);let t=Fb.get(e);return t||(t=new Di("readonly",e),Fb.set(e,t)),t}var Bb=new WeakMap;function CU(e){if(!f6(e))throw new Error(`Cannot call as('uniform') on ${e}, as it is not allowed to be used as a uniform. To allow it, call .$usage('uniform') when creating the buffer.`);let t=Bb.get(e);return t||(t=new Di("uniform",e),Bb.set(e,t)),t}function Gw(e,t){let s=Object.values(e).flatMap(n=>Object.values(n.entries)).filter(n=>n!==null),r=s.filter(n=>"uniform"in n).length,o=s.filter(n=>"storage"in n).length;r>t.maxUniformBuffersPerShaderStage&&fs.warn("webgpu-limits-exceeded",`Total number of uniform buffers (${r}) exceeds maxUniformBuffersPerShaderStage (${t.maxUniformBuffersPerShaderStage}). Consider:
|
|
1. Grouping some of the uniforms into one using 'd.struct',
|
|
2. Increasing the limit when requesting a device or creating a root.`),o>t.maxStorageBuffersPerShaderStage&&fs.warn("webgpu-limits-exceeded",`Total number of storage buffers (${o}) exceeds maxStorageBuffersPerShaderStage (${t.maxStorageBuffersPerShaderStage}).`)}function RU(e){return Es(e)||cr(e)?Er(ks(e),16):ks(e)}function rv(e){if(cr(e)){rv(e.elementType);let t=Er(kt(e.elementType),ks(e.elementType));t%16!==0&&fs.warn("uniform-schema-misaligned",`Schema '${Re(e.elementType)??"<unnamed>"}' is used in an array in a uniform buffer, and its stride (${t}) is not a multiple of 16.
|
|
This is not portable (see https://www.w3.org/TR/WGSL/#address-space-layout-constraints), and will break on some devices.
|
|
To address this, put the element schema in a struct and wrap the prop in 'd.align(16, ...)', or use a different schema like 'vec4f'.`)}if(Es(e)){Object.values(e.propTypes).forEach(rv),Object.entries(e.propTypes).forEach(([s,r])=>{let o=D_(e,i=>i[s]).offset,n=RU(r);o%n&&fs.warn("uniform-schema-misaligned",`Schema '${Re(e)??"<unnamed>"}' is used in a uniform buffer, and its property '${s}' does not meet required alignment (offset is ${o}, required alignment is ${n}).
|
|
This is not portable (see https://www.w3.org/TR/WGSL/#address-space-layout-constraints), and will break on some devices.
|
|
To address this, wrap the property '${s}' in 'd.align(${n}, ...)'.`)});let t=Object.keys(e.propTypes);for(let s=0;s<t.length-1;s++){let r=t[s],o=t[s+1];Ws(r&&o);let n=e.propTypes[r];if(Ws(n),!Es(n))continue;let i=Er(kt(n),16),d=D_(e,c=>c[r]).offset,l=D_(e,c=>c[o]).offset-d;i>l&&fs.warn("uniform-schema-misaligned",`Schema '${Re(e)??"<unnamed>"}' is used in a uniform buffer, and the difference between memory offsets of '${r}' and '${o}' props (${l}) is less than recommended (${i}).
|
|
This is not portable (see https://www.w3.org/TR/WGSL/#address-space-layout-constraints), and will break on some devices.
|
|
To address this, wrap the '${r}' prop in 'd.size(${i}, ...)'.`)}}}var UU={uniform:CU,mutable:kU,readonly:$U};function p_(e,t,s){return Oi(t)?new Ib(e,t,s):new Ib(e,t,s,["storage","uniform"])}var Ib=class{[q];[be];resourceType="buffer";#e;#t=!1;#s;get#r(){return this.#s??=new ArrayBuffer(kt(this.dataType))}#o;#n;#i;initial;usableAsUniform=!1;usableAsStorage=!1;usableAsVertex=!1;usableAsIndex=!1;usableAsIndirect=!1;constructor(e,t,s,r){this[be]={type:"buffer",device:e.device,dataType:t,flags:GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC,usages:[],raw:void 0,label:void 0},this.#i=r,ca(s)?(this.#e=!1,this[be].raw=s):(this.#e=!0,typeof s=="function"?this.#n=s:this.initial=s),this[q]={root:e,materialize:()=>{if(this.#t)throw new Error("This buffer has been destroyed");let o=this[be];return o.raw||(o.raw=o.device.createBuffer({size:kt(o.dataType),usage:o.flags,mappedAtCreation:!!this.initial||!!this.#n,label:Re(this)??"<unnamed>"}),(this.initial||this.#n)&&(this.#n?this.#n(this):this.initial&&V1(this.#a(),this.dataType,this.initial),this.#d())),o.raw}}}get dataType(){return this[be].dataType}get flags(){return this[be].flags}set flags(e){this[be].flags=e}get buffer(){return this[q].materialize()}get destroyed(){return this.#t}get arrayBuffer(){return this.buffer.mapState==="mapped"?this.#a():this.#r}#a(){let e=this[be].raw;if(!e||e.mapState!=="mapped")throw new Error("Buffer is not mapped.");return this.#o??=e.getMappedRange(),this.#o}#d(){let e=this[be].raw;!e||e.mapState!=="mapped"||(this.#o=void 0,e.unmap())}$name(e){Tt(this,e);let t=this[be].raw;return t&&(t.label=e),this}$usage(...e){for(let t of e){if(this.#i?.includes(t))throw new Error(`Buffer of type ${this.dataType.type} cannot be used as ${t}`);t==="uniform"&&rv(this.dataType),this.flags|=t==="uniform"?GPUBufferUsage.UNIFORM:0,this.flags|=t==="storage"?GPUBufferUsage.STORAGE:0,this.flags|=t==="vertex"?GPUBufferUsage.VERTEX:0,this.flags|=t==="index"?GPUBufferUsage.INDEX:0,this.flags|=t==="indirect"?GPUBufferUsage.INDIRECT:0,this.usableAsUniform=this.usableAsUniform||t==="uniform",this.usableAsStorage=this.usableAsStorage||t==="storage",this.usableAsVertex=this.usableAsVertex||t==="vertex",this.usableAsIndex=this.usableAsIndex||t==="index",this.usableAsIndirect=this.usableAsIndirect||t==="indirect",this[be].usages.includes(t)||this[be].usages.push(t)}return this}$addFlags(e){if(!this.#e)throw new Error("Cannot add flags to a buffer that is not managed by TypeGPU.");return e&GPUBufferUsage.MAP_READ?(this.flags=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,this):e&GPUBufferUsage.MAP_WRITE?(this.flags=GPUBufferUsage.COPY_SRC|GPUBufferUsage.MAP_WRITE,this):(this.flags|=e,this)}compileWriter(){oy(this.dataType)}write(e,t){let s=this.buffer;if(s.mapState==="mapped"){let i=this.#a();if(e instanceof ArrayBuffer&&e===i)return;V1(i,this.dataType,e,t);return}e instanceof ArrayBuffer&&e===this.#r||V1(this.#r,this.dataType,e,t);let{startOffset:r,endOffset:o}=Rw(t,this.dataType,e),n=o-r;this[be].device.queue.writeBuffer(s,r,this.#r,r,n)}writePartial(e){this.patch(tv(this.dataType,e))}patch(e){let t=this.buffer;if(t.mapState==="mapped")AU(this.#a(),this.dataType,e);else{let s=Uw(this.dataType,e,this.#r);for(let{data:r,gpuOffset:o}of s)this[be].device.queue.writeBuffer(t,o,r)}}clear(e){let t=this.buffer;if(e){e[q].rawEncoder.clearBuffer(t);return}if(t.mapState==="mapped"){new Uint8Array(this.#a()).fill(0);return}let s=this[be].device.createCommandEncoder();s.clearBuffer(t),this[be].device.queue.submit([s.finish()])}copyFrom(e,t){if(this.buffer.mapState==="mapped")throw new Error("Cannot copy to a mapped buffer.");let s=kt(this.dataType);if(t){t[q].rawEncoder.copyBufferToBuffer(e.buffer,0,this.buffer,0,s);return}let r=this[be].device.createCommandEncoder();r.copyBufferToBuffer(e.buffer,0,this.buffer,0,s),this[be].device.queue.submit([r.finish()])}async read(){let e=this.buffer;if(e.mapState==="mapped")return N1(this.#a(),this.dataType);if(e.usage&GPUBufferUsage.MAP_READ){await e.mapAsync(GPUMapMode.READ);let o=N1(this.#a(),this.dataType);return this.#d(),o}let t=this[be].device.createBuffer({size:kt(this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),s=this[be].device.createCommandEncoder();s.copyBufferToBuffer(e,0,t,0,kt(this.dataType)),this[be].device.queue.submit([s.finish()]),await t.mapAsync(GPUMapMode.READ,0,kt(this.dataType));let r=N1(t.getMappedRange(),this.dataType);return t.unmap(),t.destroy(),r}as(e){return UU[e](this)}destroy(){this.#t||(this.#t=!0,this.#o=void 0,this.#e&&this[be].raw?.destroy())}toString(){return`buffer:${Re(this)??"<unnamed>"}`}},Dw=class ov{bindings;constructor(t){this.bindings=t}with(t,s){return new ov([...this.bindings,[Jd(t)||el(t)?t.slot:t,s]])}pipe(t){let s=t(this);return new ov([...this.bindings,...s.bindings])}};function*zU(e){let t=0;for(;;)e.has(t)||(yield t),t++}function GU(e,t){return new Fw(Nh(),e,t)}function DU(e,t){return new Fw(Q6(),e,t)}function ny(e){let t=e;return t?.resourceType==="sampler"&&!!t[q]}function ay(e){let t=e;return t?.resourceType==="sampler-comparison"&&!!t[q]}var LU=class Lw{[q]={materialize:void 0};resourceType;schema;#e;static#t=Qn(wa(Lw.prototype,{asString(){return`${this.resourceType}:${Re(this)??"<unnamed>"}`},resolve(t){let s=t.makeUniqueIdentifier(Re(this),"global"),r=t.allocateLayoutEntry(this.#e.layout);return t.addDeclaration(`@group(${r}) @binding(${this.#e.idx}) var ${s}: ${t.resolve(this.schema).value};`,s),Ae(s,this.schema,"handle")}}),{codegenMode:{getBaseSnippet(t){return Ae(t,this.schema,"handle",!1)}},normalMode:{get(){throw new Error("Direct access to sampler values is possible only as part of a compute dispatch or draw call.")}}});constructor(t,s){this.schema=t,this.#e=s,this.resourceType=t.type==="sampler_comparison"?"sampler-comparison":"sampler",Tt(this,s.key)}},Fw=class Bw{[q];[be];resourceType;schema;#e;static#t=Qn(wa(Bw.prototype,{asString(){return`${this.resourceType}:${Re(this)??"<unnamed>"}`},resolve(t){let s=t.makeUniqueIdentifier(Re(this),"global"),{group:r,binding:o}=t.allocateFixedEntry(this.schema.type==="sampler_comparison"?{sampler:"comparison"}:{sampler:this.#e?"filtering":"non-filtering"},this);return t.addDeclaration(`@group(${r}) @binding(${o}) var ${s}: ${t.resolve(this.schema).value};`,s),Ae(s,this.schema,"handle")}}),{codegenMode:{getBaseSnippet(t){return Ae(t,this.schema,"handle",!1)}},normalMode:{get(){throw new Error("Direct access to sampler values is possible only as part of a compute dispatch or draw call.")}}});constructor(t,s,r){this.schema=t,this.resourceType=t.type==="sampler_comparison"?"sampler-comparison":"sampler",this[be]={type:this.resourceType,device:r.device,props:s,raw:void 0,label:void 0},this[q]={root:r,materialize:()=>{let o=this[be];return o.raw||(o.raw=o.device.createSampler({...o.props,label:Re(this)??"<unnamed>"})),o.raw}},this.#e=s.minFilter==="linear"||s.magFilter==="linear"||s.mipmapFilter==="linear"}$name(t){return Tt(this,t),this}},FU=class{resourceType="external-texture";[q]=!0;schema;#e;constructor(e,t){this.schema=e,this.#e=t,Tt(this,t.key)}[ts](e){let t=e.makeUniqueIdentifier(Re(this),"global"),s=e.allocateLayoutEntry(this.#e.layout);return e.addDeclaration(`@group(${s}) @binding(${this.#e.idx}) var ${t}: ${e.resolve(this.schema).value};`,t),Ae(t,K6(),"handle")}get[$o](){let e=this.schema;return new Proxy({[q]:!0,get[Na](){return Ae(this,e,"handle",!1)},[ts]:t=>t.resolve(this),toString:()=>`textureExternal:${Re(this)??"<unnamed>"}.$`},Ud)}get $(){if(dm())return this[$o];throw new Error("Direct access to texture views values is possible only as part of a compute dispatch or draw call. Try .read() or .write() instead")}toString(){return`textureExternal:${Re(this)??"<unnamed>"}`}},BU={channelType:a,vectorType:lt,sampleTypes:["depth","unfilterable-float"],texelSize:"non-copyable"},IU={channelType:a,vectorType:lt,sampleTypes:["depth","unfilterable-float"],texelSize:2},YU={channelType:a,vectorType:lt,sampleTypes:["depth","unfilterable-float"],texelSize:4},WU={channelType:Y,vectorType:es,sampleTypes:["uint"],texelSize:1},Yb=new Map;function Yc(e){let t=Yb.get(e);return t===void 0&&(t=OU(e),Yb.set(e,t)),t}function OU(e){let t=qU(e),s=VU(e),r=e.includes("stencil");return{channelType:t,vectorType:t===Y?es:t===oe?ps:lt,texelSize:XU(e),sampleTypes:HU(e),canRenderAttachment:NU(e),...s&&{depthAspect:s},...r&&{stencilAspect:WU}}}function VU(e){if(e==="depth16unorm")return IU;if(e==="depth32float"||e==="depth32float-stencil8")return YU;if(e==="depth24plus"||e==="depth24plus-stencil8")return BU}function NU(e){return!(e.startsWith("bc")||e.startsWith("etc2")||e.startsWith("eac")||e.startsWith("astc")||e==="rgb9e5ufloat")}function qU(e){return e==="stencil8"||e.includes("uint")?Y:e.includes("sint")?oe:a}function XU(e){let[,t,s]=e.match(/^(rgba|bgra|rg|r)(8|16|32)/)??[];return t&&s?t.length*Number(s)/8:e==="stencil8"?1:e==="depth16unorm"?2:e==="depth32float"?4:e==="depth32float-stencil8"?5:e==="depth24plus"||e==="depth24plus-stencil8"?"non-copyable":/^(bc[14]-|etc2-rgb8|eac-r11)/.test(e)?8:/^(bc|astc-|etc2-rgba|eac-rg)/.test(e)?16:4}function HU(e){return e==="stencil8"?["uint"]:e.includes("uint")?["uint"]:e.includes("sint")?["sint"]:e.includes("depth")?["depth","unfilterable-float"]:/^(r|rg|rgba)16(u|s)norm$/.test(e)?["unfilterable-float"]:["float","unfilterable-float"]}var jU=new Set(["r32float","rg32float","rgba32float"]);function KU(e,t){return jU.has(t)&&!e.features.has("float32-filterable")?["unfilterable-float"]:Yc(t).sampleTypes}function Iw(e){let{videoWidth:t,videoHeight:s}=e;if(t&&s)return{width:t,height:s};let{naturalWidth:r,naturalHeight:o}=e;if(r&&o)return{width:r,height:o};let{codedWidth:n,codedHeight:i}=e;if(n&&i)return{width:n,height:i};let{width:d,height:l}=e;if(d&&l)return{width:d,height:l};throw new Error("Cannot determine dimensions of the provided image source.")}var ZU=`
|
|
struct VertexOutput {
|
|
@builtin(position) pos: vec4f,
|
|
@location(0) uv: vec2f,
|
|
}
|
|
|
|
@vertex
|
|
fn vs_main(@builtin(vertex_index) i: u32) -> VertexOutput {
|
|
const pos = array(vec2f(-1, -1), vec2f(3, -1), vec2f(-1, 3));
|
|
const uv = array(vec2f(0, 1), vec2f(2, 1), vec2f(0, -1));
|
|
return VertexOutput(vec4f(pos[i], 0, 1), uv[i]);
|
|
}`,QU=`
|
|
@group(0) @binding(0) var src: texture_2d<f32>;
|
|
@group(0) @binding(1) var samp: sampler;
|
|
|
|
@fragment
|
|
fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
|
|
return textureSample(src, samp, uv);
|
|
}`,JU=`
|
|
@group(0) @binding(0) var src: texture_2d<f32>;
|
|
@group(0) @binding(1) var samp: sampler;
|
|
|
|
@fragment
|
|
fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
|
|
let r = textureGather(0, src, samp, uv);
|
|
let g = textureGather(1, src, samp, uv);
|
|
let b = textureGather(2, src, samp, uv);
|
|
let a = textureGather(3, src, samp, uv);
|
|
return vec4f(dot(r, vec4f(0.25)), dot(g, vec4f(0.25)), dot(b, vec4f(0.25)), dot(a, vec4f(0.25)));
|
|
}`,nv=new WeakMap;function ez(e){let t=nv.get(e);return t||(t={vertexModule:e.createShaderModule({code:ZU}),filterableResources:new Map,layoutResources:new Map},nv.set(e,t)),t}function tz(e,t,s){let r=ez(e),o=r.filterableResources.get(t);o||(o={fragmentModule:e.createShaderModule({code:t?QU:JU}),sampler:e.createSampler(t?{magFilter:"linear",minFilter:"linear"}:{})},r.filterableResources.set(t,o));let n=`${t}:${s}`,i=r.layoutResources.get(n);if(!i){let d=e.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:s}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:t?"filtering":"non-filtering"}}]});i={bindGroupLayout:d,pipelineLayout:e.createPipelineLayout({bindGroupLayouts:[d]})},r.layoutResources.set(n,i)}return{vertexModule:r.vertexModule,...o,...i}}function Yw(e){let{device:t,source:s,destination:r,format:o,filterable:n,sampleType:i}=e,d=tz(t,n,i),l=t.createRenderPipeline({layout:d.pipelineLayout,vertex:{module:d.vertexModule},fragment:{module:d.fragmentModule,targets:[{format:o}]},primitive:{topology:"triangle-list"}}),c=t.createBindGroup({layout:d.bindGroupLayout,entries:[{binding:0,resource:s},{binding:1,resource:d.sampler}]}),_=!e.encoder,p=e.encoder??t.createCommandEncoder(),f=p.beginRenderPass({colorAttachments:[{view:r,loadOp:"clear",storeOp:"store"}]});f.setPipeline(l),f.setBindGroup(0,c),f.draw(3),f.end(),_&&t.queue.submit([p.finish()])}function sz(e){nv.delete(e)}function Ww(e,t,s){let r=Yc(t),o=KU(e,t),n=o.includes("float"),i=o.includes("unfilterable-float");if(!n&&!i)throw new Error(`Cannot ${s} for format '${t}': only float formats are supported.`);if(!r.canRenderAttachment)throw new Error(`Cannot ${s} for format '${t}': format does not support render attachments.`);return{filterable:n,sampleType:n?"float":"unfilterable-float"}}function rz(e,t,s=0,r){if(t.dimension!=="2d")throw new Error("Mipmap generation only supports 2D textures.");let{filterable:o,sampleType:n}=Ww(e,t.format,"generate mipmaps"),i=r??t.mipLevelCount-s;for(let d=0;d<t.depthOrArrayLayers;d++)for(let l=s;l<s+i-1;l++){let c=_=>({dimension:"2d",baseMipLevel:_,mipLevelCount:1,baseArrayLayer:d,arrayLayerCount:1});Yw({device:e,source:t.createView(c(l)),destination:t.createView(c(l+1)),format:t.format,filterable:o,sampleType:n})}}function oz(e,t,s,r=0){if(t.dimension!=="2d")throw new Error("Resampling only supports 2D textures.");let{filterable:o}=Ww(e,t.format,"resample"),{width:n,height:i}=Iw(s),d=e.createTexture({size:[n,i],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});e.queue.copyExternalImageToTexture({source:s},{texture:d},[n,i]);let l=e.createTexture({size:[t.width,t.height],format:t.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC}),c=e.createCommandEncoder();Yw({device:e,source:d.createView(),destination:l.createView(),format:t.format,filterable:o,sampleType:"float",encoder:c}),c.copyTextureToTexture({texture:l},{texture:t,origin:{x:0,y:0,z:r}},{width:t.width,height:t.height,depthOrArrayLayers:1}),e.queue.submit([c.finish()]),d.destroy(),l.destroy()}function nz(e){return{dimension:e.dimension??"2d",sampleType:Yc(e.format).channelType,multisampled:(e.sampleCount??1)!==1}}function az(e,t,s){return new iz(e,t,s)}function xc(e){return e?.resourceType==="texture"&&!!e[q]}function zd(e){return e?.resourceType==="texture-view"&&!!e[q]}var iz=class{[q];[be];resourceType="texture";usableAsSampled=!1;usableAsStorage=!1;usableAsRender=!1;#e;#t=!1;#s;constructor(e,t,s){this.#s=s===void 0,this[be]={type:"texture",device:t.device,props:e,flags:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,flagsOverridden:!1,usages:[],raw:s,label:void 0},this.#e=Yc(e.format),this[q]={root:t,materialize:()=>{if(this.#t)throw new Error("This texture has been destroyed");let r=this[be];if(!r.raw){let o=r.props;r.raw=(globalThis.__TYPEGPU_AUTONAME__??(n=>n))(r.device.createTexture({label:Re(this)??"<unnamed>",format:o.format,size:o.size,usage:r.flags,dimension:o.dimension??"2d",viewFormats:o.viewFormats??[],mipLevelCount:o.mipLevelCount??1,sampleCount:o.sampleCount??1}),"raw")}return r.raw}}}get props(){return this[be].props}$name(e){return Tt(this,e),this}$usage(...e){let t=this[be];if(t.flagsOverridden)throw new Error("Cannot call $usage() after $overrideFlags().");let s=e.includes("storage"),r=e.includes("sampled"),o=e.includes("render"),n=e.includes("transient"),i=(r?GPUTextureUsage.TEXTURE_BINDING:0)|(s?GPUTextureUsage.STORAGE_BINDING:0),d=GPUTextureUsage.TRANSIENT_ATTACHMENT|GPUTextureUsage.RENDER_ATTACHMENT,l=t.flags|i|(o?GPUTextureUsage.RENDER_ATTACHMENT:0),c=n||!!(t.flags&GPUTextureUsage.TRANSIENT_ATTACHMENT),_=!!(l&(GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.STORAGE_BINDING));if(c&&_)throw new Error("Transient texture usage cannot be combined with 'sampled' or 'storage'.");t.flags=n?d:l,this.usableAsStorage||=s,this.usableAsSampled||=r,this.usableAsRender||=o||n;for(let p of e)t.usages.includes(p)||t.usages.push(p);return this}$overrideFlags(e){let t=this[be];return t.flags=e,t.flagsOverridden=!0,this.usableAsSampled=!0,this.usableAsStorage=!0,this.usableAsRender=!0,this}createView(e,t){return e==="render"?new lz(this,t):new dz(e??Q$(nz(this.props)),this,t)}#r(e=0){let t=2**e,[s,r,o]=[Math.max(1,Math.floor((this.props.size[0]??1)/t)),Math.max(1,Math.floor((this.props.size[1]??1)/t)),Math.max(1,Math.floor((this.props.size[2]??1)/t))],n=this.#e.texelSize;if(n==="non-copyable")throw new Error(`Cannot clear texture with format '${this.props.format}': this format does not support copy operations.`);this[be].device.queue.writeTexture({texture:this[q].materialize(),mipLevel:e},new Uint8Array(s*r*o*n),{bytesPerRow:n*s,rowsPerImage:r},[s,r,o])}clear(e="all"){if(e==="all"){let t=this.props.mipLevelCount??1;for(let s=0;s<t;s++)this.#r(s)}else this.#r(e)}generateMipmaps(e=0,t){if(!this.usableAsRender)throw new Error("generateMipmaps called without specifying 'render' usage. Add it via the $usage('render') method.");let s=t??(this.props.mipLevelCount??1)-e;if(s<=1){fs.warn("suspicious",`generateMipmaps is a no-op: would generate ${s} mip levels (base: ${e}, total: ${this.props.mipLevelCount??1})`);return}if(e>=(this.props.mipLevelCount??1))throw new Error(`Base mip level ${e} is out of range. Texture has ${this.props.mipLevelCount??1} mip levels.`);rz(this[be].device,this[q].materialize(),e,s)}write(e,t=0){if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){this.#o(e,typeof t=="number"?t:0);return}if(!this.usableAsRender)throw new Error("texture.write(...) with image sources requires 'render' usage. Add it via the $usage('render') method.");let s=typeof t=="number"?void 0:t,r=this.props.dimension??"2d";if(!Array.isArray(e)){this.#n(e,r==="3d"?0:void 0,s);return}let o=this.props.size[2]??1;e.length>o&&fs.warn("suspicious",`Too many image sources provided. Expected ${o} layers, got ${e.length}. Extra sources will be ignored.`);for(let n=0;n<Math.min(e.length,o);n++){let i=e[n];i&&this.#n(i,n,s)}}#o(e,t){let s=Math.max(1,this.props.size[0]>>t),r=Math.max(1,(this.props.size[1]??1)>>t),o=Math.max(1,(this.props.size[2]??1)>>t),n=this.#e.texelSize;if(n==="non-copyable")throw new Error(`Cannot write to texture with format '${this.props.format}': this format does not support copy operations.`);let i=s*r*o*n,d=e.byteLength??e.byteLength;if(d!==i)throw new Error(`Buffer size mismatch. Expected ${i} bytes for mip level ${t}, got ${d} bytes.`);this[be].device.queue.writeTexture({texture:this[q].materialize(),mipLevel:t},"buffer"in e?e.buffer:e,{bytesPerRow:n*s,rowsPerImage:r},[s,r,o])}#n(e,t,s){let r=this.props.size[0],o=this.props.size[1]??1,{width:n,height:i}=Iw(e);if(n!==r||i!==o){if(s?.fit!=="stretch")throw new Error(`Texture write source size ${n}x${i} does not match target size ${r}x${o}. Pass fit: 'stretch' to resize explicitly.`);oz(this[be].device,this[q].materialize(),e,t);return}this[be].device.queue.copyExternalImageToTexture({source:e},{texture:this[q].materialize(),...t!==void 0&&{origin:{x:0,y:0,z:t}}},t!==void 0?[r,o,1]:this.props.size)}copyFrom(e){if(e.props.format!==this.props.format)throw new Error(`Texture format mismatch. Source texture has format ${e.props.format}, target texture has format ${this.props.format}`);if(e.props.size[0]!==this.props.size[0]||(e.props.size[1]??1)!==(this.props.size[1]??1)||(e.props.size[2]??1)!==(this.props.size[2]??1))throw new Error(`Texture size mismatch. Source texture has size ${e.props.size.join("x")}, target texture has size ${this.props.size.join("x")}`);let t=this[be].device.createCommandEncoder();t.copyTextureToTexture({texture:e[q].materialize()},{texture:this[q].materialize()},e.props.size),this[be].device.queue.submit([t.finish()])}toString(){return`${this.resourceType}:${Re(this)??"<unnamed>"}`}get destroyed(){return this.#t}destroy(){this.#t||(this.#t=!0,this.#s&&this[be].raw?.destroy())}},dz=class{[q];[be];resourceType="texture-view";constructor(e,t,s){this[be]={type:"texture-view",texture:t,schema:e,descriptor:s,raw:void 0,label:void 0},this[q]={unwrap:()=>{let r=this[be];if(!r.raw){let o=r.schema,n=G_(o)?o.format:r.texture.props.format;r.raw=(globalThis.__TYPEGPU_AUTONAME__??(i=>i))(r.texture[q].materialize().createView({...r.descriptor,label:Re(this)??"<unnamed>",format:r.descriptor?.format??n,dimension:o.dimension}),"raw")}return r.raw},format:s?.format??(G_(e)?e.format:t.props.format),aspect:s?.aspect}}get schema(){return this[be].schema}$name(e){return Tt(this,e),this[be].raw&&(this[be].raw.label=e),this}get[$o](){let e=this.schema;return new Proxy({[q]:!0,get[Na](){return Ae(this,e,"handle",!1)},[ts]:t=>t.resolve(this),toString:()=>`${this.toString()}.$`},Ud)}get $(){if(dm())return this[$o];throw new Error("Direct access to texture view values is possible only as part of a compute dispatch or draw call. Try .read() or .write() instead")}get size(){return this[be].texture.props.size}toString(){return`textureView:${Re(this)??"<unnamed>"}`}[ts](e){let t=e.makeUniqueIdentifier(Re(this),"global"),{group:s,binding:r}=e.allocateFixedEntry(G_(this.schema)?{storageTexture:this.schema}:{texture:this.schema,sampleType:this[be].descriptor?.sampleType??this.schema.bindingSampleType[0]},this);return e.gen.declareGlobalVar({group:s,binding:r,id:t,dataType:this.schema,scope:"handle",init:void 0})}},Wb=class{[q]={unwrap:void 0};resourceType="texture-view";#e;schema;constructor(e,t){this.schema=e,this.#e=t,Tt(this,t.key)}toString(){return`textureView:${Re(this)??"<unnamed>"}`}[ts](e){let t=e.makeUniqueIdentifier(Re(this),"global"),s=e.allocateLayoutEntry(this.#e.layout);return e.addDeclaration(`@group(${s}) @binding(${this.#e.idx}) var ${t}: ${e.resolve(this.schema).value};`,t),Ae(t,this.schema,"handle")}get[$o](){let e=this.schema;return new Proxy({[q]:!0,get[Na](){return Ae(this,e,"handle",!1)},[ts]:t=>t.resolve(this),toString:()=>`${this.toString()}.$`},Ud)}get $(){if(dm())return this[$o];throw new Error(`Accessed view '${Re(this)??"<unnamed>"}' outside of codegen mode. Direct access to texture views values is possible only as part of a compute dispatch or draw call. Try .read() or .write() instead`)}$name(e){return Tt(this,e),this}},lz=class{[q];[be];resourceType="texture-view";constructor(e,t={}){this[be]={type:"texture-view",texture:e,schema:"render",descriptor:t,raw:void 0,label:void 0},this[q]={unwrap:()=>e[q].materialize().createView({label:Re(this)??"<unnamed>",...this.descriptor}),format:t.format??e.props.format,aspect:t.aspect}}get descriptor(){return this[be].descriptor??{}}};function cz(e){return!!e?.usableAsSampled}var uz=class Ow extends Error{constructor(t){super(`Resource '${Re(t)??"<unnamed>"}' cannot be bound as 'sampled'. Use .$usage('sampled') to allow it.`),Object.setPrototypeOf(this,Ow.prototype)}},Ob=class av{[q];usage;dataType;#e;static#t=void(av.prototype.resourceType="laid-out-buffer",Qn(wa(av.prototype,{asString(){return`${this.usage}:${Re(this)??"<unnamed>"}`},resolve(t){let s=t.makeUniqueIdentifier(Re(this),"global"),r=t.allocateLayoutEntry(this.#e.layout);return t.gen.declareGlobalVar({group:r,binding:this.#e.idx,scope:this.usage,id:s,dataType:this.dataType,init:void 0})}}),{codegenMode:{getBaseSnippet(t){return Ae(t,this.dataType,this.usage,!1)}},normalMode:{get(){throw new Error("Direct access to buffer values is possible only as part of a compute dispatch or draw call. Try .read() or .write() instead")}}}));constructor(t,s,r){this[q]={dataType:s},this.usage=t,this.dataType=s,this.#e=r,Tt(this,r.key)}};function Vw(e){return new pz({...e})}function Tm(e){return!!e&&e.resourceType==="bind-group-layout"}function Ka(e){return!!e&&e.resourceType==="bind-group"}var _z=class Nw extends Error{constructor(t,s){super(`Bind group '${t??"<unnamed>"}' is missing a required binding '${s}'`),Object.setPrototypeOf(this,Nw.prototype)}},Vb=["compute","fragment"],zl=["compute","vertex","fragment"],pz=class{[q];[be];resourceType="bind-group-layout";$={};entries;get[$o](){return this.$}constructor(e){this.entries=e,this[q]=[];let t={};this[be]={type:"bind-group-layout",entries:t,index:void 0,label:void 0};let s=0;for(let[r,o]of Object.entries(e)){if(o===null){t[r]=null,s++;continue}let n={layout:this,key:r,idx:s},i;if(t[r]=o,"uniform"in o&&(i=new Ob("uniform",o.uniform,n)),"storage"in o){let d="type"in o.storage?o.storage:o.storage(0);i=new Ob(o.access??"readonly",d,n),t[r]={...o,storage:d}}"texture"in o&&(i=new Wb(o.texture,n)),"storageTexture"in o&&(i=new Wb(o.storageTexture,n)),"externalTexture"in o&&(i=new FU(o.externalTexture,n)),"sampler"in o&&(i=new LU(o.sampler==="comparison"?Q6():Nh(),n)),Ws(i!==void 0,"Internal error, expected item to be defined"),Object.defineProperty(this.$,r,{get:()=>i.$}),this[q].push(i),s++}}toString(){return`bindGroupLayout:${Re(this)??"<unnamed>"}`}get index(){return this[be].index}$name(e){return Tt(this,e),this}$idx(e){return this[be].index=e,this}unwrap(e){return e.device.createBindGroupLayout({label:Re(this)??"<unnamed>",entries:Object.values(this.entries).map((t,s)=>{if(t===null)return null;let r=t.visibility,o={binding:s,visibility:0};if("uniform"in t)r=r??zl,o.buffer={type:"uniform"};else if("storage"in t)r=r??(t.access==="mutable"?Vb:zl),o.buffer={type:t.access==="mutable"?"storage":"read-only-storage"};else if("sampler"in t)r=r??zl,o.sampler={type:t.sampler};else if("texture"in t){r=r??zl;let{multisampled:n,dimension:i,bindingSampleType:d}=t.texture;o.texture={sampleType:t.sampleType??d[0],viewDimension:i,multisampled:n}}else if("storageTexture"in t){r=r??Vb;let{dimension:n,access:i,format:d}=t.storageTexture;o.storageTexture={access:i,format:d,viewDimension:n}}else"externalTexture"in t&&(r=r??zl,o.externalTexture={});return r?.includes("compute")&&(o.visibility|=GPUShaderStage.COMPUTE),r?.includes("vertex")&&(o.visibility|=GPUShaderStage.VERTEX),r?.includes("fragment")&&(o.visibility|=GPUShaderStage.FRAGMENT),o}).filter(t=>t!==null)})}},qw=class{[q];[be];resourceType="bind-group";#e;constructor(e,t,s,r){if(this.#e=s,this[be]={type:"bind-group",device:e?.device,layout:t,raw:r,label:void 0},this[q]={materialize:()=>{let o=this[be];return o.raw||(Ws(e,"Cannot unwrap a bind group created outside of a root."),o.raw=e.unwrap(this)),o.raw}},!r){for(let o of Object.keys(t.entries))if(t.entries[o]!==null&&!(o in s))throw new _z(Re(t),o)}}get layout(){return this[be].layout}get entries(){return this.#e}unwrap(e){let t=this[be].raw;return t||e.device.createBindGroup({label:Re(this.layout)??"<unnamed>",layout:e.unwrap(this.layout),entries:Object.entries(this.layout.entries).map(([s,r],o)=>{if(r===null)return null;let n=this.entries[s];if(n===void 0)throw new Error(`'${s}' is a resource required to populate bind group layout '${Re(this.layout)??"<unnamed>"}'.`);if("uniform"in r){let i;if(fc(n)){if(!f6(n))throw new Uk(n);i={buffer:e.unwrap(n)}}else EU(n)?i={buffer:e.unwrap(n)}:i={buffer:n};return{binding:o,resource:i}}if("storage"in r){let i;if(fc(n)){if(!Z_(n))throw new Db(n);i={buffer:e.unwrap(n)}}else PU(n)||MU(n)?(Ws(r.access==="mutable"==(n.resourceType==="mutable"),"Invalid buffer access mode."),i={buffer:e.unwrap(n)}):i={buffer:n};return{binding:o,resource:i}}if("texture"in r){let i;if(xc(n)){if(!cz(n))throw new uz(n);i=e.unwrap(n.createView(r.texture))}else zd(n)?i=e.unwrap(n):i=n;return{binding:o,resource:i}}if("storageTexture"in r){let i;if(xc(n)){if(!Z_(n))throw new Db(n);i=e.unwrap(n.createView(r.storageTexture))}else zd(n)?i=e.unwrap(n):i=n;return{binding:o,resource:i}}if("sampler"in r)return ay(n)||ny(n)?{binding:o,resource:e.unwrap(n)}:{binding:o,resource:n};if("externalTexture"in r)return{binding:o,resource:n};throw new Error(`Malformed bind group entry: ${Oo(n)}`)}).filter(s=>s!==null)})}};function Wc(e){return new mz(e)}var mz=class{[q]=!0;[be];resourceType="slot";constructor(e=void 0){this[be]={type:"slot",defaultValue:e,label:void 0}}get defaultValue(){return this[be].defaultValue}$name(e){return Tt(this,e),this}areEqual(e,t){return Object.is(e,t)}toString(){return`slot:${Re(this)??"<unnamed>"}`}get[$o](){let e=Li();if(!e)throw new Error("Cannot access tgpu.slot's value outside of resolution.");return sp(e.unwrap(this))}get $(){return this[$o]}},nl=Wc(null);function Sm(e,t){return new Hw("private",e,t)}function Xw(e){return new Hw("workgroup",e)}var Hw=class jw{[be];static#e=(()=>{let t=jw.prototype;t.resourceType="var",t[q]={},Qn(wa(t,{asString(){return`var:${Re(this)??"<unnamed>"}`},resolve(s){let r=s.makeUniqueIdentifier(Re(this),"global"),o=this[be].initialValue?Ae(this[be].initialValue,this[be].dataType,"constant"):void 0;return s.gen.declareGlobalVar({scope:this[be].scope,id:r,dataType:this[be].dataType,init:o})}}),{codegenMode:{getBaseSnippet(s){return Ae(s,this[be].dataType,this[be].scope,!1)}},simulateMode:{get(s){return s.vars[this[be].scope].has(this)||s.vars[this[be].scope].set(this,this[be].initialValue),s.vars[this[be].scope].get(this)},set(s,r){s.vars[this[be].scope].set(this,r)}},normalMode:{get(){throw new Wx(Q_()?`Cannot access variable '${Re(this)??"<unnamed>"}'. TypeGPU functions that depends on GPU resources need to be part of a compute dispatch, draw call or simulation`:"TypeGPU variables are inaccessible during normal JS execution. If you wanted to simulate GPU behavior, try `tgpu.simulate()`")},set(s){throw new Wx(Q_()?`Cannot access variable ${Re(this)??"<unnamed>"}. TypeGPU functions that depends on GPU resources need to be part of a compute dispatch, draw call or simulation`:"TypeGPU variables are inaccessible during normal JS execution. If you wanted to simulate GPU behavior, try `tgpu.simulate()`")}}})})();constructor(t,s,r){this[be]={type:"var",scope:t,dataType:s,initialValue:r,label:void 0}}$name(t){return Tt(this,t),this}},Kw=Sm(Y,0).$name("dataBlockIndex"),Zw=Sm(Y,0).$name("dataByteIndex"),Qw=Wc().$name("dataBuffer"),fz=gs([],Y)`() {
|
|
let i = dataByteIndex;
|
|
dataByteIndex = dataByteIndex + 1u;
|
|
return i;
|
|
}`.$uses({dataByteIndex:Zw}).$name("nextByteIndex"),Xe="dataBuffer[dataBlockIndex].serializedData[nextByteIndex()]",Jw={f32:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([a])`(n) {
|
|
${Xe} = bitcast<u32>(n);
|
|
}`,"f32"),f16:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Zs])`(n) {
|
|
${Xe} = pack2x16float(vec2f(f32(n), 0.0));
|
|
}`,"f16"),i32:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([oe])`(n) {
|
|
${Xe} = bitcast<u32>(n);
|
|
}`,"i32"),u32:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Y])`(n) {
|
|
${Xe} = n;
|
|
}`,"u32"),bool:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Ft])`(b) {
|
|
${Xe} = u32(b);
|
|
}`,"bool"),vec2f:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([$t])`(v) {
|
|
${Xe} = bitcast<u32>(v.x);
|
|
${Xe} = bitcast<u32>(v.y);
|
|
}`,"vec2f"),vec3f:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([cs])`(v) {
|
|
${Xe} = bitcast<u32>(v.x);
|
|
${Xe} = bitcast<u32>(v.y);
|
|
${Xe} = bitcast<u32>(v.z);
|
|
}`,"vec3f"),vec4f:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([lt])`(v) {
|
|
${Xe} = bitcast<u32>(v.x);
|
|
${Xe} = bitcast<u32>(v.y);
|
|
${Xe} = bitcast<u32>(v.z);
|
|
${Xe} = bitcast<u32>(v.w);
|
|
}`,"vec4f"),vec2h:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Sr])`(v) {
|
|
${Xe} = pack2x16float(vec2f(f32(v.x), f32(v.y)));
|
|
}`,"vec2h"),vec3h:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([po])`(v) {
|
|
${Xe} = pack2x16float(vec2f(f32(v.x), f32(v.y)));
|
|
${Xe} = pack2x16float(vec2f(f32(v.z), 0.0));
|
|
}`,"vec3h"),vec4h:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Ar])`(v) {
|
|
${Xe} = pack2x16float(vec2f(f32(v.x), f32(v.y)));
|
|
${Xe} = pack2x16float(vec2f(f32(v.z), f32(v.w)));
|
|
}`,"vec4h"),vec2i:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([xs])`(v) {
|
|
${Xe} = bitcast<u32>(v.x);
|
|
${Xe} = bitcast<u32>(v.y);
|
|
}`,"vec2i"),vec3i:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Os])`(v) {
|
|
${Xe} = bitcast<u32>(v.x);
|
|
${Xe} = bitcast<u32>(v.y);
|
|
${Xe} = bitcast<u32>(v.z);
|
|
}`,"vec3i"),vec4i:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([ps])`(v) {
|
|
${Xe} = bitcast<u32>(v.x);
|
|
${Xe} = bitcast<u32>(v.y);
|
|
${Xe} = bitcast<u32>(v.z);
|
|
${Xe} = bitcast<u32>(v.w);
|
|
}`,"vec4i"),vec2u:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([ns])`(v) {
|
|
${Xe} = v.x;
|
|
${Xe} = v.y;
|
|
}`,"vec2u"),vec3u:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Ot])`(v) {
|
|
${Xe} = v.x;
|
|
${Xe} = v.y;
|
|
${Xe} = v.z;
|
|
}`,"vec3u"),vec4u:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([es])`(v) {
|
|
${Xe} = v.x;
|
|
${Xe} = v.y;
|
|
${Xe} = v.z;
|
|
${Xe} = v.w;
|
|
}`,"vec4u"),"vec2<bool>":gs([So])`(v) {
|
|
${Xe} = u32(v.x);
|
|
${Xe} = u32(v.y);
|
|
}`,"vec3<bool>":gs([Ao])`(v) {
|
|
${Xe} = u32(v.x);
|
|
${Xe} = u32(v.y);
|
|
${Xe} = u32(v.z);
|
|
}`,"vec4<bool>":gs([Eo])`(v) {
|
|
${Xe} = u32(v.x);
|
|
${Xe} = u32(v.y);
|
|
${Xe} = u32(v.z);
|
|
${Xe} = u32(v.w);
|
|
}`,mat2x2f:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([ga])`(m) {
|
|
${Xe} = bitcast<u32>(m[0][0]);
|
|
${Xe} = bitcast<u32>(m[0][1]);
|
|
${Xe} = bitcast<u32>(m[1][0]);
|
|
${Xe} = bitcast<u32>(m[1][1]);
|
|
}`,"mat2x2f"),mat3x3f:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([xa])`(m) {
|
|
${Xe} = bitcast<u32>(m[0][0]);
|
|
${Xe} = bitcast<u32>(m[0][1]);
|
|
${Xe} = bitcast<u32>(m[0][2]);
|
|
${Xe} = 0u;
|
|
${Xe} = bitcast<u32>(m[1][0]);
|
|
${Xe} = bitcast<u32>(m[1][1]);
|
|
${Xe} = bitcast<u32>(m[1][2]);
|
|
${Xe} = 0u;
|
|
${Xe} = bitcast<u32>(m[2][0]);
|
|
${Xe} = bitcast<u32>(m[2][1]);
|
|
${Xe} = bitcast<u32>(m[2][2]);
|
|
${Xe} = 0u;
|
|
}`,"mat3x3f"),mat4x4f:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(gs([Mr])`(m) {
|
|
${Xe} = bitcast<u32>(m[0][0]);
|
|
${Xe} = bitcast<u32>(m[0][1]);
|
|
${Xe} = bitcast<u32>(m[0][2]);
|
|
${Xe} = bitcast<u32>(m[0][3]);
|
|
${Xe} = bitcast<u32>(m[1][0]);
|
|
${Xe} = bitcast<u32>(m[1][1]);
|
|
${Xe} = bitcast<u32>(m[1][2]);
|
|
${Xe} = bitcast<u32>(m[1][3]);
|
|
${Xe} = bitcast<u32>(m[2][0]);
|
|
${Xe} = bitcast<u32>(m[2][1]);
|
|
${Xe} = bitcast<u32>(m[2][2]);
|
|
${Xe} = bitcast<u32>(m[2][3]);
|
|
${Xe} = bitcast<u32>(m[3][0]);
|
|
${Xe} = bitcast<u32>(m[3][1]);
|
|
${Xe} = bitcast<u32>(m[3][2]);
|
|
${Xe} = bitcast<u32>(m[3][3]);
|
|
}`,"mat4x4f")};for(let[e,t]of Object.entries(Jw))t.$name(`serialize${e[0].toLocaleUpperCase()}${e.slice(1)}`).$uses({dataBlockIndex:Kw,nextByteIndex:fz,dataBuffer:Qw});function e7(e){return`(${e.map((t,s)=>`_arg_${s}`).join(", ")})`}function t7(e,t){let s=Jw[e.type];if(s)return s.with(Qw,t);if(Es(e)){let r=Object.keys(e.propTypes),o=s7(Object.values(e.propTypes),t);return gs([e])`(arg) {\n propsSerializer(${r.map(n=>`arg.${n}`).join(", ")});\n}`.$uses({propsSerializer:o}).$name(`${Re(e)??"struct"}Serializer`)}if(cr(e)){let r=e.elementType,o=e.elementCount,n=t7(r,t);return gs([e])`(arg) {\n${Array.from({length:o},(i,d)=>` elementSerializer(arg[${d}]);`).join(`
|
|
`)}\n}`.$uses({elementSerializer:n}).$name("arraySerializer")}throw new Error(`Cannot serialize data of type ${e.type}`)}function s7(e,t){let s={};return(globalThis.__TYPEGPU_AUTONAME__??(r=>r))(gs(e),"shell")`${e7(e)} {\n${e.map((r,o)=>(s[`serializer${o}`]=t7(r,t),` serializer${o}(_arg_${o});`)).join(`
|
|
`)}\n}`.$uses(s).$name("compoundSerializer")}function vz(e,t,s,r,o){let n=t.map(kt).reduce((l,c)=>l+c,0);if(n>o.logSizeLimit)throw new Error(`Logged data needs to fit in ${o.logSizeLimit} bytes (one of the logs requires ${n} bytes). Consider increasing the limit by passing appropriate options to tgpu.init().`);let i=s7(t,s).$name(`log${e}serializer`),d=e7(t);return gs(t)`${d} {
|
|
dataBlockIndex = atomicAdd(&indexBuffer, 1);
|
|
if (dataBlockIndex >= ${o.logCountLimit}) {
|
|
return;
|
|
}
|
|
dataBuffer[dataBlockIndex].id = ${e};
|
|
dataByteIndex = 0;
|
|
|
|
compoundSerializer${d};
|
|
}`.$uses({indexBuffer:r,dataBuffer:s,dataBlockIndex:Kw,dataByteIndex:Zw,compoundSerializer:i}).$name(`log${e}`)}var hz={logCountLimit:64,logSizeLimit:252,messagePrefix:" GPU "},r7=Ae("/* console.log() */",Ns,"runtime"),yz=class{get logResources(){}generateLog(){return fs.warn("fallback","'console.log' is only supported when resolving pipelines."),r7}},gz=class{#e;#t;#s=1;#r;#o;constructor(e){this.#e={...hz,...e[q].logOptions},this.#t=new Map;let t=Ct({id:Y,serializedData:zt(Y,Math.ceil(this.#e.logSizeLimit/4))}).$name("SerializedLogData");this.#o=e.createMutable(zt(t,this.#e.logCountLimit)).$name("dataBuffer"),this.#r=e.createMutable(_C(Y)).$name("indexBuffer")}generateLog(e,t,s){if(nl.$==="vertex")return fs.warn("suspicious","'console' operations are not supported in vertex shaders."),r7;let r=this.#s++,o=s.map(l=>{if(l.dataType===os)return l;let c=La(e,[l],[wi(l.dataType)])?.[0];return Ws(c,`Internal error. Expected type ${l.dataType} to be convertible to ${wi(l.dataType)}`),c}).map(d$),n=o.filter(l=>l.dataType!==os),i=vz(r,n.map(l=>l.dataType),this.#o,this.#r,this.#e),d=Ae(fe`${e.resolve(i).value}(${n})`,Ns,"runtime");return this.#t.set(r,{op:t,argTypes:o.map(l=>l?.dataType===os?l?.value:l?.dataType)}),d}get logResources(){return this.#s===1?void 0:{dataBuffer:this.#o,indexBuffer:this.#r,options:this.#e,logIdToMeta:this.#t}}};function xz(e){return e?.resourceType==="shellless-impl"}function bz(e,t){let s=Hi(t,"normal");return{[q]:!0,[Pr]:s,resourceType:"shellless-impl",argTypes:e,[ts](r){return s.resolve(r,e,void 0)},toString(){return`fn*:${Re(s)??"<unnamed>"}(${e.map(r=>r.toString()).join(", ")})`}}}var wz=new RegExp(`[${[...yw].join("")}]+`,"ug"),Nb=/[.\p{XID_Continue}]/u;function qb(e){let t=Sz(e).split(wz).filter(r=>r!==""),s="";for(let r=0;r<t.length;r++){let o=t[r],n=t[r+1];Ws(o),s+=o,Tz(o,n)&&(s+=" ")}return s}function Tz(e,t){if(t===void 0)return!1;let s=e.at(-1),r=t.at(0);return Ws(s?.length===1&&r?.length===1,"Expected tokens during minification to not be empty."),!!(Nb.test(s)&&Nb.test(r)||["//","/*","*/"].includes(`${s}${r}`))}function Sz(e){let t="",s=0,r=0;for(;r<e.length;){if(e.startsWith("//",r)){for(t+=`${e.slice(s,r)} `,r+=2;r<e.length&&!Jh.has(e.charAt(r));)r+=1;s=r;continue}if(e.startsWith("/*",r)){t+=`${e.slice(s,r)} `;let o=1;for(r+=2;r<e.length&&o>0;)e.startsWith("/*",r)?(o+=1,r+=2):e.startsWith("*/",r)?(o-=1,r+=2):r+=1;if(o>0)throw new SyntaxError("Block comment opening without corresponding closing found during minification.");s=r;continue}if(e.startsWith("*/",r))throw new SyntaxError("Block comment closing without corresponding opening found during minification.");r+=1}return t+e.slice(s)}var iv="#CATCHALL#",Az=class{_stack=[];_itemDepth=0;get itemDepth(){return this._itemDepth}get topItem(){let e=this._stack[this._stack.length-1];if(!e||e.type!=="item")throw new Error("Internal error, expected item layer to be on top.");return e}get topFunctionScope(){return this._stack.findLast(e=>e.type==="functionScope")}get topBlockScope(){return this._stack.findLast(e=>e.type==="blockScope")}get blockDepth(){let e=0;for(let t=this._stack.length-1;t>=0;--t){let s=this._stack[t];if(s?.type==="functionScope")break;s?.type==="blockScope"&&e++}return e}pushItem(){this._itemDepth++,this._stack.push({type:"item",usedSlots:new Set})}pushSlotBindings(e){this._stack.push({type:"slotBinding",bindingMap:new WeakMap(e)})}pushFunctionScope(e,t,s,r){let o={type:"functionScope",functionType:e,argAccess:t,returnType:s,externalMap:r,reportedReturnTypes:new Set,placeholderForVariable:new Map,modifiedVariables:new Set};return this._stack.push(o),o}pushBlockScope(){this._stack.push({type:"blockScope",takenLocalIdentifiers:new Set,declarations:new Map,externals:new Map})}pop(e){let t=this._stack[this._stack.length-1];if(!t||e&&t.type!==e)throw new Error(`Internal error, expected a ${e} layer to be on top.`);let s=this._stack.pop();return e==="item"&&this._itemDepth--,s}readSlot(e){for(let t=this._stack.length-1;t>=0;--t){let s=this._stack[t];if(s?.type==="item")s.usedSlots.add(e);else if(s?.type==="slotBinding"){let r=s.bindingMap.get(e);if(r!==void 0)return r}else if(!(s?.type==="functionScope"||s?.type==="blockScope"))throw new Error("Unknown layer type.")}return e.defaultValue}getSnippetById(e){for(let t=this._stack.length-1;t>=0;--t){let s=this._stack[t];if(s?.type==="functionScope"){let r=s.argAccess[e];if(r)return r();if(Object.hasOwn(s.externalMap,e)){let o=s.externalMap[e];return $d(o)&&Re(o)===void 0&&Tt(o,e.replaceAll(".","_")),To(o)}return}if(s?.type==="blockScope"){let r=s.declarations.get(e)??s.externals.get(e);if(r!==void 0)return r}}}isIdentifierTakenLocally(e){for(let t=this._stack.length-1;t>=0;--t){let s=this._stack[t];if(s?.type==="functionScope")return!1;if(s?.type==="blockScope"&&s.takenLocalIdentifiers.has(e))return!0}return!1}isIdentifierTakenInCallStack(e){for(let t=this._stack.length-1;t>=0;--t){let s=this._stack[t];if(s?.type==="blockScope"&&s.takenLocalIdentifiers.has(e))return!0}return!1}defineBlockVariable(e,t){if(t.dataType===os)throw Error(`Tried to define variable '${e}' of unknown type`);for(let s=this._stack.length-1;s>=0;--s){let r=this._stack[s];if(r?.type==="blockScope"){r.declarations.set(e,t);return}}throw new Error("No block scope found to define a variable in.")}setBlockExternals(e){for(let t=this._stack.length-1;t>=0;--t){let s=this._stack[t];if(s?.type==="blockScope"){Object.entries(e).forEach(([r,o])=>{s.externals.set(r,o)});return}}throw new Error("No block scope found to set externals in.")}clearBlockExternals(){for(let e=this._stack.length-1;e>=0;--e){let t=this._stack[e];if(t?.type==="blockScope"){t.externals.clear();return}}throw new Error("No block scope found to clear externals in.")}},ic=[""," "," "," "," "," "," "," "," "],q1=ic.length-1,Ez=class{identLevel=0;get pre(){return ic[this.identLevel]??ic[q1].repeat(this.identLevel/q1)+ic[this.identLevel%q1]}indent(){let e=this.pre;return this.identLevel++,e}dedent(){return this.identLevel--,this.pre}withResetLevel(e){let t=this.identLevel;this.identLevel=0;try{return e()}finally{this.identLevel=t}}};function pd(e,t,s="argument"){let r=!1;return{name:e,access:()=>(r=!0,Ae(e,t,s,!1)),decoratedType:t,get used(){return r}}}function Xb(e,t){return()=>{let s=e();if(s)return Rd(s,t)}}var o7=class{#e;_indentController=new Ez;_itemStateStack=new Az;#t=[];_declarations=[];_varyingLocations;#s=new WeakSet;#r;gen;get varyingLocations(){return this._varyingLocations}[q]={itemStateStack:this._itemStateStack};bindGroupLayoutsToPlaceholderMap=new Map;_nextFreeLayoutPlaceholderIdx=0;fixedBindings=[];enableExtensions;expectedType;#o=0;constructor(e){this.enableExtensions=e.enableExtensions,this.#r=e.root?new gz(e.root):new yz,this.#e=e.namespace[q],this.gen=e.shaderGenerator??new fU,this.gen.initGenerator(this)}isIdentifierBanned(e){return Oh.has(e)}isIdentifierTaken(e,t){return this.#e.takenGlobalIdentifiers.has(e)||(t==="block"?this._itemStateStack.isIdentifierTakenLocally(e):this._itemStateStack.isIdentifierTakenInCallStack(e))}makeUniqueIdentifier(e="item",t){if(t==="block"&&_m(e).success&&!this.isIdentifierTaken(e,t))return this.reserveIdentifier(e,"block"),e;let s=I$(e),r=0,o=this.#e.strategy==="random",n=o?`${s}_${this.#o++}`:s;for(;this.isIdentifierTaken(n,t);)n=o?`${s}_${this.#o++}`:`${s}_${++r}`;return this.reserveIdentifier(n,t),n}reserveIdentifier(e,t){if(t==="block"){let s=this._itemStateStack.topBlockScope;if(s){s.takenLocalIdentifiers.add(e);return}}this.#e.takenGlobalIdentifiers.add(e)}get pre(){return this._indentController.pre}get topFunctionScope(){return this._itemStateStack.topFunctionScope}get topFunctionReturnType(){let e=this._itemStateStack.topFunctionScope;return Ws(e,"Internal error, expected function scope to be present."),e.returnType}get shelllessRepo(){return this.#e.shelllessRepo}get blockDepth(){return this._itemStateStack.blockDepth}indent(){return this._indentController.indent()}dedent(){return this._indentController.dedent()}getDedented(e){return e.replaceAll(`
|
|
${ic[1]}`,`
|
|
`)}withResetIndentLevel(e){return this._indentController.withResetLevel(e)}getById(e){let t=this._itemStateStack.getSnippetById(e);return t===void 0?null:t}defineVariable(e,t){this._itemStateStack.defineBlockVariable(e,t)}reportReturnType(e){let t=this._itemStateStack.topFunctionScope;Ws(t,"Internal error, expected function scope to be present."),t.reportedReturnTypes.add(e)}pushBlockScope(){this._itemStateStack.pushBlockScope()}popBlockScope(){this._itemStateStack.pop("blockScope")}setBlockExternals(e){this._itemStateStack.setBlockExternals(e)}clearBlockExternals(){this._itemStateStack.clearBlockExternals()}generateLog(e,t){return this.#r.generateLog(this,e,t)}get logResources(){return this.#r.logResources}resolveFunction(e){try{let t=this._itemStateStack.pushFunctionScope(e.functionType,{},e.returnType,e.externalMap);this._itemStateStack.pushBlockScope();let s=[];if(e.entryInput){let{dataSchema:n,positionalArgs:i}=e.entryInput,d=e.params[0],l=n?pd(this.makeUniqueIdentifier("_arg_0","block"),n):void 0;if(l&&s.push(l),d?.type===Jl.destructuredObject)for(let{name:c,alias:_}of d.props){let p=i.find(f=>f.schemaKey===c);if(p){let f=pd(this.makeUniqueIdentifier(_,"block"),p.type);s.push(f),t.argAccess[_]=f.access}else l&&(t.argAccess[_]=Xb(l.access,c))}else if(d?.type===Jl.identifier){let c=[];for(let p of i){let f=pd(this.makeUniqueIdentifier(p.schemaKey,"block"),p.type);s.push(f),c.push({schemaKey:p.schemaKey,arg:f.access})}let _=new fw(l?.access,c);t.argAccess[d.name]=()=>Ae("N/A",_,"argument")}else for(let c of i){let _=this.makeUniqueIdentifier(`_arg_${c.schemaKey}`,"block"),p=pd(_,c.type);s.push(p),t.argAccess[_]=p.access}}else for(let[n,i]of e.argTypes.entries()){let d=e.params[n],l=Hr(i)?i.addressSpace==="storage"?i.access==="read"?"readonly":"mutable":i.addressSpace:"argument";switch(d?.type){case Jl.identifier:{let c=pd(this.makeUniqueIdentifier(d.name,"block"),i,l);s.push(c),t.argAccess[d.name]=c.access;break}case Jl.destructuredObject:{let c=pd(this.makeUniqueIdentifier(`_arg_${n}`,"block"),i,l);s.push(c);for(let{name:_,alias:p}of d.props)t.argAccess[p]=Xb(c.access,_);break}case void 0:i instanceof Sn||s.push({name:this.makeUniqueIdentifier(`_arg_${n}`,"block"),access:()=>{throw new Error("Unreachable: Accessing an argument that wasn't named in the function signature")},decoratedType:i,used:!1})}}let r,o=this.gen.functionDefinition({functionType:e.functionType,name:e.name,workgroupSize:e.workgroupSize,args:s,body:e.body,determineReturnType:()=>{if(r)return r;if(r=e.returnType,r instanceof Sn&&(Es(t.reportedReturnTypes.values().next().value)?r=r.completeStruct:r=void 0),!r){let n=[...t.reportedReturnTypes];if(n.length===0)r=Ns;else{let i=xh(n);i&&!i.hasImplicitConversions&&(r=i.targetType)}if(!r)throw new Error(`Expected function to have a single return type, got [${n.join(", ")}]. Cast explicitly to the desired type.`);r=Wo(r),(e.functionType==="vertex"||e.functionType==="fragment")&&(r=Fc(r))}return r}});if(!r)throw new Error("Failed to determine return type");return{code:o,returnType:r}}finally{this._itemStateStack.pop("blockScope"),this._itemStateStack.pop("functionScope")}}addDeclaration(e,t){this._declarations.push({name:t,code:e})}get declarations(){return this._declarations}allocateLayoutEntry(e){let t=this.bindGroupLayoutsToPlaceholderMap,s=t.get(e);return s||(s=`#BIND_GROUP_LAYOUT_${this._nextFreeLayoutPlaceholderIdx++}#`,t.set(e,s)),s}allocateFixedEntry(e,t){let s=this.fixedBindings.length;return this.fixedBindings.push({layoutEntry:e,resource:t}),{group:iv,binding:s}}readSlot(e){let t=this._itemStateStack.readSlot(e);if(t===void 0)throw new Rk(e);return t}withSlots(e,t){if(e.length===0)return t();this._itemStateStack.pushSlotBindings(e);try{return t()}finally{this._itemStateStack.pop("slotBinding")}}withVaryingLocations(e,t){this._varyingLocations=e;try{return t()}finally{this._varyingLocations=void 0}}withRenamed(e,t,s){if(!t)return s();let r=Re(e);try{return Tt(e,t),s()}finally{r&&Tt(e,r)}}unwrap(e){if(U_(e))return this.withRenamed(e[co].inner,Re(e),()=>this.withSlots(e[co].pairs,()=>this.unwrap(e[co].inner)));let t=e;for(;;)if(Bf(t))t=this.readSlot(t);else if(If(t))t=this._getOrCompute(t);else break;return t}_getOrCompute(e){let t=this.#e.memoizedLazy.get(e)??[];this._itemStateStack.pushItem();try{for(let o of t)if([...o.slotToValueMap.entries()].every(([n,i])=>n.areEqual(this._itemStateStack.readSlot(n),i)))return o.result;this.pushMode(new tl);let s;try{s=e[q].compute()}finally{this.popMode("normal")}let r=new Map;for(let o of this._itemStateStack.topItem.usedSlots)r.set(o,this._itemStateStack.readSlot(o));return t.push({slotToValueMap:r,result:s}),this.#e.memoizedLazy.set(e,t),s}catch(s){throw s instanceof gd?s.appendToTrace(e):new gd(s,[e])}finally{this._itemStateStack.pop("item")}}_getOrInstantiate(e){let t=this.#e.memoizedResolves.get(e)??[];this._itemStateStack.pushItem();try{for(let o of t)if([...o.slotToValueMap.entries()].every(([n,i])=>n.areEqual(this._itemStateStack.readSlot(n),i)))return o.result;let s;if($c(e))s=Ae(this.gen.emitTypeAnnotation(e),Ns,"runtime");else if(If(e)||Bf(e))s=this.resolve(this.unwrap(e));else if(m6(e))s=e[ts](this);else if(Cd(e)){let o=this.#e.shelllessRepo.get(e,void 0);if(!o)throw new Error(`Couldn't resolve ${e.name}. Make sure it's a function that accepts no arguments, or call it from another TypeGPU function.`);return this.withResetIndentLevel(()=>this.resolve(o))}else throw new TypeError(`Unresolvable internal value: ${Oo(e)}`);let r=new Map;for(let o of this._itemStateStack.topItem.usedSlots)r.set(o,this._itemStateStack.readSlot(o));return t.push({slotToValueMap:r,result:s}),this.#e.memoizedResolves.set(e,t),s}catch(s){throw s instanceof gd?s.appendToTrace(e):new gd(s,[e])}finally{this._itemStateStack.pop("item")}}resolve(e,t){if(typeof e=="string"){if(!t||t===os)throw new Error(`Strings cannot be injected into WGSL directly (tried to inject '${e}'). Look for TypeGPU APIs that cover your use-case, or resort to using tgpu['~unstable'].rawCodeSnippet for raw code injection.`);return Ae(e,t,"runtime")}if((qf(e)||xz(e))&&!U_(e)){if(this.#s.has(e)&&!this.#e.memoizedResolves.has(e))throw new Error(`Recursive function ${e} detected. Recursion is not allowed on the GPU.`);this.#s.add(e)}if(U_(e))return this.withRenamed(e[co].inner,Re(e),()=>this.withSlots(e[co].pairs,()=>this.resolve(e[co].inner,t)));if(Rt(e)||Cd(e)){if(this._itemStateStack.itemDepth===0)try{this.pushMode(new Ok);let s=v6(this,()=>this._getOrInstantiate(e));return Ae(`${this._declarations.map(r=>r.code).join(`
|
|
|
|
`)}${s.value}`,Ns,"runtime")}finally{this.popMode("codegen")}return this._getOrInstantiate(e)}if(typeof e=="number"){let s=t??Vn(e).dataType;return Ws(s!==os,"Schema has to be known for resolving numbers"),this.gen.numericLiteral(e,s)}if(typeof e=="boolean")return Ae(e?"true":"false",Ft,"constant",!1);if(t&&cr(t)){if(!Array.isArray(e))throw new vt(`Cannot coerce ${e} into value of type '${t}'`);if(t.elementCount!==e.length)throw new vt(`Cannot create value of type '${t}' from an array of length: ${e.length}`);return this.gen.typeInstantiation(t,e.map(s=>Ae(s,t.elementType,"runtime")))}if(t&&Es(t))return this.gen.typeInstantiation(t,Object.entries(t.propTypes).map(([s,r])=>Ae(e[s],r,"runtime")));throw new vt(`Value ${Oo(e)} is not resolvable${t&&t!==os?` to type ${Oo(t)}`:""}`)}resolveSnippet(e){return p6(this.resolve(e.value,e.dataType).value,e)}pushMode(e){this.#t.push(e)}popMode(e){let t=this.#t.pop();e!==void 0&&Ws(t?.type===e,"Unexpected mode")}get mode(){return this.#t[this.#t.length-1]??h6}};function Am(e,t){let s=new o7(t),r=(t.config?s.withSlots(t.config(new Dw([])).bindings,()=>s.resolve(e)):s.resolve(e)).value,o=s.bindGroupLayoutsToPlaceholderMap,n=[],i=zU(new Set([...o.keys()].map(f=>f.index).filter(f=>f!==void 0))),d=s.fixedBindings.map((f,h)=>[String(h),f.layoutEntry]),l=[],c=()=>{let f=i.next().value,h=(globalThis.__TYPEGPU_AUTONAME__??(g=>g))(Vw(Object.fromEntries(d)),"catchallLayout");return n[f]=h,r=r.replaceAll(iv,String(f)),l.push([iv,String(f)]),[f,new qw(t.root,h,Object.fromEntries(s.fixedBindings.map((g,x)=>[String(x),g.resource])))]},_=d.length>0?c():void 0;for(let[f,h]of o.entries()){let g=f.index??i.next().value;n[g]=f,r=r.replaceAll(h,String(g)),l.push([h,String(g)])}t.enableExtensions&&t.enableExtensions.length>0&&(r=`${t.enableExtensions.map(f=>`enable ${f};`).join(`
|
|
`)}
|
|
|
|
${r}`);let p=s.declarations.map(({name:f,code:h})=>({name:f,code:l.reduce((g,[x,T])=>g.replaceAll(x,T),h)}));return t.minify&&(r=qb(r),p=p.map(f=>({...f,code:qb(f.code)}))),{code:r,declarations:p,usedBindGroupLayouts:n,catchall:_,logResources:s.logResources}}function n7(e,t,s){return e.flatMap((r,o)=>{let n=t&&o===t[0]?t[1]:s?.get(r);return n?[[r,n]]:[]})}function Pz(e,t){return e.flatMap(s=>{let r=t?.get(s);return r?[[s,r]]:[]})}var Mz={dispatchWorkgroupsIndirect:"3 x u32",drawIndirect:"4 x u32",drawIndexedIndirect:"3 x u32, i32, u32"};function Hb(e,t,s,r){if(t+s>e)throw new Error(`Buffer too small for ${r}. Required: ${s} bytes at offset ${t}, but buffer is only ${e} bytes.`);if(t%4!==0)throw new Error(`Indirect buffer offset must be a multiple of 4. Got: ${t}`)}function Gd(e,t,s,r){if(ca(e)){let i=typeof t=="number"?t:t?.offset??0;return Hb(e.size,i,s,r),i}let{offset:o,contiguous:n}=t?typeof t=="number"?{offset:t,contiguous:s}:t:D_(e.dataType);return Hb(kt(e.dataType),o,s,r),n<s&&fs.warn("suspicious",`${r}: Starting at offset ${o}, only ${n} contiguous bytes are available before padding. '${r}' requires ${s} bytes (${Mz[r]}). Reading across padding may result in undefined behavior.`),o}var ap=[Y,ns,Ot,es];we({name:"bitcastU32toF32",normalImpl:(e=>typeof e=="number"?Ln(e):Mo.bitcastU32toF32[e.kind](e)),codegenImpl:(e,[t],s)=>e.gen.emitCall("bitcast",[To(s)],[t]),signature:(...e)=>{let t=cm(e,ap);if(!t)throw new er(e,ap);return{argTypes:t,returnType:as(t[0])?t[0].type==="vec2u"?$t:t[0].type==="vec3u"?cs:lt:a}},sideEffects:!1});we({name:"bitcastU32toI32",normalImpl:(e=>typeof e=="number"?Fn(e):Mo.bitcastU32toI32[e.kind](e)),codegenImpl:(e,[t],s)=>e.gen.emitCall("bitcast",[To(s)],[t]),signature:(...e)=>{let t=cm(e,ap);if(!t)throw new er(e,ap);return{argTypes:t,returnType:as(t[0])?t[0].type==="vec2u"?xs:t[0].type==="vec3u"?Os:ps:oe}},sideEffects:!1});var jb=[a,$t,cs,lt];we({name:"bitcastF32toU32",normalImpl:(e=>typeof e=="number"?Bn(e):Mo.bitcastF32toU32[e.kind](e)),codegenImpl:(e,[t],s)=>e.gen.emitCall("bitcast",[To(s)],[t]),signature:(...e)=>{let t=cm(e,jb);if(!t)throw new er(e,jb);return{argTypes:t,returnType:as(t[0])?t[0].type==="vec2f"?ns:t[0].type==="vec3f"?Ot:es:Y}},sideEffects:!1});var m_=new ArrayBuffer(16),f_={f32:new Float32Array(m_),u32:new Uint32Array(m_),i32:new Int32Array(m_),u16:new Uint16Array(m_)};function kz(e,t){if(typeof e=="number")t[0]=e;else for(let s=0;s<e.length;s++)t[s]=e[s]}function $z(e,t){if(typeof e=="number")t[0]=ep(e);else for(let s=0;s<e.length;s++)t[s]=ep(e[s])}function Cz(e,t){let s="componentCount"in t?t.componentCount:1,r=[];for(let o=0;o<s;o++)r.push(e[o]);return t(...r)}function Rz(e,t){let s="componentCount"in t?t.componentCount:1,r=[];for(let o=0;o<s;o++)r.push(bh(e[o]));return t(...r)}var Uz=(e,t)=>{let s="primitive"in e?e.primitive:e,r="primitive"in t?t.primitive:t;return o=>(s.type==="f16"?$z(o,f_.u16):kz(o,f_[s.type]),r.type==="f16"?Rz(f_.u16,t):Cz(f_[r.type],t))};function xt(e,t){return we({name:"bitcast",normalImpl:Uz(e,t),codegenImpl:(s,[r])=>s.gen.emitCall("bitcast",[To(t)],[r]),signature:s=>{let r=cm([s],[e]);if(!r)throw new er([s],[e]);return{argTypes:r,returnType:t}},sideEffects:!1})}var Kb={f16:{f16:xt(Zs,Zs)},f32:{f32:xt(a,a),i32:xt(a,oe),u32:xt(a,Y),vec2h:xt(a,Sr)},i32:{f32:xt(oe,a),i32:xt(oe,oe),u32:xt(oe,Y),vec2h:xt(oe,Sr)},u32:{f32:xt(Y,a),i32:xt(Y,oe),u32:xt(Y,Y),vec2h:xt(Y,Sr)},vec2h:{f32:xt(Sr,a),i32:xt(Sr,oe),u32:xt(Sr,Y),vec2h:xt(Sr,Sr)},vec3h:{vec3h:xt(po,po)},vec2f:{vec2f:xt($t,$t),vec2i:xt($t,xs),vec2u:xt($t,ns),vec4h:xt($t,Ar)},vec2i:{vec2f:xt(xs,$t),vec2i:xt(xs,xs),vec2u:xt(xs,ns),vec4h:xt(xs,Ar)},vec2u:{vec2f:xt(ns,$t),vec2i:xt(ns,xs),vec2u:xt(ns,ns),vec4h:xt(ns,Ar)},vec4h:{vec2f:xt(Ar,$t),vec2i:xt(Ar,xs),vec2u:xt(Ar,ns),vec4h:xt(Ar,Ar)},vec3f:{vec3f:xt(cs,cs),vec3i:xt(cs,Os),vec3u:xt(cs,Ot)},vec3i:{vec3f:xt(Os,cs),vec3i:xt(Os,Os),vec3u:xt(Os,Ot)},vec3u:{vec3f:xt(Ot,cs),vec3i:xt(Ot,Os),vec3u:xt(Ot,Ot)},vec4f:{vec4f:xt(lt,lt),vec4i:xt(lt,ps),vec4u:xt(lt,es)},vec4i:{vec4f:xt(ps,lt),vec4i:xt(ps,ps),vec4u:xt(ps,es)},vec4u:{vec4f:xt(es,lt),vec4i:xt(es,ps),vec4u:xt(es,es)}};function zz(e,t){if("type"in e&&e.type in Kb){let s=Kb[e.type];if("type"in t&&t.type in s)return s[t.type]}throw new Error(`Incorrect bitcast from ${Re(e)} to ${Re(t)}.`)}var a7=nn(zz),Gz=we({name:"unpack2x16float",normalImpl:e=>{let t=new ArrayBuffer(4);new Xi(t).writeUint32(e);let s=new sl(t);return $t(br(s),br(s))},signature:{argTypes:[Y],returnType:$t},codegenImpl:(e,[t])=>fe`unpack2x16float(${t})`,sideEffects:!1});we({name:"pack2x16float",normalImpl:e=>{let t=new ArrayBuffer(4),s=new Xi(t);return xr(s,e.x),xr(s,e.y),Y(new sl(t).readUint32())},signature:{argTypes:[$t],returnType:Y},codegenImpl:(e,[t])=>fe`pack2x16float(${t})`,sideEffects:!1});we({name:"unpack4x8unorm",normalImpl:e=>{let t=new ArrayBuffer(4);new Xi(t).writeUint32(e);let s=new sl(t);return lt(s.readUint8()/255,s.readUint8()/255,s.readUint8()/255,s.readUint8()/255)},signature:{argTypes:[Y],returnType:lt},codegenImpl:(e,[t])=>fe`unpack4x8unorm(${t})`,sideEffects:!1});we({name:"pack4x8unorm",normalImpl:e=>{let t=new ArrayBuffer(4),s=new Xi(t);return s.writeUint8(e.x*255),s.writeUint8(e.y*255),s.writeUint8(e.z*255),s.writeUint8(e.w*255),Y(new sl(t).readUint32())},signature:{argTypes:[lt],returnType:Y},codegenImpl:(e,[t])=>fe`pack4x8unorm(${t})`,sideEffects:!1});var Nt=e=>a7(Y,a)(e??0),Dn=e=>a7(Y,oe)(e??0),md=e=>Gz(e??0),Dz={f32:e=>Nt(e[0]),f16:e=>md(e[0]).x,i32:e=>Dn(e[0]),u32:e=>e[0]??0,bool:e=>!!e[0],vec2f:e=>$t(Nt(e[0]),Nt(e[1])),vec3f:e=>cs(Nt(e[0]),Nt(e[1]),Nt(e[2])),vec4f:e=>lt(Nt(e[0]),Nt(e[1]),Nt(e[2]),Nt(e[3])),vec2h(e){let t=md(e[0]);return Sr(t.x,t.y)},vec3h(e){let t=md(e[0]),s=md(e[1]);return po(t.x,t.y,s.x)},vec4h(e){let t=md(e[0]),s=md(e[1]);return Ar(t.x,t.y,s.x,s.y)},vec2i:e=>xs(Dn(e[0]),Dn(e[1])),vec3i:e=>Os(Dn(e[0]),Dn(e[1]),Dn(e[2])),vec4i:e=>ps(Dn(e[0]),Dn(e[1]),Dn(e[2]),Dn(e[3])),vec2u:e=>ns(e[0]??0,e[1]??0),vec3u:e=>Ot(e[0]??0,e[1]??0,e[2]??0),vec4u:e=>es(e[0]??0,e[1]??0,e[2]??0,e[3]??0),"vec2<bool>":e=>So(!!e[0],!!e[1]),"vec3<bool>":e=>Ao(!!e[0],!!e[1],!!e[2]),"vec4<bool>":e=>Eo(!!e[0],!!e[1],!!e[2],!!e[3]),mat2x2f:e=>ga(Nt(e[0]),Nt(e[1]),Nt(e[2]),Nt(e[3])),mat3x3f:e=>xa(Nt(e[0]),Nt(e[1]),Nt(e[2]),Nt(e[4]),Nt(e[5]),Nt(e[6]),Nt(e[8]),Nt(e[9]),Nt(e[10])),mat4x4f:e=>Mr(Nt(e[0]),Nt(e[1]),Nt(e[2]),Nt(e[3]),Nt(e[4]),Nt(e[5]),Nt(e[6]),Nt(e[7]),Nt(e[8]),Nt(e[9]),Nt(e[10]),Nt(e[11]),Nt(e[12]),Nt(e[13]),Nt(e[14]),Nt(e[15]))};function Lz(e,t){let s=Dz[t.type];if(s)return s(e);if(Es(t)){let r=Object.keys(t.propTypes),o=dv(e,Object.values(t.propTypes));return Object.fromEntries(r.map((n,i)=>[n,o[i]]))}if(cr(t)){let r=t.elementType,o=t.elementCount;return dv(e,Array.from({length:o},()=>r))}throw new Error(`Cannot deserialize data of type ${t.type}`)}function dv(e,t){let s=0;return t.map(r=>{if(!Oi(r))return r;let o=Math.ceil(kt(r)/4),n=Lz(e.subarray(s,s+o),r);return s+=o,n})}function Fz(e,t){return dv(e,t).map(Df)}function Bz(e){let{indexBuffer:t,dataBuffer:s,logIdToMeta:r,options:o}=e;s.read().then(n=>{n.filter(i=>i.id).forEach(({id:i,serializedData:d})=>{let{argTypes:l,op:c}=r.get(i),_=Fz(new Uint32Array(d),l);_.length===0&&_.push(""),c.bind(console)(`%c${o.messagePrefix}%c ${_[0]}`,"background: #936ff5; color: white;","color: inherit; background: none",..._.slice(1))})}),t.read().then(n=>{n>o.logCountLimit&&fs.warn("log-limit-exceeded",`Log count limit per dispatch (${o.logCountLimit}) exceeded by ${n-o.logCountLimit} calls. Consider increasing the limit by passing appropriate options to tgpu.init().`)}),s.buffer.clear(),t.buffer.clear()}function Iz(e,t,s,r){return new Yz(e,t,s,r)}function iy(e){let t=e;return t?.resourceType==="query-set"&&!!t[q]}var Yz=class{resourceType="query-set";#e;#t=!1;#s=!0;#r=void 0;#o=void 0;[be];[q];constructor(e,t,s,r){this.#e=!r,this[be]={type:"query-set",device:e.device,queryType:t,count:s,raw:r,label:void 0};let o=this;this[q]={get readBuffer(){return o.#r||(o.#r=o[be].device.createBuffer({size:o.count*BigUint64Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})),o.#r},get resolveBuffer(){return o.#o||(o.#o=o[be].device.createBuffer({size:o.count*BigUint64Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC})),o.#o},materialize:()=>{if(this.#t)throw new Error("This QuerySet has been destroyed.");let n=this[be];return n.raw||(n.raw=n.device.createQuerySet({type:n.queryType,count:n.count})),n.raw}}}get type(){return this[be].queryType}get count(){return this[be].count}get querySet(){return this[q].materialize()}get destroyed(){return this.#t}get available(){return this.#s}$name(e){Tt(this,e);let t=this[be].raw;return t&&(t.label=e),this}resolve(){if(this.#t)throw new Error("This QuerySet has been destroyed.");if(!this.#s)throw new Error("This QuerySet is busy resolving or reading.");let e=this[be].device.createCommandEncoder();e.resolveQuerySet(this.querySet,0,this.count,this[q].resolveBuffer,0),this[be].device.queue.submit([e.finish()])}async read(){if(!this.#o)throw new Error("QuerySet must be resolved before reading.");this.#s=!1;try{let e=this[be].device.createCommandEncoder();e.copyBufferToBuffer(this[q].resolveBuffer,0,this[q].readBuffer,0,this.count*BigUint64Array.BYTES_PER_ELEMENT),this[be].device.queue.submit([e.finish()]);let t=this[q].readBuffer;await t.mapAsync(GPUMapMode.READ);let s=new BigUint64Array(t.getMappedRange().slice());return t.unmap(),Array.from(s)}finally{this.#s=!0}}destroy(){this.#t||(this.#t=!0,this[be].raw&&this.#e&&this[be].raw.destroy(),this.#r?.destroy(),this.#o?.destroy(),this.#r=this.#o=void 0)}};function i7(e,t,s){return e.timestampWrites?{...e,performanceCallback:t}:{...e,performanceCallback:t,timestampWrites:{querySet:s,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}}}function d7(e,t,s){if(!s.enabledFeatures.has("timestamp-query"))throw new Error('Timestamp writes require the "timestamp-query" feature to be enabled on GPU device.');let r={querySet:t.querySet};return t.beginningOfPassWriteIndex!==void 0&&(r.beginningOfPassWriteIndex=t.beginningOfPassWriteIndex),t.endOfPassWriteIndex!==void 0&&(r.endOfPassWriteIndex=t.endOfPassWriteIndex),{...e,timestampWrites:r}}var Zb=new WeakMap;async function Wz(e,t){if(!e.available)return;let s=await e.read();for(let{priors:r,callback:o}of t){let n=s[r.timestampWrites?.beginningOfPassWriteIndex??0],i=s[r.timestampWrites?.endOfPassWriteIndex??1];if(n===void 0||i===void 0)throw new Error("QuerySet did not return valid timestamps.");await o(n,i)}}function Oz(e,t){let s=t.timestampWrites?.querySet,r=t.performanceCallback;if(!s)throw new Error("Cannot dispatch workgroups with performance callback without a query set.");if(!iy(s))throw new Error("Performance callback with raw GPUQuerySet is not supported. Use TgpuQuerySet instead.");let o=e[q];if(o.adopted)return!1;let{root:n}=o;o.beforeFinish.set(s,l=>{l.resolveQuerySet(n.unwrap(s),0,s.count,s[q].resolveBuffer,0)});let i=Zb.get(e);i||(i=new Map,Zb.set(e,i));let d=i.get(s);if(!d){let l=[];d=l,i.set(s,l),o.afterSubmit.set(s,()=>{i.delete(s),Wz(s,l)})}return d.some(l=>l.priors===t)?fs.warnOnce("suspicious",s,"repeated-timed-execution","Repeated executions of a timed pipeline within one command encoder write to the same query set indices, so the performance callback reports only the last execution."):d.push({priors:t,callback:r}),!0}var Vz=class{bindGroups=new Map;vertexBuffers=new Map;currentPipeline;indexBuffer;stencilReference;appliedStencilReference=0;version=0;rawAccessed=!1},Nz=class{bindGroups=new Map;currentPipeline;version=0;rawAccessed=!1};function l7(e,t,s){Ka(t)?e.bindGroups.set(t.layout,t):e.bindGroups.set(t,s),e.version++}function c7(e,t){let{priors:s}=t[q];if(e.currentPipeline=t,s.bindGroupLayoutMap)for(let[r,o]of s.bindGroupLayoutMap)e.bindGroups.set(r,o);if(s.vertexLayoutMap)for(let[r,o]of s.vertexLayoutMap)e.vertexBuffers.set(r,{buffer:o,offset:void 0,size:void 0});s.indexBuffer&&(e.indexBuffer=s.indexBuffer),s.stencilReference!==void 0&&(e.stencilReference=s.stencilReference),e.version++}function u7(e,t){let{priors:s}=t[q];if(e.currentPipeline=t,s.bindGroupLayoutMap)for(let[r,o]of s.bindGroupLayoutMap)e.bindGroups.set(r,o);e.version++}function qz(e,t,s){let{buffer:r,indexFormat:o,offsetBytes:n,sizeBytes:i}=s;fc(r)?e.setIndexBuffer(t.unwrap(r),o,n,i):e.setIndexBuffer(r,o,n,i)}function _7(e,t,s,r,o){let n=new Set(s);if(s.forEach((i,d)=>{if(r&&d===r[0])e.setBindGroup(d,t.unwrap(r[1])),n.delete(i);else{let l=o(i);l!==void 0&&(n.delete(i),Ka(l)?e.setBindGroup(d,t.unwrap(l)):e.setBindGroup(d,l))}}),n.size>0)throw new zk(n)}function Xz(e,t,s,r){let o=new Set;if(s.forEach((n,i)=>{let d=r(n);!d||!d.buffer?o.add(n):fc(d.buffer)?e.setVertexBuffer(i,t.unwrap(d.buffer),d.offset,d.size):e.setVertexBuffer(i,d.buffer,d.offset,d.size)}),o.size>0)throw new Gk(o)}function Hz(e,t,s,r){let o=s[q].core.unwrap();e.setPipeline(o.pipeline),_7(e,t,o.usedBindGroupLayouts,o.catchall,n=>r.bindGroups.get(n)),Xz(e,t,o.usedVertexLayouts,n=>r.vertexBuffers.get(n)),r.indexBuffer!==void 0&&qz(e,t,r.indexBuffer),typeof e.setStencilReference=="function"&&r.stencilReference!==void 0&&(r.rawAccessed||r.stencilReference!==r.appliedStencilReference)&&(e.setStencilReference(r.stencilReference),r.appliedStencilReference=r.stencilReference)}function jz(e,t,s,r){let o=s[q].core.unwrap();e.setPipeline(o.pipeline),_7(e,t,o.usedBindGroupLayouts,o.catchall,n=>r.bindGroups.get(n))}function p7(e){if(!e)throw new Error("No index buffer is set. Call pipeline.withIndexBuffer or pass.setIndexBuffer before drawing indexed geometry.")}function Qb(e,t){fs.warnOnce("suspicious",e,t,`${t} is ignored when recording into a raw GPUCommandEncoder, since there is no submission to report after. Use root['~unstable'].createCommandEncoder() instead.`)}function m7(e,t){return!e||e[q].adopted?!1:(e[q].afterSubmit.set(t,()=>Bz(t)),!0)}function f7(e,t,s,r){s&&!m7(e,s)&&Qb(t,"Shader console.log output"),r.performanceCallback&&!Oz(e,r)&&Qb(t,"The performance callback"),r.encoder===void 0&&e.submit()}var Kz={render:{into:"drawing into a render pass",intoRaw:"drawing into a raw render pass",begin:"beginRenderPass"},compute:{into:"dispatching into a compute pass",intoRaw:"dispatching into a raw compute pass",begin:"beginComputePass"}};function v7(e,t,s,r,o,n=!1){let i=Kz[o];n&&fs.warnOnce("suspicious",e,"attachments",`Pipeline-level attachments are ignored when ${i.into}. Pass \`colorAttachments\` and \`depthStencilAttachment\` to encoder.${i.begin} instead.`),s&&fs.warnOnce("suspicious",e,"timestampWrites",`Pipeline-level timestamp writes are ignored when ${i.into}. Pass \`timestampWrites\` to encoder.${i.begin} instead.`),r&&!m7(t,r)&&fs.warnOnce("suspicious",e,"logs",`Shader console.log output is ignored when ${i.intoRaw} encoder, since there is no submission to read it back after.`)}function lv(e,t,s,r,o,n=!1){let{state:i,rawPass:d}=t,{core:l,priors:c}=s[q];i.currentPipeline!==s&&c7(i,s),r&&p7(i.indexBuffer);let _=l.unwrap();n||v7(l,t.owner,!!c.timestampWrites,_.logResources,"render",!!c.colorAttachment||!!c.depthStencilAttachment),(i.rawAccessed||t.appliedVersion!==i.version)&&(Hz(d,e,s,i),t.appliedVersion=i.version),o(d)}function cv(e,t,s,r,o=!1){let{state:n,rawPass:i}=t,{core:d,priors:l}=s[q];n.currentPipeline!==s&&u7(n,s);let c=d.unwrap();o||v7(d,t.owner,!!l.timestampWrites,c.logResources,"compute"),(n.rawAccessed||t.appliedVersion!==n.version)&&(jz(i,e,s,n),t.appliedVersion=n.version),r(i)}function Zz(e){let t=e;return t?.resourceType==="compute-pipeline"&&Rt(t)}function Qz(e){let t=e;return t?.resourceType==="render-pipeline"&&Rt(t)}function Jz(e){return Qz(e)||Zz(e)}function dy(e){let t=e;return t?.resourceType==="command-encoder"&&Rt(t)}function h7(e){let t=e;return(t?.resourceType==="render-pass"||t?.resourceType==="render-bundle-encoder")&&Rt(t)}function y7(e){let t=e;return t?.resourceType==="compute-pass"&&Rt(t)}function eG(e){return typeof e?.getCurrentTexture=="function"}function g7(e){let t=e;return!Rt(t)&&typeof t?.beginRenderPass=="function"&&typeof t?.beginComputePass=="function"}function tG(e){let t=e;return!Rt(t)&&typeof t?.dispatchWorkgroups=="function"&&t?.beginRenderPass===void 0}function sG(e){let t=e;return!Rt(t)&&typeof t?.executeBundles=="function"&&typeof t?.draw=="function"}function rG(e){let t=e;return!Rt(t)&&typeof t?.draw=="function"&&typeof t?.finish=="function"&&t?.executeBundles===void 0&&t?.beginRenderPass===void 0&&t?.dispatchWorkgroups===void 0}function X1(e,t){return xc(t)?e.unwrap(t).createView():zd(t)?e.unwrap(t):eG(t)?t.getCurrentTexture().createView():t}function x7(e,t){let{querySet:s,beginningOfPassWriteIndex:r,endOfPassWriteIndex:o}=t,n={querySet:iy(s)?e.unwrap(s):s};return r!==void 0&&(n.beginningOfPassWriteIndex=r),o!==void 0&&(n.endOfPassWriteIndex=o),n}function oG(e,t){let{rawEncoder:s,root:r}=e[q],o={};return t?.label!==void 0&&(o.label=t.label),t?.timestampWrites!==void 0&&(o.timestampWrites=x7(r,t.timestampWrites)),new b7(r,s.beginComputePass(o),e)}function nG(e,t){let s=new b7(e,t,void 0);return s[q].state.rawAccessed=!0,s}var b7=class{[q];resourceType="compute-pass";#e;constructor(e,t,s){this.#e=e,this[q]={rawPass:t,state:new Nz,owner:s,appliedVersion:void 0}}#t(e){let t=this[q],s=t.state.currentPipeline;if(!s)throw new Error("Cannot dispatch without a call to pass.setPipeline");cv(this.#e,t,s,e)}setPipeline(e){u7(this[q].state,e)}setBindGroup(e,t){l7(this[q].state,e,t)}dispatchWorkgroups(e,t,s){this.#t(r=>r.dispatchWorkgroups(e,t,s))}dispatchWorkgroupsIndirect(e,t){let s=ca(e)?e:e.buffer,r=Gd(e,t,12,"dispatchWorkgroupsIndirect");this.#t(o=>o.dispatchWorkgroupsIndirect(s,r))}end(){this[q].rawPass.end()}};function aG(e){let t,s="all";if(xc(e)?t=e.props.format:zd(e)&&(t=e[q].format,s=e[q].aspect??"all"),t!==void 0)return{hasDepth:t.includes("depth")&&s!=="stencil-only",hasStencil:t.includes("stencil")&&s!=="depth-only"}}function iG(e,t){let s={...e,view:t},r=aG(e.view);if(r===void 0&&(e.depthLoadOp!==void 0||e.depthStoreOp!==void 0||e.stencilLoadOp!==void 0||e.stencilStoreOp!==void 0))return s;let{hasDepth:o,hasStencil:n}=r??{hasDepth:!0,hasStencil:!1};return o&&!e.depthReadOnly&&(s.depthLoadOp??="clear",s.depthStoreOp??="store",s.depthClearValue??=1),n&&!e.stencilReadOnly&&(s.stencilLoadOp??="clear",s.stencilStoreOp??="store"),s}function dG(e,t){let{rawEncoder:s,root:r}=e[q],o={colorAttachments:(t.colorAttachments===void 0?[]:Array.isArray(t.colorAttachments)?t.colorAttachments:[t.colorAttachments]).map(n=>{if(n===null)return null;let i={...n,loadOp:n.loadOp??"clear",storeOp:n.storeOp??"store",view:X1(r,n.view)};return n.resolveTarget!==void 0&&(i.resolveTarget=X1(r,n.resolveTarget)),i})};return t.label!==void 0&&(o.label=t.label),t.depthStencilAttachment!==void 0&&(o.depthStencilAttachment=iG(t.depthStencilAttachment,X1(r,t.depthStencilAttachment.view))),t.occlusionQuerySet!==void 0&&(o.occlusionQuerySet=iy(t.occlusionQuerySet)?r.unwrap(t.occlusionQuerySet):t.occlusionQuerySet),t.timestampWrites!==void 0&&(o.timestampWrites=x7(r,t.timestampWrites)),t.maxDrawCount!==void 0&&(o.maxDrawCount=t.maxDrawCount),new w7(r,s.beginRenderPass(o),e)}function lG(e,t){return new uG(e,e.device.createRenderBundleEncoder(t),void 0)}function cG(e,t){let s=typeof t.executeBundles=="function"?new w7(e,t,void 0):new ly(e,t,void 0);return s[q].state.rawAccessed=!0,s}var ly=class{[q];resourceType="render-bundle-encoder";#e;constructor(e,t,s){this.#e=e,this[q]={rawPass:t,state:new Vz,owner:s,appliedVersion:void 0}}#t(e,t){let s=this[q],r=s.state.currentPipeline;if(!r)throw new Error("Cannot draw without a call to pass.setPipeline");lv(this.#e,s,r,e,t)}setPipeline(e){c7(this[q].state,e)}setBindGroup(e,t){l7(this[q].state,e,t)}setVertexBuffer(e,t,s,r){let{state:o}=this[q];o.vertexBuffers.set(e,{buffer:t,offset:s,size:r}),o.version++}setIndexBuffer(e,t,s,r){let{state:o}=this[q];o.indexBuffer={buffer:e,indexFormat:t,offsetBytes:s,sizeBytes:r},o.version++}draw(e,t,s,r){this.#t(!1,o=>o.draw(e,t,s,r))}drawIndexed(e,t,s,r,o){this.#t(!0,n=>n.drawIndexed(e,t,s,r,o))}drawIndirect(e,t){let s=ca(e)?e:e.buffer,r=Gd(e,t,16,"drawIndirect");this.#t(!1,o=>o.drawIndirect(s,r))}drawIndexedIndirect(e,t){let s=ca(e)?e:e.buffer,r=Gd(e,t,20,"drawIndexedIndirect");this.#t(!0,o=>o.drawIndexedIndirect(s,r))}},uG=class extends ly{resourceType="render-bundle-encoder";finish(e){return this[q].rawPass.finish(e)}},w7=class extends ly{resourceType="render-pass";setViewport(e,t,s,r,o,n){this[q].rawPass.setViewport(e,t,s,r,o,n)}setScissorRect(e,t,s,r){this[q].rawPass.setScissorRect(e,t,s,r)}setBlendConstant(e){this[q].rawPass.setBlendConstant(e)}setStencilReference(e){let{state:t}=this[q];t.stencilReference=e,t.version++}beginOcclusionQuery(e){this[q].rawPass.beginOcclusionQuery(e)}endOcclusionQuery(){this[q].rawPass.endOcclusionQuery()}executeBundles(e){let t=this[q];t.rawPass.executeBundles(e),t.appliedVersion=void 0}end(){this[q].rawPass.end()}};function cy(e,t){return new S7(e,e.device.createCommandEncoder(t),!1)}function T7(e,t){return new S7(e,t,!0)}var S7=class{[q];resourceType="command-encoder";constructor(e,t,s){this[q]={rawEncoder:t,root:e,adopted:s,beforeFinish:new Map,afterSubmit:new Map}}beginRenderPass(e){return dG(this,e)}beginComputePass(e){return oG(this,e)}#e(){let{rawEncoder:e,beforeFinish:t}=this[q];for(let s of t.values())s(e);t.clear()}submit(){let{rawEncoder:e,root:t,afterSubmit:s}=this[q];this.#e(),t.device.queue.submit([e.finish()]);for(let r of s.values())r();s.clear()}finish(e){let{rawEncoder:t,root:s,afterSubmit:r}=this[q];return this.#e(),r.size>0&&fs.warnOnce("suspicious",s,"finishWithPendingWork","Shader console.log output and performance callbacks do not fire for command buffers produced by encoder.finish(). Use encoder.submit() instead."),t.finish(e)}},A7=["f16","clip_distances","dual_source_blending","subgroups","primitive_index"],E7={f16:"shader-f16",clip_distances:"clip-distances",dual_source_blending:"dual-source-blending",subgroups:"subgroups",primitive_index:"primitive-index"};function uv(e,t){return e.type!==t.type?!1:Hr(e)&&Hr(t)?e.access===t.access&&e.addressSpace===t.addressSpace&&e.implicit===t.implicit&&uv(e.inner,t.inner):cr(e)&&cr(t)?e.elementCount===t.elementCount&&uv(e.elementType,t.elementType):Es(e)&&Es(t)?e===t:!0}var _G=class{cache=new Map;get(e,t){let s=mh(e);if(!s)return;if(!t&&s.ast.params.length>0)throw new Error(`Cannot resolve '${Re(e)}' directly, because it expects arguments. Either call it from another function, or wrap it in a shell`);let r=(t??[]).map((i,d)=>{if(i.value instanceof ia){if(i.dataType===os)throw new vt("d.ref() created with primitive types must be stored in a variable before use");return i.dataType}if(i.dataType===os)throw new Error(`Passed illegal value ${i.value} as the #${d} argument to ${Re(e)??"<unnamed>"}(...)
|
|
Shellless functions can only accept arguments representing WGSL resources: constructible WGSL types, d.refs, samplers or texture views.
|
|
Remember, that arguments such as samplers, texture views, accessors, slots etc. should be dereferenced via '.$' first.`);let l=Wo(i.dataType);return Hr(l)&&l.implicit&&(l=l.inner),l}),o=this.cache.get(e);if(o){let i=o.find(d=>d.argTypes.length===r.length&&d.argTypes.every((l,c)=>uv(l,r[c])));if(i)return i}else o=[],this.cache.set(e,o);let n=bz(r,e);return o.push(n),n}},pG=class{[q];constructor(e){this[q]={strategy:e,takenGlobalIdentifiers:new Set([...Oh,...B$]),shelllessRepo:new _G,memoizedResolves:new WeakMap,memoizedLazy:new WeakMap}}};function al(e){let{names:t="strict"}=e??{};return new pG(t)}var mG=new Set(["bindGroupLayoutMap","vertexLayoutMap","indexBuffer","stencilReference","timestampWrites","performanceCallback"]);function P7(e){return Object.keys(e).filter(t=>!mG.has(t)&&e[t]!==void 0)}var M7=class{#e;#t;measureResolve(e){let t=performance.mark("typegpu:resolution:start"),s=e();return this.#e=performance.measure("typegpu:resolution",{start:t.name}),this.#t=s.code.length,s}measureCompile(e){(async()=>{let t=performance.mark("typegpu:compile-start");await e.queue.onSubmittedWorkDone();let s=performance.measure("typegpu:compiled",{start:t.name});fh?.record("resolution",{resolveDuration:this.#e?.duration,compileDuration:s.duration,wgslSize:this.#t})})()}},k7=class{measureResolve(e){return e()}measureCompile(){}};function fG(e,t,s){return new vG(new hG(e,t,s),{})}var vG=class $7{[q];[be];resourceType="compute-pipeline";[Pr];constructor(t,s){this[be]={type:"compute-pipeline",device:t.root.device,raw:void 0,label:void 0},this[q]={core:t,priors:s,root:t.root,materialize:()=>{let r=this[be];if(!r.raw){let o=t.unwrap();r.raw=o.pipeline,r.usedBindGroupLayouts=o.usedBindGroupLayouts,r.bindGroups=n7(o.usedBindGroupLayouts,o.catchall,s.bindGroupLayoutMap),r.timestampWrites=s.timestampWrites,r.performanceCallback=s.performanceCallback,r.nonTransferablePriors=P7(s)}return r.raw}},this[Pr]=t}[ts](t){return t.resolve(this[q].core)}toString(){return`computePipeline:${Re(this)??"<unnamed>"}`}#e(t){let{core:s,priors:r}=this[q];return new $7(s,{...r,...t})}with(t,s){let r=this[q];if(y7(t))return this.#e({pass:t,encoder:void 0});if(dy(t))return this.#e({pass:void 0,encoder:t});if(tG(t))return this.#e({pass:nG(r.root,t),encoder:void 0});if(g7(t))return this.#e({pass:void 0,encoder:T7(r.root,t)});if(Ka(t)||Tm(t)){let[o,n]=Ka(t)?[t.layout,t]:[t,s];return this.#e({bindGroupLayoutMap:new Map([...r.priors.bindGroupLayoutMap??[],[o,n]])})}throw new Error("Unsupported value passed into .with()")}withPerformanceCallback(t){let s=this[q];if(s.priors.timestampWrites)return this.#e({performanceCallback:t});let r=s.core.performanceCallbackQuerySet;return r?this.#e(i7(s.priors,t,r)):(fs.warn("webgpu-feature-missing","Performance callback cannot be used because the timestamp-query feature is not enabled on the root."),this)}withTimestampWrites(t){let s=this[q];return this.#e(d7(s.priors,t,s.root))}dispatchWorkgroups(t,s,r){this.#t(o=>o.dispatchWorkgroups(t,s,r))}dispatchWorkgroupsIndirect(t,s){let r=ca(t)?t:t.buffer,o=Gd(t,s,12,"dispatchWorkgroupsIndirect");this.#t(n=>n.dispatchWorkgroupsIndirect(r,o))}initAsync(){return this[q].core.initAsync()}initSync(){this[q].core.initSync()}#t(t){let{core:s,priors:r,root:o}=this[q];if(r.pass){cv(o,r.pass[q],this,t);return}let n=r.encoder??cy(o),i=n.beginComputePass({label:Re(s)??"<unnamed>",timestampWrites:r.timestampWrites});cv(o,i[q],this,t,!0),i.end(),f7(n,s,s.unwrap().logResources,r)}$name(t){return Tt(this,t),this}},hG=class C7{[q]=!0;root;#e;#t;#s;#r;#o;#n;constructor(t,s,r){this.root=t,this.#r=s,this.#o=r,this.#e=fh?.enabled?new M7:new k7}static precompiled(t,s){let r=new C7(t,[],void 0);return r.#s=s,r}[ts](t){let s=this.#o;return s?t.withSlots(this.#r,()=>(t.resolve(s.compute),Ae("",Ns,"runtime"))):Ae("",Ns,"runtime")}toString(){return"computePipelineCore"}get performanceCallbackQuerySet(){if(this.root.enabledFeatures.has("timestamp-query"))return this.#n??=(globalThis.__TYPEGPU_AUTONAME__??(t=>t))(this.root.createQuerySet("timestamp",2),"performanceCallbackQuerySet")}initAsync(){if(this.#s!==void 0)return Promise.resolve();if(this.#t===void 0){let t=this.root.device,{resolutionResult:s,module:r}=this.resolveAndCreateShaderModule(),{usedBindGroupLayouts:o,catchall:n,logResources:i}=s;this.#t=t.createComputePipelineAsync({label:Re(this)??"<unnamed>",layout:t.createPipelineLayout({label:`${Re(this)??"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:o.map(d=>this.root.unwrap(d))}),compute:{module:r}}).then(d=>{this.#s={pipeline:d,usedBindGroupLayouts:o,catchall:n,logResources:i},this.#e.measureCompile(t)}).finally(()=>{this.#t=void 0})}return this.#t}initSync(){if(this.#s!==void 0)return;if(this.#t!==void 0)throw new Error("'pipeline.initAsync()' was called and is not yet resolved.");let t=this.root.device,{resolutionResult:s,module:r}=this.resolveAndCreateShaderModule(),{usedBindGroupLayouts:o,catchall:n,logResources:i}=s;this.#s={pipeline:(globalThis.__TYPEGPU_AUTONAME__??(d=>d))(t.createComputePipeline({label:Re(this)??"<unnamed>",layout:t.createPipelineLayout({label:`${Re(this)??"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:o.map(d=>this.root.unwrap(d))}),compute:{module:r}}),"pipeline"),usedBindGroupLayouts:o,catchall:n,logResources:i},this.#e.measureCompile(t)}unwrap(){return this.initSync(),this.#s}resolveAndCreateShaderModule(){let t=this.root.device,s=A7.filter(l=>this.root.enabledFeatures.has(E7[l])),r=al({names:this.root.nameRegistrySetting}),o=this.#e.measureResolve(()=>Am(this,{namespace:r,minify:this.root.minify,enableExtensions:s,shaderGenerator:this.root.shaderGeneratorClass?new this.root.shaderGeneratorClass:void 0,root:this.root})),{code:n,usedBindGroupLayouts:i,catchall:d}=o;return d!==void 0&&i[d[0]]?.$name(`${Re(this)??"<unnamed>"} - Automatic Bind Group & Layout`),Gw(i,t.limits),{resolutionResult:o,module:t.createShaderModule({label:`${Re(this)??"<unnamed>"} - Shader`,code:n})}}},yG={$vertexIndex:qr.vertexIndex,$instanceIndex:qr.instanceIndex},gG={$clipDistances:qr.clipDistances,$position:qr.position},xG={$position:qr.position,$frontFacing:qr.frontFacing,$primitiveIndex:qr.primitiveIndex,$sampleIndex:qr.sampleIndex,$sampleMask:qr.sampleMask,$subgroupInvocationId:qr.subgroupInvocationId,$subgroupSize:qr.subgroupSize},bG={$fragDepth:qr.fragDepth,$sampleMask:qr.sampleMask},uy=class{#e;autoIn;autoOut;constructor(e,t,s){Re(e)||Tt(e,"fragmentFn"),this.#e=Hi(e,"fragment"),this.autoIn=new Sn({...xG,...t},void 0,s),Tt(this.autoIn,"FragmentIn"),this.autoOut=new Sn(bG,lt),Tt(this.autoOut,"FragmentOut")}toString(){return"autoFragmentFn"}[ts](e){return e.withSlots([[nl,"fragment"]],()=>this.#e.resolve(e,[this.autoIn],this.autoOut))}};uy.prototype[q]=!0;uy.prototype.resourceType="auto-fragment-fn";var _y=class{#e;autoIn;autoOut;constructor(e,t,s){Re(e)||Tt(e,"vertexFn"),this.#e=Hi(e,"vertex"),this.autoIn=new Sn({...yG,...t},void 0,s),Tt(this.autoIn,"VertexIn"),this.autoOut=new Sn(gG,void 0),Tt(this.autoOut,"VertexOut")}toString(){return"autoVertexFn"}[ts](e){return e.withSlots([[nl,"vertex"]],()=>this.#e.resolve(e,[this.autoIn],this.autoOut))}};_y.prototype[q]=!0;_y.prototype.resourceType="auto-vertex-fn";function R7(e,t="vertex"){return new wG(e,t)}function U7(e){return e?.resourceType==="vertex-layout"}var _v=Symbol("defaultAttribEntry");function B_(e,t,s,r,o){if(ya(t)||oi(t)){let n=qa(t);return n!==void 0&&(r[o??_v]=n),B_(e,t.inner,Er(s,sn(t)),r)}if(Es(t)){let n=s,i=t.propTypes;return Object.fromEntries(Object.entries(i).map(([d,l])=>{n=Er(n,ks(l));let c=[d,B_(e,l,n,r,d)];return n+=kt(l),c}))}if(Zn(t)){let n=s,i=t.propTypes;return Object.fromEntries(Object.entries(i).map(([d,l])=>{n=Er(n,sn(l));let c=[d,B_(e,l,n,r,d)];return n+=kt(l),c}))}if("type"in t&&typeof t.type=="string"){if(u6.includes(t.type))return{_layout:e,format:t.type,offset:s};let n=Dk[t.type];if(n)return{_layout:e,format:n,offset:s}}throw new Error(`Unsupported data used in vertex layout: ${String(t)}`)}var wG=class{[q]=!0;[be];resourceType="vertex-layout";stride;attrib;schemaForCount;#e={};constructor(e,t){this.schemaForCount=e;let s=e(0);this[be]={type:"vertex-layout",schema:s,stepMode:t,label:void 0},this.stride=Er(kt(s.elementType),ks(s)),this.attrib=B_(this,s.elementType,0,this.#e)}get stepMode(){return this[be].stepMode}get vertexLayout(){if(this.#e[_v]!==void 0){if(typeof this.attrib.format!="string"||typeof this.attrib.offset!="number")throw new Error("Single attribute vertex layouts must have a format and offset.");return{arrayStride:this.stride,stepMode:this.stepMode,attributes:[{format:this.attrib.format,offset:this.attrib.offset,shaderLocation:this.#e[_v]}]}}if(!Object.keys(this.attrib).every(e=>this.#e[e]!==void 0))throw new Error("All attributes must have custom locations in order to unwrap a vertex layout.");return{arrayStride:this.stride,stepMode:this.stepMode,attributes:Object.entries(this.attrib).map(([e,t])=>({format:t.format,offset:t.offset,shaderLocation:this.#e[e]}))}}$name(e){return Tt(this,e),this}};function TG(e){return!!e?.view}function SG(e,t){if(om(e)||Nn(e))return[];if(Es(e)){let s=[];for(let r of Object.keys(e.propTypes)){let o=e.propTypes[r];if(Nn(o))continue;let n=t[r];if(!n)throw new Error(`A color attachment by the name of '${r}' was not provided to the shader.`);s.push(n)}return s}if(!TG(t))throw new Error("Expected a single color attachment, not a record.");return[t]}function AG(e,t){let s;if(om(e)||Nn(e))return[null];if(Es(e)){let o=[];for(let n of Object.keys(e.propTypes)){let i=e.propTypes[n];if(Nn(i))continue;let d=t[n];o.push({...d,format:d?.format??(s??=navigator.gpu.getPreferredCanvasFormat())})}return o}let r=t;return[{...r,format:r?.format??(s??=navigator.gpu.getPreferredCanvasFormat())}]}function EG(e){return new PG(new MG(e),{})}var PG=class z7{[q];[be];resourceType="render-pipeline";[Pr];constructor(t,s){this[be]={type:"render-pipeline",device:t.options.root.device,raw:void 0,label:void 0},this[q]={core:t,priors:s,root:t.options.root,materialize:()=>{let r=this[be];if(!r.raw){let o=t.unwrap();r.raw=o.pipeline,r.usedBindGroupLayouts=o.usedBindGroupLayouts,r.usedVertexLayouts=o.usedVertexLayouts,r.fragmentOut=o.fragmentOut,r.bindGroups=n7(o.usedBindGroupLayouts,o.catchall,s.bindGroupLayoutMap),r.vertexBuffers=Pz(o.usedVertexLayouts,s.vertexLayoutMap),r.indexBuffer=s.indexBuffer,r.stencilReference=s.stencilReference,r.timestampWrites=s.timestampWrites,r.performanceCallback=s.performanceCallback,r.nonTransferablePriors=P7(s)}return r.raw}},this[Pr]=t}[ts](t){return t.resolve(this[q].core)}toString(){return`renderPipeline:${Re(this)??"<unnamed>"}`}$name(t){return Tt(this,t),this}#e(t){let{core:s,priors:r}=this[q];return new z7(s,{...r,...t})}with(t,s){let r=this[q];if(h7(t))return this.#e({pass:t,encoder:void 0});if(dy(t))return this.#e({pass:void 0,encoder:t});if(sG(t)||rG(t))return this.#e({pass:cG(r.root,t),encoder:void 0});if(g7(t))return this.#e({pass:void 0,encoder:T7(r.root,t)});if(Ka(t)||Tm(t)){let[o,n]=Ka(t)?[t.layout,t]:[t,s];return this.#e({bindGroupLayoutMap:new Map([...r.priors.bindGroupLayoutMap??[],[o,n]])})}if(U7(t))return this.#e({vertexLayoutMap:new Map([...r.priors.vertexLayoutMap??[],[t,s]])});throw new Error("Unsupported value passed into .with()")}withPerformanceCallback(t){let s=this[q];if(s.priors.timestampWrites)return this.#e({performanceCallback:t});let r=s.core.performanceCallbackQuerySet;return r?this.#e(i7(s.priors,t,r)):(fs.warn("webgpu-feature-missing","Performance callback cannot be used because the timestamp-query feature is not enabled on the root."),this)}withTimestampWrites(t){let s=this[q];return this.#e(d7(s.priors,t,s.root))}withColorAttachment(t){return this.#e({colorAttachment:t})}withDepthStencilAttachment(t){return this.#e({depthStencilAttachment:t})}withStencilReference(t){return this.#e({stencilReference:t})}withIndexBuffer(t,s,r,o){if(ca(t)){if(typeof s!="string")throw new Error("If a GPUBuffer is passed, indexFormat must be provided.");return this.#e({indexBuffer:{buffer:t,indexFormat:s,offsetBytes:r,sizeBytes:o}})}let n={u32:"uint32",u16:"uint16"},i=t.dataType.elementType;return this.#e({indexBuffer:{buffer:t,indexFormat:n[i.type],offsetBytes:s!==void 0?s*kt(i):void 0,sizeBytes:o!==void 0?o*kt(i):void 0}})}initAsync(){return this[q].core.initAsync()}initSync(){this[q].core.initSync()}get hasIndexBuffer(){return this[q].priors.indexBuffer!==void 0}#t(){let{core:t,priors:s}=this[q],{fragmentOut:r}=t.unwrap();return{label:Re(t)??"<unnamed>",colorAttachments:r?SG(r,s.colorAttachment??{}):[],depthStencilAttachment:s.depthStencilAttachment,timestampWrites:s.timestampWrites}}#s(t,s){let{core:r,priors:o,root:n}=this[q];if(o.pass){lv(n,o.pass[q],this,t,s);return}t&&p7(o.indexBuffer);let i=o.encoder??cy(n),d=i.beginRenderPass(this.#t());lv(n,d[q],this,t,s,!0),d.end(),f7(i,r,r.unwrap().logResources,o)}draw(t,s,r,o){this.#s(!1,n=>n.draw(t,s,r,o))}drawIndexed(t,s,r,o,n){this.#s(!0,i=>i.drawIndexed(t,s,r,o,n))}drawIndirect(t,s){let r=ca(t)?t:t.buffer,o=Gd(t,s,16,"drawIndirect");this.#s(!1,n=>n.drawIndirect(r,o))}drawIndexedIndirect(t,s){let r=ca(t)?t:t.buffer,o=Gd(t,s,20,"drawIndexedIndirect");this.#s(!0,n=>n.drawIndexedIndirect(r,o))}},MG=class G7{[q]=!0;options;#e;#t;#s;#r;#o;#n;constructor(t){this.options=t,this.#e=fh?.enabled?new M7:new k7}static precompiled(t,s){let r=new G7({root:t,slotBindings:[],descriptor:void 0});return r.#s=s,r}[ts](t){let{slotBindings:s}=this.options,{vertex:r,fragment:o,attribs:n={}}=this.options.descriptor??{};if(!r)return Ae("",Ns,"runtime");this.#r=void 0,this.#o=void 0;let i=kG(r?.shell?.out,o?.shell?.in,Re(r)??"<unnamed>",Re(o)??"<unnamed>");return t.withVaryingLocations(i,()=>t.withSlots(s,()=>{let d;if(typeof r=="function"){let l=new _y(r,Object.fromEntries(Object.entries(n).map(([c,_])=>[c,ma[_.format]])),i);t.resolve(l),this.#r=l.autoIn.completeStruct.propTypes,d=l.autoOut.completeStruct}else d=t.resolve(r).dataType;if(o)if(typeof o=="function"){let l=Object.fromEntries(Object.entries(d.propTypes).filter(([,c])=>!Nn(c)));this.#o=t.resolve(new uy(o,l,i)).dataType}else t.resolve(o);return Ae("",Ns,"runtime")}))}toString(){return"renderPipelineCore"}get performanceCallbackQuerySet(){if(this.options.root.enabledFeatures.has("timestamp-query"))return this.#n??=(globalThis.__TYPEGPU_AUTONAME__??(t=>t))(this.options.root.createQuerySet("timestamp",2),"performanceCallbackQuerySet")}initAsync(){if(this.#s!==void 0)return Promise.resolve();if(this.#t===void 0){let t=this.options.root.device,{resolutionResult:s,descriptor:r,connectedAttribs:o,fragmentOut:n}=this.resolveAndCreateShaderModule(),{usedBindGroupLayouts:i,catchall:d,logResources:l}=s;this.#t=t.createRenderPipelineAsync(r).then(c=>{this.#s={pipeline:c,usedBindGroupLayouts:i,catchall:d,logResources:l,usedVertexLayouts:o.usedVertexLayouts,fragmentOut:n},this.#e.measureCompile(t)}).finally(()=>{this.#t=void 0})}return this.#t}initSync(){if(this.#s!==void 0)return;if(this.#t!==void 0)throw new Error("'pipeline.initAsync()' was called and is not yet resolved.");let t=this.options.root.device,{resolutionResult:s,descriptor:r,connectedAttribs:o,fragmentOut:n}=this.resolveAndCreateShaderModule(),{usedBindGroupLayouts:i,catchall:d,logResources:l}=s;this.#s={pipeline:(globalThis.__TYPEGPU_AUTONAME__??(c=>c))(t.createRenderPipeline(r),"pipeline"),usedBindGroupLayouts:i,catchall:d,logResources:l,usedVertexLayouts:o.usedVertexLayouts,fragmentOut:n},this.#e.measureCompile(t)}unwrap(){return this.initSync(),this.#s}resolveAndCreateShaderModule(){let{root:t,descriptor:s}=this.options;if(!s)throw new Error("Precompiled pipelines are never resolved again.");let r=t.device,o=A7.filter(M=>t.enabledFeatures.has(E7[M])),n=al({names:t.nameRegistrySetting}),i=this.#e.measureResolve(()=>Am(this,{namespace:n,minify:t.minify,enableExtensions:o,shaderGenerator:t.shaderGeneratorClass?new t.shaderGeneratorClass:void 0,root:t})),{code:d,usedBindGroupLayouts:l,catchall:c}=i;c!==void 0&&l[c[0]]?.$name(`${Re(this)??"<unnamed>"} - Automatic Bind Group & Layout`),Gw(l,r.limits);let _=r.createShaderModule({label:`${Re(this)??"<unnamed>"} - Shader`,code:d}),{vertex:p,fragment:f,attribs:h={},targets:g}=s,x=jR(p?.shell?.in??this.#r??{},h),T=f?.shell?.returnType??this.#o,S=T?AG(T,g):[null],A={layout:r.createPipelineLayout({label:`${Re(this)??"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:l.map(M=>t.unwrap(M))}),vertex:{module:_,buffers:x.bufferDefinitions}},E=Re(this);return E!==void 0&&(A.label=E),s.fragment&&(A.fragment={module:_,targets:S}),s.primitive&&(Oi(s.primitive.stripIndexFormat)?A.primitive={...s.primitive,stripIndexFormat:{u32:"uint32",u16:"uint16"}[s.primitive.stripIndexFormat.type]}:A.primitive=s.primitive),s.depthStencil&&(A.depthStencil=s.depthStencil),s.multisample&&(A.multisample=s.multisample),{resolutionResult:i,descriptor:A,connectedAttribs:x,fragmentOut:T}}};function kG(e={},t={},s,r){let o={},n=new Set;function i(l,c){o[l]=c,n.add(c)}for(let[l,c]of Object.entries(e)){let _=qa(c);_!==void 0&&i(l,_)}for(let[l,c]of Object.entries(t)){let _=qa(c);_!==void 0&&(o[l]===void 0?i(l,_):o[l]!==_&&fs.warn("locations-mismatched",`Mismatched location between vertexFn (${s}) output (${o[l]}) and fragmentFn (${r}) input (${_}) for the key "${l}", using the location set on vertex output.`))}let d=0;for(let l of Object.keys(e??{}))if(!(Nn(e[l])||o[l]!==void 0)){for(;n.has(d);)d++;i(l,d)}return o}var Jb=class{#e=new WeakMap;#t;constructor(e){this.#t=e}getOrMake(e,...t){if(this.#e.has(e))return this.#e.get(e);let s=this.#t(e,...t);return this.#e.set(e,s),s}};function py(e){let t={argTypes:Object.values(e.in??{}),returnType:Ns,workgroupSize:e.workgroupSize,entryPoint:"compute"},s=mw(e.in??{});return Object.assign((o,...n)=>$G(t,e.workgroupSize,xm(o,...n),s),t)}function $G(e,t,s,r){let o=Hi(s,"compute",t);return{shell:e,$uses(n){return o.setExternals("userProvided",n),this},[q]:!0,[Pr]:o,$name(n){return Tt(this,n),this},[ts](n){return n.withSlots([[nl,"compute"]],()=>o.resolve(n,[],e.returnType,r))},toString(){return`computeFn:${Re(o)??"<unnamed>"}`}}}function CG(e){if(e.includes(0))throw new Error("Size and workgroupSize cannot contain zeroes.");return Ot(e[0]??1,e[1]??1,e[2]??1)}var RG=[Ot(1,1,1),Ot(256,1,1),Ot(16,16,1),Ot(8,8,4)],UG=class I_{resourceType="guarded-compute-pipeline";[be];#e;#t;constructor(t,s,r,o){this.#e=t,this.#t=Ot(),this[be]={type:"guarded-compute-pipeline",device:t.device,pipeline:s,sizeUniform:r,workgroupSize:o,label:void 0}}with(t){if(!Ka(t))throw new Error("Guarded pipelines only accept bind groups in .with(). To record into passes or encoders, use a regular compute pipeline.");return new I_(this.#e,this[be].pipeline.with(t),this[be].sizeUniform,this[be].workgroupSize)}withPerformanceCallback(t){return new I_(this.#e,this[be].pipeline.withPerformanceCallback(t),this[be].sizeUniform,this[be].workgroupSize)}withTimestampWrites(t){return new I_(this.#e,this[be].pipeline.withTimestampWrites(t),this[be].sizeUniform,this[be].workgroupSize)}dispatchThreads(...t){let s=CG(t),r=ac(cs(s).div(cs(this[be].workgroupSize)));YR(s,this.#t)||(this.#t=s,this[be].sizeUniform.write(s)),this[be].pipeline.dispatchWorkgroups(r.x,r.y,r.z)}initAsync(){return this[be].pipeline.initAsync()}initSync(){this[be].pipeline.initSync()}get pipeline(){return this[be].pipeline}get sizeUniform(){return this[be].sizeUniform}[q]=!0;get[Pr](){return this[be].pipeline}$name(t){return Tt(this,t),this}},zG=class pv{#e;#t;constructor(t,s){this.#e=t,this.#t=s}with(t,s){return new pv(this.#e,[...this.#t,[Jd(t)||el(t)?t.slot:t,s]])}createComputePipeline(t){return fG(this.#e(),this.#t,t)}createRenderPipeline(t){return EG({root:this.#e(),slotBindings:this.#t,descriptor:t})}createGuardedComputePipeline(t){let s=this.#e();if(t.length>=4)throw new Error("Guarded compute callback only supports up to three dimensions.");let r=RG[t.length],o=gs([Y,Y,Y])(t);Re(o)===void 0&&o.$name("wrappedCallback");let n=(globalThis.__TYPEGPU_AUTONAME__??(d=>d))(s.createUniform(Ot),"sizeUniform"),i=(globalThis.__TYPEGPU_AUTONAME__??(d=>d))(py({workgroupSize:r,in:{id:qr.globalInvocationId}})`{
|
|
if (any(in.id >= sizeUniform)) {
|
|
return;
|
|
}
|
|
wrappedCallback(in.id.x, in.id.y, in.id.z);
|
|
}`.$uses({sizeUniform:n,wrappedCallback:o}),"mainCompute");return new UG(s,this.createComputePipeline({compute:i}),n,r)}pipe(t){let s=t(new Dw([]));return new pv(this.#e,[...this.#t,...s.bindings])}},D7=class extends zG{"~unstable";resourceType="root";[be];device;nameRegistrySetting;shaderGeneratorClass;#e=new Jb(e=>e.unwrap(this));#t=new Jb(e=>e.unwrap(this));#s;[q];constructor(e,t,s,r,o,n){super(()=>this,[]),this.device=e,this.nameRegistrySetting=t,this.#s=r,this.shaderGeneratorClass=n,this["~unstable"]=this,this[be]={type:"root",device:e,nameRegistrySetting:t,logOptions:o,minify:s,nonTransferablePriors:n?["shaderGeneratorClass"]:void 0,label:void 0},this[q]={logOptions:o}}configureContext(e){let t=e.canvas.getContext("webgpu");if(!t)throw new Error("Unable to initialize 'webgpu' context on the provided canvas.");return t.configure({...e,device:this.device,format:e.format??navigator.gpu.getPreferredCanvasFormat()}),t}get enabledFeatures(){return new Set(this.device.features)}get minify(){return this[be].minify}createBuffer(e,t){return p_(this,e,t)}createUniform(e,t){return new Di("uniform",p_(this,e,t).$usage("uniform"))}createMutable(e,t){return new Di("mutable",p_(this,e,t).$usage("storage"))}createReadonly(e,t){return new Di("readonly",p_(this,e,t).$usage("storage"))}createQuerySet(e,t,s){return Iz(this,e,t,s)}createBindGroup(e,t){return new qw(this,e,t)}destroy(){sz(this.device),this.#s&&this.device.destroy()}createTexture(e){return az(e,this)}createSampler(e){return GU(e,this)}createComparisonSampler(e){return DU(e,this)}unwrap(e){if(dy(e))return e[q].rawEncoder;if(h7(e)||y7(e))return e[q].state.rawAccessed=!0,e[q].rawPass;if(Tm(e))return this.#e.getOrMake(e);if(Ka(e))return this.#t.getOrMake(e);if(Ic(e))return e.buffer.buffer;if(zd(e)){if(!e[q].unwrap)throw new Error("Cannot unwrap laid-out texture view as it has no underlying resource.");return e[q].unwrap()}if(U7(e))return e.vertexLayout;let t=e[q];if(t?.materialize)return t.materialize();throw ny(e)||ay(e)?new Error("Cannot unwrap laid-out sampler."):new Error(`Unknown resource type: ${Oo(e)}`)}createCommandEncoder(e){return cy(this,e)}createRenderBundleEncoder(e){return lG(this,e)}};async function GG(e){let{adapter:t,device:s,unstable_names:r="strict",unstable_minify:o=!1,unstable_logOptions:n,unstable_shaderGeneratorClass:i}=e??{},{optionalFeatures:d,...l}=s??{};if(!navigator.gpu)throw new Error("WebGPU is not supported by this browser.");let c=await navigator.gpu.requestAdapter(t);if(!c)throw new Error("Could not find a compatible GPU");let _=[];for(let p of l.requiredFeatures??[]){if(!c.features.has(p))throw new Error(`Requested feature "${p}" is not supported by the adapter.`);_.push(p)}for(let p of d??[])c.features.has(p)?_.push(p):fs.warn("webgpu-feature-missing",`Optional feature "${p}" is not supported by the adapter.`);return new D7(await c.requestDevice({...l,requiredFeatures:_}),r,o,!0,n??{},i)}function DG(e){let{device:t,unstable_names:s="strict",unstable_minify:r=!1,unstable_logOptions:o,unstable_shaderGeneratorClass:n}=e??{};return new D7(t,s,r,!1,o??{},n)}function L7(e,t){return new LG(e,t)}function F7(e,t){return new FG(e,t)}function my(e){let t=Li(),s=sp(t.unwrap(e.slot));for(;typeof s=="function"&&!qf(s)&&!K_(s)&&!Cd(s);)s=s(),Rc(s)&&(s=s.value);let r=im(s);if(r)return r;if(K_(s))return s[mr].call(t,[]);if(qf(s)||Cd(s)){let o=t.resolve(s);return t.withResetIndentLevel(()=>Ae(`${o.value}()`,e.schema,"runtime",o.possibleSideEffects))}t.pushMode(new tl);try{return Ae(Xa(e.schema,s),e.schema,"constant",!1)}finally{t.popMode("normal")}}var B7=class mv{[Pr];[be];slot;static#e=void(mv.prototype[q]=!0,wa(mv.prototype,{asString(){return`${this.resourceType}:${Re(this)??"<unnamed>"}`},resolve(t){return t.resolveSnippet(my(this))}}));constructor(t,s,r=void 0){this[be]={type:t,schema:$c(s)?s:s(0),defaultValue:r,label:void 0},this.slot=Wc(r),this[Pr]=this.slot}get schema(){return this[be].schema}get defaultValue(){return this[be].defaultValue}$name(t){return Tt(this,t),this.defaultValue&&typeof this.defaultValue=="function"&&!Re(this.defaultValue)&&Tt(this.defaultValue,t),this}},LG=class fv extends B7{static#e=void(fv.prototype.resourceType="accessor",Qn(fv.prototype,{codegenMode:{get(){return my(this)}},normalMode:{get(){throw new Error("`tgpu.accessor` relies on GPU resources and cannot be accessed outside of a compute dispatch or draw call. Use `tgpu.slot` for non-WGSL values instead.")}}}));constructor(t,s=void 0){super("accessor",t,s)}},FG=class vv extends B7{static#e=void(vv.prototype.resourceType="mutable-accessor",Qn(vv.prototype,{codegenMode:{get(){return my(this)}},normalMode:{get(){throw new Error("`tgpu.mutableAccessor` relies on GPU resources and cannot be accessed outside of a compute dispatch or draw call. Use `tgpu.slot` for non-WGSL values instead.")}}}));constructor(t,s=void 0){super("mutable-accessor",t,s)}};function hv(e,t){return Array.isArray(e)?YG(e,t):IG(e)}function BG(e,t){return Array.isArray(e)?hv(e,t).code:hv(e).code}function IG(e){let{template:t,externals:s,unstable_shaderGenerator:r,names:o="strict",unstable_minify:n,config:i,enableExtensions:d}=e;t||fs.warn("deprecated","Calling resolve with an empty template is deprecated and will soon return an empty string. Consider using the 'tgpu.resolve(resolvableArray, options)' API instead.");let l={[q]:!0,[ts](_){return Ae(gm(_,s,t??""),Ns,"runtime")},toString:()=>"<root>"},c=I7(Object.values(s));return Am(l,{namespace:typeof o=="string"?al({names:o}):o,minify:n??c?.minify??!1,enableExtensions:d,shaderGenerator:r,config:i,root:c})}function YG(e,t){let{unstable_shaderGenerator:s,names:r="strict",unstable_minify:o,config:n,enableExtensions:i}=t??{},d={[q]:!0,[ts](c){for(let _ of e)if(Tm(_))for(let p of Object.values(_[q]))c.resolve(p);else c.resolve(_);return Ae("",Ns,"runtime")},toString:()=>"<root>"},l=I7(e);return Am(d,{namespace:typeof r=="string"?al({names:r}):r,minify:o??l?.minify??!1,enableExtensions:i,shaderGenerator:s,config:n,root:l})}function I7(e){let t=new Map;for(let s of e){let r=yv(s);if(r){let o=t.get(r)??new Set;t.set(r,o),o.add(s)}}if(t.size>1){let s=[...t.values()].map((r,o)=>`root ${o+1}: ${[...r].map(n=>Re(n)??"<unnamed>").join(", ")}`).join("; ");throw new Error(`Found resources originating from different roots in a single resolve (${s}).`)}return[...t.keys()][0]}function yv(e){if(Jz(e)||fc(e)||xc(e)||ny(e)||ay(e))return e[q].root;if(Ic(e))return yv(e.buffer);if(zd(e))return yv(e?.[be]?.texture)}function Y7(e){if(Li())throw new Error("Cannot create tgpu.lazy objects during shader resolution.");return new WG(e,void 0)}var WG=class Y_{[q];[co];static#e=void(Y_.prototype.resourceType="lazy",Qn(wa(Y_.prototype,{asString:()=>"lazy",resolve(t){throw new Error("Unreachable, is never resolved directly")}}),{codegenMode:{get(){return this.#t()}},normalMode:{get(){return this.#t()}}}));constructor(t,s){this[q]={compute:t},this[co]=s}get[$o](){let t=Li();if(!t)throw new Error("Cannot access tgpu.lazy's value outside of resolution.");return sp(t.unwrap(this))}get $(){return this[$o]}#t(){let t=Li();if(!t)throw new Error("Cannot access tgpu.lazy's value outside of resolution.");return sp(t.unwrap(this))}with(t,s){return new Y_(this[q].compute.bind(this),{inner:this[co]?.inner??this,pairs:[...this[co]?.pairs??[],[Jd(t)||el(t)?t.slot:t,s]]})}};function W7(e){let t={in:e.in,out:e.out,returnType:Fc(e.out),entryPoint:"fragment"};return Object.assign((r,...o)=>OG(t,xm(r,...o)),t)}function OG(e,t){let s=Hi(t,"fragment"),r=e.returnType;return typeof t=="string"&&hw(t,r,s),{shell:e,outputType:r,$uses(o){return s.setExternals("userProvided",o),this},[q]:!0,[Pr]:s,$name(o){return Tt(this,o),$d(r)&&r.$name(`${o}_Output`),this},[ts](o){let n=mw(e.in??{},o.varyingLocations??{});return n.dataSchema&&$d(n.dataSchema)&&n.dataSchema.$name(`${Re(this)??""}_Input`),typeof t=="string"&&s.setExternals("out",{Out:r}),o.withSlots([[nl,"fragment"]],()=>s.resolve(o,[],e.returnType,n))},toString(){return`fragmentFn:${Re(s)??"<unnamed>"}`}}}function Em(e){if(Object.keys(e.out).length===0)throw new Error("A vertexFn output cannot be empty since it must include the 'position' builtin.");let t={in:e.in,out:e.out,argTypes:e.in&&Object.keys(e.in).length!==0?[Fc(e.in)]:[],entryPoint:"vertex"};return Object.assign((r,...o)=>VG(t,xm(r,...o)),t)}function VG(e,t){let s=Hi(t,"vertex"),r=x4(e.in??{});return{shell:e,$uses(o){return s.setExternals("userProvided",o),this},[q]:!0,[Pr]:s,$name(o){return Tt(this,o),this},[ts](o){let n=Fc(e.out,o.varyingLocations).$name(`${Re(this)??""}_Output`);return typeof t=="string"&&s.setExternals("out",{Out:n}),o.withSlots([[nl,"vertex"]],()=>s.resolve(o,[],n,r))},toString(){return`vertexFn:${Re(s)??"<unnamed>"}`}}}function NG(e){return new qG(e)}var qG=class{[q]=!0;#e;#t;constructor(e){this.#t=e}$uses(e){if(this.#e!==void 0)throw new Error("Cannot call '$uses' multiple times. If you wish to override dependencies, use slots or accessors instead.");return this.#e=e,this}[ts](e){let t=gm(e,this.#e??{},this.#t);return e.addDeclaration(t),Ae("",Ns,"constant")}toString(){return`declare: ${this.#t}`}};function XG(e,t,s="runtime",r=!0){return new HG(e,t,s,r)}var HG=class gv{dataType;origin;possibleSideEffects;#e;#t;static#s=void(gv.prototype[q]=!0,Qn(wa(gv.prototype,{asString(){return`raw(${String(this.dataType)}): "${this.#e}"`},resolve(t){return Ae(gm(t,this.#t??{},this.#e),this.dataType,this.origin,this.possibleSideEffects)}}),{codegenMode:{getBaseSnippet(t){return Ae(t,this.dataType,this.origin,this.possibleSideEffects)}},normalMode:{get(){throw new Error("Raw code snippets can only be used on the GPU.")}}}));constructor(t,s,r,o){this.dataType=s,this.origin=r,this.possibleSideEffects=o,this.#e=t}$uses(t){if(this.#t!==void 0)throw new Error("Cannot call '$uses' multiple times. If you wish to override dependencies, use slots or accessors instead.");return this.#t=t,this}};function jG(e){let t=Li()??new o7({minify:!1,namespace:al()}),s=[1,1,1],r=[1,1,1],o=[s[0]*r[0],s[1]*r[1],s[2]*r[2]],n=new Map,i=Array.from({length:s[0]},()=>Array.from({length:s[1]},()=>Array.from({length:s[2]},()=>new Map))),d=Array.from({length:o[0]},()=>Array.from({length:o[1]},()=>Array.from({length:o[2]},()=>new Map))),l=Array.from({length:o[0]},(c,_)=>Array.from({length:o[1]},(p,f)=>Array.from({length:o[2]},(h,g)=>{let x=Math.floor(_/r[0]),T=Math.floor(f/r[1]),S=Math.floor(g/r[2]);return new Vk(n,{private:d[_][f][g],workgroup:i[x][T][S]})})));t.pushMode(l[0][0][0]);try{return{value:v6(t,e),buffers:n,privateVars:d,workgroupVars:i}}finally{t.popMode("simulate")}}var KG=Pn({accessor:()=>rD,comptime:()=>QG,computeFn:()=>JG,const:()=>ZG,declare:()=>NG,derived:()=>nD,fn:()=>eD,fragmentFn:()=>tD,mutableAccessor:()=>oD,namespace:()=>al,privateVar:()=>iD,rawCodeSnippet:()=>XG,simulate:()=>jG,slot:()=>aD,vertexFn:()=>sD,vertexLayout:()=>lD,workgroupVar:()=>dD}),ZG=Qh,QG=nn,JG=py,eD=gs,tD=W7,sD=Em,rD=L7,oD=F7,nD=Y7,aD=Wc,iD=Sm,dD=Xw,lD=R7,cD=Pn({accessor:()=>L7,bindGroupLayout:()=>Vw,comptime:()=>nn,computeFn:()=>py,const:()=>Qh,fn:()=>gs,fragmentFn:()=>W7,init:()=>GG,initFromDevice:()=>DG,lazy:()=>Y7,mutableAccessor:()=>F7,privateVar:()=>Sm,resolve:()=>BG,resolveWithContext:()=>hv,slot:()=>Wc,unroll:()=>Mw,vertexFn:()=>Em,vertexLayout:()=>R7,workgroupVar:()=>Xw,"~unstable":()=>KG});we({name:"workgroupBarrier",normalImpl:"workgroupBarrier is a no-op outside of CODEGEN mode.",signature:{argTypes:[],returnType:Ns},codegenImpl:()=>"workgroupBarrier()",sideEffects:!0});we({name:"storageBarrier",normalImpl:"storageBarrier is a no-op outside of CODEGEN mode.",signature:{argTypes:[],returnType:Ns},codegenImpl:()=>"storageBarrier()",sideEffects:!0});we({name:"textureBarrier",normalImpl:"textureBarrier is a no-op outside of CODEGEN mode.",signature:{argTypes:[],returnType:Ns},codegenImpl:()=>"textureBarrier()",sideEffects:!0});var Ta="Atomic operations are not supported outside of CODEGEN mode.",SO=we({name:"atomicLoad",normalImpl:Ta,signature:e=>{if(!rm(e))throw new Error(`Invalid atomic type: ${Oo(e)}`);return{argTypes:[e],returnType:e.inner}},codegenImpl:(e,[t])=>fe`atomicLoad(&${t})`,sideEffects:!0}),uD=e=>{if(!rm(e))throw new Error(`Invalid atomic type: ${Oo(e)}`);return{argTypes:[e,e.inner.type==="u32"?Y:oe],returnType:Ns}},ji=e=>{if(!rm(e))throw new Error(`Invalid atomic type: ${Oo(e)}`);let t=e.inner.type==="u32"?Y:oe;return{argTypes:[e,t],returnType:t}},AO=we({name:"atomicStore",normalImpl:Ta,signature:uD,codegenImpl:(e,[t,s])=>fe`atomicStore(&${t}, ${s})`,sideEffects:!0}),EO=we({name:"atomicAdd",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicAdd(&${t}, ${s})`,sideEffects:!0});we({name:"atomicSub",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicSub(&${t}, ${s})`,sideEffects:!0});we({name:"atomicMax",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicMax(&${t}, ${s})`,sideEffects:!0});we({name:"atomicMin",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicMin(&${t}, ${s})`,sideEffects:!0});we({name:"atomicAnd",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicAnd(&${t}, ${s})`,sideEffects:!0});we({name:"atomicOr",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicOr(&${t}, ${s})`,sideEffects:!0});we({name:"atomicXor",normalImpl:Ta,signature:ji,codegenImpl:(e,[t,s])=>fe`atomicXor(&${t}, ${s})`,sideEffects:!0});var Sa="Derivative builtins are not allowed on the CPU",Dd=we({name:"dpdx",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`dpdx(${t})`,sideEffects:!1});we({name:"dpdxCoarse",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`dpdxCoarse(${t})`,sideEffects:!1});we({name:"dpdxFine",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`dpdxFine(${t})`,sideEffects:!1});var Ld=we({name:"dpdy",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`dpdy(${t})`,sideEffects:!1});we({name:"dpdyCoarse",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`dpdyCoarse(${t})`,sideEffects:!1});we({name:"dpdyFine",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`dpdyFine(${t})`,sideEffects:!1});var As=we({name:"fwidth",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`fwidth(${t})`,sideEffects:!1});we({name:"fwidthCoarse",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`fwidthCoarse(${t})`,sideEffects:!1});we({name:"fwidthFine",normalImpl:Sa,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>fe`fwidthFine(${t})`,sideEffects:!1});function Oc(e){return e.filter(t=>t!==void 0)}function _D(e,t,s,r,o){throw new vr("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}we({name:"textureSample",normalImpl:_D,codegenImpl:(e,t)=>e.gen.emitCall("textureSample",[],Oc(t)),signature:(...e)=>({argTypes:e,returnType:e[0].type.startsWith("texture_depth")?a:lt}),sideEffects:!1});function pD(e,t,s,r,o,n){throw new vr("Texture sampling with bias relies on GPU resources and cannot be executed outside of a draw call")}we({name:"textureSampleBias",normalImpl:pD,codegenImpl:(e,t)=>e.gen.emitCall("textureSampleBias",[],Oc(t)),signature:(...e)=>({argTypes:e,returnType:lt}),sideEffects:!1});function mD(e,t,s,r,o,n){throw new vr("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var ip=we({name:"textureSampleLevel",normalImpl:mD,codegenImpl:(e,t)=>e.gen.emitCall("textureSampleLevel",[],Oc(t)),signature:(...e)=>({argTypes:e,returnType:e[0].type.startsWith("texture_depth")?a:lt}),sideEffects:!1});function fD(e,t,s){throw new vr("`textureLoad` relies on GPU resources and cannot be executed outside of a draw call")}var at=we({name:"textureLoad",normalImpl:fD,codegenImpl:(e,t)=>e.gen.emitCall("textureLoad",[],Oc(t)),signature:(...e)=>{let t=e[0];if(Z6(t)){let r=t.type.startsWith("texture_depth"),o=t.sampleType;return{argTypes:e,returnType:r?a:o.type==="f32"?lt:o.type==="u32"?es:ps}}if(dC(t))return{argTypes:e,returnType:lt};let s=t.format;return{argTypes:e,returnType:Yc(s).vectorType}},sideEffects:!1});function vD(e,t,s,r){throw new vr("`textureStore` relies on GPU resources and cannot be executed outside of a draw call")}var Co=we({name:"textureStore",normalImpl:vD,codegenImpl:(e,t)=>fe`textureStore(${t})`,signature:(...e)=>({argTypes:e,returnType:Ns}),sideEffects:!0});function hD(e,t){throw new vr("`textureDimensions` relies on GPU resources and cannot be executed outside of a draw call")}var PO=we({name:"textureDimensions",normalImpl:hD,codegenImpl:(e,t)=>e.gen.emitCall("textureDimensions",[],Oc(t)),signature:(...e)=>{let t=e[0].dimension;return t==="1d"?{argTypes:e,returnType:Y}:t==="3d"?{argTypes:e,returnType:Ot}:{argTypes:e,returnType:ns}},sideEffects:!1}),yD=(...e)=>{throw new Error("Texture gather relies on GPU resources and cannot be executed outside of a draw call")},gD={f32:lt,i32:ps,u32:es};we({name:"textureGather",normalImpl:yD,codegenImpl:(e,t)=>fe`textureGather(${t})`,signature:(...e)=>{if(e[0].type.startsWith("texture")){let[i,d,l,c,..._]=e;return{argTypes:i.type==="texture_depth_2d_array"||i.type==="texture_depth_cube_array"?[i,d,l,[Y,oe],..._]:e,returnType:lt}}let[t,s,r,o,...n]=e;return{argTypes:s.type==="texture_2d_array"||s.type==="texture_cube_array"?[[Y,oe],s,r,o,[Y,oe],...n]:[[Y,oe],s,r,o,...n],returnType:gD[s.sampleType.type]}},sideEffects:!1});function xD(e,t,s,r,o,n){throw new vr("Texture comparison sampling relies on GPU resources and cannot be executed outside of a draw call")}we({name:"textureSampleCompare",normalImpl:xD,codegenImpl:(e,t)=>fe`textureSampleCompare(${t})`,signature:(...e)=>({argTypes:e,returnType:a}),sideEffects:!1});function bD(e,t,s,r,o,n){throw new vr("Texture comparison sampling with level relies on GPU resources and cannot be executed outside of a draw call")}we({name:"textureSampleCompareLevel",normalImpl:bD,codegenImpl:(e,t)=>fe`textureSampleCompareLevel(${t})`,signature:(...e)=>({argTypes:e,returnType:a}),sideEffects:!1});function wD(e,t,s){throw new vr("Texture sampling with base clamp to edge is not supported outside of GPU mode.")}function TD(e,t,s,r,o,n,i){throw new vr("Texture sampling with gradients relies on GPU resources and cannot be executed outside of a draw call")}we({name:"textureSampleGrad",normalImpl:TD,codegenImpl:(e,t)=>fe`textureSampleGrad(${t})`,signature:(...e)=>({argTypes:e,returnType:lt}),sideEffects:!1});we({name:"textureSampleBaseClampToEdge",normalImpl:wD,codegenImpl:(e,t)=>fe`textureSampleBaseClampToEdge(${t})`,signature:(...e)=>({argTypes:e,returnType:lt}),sideEffects:!1});var y=cD,v_="uniforms";function O7(e){return e.replace(/[^a-zA-Z0-9_]/g,"_")}var SD=new Set(["alias","break","case","const","const_assert","continue","continuing","default","diagnostic","discard","else","enable","false","fn","for","if","let","loop","override","requires","return","struct","switch","true","var","while","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","highp","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","non_coherent","noncoherent","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","readonly","ref","regardless","register","reinterpret_cast","require","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","sampler","uniform","storage"]);function AD(e){let t=O7(e);return SD.has(t)?`${t}_`:t}function yn(e){return`n_${O7(e)}`}function xv(e){return e==="vec2"?2:e==="vec3"?3:4}function V7(e){let t=e.type;return t==="vec2f"||t==="vec2i"||t==="vec2u"?"vec2":t==="vec3f"||t==="vec3i"||t==="vec3u"?"vec3":t==="vec4f"||t==="vec4i"||t==="vec4u"?"vec4":"scalar"}function ED(e){return e.type==="array"}function N7(e){if(typeof e=="number"||typeof e=="boolean")return a;if(e&&typeof e=="object"){let t=e.kind;if(typeof t=="string"){if(t.startsWith("vec2"))return u;if(t.startsWith("vec3"))return v;if(t.startsWith("vec4"))return b}if(Array.isArray(e))return zt(a,e.length||1);let s=e;if("w"in s)return b;if("z"in s)return v;if("x"in s&&"y"in s)return u}return Array.isArray(e)?zt(a,e.length||1):a}function bv(e,t){let s=e;if(s&&typeof s=="object"&&"data"in s&&!("x"in s)&&(s=s.data),typeof s=="number")return new Array(t).fill(s);if(s instanceof q7)return s.toArray().slice(0,t);if(Array.isArray(s))return e3(s,t);if(s&&typeof s=="object"){let r=s;if("x"in r){let o=[r.x,r.y??0];return t>=3&&o.push(r.z??0),t>=4&&o.push(r.w??0),o.slice(0,t)}if(typeof r.length=="number")return e3(Array.from(r),t)}throw new Error(`[uniformStore] cannot coerce value to a ${t}-component vector: ${String(e)}`)}function e3(e,t){let s=e.slice(0,t);for(;s.length<t;)s.push(0);return s}function t3(e){let t=e;if(t&&typeof t=="object"&&"data"in t&&(t=t.data),typeof t=="number")return t;if(typeof t=="boolean")return t?1:-1;let s=Number(t);return Number.isFinite(s)?s:0}var s3=new Set;function PD(e){if(e==null)return!0;let t=typeof e;if(t==="number"||t==="boolean"||t==="string")return!0;if(t!=="object")return!1;if(Array.isArray(e))return!0;let s=e;return!!(typeof s.kind=="string"&&s.kind.startsWith("vec")||"x"in s&&"y"in s||typeof s.length=="number"||"data"in s)}var q7=class{constructor(e){this.handle=e}get n(){return this.handle._componentCount}component(e){return this.handle._mirror[e]??0}write(e,t){this.handle._mirror[e]=t,this.handle._enqueue()}get x(){return this.component(0)}set x(e){this.write(0,e)}get y(){return this.component(1)}set y(e){this.write(1,e)}get z(){return this.component(2)}set z(e){this.write(2,e)}get w(){return this.component(3)}set w(e){this.write(3,e)}get r(){return this.component(0)}set r(e){this.write(0,e)}get g(){return this.component(1)}set g(e){this.write(1,e)}get b(){return this.component(2)}set b(e){this.write(2,e)}get a(){return this.component(3)}set a(e){this.write(3,e)}copy(e){let t=bv(e,this.n);for(let s=0;s<this.n;s++)this.handle._mirror[s]=t[s];return this.handle._enqueue(),this}set(...e){for(let t=0;t<this.n&&t<e.length;t++)this.handle._mirror[t]=e[t];return this.handle._enqueue(),this}toArray(){return this.handle._mirror.slice(0,this.n)}},An=class{gpuPath;accessorPath;transform;cpu;schema;_componentCount;_mirror;_raw;_kind;_view;_sink;constructor(e){this._sink=e.sink,this.gpuPath=e.gpuPath,this.accessorPath=`${e.gpuPath[0]}.${e.gpuPath[1]}`,this.transform=e.transform,this.cpu=e.cpu??!1,this.schema=e.schema,this._kind=this.cpu||!e.schema?"scalar":V7(e.schema),this._componentCount=this._kind==="scalar"?1:xv(this._kind),this.cpu?(this._mirror=[],this._raw=e.initial):this._kind==="scalar"?this._mirror=[t3(e.initial)]:(this._mirror=bv(e.initial,this._componentCount),this._view=new q7(this))}_enqueue(){this.cpu||this._sink.markScalar(this)}_patchValue(){return this._kind==="scalar"?this._mirror[0]:this._mirror.slice(0,this._componentCount)}get value(){return this.cpu?this._raw:this._kind==="scalar"?this._mirror[0]:this._view}set value(e){if(this.cpu){this._raw=e;return}if(this._kind==="scalar")this._mirror[0]=t3(e);else{let t=bv(e,this._componentCount);for(let s=0;s<this._componentCount;s++)this._mirror[s]=t[s]}this._enqueue()}setFromRaw(e){if(this.cpu){this._raw=e;return}this.value=this.transform?this.transform(e):e}setComponents(...e){if(this.cpu||this._kind==="scalar"){e.length&&(this.value=e[0]);return}for(let t=0;t<this._componentCount&&t<e.length;t++)this._mirror[t]=e[t];this._enqueue()}},bc=class{gpuPath;accessorPath;transform;schema;length;elementKind;_mirror;_sink;constructor(e){this._sink=e.sink,this.gpuPath=e.gpuPath,this.accessorPath=`${e.gpuPath[0]}.${e.gpuPath[1]}`,this.transform=e.transform,this.schema=e.schema,this.length=e.schema.elementCount,this.elementKind=V7(e.schema.elementType),this._mirror=e.initial?e.initial.slice():new Array(this.flatLength).fill(0)}get flatLength(){return this.length*(this.elementKind==="scalar"?1:xv(this.elementKind))}get array(){return this._mirror}set array(e){e!==this._mirror&&(this._mirror=e.slice()),this._sink.markArray(this,"all")}setElement(e,t){this._mirror[e]=t,this._sink.markArray(this,e)}get componentsPerElement(){return this.elementKind==="scalar"?1:xv(this.elementKind)}_wholeArray(){let e=this._mirror.slice(0,this.flatLength),t=this.componentsPerElement;if(t===1)return e;let s=[];for(let r=0;r<this.length;r++)s.push(e.slice(r*t,(r+1)*t));return s}_elementAt(e){return this._mirror[e]}_elementTuple(e){let t=this.componentsPerElement;return this._mirror.slice(e*t,(e+1)*t)}},MD=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({time:a,deltaTime:a,frame:a,viewportSize:u,logicalViewportSize:u,aspect:a,pointer:u,pointerActive:a}),"SystemUniforms"),kD={time:0,deltaTime:0,frame:0,viewportSize:[1,1],logicalViewportSize:[1,1],aspect:1,pointer:[.5,.5],pointerActive:0};function X7(e,t={}){let s=t.systemSchema??MD,r={...kD,...t.systemInitial??{}},o=new Map,n=new Map,i={},d=s,l=!1,c=new Set,_=new Map,p=new Map,f={markScalar(A){c.add(A)},markArray(A,E){if(E==="all"){_.set(A,"all");return}let M=_.get(A);M!=="all"&&(M?M.add(E):_.set(A,new Set([E])))}},h;function g(A,E){let M={},$={};for(let L of E){let B=AD(L.name),D=L.transform?L.transform(L.initial):L.initial,G=L.cpu??typeof D=="string";if(L.transform&&!G&&!PD(D)&&!s3.has(L.transform)&&(s3.add(L.transform),console.warn(`[gpu] prop transform for "${L.name}" returned a non-packable value \u2014 the uniform field will be NaN. A prop transform must return a number, boolean, vector, or array (or a string for cpu-only props).`,D)),G){M[L.name]=new An({sink:f,gpuPath:[A,B],initial:D,transform:L.transform,cpu:!0});continue}let I=D&&typeof D=="object"&&"data"in D?D.data:D,X=L.schema??N7(I);if($[B]=X,ED(X)){let H=new bc({sink:f,gpuPath:[A,B],schema:X,initial:L.initial,transform:L.transform});M[L.name]=H}else{let H=new An({sink:f,gpuPath:[A,B],schema:X,initial:D,transform:L.transform});M[L.name]=H}}return{handles:M,struct:(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(Ct($),"struct")}}function x(){if(h)throw new Error("[uniformStore] cannot register fields after finalize()")}function T(){let A={};for(let[E,M]of n)A[E]=S(M,E);return A._sys=S(i,"_sys"),A}function S(A,E){let M={};for(let $ of Object.values(A))$ instanceof bc?M[$.gpuPath[1]]=$._wholeArray():$.cpu||(M[$.gpuPath[1]]=$._patchValue());if(E)for(let $ of p.get(E)??[])M[$]=0;return M}return{get schema(){return h?.schema},get layout(){return h?.layout},get buffer(){return h?.buffer},get bindGroup(){return h?.bindGroup},get systemHandles(){return i},defineNode(A,E){x();let M=yn(A),{handles:$,struct:L}=g(M,E);return o.set(M,L),n.set(M,$),$},defineSystem(A){if(x(),A&&A.length){let E=g("_sys",A);i=E.handles,d=E.struct}else{let E=g("_sys",Object.entries(s.propTypes).map(([M,$])=>({name:M,schema:$,initial:r[M]??0})));i=E.handles,d=E.struct}return l=!0,i},finalize(){if(h)return h;l||this.defineSystem();let A=(I,X)=>{if(Object.keys(X.propTypes).length===0){let Q=["_pad0","_pad1","_pad2","_pad3"];return p.set(I,Q),Ct(Object.fromEntries(Q.map(de=>[de,a])))}let H=X,ee=[];for(;cb(H)%16!==0;){let Q=`_pad${ee.length}`;for(;Q in X.propTypes;)Q=`_${Q}`;ee.push(Q);let de={...X.propTypes};for(let Ee of ee)de[Ee]=a;H=(globalThis.__TYPEGPU_AUTONAME__??(Ee=>Ee))(Ct(de),"padded")}return ee.length&&p.set(I,ee),H},E={};for(let[I,X]of o)E[I]=A(I,X);E._sys=A("_sys",d);let M=(globalThis.__TYPEGPU_AUTONAME__??(I=>I))(Ct(E),"combined"),$=cb(M),L=e.device?.limits?.maxUniformBufferBindingSize,B=typeof L=="number"&&L>0?L:65536;if($>B)throw new od("limit-exceeded",`[gpu] this composition needs ${$} bytes of uniform data across ${o.size} nodes, but the device caps a uniform binding at ${B} bytes. Reduce the number of layers.`);let D=(globalThis.__TYPEGPU_AUTONAME__??(I=>I))(e.createBuffer(M).$usage("uniform"),"buffer"),G=(globalThis.__TYPEGPU_AUTONAME__??(I=>I))(y.bindGroupLayout({[v_]:{uniform:M}}),"layout");return h={schema:M,layout:G,buffer:D,bindGroup:e.createBindGroup(G,{[v_]:D}),uniformEntryKey:v_},this.writeAll(),h},flush(){if(!h||c.size===0&&_.size===0)return;let A={},E=M=>A[M]??={};for(let M of c)E(M.gpuPath[0])[M.gpuPath[1]]=M._patchValue();for(let[M,$]of _){let L=E(M.gpuPath[0]);if($==="all")L[M.gpuPath[1]]=M._wholeArray();else if(M.componentsPerElement===1){let B={};for(let D of $)B[D]=M._elementAt(D);L[M.gpuPath[1]]=B}else{let B=M.componentsPerElement,D={};for(let G of $){let I=Math.floor(G/B);D[I]=M._elementTuple(I)}L[M.gpuPath[1]]=D}}h.buffer.patch(A),c.clear(),_.clear()},writeAll(){h&&(h.buffer.write(T()),c.clear(),_.clear())},gpuAccessor(A,E="layout"){return`${E}.$.${v_}.${A.accessorPath}`},destroy(){h?.buffer.destroy?.(),h=void 0,o.clear(),n.clear(),c.clear(),_.clear(),p.clear()}}}function H7(e,t){if(e instanceof bc){Array.isArray(t)&&(e.array=t);return}e.setFromRaw(t)}var Qe=Math.PI/180;180/Math.PI;var ko=Math.PI,Et=Math.PI*2,_o=Et,dp=Math.PI/2,Za=Math.sqrt(3),$D=2.3999632297286535,lo=y.fn([Y,oe],Y)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return t<<Y(s)|t>>Y(__tsover_sub(oe(32),s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"k"}],body:[0,[[10,[1,[1,"x","<<",[6,"d.u32",["k"]]],"|",[1,"x",">>",[6,"d.u32",[[1,[6,"d.i32",[[5,"32"]]],"-","k"]]]]]]]]},externals:{"d.u32":()=>Y,"d.i32":()=>oe}})&&e.f)({})),Fd=y.fn([Y,Y,Y],Y)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=t,n=s,i=r;return i=i^n,i=__tsover_sub(i,lo(n,oe(14))),o=o^i,o=__tsover_sub(o,lo(i,oe(11))),n=n^o,n=__tsover_sub(n,lo(o,oe(25))),i=i^n,i=__tsover_sub(i,lo(n,oe(16))),o=o^i,o=__tsover_sub(o,lo(i,oe(4))),n=n^o,n=__tsover_sub(n,lo(o,oe(14))),i=i^n,i=__tsover_sub(i,lo(n,oe(24))),i}),{v:2,name:void 0,ast:{params:[{type:"i",name:"a0"},{type:"i",name:"b0"},{type:"i",name:"c0"}],body:[0,[[12,"a","a0"],[12,"b","b0"],[12,"c","c0"],[2,"c","=",[1,"c","^","b"]],[2,"c","=",[1,"c","-",[6,"mxRotl32",["b",[6,"d.i32",[[5,"14"]]]]]]],[2,"a","=",[1,"a","^","c"]],[2,"a","=",[1,"a","-",[6,"mxRotl32",["c",[6,"d.i32",[[5,"11"]]]]]]],[2,"b","=",[1,"b","^","a"]],[2,"b","=",[1,"b","-",[6,"mxRotl32",["a",[6,"d.i32",[[5,"25"]]]]]]],[2,"c","=",[1,"c","^","b"]],[2,"c","=",[1,"c","-",[6,"mxRotl32",["b",[6,"d.i32",[[5,"16"]]]]]]],[2,"a","=",[1,"a","^","c"]],[2,"a","=",[1,"a","-",[6,"mxRotl32",["c",[6,"d.i32",[[5,"4"]]]]]]],[2,"b","=",[1,"b","^","a"]],[2,"b","=",[1,"b","-",[6,"mxRotl32",["a",[6,"d.i32",[[5,"14"]]]]]]],[2,"c","=",[1,"c","^","b"]],[2,"c","=",[1,"c","-",[6,"mxRotl32",["b",[6,"d.i32",[[5,"24"]]]]]]],[10,"c"]]]},externals:{mxRotl32:()=>lo,"d.i32":()=>oe}})&&e.f)({})),Bd=3735928559,Gl=y.fn([oe,oe],Y)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Y(2),o=__tsover_add(__tsover_add(Y(Bd),r<<Y(2)),Y(13));return Fd(__tsover_add(o,Y(t)),__tsover_add(o,Y(s)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[13,"len",[6,"d.u32",[[5,"2"]]]],[13,"seed",[1,[1,[6,"d.u32",["DEADBEEF"]],"+",[1,"len","<<",[6,"d.u32",[[5,"2"]]]]],"+",[6,"d.u32",[[5,"13"]]]]],[13,"a",[1,"seed","+",[6,"d.u32",["x"]]]],[13,"b",[1,"seed","+",[6,"d.u32",["y"]]]],[10,[6,"mxBjfinal",["a","b","seed"]]]]]},externals:{"d.u32":()=>Y,DEADBEEF:()=>Bd,mxBjfinal:()=>Fd}})&&e.f)({})),Yo=y.fn([oe,oe,oe],Y)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Y(3),n=__tsover_add(__tsover_add(Y(Bd),o<<Y(2)),Y(13));return Fd(__tsover_add(n,Y(t)),__tsover_add(n,Y(s)),__tsover_add(n,Y(r)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"z"}],body:[0,[[13,"len",[6,"d.u32",[[5,"3"]]]],[13,"seed",[1,[1,[6,"d.u32",["DEADBEEF"]],"+",[1,"len","<<",[6,"d.u32",[[5,"2"]]]]],"+",[6,"d.u32",[[5,"13"]]]]],[13,"a",[1,"seed","+",[6,"d.u32",["x"]]]],[13,"b",[1,"seed","+",[6,"d.u32",["y"]]]],[13,"c",[1,"seed","+",[6,"d.u32",["z"]]]],[10,[6,"mxBjfinal",["a","b","c"]]]]]},externals:{"d.u32":()=>Y,DEADBEEF:()=>Bd,mxBjfinal:()=>Fd}})&&e.f)({})),h_=y.fn([oe,oe,oe,oe],Y)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Y(4),i=__tsover_add(__tsover_add(Y(Bd),n<<Y(2)),Y(13)),d=__tsover_add(i,Y(t)),l=__tsover_add(i,Y(s)),c=__tsover_add(i,Y(r));return d=__tsover_sub(d,c),d=d^lo(c,oe(4)),c=__tsover_add(c,l),l=__tsover_sub(l,d),l=l^lo(d,oe(6)),d=__tsover_add(d,c),c=__tsover_sub(c,l),c=c^lo(l,oe(8)),l=__tsover_add(l,d),d=__tsover_sub(d,c),d=d^lo(c,oe(16)),c=__tsover_add(c,l),l=__tsover_sub(l,d),l=l^lo(d,oe(19)),d=__tsover_add(d,c),c=__tsover_sub(c,l),c=c^lo(l,oe(4)),l=__tsover_add(l,d),d=__tsover_add(d,Y(o)),Fd(d,l,c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"z"},{type:"i",name:"xx"}],body:[0,[[13,"len",[6,"d.u32",[[5,"4"]]]],[13,"seed",[1,[1,[6,"d.u32",["DEADBEEF"]],"+",[1,"len","<<",[6,"d.u32",[[5,"2"]]]]],"+",[6,"d.u32",[[5,"13"]]]]],[12,"a",[1,"seed","+",[6,"d.u32",["x"]]]],[12,"b",[1,"seed","+",[6,"d.u32",["y"]]]],[12,"c",[1,"seed","+",[6,"d.u32",["z"]]]],[2,"a","=",[1,"a","-","c"]],[2,"a","=",[1,"a","^",[6,"mxRotl32",["c",[6,"d.i32",[[5,"4"]]]]]]],[2,"c","=",[1,"c","+","b"]],[2,"b","=",[1,"b","-","a"]],[2,"b","=",[1,"b","^",[6,"mxRotl32",["a",[6,"d.i32",[[5,"6"]]]]]]],[2,"a","=",[1,"a","+","c"]],[2,"c","=",[1,"c","-","b"]],[2,"c","=",[1,"c","^",[6,"mxRotl32",["b",[6,"d.i32",[[5,"8"]]]]]]],[2,"b","=",[1,"b","+","a"]],[2,"a","=",[1,"a","-","c"]],[2,"a","=",[1,"a","^",[6,"mxRotl32",["c",[6,"d.i32",[[5,"16"]]]]]]],[2,"c","=",[1,"c","+","b"]],[2,"b","=",[1,"b","-","a"]],[2,"b","=",[1,"b","^",[6,"mxRotl32",["a",[6,"d.i32",[[5,"19"]]]]]]],[2,"a","=",[1,"a","+","c"]],[2,"c","=",[1,"c","-","b"]],[2,"c","=",[1,"c","^",[6,"mxRotl32",["b",[6,"d.i32",[[5,"4"]]]]]]],[2,"b","=",[1,"b","+","a"]],[2,"a","=",[1,"a","+",[6,"d.u32",["xx"]]]],[10,[6,"mxBjfinal",["a","b","c"]]]]]},externals:{"d.u32":()=>Y,DEADBEEF:()=>Bd,mxRotl32:()=>lo,"d.i32":()=>oe,mxBjfinal:()=>Fd}})&&e.f)({})),Ba=y.fn([Y],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(a(t),a(4294967295))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"bits"}],body:[0,[[10,[1,[6,"d.f32",["bits"]],"/",[6,"d.f32",[[5,"4294967295"]]]]]]]},externals:{"d.f32":()=>a}})&&e.f)({})),ki=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(__tsover_mul(__tsover_mul(t,t),t),__tsover_add(__tsover_mul(t,__tsover_sub(__tsover_mul(t,6),15)),10))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[1,[1,[1,"t","*","t"],"*","t"],"*",[1,[1,"t","*",[1,[1,"t","*",[5,"6"]],"-",[5,"15"]]],"+",[5,"10"]]]]]]},externals:{}})&&e.f)({})),Dl=y.fn([Y,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=t&Y(7),n=F(r,s,o<Y(4)),i=__tsover_mul(2,F(s,r,o<Y(4))),d=F(n,-n,(o&Y(1))!==Y(0)),l=F(i,-i,(o&Y(2))!==Y(0));return __tsover_add(d,l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"hash"},{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[13,"h",[1,"hash","&",[6,"d.u32",[[5,"7"]]]]],[13,"u",[6,"std.select",["y","x",[1,"h","<",[6,"d.u32",[[5,"4"]]]]]]],[13,"v",[1,[5,"2"],"*",[6,"std.select",["x","y",[1,"h","<",[6,"d.u32",[[5,"4"]]]]]]]],[13,"uu",[6,"std.select",["u",[4,"-","u"],[1,[1,"h","&",[6,"d.u32",[[5,"1"]]]],"!==",[6,"d.u32",[[5,"0"]]]]]]],[13,"vv",[6,"std.select",["v",[4,"-","v"],[1,[1,"h","&",[6,"d.u32",[[5,"2"]]]],"!==",[6,"d.u32",[[5,"0"]]]]]]],[10,[1,"uu","+","vv"]]]]},externals:{"d.u32":()=>Y,"std.select":()=>F}})&&e.f)({})),sa=y.fn([Y,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=t&Y(15),i=F(r,s,n<Y(8)),d=F(F(o,s,n===Y(12)||n===Y(14)),r,n<Y(4)),l=F(i,-i,(n&Y(1))!==Y(0)),c=F(d,-d,(n&Y(2))!==Y(0));return __tsover_add(l,c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"hash"},{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"z"}],body:[0,[[13,"h",[1,"hash","&",[6,"d.u32",[[5,"15"]]]]],[13,"u",[6,"std.select",["y","x",[1,"h","<",[6,"d.u32",[[5,"8"]]]]]]],[13,"inner",[6,"std.select",["z","x",[3,[1,"h","===",[6,"d.u32",[[5,"12"]]]],"||",[1,"h","===",[6,"d.u32",[[5,"14"]]]]]]]],[13,"v",[6,"std.select",["inner","y",[1,"h","<",[6,"d.u32",[[5,"4"]]]]]]],[13,"uu",[6,"std.select",["u",[4,"-","u"],[1,[1,"h","&",[6,"d.u32",[[5,"1"]]]],"!==",[6,"d.u32",[[5,"0"]]]]]]],[13,"vv",[6,"std.select",["v",[4,"-","v"],[1,[1,"h","&",[6,"d.u32",[[5,"2"]]]],"!==",[6,"d.u32",[[5,"0"]]]]]]],[10,[1,"uu","+","vv"]]]]},externals:{"d.u32":()=>Y,"std.select":()=>F}})&&e.f)({})),r3=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(.6616,t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[1,[5,"0.6616"],"*","v"]]]]},externals:{}})&&e.f)({})),o3=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(.982,t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[1,[5,"0.982"],"*","v"]]]]},externals:{}})&&e.f)({})),n3=y.fn([a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_sub(1,n);return __tsover_add(__tsover_mul(__tsover_sub(1,i),__tsover_add(__tsover_mul(t,d),__tsover_mul(s,n))),__tsover_mul(i,__tsover_add(__tsover_mul(r,d),__tsover_mul(o,n))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v0"},{type:"i",name:"v1"},{type:"i",name:"v2"},{type:"i",name:"v3"},{type:"i",name:"s"},{type:"i",name:"t"}],body:[0,[[13,"s1",[1,[5,"1"],"-","s"]],[10,[1,[1,[1,[5,"1"],"-","t"],"*",[1,[1,"v0","*","s1"],"+",[1,"v1","*","s"]]],"+",[1,"t","*",[1,[1,"v2","*","s1"],"+",[1,"v3","*","s"]]]]]]]},externals:{}})&&e.f)({})),a3=y.fn([a,a,a,a,a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p)=>{"use gpu";let f=__tsover_sub(1,c),h=__tsover_sub(1,_),g=__tsover_sub(1,p);return __tsover_add(__tsover_mul(g,__tsover_add(__tsover_mul(h,__tsover_add(__tsover_mul(t,f),__tsover_mul(s,c))),__tsover_mul(_,__tsover_add(__tsover_mul(r,f),__tsover_mul(o,c))))),__tsover_mul(p,__tsover_add(__tsover_mul(h,__tsover_add(__tsover_mul(n,f),__tsover_mul(i,c))),__tsover_mul(_,__tsover_add(__tsover_mul(d,f),__tsover_mul(l,c))))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v0"},{type:"i",name:"v1"},{type:"i",name:"v2"},{type:"i",name:"v3"},{type:"i",name:"v4"},{type:"i",name:"v5"},{type:"i",name:"v6"},{type:"i",name:"v7"},{type:"i",name:"s"},{type:"i",name:"t"},{type:"i",name:"r"}],body:[0,[[13,"s1",[1,[5,"1"],"-","s"]],[13,"t1",[1,[5,"1"],"-","t"]],[13,"r1",[1,[5,"1"],"-","r"]],[10,[1,[1,"r1","*",[1,[1,"t1","*",[1,[1,"v0","*","s1"],"+",[1,"v1","*","s"]]],"+",[1,"t","*",[1,[1,"v2","*","s1"],"+",[1,"v3","*","s"]]]]],"+",[1,"r","*",[1,[1,"t1","*",[1,[1,"v4","*","s1"],"+",[1,"v5","*","s"]]],"+",[1,"t","*",[1,[1,"v6","*","s1"],"+",[1,"v7","*","s"]]]]]]]]]},externals:{}})&&e.f)({})),i3=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=oe(K(t.x)),r=oe(K(t.y)),o=__tsover_sub(t.x,a(s)),n=__tsover_sub(t.y,a(r)),i=ki(o),d=ki(n);return r3(n3(Dl(Gl(s,r),o,n),Dl(Gl(__tsover_add(s,oe(1)),r),__tsover_sub(o,1),n),Dl(Gl(s,__tsover_add(r,oe(1))),o,__tsover_sub(n,1)),Dl(Gl(__tsover_add(s,oe(1)),__tsover_add(r,oe(1))),__tsover_sub(o,1),__tsover_sub(n,1)),i,d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"X",[6,"d.i32",[[6,"std.floor",[[7,"p","x"]]]]]],[13,"Y",[6,"d.i32",[[6,"std.floor",[[7,"p","y"]]]]]],[13,"fx",[1,[7,"p","x"],"-",[6,"d.f32",["X"]]]],[13,"fy",[1,[7,"p","y"],"-",[6,"d.f32",["Y"]]]],[13,"u",[6,"mxFade",["fx"]]],[13,"v",[6,"mxFade",["fy"]]],[13,"result",[6,"mxBilerp",[[6,"mxGradientFloat2",[[6,"mxHashInt1",["X","Y"]],"fx","fy"]],[6,"mxGradientFloat2",[[6,"mxHashInt1",[[1,"X","+",[6,"d.i32",[[5,"1"]]]],"Y"]],[1,"fx","-",[5,"1"]],"fy"]],[6,"mxGradientFloat2",[[6,"mxHashInt1",["X",[1,"Y","+",[6,"d.i32",[[5,"1"]]]]]],"fx",[1,"fy","-",[5,"1"]]]],[6,"mxGradientFloat2",[[6,"mxHashInt1",[[1,"X","+",[6,"d.i32",[[5,"1"]]]],[1,"Y","+",[6,"d.i32",[[5,"1"]]]]]],[1,"fx","-",[5,"1"]],[1,"fy","-",[5,"1"]]]],"u","v"]]],[10,[6,"mxGradientScale2d",["result"]]]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,"d.f32":()=>a,mxFade:()=>ki,mxBilerp:()=>n3,mxGradientFloat2:()=>Dl,mxHashInt1:()=>Gl,mxGradientScale2d:()=>r3}})&&e.f)({})),d3=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=oe(K(t.x)),r=oe(K(t.y)),o=oe(K(t.z)),n=__tsover_sub(t.x,a(s)),i=__tsover_sub(t.y,a(r)),d=__tsover_sub(t.z,a(o)),l=ki(n),c=ki(i),_=ki(d);return o3(a3(sa(Yo(s,r,o),n,i,d),sa(Yo(__tsover_add(s,oe(1)),r,o),__tsover_sub(n,1),i,d),sa(Yo(s,__tsover_add(r,oe(1)),o),n,__tsover_sub(i,1),d),sa(Yo(__tsover_add(s,oe(1)),__tsover_add(r,oe(1)),o),__tsover_sub(n,1),__tsover_sub(i,1),d),sa(Yo(s,r,__tsover_add(o,oe(1))),n,i,__tsover_sub(d,1)),sa(Yo(__tsover_add(s,oe(1)),r,__tsover_add(o,oe(1))),__tsover_sub(n,1),i,__tsover_sub(d,1)),sa(Yo(s,__tsover_add(r,oe(1)),__tsover_add(o,oe(1))),n,__tsover_sub(i,1),__tsover_sub(d,1)),sa(Yo(__tsover_add(s,oe(1)),__tsover_add(r,oe(1)),__tsover_add(o,oe(1))),__tsover_sub(n,1),__tsover_sub(i,1),__tsover_sub(d,1)),l,c,_))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"X",[6,"d.i32",[[6,"std.floor",[[7,"p","x"]]]]]],[13,"Y",[6,"d.i32",[[6,"std.floor",[[7,"p","y"]]]]]],[13,"Z",[6,"d.i32",[[6,"std.floor",[[7,"p","z"]]]]]],[13,"fx",[1,[7,"p","x"],"-",[6,"d.f32",["X"]]]],[13,"fy",[1,[7,"p","y"],"-",[6,"d.f32",["Y"]]]],[13,"fz",[1,[7,"p","z"],"-",[6,"d.f32",["Z"]]]],[13,"u",[6,"mxFade",["fx"]]],[13,"v",[6,"mxFade",["fy"]]],[13,"w",[6,"mxFade",["fz"]]],[13,"result",[6,"mxTrilerp",[[6,"mxGradientFloat3",[[6,"mxHashInt2",["X","Y","Z"]],"fx","fy","fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,"d.i32",[[5,"1"]]]],"Y","Z"]],[1,"fx","-",[5,"1"]],"fy","fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",["X",[1,"Y","+",[6,"d.i32",[[5,"1"]]]],"Z"]],"fx",[1,"fy","-",[5,"1"]],"fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,"d.i32",[[5,"1"]]]],[1,"Y","+",[6,"d.i32",[[5,"1"]]]],"Z"]],[1,"fx","-",[5,"1"]],[1,"fy","-",[5,"1"]],"fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",["X","Y",[1,"Z","+",[6,"d.i32",[[5,"1"]]]]]],"fx","fy",[1,"fz","-",[5,"1"]]]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,"d.i32",[[5,"1"]]]],"Y",[1,"Z","+",[6,"d.i32",[[5,"1"]]]]]],[1,"fx","-",[5,"1"]],"fy",[1,"fz","-",[5,"1"]]]],[6,"mxGradientFloat3",[[6,"mxHashInt2",["X",[1,"Y","+",[6,"d.i32",[[5,"1"]]]],[1,"Z","+",[6,"d.i32",[[5,"1"]]]]]],"fx",[1,"fy","-",[5,"1"]],[1,"fz","-",[5,"1"]]]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,"d.i32",[[5,"1"]]]],[1,"Y","+",[6,"d.i32",[[5,"1"]]]],[1,"Z","+",[6,"d.i32",[[5,"1"]]]]]],[1,"fx","-",[5,"1"]],[1,"fy","-",[5,"1"]],[1,"fz","-",[5,"1"]]]],"u","v","w"]]],[10,[6,"mxGradientScale3d",["result"]]]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,"d.f32":()=>a,mxFade:()=>ki,mxTrilerp:()=>a3,mxGradientFloat3:()=>sa,mxHashInt2:()=>Yo,mxGradientScale3d:()=>o3}})&&e.f)({})),l3=y.fn([u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=oe(K(t.x)),r=oe(K(t.y));return v(Ba(Yo(s,r,oe(0))),Ba(Yo(s,r,oe(1))),Ba(Yo(s,r,oe(2))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"ix",[6,"d.i32",[[6,"std.floor",[[7,"p","x"]]]]]],[13,"iy",[6,"d.i32",[[6,"std.floor",[[7,"p","y"]]]]]],[10,[6,"d.vec3f",[[6,"mxBitsTo01",[[6,"mxHashInt2",["ix","iy",[6,"d.i32",[[5,"0"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt2",["ix","iy",[6,"d.i32",[[5,"1"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt2",["ix","iy",[6,"d.i32",[[5,"2"]]]]]]]]]]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,"d.vec3f":()=>v,mxBitsTo01:()=>Ba,mxHashInt2:()=>Yo}})&&e.f)({})),c3=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=oe(K(t.x)),r=oe(K(t.y)),o=oe(K(t.z));return v(Ba(h_(s,r,o,oe(0))),Ba(h_(s,r,o,oe(1))),Ba(h_(s,r,o,oe(2))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"ix",[6,"d.i32",[[6,"std.floor",[[7,"p","x"]]]]]],[13,"iy",[6,"d.i32",[[6,"std.floor",[[7,"p","y"]]]]]],[13,"iz",[6,"d.i32",[[6,"std.floor",[[7,"p","z"]]]]]],[10,[6,"d.vec3f",[[6,"mxBitsTo01",[[6,"mxHashInt3",["ix","iy","iz",[6,"d.i32",[[5,"0"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt3",["ix","iy","iz",[6,"d.i32",[[5,"1"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt3",["ix","iy","iz",[6,"d.i32",[[5,"2"]]]]]]]]]]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,"d.vec3f":()=>v,mxBitsTo01:()=>Ba,mxHashInt3:()=>h_}})&&e.f)({})),u3=y.fn([u,oe,oe,oe,oe,a,oe],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=l3(u(a(__tsover_add(s,o)),a(__tsover_add(r,n)))),c=u(l.x,l.y);c=ua(Kr(It(c,.5),i),.5);let _=It(ua(u(a(s),a(r)),c),t);return d===oe(2)?__tsover_add(W(_.x),W(_.y)):d===oe(3)?w(W(_.x),W(_.y)):le(_,_)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"xoff"},{type:"i",name:"yoff"},{type:"i",name:"jitter"},{type:"i",name:"metric"}],body:[0,[[13,"tmp",[6,"mxCellNoiseVec3_2d",[[6,"d.vec2f",[[6,"d.f32",[[1,"x","+","xoff"]]],[6,"d.f32",[[1,"y","+","yoff"]]]]]]]],[12,"off",[6,"d.vec2f",[[7,"tmp","x"],[7,"tmp","y"]]]],[2,"off","=",[6,"std.add",[[6,"std.mul",[[6,"std.sub",["off",[5,"0.5"]]],"jitter"]],[5,"0.5"]]]],[13,"cellpos",[6,"std.add",[[6,"d.vec2f",[[6,"d.f32",["x"]],[6,"d.f32",["y"]]]],"off"]]],[13,"diff",[6,"std.sub",["cellpos","p"]]],[11,[1,"metric","===",[6,"d.i32",[[5,"2"]]]],[0,[[10,[1,[6,"std.abs",[[7,"diff","x"]]],"+",[6,"std.abs",[[7,"diff","y"]]]]]]]],[11,[1,"metric","===",[6,"d.i32",[[5,"3"]]]],[0,[[10,[6,"std.max",[[6,"std.abs",[[7,"diff","x"]]],[6,"std.abs",[[7,"diff","y"]]]]]]]]],[10,[6,"std.dot",["diff","diff"]]]]]},externals:{mxCellNoiseVec3_2d:()=>l3,"d.vec2f":()=>u,"d.f32":()=>a,"std.add":()=>ua,"std.mul":()=>Kr,"std.sub":()=>It,"d.i32":()=>oe,"std.abs":()=>W,"std.max":()=>w,"std.dot":()=>le}})&&e.f)({})),_3=y.fn([v,oe,oe,oe,oe,oe,oe,a,oe],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c)=>{"use gpu";let _=c3(v(a(__tsover_add(s,n)),a(__tsover_add(r,i)),a(__tsover_add(o,d))));_=ua(Kr(It(_,.5),l),.5);let p=It(ua(v(a(s),a(r),a(o)),_),t);return c===oe(2)?__tsover_add(__tsover_add(W(p.x),W(p.y)),W(p.z)):c===oe(3)?w(w(W(p.x),W(p.y)),W(p.z)):le(p,p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"z"},{type:"i",name:"xoff"},{type:"i",name:"yoff"},{type:"i",name:"zoff"},{type:"i",name:"jitter"},{type:"i",name:"metric"}],body:[0,[[12,"off",[6,"mxCellNoiseVec3_3d",[[6,"d.vec3f",[[6,"d.f32",[[1,"x","+","xoff"]]],[6,"d.f32",[[1,"y","+","yoff"]]],[6,"d.f32",[[1,"z","+","zoff"]]]]]]]],[2,"off","=",[6,"std.add",[[6,"std.mul",[[6,"std.sub",["off",[5,"0.5"]]],"jitter"]],[5,"0.5"]]]],[13,"cellpos",[6,"std.add",[[6,"d.vec3f",[[6,"d.f32",["x"]],[6,"d.f32",["y"]],[6,"d.f32",["z"]]]],"off"]]],[13,"diff",[6,"std.sub",["cellpos","p"]]],[11,[1,"metric","===",[6,"d.i32",[[5,"2"]]]],[0,[[10,[1,[1,[6,"std.abs",[[7,"diff","x"]]],"+",[6,"std.abs",[[7,"diff","y"]]]],"+",[6,"std.abs",[[7,"diff","z"]]]]]]]],[11,[1,"metric","===",[6,"d.i32",[[5,"3"]]]],[0,[[10,[6,"std.max",[[6,"std.max",[[6,"std.abs",[[7,"diff","x"]]],[6,"std.abs",[[7,"diff","y"]]]]],[6,"std.abs",[[7,"diff","z"]]]]]]]]],[10,[6,"std.dot",["diff","diff"]]]]]},externals:{mxCellNoiseVec3_3d:()=>c3,"d.vec3f":()=>v,"d.f32":()=>a,"std.add":()=>ua,"std.mul":()=>Kr,"std.sub":()=>It,"d.i32":()=>oe,"std.abs":()=>W,"std.max":()=>w,"std.dot":()=>le}})&&e.f)({})),p3=y.fn([u,a,oe],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=oe(K(t.x)),n=oe(K(t.y)),i=u(__tsover_sub(t.x,a(o)),__tsover_sub(t.y,a(n))),d=a(1e6);for(let l=-1;l<=1;l++)for(let c=-1;c<=1;c++){let _=u3(i,l,c,o,n,s,r);d=ue(d,_)}return r===oe(0)&&(d=$e(d)),d}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"},{type:"i",name:"metric"}],body:[0,[[13,"X",[6,"d.i32",[[6,"std.floor",[[7,"p","x"]]]]]],[13,"Y",[6,"d.i32",[[6,"std.floor",[[7,"p","y"]]]]]],[13,"localpos",[6,"d.vec2f",[[1,[7,"p","x"],"-",[6,"d.f32",["X"]]],[1,[7,"p","y"],"-",[6,"d.f32",["Y"]]]]]],[12,"sqdist",[6,"d.f32",[[5,"1000000"]]]],[14,[12,"x",[4,"-",[5,"1"]]],[1,"x","<=",[5,"1"]],[102,"++","x"],[0,[[14,[12,"y",[4,"-",[5,"1"]]],[1,"y","<=",[5,"1"]],[102,"++","y"],[0,[[13,"dist",[6,"mxWorleyDistance2d",["localpos","x","y","X","Y","jitter","metric"]]],[2,"sqdist","=",[6,"std.min",["sqdist","dist"]]]]]]]]],[11,[1,"metric","===",[6,"d.i32",[[5,"0"]]]],[0,[[2,"sqdist","=",[6,"std.sqrt",["sqdist"]]]]]],[10,"sqdist"]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,"d.vec2f":()=>u,"d.f32":()=>a,mxWorleyDistance2d:()=>u3,"std.min":()=>ue,"std.sqrt":()=>$e}})&&e.f)({})),m3=y.fn([v,a,oe],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=oe(K(t.x)),n=oe(K(t.y)),i=oe(K(t.z)),d=v(__tsover_sub(t.x,a(o)),__tsover_sub(t.y,a(n)),__tsover_sub(t.z,a(i))),l=a(1e6);for(let c=-1;c<=1;c++)for(let _=-1;_<=1;_++)for(let p=-1;p<=1;p++){let f=_3(d,c,_,p,o,n,i,s,r);l=ue(l,f)}return r===oe(0)&&(l=$e(l)),l}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"},{type:"i",name:"metric"}],body:[0,[[13,"X",[6,"d.i32",[[6,"std.floor",[[7,"p","x"]]]]]],[13,"Y",[6,"d.i32",[[6,"std.floor",[[7,"p","y"]]]]]],[13,"Z",[6,"d.i32",[[6,"std.floor",[[7,"p","z"]]]]]],[13,"localpos",[6,"d.vec3f",[[1,[7,"p","x"],"-",[6,"d.f32",["X"]]],[1,[7,"p","y"],"-",[6,"d.f32",["Y"]]],[1,[7,"p","z"],"-",[6,"d.f32",["Z"]]]]]],[12,"sqdist",[6,"d.f32",[[5,"1000000"]]]],[14,[12,"x",[4,"-",[5,"1"]]],[1,"x","<=",[5,"1"]],[102,"++","x"],[0,[[14,[12,"y",[4,"-",[5,"1"]]],[1,"y","<=",[5,"1"]],[102,"++","y"],[0,[[14,[12,"z",[4,"-",[5,"1"]]],[1,"z","<=",[5,"1"]],[102,"++","z"],[0,[[13,"dist",[6,"mxWorleyDistance3d",["localpos","x","y","z","X","Y","Z","jitter","metric"]]],[2,"sqdist","=",[6,"std.min",["sqdist","dist"]]]]]]]]]]]],[11,[1,"metric","===",[6,"d.i32",[[5,"0"]]]],[0,[[2,"sqdist","=",[6,"std.sqrt",["sqdist"]]]]]],[10,"sqdist"]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,"d.vec3f":()=>v,"d.f32":()=>a,mxWorleyDistance3d:()=>_3,"std.min":()=>ue,"std.sqrt":()=>$e}})&&e.f)({})),$i=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return i3(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"mxPerlinNoiseFloat2",["p"]]]]]},externals:{mxPerlinNoiseFloat2:()=>i3}})&&e.f)({})),Po=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return d3(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"mxPerlinNoiseFloat3",["p"]]]]]},externals:{mxPerlinNoiseFloat3:()=>d3}})&&e.f)({})),fy=y.fn([u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return p3(t,s,oe(1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"}],body:[0,[[10,[6,"mxWorleyNoiseFloat2",["p","jitter",[6,"d.i32",[[5,"1"]]]]]]]]},externals:{mxWorleyNoiseFloat2:()=>p3,"d.i32":()=>oe}})&&e.f)({}));y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return m3(t,s,oe(1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"}],body:[0,[[10,[6,"mxWorleyNoiseFloat3",["p","jitter",[6,"d.i32",[[5,"1"]]]]]]]]},externals:{mxWorleyNoiseFloat3:()=>m3,"d.i32":()=>oe}})&&e.f)({}));var f3=y.fn([a],Y)("(x: f32) -> u32 { return bitcast<u32>(x); }"),Id=y.fn([u],He)("(v: vec2f) -> vec2u { return bitcast<vec2u>(v); }"),lp=y.fn([v],Gi)("(v: vec3f) -> vec3u { return bitcast<vec3u>(v); }"),dn=a(4294967295),fr=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=f3(__tsover_mul(t,3141592653));return __tsover_div(a(__tsover_mul(__tsover_mul(s,s),Y(3141592653))),dn)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint1",[[1,"p","*",[5,"3141592653"]]]]],[10,[1,[6,"d.f32",[[1,[1,"u","*","u"],"*",[6,"d.u32",[[5,"3141592653"]]]]]],"/","U32"]]]]},externals:{floatBitsToUint1:()=>f3,"d.f32":()=>a,"d.u32":()=>Y,U32:()=>dn}})&&e.f)({})),ms=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Id(t.mul(u(141421356,2718281828)));return __tsover_div(a(__tsover_mul(s.x^s.y,Y(3141592653))),dn)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint2",[[6,[7,"p","mul"],[[6,"d.vec2f",[[5,"141421356"],[5,"2718281828"]]]]]]]],[10,[1,[6,"d.f32",[[1,[1,[7,"u","x"],"^",[7,"u","y"]],"*",[6,"d.u32",[[5,"3141592653"]]]]]],"/","U32"]]]]},externals:{floatBitsToUint2:()=>Id,"d.vec2f":()=>u,"d.f32":()=>a,"d.u32":()=>Y,U32:()=>dn}})&&e.f)({})),Dr=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Id(t.mul(u(141421356,2718281828))),r=s.x^s.y,o=Kr(He(r,r),He(3141592653,1618033988));return u(a(o.x),a(o.y)).div(dn)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint2",[[6,[7,"p","mul"],[[6,"d.vec2f",[[5,"141421356"],[5,"2718281828"]]]]]]]],[13,"h",[1,[7,"u","x"],"^",[7,"u","y"]]],[13,"prod",[6,"std.mul",[[6,"d.vec2u",["h","h"]],[6,"d.vec2u",[[5,"3141592653"],[5,"1618033988"]]]]]],[10,[6,[7,[6,"d.vec2f",[[6,"d.f32",[[7,"prod","x"]]],[6,"d.f32",[[7,"prod","y"]]]]],"div"],["U32"]]]]]},externals:{floatBitsToUint2:()=>Id,"d.vec2f":()=>u,"std.mul":()=>Kr,"d.vec2u":()=>He,"d.f32":()=>a,U32:()=>dn}})&&e.f)({})),MO=y.fn([u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Id(t.mul(u(141421356,2718281828))),r=s.x^s.y,o=Kr(Gi(r,r,r),Gi(1732050807,2645751311,3316624790));return v(a(o.x),a(o.y),a(o.z)).div(dn)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint2",[[6,[7,"p","mul"],[[6,"d.vec2f",[[5,"141421356"],[5,"2718281828"]]]]]]]],[13,"h",[1,[7,"u","x"],"^",[7,"u","y"]]],[13,"prod",[6,"std.mul",[[6,"d.vec3u",["h","h","h"]],[6,"d.vec3u",[[5,"1732050807"],[5,"2645751311"],[5,"3316624790"]]]]]],[10,[6,[7,[6,"d.vec3f",[[6,"d.f32",[[7,"prod","x"]]],[6,"d.f32",[[7,"prod","y"]]],[6,"d.f32",[[7,"prod","z"]]]]],"div"],["U32"]]]]]},externals:{floatBitsToUint2:()=>Id,"d.vec2f":()=>u,"std.mul":()=>Kr,"d.vec3u":()=>Gi,"d.vec3f":()=>v,"d.f32":()=>a,U32:()=>dn}})&&e.f)({})),kO=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=lp(t.mul(v(141421356,2718281828,1618033988)));return __tsover_div(a(__tsover_mul(s.x^s.y^s.z,Y(3141592653))),dn)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint3",[[6,[7,"p","mul"],[[6,"d.vec3f",[[5,"141421356"],[5,"2718281828"],[5,"1618033988"]]]]]]]],[10,[1,[6,"d.f32",[[1,[1,[1,[7,"u","x"],"^",[7,"u","y"]],"^",[7,"u","z"]],"*",[6,"d.u32",[[5,"3141592653"]]]]]],"/","U32"]]]]},externals:{floatBitsToUint3:()=>lp,"d.vec3f":()=>v,"d.f32":()=>a,"d.u32":()=>Y,U32:()=>dn}})&&e.f)({})),v3=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=lp(t.mul(v(141421356,2718281828,1618033988))),r=s.x^s.y^s.z,o=Kr(Gi(r,r,r),Gi(1732050807,2645751311,3316624790));return v(a(o.x),a(o.y),a(o.z)).div(dn)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint3",[[6,[7,"p","mul"],[[6,"d.vec3f",[[5,"141421356"],[5,"2718281828"],[5,"1618033988"]]]]]]]],[13,"h",[1,[1,[7,"u","x"],"^",[7,"u","y"]],"^",[7,"u","z"]]],[13,"prod",[6,"std.mul",[[6,"d.vec3u",["h","h","h"]],[6,"d.vec3u",[[5,"1732050807"],[5,"2645751311"],[5,"3316624790"]]]]]],[10,[6,[7,[6,"d.vec3f",[[6,"d.f32",[[7,"prod","x"]]],[6,"d.f32",[[7,"prod","y"]]],[6,"d.f32",[[7,"prod","z"]]]]],"div"],["U32"]]]]]},externals:{floatBitsToUint3:()=>lp,"d.vec3f":()=>v,"std.mul":()=>Kr,"d.vec3u":()=>Gi,"d.f32":()=>a,U32:()=>dn}})&&e.f)({})),uo=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=t.sub(s),o=r.mul(r).mul(It(3,r.mul(2)));return Z(Z(ms(s),ms(s.add(u(1,0))),o.x),Z(ms(s.add(u(0,1))),ms(s.add(u(1,1))),o.x),o.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f0",[6,[7,"p","sub"],["i"]]],[13,"f",[6,[7,[6,[7,"f0","mul"],["f0"]],"mul"],[[6,"std.sub",[[5,"3"],[6,[7,"f0","mul"],[[5,"2"]]]]]]]],[10,[6,"std.mix",[[6,"std.mix",[[6,"hash12",["i"]],[6,"hash12",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"1"],[5,"0"]]]]]]],[7,"f","x"]]],[6,"std.mix",[[6,"hash12",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"0"],[5,"1"]]]]]]],[6,"hash12",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]]],[7,"f","x"]]],[7,"f","y"]]]]]]},externals:{"std.floor":()=>K,"std.sub":()=>It,"std.mix":()=>Z,hash12:()=>ms,"d.vec2f":()=>u}})&&e.f)({})),Ll=y.fn([u,u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(r,o);return le(Rs(Dr(t.add(n)).sub(.5)),s.sub(n))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"i"},{type:"i",name:"f"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[13,"o",[6,"d.vec2f",["ox","oy"]]],[10,[6,"std.dot",[[6,"std.normalize",[[6,[7,[6,"hash22",[[6,[7,"i","add"],["o"]]]],"sub"],[[5,"0.5"]]]]],[6,[7,"f","sub"],["o"]]]]]]]},externals:{"d.vec2f":()=>u,"std.dot":()=>le,"std.normalize":()=>Rs,hash22:()=>Dr}})&&e.f)({})),Si=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=t.sub(s),o=r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10)),n=Ll(s,r,0,0),i=Ll(s,r,1,0),d=Ll(s,r,0,1),l=Ll(s,r,1,1);return __tsover_add(__tsover_mul(Z(Z(n,i,o.x),Z(d,l,o.x),o.y),.7),.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f",[6,[7,"p","sub"],["i"]]],[13,"u",[6,[7,[6,[7,[6,[7,"f","mul"],["f"]],"mul"],["f"]],"mul"],[[6,[7,[6,[7,"f","mul"],[[6,[7,[6,[7,"f","mul"],[[5,"6"]]],"sub"],[[5,"15"]]]]],"add"],[[5,"10"]]]]]],[13,"a",[6,"perlinGrad2",["i","f",[5,"0"],[5,"0"]]]],[13,"b",[6,"perlinGrad2",["i","f",[5,"1"],[5,"0"]]]],[13,"c",[6,"perlinGrad2",["i","f",[5,"0"],[5,"1"]]]],[13,"dd",[6,"perlinGrad2",["i","f",[5,"1"],[5,"1"]]]],[10,[1,[1,[6,"std.mix",[[6,"std.mix",["a","b",[7,"u","x"]]],[6,"std.mix",["c","dd",[7,"u","x"]]],[7,"u","y"]]],"*",[5,"0.7"]],"+",[5,"0.5"]]]]]},externals:{"std.floor":()=>K,perlinGrad2:()=>Ll,"std.mix":()=>Z}})&&e.f)({})),qn=y.fn([u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=ve(t),o=r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10)),n=r.mul(r).mul(r.mul(r.sub(2)).add(1)).mul(30),i=Dr(s.add(u(0,0))).mul(2).sub(1),d=Dr(s.add(u(1,0))).mul(2).sub(1),l=Dr(s.add(u(0,1))).mul(2).sub(1),c=Dr(s.add(u(1,1))).mul(2).sub(1),_=le(i,r.sub(u(0,0))),p=le(d,r.sub(u(1,0))),f=le(l,r.sub(u(0,1))),h=le(c,r.sub(u(1,1))),g=__tsover_add(__tsover_sub(__tsover_sub(_,p),f),h),x=__tsover_add(__tsover_add(__tsover_add(_,__tsover_mul(o.x,__tsover_sub(p,_))),__tsover_mul(o.y,__tsover_sub(f,_))),__tsover_mul(__tsover_mul(o.x,o.y),g)),T=i.add(d.sub(i).mul(o.x)).add(l.sub(i).mul(o.y)).add(i.sub(d).sub(l).add(c).mul(__tsover_mul(o.x,o.y))).add(n.mul(u(o.y,o.x).mul(g).add(u(p,f)).sub(_)));return v(x,T.x,T.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f",[6,"std.fract",["p"]]],[13,"u",[6,[7,[6,[7,[6,[7,"f","mul"],["f"]],"mul"],["f"]],"mul"],[[6,[7,[6,[7,"f","mul"],[[6,[7,[6,[7,"f","mul"],[[5,"6"]]],"sub"],[[5,"15"]]]]],"add"],[[5,"10"]]]]]],[13,"du",[6,[7,[6,[7,[6,[7,"f","mul"],["f"]],"mul"],[[6,[7,[6,[7,"f","mul"],[[6,[7,"f","sub"],[[5,"2"]]]]],"add"],[[5,"1"]]]]],"mul"],[[5,"30"]]]],[13,"ga",[6,[7,[6,[7,[6,"hash22",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"0"],[5,"0"]]]]]]],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]],[13,"gb",[6,[7,[6,[7,[6,"hash22",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"1"],[5,"0"]]]]]]],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]],[13,"gc",[6,[7,[6,[7,[6,"hash22",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"0"],[5,"1"]]]]]]],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]],[13,"gd",[6,[7,[6,[7,[6,"hash22",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]]],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]],[13,"va",[6,"std.dot",["ga",[6,[7,"f","sub"],[[6,"d.vec2f",[[5,"0"],[5,"0"]]]]]]]],[13,"vb",[6,"std.dot",["gb",[6,[7,"f","sub"],[[6,"d.vec2f",[[5,"1"],[5,"0"]]]]]]]],[13,"vc",[6,"std.dot",["gc",[6,[7,"f","sub"],[[6,"d.vec2f",[[5,"0"],[5,"1"]]]]]]]],[13,"vd",[6,"std.dot",["gd",[6,[7,"f","sub"],[[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]]]],[13,"k",[1,[1,[1,"va","-","vb"],"-","vc"],"+","vd"]],[13,"value",[1,[1,[1,"va","+",[1,[7,"u","x"],"*",[1,"vb","-","va"]]],"+",[1,[7,"u","y"],"*",[1,"vc","-","va"]]],"+",[1,[1,[7,"u","x"],"*",[7,"u","y"]],"*","k"]]],[13,"deriv",[6,[7,[6,[7,[6,[7,[6,[7,"ga","add"],[[6,[7,[6,[7,"gb","sub"],["ga"]],"mul"],[[7,"u","x"]]]]],"add"],[[6,[7,[6,[7,"gc","sub"],["ga"]],"mul"],[[7,"u","y"]]]]],"add"],[[6,[7,[6,[7,[6,[7,[6,[7,"ga","sub"],["gb"]],"sub"],["gc"]],"add"],["gd"]],"mul"],[[1,[7,"u","x"],"*",[7,"u","y"]]]]]],"add"],[[6,[7,"du","mul"],[[6,[7,[6,[7,[6,[7,[6,"d.vec2f",[[7,"u","y"],[7,"u","x"]]],"mul"],["k"]],"add"],[[6,"d.vec2f",["vb","vc"]]]],"sub"],["va"]]]]]]],[10,[6,"d.vec3f",["value",[7,"deriv","x"],[7,"deriv","y"]]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,hash22:()=>Dr,"d.vec2f":()=>u,"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),Fl=y.fn([b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.mul(t.mul(34).add(1));return s.sub(K(s.div(289)).mul(289))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[13,"xx",[6,[7,"x","mul"],[[6,[7,[6,[7,"x","mul"],[[5,"34"]]],"add"],[[5,"1"]]]]]],[10,[6,[7,"xx","sub"],[[6,[7,[6,"std.floor",[[6,[7,"xx","div"],[[5,"289"]]]]],"mul"],[[5,"289"]]]]]]]]},externals:{"std.floor":()=>K}})&&e.f)({})),CD=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=t.sub(s),o=r.mul(r).mul(It(3,r.mul(2))),n=b(s.x,s.x,s.y,s.y).add(b(0,1,0,1)),i=Fl(b(n.x,n.y,n.x,n.y)),d=Fl(b(i.x,i.y,i.x,i.y).add(b(n.z,n.z,n.w,n.w))).add(b(s.z,s.z,s.z,s.z)),l=Fl(d),c=Fl(d.add(1)),_=Z(ve(l.mul(.02439024)),ve(c.mul(.02439024)),b(o.z)),p=Z(u(_.x,_.z),u(_.y,_.w),u(o.x));return Z(p.x,p.y,o.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"a",[6,"std.floor",["p"]]],[13,"d0",[6,[7,"p","sub"],["a"]]],[13,"sd",[6,[7,[6,[7,"d0","mul"],["d0"]],"mul"],[[6,"std.sub",[[5,"3"],[6,[7,"d0","mul"],[[5,"2"]]]]]]]],[13,"b",[6,[7,[6,"d.vec4f",[[7,"a","x"],[7,"a","x"],[7,"a","y"],[7,"a","y"]]],"add"],[[6,"d.vec4f",[[5,"0"],[5,"1"],[5,"0"],[5,"1"]]]]]],[13,"k1",[6,"perm4",[[6,"d.vec4f",[[7,"b","x"],[7,"b","y"],[7,"b","x"],[7,"b","y"]]]]]],[13,"k2",[6,[7,[6,"perm4",[[6,[7,[6,"d.vec4f",[[7,"k1","x"],[7,"k1","y"],[7,"k1","x"],[7,"k1","y"]]],"add"],[[6,"d.vec4f",[[7,"b","z"],[7,"b","z"],[7,"b","w"],[7,"b","w"]]]]]]],"add"],[[6,"d.vec4f",[[7,"a","z"],[7,"a","z"],[7,"a","z"],[7,"a","z"]]]]]],[13,"k3",[6,"perm4",["k2"]]],[13,"k4",[6,"perm4",[[6,[7,"k2","add"],[[5,"1"]]]]]],[13,"o1",[6,"std.fract",[[6,[7,"k3","mul"],[[5,"0.02439024"]]]]]],[13,"o2",[6,"std.fract",[[6,[7,"k4","mul"],[[5,"0.02439024"]]]]]],[13,"o3",[6,"std.mix",["o1","o2",[6,"d.vec4f",[[7,"sd","z"]]]]]],[13,"o4",[6,"std.mix",[[6,"d.vec2f",[[7,"o3","x"],[7,"o3","z"]]],[6,"d.vec2f",[[7,"o3","y"],[7,"o3","w"]]],[6,"d.vec2f",[[7,"sd","x"]]]]]],[10,[6,"std.mix",[[7,"o4","x"],[7,"o4","y"],[7,"sd","y"]]]]]]},externals:{"std.floor":()=>K,"std.sub":()=>It,"d.vec4f":()=>b,perm4:()=>Fl,"std.fract":()=>ve,"std.mix":()=>Z,"d.vec2f":()=>u}})&&e.f)({})),ra=y.fn([v,v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=v(r,o,n);return le(s.sub(i),Rs(v3(t.add(i)).sub(.5)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"i"},{type:"i",name:"f"},{type:"i",name:"ox"},{type:"i",name:"oy"},{type:"i",name:"oz"}],body:[0,[[13,"o",[6,"d.vec3f",["ox","oy","oz"]]],[10,[6,"std.dot",[[6,[7,"f","sub"],["o"]],[6,"std.normalize",[[6,[7,[6,"hash33",[[6,[7,"i","add"],["o"]]]],"sub"],[[5,"0.5"]]]]]]]]]]},externals:{"d.vec3f":()=>v,"std.dot":()=>le,"std.normalize":()=>Rs,hash33:()=>v3}})&&e.f)({})),yd=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=t.sub(s),o=r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10)),n=ra(s,r,0,0,0),i=ra(s,r,1,0,0),d=ra(s,r,0,1,0),l=ra(s,r,1,1,0),c=ra(s,r,0,0,1),_=ra(s,r,1,0,1),p=ra(s,r,0,1,1),f=ra(s,r,1,1,1),h=Z(Z(n,i,o.x),Z(d,l,o.x),o.y),g=Z(Z(c,_,o.x),Z(p,f,o.x),o.y);return __tsover_add(__tsover_mul(Z(h,g,o.z),.7),.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f",[6,[7,"p","sub"],["i"]]],[13,"u",[6,[7,[6,[7,[6,[7,"f","mul"],["f"]],"mul"],["f"]],"mul"],[[6,[7,[6,[7,"f","mul"],[[6,[7,[6,[7,"f","mul"],[[5,"6"]]],"sub"],[[5,"15"]]]]],"add"],[[5,"10"]]]]]],[13,"a0",[6,"perlinGrad3",["i","f",[5,"0"],[5,"0"],[5,"0"]]]],[13,"b0",[6,"perlinGrad3",["i","f",[5,"1"],[5,"0"],[5,"0"]]]],[13,"c0",[6,"perlinGrad3",["i","f",[5,"0"],[5,"1"],[5,"0"]]]],[13,"d0",[6,"perlinGrad3",["i","f",[5,"1"],[5,"1"],[5,"0"]]]],[13,"a1",[6,"perlinGrad3",["i","f",[5,"0"],[5,"0"],[5,"1"]]]],[13,"b1",[6,"perlinGrad3",["i","f",[5,"1"],[5,"0"],[5,"1"]]]],[13,"c1",[6,"perlinGrad3",["i","f",[5,"0"],[5,"1"],[5,"1"]]]],[13,"d1",[6,"perlinGrad3",["i","f",[5,"1"],[5,"1"],[5,"1"]]]],[13,"z0",[6,"std.mix",[[6,"std.mix",["a0","b0",[7,"u","x"]]],[6,"std.mix",["c0","d0",[7,"u","x"]]],[7,"u","y"]]]],[13,"z1",[6,"std.mix",[[6,"std.mix",["a1","b1",[7,"u","x"]]],[6,"std.mix",["c1","d1",[7,"u","x"]]],[7,"u","y"]]]],[10,[1,[1,[6,"std.mix",["z0","z1",[7,"u","z"]]],"*",[5,"0.7"]],"+",[5,"0.5"]]]]]},externals:{"std.floor":()=>K,perlinGrad3:()=>ra,"std.mix":()=>Z}})&&e.f)({})),Bl=y.fn([u,u,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return O(__tsover_add(__tsover_mul(r,le(t,Dr(s.add(u(n,i))))),o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"i"},{type:"i",name:"freq"},{type:"i",name:"phase"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,"std.sin",[[1,[1,"freq","*",[6,"std.dot",["p",[6,"hash22",[[6,[7,"i","add"],[[6,"d.vec2f",["ox","oy"]]]]]]]]],"+","phase"]]]]]]},externals:{"std.sin":()=>O,"std.dot":()=>le,hash22:()=>Dr,"d.vec2f":()=>u}})&&e.f)({})),RD=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=K(t),n=t.sub(o),i=n.mul(n).mul(It(3,n.mul(2)));return Z(Z(Bl(t,o,s,r,0,0),Bl(t,o,s,r,1,0),i.x),Z(Bl(t,o,s,r,0,1),Bl(t,o,s,r,1,1),i.x),i.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"freq"},{type:"i",name:"phase"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f0",[6,[7,"p","sub"],["i"]]],[13,"f",[6,[7,[6,[7,"f0","mul"],["f0"]],"mul"],[[6,"std.sub",[[5,"3"],[6,[7,"f0","mul"],[[5,"2"]]]]]]]],[10,[6,"std.mix",[[6,"std.mix",[[6,"gaborGrain",["p","i","freq","phase",[5,"0"],[5,"0"]]],[6,"gaborGrain",["p","i","freq","phase",[5,"1"],[5,"0"]]],[7,"f","x"]]],[6,"std.mix",[[6,"gaborGrain",["p","i","freq","phase",[5,"0"],[5,"1"]]],[6,"gaborGrain",["p","i","freq","phase",[5,"1"],[5,"1"]]],[7,"f","x"]]],[7,"f","y"]]]]]]},externals:{"std.floor":()=>K,"std.sub":()=>It,"std.mix":()=>Z,gaborGrain:()=>Bl}})&&e.f)({})),Yd=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=u(Si(t.add(u(.1,0))),Si(t.add(u(0,.1)))),r=u(Si(t.sub(u(.1,0))),Si(t.sub(u(0,.1))));return s.sub(r).div(.1).mul(.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"a",[6,"d.vec2f",[[6,"perlin12",[[6,[7,"p","add"],[[6,"d.vec2f",[[5,"0.1"],[5,"0"]]]]]]],[6,"perlin12",[[6,[7,"p","add"],[[6,"d.vec2f",[[5,"0"],[5,"0.1"]]]]]]]]]],[13,"b",[6,"d.vec2f",[[6,"perlin12",[[6,[7,"p","sub"],[[6,"d.vec2f",[[5,"0.1"],[5,"0"]]]]]]],[6,"perlin12",[[6,[7,"p","sub"],[[6,"d.vec2f",[[5,"0"],[5,"0.1"]]]]]]]]]],[10,[6,[7,[6,[7,[6,[7,"a","sub"],["b"]],"div"],[[5,"0.1"]]],"mul"],[[5,"0.5"]]]]]]},externals:{"d.vec2f":()=>u,perlin12:()=>Si}})&&e.f)({})),h3=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.add(u(.1,0)),o=t.add(u(0,.1)),n=t.sub(u(.1,0)),i=t.sub(u(0,.1)),d=u(yd(v(r.x,r.y,s)),yd(v(o.x,o.y,s))),l=u(yd(v(n.x,n.y,s)),yd(v(i.x,i.y,s)));return d.sub(l).div(.1).mul(.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"z"}],body:[0,[[13,"pax",[6,[7,"p","add"],[[6,"d.vec2f",[[5,"0.1"],[5,"0"]]]]]],[13,"pay",[6,[7,"p","add"],[[6,"d.vec2f",[[5,"0"],[5,"0.1"]]]]]],[13,"pbx",[6,[7,"p","sub"],[[6,"d.vec2f",[[5,"0.1"],[5,"0"]]]]]],[13,"pby",[6,[7,"p","sub"],[[6,"d.vec2f",[[5,"0"],[5,"0.1"]]]]]],[13,"a",[6,"d.vec2f",[[6,"perlin13",[[6,"d.vec3f",[[7,"pax","x"],[7,"pax","y"],"z"]]]],[6,"perlin13",[[6,"d.vec3f",[[7,"pay","x"],[7,"pay","y"],"z"]]]]]]],[13,"b",[6,"d.vec2f",[[6,"perlin13",[[6,"d.vec3f",[[7,"pbx","x"],[7,"pbx","y"],"z"]]]],[6,"perlin13",[[6,"d.vec3f",[[7,"pby","x"],[7,"pby","y"],"z"]]]]]]],[10,[6,[7,[6,[7,[6,[7,"a","sub"],["b"]],"div"],[[5,"0.1"]]],"mul"],[[5,"0.5"]]]]]]},externals:{"d.vec2f":()=>u,perlin13:()=>yd,"d.vec3f":()=>v}})&&e.f)({})),$O=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=a(0),n=a(1),i=a(0),d=u(t.x,t.y);for(let l=0;l<4;l++){let c=d.mul(n),_=ve(K(c).mul(u(123.34,233.53)));_=_.add(le(_,_.add(23.234)));let p=__tsover_mul(ve(__tsover_mul(_.x,_.y)),1e3),f=ve(c).sub(.5),h=J(p),g=O(p),x=u(__tsover_sub(__tsover_mul(f.x,h),__tsover_mul(f.y,g)),__tsover_add(__tsover_mul(f.x,g),__tsover_mul(f.y,h)));o=__tsover_add(o,__tsover_div(__tsover_mul(O(__tsover_add(__tsover_mul(x.x,10),s)),ce(.25,0,le(x,x))),n)),d=u(__tsover_sub(__tsover_mul(d.x,.54),__tsover_mul(d.y,.84)),__tsover_add(__tsover_mul(d.x,.84),__tsover_mul(d.y,.54))).add(a(l)),i=__tsover_add(i,__tsover_div(1,n)),n=__tsover_mul(n,r)}return __tsover_div(o,i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"phase"},{type:"i",name:"scale"}],body:[0,[[12,"dsum",[6,"d.f32",[[5,"0"]]]],[12,"s",[6,"d.f32",[[5,"1"]]]],[12,"m",[6,"d.f32",[[5,"0"]]]],[12,"pp",[6,"d.vec2f",[[7,"p","x"],[7,"p","y"]]]],[14,[12,"idx",[5,"0"]],[1,"idx","<",[5,"4"]],[102,"++","idx"],[0,[[13,"q0",[6,[7,"pp","mul"],["s"]]],[12,"g",[6,"std.fract",[[6,[7,[6,"std.floor",["q0"]],"mul"],[[6,"d.vec2f",[[5,"123.34"],[5,"233.53"]]]]]]]],[2,"g","=",[6,[7,"g","add"],[[6,"std.dot",["g",[6,[7,"g","add"],[[5,"23.234"]]]]]]]],[13,"a",[1,[6,"std.fract",[[1,[7,"g","x"],"*",[7,"g","y"]]]],"*",[5,"1000"]]],[13,"qc",[6,[7,[6,"std.fract",["q0"]],"sub"],[[5,"0.5"]]]],[13,"ca",[6,"std.cos",["a"]]],[13,"sa",[6,"std.sin",["a"]]],[13,"q",[6,"d.vec2f",[[1,[1,[7,"qc","x"],"*","ca"],"-",[1,[7,"qc","y"],"*","sa"]],[1,[1,[7,"qc","x"],"*","sa"],"+",[1,[7,"qc","y"],"*","ca"]]]]],[2,"dsum","=",[1,"dsum","+",[1,[1,[6,"std.sin",[[1,[1,[7,"q","x"],"*",[5,"10"]],"+","phase"]]],"*",[6,"std.smoothstep",[[5,"0.25"],[5,"0"],[6,"std.dot",["q","q"]]]]],"/","s"]]],[2,"pp","=",[6,[7,[6,"d.vec2f",[[1,[1,[7,"pp","x"],"*",[5,"0.54"]],"-",[1,[7,"pp","y"],"*",[5,"0.84"]]],[1,[1,[7,"pp","x"],"*",[5,"0.84"]],"+",[1,[7,"pp","y"],"*",[5,"0.54"]]]]],"add"],[[6,"d.f32",["idx"]]]]],[2,"m","=",[1,"m","+",[1,[5,"1"],"/","s"]]],[2,"s","=",[1,"s","*","scale"]]]]],[10,[1,"dsum","/","m"]]]]},externals:{"d.f32":()=>a,"d.vec2f":()=>u,"std.fract":()=>ve,"std.floor":()=>K,"std.dot":()=>le,"std.cos":()=>J,"std.sin":()=>O,"std.smoothstep":()=>ce}})&&e.f)({})),CO=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=a(0);for(let r=0;r<9;r++){let o=a(r),n=K(__tsover_div(o,3)),i=__tsover_sub(o,__tsover_mul(n,3));s=__tsover_add(s,ms(t.add(u(__tsover_sub(i,1),__tsover_sub(n,1)))))}return __tsover_add(__tsover_mul(.9,__tsover_sub(__tsover_mul(1.125,ms(t)),__tsover_div(s,8))),.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"v",[6,"d.f32",[[5,"0"]]]],[14,[12,"k",[5,"0"]],[1,"k","<",[5,"9"]],[102,"++","k"],[0,[[13,"fk",[6,"d.f32",["k"]]],[13,"row",[6,"std.floor",[[1,"fk","/",[5,"3"]]]]],[13,"col",[1,"fk","-",[1,"row","*",[5,"3"]]]],[2,"v","=",[1,"v","+",[6,"hash12",[[6,[7,"p","add"],[[6,"d.vec2f",[[1,"col","-",[5,"1"]],[1,"row","-",[5,"1"]]]]]]]]]]]]],[10,[1,[1,[5,"0.9"],"*",[1,[1,[5,"1.125"],"*",[6,"hash12",["p"]]],"-",[1,"v","/",[5,"8"]]]],"+",[5,"0.5"]]]]]},externals:{"d.f32":()=>a,"std.floor":()=>K,hash12:()=>ms,"d.vec2f":()=>u}})&&e.f)({})),y3=y.fn([tp],oe)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=oe(0),r=t.x,o=t.y;for(let n=256;n>0;n=n>>1){let i=oe(n),d=F(oe(0),oe(1),(r&i)>0),l=F(oe(0),oe(1),(o&i)>0),c=d<<1|d^l;s=__tsover_add(s,__tsover_mul(__tsover_mul(i,i),c));let _=__tsover_sub(oe(1),l),p=__tsover_mul(r^o,_)^__tsover_mul(oe(__tsover_sub(n,1)),d&_);r=r^p,o=o^p}return s}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"i",[6,"d.i32",[[5,"0"]]]],[12,"px",[7,"p","x"]],[12,"py",[7,"p","y"]],[14,[12,"s",[5,"256"]],[1,"s",">",[5,"0"]],[2,"s","=",[1,"s",">>",[5,"1"]]],[0,[[13,"S",[6,"d.i32",["s"]]],[13,"rx",[6,"std.select",[[6,"d.i32",[[5,"0"]]],[6,"d.i32",[[5,"1"]]],[1,[1,"px","&","S"],">",[5,"0"]]]]],[13,"ry",[6,"std.select",[[6,"d.i32",[[5,"0"]]],[6,"d.i32",[[5,"1"]]],[1,[1,"py","&","S"],">",[5,"0"]]]]],[13,"dq",[1,[1,"rx","<<",[5,"1"]],"|",[1,"rx","^","ry"]]],[2,"i","=",[1,"i","+",[1,[1,"S","*","S"],"*","dq"]]],[13,"oneMinusRy",[1,[6,"d.i32",[[5,"1"]]],"-","ry"]],[13,"rhs",[1,[1,[1,"px","^","py"],"*","oneMinusRy"],"^",[1,[6,"d.i32",[[1,"s","-",[5,"1"]]]],"*",[1,"rx","&","oneMinusRy"]]]],[2,"px","=",[1,"px","^","rhs"]],[2,"py","=",[1,"py","^","rhs"]]]]],[10,"i"]]]},externals:{"d.i32":()=>oe,"std.select":()=>F}})&&e.f)({}));y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=y3(tp(oe(t.x),oe(t.y)))&oe(262143);return ve(__tsover_mul(.6180339887498949,a(s)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"idx",[1,[6,"hilbertEncode512",[[6,"d.vec2i",[[6,"d.i32",[[7,"p","x"]]],[6,"d.i32",[[7,"p","y"]]]]]]],"&",[6,"d.i32",[[5,"262143"]]]]],[10,[6,"std.fract",[[1,[5,"0.6180339887498949"],"*",[6,"d.f32",["idx"]]]]]]]]},externals:{hilbertEncode512:()=>y3,"d.vec2i":()=>tp,"d.i32":()=>oe,"std.fract":()=>ve,"d.f32":()=>a}})&&e.f)({}));var g3=y.fn([u,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=K(t),i=t.sub(n),d=K(__tsover_mul(O(__tsover_mul(n.x,51024)),3104)),l=K(__tsover_mul(O(__tsover_mul(n.y,1324)),554)),c=__tsover_add(d,l),_=i.mul(2).sub(1);_=_.mul(J(c)).add(u(-_.y,_.x).mul(O(c))),_=_.add(O(__tsover_sub(d,l))),_=_.mul(.5).add(.5);let p=__tsover_mul(__tsover_add(O(__tsover_add(d,__tsover_mul(_.y,Math.PI))),O(__tsover_add(l,__tsover_mul(_.y,Math.PI)))),.2),f=W(__tsover_add(__tsover_sub(_.x,.5),p));f=__tsover_sub(.5,__tsover_mul(f,__tsover_div(s,o))),f=__tsover_mul(ce(-2,__tsover_add(__tsover_mul(As(f),1.5),16),f),12);let h=__tsover_add(__tsover_mul(O(__tsover_add(r,__tsover_mul(ms(n),6.2831853))),.5),.5);return __tsover_mul(__tsover_mul(f,_.y),h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"f"},{type:"i",name:"time"},{type:"i",name:"thickness"}],body:[0,[[13,"seed0",[6,"std.floor",["uv"]]],[13,"lo",[6,[7,"uv","sub"],["seed0"]]],[13,"sx",[6,"std.floor",[[1,[6,"std.sin",[[1,[7,"seed0","x"],"*",[5,"51024"]]]],"*",[5,"3104"]]]]],[13,"sy",[6,"std.floor",[[1,[6,"std.sin",[[1,[7,"seed0","y"],"*",[5,"1324"]]]],"*",[5,"554"]]]]],[13,"ss",[1,"sx","+","sy"]],[12,"u2",[6,[7,[6,[7,"lo","mul"],[[5,"2"]]],"sub"],[[5,"1"]]]],[2,"u2","=",[6,[7,[6,[7,"u2","mul"],[[6,"std.cos",["ss"]]]],"add"],[[6,[7,[6,"d.vec2f",[[4,"-",[7,"u2","y"]],[7,"u2","x"]]],"mul"],[[6,"std.sin",["ss"]]]]]]],[2,"u2","=",[6,[7,"u2","add"],[[6,"std.sin",[[1,"sx","-","sy"]]]]]],[2,"u2","=",[6,[7,[6,[7,"u2","mul"],[[5,"0.5"]]],"add"],[[5,"0.5"]]]],[13,"WAVYNESS",[5,"0.2"]],[13,"sVal",[1,[1,[6,"std.sin",[[1,"sx","+",[1,[7,"u2","y"],"*","Math.PI"]]]],"+",[6,"std.sin",[[1,"sy","+",[1,[7,"u2","y"],"*","Math.PI"]]]]],"*","WAVYNESS"]],[12,"x",[6,"std.abs",[[1,[1,[7,"u2","x"],"-",[5,"0.5"]],"+","sVal"]]]],[2,"x","=",[1,[5,"0.5"],"-",[1,"x","*",[1,"f","/","thickness"]]]],[2,"x","=",[1,[6,"std.smoothstep",[[4,"-",[5,"2"]],[1,[1,[6,"std.fwidth",["x"]],"*",[5,"1.5"]],"+",[5,"16"]],"x"]],"*",[5,"12"]]],[13,"pulse",[1,[1,[6,"std.sin",[[1,"time","+",[1,[6,"hash12",["seed0"]],"*",[5,"6.2831853"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[10,[1,[1,"x","*",[7,"u2","y"]],"*","pulse"]]]]},externals:{"std.floor":()=>K,"std.sin":()=>O,"std.cos":()=>J,"d.vec2f":()=>u,"Math.PI":()=>Math.PI,"std.abs":()=>W,"std.smoothstep":()=>ce,"std.fwidth":()=>As,hash12:()=>ms}})&&e.f)({})),RO=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=a(0),n=u(t.x,t.y),i=__tsover_div(1,te(As(t)));for(let d=0;d<8;d++)o=w(o,g3(n,i,s,r)),n=u(__tsover_add(n.x,__tsover_mul(n.y,.7)),__tsover_add(__tsover_mul(n.x,-.7),n.y)).sub(12.31);return o}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"time"},{type:"i",name:"thickness"}],body:[0,[[12,"scratches",[6,"d.f32",[[5,"0"]]]],[12,"p",[6,"d.vec2f",[[7,"uv","x"],[7,"uv","y"]]]],[13,"f",[1,[5,"1"],"/",[6,"std.length",[[6,"std.fwidth",["uv"]]]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"8"]],[102,"++","i"],[0,[[2,"scratches","=",[6,"std.max",["scratches",[6,"scratchOne",["p","f","time","thickness"]]]]],[2,"p","=",[6,[7,[6,"d.vec2f",[[1,[7,"p","x"],"+",[1,[7,"p","y"],"*",[5,"0.7"]]],[1,[1,[7,"p","x"],"*",[4,"-",[5,"0.7"]]],"+",[7,"p","y"]]]],"sub"],[[5,"12.31"]]]]]]],[10,"scratches"]]]},externals:{"d.f32":()=>a,"d.vec2f":()=>u,"std.length":()=>te,"std.fwidth":()=>As,"std.max":()=>w,scratchOne:()=>g3}})&&e.f)({})),x3=y.fn([u,oe],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=a(0),o=a(0),n=a(1),i=u(t.x,t.y);for(let d=0;d<s;d++)r=__tsover_add(r,__tsover_mul(n,Si(i))),o=__tsover_add(o,n),n=__tsover_mul(n,.5),i=i.mul(2);return __tsover_div(r,o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"octaves"}],body:[0,[[12,"s",[6,"d.f32",[[5,"0"]]]],[12,"m",[6,"d.f32",[[5,"0"]]]],[12,"a",[6,"d.f32",[[5,"1"]]]],[12,"pp",[6,"d.vec2f",[[7,"p","x"],[7,"p","y"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","octaves"],[102,"++","i"],[0,[[2,"s","=",[1,"s","+",[1,"a","*",[6,"perlin12",["pp"]]]]],[2,"m","=",[1,"m","+","a"]],[2,"a","=",[1,"a","*",[5,"0.5"]]],[2,"pp","=",[6,[7,"pp","mul"],[[5,"2"]]]]]]],[10,[1,"s","/","m"]]]]},externals:{"d.f32":()=>a,"d.vec2f":()=>u,perlin12:()=>Si}})&&e.f)({})),b3=y.fn([u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=v(0,0,0),r=a(1),o=u(t.x,t.y);for(let n=0;n<6;n++)s=s.add(qn(o).mul(r)),r=__tsover_mul(r,.5),o=o.mul(2);return s}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"s",[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]]],[12,"a",[6,"d.f32",[[5,"1"]]]],[12,"pp",[6,"d.vec2f",[[7,"p","x"],[7,"p","y"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"6"]],[102,"++","i"],[0,[[2,"s","=",[6,[7,"s","add"],[[6,[7,[6,"perlin12d",["pp"]],"mul"],["a"]]]]],[2,"a","=",[1,"a","*",[5,"0.5"]]],[2,"pp","=",[6,[7,"pp","mul"],[[5,"2"]]]]]]],[10,"s"]]]},externals:{"d.vec3f":()=>v,"d.f32":()=>a,"d.vec2f":()=>u,perlin12d:()=>qn}})&&e.f)({})),UO=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=b3(t);return x3(t.add(u(s.y,s.z).mul(.4)),oe(6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"fs",[6,"fbmStone",["p"]]],[10,[6,"fbmPerlin",[[6,[7,"p","add"],[[6,[7,[6,"d.vec2f",[[7,"fs","y"],[7,"fs","z"]]],"mul"],[[5,"0.4"]]]]],[6,"d.i32",[[5,"6"]]]]]]]]},externals:{fbmStone:()=>b3,fbmPerlin:()=>x3,"d.vec2f":()=>u,"d.i32":()=>oe}})&&e.f)({})),w3=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=u(0,0),r=a(0),o=a(1),n=u(t.x,t.y);for(let i=0;i<6;i++)s=s.add(Yd(n).mul(o)),r=__tsover_add(r,o),o=__tsover_mul(o,.5),n=n.mul(2);return s.div(r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"s",[6,"d.vec2f",[[5,"0"],[5,"0"]]]],[12,"m",[6,"d.f32",[[5,"0"]]]],[12,"a",[6,"d.f32",[[5,"1"]]]],[12,"pp",[6,"d.vec2f",[[7,"p","x"],[7,"p","y"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"6"]],[102,"++","i"],[0,[[2,"s","=",[6,[7,"s","add"],[[6,[7,[6,"curl22",["pp"]],"mul"],["a"]]]]],[2,"m","=",[1,"m","+","a"]],[2,"a","=",[1,"a","*",[5,"0.5"]]],[2,"pp","=",[6,[7,"pp","mul"],[[5,"2"]]]]]]],[10,[6,[7,"s","div"],["m"]]]]]},externals:{"d.vec2f":()=>u,"d.f32":()=>a,curl22:()=>Yd}})&&e.f)({})),zO=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=w3(t);return w(W(s.x),W(s.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"n",[6,"fbmWool",["p"]]],[10,[6,"std.max",[[6,"std.abs",[[7,"n","x"]]],[6,"std.abs",[[7,"n","y"]]]]]]]]},externals:{fbmWool:()=>w3,"std.max":()=>w,"std.abs":()=>W}})&&e.f)({})),T3=y.fn([u,u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=u(-s.y,s.x).mul(Math.PI),o=K(t),n=t.sub(o),i=u(0,0),d=a(0);for(let l=-1;l<=2;l++)for(let c=-1;c<=2;c++){let _=u(a(l),a(c)),p=n.sub(_).sub(Dr(o.add(_))).add(.5),f=le(p,p),h=w(a(0),__tsover_sub(Mt(__tsover_mul(f,-2)),.01111));d=__tsover_add(d,h);let g=le(p,r);i=i.add(u(J(g),-O(g)).mul(h))}return v(i.x,__tsover_mul(i.y,r.x),__tsover_mul(i.y,r.y)).div(d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"slope"}],body:[0,[[13,"sideDir",[6,[7,[6,"d.vec2f",[[4,"-",[7,"slope","y"]],[7,"slope","x"]]],"mul"],["Math.PI"]]],[13,"id",[6,"std.floor",["p"]]],[13,"pp",[6,[7,"p","sub"],["id"]]],[12,"heightSlope",[6,"d.vec2f",[[5,"0"],[5,"0"]]]],[12,"wSum",[6,"d.f32",[[5,"0"]]]],[14,[12,"x",[4,"-",[5,"1"]]],[1,"x","<=",[5,"2"]],[102,"++","x"],[0,[[14,[12,"y",[4,"-",[5,"1"]]],[1,"y","<=",[5,"2"]],[102,"++","y"],[0,[[13,"off",[6,"d.vec2f",[[6,"d.f32",["x"]],[6,"d.f32",["y"]]]]],[13,"c",[6,[7,[6,[7,[6,[7,"pp","sub"],["off"]],"sub"],[[6,"hash22",[[6,[7,"id","add"],["off"]]]]]],"add"],[[5,"0.5"]]]],[13,"dist2",[6,"std.dot",["c","c"]]],[13,"w",[6,"std.max",[[6,"d.f32",[[5,"0"]]],[1,[6,"std.exp",[[1,"dist2","*",[4,"-",[5,"2"]]]]],"-",[5,"0.01111"]]]]],[2,"wSum","=",[1,"wSum","+","w"]],[13,"t",[6,"std.dot",["c","sideDir"]]],[2,"heightSlope","=",[6,[7,"heightSlope","add"],[[6,[7,[6,"d.vec2f",[[6,"std.cos",["t"]],[4,"-",[6,"std.sin",["t"]]]]],"mul"],["w"]]]]]]]]]]],[10,[6,[7,[6,"d.vec3f",[[7,"heightSlope","x"],[1,[7,"heightSlope","y"],"*",[7,"sideDir","x"]],[1,[7,"heightSlope","y"],"*",[7,"sideDir","y"]]]],"div"],["wSum"]]]]]},externals:{"d.vec2f":()=>u,"Math.PI":()=>Math.PI,"std.floor":()=>K,"d.f32":()=>a,hash22:()=>Dr,"std.dot":()=>le,"std.max":()=>w,"std.exp":()=>Mt,"std.cos":()=>J,"std.sin":()=>O,"d.vec3f":()=>v}})&&e.f)({})),GO=y.fn([u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=qn(t),r=a(.25),o=a(8),n=a(1);for(let i=0;i<4;i++){let d=u(s.y,s.z),l=w(le(d,d),a(1e-4)),c=d.mul(Ye(l,a(__tsover_mul(.5,__tsover_sub(.5,1)))));s=s.add(T3(t.mul(o),c).mul(r).mul(v(1,o,o))),n=__tsover_add(n,r),r=__tsover_mul(r,.5),o=__tsover_mul(o,2)}return s.div(n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"nd",[6,"perlin12d",["p"]]],[12,"strength",[6,"d.f32",[[5,"0.25"]]]],[12,"freq",[6,"d.f32",[[5,"8"]]]],[12,"total",[6,"d.f32",[[5,"1"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"4"]],[102,"++","i"],[0,[[13,"grad",[6,"d.vec2f",[[7,"nd","y"],[7,"nd","z"]]]],[13,"len2",[6,"std.max",[[6,"std.dot",["grad","grad"]],[6,"d.f32",[[5,"0.0001"]]]]]],[13,"slope",[6,[7,"grad","mul"],[[6,"std.pow",["len2",[6,"d.f32",[[1,[5,"0.5"],"*",[1,[5,"0.5"],"-",[5,"1"]]]]]]]]]],[2,"nd","=",[6,[7,"nd","add"],[[6,[7,[6,[7,[6,"gullies",[[6,[7,"p","mul"],["freq"]],"slope"]],"mul"],["strength"]],"mul"],[[6,"d.vec3f",[[5,"1"],"freq","freq"]]]]]]],[2,"total","=",[1,"total","+","strength"]],[2,"strength","=",[1,"strength","*",[5,"0.5"]]],[2,"freq","=",[1,"freq","*",[5,"2"]]]]]],[10,[6,[7,"nd","div"],["total"]]]]]},externals:{perlin12d:()=>qn,"d.f32":()=>a,"d.vec2f":()=>u,"std.max":()=>w,"std.dot":()=>le,"std.pow":()=>Ye,gullies:()=>T3,"d.vec3f":()=>v}})&&e.f)({})),S3=y.fn([u,oe],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=u(0,0),o=a(0),n=a(1),i=u(t.x,t.y);for(let d=0;d<s;d++)r=r.add(z(Yd(i).mul(.5).add(.5),u(0,0),u(1,1)).mul(n)),o=__tsover_add(o,n),n=__tsover_mul(n,.8),i=i.mul(2);return r.div(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"octaves"}],body:[0,[[12,"s",[6,"d.vec2f",[[5,"0"],[5,"0"]]]],[12,"m",[6,"d.f32",[[5,"0"]]]],[12,"a",[6,"d.f32",[[5,"1"]]]],[12,"pp",[6,"d.vec2f",[[7,"p","x"],[7,"p","y"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","octaves"],[102,"++","i"],[0,[[2,"s","=",[6,[7,"s","add"],[[6,[7,[6,"std.clamp",[[6,[7,[6,[7,[6,"curl22",["pp"]],"mul"],[[5,"0.5"]]],"add"],[[5,"0.5"]]],[6,"d.vec2f",[[5,"0"],[5,"0"]]],[6,"d.vec2f",[[5,"1"],[5,"1"]]]]],"mul"],["a"]]]]],[2,"m","=",[1,"m","+","a"]],[2,"a","=",[1,"a","*",[5,"0.8"]]],[2,"pp","=",[6,[7,"pp","mul"],[[5,"2"]]]]]]],[10,[6,[7,"s","div"],["m"]]]]]},externals:{"d.vec2f":()=>u,"d.f32":()=>a,"std.clamp":()=>z,curl22:()=>Yd}})&&e.f)({})),A3=y.fn([u,oe],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_add(__tsover_mul(__tsover_div(te(S3(t,s)),1.414),.6),.4)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"octaves"}],body:[0,[[10,[1,[1,[1,[6,"std.length",[[6,"fbmPaper",["p","octaves"]]]],"/",[5,"1.414"]],"*",[5,"0.6"]],"+",[5,"0.4"]]]]]},externals:{"std.length":()=>te,fbmPaper:()=>S3}})&&e.f)({}));y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(__tsover_add(__tsover_mul(t.x,.2126),__tsover_mul(t.y,.7152)),__tsover_mul(t.z,.0722))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[1,[1,[1,[7,"rgb","x"],"*",[5,"0.2126"]],"+",[1,[7,"rgb","y"],"*",[5,"0.7152"]]],"+",[1,[7,"rgb","z"],"*",[5,"0.0722"]]]]]]},externals:{}})&&e.f)({}));y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(__tsover_add(__tsover_mul(t.x,.299),__tsover_mul(t.y,.587)),__tsover_mul(t.z,.114))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[1,[1,[1,[7,"rgb","x"],"*",[5,"0.299"]],"+",[1,[7,"rgb","y"],"*",[5,"0.587"]]],"+",[1,[7,"rgb","z"],"*",[5,"0.114"]]]]]]},externals:{}})&&e.f)({}));var E3=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return le(t,v(.2126,.7152,.0722))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[6,"std.dot",["rgb",[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),cp=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return le(t,v(.299,.587,.114))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[6,"std.dot",["rgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({}));y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return z(__tsover_add(__tsover_mul(__tsover_sub(t,r),s),r),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"contrast"},{type:"i",name:"pivot"}],body:[0,[[10,[6,"std.clamp",[[1,[1,[1,"x","-","pivot"],"*","contrast"],"+","pivot"],[5,"0"],[5,"1"]]]]]]},externals:{"std.clamp":()=>z}})&&e.f)({}));var UD=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(__tsover_mul(t,.5),.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[1,[1,"v","*",[5,"0.5"]],"+",[5,"0.5"]]]]]},externals:{}})&&e.f)({}));y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_sub(1,W(t))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[1,[5,"1"],"-",[6,"std.abs",["v"]]]]]]},externals:{"std.abs":()=>W}})&&e.f)({}));var j7=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=z(__tsover_add(__tsover_add(__tsover_mul(__tsover_sub(t,.5),__tsover_add(s,1)),.5),r),0,1);return __tsover_sub(1,o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"noise01"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"k",[6,"std.clamp",[[1,[1,[1,[1,"noise01","-",[5,"0.5"]],"*",[1,"contrast","+",[5,"1"]]],"+",[5,"0.5"]],"+","balance"],[5,"0"],[5,"1"]]]],[10,[1,[5,"1"],"-","k"]]]]},externals:{"std.clamp":()=>z}})&&e.f)({})),zD=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_add(__tsover_mul(t,__tsover_add(s,1)),r),n=z(__tsover_add(__tsover_mul(o,.5),.5),0,1);return __tsover_sub(1,n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"adjusted",[1,[1,"v","*",[1,"contrast","+",[5,"1"]]],"+","balance"]],[13,"k",[6,"std.clamp",[[1,[1,"adjusted","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,[1,[5,"1"],"-","k"]]]]},externals:{"std.clamp":()=>z}})&&e.f)({})),GD=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_sub(__tsover_mul(t,2),1),n=__tsover_add(__tsover_mul(o,s),r);return z(__tsover_add(__tsover_mul(n,.5),.5),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"signed",[1,[1,"v","*",[5,"2"]],"-",[5,"1"]]],[13,"adjusted",[1,[1,"signed","*","contrast"],"+","balance"]],[10,[6,"std.clamp",[[1,[1,"adjusted","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]]},externals:{"std.clamp":()=>z}})&&e.f)({})),DD=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Ye(t,__tsover_div(5,s)),i=z(__tsover_add(__tsover_mul(__tsover_sub(n,.5),r),.5),0,1),d=__tsover_sub(__tsover_div(o,100),.5),l=z(__tsover_add(i,d),0,1);return __tsover_sub(1,l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"},{type:"i",name:"glow"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"spread",[6,"std.pow",["v",[1,[5,"5"],"/","glow"]]]],[13,"contrasted",[6,"std.clamp",[[1,[1,[1,"spread","-",[5,"0.5"]],"*","contrast"],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"balanceShift",[1,[1,"balance","/",[5,"100"]],"-",[5,"0.5"]]],[13,"balanced",[6,"std.clamp",[[1,"contrasted","+","balanceShift"],[5,"0"],[5,"1"]]]],[10,[1,[5,"1"],"-","balanced"]]]]},externals:{"std.pow":()=>Ye,"std.clamp":()=>z}})&&e.f)({}));function K7(e){let{domain:t,contrastMode:s,invert:r,glowGamma:o=!1,balance:n="plain"}=e;if(o){if(t==="unit"&&s==="multiplicative"&&r&&n==="percentCentred")return DD}else if(n==="plain"){if(t==="unit"&&s==="additive"&&r)return j7;if(t==="signed"&&s==="additive"&&r)return zD;if(t==="unit"&&s==="multiplicative"&&!r)return GD}throw new Error(`toneRemap: no variant for {domain: '${t}', contrastMode: '${s}', invert: ${r}, glowGamma: ${o}, balance: '${n}'} \u2014 add its body to kit/tone.ts rather than approximating.`)}var LD=y.fn([b,u,u,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=ms(s.mul(r).add(u(o,__tsover_mul(o,1.618))));return b(z(t.xyz.add(__tsover_mul(__tsover_sub(n,.5),.004)),v(0),v(1)),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"animTime"}],body:[0,[[13,"n",[6,"hash12",[[6,[7,[6,[7,"uv","mul"],["viewport"]],"add"],[[6,"d.vec2f",["animTime",[1,"animTime","*",[5,"1.618"]]]]]]]]],[13,"rgb",[6,"std.clamp",[[6,[7,[7,"base","xyz"],"add"],[[1,[1,"n","-",[5,"0.5"]],"*",[5,"0.004"]]]],[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]],[10,[6,"d.vec4f",["rgb",[7,"base","w"]]]]]]},externals:{hash12:()=>ms,"d.vec2f":()=>u,"std.clamp":()=>z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),Vt=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(t.x,w(t.y,1e-6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"viewport"}],body:[0,[[10,[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]]]]},externals:{"std.max":()=>w}})&&e.f)({})),Wd=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_sub(t,__tsover_mul(s,K(__tsover_div(t,s))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"m"}],body:[0,[[10,[1,"x","-",[1,"m","*",[6,"std.floor",[[1,"x","/","m"]]]]]]]]},externals:{"std.floor":()=>K}})&&e.f)({})),H1=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(__tsover_sub(t.x,__tsover_mul(s.x,K(__tsover_div(t.x,s.x)))),__tsover_sub(t.y,__tsover_mul(s.y,K(__tsover_div(t.y,s.y)))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"m"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"p","x"],"-",[1,[7,"m","x"],"*",[6,"std.floor",[[1,[7,"p","x"],"/",[7,"m","x"]]]]]],[1,[7,"p","y"],"-",[1,[7,"m","y"],"*",[6,"std.floor",[[1,[7,"p","y"],"/",[7,"m","y"]]]]]]]]]]]},externals:{"d.vec2f":()=>u,"std.floor":()=>K}})&&e.f)({}));y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=F(w(s,1e-5),ue(s,-1e-5),s<0);return __tsover_div(t,r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"n"},{type:"i",name:"den"}],body:[0,[[13,"guarded",[6,"std.select",[[6,"std.max",["den",[5,"0.00001"]]],[6,"std.min",["den",[4,"-",[5,"0.00001"]]]],[1,"den","<",[5,"0"]]]]],[10,[1,"n","/","guarded"]]]]},externals:{"std.select":()=>F,"std.max":()=>w,"std.min":()=>ue}})&&e.f)({}));var ln=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(__tsover_sub(__tsover_mul(t.x,s),__tsover_mul(t.y,r)),__tsover_add(__tsover_mul(t.x,r),__tsover_mul(t.y,s)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"cosA"},{type:"i",name:"sinA"}],body:[0,[[10,[6,"d.vec2f",[[1,[1,[7,"p","x"],"*","cosA"],"-",[1,[7,"p","y"],"*","sinA"]],[1,[1,[7,"p","x"],"*","sinA"],"+",[1,[7,"p","y"],"*","cosA"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),P3=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(s.x,w(s.y,1e-6));return u(__tsover_mul(t.x,r),t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]]]]},externals:{"std.max":()=>w,"d.vec2f":()=>u}})&&e.f)({})),up=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(s.x,w(s.y,1e-6));return u(__tsover_mul(t.x,r),__tsover_sub(1,t.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[1,[5,"1"],"-",[7,"uv","y"]]]]]]]},externals:{"std.max":()=>w,"d.vec2f":()=>u}})&&e.f)({})),j1=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return u(t.x,__tsover_sub(1,t.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"d.vec2f",[[7,"p","x"],[1,[5,"1"],"-",[7,"p","y"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),aa=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(__tsover_mul(t.x,s),__tsover_sub(1,t.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"aspect"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"pos","x"],"*","aspect"],[1,[5,"1"],"-",[7,"pos","y"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),Qa=y.fn([u,u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_div(r.x,w(r.y,1e-6));return u(__tsover_sub(__tsover_mul(t.x,o),__tsover_mul(s.x,o)),__tsover_sub(t.y,__tsover_sub(1,s.y)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"center"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]],[10,[6,"d.vec2f",[[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,[7,"center","x"],"*","aspect"]],[1,[7,"uv","y"],"-",[1,[5,"1"],"-",[7,"center","y"]]]]]]]]},externals:{"std.max":()=>w,"d.vec2f":()=>u}})&&e.f)({})),Ja=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(__tsover_sub(__tsover_mul(t.x,s),__tsover_mul(s,.5)),__tsover_sub(t.y,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[10,[6,"d.vec2f",[[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,"aspect","*",[5,"0.5"]]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),Od=y.fn([u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(s,.5),i=.5,d=__tsover_sub(t.x,n),l=__tsover_sub(t.y,i);return u(__tsover_add(__tsover_sub(__tsover_mul(d,r),__tsover_mul(l,o)),n),__tsover_add(__tsover_add(__tsover_mul(d,o),__tsover_mul(l,r)),i))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"aspect"},{type:"i",name:"cosA"},{type:"i",name:"sinA"}],body:[0,[[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,[7,"p","x"],"-","centerX"]],[13,"cy",[1,[7,"p","y"],"-","centerY"]],[10,[6,"d.vec2f",[[1,[1,[1,"cx","*","cosA"],"-",[1,"cy","*","sinA"]],"+","centerX"],[1,[1,[1,"cx","*","sinA"],"+",[1,"cy","*","cosA"]],"+","centerY"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),_p=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_add(__tsover_mul(t.x,s),__tsover_mul(t.y,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"cosA"},{type:"i",name:"sinA"}],body:[0,[[10,[1,[1,[7,"p","x"],"*","cosA"],"+",[1,[7,"p","y"],"*","sinA"]]]]]},externals:{}})&&e.f)({}));y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return u(te(t),bt(t.y,t.x))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"d.vec2f",[[6,"std.length",["p"]],[6,"std.atan2",[[7,"p","y"],[7,"p","x"]]]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.atan2":()=>bt}})&&e.f)({}));y.fn([a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(__tsover_mul(t,J(s)),__tsover_mul(t,O(s)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"r"},{type:"i",name:"theta"}],body:[0,[[10,[6,"d.vec2f",[[1,"r","*",[6,"std.cos",["theta"]]],[1,"r","*",[6,"std.sin",["theta"]]]]]]]]},externals:{"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({}));var M3=2/Math.sqrt(3),K1=Ct({cell:u,local:u}).$name("CellTile"),Vd=y.fn([u],K1)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return K1({cell:K(t),local:ve(t)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"CellTile",[[104,{cell:[6,"std.floor",["p"]],local:[6,"std.fract",["p"]]}]]]]]]},externals:{CellTile:()=>K1,"std.floor":()=>K,"std.fract":()=>ve}})&&e.f)({})),Z1=Ct({gv:u,id:u}).$name("HexCell"),pp=y.fn([u,u],Z1)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=s.mul(.5),o=H1(t,s).sub(r),n=H1(t.sub(r),s).sub(r),i=F(n,o,le(o,o)<le(n,n));return Z1({gv:i,id:t.sub(i)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"s"}],body:[0,[[13,"sh",[6,[7,"s","mul"],[[5,"0.5"]]]],[13,"a",[6,[7,[6,"flooredMod2",["p","s"]],"sub"],["sh"]]],[13,"b",[6,[7,[6,"flooredMod2",[[6,[7,"p","sub"],["sh"]],"s"]],"sub"],["sh"]]],[13,"gv",[6,"std.select",["b","a",[1,[6,"std.dot",["a","a"]],"<",[6,"std.dot",["b","b"]]]]]],[10,[6,"HexCell",[[104,{gv:"gv",id:[6,[7,"p","sub"],["gv"]]}]]]]]]},externals:{flooredMod2:()=>H1,"std.select":()=>F,"std.dot":()=>le,HexCell:()=>Z1}})&&e.f)({})),k3=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return u(__tsover_sub(t.x,__tsover_div(t.y,Za)),__tsover_mul(t.y,M3))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"p","x"],"-",[1,[7,"p","y"],"/","SQRT3"]],[1,[7,"p","y"],"*","TWO_OVER_SQRT3"]]]]]]},externals:{"d.vec2f":()=>u,SQRT3:()=>Za,TWO_OVER_SQRT3:()=>M3}})&&e.f)({})),DO=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_div(s.x,w(s.y,1e-6)),n=__tsover_mul(t.x,o),i=__tsover_sub(1,t.y),d=__tsover_div(__tsover_add(K(__tsover_mul(n,r)),.5),r),l=__tsover_div(__tsover_add(K(__tsover_mul(i,r)),.5),r);return u(__tsover_div(d,o),__tsover_sub(1,l))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]],[13,"correctedX",[1,[7,"uv","x"],"*","aspect"]],[13,"correctedY",[1,[5,"1"],"-",[7,"uv","y"]]],[13,"cellCenterCorrectedX",[1,[1,[6,"std.floor",[[1,"correctedX","*","cells"]]],"+",[5,"0.5"]],"/","cells"]],[13,"cellCenterCorrectedY",[1,[1,[6,"std.floor",[[1,"correctedY","*","cells"]]],"+",[5,"0.5"]],"/","cells"]],[10,[6,"d.vec2f",[[1,"cellCenterCorrectedX","/","aspect"],[1,[5,"1"],"-","cellCenterCorrectedY"]]]]]]},externals:{"std.max":()=>w,"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})),$3=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_div(s.x,w(s.y,1e-6)),i=__tsover_mul(t.x,n),d=__tsover_sub(1,t.y),l=J(o),c=O(o),_=__tsover_mul(n,.5),p=.5,f=__tsover_sub(i,_),h=__tsover_sub(d,p),g=__tsover_add(__tsover_sub(__tsover_mul(f,l),__tsover_mul(h,c)),_),x=__tsover_add(__tsover_add(__tsover_mul(f,c),__tsover_mul(h,l)),p),T=__tsover_div(__tsover_add(K(__tsover_mul(g,r)),.5),r),S=__tsover_div(__tsover_add(K(__tsover_mul(x,r)),.5),r),A=__tsover_sub(T,_),E=__tsover_sub(S,p),M=__tsover_add(__tsover_add(__tsover_mul(A,l),__tsover_mul(E,c)),_),$=__tsover_add(__tsover_add(__tsover_mul(A,-c),__tsover_mul(E,l)),p);return u(__tsover_div(M,n),__tsover_sub(1,$))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"rotationRad"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]],[13,"correctedX",[1,[7,"uv","x"],"*","aspect"]],[13,"correctedY",[1,[5,"1"],"-",[7,"uv","y"]]],[13,"cosR",[6,"std.cos",["rotationRad"]]],[13,"sinR",[6,"std.sin",["rotationRad"]]],[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,"correctedX","-","centerX"]],[13,"cy",[1,"correctedY","-","centerY"]],[13,"rotX",[1,[1,[1,"cx","*","cosR"],"-",[1,"cy","*","sinR"]],"+","centerX"]],[13,"rotY",[1,[1,[1,"cx","*","sinR"],"+",[1,"cy","*","cosR"]],"+","centerY"]],[13,"cellRX",[1,[1,[6,"std.floor",[[1,"rotX","*","cells"]]],"+",[5,"0.5"]],"/","cells"]],[13,"cellRY",[1,[1,[6,"std.floor",[[1,"rotY","*","cells"]]],"+",[5,"0.5"]],"/","cells"]],[13,"ccx",[1,"cellRX","-","centerX"]],[13,"ccy",[1,"cellRY","-","centerY"]],[13,"unrotX",[1,[1,[1,"ccx","*","cosR"],"+",[1,"ccy","*","sinR"]],"+","centerX"]],[13,"unrotY",[1,[1,[1,"ccx","*",[4,"-","sinR"]],"+",[1,"ccy","*","cosR"]],"+","centerY"]],[10,[6,"d.vec2f",[[1,"unrotX","/","aspect"],[1,[5,"1"],"-","unrotY"]]]]]]},externals:{"std.max":()=>w,"std.cos":()=>J,"std.sin":()=>O,"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})),mp=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ve(t.mul(u(123.34,345.45))),r=s.add(le(s,s.add(34.345)));return ve(__tsover_mul(r.x,r.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"id"}],body:[0,[[13,"q0",[6,"std.fract",[[6,[7,"id","mul"],[[6,"d.vec2f",[[5,"123.34"],[5,"345.45"]]]]]]]],[13,"q1",[6,[7,"q0","add"],[[6,"std.dot",["q0",[6,[7,"q0","add"],[[5,"34.345"]]]]]]]],[10,[6,"std.fract",[[1,[7,"q1","x"],"*",[7,"q1","y"]]]]]]]},externals:{"std.fract":()=>ve,"d.vec2f":()=>u,"std.dot":()=>le}})&&e.f)({})),fp=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ve(__tsover_mul(O(__tsover_mul(t,127.1)),43758.5453))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"row"}],body:[0,[[10,[6,"std.fract",[[1,[6,"std.sin",[[1,"row","*",[5,"127.1"]]]],"*",[5,"43758.5453"]]]]]]]},externals:{"std.fract":()=>ve,"std.sin":()=>O}})&&e.f)({})),vp=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(t,.5),4),s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rowHash"},{type:"i",name:"variance"}],body:[0,[[10,[1,[5,"1"],"+",[1,[1,[1,"rowHash","-",[5,"0.5"]],"*",[5,"4"]],"*","variance"]]]]]},externals:{}})&&e.f)({})),C3=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return w(__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(t,.5),2),s)),0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rand"},{type:"i",name:"variation"}],body:[0,[[10,[6,"std.max",[[1,[5,"1"],"+",[1,[1,[1,"rand","-",[5,"0.5"]],"*",[5,"2"]],"*","variation"]],[5,"0"]]]]]]},externals:{"std.max":()=>w}})&&e.f)({})),hp=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=w(W(Dd(t)),W(Ld(t)));return w(__tsover_add(r,s),1e-5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"softness"}],body:[0,[[13,"baseW",[6,"std.max",[[6,"std.abs",[[6,"std.dpdx",["x"]]]],[6,"std.abs",[[6,"std.dpdy",["x"]]]]]]],[10,[6,"std.max",[[1,"baseW","+","softness"],[5,"0.00001"]]]]]]},externals:{"std.max":()=>w,"std.abs":()=>W,"std.dpdx":()=>Dd,"std.dpdy":()=>Ld}})&&e.f)({})),R3=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Dd(t),o=Ld(t),n=u(w(W(r.x),W(o.x)),w(W(r.y),W(o.y)));return u(w(__tsover_add(n.x,s),1e-5),w(__tsover_add(n.y,s),1e-5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"softness"}],body:[0,[[13,"dpx",[6,"std.dpdx",["p"]]],[13,"dpy",[6,"std.dpdy",["p"]]],[13,"baseW",[6,"d.vec2f",[[6,"std.max",[[6,"std.abs",[[7,"dpx","x"]]],[6,"std.abs",[[7,"dpy","x"]]]]],[6,"std.max",[[6,"std.abs",[[7,"dpx","y"]]],[6,"std.abs",[[7,"dpy","y"]]]]]]]],[10,[6,"d.vec2f",[[6,"std.max",[[1,[7,"baseW","x"],"+","softness"],[5,"0.00001"]]],[6,"std.max",[[1,[7,"baseW","y"],"+","softness"],[5,"0.00001"]]]]]]]]},externals:{"std.dpdx":()=>Dd,"std.dpdy":()=>Ld,"d.vec2f":()=>u,"std.max":()=>w,"std.abs":()=>W}})&&e.f)({})),U3=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_add(t,__tsover_mul(s,.5)),n=__tsover_sub(t,__tsover_mul(s,.5)),i=__tsover_sub(1,r),d=__tsover_add(__tsover_mul(K(o),i),w(__tsover_sub(ve(o),r),0)),l=__tsover_add(__tsover_mul(K(n),i),w(__tsover_sub(ve(n),r),0));return z(__tsover_div(__tsover_sub(d,l),s),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"w"},{type:"i",name:"threshold"}],body:[0,[[13,"a",[1,"p","+",[1,"w","*",[5,"0.5"]]]],[13,"b",[1,"p","-",[1,"w","*",[5,"0.5"]]]],[13,"oneMinusThreshold",[1,[5,"1"],"-","threshold"]],[13,"Fa",[1,[1,[6,"std.floor",["a"]],"*","oneMinusThreshold"],"+",[6,"std.max",[[1,[6,"std.fract",["a"]],"-","threshold"],[5,"0"]]]]],[13,"Fb",[1,[1,[6,"std.floor",["b"]],"*","oneMinusThreshold"],"+",[6,"std.max",[[1,[6,"std.fract",["b"]],"-","threshold"],[5,"0"]]]]],[10,[6,"std.clamp",[[1,[1,"Fa","-","Fb"],"/","w"],[5,"0"],[5,"1"]]]]]]},externals:{"std.floor":()=>K,"std.max":()=>w,"std.fract":()=>ve,"std.clamp":()=>z}})&&e.f)({})),Q1=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_add(t,__tsover_mul(s,.5)),n=__tsover_sub(t,__tsover_mul(s,.5));return __tsover_div(__tsover_sub(__tsover_sub(__tsover_add(K(o),ue(__tsover_mul(ve(o),r),1)),K(n)),ue(__tsover_mul(ve(n),r),1)),__tsover_mul(r,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"w"},{type:"i",name:"N"}],body:[0,[[13,"a",[1,"p","+",[1,"w","*",[5,"0.5"]]]],[13,"b",[1,"p","-",[1,"w","*",[5,"0.5"]]]],[10,[1,[1,[1,[1,[6,"std.floor",["a"]],"+",[6,"std.min",[[1,[6,"std.fract",["a"]],"*","N"],[5,"1"]]]],"-",[6,"std.floor",["b"]]],"-",[6,"std.min",[[1,[6,"std.fract",["b"]],"*","N"],[5,"1"]]]],"/",[1,"N","*","w"]]]]]},externals:{"std.floor":()=>K,"std.min":()=>ue,"std.fract":()=>ve}})&&e.f)({})),z3=y.fn([u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=u(__tsover_mul(s.x,.5),__tsover_mul(s.y,.5)),o=W(__tsover_sub(ve(__tsover_mul(__tsover_sub(t.x,r.x),.5)),.5)),n=W(__tsover_sub(ve(__tsover_mul(__tsover_sub(t.y,r.y),.5)),.5)),i=W(__tsover_sub(ve(__tsover_mul(__tsover_add(t.x,r.x),.5)),.5)),d=W(__tsover_sub(ve(__tsover_mul(__tsover_add(t.y,r.y),.5)),.5)),l=__tsover_div(__tsover_mul(__tsover_sub(o,i),2),s.x),c=__tsover_div(__tsover_mul(__tsover_sub(n,d),2),s.y);return z(__tsover_sub(.5,__tsover_mul(__tsover_mul(l,c),.5)),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"w"}],body:[0,[[13,"aHalf",[6,"d.vec2f",[[1,[7,"w","x"],"*",[5,"0.5"]],[1,[7,"w","y"],"*",[5,"0.5"]]]]],[13,"minusSideX",[6,"std.abs",[[1,[6,"std.fract",[[1,[1,[7,"p","x"],"-",[7,"aHalf","x"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"minusSideY",[6,"std.abs",[[1,[6,"std.fract",[[1,[1,[7,"p","y"],"-",[7,"aHalf","y"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"plusSideX",[6,"std.abs",[[1,[6,"std.fract",[[1,[1,[7,"p","x"],"+",[7,"aHalf","x"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"plusSideY",[6,"std.abs",[[1,[6,"std.fract",[[1,[1,[7,"p","y"],"+",[7,"aHalf","y"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"iX",[1,[1,[1,"minusSideX","-","plusSideX"],"*",[5,"2"]],"/",[7,"w","x"]]],[13,"iY",[1,[1,[1,"minusSideY","-","plusSideY"],"*",[5,"2"]],"/",[7,"w","y"]]],[10,[6,"std.clamp",[[1,[5,"0.5"],"-",[1,[1,"iX","*","iY"],"*",[5,"0.5"]]],[5,"0"],[5,"1"]]]]]]},externals:{"d.vec2f":()=>u,"std.abs":()=>W,"std.fract":()=>ve,"std.clamp":()=>z}})&&e.f)({})),yp=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return __tsover_mul(__tsover_sub(1,ce(r,o,t)),ot(1e-4,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"field"},{type:"i",name:"lineWidth"},{type:"i",name:"lo"},{type:"i",name:"hi"}],body:[0,[[10,[1,[1,[5,"1"],"-",[6,"std.smoothstep",["lo","hi","field"]]],"*",[6,"std.step",[[5,"0.0001"],"lineWidth"]]]]]]},externals:{"std.smoothstep":()=>ce,"std.step":()=>ot}})&&e.f)({})),Sd=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_mul(ce(s,r,t),ce(s,r,__tsover_sub(1,t)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"lo"},{type:"i",name:"hi"}],body:[0,[[10,[1,[6,"std.smoothstep",["lo","hi","x"]],"*",[6,"std.smoothstep",["lo","hi",[1,[5,"1"],"-","x"]]]]]]]},externals:{"std.smoothstep":()=>ce}})&&e.f)({})),G3=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_sub(1,ce(__tsover_sub(s,__tsover_mul(r,.5)),s,t))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"radius"},{type:"i",name:"footprint"}],body:[0,[[10,[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"radius","-",[1,"footprint","*",[5,"0.5"]]],"radius","dist"]]]]]]},externals:{"std.smoothstep":()=>ce}})&&e.f)({})),FD=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Vt(s);return u(__tsover_mul(t.x,n),t.y).mul(Mt(r)).add(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[10,[6,[7,[6,[7,"aspectUV","mul"],[[6,"std.exp",["scale"]]]],"add"],["seed"]]]]]},externals:{aspectOf:()=>Vt,"d.vec2f":()=>u,"std.exp":()=>Mt}})&&e.f)({})),LO=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return K(t.mul(s).div(r)).add(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"grain"},{type:"i",name:"seed"}],body:[0,[[10,[6,[7,[6,"std.floor",[[6,[7,[6,[7,"uv","mul"],["viewport"]],"div"],["grain"]]]],"add"],["seed"]]]]]},externals:{"std.floor":()=>K}})&&e.f)({})),FO=y.fn([u,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return v(t.x,t.y,__tsover_mul(s,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"t"},{type:"i",name:"rate"}],body:[0,[[10,[6,"d.vec3f",[[7,"pos","x"],[7,"pos","y"],[1,"t","*","rate"]]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})),D3=new WeakMap,BD=0;function vy(e){let t=e,s=D3.get(t);if(s!==void 0)return s;let r=BD++;return D3.set(t,r),r}function Z7(e,t){let{maxOctaves:s,drift:r,stride:o=[17,31],name:n="fbmGated"}=t,i=`${vy(e)}|${n}|${s}|${r}|${o[0]},${o[1]}`,d=L3.get(i);if(d)return d;let l=s,c=o[0],_=o[1],p=`${r==="goldenAngle"?"Golden":"TimeSeed"}${l}`,f;if(r==="goldenAngle"){let h=e;f=y.fn([u,a,a,a,a,u,a],u)((g=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(g.f=((x,T,S,A,E,M,$)=>{"use gpu";let L=oe($),B=T,D=a(1),G=a(0),I=a(0);for(let X=0;X<l;X++){let H=a(X),ee=J(__tsover_mul(H,2.3999632297286535)),Q=O(__tsover_mul(H,2.3999632297286535)),de=u(__tsover_add(__tsover_add(__tsover_mul(x.x,B),__tsover_mul(E,ee)),M.x),__tsover_add(__tsover_add(__tsover_mul(x.y,B),__tsover_mul(E,Q)),M.y)),Ee=F(a(0),a(1),X<L);G=__tsover_add(G,__tsover_mul(__tsover_mul(h(de),D),Ee)),I=__tsover_add(I,__tsover_mul(D,Ee)),B=__tsover_mul(B,S),D=__tsover_mul(D,A)}return u(G,I)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"baseFreq"},{type:"i",name:"lacunarity"},{type:"i",name:"persistence"},{type:"i",name:"animTime"},{type:"i",name:"seedOffset"},{type:"i",name:"octaveCount"}],body:[0,[[13,"n",[6,"d.i32",["octaveCount"]]],[12,"freq","baseFreq"],[12,"weight",[6,"d.f32",[[5,"1"]]]],[12,"accumulated",[6,"d.f32",[[5,"0"]]]],[12,"totalWeight",[6,"d.f32",[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","N"],[102,"++","i"],[0,[[13,"fi",[6,"d.f32",["i"]]],[13,"dirX",[6,"std.cos",[[1,"fi","*","GOLDEN"]]]],[13,"dirY",[6,"std.sin",[[1,"fi","*","GOLDEN"]]]],[13,"coord",[6,"d.vec2f",[[1,[1,[1,[7,"base","x"],"*","freq"],"+",[1,"animTime","*","dirX"]],"+",[7,"seedOffset","x"]],[1,[1,[1,[7,"base","y"],"*","freq"],"+",[1,"animTime","*","dirY"]],"+",[7,"seedOffset","y"]]]]],[13,"active",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"i","<","n"]]]],[2,"accumulated","=",[1,"accumulated","+",[1,[1,[6,"octaveField",["coord"]],"*","weight"],"*","active"]]],[2,"totalWeight","=",[1,"totalWeight","+",[1,"weight","*","active"]]],[2,"freq","=",[1,"freq","*","lacunarity"]],[2,"weight","=",[1,"weight","*","persistence"]]]]],[10,[6,"d.vec2f",["accumulated","totalWeight"]]]]]},externals:{"d.i32":()=>oe,"d.f32":()=>a,N:()=>l,"std.cos":()=>J,GOLDEN:()=>2.3999632297286535,"std.sin":()=>O,"d.vec2f":()=>u,"std.select":()=>F,octaveField:()=>h}})&&g.f)({})).$name(`${n}${p}`)}else{let h=e;f=y.fn([u,a,a,a,a,a,v,a],u)((g=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(g.f=((x,T,S,A,E,M,$,L)=>{"use gpu";let B=T,D=a(1),G=a(0),I=a(0);for(let X=0;X<l;X++){let H=a(X),ee=F(a(0),a(1),H<L),Q=h(u(__tsover_mul(x.x,B),__tsover_mul(x.y,B)),__tsover_add(E,__tsover_mul(H,c)),__tsover_add(M,__tsover_mul(H,_)),$.x,$.y,$.z);G=__tsover_add(G,__tsover_mul(__tsover_mul(Q,D),ee)),I=__tsover_add(I,__tsover_mul(D,ee)),D=__tsover_mul(D,A),B=__tsover_mul(B,S)}return u(G,I)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"baseFreq"},{type:"i",name:"lacunarity"},{type:"i",name:"persistence"},{type:"i",name:"animTime"},{type:"i",name:"seed"},{type:"i",name:"extra"},{type:"i",name:"octaveCount"}],body:[0,[[12,"freq","baseFreq"],[12,"amp",[6,"d.f32",[[5,"1"]]]],[12,"accumulated",[6,"d.f32",[[5,"0"]]]],[12,"totalWeight",[6,"d.f32",[[5,"0"]]]],[14,[12,"o",[5,"0"]],[1,"o","<","N"],[102,"++","o"],[0,[[13,"fo",[6,"d.f32",["o"]]],[13,"active",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"fo","<","octaveCount"]]]],[13,"oUV",[6,"d.vec2f",[[1,[7,"base","x"],"*","freq"],[1,[7,"base","y"],"*","freq"]]]],[13,"animT",[1,"animTime","+",[1,"fo","*","TIME_STRIDE"]]],[13,"seedOff",[1,"seed","+",[1,"fo","*","SEED_STRIDE"]]],[13,"raw",[6,"octaveField",["oUV","animT","seedOff",[7,"extra","x"],[7,"extra","y"],[7,"extra","z"]]]],[2,"accumulated","=",[1,"accumulated","+",[1,[1,"raw","*","amp"],"*","active"]]],[2,"totalWeight","=",[1,"totalWeight","+",[1,"amp","*","active"]]],[2,"amp","=",[1,"amp","*","persistence"]],[2,"freq","=",[1,"freq","*","lacunarity"]]]]],[10,[6,"d.vec2f",["accumulated","totalWeight"]]]]]},externals:{"d.f32":()=>a,N:()=>l,"std.select":()=>F,"d.vec2f":()=>u,TIME_STRIDE:()=>c,SEED_STRIDE:()=>_,octaveField:()=>h}})&&g.f)({})).$name(`${n}${p}`)}return L3.set(i,f),f}var L3=new Map,Q7={q:[[.3,-.2,0],[5.2,1.3,.25]],r:[[1.7,9.2,.15],[8.3,2.8,.13]]};function J7(e,t={}){let{offsets:s=Q7,name:r="domainWarp2"}=t,o=`${vy(e)}|${r}|${JSON.stringify(s)}`,n=gp.get(o);if(n)return n;let i=e,[d,l,c]=s.q[0],[_,p,f]=s.q[1],[h,g,x]=s.r[0],[T,S,A]=s.r[1],E=y.fn([v,a,a],v)((M=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(M.f=(($,L,B)=>{"use gpu";let D=i($.add(v(__tsover_mul(L,d),__tsover_mul(L,l),c))),G=i($.add(v(_,p,__tsover_mul(L,f)))),I=$.add(v(D,G,0).mul(B)),X=i(I.add(v(h,g,__tsover_mul(L,x)))),H=i(I.add(v(T,S,__tsover_mul(L,A))));return $.add(v(X,H,0).mul(B))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"t"},{type:"i",name:"warpAmount"}],body:[0,[[13,"qx",[6,"warpField",[[6,[7,"pos","add"],[[6,"d.vec3f",[[1,"t","*","QX"],[1,"t","*","QY"],"QZ"]]]]]]],[13,"qy",[6,"warpField",[[6,[7,"pos","add"],[[6,"d.vec3f",["Q2X","Q2Y",[1,"t","*","Q2Z"]]]]]]]],[13,"warped1",[6,[7,"pos","add"],[[6,[7,[6,"d.vec3f",["qx","qy",[5,"0"]]],"mul"],["warpAmount"]]]]],[13,"rx",[6,"warpField",[[6,[7,"warped1","add"],[[6,"d.vec3f",["RX","RY",[1,"t","*","RZ"]]]]]]]],[13,"ry",[6,"warpField",[[6,[7,"warped1","add"],[[6,"d.vec3f",["R2X","R2Y",[1,"t","*","R2Z"]]]]]]]],[10,[6,[7,"pos","add"],[[6,[7,[6,"d.vec3f",["rx","ry",[5,"0"]]],"mul"],["warpAmount"]]]]]]]},externals:{warpField:()=>i,"d.vec3f":()=>v,QX:()=>d,QY:()=>l,QZ:()=>c,Q2X:()=>_,Q2Y:()=>p,Q2Z:()=>f,RX:()=>h,RY:()=>g,RZ:()=>x,R2X:()=>T,R2Y:()=>S,R2Z:()=>A}})&&M.f)({})).$name(r);return gp.set(o,E),E}function ID(e,t={}){let{offsets:s=Q7,name:r="domainWarp1"}=t,o=`1|${vy(e)}|${r}|${JSON.stringify(s)}`,n=gp.get(o);if(n)return n;let i=e,[d,l,c]=s.q[0],[_,p,f]=s.q[1],h=y.fn([v,a,a],v)((g=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(g.f=((x,T,S)=>{"use gpu";let A=i(x.add(v(__tsover_mul(T,d),__tsover_mul(T,l),c))),E=i(x.add(v(_,p,__tsover_mul(T,f))));return x.add(v(A,E,0).mul(S))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"t"},{type:"i",name:"warpAmount"}],body:[0,[[13,"qx",[6,"warpField",[[6,[7,"pos","add"],[[6,"d.vec3f",[[1,"t","*","QX"],[1,"t","*","QY"],"QZ"]]]]]]],[13,"qy",[6,"warpField",[[6,[7,"pos","add"],[[6,"d.vec3f",["Q2X","Q2Y",[1,"t","*","Q2Z"]]]]]]]],[10,[6,[7,"pos","add"],[[6,[7,[6,"d.vec3f",["qx","qy",[5,"0"]]],"mul"],["warpAmount"]]]]]]]},externals:{warpField:()=>i,"d.vec3f":()=>v,QX:()=>d,QY:()=>l,QZ:()=>c,Q2X:()=>_,Q2Y:()=>p,Q2Z:()=>f}})&&g.f)({})).$name(r);return gp.set(o,h),h}var gp=new Map,YD=y.fn([u,a,u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(__tsover_mul(t.x,s),t.y),d=u(__tsover_mul(r.x,s),__tsover_sub(1,r.y)),l=te(i.sub(d));return ce(o,__tsover_add(o,n),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"falloff"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dist",[6,"std.length",[[6,[7,"aspectUV","sub"],["centerPos"]]]]],[10,[6,"std.smoothstep",["radius",[1,"radius","+","falloff"],"dist"]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.smoothstep":()=>ce}})&&e.f)({})),J1=.11,xp=.6180339887,dc=8,F3=y.fn([a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_add(__tsover_mul(t,2.3999632297286535),__tsover_mul(fr(__tsover_add(__tsover_mul(r,.7311),1.618)),Et)),l=$e(__tsover_div(__tsover_add(t,.5),s)),c=Dr(u(__tsover_add(__tsover_mul(t,3.77),.917),__tsover_add(__tsover_mul(r,1.093),2.236))).sub(.5).mul(.26),_=Dr(u(__tsover_add(__tsover_mul(t,7.13),1.618),__tsover_add(__tsover_mul(r,.531),3.71))).mul(Et),p=__tsover_add(.5,__tsover_mul(fr(__tsover_add(__tsover_add(__tsover_mul(t,5.417),__tsover_mul(r,.291)),.917)),.7)),f=O(__tsover_add(__tsover_mul(__tsover_mul(i,J1),p),_.x)),h=J(__tsover_add(__tsover_mul(__tsover_mul(__tsover_mul(i,J1),p),1.37),_.y)),g=__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(J(d),l),.62),c.x),__tsover_mul(__tsover_mul(f,o),.16)),x=__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(O(d),l),.62),c.y),__tsover_mul(__tsover_mul(h,o),.16));return u(__tsover_mul(__tsover_add(.5,g),n),__tsover_add(.5,x))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"fi"},{type:"i",name:"count"},{type:"i",name:"seed"},{type:"i",name:"drift"},{type:"i",name:"aspect"},{type:"i",name:"animTime"}],body:[0,[[13,"theta",[1,[1,"fi","*","GOLDEN"],"+",[1,[6,"hash11",[[1,[1,"seed","*",[5,"0.7311"]],"+",[5,"1.618"]]]],"*","TAU"]]],[13,"r",[6,"std.sqrt",[[1,[1,"fi","+",[5,"0.5"]],"/","count"]]]],[13,"j",[6,[7,[6,[7,[6,"hash22",[[6,"d.vec2f",[[1,[1,"fi","*",[5,"3.77"]],"+",[5,"0.917"]],[1,[1,"seed","*",[5,"1.093"]],"+",[5,"2.236"]]]]]],"sub"],[[5,"0.5"]]],"mul"],[[5,"0.26"]]]],[13,"ph",[6,[7,[6,"hash22",[[6,"d.vec2f",[[1,[1,"fi","*",[5,"7.13"]],"+",[5,"1.618"]],[1,[1,"seed","*",[5,"0.531"]],"+",[5,"3.71"]]]]]],"mul"],["TAU"]]],[13,"w1",[1,[5,"0.5"],"+",[1,[6,"hash11",[[1,[1,[1,"fi","*",[5,"5.417"]],"+",[1,"seed","*",[5,"0.291"]]],"+",[5,"0.917"]]]],"*",[5,"0.7"]]]],[13,"dx",[6,"std.sin",[[1,[1,[1,"animTime","*","SCATTER_DRIFT_RATE"],"*","w1"],"+",[7,"ph","x"]]]]],[13,"dy",[6,"std.cos",[[1,[1,[1,[1,"animTime","*","SCATTER_DRIFT_RATE"],"*","w1"],"*",[5,"1.37"]],"+",[7,"ph","y"]]]]],[13,"nx",[1,[1,[1,[1,[6,"std.cos",["theta"]],"*","r"],"*",[5,"0.62"]],"+",[7,"j","x"]],"+",[1,[1,"dx","*","drift"],"*",[5,"0.16"]]]],[13,"ny",[1,[1,[1,[1,[6,"std.sin",["theta"]],"*","r"],"*",[5,"0.62"]],"+",[7,"j","y"]],"+",[1,[1,"dy","*","drift"],"*",[5,"0.16"]]]],[10,[6,"d.vec2f",[[1,[1,[5,"0.5"],"+","nx"],"*","aspect"],[1,[5,"0.5"],"+","ny"]]]]]]},externals:{GOLDEN:()=>2.3999632297286535,hash11:()=>fr,TAU:()=>Et,"std.sqrt":()=>$e,hash22:()=>Dr,"d.vec2f":()=>u,"std.sin":()=>O,SCATTER_DRIFT_RATE:()=>J1,"std.cos":()=>J}})&&e.f)({})),WD=y.fn([u,a,a,zt(b,dc/2),a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=a(0),d=a(0),l=fr(__tsover_add(__tsover_mul(r,.531),.77));for(let c=0;c<dc;c++){let _=a(c),p=F(a(0),a(1),_<__tsover_sub(s,.5)),f=o[__tsover_div(c,2)],h=F(f.xy,f.zw,(c&1)===1),g=w(te(t.sub(h)),.01),x=__tsover_div(p,Ye(g,n)),T=ve(__tsover_add(__tsover_mul(_,xp),l));i=__tsover_add(i,__tsover_mul(x,T)),d=__tsover_add(d,x)}return __tsover_div(i,w(d,1e-6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"q"},{type:"i",name:"count"},{type:"i",name:"seed"},{type:"i",name:"anchors"},{type:"i",name:"power"}],body:[0,[[12,"num",[6,"d.f32",[[5,"0"]]]],[12,"den",[6,"d.f32",[[5,"0"]]]],[13,"seedShuffle",[6,"hash11",[[1,[1,"seed","*",[5,"0.531"]],"+",[5,"0.77"]]]]],[14,[12,"i",[5,"0"]],[1,"i","<","SCATTER_MAX"],[102,"++","i"],[0,[[13,"fi",[6,"d.f32",["i"]]],[13,"active",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"fi","<",[1,"count","-",[5,"0.5"]]]]]],[13,"pair",[8,"anchors",[1,"i","/",[5,"2"]]]],[13,"anchor",[6,"std.select",[[7,"pair","xy"],[7,"pair","zw"],[1,[1,"i","&",[5,"1"]],"===",[5,"1"]]]]],[13,"dist",[6,"std.max",[[6,"std.length",[[6,[7,"q","sub"],["anchor"]]]],[5,"0.01"]]]],[13,"w",[1,"active","/",[6,"std.pow",["dist","power"]]]],[13,"ti",[6,"std.fract",[[1,[1,"fi","*","GOLDEN_CONJ"],"+","seedShuffle"]]]],[2,"num","=",[1,"num","+",[1,"w","*","ti"]]],[2,"den","=",[1,"den","+","w"]]]]],[10,[1,"num","/",[6,"std.max",["den",[5,"0.000001"]]]]]]]},externals:{"d.f32":()=>a,hash11:()=>fr,SCATTER_MAX:()=>dc,"std.select":()=>F,"std.max":()=>w,"std.length":()=>te,"std.pow":()=>Ye,"std.fract":()=>ve,GOLDEN_CONJ:()=>xp}})&&e.f)({})),OD=y.fn([u,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=a(0),c=a(0);for(let _=0;_<dc;_++){let p=a(_),f=F(a(0),a(1),p<__tsover_sub(s,.5)),h=F3(p,s,r,o,n,i),g=w(te(t.sub(h)),.01),x=__tsover_div(f,Ye(g,d)),T=ve(__tsover_add(__tsover_mul(p,xp),fr(__tsover_add(__tsover_mul(r,.531),.77))));l=__tsover_add(l,__tsover_mul(x,T)),c=__tsover_add(c,x)}return __tsover_div(l,w(c,1e-6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"q"},{type:"i",name:"count"},{type:"i",name:"seed"},{type:"i",name:"drift"},{type:"i",name:"aspect"},{type:"i",name:"animTime"},{type:"i",name:"power"}],body:[0,[[12,"num",[6,"d.f32",[[5,"0"]]]],[12,"den",[6,"d.f32",[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","SCATTER_MAX"],[102,"++","i"],[0,[[13,"fi",[6,"d.f32",["i"]]],[13,"active",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"fi","<",[1,"count","-",[5,"0.5"]]]]]],[13,"anchor",[6,"spiralScatter",["fi","count","seed","drift","aspect","animTime"]]],[13,"dist",[6,"std.max",[[6,"std.length",[[6,[7,"q","sub"],["anchor"]]]],[5,"0.01"]]]],[13,"w",[1,"active","/",[6,"std.pow",["dist","power"]]]],[13,"ti",[6,"std.fract",[[1,[1,"fi","*","GOLDEN_CONJ"],"+",[6,"hash11",[[1,[1,"seed","*",[5,"0.531"]],"+",[5,"0.77"]]]]]]]],[2,"num","=",[1,"num","+",[1,"w","*","ti"]]],[2,"den","=",[1,"den","+","w"]]]]],[10,[1,"num","/",[6,"std.max",["den",[5,"0.000001"]]]]]]]},externals:{"d.f32":()=>a,SCATTER_MAX:()=>dc,"std.select":()=>F,spiralScatter:()=>F3,"std.max":()=>w,"std.length":()=>te,"std.pow":()=>Ye,"std.fract":()=>ve,GOLDEN_CONJ:()=>xp,hash11:()=>fr}})&&e.f)({})),VD=y.fn([u,a,a,u,u,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=v(__tsover_mul(t.x,s),__tsover_mul(t.y,s),r),c=Po(l.add(v(o.x,o.y,0))),_=Po(l.add(v(n.x,n.y,0)));return b(__tsover_add(t.x,__tsover_mul(__tsover_mul(c,i),d)),__tsover_add(t.y,__tsover_mul(__tsover_mul(_,i),d)),c,_)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"scale"},{type:"i",name:"z"},{type:"i",name:"offA"},{type:"i",name:"offB"},{type:"i",name:"k"},{type:"i",name:"strength"}],body:[0,[[13,"wp",[6,"d.vec3f",[[1,[7,"pos","x"],"*","scale"],[1,[7,"pos","y"],"*","scale"],"z"]]],[13,"nx",[6,"mxNoiseFloat3",[[6,[7,"wp","add"],[[6,"d.vec3f",[[7,"offA","x"],[7,"offA","y"],[5,"0"]]]]]]]],[13,"ny",[6,"mxNoiseFloat3",[[6,[7,"wp","add"],[[6,"d.vec3f",[[7,"offB","x"],[7,"offB","y"],[5,"0"]]]]]]]],[10,[6,"d.vec4f",[[1,[7,"pos","x"],"+",[1,[1,"nx","*","k"],"*","strength"]],[1,[7,"pos","y"],"+",[1,[1,"ny","*","k"],"*","strength"]],"nx","ny"]]]]]},externals:{"d.vec3f":()=>v,mxNoiseFloat3:()=>Po,"d.vec4f":()=>b}})&&e.f)({})),y_=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ve(O(u(le(t,u(127.1,311.7)),le(t,u(269.5,183.3)))).mul(43758.5453))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"h",[6,"d.vec2f",[[6,"std.dot",["p",[6,"d.vec2f",[[5,"127.1"],[5,"311.7"]]]]],[6,"std.dot",["p",[6,"d.vec2f",[[5,"269.5"],[5,"183.3"]]]]]]]],[10,[6,"std.fract",[[6,[7,[6,"std.sin",["h"]],"mul"],[[5,"43758.5453"]]]]]]]]},externals:{"d.vec2f":()=>u,"std.dot":()=>le,"std.fract":()=>ve,"std.sin":()=>O}})&&e.f)({}));function eT(e){let{distance:t,jitter:s,name:r="nearest2Cells"}=e,o=`${r}|${t}|${s}`,n=B3.get(o);if(n)return n;let i=`${t==="length"?"Len":"Sel"}${s==="mix"?"Jit":""}`,d;return t==="length"&&s==="none"?d=y.fn([u,a,a],u)((l=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(l.f=((c,_,p)=>{"use gpu";let f=K(c),h=ve(c),g=a(10),x=a(10);for(let T=-1;T<=1;T++)for(let S=-1;S<=1;S++){let A=u(a(S),a(T)),E=y_(u(__tsover_add(__tsover_add(f.x,A.x),p),__tsover_add(__tsover_add(f.y,A.y),p))),M=z(__tsover_add(E.x,__tsover_mul(O(__tsover_add(_,__tsover_mul(E.x,Et))),.15)),.05,.95),$=z(__tsover_add(E.y,__tsover_mul(J(__tsover_add(__tsover_mul(_,.7),__tsover_mul(E.y,Et))),.15)),.05,.95),L=te(u(__tsover_sub(h.x,__tsover_add(A.x,M)),__tsover_sub(h.y,__tsover_add(A.y,$))));x=ue(x,w(L,g)),g=ue(g,L)}return u(g,x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"scaledUV"},{type:"i",name:"animT"},{type:"i",name:"seed"}],body:[0,[[13,"cell",[6,"std.floor",["scaledUV"]]],[13,"localUV",[6,"std.fract",["scaledUV"]]],[12,"d1",[6,"d.f32",[[5,"10"]]]],[12,"d2",[6,"d.f32",[[5,"10"]]]],[14,[12,"ny",[4,"-",[5,"1"]]],[1,"ny","<=",[5,"1"]],[102,"++","ny"],[0,[[14,[12,"nx",[4,"-",[5,"1"]]],[1,"nx","<=",[5,"1"]],[102,"++","nx"],[0,[[13,"offset",[6,"d.vec2f",[[6,"d.f32",["nx"]],[6,"d.f32",["ny"]]]]],[13,"h",[6,"cellHash2",[[6,"d.vec2f",[[1,[1,[7,"cell","x"],"+",[7,"offset","x"]],"+","seed"],[1,[1,[7,"cell","y"],"+",[7,"offset","y"]],"+","seed"]]]]]],[13,"pointX",[6,"std.clamp",[[1,[7,"h","x"],"+",[1,[6,"std.sin",[[1,"animT","+",[1,[7,"h","x"],"*","TAU"]]]],"*",[5,"0.15"]]],[5,"0.05"],[5,"0.95"]]]],[13,"pointY",[6,"std.clamp",[[1,[7,"h","y"],"+",[1,[6,"std.cos",[[1,[1,"animT","*",[5,"0.7"]],"+",[1,[7,"h","y"],"*","TAU"]]]],"*",[5,"0.15"]]],[5,"0.05"],[5,"0.95"]]]],[13,"dd",[6,"std.length",[[6,"d.vec2f",[[1,[7,"localUV","x"],"-",[1,[7,"offset","x"],"+","pointX"]],[1,[7,"localUV","y"],"-",[1,[7,"offset","y"],"+","pointY"]]]]]]],[2,"d2","=",[6,"std.min",["d2",[6,"std.max",["dd","d1"]]]]],[2,"d1","=",[6,"std.min",["d1","dd"]]]]]]]]],[10,[6,"d.vec2f",["d1","d2"]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,"d.f32":()=>a,"d.vec2f":()=>u,cellHash2:()=>y_,"std.clamp":()=>z,"std.sin":()=>O,TAU:()=>Et,"std.cos":()=>J,"std.length":()=>te,"std.min":()=>ue,"std.max":()=>w}})&&l.f)({})).$name(`${r}${i}`):d=y.fn([u,a,a,a,a],u)((l=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(l.f=((c,_,p,f,h)=>{"use gpu";let g=__tsover_mul(_,.7),x=K(c),T=ve(c),S=a(10),A=a(10);for(let E=-1;E<=1;E++)for(let M=-1;M<=1;M++){let $=u(a(M),a(E)),L=y_(u(__tsover_add(__tsover_add(x.x,$.x),p),__tsover_add(__tsover_add(x.y,$.y),p))),B=__tsover_add(L.x,__tsover_mul(O(__tsover_add(_,__tsover_mul(L.x,Et))),.15)),D=__tsover_add(L.y,__tsover_mul(J(__tsover_add(g,__tsover_mul(L.y,Et))),.15)),G=Z(.5,z(B,.05,.95),f),I=Z(.5,z(D,.05,.95),f),X=__tsover_sub(T.x,__tsover_add($.x,G)),H=__tsover_sub(T.y,__tsover_add($.y,I)),ee=__tsover_add(__tsover_mul(X,X),__tsover_mul(H,H)),Q=__tsover_add(W(X),W(H)),de=w(W(X),W(H)),Ee=ee;Ee=F(Ee,Q,h===1),Ee=F(Ee,de,h===2),A=ue(A,w(Ee,S)),S=ue(S,Ee)}return u(S,A)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"scaledUV"},{type:"i",name:"animT"},{type:"i",name:"seed"},{type:"i",name:"jitterAmount"},{type:"i",name:"metric"}],body:[0,[[13,"animTSlow",[1,"animT","*",[5,"0.7"]]],[13,"cell",[6,"std.floor",["scaledUV"]]],[13,"localUV",[6,"std.fract",["scaledUV"]]],[12,"d1",[6,"d.f32",[[5,"10"]]]],[12,"d2",[6,"d.f32",[[5,"10"]]]],[14,[12,"ny",[4,"-",[5,"1"]]],[1,"ny","<=",[5,"1"]],[102,"++","ny"],[0,[[14,[12,"nx",[4,"-",[5,"1"]]],[1,"nx","<=",[5,"1"]],[102,"++","nx"],[0,[[13,"offset",[6,"d.vec2f",[[6,"d.f32",["nx"]],[6,"d.f32",["ny"]]]]],[13,"h",[6,"cellHash2",[[6,"d.vec2f",[[1,[1,[7,"cell","x"],"+",[7,"offset","x"]],"+","seed"],[1,[1,[7,"cell","y"],"+",[7,"offset","y"]],"+","seed"]]]]]],[13,"px",[1,[7,"h","x"],"+",[1,[6,"std.sin",[[1,"animT","+",[1,[7,"h","x"],"*","TAU"]]]],"*",[5,"0.15"]]]],[13,"py",[1,[7,"h","y"],"+",[1,[6,"std.cos",[[1,"animTSlow","+",[1,[7,"h","y"],"*","TAU"]]]],"*",[5,"0.15"]]]],[13,"jx",[6,"std.mix",[[5,"0.5"],[6,"std.clamp",["px",[5,"0.05"],[5,"0.95"]]],"jitterAmount"]]],[13,"jy",[6,"std.mix",[[5,"0.5"],[6,"std.clamp",["py",[5,"0.05"],[5,"0.95"]]],"jitterAmount"]]],[13,"deltaX",[1,[7,"localUV","x"],"-",[1,[7,"offset","x"],"+","jx"]]],[13,"deltaY",[1,[7,"localUV","y"],"-",[1,[7,"offset","y"],"+","jy"]]],[13,"dEuclid",[1,[1,"deltaX","*","deltaX"],"+",[1,"deltaY","*","deltaY"]]],[13,"dManhattan",[1,[6,"std.abs",["deltaX"]],"+",[6,"std.abs",["deltaY"]]]],[13,"dChebyshev",[6,"std.max",[[6,"std.abs",["deltaX"]],[6,"std.abs",["deltaY"]]]]],[12,"dd","dEuclid"],[2,"dd","=",[6,"std.select",["dd","dManhattan",[1,"metric","===",[5,"1"]]]]],[2,"dd","=",[6,"std.select",["dd","dChebyshev",[1,"metric","===",[5,"2"]]]]],[2,"d2","=",[6,"std.min",["d2",[6,"std.max",["dd","d1"]]]]],[2,"d1","=",[6,"std.min",["d1","dd"]]]]]]]]],[10,[6,"d.vec2f",["d1","d2"]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,"d.f32":()=>a,"d.vec2f":()=>u,cellHash2:()=>y_,"std.sin":()=>O,TAU:()=>Et,"std.cos":()=>J,"std.mix":()=>Z,"std.clamp":()=>z,"std.abs":()=>W,"std.max":()=>w,"std.select":()=>F,"std.min":()=>ue}})&&l.f)({})).$name(`${r}${i}`),B3.set(o,d),d}var B3=new Map,ND={f1:0,f2:1,f2MinusF1:2,f1PlusF2:3,f1TimesF2:4},qD={euclidean:0,manhattan:1,chebyshev:2},I3=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=r===0,i=F(t,$e(t),n),d=F(s,$e(s),n),l=i;return l=F(l,d,o===1),l=F(l,__tsover_sub(d,i),o===2),l=F(l,__tsover_add(i,d),o===3),l=F(l,__tsover_mul(i,d),o===4),l}),{v:2,name:void 0,ast:{params:[{type:"i",name:"d1"},{type:"i",name:"d2"},{type:"i",name:"metric"},{type:"i",name:"mode"}],body:[0,[[13,"isEuclid",[1,"metric","===",[5,"0"]]],[13,"sd1",[6,"std.select",["d1",[6,"std.sqrt",["d1"]],"isEuclid"]]],[13,"sd2",[6,"std.select",["d2",[6,"std.sqrt",["d2"]],"isEuclid"]]],[12,"raw","sd1"],[2,"raw","=",[6,"std.select",["raw","sd2",[1,"mode","===",[5,"1"]]]]],[2,"raw","=",[6,"std.select",["raw",[1,"sd2","-","sd1"],[1,"mode","===",[5,"2"]]]]],[2,"raw","=",[6,"std.select",["raw",[1,"sd1","+","sd2"],[1,"mode","===",[5,"3"]]]]],[2,"raw","=",[6,"std.select",["raw",[1,"sd1","*","sd2"],[1,"mode","===",[5,"4"]]]]],[10,"raw"]]]},externals:{"std.select":()=>F,"std.sqrt":()=>$e}})&&e.f)({})),Y3=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=w(__tsover_add(t,s),1e-4);return z(Ye(z(__tsover_div(__tsover_mul(t,2),o),0,1),r),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"d1"},{type:"i",name:"d2"},{type:"i",name:"power"}],body:[0,[[13,"safeSum",[6,"std.max",[[1,"d1","+","d2"],[5,"0.0001"]]]],[13,"normalizedDist",[6,"std.clamp",[[1,[1,"d1","*",[5,"2"]],"/","safeSum"],[5,"0"],[5,"1"]]]],[10,[6,"std.clamp",[[6,"std.pow",["normalizedDist","power"]],[5,"0"],[5,"1"]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,"std.pow":()=>Ye}})&&e.f)({})),W3=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=w(__tsover_add(t,s),1e-4),n=__tsover_div(__tsover_sub(s,t),o);return ce(0,__tsover_add(r,.001),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"d1"},{type:"i",name:"d2"},{type:"i",name:"softness"}],body:[0,[[13,"safeSum",[6,"std.max",[[1,"d1","+","d2"],[5,"0.0001"]]]],[13,"edgeMetric",[1,[1,"d2","-","d1"],"/","safeSum"]],[10,[6,"std.smoothstep",[[5,"0"],[1,"softness","+",[5,"0.001"]],"edgeMetric"]]]]]},externals:{"std.max":()=>w,"std.smoothstep":()=>ce}})&&e.f)({})),O3=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return Mt(-__tsover_mul(__tsover_mul(t,t),s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"sharpness"}],body:[0,[[10,[6,"std.exp",[[4,"-",[1,[1,"dist","*","dist"],"*","sharpness"]]]]]]]},externals:{"std.exp":()=>Mt}})&&e.f)({})),ef=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return Mt(__tsover_mul(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s)),-r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"du"},{type:"i",name:"dv"},{type:"i",name:"sharpness"}],body:[0,[[10,[6,"std.exp",[[1,[1,[1,"du","*","du"],"+",[1,"dv","*","dv"]],"*",[4,"-","sharpness"]]]]]]]},externals:{"std.exp":()=>Mt}})&&e.f)({})),BO=y.fn([u,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(__tsover_sub(t.x,r),s),d=__tsover_sub(t.y,o),l=__tsover_add(__tsover_mul(i,i),__tsover_mul(d,d));return Mt(__tsover_div(__tsover_mul(-.5,l),n))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"lx"},{type:"i",name:"ly"},{type:"i",name:"sizeSq"}],body:[0,[[13,"dx",[1,[1,[7,"uv","x"],"-","lx"],"*","aspect"]],[13,"dy",[1,[7,"uv","y"],"-","ly"]],[13,"dd2",[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]],[10,[6,"std.exp",[[1,[1,[4,"-",[5,"0.5"]],"*","dd2"],"/","sizeSq"]]]]]]},externals:{"std.exp":()=>Mt}})&&e.f)({})),V3=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return Ye(__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(t,s),r)),.5),.5),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"angle"},{type:"i",name:"count"},{type:"i",name:"phase"},{type:"i",name:"sharpness"}],body:[0,[[13,"t",[1,[1,[6,"std.sin",[[1,[1,"angle","*","count"],"+","phase"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[10,[6,"std.pow",["t","sharpness"]]]]]},externals:{"std.sin":()=>O,"std.pow":()=>Ye}})&&e.f)({})),tf=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return Ye(W(J(__tsover_mul(t,s))),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"angle"},{type:"i",name:"halfCount"},{type:"i",name:"power"}],body:[0,[[10,[6,"std.pow",[[6,"std.abs",[[6,"std.cos",[[1,"angle","*","halfCount"]]]]],"power"]]]]]},externals:{"std.pow":()=>Ye,"std.abs":()=>W,"std.cos":()=>J}})&&e.f)({})),N3=y.fn([u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=bt(t.y,t.x);return v(s,__tsover_sub(s,__tsover_mul(Et,K(__tsover_div(s,Et)))),ce(-.15,.15,t.x))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"delta"}],body:[0,[[13,"angle",[6,"std.atan2",[[7,"delta","y"],[7,"delta","x"]]]],[13,"angleWrapped",[1,"angle","-",[1,"TAU","*",[6,"std.floor",[[1,"angle","/","TAU"]]]]]],[13,"blend",[6,"std.smoothstep",[[4,"-",[5,"0.15"]],[5,"0.15"],[7,"delta","x"]]]],[10,[6,"d.vec3f",["angle","angleWrapped","blend"]]]]]},externals:{"std.atan2":()=>bt,TAU:()=>Et,"std.floor":()=>K,"std.smoothstep":()=>ce,"d.vec3f":()=>v}})&&e.f)({})),bp=y.fn([a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=w(o,1e-4);return v(__tsover_sub(1,ce(0,n,W(__tsover_sub(t,__tsover_add(s,r))))),__tsover_sub(1,ce(0,n,W(__tsover_sub(t,s)))),__tsover_sub(1,ce(0,n,W(__tsover_sub(t,__tsover_sub(s,r))))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"center"},{type:"i",name:"spread"},{type:"i",name:"width"}],body:[0,[[13,"w",[6,"std.max",["width",[5,"0.0001"]]]],[13,"r",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],"w",[6,"std.abs",[[1,"dist","-",[1,"center","+","spread"]]]]]]]],[13,"g",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],"w",[6,"std.abs",[[1,"dist","-","center"]]]]]]],[13,"b",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],"w",[6,"std.abs",[[1,"dist","-",[1,"center","-","spread"]]]]]]]],[10,[6,"d.vec3f",["r","g","b"]]]]]},externals:{"std.max":()=>w,"std.smoothstep":()=>ce,"std.abs":()=>W,"d.vec3f":()=>v}})&&e.f)({})),q3=y.fn([u,u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=u(__tsover_sub(r.x,s.x),__tsover_sub(r.y,s.y)),n=u(__tsover_sub(t.x,s.x),__tsover_sub(t.y,s.y)),i=__tsover_add(__tsover_mul(n.x,o.x),__tsover_mul(n.y,o.y)),d=__tsover_add(__tsover_mul(o.x,o.x),__tsover_mul(o.y,o.y)),l=z(__tsover_div(i,w(d,1e-4)),0,1),c=u(__tsover_add(s.x,__tsover_mul(o.x,l)),__tsover_add(s.y,__tsover_mul(o.y,l))),_=u(__tsover_sub(t.x,c.x),__tsover_sub(t.y,c.y));return u(l,$e(__tsover_add(__tsover_mul(_.x,_.x),__tsover_mul(_.y,_.y))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"a"},{type:"i",name:"b"}],body:[0,[[13,"lineVec",[6,"d.vec2f",[[1,[7,"b","x"],"-",[7,"a","x"]],[1,[7,"b","y"],"-",[7,"a","y"]]]]],[13,"toPoint",[6,"d.vec2f",[[1,[7,"p","x"],"-",[7,"a","x"]],[1,[7,"p","y"],"-",[7,"a","y"]]]]],[13,"dotProduct",[1,[1,[7,"toPoint","x"],"*",[7,"lineVec","x"]],"+",[1,[7,"toPoint","y"],"*",[7,"lineVec","y"]]]],[13,"lineLengthSq",[1,[1,[7,"lineVec","x"],"*",[7,"lineVec","x"]],"+",[1,[7,"lineVec","y"],"*",[7,"lineVec","y"]]]],[13,"t",[6,"std.clamp",[[1,"dotProduct","/",[6,"std.max",["lineLengthSq",[5,"0.0001"]]]],[5,"0"],[5,"1"]]]],[13,"closestPoint",[6,"d.vec2f",[[1,[7,"a","x"],"+",[1,[7,"lineVec","x"],"*","t"]],[1,[7,"a","y"],"+",[1,[7,"lineVec","y"],"*","t"]]]]],[13,"distVec",[6,"d.vec2f",[[1,[7,"p","x"],"-",[7,"closestPoint","x"]],[1,[7,"p","y"],"-",[7,"closestPoint","y"]]]]],[10,[6,"d.vec2f",["t",[6,"std.sqrt",[[1,[1,[7,"distVec","x"],"*",[7,"distVec","x"]],"+",[1,[7,"distVec","y"],"*",[7,"distVec","y"]]]]]]]]]]},externals:{"d.vec2f":()=>u,"std.clamp":()=>z,"std.max":()=>w,"std.sqrt":()=>$e}})&&e.f)({})),X3=y.fn([a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Z(r,o,s),l=w(Z(n,i,s),1e-4),c=__tsover_div(t,w(d,1e-4)),_=__tsover_add(1,l),p=Ye(__tsover_sub(1,ce(1,_,c)),__tsover_add(1,__tsover_mul(l,1.5)));return u(ce(__tsover_sub(1,l),__tsover_add(1,l),c),p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"t"},{type:"i",name:"startThickness"},{type:"i",name:"endThickness"},{type:"i",name:"startSoftness"},{type:"i",name:"endSoftness"}],body:[0,[[13,"thickness",[6,"std.mix",["startThickness","endThickness","t"]]],[13,"softness",[6,"std.max",[[6,"std.mix",["startSoftness","endSoftness","t"]],[5,"0.0001"]]]],[13,"normalizedDist",[1,"dist","/",[6,"std.max",["thickness",[5,"0.0001"]]]]],[13,"edgeEnd",[1,[5,"1"],"+","softness"]],[13,"alphaBase",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"1"],"edgeEnd","normalizedDist"]]]],[13,"softnessFactor",[1,[5,"1"],"+",[1,"softness","*",[5,"1.5"]]]],[13,"alpha",[6,"std.pow",["alphaBase","softnessFactor"]]],[13,"colorGradientStart",[1,[5,"1"],"-","softness"]],[13,"colorGradientEnd",[1,[5,"1"],"+","softness"]],[13,"colorT",[6,"std.smoothstep",["colorGradientStart","colorGradientEnd","normalizedDist"]]],[10,[6,"d.vec2f",["colorT","alpha"]]]]]},externals:{"std.mix":()=>Z,"std.max":()=>w,"std.smoothstep":()=>ce,"std.pow":()=>Ye,"d.vec2f":()=>u}})&&e.f)({})),sf=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return Mt(__tsover_div(__tsover_mul(__tsover_mul(__tsover_sub(t,s),__tsover_sub(t,s)),-1),__tsover_mul(r,r)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"u"},{type:"i",name:"center"},{type:"i",name:"width"}],body:[0,[[10,[6,"std.exp",[[1,[1,[1,[1,"u","-","center"],"*",[1,"u","-","center"]],"*",[4,"-",[5,"1"]]],"/",[1,"width","*","width"]]]]]]]},externals:{"std.exp":()=>Mt}})&&e.f)({})),g_=y.fn([a,v,v,v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=ce(0,.5,t),i=ce(.55,1.15,t);return Z(Z(o,r,v(n)),s,v(i)).mul(z(t,0,1.6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"heat"},{type:"i",name:"hot"},{type:"i",name:"mid"},{type:"i",name:"fringe"}],body:[0,[[13,"toMid",[6,"std.smoothstep",[[5,"0"],[5,"0.5"],"heat"]]],[13,"toHot",[6,"std.smoothstep",[[5,"0.55"],[5,"1.15"],"heat"]]],[13,"rgb",[6,"std.mix",[[6,"std.mix",["fringe","mid",[6,"d.vec3f",["toMid"]]]],"hot",[6,"d.vec3f",["toHot"]]]]],[10,[6,[7,"rgb","mul"],[[6,"std.clamp",["heat",[5,"0"],[5,"1.6"]]]]]]]]},externals:{"std.smoothstep":()=>ce,"std.mix":()=>Z,"d.vec3f":()=>v,"std.clamp":()=>z}})&&e.f)({})),IO=y.fn([a,v,v,v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=g_(__tsover_mul(t,1.08),s,r,o),i=g_(t,s,r,o),d=g_(__tsover_mul(t,.88),s,r,o);return v(n.x,i.y,d.z)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"heat"},{type:"i",name:"hot"},{type:"i",name:"mid"},{type:"i",name:"fringe"}],body:[0,[[13,"rampR",[6,"heatRamp3",[[1,"heat","*",[5,"1.08"]],"hot","mid","fringe"]]],[13,"rampG",[6,"heatRamp3",["heat","hot","mid","fringe"]]],[13,"rampB",[6,"heatRamp3",[[1,"heat","*",[5,"0.88"]],"hot","mid","fringe"]]],[10,[6,"d.vec3f",[[7,"rampR","x"],[7,"rampG","y"],[7,"rampB","z"]]]]]]},externals:{heatRamp3:()=>g_,"d.vec3f":()=>v}})&&e.f)({})),XD=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s,__tsover_sub(1,r));return __tsover_sub(1,ce(o,s,t))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"radius"},{type:"i",name:"feather"}],body:[0,[[13,"falloffStart",[1,"radius","*",[1,[5,"1"],"-","feather"]]],[10,[1,[5,"1"],"-",[6,"std.smoothstep",["falloffStart","radius","dist"]]]]]]},externals:{"std.smoothstep":()=>ce}})&&e.f)({})),HD=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return V3(t,s,r,__tsover_mul(__tsover_div(1,__tsover_add(o,.05)),.3))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"angle"},{type:"i",name:"count"},{type:"i",name:"phase"},{type:"i",name:"softness"}],body:[0,[[13,"sharpness",[1,[1,[5,"1"],"/",[1,"softness","+",[5,"0.05"]]],"*",[5,"0.3"]]],[10,[6,"angularSineLobes",["angle","count","phase","sharpness"]]]]]},externals:{angularSineLobes:()=>V3}})&&e.f)({})),jD=y.fn([u,u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Vt(s),n=r.x,i=__tsover_sub(1,r.y),d=__tsover_sub(__tsover_mul(t.x,o),__tsover_mul(n,o)),l=__tsover_sub(t.y,i);return u($e(__tsover_add(__tsover_mul(d,d),__tsover_mul(l,l))),bt(l,d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"center"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"cx",[7,"center","x"]],[13,"cy",[1,[5,"1"],"-",[7,"center","y"]]],[13,"dx",[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,"cx","*","aspect"]]],[13,"dy",[1,[7,"uv","y"],"-","cy"]],[13,"dist",[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"angle",[6,"std.atan2",["dy","dx"]]],[10,[6,"d.vec2f",["dist","angle"]]]]]},externals:{"geom.aspectOf":()=>Vt,"std.sqrt":()=>$e,"std.atan2":()=>bt,"d.vec2f":()=>u}})&&e.f)({})),YO=y.fn([u,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Vt(s),n=__tsover_mul(__tsover_sub(t.x,.5),o),i=__tsover_sub(t.y,.5),d=__tsover_add(__tsover_mul(n,n),__tsover_mul(i,i));return z(__tsover_sub(1,__tsover_mul(d,r)),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"strength"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"vigX",[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"]],[13,"vigY",[1,[7,"uv","y"],"-",[5,"0.5"]]],[13,"vigD2",[1,[1,"vigX","*","vigX"],"+",[1,"vigY","*","vigY"]]],[10,[6,"std.clamp",[[1,[5,"1"],"-",[1,"vigD2","*","strength"]],[5,"0"],[5,"1"]]]]]]},externals:{"geom.aspectOf":()=>Vt,"std.clamp":()=>z}})&&e.f)({})),WO=y.fn([b,v],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.xyz,o=z(v(1,1,1).sub(v(1,1,1).sub(z(r,v(0),v(1))).mul(v(1,1,1).sub(z(s,v(0),v(1))))).add(s.mul(.16)),v(0),v(1)),n=z(cp(s),0,1);return b(o,z(__tsover_add(t.w,__tsover_mul(n,.85)),0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"leakRgb"}],body:[0,[[13,"base",[7,"color","xyz"]],[13,"screened",[6,[7,[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]],"sub"],[[6,[7,[6,[7,[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]],"sub"],[[6,"std.clamp",["base",[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]]],"mul"],[[6,[7,[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]],"sub"],[[6,"std.clamp",["leakRgb",[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]]]]]]]],[13,"lifted",[6,[7,"screened","add"],[[6,[7,"leakRgb","mul"],[[5,"0.16"]]]]]],[13,"outRgb",[6,"std.clamp",["lifted",[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]],[13,"leakLuma",[6,"std.clamp",[[6,"tone.luma601Dot",["leakRgb"]],[5,"0"],[5,"1"]]]],[13,"outA",[6,"std.clamp",[[1,[7,"color","w"],"+",[1,"leakLuma","*",[5,"0.85"]]],[5,"0"],[5,"1"]]]],[10,[6,"d.vec4f",["outRgb","outA"]]]]]},externals:{"d.vec3f":()=>v,"std.clamp":()=>z,"tone.luma601Dot":()=>cp,"d.vec4f":()=>b}})&&e.f)({})),OO=y.fn([u,a,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=u(__tsover_mul(t.x,s),t.y),n=u(__tsover_mul(r.x,s),__tsover_sub(1,r.y)),i=u(__tsover_mul(s,.5),.5).sub(n),d=te(i),l=F(__tsover_div(i.x,w(d,.001)),a(1),d<.02),c=F(__tsover_div(i.y,w(d,.001)),a(0),d<.02),_=__tsover_sub(o.x,n.x),p=__tsover_sub(o.y,n.y);return u(__tsover_add(__tsover_mul(_,l),__tsover_mul(p,c)),__tsover_sub(__tsover_mul(p,l),__tsover_mul(_,c)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"anchorRaw"}],body:[0,[[13,"pA",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"anchor",[6,"d.vec2f",[[1,[7,"anchorRaw","x"],"*","aspect"],[1,[5,"1"],"-",[7,"anchorRaw","y"]]]]],[13,"toCenter",[6,[7,[6,"d.vec2f",[[1,"aspect","*",[5,"0.5"]],[5,"0.5"]]],"sub"],["anchor"]]],[13,"cLen",[6,"std.length",["toCenter"]]],[13,"dirX",[6,"std.select",[[1,[7,"toCenter","x"],"/",[6,"std.max",["cLen",[5,"0.001"]]]],[6,"d.f32",[[5,"1"]]],[1,"cLen","<",[5,"0.02"]]]]],[13,"dirY",[6,"std.select",[[1,[7,"toCenter","y"],"/",[6,"std.max",["cLen",[5,"0.001"]]]],[6,"d.f32",[[5,"0"]]],[1,"cLen","<",[5,"0.02"]]]]],[13,"relX",[1,[7,"pA","x"],"-",[7,"anchor","x"]]],[13,"relY",[1,[7,"pA","y"],"-",[7,"anchor","y"]]],[10,[6,"d.vec2f",[[1,[1,"relX","*","dirX"],"+",[1,"relY","*","dirY"]],[1,[1,"relY","*","dirX"],"-",[1,"relX","*","dirY"]]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.select":()=>F,"std.max":()=>w,"d.f32":()=>a}})&&e.f)({}));var Wn=1e-4,ei=1.0471975512,bn=6/29,wp=500,Tp=200,x_=bn*bn*bn,Ia=4/29,b_=1/(3*bn*bn),w_=3*bn*bn,dr=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return v(__tsover_sub(__tsover_sub(__tsover_mul(t.x,1.2249401),__tsover_mul(t.y,.2249404)),__tsover_mul(t.z,0)),__tsover_add(__tsover_add(__tsover_mul(t.x,-.0420569),__tsover_mul(t.y,1.0420571)),__tsover_mul(t.z,0)),__tsover_add(__tsover_sub(__tsover_mul(t.x,-.0196376),__tsover_mul(t.y,.0786361)),__tsover_mul(t.z,1.0982735)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p3"}],body:[0,[[13,"r",[1,[1,[1,[7,"p3","x"],"*",[5,"1.2249401"]],"-",[1,[7,"p3","y"],"*",[5,"0.2249404"]]],"-",[1,[7,"p3","z"],"*",[5,"0"]]]],[13,"g",[1,[1,[1,[7,"p3","x"],"*",[4,"-",[5,"0.0420569"]]],"+",[1,[7,"p3","y"],"*",[5,"1.0420571"]]],"+",[1,[7,"p3","z"],"*",[5,"0"]]]],[13,"b",[1,[1,[1,[7,"p3","x"],"*",[4,"-",[5,"0.0196376"]]],"-",[1,[7,"p3","y"],"*",[5,"0.0786361"]]],"+",[1,[7,"p3","z"],"*",[5,"1.0982735"]]]],[10,[6,"d.vec3f",["r","g","b"]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})),Ms=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return v(__tsover_add(__tsover_add(__tsover_mul(t.x,.8224621),__tsover_mul(t.y,.177538)),__tsover_mul(t.z,0)),__tsover_add(__tsover_add(__tsover_mul(t.x,.0331941),__tsover_mul(t.y,.9668058)),__tsover_mul(t.z,0)),__tsover_add(__tsover_add(__tsover_mul(t.x,.0170826),__tsover_mul(t.y,.0723974)),__tsover_mul(t.z,.9105199)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"srgb"}],body:[0,[[13,"r",[1,[1,[1,[7,"srgb","x"],"*",[5,"0.8224621"]],"+",[1,[7,"srgb","y"],"*",[5,"0.177538"]]],"+",[1,[7,"srgb","z"],"*",[5,"0"]]]],[13,"g",[1,[1,[1,[7,"srgb","x"],"*",[5,"0.0331941"]],"+",[1,[7,"srgb","y"],"*",[5,"0.9668058"]]],"+",[1,[7,"srgb","z"],"*",[5,"0"]]]],[13,"b",[1,[1,[1,[7,"srgb","x"],"*",[5,"0.0170826"]],"+",[1,[7,"srgb","y"],"*",[5,"0.0723974"]]],"+",[1,[7,"srgb","z"],"*",[5,"0.9105199"]]]],[10,[6,"d.vec3f",["r","g","b"]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})),rn=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=__tsover_add(__tsover_add(__tsover_mul(s,.4122214708),__tsover_mul(r,.5363325363)),__tsover_mul(o,.0514459929)),i=__tsover_add(__tsover_mul(s,.2119034982),__tsover_add(__tsover_mul(r,.6806995451),__tsover_mul(o,.1073969566))),d=__tsover_add(__tsover_add(__tsover_mul(s,.0883024619),__tsover_mul(r,.2817188376)),__tsover_mul(o,.6299787005)),l=__tsover_mul(ir(n),Ye(W(n),__tsover_div(1,3))),c=__tsover_mul(ir(i),Ye(W(i),__tsover_div(1,3))),_=__tsover_mul(ir(d),Ye(W(d),__tsover_div(1,3)));return v(__tsover_sub(__tsover_add(__tsover_mul(l,.2104542553),__tsover_mul(c,.793617785)),__tsover_mul(_,.0040720468)),__tsover_add(__tsover_sub(__tsover_mul(l,1.9779984951),__tsover_mul(c,2.428592205)),__tsover_mul(_,.4505937099)),__tsover_sub(__tsover_add(__tsover_mul(l,.0259040371),__tsover_mul(c,.7827717662)),__tsover_mul(_,.808675766)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[13,"r",[7,"rgb","x"]],[13,"g",[7,"rgb","y"]],[13,"b",[7,"rgb","z"]],[13,"l",[1,[1,[1,"r","*",[5,"0.4122214708"]],"+",[1,"g","*",[5,"0.5363325363"]]],"+",[1,"b","*",[5,"0.0514459929"]]]],[13,"m",[1,[1,"r","*",[5,"0.2119034982"]],"+",[1,[1,"g","*",[5,"0.6806995451"]],"+",[1,"b","*",[5,"0.1073969566"]]]]],[13,"s",[1,[1,[1,"r","*",[5,"0.0883024619"]],"+",[1,"g","*",[5,"0.2817188376"]]],"+",[1,"b","*",[5,"0.6299787005"]]]],[13,"l_",[1,[6,"std.sign",["l"]],"*",[6,"std.pow",[[6,"std.abs",["l"]],[1,[5,"1"],"/",[5,"3"]]]]]],[13,"m_",[1,[6,"std.sign",["m"]],"*",[6,"std.pow",[[6,"std.abs",["m"]],[1,[5,"1"],"/",[5,"3"]]]]]],[13,"s_",[1,[6,"std.sign",["s"]],"*",[6,"std.pow",[[6,"std.abs",["s"]],[1,[5,"1"],"/",[5,"3"]]]]]],[10,[6,"d.vec3f",[[1,[1,[1,"l_","*",[5,"0.2104542553"]],"+",[1,"m_","*",[5,"0.793617785"]]],"-",[1,"s_","*",[5,"0.0040720468"]]],[1,[1,[1,"l_","*",[5,"1.9779984951"]],"-",[1,"m_","*",[5,"2.428592205"]]],"+",[1,"s_","*",[5,"0.4505937099"]]],[1,[1,[1,"l_","*",[5,"0.0259040371"]],"+",[1,"m_","*",[5,"0.7827717662"]]],"-",[1,"s_","*",[5,"0.808675766"]]]]]]]]},externals:{"std.sign":()=>ir,"std.pow":()=>Ye,"std.abs":()=>W,"d.vec3f":()=>v}})&&e.f)({})),Ro=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=__tsover_add(__tsover_add(s,__tsover_mul(r,.3963377774)),__tsover_mul(o,.2158037573)),i=__tsover_sub(__tsover_sub(s,__tsover_mul(r,.1055613458)),__tsover_mul(o,.0638541728)),d=__tsover_sub(__tsover_sub(s,__tsover_mul(r,.0894841775)),__tsover_mul(o,1.291485548)),l=Ye(n,3),c=Ye(i,3),_=Ye(d,3);return v(__tsover_add(__tsover_sub(__tsover_mul(l,4.0767416621),__tsover_mul(c,3.3077115913)),__tsover_mul(_,.2309699292)),__tsover_sub(__tsover_add(__tsover_mul(l,-1.2684380046),__tsover_mul(c,2.6097574011)),__tsover_mul(_,.3413193965)),__tsover_add(__tsover_sub(__tsover_mul(l,-.0041960863),__tsover_mul(c,.7034186147)),__tsover_mul(_,1.707614701)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lab"}],body:[0,[[13,"L",[7,"lab","x"]],[13,"a",[7,"lab","y"]],[13,"b",[7,"lab","z"]],[13,"l_",[1,[1,"L","+",[1,"a","*",[5,"0.3963377774"]]],"+",[1,"b","*",[5,"0.2158037573"]]]],[13,"m_",[1,[1,"L","-",[1,"a","*",[5,"0.1055613458"]]],"-",[1,"b","*",[5,"0.0638541728"]]]],[13,"s_",[1,[1,"L","-",[1,"a","*",[5,"0.0894841775"]]],"-",[1,"b","*",[5,"1.291485548"]]]],[13,"l",[6,"std.pow",["l_",[5,"3"]]]],[13,"m",[6,"std.pow",["m_",[5,"3"]]]],[13,"s",[6,"std.pow",["s_",[5,"3"]]]],[10,[6,"d.vec3f",[[1,[1,[1,"l","*",[5,"4.0767416621"]],"-",[1,"m","*",[5,"3.3077115913"]]],"+",[1,"s","*",[5,"0.2309699292"]]],[1,[1,[1,"l","*",[4,"-",[5,"1.2684380046"]]],"+",[1,"m","*",[5,"2.6097574011"]]],"-",[1,"s","*",[5,"0.3413193965"]]],[1,[1,[1,"l","*",[4,"-",[5,"0.0041960863"]]],"-",[1,"m","*",[5,"0.7034186147"]]],"+",[1,"s","*",[5,"1.707614701"]]]]]]]]},externals:{"std.pow":()=>Ye,"d.vec3f":()=>v}})&&e.f)({})),Ad=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z;return v(s,$e(__tsover_add(__tsover_mul(r,r),__tsover_mul(o,o))),bt(o,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lab"}],body:[0,[[13,"L",[7,"lab","x"]],[13,"a",[7,"lab","y"]],[13,"b",[7,"lab","z"]],[13,"C",[6,"std.sqrt",[[1,[1,"a","*","a"],"+",[1,"b","*","b"]]]]],[13,"h",[6,"std.atan2",["b","a"]]],[10,[6,"d.vec3f",["L","C","h"]]]]]},externals:{"std.sqrt":()=>$e,"std.atan2":()=>bt,"d.vec3f":()=>v}})&&e.f)({})),Ii=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z;return v(s,__tsover_mul(r,J(o)),__tsover_mul(r,O(o)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lch"}],body:[0,[[13,"L",[7,"lch","x"]],[13,"C",[7,"lch","y"]],[13,"h",[7,"lch","z"]],[10,[6,"d.vec3f",["L",[1,"C","*",[6,"std.cos",["h"]]],[1,"C","*",[6,"std.sin",["h"]]]]]]]]},externals:{"d.vec3f":()=>v,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),Sp=y.fn([a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=a(0),n=a(0),i=a(0);return r<1?(o=t,n=s):r<2?(o=s,n=t):r<3?(n=t,i=s):r<4?(n=s,i=t):r<5?(o=s,i=t):(o=t,i=s),v(o,n,i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"c"},{type:"i",name:"x"},{type:"i",name:"sector"}],body:[0,[[12,"r",[6,"d.f32",[[5,"0"]]]],[12,"g",[6,"d.f32",[[5,"0"]]]],[12,"b",[6,"d.f32",[[5,"0"]]]],[11,[1,"sector","<",[5,"1"]],[0,[[2,"r","=","c"],[2,"g","=","x"]]],[11,[1,"sector","<",[5,"2"]],[0,[[2,"r","=","x"],[2,"g","=","c"]]],[11,[1,"sector","<",[5,"3"]],[0,[[2,"g","=","c"],[2,"b","=","x"]]],[11,[1,"sector","<",[5,"4"]],[0,[[2,"g","=","x"],[2,"b","=","c"]]],[11,[1,"sector","<",[5,"5"]],[0,[[2,"r","=","x"],[2,"b","=","c"]]],[0,[[2,"r","=","c"],[2,"b","=","x"]]]]]]]],[10,[6,"d.vec3f",["r","g","b"]]]]]},externals:{"d.f32":()=>a,"d.vec3f":()=>v}})&&e.f)({})),lc=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=w(w(s,r),o),i=ue(ue(s,r),o),d=__tsover_sub(n,i),l=__tsover_mul(__tsover_add(n,i),.5),c=w(__tsover_sub(1,W(__tsover_sub(__tsover_mul(l,2),1))),Wn),_=__tsover_div(d,c),p=n===s,f=n===r,h=__tsover_div(__tsover_sub(r,o),w(d,Wn)),g=__tsover_add(2,__tsover_div(__tsover_sub(o,s),w(d,Wn))),x=F(F(__tsover_add(4,__tsover_div(__tsover_sub(s,r),w(d,Wn))),g,f),h,p);return v(__tsover_mul(x,ei),_,l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[13,"r",[7,"rgb","x"]],[13,"g",[7,"rgb","y"]],[13,"b",[7,"rgb","z"]],[13,"maxVal",[6,"std.max",[[6,"std.max",["r","g"]],"b"]]],[13,"minVal",[6,"std.min",[[6,"std.min",["r","g"]],"b"]]],[13,"delta",[1,"maxVal","-","minVal"]],[13,"l",[1,[1,"maxVal","+","minVal"],"*",[5,"0.5"]]],[13,"satDenom",[6,"std.max",[[1,[5,"1"],"-",[6,"std.abs",[[1,[1,"l","*",[5,"2"]],"-",[5,"1"]]]]],"EPSILON"]]],[13,"s",[1,"delta","/","satDenom"]],[13,"isRMax",[1,"maxVal","===","r"]],[13,"isGMax",[1,"maxVal","===","g"]],[13,"hueR",[1,[1,"g","-","b"],"/",[6,"std.max",["delta","EPSILON"]]]],[13,"hueG",[1,[5,"2"],"+",[1,[1,"b","-","r"],"/",[6,"std.max",["delta","EPSILON"]]]]],[13,"hueB",[1,[5,"4"],"+",[1,[1,"r","-","g"],"/",[6,"std.max",["delta","EPSILON"]]]]],[13,"hue",[6,"std.select",[[6,"std.select",["hueB","hueG","isGMax"]],"hueR","isRMax"]]],[13,"h",[1,"hue","*","PI_OVER_3"]],[10,[6,"d.vec3f",["h","s","l"]]]]]},externals:{"std.max":()=>w,"std.min":()=>ue,"std.abs":()=>W,EPSILON:()=>Wn,"std.select":()=>F,PI_OVER_3:()=>ei,"d.vec3f":()=>v}})&&e.f)({})),Yi=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=__tsover_mul(r,__tsover_sub(1,W(__tsover_sub(__tsover_mul(o,2),1)))),i=__tsover_div(s,ei),d=__tsover_mul(n,__tsover_sub(1,W(__tsover_sub(tn(i,2),1)))),l=__tsover_sub(o,__tsover_mul(n,.5));return Sp(n,d,K(i)).add(l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"hsl"}],body:[0,[[13,"h",[7,"hsl","x"]],[13,"s",[7,"hsl","y"]],[13,"l",[7,"hsl","z"]],[13,"c",[1,"s","*",[1,[5,"1"],"-",[6,"std.abs",[[1,[1,"l","*",[5,"2"]],"-",[5,"1"]]]]]]],[13,"hPrime",[1,"h","/","PI_OVER_3"]],[13,"x",[1,"c","*",[1,[5,"1"],"-",[6,"std.abs",[[1,[6,"std.mod",["hPrime",[5,"2"]]],"-",[5,"1"]]]]]]],[13,"m",[1,"l","-",[1,"c","*",[5,"0.5"]]]],[13,"sector",[6,"std.floor",["hPrime"]]],[10,[6,[7,[6,"selectRGBBySector",["c","x","sector"]],"add"],["m"]]]]]},externals:{"std.abs":()=>W,PI_OVER_3:()=>ei,"std.mod":()=>tn,"std.floor":()=>K,selectRGBBySector:()=>Sp}})&&e.f)({})),rf=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=w(w(s,r),o),i=ue(ue(s,r),o),d=__tsover_sub(n,i),l=n,c=__tsover_div(d,w(n,Wn)),_=n===s,p=n===r,f=__tsover_div(__tsover_sub(r,o),w(d,Wn)),h=__tsover_add(2,__tsover_div(__tsover_sub(o,s),w(d,Wn))),g=F(F(__tsover_add(4,__tsover_div(__tsover_sub(s,r),w(d,Wn))),h,p),f,_);return v(__tsover_mul(g,ei),c,l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[13,"r",[7,"rgb","x"]],[13,"g",[7,"rgb","y"]],[13,"b",[7,"rgb","z"]],[13,"maxVal",[6,"std.max",[[6,"std.max",["r","g"]],"b"]]],[13,"minVal",[6,"std.min",[[6,"std.min",["r","g"]],"b"]]],[13,"delta",[1,"maxVal","-","minVal"]],[13,"v","maxVal"],[13,"s",[1,"delta","/",[6,"std.max",["maxVal","EPSILON"]]]],[13,"isRMax",[1,"maxVal","===","r"]],[13,"isGMax",[1,"maxVal","===","g"]],[13,"hueR",[1,[1,"g","-","b"],"/",[6,"std.max",["delta","EPSILON"]]]],[13,"hueG",[1,[5,"2"],"+",[1,[1,"b","-","r"],"/",[6,"std.max",["delta","EPSILON"]]]]],[13,"hueB",[1,[5,"4"],"+",[1,[1,"r","-","g"],"/",[6,"std.max",["delta","EPSILON"]]]]],[13,"hue",[6,"std.select",[[6,"std.select",["hueB","hueG","isGMax"]],"hueR","isRMax"]]],[13,"h",[1,"hue","*","PI_OVER_3"]],[10,[6,"d.vec3f",["h","s","v"]]]]]},externals:{"std.max":()=>w,"std.min":()=>ue,EPSILON:()=>Wn,"std.select":()=>F,PI_OVER_3:()=>ei,"d.vec3f":()=>v}})&&e.f)({})),wc=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=__tsover_mul(o,r),i=__tsover_div(s,ei),d=__tsover_mul(n,__tsover_sub(1,W(__tsover_sub(tn(i,2),1)))),l=__tsover_sub(o,n);return Sp(n,d,K(i)).add(l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"hsv"}],body:[0,[[13,"h",[7,"hsv","x"]],[13,"s",[7,"hsv","y"]],[13,"v",[7,"hsv","z"]],[13,"c",[1,"v","*","s"]],[13,"hPrime",[1,"h","/","PI_OVER_3"]],[13,"x",[1,"c","*",[1,[5,"1"],"-",[6,"std.abs",[[1,[6,"std.mod",["hPrime",[5,"2"]]],"-",[5,"1"]]]]]]],[13,"m",[1,"v","-","c"]],[13,"sector",[6,"std.floor",["hPrime"]]],[10,[6,[7,[6,"selectRGBBySector",["c","x","sector"]],"add"],["m"]]]]]},externals:{PI_OVER_3:()=>ei,"std.abs":()=>W,"std.mod":()=>tn,"std.floor":()=>K,selectRGBBySector:()=>Sp}})&&e.f)({})),of=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=__tsover_add(__tsover_add(__tsover_mul(s,.4124564),__tsover_mul(r,.3575761)),__tsover_mul(o,.1804375)),i=__tsover_add(__tsover_add(__tsover_mul(s,.2126729),__tsover_mul(r,.7151522)),__tsover_mul(o,.072175)),d=__tsover_add(__tsover_add(__tsover_mul(s,.0193339),__tsover_mul(r,.119192)),__tsover_mul(o,.9503041)),l=__tsover_div(n,.95047),c=__tsover_div(i,1),_=__tsover_div(d,1.08883),p=F(__tsover_add(__tsover_mul(l,b_),Ia),Ye(l,__tsover_div(1,3)),l>x_),f=F(__tsover_add(__tsover_mul(c,b_),Ia),Ye(c,__tsover_div(1,3)),c>x_),h=F(__tsover_add(__tsover_mul(_,b_),Ia),Ye(_,__tsover_div(1,3)),_>x_);return v(__tsover_sub(__tsover_mul(f,116),16),__tsover_mul(__tsover_sub(p,f),wp),__tsover_mul(__tsover_sub(f,h),Tp))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[13,"r",[7,"rgb","x"]],[13,"g",[7,"rgb","y"]],[13,"b",[7,"rgb","z"]],[13,"x",[1,[1,[1,"r","*",[5,"0.4124564"]],"+",[1,"g","*",[5,"0.3575761"]]],"+",[1,"b","*",[5,"0.1804375"]]]],[13,"y",[1,[1,[1,"r","*",[5,"0.2126729"]],"+",[1,"g","*",[5,"0.7151522"]]],"+",[1,"b","*",[5,"0.072175"]]]],[13,"z",[1,[1,[1,"r","*",[5,"0.0193339"]],"+",[1,"g","*",[5,"0.119192"]]],"+",[1,"b","*",[5,"0.9503041"]]]],[13,"xn",[1,"x","/",[5,"0.95047"]]],[13,"yn",[1,"y","/",[5,"1"]]],[13,"zn",[1,"z","/",[5,"1.08883"]]],[13,"fx",[6,"std.select",[[1,[1,"xn","*","LAB_FWD_SLOPE"],"+","LAB_OFFSET"],[6,"std.pow",["xn",[1,[5,"1"],"/",[5,"3"]]]],[1,"xn",">","LAB_DELTA3"]]]],[13,"fy",[6,"std.select",[[1,[1,"yn","*","LAB_FWD_SLOPE"],"+","LAB_OFFSET"],[6,"std.pow",["yn",[1,[5,"1"],"/",[5,"3"]]]],[1,"yn",">","LAB_DELTA3"]]]],[13,"fz",[6,"std.select",[[1,[1,"zn","*","LAB_FWD_SLOPE"],"+","LAB_OFFSET"],[6,"std.pow",["zn",[1,[5,"1"],"/",[5,"3"]]]],[1,"zn",">","LAB_DELTA3"]]]],[13,"L",[1,[1,"fy","*",[5,"116"]],"-",[5,"16"]]],[13,"a",[1,[1,"fx","-","fy"],"*","LAB_KAPPA"]],[13,"bLab",[1,[1,"fy","-","fz"],"*","LAB_LAMBDA"]],[10,[6,"d.vec3f",["L","a","bLab"]]]]]},externals:{"std.select":()=>F,LAB_FWD_SLOPE:()=>b_,LAB_OFFSET:()=>Ia,"std.pow":()=>Ye,LAB_DELTA3:()=>x_,LAB_KAPPA:()=>wp,LAB_LAMBDA:()=>Tp,"d.vec3f":()=>v}})&&e.f)({})),Tc=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z,n=__tsover_div(__tsover_add(s,16),116),i=__tsover_add(__tsover_div(r,wp),n),d=__tsover_sub(n,__tsover_div(o,Tp)),l=F(__tsover_mul(__tsover_sub(i,Ia),w_),Ye(i,3),i>bn),c=F(__tsover_mul(__tsover_sub(n,Ia),w_),Ye(n,3),n>bn),_=F(__tsover_mul(__tsover_sub(d,Ia),w_),Ye(d,3),d>bn),p=__tsover_mul(l,.95047),f=__tsover_mul(c,1),h=__tsover_mul(_,1.08883);return v(__tsover_sub(__tsover_sub(__tsover_mul(p,3.2404542),__tsover_mul(f,1.5371385)),__tsover_mul(h,.4985314)),__tsover_add(__tsover_add(__tsover_mul(p,-.969266),__tsover_mul(f,1.8760108)),__tsover_mul(h,.041556)),__tsover_add(__tsover_sub(__tsover_mul(p,.0556434),__tsover_mul(f,.2040259)),__tsover_mul(h,1.0572252)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lab"}],body:[0,[[13,"L",[7,"lab","x"]],[13,"a",[7,"lab","y"]],[13,"b",[7,"lab","z"]],[13,"fy",[1,[1,"L","+",[5,"16"]],"/",[5,"116"]]],[13,"fx",[1,[1,"a","/","LAB_KAPPA"],"+","fy"]],[13,"fz",[1,"fy","-",[1,"b","/","LAB_LAMBDA"]]],[13,"xn",[6,"std.select",[[1,[1,"fx","-","LAB_OFFSET"],"*","LAB_INV_SLOPE"],[6,"std.pow",["fx",[5,"3"]]],[1,"fx",">","LAB_DELTA"]]]],[13,"yn",[6,"std.select",[[1,[1,"fy","-","LAB_OFFSET"],"*","LAB_INV_SLOPE"],[6,"std.pow",["fy",[5,"3"]]],[1,"fy",">","LAB_DELTA"]]]],[13,"zn",[6,"std.select",[[1,[1,"fz","-","LAB_OFFSET"],"*","LAB_INV_SLOPE"],[6,"std.pow",["fz",[5,"3"]]],[1,"fz",">","LAB_DELTA"]]]],[13,"x",[1,"xn","*",[5,"0.95047"]]],[13,"y",[1,"yn","*",[5,"1"]]],[13,"z",[1,"zn","*",[5,"1.08883"]]],[13,"r",[1,[1,[1,"x","*",[5,"3.2404542"]],"-",[1,"y","*",[5,"1.5371385"]]],"-",[1,"z","*",[5,"0.4985314"]]]],[13,"g",[1,[1,[1,"x","*",[4,"-",[5,"0.969266"]]],"+",[1,"y","*",[5,"1.8760108"]]],"+",[1,"z","*",[5,"0.041556"]]]],[13,"bRgb",[1,[1,[1,"x","*",[5,"0.0556434"]],"-",[1,"y","*",[5,"0.2040259"]]],"+",[1,"z","*",[5,"1.0572252"]]]],[10,[6,"d.vec3f",["r","g","bRgb"]]]]]},externals:{LAB_KAPPA:()=>wp,LAB_LAMBDA:()=>Tp,"std.select":()=>F,LAB_OFFSET:()=>Ia,LAB_INV_SLOPE:()=>w_,"std.pow":()=>Ye,LAB_DELTA:()=>bn,"d.vec3f":()=>v}})&&e.f)({})),nf=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z;return v(s,$e(__tsover_add(__tsover_mul(r,r),__tsover_mul(o,o))),bt(o,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lab"}],body:[0,[[13,"L",[7,"lab","x"]],[13,"a",[7,"lab","y"]],[13,"b",[7,"lab","z"]],[13,"C",[6,"std.sqrt",[[1,[1,"a","*","a"],"+",[1,"b","*","b"]]]]],[13,"h",[6,"std.atan2",["b","a"]]],[10,[6,"d.vec3f",["L","C","h"]]]]]},externals:{"std.sqrt":()=>$e,"std.atan2":()=>bt,"d.vec3f":()=>v}})&&e.f)({})),Sc=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,o=t.z;return v(s,__tsover_mul(r,J(o)),__tsover_mul(r,O(o)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lch"}],body:[0,[[13,"L",[7,"lch","x"]],[13,"C",[7,"lch","y"]],[13,"h",[7,"lch","z"]],[10,[6,"d.vec3f",["L",[1,"C","*",[6,"std.cos",["h"]]],[1,"C","*",[6,"std.sin",["h"]]]]]]]]},externals:{"d.vec3f":()=>v,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),zs=y.fn([v,v,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";return t.mul(r).add(s.mul(o)).div(n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"wA"},{type:"i",name:"wB"},{type:"i",name:"sw"}],body:[0,[[10,[6,[7,[6,[7,[6,[7,"a","mul"],["wA"]],"add"],[[6,[7,"b","mul"],["wB"]]]],"div"],["sw"]]]]]},externals:{}})&&e.f)({})),lr=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_mul(s.w,r),i=__tsover_add(o,n),d=w(i,.001);return b(zs(t.xyz,s.xyz,o,n,d),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,[7,"colorA","w"],"*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,[7,"colorB","w"],"*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"rgb",[6,"awMix",[[7,"colorA","xyz"],[7,"colorB","xyz"],"weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",["rgb","totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b}})&&e.f)({})),KD=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_mul(s.w,r),i=__tsover_add(o,n),d=w(i,.001);return b(Ms(Ro(Ii(zs(Ad(rn(dr(t.xyz))),Ad(rn(dr(s.xyz))),o,n,d)))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,[7,"colorA","w"],"*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,[7,"colorB","w"],"*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"oklchA",[6,"oklabToOklch",[[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"colorA","xyz"]]]]]]]],[13,"oklchB",[6,"oklabToOklch",[[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"colorB","xyz"]]]]]]]],[13,"mixed",[6,"awMix",["oklchA","oklchB","weightA","weightB","safeWeight"]]],[13,"rgb",[6,"sRGBToP3",[[6,"oklabToRgb",[[6,"oklchToOklab",["mixed"]]]]]]],[10,[6,"d.vec4f",["rgb","totalWeight"]]]]]},externals:{"std.max":()=>w,oklabToOklch:()=>Ad,rgbToOklab:()=>rn,p3ToSRGB:()=>dr,awMix:()=>zs,sRGBToP3:()=>Ms,oklabToRgb:()=>Ro,oklchToOklab:()=>Ii,"d.vec4f":()=>b}})&&e.f)({})),ZD=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_mul(s.w,r),i=__tsover_add(o,n),d=w(i,.001);return b(Ms(Ro(zs(rn(dr(t.xyz)),rn(dr(s.xyz)),o,n,d))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,[7,"colorA","w"],"*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,[7,"colorB","w"],"*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"oklabA",[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"colorA","xyz"]]]]]],[13,"oklabB",[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"colorB","xyz"]]]]]],[13,"mixed",[6,"awMix",["oklabA","oklabB","weightA","weightB","safeWeight"]]],[13,"rgb",[6,"sRGBToP3",[[6,"oklabToRgb",["mixed"]]]]],[10,[6,"d.vec4f",["rgb","totalWeight"]]]]]},externals:{"std.max":()=>w,rgbToOklab:()=>rn,p3ToSRGB:()=>dr,awMix:()=>zs,sRGBToP3:()=>Ms,oklabToRgb:()=>Ro,"d.vec4f":()=>b}})&&e.f)({})),QD=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_mul(s.w,r),i=__tsover_add(o,n),d=w(i,.001);return b(Ms(Yi(zs(lc(dr(t.xyz)),lc(dr(s.xyz)),o,n,d))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,[7,"colorA","w"],"*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,[7,"colorB","w"],"*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"hslA",[6,"rgbToHsl",[[6,"p3ToSRGB",[[7,"colorA","xyz"]]]]]],[13,"hslB",[6,"rgbToHsl",[[6,"p3ToSRGB",[[7,"colorB","xyz"]]]]]],[13,"mixed",[6,"awMix",["hslA","hslB","weightA","weightB","safeWeight"]]],[13,"rgb",[6,"sRGBToP3",[[6,"hslToRgb",["mixed"]]]]],[10,[6,"d.vec4f",["rgb","totalWeight"]]]]]},externals:{"std.max":()=>w,rgbToHsl:()=>lc,p3ToSRGB:()=>dr,awMix:()=>zs,sRGBToP3:()=>Ms,hslToRgb:()=>Yi,"d.vec4f":()=>b}})&&e.f)({})),JD=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_mul(s.w,r),i=__tsover_add(o,n),d=w(i,.001);return b(Ms(wc(zs(rf(dr(t.xyz)),rf(dr(s.xyz)),o,n,d))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,[7,"colorA","w"],"*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,[7,"colorB","w"],"*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"hsvA",[6,"rgbToHsv",[[6,"p3ToSRGB",[[7,"colorA","xyz"]]]]]],[13,"hsvB",[6,"rgbToHsv",[[6,"p3ToSRGB",[[7,"colorB","xyz"]]]]]],[13,"mixed",[6,"awMix",["hsvA","hsvB","weightA","weightB","safeWeight"]]],[13,"rgb",[6,"sRGBToP3",[[6,"hsvToRgb",["mixed"]]]]],[10,[6,"d.vec4f",["rgb","totalWeight"]]]]]},externals:{"std.max":()=>w,rgbToHsv:()=>rf,p3ToSRGB:()=>dr,awMix:()=>zs,sRGBToP3:()=>Ms,hsvToRgb:()=>wc,"d.vec4f":()=>b}})&&e.f)({})),eL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_mul(s.w,r),i=__tsover_add(o,n),d=w(i,.001);return b(Ms(Tc(Sc(zs(nf(of(dr(t.xyz))),nf(of(dr(s.xyz))),o,n,d)))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,[7,"colorA","w"],"*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,[7,"colorB","w"],"*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"lchA",[6,"labToLch",[[6,"rgbToLab",[[6,"p3ToSRGB",[[7,"colorA","xyz"]]]]]]]],[13,"lchB",[6,"labToLch",[[6,"rgbToLab",[[6,"p3ToSRGB",[[7,"colorB","xyz"]]]]]]]],[13,"mixed",[6,"awMix",["lchA","lchB","weightA","weightB","safeWeight"]]],[13,"rgb",[6,"sRGBToP3",[[6,"labToRgb",[[6,"lchToLab",["mixed"]]]]]]],[10,[6,"d.vec4f",["rgb","totalWeight"]]]]]},externals:{"std.max":()=>w,labToLch:()=>nf,rgbToLab:()=>of,p3ToSRGB:()=>dr,awMix:()=>zs,sRGBToP3:()=>Ms,labToRgb:()=>Tc,lchToLab:()=>Sc,"d.vec4f":()=>b}})&&e.f)({})),Xo={0:lr,1:KD,2:ZD,3:QD,4:JD,5:eL};var Vo=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({conv:v,alpha:a}),"MixStep"),ti=y.fn([v,a,v,a,a],Vo)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(s,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return Vo({conv:zs(t,r,i,d,w(l,.001)),alpha:l})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"alphaA"},{type:"i",name:"convB"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[10,[6,"MixStep",[[104,{conv:[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]],alpha:"totalWeight"}]]]]]]},externals:{"std.max":()=>w,MixStep:()=>Vo,awMix:()=>zs}})&&e.f)({})),Pm=y.fn([v,v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return b(zs(t,s,i,d,w(l,.001)),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"convB"},{type:"i",name:"alphaA"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",["mixed","totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b}})&&e.f)({})),tL=y.fn([v,v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return b(Ms(Ro(Ii(zs(t,s,i,d,w(l,.001))))),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"convB"},{type:"i",name:"alphaA"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",[[6,"sRGBToP3",[[6,"oklabToRgb",[[6,"oklchToOklab",["mixed"]]]]]],"totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b,sRGBToP3:()=>Ms,oklabToRgb:()=>Ro,oklchToOklab:()=>Ii}})&&e.f)({})),sL=y.fn([v,v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return b(Ms(Ro(zs(t,s,i,d,w(l,.001)))),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"convB"},{type:"i",name:"alphaA"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",[[6,"sRGBToP3",[[6,"oklabToRgb",["mixed"]]]],"totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b,sRGBToP3:()=>Ms,oklabToRgb:()=>Ro}})&&e.f)({})),rL=y.fn([v,v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return b(Ms(Yi(zs(t,s,i,d,w(l,.001)))),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"convB"},{type:"i",name:"alphaA"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",[[6,"sRGBToP3",[[6,"hslToRgb",["mixed"]]]],"totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b,sRGBToP3:()=>Ms,hslToRgb:()=>Yi}})&&e.f)({})),oL=y.fn([v,v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return b(Ms(wc(zs(t,s,i,d,w(l,.001)))),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"convB"},{type:"i",name:"alphaA"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",[[6,"sRGBToP3",[[6,"hsvToRgb",["mixed"]]]],"totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b,sRGBToP3:()=>Ms,hsvToRgb:()=>wc}})&&e.f)({})),nL=y.fn([v,v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,__tsover_sub(1,n)),d=__tsover_mul(o,n),l=__tsover_add(i,d);return b(Ms(Tc(Sc(zs(t,s,i,d,w(l,.001))))),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"convA"},{type:"i",name:"convB"},{type:"i",name:"alphaA"},{type:"i",name:"alphaB"},{type:"i",name:"t"}],body:[0,[[13,"weightA",[1,"alphaA","*",[1,[5,"1"],"-","t"]]],[13,"weightB",[1,"alphaB","*","t"]],[13,"totalWeight",[1,"weightA","+","weightB"]],[13,"safeWeight",[6,"std.max",["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,"d.vec4f",[[6,"sRGBToP3",[[6,"labToRgb",[[6,"lchToLab",["mixed"]]]]]],"totalWeight"]]]]]},externals:{"std.max":()=>w,awMix:()=>zs,"d.vec4f":()=>b,sRGBToP3:()=>Ms,labToRgb:()=>Tc,lchToLab:()=>Sc}})&&e.f)({})),hy={0:Pm,1:tL,2:sL,3:rL,4:oL,5:nL};var yy=1e-4,af=6/29,aL=(e,t,s)=>[e*1.2249401-t*.2249404,e*-.0420569+t*1.0420571,e*-.0196376-t*.0786361+s*1.0982735],H3=(e,t,s)=>{let r=Math.cbrt(e*.4122214708+t*.5363325363+s*.0514459929),o=Math.cbrt(e*.2119034982+t*.6806995451+s*.1073969566),n=Math.cbrt(e*.0883024619+t*.2817188376+s*.6299787005);return[r*.2104542553+o*.793617785-n*.0040720468,r*1.9779984951-o*2.428592205+n*.4505937099,r*.0259040371+o*.7827717662-n*.808675766]},tT=(e,t,s,r,o)=>{let n=Math.max(o,yy);return(r===e?(t-s)/n:r===t?2+(s-e)/n:4+(e-t)/n)*(Math.PI/3)},iL=(e,t,s)=>{let r=Math.max(e,t,s),o=Math.min(e,t,s),n=r-o,i=(r+o)*.5,d=n/Math.max(1-Math.abs(2*i-1),yy);return[tT(e,t,s,r,n),d,i]},dL=(e,t,s)=>{let r=Math.max(e,t,s),o=r-Math.min(e,t,s),n=o/Math.max(r,yy);return[tT(e,t,s,r,o),n,r]},lL=(e,t,s)=>{let r=(e*.4124564+t*.3575761+s*.1804375)/.95047,o=e*.2126729+t*.7151522+s*.072175,n=(e*.0193339+t*.119192+s*.9503041)/1.08883,i=af**3,d=p=>p>i?Math.cbrt(p):p/(3*af*af)+4/29,l=d(r),c=d(o),_=d(n);return[c*116-16,(l-c)*500,(c-_)*200]},Mm=(e,t,s,r)=>{let[o,n,i]=aL(e,t,s);switch(r){case 1:{let[d,l,c]=H3(o,n,i);return[d,Math.sqrt(l*l+c*c),Math.atan2(c,l)]}case 2:return H3(o,n,i);case 3:return iL(o,n,i);case 4:return dL(o,n,i);case 5:{let[d,l,c]=lL(o,n,i);return[d,Math.sqrt(l*l+c*c),Math.atan2(c,l)]}default:return[e,t,s]}},cL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Z(v(t.x,t.y,t.z),v(s.x,s.y,s.z),v(r));return b(o.x,o.y,o.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"target"},{type:"i",name:"amount"}],body:[0,[[13,"rgb",[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"targetRgb",[6,"d.vec3f",[[7,"target","x"],[7,"target","y"],[7,"target","z"]]]],[13,"mixed",[6,"std.mix",["rgb","targetRgb",[6,"d.vec3f",["amount"]]]]],[10,[6,"d.vec4f",[[7,"mixed","x"],[7,"mixed","y"],[7,"mixed","z"],[7,"color","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({}));var on=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(__tsover_add(__tsover_mul(t.x,.2126),__tsover_mul(t.y,.7152)),__tsover_mul(t.z,.0722))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[1,[1,[1,[7,"rgb","x"],"*",[5,"0.2126"]],"+",[1,[7,"rgb","y"],"*",[5,"0.7152"]]],"+",[1,[7,"rgb","z"],"*",[5,"0.0722"]]]]]]},externals:{}})&&e.f)({})),Xn=y.fn([v,v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return F(v(0),v(1),Qf(s,t))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"edge"},{type:"i",name:"x"}],body:[0,[[10,[6,"std.select",[[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]],[6,"std.ge",["x","edge"]]]]]]]},externals:{"std.select":()=>F,"d.vec3f":()=>v,"std.ge":()=>Qf}})&&e.f)({})),ss=y.fn([b,v,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(t.w,__tsover_sub(1,r)),n=__tsover_add(r,o);return b(s.mul(r).add(t.xyz.mul(o)),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"blended"},{type:"i",name:"overlayAlpha"}],body:[0,[[13,"baseWeight",[1,[7,"base","w"],"*",[1,[5,"1"],"-","overlayAlpha"]]],[13,"finalAlpha",[1,"overlayAlpha","+","baseWeight"]],[13,"rgb",[6,[7,[6,[7,"blended","mul"],["overlayAlpha"]],"add"],[[6,[7,[7,"base","xyz"],"mul"],["baseWeight"]]]]],[10,[6,"d.vec4f",["rgb","finalAlpha"]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({})),Hn=y.fn([b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.w;return b(F(v(0,0,0),t.xyz.div(s),s>.001),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"alpha",[7,"color","w"]],[13,"straightRGB",[6,"std.select",[[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,[7,"color","xyz"],"div"],["alpha"]],[1,"alpha",">",[5,"0.001"]]]]],[10,[6,"d.vec4f",["straightRGB","alpha"]]]]]},externals:{"std.select":()=>F,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),uL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,s.xyz,o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[10,[6,"overComposite",["base",[7,"overlay","xyz"],"overlayAlpha"]]]]]},externals:{overComposite:()=>ss}})&&e.f)({})),_L=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=__tsover_mul(t.w,__tsover_sub(1,o)),i=__tsover_add(o,n),d=Ad(rn(dr(t.xyz)));return b(Ms(Ro(Ii(Ad(rn(dr(s.xyz))).mul(o).add(d.mul(n))))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"baseWeight",[1,[7,"base","w"],"*",[1,[5,"1"],"-","overlayAlpha"]]],[13,"finalAlpha",[1,"overlayAlpha","+","baseWeight"]],[13,"baseOklch",[6,"oklabToOklch",[[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"base","xyz"]]]]]]]],[13,"overlayOklch",[6,"oklabToOklch",[[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"overlay","xyz"]]]]]]]],[13,"blendedOklch",[6,[7,[6,[7,"overlayOklch","mul"],["overlayAlpha"]],"add"],[[6,[7,"baseOklch","mul"],["baseWeight"]]]]],[13,"rgb",[6,"sRGBToP3",[[6,"oklabToRgb",[[6,"oklchToOklab",["blendedOklch"]]]]]]],[10,[6,"d.vec4f",["rgb","finalAlpha"]]]]]},externals:{oklabToOklch:()=>Ad,rgbToOklab:()=>rn,p3ToSRGB:()=>dr,sRGBToP3:()=>Ms,oklabToRgb:()=>Ro,oklchToOklab:()=>Ii,"d.vec4f":()=>b}})&&e.f)({})),pL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=__tsover_mul(t.w,__tsover_sub(1,o)),i=__tsover_add(o,n),d=rn(dr(t.xyz));return b(Ms(Ro(rn(dr(s.xyz)).mul(o).add(d.mul(n)))),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"baseWeight",[1,[7,"base","w"],"*",[1,[5,"1"],"-","overlayAlpha"]]],[13,"finalAlpha",[1,"overlayAlpha","+","baseWeight"]],[13,"baseOklab",[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"base","xyz"]]]]]],[13,"overlayOklab",[6,"rgbToOklab",[[6,"p3ToSRGB",[[7,"overlay","xyz"]]]]]],[13,"blendedOklab",[6,[7,[6,[7,"overlayOklab","mul"],["overlayAlpha"]],"add"],[[6,[7,"baseOklab","mul"],["baseWeight"]]]]],[13,"rgb",[6,"sRGBToP3",[[6,"oklabToRgb",["blendedOklab"]]]]],[10,[6,"d.vec4f",["rgb","finalAlpha"]]]]]},externals:{rgbToOklab:()=>rn,p3ToSRGB:()=>dr,sRGBToP3:()=>Ms,oklabToRgb:()=>Ro,"d.vec4f":()=>b}})&&e.f)({})),mL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,t.xyz.mul(s.xyz),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,[7,[7,"base","xyz"],"mul"],[[7,"overlay","xyz"]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{overComposite:()=>ss}})&&e.f)({})),fL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,It(1,It(1,t.xyz).mul(It(1,s.xyz))),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,"std.sub",[[5,"1"],[6,[7,[6,"std.sub",[[5,"1"],[7,"base","xyz"]]],"mul"],[[6,"std.sub",[[5,"1"],[7,"overlay","xyz"]]]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.sub":()=>It,overComposite:()=>ss}})&&e.f)({})),vL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,t.xyz.add(s.xyz),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,[7,[7,"base","xyz"],"add"],[[7,"overlay","xyz"]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{overComposite:()=>ss}})&&e.f)({})),hL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,Z(t.xyz.mul(s.xyz).mul(2),It(1,It(1,t.xyz).mul(It(1,s.xyz)).mul(2)),Xn(v(.5),t.xyz)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"mult",[6,[7,[6,[7,[7,"base","xyz"],"mul"],[[7,"overlay","xyz"]]],"mul"],[[5,"2"]]]],[13,"scr",[6,"std.sub",[[5,"1"],[6,[7,[6,[7,[6,"std.sub",[[5,"1"],[7,"base","xyz"]]],"mul"],[[6,"std.sub",[[5,"1"],[7,"overlay","xyz"]]]]],"mul"],[[5,"2"]]]]]],[13,"blended",[6,"std.mix",["mult","scr",[6,"step3",[[6,"d.vec3f",[[5,"0.5"]]],[7,"base","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.sub":()=>It,"std.mix":()=>Z,step3:()=>Xn,"d.vec3f":()=>v,overComposite:()=>ss}})&&e.f)({})),yL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,W(t.xyz.sub(s.xyz)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,"std.abs",[[6,[7,[7,"base","xyz"],"sub"],[[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.abs":()=>W,overComposite:()=>ss}})&&e.f)({})),gL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=It(1,s.xyz);return ss(t,Z(t.xyz,ue(t.xyz.div(n),v(1)),Xn(v(.001),n)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"oneMinusOverlay",[6,"std.sub",[[5,"1"],[7,"overlay","xyz"]]]],[13,"dodged",[6,"std.mix",[[7,"base","xyz"],[6,"std.min",[[6,[7,[7,"base","xyz"],"div"],["oneMinusOverlay"]],[6,"d.vec3f",[[5,"1"]]]]],[6,"step3",[[6,"d.vec3f",[[5,"0.001"]]],"oneMinusOverlay"]]]]],[10,[6,"overComposite",["base","dodged","overlayAlpha"]]]]]},externals:{"std.sub":()=>It,"std.mix":()=>Z,"std.min":()=>ue,"d.vec3f":()=>v,step3:()=>Xn,overComposite:()=>ss}})&&e.f)({})),xL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,t.xyz.add(s.xyz).sub(t.xyz.mul(s.xyz).mul(2)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,[7,[6,[7,[7,"base","xyz"],"add"],[[7,"overlay","xyz"]]],"sub"],[[6,[7,[6,[7,[7,"base","xyz"],"mul"],[[7,"overlay","xyz"]]],"mul"],[[5,"2"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{overComposite:()=>ss}})&&e.f)({})),bL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=on(t.xyz),i=on(s.xyz),d=__tsover_sub(n,i);return ss(t,s.xyz.add(d),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"baseLum",[6,"luminance",[[7,"base","xyz"]]]],[13,"overlayLum",[6,"luminance",[[7,"overlay","xyz"]]]],[13,"lumDiff",[1,"baseLum","-","overlayLum"]],[13,"blended",[6,[7,[7,"overlay","xyz"],"add"],["lumDiff"]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{luminance:()=>on,overComposite:()=>ss}})&&e.f)({})),wL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=on(t.xyz),i=on(s.xyz),d=__tsover_div(i,__tsover_add(n,1e-4));return ss(t,t.xyz.mul(d),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"baseLum",[6,"luminance",[[7,"base","xyz"]]]],[13,"overlayLum",[6,"luminance",[[7,"overlay","xyz"]]]],[13,"lumRatio",[1,"overlayLum","/",[1,"baseLum","+",[5,"0.0001"]]]],[13,"blended",[6,[7,[7,"base","xyz"],"mul"],["lumRatio"]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{luminance:()=>on,overComposite:()=>ss}})&&e.f)({})),TL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,ue(t.xyz,s.xyz),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,"std.min",[[7,"base","xyz"],[7,"overlay","xyz"]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.min":()=>ue,overComposite:()=>ss}})&&e.f)({})),SL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,w(t.xyz,s.xyz),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,"std.max",[[7,"base","xyz"],[7,"overlay","xyz"]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.max":()=>w,overComposite:()=>ss}})&&e.f)({})),AL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=w(It(1,It(1,t.xyz).div(s.xyz.add(1e-4))),v(0));return ss(t,Z(v(0),n,Xn(v(1e-4),s.xyz)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"burned",[6,"std.max",[[6,"std.sub",[[5,"1"],[6,[7,[6,"std.sub",[[5,"1"],[7,"base","xyz"]]],"div"],[[6,[7,[7,"overlay","xyz"],"add"],[[5,"0.0001"]]]]]]],[6,"d.vec3f",[[5,"0"]]]]]],[13,"blended",[6,"std.mix",[[6,"d.vec3f",[[5,"0"]]],"burned",[6,"step3",[[6,"d.vec3f",[[5,"0.0001"]]],[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.max":()=>w,"std.sub":()=>It,"d.vec3f":()=>v,"std.mix":()=>Z,step3:()=>Xn,overComposite:()=>ss}})&&e.f)({})),EL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,w(t.xyz.add(s.xyz).add(-1),v(0)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"blended",[6,"std.max",[[6,[7,[6,[7,[7,"base","xyz"],"add"],[[7,"overlay","xyz"]]],"add"],[[4,"-",[5,"1"]]]],[6,"d.vec3f",[[5,"0"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.max":()=>w,"d.vec3f":()=>v,overComposite:()=>ss}})&&e.f)({})),PL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=t.xyz.mul(s.xyz).mul(2),i=t.xyz.mul(t.xyz),d=n.add(i.mul(It(1,s.xyz.mul(2)))),l=$e(t.xyz);return ss(t,Z(d,t.xyz.mul(It(1,s.xyz)).mul(2).add(l.mul(s.xyz.mul(2).sub(1))),Xn(v(.5),s.xyz)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"mult",[6,[7,[6,[7,[7,"base","xyz"],"mul"],[[7,"overlay","xyz"]]],"mul"],[[5,"2"]]]],[13,"baseSquared",[6,[7,[7,"base","xyz"],"mul"],[[7,"base","xyz"]]]],[13,"softDark",[6,[7,"mult","add"],[[6,[7,"baseSquared","mul"],[[6,"std.sub",[[5,"1"],[6,[7,[7,"overlay","xyz"],"mul"],[[5,"2"]]]]]]]]]],[13,"baseSqrt",[6,"std.sqrt",[[7,"base","xyz"]]]],[13,"softLightVal",[6,[7,[6,[7,[6,[7,[7,"base","xyz"],"mul"],[[6,"std.sub",[[5,"1"],[7,"overlay","xyz"]]]]],"mul"],[[5,"2"]]],"add"],[[6,[7,"baseSqrt","mul"],[[6,[7,[6,[7,[7,"overlay","xyz"],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]]]]]],[13,"blended",[6,"std.mix",["softDark","softLightVal",[6,"step3",[[6,"d.vec3f",[[5,"0.5"]]],[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.sub":()=>It,"std.sqrt":()=>$e,"std.mix":()=>Z,step3:()=>Xn,"d.vec3f":()=>v,overComposite:()=>ss}})&&e.f)({})),ML=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r);return ss(t,Z(t.xyz.mul(s.xyz).mul(2),It(1,It(1,t.xyz).mul(It(1,s.xyz)).mul(2)),Xn(v(.5),s.xyz)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"mult",[6,[7,[6,[7,[7,"base","xyz"],"mul"],[[7,"overlay","xyz"]]],"mul"],[[5,"2"]]]],[13,"scr",[6,"std.sub",[[5,"1"],[6,[7,[6,[7,[6,"std.sub",[[5,"1"],[7,"base","xyz"]]],"mul"],[[6,"std.sub",[[5,"1"],[7,"overlay","xyz"]]]]],"mul"],[[5,"2"]]]]]],[13,"blended",[6,"std.mix",["mult","scr",[6,"step3",[[6,"d.vec3f",[[5,"0.5"]]],[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{"std.sub":()=>It,"std.mix":()=>Z,step3:()=>Xn,"d.vec3f":()=>v,overComposite:()=>ss}})&&e.f)({})),kL=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=on(t.xyz),i=on(s.xyz),d=t.xyz.sub(n),l=s.xyz.sub(i),c=te(d),_=te(l);return ss(t,F(v(0),l.div(_),_>1e-4).mul(c).add(n),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"baseLum",[6,"luminance",[[7,"base","xyz"]]]],[13,"overlayLum",[6,"luminance",[[7,"overlay","xyz"]]]],[13,"baseChromaticity",[6,[7,[7,"base","xyz"],"sub"],["baseLum"]]],[13,"overlayChromaticity",[6,[7,[7,"overlay","xyz"],"sub"],["overlayLum"]]],[13,"baseChromaLength",[6,"std.length",["baseChromaticity"]]],[13,"overlayChromaLength",[6,"std.length",["overlayChromaticity"]]],[13,"overlayChromaDir",[6,"std.select",[[6,"d.vec3f",[[5,"0"]]],[6,[7,"overlayChromaticity","div"],["overlayChromaLength"]],[1,"overlayChromaLength",">",[5,"0.0001"]]]]],[13,"blended",[6,[7,[6,[7,"overlayChromaDir","mul"],["baseChromaLength"]],"add"],["baseLum"]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{luminance:()=>on,"std.length":()=>te,"std.select":()=>F,"d.vec3f":()=>v,overComposite:()=>ss}})&&e.f)({})),$L=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s.w,r),n=on(t.xyz),i=on(s.xyz),d=t.xyz.sub(n),l=s.xyz.sub(i),c=te(d),_=F(v(0),d.div(c),c>1e-4),p=te(l);return ss(t,_.mul(p).add(n),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"overlay"},{type:"i",name:"opacity"}],body:[0,[[13,"overlayAlpha",[1,[7,"overlay","w"],"*","opacity"]],[13,"baseLum",[6,"luminance",[[7,"base","xyz"]]]],[13,"overlayLum",[6,"luminance",[[7,"overlay","xyz"]]]],[13,"baseChromaticity",[6,[7,[7,"base","xyz"],"sub"],["baseLum"]]],[13,"overlayChromaticity",[6,[7,[7,"overlay","xyz"],"sub"],["overlayLum"]]],[13,"baseChromaLength",[6,"std.length",["baseChromaticity"]]],[13,"baseChromaDir",[6,"std.select",[[6,"d.vec3f",[[5,"0"]]],[6,[7,"baseChromaticity","div"],["baseChromaLength"]],[1,"baseChromaLength",">",[5,"0.0001"]]]]],[13,"overlayChromaLength",[6,"std.length",["overlayChromaticity"]]],[13,"blended",[6,[7,[6,[7,"baseChromaDir","mul"],["overlayChromaLength"]],"add"],["baseLum"]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]]},externals:{luminance:()=>on,"std.length":()=>te,"std.select":()=>F,"d.vec3f":()=>v,overComposite:()=>ss}})&&e.f)({})),j3={normal:uL,"normal-oklch":_L,"normal-oklab":pL,multiply:mL,screen:fL,linearDodge:vL,overlay:hL,difference:yL,colorDodge:gL,exclusion:xL,color:bL,luminosity:wL,darken:TL,lighten:SL,colorBurn:AL,linearBurn:EL,softLight:PL,hardLight:ML,hue:kL,saturation:$L};var T_=v(.2126,.7152,.0722),K3={alpha:y.fn([b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return b(t.xyz,__tsover_mul(t.w,s.w))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[10,[6,"d.vec4f",[[7,"target","xyz"],[1,[7,"target","w"],"*",[7,"mask","w"]]]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({})),alphaInverted:y.fn([b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return b(t.xyz,__tsover_mul(t.w,__tsover_sub(1,s.w)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[10,[6,"d.vec4f",[[7,"target","xyz"],[1,[7,"target","w"],"*",[1,[5,"1"],"-",[7,"mask","w"]]]]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({})),luminance:y.fn([b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=le(s.xyz,T_);return b(t.xyz,__tsover_mul(t.w,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[13,"lum",[6,"std.dot",[[7,"mask","xyz"],"LUMINANCE_WEIGHTS"]]],[10,[6,"d.vec4f",[[7,"target","xyz"],[1,[7,"target","w"],"*","lum"]]]]]]},externals:{"std.dot":()=>le,LUMINANCE_WEIGHTS:()=>T_,"d.vec4f":()=>b}})&&e.f)({})),luminanceInverted:y.fn([b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=le(s.xyz,T_);return b(t.xyz,__tsover_mul(t.w,__tsover_sub(1,r)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[13,"lum",[6,"std.dot",[[7,"mask","xyz"],"LUMINANCE_WEIGHTS"]]],[10,[6,"d.vec4f",[[7,"target","xyz"],[1,[7,"target","w"],"*",[1,[5,"1"],"-","lum"]]]]]]]},externals:{"std.dot":()=>le,LUMINANCE_WEIGHTS:()=>T_,"d.vec4f":()=>b}})&&e.f)({}))},CL=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return v(t.x,t.y,t.z)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})),RL=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return z(t.div(t.add(1)),v(0),v(1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,"std.clamp",[[6,[7,"color","div"],[[6,[7,"color","add"],[[5,"1"]]]]],[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]]]]},externals:{"std.clamp":()=>z,"d.vec3f":()=>v}})&&e.f)({})),UL=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=w(t.sub(.004),v(0)),r=s.mul(s.mul(6.2).add(.5)),o=s.mul(s.mul(6.2).add(1.7)).add(.06);return Ye(r.div(o),v(2.2))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"c",[6,"std.max",[[6,[7,"color","sub"],[[5,"0.004"]]],[6,"d.vec3f",[[5,"0"]]]]]],[13,"a",[6,[7,"c","mul"],[[6,[7,[6,[7,"c","mul"],[[5,"6.2"]]],"add"],[[5,"0.5"]]]]]],[13,"b",[6,[7,[6,[7,"c","mul"],[[6,[7,[6,[7,"c","mul"],[[5,"6.2"]]],"add"],[[5,"1.7"]]]]],"add"],[[5,"0.06"]]]],[10,[6,"std.pow",[[6,[7,"a","div"],["b"]],[6,"d.vec3f",[[5,"2.2"]]]]]]]]},externals:{"std.max":()=>w,"d.vec3f":()=>v,"std.pow":()=>Ye}})&&e.f)({})),Z3=rl(.59719,.076,.0284,.35458,.90834,.13383,.04823,.01566,.83777),Q3=rl(1.60475,-.10208,-.00327,-.53108,1.10813,-.07276,-.07367,-.00605,1.07602),J3=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.mul(t.add(.0245786)).sub(90537e-9),r=t.mul(t.add(.432951).mul(.983729)).add(.238081);return s.div(r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[13,"a",[6,[7,[6,[7,"v","mul"],[[6,[7,"v","add"],[[5,"0.0245786"]]]]],"sub"],[[5,"0.000090537"]]]],[13,"b",[6,[7,[6,[7,"v","mul"],[[6,[7,[6,[7,"v","add"],[[5,"0.432951"]]],"mul"],[[5,"0.983729"]]]]],"add"],[[5,"0.238081"]]]],[10,[6,[7,"a","div"],["b"]]]]]},externals:{}})&&e.f)({})),zL=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.div(.6);return s=Z3.mul(s),s=J3(s),s=Q3.mul(s),z(s,v(0),v(1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[12,"c",[6,[7,"color","div"],[[5,"0.6"]]]],[2,"c","=",[6,"ACES_INPUT.mul",["c"]]],[2,"c","=",[6,"rrtAndODTFit",["c"]]],[2,"c","=",[6,"ACES_OUTPUT.mul",["c"]]],[10,[6,"std.clamp",["c",[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]]]]},externals:{"ACES_INPUT.mul":()=>Z3.mul,rrtAndODTFit:()=>J3,"ACES_OUTPUT.mul":()=>Q3.mul,"std.clamp":()=>z,"d.vec3f":()=>v}})&&e.f)({})),e2=rl(.6274,.0691,.0164,.3293,.9195,.088,.0433,.0113,.8956),t2=rl(1.6605,-.1246,-.0182,-.5876,1.1329,-.1006,-.0728,-.0083,1.1187),s2=rl(.856627153315983,.137318972929847,.11189821299995,.0951212405381588,.761241990602591,.0767994186031903,.0482516061458583,.101439036467562,.811302368396859),r2=rl(1.1271005818144368,-.1413297634984383,-.14132976349843826,-.11060664309660323,1.157823702216272,-.11060664309660294,-.016493938717834573,-.016493938717834257,1.2519364065950405),df=-12.47393,o2=4.026069,n2=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.mul(t),r=s.mul(s);return r.mul(s).mul(15.5).sub(r.mul(t).mul(40.14)).add(r.mul(31.96).sub(s.mul(t).mul(6.868)).add(s.mul(.4298).add(t.mul(.1191).sub(.00232))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[13,"x2",[6,[7,"x","mul"],["x"]]],[13,"x4",[6,[7,"x2","mul"],["x2"]]],[10,[6,[7,[6,[7,[6,[7,[6,[7,"x4","mul"],["x2"]],"mul"],[[5,"15.5"]]],"sub"],[[6,[7,[6,[7,"x4","mul"],["x"]],"mul"],[[5,"40.14"]]]]],"add"],[[6,[7,[6,[7,[6,[7,"x4","mul"],[[5,"31.96"]]],"sub"],[[6,[7,[6,[7,"x2","mul"],["x"]],"mul"],[[5,"6.868"]]]]],"add"],[[6,[7,[6,[7,"x2","mul"],[[5,"0.4298"]]],"add"],[[6,[7,[6,[7,"x","mul"],[[5,"0.1191"]]],"sub"],[[5,"0.00232"]]]]]]]]]]]]},externals:{}})&&e.f)({})),GL=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=e2.mul(t);return s=s2.mul(s),s=w(s,v(1e-10)),s=Kf(s),s=s.sub(df).div(__tsover_sub(o2,df)),s=z(s,v(0),v(1)),s=n2(s),s=r2.mul(s),s=Ye(w(s,v(0)),v(2.2)),s=t2.mul(s),z(s,v(0),v(1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[12,"c",[6,"LINEAR_SRGB_TO_LINEAR_REC2020.mul",["color"]]],[2,"c","=",[6,"AGX_INSET.mul",["c"]]],[2,"c","=",[6,"std.max",["c",[6,"d.vec3f",[[5,"1e-10"]]]]]],[2,"c","=",[6,"std.log2",["c"]]],[2,"c","=",[6,[7,[6,[7,"c","sub"],["AGX_MIN_EV"]],"div"],[[1,"AGX_MAX_EV","-","AGX_MIN_EV"]]]],[2,"c","=",[6,"std.clamp",["c",[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]],[2,"c","=",[6,"agxContrastApprox",["c"]]],[2,"c","=",[6,"AGX_OUTSET.mul",["c"]]],[2,"c","=",[6,"std.pow",[[6,"std.max",["c",[6,"d.vec3f",[[5,"0"]]]]],[6,"d.vec3f",[[5,"2.2"]]]]]],[2,"c","=",[6,"LINEAR_REC2020_TO_LINEAR_SRGB.mul",["c"]]],[10,[6,"std.clamp",["c",[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]]]]},externals:{"LINEAR_SRGB_TO_LINEAR_REC2020.mul":()=>e2.mul,"AGX_INSET.mul":()=>s2.mul,"std.max":()=>w,"d.vec3f":()=>v,"std.log2":()=>Kf,AGX_MIN_EV:()=>df,AGX_MAX_EV:()=>o2,"std.clamp":()=>z,agxContrastApprox:()=>n2,"AGX_OUTSET.mul":()=>r2.mul,"std.pow":()=>Ye,"LINEAR_REC2020_TO_LINEAR_SRGB.mul":()=>t2.mul}})&&e.f)({})),S_=.76,a2=.15,sT=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ue(t.x,ue(t.y,t.z)),r=F(.04,__tsover_sub(s,__tsover_mul(__tsover_mul(6.25,s),s)),s<.08),o=t.sub(r),n=w(o.x,w(o.y,o.z));if(n<S_)return o;let i=__tsover_sub(1,S_),d=__tsover_sub(1,__tsover_div(__tsover_mul(i,i),__tsover_sub(__tsover_add(n,i),S_)));o=o.mul(__tsover_div(d,n));let l=__tsover_sub(1,__tsover_div(1,__tsover_add(__tsover_mul(a2,__tsover_sub(n,d)),1)));return Z(o,v(d),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"x",[6,"std.min",[[7,"color","x"],[6,"std.min",[[7,"color","y"],[7,"color","z"]]]]]],[13,"offset",[6,"std.select",[[5,"0.04"],[1,"x","-",[1,[1,[5,"6.25"],"*","x"],"*","x"]],[1,"x","<",[5,"0.08"]]]]],[12,"c",[6,[7,"color","sub"],["offset"]]],[13,"peak",[6,"std.max",[[7,"c","x"],[6,"std.max",[[7,"c","y"],[7,"c","z"]]]]]],[11,[1,"peak","<","NEUTRAL_START_COMPRESSION"],[0,[[10,"c"]]]],[13,"dd",[1,[5,"1"],"-","NEUTRAL_START_COMPRESSION"]],[13,"newPeak",[1,[5,"1"],"-",[1,[1,"dd","*","dd"],"/",[1,[1,"peak","+","dd"],"-","NEUTRAL_START_COMPRESSION"]]]],[2,"c","=",[6,[7,"c","mul"],[[1,"newPeak","/","peak"]]]],[13,"g",[1,[5,"1"],"-",[1,[5,"1"],"/",[1,[1,"NEUTRAL_DESATURATION","*",[1,"peak","-","newPeak"]],"+",[5,"1"]]]]],[10,[6,"std.mix",["c",[6,"d.vec3f",["newPeak"]],"g"]]]]]},externals:{"std.min":()=>ue,"std.select":()=>F,"std.max":()=>w,NEUTRAL_START_COMPRESSION:()=>S_,NEUTRAL_DESATURATION:()=>a2,"std.mix":()=>Z,"d.vec3f":()=>v}})&&e.f)({})),i2={linear:CL,reinhard:RL,cineon:UL,aces:zL,agx:GL,neutral:sT,hable:y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.mul(16),r=s.mul(s.mul(.15).add(.05)).add(.004),o=s.mul(s.mul(.15).add(.5)).add(.06);return r.div(o).sub(__tsover_div(.02,.3))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"x",[6,[7,"color","mul"],[[5,"16"]]]],[13,"num",[6,[7,[6,[7,"x","mul"],[[6,[7,[6,[7,"x","mul"],[[5,"0.15"]]],"add"],[[5,"0.05"]]]]],"add"],[[5,"0.004"]]]],[13,"den",[6,[7,[6,[7,"x","mul"],[[6,[7,[6,[7,"x","mul"],[[5,"0.15"]]],"add"],[[5,"0.5"]]]]],"add"],[[5,"0.06"]]]],[10,[6,[7,[6,[7,"num","div"],["den"]],"sub"],[[1,[5,"0.02"],"/",[5,"0.3"]]]]]]]},externals:{}})&&e.f)({})),unreal:y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return t.div(t.add(.155)).mul(1.019)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,[7,[6,[7,"color","div"],[[6,[7,"color","add"],[[5,"0.155"]]]]],"mul"],[[5,"1.019"]]]]]]},externals:{}})&&e.f)({}))},DL=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return F(Ye(t,v(.41666)).mul(1.055).sub(.055),t.mul(12.92),gc(t,v(.0031308)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"a",[6,[7,[6,[7,[6,"std.pow",["color",[6,"d.vec3f",[[5,"0.41666"]]]]],"mul"],[[5,"1.055"]]],"sub"],[[5,"0.055"]]]],[13,"b",[6,[7,"color","mul"],[[5,"12.92"]]]],[13,"factor",[6,"std.le",["color",[6,"d.vec3f",[[5,"0.0031308"]]]]]],[10,[6,"std.select",["a","b","factor"]]]]]},externals:{"std.pow":()=>Ye,"d.vec3f":()=>v,"std.le":()=>gc,"std.select":()=>F}})&&e.f)({})),d2=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return F(Ye(t.add(v(.055)).div(v(1.055)),v(2.4)),t.div(v(12.92)),gc(t,v(.04045)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"hi",[6,"std.pow",[[6,[7,[6,[7,"color","add"],[[6,"d.vec3f",[[5,"0.055"]]]]],"div"],[[6,"d.vec3f",[[5,"1.055"]]]]],[6,"d.vec3f",[[5,"2.4"]]]]]],[13,"lo",[6,[7,"color","div"],[[6,"d.vec3f",[[5,"12.92"]]]]]],[13,"isLow",[6,"std.le",["color",[6,"d.vec3f",[[5,"0.04045"]]]]]],[10,[6,"std.select",["hi","lo","isLow"]]]]]},externals:{"std.pow":()=>Ye,"d.vec3f":()=>v,"std.le":()=>gc,"std.select":()=>F}})&&e.f)({})),da=e=>e?e.offsetX!==0||e.offsetY!==0||e.rotation!==0||e.scale!==1||e.anchorX!==.5||e.anchorY!==.5:!1,LL=y.fn([u,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_div(__tsover_mul(o,Math.PI),180),_=J(c),p=O(c),f=__tsover_div(__tsover_sub(t.x,i),n),h=__tsover_div(__tsover_sub(t.y,d),n),g=__tsover_mul(f,l),x=h,T=__tsover_sub(__tsover_mul(g,_),__tsover_mul(x,p)),S=__tsover_add(__tsover_mul(g,p),__tsover_mul(x,_));return u(__tsover_add(__tsover_sub(__tsover_div(T,l),s),i),__tsover_add(__tsover_sub(S,r),d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"offsetX"},{type:"i",name:"offsetY"},{type:"i",name:"rotation"},{type:"i",name:"scale"},{type:"i",name:"anchorX"},{type:"i",name:"anchorY"},{type:"i",name:"aspectRatio"}],body:[0,[[13,"rotationRad",[1,[1,"rotation","*","Math.PI"],"/",[5,"180"]]],[13,"cosAngle",[6,"std.cos",["rotationRad"]]],[13,"sinAngle",[6,"std.sin",["rotationRad"]]],[13,"centeredX",[1,[1,[7,"uv","x"],"-","anchorX"],"/","scale"]],[13,"centeredY",[1,[1,[7,"uv","y"],"-","anchorY"],"/","scale"]],[13,"squareX",[1,"centeredX","*","aspectRatio"]],[13,"squareY","centeredY"],[13,"rotatedSquareX",[1,[1,"squareX","*","cosAngle"],"-",[1,"squareY","*","sinAngle"]]],[13,"rotatedSquareY",[1,[1,"squareX","*","sinAngle"],"+",[1,"squareY","*","cosAngle"]]],[13,"finalX",[1,[1,[1,"rotatedSquareX","/","aspectRatio"],"-","offsetX"],"+","anchorX"]],[13,"finalY",[1,[1,"rotatedSquareY","-","offsetY"],"+","anchorY"]],[10,[6,"d.vec2f",["finalX","finalY"]]]]]},externals:{"Math.PI":()=>Math.PI,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({}));y.fn([u,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_add(__tsover_sub(t.x,i),s),_=__tsover_add(__tsover_sub(t.y,d),r),p=__tsover_mul(c,l),f=_,h=-__tsover_div(__tsover_mul(o,Math.PI),180),g=J(h),x=O(h),T=__tsover_sub(__tsover_mul(p,g),__tsover_mul(f,x)),S=__tsover_add(__tsover_mul(p,x),__tsover_mul(f,g)),A=__tsover_mul(__tsover_div(T,l),n),E=__tsover_mul(S,n);return u(__tsover_add(A,i),__tsover_add(E,d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"offsetX"},{type:"i",name:"offsetY"},{type:"i",name:"rotation"},{type:"i",name:"scale"},{type:"i",name:"anchorX"},{type:"i",name:"anchorY"},{type:"i",name:"aspectRatio"}],body:[0,[[13,"centeredX",[1,[1,[7,"uv","x"],"-","anchorX"],"+","offsetX"]],[13,"centeredY",[1,[1,[7,"uv","y"],"-","anchorY"],"+","offsetY"]],[13,"squareX",[1,"centeredX","*","aspectRatio"]],[13,"squareY","centeredY"],[13,"rotationRad",[4,"-",[1,[1,"rotation","*","Math.PI"],"/",[5,"180"]]]],[13,"cosAngle",[6,"std.cos",["rotationRad"]]],[13,"sinAngle",[6,"std.sin",["rotationRad"]]],[13,"rotatedSquareX",[1,[1,"squareX","*","cosAngle"],"-",[1,"squareY","*","sinAngle"]]],[13,"rotatedSquareY",[1,[1,"squareX","*","sinAngle"],"+",[1,"squareY","*","cosAngle"]]],[13,"scaledX",[1,[1,"rotatedSquareX","/","aspectRatio"],"*","scale"]],[13,"scaledY",[1,"rotatedSquareY","*","scale"]],[10,[6,"d.vec2f",[[1,"scaledX","+","anchorX"],[1,"scaledY","+","anchorY"]]]]]]},externals:{"Math.PI":()=>Math.PI,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({}));var gy=(e,t,s)=>{let r=A=>A.unit==="px"?A.value/t:A.value,o=A=>A.unit==="px"?A.value/s:A.value,n=r(e.x),i=o(e.y),d=r(e.width),l=o(e.height),c=(A,E,M)=>M==="end"?1-A-E:M==="center"?.5+A-E/2:A,_=e.origin??"top-left",p=_.includes("left")?"start":_.includes("right")?"end":"center",f=_.includes("top")?"start":_.includes("bottom")?"end":"center",h=c(n,d,p),g=c(i,l,f),x=h+d/2,T=g+l/2,S=e.cornerRadius?e.cornerRadius.unit==="px"?e.cornerRadius.value/s:e.cornerRadius.value:0;return{centerX:x,centerY:T,halfWidthUV:d/2,halfHeightUV:l/2,cornerRadiusUV:S,rotation:e.rotation}},FL=y.fn([u,a,a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c)=>{"use gpu";let _=__tsover_sub(t.x,s),p=__tsover_sub(t.y,r),f=-__tsover_div(__tsover_mul(d,Math.PI),180),h=J(f),g=O(f),x=__tsover_mul(_,l),T=p,S=__tsover_sub(__tsover_mul(x,h),__tsover_mul(T,g)),A=__tsover_add(__tsover_mul(x,g),__tsover_mul(T,h)),E=__tsover_mul(o,l),M=n,$=__tsover_sub(E,i),L=__tsover_sub(M,i),B=__tsover_sub(W(S),$),D=__tsover_sub(W(A),L),G=u(w(B,0),w(D,0)),I=__tsover_sub(__tsover_add(te(G),ue(w(B,D),0)),i),X=w(c,1e-7);return F(__tsover_sub(1,ce(-X,X,I)),F(a(0),a(1),I<=0),c<=0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"centerX"},{type:"i",name:"centerY"},{type:"i",name:"halfWidth"},{type:"i",name:"halfHeight"},{type:"i",name:"cornerRadius"},{type:"i",name:"rotation"},{type:"i",name:"aspectRatio"},{type:"i",name:"aaFeather"}],body:[0,[[13,"centeredX",[1,[7,"uv","x"],"-","centerX"]],[13,"centeredY",[1,[7,"uv","y"],"-","centerY"]],[13,"rotRad",[4,"-",[1,[1,"rotation","*","Math.PI"],"/",[5,"180"]]]],[13,"cosA",[6,"std.cos",["rotRad"]]],[13,"sinA",[6,"std.sin",["rotRad"]]],[13,"sqX",[1,"centeredX","*","aspectRatio"]],[13,"sqY","centeredY"],[13,"rotatedX",[1,[1,"sqX","*","cosA"],"-",[1,"sqY","*","sinA"]]],[13,"rotatedY",[1,[1,"sqX","*","sinA"],"+",[1,"sqY","*","cosA"]]],[13,"halfWidthSq",[1,"halfWidth","*","aspectRatio"]],[13,"halfHeightSq","halfHeight"],[13,"innerHalfW",[1,"halfWidthSq","-","cornerRadius"]],[13,"innerHalfH",[1,"halfHeightSq","-","cornerRadius"]],[13,"qx",[1,[6,"std.abs",["rotatedX"]],"-","innerHalfW"]],[13,"qy",[1,[6,"std.abs",["rotatedY"]],"-","innerHalfH"]],[13,"qClamped",[6,"d.vec2f",[[6,"std.max",["qx",[5,"0"]]],[6,"std.max",["qy",[5,"0"]]]]]],[13,"sdf",[1,[1,[6,"std.length",["qClamped"]],"+",[6,"std.min",[[6,"std.max",["qx","qy"]],[5,"0"]]]],"-","cornerRadius"]],[13,"feather",[6,"std.max",["aaFeather",[5,"1e-7"]]]],[13,"ramp",[1,[5,"1"],"-",[6,"std.smoothstep",[[4,"-","feather"],"feather","sdf"]]]],[13,"binary",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"sdf","<=",[5,"0"]]]]],[10,[6,"std.select",["ramp","binary",[1,"aaFeather","<=",[5,"0"]]]]]]]},externals:{"Math.PI":()=>Math.PI,"std.cos":()=>J,"std.sin":()=>O,"std.abs":()=>W,"d.vec2f":()=>u,"std.max":()=>w,"std.length":()=>te,"std.min":()=>ue,"std.smoothstep":()=>ce,"std.select":()=>F,"d.f32":()=>a}})&&e.f)({})),l2=y.fn([u,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_sub(t.x,s),c=__tsover_sub(t.y,r),_=-__tsover_div(__tsover_mul(i,Math.PI),180),p=J(_),f=O(_),h=__tsover_mul(l,d),g=c,x=__tsover_sub(__tsover_mul(h,p),__tsover_mul(g,f)),T=__tsover_add(__tsover_mul(h,f),__tsover_mul(g,p)),S=w(__tsover_mul(o,d),1e-6),A=w(n,1e-6);return u(__tsover_add(__tsover_div(x,__tsover_mul(S,2)),.5),__tsover_add(__tsover_div(T,__tsover_mul(A,2)),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"centerX"},{type:"i",name:"centerY"},{type:"i",name:"halfWidth"},{type:"i",name:"halfHeight"},{type:"i",name:"rotation"},{type:"i",name:"aspectRatio"}],body:[0,[[13,"centeredX",[1,[7,"uv","x"],"-","centerX"]],[13,"centeredY",[1,[7,"uv","y"],"-","centerY"]],[13,"rotRad",[4,"-",[1,[1,"rotation","*","Math.PI"],"/",[5,"180"]]]],[13,"cosA",[6,"std.cos",["rotRad"]]],[13,"sinA",[6,"std.sin",["rotRad"]]],[13,"sqX",[1,"centeredX","*","aspectRatio"]],[13,"sqY","centeredY"],[13,"rotatedX",[1,[1,"sqX","*","cosA"],"-",[1,"sqY","*","sinA"]]],[13,"rotatedY",[1,[1,"sqX","*","sinA"],"+",[1,"sqY","*","cosA"]]],[13,"halfWidthSq",[6,"std.max",[[1,"halfWidth","*","aspectRatio"],[5,"0.000001"]]]],[13,"halfHeightSq",[6,"std.max",["halfHeight",[5,"0.000001"]]]],[13,"localX",[1,[1,"rotatedX","/",[1,"halfWidthSq","*",[5,"2"]]],"+",[5,"0.5"]]],[13,"localY",[1,[1,"rotatedY","/",[1,"halfHeightSq","*",[5,"2"]]],"+",[5,"0.5"]]],[10,[6,"d.vec2f",["localX","localY"]]]]]},externals:{"Math.PI":()=>Math.PI,"std.cos":()=>J,"std.sin":()=>O,"std.max":()=>w,"d.vec2f":()=>u}})&&e.f)({})),rT=(e,t,s)=>{let r=s.rotationDeg*Math.PI/180,o=Math.cos(r),n=Math.sin(r),i=(e-s.centerX)*s.aspectRatio,d=t-s.centerY,l=i*o+d*n,c=i*-n+d*o,_=Math.max(s.halfWidthUV*s.aspectRatio,1e-6),p=Math.max(s.halfHeightUV,1e-6);return{x:l/(2*_)+.5,y:c/(2*p)+.5}},ec={x:{value:0,unit:"uv"},y:{value:0,unit:"uv"},width:{value:1,unit:"uv"},height:{value:1,unit:"uv"},origin:"top-left",rotation:0};function xy(e){if(!e||typeof e!="object")return;let t=(s,r)=>s&&typeof s=="object"?{value:s.value??r.value,unit:s.unit??r.unit}:{...r};return{x:t(e.x,ec.x),y:t(e.y,ec.y),width:t(e.width,ec.width),height:t(e.height,ec.height),origin:e.origin??"top-left",rotation:e.rotation??0,...e.cornerRadius?{cornerRadius:e.cornerRadius}:{},...e.lockAspect!==void 0?{lockAspect:e.lockAspect}:{}}}function km(e){if(!e||typeof e!="object")return!1;let t=(s,r)=>!!s&&s.unit==="uv"&&s.value===r;return t(e.x,0)&&t(e.y,0)&&t(e.width,1)&&t(e.height,1)&&(e.rotation??0)===0&&(e.cornerRadius?.value??0)===0}var Ts=class W_{_emit;constructor(t){this._emit=t}member(t){return new W_(s=>`${BL(this._emit(s))}.${t}`)}mul(t){return new W_(s=>`(${this._emit(s)} * ${c2(t,s)})`)}add(t){return new W_(s=>`(${this._emit(s)} + ${c2(t,s)})`)}};function BL(e){return/^[\w.$]+$/.test(e)?e:`(${e})`}function c2(e,t){return typeof e=="number"?$m(e):e._emit(t)}function $m(e){return Number.isFinite(e)?Number.isInteger(e)?`${e}.0`:`${e}`:e>0?"3.4e38":e<0?"-3.4e38":"0.0"}var by=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({linearClamp:{sampler:"filtering"},nearestClamp:{sampler:"filtering"},linearRepeat:{sampler:"filtering"},nearestRepeat:{sampler:"filtering"}}).$idx(2),"SHARED_SAMPLER_LAYOUT"),tc={uniforms:0,textures:1,samplers:2,external:3};function il(e){return new Ts(()=>e)}function nt(e){return new Ts(()=>$m(e))}function se(e,t,s){return new Ts(r=>`${r.external(e,t)}(${s.map(o=>o._emit(r)).join(", ")})`)}function Ss(...e){return new Ts(t=>`vec4f(${e.map(s=>oT(s,t)).join(", ")})`)}function wn(e,t,s){return new Ts(r=>`mix(${e._emit(r)}, ${t._emit(r)}, ${oT(s,r)})`)}var IL=0;function Vs(e,t){let s=IL++;return new Ts(r=>r.memo(`local:${s}`,()=>{let o=r.freshLocal(t);return r.statement(`let ${o} = ${e._emit(r)};`),o}))}var _s=il("vec4f(0.0, 0.0, 0.0, 0.0)"),lf=il("vec4f(1.0, 1.0, 1.0, 0.0)");function oT(e,t){return typeof e=="number"?$m(e):e._emit(t)}function Ua(e,t,s,r){return se(j3[s]??j3.normal,`blend_${Ap(s)}`,[e,t,r])}function YL(e,t,s){return se(K3[s]??K3.alpha,`mask_${Ap(s)}`,[e,t])}function Ap(e){return e.replace(/[^a-zA-Z0-9_]/g,"_")}function u2(e,t,s,r){let o={},n=new Map,i=new Set,d=[],l=new Map,c=0,_={external(x,T){let S=n.get(x);if(S)return S;let A=Ap(T);if(i.has(A)){let E=1;for(;i.has(`${A}_${E}`);)E++;A=`${A}_${E}`}return i.add(A),n.set(x,A),o[A]=x,A},statement(x){d.push(x)},freshLocal(x){return`${Ap(x)}_${c++}`},memo(x,T){let S=l.get(x);if(S!==void 0)return S;let A=T();return l.set(x,A),A}},p=s?"vec2f(in.uv.x, 1.0 - in.uv.y)":"in.uv";d.push(`var uv = ${p};`);let f=e._emit(_),h=t(f,_),g=`${d.join(`
|
|
`)}
|
|
${f}
|
|
${h}`;return r&&/\b(?:tex|samp|ext)\.\$\./.test(g)&&!/\buni\.\$\./.test(g)&&(_.external(r,"uni"),d.unshift("_ = uni.$.uniforms._sys.time;")),{body:`{
|
|
${d.join(`
|
|
`)}
|
|
return ${h};
|
|
}`,externals:o}}function nT(e,t={}){let s={sampler:by},r=[],o=[],n=[],i=[],d=new Set,l=[],c=[],_=[],p=[],f=0,h=0,g=0,x=0,T=new Set,S=e.store.layout;S&&S.$idx(tc.uniforms),s.uniform=S;let A=N=>new Ts(xe=>(S&&xe.external(S,"uni"),N)),E=N=>A(`uni.$.uniforms.${N}`),M=N=>A(e.store.gpuAccessor(N,"uni")),$={uv:new Ts(()=>"uv"),time:E("_sys.time"),viewportSize:E("_sys.viewportSize"),logicalViewportSize:E("_sys.logicalViewportSize"),aspect:E("_sys.aspect"),pointer:E("_sys.pointer")},L=N=>({key:N,sample:(xe,pe="linearClamp")=>new Ts(_e=>`textureSample(tex.$.${N}, samp.$.${pe}, ${xe._emit(_e)})`),sampleLevel:(xe,pe="linearClamp")=>new Ts(_e=>`textureSampleLevel(tex.$.${N}, samp.$.${pe}, ${xe._emit(_e)}, 0.0)`),accessor:()=>new Ts(()=>`tex.$.${N}`),dimensions:()=>new Ts(()=>`vec2f(textureDimensions(tex.$.${N}))`)}),B=N=>({key:N,sample:(xe,pe="linearClamp")=>new Ts(_e=>`textureSampleBaseClampToEdge(ext.$.${N}, samp.$.${pe}, ${xe._emit(_e)})`),sampleLevel:(xe,pe="linearClamp")=>new Ts(_e=>`textureSampleBaseClampToEdge(ext.$.${N}, samp.$.${pe}, ${xe._emit(_e)})`),accessor:()=>new Ts(()=>`ext.$.${N}`),dimensions:()=>new Ts(()=>`vec2f(textureDimensions(ext.$.${N}))`)}),D=N=>{let xe=`rtt_${f++}`;return r.push({key:xe,root:N}),o.push({key:xe,kind:"rtt"}),L(xe)},G=new Map,I=(N,xe,pe)=>{let _e=`${N.id}:${xe}`,me=G.get(_e);if(me!==void 0)return me;let Ue=pe?e.resolveCustomId(pe):null,je=Ue?D(Lt(Ue,new Set([N.id]))):null;return G.set(_e,je),je},X=new Map,H=N=>{let xe=X.get(N.id);if(xe)return xe;let pe={},_e=N.metadata.maps;if(_e){let me={},Ue=N.definition.mapSampleUVs;if(Ue){let je={};for(let[yt,wt]of Object.entries(N.handles))wt.cpu||(je[yt]=M(wt));me=Ue({uniforms:je,ctx:$})??{}}for(let[je,yt]of Object.entries(_e)){if(!(je in N.handles))continue;let wt=Ee(yt,N,je,me[je]);wt&&(pe[je]=wt)}}return X.set(N.id,pe),pe},ee=N=>{let xe=yn(N.id),pe=N.metadata.maps;if(!pe||Object.keys(pe).length===0)return E(xe);let _e=H(N);return Object.keys(_e).length===0?E(xe):new Ts(me=>me.memo(`props:${N.id}`,()=>{S&&me.external(S,"uni");let Ue=me.freshLocal(`p_${xe}`);me.statement(`var ${Ue} = uni.$.uniforms.${xe};`);for(let[je,yt]of Object.entries(_e))me.statement(`${Ue}.${je} = ${yt._emit(me)};`);return Ue}))},Q=N=>{let xe={};for(let[pe,_e]of Object.entries(N.handles))xe[pe]=_e.value;return xe},de=N=>{let xe={};yn(N.id);let pe=ee(N);for(let[me,Ue]of Object.entries(N.handles)){if(Ue.cpu)continue;let je=N.metadata.maps;je&&me in je?xe[me]=pe.member(me):xe[me]=M(Ue)}let _e=N.definition.extraFields;if(_e)for(let me of Object.keys(_e))xe[me]=pe.member(me);return xe},Ee=(N,xe,pe,_e)=>{let me=N,Ue=yn(xe.id);if(me.type==="map"){let je=I(xe,pe,me.source);return je?VL(OL(je.sample(_e??$.uv),me.channel??"luminance"),E(`${Ue}._map_${pe}_inputMin`),E(`${Ue}._map_${pe}_inputMax`),E(`${Ue}._map_${pe}_outputMin`),E(`${Ue}._map_${pe}_outputMax`),E(`${Ue}._map_${pe}_curve`)):null}return me.type==="mouse-position"||me.type==="mouse"||me.type==="auto-animate"?E(`${Ue}._smoothed_${pe}`):null},he=(N,xe,pe,_e)=>{let me=xe.metadata.mask;if(!me?.source)return N;let Ue=e.resolveCustomId(me.source);if(!Ue)return N;if(pe.has(Ue))return console.error("[gpu] circular dependency in shader masks."),N;let je=new Set(pe);je.add(xe.id);let yt=Lt(Ue,je);return _e&&(yt=D(yt).sample(_e)),YL(N,yt,me.type??"alpha")},Me=N=>E(`${yn(N.id)}._opacity`),Te=N=>!!N.metadata.boundingBox&&!!N.definition.boundingBoxDeclaration&&!km(N.metadata.boundingBox),Pe=N=>N.handles.cutout?.value===1,Ce=N=>!!N.definition.requiresChild,ie=N=>!!N.definition.blendWithChildren,Ne=N=>Te(N)&&!N.definition.boundingBoxDeclaration?.boxResamplesContent&&Ce(N)&&N.metadata.blendMode==="normal"&&!Pe(N)&&!ie(N),ye=()=>new Ts(N=>`(0.5 / max(${$.viewportSize.member("y")._emit(N)}, 1.0))`),Ve=(N,xe=$.uv)=>{let pe=yn(N.id),_e=me=>E(`${pe}._bbox_${me}`);return se(FL,"bboxClipMask",[xe,_e("centerX"),_e("centerY"),_e("halfWidth"),_e("halfHeight"),_e("cornerRadius"),_e("rotation"),_e("aspectRatio"),ye()])},qe=(N,xe)=>{if(!Te(xe))return N;if(xe.definition.boundingBoxDeclaration?.boxResamplesContent){let _e=yn(xe.id),me=wt=>E(`${_e}._bbox_${wt}`),Ue=D(N),je=se(l2,"bboxGenUVContext",[$.uv,me("centerX"),me("centerY"),me("halfWidth"),me("halfHeight"),me("rotation"),me("aspectRatio")]),yt=se(Hn,"unpremultiplyAlpha",[Ue.sample(je)]);return Ss(yt.member("rgb"),yt.member("a").mul(Ve(xe)))}let pe=Ve(xe);return Ss(N.member("rgb"),N.member("a").mul(pe))},st=(N,xe)=>{let pe=xe.metadata.transform;if(!pe||!da(pe))return N;let _e=yn(xe.id),me=D(N),Ue=je=>E(`${_e}._xform_${je}`);return Ed(se(LL,"applyUVTransform",[$.uv,Ue("offsetX"),Ue("offsetY"),Ue("rotation"),Ue("scale"),Ue("anchorX"),Ue("anchorY"),Ue("aspectRatio")]),je=>me.sample(je),NL[pe.edges]??0)},We=(N,xe,pe)=>Te(pe)?xe!==void 0&&Ne(pe)?wn(xe,N,Ve(pe)):qe(N,pe):st(N,pe),Be=(N,xe)=>Ne(xe)?{transformedFragment:N,clipMaskNode:Ve(xe)}:{transformedFragment:Te(xe)?qe(N,xe):st(N,xe),clipMaskNode:void 0},rt=(N,xe,pe,_e)=>{let me=Me(pe),Ue=ie(pe)?N!==void 0?Ua(N,xe,"normal",me):wn(_s,xe,me):wn(N??_s,xe,me);return _e===void 0?Ue:wn(N??_s,Ue,_e)},tt=(N,xe)=>{if(N.definition.compute)try{let pe=N.definition.compute(xe);if(pe)return i.push({nodeId:N.id,getComputeNodes:pe.getComputeNodes,bindInputs:pe.bindInputs}),pe.outputs}catch(pe){yr(`[gpu] error initializing compute for node ${N.id}:`,pe)}},Ke=N=>{let xe=yn(N.id),pe=_e=>E(`${xe}._bbox_${_e}`);return{centerX:pe("centerX"),centerY:pe("centerY"),halfWidth:pe("halfWidth"),halfHeight:pe("halfHeight"),rotation:pe("rotation")}},Oe=N=>{let xe=N.definition.boundingBoxDeclaration;return!!xe&&(!!xe.computeBounds||!!xe.propBindings)},gt=N=>{if(!N.definition.wantsBoundsParams)return{};let xe={};Te(N)&&(xe.ownBoundsParams=Ke(N));let pe=[...e.getChildren(N.id)].sort((_e,me)=>_e.metadata.renderOrder-me.metadata.renderOrder);for(let _e of pe)if(_e.metadata.visible!==!1){if(Te(_e)){xe.childBoundsParams=Ke(_e);break}if(Oe(_e)){let me=yn(N.id),Ue=je=>E(`${me}._childBounds_${je}`);xe.childBoundsParams={centerX:Ue("centerX"),centerY:Ue("centerY"),halfWidth:Ue("halfWidth"),halfHeight:Ue("halfHeight"),rotation:nt(0)};break}}return xe},pt=!1,Ut=(N,xe,pe={})=>({noteCustomWgsl:()=>{pt=!0},props:ee(N),uniforms:de(N),propValues:Q(N),childNode:xe,ctx:$,logicalViewportSize:$.logicalViewportSize,convertToTexture:D,declareTexture:_e=>{o.some(me=>me.key===_e.key)||o.push({key:_e.key,kind:"media",resource:_e._resource})},registerExternalTexture:_e=>{let me=`video_${g++}`;return n.push({key:me,getSource:_e}),B(me)},registerComputeTexture:_e=>{let me=`compute_${h++}`;o.push({key:me,kind:"compute",resource:{texture:_e}});let Ue=_e?.props?.format;return(Ue==="r32float"||Ue==="rg32float"||Ue==="rgba32float")&&T.add(me),L(me)},createMediaTexture:_e=>t.createMediaTexture?.(_e)??(()=>{throw new Error("[gpu] createMediaTexture unavailable (no TextureManager injected)")})(),createDataTexture:_e=>t.createDataTexture?.(_e)??(()=>{throw new Error("[gpu] createDataTexture unavailable (no TextureManager injected)")})(),registerMediaTexture:_e=>{let me=`media_${x++}`;return o.push({key:me,kind:"media",resource:{get texture(){return _e()}}}),L(me)},getCpuValue:_e=>{if((N.metadata.maps?.[_e]||_e.startsWith("_animTime"))&&t.resolveDriverCpuValue){let me=t.resolveDriverCpuValue(N.id,_e);if(me!==void 0)return me}return N.handles[_e]?.value},getMapInfo:_e=>{let me=N.metadata.maps?.[_e];if(!me||me.type!=="map")return null;let Ue=I(N,_e,me.source);return Ue?{sourceTexture:Ue,channel:me.channel??"luminance",window:()=>t.resolveMapWindow?.(N.id,_e)??{inputMin:typeof me.inputMin=="number"?me.inputMin:0,inputMax:typeof me.inputMax=="number"?me.inputMax:1,outputMin:typeof me.outputMin=="number"?me.outputMin:0,outputMax:typeof me.outputMax=="number"?me.outputMax:1,curve:typeof me.curve=="number"?me.curve:0}}:null},getLayerTexture:_e=>{let me=N.handles[_e]?.value;return typeof me!="string"||me===""?null:I(N,_e,me)},setExtraField:(_e,me)=>t.writeExtraField?.(N.id,_e,me),onCleanup:_e=>p.push(_e),onBeforeRender:_e=>l.push(_e),onAfterRender:_e=>c.push(_e),onResize:_e=>_.push(_e),canvas:t.canvas,dimensions:t.dimensions??{width:1,height:1},gpu:t.gpu,domCanvas:N.domCanvas,...gt(N),...pe});function Lt(N,xe=new Set){let pe=e.getNode(N);if(!pe)return _s;let _e=e.getChildren(N);if(_e.length>0&&pe.definition.providesUVContextViaCompute){let wt=Go(pe,_e,xe);if(wt!==null)return wt}if(_e.length>0&&pe.definition.uvRemap){let wt=Qr(pe,_e);if(wt!==null)return wt;let mt=Cn(pe,_e,xe);if(mt!==null)return mt}if(_e.length===0){d.add(N);let wt=Ut(pe,void 0,{bboxMask:jt(pe),...vs(pe)});wt.computeOutputs=tt(pe,wt);let mt=pe.definition.fragment(wt);return he(Te(pe)?qe(mt,pe):st(mt,pe),pe,xe)}let me=[..._e].sort((wt,mt)=>wt.metadata.renderOrder-mt.metadata.renderOrder),Ue=nr(me,xe);if(Ue!==null){let wt=Ut(pe,Ue,{bboxMask:jt(pe)});wt.computeOutputs=tt(pe,wt);let mt=pe.definition.fragment(wt);return he(Te(pe)?qe(mt,pe):st(mt,pe),pe,xe)}let je=Wt(pe,me,xe);d.add(N);let yt=Ut(pe,je,{bboxMask:jt(pe)});return yt.computeOutputs=tt(pe,yt),he(We(pe.definition.fragment(yt),je,pe),pe,xe)}function Wt(N,xe,pe){let _e;for(let me=0;me<xe.length;me++){let Ue=xe[me];if(Ue.metadata.visible===!1)continue;if(_e!==void 0&&$s(Ue)){let mt=ho(xe,me,_e,pe);if(mt){_e=mt.node,me=mt.endIndex;continue}}d.add(Ue.id);let je=e.getChildren(Ue.id).length>0,yt,wt;if(je)yt=Lt(Ue.id,pe);else{let mt=_e;Ue.definition.requiresRTT&&_e!==void 0&&(mt=Ua(_s,_e,"normal",nt(1))),Ue.definition.acceptsOptionalChild&&(mt=void 0);let us=Ut(Ue,mt,{bboxMask:jt(Ue),...vs(Ue)});us.computeOutputs=tt(Ue,us);let ds=Be(Ue.definition.fragment(us),Ue);wt=ds.clipMaskNode,yt=he(ds.transformedFragment,Ue,pe)}if(Ue.definition.requiresChild&&Ue.metadata.blendMode==="normal"&&!je)_e=rt(_e,yt,Ue,wt);else{let mt=Ue.metadata.blendMode??"normal",us=Ue.metadata.opacity??1;_e===void 0?_e=N.definition.requiresRTT||us!==1?Ua(lf,yt,mt,Me(Ue)):yt:_e=Ua(_e,yt,mt,Me(Ue))}}return _e}function vs(N,xe=$.uv){if(!Te(N))return{};if(!N.definition.boundingBoxDeclaration?.supportsResizeFit)return{};let pe=yn(N.id),_e=me=>E(`${pe}._bbox_${me}`);return{uvContext:se(l2,"bboxGenUVContext",[xe,_e("centerX"),_e("centerY"),_e("halfWidth"),_e("halfHeight"),_e("rotation"),_e("aspectRatio")]),effectiveViewportSize:Ss(_e("halfWidth").mul(2).mul($.viewportSize.member("x")),_e("halfHeight").mul(2).mul($.viewportSize.member("y")),0,0).member("xy")}}function jt(N){if(!(!Te(N)||!N.definition.requiresRTT)&&!N.definition.boundingBoxDeclaration?.supportsResizeFit)return Ve(N)}let Qt=N=>!!N.metadata.mask||N.metadata.opacity!==void 0&&N.metadata.opacity<1||(N.metadata.blendMode??"normal")!=="normal"||da(N.metadata.transform)||Te(N),$s=N=>!!N.definition.uvRemap&&e.getChildren(N.id).length===0&&!Qt(N);function Is(N,xe,pe){d.add(N.id);let _e=tt(N,Ut(N,void 0));return N.definition.uvRemap({uv:xe,mask:pe,uniforms:de(N),propValues:Q(N),props:ee(N),aspect:$.aspect,onBeforeRender:me=>l.push(me),computeOutputs:_e})}function Ys(N){let xe=$.uv,pe=nt(1);for(let _e=N.length-1;_e>=0;_e--){let me=Is(N[_e],xe,pe);xe=me.uv,pe=me.mask}return{uv:xe,mask:pe}}let hs=24,rr=nt(1),or=(N,xe)=>{if(xe.left--<=0||N.metadata.mask||da(N.metadata.transform))return!1;let pe=e.getChildren(N.id).filter(_e=>_e.metadata.visible!==!1);return pe.length===0?Te(N)&&N.definition.boundingBoxDeclaration?.boxResamplesContent?!1:!!N.definition.acceptsUVContext&&!N.definition.requiresChild:!N.definition.uvRemap||Te(N)?!1:pe.every(_e=>or(_e,xe))};function Cr(N,xe,pe){let _e=pe??rr,me=Is(N,xe,_e);return{uv:me.uv,mask:me.mask===_e?pe:me.mask}}let Zr=(N,xe)=>N===void 0?xe:xe===void 0?N:N.mul(xe);function Rr(N,xe,pe){let _e=e.getChildren(N.id).filter(mt=>mt.metadata.visible!==!1);if(_e.length>0){if(!N.definition.uvRemap)return null;let mt=Cr(N,xe,pe);return ur(_e,Vs(mt.uv,"foldUV"),mt.mask)}if(!N.definition.acceptsUVContext)return null;d.add(N.id);let me=vs(N,xe),Ue=Ut(N,void 0,Object.keys(me).length>0?me:{uvContext:xe});Ue.computeOutputs=tt(N,Ue);let je=N.definition.fragment(Ue),yt=Zr(pe,Te(N)?Ve(N,xe):void 0);if(yt===void 0)return je;let wt=Vs(je,"gen");return Ss(wt.member("rgb"),wt.member("a").mul(yt))}function ur(N,xe,pe){let _e=[...N].sort((je,yt)=>je.metadata.renderOrder-yt.metadata.renderOrder),me;for(let je of _e){let yt=Rr(je,xe,void 0);if(yt===null)return null;let wt=je.metadata.blendMode??"normal",mt=je.metadata.opacity??1;me===void 0?me=wt==="normal"&&mt===1?yt:Ua(lf,yt,wt,Me(je)):me=Ua(me,yt,wt,Me(je))}if(me===void 0)return null;if(pe===void 0)return me;let Ue=Vs(me,"sibs");return Ss(Ue.member("rgb"),Ue.member("a").mul(pe))}function Qr(N,xe){if(!N.definition.uvRemap||Qt(N))return null;let pe=xe.filter(je=>je.metadata.visible!==!1);if(pe.length===0)return null;let _e={left:hs};if(!pe.every(je=>or(je,_e)))return null;d.add(N.id);let{uv:me,mask:Ue}=Cr(N,$.uv,void 0);return ur(pe,Vs(me,"foldUV"),Ue)}function nr(N,xe){let pe=N.filter(ds=>ds.metadata.visible!==!1);if(!pe.some(ds=>!!ds.definition.uvRemap)||pe.length<2)return null;let _e=pe.length;for(let ds=pe.length-1;ds>=0&&$s(pe[ds]);ds--)_e=ds;let me=pe.slice(_e),Ue=pe.slice(0,_e);if(me.length===0||Ue.length!==1)return null;let je=Ue[0];if(!je.definition.acceptsUVContext||e.getChildren(je.id).length>0||Qt(je))return null;d.add(je.id);for(let ds of me)d.add(ds.id);let{uv:yt,mask:wt}=Ys(me),mt=Ut(je,void 0,{uvContext:yt});mt.computeOutputs=tt(je,mt);let us=je.definition.fragment(mt);return Ss(us.member("rgb"),us.member("a").mul(wt))}function ho(N,xe,pe,_e){if(!$s(N[xe]))return null;let me=[],Ue=xe;for(let mt=xe;mt<N.length;mt++){let us=N[mt];if(us.metadata.visible!==!1){if(!$s(us))break;me.push(us),Ue=mt}}if(me.length===0)return null;for(let mt of me)d.add(mt.id);let{uv:je,mask:yt}=Ys(me),wt=D(Ua(_s,pe,"normal",nt(1))).sample(je);return{node:Ss(wt.member("rgb"),wt.member("a").mul(yt)),endIndex:Ue}}function Cn(N,xe,pe){if(!N.definition.uvRemap||Qt(N))return null;let _e=8,me=[],Ue=N,je=xe,yt=null,wt=null;for(let hr=0;hr<_e;hr++){me.push(Ue);let Zo=je.filter(Rn=>Rn.metadata.visible!==!1);if(Zo.length!==1)return null;let oo=Zo[0],ys=e.getChildren(oo.id);if(oo.definition.acceptsUVContext&&ys.length===0&&!Qt(oo)){yt=oo;break}if(oo.definition.uvRemap&&!Qt(oo)&&ys.length===1){Ue=oo,je=ys;continue}wt=oo;break}if(!yt&&!wt)return null;for(let hr of me)d.add(hr.id);let{uv:mt,mask:us}=Ys([...me].reverse()),ds;if(yt){d.add(yt.id);let hr=Ut(yt,void 0,{uvContext:mt});hr.computeOutputs=tt(yt,hr);let Zo=yt.definition.fragment(hr);ds=Ss(Zo.member("rgb"),Zo.member("a").mul(us))}else{let hr=D(Ua(lf,Lt(wt.id,pe),wt.metadata.blendMode??"normal",Me(wt))).sample(mt);ds=Ss(hr.member("rgb"),hr.member("a").mul(us))}return he(Te(N)?qe(ds,N):st(ds,N),N,pe)}function Go(N,xe,pe){let _e=ys=>!!ys.metadata.mask||ys.metadata.opacity!==void 0&&ys.metadata.opacity<1||(ys.metadata.blendMode??"normal")!=="normal"||da(ys.metadata.transform)||Te(ys);if(!N.definition.providesUVContextViaCompute||_e(N))return null;let me=[],Ue=N,je=null,yt=xe,wt=8;for(let ys=0;ys<wt;ys++){me.push(Ue);let Rn=yt.filter(_i=>_i.metadata.visible!==!1);if(Rn.length!==1)return null;let yo=Rn[0];if(_e(yo))return null;let mn=e.getChildren(yo.id).length>0;if(yo.definition.acceptsUVContext&&!mn){je=yo;break}if(yo.definition.providesUVContextViaCompute){Ue=yo,yt=e.getChildren(yo.id);continue}return null}if(!je)return null;d.add(je.id);for(let ys of me)d.add(ys.id);let mt=[],us;for(let ys=0;ys<me.length;ys++){let Rn=me[ys],yo=Ut(Rn,void 0,{computeOutputs:us?{_upstreamUVMap:us}:void 0}),mn=tt(Rn,yo);if(!mn||!mn.uvMaskMap)return null;yo.computeOutputs=mn,mt.push(yo),us=mn.uvMaskMap}let ds=us.sample($.uv),hr=Ss(ds.member("r"),ds.member("g"),0,0).member("xy"),Zo=Ut(je,void 0,{uvContext:hr});Zo.computeOutputs=tt(je,Zo);let oo=je.definition.fragment(Zo);for(let ys=me.length-1;ys>=0;ys--)mt[ys].childNode=oo,mt[ys].uvPropagationActive=!0,oo=me[ys].definition.fragment(mt[ys]);return he(Te(N)?qe(oo,N):st(oo,N),N,pe)}let ed=e.rootId?Lt(e.rootId):_s,ui=r.map(N=>{let{body:xe,externals:pe}=u2(N.root,_e=>_e,t.flipY??!0,s.uniform);return{textureKey:N.key,fragment:_2(xe,pe,`rtt_${N.key}`,s.sampler,T)}}),td=t.toneMapping??"linear",sd=u2(ed,(N,xe)=>WL(N,xe,td,t.premultiplyAlpha??!1),t.flipY??!0,s.uniform);return{computeSteps:i,rttPasses:ui,finalPass:_2(sd.body,sd.externals,"final",s.sampler,T),textures:o,externalTextures:n,layouts:{uniforms:s.uniform,samplers:s.sampler},onBeforeRender:l,onAfterRender:c,onResize:_,onCleanup:p,composedNodeIds:d,usesCustomWgsl:pt}}function WL(e,t,s,r){let o=t.external(i2[s]??i2.linear,`tone_${s}`),n=t.external(DL,"linearToSrgb"),i=t.freshLocal("composed");t.statement(`var ${i} = ${e};`);let d=`${n}(${o}(${i}.rgb))`;return r?`vec4f(${d} * ${i}.a, ${i}.a)`:`vec4f(${d}, ${i}.a)`}function _2(e,t,s,r,o=new Set){let n=p2(e,/\btex\.\$\.(\w+)/g),i=p2(e,/\bext\.\$\.(\w+)/g),d=/\bsamp\.\$\./.test(e),l;if(n.length>0){let _={};for(let p of n)_[p]=o.has(p)?{texture:Hs(a),sampleType:"unfilterable-float"}:{texture:Hs(a)};l=(globalThis.__TYPEGPU_AUTONAME__??(p=>p))(y.bindGroupLayout(_).$idx(tc.textures),"textureLayout"),t.tex=l}let c;if(i.length>0){let _={};for(let h of i)_[h]={externalTexture:K6()};let p=new Set([tc.uniforms]);n.length>0&&p.add(tc.textures),d&&p.add(tc.samplers);let f=0;for(;p.has(f);)f++;c=(globalThis.__TYPEGPU_AUTONAME__??(h=>h))(y.bindGroupLayout(_).$idx(f),"externalLayout"),t.ext=c}return d&&(t.samp=r),{body:e,externals:t,entry:y.fragmentFn({in:{uv:u},out:b})(e).$uses(t).$name(s),reads:n,externalReads:i,usesSamplers:d,textureLayout:l,externalLayout:c}}function p2(e,t){let s=new Set;for(let r of e.matchAll(t))s.add(r[1]);return[...s]}function OL(e,t){switch(t){case"alpha":return e.member("a");case"alphaInverted":return new Ts(s=>`(1.0 - ${e._emit(s)}.a)`);case"luminanceInverted":return new Ts(s=>`(1.0 - dot(${e._emit(s)}.rgb, vec3f(0.2126, 0.7152, 0.0722)))`);default:return new Ts(s=>`dot(${e._emit(s)}.rgb, vec3f(0.2126, 0.7152, 0.0722))`)}}function VL(e,t,s,r,o,n){return new Ts(i=>{let d=e._emit(i),l=t._emit(i),c=s._emit(i),_=r._emit(i),p=o._emit(i),f=n._emit(i);return`mix(${_}, ${p}, ${`pow(${`clamp((${d} - ${l}) / max(${c} - ${l}, 0.0001), 0.0, 1.0)`}, pow(2.0, -${f} * 2.0))`})`})}var NL={stretch:0,transparent:1,mirror:2,wrap:3};function aT(e,t={}){let s=[];s.push(`tone:${t.toneMapping??"linear"}`),s.push(`flipY:${t.flipY??!0}`),s.push(`premul:${t.premultiplyAlpha??!1}`);let r=o=>{let n=e.getNode(o);if(!n)return;let i=n.metadata,d=n.definition,l=da(i.transform),c=!!i.boundingBox&&!!d.boundingBoxDeclaration&&!km(i.boundingBox),_=(i.opacity??1)===0?"zero":"nonzero",p=i.mask?`${i.mask.source}:${i.mask.type}`:"none",f=[];for(let[h,g]of Object.entries(d.props??{}))if(g.compileTime){let x=n.handles[h];f.push(`${h}=${x?String(x.value):"?"}`)}s.push([`id:${n.id}`,`parent:${n.parentId??""}`,`name:${n.componentName}`,`rev:${d.revision??""}`,`blend:${i.blendMode??"normal"}`,`mask:${p}`,`order:${i.renderOrder??0}`,`visible:${i.visible!==!1}`,`opacity:${_}`,`xform:${l}${l?`:${i.transform?.edges??"transparent"}`:""}`,`bbox:${c}:${c?d.boundingBoxDeclaration?.boxResamplesContent?"resample":d.boundingBoxDeclaration?.supportsResizeFit?"resize":"clip":""}`,`rtt:${!!d.requiresRTT}`,`maps:${i.maps?Object.keys(i.maps).sort().join(","):""}`,`ct:${f.sort().join("|")}`].join("|"));for(let h of e.getChildren(o).sort((g,x)=>g.metadata.renderOrder-x.metadata.renderOrder))r(h.id)};return e.rootId&&r(e.rootId),s}var qL=y.fn([a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(t,s),o=__tsover_add(K(__tsover_sub(r,.5)),.5),n=__tsover_sub(r,o),i=__tsover_add(1,__tsover_mul(__tsover_mul(n,n),__tsover_add(-2.5,__tsover_mul(1.5,n)))),d=__tsover_mul(n,__tsover_add(.5,__tsover_mul(n,__tsover_sub(2,__tsover_mul(1.5,n))))),l=w(__tsover_add(i,d),1e-6),c=__tsover_div(d,l);return v(__tsover_div(__tsover_sub(o,1),s),__tsover_div(__tsover_add(o,c),s),__tsover_div(__tsover_add(o,2),s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"texSize"}],body:[0,[[13,"samplePos",[1,"uv","*","texSize"]],[13,"texPos1",[1,[6,"std.floor",[[1,"samplePos","-",[5,"0.5"]]]],"+",[5,"0.5"]]],[13,"f",[1,"samplePos","-","texPos1"]],[13,"w1",[1,[5,"1"],"+",[1,[1,"f","*","f"],"*",[1,[4,"-",[5,"2.5"]],"+",[1,[5,"1.5"],"*","f"]]]]],[13,"w2",[1,"f","*",[1,[5,"0.5"],"+",[1,"f","*",[1,[5,"2"],"-",[1,[5,"1.5"],"*","f"]]]]]],[13,"w12",[6,"std.max",[[1,"w1","+","w2"],[5,"0.000001"]]]],[13,"offset12",[1,"w2","/","w12"]],[10,[6,"d.vec3f",[[1,[1,"texPos1","-",[5,"1"]],"/","texSize"],[1,[1,"texPos1","+","offset12"],"/","texSize"],[1,[1,"texPos1","+",[5,"2"]],"/","texSize"]]]]]]},externals:{"std.floor":()=>K,"std.max":()=>w,"d.vec3f":()=>v}})&&e.f)({})),XL=y.fn([a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(t,s),o=__tsover_add(K(__tsover_sub(r,.5)),.5),n=__tsover_sub(r,o),i=__tsover_mul(n,__tsover_add(-.5,__tsover_mul(n,__tsover_sub(1,__tsover_mul(.5,n))))),d=__tsover_add(1,__tsover_mul(__tsover_mul(n,n),__tsover_add(-2.5,__tsover_mul(1.5,n)))),l=__tsover_mul(n,__tsover_add(.5,__tsover_mul(n,__tsover_sub(2,__tsover_mul(1.5,n))))),c=__tsover_mul(__tsover_mul(n,n),__tsover_add(-.5,__tsover_mul(.5,n)));return v(i,__tsover_add(d,l),c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"texSize"}],body:[0,[[13,"samplePos",[1,"uv","*","texSize"]],[13,"texPos1",[1,[6,"std.floor",[[1,"samplePos","-",[5,"0.5"]]]],"+",[5,"0.5"]]],[13,"f",[1,"samplePos","-","texPos1"]],[13,"w0",[1,"f","*",[1,[4,"-",[5,"0.5"]],"+",[1,"f","*",[1,[5,"1"],"-",[1,[5,"0.5"],"*","f"]]]]]],[13,"w1",[1,[5,"1"],"+",[1,[1,"f","*","f"],"*",[1,[4,"-",[5,"2.5"]],"+",[1,[5,"1.5"],"*","f"]]]]],[13,"w2",[1,"f","*",[1,[5,"0.5"],"+",[1,"f","*",[1,[5,"2"],"-",[1,[5,"1.5"],"*","f"]]]]]],[13,"w3",[1,[1,"f","*","f"],"*",[1,[4,"-",[5,"0.5"]],"+",[1,[5,"0.5"],"*","f"]]]],[10,[6,"d.vec3f",["w0",[1,"w1","+","w2"],"w3"]]]]]},externals:{"std.floor":()=>K,"d.vec3f":()=>v}})&&e.f)({}));var HL=0,jL=(e,t,s="linearClamp",r="positive")=>{let o=HL++;return new Ts(n=>n.memo(`catmullRom:${o}`,()=>{let i=n.freshLocal("crUV"),d=n.freshLocal("crSize"),l=n.freshLocal("crPosX"),c=n.freshLocal("crPosY"),_=n.freshLocal("crWx"),p=n.freshLocal("crWy"),f=n.freshLocal("crOut");n.statement(`let ${i} = ${t._emit(n)};`),n.statement(`let ${d} = ${e.dimensions()._emit(n)};`);let h=n.external(qL,"catmullRomAxisPositions"),g=n.external(XL,"catmullRomAxisWeights");n.statement(`let ${l} = ${h}(${i}.x, ${d}.x);`),n.statement(`let ${c} = ${h}(${i}.y, ${d}.y);`),n.statement(`let ${_} = ${g}(${i}.x, ${d}.x);`),n.statement(`let ${p} = ${g}(${i}.y, ${d}.y);`),n.statement(`var ${f} = vec4f(0.0, 0.0, 0.0, 0.0);`);let x=["x","y","z"];for(let T of[0,1,2])for(let S of[0,1,2]){let A=new Ts(()=>`vec2f(${l}.${x[S]}, ${c}.${x[T]})`),E=`(${_}.${x[S]} * ${p}.${x[T]})`;n.statement(`${f} += ${e.sample(A,s)._emit(n)} * ${E};`)}return n.statement(r==="unit"?`${f} = clamp(${f}, vec4f(0.0, 0.0, 0.0, 0.0), vec4f(1.0, 1.0, 1.0, 1.0));`:`${f} = max(${f}, vec4f(0.0, 0.0, 0.0, 0.0));`),f}))},KL=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return z(t,u(0,0),u(1,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[10,[6,"std.clamp",["uv",[6,"d.vec2f",[[5,"0"],[5,"0"]]],[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]]]]},externals:{"std.clamp":()=>z,"d.vec2f":()=>u}})&&e.f)({})),iT=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=tn(W(t.x),2),r=tn(W(t.y),2);return u(F(s,__tsover_sub(2,s),s>=1),F(r,__tsover_sub(2,r),r>=1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"mirrorX",[6,"std.mod",[[6,"std.abs",[[7,"uv","x"]]],[5,"2"]]]],[13,"mirrorY",[6,"std.mod",[[6,"std.abs",[[7,"uv","y"]]],[5,"2"]]]],[10,[6,"d.vec2f",[[6,"std.select",["mirrorX",[1,[5,"2"],"-","mirrorX"],[1,"mirrorX",">=",[5,"1"]]]],[6,"std.select",["mirrorY",[1,[5,"2"],"-","mirrorY"],[1,"mirrorY",">=",[5,"1"]]]]]]]]]},externals:{"std.mod":()=>tn,"std.abs":()=>W,"d.vec2f":()=>u,"std.select":()=>F}})&&e.f)({})),dT=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ve(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[10,[6,"std.fract",["uv"]]]]]},externals:{"std.fract":()=>ve}})&&e.f)({})),lT=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(ot(0,t.x),ot(t.x,1)),r=__tsover_mul(ot(0,t.y),ot(t.y,1));return __tsover_mul(s,r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"inX",[1,[6,"std.step",[[5,"0"],[7,"uv","x"]]],"*",[6,"std.step",[[7,"uv","x"],[5,"1"]]]]],[13,"inY",[1,[6,"std.step",[[5,"0"],[7,"uv","y"]]],"*",[6,"std.step",[[7,"uv","y"],[5,"1"]]]]],[10,[1,"inX","*","inY"]]]]},externals:{"std.step":()=>ot}})&&e.f)({})),wy=1,Ty=2,Sy=3;y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return b(t.x,t.y,t.z,__tsover_mul(t.w,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"m"}],body:[0,[[10,[6,"d.vec4f",[[7,"color","x"],[7,"color","y"],[7,"color","z"],[1,[7,"color","w"],"*","m"]]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({}));var ZL=(e,t)=>{switch(t){case wy:return e;case Ty:return se(iT,"edgeMirrorUV",[e]);case Sy:return se(dT,"edgeWrapUV",[e]);default:return se(KL,"edgeClampUV",[e])}},QL=(e,t,s)=>{if(s===wy){let r=se(lT,"edgeTransparentMask",[e]);return{uv:e,mask:t.mul(r)}}return{uv:ZL(e,s),mask:t}},Ed=(e,t,s)=>{if(s===wy){let r=t(e),o=se(lT,"edgeTransparentMask",[e]);return Ss(r.member("rgb"),r.member("a").mul(o))}return t(s===Ty?se(iT,"edgeMirrorUV",[e]):s===Sy?se(dT,"edgeWrapUV",[e]):e)},JL=(e,t,s)=>Ed(t,s===Ty?r=>e.sample(r):r=>jL(e,r,s===Sy?"linearRepeat":"linearClamp"),s),cf=Ct({rUV:u,gUV:u,bUV:u}).$name("ChromaticSplitUVs"),eF=y.fn([u,u,a,a],cf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=s.mul(__tsover_mul(r,.1)),i=.15,d=z(n,u(-i,-i),u(i,i)),l=__tsover_mul(o,.1);return cf({rUV:t.sub(d.mul(__tsover_add(1,l))),gUV:t.sub(d),bUV:t.sub(d.mul(__tsover_sub(1,l)))})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"disp"},{type:"i",name:"strength"},{type:"i",name:"chromaticSplit"}],body:[0,[[13,"scaled",[6,[7,"disp","mul"],[[1,"strength","*",[5,"0.1"]]]]],[13,"maxDisp",[5,"0.15"]],[13,"clamped",[6,"std.clamp",["scaled",[6,"d.vec2f",[[4,"-","maxDisp"],[4,"-","maxDisp"]]],[6,"d.vec2f",["maxDisp","maxDisp"]]]]],[13,"chromaticScale",[1,"chromaticSplit","*",[5,"0.1"]]],[13,"rUV",[6,[7,"uv","sub"],[[6,[7,"clamped","mul"],[[1,[5,"1"],"+","chromaticScale"]]]]]],[13,"gUV",[6,[7,"uv","sub"],["clamped"]]],[13,"bUV",[6,[7,"uv","sub"],[[6,[7,"clamped","mul"],[[1,[5,"1"],"-","chromaticScale"]]]]]],[10,[6,"ChromaticSplitUVs",[[104,{rUV:"rUV",gUV:"gUV",bUV:"bUV"}]]]]]]},externals:{"std.clamp":()=>z,"d.vec2f":()=>u,ChromaticSplitUVs:()=>cf}})&&e.f)({})),m2=Et,VO=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(s,Qe),o=J(r),n=O(r),i=__tsover_div(1,3),d=__tsover_sub(1,o),l=__tsover_mul(d,i),c=__tsover_div(n,Za),_=__tsover_add(o,l),p=__tsover_sub(l,c),f=__tsover_add(l,c),h=__tsover_add(l,c),g=__tsover_add(o,l),x=__tsover_sub(l,c),T=__tsover_sub(l,c),S=__tsover_add(l,c),A=__tsover_add(o,l),E=t.x,M=t.y,$=t.z;return b(__tsover_add(__tsover_add(__tsover_mul(E,_),__tsover_mul(M,p)),__tsover_mul($,f)),__tsover_add(__tsover_add(__tsover_mul(E,h),__tsover_mul(M,g)),__tsover_mul($,x)),__tsover_add(__tsover_add(__tsover_mul(E,T),__tsover_mul(M,S)),__tsover_mul($,A)),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"shiftDeg"}],body:[0,[[13,"angle",[1,"shiftDeg","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angle"]]],[13,"sinA",[6,"std.sin",["angle"]]],[13,"k",[1,[5,"1"],"/",[5,"3"]]],[13,"oneMinusCos",[1,[5,"1"],"-","cosA"]],[13,"kOneMinusCos",[1,"oneMinusCos","*","k"]],[13,"sinOverSqrt3",[1,"sinA","/","SQRT3"]],[13,"m00",[1,"cosA","+","kOneMinusCos"]],[13,"m01",[1,"kOneMinusCos","-","sinOverSqrt3"]],[13,"m02",[1,"kOneMinusCos","+","sinOverSqrt3"]],[13,"m10",[1,"kOneMinusCos","+","sinOverSqrt3"]],[13,"m11",[1,"cosA","+","kOneMinusCos"]],[13,"m12",[1,"kOneMinusCos","-","sinOverSqrt3"]],[13,"m20",[1,"kOneMinusCos","-","sinOverSqrt3"]],[13,"m21",[1,"kOneMinusCos","+","sinOverSqrt3"]],[13,"m22",[1,"cosA","+","kOneMinusCos"]],[13,"r",[7,"color","x"]],[13,"g",[7,"color","y"]],[13,"b",[7,"color","z"]],[13,"newR",[1,[1,[1,"r","*","m00"],"+",[1,"g","*","m01"]],"+",[1,"b","*","m02"]]],[13,"newG",[1,[1,[1,"r","*","m10"],"+",[1,"g","*","m11"]],"+",[1,"b","*","m12"]]],[13,"newB",[1,[1,[1,"r","*","m20"],"+",[1,"g","*","m21"]],"+",[1,"b","*","m22"]]],[10,[6,"d.vec4f",["newR","newG","newB",[7,"color","w"]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,SQRT3:()=>Za,"d.vec4f":()=>b}})&&e.f)({})),NO=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=v(t.x,t.y,t.z),o=le(r,v(.2126,.7152,.0722)),n=Z(v(o,o,o),r,v(s));return b(n.x,n.y,n.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"intensity"}],body:[0,[[13,"rgb",[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"luminance",[6,"std.dot",["rgb",[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"gray",[6,"d.vec3f",["luminance","luminance","luminance"]]],[13,"saturated",[6,"std.mix",["gray","rgb",[6,"d.vec3f",["intensity"]]]]],[10,[6,"d.vec4f",[[7,"saturated","x"],[7,"saturated","y"],[7,"saturated","z"],[7,"color","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.dot":()=>le,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})),qO=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.x,o=t.y,n=t.z,i=__tsover_div(__tsover_add(__tsover_add(r,o),n),3),d=w(r,w(o,n)),l=__tsover_mul(__tsover_mul(__tsover_sub(d,i),s),-3),c=Z(v(r,o,n),v(d,d,d),v(l));return b(c.x,c.y,c.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"adjustment"}],body:[0,[[13,"r",[7,"color","x"]],[13,"g",[7,"color","y"]],[13,"b",[7,"color","z"]],[13,"average",[1,[1,[1,"r","+","g"],"+","b"],"/",[5,"3"]]],[13,"mx",[6,"std.max",["r",[6,"std.max",["g","b"]]]]],[13,"amt",[1,[1,[1,"mx","-","average"],"*","adjustment"],"*",[4,"-",[5,"3"]]]],[13,"rgb",[6,"d.vec3f",["r","g","b"]]],[13,"vibrant",[6,"std.mix",["rgb",[6,"d.vec3f",["mx","mx","mx"]],[6,"d.vec3f",["amt"]]]]],[10,[6,"d.vec4f",[[7,"vibrant","x"],[7,"vibrant","y"],[7,"vibrant","z"],[7,"color","w"]]]]]]},externals:{"std.max":()=>w,"d.vec3f":()=>v,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})),XO=y.fn([b,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_add(r,1),n=v(.5,.5,.5);return b(t.xyz.sub(n).mul(o).add(n).add(v(s,s,s)),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"brightness"},{type:"i",name:"contrastRaw"}],body:[0,[[13,"contrast",[1,"contrastRaw","+",[5,"1"]]],[13,"half",[6,"d.vec3f",[[5,"0.5"],[5,"0.5"],[5,"0.5"]]]],[13,"contrasted",[6,[7,[6,[7,[6,[7,[7,"color","xyz"],"sub"],["half"]],"mul"],["contrast"]],"add"],["half"]]],[13,"result",[6,[7,"contrasted","add"],[[6,"d.vec3f",["brightness","brightness","brightness"]]]]],[10,[6,"d.vec4f",["result",[7,"color","w"]]]]]]},externals:{"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),HO=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return b(t.xyz.mul(s),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"gain"}],body:[0,[[13,"rgb",[6,[7,[7,"color","xyz"],"mul"],["gain"]]],[10,[6,"d.vec4f",["rgb",[7,"color","w"]]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({})),jO=y.fn([b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=le(t.xyz,v(.2126,.7152,.0722));return b(s,s,s,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"luminance",[6,"std.dot",[[7,"color","xyz"],[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[10,[6,"d.vec4f",["luminance","luminance","luminance",[7,"color","w"]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),KO=y.fn([b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return b(__tsover_sub(1,t.x),__tsover_sub(1,t.y),__tsover_sub(1,t.z),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,"d.vec4f",[[1,[5,"1"],"-",[7,"color","x"]],[1,[5,"1"],"-",[7,"color","y"]],[1,[5,"1"],"-",[7,"color","z"]],[7,"color","w"]]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({})),ZO=y.fn([b,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=v(t.x,t.y,t.z),n=le(o,v(.299,.587,.114)),i=Z(o,F(o,v(__tsover_sub(1,t.x),__tsover_sub(1,t.y),__tsover_sub(1,t.z)),n>s),v(r));return b(i.x,i.y,i.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"threshold"},{type:"i",name:"strength"}],body:[0,[[13,"rgb",[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"luminance",[6,"std.dot",["rgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"inverted",[6,"d.vec3f",[[1,[5,"1"],"-",[7,"color","x"]],[1,[5,"1"],"-",[7,"color","y"]],[1,[5,"1"],"-",[7,"color","z"]]]]],[13,"solarized",[6,"std.select",["rgb","inverted",[1,"luminance",">","threshold"]]]],[13,"result",[6,"std.mix",["rgb","solarized",[6,"d.vec3f",["strength"]]]]],[10,[6,"d.vec4f",[[7,"result","x"],[7,"result","y"],[7,"result","z"],[7,"color","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.dot":()=>le,"std.select":()=>F,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})),QO=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=z(s,a(2),a(20));return b(__tsover_div(K(__tsover_mul(t.x,r)),r),__tsover_div(K(__tsover_mul(t.y,r)),r),__tsover_div(K(__tsover_mul(t.z,r)),r),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"steps"}],body:[0,[[13,"s",[6,"std.clamp",["steps",[6,"d.f32",[[5,"2"]]],[6,"d.f32",[[5,"20"]]]]]],[13,"r",[1,[6,"std.floor",[[1,[7,"color","x"],"*","s"]]],"/","s"]],[13,"g",[1,[6,"std.floor",[[1,[7,"color","y"],"*","s"]]],"/","s"]],[13,"b",[1,[6,"std.floor",[[1,[7,"color","z"],"*","s"]]],"/","s"]],[10,[6,"d.vec4f",["r","g","b",[7,"color","w"]]]]]]},externals:{"std.clamp":()=>z,"d.f32":()=>a,"std.floor":()=>K,"d.vec4f":()=>b}})&&e.f)({})),JO=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Z(v(t.x,t.y,t.z),v(s.x,s.y,s.z),v(r));return b(o.x,o.y,o.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"tintColor"},{type:"i",name:"amount"}],body:[0,[[13,"rgb",[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"tinted",[6,"std.mix",["rgb",[6,"d.vec3f",[[7,"tintColor","x"],[7,"tintColor","y"],[7,"tintColor","z"]]],[6,"d.vec3f",["amount"]]]]],[10,[6,"d.vec4f",[[7,"tinted","x"],[7,"tinted","y"],[7,"tinted","z"],[7,"color","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})),eV=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=v(t.x,t.y,t.z),n=Z(o,v(s.x,s.y,s.z),v(r)),i=v(.299,.587,.114),d=le(o,i),l=le(n,i),c=n.mul(__tsover_div(d,w(l,1e-4)));return b(c.x,c.y,c.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"tintColor"},{type:"i",name:"amount"}],body:[0,[[13,"rgb",[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"tinted",[6,"std.mix",["rgb",[6,"d.vec3f",[[7,"tintColor","x"],[7,"tintColor","y"],[7,"tintColor","z"]]],[6,"d.vec3f",["amount"]]]]],[13,"luminanceWeights",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]],[13,"originalLum",[6,"std.dot",["rgb","luminanceWeights"]]],[13,"tintedLum",[6,"std.dot",["tinted","luminanceWeights"]]],[13,"result",[6,[7,"tinted","mul"],[[1,"originalLum","/",[6,"std.max",["tintedLum",[5,"0.0001"]]]]]]],[10,[6,"d.vec4f",[[7,"result","x"],[7,"result","y"],[7,"result","z"],[7,"color","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.mix":()=>Z,"std.dot":()=>le,"std.max":()=>w,"d.vec4f":()=>b}})&&e.f)({})),tV=y.fn([b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=le(t.xyz,v(.299,.587,.114));return ce(__tsover_sub(s,.5),__tsover_add(s,.5),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"blend"}],body:[0,[[13,"luminance",[6,"std.dot",[[7,"color","xyz"],[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[10,[6,"std.smoothstep",[[1,"blend","-",[5,"0.5"]],[1,"blend","+",[5,"0.5"]],"luminance"]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"std.smoothstep":()=>ce}})&&e.f)({})),sV=y.fn([b,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=le(t.xyz,v(.299,.587,.114));return v(ce(__tsover_sub(s,.25),s,r),ce(s,__tsover_add(s,.25),r),ce(__tsover_sub(s,.1),__tsover_add(s,.1),r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"blendMid"}],body:[0,[[13,"luminance",[6,"std.dot",[[7,"color","xyz"],[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"shadowToMid",[6,"std.smoothstep",[[1,"blendMid","-",[5,"0.25"]],"blendMid","luminance"]]],[13,"midToHighlight",[6,"std.smoothstep",["blendMid",[1,"blendMid","+",[5,"0.25"]],"luminance"]]],[13,"finalT",[6,"std.smoothstep",[[1,"blendMid","-",[5,"0.1"]],[1,"blendMid","+",[5,"0.1"]],"luminance"]]],[10,[6,"d.vec3f",["shadowToMid","midToHighlight","finalT"]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"std.smoothstep":()=>ce}})&&e.f)({})),rV=y.fn([b,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=le(t.xyz,v(.2126,.7152,.0722)),i=w(__tsover_sub(r,s),1e-4),d=z(__tsover_div(__tsover_sub(n,s),i),0,1);return d=z(__tsover_add(__tsover_mul(__tsover_sub(d,.5),o),.5),0,1),d}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"black"},{type:"i",name:"white"},{type:"i",name:"contrast"}],body:[0,[[13,"luma",[6,"std.dot",[[7,"color","xyz"],[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"range",[6,"std.max",[[1,"white","-","black"],[5,"0.0001"]]]],[12,"t",[6,"std.clamp",[[1,[1,"luma","-","black"],"/","range"],[5,"0"],[5,"1"]]]],[2,"t","=",[6,"std.clamp",[[1,[1,[1,"t","-",[5,"0.5"]],"*","contrast"],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,"t"]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"std.max":()=>w,"std.clamp":()=>z}})&&e.f)({})),oV=y.fn([a,a,v,v,v,v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=n.mul(t).add(i).add(v(s,s,s)).mul(m2);return z(r.add(o.mul(J(d))),v(0,0,0),v(1,1,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"phase"},{type:"i",name:"pa"},{type:"i",name:"pb"},{type:"i",name:"pc"},{type:"i",name:"pd"}],body:[0,[[13,"arg",[6,[7,[6,[7,[6,[7,[6,[7,"pc","mul"],["t"]],"add"],["pd"]],"add"],[[6,"d.vec3f",["phase","phase","phase"]]]],"mul"],["TWO_PI"]]],[13,"mapped",[6,[7,"pa","add"],[[6,[7,"pb","mul"],[[6,"std.cos",["arg"]]]]]]],[10,[6,"std.clamp",["mapped",[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]]]]]]},externals:{"d.vec3f":()=>v,TWO_PI:()=>m2,"std.cos":()=>J,"std.clamp":()=>z}})&&e.f)({})),nV=y.fn([a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=ve(__tsover_add(t,s)),o=__tsover_mul(r,3);return u(ve(o),K(o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"phase"}],body:[0,[[13,"t01",[6,"std.fract",[[1,"t","+","phase"]]]],[13,"t3",[1,"t01","*",[5,"3"]]],[10,[6,"d.vec2f",[[6,"std.fract",["t3"]],[6,"std.floor",["t3"]]]]]]]},externals:{"std.fract":()=>ve,"d.vec2f":()=>u,"std.floor":()=>K}})&&e.f)({})),aV=y.fn([b,b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return F(F(r,s,o<2),t,o<1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"seg0"},{type:"i",name:"seg1"},{type:"i",name:"seg2"},{type:"i",name:"i"}],body:[0,[[13,"upper",[6,"std.select",["seg2","seg1",[1,"i","<",[5,"2"]]]]],[10,[6,"std.select",["upper","seg0",[1,"i","<",[5,"1"]]]]]]]},externals:{"std.select":()=>F}})&&e.f)({})),iV=y.fn([b,v,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return b(Z(t.xyz,s,v(r,r,r)),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"mapped"},{type:"i",name:"strength"}],body:[0,[[13,"outRgb",[6,"std.mix",[[7,"color","xyz"],"mapped",[6,"d.vec3f",["strength","strength","strength"]]]]],[10,[6,"d.vec4f",["outRgb",[7,"color","w"]]]]]]},externals:{"std.mix":()=>Z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),dV=y.fn([b,u,u,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=ms(s.mul(r).add(u(i,__tsover_mul(i,1.6180339)))),l=__tsover_sub(__tsover_mul(d,2),1),c=z(le(t.xyz,v(.2126,.7152,.0722)),0,1),_=__tsover_sub(1,c),p=Ye(__tsover_add(_,1e-6),n),f=__tsover_mul(__tsover_mul(l,p),__tsover_mul(o,.1));return b(t.xyz.add(f),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"strength"},{type:"i",name:"bias"},{type:"i",name:"animTime"}],body:[0,[[13,"pixelCoord",[6,[7,"uv","mul"],["viewport"]]],[13,"noiseVal",[6,"hash12",[[6,[7,"pixelCoord","add"],[[6,"d.vec2f",["animTime",[1,"animTime","*",[5,"1.6180339"]]]]]]]]],[13,"grain",[1,[1,"noiseVal","*",[5,"2"]],"-",[5,"1"]]],[13,"brightness",[6,"std.clamp",[[6,"std.dot",[[7,"color","xyz"],[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]],[5,"0"],[5,"1"]]]],[13,"darkness",[1,[5,"1"],"-","brightness"]],[13,"darkFactor",[6,"std.pow",[[1,"darkness","+",[5,"0.000001"]],"bias"]]],[13,"grainIntensity",[1,[1,"grain","*","darkFactor"],"*",[1,"strength","*",[5,"0.1"]]]],[13,"grainedColor",[6,[7,[7,"color","xyz"],"add"],["grainIntensity"]]],[10,[6,"d.vec4f",["grainedColor",[7,"color","w"]]]]]]},externals:{hash12:()=>ms,"d.vec2f":()=>u,"std.clamp":()=>z,"std.dot":()=>le,"d.vec3f":()=>v,"std.pow":()=>Ye,"d.vec4f":()=>b}})&&e.f)({})),Ep=y.fn([a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Ye(F(t,__tsover_sub(1,t),i>.5),n),l=__tsover_add(__tsover_mul(d,s),.5),c=w(As(l),1e-4),_=W(__tsover_sub(ve(__tsover_add(l,.5)),.5)),p=__tsover_div(_,c),f=__tsover_add(__tsover_mul(o,.99),.01),h=__tsover_mul(r,__tsover_sub(1,f));return __tsover_sub(1,ce(h,r,p))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sourceValue"},{type:"i",name:"levels"},{type:"i",name:"lineWidth"},{type:"i",name:"softness"},{type:"i",name:"gamma"},{type:"i",name:"invert"}],body:[0,[[13,"invertedValue",[6,"std.select",["sourceValue",[1,[5,"1"],"-","sourceValue"],[1,"invert",">",[5,"0.5"]]]]],[13,"sv",[6,"std.pow",["invertedValue","gamma"]]],[13,"scaledValue",[1,[1,"sv","*","levels"],"+",[5,"0.5"]]],[13,"fw",[6,"std.max",[[6,"std.fwidth",["scaledValue"]],[5,"0.0001"]]]],[13,"distFromBoundary",[6,"std.abs",[[1,[6,"std.fract",[[1,"scaledValue","+",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"normalizedDist",[1,"distFromBoundary","/","fw"]],[13,"transitionFactor",[1,[1,"softness","*",[5,"0.99"]],"+",[5,"0.01"]]],[13,"innerEdge",[1,"lineWidth","*",[1,[5,"1"],"-","transitionFactor"]]],[10,[1,[5,"1"],"-",[6,"std.smoothstep",["innerEdge","lineWidth","normalizedDist"]]]]]]},externals:{"std.select":()=>F,"std.pow":()=>Ye,"std.max":()=>w,"std.fwidth":()=>As,"std.abs":()=>W,"std.fract":()=>ve,"std.smoothstep":()=>ce}})&&e.f)({})),lV=y.fn([b,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Ep(E3(t.xyz),s,r,o,n,i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"levels"},{type:"i",name:"lineWidth"},{type:"i",name:"softness"},{type:"i",name:"gamma"},{type:"i",name:"invert"}],body:[0,[[10,[6,"contourLineMask",[[6,"luma709Dot",[[7,"color","xyz"]]],"levels","lineWidth","softness","gamma","invert"]]]]]},externals:{contourLineMask:()=>Ep,luma709Dot:()=>E3}})&&e.f)({})),cV=y.fn([b,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Ep(t.w,s,r,o,n,i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"levels"},{type:"i",name:"lineWidth"},{type:"i",name:"softness"},{type:"i",name:"gamma"},{type:"i",name:"invert"}],body:[0,[[10,[6,"contourLineMask",[[7,"color","w"],"levels","lineWidth","softness","gamma","invert"]]]]]},externals:{contourLineMask:()=>Ep}})&&e.f)({})),uV=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Z(v(t.x,t.y,t.z),v(s.x,s.y,s.z),v(r)),n=Z(t.w,s.w,r);return b(o.x,o.y,o.z,n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"bg"},{type:"i",name:"line"},{type:"i",name:"mask"}],body:[0,[[13,"rgb",[6,"std.mix",[[6,"d.vec3f",[[7,"bg","x"],[7,"bg","y"],[7,"bg","z"]]],[6,"d.vec3f",[[7,"line","x"],[7,"line","y"],[7,"line","z"]]],[6,"d.vec3f",["mask"]]]]],[13,"alpha",[6,"std.mix",[[7,"bg","w"],[7,"line","w"],"mask"]]],[10,[6,"d.vec4f",[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]]},externals:{"std.mix":()=>Z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),Da=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(__tsover_sub(ve(__tsover_mul(O(__tsover_mul(t,12.9898)),43758.5453)),.5),2)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[1,[1,[6,"std.fract",[[1,[6,"std.sin",[[1,"x","*",[5,"12.9898"]]]],"*",[5,"43758.5453"]]]],"-",[5,"0.5"]],"*",[5,"2"]]]]]},externals:{"std.fract":()=>ve,"std.sin":()=>O}})&&e.f)({})),_V=y.fn([u,a,u,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(__tsover_mul(r.x,o),r.y),i=u(__tsover_mul(t.x,o),__tsover_sub(1,t.y)),d=n.sub(i),l=__tsover_mul(s,Qe),c=u(J(l),O(l)),_=u(__tsover_mul(c.y,-1),c.x),p=le(d,_),f=d.sub(_.mul(__tsover_mul(p,2))),h=i.add(f),g=u(__tsover_div(h.x,o),h.y),x=ot(0,p);return v(g.x,g.y,x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"angle"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"lineDirection",[6,"d.vec2f",[[6,"std.cos",["angleRad"]],[6,"std.sin",["angleRad"]]]]],[13,"lineNormal",[6,"d.vec2f",[[1,[7,"lineDirection","y"],"*",[4,"-",[5,"1"]]],[7,"lineDirection","x"]]]],[13,"signedDistance",[6,"std.dot",["delta","lineNormal"]]],[13,"reflectedDelta",[6,[7,"delta","sub"],[[6,[7,"lineNormal","mul"],[[1,"signedDistance","*",[5,"2"]]]]]]],[13,"mirroredUV",[6,[7,"centerPos","add"],["reflectedDelta"]]],[13,"finalMirroredUV",[6,"d.vec2f",[[1,[7,"mirroredUV","x"],"/","aspect"],[7,"mirroredUV","y"]]]],[13,"shouldMirror",[6,"std.step",[[5,"0"],"signedDistance"]]],[10,[6,"d.vec3f",[[7,"finalMirroredUV","x"],[7,"finalMirroredUV","y"],"shouldMirror"]]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.step":()=>ot,"d.vec3f":()=>v}})&&e.f)({})),pV=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(F(t.x,__tsover_sub(1,t.x),s>0),F(t.y,__tsover_sub(1,t.y),r>0))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"flipX"},{type:"i",name:"flipY"}],body:[0,[[13,"x",[6,"std.select",[[7,"uv","x"],[1,[5,"1"],"-",[7,"uv","x"]],[1,"flipX",">",[5,"0"]]]]],[13,"y",[6,"std.select",[[7,"uv","y"],[1,[5,"1"],"-",[7,"uv","y"]],[1,"flipY",">",[5,"0"]]]]],[10,[6,"d.vec2f",["x","y"]]]]]},externals:{"std.select":()=>F,"d.vec2f":()=>u}})&&e.f)({})),xi=2,f2=1.2,mV=y.fn([a,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,Qe),d=u(J(i),O(i)),l=u(__tsover_mul(d.y,-1),d.x),c=u(__tsover_mul(__tsover_sub(o.x,.5),n),__tsover_sub(o.y,.5)),_=le(c,d),p=le(c,l),f=w(__tsover_mul(__tsover_add(__tsover_mul(W(d.x),n),W(d.y)),.5),.001),h=__tsover_div(_,f),g=__tsover_mul(t,f2),x=__tsover_mul(z(s,0,1),.9),T=__tsover_sub(1,x),S=W(h),A=F(a(-1),a(1),h>=0),E=__tsover_mul(g,S),M=__tsover_add(__tsover_mul(__tsover_mul(__tsover_mul(xi,xi),T),T),__tsover_mul(__tsover_mul(__tsover_mul(4,E),xi),__tsover_sub(S,x))),$=W(E)<1e-5,L=F(__tsover_mul(E,2),a(1),$),B=F(__tsover_div(__tsover_sub($e(w(M,0)),__tsover_mul(xi,T)),L),__tsover_div(__tsover_sub(S,x),T),$),D=F(a(6),w(B,0),M>=0),G=__tsover_mul(A,__tsover_add(x,__tsover_mul(D,T))),I=S<=x,X=F(G,h,I),H=F(__tsover_mul(__tsover_mul(g,D),D),a(0),I),ee=__tsover_div(__tsover_mul(p,__tsover_sub(xi,H)),xi),Q=d.mul(__tsover_mul(X,f)).add(l.mul(ee));return u(__tsover_add(__tsover_div(Q.x,n),.5),__tsover_add(Q.y,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"strength"},{type:"i",name:"falloff"},{type:"i",name:"angle"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"dir",[6,"d.vec2f",[[6,"std.cos",["angleRad"]],[6,"std.sin",["angleRad"]]]]],[13,"perp",[6,"d.vec2f",[[1,[7,"dir","y"],"*",[4,"-",[5,"1"]]],[7,"dir","x"]]]],[13,"p",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],[1,[7,"uv","y"],"-",[5,"0.5"]]]]],[13,"sScreen",[6,"std.dot",["p","dir"]]],[13,"tScreen",[6,"std.dot",["p","perp"]]],[13,"sHalf",[6,"std.max",[[1,[1,[1,[6,"std.abs",[[7,"dir","x"]]],"*","aspect"],"+",[6,"std.abs",[[7,"dir","y"]]]],"*",[5,"0.5"]],[5,"0.001"]]]],[13,"snScreen",[1,"sScreen","/","sHalf"]],[13,"b",[1,"strength","*","B_MAX"]],[13,"f",[1,[6,"std.clamp",["falloff",[5,"0"],[5,"1"]]],"*",[5,"0.9"]]],[13,"fSpan",[1,[5,"1"],"-","f"]],[13,"m",[6,"std.abs",["snScreen"]]],[13,"sig",[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],[6,"d.f32",[[5,"1"]]],[1,"snScreen",">=",[5,"0"]]]]],[13,"a2",[1,"b","*","m"]],[13,"disc",[1,[1,[1,[1,"CAMERA_D","*","CAMERA_D"],"*","fSpan"],"*","fSpan"],"+",[1,[1,[1,[5,"4"],"*","a2"],"*","CAMERA_D"],"*",[1,"m","-","f"]]]],[13,"nearZero",[1,[6,"std.abs",["a2"]],"<",[5,"0.00001"]]],[13,"denom",[6,"std.select",[[1,"a2","*",[5,"2"]],[6,"d.f32",[[5,"1"]]],"nearZero"]]],[13,"uQuad",[1,[1,[6,"std.sqrt",[[6,"std.max",["disc",[5,"0"]]]]],"-",[1,"CAMERA_D","*","fSpan"]],"/","denom"]],[13,"uOn",[6,"std.select",["uQuad",[1,[1,"m","-","f"],"/","fSpan"],"nearZero"]]],[13,"u",[6,"std.select",[[6,"d.f32",[[5,"6"]]],[6,"std.max",["uOn",[5,"0"]]],[1,"disc",">=",[5,"0"]]]]],[13,"snBend",[1,"sig","*",[1,"f","+",[1,"u","*","fSpan"]]]],[13,"inFlat",[1,"m","<=","f"]],[13,"sn",[6,"std.select",["snBend","snScreen","inFlat"]]],[13,"z",[6,"std.select",[[1,[1,"b","*","u"],"*","u"],[6,"d.f32",[[5,"0"]]],"inFlat"]]],[13,"tSrc",[1,[1,"tScreen","*",[1,"CAMERA_D","-","z"]],"/","CAMERA_D"]],[13,"srcP",[6,[7,[6,[7,"dir","mul"],[[1,"sn","*","sHalf"]]],"add"],[[6,[7,"perp","mul"],["tSrc"]]]]],[10,[6,"d.vec2f",[[1,[1,[7,"srcP","x"],"/","aspect"],"+",[5,"0.5"]],[1,[7,"srcP","y"],"+",[5,"0.5"]]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.max":()=>w,"std.abs":()=>W,B_MAX:()=>f2,"std.clamp":()=>z,"std.select":()=>F,"d.f32":()=>a,CAMERA_D:()=>xi,"std.sqrt":()=>$e}})&&e.f)({})),fV=y.fn([u,a,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=u(__tsover_mul(n.x,i),n.y),l=u(__tsover_mul(t.x,i),__tsover_sub(1,t.y)),c=d.sub(l),_=te(c),p=__tsover_mul(r,.5),f=__tsover_mul(p,w(__tsover_sub(__tsover_sub(1,o),.001),0)),h=__tsover_sub(1,ce(f,p,_)),g=__tsover_div(_,p),x=__tsover_mul(g,g),T=w(0,__tsover_sub(1,x)),S=__tsover_mul(h,T),A=__tsover_mul(s,-1),E=__tsover_mul(A,S),M=__tsover_add(1,E),$=c.mul(M),L=l.add($);return u(__tsover_div(L.x,i),L.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"strength"},{type:"i",name:"radius"},{type:"i",name:"falloff"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"distance",[6,"std.length",["delta"]]],[13,"effectRadius",[1,"radius","*",[5,"0.5"]]],[13,"innerRadius",[1,"effectRadius","*",[6,"std.max",[[1,[1,[5,"1"],"-","falloff"],"-",[5,"0.001"]],[5,"0"]]]]],[13,"smoothFalloff",[1,[5,"1"],"-",[6,"std.smoothstep",["innerRadius","effectRadius","distance"]]]],[13,"normalizedDist",[1,"distance","/","effectRadius"]],[13,"distSq",[1,"normalizedDist","*","normalizedDist"]],[13,"quadraticFalloff",[6,"std.max",[[5,"0"],[1,[5,"1"],"-","distSq"]]]],[13,"falloffTotal",[1,"smoothFalloff","*","quadraticFalloff"]],[13,"negStrength",[1,"strength","*",[4,"-",[5,"1"]]]],[13,"displacementAmount",[1,"negStrength","*","falloffTotal"]],[13,"scaleFactor",[1,[5,"1"],"+","displacementAmount"]],[13,"bulgedDelta",[6,[7,"delta","mul"],["scaleFactor"]]],[13,"bulgedUV",[6,[7,"centerPos","add"],["bulgedDelta"]]],[10,[6,"d.vec2f",[[1,[7,"bulgedUV","x"],"/","aspect"],[7,"bulgedUV","y"]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.max":()=>w,"std.smoothstep":()=>ce}})&&e.f)({})),vV=y.fn([u,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(t.x,__tsover_sub(1,t.y)),i=r.sub(n),d=u(__tsover_mul(i.x,o),i.y),l=__tsover_mul(s,te(d)),c=J(l),_=O(l),p=__tsover_sub(__tsover_mul(c,d.x),__tsover_mul(_,d.y)),f=__tsover_add(__tsover_mul(_,d.x),__tsover_mul(c,d.y));return u(__tsover_add(__tsover_div(p,o),n.x),__tsover_add(f,n.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"intensity"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"uv","sub"],["centerPos"]]],[13,"acd",[6,"d.vec2f",[[1,[7,"delta","x"],"*","aspect"],[7,"delta","y"]]]],[13,"angle",[1,"intensity","*",[6,"std.length",["acd"]]]],[13,"cosA",[6,"std.cos",["angle"]]],[13,"sinA",[6,"std.sin",["angle"]]],[13,"rotatedX",[1,[1,"cosA","*",[7,"acd","x"]],"-",[1,"sinA","*",[7,"acd","y"]]]],[13,"rotatedY",[1,[1,"sinA","*",[7,"acd","x"]],"+",[1,"cosA","*",[7,"acd","y"]]]],[10,[6,"d.vec2f",[[1,[1,"rotatedX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rotatedY","+",[7,"centerPos","y"]]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),hV=y.fn([u,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(__tsover_mul(o.x,n),o.y),d=u(__tsover_mul(t.x,n),__tsover_sub(1,t.y)),l=i.sub(d),c=te(l),_=bt(l.y,l.x),p=__tsover_add(_,__tsover_mul(r,Qe)),f=__tsover_div(Et,s),h=__tsover_mul(f,2),g=__tsover_sub(p,__tsover_mul(h,K(__tsover_div(p,h)))),x=F(g,__tsover_sub(h,g),g>f),T=__tsover_mul(J(x),c),S=__tsover_mul(O(x),c),A=d.add(u(T,S));return u(__tsover_div(A.x,n),A.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"segments"},{type:"i",name:"angle"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"radius",[6,"std.length",["delta"]]],[13,"currentAngle",[6,"std.atan2",[[7,"delta","y"],[7,"delta","x"]]]],[13,"rotatedAngle",[1,"currentAngle","+",[1,"angle","*","DEG_TO_RAD"]]],[13,"segmentAngle",[1,"TAU","/","segments"]],[13,"segTwo",[1,"segmentAngle","*",[5,"2"]]],[13,"wrappedAngle",[1,"rotatedAngle","-",[1,"segTwo","*",[6,"std.floor",[[1,"rotatedAngle","/","segTwo"]]]]]],[13,"finalAngle",[6,"std.select",["wrappedAngle",[1,"segTwo","-","wrappedAngle"],[1,"wrappedAngle",">","segmentAngle"]]]],[13,"kaleidoscopeX",[1,[6,"std.cos",["finalAngle"]],"*","radius"]],[13,"kaleidoscopeY",[1,[6,"std.sin",["finalAngle"]],"*","radius"]],[13,"kaleidoscopePos",[6,[7,"centerPos","add"],[[6,"d.vec2f",["kaleidoscopeX","kaleidoscopeY"]]]]],[10,[6,"d.vec2f",[[1,[7,"kaleidoscopePos","x"],"/","aspect"],[7,"kaleidoscopePos","y"]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.atan2":()=>bt,DEG_TO_RAD:()=>Qe,TAU:()=>Et,"std.floor":()=>K,"std.select":()=>F,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),yV=y.fn([u,a,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=u(__tsover_mul(n.x,i),n.y),l=u(__tsover_mul(t.x,i),__tsover_sub(1,t.y)),c=d.sub(l),_=__tsover_mul(r,Qe),p=u(J(_),O(_)),f=le(c,p),h=p.mul(f),g=c.sub(h),x=Z(.001,75,o),T=z(__tsover_div(f,x),0,1),S=__tsover_mul(s,100),A=__tsover_add(1,__tsover_mul(S,T)),E=__tsover_div(f,A),M=p.mul(E).add(g),$=l.add(M);return u(__tsover_div($.x,i),$.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"strength"},{type:"i",name:"angle"},{type:"i",name:"falloff"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"directionVector",[6,"d.vec2f",[[6,"std.cos",["angleRad"]],[6,"std.sin",["angleRad"]]]]],[13,"projection",[6,"std.dot",["delta","directionVector"]]],[13,"parallel",[6,[7,"directionVector","mul"],["projection"]]],[13,"perpendicular",[6,[7,"delta","sub"],["parallel"]]],[13,"transitionWidth",[6,"std.mix",[[5,"0.001"],[5,"75"],"falloff"]]],[13,"effectMask",[6,"std.clamp",[[1,"projection","/","transitionWidth"],[5,"0"],[5,"1"]]]],[13,"scaledStrength",[1,"strength","*",[5,"100"]]],[13,"stretchFactor",[1,[5,"1"],"+",[1,"scaledStrength","*","effectMask"]]],[13,"finalProjection",[1,"projection","/","stretchFactor"]],[13,"finalParallel",[6,[7,"directionVector","mul"],["finalProjection"]]],[13,"stretchedDelta",[6,[7,"finalParallel","add"],["perpendicular"]]],[13,"stretchedUV",[6,[7,"centerPos","add"],["stretchedDelta"]]],[10,[6,"d.vec2f",[[1,[7,"stretchedUV","x"],"/","aspect"],[7,"stretchedUV","y"]]]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.mix":()=>Z,"std.clamp":()=>z}})&&e.f)({})),jn=y.fn([u,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=t.sub(u(.5,.5)),d=u(__tsover_mul(i.x,s),i.y),l=__tsover_mul(r,Qe),c=J(l),_=O(l),p=__tsover_add(__tsover_mul(d.x,_),__tsover_mul(d.y,c));return __tsover_add(__tsover_mul(__tsover_mul(__tsover_add(p,.5),o),Et),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"frequency"},{type:"i",name:"t"}],body:[0,[[13,"centeredUV",[6,[7,"uv","sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"rotatedY",[1,[1,[7,"aspectCorrectedUV","x"],"*","sinA"],"+",[1,[7,"aspectCorrectedUV","y"],"*","cosA"]]],[10,[1,[1,[1,[1,"rotatedY","+",[5,"0.5"]],"*","frequency"],"*","TAU"],"+","t"]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,TAU:()=>Et}})&&e.f)({})),Kn=y.fn([u,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,Qe),d=J(i),l=O(i),c=__tsover_mul(__tsover_mul(n,o),.5),_=__tsover_div(__tsover_mul(c,d),s),p=__tsover_mul(c,l);return u(__tsover_add(t.x,_),__tsover_add(t.y,p))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"strength"},{type:"i",name:"wave"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"displacement",[1,[1,"wave","*","strength"],"*",[5,"0.5"]]],[13,"displacementX",[1,[1,"displacement","*","cosA"],"/","aspect"]],[13,"displacementY",[1,"displacement","*","sinA"]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+","displacementX"],[1,[7,"uv","y"],"+","displacementY"]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),v2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return O(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[10,[6,"std.sin",["phase"]]]]]},externals:{"std.sin":()=>O}})&&e.f)({})),h2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ve(__tsover_div(t,Et));return __tsover_sub(__tsover_mul(W(__tsover_sub(__tsover_mul(s,2),1)),2),1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[13,"normalizedPhase",[6,"std.fract",[[1,"phase","/","TAU"]]]],[10,[1,[1,[6,"std.abs",[[1,[1,"normalizedPhase","*",[5,"2"]],"-",[5,"1"]]]],"*",[5,"2"]],"-",[5,"1"]]]]]},externals:{"std.fract":()=>ve,TAU:()=>Et,"std.abs":()=>W}})&&e.f)({})),y2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ve(__tsover_div(t,Et));return __tsover_sub(__tsover_mul(ot(.5,s),2),1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[13,"normalizedPhase",[6,"std.fract",[[1,"phase","/","TAU"]]]],[10,[1,[1,[6,"std.step",[[5,"0.5"],"normalizedPhase"]],"*",[5,"2"]],"-",[5,"1"]]]]]},externals:{"std.fract":()=>ve,TAU:()=>Et,"std.step":()=>ot}})&&e.f)({})),g2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ve(__tsover_div(t,Et));return __tsover_sub(__tsover_mul(s,2),1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[13,"normalizedPhase",[6,"std.fract",[[1,"phase","/","TAU"]]]],[10,[1,[1,"normalizedPhase","*",[5,"2"]],"-",[5,"1"]]]]]},externals:{"std.fract":()=>ve,TAU:()=>Et}})&&e.f)({})),x2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return W(O(t))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[10,[6,"std.abs",[[6,"std.sin",["phase"]]]]]]]},externals:{"std.abs":()=>W,"std.sin":()=>O}})&&e.f)({})),gV=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Kn(t,s,r,n,v2(jn(t,s,r,o,i)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"frequency"},{type:"i",name:"strength"},{type:"i",name:"t"}],body:[0,[[13,"wave",[6,"waveformSine",[[6,"wavePhase",["uv","aspect","angle","frequency","t"]]]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]]},externals:{waveformSine:()=>v2,wavePhase:()=>jn,waveApply:()=>Kn}})&&e.f)({})),xV=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Kn(t,s,r,n,h2(jn(t,s,r,o,i)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"frequency"},{type:"i",name:"strength"},{type:"i",name:"t"}],body:[0,[[13,"wave",[6,"waveformTriangle",[[6,"wavePhase",["uv","aspect","angle","frequency","t"]]]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]]},externals:{waveformTriangle:()=>h2,wavePhase:()=>jn,waveApply:()=>Kn}})&&e.f)({})),bV=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Kn(t,s,r,n,y2(jn(t,s,r,o,i)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"frequency"},{type:"i",name:"strength"},{type:"i",name:"t"}],body:[0,[[13,"wave",[6,"waveformSquare",[[6,"wavePhase",["uv","aspect","angle","frequency","t"]]]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]]},externals:{waveformSquare:()=>y2,wavePhase:()=>jn,waveApply:()=>Kn}})&&e.f)({})),wV=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Kn(t,s,r,n,g2(jn(t,s,r,o,i)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"frequency"},{type:"i",name:"strength"},{type:"i",name:"t"}],body:[0,[[13,"wave",[6,"waveformSawtooth",[[6,"wavePhase",["uv","aspect","angle","frequency","t"]]]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]]},externals:{waveformSawtooth:()=>g2,wavePhase:()=>jn,waveApply:()=>Kn}})&&e.f)({})),TV=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return Kn(t,s,r,n,x2(jn(t,s,r,o,i)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"frequency"},{type:"i",name:"strength"},{type:"i",name:"t"}],body:[0,[[13,"wave",[6,"waveformBounce",[[6,"wavePhase",["uv","aspect","angle","frequency","t"]]]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]]},externals:{waveformBounce:()=>x2,wavePhase:()=>jn,waveApply:()=>Kn}})&&e.f)({})),SV=y.fn([u,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(__tsover_mul(o.x,n),o.y),d=u(__tsover_mul(t.x,n),__tsover_sub(1,t.y)),l=i.sub(d),c=bt(l.y,l.x),_=__tsover_div(__tsover_add(c,ko),Et),p=te(l);return u(__tsover_mul(_,s),__tsover_mul(p,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"wrap"},{type:"i",name:"radius"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"theta",[6,"std.atan2",[[7,"delta","y"],[7,"delta","x"]]]],[13,"normalizedAngle",[1,[1,"theta","+","PI"],"/","TAU"]],[13,"r",[6,"std.length",["delta"]]],[13,"u",[1,"normalizedAngle","*","wrap"]],[13,"v",[1,"r","*","radius"]],[10,[6,"d.vec2f",["u","v"]]]]]},externals:{"d.vec2f":()=>u,"std.atan2":()=>bt,PI:()=>ko,TAU:()=>Et,"std.length":()=>te}})&&e.f)({})),AV=y.fn([u,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_sub(__tsover_mul(r.x,Et),ko),i=__tsover_mul(r.y,s),d=__tsover_mul(i,J(n)),l=__tsover_mul(i,O(n)),c=u(t.x,__tsover_sub(1,t.y));return u(__tsover_add(__tsover_div(d,o),c.x),__tsover_add(l,c.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"scale"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"theta",[1,[1,[7,"uv","x"],"*","TAU"],"-","PI"]],[13,"r",[1,[7,"uv","y"],"*","scale"]],[13,"rectX",[1,"r","*",[6,"std.cos",["theta"]]]],[13,"rectY",[1,"r","*",[6,"std.sin",["theta"]]]],[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[10,[6,"d.vec2f",[[1,[1,"rectX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rectY","+",[7,"centerPos","y"]]]]]]]},externals:{TAU:()=>Et,PI:()=>ko,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),Pd=1e-8,Il=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_div(t,F(s,Pd,W(s)<Pd))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"n"},{type:"i",name:"dv"}],body:[0,[[10,[1,"n","/",[6,"std.select",["dv","EPS",[1,[6,"std.abs",["dv"]],"<","EPS"]]]]]]]},externals:{"std.select":()=>F,EPS:()=>Pd,"std.abs":()=>W}})&&e.f)({})),xd=y.fn([u,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_sub(r.x,s.x),n=__tsover_sub(r.y,s.y),i=__tsover_sub(t.x,s.x),d=__tsover_sub(t.y,s.y);return __tsover_sub(__tsover_mul(o,d),__tsover_mul(n,i))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"a"},{type:"i",name:"b"}],body:[0,[[13,"bax",[1,[7,"b","x"],"-",[7,"a","x"]]],[13,"bay",[1,[7,"b","y"],"-",[7,"a","y"]]],[13,"pax",[1,[7,"p","x"],"-",[7,"a","x"]]],[13,"pay",[1,[7,"p","y"],"-",[7,"a","y"]]],[10,[1,[1,"bax","*","pay"],"-",[1,"bay","*","pax"]]]]]},externals:{}})&&e.f)({})),b2=y.fn([u,u,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=xd(t,s,r),i=xd(t,r,o),d=xd(t,o,s),l=__tsover_mul(__tsover_mul(ot(a(0),n),ot(a(0),i)),ot(a(0),d)),c=__tsover_mul(__tsover_mul(ot(n,a(0)),ot(i,a(0))),ot(d,a(0)));return __tsover_add(l,c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"c"}],body:[0,[[13,"d1",[6,"cornerSideOf",["p","a","b"]]],[13,"d2",[6,"cornerSideOf",["p","b","c"]]],[13,"d3",[6,"cornerSideOf",["p","c","a"]]],[13,"allPos",[1,[1,[6,"std.step",[[6,"d.f32",[[5,"0"]]],"d1"]],"*",[6,"std.step",[[6,"d.f32",[[5,"0"]]],"d2"]]],"*",[6,"std.step",[[6,"d.f32",[[5,"0"]]],"d3"]]]],[13,"allNeg",[1,[1,[6,"std.step",["d1",[6,"d.f32",[[5,"0"]]]]],"*",[6,"std.step",["d2",[6,"d.f32",[[5,"0"]]]]]],"*",[6,"std.step",["d3",[6,"d.f32",[[5,"0"]]]]]]],[10,[1,"allPos","+","allNeg"]]]]},externals:{cornerSideOf:()=>xd,"std.step":()=>ot,"d.f32":()=>a}})&&e.f)({})),w2=y.fn([u,u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=r.sub(s),i=z(__tsover_div(le(t.sub(s),n),w(le(n,n),Pd)),0,1),d=s.add(n.mul(i)),l=u(__tsover_mul(n.y,-1),n.x).div(w(te(n),Pd)),c=__tsover_mul(__tsover_mul(ir(o),-1),.004);return d.add(l.mul(c))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"refSide"}],body:[0,[[13,"ab",[6,[7,"b","sub"],["a"]]],[13,"t",[6,"std.clamp",[[1,[6,"std.dot",[[6,[7,"p","sub"],["a"]],"ab"]],"/",[6,"std.max",[[6,"std.dot",["ab","ab"]],"EPS"]]],[5,"0"],[5,"1"]]]],[13,"foot",[6,[7,"a","add"],[[6,[7,"ab","mul"],["t"]]]]],[13,"perp",[6,[7,[6,"d.vec2f",[[1,[7,"ab","y"],"*",[4,"-",[5,"1"]]],[7,"ab","x"]]],"div"],[[6,"std.max",[[6,"std.length",["ab"]],"EPS"]]]]],[13,"nudge",[1,[1,[6,"std.sign",["refSide"]],"*",[4,"-",[5,"1"]]],"*",[5,"0.004"]]],[10,[6,[7,"foot","add"],[[6,[7,"perp","mul"],["nudge"]]]]]]]},externals:{"std.clamp":()=>z,"std.dot":()=>le,"std.max":()=>w,EPS:()=>Pd,"d.vec2f":()=>u,"std.length":()=>te,"std.sign":()=>ir}})&&e.f)({})),Yl=y.fn([u,u,u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=b2(t,s,r,o)>.5;return F(t,w2(t,s,r,xd(o,s,r)),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"o"}],body:[0,[[13,"inside",[1,[6,"cornerInsideTri",["p","a","b","o"]],">",[5,"0.5"]]],[13,"proj",[6,"cornerProjectToDiagonal",["p","a","b",[6,"cornerSideOf",["o","a","b"]]]]],[10,[6,"std.select",["p","proj","inside"]]]]]},externals:{cornerInsideTri:()=>b2,cornerProjectToDiagonal:()=>w2,cornerSideOf:()=>xd,"std.select":()=>F}})&&e.f)({})),EV=y.fn([u,a,u,u,u,u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=u(s,s),l=Z(u(0,0),u(r.x,__tsover_sub(1,r.y)),d),c=Z(u(1,0),u(o.x,__tsover_sub(1,o.y)),d),_=Z(u(1,1),u(n.x,__tsover_sub(1,n.y)),d),p=Z(u(0,1),u(i.x,__tsover_sub(1,i.y)),d),f=Yl(l,c,p,_),h=Yl(c,l,_,p),g=Yl(_,c,p,l),x=Yl(p,l,_,c),T=__tsover_sub(h.x,g.x),S=__tsover_sub(x.x,g.x),A=__tsover_sub(__tsover_add(__tsover_sub(f.x,h.x),g.x),x.x),E=__tsover_sub(h.y,g.y),M=__tsover_sub(x.y,g.y),$=__tsover_sub(__tsover_add(__tsover_sub(f.y,h.y),g.y),x.y),L=__tsover_sub(__tsover_mul(T,M),__tsover_mul(S,E)),B=Il(__tsover_sub(__tsover_mul(A,M),__tsover_mul(S,$)),L),D=Il(__tsover_sub(__tsover_mul(T,$),__tsover_mul(A,E)),L),G=__tsover_add(__tsover_sub(h.x,f.x),__tsover_mul(B,h.x)),I=__tsover_add(__tsover_sub(x.x,f.x),__tsover_mul(D,x.x)),X=f.x,H=__tsover_add(__tsover_sub(h.y,f.y),__tsover_mul(B,h.y)),ee=__tsover_add(__tsover_sub(x.y,f.y),__tsover_mul(D,x.y)),Q=f.y,de=__tsover_sub(ee,__tsover_mul(Q,D)),Ee=__tsover_mul(__tsover_sub(I,__tsover_mul(X,D)),-1),he=__tsover_sub(__tsover_mul(I,Q),__tsover_mul(X,ee)),Me=__tsover_mul(__tsover_sub(H,__tsover_mul(Q,B)),-1),Te=__tsover_sub(G,__tsover_mul(X,B)),Pe=__tsover_mul(__tsover_sub(__tsover_mul(G,Q),__tsover_mul(X,H)),-1),Ce=__tsover_sub(__tsover_mul(H,D),__tsover_mul(ee,B)),ie=__tsover_mul(__tsover_sub(__tsover_mul(G,D),__tsover_mul(I,B)),-1),Ne=__tsover_sub(__tsover_mul(G,ee),__tsover_mul(I,H)),ye=t.x,Ve=t.y,qe=__tsover_add(__tsover_add(__tsover_mul(Ce,ye),__tsover_mul(ie,Ve)),Ne),st=Il(__tsover_add(__tsover_add(__tsover_mul(de,ye),__tsover_mul(Ee,Ve)),he),qe),We=Il(__tsover_add(__tsover_add(__tsover_mul(Me,ye),__tsover_mul(Te,Ve)),Pe),qe),Be=__tsover_add(__tsover_add(__tsover_mul(G,de),__tsover_mul(I,Me)),__tsover_mul(X,Ce));return v(st,We,ot(a(0),__tsover_mul(qe,Be)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"},{type:"i",name:"amount"},{type:"i",name:"c0"},{type:"i",name:"c1"},{type:"i",name:"c2"},{type:"i",name:"c3"}],body:[0,[[13,"amt",[6,"d.vec2f",["amount","amount"]]],[13,"r0",[6,"std.mix",[[6,"d.vec2f",[[5,"0"],[5,"0"]]],[6,"d.vec2f",[[7,"c0","x"],[1,[5,"1"],"-",[7,"c0","y"]]]],"amt"]]],[13,"r1",[6,"std.mix",[[6,"d.vec2f",[[5,"1"],[5,"0"]]],[6,"d.vec2f",[[7,"c1","x"],[1,[5,"1"],"-",[7,"c1","y"]]]],"amt"]]],[13,"r2",[6,"std.mix",[[6,"d.vec2f",[[5,"1"],[5,"1"]]],[6,"d.vec2f",[[7,"c2","x"],[1,[5,"1"],"-",[7,"c2","y"]]]],"amt"]]],[13,"r3",[6,"std.mix",[[6,"d.vec2f",[[5,"0"],[5,"1"]]],[6,"d.vec2f",[[7,"c3","x"],[1,[5,"1"],"-",[7,"c3","y"]]]],"amt"]]],[13,"q0",[6,"cornerConvexify",["r0","r1","r3","r2"]]],[13,"q1",[6,"cornerConvexify",["r1","r0","r2","r3"]]],[13,"q2",[6,"cornerConvexify",["r2","r1","r3","r0"]]],[13,"q3",[6,"cornerConvexify",["r3","r0","r2","r1"]]],[13,"dx1",[1,[7,"q1","x"],"-",[7,"q2","x"]]],[13,"dx2",[1,[7,"q3","x"],"-",[7,"q2","x"]]],[13,"dx3",[1,[1,[1,[7,"q0","x"],"-",[7,"q1","x"]],"+",[7,"q2","x"]],"-",[7,"q3","x"]]],[13,"dy1",[1,[7,"q1","y"],"-",[7,"q2","y"]]],[13,"dy2",[1,[7,"q3","y"],"-",[7,"q2","y"]]],[13,"dy3",[1,[1,[1,[7,"q0","y"],"-",[7,"q1","y"]],"+",[7,"q2","y"]],"-",[7,"q3","y"]]],[13,"denA",[1,[1,"dx1","*","dy2"],"-",[1,"dx2","*","dy1"]]],[13,"a13",[6,"cornerPinSafeDiv",[[1,[1,"dx3","*","dy2"],"-",[1,"dx2","*","dy3"]],"denA"]]],[13,"a23",[6,"cornerPinSafeDiv",[[1,[1,"dx1","*","dy3"],"-",[1,"dx3","*","dy1"]],"denA"]]],[13,"a11",[1,[1,[7,"q1","x"],"-",[7,"q0","x"]],"+",[1,"a13","*",[7,"q1","x"]]]],[13,"a21",[1,[1,[7,"q3","x"],"-",[7,"q0","x"]],"+",[1,"a23","*",[7,"q3","x"]]]],[13,"a31",[7,"q0","x"]],[13,"a12",[1,[1,[7,"q1","y"],"-",[7,"q0","y"]],"+",[1,"a13","*",[7,"q1","y"]]]],[13,"a22",[1,[1,[7,"q3","y"],"-",[7,"q0","y"]],"+",[1,"a23","*",[7,"q3","y"]]]],[13,"a32",[7,"q0","y"]],[13,"c00",[1,"a22","-",[1,"a32","*","a23"]]],[13,"c10",[1,[1,"a21","-",[1,"a31","*","a23"]],"*",[4,"-",[5,"1"]]]],[13,"c20",[1,[1,"a21","*","a32"],"-",[1,"a31","*","a22"]]],[13,"c01",[1,[1,"a12","-",[1,"a32","*","a13"]],"*",[4,"-",[5,"1"]]]],[13,"c11",[1,"a11","-",[1,"a31","*","a13"]]],[13,"c21",[1,[1,[1,"a11","*","a32"],"-",[1,"a31","*","a12"]],"*",[4,"-",[5,"1"]]]],[13,"c02",[1,[1,"a12","*","a23"],"-",[1,"a22","*","a13"]]],[13,"c12",[1,[1,[1,"a11","*","a23"],"-",[1,"a21","*","a13"]],"*",[4,"-",[5,"1"]]]],[13,"c22",[1,[1,"a11","*","a22"],"-",[1,"a21","*","a12"]]],[13,"px",[7,"coord","x"]],[13,"py",[7,"coord","y"]],[13,"den",[1,[1,[1,"c02","*","px"],"+",[1,"c12","*","py"]],"+","c22"]],[13,"su",[6,"cornerPinSafeDiv",[[1,[1,[1,"c00","*","px"],"+",[1,"c10","*","py"]],"+","c20"],"den"]]],[13,"sv",[6,"cornerPinSafeDiv",[[1,[1,[1,"c01","*","px"],"+",[1,"c11","*","py"]],"+","c21"],"den"]]],[13,"det",[1,[1,[1,"a11","*","c00"],"+",[1,"a21","*","c01"]],"+",[1,"a31","*","c02"]]],[13,"front",[6,"std.step",[[6,"d.f32",[[5,"0"]]],[1,"den","*","det"]]]],[10,[6,"d.vec3f",["su","sv","front"]]]]]},externals:{"d.vec2f":()=>u,"std.mix":()=>Z,cornerConvexify:()=>Yl,cornerPinSafeDiv:()=>Il,"std.step":()=>ot,"d.f32":()=>a,"d.vec3f":()=>v}})&&e.f)({})),PV=y.fn([u,a,a,a,a,u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=u(t.x,__tsover_sub(1,t.y)),c=__tsover_div(__tsover_sub(d.x,l.x),n),_=__tsover_div(__tsover_sub(d.y,l.y),n),p=__tsover_mul(s,Qe),f=__tsover_mul(r,Qe),h=__tsover_mul(o,Qe),g=J(p),x=O(p),T=J(f),S=O(f),A=__tsover_mul(Zf(__tsover_mul(h,.5)),2),E=w(__tsover_add(g,__tsover_mul(__tsover_mul(x,c),A)),.001),M=__tsover_div(c,E),$=__tsover_div(__tsover_mul(_,g),E),L=w(__tsover_add(T,__tsover_mul(__tsover_mul(S,$),A)),.001),B=__tsover_div(__tsover_mul(M,T),L),D=__tsover_div($,L),G=u(i.x,__tsover_sub(1,i.y));return u(B,D).add(l).sub(G).add(u(.5,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"pan"},{type:"i",name:"tilt"},{type:"i",name:"fov"},{type:"i",name:"zoom"},{type:"i",name:"offset"},{type:"i",name:"uv"}],body:[0,[[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"x",[1,[1,[7,"uv","x"],"-",[7,"centerPos","x"]],"/","zoom"]],[13,"y",[1,[1,[7,"uv","y"],"-",[7,"centerPos","y"]],"/","zoom"]],[13,"panRad",[1,"pan","*","DEG_TO_RAD"]],[13,"tiltRad",[1,"tilt","*","DEG_TO_RAD"]],[13,"fovRad",[1,"fov","*","DEG_TO_RAD"]],[13,"cosPan",[6,"std.cos",["panRad"]]],[13,"sinPan",[6,"std.sin",["panRad"]]],[13,"cosTilt",[6,"std.cos",["tiltRad"]]],[13,"sinTilt",[6,"std.sin",["tiltRad"]]],[13,"perspectiveFactor",[1,[6,"std.tan",[[1,"fovRad","*",[5,"0.5"]]]],"*",[5,"2"]]],[13,"panDivisor",[1,"cosPan","+",[1,[1,"sinPan","*","x"],"*","perspectiveFactor"]]],[13,"safePanDivisor",[6,"std.max",["panDivisor",[5,"0.001"]]]],[13,"afterPanX",[1,"x","/","safePanDivisor"]],[13,"afterPanY",[1,[1,"y","*","cosPan"],"/","safePanDivisor"]],[13,"tiltDivisor",[1,"cosTilt","+",[1,[1,"sinTilt","*","afterPanY"],"*","perspectiveFactor"]]],[13,"safeTiltDivisor",[6,"std.max",["tiltDivisor",[5,"0.001"]]]],[13,"finalX",[1,[1,"afterPanX","*","cosTilt"],"/","safeTiltDivisor"]],[13,"finalY",[1,"afterPanY","/","safeTiltDivisor"]],[13,"offsetPos",[6,"d.vec2f",[[7,"offset","x"],[1,[5,"1"],"-",[7,"offset","y"]]]]],[10,[6,[7,[6,[7,[6,[7,[6,"d.vec2f",["finalX","finalY"]],"add"],["centerPos"]],"sub"],["offsetPos"]],"add"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.tan":()=>Zf,"std.max":()=>w}})&&e.f)({})),T2=y.fn([u,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(r.x,__tsover_sub(1,r.y)),i=__tsover_mul(__tsover_sub(t.x,n.x),s),d=__tsover_sub(t.y,n.y),l=J(o),c=O(o),_=__tsover_sub(__tsover_mul(i,l),__tsover_mul(d,c)),p=__tsover_add(__tsover_mul(i,c),__tsover_mul(d,l));return u(__tsover_add(__tsover_div(_,s),n.x),__tsover_add(p,n.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"angle"}],body:[0,[[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dx",[1,[1,[7,"uv","x"],"-",[7,"centerPos","x"]],"*","aspect"]],[13,"dy",[1,[7,"uv","y"],"-",[7,"centerPos","y"]]],[13,"cosA",[6,"std.cos",["angle"]]],[13,"sinA",[6,"std.sin",["angle"]]],[13,"rotX",[1,[1,"dx","*","cosA"],"-",[1,"dy","*","sinA"]]],[13,"rotY",[1,[1,"dx","*","sinA"],"+",[1,"dy","*","cosA"]]],[10,[6,"d.vec2f",[[1,[1,"rotX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rotY","+",[7,"centerPos","y"]]]]]]]},externals:{"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),MV=y.fn([u,a,a,a,a,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c)=>{"use gpu";let _=u(t.x,__tsover_sub(1,t.y)),p=te(u(__tsover_mul(__tsover_sub(l.x,_.x),c),__tsover_sub(l.y,_.y))),f=__tsover_mul(p,r),h=K(f),g=ve(f),x=__tsover_mul(s,Qe),T=__tsover_mul(n,.137),S=__tsover_mul(Da(__tsover_add(h,T)),x),A=__tsover_mul(Da(__tsover_add(__tsover_add(h,1),T)),x),E=Z(1,Da(__tsover_add(h,42.7)),i),M=Z(1,Da(__tsover_add(__tsover_add(h,1),42.7)),i),$=__tsover_mul(__tsover_mul(d,.25),E),L=__tsover_mul(__tsover_mul(d,.25),M),B=__tsover_add(S,$),D=__tsover_add(A,L),G=__tsover_add(__tsover_sub(D,B),ko),I=__tsover_sub(__tsover_sub(G,__tsover_mul(Et,K(__tsover_div(G,Et)))),ko),X=__tsover_add(__tsover_mul(o,.5),.001),H=ce(__tsover_sub(.5,X),__tsover_add(.5,X),g);return T2(l,c,t,__tsover_add(B,__tsover_mul(I,H)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"intensity"},{type:"i",name:"rings"},{type:"i",name:"smoothness"},{type:"i",name:"seed"},{type:"i",name:"speedRandomness"},{type:"i",name:"animTime"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dx",[1,[1,[7,"uv","x"],"-",[7,"centerPos","x"]],"*","aspect"]],[13,"dy",[1,[7,"uv","y"],"-",[7,"centerPos","y"]]],[13,"dist",[6,"std.length",[[6,"d.vec2f",["dx","dy"]]]]],[13,"ringCoord",[1,"dist","*","rings"]],[13,"ringIndex",[6,"std.floor",["ringCoord"]]],[13,"ringFrac",[6,"std.fract",["ringCoord"]]],[13,"maxAngle",[1,"intensity","*","DEG_TO_RAD"]],[13,"seedOffset",[1,"seed","*",[5,"0.137"]]],[13,"staticA",[1,[6,"legacySinHash11",[[1,"ringIndex","+","seedOffset"]]],"*","maxAngle"]],[13,"staticB",[1,[6,"legacySinHash11",[[1,[1,"ringIndex","+",[5,"1"]],"+","seedOffset"]]],"*","maxAngle"]],[13,"ringSpeedA",[6,"std.mix",[[5,"1"],[6,"legacySinHash11",[[1,"ringIndex","+",[5,"42.7"]]]],"speedRandomness"]]],[13,"ringSpeedB",[6,"std.mix",[[5,"1"],[6,"legacySinHash11",[[1,[1,"ringIndex","+",[5,"1"]],"+",[5,"42.7"]]]],"speedRandomness"]]],[13,"animA",[1,[1,"animTime","*",[5,"0.25"]],"*","ringSpeedA"]],[13,"animB",[1,[1,"animTime","*",[5,"0.25"]],"*","ringSpeedB"]],[13,"totalA",[1,"staticA","+","animA"]],[13,"totalB",[1,"staticB","+","animB"]],[13,"wrapArg",[1,[1,"totalB","-","totalA"],"+","PI"]],[13,"diff",[1,[1,"wrapArg","-",[1,"TAU","*",[6,"std.floor",[[1,"wrapArg","/","TAU"]]]]],"-","PI"]],[13,"halfEdge",[1,[1,"smoothness","*",[5,"0.5"]],"+",[5,"0.001"]]],[13,"blend",[6,"std.smoothstep",[[1,[5,"0.5"],"-","halfEdge"],[1,[5,"0.5"],"+","halfEdge"],"ringFrac"]]],[13,"angle",[1,"totalA","+",[1,"diff","*","blend"]]],[10,[6,"csRotateUV",["uv","aspect","center","angle"]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.floor":()=>K,"std.fract":()=>ve,DEG_TO_RAD:()=>Qe,legacySinHash11:()=>Da,"std.mix":()=>Z,PI:()=>ko,TAU:()=>Et,"std.smoothstep":()=>ce,csRotateUV:()=>T2}})&&e.f)({})),kV=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=u(__tsover_mul(t.x,s),t.y),l=__tsover_mul(n,.7),c=__tsover_mul(i,.2),_=__tsover_mul(Po(v(__tsover_add(__tsover_mul(d.x,r),__tsover_mul(l,.3)),__tsover_add(__tsover_mul(d.y,r),__tsover_mul(l,.5)),c)),_o),p=u(J(_),O(_)),f=__tsover_mul(n,.5),h=__tsover_mul(i,.15),g=__tsover_mul(Po(v(__tsover_add(__tsover_add(__tsover_mul(d.x,__tsover_mul(r,2.3)),__tsover_mul(f,-.4)),173.5),__tsover_add(__tsover_add(__tsover_mul(d.y,__tsover_mul(r,2.3)),__tsover_mul(f,.3)),291.7),__tsover_add(h,50))),_o),x=u(J(g),O(g)),T=__tsover_mul(n,.3),S=__tsover_mul(i,.1),A=__tsover_mul(Po(v(__tsover_add(__tsover_add(__tsover_mul(d.x,__tsover_mul(r,4.7)),__tsover_mul(T,.2)),527.3),__tsover_add(__tsover_add(__tsover_mul(d.y,__tsover_mul(r,4.7)),__tsover_mul(T,-.6)),839.1),__tsover_add(S,100))),_o),E=u(J(A),O(A)),M=p.add(x.mul(.5)).add(E.mul(.25)),$=w(te(M),.001),L=M.div($),B=u(__tsover_div(__tsover_mul(L.x,o),s),__tsover_mul(L.y,o));return u(__tsover_add(t.x,B.x),__tsover_add(t.y,B.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"scale"},{type:"i",name:"strength"},{type:"i",name:"time"},{type:"i",name:"evolutionTime"}],body:[0,[[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"drift1",[1,"time","*",[5,"0.7"]]],[13,"evolve1",[1,"evolutionTime","*",[5,"0.2"]]],[13,"angle1",[1,[6,"mxNoiseFloat3",[[6,"d.vec3f",[[1,[1,[7,"aspectCorrectedUV","x"],"*","scale"],"+",[1,"drift1","*",[5,"0.3"]]],[1,[1,[7,"aspectCorrectedUV","y"],"*","scale"],"+",[1,"drift1","*",[5,"0.5"]]],"evolve1"]]]],"*","TWO_PI"]],[13,"flow1",[6,"d.vec2f",[[6,"std.cos",["angle1"]],[6,"std.sin",["angle1"]]]]],[13,"drift2",[1,"time","*",[5,"0.5"]]],[13,"evolve2",[1,"evolutionTime","*",[5,"0.15"]]],[13,"angle2",[1,[6,"mxNoiseFloat3",[[6,"d.vec3f",[[1,[1,[1,[7,"aspectCorrectedUV","x"],"*",[1,"scale","*",[5,"2.3"]]],"+",[1,"drift2","*",[4,"-",[5,"0.4"]]]],"+",[5,"173.5"]],[1,[1,[1,[7,"aspectCorrectedUV","y"],"*",[1,"scale","*",[5,"2.3"]]],"+",[1,"drift2","*",[5,"0.3"]]],"+",[5,"291.7"]],[1,"evolve2","+",[5,"50"]]]]]],"*","TWO_PI"]],[13,"flow2",[6,"d.vec2f",[[6,"std.cos",["angle2"]],[6,"std.sin",["angle2"]]]]],[13,"drift3",[1,"time","*",[5,"0.3"]]],[13,"evolve3",[1,"evolutionTime","*",[5,"0.1"]]],[13,"angle3",[1,[6,"mxNoiseFloat3",[[6,"d.vec3f",[[1,[1,[1,[7,"aspectCorrectedUV","x"],"*",[1,"scale","*",[5,"4.7"]]],"+",[1,"drift3","*",[5,"0.2"]]],"+",[5,"527.3"]],[1,[1,[1,[7,"aspectCorrectedUV","y"],"*",[1,"scale","*",[5,"4.7"]]],"+",[1,"drift3","*",[4,"-",[5,"0.6"]]]],"+",[5,"839.1"]],[1,"evolve3","+",[5,"100"]]]]]],"*","TWO_PI"]],[13,"flow3",[6,"d.vec2f",[[6,"std.cos",["angle3"]],[6,"std.sin",["angle3"]]]]],[13,"combinedFlow",[6,[7,[6,[7,"flow1","add"],[[6,[7,"flow2","mul"],[[5,"0.5"]]]]],"add"],[[6,[7,"flow3","mul"],[[5,"0.25"]]]]]],[13,"flowLength",[6,"std.max",[[6,"std.length",["combinedFlow"]],[5,"0.001"]]]],[13,"normalizedFlow",[6,[7,"combinedFlow","div"],["flowLength"]]],[13,"finalFlow",[6,"d.vec2f",[[1,[1,[7,"normalizedFlow","x"],"*","strength"],"/","aspect"],[1,[7,"normalizedFlow","y"],"*","strength"]]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[7,"finalFlow","x"]],[1,[7,"uv","y"],"+",[7,"finalFlow","y"]]]]]]]},externals:{"d.vec2f":()=>u,mxNoiseFloat3:()=>Po,"d.vec3f":()=>v,TWO_PI:()=>_o,"std.cos":()=>J,"std.sin":()=>O,"std.max":()=>w,"std.length":()=>te}})&&e.f)({})),$V=y.fn([u,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,Qe),d=u(J(i),O(i)),l=u(__tsover_mul(__tsover_sub(t.x,.5),s),__tsover_sub(t.y,.5)),c=le(l,d),_=__tsover_mul(.5,__tsover_add(__tsover_mul(s,W(d.x)),W(d.y))),p=__tsover_add(__tsover_div(c,__tsover_mul(2,_)),.5),f=K(__tsover_mul(p,w(o,1))),h=__tsover_sub(__tsover_mul(ve(__tsover_mul(f,.5)),4),1),g=u(-d.y,d.x),x=__tsover_mul(.5,__tsover_add(__tsover_mul(s,W(d.y)),W(d.x))),T=__tsover_mul(__tsover_mul(n,__tsover_mul(2.02,x)),h),S=l.add(g.mul(T));return u(__tsover_add(__tsover_div(S.x,s),.5),__tsover_add(S.y,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angleDeg"},{type:"i",name:"sliceCount"},{type:"i",name:"progress"}],body:[0,[[13,"a",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"dir",[6,"d.vec2f",[[6,"std.cos",["a"]],[6,"std.sin",["a"]]]]],[13,"p",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],[1,[7,"uv","y"],"-",[5,"0.5"]]]]],[13,"grad",[6,"std.dot",["p","dir"]]],[13,"ext",[1,[5,"0.5"],"*",[1,[1,"aspect","*",[6,"std.abs",[[7,"dir","x"]]]],"+",[6,"std.abs",[[7,"dir","y"]]]]]],[13,"t",[1,[1,"grad","/",[1,[5,"2"],"*","ext"]],"+",[5,"0.5"]]],[13,"idx",[6,"std.floor",[[1,"t","*",[6,"std.max",["sliceCount",[5,"1"]]]]]]],[13,"sign",[1,[1,[6,"std.fract",[[1,"idx","*",[5,"0.5"]]]],"*",[5,"4"]],"-",[5,"1"]]],[13,"perp",[6,"d.vec2f",[[4,"-",[7,"dir","y"]],[7,"dir","x"]]]],[13,"extPerp",[1,[5,"0.5"],"*",[1,[1,"aspect","*",[6,"std.abs",[[7,"dir","y"]]]],"+",[6,"std.abs",[[7,"dir","x"]]]]]],[13,"slide",[1,[1,"progress","*",[1,[5,"2.02"],"*","extPerp"]],"*","sign"]],[13,"q",[6,[7,"p","add"],[[6,[7,"perp","mul"],["slide"]]]]],[10,[6,"d.vec2f",[[1,[1,[7,"q","x"],"/","aspect"],"+",[5,"0.5"]],[1,[7,"q","y"],"+",[5,"0.5"]]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.abs":()=>W,"std.floor":()=>K,"std.max":()=>w,"std.fract":()=>ve}})&&e.f)({})),S2=y.fn([u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(r,Qe),i=J(n),d=O(n),l=__tsover_mul(t.x,s),c=t.y,_=__tsover_sub(l,__tsover_mul(s,.5)),p=__tsover_sub(c,.5),f=__tsover_add(__tsover_mul(_,i),__tsover_mul(p,d)),h=__tsover_add(__tsover_mul(__tsover_mul(_,d),-1),__tsover_mul(p,i)),g=__tsover_add(h,o),x=__tsover_sub(__tsover_mul(f,i),__tsover_mul(g,d)),T=__tsover_add(__tsover_mul(f,d),__tsover_mul(g,i));return u(__tsover_add(__tsover_div(x,s),.5),__tsover_add(T,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angle"},{type:"i",name:"offset"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"au",[1,[7,"uv","x"],"*","aspect"]],[13,"av",[7,"uv","y"]],[13,"cu",[1,"au","-",[1,"aspect","*",[5,"0.5"]]]],[13,"cv",[1,"av","-",[5,"0.5"]]],[13,"projectedU",[1,[1,"cu","*","cosA"],"+",[1,"cv","*","sinA"]]],[13,"projectedV",[1,[1,[1,"cu","*","sinA"],"*",[4,"-",[5,"1"]]],"+",[1,"cv","*","cosA"]]],[13,"distPV",[1,"projectedV","+","offset"]],[13,"dcu",[1,[1,"projectedU","*","cosA"],"-",[1,"distPV","*","sinA"]]],[13,"dcv",[1,[1,"projectedU","*","sinA"],"+",[1,"distPV","*","cosA"]]],[10,[6,"d.vec2f",[[1,[1,"dcu","/","aspect"],"+",[5,"0.5"]],[1,"dcv","+",[5,"0.5"]]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),CV=y.fn([a,a,a,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_mul(s,Qe),c=J(l),_=O(l),p=w(d,1),f=__tsover_mul(i.x,d),h=i.y,g=__tsover_sub(f,__tsover_mul(d,.5)),x=__tsover_sub(h,.5),T=__tsover_add(__tsover_mul(g,c),__tsover_mul(x,_)),S=K(__tsover_div(__tsover_mul(T,t),p)),A=__tsover_mul(o,.137),E=Da(__tsover_add(S,A)),M=Da(__tsover_add(__tsover_add(S,A),42.7)),$=__tsover_mul(__tsover_mul(n,M),.2);return S2(i,d,s,__tsover_mul(__tsover_add(E,$),r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"count"},{type:"i",name:"angle"},{type:"i",name:"intensity"},{type:"i",name:"seed"},{type:"i",name:"animTime"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"longestAxis",[6,"std.max",["aspect",[5,"1"]]]],[13,"au",[1,[7,"uv","x"],"*","aspect"]],[13,"av",[7,"uv","y"]],[13,"cu",[1,"au","-",[1,"aspect","*",[5,"0.5"]]]],[13,"cv",[1,"av","-",[5,"0.5"]]],[13,"projectedU",[1,[1,"cu","*","cosA"],"+",[1,"cv","*","sinA"]]],[13,"barCoord",[1,[1,"projectedU","*","count"],"/","longestAxis"]],[13,"barIndex",[6,"std.floor",["barCoord"]]],[13,"seedOffset",[1,"seed","*",[5,"0.137"]]],[13,"staticOffset",[6,"legacySinHash11",[[1,"barIndex","+","seedOffset"]]]],[13,"barSpeed",[6,"legacySinHash11",[[1,[1,"barIndex","+","seedOffset"],"+",[5,"42.7"]]]]],[13,"animOffset",[1,[1,"animTime","*","barSpeed"],"*",[5,"0.2"]]],[13,"offset",[1,[1,"staticOffset","+","animOffset"],"*","intensity"]],[10,[6,"barSampleUV",["uv","aspect","angle","offset"]]]]]},externals:{DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.max":()=>w,"std.floor":()=>K,legacySinHash11:()=>Da,barSampleUV:()=>S2}})&&e.f)({})),RV=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=r>1,n=w(F(__tsover_mul(s,r),s,o),1),i=w(F(s,__tsover_div(s,r),o),1),d=K(__tsover_mul(t.x,n)),l=K(__tsover_mul(t.y,i));return u(__tsover_div(__tsover_add(d,.5),n),__tsover_div(__tsover_add(l,.5),i))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"gridSize"},{type:"i",name:"aspect"}],body:[0,[[13,"isWide",[1,"aspect",">",[5,"1"]]],[13,"cellsX",[6,"std.max",[[6,"std.select",[[1,"gridSize","*","aspect"],"gridSize","isWide"]],[5,"1"]]]],[13,"cellsY",[6,"std.max",[[6,"std.select",["gridSize",[1,"gridSize","/","aspect"],"isWide"]],[5,"1"]]]],[13,"cellIndexX",[6,"std.floor",[[1,[7,"uv","x"],"*","cellsX"]]]],[13,"cellIndexY",[6,"std.floor",[[1,[7,"uv","y"],"*","cellsY"]]]],[10,[6,"d.vec2f",[[1,[1,"cellIndexX","+",[5,"0.5"]],"/","cellsX"],[1,[1,"cellIndexY","+",[5,"0.5"]],"/","cellsY"]]]]]]},externals:{"std.max":()=>w,"std.select":()=>F,"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})),UV=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let o=z(s,u(-.1,-.1),u(.1,.1));return t.sub(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"disp"}],body:[0,[[13,"maxDisp",[5,"0.1"]],[13,"clamped",[6,"std.clamp",["disp",[6,"d.vec2f",[[4,"-","maxDisp"],[4,"-","maxDisp"]]],[6,"d.vec2f",["maxDisp","maxDisp"]]]]],[10,[6,[7,"uv","sub"],["clamped"]]]]]},externals:{"std.clamp":()=>z,"d.vec2f":()=>u}})&&e.f)({})),zV=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=s.mul(__tsover_mul(r,.1)),n=.15,i=z(o,u(-n,-n),u(n,n));return t.sub(i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"disp"},{type:"i",name:"intensity"}],body:[0,[[13,"scaled",[6,[7,"disp","mul"],[[1,"intensity","*",[5,"0.1"]]]]],[13,"maxDisp",[5,"0.15"]],[13,"clamped",[6,"std.clamp",["scaled",[6,"d.vec2f",[[4,"-","maxDisp"],[4,"-","maxDisp"]]],[6,"d.vec2f",["maxDisp","maxDisp"]]]]],[10,[6,[7,"uv","sub"],["clamped"]]]]]},externals:{"std.clamp":()=>z,"d.vec2f":()=>u}})&&e.f)({})),GV=y.fn([u,b,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=w(s.w,1e-4),i=__tsover_div(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_sub(__tsover_div(s.x,n),.5),2),s.w),o),r),d=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_sub(__tsover_div(s.y,n),.5),2),s.w),o);return u(__tsover_add(t.x,i),__tsover_add(t.y,d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"src"},{type:"i",name:"aspect"},{type:"i",name:"amount"}],body:[0,[[13,"a",[6,"std.max",[[7,"src","w"],[5,"0.0001"]]]],[13,"dx",[1,[1,[1,[1,[1,[1,[7,"src","x"],"/","a"],"-",[5,"0.5"]],"*",[5,"2"]],"*",[7,"src","w"]],"*","amount"],"/","aspect"]],[13,"dy",[1,[1,[1,[1,[1,[7,"src","y"],"/","a"],"-",[5,"0.5"]],"*",[5,"2"]],"*",[7,"src","w"]],"*","amount"]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+","dx"],[1,[7,"uv","y"],"+","dy"]]]]]]},externals:{"std.max":()=>w,"d.vec2f":()=>u}})&&e.f)({})),DV=y.fn([u,b,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=w(s.w,1e-4),d=le(v(__tsover_div(s.x,i),__tsover_div(s.y,i),__tsover_div(s.z,i)),v(.2126,.7152,.0722)),l=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_sub(d,.5),2),s.w),o),c=__tsover_mul(n,Qe),_=__tsover_div(__tsover_mul(l,J(c)),r),p=__tsover_mul(l,O(c));return u(__tsover_add(t.x,_),__tsover_add(t.y,p))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"src"},{type:"i",name:"aspect"},{type:"i",name:"amount"},{type:"i",name:"angleDeg"}],body:[0,[[13,"a",[6,"std.max",[[7,"src","w"],[5,"0.0001"]]]],[13,"lum",[6,"std.dot",[[6,"d.vec3f",[[1,[7,"src","x"],"/","a"],[1,[7,"src","y"],"/","a"],[1,[7,"src","z"],"/","a"]]],[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"scalar",[1,[1,[1,[1,"lum","-",[5,"0.5"]],"*",[5,"2"]],"*",[7,"src","w"]],"*","amount"]],[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"dx",[1,[1,"scalar","*",[6,"std.cos",["angleRad"]]],"/","aspect"]],[13,"dy",[1,"scalar","*",[6,"std.sin",["angleRad"]]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+","dx"],[1,[7,"uv","y"],"+","dy"]]]]]]},externals:{"std.max":()=>w,"std.dot":()=>le,"d.vec3f":()=>v,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),uf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({refractedUV:u,chrOff:u,slope:a}),"FlutedGeom"),LV=y.fn([u,a,a,a,a,a,a,a,a,a,v],uf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p)=>{"use gpu";let f=p.x,h=p.y,g=p.z,x=__tsover_div(__tsover_mul(o,ko),180),T=J(x),S=O(x),A=u(__tsover_mul(__tsover_sub(t.x,.5),s),__tsover_sub(t.y,.5)),E=__tsover_add(__tsover_mul(A.x,T),__tsover_mul(A.y,S)),M=__tsover_add(__tsover_mul(-A.x,S),__tsover_mul(A.y,T)),$=__tsover_mul(O(__tsover_add(__tsover_mul(__tsover_mul(M,l),__tsover_mul(ko,2)),__tsover_mul(r,2))),d),L=__tsover_add(E,__tsover_mul(g,$)),B=__tsover_add(__tsover_mul(L,n),r),D=__tsover_mul(__tsover_sub(ve(B),.5),2),G=w(W(D),1e-4),I=Z(f,h,i),X=__tsover_mul(ir(D),Ye(G,I)),H=__tsover_div(.5,w(n,.001)),ee=-__tsover_mul(__tsover_mul(X,c),H),Q=u(__tsover_add(t.x,__tsover_div(__tsover_mul(ee,T),s)),__tsover_add(t.y,__tsover_mul(ee,S))),de=__tsover_mul(__tsover_mul(ee,_),.5);return uf({refractedUV:Q,chrOff:u(__tsover_div(__tsover_mul(de,T),s),__tsover_mul(de,S)),slope:X})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"t"},{type:"i",name:"angleDeg"},{type:"i",name:"frequency"},{type:"i",name:"softness"},{type:"i",name:"waveAmp"},{type:"i",name:"waveFreq"},{type:"i",name:"refraction"},{type:"i",name:"aberration"},{type:"i",name:"shapeParams"}],body:[0,[[13,"expHi",[7,"shapeParams","x"]],[13,"expLo",[7,"shapeParams","y"]],[13,"wavesFlag",[7,"shapeParams","z"]],[13,"r",[1,[1,"angleDeg","*","PI"],"/",[5,"180"]]],[13,"cosA",[6,"std.cos",["r"]]],[13,"sinA",[6,"std.sin",["r"]]],[13,"aspCorr",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],[1,[7,"uv","y"],"-",[5,"0.5"]]]]],[13,"u",[1,[1,[7,"aspCorr","x"],"*","cosA"],"+",[1,[7,"aspCorr","y"],"*","sinA"]]],[13,"v",[1,[1,[4,"-",[7,"aspCorr","x"]],"*","sinA"],"+",[1,[7,"aspCorr","y"],"*","cosA"]]],[13,"waveTerm",[1,[6,"std.sin",[[1,[1,[1,"v","*","waveFreq"],"*",[1,"PI","*",[5,"2"]]],"+",[1,"t","*",[5,"2"]]]]],"*","waveAmp"]],[13,"fluteU",[1,"u","+",[1,"wavesFlag","*","waveTerm"]]],[13,"flutePos",[1,[1,"fluteU","*","frequency"],"+","t"]],[13,"cellPos",[1,[1,[6,"std.fract",["flutePos"]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"absCell",[6,"std.max",[[6,"std.abs",["cellPos"]],[5,"0.0001"]]]],[13,"exponent",[6,"std.mix",["expHi","expLo","softness"]]],[13,"slope",[1,[6,"std.sign",["cellPos"]],"*",[6,"std.pow",["absCell","exponent"]]]],[13,"halfCell",[1,[5,"0.5"],"/",[6,"std.max",["frequency",[5,"0.001"]]]]],[13,"refrU",[4,"-",[1,[1,"slope","*","refraction"],"*","halfCell"]]],[13,"refractedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,[1,"refrU","*","cosA"],"/","aspect"]],[1,[7,"uv","y"],"+",[1,"refrU","*","sinA"]]]]],[13,"chrU",[1,[1,"refrU","*","aberration"],"*",[5,"0.5"]]],[13,"chrOff",[6,"d.vec2f",[[1,[1,"chrU","*","cosA"],"/","aspect"],[1,"chrU","*","sinA"]]]],[10,[6,"FlutedGeom",[[104,{refractedUV:"refractedUV",chrOff:"chrOff",slope:"slope"}]]]]]]},externals:{PI:()=>ko,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u,"std.fract":()=>ve,"std.max":()=>w,"std.abs":()=>W,"std.mix":()=>Z,"std.sign":()=>ir,"std.pow":()=>Ye,FlutedGeom:()=>uf}})&&e.f)({})),FV=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=ue(__tsover_mul(t,t),1),i=$e(__tsover_sub(1,n)),d=__tsover_div(__tsover_mul(s,ko),360),l=O(d),c=J(d),_=w(__tsover_add(__tsover_mul(t,l),__tsover_mul(i,c)),0),p=rp(__tsover_sub(8,__tsover_mul(o,7))),f=Ye(__tsover_sub(1,i),5),h=__tsover_add(.04,__tsover_mul(.96,f));return __tsover_mul(__tsover_mul(Ye(_,p),h),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"slope"},{type:"i",name:"lightAngleDeg"},{type:"i",name:"intensity"},{type:"i",name:"softness"}],body:[0,[[13,"slopeSq",[6,"std.min",[[1,"slope","*","slope"],[5,"1"]]]],[13,"nz",[6,"std.sqrt",[[1,[5,"1"],"-","slopeSq"]]]],[13,"half",[1,[1,"lightAngleDeg","*","PI"],"/",[5,"360"]]],[13,"hx",[6,"std.sin",["half"]]],[13,"hy",[6,"std.cos",["half"]]],[13,"nDotH",[6,"std.max",[[1,[1,"slope","*","hx"],"+",[1,"nz","*","hy"]],[5,"0"]]]],[13,"shininess",[6,"std.exp2",[[1,[5,"8"],"-",[1,"softness","*",[5,"7"]]]]]],[13,"fresnel",[6,"std.pow",[[1,[5,"1"],"-","nz"],[5,"5"]]]],[13,"fresnelMix",[1,[5,"0.04"],"+",[1,[5,"0.96"],"*","fresnel"]]],[10,[1,[1,[6,"std.pow",["nDotH","shininess"]],"*","fresnelMix"],"*","intensity"]]]]},externals:{"std.min":()=>ue,"std.sqrt":()=>$e,PI:()=>ko,"std.sin":()=>O,"std.cos":()=>J,"std.max":()=>w,"std.exp2":()=>rp,"std.pow":()=>Ye}})&&e.f)({})),_f=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({curlUV:u,theta:a,distPastCrease:a,distIntoPeel:a,flatReach:a,peelReach:a,foldBlend:a,showCurl:a}),"PagePeelGeom"),BV=y.fn([u,a,a,a,a,a,a,a],_f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=u(__tsover_mul(t.x,s),t.y),_=u(__tsover_mul(r,s),o),p=u(__tsover_mul(n,s),i).sub(_),f=te(p),h=p.mul(__tsover_div(1,f)),g=le(c.sub(_),h),x=__tsover_mul(d,f),T=x,S=w(__tsover_mul(l,f),1e-4),A=__tsover_div(x,S),E=__tsover_div(__tsover_sub(g,T),S),M=jf(z(E,0,1)),$=__tsover_mul(ot(0,E),ot(E,1)),L=ot(M,A),B=__tsover_sub(x,__tsover_mul(S,M)),D=c.add(h.mul(__tsover_sub(B,g))),G=u(__tsover_div(D.x,s),D.y),I=__tsover_mul(__tsover_mul(__tsover_mul(ot(0,G.x),ot(G.x,1)),ot(0,G.y)),ot(G.y,1)),X=__tsover_sub(1,J(z(A,0,dp))),H=__tsover_mul(S,X),ee=w(__tsover_add(S,__tsover_mul(H,.5)),1e-4),Q=__tsover_sub(g,T),de=w(__tsover_mul(H,2.5),1e-4);return _f({curlUV:G,theta:M,distPastCrease:Q,distIntoPeel:__tsover_sub(T,g),flatReach:ee,peelReach:de,foldBlend:ce(__tsover_sub(T,.0015),__tsover_add(T,.0015),g),showCurl:__tsover_mul(__tsover_mul($,L),I)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"cornerX"},{type:"i",name:"cornerY"},{type:"i",name:"oppX"},{type:"i",name:"oppY"},{type:"i",name:"amount"},{type:"i",name:"radius"}],body:[0,[[13,"pA",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"cornerA",[6,"d.vec2f",[[1,"cornerX","*","aspect"],"cornerY"]]],[13,"oppA",[6,"d.vec2f",[[1,"oppX","*","aspect"],"oppY"]]],[13,"axisVec",[6,[7,"oppA","sub"],["cornerA"]]],[13,"L",[6,"std.length",["axisVec"]]],[13,"axis",[6,[7,"axisVec","mul"],[[1,[5,"1"],"/","L"]]]],[13,"t",[6,"std.dot",[[6,[7,"pA","sub"],["cornerA"]],"axis"]]],[13,"peel",[1,"amount","*","L"]],[13,"cFold","peel"],[13,"R",[6,"std.max",[[1,"radius","*","L"],[5,"0.0001"]]]],[13,"thetaMax",[1,"peel","/","R"]],[13,"X",[1,[1,"t","-","cFold"],"/","R"]],[13,"Xc",[6,"std.clamp",["X",[5,"0"],[5,"1"]]]],[13,"theta",[6,"std.asin",["Xc"]]],[13,"inBand",[1,[6,"std.step",[[5,"0"],"X"]],"*",[6,"std.step",["X",[5,"1"]]]]],[13,"paper",[6,"std.step",["theta","thetaMax"]]],[13,"cCurl",[1,"peel","-",[1,"R","*","theta"]]],[13,"sourceA",[6,[7,"pA","add"],[[6,[7,"axis","mul"],[[1,"cCurl","-","t"]]]]]],[13,"curlUV",[6,"d.vec2f",[[1,[7,"sourceA","x"],"/","aspect"],[7,"sourceA","y"]]]],[13,"curlInBounds",[1,[1,[1,[6,"std.step",[[5,"0"],[7,"curlUV","x"]]],"*",[6,"std.step",[[7,"curlUV","x"],[5,"1"]]]],"*",[6,"std.step",[[5,"0"],[7,"curlUV","y"]]]],"*",[6,"std.step",[[7,"curlUV","y"],[5,"1"]]]]],[13,"liftFrac",[1,[5,"1"],"-",[6,"std.cos",[[6,"std.clamp",["thetaMax",[5,"0"],"HALF_PI"]]]]]],[13,"lipHeight",[1,"R","*","liftFrac"]],[13,"flatReach",[6,"std.max",[[1,"R","+",[1,"lipHeight","*",[5,"0.5"]]],[5,"0.0001"]]]],[13,"distPastCrease",[1,"t","-","cFold"]],[13,"peelReach",[6,"std.max",[[1,"lipHeight","*",[5,"2.5"]],[5,"0.0001"]]]],[13,"distIntoPeel",[1,"cFold","-","t"]],[13,"foldBlend",[6,"std.smoothstep",[[1,"cFold","-",[5,"0.0015"]],[1,"cFold","+",[5,"0.0015"]],"t"]]],[13,"showCurl",[1,[1,"inBand","*","paper"],"*","curlInBounds"]],[10,[6,"PagePeelGeom",[[104,{curlUV:"curlUV",theta:"theta",distPastCrease:"distPastCrease",distIntoPeel:"distIntoPeel",flatReach:"flatReach",peelReach:"peelReach",foldBlend:"foldBlend",showCurl:"showCurl"}]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.dot":()=>le,"std.max":()=>w,"std.clamp":()=>z,"std.asin":()=>jf,"std.step":()=>ot,"std.cos":()=>J,HALF_PI:()=>dp,"std.smoothstep":()=>ce,PagePeelGeom:()=>_f}})&&e.f)({})),IV=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=J(t);return __tsover_sub(1,__tsover_mul(s,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"theta"},{type:"i",name:"shading"}],body:[0,[[13,"facing",[6,"std.cos",["theta"]]],[10,[1,[5,"1"],"-",[1,"shading","*","facing"]]]]]},externals:{"std.cos":()=>J}})&&e.f)({})),YV=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_div(t,dp),n=Z(.05,.4,r),i=__tsover_div(__tsover_sub(o,.65),n);return __tsover_mul(Mt(__tsover_mul(__tsover_mul(i,i),-.5)),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"theta"},{type:"i",name:"intensity"},{type:"i",name:"softness"}],body:[0,[[13,"thetaN",[1,"theta","/","HALF_PI"]],[13,"specSigma",[6,"std.mix",[[5,"0.05"],[5,"0.4"],"softness"]]],[13,"specDelta",[1,[1,"thetaN","-",[5,"0.65"]],"/","specSigma"]],[10,[1,[6,"std.exp",[[1,[1,"specDelta","*","specDelta"],"*",[4,"-",[5,"0.5"]]]]],"*","intensity"]]]]},externals:{HALF_PI:()=>dp,"std.mix":()=>Z,"std.exp":()=>Mt}})&&e.f)({})),Pp=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(ce(0,.04,t),Ye(__tsover_sub(1,t),.7))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"amount"}],body:[0,[[10,[1,[6,"std.smoothstep",[[5,"0"],[5,"0.04"],"amount"]],"*",[6,"std.pow",[[1,[5,"1"],"-","amount"],[5,"0.7"]]]]]]]},externals:{"std.smoothstep":()=>ce,"std.pow":()=>Ye}})&&e.f)({})),Mp=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_mul(Ye(__tsover_sub(1,ce(0,s,t)),r),ot(0,t))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"reach"},{type:"i",name:"exponent"}],body:[0,[[10,[1,[6,"std.pow",[[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],"reach","dist"]]],"exponent"]],"*",[6,"std.step",[[5,"0"],"dist"]]]]]]},externals:{"std.pow":()=>Ye,"std.smoothstep":()=>ce,"std.step":()=>ot}})&&e.f)({})),WV=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(Mp(t,s,2),Pp(r));return __tsover_sub(1,__tsover_mul(__tsover_mul(o,n),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"reach"},{type:"i",name:"amount"},{type:"i",name:"shadow"}],body:[0,[[13,"fall",[1,[6,"shadowFalloff",["dist","reach",[5,"2"]]],"*",[6,"liftShadowStrength",["amount"]]]],[10,[1,[5,"1"],"-",[1,[1,"shadow","*","fall"],"*",[5,"0.5"]]]]]]},externals:{shadowFalloff:()=>Mp,liftShadowStrength:()=>Pp}})&&e.f)({})),OV=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(__tsover_mul(Mp(t,s,1.5),Pp(r)),o);return __tsover_mul(n,.6)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"reach"},{type:"i",name:"amount"},{type:"i",name:"shadow"}],body:[0,[[13,"fall",[1,[1,[6,"shadowFalloff",["dist","reach",[5,"1.5"]]],"*",[6,"liftShadowStrength",["amount"]]],"*","shadow"]],[10,[1,"fall","*",[5,"0.6"]]]]]},externals:{shadowFalloff:()=>Mp,liftShadowStrength:()=>Pp}})&&e.f)({})),VV=y.fn([b,b,a,a,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=b(t.xyz.mul(r).add(__tsover_mul(o,t.w)),t.w),_=b(s.xyz.mul(n),s.w);return F(Z(b(0,0,0,i),_,b(d)),c,l>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"curlSample"},{type:"i",name:"flatSample"},{type:"i",name:"curlBright"},{type:"i",name:"spec"},{type:"i",name:"flatShade"},{type:"i",name:"peelAlpha"},{type:"i",name:"foldBlend"},{type:"i",name:"showCurl"}],body:[0,[[13,"litRgb",[6,[7,[6,[7,[7,"curlSample","xyz"],"mul"],["curlBright"]],"add"],[[1,"spec","*",[7,"curlSample","w"]]]]],[13,"curlColor",[6,"d.vec4f",["litRgb",[7,"curlSample","w"]]]],[13,"flatColor",[6,"d.vec4f",[[6,[7,[7,"flatSample","xyz"],"mul"],["flatShade"]],[7,"flatSample","w"]]]],[13,"peeledColor",[6,"d.vec4f",[[5,"0"],[5,"0"],[5,"0"],"peelAlpha"]]],[13,"base",[6,"std.mix",["peeledColor","flatColor",[6,"d.vec4f",["foldBlend"]]]]],[10,[6,"std.select",["base","curlColor",[1,"showCurl",">",[5,"0.5"]]]]]]]},externals:{"d.vec4f":()=>b,"std.mix":()=>Z,"std.select":()=>F}})&&e.f)({})),pf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({uv:u,coverage:a,normal:v}),"SphereBulge"),NV=y.fn([u,u,u,a,a],pf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_div(s.x,s.y),d=r.x,l=__tsover_sub(1,r.y),c=__tsover_mul(__tsover_sub(t.x,d),i),_=__tsover_sub(t.y,l),p=__tsover_div(__tsover_mul(c,2),o),f=__tsover_div(__tsover_mul(_,2),o),h=__tsover_add(__tsover_mul(p,p),__tsover_mul(f,f)),g=__tsover_sub(1,ce(.98,1,h)),x=$e(w(a(0),__tsover_sub(1,h))),T=__tsover_add(1,__tsover_mul(x,n)),S=__tsover_div(__tsover_mul(__tsover_div(p,T),o),2),A=__tsover_div(__tsover_mul(__tsover_div(f,T),o),2),E=__tsover_add(__tsover_div(S,i),d),M=__tsover_add(A,l),$=Rs(v(p,f,x));return pf({uv:u(E,M),coverage:g,normal:$})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"depth"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"centerX",[7,"center","x"]],[13,"centerY",[1,[5,"1"],"-",[7,"center","y"]]],[13,"cuX",[1,[1,[7,"uv","x"],"-","centerX"],"*","aspect"]],[13,"cuY",[1,[7,"uv","y"],"-","centerY"]],[13,"sphereX",[1,[1,"cuX","*",[5,"2"]],"/","radius"]],[13,"sphereY",[1,[1,"cuY","*",[5,"2"]],"/","radius"]],[13,"radiusSq",[1,[1,"sphereX","*","sphereX"],"+",[1,"sphereY","*","sphereY"]]],[13,"sphereAlpha",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0.98"],[5,"1"],"radiusSq"]]]],[13,"z",[6,"std.sqrt",[[6,"std.max",[[6,"d.f32",[[5,"0"]]],[1,[5,"1"],"-","radiusSq"]]]]]],[13,"depthFactor",[1,[5,"1"],"+",[1,"z","*","depth"]]],[13,"finalX",[1,[1,[1,"sphereX","/","depthFactor"],"*","radius"],"/",[5,"2"]]],[13,"finalY",[1,[1,[1,"sphereY","/","depthFactor"],"*","radius"],"/",[5,"2"]]],[13,"transformedX",[1,[1,"finalX","/","aspect"],"+","centerX"]],[13,"transformedY",[1,"finalY","+","centerY"]],[13,"normal",[6,"std.normalize",[[6,"d.vec3f",["sphereX","sphereY","z"]]]]],[10,[6,"SphereBulge",[[104,{uv:[6,"d.vec2f",["transformedX","transformedY"]],coverage:"sphereAlpha",normal:"normal"}]]]]]]},externals:{"std.smoothstep":()=>ce,"std.sqrt":()=>$e,"std.max":()=>w,"d.f32":()=>a,"std.normalize":()=>Rs,"d.vec3f":()=>v,SphereBulge:()=>pf,"d.vec2f":()=>u}})&&e.f)({})),qV=y.fn([v,u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=v(0,0,1),i=__tsover_add(1,__tsover_mul(4,__tsover_sub(1,o))),d=Ye(__tsover_sub(1,w(le(t,n),a(0))),i),l=__tsover_mul(__tsover_sub(s.x,.5),2),c=__tsover_mul(__tsover_sub(__tsover_sub(1,s.y),.5),2),_=Rs(u(__tsover_add(t.x,1e-4),__tsover_add(t.y,1e-4))),p=Rs(u(__tsover_add(l,1e-4),__tsover_add(c,1e-4))),f=Ye(w(a(0),le(_,p)),a(2));return __tsover_mul(__tsover_mul(__tsover_mul(d,f),r),2)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"normal"},{type:"i",name:"lightPos"},{type:"i",name:"intensity"},{type:"i",name:"softness"}],body:[0,[[13,"viewDir",[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"1"]]]],[13,"fresnelPower",[1,[5,"1"],"+",[1,[5,"4"],"*",[1,[5,"1"],"-","softness"]]]],[13,"fresnel",[6,"std.pow",[[1,[5,"1"],"-",[6,"std.max",[[6,"std.dot",["normal","viewDir"]],[6,"d.f32",[[5,"0"]]]]]],"fresnelPower"]]],[13,"lightDir2Dx",[1,[1,[7,"lightPos","x"],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"lightDir2Dy",[1,[1,[1,[5,"1"],"-",[7,"lightPos","y"]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"normalDir",[6,"std.normalize",[[6,"d.vec2f",[[1,[7,"normal","x"],"+",[5,"0.0001"]],[1,[7,"normal","y"],"+",[5,"0.0001"]]]]]]],[13,"lightDirNorm",[6,"std.normalize",[[6,"d.vec2f",[[1,"lightDir2Dx","+",[5,"0.0001"]],[1,"lightDir2Dy","+",[5,"0.0001"]]]]]]],[13,"directionality",[6,"std.max",[[6,"d.f32",[[5,"0"]]],[6,"std.dot",["normalDir","lightDirNorm"]]]]],[13,"directionalBias",[6,"std.pow",["directionality",[6,"d.f32",[[5,"2"]]]]]],[10,[1,[1,[1,"fresnel","*","directionalBias"],"*","intensity"],"*",[5,"2"]]]]]},externals:{"d.vec3f":()=>v,"std.pow":()=>Ye,"std.max":()=>w,"std.dot":()=>le,"d.f32":()=>a,"std.normalize":()=>Rs,"d.vec2f":()=>u}})&&e.f)({})),XV=y.fn([b,v,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return b(__tsover_add(t.x,__tsover_mul(s.x,r)),__tsover_add(t.y,__tsover_mul(s.y,r)),__tsover_add(t.z,__tsover_mul(s.z,r)),__tsover_mul(t.w,o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"straight"},{type:"i",name:"lightColor"},{type:"i",name:"rim"},{type:"i",name:"coverage"}],body:[0,[[13,"r",[1,[7,"straight","x"],"+",[1,[7,"lightColor","x"],"*","rim"]]],[13,"g",[1,[7,"straight","y"],"+",[1,[7,"lightColor","y"],"*","rim"]]],[13,"b",[1,[7,"straight","z"],"+",[1,[7,"lightColor","z"],"*","rim"]]],[13,"a",[1,[7,"straight","w"],"*","coverage"]],[10,[6,"d.vec4f",["r","g","b","a"]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({}));var A2=1/360,tF=y.fn([u,u,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=j1(t),d=j1(s),l=d.sub(i),c=te(l),_=Rs(l),p=w(n.y,1e-6),f=__tsover_div(n.x,p),h=__tsover_mul(__tsover_mul(r,Qe),-1),g=J(h),x=O(h),T=i.add(d).mul(.5),S=o.sub(T),A=ln(u(__tsover_mul(S.x,f),S.y),g,x),E=le(u(__tsover_div(A.x,f),A.y).add(T).sub(i),_);return __tsover_div(E,w(c,1e-6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"start"},{type:"i",name:"end"},{type:"i",name:"angle"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"startPos",[6,"unflipPosition",["start"]]],[13,"endPos",[6,"unflipPosition",["end"]]],[13,"gradientVector",[6,[7,"endPos","sub"],["startPos"]]],[13,"gradientLength",[6,"std.length",["gradientVector"]]],[13,"gradientDir",[6,"std.normalize",["gradientVector"]]],[13,"safeViewportY",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]],[13,"aspect",[1,[7,"viewport","x"],"/","safeViewportY"]],[13,"angleRad",[1,[1,"angle","*","DEG_TO_RAD"],"*",[4,"-",[5,"1"]]]],[13,"cosAngle",[6,"std.cos",["angleRad"]]],[13,"sinAngle",[6,"std.sin",["angleRad"]]],[13,"midpoint",[6,[7,[6,[7,"startPos","add"],["endPos"]],"mul"],[[5,"0.5"]]]],[13,"centeredUV",[6,[7,"uv","sub"],["midpoint"]]],[13,"rotated",[6,"geom.rotate2",[[6,"d.vec2f",[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]],"cosAngle","sinAngle"]]],[13,"rotatedUV",[6,[7,[6,"d.vec2f",[[1,[7,"rotated","x"],"/","aspect"],[7,"rotated","y"]]],"add"],["midpoint"]]],[13,"relativePos",[6,[7,"rotatedUV","sub"],["startPos"]]],[13,"projection",[6,"std.dot",["relativePos","gradientDir"]]],[10,[1,"projection","/",[6,"std.max",["gradientLength",[5,"0.000001"]]]]]]]},externals:{unflipPosition:()=>j1,"std.length":()=>te,"std.normalize":()=>Rs,"std.max":()=>w,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"geom.rotate2":()=>ln,"d.vec2f":()=>u,"std.dot":()=>le}})&&e.f)({})),cT=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=tn(W(t),2);return F(s,__tsover_sub(2,s),s>1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"m",[6,"std.mod",[[6,"std.abs",["t"]],[5,"2"]]]],[10,[6,"std.select",["m",[1,[5,"2"],"-","m"],[1,"m",">",[5,"1"]]]]]]]},externals:{"std.mod":()=>tn,"std.abs":()=>W,"std.select":()=>F}})&&e.f)({})),sF=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ve(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,"std.fract",["t"]]]]]},externals:{"std.fract":()=>ve}})&&e.f)({})),E2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return z(t,0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,"std.clamp",["t",[5,"0"],[5,"1"]]]]]]},externals:{"std.clamp":()=>z}})&&e.f)({})),rF=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=F(a(0),a(1),t>=0),r=F(a(0),a(1),t<=1);return __tsover_mul(s,r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"inLow",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"t",">=",[5,"0"]]]]],[13,"inHigh",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"t","<=",[5,"1"]]]]],[10,[1,"inLow","*","inHigh"]]]]},externals:{"std.select":()=>F,"d.f32":()=>a}})&&e.f)({})),oF=y.fn([u,a,a,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Qa(n,t,i),l=__tsover_mul(s,Qe),c=ln(d,J(l),-O(l)),_=te(u(__tsover_mul(c.x,r),c.y)),p=w(o,1e-6);return __tsover_div(_,p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"skewAngle"},{type:"i",name:"ellipseAspect"},{type:"i",name:"radius"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"delta",[6,"aspectCenteredDelta",["uv","center","viewport"]]],[13,"skewRad",[1,"skewAngle","*","DEG_TO_RAD"]],[13,"cosS",[6,"std.cos",["skewRad"]]],[13,"sinS",[6,"std.sin",["skewRad"]]],[13,"rotated",[6,"geom.rotate2",["delta","cosS",[4,"-","sinS"]]]],[13,"stretched",[6,"d.vec2f",[[1,[7,"rotated","x"],"*","ellipseAspect"],[7,"rotated","y"]]]],[13,"dist",[6,"std.length",["stretched"]]],[13,"safeRadius",[6,"std.max",["radius",[5,"0.000001"]]]],[10,[1,"dist","/","safeRadius"]]]]},externals:{aspectCenteredDelta:()=>Qa,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"geom.rotate2":()=>ln,"d.vec2f":()=>u,"std.length":()=>te,"std.max":()=>w}})&&e.f)({})),nF=y.fn([u,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Qa(r,t,o),i=bt(n.y,n.x),d=__tsover_sub(.5,__tsover_div(i,Et)),l=__tsover_mul(s,A2);return __tsover_add(d,l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"rotation"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"delta",[6,"aspectCenteredDelta",["uv","center","viewport"]]],[13,"angle",[6,"std.atan2",[[7,"delta","y"],[7,"delta","x"]]]],[13,"normalized",[1,[5,"0.5"],"-",[1,"angle","/","TAU"]]],[13,"rotationFraction",[1,"rotation","*","INV_360"]],[10,[1,"normalized","+","rotationFraction"]]]]},externals:{aspectCenteredDelta:()=>Qa,"std.atan2":()=>bt,TAU:()=>Et,INV_360:()=>A2}})&&e.f)({})),aF=y.fn([u,a,a,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Qa(n,t,i),l=__tsover_mul(r,Qe),c=ln(d,J(l),-O(l)),_=W(c.x),p=W(c.y),f=Z(__tsover_add(_,p),w(_,p),o);return __tsover_div(f,s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"size"},{type:"i",name:"rotation"},{type:"i",name:"roundness"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"delta",[6,"aspectCenteredDelta",["uv","center","viewport"]]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[13,"rotated",[6,"geom.rotate2",["delta","cosR",[4,"-","sinR"]]]],[13,"absDx",[6,"std.abs",[[7,"rotated","x"]]]],[13,"absDy",[6,"std.abs",[[7,"rotated","y"]]]],[13,"l1",[1,"absDx","+","absDy"]],[13,"linf",[6,"std.max",["absDx","absDy"]]],[13,"dist",[6,"std.mix",["l1","linf","roundness"]]],[10,[1,"dist","/","size"]]]]},externals:{aspectCenteredDelta:()=>Qa,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"geom.rotate2":()=>ln,"std.abs":()=>W,"std.max":()=>w,"std.mix":()=>Z}})&&e.f)({})),HV=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(t,s);return F(z(r,0,1),ve(r),s>1.0001)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"repeat"}],body:[0,[[13,"s",[1,"t","*","repeat"]],[10,[6,"std.select",[[6,"std.clamp",["s",[5,"0"],[5,"1"]]],[6,"std.fract",["s"]],[1,"repeat",">",[5,"1.0001"]]]]]]]},externals:{"std.select":()=>F,"std.clamp":()=>z,"std.fract":()=>ve}})&&e.f)({})),jV=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ve(__tsover_mul(t,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"repeat"}],body:[0,[[10,[6,"std.fract",[[1,"t","*","repeat"]]]]]]},externals:{"std.fract":()=>ve}})&&e.f)({})),iF=y.fn([u,u,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,Qe),d=Vt(s),l=__tsover_add(_p(Ja(t,d),J(i),O(i)),__tsover_mul(d,.5));return ve(__tsover_add(__tsover_mul(__tsover_mul(l,o),.2),n))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"},{type:"i",name:"scale"},{type:"i",name:"animTime"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"projectedCoord",[1,[6,"directionalProjection",[[6,"canvasCentredDelta",["uv","aspect"]],[6,"std.cos",["angleRad"]],[6,"std.sin",["angleRad"]]]],"+",[1,"aspect","*",[5,"0.5"]]]],[10,[6,"std.fract",[[1,[1,[1,"projectedCoord","*","scale"],"*",[5,"0.2"]],"+","animTime"]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"geom.aspectOf":()=>Vt,directionalProjection:()=>_p,canvasCentredDelta:()=>Ja,"std.cos":()=>J,"std.sin":()=>O,"std.fract":()=>ve}})&&e.f)({})),dF=y.fn([a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(t,6);return b(z(__tsover_sub(W(__tsover_sub(s,3)),1),0,1),z(__tsover_sub(2,W(__tsover_sub(s,2))),0,1),z(__tsover_sub(2,W(__tsover_sub(s,4))),0,1),1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"h6",[1,"t","*",[5,"6"]]],[13,"r",[6,"std.clamp",[[1,[6,"std.abs",[[1,"h6","-",[5,"3"]]]],"-",[5,"1"]],[5,"0"],[5,"1"]]]],[13,"g",[6,"std.clamp",[[1,[5,"2"],"-",[6,"std.abs",[[1,"h6","-",[5,"2"]]]]],[5,"0"],[5,"1"]]]],[13,"b",[6,"std.clamp",[[1,[5,"2"],"-",[6,"std.abs",[[1,"h6","-",[5,"4"]]]]],[5,"0"],[5,"1"]]]],[10,[6,"d.vec4f",["r","g","b",[5,"1"]]]]]]},externals:{"std.clamp":()=>z,"std.abs":()=>W,"d.vec4f":()=>b}})&&e.f)({})),lF=y.fn([a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(t,3);return u(ve(s),K(s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"t3",[1,"t","*",[5,"3"]]],[10,[6,"d.vec2f",[[6,"std.fract",["t3"]],[6,"std.floor",["t3"]]]]]]]},externals:{"d.vec2f":()=>u,"std.fract":()=>ve,"std.floor":()=>K}})&&e.f)({})),cF=y.fn([b,b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return Z(Z(r,s,ot(o,1.5)),t,ot(o,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"c01"},{type:"i",name:"c12"},{type:"i",name:"c20"},{type:"i",name:"floorT3"}],body:[0,[[13,"seg1",[6,"std.mix",["c20","c12",[6,"std.step",["floorT3",[5,"1.5"]]]]]],[10,[6,"std.mix",["seg1","c01",[6,"std.step",["floorT3",[5,"0.5"]]]]]]]]},externals:{"std.mix":()=>Z,"std.step":()=>ot}})&&e.f)({})),P2=y.fn([u,a,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_div(n.x,n.y),d=__tsover_sub(__tsover_mul(o.x,i),__tsover_mul(t.x,i)),l=__tsover_sub(o.y,__tsover_sub(1,t.y)),c=te(u(d,l)),_=__tsover_sub(bt(l,d),r);return __tsover_add(__tsover_mul(c,s),__tsover_div(_,_o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"scale"},{type:"i",name:"animTime"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"dx",[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,[7,"center","x"],"*","aspect"]]],[13,"dy",[1,[7,"uv","y"],"-",[1,[5,"1"],"-",[7,"center","y"]]]],[13,"l",[6,"std.length",[[6,"d.vec2f",["dx","dy"]]]]],[13,"angle",[1,[6,"std.atan2",["dy","dx"]],"-","animTime"]],[10,[1,[1,"l","*","scale"],"+",[1,"angle","/","TWO_PI"]]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u,"std.atan2":()=>bt,TWO_PI:()=>_o}})&&e.f)({})),uF=y.fn([u,a,a,a,a,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_div(l.x,l.y),_=te(u(__tsover_sub(__tsover_mul(d.x,c),__tsover_mul(t.x,c)),__tsover_sub(d.y,__tsover_sub(1,t.y)))),p=P2(t,s,i,d,l),f=ve(p),h=__tsover_mul(W(__tsover_sub(f,.5)),2),g=z(r,__tsover_mul(o,.005),1),x=__tsover_sub(1,__tsover_mul(z(o,0,1),_)),T=__tsover_mul(g,x),S=As(p),A=__tsover_sub(4,__tsover_mul(__tsover_mul(ce(.05,.4,__tsover_mul(r,2)),ce(.05,.4,__tsover_mul(__tsover_sub(1,r),2))),3)),E=Z(__tsover_mul(A,S),As(h),z(S,0,1));return ce(__tsover_sub(__tsover_sub(T,E),n),__tsover_add(__tsover_add(T,E),n),h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"scale"},{type:"i",name:"strokeWidth"},{type:"i",name:"strokeFalloff"},{type:"i",name:"softness"},{type:"i",name:"animTime"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"dx",[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,[7,"center","x"],"*","aspect"]]],[13,"dy",[1,[7,"uv","y"],"-",[1,[5,"1"],"-",[7,"center","y"]]]],[13,"l",[6,"std.length",[[6,"d.vec2f",["dx","dy"]]]]],[13,"offset",[6,"spiralOffset",["center","scale","animTime","uv","viewport"]]],[13,"stripe",[6,"std.fract",["offset"]]],[13,"shape",[1,[6,"std.abs",[[1,"stripe","-",[5,"0.5"]]]],"*",[5,"2"]]],[13,"baseWidth",[6,"std.clamp",["strokeWidth",[1,"strokeFalloff","*",[5,"0.005"]],[5,"1"]]]],[13,"falloffAmount",[1,[5,"1"],"-",[1,[6,"std.clamp",["strokeFalloff",[5,"0"],[5,"1"]]],"*","l"]]],[13,"width",[1,"baseWidth","*","falloffAmount"]],[13,"fw",[6,"std.fwidth",["offset"]]],[13,"fwMult",[1,[5,"4"],"-",[1,[1,[6,"std.smoothstep",[[5,"0.05"],[5,"0.4"],[1,"strokeWidth","*",[5,"2"]]]],"*",[6,"std.smoothstep",[[5,"0.05"],[5,"0.4"],[1,[1,[5,"1"],"-","strokeWidth"],"*",[5,"2"]]]]],"*",[5,"3"]]]],[13,"pixelSize",[6,"std.mix",[[1,"fwMult","*","fw"],[6,"std.fwidth",["shape"]],[6,"std.clamp",["fw",[5,"0"],[5,"1"]]]]]],[10,[6,"std.smoothstep",[[1,[1,"width","-","pixelSize"],"-","softness"],[1,[1,"width","+","pixelSize"],"+","softness"],"shape"]]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u,spiralOffset:()=>P2,"std.fract":()=>ve,"std.abs":()=>W,"std.clamp":()=>z,"std.fwidth":()=>As,"std.smoothstep":()=>ce,"std.mix":()=>Z}})&&e.f)({})),fd=y.fn([u,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_sub(t.x,s.x),n=__tsover_sub(t.y,s.y),i=__tsover_add($e(__tsover_add(__tsover_mul(o,o),__tsover_mul(n,n))),.001);return __tsover_div(1,Ye(i,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uvAspect"},{type:"i",name:"pos"},{type:"i",name:"effPower"}],body:[0,[[13,"dx",[1,[7,"uvAspect","x"],"-",[7,"pos","x"]]],[13,"dy",[1,[7,"uvAspect","y"],"-",[7,"pos","y"]]],[13,"dist",[1,[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]],"+",[5,"0.001"]]],[10,[1,[5,"1"],"/",[6,"std.pow",["dist","effPower"]]]]]]},externals:{"std.sqrt":()=>$e,"std.pow":()=>Ye}})&&e.f)({})),KV=y.fn([u,u,u,u,u,u,u,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=Vt(s),_=u(__tsover_mul(t.x,c),t.y),p=aa(r,c),f=aa(o,c),h=aa(n,c),g=aa(i,c),x=aa(d,c),T=ue(__tsover_div(8,__tsover_add(l,.5)),8),S=fd(_,p,T),A=fd(_,f,T),E=fd(_,h,T),M=fd(_,g,T),$=fd(_,x,T),L=S,B=__tsover_div(A,__tsover_add(L,A)),D=__tsover_add(L,A),G=__tsover_div(E,__tsover_add(D,E)),I=__tsover_add(D,E),X=__tsover_div(M,__tsover_add(I,M)),H=__tsover_add(I,M);return b(B,G,X,__tsover_div($,__tsover_add(H,$)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"vp"},{type:"i",name:"posA"},{type:"i",name:"posB"},{type:"i",name:"posC"},{type:"i",name:"posD"},{type:"i",name:"posE"},{type:"i",name:"smoothness"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["vp"]]],[13,"uvAspect",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pA",[6,"aspectCentrePosition",["posA","aspect"]]],[13,"pB",[6,"aspectCentrePosition",["posB","aspect"]]],[13,"pC",[6,"aspectCentrePosition",["posC","aspect"]]],[13,"pD",[6,"aspectCentrePosition",["posD","aspect"]]],[13,"pE",[6,"aspectCentrePosition",["posE","aspect"]]],[13,"effPower",[6,"std.min",[[1,[5,"8"],"/",[1,"smoothness","+",[5,"0.5"]]],[5,"8"]]]],[13,"wA",[6,"mpgWeight",["uvAspect","pA","effPower"]]],[13,"wB",[6,"mpgWeight",["uvAspect","pB","effPower"]]],[13,"wC",[6,"mpgWeight",["uvAspect","pC","effPower"]]],[13,"wD",[6,"mpgWeight",["uvAspect","pD","effPower"]]],[13,"wE",[6,"mpgWeight",["uvAspect","pE","effPower"]]],[13,"accW1","wA"],[13,"t1",[1,"wB","/",[1,"accW1","+","wB"]]],[13,"accW2",[1,"accW1","+","wB"]],[13,"t2",[1,"wC","/",[1,"accW2","+","wC"]]],[13,"accW3",[1,"accW2","+","wC"]],[13,"t3",[1,"wD","/",[1,"accW3","+","wD"]]],[13,"accW4",[1,"accW3","+","wD"]],[13,"t4",[1,"wE","/",[1,"accW4","+","wE"]]],[10,[6,"d.vec4f",["t1","t2","t3","t4"]]]]]},externals:{"geom.aspectOf":()=>Vt,"d.vec2f":()=>u,aspectCentrePosition:()=>aa,"std.min":()=>ue,mpgWeight:()=>fd,"d.vec4f":()=>b}})&&e.f)({})),ZV=y.fn([u,u,u,u,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=Vt(s),_=u(r.x,__tsover_sub(1,r.y)),p=u(o.x,__tsover_sub(1,o.y)),f=u(__tsover_mul(_.x,c),_.y),h=u(__tsover_mul(p.x,c),p.y),g=q3(u(__tsover_mul(t.x,c),t.y),f,h),x=X3(g.y,g.x,__tsover_mul(n,.25),__tsover_mul(i,.25),d,l),T=x.x,S=x.y;return u(T,S)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"vp"},{type:"i",name:"start"},{type:"i",name:"end"},{type:"i",name:"startThickness"},{type:"i",name:"endThickness"},{type:"i",name:"startSoftness"},{type:"i",name:"endSoftness"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["vp"]]],[13,"startPos",[6,"d.vec2f",[[7,"start","x"],[1,[5,"1"],"-",[7,"start","y"]]]]],[13,"endPos",[6,"d.vec2f",[[7,"end","x"],[1,[5,"1"],"-",[7,"end","y"]]]]],[13,"acStart",[6,"d.vec2f",[[1,[7,"startPos","x"],"*","aspect"],[7,"startPos","y"]]]],[13,"acEnd",[6,"d.vec2f",[[1,[7,"endPos","x"],"*","aspect"],[7,"endPos","y"]]]],[13,"acUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"proj",[6,"lightfields.pointToSegment",["acUV","acStart","acEnd"]]],[13,"field",[6,"lightfields.taperedSegmentGlow",[[7,"proj","y"],[7,"proj","x"],[1,"startThickness","*",[5,"0.25"]],[1,"endThickness","*",[5,"0.25"]],"startSoftness","endSoftness"]]],[13,"colorT",[7,"field","x"]],[13,"alpha",[7,"field","y"]],[10,[6,"d.vec2f",["colorT","alpha"]]]]]},externals:{"geom.aspectOf":()=>Vt,"d.vec2f":()=>u,"lightfields.pointToSegment":()=>q3,"lightfields.taperedSegmentGlow":()=>X3}})&&e.f)({})),_F=K7({domain:"unit",contrastMode:"multiplicative",invert:!0,glowGamma:!0,balance:"percentCentred"}),pF=y.fn([u,u,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Vt(s);return v(__tsover_mul(t.x,o),t.y,0).mul(Mt(__tsover_sub(r,1)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"base",[6,"d.vec3f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"],[5,"0"]]]],[10,[6,[7,"base","mul"],[[6,"std.exp",[[1,"scale","-",[5,"1"]]]]]]]]]},externals:{"geom.aspectOf":()=>Vt,"d.vec3f":()=>v,"std.exp":()=>Mt}})&&e.f)({})),mF=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(__tsover_mul(Po(t),.5),.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"}],body:[0,[[10,[1,[1,[6,"noise.mxNoiseFloat3",["pos"]],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]},externals:{"noise.mxNoiseFloat3":()=>Po}})&&e.f)({})),fF=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=r,n=s,i=u(__tsover_add(t.x,__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(t.y,__tsover_mul(n,1.7)),__tsover_mul(o,.8))),.12),__tsover_mul(J(__tsover_sub(__tsover_mul(t.x,__tsover_mul(n,.9)),__tsover_mul(o,.5))),.05))),__tsover_add(t.y,__tsover_add(__tsover_mul(J(__tsover_sub(__tsover_mul(t.x,__tsover_mul(n,1.3)),__tsover_mul(o,.6))),.12),__tsover_mul(O(__tsover_add(__tsover_mul(t.y,__tsover_mul(n,1.1)),__tsover_mul(o,.7))),.05)))),d=O(__tsover_add(__tsover_add(__tsover_mul(i.x,__tsover_mul(n,2.1)),__tsover_mul(i.y,__tsover_mul(n,1.8))),__tsover_mul(o,.4))),l=__tsover_mul(s,2.1),c=u(__tsover_add(i.x,__tsover_add(__tsover_mul(J(__tsover_sub(__tsover_mul(i.y,__tsover_mul(l,2.7)),__tsover_mul(o,.45))),.07),__tsover_mul(O(__tsover_add(__tsover_mul(i.x,__tsover_mul(l,1.9)),__tsover_mul(o,.6))),.04))),__tsover_add(i.y,__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(i.x,__tsover_mul(l,2.3)),__tsover_mul(o,.65))),.07),__tsover_mul(J(__tsover_sub(__tsover_mul(i.y,__tsover_mul(l,1.6)),__tsover_mul(o,.4))),.04)))),_=J(__tsover_add(__tsover_sub(__tsover_mul(c.x,__tsover_mul(l,1.4)),__tsover_mul(c.y,__tsover_mul(l,1.9))),__tsover_mul(o,.35))),p=__tsover_mul(s,3.7),f=u(__tsover_add(c.x,__tsover_add(__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(c.y,__tsover_mul(p,1.8)),__tsover_mul(o,.85))),.04),__tsover_mul(J(__tsover_sub(__tsover_mul(c.x,__tsover_mul(p,1.3)),__tsover_mul(o,.55))),.025)),__tsover_mul(O(__tsover_add(__tsover_mul(__tsover_add(c.x,c.y),__tsover_mul(p,.7)),__tsover_mul(o,.9))),.02))),__tsover_add(c.y,__tsover_add(__tsover_add(__tsover_mul(J(__tsover_sub(__tsover_mul(c.x,__tsover_mul(p,1.6)),__tsover_mul(o,.75))),.04),__tsover_mul(O(__tsover_add(__tsover_mul(c.y,__tsover_mul(p,1.1)),__tsover_mul(o,.5))),.025)),__tsover_mul(J(__tsover_sub(__tsover_mul(__tsover_add(c.x,c.y),__tsover_mul(p,.8)),__tsover_mul(o,.95))),.02)))),h=O(__tsover_sub(__tsover_add(__tsover_mul(f.x,__tsover_mul(p,1.1)),__tsover_mul(f.y,__tsover_mul(p,1.5))),__tsover_mul(o,.55)));return __tsover_add(__tsover_add(__tsover_mul(d,.45),__tsover_mul(_,.35)),__tsover_mul(h,.2))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"detail"},{type:"i",name:"animTime"}],body:[0,[[13,"t","animTime"],[13,"freq1","detail"],[13,"d1",[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,[1,[6,"std.sin",[[1,[1,[7,"uv","y"],"*",[1,"freq1","*",[5,"1.7"]]],"+",[1,"t","*",[5,"0.8"]]]]],"*",[5,"0.12"]],"+",[1,[6,"std.cos",[[1,[1,[7,"uv","x"],"*",[1,"freq1","*",[5,"0.9"]]],"-",[1,"t","*",[5,"0.5"]]]]],"*",[5,"0.05"]]]],[1,[7,"uv","y"],"+",[1,[1,[6,"std.cos",[[1,[1,[7,"uv","x"],"*",[1,"freq1","*",[5,"1.3"]]],"-",[1,"t","*",[5,"0.6"]]]]],"*",[5,"0.12"]],"+",[1,[6,"std.sin",[[1,[1,[7,"uv","y"],"*",[1,"freq1","*",[5,"1.1"]]],"+",[1,"t","*",[5,"0.7"]]]]],"*",[5,"0.05"]]]]]]],[13,"pattern1",[6,"std.sin",[[1,[1,[1,[7,"d1","x"],"*",[1,"freq1","*",[5,"2.1"]]],"+",[1,[7,"d1","y"],"*",[1,"freq1","*",[5,"1.8"]]]],"+",[1,"t","*",[5,"0.4"]]]]]],[13,"freq2",[1,"detail","*",[5,"2.1"]]],[13,"d2",[6,"d.vec2f",[[1,[7,"d1","x"],"+",[1,[1,[6,"std.cos",[[1,[1,[7,"d1","y"],"*",[1,"freq2","*",[5,"2.7"]]],"-",[1,"t","*",[5,"0.45"]]]]],"*",[5,"0.07"]],"+",[1,[6,"std.sin",[[1,[1,[7,"d1","x"],"*",[1,"freq2","*",[5,"1.9"]]],"+",[1,"t","*",[5,"0.6"]]]]],"*",[5,"0.04"]]]],[1,[7,"d1","y"],"+",[1,[1,[6,"std.sin",[[1,[1,[7,"d1","x"],"*",[1,"freq2","*",[5,"2.3"]]],"+",[1,"t","*",[5,"0.65"]]]]],"*",[5,"0.07"]],"+",[1,[6,"std.cos",[[1,[1,[7,"d1","y"],"*",[1,"freq2","*",[5,"1.6"]]],"-",[1,"t","*",[5,"0.4"]]]]],"*",[5,"0.04"]]]]]]],[13,"pattern2",[6,"std.cos",[[1,[1,[1,[7,"d2","x"],"*",[1,"freq2","*",[5,"1.4"]]],"-",[1,[7,"d2","y"],"*",[1,"freq2","*",[5,"1.9"]]]],"+",[1,"t","*",[5,"0.35"]]]]]],[13,"freq3",[1,"detail","*",[5,"3.7"]]],[13,"d3",[6,"d.vec2f",[[1,[7,"d2","x"],"+",[1,[1,[1,[6,"std.sin",[[1,[1,[7,"d2","y"],"*",[1,"freq3","*",[5,"1.8"]]],"+",[1,"t","*",[5,"0.85"]]]]],"*",[5,"0.04"]],"+",[1,[6,"std.cos",[[1,[1,[7,"d2","x"],"*",[1,"freq3","*",[5,"1.3"]]],"-",[1,"t","*",[5,"0.55"]]]]],"*",[5,"0.025"]]],"+",[1,[6,"std.sin",[[1,[1,[1,[7,"d2","x"],"+",[7,"d2","y"]],"*",[1,"freq3","*",[5,"0.7"]]],"+",[1,"t","*",[5,"0.9"]]]]],"*",[5,"0.02"]]]],[1,[7,"d2","y"],"+",[1,[1,[1,[6,"std.cos",[[1,[1,[7,"d2","x"],"*",[1,"freq3","*",[5,"1.6"]]],"-",[1,"t","*",[5,"0.75"]]]]],"*",[5,"0.04"]],"+",[1,[6,"std.sin",[[1,[1,[7,"d2","y"],"*",[1,"freq3","*",[5,"1.1"]]],"+",[1,"t","*",[5,"0.5"]]]]],"*",[5,"0.025"]]],"+",[1,[6,"std.cos",[[1,[1,[1,[7,"d2","x"],"+",[7,"d2","y"]],"*",[1,"freq3","*",[5,"0.8"]]],"-",[1,"t","*",[5,"0.95"]]]]],"*",[5,"0.02"]]]]]]],[13,"pattern3",[6,"std.sin",[[1,[1,[1,[7,"d3","x"],"*",[1,"freq3","*",[5,"1.1"]]],"+",[1,[7,"d3","y"],"*",[1,"freq3","*",[5,"1.5"]]]],"-",[1,"t","*",[5,"0.55"]]]]]],[10,[1,[1,[1,"pattern1","*",[5,"0.45"]],"+",[1,"pattern2","*",[5,"0.35"]]],"+",[1,"pattern3","*",[5,"0.2"]]]]]]},externals:{"d.vec2f":()=>u,"std.sin":()=>O,"std.cos":()=>J}})&&e.f)({})),vF=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return ce(r,o,__tsover_add(__tsover_add(__tsover_mul(t,.5),.5),s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pattern"},{type:"i",name:"bias"},{type:"i",name:"low"},{type:"i",name:"high"}],body:[0,[[13,"normalized",[1,[1,[1,"pattern","*",[5,"0.5"]],"+",[5,"0.5"]],"+","bias"]],[10,[6,"std.smoothstep",["low","high","normalized"]]]]]},externals:{"std.smoothstep":()=>ce}})&&e.f)({})),hF=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";return __tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(s,r),__tsover_mul(t,o))),n),1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pattern"},{type:"i",name:"animTime"},{type:"i",name:"speed"},{type:"i",name:"span"},{type:"i",name:"depth"}],body:[0,[[10,[1,[1,[6,"std.sin",[[1,[1,"animTime","*","speed"],"+",[1,"pattern","*","span"]]]],"*","depth"],"+",[5,"1"]]]]]},externals:{"std.sin":()=>O}})&&e.f)({})),Wl=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ms(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"noise.hash12",["p"]]]]]},externals:{"noise.hash12":()=>ms}})&&e.f)({})),mf=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=ve(t),o=Wl(s),n=Wl(u(__tsover_add(s.x,1),s.y)),i=Wl(u(s.x,__tsover_add(s.y,1))),d=Wl(u(__tsover_add(s.x,1),__tsover_add(s.y,1))),l=r.mul(r).mul(r.mul(-2).add(3));return Z(Z(o,n,l.x),Z(i,d,l.x),l.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"st"}],body:[0,[[13,"i",[6,"std.floor",["st"]]],[13,"f",[6,"std.fract",["st"]]],[13,"a",[6,"godraysHash",["i"]]],[13,"b",[6,"godraysHash",[[6,"d.vec2f",[[1,[7,"i","x"],"+",[5,"1"]],[7,"i","y"]]]]]],[13,"c",[6,"godraysHash",[[6,"d.vec2f",[[7,"i","x"],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[13,"e",[6,"godraysHash",[[6,"d.vec2f",[[1,[7,"i","x"],"+",[5,"1"]],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[13,"u",[6,[7,[6,[7,"f","mul"],["f"]],"mul"],[[6,[7,[6,[7,"f","mul"],[[4,"-",[5,"2"]]]],"add"],[[5,"3"]]]]]],[13,"x1",[6,"std.mix",["a","b",[7,"u","x"]]]],[13,"x2",[6,"std.mix",["c","e",[7,"u","x"]]]],[10,[6,"std.mix",["x1","x2",[7,"u","y"]]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,godraysHash:()=>Wl,"d.vec2f":()=>u,"std.mix":()=>Z}})&&e.f)({})),ff=y.fn([a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Ye(mf(u(__tsover_mul(t,n),o)),i);return Z(Ye(mf(u(__tsover_mul(s,n),o)),i),d,r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"a"},{type:"i",name:"aWrapped"},{type:"i",name:"blend"},{type:"i",name:"r"},{type:"i",name:"freq"},{type:"i",name:"intensity"}],body:[0,[[13,"nLeft",[6,"std.pow",[[6,"godraysValueNoise",[[6,"d.vec2f",[[1,"a","*","freq"],"r"]]]],"intensity"]]],[13,"nRight",[6,"std.pow",[[6,"godraysValueNoise",[[6,"d.vec2f",[[1,"aWrapped","*","freq"],"r"]]]],"intensity"]]],[10,[6,"std.mix",["nRight","nLeft","blend"]]]]]},externals:{"std.pow":()=>Ye,godraysValueNoise:()=>mf,"d.vec2f":()=>u,"std.mix":()=>Z}})&&e.f)({})),yF=y.fn([u,u,u],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Vt(s),n=u(r.x,__tsover_sub(1,r.y)),i=t.sub(n),d=u(__tsover_mul(i.x,o),i.y),l=N3(d);return b(l.x,l.y,l.z,te(d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"center"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"uv","sub"],["centerPos"]]],[13,"shapeUV",[6,"d.vec2f",[[1,[7,"delta","x"],"*","aspect"],[7,"delta","y"]]]],[13,"ang",[6,"lightfields.seamlessAngularField",["shapeUV"]]],[10,[6,"d.vec4f",[[7,"ang","x"],[7,"ang","y"],[7,"ang","z"],[6,"std.length",["shapeUV"]]]]]]]},externals:{"geom.aspectOf":()=>Vt,"d.vec2f":()=>u,"lightfields.seamlessAngularField":()=>N3,"d.vec4f":()=>b,"std.length":()=>te}})&&e.f)({})),vf=y.fn([b,a,a,a,a,b,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_sub(__tsover_mul(t.w,i.x),__tsover_mul(s,i.y)),c=__tsover_sub(__tsover_mul(__tsover_mul(t.w,i.z),__tsover_add(1,r)),__tsover_mul(s,i.w)),_=__tsover_mul(n,d.x),p=ff(t.x,t.y,t.z,l,_,o),f=ff(t.x,t.y,t.z,c,__tsover_mul(_,d.y),o);return __tsover_mul(p,f)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"frame"},{type:"i",name:"animTime"},{type:"i",name:"spots"},{type:"i",name:"intensityCalc"},{type:"i",name:"dens"},{type:"i",name:"sched"},{type:"i",name:"freqs"}],body:[0,[[13,"rA",[1,[1,[7,"frame","w"],"*",[7,"sched","x"]],"-",[1,"animTime","*",[7,"sched","y"]]]],[13,"rB",[1,[1,[1,[7,"frame","w"],"*",[7,"sched","z"]],"*",[1,[5,"1"],"+","spots"]],"-",[1,"animTime","*",[7,"sched","w"]]]],[13,"f",[1,"dens","*",[7,"freqs","x"]]],[13,"shapeA",[6,"godraysRaysShape",[[7,"frame","x"],[7,"frame","y"],[7,"frame","z"],"rA","f","intensityCalc"]]],[13,"shapeB",[6,"godraysRaysShape",[[7,"frame","x"],[7,"frame","y"],[7,"frame","z"],"rB",[1,"f","*",[7,"freqs","y"]],"intensityCalc"]]],[10,[1,"shapeA","*","shapeB"]]]]},externals:{godraysRaysShape:()=>ff}})&&e.f)({})),gF=y.fn([b,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(s,.2),d=__tsover_mul(6.5,W(n)),l=__tsover_sub(4,__tsover_mul(3,z(o,0,1))),c=__tsover_mul(6,r),_=vf(t,i,d,l,c,b(1,3,.5,2),u(5,4)),p=vf(t,i,d,l,c,b(1.4,2.5,.7,1.8),u(4.5,3.5));return z(__tsover_add(_,__tsover_mul(p,.7)),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"frame"},{type:"i",name:"animTimeRaw"},{type:"i",name:"density"},{type:"i",name:"intensity"},{type:"i",name:"spotty"}],body:[0,[[13,"animTime",[1,"animTimeRaw","*",[5,"0.2"]]],[13,"spots",[1,[5,"6.5"],"*",[6,"std.abs",["spotty"]]]],[13,"intensityCalc",[1,[5,"4"],"-",[1,[5,"3"],"*",[6,"std.clamp",["intensity",[5,"0"],[5,"1"]]]]]],[13,"dens",[1,[5,"6"],"*","density"]],[13,"layer1",[6,"godraysRayLayer",["frame","animTime","spots","intensityCalc","dens",[6,"d.vec4f",[[5,"1"],[5,"3"],[5,"0.5"],[5,"2"]]],[6,"d.vec2f",[[5,"5"],[5,"4"]]]]]],[13,"layer2",[6,"godraysRayLayer",["frame","animTime","spots","intensityCalc","dens",[6,"d.vec4f",[[5,"1.4"],[5,"2.5"],[5,"0.7"],[5,"1.8"]]],[6,"d.vec2f",[[5,"4.5"],[5,"3.5"]]]]]],[10,[6,"std.clamp",[[1,"layer1","+",[1,"layer2","*",[5,"0.7"]]],[5,"0"],[5,"1"]]]]]]},externals:{"std.abs":()=>W,"std.clamp":()=>z,godraysRayLayer:()=>vf,"d.vec4f":()=>b,"d.vec2f":()=>u}})&&e.f)({})),xF=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(r,t.w),n=__tsover_add(o,__tsover_mul(s.w,__tsover_sub(1,o))),i=z(n,.001,1),d=t.xyz.mul(o),l=s.xyz.mul(s.w).mul(__tsover_sub(1,o));return b(d.add(l).div(i),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rayColor"},{type:"i",name:"bgColor"},{type:"i",name:"coverage"}],body:[0,[[13,"rayA",[1,"coverage","*",[7,"rayColor","w"]]],[13,"finalAlpha",[1,"rayA","+",[1,[7,"bgColor","w"],"*",[1,[5,"1"],"-","rayA"]]]],[13,"safeAlpha",[6,"std.clamp",["finalAlpha",[5,"0.001"],[5,"1"]]]],[13,"rayContribution",[6,[7,[7,"rayColor","xyz"],"mul"],["rayA"]]],[13,"bgContribution",[6,[7,[6,[7,[7,"bgColor","xyz"],"mul"],[[7,"bgColor","w"]]],"mul"],[[1,[5,"1"],"-","rayA"]]]],[13,"finalColor",[6,[7,[6,[7,"rayContribution","add"],["bgContribution"]],"div"],["safeAlpha"]]],[10,[6,"d.vec4f",["finalColor","finalAlpha"]]]]]},externals:{"std.clamp":()=>z,"d.vec4f":()=>b}})&&e.f)({})),QV=y.fn([a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=uo(u(__tsover_mul(t,.9),__tsover_add(__tsover_mul(s,.53),11.7))),n=uo(u(__tsover_add(__tsover_mul(t,2.7),41.3),__tsover_add(__tsover_mul(s,.29),5.1))),i=__tsover_add(__tsover_mul(o,.65),__tsover_mul(n,.35));return b(Z(1,__tsover_add(.25,__tsover_mul(1.5,i)),r),uo(u(__tsover_add(__tsover_mul(t,.13),3.1),__tsover_add(__tsover_mul(s,.41),27))),uo(u(__tsover_add(__tsover_mul(t,.09),17.7),__tsover_add(__tsover_mul(s,.61),8.4))),uo(u(__tsover_add(__tsover_mul(t,.17),51.2),__tsover_add(__tsover_mul(s,.23),2.9))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"seed"},{type:"i",name:"flicker"}],body:[0,[[13,"nA",[6,"noise.value12",[[6,"d.vec2f",[[1,"t","*",[5,"0.9"]],[1,[1,"seed","*",[5,"0.53"]],"+",[5,"11.7"]]]]]]],[13,"nB",[6,"noise.value12",[[6,"d.vec2f",[[1,[1,"t","*",[5,"2.7"]],"+",[5,"41.3"]],[1,[1,"seed","*",[5,"0.29"]],"+",[5,"5.1"]]]]]]],[13,"breathe",[1,[1,"nA","*",[5,"0.65"]],"+",[1,"nB","*",[5,"0.35"]]]],[13,"flickerMod",[6,"std.mix",[[5,"1"],[1,[5,"0.25"],"+",[1,[5,"1.5"],"*","breathe"]],"flicker"]]],[13,"evo1",[6,"noise.value12",[[6,"d.vec2f",[[1,[1,"t","*",[5,"0.13"]],"+",[5,"3.1"]],[1,[1,"seed","*",[5,"0.41"]],"+",[5,"27"]]]]]]],[13,"evo2",[6,"noise.value12",[[6,"d.vec2f",[[1,[1,"t","*",[5,"0.09"]],"+",[5,"17.7"]],[1,[1,"seed","*",[5,"0.61"]],"+",[5,"8.4"]]]]]]],[13,"evo3",[6,"noise.value12",[[6,"d.vec2f",[[1,[1,"t","*",[5,"0.17"]],"+",[5,"51.2"]],[1,[1,"seed","*",[5,"0.23"]],"+",[5,"2.9"]]]]]]],[10,[6,"d.vec4f",["flickerMod","evo1","evo2","evo3"]]]]]},externals:{"noise.value12":()=>uo,"d.vec2f":()=>u,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})),JV=y.fn([a,a,a,b],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=o.z,i=w(r,.05),d=__tsover_mul(i,__tsover_add(1.5,__tsover_mul(.7,n))),l=__tsover_div(t,i),c=__tsover_div(s,d);return u(ef(l,c,1.9),__tsover_mul(ef(l,c,.45),.22))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"u"},{type:"i",name:"v"},{type:"i",name:"spread"},{type:"i",name:"drift"}],body:[0,[[13,"evo2",[7,"drift","z"]],[13,"sp",[6,"std.max",["spread",[5,"0.05"]]]],[13,"elong",[1,"sp","*",[1,[5,"1.5"],"+",[1,[5,"0.7"],"*","evo2"]]]],[13,"du",[1,"u","/","sp"]],[13,"dv",[1,"v","/","elong"]],[13,"main",[6,"lightfields.anisotropicGaussianSpot",["du","dv",[5,"1.9"]]]],[13,"shoulder",[1,[6,"lightfields.anisotropicGaussianSpot",["du","dv",[5,"0.45"]]],"*",[5,"0.22"]]],[10,[6,"d.vec2f",["main","shoulder"]]]]]},externals:{"std.max":()=>w,"lightfields.anisotropicGaussianSpot":()=>ef,"d.vec2f":()=>u}})&&e.f)({})),e9=y.fn([a,a,a,a,b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=n.y,d=n.z,l=n.w,c=w(r,.05),_=__tsover_mul(c,__tsover_add(1.5,__tsover_mul(.7,d))),p=__tsover_div(s,_),f=Mt(__tsover_mul(__tsover_mul(p,p),-.55)),h=__tsover_mul(c,__tsover_add(.42,__tsover_mul(.22,i))),g=w(__tsover_mul(c,__tsover_add(.07,__tsover_mul(.07,l))),.008),x=__tsover_mul(sf(t,h,g),f),T=__tsover_mul(c,__tsover_add(.8,__tsover_mul(.3,i))),S=w(__tsover_mul(c,__tsover_add(.16,__tsover_mul(.12,l))),.015),A=__tsover_mul(__tsover_mul(sf(t,T,S),f),.45);return __tsover_mul(__tsover_add(x,A),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"u"},{type:"i",name:"v"},{type:"i",name:"spread"},{type:"i",name:"streaks"},{type:"i",name:"drift"}],body:[0,[[13,"evo1",[7,"drift","y"]],[13,"evo2",[7,"drift","z"]],[13,"evo3",[7,"drift","w"]],[13,"sp",[6,"std.max",["spread",[5,"0.05"]]]],[13,"elong",[1,"sp","*",[1,[5,"1.5"],"+",[1,[5,"0.7"],"*","evo2"]]]],[13,"dv",[1,"v","/","elong"]],[13,"alongFade",[6,"std.exp",[[1,[1,"dv","*","dv"],"*",[4,"-",[5,"0.55"]]]]]],[13,"s1c",[1,"sp","*",[1,[5,"0.42"],"+",[1,[5,"0.22"],"*","evo1"]]]],[13,"s1w",[6,"std.max",[[1,"sp","*",[1,[5,"0.07"],"+",[1,[5,"0.07"],"*","evo3"]]],[5,"0.008"]]]],[13,"streak1",[1,[6,"lightfields.streakBand",["u","s1c","s1w"]],"*","alongFade"]],[13,"s2c",[1,"sp","*",[1,[5,"0.8"],"+",[1,[5,"0.3"],"*","evo1"]]]],[13,"s2w",[6,"std.max",[[1,"sp","*",[1,[5,"0.16"],"+",[1,[5,"0.12"],"*","evo3"]]],[5,"0.015"]]]],[13,"streak2",[1,[1,[6,"lightfields.streakBand",["u","s2c","s2w"]],"*","alongFade"],"*",[5,"0.45"]]],[10,[1,[1,"streak1","+","streak2"],"*","streaks"]]]]},externals:{"std.max":()=>w,"std.exp":()=>Mt,"lightfields.streakBand":()=>sf}})&&e.f)({})),t9=y.fn([a,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return w(__tsover_add(t,__tsover_mul(__tsover_sub(ms(s.mul(1024).add(u(r,__tsover_mul(r,1.7)))),.5),.012)),0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"heat"},{type:"i",name:"uv"},{type:"i",name:"t"}],body:[0,[[13,"dithered",[1,"heat","+",[1,[1,[6,"noise.hash12",[[6,[7,[6,[7,"uv","mul"],[[5,"1024"]]],"add"],[[6,"d.vec2f",["t",[1,"t","*",[5,"1.7"]]]]]]]],"-",[5,"0.5"]],"*",[5,"0.012"]]]],[10,[6,"std.max",["dithered",[5,"0"]]]]]]},externals:{"noise.hash12":()=>ms,"d.vec2f":()=>u,"std.max":()=>w}})&&e.f)({})),bF=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(t,s),o=__tsover_mul(ve(__tsover_mul(r,.5)),2);return Z(__tsover_sub(1,W(__tsover_sub(o,1))),.5,ce(.5,1.5,__tsover_mul(hp(t,0),s)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"cycles"}],body:[0,[[13,"s",[1,"t","*","cycles"]],[13,"m",[1,[6,"std.fract",[[1,"s","*",[5,"0.5"]]]],"*",[5,"2"]]],[13,"band",[1,[5,"1"],"-",[6,"std.abs",[[1,"m","-",[5,"1"]]]]]],[13,"fp",[1,[6,"footprint1",["t",[5,"0"]]],"*","cycles"]],[10,[6,"std.mix",["band",[5,"0.5"],[6,"std.smoothstep",[[5,"0.5"],[5,"1.5"],"fp"]]]]]]]},externals:{"std.fract":()=>ve,"std.abs":()=>W,footprint1:()=>hp,"std.mix":()=>Z,"std.smoothstep":()=>ce}})&&e.f)({}));function uT(e,t){return{guarded:e,with(s){return uT(e.with(s),t)},dispatch(){if(!t)throw new Error("[gpu] KitComputePipeline.dispatch(): no pre-bound size \u2014 pass opts.size to createGuardedCompute or call dispatchThreads(...) directly");e.dispatchThreads(...t)},dispatchThreads(...s){e.dispatchThreads(...s)}}}function wv(e,t,s={}){let r=(globalThis.__TYPEGPU_AUTONAME__??(o=>o))(e.createGuardedComputePipeline(t),"guarded");return s.bindGroup&&(r=r.with(s.bindGroup)),uT(r,s.size)}function _T(e){return{dispatch(t){for(let s of t)typeof s=="function"?s():s.dispatch()}}}function wF(e,t){let s=!1;return{a:e,b:t,orientation:()=>s?1:0,readSource:()=>s?t:e,writeTarget:()=>s?e:t,swap(){s=!s},reset(){s=!1},groups(n){let i=n(e,t),d=n(t,e);return()=>s?d:i},perSide(n){let i=n(e),d=n(t);return{read:()=>s?d:i,written:()=>s?i:d}}}}function M2(e,t,s){return(globalThis.__TYPEGPU_AUTONAME__??(r=>r))(e.createBuffer(zt(t,s)),"buffer").$usage("storage")}var kp=Qe;function TF(e,t){let s=Number((t*t).toPrecision(15)),r=e-1,o=Array.from({length:e},(i,d)=>{let l=(d/r-.5)*2;return Math.exp(-.5*l*l/s)}),n=o.reduce((i,d)=>i+d);return o.map(i=>i/n)}var s9=y.fn([a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=w(__tsover_sub(r,s),1e-4);return Z(o,n,Ye(z(__tsover_div(__tsover_sub(t,s),d),0,1),Ye(2,__tsover_mul(-i,2))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"raw"},{type:"i",name:"inputMin"},{type:"i",name:"inputMax"},{type:"i",name:"outputMin"},{type:"i",name:"outputMax"},{type:"i",name:"curve"}],body:[0,[[13,"inputRange",[6,"std.max",[[1,"inputMax","-","inputMin"],[5,"0.0001"]]]],[13,"normalised",[6,"std.clamp",[[1,[1,"raw","-","inputMin"],"/","inputRange"],[5,"0"],[5,"1"]]]],[13,"exponent",[6,"std.pow",[[5,"2"],[1,[4,"-","curve"],"*",[5,"2"]]]]],[13,"eased",[6,"std.pow",["normalised","exponent"]]],[10,[6,"std.mix",["outputMin","outputMax","eased"]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,"std.pow":()=>Ye,"std.mix":()=>Z}})&&e.f)({})).$name("applyRemapWindow");var r9=y.fn([Hs(a),Y,Y,u,u,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=o.x,l=o.y,c=oe(__tsover_sub(d,1)),_=oe(__tsover_sub(l,1)),p=b(0,0,0,0);for(let S=0;S<4;S++)for(let A=0;A<4;A++){let E=__tsover_div(__tsover_add(a(s),__tsover_div(__tsover_add(a(A),.5),4)),n.x),M=__tsover_div(__tsover_add(a(r),__tsover_div(__tsover_add(a(S),.5),4)),n.y),$=z(oe(__tsover_mul(E,d)),0,c),L=z(oe(__tsover_mul(M,l)),0,_);p=p.add(at(t,He(Y($),Y(L)),0))}p=p.mul(.0625);let f=__tsover_add(__tsover_mul(i,.5),1e-4),h=le(p.xyz,v(.2126,.7152,.0722)),g=z(__tsover_add(__tsover_sub(h,i),f),0,__tsover_mul(f,2)),x=__tsover_div(__tsover_mul(g,g),__tsover_mul(f,4)),T=__tsover_div(w(x,__tsover_sub(h,i)),w(h,1e-4));return b(p.xyz.mul(T),__tsover_mul(p.w,T))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"childTexture"},{type:"i",name:"cx"},{type:"i",name:"cy"},{type:"i",name:"inputSize"},{type:"i",name:"computeSize"},{type:"i",name:"threshold"}],body:[0,[[13,"iw",[7,"inputSize","x"]],[13,"ih",[7,"inputSize","y"]],[13,"inputWm1",[6,"d.i32",[[1,"iw","-",[5,"1"]]]]],[13,"inputHm1",[6,"d.i32",[[1,"ih","-",[5,"1"]]]]],[12,"sample",[6,"d.vec4f",[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[14,[12,"ty",[5,"0"]],[1,"ty","<",[5,"4"]],[102,"++","ty"],[0,[[14,[12,"tx",[5,"0"]],[1,"tx","<",[5,"4"]],[102,"++","tx"],[0,[[13,"su",[1,[1,[6,"d.f32",["cx"]],"+",[1,[1,[6,"d.f32",["tx"]],"+",[5,"0.5"]],"/",[5,"4"]]],"/",[7,"computeSize","x"]]],[13,"sv",[1,[1,[6,"d.f32",["cy"]],"+",[1,[1,[6,"d.f32",["ty"]],"+",[5,"0.5"]],"/",[5,"4"]]],"/",[7,"computeSize","y"]]],[13,"sx",[6,"std.clamp",[[6,"d.i32",[[1,"su","*","iw"]]],[5,"0"],"inputWm1"]]],[13,"sy",[6,"std.clamp",[[6,"d.i32",[[1,"sv","*","ih"]]],[5,"0"],"inputHm1"]]],[2,"sample","=",[6,[7,"sample","add"],[[6,"std.textureLoad",["childTexture",[6,"d.vec2u",[[6,"d.u32",["sx"]],[6,"d.u32",["sy"]]]],[5,"0"]]]]]]]]]]]],[2,"sample","=",[6,[7,"sample","mul"],[[5,"0.0625"]]]],[13,"knee",[1,[1,"threshold","*",[5,"0.5"]],"+",[5,"0.0001"]]],[13,"lum",[6,"std.dot",[[7,"sample","xyz"],[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"soft",[6,"std.clamp",[[1,[1,"lum","-","threshold"],"+","knee"],[5,"0"],[1,"knee","*",[5,"2"]]]]],[13,"softCurve",[1,[1,"soft","*","soft"],"/",[1,"knee","*",[5,"4"]]]],[13,"mask",[1,[6,"std.max",["softCurve",[1,"lum","-","threshold"]]],"/",[6,"std.max",["lum",[5,"0.0001"]]]]],[10,[6,"d.vec4f",[[6,[7,[7,"sample","xyz"],"mul"],["mask"]],[1,[7,"sample","w"],"*","mask"]]]]]]},externals:{"d.i32":()=>oe,"d.vec4f":()=>b,"d.f32":()=>a,"std.clamp":()=>z,"std.textureLoad":()=>at,"d.vec2u":()=>He,"d.u32":()=>Y,"std.dot":()=>le,"d.vec3f":()=>v,"std.max":()=>w}})&&e.f)({})).$name("bloomExtractSoftKnee");var o9=y.fn([b,b,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,.1),d=__tsover_mul(o,.1),l=__tsover_mul(n,.1),c=w(w(w(i,d),l),.01),_=__tsover_div(i,c),p=__tsover_div(d,c),f=__tsover_div(l,c);return b(Z(t.x,s.x,_),Z(t.y,s.y,p),Z(t.z,s.z,f),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sharp"},{type:"i",name:"blurred"},{type:"i",name:"redIntensity"},{type:"i",name:"greenIntensity"},{type:"i",name:"blueIntensity"}],body:[0,[[13,"redRadius",[1,"redIntensity","*",[5,"0.1"]]],[13,"greenRadius",[1,"greenIntensity","*",[5,"0.1"]]],[13,"blueRadius",[1,"blueIntensity","*",[5,"0.1"]]],[13,"maxRadius",[6,"std.max",[[6,"std.max",[[6,"std.max",["redRadius","greenRadius"]],"blueRadius"]],[5,"0.01"]]]],[13,"rMix",[1,"redRadius","/","maxRadius"]],[13,"gMix",[1,"greenRadius","/","maxRadius"]],[13,"bMix",[1,"blueRadius","/","maxRadius"]],[13,"finalR",[6,"std.mix",[[7,"sharp","x"],[7,"blurred","x"],"rMix"]]],[13,"finalG",[6,"std.mix",[[7,"sharp","y"],[7,"blurred","y"],"gMix"]]],[13,"finalB",[6,"std.mix",[[7,"sharp","z"],[7,"blurred","z"],"bMix"]]],[10,[6,"d.vec4f",["finalR","finalG","finalB",[7,"sharp","w"]]]]]]},externals:{"std.max":()=>w,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})).$name("channelBlurCompose"),n9=y.fn([a,a,a,a,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_mul(t,kp),l=u(__tsover_div(J(d),i),O(d)),c=u(s,__tsover_sub(1,r));return ce(0,o,w(0,le(n.sub(c),l)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"angleDeg"},{type:"i",name:"centerX"},{type:"i",name:"centerY"},{type:"i",name:"falloff"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"direction",[6,"d.vec2f",[[1,[6,"std.cos",["angleRad"]],"/","aspect"],[6,"std.sin",["angleRad"]]]]],[13,"centerPos",[6,"d.vec2f",["centerX",[1,[5,"1"],"-","centerY"]]]],[13,"centeredUV",[6,[7,"uv","sub"],["centerPos"]]],[13,"directionalDist",[6,"std.max",[[5,"0"],[6,"std.dot",["centeredUV","direction"]]]]],[10,[6,"std.smoothstep",[[5,"0"],"falloff","directionalDist"]]]]]},externals:{DEG_TO_RAD:()=>kp,"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O,"std.max":()=>w,"std.dot":()=>le,"std.smoothstep":()=>ce}})&&e.f)({})).$name("progressiveBlurAmount");var a9=y.fn([a,u,a,a,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_mul(t,kp),l=u(__tsover_mul(O(d),-1),J(d)),c=u(s.x,__tsover_sub(1,s.y)),_=n.sub(c),p=W(le(u(__tsover_mul(_.x,i),_.y),l)),f=__tsover_mul(r,.5);return ce(f,__tsover_add(f,o),p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"angleDeg"},{type:"i",name:"center"},{type:"i",name:"width"},{type:"i",name:"falloff"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"perpVector",[6,"d.vec2f",[[1,[6,"std.sin",["angleRad"]],"*",[4,"-",[5,"1"]]],[6,"std.cos",["angleRad"]]]]],[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"centeredUV",[6,[7,"uv","sub"],["centerPos"]]],[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]]],[13,"distFromLine",[6,"std.abs",[[6,"std.dot",["aspectCorrectedUV","perpVector"]]]]],[13,"focusWidth",[1,"width","*",[5,"0.5"]]],[10,[6,"std.smoothstep",["focusWidth",[1,"focusWidth","+","falloff"],"distFromLine"]]]]]},externals:{DEG_TO_RAD:()=>kp,"d.vec2f":()=>u,"std.sin":()=>O,"std.cos":()=>J,"std.abs":()=>W,"std.dot":()=>le,"std.smoothstep":()=>ce}})&&e.f)({})).$name("tiltShiftBlurAmount");var i9=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=t.xyz.add(s.xyz.mul(r)),n=z(__tsover_mul(s.w,r),0,1);return b(o,__tsover_add(t.w,__tsover_mul(n,__tsover_sub(1,t.w))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"original"},{type:"i",name:"bloom"},{type:"i",name:"intensity"}],body:[0,[[13,"finalColor",[6,[7,[7,"original","xyz"],"add"],[[6,[7,[7,"bloom","xyz"],"mul"],["intensity"]]]]],[13,"glowAlpha",[6,"std.clamp",[[1,[7,"bloom","w"],"*","intensity"],[5,"0"],[5,"1"]]]],[13,"finalAlpha",[1,[7,"original","w"],"+",[1,"glowAlpha","*",[1,[5,"1"],"-",[7,"original","w"]]]]],[10,[6,"d.vec4f",["finalColor","finalAlpha"]]]]]},externals:{"std.clamp":()=>z,"d.vec4f":()=>b}})&&e.f)({})).$name("glowCompose");var d9=Math.PI*(3-Math.sqrt(5)),l9=Math.PI*2;var k2=.35;var c9=Math.SQRT2/4;var u9=y.fn([b,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=le(t.xyz,v(.2126,.7152,.0722)),i=ce(s,__tsover_add(s,k2),n);return __tsover_mul(__tsover_add(1,__tsover_mul(__tsover_mul(r,i),i)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"threshold"},{type:"i",name:"gain"},{type:"i",name:"rim"}],body:[0,[[13,"lum",[6,"std.dot",[[7,"base","xyz"],[6,"d.vec3f",[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"hi",[6,"std.smoothstep",["threshold",[1,"threshold","+","HIGHLIGHT_KNEE"],"lum"]]],[10,[1,[1,[5,"1"],"+",[1,[1,"gain","*","hi"],"*","hi"]],"*","rim"]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"std.smoothstep":()=>ce,HIGHLIGHT_KNEE:()=>k2}})&&e.f)({})).$name("bokehHighlightWeight");var Nd=Qe,_9=TF(32,.8),p9=y.fn([u,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(s,Nd),d=__tsover_div(o.x,o.y),l=__tsover_div(J(i),d),c=O(i),_=__tsover_mul(__tsover_div(__tsover_mul(l,r),o.x),2),p=__tsover_mul(__tsover_div(__tsover_mul(c,r),o.y),2);return u(__tsover_add(t.x,__tsover_mul(_,n)),__tsover_add(t.y,__tsover_mul(p,n)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"angleDeg"},{type:"i",name:"intensity"},{type:"i",name:"viewport"},{type:"i",name:"tapT"}],body:[0,[[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"dirX",[1,[6,"std.cos",["angleRad"]],"/","aspect"]],[13,"dirY",[6,"std.sin",["angleRad"]]],[13,"bvX",[1,[1,[1,"dirX","*","intensity"],"/",[7,"viewport","x"]],"*",[5,"2"]]],[13,"bvY",[1,[1,[1,"dirY","*","intensity"],"/",[7,"viewport","y"]],"*",[5,"2"]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,"bvX","*","tapT"]],[1,[7,"uv","y"],"+",[1,"bvY","*","tapT"]]]]]]]},externals:{DEG_TO_RAD:()=>Nd,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),m9=y.fn([u,a,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(t.x,__tsover_sub(1,t.y)),d=__tsover_div(__tsover_mul(s,.005),31),l=__tsover_mul(__tsover_sub(n,15.5),d),c=J(l),_=O(l),p=__tsover_sub(r.x,i.x),f=__tsover_sub(r.y,i.y),h=__tsover_mul(p,o),g=f,x=__tsover_sub(__tsover_mul(h,c),__tsover_mul(g,_)),T=__tsover_add(__tsover_mul(h,_),__tsover_mul(g,c));return u(__tsover_add(__tsover_div(x,o),i.x),__tsover_add(T,i.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"intensity"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"tapIndex"}],body:[0,[[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"angleStep",[1,[1,"intensity","*",[5,"0.005"]],"/",[5,"31"]]],[13,"angle",[1,[1,"tapIndex","-",[5,"15.5"]],"*","angleStep"]],[13,"cosA",[6,"std.cos",["angle"]]],[13,"sinA",[6,"std.sin",["angle"]]],[13,"initX",[1,[7,"uv","x"],"-",[7,"centerPos","x"]]],[13,"initY",[1,[7,"uv","y"],"-",[7,"centerPos","y"]]],[13,"acX",[1,"initX","*","aspect"]],[13,"acY","initY"],[13,"rotX",[1,[1,"acX","*","cosA"],"-",[1,"acY","*","sinA"]]],[13,"rotY",[1,[1,"acX","*","sinA"],"+",[1,"acY","*","cosA"]]],[10,[6,"d.vec2f",[[1,[1,"rotX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rotY","+",[7,"centerPos","y"]]]]]]]},externals:{"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),f9=y.fn([u,a,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(t.x,__tsover_sub(1,t.y)),d=__tsover_mul(s,.01),l=__tsover_add(1,__tsover_mul(d,__tsover_div(n,31))),c=__tsover_sub(r.x,i.x),_=__tsover_sub(r.y,i.y),p=__tsover_mul(c,o),f=_,h=__tsover_div(p,l),g=__tsover_div(f,l);return u(__tsover_add(__tsover_div(h,o),i.x),__tsover_add(g,i.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"intensity"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"tapIndex"}],body:[0,[[13,"centerPos",[6,"d.vec2f",[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"radius",[1,"intensity","*",[5,"0.01"]]],[13,"scale",[1,[5,"1"],"+",[1,"radius","*",[1,"tapIndex","/",[5,"31"]]]]],[13,"deltaX",[1,[7,"uv","x"],"-",[7,"centerPos","x"]]],[13,"deltaY",[1,[7,"uv","y"],"-",[7,"centerPos","y"]]],[13,"acdX",[1,"deltaX","*","aspect"]],[13,"acdY","deltaY"],[13,"scaledDeltaX",[1,"acdX","/","scale"]],[13,"scaledDeltaY",[1,"acdY","/","scale"]],[10,[6,"d.vec2f",[[1,[1,"scaledDeltaX","/","aspect"],"+",[7,"centerPos","x"]],[1,"scaledDeltaY","+",[7,"centerPos","y"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({}));var v9=y.fn([u,a,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Dr(t.mul(1e3)).mul(2).sub(u(1,1)).mul(s).div(r);return t.add(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"intensity"},{type:"i",name:"viewport"}],body:[0,[[13,"seed",[6,[7,"uv","mul"],[[5,"1000"]]]],[13,"randVec",[6,"noise.hash22",["seed"]]],[13,"offset",[6,[7,[6,[7,[6,[7,[6,[7,"randVec","mul"],[[5,"2"]]],"sub"],[[6,"d.vec2f",[[5,"1"],[5,"1"]]]]],"mul"],["intensity"]],"div"],["viewport"]]],[10,[6,[7,"uv","add"],["offset"]]]]]},externals:{"noise.hash22":()=>Dr,"d.vec2f":()=>u}})&&e.f)({}));var SF=[.056,.135,.278,.487,.726,.923,1,.923,.726,.487,.278,.135,.056],AF=6.214,h9=SF.map(e=>e/AF);var y9=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(r,Nd),i=__tsover_mul(o,.2),d=__tsover_div(s.x,s.y),l=__tsover_div(__tsover_mul(O(n),i),d),c=__tsover_mul(__tsover_mul(J(n),-1),i);return u(__tsover_sub(t.x,l),__tsover_sub(t.y,c))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"},{type:"i",name:"distance"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"dist",[1,"distance","*",[5,"0.2"]]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"ox",[1,[1,[6,"std.sin",["angleRad"]],"*","dist"],"/","aspect"]],[13,"oy",[1,[1,[6,"std.cos",["angleRad"]],"*",[4,"-",[5,"1"]]],"*","dist"]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"-","ox"],[1,[7,"uv","y"],"-","oy"]]]]]]},externals:{DEG_TO_RAD:()=>Nd,"std.sin":()=>O,"std.cos":()=>J,"d.vec2f":()=>u}})&&e.f)({})),g9=y.fn([u,u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";return u(__tsover_add(t.x,__tsover_div(__tsover_mul(o,r),s.x)),__tsover_add(t.y,__tsover_div(__tsover_mul(n,r),s.y)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"blurRadius"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,[1,"ox","*","blurRadius"],"/",[7,"viewport","x"]]],[1,[7,"uv","y"],"+",[1,[1,"oy","*","blurRadius"],"/",[7,"viewport","y"]]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),x9=y.fn([b,b,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=v(s.x,s.y,s.z),i=__tsover_mul(s.w,r),d=z(__tsover_sub(i,t.w),0,1),l=n.mul(s.w).mul(d),c=n.mul(s.w).mul(r),_=__tsover_sub(1,t.w),p=v(t.x,t.y,t.z).add(c.mul(_)),f=w(__tsover_add(t.w,__tsover_mul(i,_)),t.w),h=o>.5,g=F(p,l,h),x=F(f,d,h);return b(g.x,g.y,g.z,x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"originalColor"},{type:"i",name:"shadowColor"},{type:"i",name:"shadowAlpha"},{type:"i",name:"cutout"}],body:[0,[[13,"shadowRgb",[6,"d.vec3f",[[7,"shadowColor","x"],[7,"shadowColor","y"],[7,"shadowColor","z"]]]],[13,"shadowA",[1,[7,"shadowColor","w"],"*","shadowAlpha"]],[13,"cutoutA",[6,"std.clamp",[[1,"shadowA","-",[7,"originalColor","w"]],[5,"0"],[5,"1"]]]],[13,"cutoutRgb",[6,[7,[6,[7,"shadowRgb","mul"],[[7,"shadowColor","w"]]],"mul"],["cutoutA"]]],[13,"shadowPremulRgb",[6,[7,[6,[7,"shadowRgb","mul"],[[7,"shadowColor","w"]]],"mul"],["shadowAlpha"]]],[13,"oneMinusOrigA",[1,[5,"1"],"-",[7,"originalColor","w"]]],[13,"normalRgb",[6,[7,[6,"d.vec3f",[[7,"originalColor","x"],[7,"originalColor","y"],[7,"originalColor","z"]]],"add"],[[6,[7,"shadowPremulRgb","mul"],["oneMinusOrigA"]]]]],[13,"normalA",[6,"std.max",[[1,[7,"originalColor","w"],"+",[1,"shadowA","*","oneMinusOrigA"]],[7,"originalColor","w"]]]],[13,"useCut",[1,"cutout",">",[5,"0.5"]]],[13,"rgb",[6,"std.select",["normalRgb","cutoutRgb","useCut"]]],[13,"a",[6,"std.select",["normalA","cutoutA","useCut"]]],[10,[6,"d.vec4f",[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"a"]]]]]},externals:{"d.vec3f":()=>v,"std.clamp":()=>z,"std.max":()=>w,"std.select":()=>F,"d.vec4f":()=>b}})&&e.f)({}));var b9=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return u(__tsover_add(t.x,__tsover_div(r,s.x)),__tsover_add(t.y,__tsover_div(o,s.y)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"dirX"},{type:"i",name:"dirY"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,"dirX","/",[7,"viewport","x"]]],[1,[7,"uv","y"],"+",[1,"dirY","/",[7,"viewport","y"]]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),w9=y.fn([b,b,b,b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_add(1,__tsover_mul(i,4)),l=__tsover_mul(i,-1),c=z(t.xyz.mul(d).add(s.xyz.mul(l)).add(r.xyz.mul(l)).add(o.xyz.mul(l)).add(n.xyz.mul(l)),v(0,0,0),v(1,1,1));return b(c.x,c.y,c.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"top"},{type:"i",name:"bottom"},{type:"i",name:"left"},{type:"i",name:"right"},{type:"i",name:"amount"}],body:[0,[[13,"centerWeight",[1,[5,"1"],"+",[1,"amount","*",[5,"4"]]]],[13,"neighborWeight",[1,"amount","*",[4,"-",[5,"1"]]]],[13,"rgb",[6,[7,[6,[7,[6,[7,[6,[7,[6,[7,[7,"center","xyz"],"mul"],["centerWeight"]],"add"],[[6,[7,[7,"top","xyz"],"mul"],["neighborWeight"]]]],"add"],[[6,[7,[7,"bottom","xyz"],"mul"],["neighborWeight"]]]],"add"],[[6,[7,[7,"left","xyz"],"mul"],["neighborWeight"]]]],"add"],[[6,[7,[7,"right","xyz"],"mul"],["neighborWeight"]]]]],[13,"clamped",[6,"std.clamp",["rgb",[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]]]],[10,[6,"d.vec4f",[[7,"clamped","x"],[7,"clamped","y"],[7,"clamped","z"],[7,"center","w"]]]]]]},externals:{"std.clamp":()=>z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({}));var T9=y.fn([u,a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=s>1,d=w(F(__tsover_mul(r,s),r,i),1),l=w(F(r,__tsover_div(r,s),i),1),c=u(__tsover_div(K(__tsover_mul(t.x,d)),d),__tsover_div(K(__tsover_mul(t.y,l)),l)),_=u(__tsover_sub(ve(__tsover_mul(t.x,d)),.5),__tsover_sub(ve(__tsover_mul(t.y,l)),.5)),p=__tsover_sub(.5,__tsover_mul(o,.5)),f=__tsover_mul(n,p),h=w(__tsover_add(__tsover_sub(W(_.x),p),f),0),g=w(__tsover_add(__tsover_sub(W(_.y),p),f),0),x=__tsover_sub(te(u(h,g)),f),T=F(a(0),a(1),x<=0);return v(c.x,c.y,T)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"scale"},{type:"i",name:"gap"},{type:"i",name:"roundness"}],body:[0,[[13,"isWide",[1,"aspect",">",[5,"1"]]],[13,"pixelCountX",[6,"std.max",[[6,"std.select",[[1,"scale","*","aspect"],"scale","isWide"]],[5,"1"]]]],[13,"pixelCountY",[6,"std.max",[[6,"std.select",["scale",[1,"scale","/","aspect"],"isWide"]],[5,"1"]]]],[13,"sampleUV",[6,"d.vec2f",[[1,[6,"std.floor",[[1,[7,"uv","x"],"*","pixelCountX"]]],"/","pixelCountX"],[1,[6,"std.floor",[[1,[7,"uv","y"],"*","pixelCountY"]]],"/","pixelCountY"]]]],[13,"localUV",[6,"d.vec2f",[[1,[6,"std.fract",[[1,[7,"uv","x"],"*","pixelCountX"]]],"-",[5,"0.5"]],[1,[6,"std.fract",[[1,[7,"uv","y"],"*","pixelCountY"]]],"-",[5,"0.5"]]]]],[13,"halfSize",[1,[5,"0.5"],"-",[1,"gap","*",[5,"0.5"]]]],[13,"cornerRadius",[1,"roundness","*","halfSize"]],[13,"qx",[6,"std.max",[[1,[1,[6,"std.abs",[[7,"localUV","x"]]],"-","halfSize"],"+","cornerRadius"],[5,"0"]]]],[13,"qy",[6,"std.max",[[1,[1,[6,"std.abs",[[7,"localUV","y"]]],"-","halfSize"],"+","cornerRadius"],[5,"0"]]]],[13,"sdf",[1,[6,"std.length",[[6,"d.vec2f",["qx","qy"]]]],"-","cornerRadius"]],[13,"mask",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"sdf","<=",[5,"0"]]]]],[10,[6,"d.vec3f",[[7,"sampleUV","x"],[7,"sampleUV","y"],"mask"]]]]]},externals:{"std.max":()=>w,"std.select":()=>F,"d.vec2f":()=>u,"std.floor":()=>K,"std.fract":()=>ve,"std.abs":()=>W,"std.length":()=>te,"d.f32":()=>a,"d.vec3f":()=>v}})&&e.f)({}));var S9=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=s>1,l=u(F(__tsover_mul(o,s),o,d),F(o,__tsover_div(o,s),d)),c=u(__tsover_mul(t.x,s),t.y),_=__tsover_mul(n,Nd),p=J(_),f=O(_),h=c.sub(u(__tsover_mul(.5,s),.5)),g=u(__tsover_sub(__tsover_mul(h.x,p),__tsover_mul(h.y,f)),__tsover_add(__tsover_mul(h.x,f),__tsover_mul(h.y,p))).add(u(__tsover_mul(.5,s),.5)),x=u(__tsover_div(g.x,s),g.y),T=K(x.mul(l)).div(l),S=x.sub(T),A=u(1,1).div(l),E=S.div(A).sub(u(.5,.5)),M=__tsover_add(__tsover_mul(E.x,E.x),__tsover_mul(E.y,E.y)),$=w(__tsover_sub(1,__tsover_mul(M,__tsover_mul(i,4))),0),L=__tsover_mul(r,.025),B=__tsover_mul(L,$),D=u(__tsover_div(__tsover_mul(E.x,B),s),__tsover_mul(E.y,B));return t.add(D)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"intensity"},{type:"i",name:"baseTileCount"},{type:"i",name:"rotationDegrees"},{type:"i",name:"roundnessAmount"}],body:[0,[[13,"isWide",[1,"aspect",">",[5,"1"]]],[13,"tileCount",[6,"d.vec2f",[[6,"std.select",[[1,"baseTileCount","*","aspect"],"baseTileCount","isWide"]],[6,"std.select",["baseTileCount",[1,"baseTileCount","/","aspect"],"isWide"]]]]],[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"rotationRadians",[1,"rotationDegrees","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["rotationRadians"]]],[13,"sinA",[6,"std.sin",["rotationRadians"]]],[13,"centered",[6,[7,"aspectCorrectedUV","sub"],[[6,"d.vec2f",[[1,[5,"0.5"],"*","aspect"],[5,"0.5"]]]]]],[13,"rotatedX",[1,[1,[7,"centered","x"],"*","cosA"],"-",[1,[7,"centered","y"],"*","sinA"]]],[13,"rotatedY",[1,[1,[7,"centered","x"],"*","sinA"],"+",[1,[7,"centered","y"],"*","cosA"]]],[13,"rotatedUV",[6,[7,[6,"d.vec2f",["rotatedX","rotatedY"]],"add"],[[6,"d.vec2f",[[1,[5,"0.5"],"*","aspect"],[5,"0.5"]]]]]],[13,"gridUV",[6,"d.vec2f",[[1,[7,"rotatedUV","x"],"/","aspect"],[7,"rotatedUV","y"]]]],[13,"cellCoord",[6,[7,[6,"std.floor",[[6,[7,"gridUV","mul"],["tileCount"]]]],"div"],["tileCount"]]],[13,"localUV",[6,[7,"gridUV","sub"],["cellCoord"]]],[13,"oneOverTile",[6,[7,[6,"d.vec2f",[[5,"1"],[5,"1"]]],"div"],["tileCount"]]],[13,"normalizedLocalUV",[6,[7,"localUV","div"],["oneOverTile"]]],[13,"fromCenter",[6,[7,"normalizedLocalUV","sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"distFromCenter",[1,[1,[7,"fromCenter","x"],"*",[7,"fromCenter","x"]],"+",[1,[7,"fromCenter","y"],"*",[7,"fromCenter","y"]]]],[13,"roundnessFactor",[1,[5,"1"],"-",[1,"distFromCenter","*",[1,"roundnessAmount","*",[5,"4"]]]]],[13,"clampedRoundness",[6,"std.max",["roundnessFactor",[5,"0"]]]],[13,"distortionFactor",[1,"intensity","*",[5,"0.025"]]],[13,"scaleFactor",[1,"distortionFactor","*","clampedRoundness"]],[13,"distortion",[6,"d.vec2f",[[1,[1,[7,"fromCenter","x"],"*","scaleFactor"],"/","aspect"],[1,[7,"fromCenter","y"],"*","scaleFactor"]]]],[10,[6,[7,"uv","add"],["distortion"]]]]]},externals:{"d.vec2f":()=>u,"std.select":()=>F,DEG_TO_RAD:()=>Nd,"std.cos":()=>J,"std.sin":()=>O,"std.floor":()=>K,"std.max":()=>w}})&&e.f)({}));var A9=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s,.002);return u(__tsover_add(t.x,__tsover_mul(o,r)),t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"colorShift"},{type:"i",name:"dir"}],body:[0,[[13,"scaledColorShift",[1,"colorShift","*",[5,"0.002"]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,"scaledColorShift","*","dir"]],[7,"uv","y"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),E9=y.fn([b,b,b],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return v(t.x,s.y,r.z)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"redSample"},{type:"i",name:"greenSample"},{type:"i",name:"blueSample"}],body:[0,[[10,[6,"d.vec3f",[[7,"redSample","x"],[7,"greenSample","y"],[7,"blueSample","z"]]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})),P9=y.fn([v,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return t.sub(v(.5)).mul(s).add(v(.5)).mul(r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"contrast"},{type:"i",name:"brightness"}],body:[0,[[10,[6,[7,[6,[7,[6,[7,[6,[7,"color","sub"],[[6,"d.vec3f",[[5,"0.5"]]]]],"mul"],["contrast"]],"add"],[[6,"d.vec3f",[[5,"0.5"]]]]],"mul"],["brightness"]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})),M9=y.fn([v,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(s,r),i=O(__tsover_mul(n,__tsover_mul(3.14159,2))),d=__tsover_sub(1,__tsover_mul(o,__tsover_add(__tsover_mul(i,.5),.5)));return t.mul(d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uvY"},{type:"i",name:"scanlineFrequency"},{type:"i",name:"scanlineIntensity"}],body:[0,[[13,"scanlinePosition",[1,"uvY","*","scanlineFrequency"]],[13,"scanlineWave",[6,"std.sin",[[1,"scanlinePosition","*",[1,[5,"3.14159"],"*",[5,"2"]]]]]],[13,"scanlineEffect",[1,[5,"1"],"-",[1,"scanlineIntensity","*",[1,[1,"scanlineWave","*",[5,"0.5"]],"+",[5,"0.5"]]]]],[10,[6,[7,"color","mul"],["scanlineEffect"]]]]]},externals:{"std.sin":()=>O}})&&e.f)({})),k9=y.fn([v,u,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(r,.5),n=ve(s.mul(o)),i=__tsover_add(__tsover_mul(O(__tsover_mul(n.x,6.28318)),.1),.95),d=__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(n.x,6.28318),2.09)),.1),.95),l=__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(n.x,6.28318),4.18)),.1),.95);return v(__tsover_mul(t.x,i),__tsover_mul(t.y,d),__tsover_mul(t.z,l))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"},{type:"i",name:"pixelSize"}],body:[0,[[13,"phosphorScale",[1,"pixelSize","*",[5,"0.5"]]],[13,"pixelPhase",[6,"std.fract",[[6,[7,"uv","mul"],["phosphorScale"]]]]],[13,"redMask",[1,[1,[6,"std.sin",[[1,[7,"pixelPhase","x"],"*",[5,"6.28318"]]]],"*",[5,"0.1"]],"+",[5,"0.95"]]],[13,"greenMask",[1,[1,[6,"std.sin",[[1,[1,[7,"pixelPhase","x"],"*",[5,"6.28318"]],"+",[5,"2.09"]]]],"*",[5,"0.1"]],"+",[5,"0.95"]]],[13,"blueMask",[1,[1,[6,"std.sin",[[1,[1,[7,"pixelPhase","x"],"*",[5,"6.28318"]],"+",[5,"4.18"]]]],"*",[5,"0.1"]],"+",[5,"0.95"]]],[10,[6,"d.vec3f",[[1,[7,"color","x"],"*","redMask"],[1,[7,"color","y"],"*","greenMask"],[1,[7,"color","z"],"*","blueMask"]]]]]]},externals:{"std.fract":()=>ve,"std.sin":()=>O,"d.vec3f":()=>v}})&&e.f)({})),$9=y.fn([v,u,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=s.sub(u(.5,.5)),d=te(u(__tsover_mul(i.x,r),i.y)),l=__tsover_sub(1,__tsover_mul(o,.9)),c=__tsover_add(l,.5),_=Z(1,__tsover_sub(1,ce(l,c,d)),n);return t.mul(_)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"vignetteRadius"},{type:"i",name:"vignetteIntensity"}],body:[0,[[13,"centeredUV",[6,[7,"uv","sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"aspectCorrectedUV",[6,"d.vec2f",[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]]],[13,"vignetteDistance",[6,"std.length",["aspectCorrectedUV"]]],[13,"innerEdge",[1,[5,"1"],"-",[1,"vignetteRadius","*",[5,"0.9"]]]],[13,"outerEdge",[1,"innerEdge","+",[5,"0.5"]]],[13,"vignetteValue",[1,[5,"1"],"-",[6,"std.smoothstep",["innerEdge","outerEdge","vignetteDistance"]]]],[13,"vignette",[6,"std.mix",[[5,"1"],"vignetteValue","vignetteIntensity"]]],[10,[6,[7,"color","mul"],["vignette"]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.smoothstep":()=>ce,"std.mix":()=>Z}})&&e.f)({})),$2=487,Ol=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ms(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"noise.hash12",["p"]]]]]},externals:{"noise.hash12":()=>ms}})&&e.f)({})),_a=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=ve(t),o=r.mul(r).mul(u(3,3).sub(r.mul(2))),n=Ol(s),i=Ol(s.add(u(1,0))),d=Ol(s.add(u(0,1))),l=Ol(s.add(u(1,1)));return Z(Z(n,i,o.x),Z(d,l,o.x),o.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f",[6,"std.fract",["p"]]],[13,"u",[6,[7,[6,[7,"f","mul"],["f"]],"mul"],[[6,[7,[6,"d.vec2f",[[5,"3"],[5,"3"]]],"sub"],[[6,[7,"f","mul"],[[5,"2"]]]]]]]],[13,"a",[6,"hash2D",["i"]]],[13,"b",[6,"hash2D",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"1"],[5,"0"]]]]]]]],[13,"c",[6,"hash2D",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"0"],[5,"1"]]]]]]]],[13,"dd",[6,"hash2D",[[6,[7,"i","add"],[[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]]]],[10,[6,"std.mix",[[6,"std.mix",["a","b",[7,"u","x"]]],[6,"std.mix",["c","dd",[7,"u","x"]]],[7,"u","y"]]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,"d.vec2f":()=>u,hash2D:()=>Ol,"std.mix":()=>Z}})&&e.f)({})),C2=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ce(.45,.8,_a(u(__tsover_mul(t,.4),0)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,"std.smoothstep",[[5,"0.45"],[5,"0.8"],[6,"smoothNoise2D",[[6,"d.vec2f",[[1,"t","*",[5,"0.4"]],[5,"0"]]]]]]]]]]},externals:{"std.smoothstep":()=>ce,smoothNoise2D:()=>_a,"d.vec2f":()=>u}})&&e.f)({})),R2=y.fn([a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=K(__tsover_mul(t,$2)),i=__tsover_mul(__tsover_sub(ms(u(n,s)),.5),2),d=__tsover_mul(__tsover_sub(ms(u(n,__tsover_add(s,69.42))),.5),2),l=__tsover_add(.25,__tsover_mul(o,.75)),c=__tsover_mul(__tsover_mul(__tsover_mul(i,r),.008),l);return u(__tsover_mul(__tsover_mul(__tsover_mul(d,r),.004),l),c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uvY"},{type:"i",name:"t"},{type:"i",name:"scanlineNoise"},{type:"i",name:"burst"}],body:[0,[[13,"rowInt",[6,"std.floor",[[1,"uvY","*","FIELD_LINES"]]]],[13,"h0",[1,[1,[6,"noise.hash12",[[6,"d.vec2f",["rowInt","t"]]]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"h1",[1,[1,[6,"noise.hash12",[[6,"d.vec2f",["rowInt",[1,"t","+",[5,"69.42"]]]]]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"fineGate",[1,[5,"0.25"],"+",[1,"burst","*",[5,"0.75"]]]],[13,"chromaRowOffset",[1,[1,[1,"h0","*","scanlineNoise"],"*",[5,"0.008"]],"*","fineGate"]],[13,"lumaRowOffset",[1,[1,[1,"h1","*","scanlineNoise"],"*",[5,"0.004"]],"*","fineGate"]],[10,[6,"d.vec2f",["lumaRowOffset","chromaRowOffset"]]]]]},externals:{"std.floor":()=>K,FIELD_LINES:()=>$2,"noise.hash12":()=>ms,"d.vec2f":()=>u}})&&e.f)({})),U2=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_sub(_a(u(__tsover_mul(t,3),__tsover_mul(s,.8))),.5),n=__tsover_sub(_a(u(__tsover_mul(t,30),__tsover_mul(s,6))),.5);return __tsover_mul(__tsover_add(__tsover_mul(o,.008),__tsover_mul(n,.002)),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uvY"},{type:"i",name:"t"},{type:"i",name:"wobble"}],body:[0,[[13,"wave1",[1,[6,"smoothNoise2D",[[6,"d.vec2f",[[1,"uvY","*",[5,"3"]],[1,"t","*",[5,"0.8"]]]]]],"-",[5,"0.5"]]],[13,"wave2",[1,[6,"smoothNoise2D",[[6,"d.vec2f",[[1,"uvY","*",[5,"30"]],[1,"t","*",[5,"6"]]]]]],"-",[5,"0.5"]]],[10,[1,[1,[1,"wave1","*",[5,"0.008"]],"+",[1,"wave2","*",[5,"0.002"]]],"*","wobble"]]]]},externals:{smoothNoise2D:()=>_a,"d.vec2f":()=>u}})&&e.f)({})),z2=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=ce(.92,.99,O(__tsover_sub(__tsover_mul(t,8),__tsover_mul(s,3.77)))),n=ce(.3,1,_a(u(__tsover_mul(t,4.77),s)));return __tsover_mul(__tsover_mul(__tsover_mul(o,n),r),-.018)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uvY"},{type:"i",name:"t"},{type:"i",name:"wobble"}],body:[0,[[13,"creasePhase",[6,"std.smoothstep",[[5,"0.92"],[5,"0.99"],[6,"std.sin",[[1,[1,"uvY","*",[5,"8"]],"-",[1,"t","*",[5,"3.77"]]]]]]]],[13,"creaseNoise",[6,"std.smoothstep",[[5,"0.3"],[5,"1"],[6,"smoothNoise2D",[[6,"d.vec2f",[[1,"uvY","*",[5,"4.77"]],"t"]]]]]]],[10,[1,[1,[1,"creasePhase","*","creaseNoise"],"*","wobble"],"*",[4,"-",[5,"0.018"]]]]]]},externals:{"std.smoothstep":()=>ce,"std.sin":()=>O,smoothNoise2D:()=>_a,"d.vec2f":()=>u}})&&e.f)({})),G2=y.fn([a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_sub(1,ce(0,.06,t)),i=__tsover_sub(_a(u(__tsover_mul(t,60),__tsover_mul(s,14))),.5);return u(__tsover_mul(__tsover_mul(__tsover_mul(n,i),r),.09),__tsover_mul(__tsover_mul(__tsover_mul(n,r),o),.02))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uvY"},{type:"i",name:"t"},{type:"i",name:"wobble"},{type:"i",name:"burst"}],body:[0,[[13,"switchPhase",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],[5,"0.06"],"uvY"]]]],[13,"switchNoise",[1,[6,"smoothNoise2D",[[6,"d.vec2f",[[1,"uvY","*",[5,"60"]],[1,"t","*",[5,"14"]]]]]],"-",[5,"0.5"]]],[13,"switchX",[1,[1,[1,"switchPhase","*","switchNoise"],"*","wobble"],"*",[5,"0.09"]]],[13,"switchY",[1,[1,[1,"switchPhase","*","wobble"],"*","burst"],"*",[5,"0.02"]]],[10,[6,"d.vec2f",["switchX","switchY"]]]]]},externals:{"std.smoothstep":()=>ce,smoothNoise2D:()=>_a,"d.vec2f":()=>u}})&&e.f)({})),C9=y.fn([u,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(s,r),d=C2(i),l=R2(t.y,i,n,d),c=G2(t.y,i,o,d),_=__tsover_add(__tsover_add(U2(t.y,i,o),z2(t.y,i,o)),c.x),p=__tsover_add(t.y,c.y);return b(__tsover_add(__tsover_add(t.x,_),l.x),p,__tsover_add(__tsover_add(t.x,_),l.y),p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"time"},{type:"i",name:"speed"},{type:"i",name:"wobble"},{type:"i",name:"scanlineNoise"}],body:[0,[[13,"t",[1,"time","*","speed"]],[13,"burst",[6,"burstGate",["t"]]],[13,"jitter",[6,"rowJitter",[[7,"uv","y"],"t","scanlineNoise","burst"]]],[13,"sw",[6,"headSwitch",[[7,"uv","y"],"t","wobble","burst"]]],[13,"globalX",[1,[1,[6,"tapeWave",[[7,"uv","y"],"t","wobble"]],"+",[6,"creaseShift",[[7,"uv","y"],"t","wobble"]]],"+",[7,"sw","x"]]],[13,"sy",[1,[7,"uv","y"],"+",[7,"sw","y"]]],[10,[6,"d.vec4f",[[1,[1,[7,"uv","x"],"+","globalX"],"+",[7,"jitter","x"]],"sy",[1,[1,[7,"uv","x"],"+","globalX"],"+",[7,"jitter","y"]],"sy"]]]]]},externals:{burstGate:()=>C2,rowJitter:()=>R2,headSwitch:()=>G2,tapeWave:()=>U2,creaseShift:()=>z2,"d.vec4f":()=>b}})&&e.f)({})),R9=y.fn([u,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(s,r);return __tsover_add(1,__tsover_mul(__tsover_mul(J(__tsover_add(__tsover_mul(tn(n,6.2831853),2),__tsover_mul(t.y,.5))),.015),o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"time"},{type:"i",name:"speed"},{type:"i",name:"wobble"}],body:[0,[[13,"t",[1,"time","*","speed"]],[10,[1,[5,"1"],"+",[1,[1,[6,"std.cos",[[1,[1,[6,"std.mod",["t",[5,"6.2831853"]]],"*",[5,"2"]],"+",[1,[7,"uv","y"],"*",[5,"0.5"]]]]],"*",[5,"0.015"]],"*","wobble"]]]]]},externals:{"std.cos":()=>J,"std.mod":()=>tn}})&&e.f)({})),U9=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(__tsover_add(t.x,__tsover_mul(__tsover_mul(r,-1),s)),t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"chromaUV"},{type:"i",name:"smearScale"},{type:"i",name:"i"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"chromaUV","x"],"+",[1,[1,"i","*",[4,"-",[5,"1"]]],"*","smearScale"]],[7,"chromaUV","y"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),z9=y.fn([b,b,b,b,b,b],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=le(t.xyz,v(.299,.587,.114)),l=v(.596,-.274,-.322),c=v(.211,-.523,.312),_=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(le(s.xyz,l),.06666666666666667),__tsover_mul(le(r.xyz,l),.13333333333333333)),__tsover_mul(le(o.xyz,l),.2)),__tsover_mul(le(n.xyz,l),.26666666666666666)),__tsover_mul(le(i.xyz,l),.3333333333333333)),p=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(le(s.xyz,c),.06666666666666667),__tsover_mul(le(r.xyz,c),.13333333333333333)),__tsover_mul(le(o.xyz,c),.2)),__tsover_mul(le(n.xyz,c),.26666666666666666)),__tsover_mul(le(i.xyz,c),.3333333333333333));return v(__tsover_add(__tsover_add(d,__tsover_mul(_,.956)),__tsover_mul(p,.621)),__tsover_sub(__tsover_sub(d,__tsover_mul(_,.272)),__tsover_mul(p,.647)),__tsover_add(__tsover_sub(d,__tsover_mul(_,1.106)),__tsover_mul(p,1.703)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"luma"},{type:"i",name:"c1"},{type:"i",name:"c2"},{type:"i",name:"c3"},{type:"i",name:"c4"},{type:"i",name:"c5"}],body:[0,[[13,"sharpY",[6,"std.dot",[[7,"luma","xyz"],[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"iAxis",[6,"d.vec3f",[[5,"0.596"],[4,"-",[5,"0.274"]],[4,"-",[5,"0.322"]]]]],[13,"qAxis",[6,"d.vec3f",[[5,"0.211"],[4,"-",[5,"0.523"]],[5,"0.312"]]]],[13,"accI",[1,[1,[1,[1,[1,[6,"std.dot",[[7,"c1","xyz"],"iAxis"]],"*",[5,"0.06666666666666667"]],"+",[1,[6,"std.dot",[[7,"c2","xyz"],"iAxis"]],"*",[5,"0.13333333333333333"]]],"+",[1,[6,"std.dot",[[7,"c3","xyz"],"iAxis"]],"*",[5,"0.2"]]],"+",[1,[6,"std.dot",[[7,"c4","xyz"],"iAxis"]],"*",[5,"0.26666666666666666"]]],"+",[1,[6,"std.dot",[[7,"c5","xyz"],"iAxis"]],"*",[5,"0.3333333333333333"]]]],[13,"accQ",[1,[1,[1,[1,[1,[6,"std.dot",[[7,"c1","xyz"],"qAxis"]],"*",[5,"0.06666666666666667"]],"+",[1,[6,"std.dot",[[7,"c2","xyz"],"qAxis"]],"*",[5,"0.13333333333333333"]]],"+",[1,[6,"std.dot",[[7,"c3","xyz"],"qAxis"]],"*",[5,"0.2"]]],"+",[1,[6,"std.dot",[[7,"c4","xyz"],"qAxis"]],"*",[5,"0.26666666666666666"]]],"+",[1,[6,"std.dot",[[7,"c5","xyz"],"qAxis"]],"*",[5,"0.3333333333333333"]]]],[10,[6,"d.vec3f",[[1,[1,"sharpY","+",[1,"accI","*",[5,"0.956"]]],"+",[1,"accQ","*",[5,"0.621"]]],[1,[1,"sharpY","-",[1,"accI","*",[5,"0.272"]]],"-",[1,"accQ","*",[5,"0.647"]]],[1,[1,"sharpY","-",[1,"accI","*",[5,"1.106"]]],"+",[1,"accQ","*",[5,"1.703"]]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),G9=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=z(t.xyz.mul(s),v(0,0,0),v(1,1,1));return b(r.x,r.y,r.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"acBeat"}],body:[0,[[13,"clamped",[6,"std.clamp",[[6,[7,[7,"color","xyz"],"mul"],["acBeat"]],[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]]]],[10,[6,"d.vec4f",[[7,"clamped","x"],[7,"clamped","y"],[7,"clamped","z"],[7,"color","w"]]]]]]},externals:{"std.clamp":()=>z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),Lr=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return fr(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"noise.hash11",["p"]]]]]},externals:{"noise.hash11":()=>fr}})&&e.f)({})),D2=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Lr(t),n=__tsover_mul(__tsover_mul(o,o),o),i=Lr(__tsover_add(s,73)),d=__tsover_mul(i,i),l=__tsover_sub(1,r),c=ot(l,n),_=ot(__tsover_add(l,.15),d);return __tsover_mul(z(__tsover_add(__tsover_mul(c,.8),__tsover_mul(_,.4)),0,1),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"slowFrame"},{type:"i",name:"fastFrame"},{type:"i",name:"intensity"}],body:[0,[[13,"slowHash",[6,"hash11",["slowFrame"]]],[13,"slowPulse",[1,[1,"slowHash","*","slowHash"],"*","slowHash"]],[13,"fastHash",[6,"hash11",[[1,"fastFrame","+",[5,"73"]]]]],[13,"fastPulse",[1,"fastHash","*","fastHash"]],[13,"threshold",[1,[5,"1"],"-","intensity"]],[13,"majorBurst",[6,"std.step",["threshold","slowPulse"]]],[13,"minorFlicker",[6,"std.step",[[1,"threshold","+",[5,"0.15"]],"fastPulse"]]],[10,[1,[6,"std.clamp",[[1,[1,"majorBurst","*",[5,"0.8"]],"+",[1,"minorFlicker","*",[5,"0.4"]]],[5,"0"],[5,"1"]]],"*","intensity"]]]]},externals:{hash11:()=>Lr,"std.step":()=>ot,"std.clamp":()=>z}})&&e.f)({})),A_=y.fn([a,a,a,a,a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_add(__tsover_mul(t,r),__tsover_mul(s,o)),_=Lr(c),p=ot(__tsover_sub(1,__tsover_mul(l,n)),_);return v(__tsover_mul(__tsover_mul(__tsover_sub(Lr(__tsover_add(c,i)),.5),d),p),p,c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"bandY"},{type:"i",name:"frame"},{type:"i",name:"seedScale"},{type:"i",name:"frameScale"},{type:"i",name:"gateFactor"},{type:"i",name:"hashOffset"},{type:"i",name:"amplitude"},{type:"i",name:"glitchStrength"}],body:[0,[[13,"seed",[1,[1,"bandY","*","seedScale"],"+",[1,"frame","*","frameScale"]]],[13,"bandHash",[6,"hash11",["seed"]]],[13,"active",[6,"std.step",[[1,[5,"1"],"-",[1,"glitchStrength","*","gateFactor"]],"bandHash"]]],[13,"displace",[1,[1,[1,[6,"hash11",[[1,"seed","+","hashOffset"]]],"-",[5,"0.5"]],"*","amplitude"],"*","active"]],[10,[6,"d.vec3f",["displace","active","seed"]]]]]},externals:{hash11:()=>Lr,"std.step":()=>ot,"d.vec3f":()=>v}})&&e.f)({})),L2=y.fn([a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_add(__tsover_add(__tsover_mul(t,.41),__tsover_mul(s,.67)),__tsover_mul(r,2.31)),i=Lr(n),d=ot(__tsover_sub(1,__tsover_mul(o,.35)),i);return u(__tsover_mul(__tsover_mul(__tsover_sub(Lr(__tsover_add(n,77)),.5),.18),d),d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colX"},{type:"i",name:"bandY1"},{type:"i",name:"slowFrame"},{type:"i",name:"glitchStrength"}],body:[0,[[13,"blockSeed",[1,[1,[1,"colX","*",[5,"0.41"]],"+",[1,"bandY1","*",[5,"0.67"]]],"+",[1,"slowFrame","*",[5,"2.31"]]]],[13,"blockHash",[6,"hash11",["blockSeed"]]],[13,"blockActive",[6,"std.step",[[1,[5,"1"],"-",[1,"glitchStrength","*",[5,"0.35"]]],"blockHash"]]],[13,"displace",[1,[1,[1,[6,"hash11",[[1,"blockSeed","+",[5,"77"]]]],"-",[5,"0.5"]],"*",[5,"0.18"]],"*","blockActive"]],[10,[6,"d.vec2f",["displace","blockActive"]]]]]},externals:{hash11:()=>Lr,"std.step":()=>ot,"d.vec2f":()=>u}})&&e.f)({})),F2=y.fn([u,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_add(__tsover_add(__tsover_mul(s,.83),__tsover_mul(r,1.17)),__tsover_mul(o,4.57)),c=Lr(l),_=Lr(__tsover_add(l,500)),p=__tsover_mul(ot(__tsover_sub(1,__tsover_mul(i,d)),c),n),f=__tsover_mul(ot(__tsover_sub(1,__tsover_mul(__tsover_mul(i,d),.4)),_),n);return u(Z(t.x,__tsover_sub(1,t.x),p),Z(t.y,__tsover_sub(1,t.y),f))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"displacedUV"},{type:"i",name:"colX"},{type:"i",name:"bandY1"},{type:"i",name:"slowFrame"},{type:"i",name:"bandActive1"},{type:"i",name:"mirrorChance"},{type:"i",name:"glitchStrength"}],body:[0,[[13,"mirrorSeed",[1,[1,[1,"colX","*",[5,"0.83"]],"+",[1,"bandY1","*",[5,"1.17"]]],"+",[1,"slowFrame","*",[5,"4.57"]]]],[13,"hMirrorHash",[6,"hash11",["mirrorSeed"]]],[13,"vMirrorHash",[6,"hash11",[[1,"mirrorSeed","+",[5,"500"]]]]],[13,"hMirrorActive",[1,[6,"std.step",[[1,[5,"1"],"-",[1,"mirrorChance","*","glitchStrength"]],"hMirrorHash"]],"*","bandActive1"]],[13,"vMirrorActive",[1,[6,"std.step",[[1,[5,"1"],"-",[1,[1,"mirrorChance","*","glitchStrength"],"*",[5,"0.4"]]],"vMirrorHash"]],"*","bandActive1"]],[10,[6,"d.vec2f",[[6,"std.mix",[[7,"displacedUV","x"],[1,[5,"1"],"-",[7,"displacedUV","x"]],"hMirrorActive"]],[6,"std.mix",[[7,"displacedUV","y"],[1,[5,"1"],"-",[7,"displacedUV","y"]],"vMirrorActive"]]]]]]]},externals:{hash11:()=>Lr,"std.step":()=>ot,"d.vec2f":()=>u,"std.mix":()=>Z}})&&e.f)({})),hf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({mirroredUV:u,spread:a,strength:a,bandY1:a,slowFrame:a,bandGate:a,blockGate:a,distortion:a}),"GlitchGeom"),D9=y.fn([u,a,a,a,a,a],hf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_mul(s,o),l=K(__tsover_mul(d,2.5)),c=K(__tsover_mul(d,10)),_=D2(l,c,r),p=K(__tsover_mul(t.y,n)),f=A_(p,l,.37,7.13,.5,42,.25,_),h=A_(K(__tsover_mul(t.y,__tsover_mul(n,2))),c,.53,3.37,.7,99,.12,_),g=A_(K(__tsover_mul(t.y,__tsover_mul(n,4))),c,.71,11.71,.9,173,.05,_),x=K(__tsover_mul(t.x,4)),T=L2(x,p,l,_),S=__tsover_add(__tsover_add(__tsover_add(f.x,h.x),g.x),T.x),A=__tsover_mul(__tsover_mul(f.y,__tsover_sub(Lr(__tsover_add(f.z,200)),.5)),.012),E=F2(u(z(__tsover_add(t.x,__tsover_mul(S,_)),0,1),z(__tsover_add(t.y,__tsover_mul(A,_)),0,1)),x,p,l,f.y,i,_),M=__tsover_add(_,__tsover_mul(W(S),2)),$=z(__tsover_add(__tsover_add(f.y,h.y),g.y),0,1);return hf({mirroredUV:E,spread:M,strength:_,bandY1:p,slowFrame:l,bandGate:f.y,blockGate:T.y,distortion:$})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"time"},{type:"i",name:"intensity"},{type:"i",name:"speed"},{type:"i",name:"blockDensity"},{type:"i",name:"mirrorChance"}],body:[0,[[13,"t",[1,"time","*","speed"]],[13,"slowFrame",[6,"std.floor",[[1,"t","*",[5,"2.5"]]]]],[13,"fastFrame",[6,"std.floor",[[1,"t","*",[5,"10"]]]]],[13,"glitchStrength",[6,"burstPulse",["slowFrame","fastFrame","intensity"]]],[13,"bandY1",[6,"std.floor",[[1,[7,"uv","y"],"*","blockDensity"]]]],[13,"band1",[6,"bandJitter",["bandY1","slowFrame",[5,"0.37"],[5,"7.13"],[5,"0.5"],[5,"42"],[5,"0.25"],"glitchStrength"]]],[13,"bandY2",[6,"std.floor",[[1,[7,"uv","y"],"*",[1,"blockDensity","*",[5,"2"]]]]]],[13,"band2",[6,"bandJitter",["bandY2","fastFrame",[5,"0.53"],[5,"3.37"],[5,"0.7"],[5,"99"],[5,"0.12"],"glitchStrength"]]],[13,"bandY3",[6,"std.floor",[[1,[7,"uv","y"],"*",[1,"blockDensity","*",[5,"4"]]]]]],[13,"band3",[6,"bandJitter",["bandY3","fastFrame",[5,"0.71"],[5,"11.71"],[5,"0.9"],[5,"173"],[5,"0.05"],"glitchStrength"]]],[13,"colX",[6,"std.floor",[[1,[7,"uv","x"],"*",[5,"4"]]]]],[13,"block",[6,"blockShift",["colX","bandY1","slowFrame","glitchStrength"]]],[13,"totalDisplaceX",[1,[1,[1,[7,"band1","x"],"+",[7,"band2","x"]],"+",[7,"band3","x"]],"+",[7,"block","x"]]],[13,"vertJitter",[1,[1,[7,"band1","y"],"*",[1,[6,"hash11",[[1,[7,"band1","z"],"+",[5,"200"]]]],"-",[5,"0.5"]]],"*",[5,"0.012"]]],[13,"displacedUV",[6,"d.vec2f",[[6,"std.clamp",[[1,[7,"uv","x"],"+",[1,"totalDisplaceX","*","glitchStrength"]],[5,"0"],[5,"1"]]],[6,"std.clamp",[[1,[7,"uv","y"],"+",[1,"vertJitter","*","glitchStrength"]],[5,"0"],[5,"1"]]]]]],[13,"mirroredUV",[6,"mirrorFlips",["displacedUV","colX","bandY1","slowFrame",[7,"band1","y"],"mirrorChance","glitchStrength"]]],[13,"spread",[1,"glitchStrength","+",[1,[6,"std.abs",["totalDisplaceX"]],"*",[5,"2"]]]],[13,"anyDistortion",[6,"std.clamp",[[1,[1,[7,"band1","y"],"+",[7,"band2","y"]],"+",[7,"band3","y"]],[5,"0"],[5,"1"]]]],[10,[6,"GlitchGeom",[[104,{mirroredUV:"mirroredUV",spread:"spread",strength:"glitchStrength",bandY1:"bandY1",slowFrame:"slowFrame",bandGate:[7,"band1","y"],blockGate:[7,"block","y"],distortion:"anyDistortion"}]]]]]]},externals:{"std.floor":()=>K,burstPulse:()=>D2,bandJitter:()=>A_,blockShift:()=>L2,hash11:()=>Lr,"d.vec2f":()=>u,"std.clamp":()=>z,mirrorFlips:()=>F2,"std.abs":()=>W,GlitchGeom:()=>hf}})&&e.f)({})),L9=y.fn([u,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(__tsover_mul(s,.003),r),n=z(__tsover_add(t.x,o),0,1),i=z(__tsover_sub(t.x,o),0,1);return b(n,t.y,i,t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"mirroredUV"},{type:"i",name:"rgbShift"},{type:"i",name:"spread"}],body:[0,[[13,"rgbOffset",[1,[1,"rgbShift","*",[5,"0.003"]],"*","spread"]],[13,"redX",[6,"std.clamp",[[1,[7,"mirroredUV","x"],"+","rgbOffset"],[5,"0"],[5,"1"]]]],[13,"blueX",[6,"std.clamp",[[1,[7,"mirroredUV","x"],"-","rgbOffset"],[5,"0"],[5,"1"]]]],[10,[6,"d.vec4f",["redX",[7,"mirroredUV","y"],"blueX",[7,"mirroredUV","y"]]]]]]},externals:{"std.clamp":()=>z,"d.vec4f":()=>b}})&&e.f)({})),F9=y.fn([b,u,a,a,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=K(__tsover_mul(s.x,4)),_=__tsover_add(__tsover_add(__tsover_mul(c,.41),__tsover_mul(r,.67)),__tsover_mul(o,2.31)),p=Lr(__tsover_add(_,555)),f=Lr(__tsover_add(__tsover_add(r,__tsover_mul(o,3.33)),333)),h=ve(__tsover_add(__tsover_mul(s.x,3),__tsover_mul(f,7))),g=K(__tsover_mul(h,7)),x=v(__tsover_add(__tsover_sub(1,ot(2,g)),__tsover_mul(ot(4,g),__tsover_sub(1,ot(6,g)))),__tsover_sub(1,ot(4,g)),__tsover_sub(1,ot(.5,ve(__tsover_mul(g,.5))))),T=ve(__tsover_add(__tsover_mul(Lr(__tsover_add(r,13)),.8),__tsover_mul(o,.07))),S=__tsover_mul(T,6),A=Z(v(z(__tsover_sub(W(__tsover_sub(S,3)),1),0,1),z(__tsover_sub(2,W(__tsover_sub(S,2))),0,1),z(__tsover_sub(2,W(__tsover_sub(S,4))),0,1)).mul(1.3),x,v(ot(.5,p))),E=__tsover_mul(__tsover_mul(__tsover_mul(d,l),n),i),M=Z(t.xyz,A.mul(t.w),v(E));return b(M.x,M.y,M.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"},{type:"i",name:"bandY1"},{type:"i",name:"slowFrame"},{type:"i",name:"colorBarMix"},{type:"i",name:"strength"},{type:"i",name:"bandGate"},{type:"i",name:"blockGate"}],body:[0,[[13,"colX",[6,"std.floor",[[1,[7,"uv","x"],"*",[5,"4"]]]]],[13,"blockSeed",[1,[1,[1,"colX","*",[5,"0.41"]],"+",[1,"bandY1","*",[5,"0.67"]]],"+",[1,"slowFrame","*",[5,"2.31"]]]],[13,"fillStyleHash",[6,"hash11",[[1,"blockSeed","+",[5,"555"]]]]],[13,"barOffset",[6,"hash11",[[1,[1,"bandY1","+",[1,"slowFrame","*",[5,"3.33"]]],"+",[5,"333"]]]]],[13,"barX",[6,"std.fract",[[1,[1,[7,"uv","x"],"*",[5,"3"]],"+",[1,"barOffset","*",[5,"7"]]]]]],[13,"barIndex",[6,"std.floor",[[1,"barX","*",[5,"7"]]]]],[13,"barR",[1,[1,[5,"1"],"-",[6,"std.step",[[5,"2"],"barIndex"]]],"+",[1,[6,"std.step",[[5,"4"],"barIndex"]],"*",[1,[5,"1"],"-",[6,"std.step",[[5,"6"],"barIndex"]]]]]],[13,"barG",[1,[5,"1"],"-",[6,"std.step",[[5,"4"],"barIndex"]]]],[13,"barB",[1,[5,"1"],"-",[6,"std.step",[[5,"0.5"],[6,"std.fract",[[1,"barIndex","*",[5,"0.5"]]]]]]]],[13,"smpteColor",[6,"d.vec3f",["barR","barG","barB"]]],[13,"solidHue",[6,"std.fract",[[1,[1,[6,"hash11",[[1,"bandY1","+",[5,"13"]]]],"*",[5,"0.8"]],"+",[1,"slowFrame","*",[5,"0.07"]]]]]],[13,"sh6",[1,"solidHue","*",[5,"6"]]],[13,"solidColor",[6,[7,[6,"d.vec3f",[[6,"std.clamp",[[1,[6,"std.abs",[[1,"sh6","-",[5,"3"]]]],"-",[5,"1"]],[5,"0"],[5,"1"]]],[6,"std.clamp",[[1,[5,"2"],"-",[6,"std.abs",[[1,"sh6","-",[5,"2"]]]]],[5,"0"],[5,"1"]]],[6,"std.clamp",[[1,[5,"2"],"-",[6,"std.abs",[[1,"sh6","-",[5,"4"]]]]],[5,"0"],[5,"1"]]]]],"mul"],[[5,"1.3"]]]],[13,"fillColor",[6,"std.mix",["solidColor","smpteColor",[6,"d.vec3f",[[6,"std.step",[[5,"0.5"],"fillStyleHash"]]]]]]],[13,"colorBarStrength",[1,[1,[1,"bandGate","*","blockGate"],"*","colorBarMix"],"*","strength"]],[13,"withBars",[6,"std.mix",[[7,"color","xyz"],[6,[7,"fillColor","mul"],[[7,"color","w"]]],[6,"d.vec3f",["colorBarStrength"]]]]],[10,[6,"d.vec4f",[[7,"withBars","x"],[7,"withBars","y"],[7,"withBars","z"],[7,"color","w"]]]]]]},externals:{"std.floor":()=>K,hash11:()=>Lr,"std.fract":()=>ve,"std.step":()=>ot,"d.vec3f":()=>v,"std.clamp":()=>z,"std.abs":()=>W,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})),B9=y.fn([b,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(s,r),d=__tsover_add(__tsover_mul(O(__tsover_mul(i,3.14159265)),.5),.5),l=__tsover_sub(1,__tsover_mul(__tsover_mul(__tsover_mul(o,d),.3),n)),c=t.xyz.mul(l);return b(c.x,c.y,c.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uvY"},{type:"i",name:"viewportY"},{type:"i",name:"scanlines"},{type:"i",name:"distortion"}],body:[0,[[13,"pixelY",[1,"uvY","*","viewportY"]],[13,"scanlineWave",[1,[1,[6,"std.sin",[[1,"pixelY","*",[5,"3.14159265"]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"scanlineEffect",[1,[5,"1"],"-",[1,[1,[1,"scanlines","*","scanlineWave"],"*",[5,"0.3"]],"*","distortion"]]],[13,"shaded",[6,[7,[7,"color","xyz"],"mul"],["scanlineEffect"]]],[10,[6,"d.vec4f",[[7,"shaded","x"],[7,"shaded","y"],[7,"shaded","z"],[7,"color","w"]]]]]]},externals:{"std.sin":()=>O,"d.vec4f":()=>b}})&&e.f)({})),B2=2/Math.sqrt(3),bd=Math.sqrt(3)/2,I9=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Vt(s),i=u(__tsover_mul(t.x,n),__tsover_sub(1,t.y)),d=__tsover_mul(o,Qe);return Od(i,n,J(d),O(d)).mul(r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"rotationDeg"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"correctedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[1,[5,"1"],"-",[7,"uv","y"]]]]],[13,"rotRad",[1,"rotationDeg","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[10,[6,[7,[6,"rotateAboutCanvasCentre",["correctedUV","aspect","cosR","sinR"]],"mul"],["cells"]]]]]},externals:{aspectOf:()=>Vt,"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,rotateAboutCanvasCentre:()=>Od}})&&e.f)({})),Y9=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Vt(s),i=u(__tsover_mul(t.x,n),t.y),d=-__tsover_mul(o,Qe);return Od(i,n,J(d),O(d)).mul(r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"rotationDeg"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"correctedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"ang",[4,"-",[1,"rotationDeg","*","DEG_TO_RAD"]]],[13,"cosR",[6,"std.cos",["ang"]]],[13,"sinR",[6,"std.sin",["ang"]]],[10,[6,[7,[6,"rotateAboutCanvasCentre",["correctedUV","aspect","cosR","sinR"]],"mul"],["cells"]]]]]},externals:{aspectOf:()=>Vt,"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,rotateAboutCanvasCentre:()=>Od}})&&e.f)({})),W9=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Vt(s),i=u(__tsover_mul(t.x,n),t.y),d=__tsover_mul(o,Qe);return Od(i,n,J(d),O(d)).mul(r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"rotationDeg"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"correctedUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"rotRad",[1,"rotationDeg","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[10,[6,[7,[6,"rotateAboutCanvasCentre",["correctedUV","aspect","cosR","sinR"]],"mul"],["cells"]]]]]},externals:{aspectOf:()=>Vt,"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,rotateAboutCanvasCentre:()=>Od}})&&e.f)({})),si=y.fn([u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return C3(mp(t),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cellId"},{type:"i",name:"variation"}],body:[0,[[10,[6,"variationFactor",[[6,"cellHash",["cellId"]],"variation"]]]]]},externals:{variationFactor:()=>C3,cellHash:()=>mp}})&&e.f)({})),$p=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(o,.5);return yp(t,s,w(__tsover_sub(s,n),0),__tsover_add(__tsover_add(s,r),n))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"field"},{type:"i",name:"lineWidth"},{type:"i",name:"pixel"},{type:"i",name:"softness"}],body:[0,[[13,"soft",[1,"softness","*",[5,"0.5"]]],[13,"lo",[6,"std.max",[[1,"lineWidth","-","soft"],[5,"0"]]]],[13,"hi",[1,[1,"lineWidth","+","pixel"],"+","soft"]],[10,[6,"lineMaskFromField",["field","lineWidth","lo","hi"]]]]]},externals:{"std.max":()=>w,lineMaskFromField:()=>yp}})&&e.f)({})),Cp=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return yp(t,s,__tsover_sub(s,r),__tsover_add(s,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"field"},{type:"i",name:"lineWidth"},{type:"i",name:"aaWidth"}],body:[0,[[10,[6,"lineMaskFromField",["field","lineWidth",[1,"lineWidth","-","aaWidth"],[1,"lineWidth","+","aaWidth"]]]]]]},externals:{lineMaskFromField:()=>yp}})&&e.f)({})),O9=y.fn([u,u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=up(t,s).mul(r);return z3(n,R3(n,o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"softness"}],body:[0,[[13,"p",[6,[7,[6,"aspectCorrectedUVFlipY",["uv","viewport"]],"mul"],["cells"]]],[10,[6,"quilezCheckerFilter",["p",[6,"footprint2",["p","softness"]]]]]]]},externals:{aspectCorrectedUVFlipY:()=>up,quilezCheckerFilter:()=>z3,footprint2:()=>R3}})&&e.f)({})),I2=y.fn([u,u,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_mul(r,Qe),l=Vt(s),c=__tsover_add(_p(Ja(t,l),J(d),O(d)),__tsover_mul(l,.5));return __tsover_add(__tsover_add(__tsover_mul(c,o),n),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"},{type:"i",name:"density"},{type:"i",name:"animTime"},{type:"i",name:"offset"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"rotatedCoord",[1,[6,"directionalProjection",[[6,"canvasCentredDelta",["uv","aspect"]],[6,"std.cos",["angleRad"]],[6,"std.sin",["angleRad"]]]],"+",[1,"aspect","*",[5,"0.5"]]]],[10,[1,[1,[1,"rotatedCoord","*","density"],"+","animTime"],"+","offset"]]]]},externals:{DEG_TO_RAD:()=>Qe,aspectOf:()=>Vt,directionalProjection:()=>_p,canvasCentredDelta:()=>Ja,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),EF=y.fn([u,u,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=I2(t,s,r,o,n,i);return U3(c,hp(c,l),d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"},{type:"i",name:"density"},{type:"i",name:"animTime"},{type:"i",name:"offset"},{type:"i",name:"balance"},{type:"i",name:"softness"}],body:[0,[[13,"p",[6,"stripeCoordP",["uv","viewport","angle","density","animTime","offset"]]],[10,[6,"quilezStepFilter",["p",[6,"footprint1",["p","softness"]],"balance"]]]]]},externals:{stripeCoordP:()=>I2,quilezStepFilter:()=>U3,footprint1:()=>hp}})&&e.f)({})),V9=y.fn([u,u,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_mul(o,Qe),_=J(c),p=O(c),f=ln(Ja(t,Vt(s)),_,-p),h=__tsover_mul(W(__tsover_sub(ve(__tsover_mul(f.y,r)),.5)),2),g=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(f.x,r),__tsover_mul(h,.5)),l),d),x=ve(g),T=As(g);return ce(__tsover_sub(__tsover_sub(n,i),T),__tsover_add(__tsover_add(n,i),T),x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"count"},{type:"i",name:"angle"},{type:"i",name:"balance"},{type:"i",name:"softness"},{type:"i",name:"offset"},{type:"i",name:"animTime"}],body:[0,[[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"rot",[6,"rotate2",[[6,"canvasCentredDelta",["uv",[6,"aspectOf",["viewport"]]]],"cosA",[4,"-","sinA"]]]],[13,"zigzag",[1,[6,"std.abs",[[1,[6,"std.fract",[[1,[7,"rot","y"],"*","count"]]],"-",[5,"0.5"]]]],"*",[5,"2"]]],[13,"stripeCoord",[1,[1,[1,[1,[7,"rot","x"],"*","count"],"+",[1,"zigzag","*",[5,"0.5"]]],"+","animTime"],"+","offset"]],[13,"pattern",[6,"std.fract",["stripeCoord"]]],[13,"fw",[6,"std.fwidth",["stripeCoord"]]],[10,[6,"std.smoothstep",[[1,[1,"balance","-","softness"],"-","fw"],[1,[1,"balance","+","softness"],"+","fw"],"pattern"]]]]]},externals:{DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,rotate2:()=>ln,canvasCentredDelta:()=>Ja,aspectOf:()=>Vt,"std.abs":()=>W,"std.fract":()=>ve,"std.fwidth":()=>As,"std.smoothstep":()=>ce}})&&e.f)({})),PF=y.fn([u,a,a,a,a,a,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_div(l.x,l.y),_=te(u(__tsover_sub(__tsover_mul(d.x,c),__tsover_mul(t.x,c)),__tsover_sub(d.y,__tsover_sub(1,t.y)))),p=O(__tsover_add(__tsover_sub(__tsover_mul(_,s),i),n)),f=__tsover_sub(__tsover_mul(o,2),1),h=ce(__tsover_sub(f,r),__tsover_add(f,r),p);return __tsover_sub(1,h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"frequency"},{type:"i",name:"softness"},{type:"i",name:"thickness"},{type:"i",name:"phase"},{type:"i",name:"animTime"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"dx",[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,[7,"center","x"],"*","aspect"]]],[13,"dy",[1,[7,"uv","y"],"-",[1,[5,"1"],"-",[7,"center","y"]]]],[13,"dist",[6,"std.length",[[6,"d.vec2f",["dx","dy"]]]]],[13,"waveInput",[1,[1,[1,"dist","*","frequency"],"-","animTime"],"+","phase"]],[13,"baseWave",[6,"std.sin",["waveInput"]]],[13,"thicknessThreshold",[1,[1,"thickness","*",[5,"2"]],"-",[5,"1"]]],[13,"banded",[6,"std.smoothstep",[[1,"thicknessThreshold","-","softness"],[1,"thicknessThreshold","+","softness"],"baseWave"]]],[10,[1,[5,"1"],"-","banded"]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u,"std.sin":()=>O,"std.smoothstep":()=>ce}})&&e.f)({})),Y2=y.fn([a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return u(ve(__tsover_mul(O(__tsover_mul(t,127.1)),43758.5453123)),ve(__tsover_mul(O(__tsover_mul(t,311.7)),38291.3421)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"idx"}],body:[0,[[10,[6,"d.vec2f",[[6,"std.fract",[[1,[6,"std.sin",[[1,"idx","*",[5,"127.1"]]]],"*",[5,"43758.5453123"]]]],[6,"std.fract",[[1,[6,"std.sin",[[1,"idx","*",[5,"311.7"]]]],"*",[5,"38291.3421"]]]]]]]]]},externals:{"d.vec2f":()=>u,"std.fract":()=>ve,"std.sin":()=>O}})&&e.f)({})),W2=y.fn([a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_mul(o,n),c=__tsover_mul(w(__tsover_sub(t,s),0),r),_=z(__tsover_div(c,w(l,1e-4)),0,1),p=__tsover_mul(o,$e(w(__tsover_sub(1,__tsover_mul(_,_)),0)));return __tsover_mul(__tsover_sub(1,ce(w(__tsover_sub(p,i),0),w(__tsover_add(p,i),.001),d)),ce(0,i,p))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"vPeriodic"},{type:"i",name:"trailLen"},{type:"i",name:"density"},{type:"i",name:"hw"},{type:"i",name:"rounding"},{type:"i",name:"fwU"},{type:"i",name:"distFromCenter"}],body:[0,[[13,"maxDepth",[1,"hw","*","rounding"]],[13,"gapDist",[1,[6,"std.max",[[1,"vPeriodic","-","trailLen"],[5,"0"]]],"*","density"]],[13,"tcap",[6,"std.clamp",[[1,"gapDist","/",[6,"std.max",["maxDepth",[5,"0.0001"]]]],[5,"0"],[5,"1"]]]],[13,"capHW",[1,"hw","*",[6,"std.sqrt",[[6,"std.max",[[1,[5,"1"],"-",[1,"tcap","*","tcap"]],[5,"0"]]]]]]],[10,[1,[1,[5,"1"],"-",[6,"std.smoothstep",[[6,"std.max",[[1,"capHW","-","fwU"],[5,"0"]]],[6,"std.max",[[1,"capHW","+","fwU"],[5,"0.001"]]],"distFromCenter"]]],"*",[6,"std.smoothstep",[[5,"0"],"fwU","capHW"]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,"std.sqrt":()=>$e,"std.smoothstep":()=>ce}})&&e.f)({})),O2=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_sub(__tsover_mul(2,s),1),o=w(__tsover_mul(2,__tsover_sub(1,s)),.001);return z(__tsover_div(__tsover_add(t,r),o),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"withinStreak"},{type:"i",name:"balance"}],body:[0,[[13,"balanceNum",[1,[1,[5,"2"],"*","balance"],"-",[5,"1"]]],[13,"balanceDen",[6,"std.max",[[1,[5,"2"],"*",[1,[5,"1"],"-","balance"]],[5,"0.001"]]]],[10,[6,"std.clamp",[[1,[1,"withinStreak","+","balanceNum"],"/","balanceDen"],[5,"0"],[5,"1"]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z}})&&e.f)({})),MF=y.fn([u,u,a,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_)=>{"use gpu";let p=Vt(s),f=u(__tsover_mul(t.x,p),t.y).sub(u(__tsover_mul(p,.5),.5)),h=__tsover_mul(r,Qe),g=J(h),x=O(h),T=__tsover_sub(__tsover_mul(f.y,g),__tsover_mul(f.x,x)),S=__tsover_add(__tsover_mul(f.x,g),__tsover_mul(f.y,x)),A=__tsover_mul(T,o),E=K(A),M=ve(A),$=Y2(E),L=__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub($.x,.5),n),2)),B=$.y,D=ve(__tsover_mul(_,L)),G=ve(__tsover_sub(__tsover_sub(S,D),B)),I=i,X=z(__tsover_div(G,I),0,1),H=z(As(S),.001,.1),ee=z(__tsover_mul(As(T),o),.001,.1),Q=__tsover_sub(1,ce(__tsover_sub(I,H),__tsover_add(I,H),G)),de=__tsover_mul(d,.5),Ee=W(__tsover_sub(M,.5)),he=__tsover_sub(1,ce(__tsover_sub(de,ee),__tsover_add(de,ee),Ee));return u(w(__tsover_mul(Q,he),W2(G,I,o,de,l,ee,Ee)),O2(X,c))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"vp"},{type:"i",name:"angle"},{type:"i",name:"density"},{type:"i",name:"speedVariance"},{type:"i",name:"trailLength"},{type:"i",name:"strokeWidth"},{type:"i",name:"rounding"},{type:"i",name:"balance"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["vp"]]],[13,"corrUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centeredUV",[6,[7,"corrUV","sub"],[[6,"d.vec2f",[[1,"aspect","*",[5,"0.5"]],[5,"0.5"]]]]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"u",[1,[1,[7,"centeredUV","y"],"*","cosA"],"-",[1,[7,"centeredUV","x"],"*","sinA"]]],[13,"v",[1,[1,[7,"centeredUV","x"],"*","cosA"],"+",[1,[7,"centeredUV","y"],"*","sinA"]]],[13,"colF",[1,"u","*","density"]],[13,"colIdx",[6,"std.floor",["colF"]]],[13,"colLocalU",[6,"std.fract",["colF"]]],[13,"h",[6,"colHash",["colIdx"]]],[13,"speedMod",[1,[5,"1"],"+",[1,[1,[1,[7,"h","x"],"-",[5,"0.5"]],"*","speedVariance"],"*",[5,"2"]]]],[13,"phase",[7,"h","y"]],[13,"animOffset",[6,"std.fract",[[1,"animTime","*","speedMod"]]]],[13,"vPeriodic",[6,"std.fract",[[1,[1,"v","-","animOffset"],"-","phase"]]]],[13,"trailLen","trailLength"],[13,"withinStreak",[6,"std.clamp",[[1,"vPeriodic","/","trailLen"],[5,"0"],[5,"1"]]]],[13,"fwV",[6,"std.clamp",[[6,"std.fwidth",["v"]],[5,"0.001"],[5,"0.1"]]]],[13,"fwU",[6,"std.clamp",[[1,[6,"std.fwidth",["u"]],"*","density"],[5,"0.001"],[5,"0.1"]]]],[13,"streakMask",[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"trailLen","-","fwV"],[1,"trailLen","+","fwV"],"vPeriodic"]]]],[13,"hw",[1,"strokeWidth","*",[5,"0.5"]]],[13,"distFromCenter",[6,"std.abs",[[1,"colLocalU","-",[5,"0.5"]]]]],[13,"widthMask",[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"hw","-","fwU"],[1,"hw","+","fwU"],"distFromCenter"]]]],[13,"rectMask",[1,"streakMask","*","widthMask"]],[13,"capAlpha",[6,"fallingCapAlpha",["vPeriodic","trailLen","density","hw","rounding","fwU","distFromCenter"]]],[13,"finalMask",[6,"std.max",["rectMask","capAlpha"]]],[10,[6,"d.vec2f",["finalMask",[6,"fallingBalanceRemap",["withinStreak","balance"]]]]]]]},externals:{"geom.aspectOf":()=>Vt,"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.floor":()=>K,"std.fract":()=>ve,colHash:()=>Y2,"std.clamp":()=>z,"std.fwidth":()=>As,"std.smoothstep":()=>ce,"std.abs":()=>W,fallingCapAlpha:()=>W2,"std.max":()=>w,fallingBalanceRemap:()=>O2}})&&e.f)({})),N9=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return $3(t,s,r,__tsover_mul(o,Qe))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"rotation"}],body:[0,[[10,[6,"cellCentreUVRotated",["uv","viewport","cells",[1,"rotation","*","DEG_TO_RAD"]]]]]]},externals:{cellCentreUVRotated:()=>$3,DEG_TO_RAD:()=>Qe}})&&e.f)({})),q9=y.fn([u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(s,.01),i=w(n,1e-4),d=__tsover_mul(i,2),l=__tsover_div(1,d),c=t.add(i),_=Dd(c),p=Ld(c),f=__tsover_add(w(w(W(_.x),W(p.x)),1e-5),r),h=__tsover_add(w(w(W(_.y),W(p.y)),1e-5),r),g=Q1(c.x,f,l),x=Q1(c.y,h,l),T=__tsover_mul(__tsover_sub(1,g),__tsover_sub(1,x));return u(__tsover_mul(__tsover_sub(1,T),ot(1e-4,n)),si(K(t),o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"gridUV"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"variation"}],body:[0,[[13,"lineWidth",[1,"thickness","*",[5,"0.01"]]],[13,"safeLine",[6,"std.max",["lineWidth",[5,"0.0001"]]]],[13,"lineFraction",[1,"safeLine","*",[5,"2"]]],[13,"N",[1,[5,"1"],"/","lineFraction"]],[13,"p",[6,[7,"gridUV","add"],["safeLine"]]],[13,"dpx",[6,"std.dpdx",["p"]]],[13,"dpy",[6,"std.dpdy",["p"]]],[13,"wx",[1,[6,"std.max",[[6,"std.max",[[6,"std.abs",[[7,"dpx","x"]]],[6,"std.abs",[[7,"dpy","x"]]]]],[5,"0.00001"]]],"+","softness"]],[13,"wy",[1,[6,"std.max",[[6,"std.max",[[6,"std.abs",[[7,"dpx","y"]]],[6,"std.abs",[[7,"dpy","y"]]]]],[5,"0.00001"]]],"+","softness"]],[13,"iX",[6,"quilezLineFilterAxis",[[7,"p","x"],"wx","N"]]],[13,"iY",[6,"quilezLineFilterAxis",[[7,"p","y"],"wy","N"]]],[13,"gapBoth",[1,[1,[5,"1"],"-","iX"],"*",[1,[5,"1"],"-","iY"]]],[13,"gridMask",[1,[1,[5,"1"],"-","gapBoth"],"*",[6,"std.step",[[5,"0.0001"],"lineWidth"]]]],[13,"variedFactor",[6,"cellVariation",[[6,"std.floor",["gridUV"]],"variation"]]],[10,[6,"d.vec2f",["gridMask","variedFactor"]]]]]},externals:{"std.max":()=>w,"std.dpdx":()=>Dd,"std.dpdy":()=>Ld,"std.abs":()=>W,quilezLineFilterAxis:()=>Q1,"std.step":()=>ot,cellVariation:()=>si,"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})),X9=y.fn([u,u,a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c)=>{"use gpu";let _=up(t,s),p=_.mul(r),f=K(p.y),h=vp(fp(f),i),g=__tsover_mul(l,h),x=__tsover_mul(n,Wd(f,2)),T=Vd(u(__tsover_sub(__tsover_sub(p.x,x),g),p.y)),S=te(T.local.sub(.5)),A=te(As(_.mul(r))),E=G3(S,__tsover_mul(o,.5),A),M=ve(__tsover_mul(O(__tsover_add(__tsover_mul(T.cell.x,12.9898),__tsover_mul(T.cell.y,78.233))),43758.5453)),$=__tsover_add(__tsover_mul(c,2),__tsover_mul(M,Et)),L=Z(1,__tsover_add(__tsover_mul(O($),.5),.5),d);return __tsover_mul(E,L)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"density"},{type:"i",name:"dotSize"},{type:"i",name:"offset"},{type:"i",name:"speedVariance"},{type:"i",name:"twinkle"},{type:"i",name:"animTime"},{type:"i",name:"time"}],body:[0,[[13,"correctedUV",[6,"aspectCorrectedUVFlipY",["uv","viewport"]]],[13,"gridUV",[6,[7,"correctedUV","mul"],["density"]]],[13,"rowIndex",[6,"std.floor",[[7,"gridUV","y"]]]],[13,"speedMod",[6,"rowSpeedMultiplier",[[6,"rowSpeedHash",["rowIndex"]],"speedVariance"]]],[13,"drift",[1,"animTime","*","speedMod"]],[13,"staticStagger",[1,"offset","*",[6,"flooredMod1",["rowIndex",[5,"2"]]]]],[13,"shiftedGrid",[6,"d.vec2f",[[1,[1,[7,"gridUV","x"],"-","staticStagger"],"-","drift"],[7,"gridUV","y"]]]],[13,"tile",[6,"squareTiling",["shiftedGrid"]]],[13,"centerDistance",[6,"std.length",[[6,[7,[7,"tile","local"],"sub"],[[5,"0.5"]]]]]],[13,"pixelSize",[6,"std.length",[[6,"std.fwidth",[[6,[7,"correctedUV","mul"],["density"]]]]]]],[13,"coverage",[6,"discCoverage",["centerDistance",[1,"dotSize","*",[5,"0.5"]],"pixelSize"]]],[13,"dotPhase",[6,"std.fract",[[1,[6,"std.sin",[[1,[1,[7,[7,"tile","cell"],"x"],"*",[5,"12.9898"]],"+",[1,[7,[7,"tile","cell"],"y"],"*",[5,"78.233"]]]]],"*",[5,"43758.5453"]]]]],[13,"twinkleTime",[1,[1,"time","*",[5,"2"]],"+",[1,"dotPhase","*","TAU"]]],[13,"twinkleValue",[1,[1,[6,"std.sin",["twinkleTime"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"twinkleModifier",[6,"std.mix",[[5,"1"],"twinkleValue","twinkle"]]],[10,[1,"coverage","*","twinkleModifier"]]]]},externals:{aspectCorrectedUVFlipY:()=>up,"std.floor":()=>K,rowSpeedMultiplier:()=>vp,rowSpeedHash:()=>fp,flooredMod1:()=>Wd,"d.vec2f":()=>u,squareTiling:()=>Vd,"std.length":()=>te,"std.fwidth":()=>As,discCoverage:()=>G3,"std.fract":()=>ve,"std.sin":()=>O,TAU:()=>Et,"std.mix":()=>Z}})&&e.f)({})),H9=y.fn([u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=pp(t,u(Za,1)),i=si(u(Wa(__tsover_mul(n.id.x,B2)),Wa(__tsover_mul(n.id.y,2))),o),d=u(W(n.gv.x),W(n.gv.y)),l=w(le(d,u(bd,.5)),d.y);return u($p(__tsover_sub(.5,l),__tsover_mul(s,.01),__tsover_mul(As(t.x),.5),r),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"scaledUV"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"variation"}],body:[0,[[13,"hex",[6,"hexTiling",["scaledUV",[6,"d.vec2f",["SQRT3",[5,"1"]]]]]],[13,"ix",[6,"std.round",[[1,[7,[7,"hex","id"],"x"],"*","INV_SQRT3_2"]]]],[13,"iy",[6,"std.round",[[1,[7,[7,"hex","id"],"y"],"*",[5,"2"]]]]],[13,"variedFactor",[6,"cellVariation",[[6,"d.vec2f",["ix","iy"]],"variation"]]],[13,"pAbs",[6,"d.vec2f",[[6,"std.abs",[[7,[7,"hex","gv"],"x"]]],[6,"std.abs",[[7,[7,"hex","gv"],"y"]]]]]],[13,"hexDist",[6,"std.max",[[6,"std.dot",["pAbs",[6,"d.vec2f",["SQRT3_2",[5,"0.5"]]]]],[7,"pAbs","y"]]]],[13,"edgeDist",[1,[5,"0.5"],"-","hexDist"]],[13,"lineWidth",[1,"thickness","*",[5,"0.01"]]],[13,"pixel",[1,[6,"std.fwidth",[[7,"scaledUV","x"]]],"*",[5,"0.5"]]],[13,"lineMask",[6,"strokeBandFloored",["edgeDist","lineWidth","pixel","softness"]]],[10,[6,"d.vec2f",["lineMask","variedFactor"]]]]]},externals:{hexTiling:()=>pp,"d.vec2f":()=>u,SQRT3:()=>Za,"std.round":()=>Wa,INV_SQRT3_2:()=>B2,cellVariation:()=>si,"std.abs":()=>W,"std.max":()=>w,"std.dot":()=>le,SQRT3_2:()=>bd,"std.fwidth":()=>As,strokeBandFloored:()=>$p}})&&e.f)({})),j9=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=k3(t),l=vp(fp(K(d.y)),n),c=__tsover_mul(i,l),_=u(__tsover_sub(d.x,c),d.y),p=K(_),f=ve(_),h=ot(1,__tsover_add(f.x,f.y)),g=si(u(__tsover_add(__tsover_mul(p.x,2),h),p.y),o);return u(Cp(ue(ue(ue(f.x,__tsover_sub(1,f.x)),ue(f.y,__tsover_sub(1,f.y))),W(__tsover_sub(__tsover_add(f.x,f.y),1))),__tsover_mul(s,.02),__tsover_add(w(As(d.x),As(d.y)),__tsover_mul(r,.5))),g)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"variation"},{type:"i",name:"speedVariance"},{type:"i",name:"animTime"}],body:[0,[[13,"ps",[6,"triLattice",["p"]]],[13,"rowIndex",[6,"std.floor",[[7,"ps","y"]]]],[13,"speedMod",[6,"rowSpeedMultiplier",[[6,"rowSpeedHash",["rowIndex"]],"speedVariance"]]],[13,"drift",[1,"animTime","*","speedMod"]],[13,"psShifted",[6,"d.vec2f",[[1,[7,"ps","x"],"-","drift"],[7,"ps","y"]]]],[13,"cell",[6,"std.floor",["psShifted"]]],[13,"f",[6,"std.fract",["psShifted"]]],[13,"upper",[6,"std.step",[[5,"1"],[1,[7,"f","x"],"+",[7,"f","y"]]]]],[13,"triId",[6,"d.vec2f",[[1,[1,[7,"cell","x"],"*",[5,"2"]],"+","upper"],[7,"cell","y"]]]],[13,"variedFactor",[6,"cellVariation",["triId","variation"]]],[13,"dEdge",[6,"std.min",[[6,"std.min",[[6,"std.min",[[7,"f","x"],[1,[5,"1"],"-",[7,"f","x"]]]],[6,"std.min",[[7,"f","y"],[1,[5,"1"],"-",[7,"f","y"]]]]]],[6,"std.abs",[[1,[1,[7,"f","x"],"+",[7,"f","y"]],"-",[5,"1"]]]]]]],[13,"lineWidth",[1,"thickness","*",[5,"0.02"]]],[13,"aaWidth",[1,[6,"std.max",[[6,"std.fwidth",[[7,"ps","x"]]],[6,"std.fwidth",[[7,"ps","y"]]]]],"+",[1,"softness","*",[5,"0.5"]]]],[13,"lineMask",[6,"strokeBandSymmetric",["dEdge","lineWidth","aaWidth"]]],[10,[6,"d.vec2f",["lineMask","variedFactor"]]]]]},externals:{triLattice:()=>k3,"std.floor":()=>K,rowSpeedMultiplier:()=>vp,rowSpeedHash:()=>fp,"d.vec2f":()=>u,"std.fract":()=>ve,"std.step":()=>ot,cellVariation:()=>si,"std.min":()=>ue,"std.abs":()=>W,"std.max":()=>w,"std.fwidth":()=>As,strokeBandSymmetric:()=>Cp}})&&e.f)({})),V2=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Vt(s),n=Ja(t,o),i=__tsover_mul(r,Qe),d=ln(n,J(i),-O(i));return u(__tsover_add(__tsover_div(d.x,o),.5),__tsover_add(d.y,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"rotation"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"centred",[6,"canvasCentredDelta",["uv","aspect"]]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[13,"rot",[6,"rotate2",["centred","cosR",[4,"-","sinR"]]]],[10,[6,"d.vec2f",[[1,[1,[7,"rot","x"],"/","aspect"],"+",[5,"0.5"]],[1,[7,"rot","y"],"+",[5,"0.5"]]]]]]]},externals:{aspectOf:()=>Vt,canvasCentredDelta:()=>Ja,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,rotate2:()=>ln,"d.vec2f":()=>u}})&&e.f)({})),N2=y.fn([a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Wd(t,2);return u(__tsover_mul(o,.5),Z(__tsover_sub(__tsover_mul(o,2),1),__tsover_mul(__tsover_sub(ve(__tsover_mul(O(__tsover_add(t,__tsover_mul(s,.137))),43758.5453)),.5),2),r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"row"},{type:"i",name:"seed"},{type:"i",name:"speedVariance"}],body:[0,[[13,"rowMod2",[6,"flooredMod1",["row",[5,"2"]]]],[13,"rowOffset",[1,"rowMod2","*",[5,"0.5"]]],[13,"rowDir",[1,[1,"rowMod2","*",[5,"2"]],"-",[5,"1"]]],[13,"rowHash",[1,[1,[6,"std.fract",[[1,[6,"std.sin",[[1,"row","+",[1,"seed","*",[5,"0.137"]]]]],"*",[5,"43758.5453"]]]],"-",[5,"0.5"]],"*",[5,"2"]]],[10,[6,"d.vec2f",["rowOffset",[6,"std.mix",["rowDir","rowHash","speedVariance"]]]]]]]},externals:{flooredMod1:()=>Wd,"std.fract":()=>ve,"std.sin":()=>O,"d.vec2f":()=>u,"std.mix":()=>Z}})&&e.f)({})),q2=y.fn([u,u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Sd(t.x,__tsover_sub(s.x,r.x),__tsover_add(s.x,r.x)),n=Sd(t.y,__tsover_sub(s.y,r.y),__tsover_add(s.y,r.y));return __tsover_mul(o,n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cellUV"},{type:"i",name:"mortarUV"},{type:"i",name:"aaUV"}],body:[0,[[13,"brickU",[6,"bandMask",[[7,"cellUV","x"],[1,[7,"mortarUV","x"],"-",[7,"aaUV","x"]],[1,[7,"mortarUV","x"],"+",[7,"aaUV","x"]]]]],[13,"brickV",[6,"bandMask",[[7,"cellUV","y"],[1,[7,"mortarUV","y"],"-",[7,"aaUV","y"]],[1,[7,"mortarUV","y"],"+",[7,"aaUV","y"]]]]],[10,[1,"brickU","*","brickV"]]]]},externals:{bandMask:()=>Sd}})&&e.f)({})),K9=y.fn([u,u,a,a,a,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p,f)=>{"use gpu";let h=Vt(s),g=V2(t,s,l),x=g.x,T=g.y,S=__tsover_mul(n,.3),A=__tsover_div(__tsover_mul(__tsover_mul(S,h),o),r),E=K(__tsover_mul(T,o)),M=N2(E,p,_),$=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(x,r),M.x),__tsover_mul(f,M.y)),c),L=__tsover_mul(T,o),B=ve($),D=ve(L),G=__tsover_mul(i,.5),I=__tsover_add(As($),G),X=__tsover_add(As(L),G);return u(q2(u(B,D),u(S,A),u(I,X)),si(u(K($),E),d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cellsX"},{type:"i",name:"cellsY"},{type:"i",name:"mortar"},{type:"i",name:"softness"},{type:"i",name:"variation"},{type:"i",name:"rotation"},{type:"i",name:"offset"},{type:"i",name:"speedVariance"},{type:"i",name:"seed"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"frame",[6,"brickFrame",["uv","viewport","rotation"]]],[13,"u",[7,"frame","x"]],[13,"v",[7,"frame","y"]],[13,"mortarU",[1,"mortar","*",[5,"0.3"]]],[13,"mortarV",[1,[1,[1,"mortarU","*","aspect"],"*","cellsY"],"/","cellsX"]],[13,"row",[6,"std.floor",[[1,"v","*","cellsY"]]]],[13,"stagger",[6,"brickRowStagger",["row","seed","speedVariance"]]],[13,"brickArg",[1,[1,[1,[1,"u","*","cellsX"],"+",[7,"stagger","x"]],"+",[1,"animTime","*",[7,"stagger","y"]]],"+","offset"]],[13,"vScaled",[1,"v","*","cellsY"]],[13,"cellU",[6,"std.fract",["brickArg"]]],[13,"cellV",[6,"std.fract",["vScaled"]]],[13,"soft",[1,"softness","*",[5,"0.5"]]],[13,"aaU",[1,[6,"std.fwidth",["brickArg"]],"+","soft"]],[13,"aaV",[1,[6,"std.fwidth",["vScaled"]],"+","soft"]],[13,"brickMask",[6,"brickMortarMask",[[6,"d.vec2f",["cellU","cellV"]],[6,"d.vec2f",["mortarU","mortarV"]],[6,"d.vec2f",["aaU","aaV"]]]]],[13,"brickId",[6,"d.vec2f",[[6,"std.floor",["brickArg"]],"row"]]],[13,"variedFactor",[6,"cellVariation",["brickId","variation"]]],[10,[6,"d.vec2f",["brickMask","variedFactor"]]]]]},externals:{aspectOf:()=>Vt,brickFrame:()=>V2,"std.floor":()=>K,brickRowStagger:()=>N2,"std.fract":()=>ve,"std.fwidth":()=>As,brickMortarMask:()=>q2,"d.vec2f":()=>u,cellVariation:()=>si}})&&e.f)({})),X2=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=le(t,u(127.1,311.7));return ve(__tsover_mul(O(s),43758.5453))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"h",[6,"std.dot",["p",[6,"d.vec2f",[[5,"127.1"],[5,"311.7"]]]]]],[10,[6,"std.fract",[[1,[6,"std.sin",["h"]],"*",[5,"43758.5453"]]]]]]]},externals:{"std.dot":()=>le,"d.vec2f":()=>u,"std.fract":()=>ve,"std.sin":()=>O}})&&e.f)({})),Z9=y.fn([u,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Vd(t),i=X2(u(__tsover_add(n.cell.x,o),__tsover_add(n.cell.y,o)))>.5,d=F(a(0),a(1),i),l=F(a(1),a(0),i);return $p(ue(W(__tsover_sub(te(u(__tsover_sub(n.local.x,d),n.local.y)),.5)),W(__tsover_sub(te(u(__tsover_sub(n.local.x,l),__tsover_sub(n.local.y,1))),.5))),__tsover_mul(s,.005),__tsover_mul(As(t.x),.5),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"scaledUV"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"seed"}],body:[0,[[13,"tile",[6,"squareTiling",["scaledUV"]]],[13,"h",[6,"truchetHash",[[6,"d.vec2f",[[1,[7,[7,"tile","cell"],"x"],"+","seed"],[1,[7,[7,"tile","cell"],"y"],"+","seed"]]]]]],[13,"flip",[1,"h",">",[5,"0.5"]]],[13,"c1x",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],"flip"]]],[13,"c2x",[6,"std.select",[[6,"d.f32",[[5,"1"]]],[6,"d.f32",[[5,"0"]]],"flip"]]],[13,"d1",[6,"std.abs",[[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,[7,"tile","local"],"x"],"-","c1x"],[7,[7,"tile","local"],"y"]]]]],"-",[5,"0.5"]]]]],[13,"d2",[6,"std.abs",[[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,[7,"tile","local"],"x"],"-","c2x"],[1,[7,[7,"tile","local"],"y"],"-",[5,"1"]]]]]],"-",[5,"0.5"]]]]],[13,"arcDist",[6,"std.min",["d1","d2"]]],[13,"lineWidth",[1,"thickness","*",[5,"0.005"]]],[13,"pixel",[1,[6,"std.fwidth",[[7,"scaledUV","x"]]],"*",[5,"0.5"]]],[10,[6,"strokeBandFloored",["arcDist","lineWidth","pixel","softness"]]]]]},externals:{squareTiling:()=>Vd,truchetHash:()=>X2,"d.vec2f":()=>u,"std.select":()=>F,"d.f32":()=>a,"std.abs":()=>W,"std.length":()=>te,"std.min":()=>ue,"std.fwidth":()=>As,strokeBandFloored:()=>$p}})&&e.f)({})),Q9=y.fn([u,a,b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Vd(t),i=__tsover_mul(As(t.x),.5),d=Sd(n.local.y,s,__tsover_add(s,i)),l=Sd(n.local.x,s,__tsover_add(s,i)),c=Wd(__tsover_add(n.cell.x,n.cell.y),2),_=__tsover_mul(d,l),p=z(__tsover_sub(d,__tsover_mul(_,c)),0,1),f=z(__tsover_sub(l,__tsover_mul(_,__tsover_sub(1,c))),0,1),h=__tsover_mul(r.w,p),g=__tsover_mul(o.w,f),x=z(__tsover_add(h,g),0,1),T=w(__tsover_add(h,g),.001);return b(__tsover_div(__tsover_add(__tsover_mul(r.x,h),__tsover_mul(o.x,g)),T),__tsover_div(__tsover_add(__tsover_mul(r.y,h),__tsover_mul(o.y,g)),T),__tsover_div(__tsover_add(__tsover_mul(r.z,h),__tsover_mul(o.z,g)),T),x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"scaledUV"},{type:"i",name:"gap"},{type:"i",name:"colorA"},{type:"i",name:"colorB"}],body:[0,[[13,"tile",[6,"squareTiling",["scaledUV"]]],[13,"pixel",[1,[6,"std.fwidth",[[7,"scaledUV","x"]]],"*",[5,"0.5"]]],[13,"hBand",[6,"bandMask",[[7,[7,"tile","local"],"y"],"gap",[1,"gap","+","pixel"]]]],[13,"vBand",[6,"bandMask",[[7,[7,"tile","local"],"x"],"gap",[1,"gap","+","pixel"]]]],[13,"isHTopFloat",[6,"flooredMod1",[[1,[7,[7,"tile","cell"],"x"],"+",[7,[7,"tile","cell"],"y"]],[5,"2"]]]],[13,"intersection",[1,"hBand","*","vBand"]],[13,"hVis",[6,"std.clamp",[[1,"hBand","-",[1,"intersection","*","isHTopFloat"]],[5,"0"],[5,"1"]]]],[13,"vVis",[6,"std.clamp",[[1,"vBand","-",[1,"intersection","*",[1,[5,"1"],"-","isHTopFloat"]]],[5,"0"],[5,"1"]]]],[13,"weightA",[1,[7,"colorA","w"],"*","hVis"]],[13,"weightB",[1,[7,"colorB","w"],"*","vVis"]],[13,"totalAlpha",[6,"std.clamp",[[1,"weightA","+","weightB"],[5,"0"],[5,"1"]]]],[13,"safeWeight",[6,"std.max",[[1,"weightA","+","weightB"],[5,"0.001"]]]],[13,"r",[1,[1,[1,[7,"colorA","x"],"*","weightA"],"+",[1,[7,"colorB","x"],"*","weightB"]],"/","safeWeight"]],[13,"g",[1,[1,[1,[7,"colorA","y"],"*","weightA"],"+",[1,[7,"colorB","y"],"*","weightB"]],"/","safeWeight"]],[13,"b",[1,[1,[1,[7,"colorA","z"],"*","weightA"],"+",[1,[7,"colorB","z"],"*","weightB"]],"/","safeWeight"]],[10,[6,"d.vec4f",["r","g","b","totalAlpha"]]]]]},externals:{squareTiling:()=>Vd,"std.fwidth":()=>As,bandMask:()=>Sd,flooredMod1:()=>Wd,"std.clamp":()=>z,"std.max":()=>w,"d.vec4f":()=>b}})&&e.f)({})),H2=2/Math.sqrt(3),J9=y.fn([u,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=pp(t,u(1,Za)),n=le(o.gv,u(0,1)),i=le(o.gv,u(-bd,-.5)),d=le(o.gv,u(bd,-.5)),l=n>=w(i,d),c=F(F(.74,.5,i>=d),1,l),_=mp(u(Wa(__tsover_mul(o.id.x,2)),Wa(__tsover_mul(o.id.y,H2)))),p=w(n,w(i,d)),f=ue(n,ue(i,d)),h=__tsover_sub(__tsover_sub(__tsover_add(__tsover_add(n,i),d),p),f),g=__tsover_sub(p,h),x=u(W(o.gv.x),W(o.gv.y)),T=w(le(x,u(.5,bd)),x.x);return v(_,c,Cp(ue(g,__tsover_sub(.5,T)),__tsover_mul(s,.02),__tsover_add(__tsover_mul(As(t.x),.5),__tsover_mul(r,.5))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"scaledUV"},{type:"i",name:"thickness"},{type:"i",name:"softness"}],body:[0,[[13,"hex",[6,"hexTiling",["scaledUV",[6,"d.vec2f",[[5,"1"],"SQRT3"]]]]],[13,"s0",[6,"std.dot",[[7,"hex","gv"],[6,"d.vec2f",[[5,"0"],[5,"1"]]]]]],[13,"s1",[6,"std.dot",[[7,"hex","gv"],[6,"d.vec2f",[[4,"-","SQRT3_2"],[4,"-",[5,"0.5"]]]]]]],[13,"s2",[6,"std.dot",[[7,"hex","gv"],[6,"d.vec2f",["SQRT3_2",[4,"-",[5,"0.5"]]]]]]],[13,"isTop",[1,"s0",">=",[6,"std.max",["s1","s2"]]]],[13,"isLeft",[1,"s1",">=","s2"]],[13,"tone",[6,"std.select",[[6,"std.select",[[5,"0.74"],[5,"0.5"],"isLeft"]],[5,"1"],"isTop"]]],[13,"ix",[6,"std.round",[[1,[7,[7,"hex","id"],"x"],"*",[5,"2"]]]]],[13,"iy",[6,"std.round",[[1,[7,[7,"hex","id"],"y"],"*","INV_2_SQRT3"]]]],[13,"rand",[6,"cellHash",[[6,"d.vec2f",["ix","iy"]]]]],[13,"mx",[6,"std.max",["s0",[6,"std.max",["s1","s2"]]]]],[13,"mn",[6,"std.min",["s0",[6,"std.min",["s1","s2"]]]]],[13,"midScore",[1,[1,[1,[1,"s0","+","s1"],"+","s2"],"-","mx"],"-","mn"]],[13,"internal",[1,"mx","-","midScore"]],[13,"pAbs",[6,"d.vec2f",[[6,"std.abs",[[7,[7,"hex","gv"],"x"]]],[6,"std.abs",[[7,[7,"hex","gv"],"y"]]]]]],[13,"hexDist",[6,"std.max",[[6,"std.dot",["pAbs",[6,"d.vec2f",[[5,"0.5"],"SQRT3_2"]]]],[7,"pAbs","x"]]]],[13,"rimDist",[1,[5,"0.5"],"-","hexDist"]],[13,"edgeField",[6,"std.min",["internal","rimDist"]]],[13,"lineWidth",[1,"thickness","*",[5,"0.02"]]],[13,"aaWidth",[1,[1,[6,"std.fwidth",[[7,"scaledUV","x"]]],"*",[5,"0.5"]],"+",[1,"softness","*",[5,"0.5"]]]],[13,"wire",[6,"strokeBandSymmetric",["edgeField","lineWidth","aaWidth"]]],[10,[6,"d.vec3f",["rand","tone","wire"]]]]]},externals:{hexTiling:()=>pp,"d.vec2f":()=>u,SQRT3:()=>Za,"std.dot":()=>le,SQRT3_2:()=>bd,"std.max":()=>w,"std.select":()=>F,"std.round":()=>Wa,INV_2_SQRT3:()=>H2,cellHash:()=>mp,"std.min":()=>ue,"std.abs":()=>W,"std.fwidth":()=>As,strokeBandSymmetric:()=>Cp,"d.vec3f":()=>v}})&&e.f)({})),Ci=.1,eN=y.fn([b,u,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(__tsover_mul(s.x,r),s.y),d=__tsover_mul(o,Qe),l=J(d),c=O(d),_=ve(u(le(i,u(l,__tsover_mul(c,-1))),le(i,u(c,l))).mul(n)).sub(u(.5,.5)),p=le(v(t.x,t.y,t.z),v(.299,.587,.114)),f=__tsover_add(__tsover_mul(p,.7),.15),h=te(_),g=__tsover_sub(1,ce(__tsover_sub(f,Ci),__tsover_add(f,Ci),h));return b(__tsover_mul(t.x,g),__tsover_mul(t.y,g),__tsover_mul(t.z,g),__tsover_mul(t.w,g))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"childColor"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angleDeg"},{type:"i",name:"frequency"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"c",[6,"std.cos",["angleRad"]]],[13,"s",[6,"std.sin",["angleRad"]]],[13,"rotatedUV",[6,"d.vec2f",[[6,"std.dot",["aspectUV",[6,"d.vec2f",["c",[1,"s","*",[4,"-",[5,"1"]]]]]]],[6,"std.dot",["aspectUV",[6,"d.vec2f",["s","c"]]]]]]],[13,"gridUV",[6,[7,[6,"std.fract",[[6,[7,"rotatedUV","mul"],["frequency"]]]],"sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"brightness",[6,"std.dot",[[6,"d.vec3f",[[7,"childColor","x"],[7,"childColor","y"],[7,"childColor","z"]]],[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"dotSize",[1,[1,"brightness","*",[5,"0.7"]],"+",[5,"0.15"]]],[13,"dist",[6,"std.length",["gridUV"]]],[13,"dotPattern",[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"dotSize","-","SMOOTHNESS"],[1,"dotSize","+","SMOOTHNESS"],"dist"]]]],[10,[6,"d.vec4f",[[1,[7,"childColor","x"],"*","dotPattern"],[1,[7,"childColor","y"],"*","dotPattern"],[1,[7,"childColor","z"],"*","dotPattern"],[1,[7,"childColor","w"],"*","dotPattern"]]]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.fract":()=>ve,"d.vec3f":()=>v,"std.length":()=>te,"std.smoothstep":()=>ce,SMOOTHNESS:()=>Ci,"d.vec4f":()=>b}})&&e.f)({})),tN=y.fn([u,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(__tsover_add(s,r),Qe);return u(__tsover_add(t.x,__tsover_mul(J(i),o)),__tsover_add(t.y,__tsover_div(__tsover_mul(O(i),o),n)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"misprintAngleDeg"},{type:"i",name:"plateIndexDeg"},{type:"i",name:"misprint"},{type:"i",name:"aspect"}],body:[0,[[13,"angleRad",[1,[1,"misprintAngleDeg","+","plateIndexDeg"],"*","DEG_TO_RAD"]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,[6,"std.cos",["angleRad"]],"*","misprint"]],[1,[7,"uv","y"],"+",[1,[1,[6,"std.sin",["angleRad"]],"*","misprint"],"/","aspect"]]]]]]]},externals:{DEG_TO_RAD:()=>Qe,"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),qd=y.fn([b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_sub(1,w(w(t.x,t.y),t.z))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[10,[1,[5,"1"],"-",[6,"std.max",[[6,"std.max",[[7,"s","x"],[7,"s","y"]]],[7,"s","z"]]]]]]]},externals:{"std.max":()=>w}})&&e.f)({})),sN=y.fn([b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=qd(t),r=w(__tsover_sub(1,s),1e-4);return __tsover_div(__tsover_sub(__tsover_sub(1,t.x),s),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[13,"k",[6,"halftoneChannelK",["s"]]],[13,"invK",[6,"std.max",[[1,[5,"1"],"-","k"],[5,"0.0001"]]]],[10,[1,[1,[1,[5,"1"],"-",[7,"s","x"]],"-","k"],"/","invK"]]]]},externals:{halftoneChannelK:()=>qd,"std.max":()=>w}})&&e.f)({})),rN=y.fn([b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=qd(t),r=w(__tsover_sub(1,s),1e-4);return __tsover_div(__tsover_sub(__tsover_sub(1,t.y),s),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[13,"k",[6,"halftoneChannelK",["s"]]],[13,"invK",[6,"std.max",[[1,[5,"1"],"-","k"],[5,"0.0001"]]]],[10,[1,[1,[1,[5,"1"],"-",[7,"s","y"]],"-","k"],"/","invK"]]]]},externals:{halftoneChannelK:()=>qd,"std.max":()=>w}})&&e.f)({})),oN=y.fn([b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=qd(t),r=w(__tsover_sub(1,s),1e-4);return __tsover_div(__tsover_sub(__tsover_sub(1,t.z),s),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[13,"k",[6,"halftoneChannelK",["s"]]],[13,"invK",[6,"std.max",[[1,[5,"1"],"-","k"],[5,"0.0001"]]]],[10,[1,[1,[1,[5,"1"],"-",[7,"s","z"]],"-","k"],"/","invK"]]]]},externals:{halftoneChannelK:()=>qd,"std.max":()=>w}})&&e.f)({})),nN=y.fn([u,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(__tsover_mul(t.x,s),t.y),d=__tsover_mul(r,Qe),l=J(d),c=O(d),_=te(ve(u(le(i,u(l,__tsover_mul(c,-1))),le(i,u(c,l))).mul(n)).sub(u(.5,.5))),p=__tsover_sub(__tsover_mul(o,.75),Ci);return __tsover_sub(1,ce(__tsover_sub(p,Ci),__tsover_add(p,Ci),_))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angleDeg"},{type:"i",name:"intensity"},{type:"i",name:"frequency"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"c",[6,"std.cos",["angleRad"]]],[13,"s",[6,"std.sin",["angleRad"]]],[13,"rotatedUV",[6,"d.vec2f",[[6,"std.dot",["aspectUV",[6,"d.vec2f",["c",[1,"s","*",[4,"-",[5,"1"]]]]]]],[6,"std.dot",["aspectUV",[6,"d.vec2f",["s","c"]]]]]]],[13,"grid",[6,[7,[6,"std.fract",[[6,[7,"rotatedUV","mul"],["frequency"]]]],"sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"dist",[6,"std.length",["grid"]]],[13,"size",[1,[1,"intensity","*",[5,"0.75"]],"-","SMOOTHNESS"]],[10,[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"size","-","SMOOTHNESS"],[1,"size","+","SMOOTHNESS"],"dist"]]]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.fract":()=>ve,"std.length":()=>te,SMOOTHNESS:()=>Ci,"std.smoothstep":()=>ce}})&&e.f)({})),aN=y.fn([b,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return Z(v(1,1,1),v(t.x,t.y,t.z),v(__tsover_mul(s,t.w)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"inkColor"},{type:"i",name:"inkMask"}],body:[0,[[10,[6,"std.mix",[[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]],[6,"d.vec3f",[[7,"inkColor","x"],[7,"inkColor","y"],[7,"inkColor","z"]]],[6,"d.vec3f",[[1,"inkMask","*",[7,"inkColor","w"]]]]]]]]]},externals:{"std.mix":()=>Z,"d.vec3f":()=>v}})&&e.f)({})),iN=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return K(u(__tsover_div(__tsover_mul(t.x,s.x),r),__tsover_div(__tsover_mul(t.y,s.y),r)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"gridRes"},{type:"i",name:"pixelSize"}],body:[0,[[10,[6,"std.floor",[[6,"d.vec2f",[[1,[1,[7,"uv","x"],"*",[7,"gridRes","x"]],"/","pixelSize"],[1,[1,[7,"uv","y"],"*",[7,"gridRes","y"]],"/","pixelSize"]]]]]]]]},externals:{"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})),dN=y.fn([u,a,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(__tsover_div(__tsover_mul(__tsover_add(t.x,.5),s),r.x),__tsover_div(__tsover_mul(__tsover_add(t.y,.5),s),r.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"},{type:"i",name:"pixelSize"},{type:"i",name:"gridRes"}],body:[0,[[10,[6,"d.vec2f",[[1,[1,[1,[7,"coord","x"],"+",[5,"0.5"]],"*","pixelSize"],"/",[7,"gridRes","x"]],[1,[1,[1,[7,"coord","y"],"+",[5,"0.5"]],"*","pixelSize"],"/",[7,"gridRes","y"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),lN=y.fn([b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(le(v(t.x,t.y,t.z),v(.299,.587,.114)),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"c"}],body:[0,[[10,[1,[6,"std.dot",[[6,"d.vec3f",[[7,"c","x"],[7,"c","y"],[7,"c","z"]]],[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]],"*",[7,"c","w"]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),E_=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_sub(__tsover_add(__tsover_mul(s,3),__tsover_mul(t,2)),__tsover_mul(__tsover_mul(t,s),4))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"a"},{type:"i",name:"b"}],body:[0,[[10,[1,[1,[1,"b","*",[5,"3"]],"+",[1,"a","*",[5,"2"]]],"-",[1,[1,"a","*","b"],"*",[5,"4"]]]]]]},externals:{}})&&e.f)({})),cN=y.fn([u],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_sub(t.x,__tsover_mul(8,K(__tsover_div(t.x,8)))),r=__tsover_sub(t.y,__tsover_mul(8,K(__tsover_div(t.y,8)))),o=__tsover_sub(s,__tsover_mul(2,K(__tsover_div(s,2)))),n=__tsover_sub(r,__tsover_mul(2,K(__tsover_div(r,2)))),i=__tsover_sub(s,__tsover_mul(4,K(__tsover_div(s,4)))),d=__tsover_sub(r,__tsover_mul(4,K(__tsover_div(r,4)))),l=K(__tsover_div(i,2)),c=K(__tsover_div(d,2)),_=K(__tsover_div(s,4)),p=K(__tsover_div(r,4)),f=E_(o,n),h=E_(l,c),g=E_(_,p),x=__tsover_div(f,4),T=__tsover_div(__tsover_add(__tsover_mul(f,4),h),16),S=__tsover_div(__tsover_add(__tsover_add(__tsover_mul(f,16),__tsover_mul(h,4)),g),64),A=__tsover_add(__tsover_mul(oe(d),4),oe(i)),E=.75;return E=F(E,.3125,A===1),E=F(E,.375,A===2),E=F(E,.8125,A===3),E=F(E,.25,A===4),E=F(E,a(0),A===5),E=F(E,.0625,A===6),E=F(E,.4375,A===7),E=F(E,.6875,A===8),E=F(E,.1875,A===9),E=F(E,.125,A===10),E=F(E,.5,A===11),E=F(E,.9375,A===12),E=F(E,.625,A===13),E=F(E,.5625,A===14),E=F(E,.875,A===15),b(x,T,S,E)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[13,"tx",[1,[7,"coord","x"],"-",[1,[5,"8"],"*",[6,"std.floor",[[1,[7,"coord","x"],"/",[5,"8"]]]]]]],[13,"ty",[1,[7,"coord","y"],"-",[1,[5,"8"],"*",[6,"std.floor",[[1,[7,"coord","y"],"/",[5,"8"]]]]]]],[13,"x2",[1,"tx","-",[1,[5,"2"],"*",[6,"std.floor",[[1,"tx","/",[5,"2"]]]]]]],[13,"y2",[1,"ty","-",[1,[5,"2"],"*",[6,"std.floor",[[1,"ty","/",[5,"2"]]]]]]],[13,"x4",[1,"tx","-",[1,[5,"4"],"*",[6,"std.floor",[[1,"tx","/",[5,"4"]]]]]]],[13,"y4",[1,"ty","-",[1,[5,"4"],"*",[6,"std.floor",[[1,"ty","/",[5,"4"]]]]]]],[13,"x4h",[6,"std.floor",[[1,"x4","/",[5,"2"]]]]],[13,"y4h",[6,"std.floor",[[1,"y4","/",[5,"2"]]]]],[13,"x8h",[6,"std.floor",[[1,"tx","/",[5,"4"]]]]],[13,"y8h",[6,"std.floor",[[1,"ty","/",[5,"4"]]]]],[13,"b00",[6,"ditherBayerQuad",["x2","y2"]]],[13,"b11",[6,"ditherBayerQuad",["x4h","y4h"]]],[13,"b22",[6,"ditherBayerQuad",["x8h","y8h"]]],[13,"bayer2",[1,"b00","/",[5,"4"]]],[13,"bayer4",[1,[1,[1,"b00","*",[5,"4"]],"+","b11"],"/",[5,"16"]]],[13,"bayer8",[1,[1,[1,[1,"b00","*",[5,"16"]],"+",[1,"b11","*",[5,"4"]]],"+","b22"],"/",[5,"64"]]],[13,"idx",[1,[1,[6,"d.i32",["y4"]],"*",[5,"4"]],"+",[6,"d.i32",["x4"]]]],[12,"cd",[5,"0.75"]],[2,"cd","=",[6,"std.select",["cd",[5,"0.3125"],[1,"idx","===",[5,"1"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.375"],[1,"idx","===",[5,"2"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.8125"],[1,"idx","===",[5,"3"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.25"],[1,"idx","===",[5,"4"]]]]],[2,"cd","=",[6,"std.select",["cd",[6,"d.f32",[[5,"0"]]],[1,"idx","===",[5,"5"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.0625"],[1,"idx","===",[5,"6"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.4375"],[1,"idx","===",[5,"7"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.6875"],[1,"idx","===",[5,"8"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.1875"],[1,"idx","===",[5,"9"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.125"],[1,"idx","===",[5,"10"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.5"],[1,"idx","===",[5,"11"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.9375"],[1,"idx","===",[5,"12"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.625"],[1,"idx","===",[5,"13"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.5625"],[1,"idx","===",[5,"14"]]]]],[2,"cd","=",[6,"std.select",["cd",[5,"0.875"],[1,"idx","===",[5,"15"]]]]],[10,[6,"d.vec4f",["bayer2","bayer4","bayer8","cd"]]]]]},externals:{"std.floor":()=>K,ditherBayerQuad:()=>E_,"d.i32":()=>oe,"std.select":()=>F,"d.f32":()=>a,"d.vec4f":()=>b}})&&e.f)({})),uN=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.add(u(.5,.5));return ve(__tsover_mul(52.9829189,ve(__tsover_add(__tsover_mul(s.x,.06711056),__tsover_mul(s.y,.00583715)))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[13,"c",[6,[7,"coord","add"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[10,[6,"std.fract",[[1,[5,"52.9829189"],"*",[6,"std.fract",[[1,[1,[7,"c","x"],"*",[5,"0.06711056"]],"+",[1,[7,"c","y"],"*",[5,"0.00583715"]]]]]]]]]]]},externals:{"d.vec2f":()=>u,"std.fract":()=>ve}})&&e.f)({})),_N=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ms(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[10,[6,"noise.hash12",["coord"]]]]]},externals:{"noise.hash12":()=>ms}})&&e.f)({})),pN=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return ot(__tsover_add(.5,__tsover_mul(__tsover_sub(t,.5),o)),__tsover_add(s,__tsover_sub(r,.5)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"ditherValue"},{type:"i",name:"luminance"},{type:"i",name:"threshold"},{type:"i",name:"spread"}],body:[0,[[13,"adjustedDither",[1,[5,"0.5"],"+",[1,[1,"ditherValue","-",[5,"0.5"]],"*","spread"]]],[10,[6,"std.step",["adjustedDither",[1,"luminance","+",[1,"threshold","-",[5,"0.5"]]]]]]]]},externals:{"std.step":()=>ot}})&&e.f)({})),mN=y.fn([u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return K(t.div(u(8,8))).mul(u(8,8))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[10,[6,[7,[6,"std.floor",[[6,[7,"coord","div"],[[6,"d.vec2f",[[5,"8"],[5,"8"]]]]]]],"mul"],[[6,"d.vec2f",[[5,"8"],[5,"8"]]]]]]]]},externals:{"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})),fN=y.fn([u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_add(__tsover_mul(__tsover_sub(t.y,s.y),8),__tsover_sub(t.x,s.x))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"},{type:"i",name:"blockOrigin"}],body:[0,[[10,[1,[1,[1,[7,"coord","y"],"-",[7,"blockOrigin","y"]],"*",[5,"8"]],"+",[1,[7,"coord","x"],"-",[7,"blockOrigin","x"]]]]]]},externals:{}})&&e.f)({})),vN=y.fn([u,a,a,a,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";return u(__tsover_div(__tsover_mul(__tsover_add(__tsover_add(t.x,s),.5),o),n.x),__tsover_div(__tsover_mul(__tsover_add(__tsover_add(t.y,r),.5),o),n.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"blockOrigin"},{type:"i",name:"lx"},{type:"i",name:"ly"},{type:"i",name:"pixelSize"},{type:"i",name:"gridRes"}],body:[0,[[10,[6,"d.vec2f",[[1,[1,[1,[1,[7,"blockOrigin","x"],"+","lx"],"+",[5,"0.5"]],"*","pixelSize"],"/",[7,"gridRes","x"]],[1,[1,[1,[1,[7,"blockOrigin","y"],"+","ly"],"+",[5,"0.5"]],"*","pixelSize"],"/",[7,"gridRes","y"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),hN=y.fn([zt(a,64),a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_sub(.5,__tsover_sub(r,.5)),i=zt(a,8)(),d=zt(a,8)(),l=oe(s),c=a(0);for(let _=0;_<8;_++){let p=(_&1)===0;for(let f=0;f<8;f++){let h=F(__tsover_sub(7,f),f,p),g=__tsover_add(__tsover_mul(_,8),h),x=__tsover_add(t[g],i[h]),T=ot(n,x);c=F(c,T,g===l);let S=__tsover_mul(__tsover_sub(x,T),o),A=F(-1,1,p),E=__tsover_add(h,A);if(E>=0&&E<8&&(i[E]=__tsover_add(i[E],__tsover_mul(S,.4375))),_<7){let M=__tsover_sub(h,A),$=__tsover_add(h,A);M>=0&&M<8&&(d[M]=__tsover_add(d[M],__tsover_mul(S,.1875))),d[h]=__tsover_add(d[h],__tsover_mul(S,.3125)),$>=0&&$<8&&(d[$]=__tsover_add(d[$],__tsover_mul(S,.0625)))}}for(let f=0;f<8;f++)i[f]=d[f],d[f]=a(0)}return c}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lum"},{type:"i",name:"lic"},{type:"i",name:"threshold"},{type:"i",name:"spread"}],body:[0,[[13,"thr",[1,[5,"0.5"],"-",[1,"threshold","-",[5,"0.5"]]]],[13,"ecur",[6,[6,"d.arrayOf",["d.f32",[5,"8"]]],[]]],[13,"enext",[6,[6,"d.arrayOf",["d.f32",[5,"8"]]],[]]],[13,"licInt",[6,"d.i32",["lic"]]],[12,"result",[6,"d.f32",[[5,"0"]]]],[14,[12,"y",[5,"0"]],[1,"y","<",[5,"8"]],[102,"++","y"],[0,[[13,"ltr",[1,[1,"y","&",[5,"1"]],"===",[5,"0"]]],[14,[12,"xi",[5,"0"]],[1,"xi","<",[5,"8"]],[102,"++","xi"],[0,[[13,"x",[6,"std.select",[[1,[5,"7"],"-","xi"],"xi","ltr"]]],[13,"idx",[1,[1,"y","*",[5,"8"]],"+","x"]],[13,"val",[1,[8,"lum","idx"],"+",[8,"ecur","x"]]],[13,"qv",[6,"std.step",["thr","val"]]],[2,"result","=",[6,"std.select",["result","qv",[1,"idx","===","licInt"]]]],[13,"e",[1,[1,"val","-","qv"],"*","spread"]],[13,"dir",[6,"std.select",[[4,"-",[5,"1"]],[5,"1"],"ltr"]]],[13,"xr",[1,"x","+","dir"]],[11,[1,"xr",">=",[5,"0"]],[0,[[11,[1,"xr","<",[5,"8"]],[0,[[2,[8,"ecur","xr"],"=",[1,[8,"ecur","xr"],"+",[1,"e","*",[5,"0.4375"]]]]]]]]]],[11,[1,"y","<",[5,"7"]],[0,[[13,"xbl",[1,"x","-","dir"]],[13,"xbr",[1,"x","+","dir"]],[11,[1,"xbl",">=",[5,"0"]],[0,[[11,[1,"xbl","<",[5,"8"]],[0,[[2,[8,"enext","xbl"],"=",[1,[8,"enext","xbl"],"+",[1,"e","*",[5,"0.1875"]]]]]]]]]],[2,[8,"enext","x"],"=",[1,[8,"enext","x"],"+",[1,"e","*",[5,"0.3125"]]]],[11,[1,"xbr",">=",[5,"0"]],[0,[[11,[1,"xbr","<",[5,"8"]],[0,[[2,[8,"enext","xbr"],"=",[1,[8,"enext","xbr"],"+",[1,"e","*",[5,"0.0625"]]]]]]]]]]]]]]]],[14,[12,"k",[5,"0"]],[1,"k","<",[5,"8"]],[102,"++","k"],[0,[[2,[8,"ecur","k"],"=",[8,"enext","k"]],[2,[8,"enext","k"],"=",[6,"d.f32",[[5,"0"]]]]]]]]]],[10,"result"]]]},externals:{"d.arrayOf":()=>zt,"d.f32":()=>a,"d.i32":()=>oe,"std.select":()=>F,"std.step":()=>ot}})&&e.f)({})),yN=y.fn([b,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Z(v(t.x,t.y,t.z),v(s.x,s.y,s.z),v(r)),n=Z(t.w,s.w,r);return b(o.x,o.y,o.z,n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"ditherResult"}],body:[0,[[13,"rgb",[6,"std.mix",[[6,"d.vec3f",[[7,"colorA","x"],[7,"colorA","y"],[7,"colorA","z"]]],[6,"d.vec3f",[[7,"colorB","x"],[7,"colorB","y"],[7,"colorB","z"]]],[6,"d.vec3f",["ditherResult"]]]]],[13,"a",[6,"std.mix",[[7,"colorA","w"],[7,"colorB","w"],"ditherResult"]]],[10,[6,"d.vec4f",[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"a"]]]]]},externals:{"std.mix":()=>Z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),gN=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=v(t.x,t.y,t.z),o=Z(r.mul(.3),ue(r.mul(1.3),v(1,1,1)),v(s));return b(o.x,o.y,o.z,t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sourceColor"},{type:"i",name:"ditherResult"}],body:[0,[[13,"rgb",[6,"d.vec3f",[[7,"sourceColor","x"],[7,"sourceColor","y"],[7,"sourceColor","z"]]]],[13,"dark",[6,[7,"rgb","mul"],[[5,"0.3"]]]],[13,"bright",[6,"std.min",[[6,[7,"rgb","mul"],[[5,"1.3"]]],[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]]]],[13,"out",[6,"std.mix",["dark","bright",[6,"d.vec3f",["ditherResult"]]]]],[10,[6,"d.vec4f",[[7,"out","x"],[7,"out","y"],[7,"out","z"],[7,"sourceColor","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.min":()=>ue,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({}));function kF(e){return e.map((t,s)=>({stop:t,index:s})).sort((t,s)=>t.stop.position-s.stop.position||t.index-s.index).map(({stop:t})=>t)}function Ay(e,t){let s=new Array(32).fill(0),r=new Array(8).fill(0),o=Array.isArray(e)&&e.length>0?kF(e):[],n=Math.min(o.length,8);for(let i=0;i<n;i++){let d=t(o[i].color);s[i*4]=d[0],s[i*4+1]=d[1],s[i*4+2]=d[2],s[i*4+3]=d[3],r[i]=o[i].position}return{colors:s,positions:r,stopCount:n}}function Ey(e,t,s){let r=new Array(24).fill(0);for(let o=0;o<t;o++){let n=Mm(e[o*4],e[o*4+1],e[o*4+2],s);r[o*3]=n[0],r[o*3+1]=n[1],r[o*3+2]=n[2]}return r}y.fn([v,a],Vo)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return Vo({conv:t,alpha:s})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"conv"},{type:"i",name:"alpha"}],body:[0,[[10,[6,"MixStep",[[104,{conv:"conv",alpha:"alpha"}]]]]]]},externals:{MixStep:()=>Vo}})&&e.f)({}));y.fn([Vo,v,a,a,a,a],Vo)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=z(__tsover_div(__tsover_sub(o,n),w(__tsover_sub(i,n),1e-6)),0,1);return ti(t.conv,t.alpha,s,r,d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"running"},{type:"i",name:"convI"},{type:"i",name:"alphaI"},{type:"i",name:"tClamped"},{type:"i",name:"posA"},{type:"i",name:"posB"}],body:[0,[[13,"seg",[6,"std.clamp",[[1,[1,"tClamped","-","posA"],"/",[6,"std.max",[[1,"posB","-","posA"],[5,"0.000001"]]]],[5,"0"],[5,"1"]]]],[10,[6,"mixPreconvertedInSpace",[[7,"running","conv"],[7,"running","alpha"],"convI","alphaI","seg"]]]]]},externals:{"std.clamp":()=>z,"std.max":()=>w,mixPreconvertedInSpace:()=>ti}})&&e.f)({}));y.fn([Vo],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return t.conv}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[10,[7,"s","conv"]]]]},externals:{}})&&e.f)({}));y.fn([Vo],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return t.alpha}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[10,[7,"s","alpha"]]]]},externals:{}})&&e.f)({}));y.fn([v,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return b(t,s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"a"}],body:[0,[[10,[6,"d.vec4f",["rgb","a"]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({}));var Tv=y.fn([a,zt(b,8),zt(b,8/4),zt(v,8),a],Vo)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=z(t,0,1),d=oe(n),l=o[0],c=v(l.x,l.y,l.z),_=s[0].w;for(let p=1;p<d;p++){let f=r[__tsover_sub(p,1)>>2],h=r[p>>2],g=f[__tsover_sub(p,1)&3],x=h[p&3],T=z(__tsover_div(__tsover_sub(i,g),w(__tsover_sub(x,g),1e-6)),0,1),S=ti(c,_,o[p],s[p].w,T);c=v(S.conv.x,S.conv.y,S.conv.z),_=S.alpha}return Vo({conv:c,alpha:_})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"colors"},{type:"i",name:"positions"},{type:"i",name:"converted"},{type:"i",name:"stopCount"}],body:[0,[[13,"clampedT",[6,"std.clamp",["t",[5,"0"],[5,"1"]]]],[13,"n",[6,"d.i32",["stopCount"]]],[13,"c0",[8,"converted",[5,"0"]]],[12,"conv",[6,"d.vec3f",[[7,"c0","x"],[7,"c0","y"],[7,"c0","z"]]]],[12,"alpha",[7,[8,"colors",[5,"0"]],"w"]],[14,[12,"i",[5,"1"]],[1,"i","<","n"],[102,"++","i"],[0,[[13,"va",[8,"positions",[1,[1,"i","-",[5,"1"]],">>",[5,"2"]]]],[13,"vb",[8,"positions",[1,"i",">>",[5,"2"]]]],[13,"posA",[8,"va",[1,[1,"i","-",[5,"1"]],"&",[5,"3"]]]],[13,"posB",[8,"vb",[1,"i","&",[5,"3"]]]],[13,"seg",[6,"std.clamp",[[1,[1,"clampedT","-","posA"],"/",[6,"std.max",[[1,"posB","-","posA"],[5,"0.000001"]]]],[5,"0"],[5,"1"]]]],[13,"step",[6,"mixPreconvertedInSpace",["conv","alpha",[8,"converted","i"],[7,[8,"colors","i"],"w"],"seg"]]],[2,"conv","=",[6,"d.vec3f",[[7,[7,"step","conv"],"x"],[7,[7,"step","conv"],"y"],[7,[7,"step","conv"],"z"]]]],[2,"alpha","=",[7,"step","alpha"]]]]],[10,[6,"MixStep",[[104,{conv:"conv",alpha:"alpha"}]]]]]]},externals:{"std.clamp":()=>z,"d.i32":()=>oe,"d.vec3f":()=>v,"std.max":()=>w,mixPreconvertedInSpace:()=>ti,MixStep:()=>Vo}})&&e.f)({}));function pT(e,t){switch(t){case 1:return se(Ms,"sRGBToP3",[se(Ro,"oklabToRgb",[se(Ii,"oklchToOklab",[e])])]);case 2:return se(Ms,"sRGBToP3",[se(Ro,"oklabToRgb",[e])]);case 3:return se(Ms,"sRGBToP3",[se(Yi,"hslToRgb",[e])]);case 4:return se(Ms,"sRGBToP3",[se(wc,"hsvToRgb",[e])]);case 5:return se(Ms,"sRGBToP3",[se(Tc,"labToRgb",[se(Sc,"lchToLab",[e])])]);default:return e}}function dl(e,t,s){let r=Vs(se(Tv,"gradientStopsInSpace",[e,t.colorsArray,t.positionsArray,t.convertedColorsArray,t.stopCount]),"stopMix");return Ss(pT(r.member("conv"),s),r.member("alpha"))}var mT=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Vt(s);return u(__tsover_mul(t.x,r),t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]]]]},externals:{aspectOf:()=>Vt,"d.vec2f":()=>u}})&&e.f)({})),xN=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_div(s.x,s.y);return u(__tsover_mul(t.x,n),t.y).mul(Mt(r)).add(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[10,[6,[7,[6,[7,"aspectUV","mul"],[[6,"std.exp",["scale"]]]],"add"],["seed"]]]]]},externals:{"d.vec2f":()=>u,"std.exp":()=>Mt}})&&e.f)({})),$F=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Vt(s),n=__tsover_mul(r,Qe),i=J(n),d=O(n),l=__tsover_sub(__tsover_mul(t.x,o),__tsover_mul(o,.5)),c=__tsover_sub(t.y,.5);return u(__tsover_add(__tsover_mul(l,i),__tsover_mul(c,d)),__tsover_add(__tsover_mul(l,-d),__tsover_mul(c,i)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"}],body:[0,[[13,"aspect",[6,"aspectOf",["viewport"]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"au",[1,[1,[7,"uv","x"],"*","aspect"],"-",[1,"aspect","*",[5,"0.5"]]]],[13,"av",[1,[7,"uv","y"],"-",[5,"0.5"]]],[13,"ru",[1,[1,"au","*","cosA"],"+",[1,"av","*","sinA"]]],[13,"rv",[1,[1,"au","*",[4,"-","sinA"]],"+",[1,"av","*","cosA"]]],[10,[6,"d.vec2f",["ru","rv"]]]]]},externals:{aspectOf:()=>Vt,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),bN=y.fn([u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_div(te(h3(t,s)),1.414)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"z"}],body:[0,[[10,[1,[6,"std.length",[[6,"curl22z",["pos","z"]]]],"/",[5,"1.414"]]]]]},externals:{"std.length":()=>te,curl22z:()=>h3}})&&e.f)({})),j2=Z7($i,{maxOctaves:8,drift:"goldenAngle",name:"fractalOctaveSum"}),CF=y.fn([u,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";return j2(t,2,s,r,o,u(n,__tsover_mul(n,.7)),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"detail"},{type:"i",name:"contrast"},{type:"i",name:"animTime"},{type:"i",name:"seed"},{type:"i",name:"octaveCount"}],body:[0,[[10,[6,"fractalOctaveSum",["pos",[5,"2"],"detail","contrast","animTime",[6,"d.vec2f",["seed",[1,"seed","*",[5,"0.7"]]]],"octaveCount"]]]]]},externals:{fractalOctaveSum:()=>j2,"d.vec2f":()=>u}})&&e.f)({})),RF=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return z(__tsover_add(__tsover_mul(__tsover_div(t.x,t.y),.5),.5),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sum"}],body:[0,[[10,[6,"std.clamp",[[1,[1,[1,[7,"sum","x"],"/",[7,"sum","y"]],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]]},externals:{"std.clamp":()=>z}})&&e.f)({}));var K2=eT({distance:"selectableSquared",jitter:"mix",name:"worleyNearest2"}),Z2=Z7(y.fn([u,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=K2(t,s,r,o,n);return I3(d.x,d.y,n,i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"oUV"},{type:"i",name:"animT"},{type:"i",name:"seedOff"},{type:"i",name:"jitter"},{type:"i",name:"distNum"},{type:"i",name:"modeNum"}],body:[0,[[13,"dd",[6,"worleyNearest2",["oUV","animT","seedOff","jitter","distNum"]]],[10,[6,"cellReduceSelectable",[[7,"dd","x"],[7,"dd","y"],"distNum","modeNum"]]]]]},externals:{worleyNearest2:()=>K2,cellReduceSelectable:()=>I3}})&&e.f)({})),{maxOctaves:4,drift:"timeSeed",name:"worleyOctaveSum"}),UF=y.fn([u,a,a,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_)=>{"use gpu";return Z2(t,s,n,i,d,r,v(o,c,_),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"jitter"},{type:"i",name:"lacunarity"},{type:"i",name:"persistence"},{type:"i",name:"animTime"},{type:"i",name:"octaves"},{type:"i",name:"distNum"},{type:"i",name:"modeNum"}],body:[0,[[10,[6,"worleyOctaveSum",["pos","scale","lacunarity","persistence","animTime","seed",[6,"d.vec3f",["jitter","distNum","modeNum"]],"octaves"]]]]]},externals:{worleyOctaveSum:()=>Z2,"d.vec3f":()=>v}})&&e.f)({})),zF=y.fn([u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_mul(__tsover_div(t.x,w(t.y,1e-4)),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sum"},{type:"i",name:"modeScale"}],body:[0,[[10,[1,[1,[7,"sum","x"],"/",[6,"std.max",[[7,"sum","y"],[5,"0.0001"]]]],"*","modeScale"]]]]},externals:{"std.max":()=>w}})&&e.f)({})),GF=K7({domain:"unit",contrastMode:"multiplicative",invert:!1}),fT=e=>ND[e]??0,vT=e=>qD[e]??0;function DF(e){return typeof e=="number"?e:fT(e)}function LF(e){return typeof e=="number"?e:vT(e)}function FF(e,t){let s=1.5;return e===1?s=1:e===2?s=2.5:e===3?s=.6:e===4&&(s=2),t===1?s*=.7:t===2&&(s*=1.4),s}var BF=eT({distance:"length",jitter:"none",name:"voronoiNearest2"}),IF=y.fn([u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_sub(4,__tsover_mul(s,3));return Y3(t.x,t.y,r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dd"},{type:"i",name:"edgeIntensity"}],body:[0,[[13,"gradientPower",[1,[5,"4"],"-",[1,"edgeIntensity","*",[5,"3"]]]],[10,[6,"cellRatio",[[7,"dd","x"],[7,"dd","y"],"gradientPower"]]]]]},externals:{cellRatio:()=>Y3}})&&e.f)({})),YF=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_div(__tsover_mul(s,r),6);return W3(t.x,t.y,o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dd"},{type:"i",name:"softness"},{type:"i",name:"scale"}],body:[0,[[13,"scaledEdgeSoftness",[1,[1,"softness","*","scale"],"/",[5,"6"]]],[10,[6,"cellEdgeMask",[[7,"dd","x"],[7,"dd","y"],"scaledEdgeSoftness"]]]]]},externals:{cellEdgeMask:()=>W3}})&&e.f)({})),WF=y.fn([v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return Ye(t,v(.85,.85,.85))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[6,"std.pow",["rgb",[6,"d.vec3f",[[5,"0.85"],[5,"0.85"],[5,"0.85"]]]]]]]]},externals:{"std.pow":()=>Ye,"d.vec3f":()=>v}})&&e.f)({})),cc=8;if(cc!==8)throw new Error(`noisePaints: MAX (${cc}) out of sync with MAX_COLOR_STOPS (8)`);var Q2=y.fn([u,u,u,u,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_div(s.x,w(s.y,1e-6)),d=u(__tsover_mul(r.x,i),__tsover_sub(1,r.y)),l=u(__tsover_mul(o.x,i),__tsover_sub(1,o.y)),c=u(__tsover_mul(t.x,i),t.y),_=u(__tsover_sub(l.x,d.x),__tsover_sub(l.y,d.y)),p=w(te(_),1e-6),f=u(__tsover_div(_.x,p),__tsover_div(_.y,p)),h=u(-f.y,f.x),g=u(__tsover_sub(c.x,d.x),__tsover_sub(c.y,d.y)),x=__tsover_div(le(g,f),p),T=le(g,h),S=n>0,A=z(x,0,1),E=F(a(1),O(__tsover_mul(A,ko)),S),M=__tsover_mul(ce(0,.06,x),__tsover_sub(1,ce(.94,1,x)));return b(x,T,E,F(a(1),M,S))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"start"},{type:"i",name:"end"},{type:"i",name:"pinFlag"}],body:[0,[[13,"aspectRatio",[1,[7,"viewport","x"],"/",[6,"std.max",[[7,"viewport","y"],[5,"0.000001"]]]]],[13,"startPos",[6,"d.vec2f",[[1,[7,"start","x"],"*","aspectRatio"],[1,[5,"1"],"-",[7,"start","y"]]]]],[13,"endPos",[6,"d.vec2f",[[1,[7,"end","x"],"*","aspectRatio"],[1,[5,"1"],"-",[7,"end","y"]]]]],[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspectRatio"],[7,"uv","y"]]]],[13,"direction",[6,"d.vec2f",[[1,[7,"endPos","x"],"-",[7,"startPos","x"]],[1,[7,"endPos","y"],"-",[7,"startPos","y"]]]]],[13,"len",[6,"std.max",[[6,"std.length",["direction"]],[5,"0.000001"]]]],[13,"normalizedDir",[6,"d.vec2f",[[1,[7,"direction","x"],"/","len"],[1,[7,"direction","y"],"/","len"]]]],[13,"perpDir",[6,"d.vec2f",[[4,"-",[7,"normalizedDir","y"]],[7,"normalizedDir","x"]]]],[13,"relativePos",[6,"d.vec2f",[[1,[7,"aspectUV","x"],"-",[7,"startPos","x"]],[1,[7,"aspectUV","y"],"-",[7,"startPos","y"]]]]],[13,"progress",[1,[6,"std.dot",["relativePos","normalizedDir"]],"/","len"]],[13,"perpDist",[6,"std.dot",["relativePos","perpDir"]]],[13,"pinOn",[1,"pinFlag",">",[5,"0"]]],[13,"clampedProg",[6,"std.clamp",["progress",[5,"0"],[5,"1"]]]],[13,"pinch",[6,"std.select",[[6,"d.f32",[[5,"1"]]],[6,"std.sin",[[1,"clampedProg","*","PI"]]],"pinOn"]]],[13,"fade",[1,[6,"std.smoothstep",[[5,"0"],[5,"0.06"],"progress"]],"*",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0.94"],[5,"1"],"progress"]]]]],[13,"edgeFade",[6,"std.select",[[6,"d.f32",[[5,"1"]]],"fade","pinOn"]]],[10,[6,"d.vec4f",["progress","perpDist","pinch","edgeFade"]]]]]},externals:{"std.max":()=>w,"d.vec2f":()=>u,"std.length":()=>te,"std.dot":()=>le,"std.clamp":()=>z,"std.select":()=>F,"d.f32":()=>a,"std.sin":()=>O,PI:()=>ko,"std.smoothstep":()=>ce,"d.vec4f":()=>b}})&&e.f)({})),OF=y.fn([u,u,u,u,b,b,b,zt(b,cc),zt(b,cc/4),zt(v,cc)],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_)=>{"use gpu";let p=n.x,f=n.y,h=n.z,g=n.w,x=i.x,T=i.y,S=i.z,A=i.w,E=d.y,M=d.z,$=d.w,L=Q2(t,s,r,o,d.x),B=L.x,D=L.y,G=L.z,I=L.w,X=__tsover_mul(g,.07),H=__tsover_add(__tsover_mul(x,.08),8e-4),ee=w(__tsover_sub(h,1),1),Q=v(0,0,0),de=a(0),Ee=__tsover_mul(__tsover_mul(B,Et),f),he=__tsover_add(__tsover_mul(B,8),__tsover_mul(E,2)),Me=__tsover_add(__tsover_mul(B,S),M),Te=oe(Wa(h));for(let Pe=0;Pe<Te;Pe++){let Ce=a(Pe),ie=__tsover_div(Ce,ee),Ne=__tsover_mul(Ce,.9),ye=__tsover_mul(E,__tsover_add(__tsover_mul(ie,.6),.7)),Ve=__tsover_add(O(__tsover_add(__tsover_add(Ee,ye),Ne)),__tsover_mul(O(__tsover_add(__tsover_sub(__tsover_mul(Ee,2.1),__tsover_mul(ye,.7)),Ne)),.5)),qe=__tsover_mul(__tsover_mul(Ve,p),.06),st=__tsover_mul(__tsover_sub(ie,.5),T),We=__tsover_mul(__tsover_add(st,qe),G),Be=W(__tsover_sub(D,We)),rt=__tsover_sub(1,ce(X,__tsover_add(X,H),Be)),tt=__tsover_add(__tsover_mul(O(__tsover_add(he,Ce)),.15),.85),Ke=__tsover_add(Me,__tsover_mul(ie,A)),Oe=Tv(__tsover_sub(1,W(__tsover_sub(__tsover_mul(ve(__tsover_mul(Ke,.5)),2),1))),l,c,_,$).conv,gt=__tsover_mul(rt,tt);Q=Q.add(Oe.mul(gt)),de=__tsover_add(de,gt)}return b(Q.div(w(de,1e-4)),z(__tsover_mul(de,I),0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"start"},{type:"i",name:"end"},{type:"i",name:"packed1"},{type:"i",name:"packed2"},{type:"i",name:"packed3"},{type:"i",name:"colors"},{type:"i",name:"positions"},{type:"i",name:"converted"}],body:[0,[[13,"amplitude",[7,"packed1","x"]],[13,"frequency",[7,"packed1","y"]],[13,"lineCount",[7,"packed1","z"]],[13,"lineWidth",[7,"packed1","w"]],[13,"softnessP",[7,"packed2","x"]],[13,"spread",[7,"packed2","y"]],[13,"colorScale",[7,"packed2","z"]],[13,"colorVariance",[7,"packed2","w"]],[13,"waveT",[7,"packed3","y"]],[13,"colorT",[7,"packed3","z"]],[13,"stopCount",[7,"packed3","w"]],[13,"frame",[6,"ribbonPathFrame",["uv","viewport","start","end",[7,"packed3","x"]]]],[13,"progress",[7,"frame","x"]],[13,"perpDist",[7,"frame","y"]],[13,"pinch",[7,"frame","z"]],[13,"edgeFade",[7,"frame","w"]],[13,"thickness",[1,"lineWidth","*",[5,"0.07"]]],[13,"softness",[1,[1,"softnessP","*",[5,"0.08"]],"+",[5,"0.0008"]]],[13,"denom",[6,"std.max",[[1,"lineCount","-",[5,"1"]],[5,"1"]]]],[12,"accumColor",[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]]],[12,"accumWeight",[6,"d.f32",[[5,"0"]]]],[13,"waveBase",[1,[1,"progress","*","TAU"],"*","frequency"]],[13,"shimmerBase",[1,[1,"progress","*",[5,"8"]],"+",[1,"waveT","*",[5,"2"]]]],[13,"colorBase",[1,[1,"progress","*","colorScale"],"+","colorT"]],[13,"n",[6,"d.i32",[[6,"std.round",["lineCount"]]]]],[14,[12,"idx",[5,"0"]],[1,"idx","<","n"],[102,"++","idx"],[0,[[13,"fi",[6,"d.f32",["idx"]]],[13,"norm",[1,"fi","/","denom"]],[13,"phase",[1,"fi","*",[5,"0.9"]]],[13,"strandT",[1,"waveT","*",[1,[1,"norm","*",[5,"0.6"]],"+",[5,"0.7"]]]],[13,"wave",[1,[6,"std.sin",[[1,[1,"waveBase","+","strandT"],"+","phase"]]],"+",[1,[6,"std.sin",[[1,[1,[1,"waveBase","*",[5,"2.1"]],"-",[1,"strandT","*",[5,"0.7"]]],"+","phase"]]],"*",[5,"0.5"]]]],[13,"displacement",[1,[1,"wave","*","amplitude"],"*",[5,"0.06"]]],[13,"baseline",[1,[1,"norm","-",[5,"0.5"]],"*","spread"]],[13,"centre",[1,[1,"baseline","+","displacement"],"*","pinch"]],[13,"dd",[6,"std.abs",[[1,"perpDist","-","centre"]]]],[13,"line",[1,[5,"1"],"-",[6,"std.smoothstep",["thickness",[1,"thickness","+","softness"],"dd"]]]],[13,"shimmer",[1,[1,[6,"std.sin",[[1,"shimmerBase","+","fi"]]],"*",[5,"0.15"]],"+",[5,"0.85"]]],[13,"cc",[1,"colorBase","+",[1,"norm","*","colorVariance"]]],[13,"colorCoord",[1,[5,"1"],"-",[6,"std.abs",[[1,[1,[6,"std.fract",[[1,"cc","*",[5,"0.5"]]]],"*",[5,"2"]],"-",[5,"1"]]]]]],[13,"stepRes",[6,"gradientStopsInSpace",["colorCoord","colors","positions","converted","stopCount"]]],[13,"strandColor",[7,"stepRes","conv"]],[13,"weight",[1,"line","*","shimmer"]],[2,"accumColor","=",[6,[7,"accumColor","add"],[[6,[7,"strandColor","mul"],["weight"]]]]],[2,"accumWeight","=",[1,"accumWeight","+","weight"]]]]],[13,"workingColor",[6,[7,"accumColor","div"],[[6,"std.max",["accumWeight",[5,"0.0001"]]]]]],[13,"alpha",[6,"std.clamp",[[1,"accumWeight","*","edgeFade"],[5,"0"],[5,"1"]]]],[10,[6,"d.vec4f",["workingColor","alpha"]]]]]},externals:{ribbonPathFrame:()=>Q2,"std.max":()=>w,"d.vec3f":()=>v,"d.f32":()=>a,TAU:()=>Et,"d.i32":()=>oe,"std.round":()=>Wa,"std.sin":()=>O,"std.abs":()=>W,"std.smoothstep":()=>ce,"std.fract":()=>ve,gradientStopsInSpace:()=>Tv,"std.clamp":()=>z,"d.vec4f":()=>b}})&&e.f)({})),wN=y.fn([u,a,a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=u(__tsover_mul(t.x,s),t.y),l=__tsover_mul(r,6),c=d.mul(l).add(o),_=Yd(c).mul(n).mul(.0025),p=t.add(_),f=A3(c,oe(6)),h=z(__tsover_add(1,__tsover_mul(__tsover_sub(f,.7),__tsover_mul(i,1.2))),0,1.5);return v(p.x,p.y,h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"grainScale"},{type:"i",name:"seed"},{type:"i",name:"displacement"},{type:"i",name:"roughness"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"grainFreq",[1,"grainScale","*",[5,"6"]]],[13,"grainUV",[6,[7,[6,[7,"aspectUV","mul"],["grainFreq"]],"add"],["seed"]]],[13,"disp",[6,[7,[6,[7,[6,"curl22",["grainUV"]],"mul"],["displacement"]],"mul"],[[5,"0.0025"]]]],[13,"displacedUV",[6,[7,"uv","add"],["disp"]]],[13,"grain",[6,"paper12",["grainUV",[6,"d.i32",[[5,"6"]]]]]],[13,"brightness",[6,"std.clamp",[[1,[5,"1"],"+",[1,[1,"grain","-",[5,"0.7"]],"*",[1,"roughness","*",[5,"1.2"]]]],[5,"0"],[5,"1.5"]]]],[10,[6,"d.vec3f",[[7,"displacedUV","x"],[7,"displacedUV","y"],"brightness"]]]]]},externals:{"d.vec2f":()=>u,curl22:()=>Yd,paper12:()=>A3,"d.i32":()=>oe,"std.clamp":()=>z,"d.vec3f":()=>v}})&&e.f)({})),wd=1e-5,J2=y.fn([u,u,u],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_sub(t.x,s.x),n=__tsover_sub(t.y,s.y),i=__tsover_sub(r.x,s.x),d=__tsover_sub(r.y,s.y),l=w(te(u(i,d)),a(wd)),c=__tsover_div(__tsover_add(__tsover_mul(o,i),__tsover_mul(n,d)),l),_=w(w(-c,__tsover_sub(c,l)),a(0)),p=z(__tsover_div(c,l),a(0),a(1)),f=te(u(__tsover_sub(o,__tsover_mul(i,p)),__tsover_sub(n,__tsover_mul(d,p))));return v(c,$e(w(__tsover_sub(__tsover_mul(f,f),__tsover_mul(_,_)),a(0))),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"a"},{type:"i",name:"b"}],body:[0,[[13,"pax",[1,[7,"p","x"],"-",[7,"a","x"]]],[13,"pay",[1,[7,"p","y"],"-",[7,"a","y"]]],[13,"bax",[1,[7,"b","x"],"-",[7,"a","x"]]],[13,"bay",[1,[7,"b","y"],"-",[7,"a","y"]]],[13,"len",[6,"std.max",[[6,"std.length",[[6,"d.vec2f",["bax","bay"]]]],[6,"d.f32",["EPS"]]]]],[13,"t",[1,[1,[1,"pax","*","bax"],"+",[1,"pay","*","bay"]],"/","len"]],[13,"overshoot",[6,"std.max",[[6,"std.max",[[4,"-","t"],[1,"t","-","len"]]],[6,"d.f32",[[5,"0"]]]]]],[13,"h",[6,"std.clamp",[[1,"t","/","len"],[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]]]]],[13,"dSeg",[6,"std.length",[[6,"d.vec2f",[[1,"pax","-",[1,"bax","*","h"]],[1,"pay","-",[1,"bay","*","h"]]]]]]],[13,"perp",[6,"std.sqrt",[[6,"std.max",[[1,[1,"dSeg","*","dSeg"],"-",[1,"overshoot","*","overshoot"]],[6,"d.f32",[[5,"0"]]]]]]]],[10,[6,"d.vec3f",["t","perp","len"]]]]]},externals:{"std.max":()=>w,"std.length":()=>te,"d.vec2f":()=>u,"d.f32":()=>a,EPS:()=>wd,"std.clamp":()=>z,"std.sqrt":()=>$e,"d.vec3f":()=>v}})&&e.f)({})),TN=y.fn([u,u,u,u,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_)=>{"use gpu";let p=Vt(s),f=J2(P3(t,s),aa(r,p),aa(o,p)),h=f.x,g=f.y,x=f.z,T=__tsover_mul(n,.5),S=__tsover_sub(h,__tsover_mul(x,.5)),A=__tsover_mul(x,.5),E=w(d,a(wd)),M=__tsover_add(E,l),$=w(K(__tsover_add(__tsover_div(__tsover_add(x,l),M),.5)),a(1)),L=__tsover_div(x,w(__tsover_add(__tsover_mul($,E),__tsover_mul(__tsover_sub($,1),l)),a(wd))),B=__tsover_mul(E,L),D=__tsover_mul(M,L),G=z(K(__tsover_div(h,D)),a(0),__tsover_sub($,1)),I=__tsover_sub(h,__tsover_add(__tsover_mul(G,D),__tsover_mul(B,.5))),X=w(__tsover_sub(__tsover_mul(B,.5),T),a(0)),H=__tsover_mul(B,.5),ee=w(__tsover_add(n,l),a(wd)),Q=w(K(__tsover_add(__tsover_div(x,ee),.5)),a(1)),de=__tsover_div(x,Q),Ee=z(K(__tsover_add(__tsover_div(h,de),.5)),a(0),Q),he=__tsover_sub(h,__tsover_mul(Ee,de)),Me=i>=.5,Te=i>=1.5,Pe=F(S,F(I,he,Te),Me),Ce=F(A,F(X,a(0),Te),Me),ie=F(A,F(H,T,Te),Me),Ne=F(c,_,Pe>0),ye=__tsover_sub(te(u(w(__tsover_sub(W(Pe),Ce),a(0)),g)),T),Ve=__tsover_sub(W(Pe),ie),qe=__tsover_sub(g,T),st=F(__tsover_add(te(u(w(Ve,a(0)),w(qe,a(0)))),ue(w(Ve,qe),a(0))),ye,Ne>=.5),We=__tsover_div(1,s.y);return __tsover_sub(1,ce(-We,We,st))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"pointA"},{type:"i",name:"pointB"},{type:"i",name:"thickness"},{type:"i",name:"style"},{type:"i",name:"dashLength"},{type:"i",name:"gapLength"},{type:"i",name:"capStart"},{type:"i",name:"capEnd"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"p",[6,"geom.aspectCorrectedUV",["uv","viewport"]]],[13,"a",[6,"geom.aspectCentrePosition",["pointA","aspect"]]],[13,"b",[6,"geom.aspectCentrePosition",["pointB","aspect"]]],[13,"seg",[6,"segmentArcPerp",["p","a","b"]]],[13,"t",[7,"seg","x"]],[13,"perp",[7,"seg","y"]],[13,"len",[7,"seg","z"]],[13,"halfT",[1,"thickness","*",[5,"0.5"]]],[13,"cSolid",[1,"t","-",[1,"len","*",[5,"0.5"]]]],[13,"axSolid",[1,"len","*",[5,"0.5"]]],[13,"rawDash",[6,"std.max",["dashLength",[6,"d.f32",["EPS"]]]]],[13,"rawPeriod",[1,"rawDash","+","gapLength"]],[13,"nDash",[6,"std.max",[[6,"std.floor",[[1,[1,[1,"len","+","gapLength"],"/","rawPeriod"],"+",[5,"0.5"]]]],[6,"d.f32",[[5,"1"]]]]]],[13,"scale",[1,"len","/",[6,"std.max",[[1,[1,"nDash","*","rawDash"],"+",[1,[1,"nDash","-",[5,"1"]],"*","gapLength"]],[6,"d.f32",["EPS"]]]]]],[13,"dashL",[1,"rawDash","*","scale"]],[13,"period",[1,"rawPeriod","*","scale"]],[13,"kDash",[6,"std.clamp",[[6,"std.floor",[[1,"t","/","period"]]],[6,"d.f32",[[5,"0"]]],[1,"nDash","-",[5,"1"]]]]],[13,"cDash",[1,"t","-",[1,[1,"kDash","*","period"],"+",[1,"dashL","*",[5,"0.5"]]]]],[13,"axDashRound",[6,"std.max",[[1,[1,"dashL","*",[5,"0.5"]],"-","halfT"],[6,"d.f32",[[5,"0"]]]]]],[13,"axDashSquare",[1,"dashL","*",[5,"0.5"]]],[13,"rawDotPeriod",[6,"std.max",[[1,"thickness","+","gapLength"],[6,"d.f32",["EPS"]]]]],[13,"nDot",[6,"std.max",[[6,"std.floor",[[1,[1,"len","/","rawDotPeriod"],"+",[5,"0.5"]]]],[6,"d.f32",[[5,"1"]]]]]],[13,"dotPeriod",[1,"len","/","nDot"]],[13,"kDot",[6,"std.clamp",[[6,"std.floor",[[1,[1,"t","/","dotPeriod"],"+",[5,"0.5"]]]],[6,"d.f32",[[5,"0"]]],"nDot"]]],[13,"cDot",[1,"t","-",[1,"kDot","*","dotPeriod"]]],[13,"isPattern",[1,"style",">=",[5,"0.5"]]],[13,"isDotted",[1,"style",">=",[5,"1.5"]]],[13,"c",[6,"std.select",["cSolid",[6,"std.select",["cDash","cDot","isDotted"]],"isPattern"]]],[13,"axRound",[6,"std.select",["axSolid",[6,"std.select",["axDashRound",[6,"d.f32",[[5,"0"]]],"isDotted"]],"isPattern"]]],[13,"axSquare",[6,"std.select",["axSolid",[6,"std.select",["axDashSquare","halfT","isDotted"]],"isPattern"]]],[13,"capHere",[6,"std.select",["capStart","capEnd",[1,"c",">",[5,"0"]]]]],[13,"sdRound",[1,[6,"std.length",[[6,"d.vec2f",[[6,"std.max",[[1,[6,"std.abs",["c"]],"-","axRound"],[6,"d.f32",[[5,"0"]]]]],"perp"]]]],"-","halfT"]],[13,"qx",[1,[6,"std.abs",["c"]],"-","axSquare"]],[13,"qy",[1,"perp","-","halfT"]],[13,"sdSquare",[1,[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["qx",[6,"d.f32",[[5,"0"]]]]],[6,"std.max",["qy",[6,"d.f32",[[5,"0"]]]]]]]]],"+",[6,"std.min",[[6,"std.max",["qx","qy"]],[6,"d.f32",[[5,"0"]]]]]]],[13,"sd",[6,"std.select",["sdSquare","sdRound",[1,"capHere",">=",[5,"0.5"]]]]],[13,"feather",[1,[5,"1"],"/",[7,"viewport","y"]]],[10,[1,[5,"1"],"-",[6,"std.smoothstep",[[4,"-","feather"],"feather","sd"]]]]]]},externals:{"geom.aspectOf":()=>Vt,"geom.aspectCorrectedUV":()=>P3,"geom.aspectCentrePosition":()=>aa,segmentArcPerp:()=>J2,"std.max":()=>w,"d.f32":()=>a,EPS:()=>wd,"std.floor":()=>K,"std.clamp":()=>z,"std.select":()=>F,"std.length":()=>te,"d.vec2f":()=>u,"std.abs":()=>W,"std.min":()=>ue,"std.smoothstep":()=>ce}})&&e.f)({})),VF=y.fn([u,u,a,u,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c)=>{"use gpu";let _=Qa(t,o,s),p=__tsover_mul(r,Qe),f=ln(_,J(p),O(p)),h=__tsover_add(__tsover_mul(__tsover_mul(f.x,n),Et),c),g=__tsover_mul(O(h),i),x=W(__tsover_sub(f.y,g)),T=__tsover_mul(d,.5),S=__tsover_mul(l,.5);return __tsover_sub(1,ce(__tsover_sub(T,S),__tsover_add(T,S),x))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"},{type:"i",name:"position"},{type:"i",name:"frequency"},{type:"i",name:"amplitude"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"animTime"}],body:[0,[[13,"centered",[6,"geom.aspectCenteredDelta",["uv","position","viewport"]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosAngle",[6,"std.cos",["angleRad"]]],[13,"sinAngle",[6,"std.sin",["angleRad"]]],[13,"rotated",[6,"geom.rotate2",["centered","cosAngle","sinAngle"]]],[13,"waveInput",[1,[1,[1,[7,"rotated","x"],"*","frequency"],"*","TAU"],"+","animTime"]],[13,"sineWave",[1,[6,"std.sin",["waveInput"]],"*","amplitude"]],[13,"distanceFromWave",[6,"std.abs",[[1,[7,"rotated","y"],"-","sineWave"]]]],[13,"halfThickness",[1,"thickness","*",[5,"0.5"]]],[13,"halfSoftness",[1,"softness","*",[5,"0.5"]]],[10,[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"halfThickness","-","halfSoftness"],[1,"halfThickness","+","halfSoftness"],"distanceFromWave"]]]]]]},externals:{"geom.aspectCenteredDelta":()=>Qa,DEG_TO_RAD:()=>Qe,"std.cos":()=>J,"std.sin":()=>O,"geom.rotate2":()=>ln,TAU:()=>Et,"std.abs":()=>W,"std.smoothstep":()=>ce}})&&e.f)({})),e5=y.fn([a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return v(__tsover_add(__tsover_mul(J(__tsover_mul(Et,t)),.5),.5),__tsover_add(__tsover_mul(J(__tsover_mul(Et,__tsover_sub(t,.333))),.5),.5),__tsover_add(__tsover_mul(J(__tsover_mul(Et,__tsover_sub(t,.666))),.5),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,"d.vec3f",[[1,[1,[6,"std.cos",[[1,"TAU_FULL","*","t"]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[6,"std.cos",[[1,"TAU_FULL","*",[1,"t","-",[5,"0.333"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[6,"std.cos",[[1,"TAU_FULL","*",[1,"t","-",[5,"0.666"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]]},externals:{"d.vec3f":()=>v,"std.cos":()=>J,TAU_FULL:()=>Et}})&&e.f)({})),yf=Ct({aspect:a,lightPos:u,flareAxis:u,masterFade:a,lightDist:a,lightAngle:a}).$name("FlareFrame"),NF=y.fn([u,u,a,u,a,a],yf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Vt(s),l=u(o.x,__tsover_sub(1,o.y)),c=u(__tsover_sub(.5,l.x),__tsover_sub(.5,l.y)),_=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(O(__tsover_mul(r,3.7)),.04),__tsover_mul(O(__tsover_mul(r,7.3)),.03)),__tsover_mul(O(__tsover_mul(r,13.1)),.02)),.97),p=w(__tsover_mul(W(__tsover_sub(l.x,.5)),2),__tsover_mul(W(__tsover_sub(l.y,.5)),2)),f=__tsover_sub(1,__tsover_mul(i,.5)),h=Z(1,__tsover_sub(1,ce(f,1,p)),i),g=__tsover_mul(__tsover_mul(n,h),_),x=u(__tsover_mul(__tsover_sub(t.x,l.x),d),__tsover_sub(t.y,l.y));return yf({aspect:d,lightPos:l,flareAxis:c,masterFade:g,lightDist:te(x),lightAngle:bt(x.y,x.x)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"t"},{type:"i",name:"lightPosRaw"},{type:"i",name:"intensity"},{type:"i",name:"edgeFade"}],body:[0,[[13,"aspect",[6,"geom.aspectOf",["viewport"]]],[13,"lightPos",[6,"d.vec2f",[[7,"lightPosRaw","x"],[1,[5,"1"],"-",[7,"lightPosRaw","y"]]]]],[13,"flareAxis",[6,"d.vec2f",[[1,[5,"0.5"],"-",[7,"lightPos","x"]],[1,[5,"0.5"],"-",[7,"lightPos","y"]]]]],[13,"shimmer",[1,[1,[1,[1,[6,"std.sin",[[1,"t","*",[5,"3.7"]]]],"*",[5,"0.04"]],"+",[1,[6,"std.sin",[[1,"t","*",[5,"7.3"]]]],"*",[5,"0.03"]]],"+",[1,[6,"std.sin",[[1,"t","*",[5,"13.1"]]]],"*",[5,"0.02"]]],"+",[5,"0.97"]]],[13,"edgeDist",[6,"std.max",[[1,[6,"std.abs",[[1,[7,"lightPos","x"],"-",[5,"0.5"]]]],"*",[5,"2"]],[1,[6,"std.abs",[[1,[7,"lightPos","y"],"-",[5,"0.5"]]]],"*",[5,"2"]]]]],[13,"fadeStart",[1,[5,"1"],"-",[1,"edgeFade","*",[5,"0.5"]]]],[13,"edgeFadeV",[6,"std.mix",[[5,"1"],[1,[5,"1"],"-",[6,"std.smoothstep",["fadeStart",[5,"1"],"edgeDist"]]],"edgeFade"]]],[13,"masterFade",[1,[1,"intensity","*","edgeFadeV"],"*","shimmer"]],[13,"toLightAR",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[7,"lightPos","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[7,"lightPos","y"]]]]],[13,"lightDist",[6,"std.length",["toLightAR"]]],[13,"lightAngle",[6,"std.atan2",[[7,"toLightAR","y"],[7,"toLightAR","x"]]]],[10,[6,"FlareFrame",[[104,{aspect:"aspect",lightPos:"lightPos",flareAxis:"flareAxis",masterFade:"masterFade",lightDist:"lightDist",lightAngle:"lightAngle"}]]]]]]},externals:{"geom.aspectOf":()=>Vt,"d.vec2f":()=>u,"std.sin":()=>O,"std.max":()=>w,"std.abs":()=>W,"std.mix":()=>Z,"std.smoothstep":()=>ce,"std.length":()=>te,"std.atan2":()=>bt,FlareFrame:()=>yf}})&&e.f)({})),qF=y.fn([u,a,u,u,a,a,a,a,b,b],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_)=>{"use gpu";let p=c.x,f=c.y,h=c.z,g=c.w,x=_.x,T=_.y,S=_.z,A=_.w,E=r.add(o.mul(__tsover_mul(__tsover_mul(p,i),2))),M=te(u(__tsover_mul(__tsover_sub(t.x,E.x),s),__tsover_sub(t.y,E.y))),$=f,L=__tsover_sub(1,ce(__tsover_mul($,.12),$,M)),B=__tsover_sub(1,ce(__tsover_mul($,.05),__tsover_mul($,.45),M)),D=__tsover_mul(L,__tsover_sub(1,__tsover_mul(B,g))),G=__tsover_add(__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(n,4.3),A)),.08),__tsover_mul(O(__tsover_add(__tsover_mul(n,9.1),__tsover_mul(A,1.7))),.05)),.95),I=bp(M,__tsover_mul($,.78),__tsover_mul(__tsover_mul($,d),.14),__tsover_mul($,.1)),X=I.x,H=I.y,ee=I.z,Q=__tsover_mul(__tsover_mul(h,l),G);return v(__tsover_mul(__tsover_add(__tsover_mul(D,x),__tsover_mul(X,d)),Q),__tsover_mul(__tsover_add(__tsover_mul(D,T),__tsover_mul(H,d)),Q),__tsover_mul(__tsover_add(__tsover_mul(D,S),__tsover_mul(ee,d)),Q))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"lightPos"},{type:"i",name:"flareAxis"},{type:"i",name:"t"},{type:"i",name:"ghostSpread"},{type:"i",name:"ghostChroma"},{type:"i",name:"ghostInt"},{type:"i",name:"disc"},{type:"i",name:"tint"}],body:[0,[[13,"offset",[7,"disc","x"]],[13,"size",[7,"disc","y"]],[13,"bright",[7,"disc","z"]],[13,"hollow",[7,"disc","w"]],[13,"r",[7,"tint","x"]],[13,"g",[7,"tint","y"]],[13,"b",[7,"tint","z"]],[13,"gPhase",[7,"tint","w"]],[13,"ghostPos",[6,[7,"lightPos","add"],[[6,[7,"flareAxis","mul"],[[1,[1,"offset","*","ghostSpread"],"*",[5,"2"]]]]]]],[13,"toGhost",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[7,"ghostPos","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[7,"ghostPos","y"]]]]],[13,"dist",[6,"std.length",["toGhost"]]],[13,"sz","size"],[13,"discShape",[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"sz","*",[5,"0.12"]],"sz","dist"]]]],[13,"innerFade",[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"sz","*",[5,"0.05"]],[1,"sz","*",[5,"0.45"]],"dist"]]]],[13,"shape",[1,"discShape","*",[1,[5,"1"],"-",[1,"innerFade","*","hollow"]]]],[13,"gShimmer",[1,[1,[1,[6,"std.sin",[[1,[1,"t","*",[5,"4.3"]],"+","gPhase"]]],"*",[5,"0.08"]],"+",[1,[6,"std.sin",[[1,[1,"t","*",[5,"9.1"]],"+",[1,"gPhase","*",[5,"1.7"]]]]],"*",[5,"0.05"]]],"+",[5,"0.95"]]],[13,"ringCenter",[1,"sz","*",[5,"0.78"]]],[13,"chromaSpread",[1,[1,"sz","*","ghostChroma"],"*",[5,"0.14"]]],[13,"ringWidth",[1,"sz","*",[5,"0.1"]]],[13,"ring",[6,"lightfields.chromaticRingBand",["dist","ringCenter","chromaSpread","ringWidth"]]],[13,"rRing",[7,"ring","x"]],[13,"gRing",[7,"ring","y"]],[13,"bRing",[7,"ring","z"]],[13,"brightness",[1,[1,"bright","*","ghostInt"],"*","gShimmer"]],[10,[6,"d.vec3f",[[1,[1,[1,"shape","*","r"],"+",[1,"rRing","*","ghostChroma"]],"*","brightness"],[1,[1,[1,"shape","*","g"],"+",[1,"gRing","*","ghostChroma"]],"*","brightness"],[1,[1,[1,"shape","*","b"],"+",[1,"bRing","*","ghostChroma"]],"*","brightness"]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.smoothstep":()=>ce,"std.sin":()=>O,"lightfields.chromaticRingBand":()=>bp,"d.vec3f":()=>v}})&&e.f)({})),XF=y.fn([u,a,u,a,a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=u(__tsover_sub(1,r.x),__tsover_sub(1,r.y)),_=u(__tsover_mul(__tsover_sub(t.x,c.x),s),__tsover_sub(t.y,c.y)),p=bp(te(_),i,__tsover_mul(__tsover_mul(i,d),.06),__tsover_add(__tsover_mul(l,.12),.005)),f=bt(_.y,_.x),h=__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(f,3),__tsover_mul(o,.5))),.12),.88);return p.mul(n).mul(h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"lightPos"},{type:"i",name:"t"},{type:"i",name:"haloInt"},{type:"i",name:"haloRad"},{type:"i",name:"haloChroma"},{type:"i",name:"haloSoft"}],body:[0,[[13,"antiLight",[6,"d.vec2f",[[1,[5,"1"],"-",[7,"lightPos","x"]],[1,[5,"1"],"-",[7,"lightPos","y"]]]]],[13,"toAntiLight",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[7,"antiLight","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[7,"antiLight","y"]]]]],[13,"antiLightDist",[6,"std.length",["toAntiLight"]]],[13,"haloChromaSpread",[1,[1,"haloRad","*","haloChroma"],"*",[5,"0.06"]]],[13,"haloWidth",[1,[1,"haloSoft","*",[5,"0.12"]],"+",[5,"0.005"]]],[13,"halo",[6,"lightfields.chromaticRingBand",["antiLightDist","haloRad","haloChromaSpread","haloWidth"]]],[13,"haloAngle",[6,"std.atan2",[[7,"toAntiLight","y"],[7,"toAntiLight","x"]]]],[13,"haloAngVar",[1,[1,[6,"std.sin",[[1,[1,"haloAngle","*",[5,"3"]],"+",[1,"t","*",[5,"0.5"]]]]],"*",[5,"0.12"]],"+",[5,"0.88"]]],[10,[6,[7,[6,[7,"halo","mul"],["haloInt"]],"mul"],["haloAngVar"]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"lightfields.chromaticRingBand":()=>bp,"std.atan2":()=>bt,"std.sin":()=>O}})&&e.f)({})),HF=y.fn([a,u,a,a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=bt(s.y,__tsover_mul(s.x,r)),c=__tsover_add(__tsover_mul(l,.5),__tsover_mul(o,.06)),_=__tsover_add(t,c),p=tf(_,__tsover_div(i,2),3.5),f=__tsover_mul(tf(__tsover_add(_,.25),__tsover_div(i,2),7),.4),h=__tsover_div(1,__tsover_add(1,__tsover_mul(__tsover_mul(n,n),60))),g=e5(__tsover_add(__tsover_div(_,Et),.5));return Z(v(1,.97,.92),g,.12).mul(__tsover_mul(__tsover_mul(__tsover_add(p,f),h),d))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lightAngle"},{type:"i",name:"flareAxis"},{type:"i",name:"aspect"},{type:"i",name:"t"},{type:"i",name:"lightDist"},{type:"i",name:"starburstPts"},{type:"i",name:"starburstInt"}],body:[0,[[13,"axisAng",[6,"std.atan2",[[7,"flareAxis","y"],[1,[7,"flareAxis","x"],"*","aspect"]]]],[13,"rotation",[1,[1,"axisAng","*",[5,"0.5"]],"+",[1,"t","*",[5,"0.06"]]]],[13,"spikeAngle",[1,"lightAngle","+","rotation"]],[13,"primarySpikes",[6,"lightfields.angularCosineSpikes",["spikeAngle",[1,"starburstPts","/",[5,"2"]],[5,"3.5"]]]],[13,"secondarySpikes",[1,[6,"lightfields.angularCosineSpikes",[[1,"spikeAngle","+",[5,"0.25"]],[1,"starburstPts","/",[5,"2"]],[5,"7"]]],"*",[5,"0.4"]]],[13,"radialFall",[1,[5,"1"],"/",[1,[5,"1"],"+",[1,[1,"lightDist","*","lightDist"],"*",[5,"60"]]]]],[13,"starSpectral",[6,"lensFlareSpectral",[[1,[1,"spikeAngle","/","TAU_FULL"],"+",[5,"0.5"]]]]],[13,"starTint",[6,"std.mix",[[6,"d.vec3f",[[5,"1"],[5,"0.97"],[5,"0.92"]]],"starSpectral",[5,"0.12"]]]],[10,[6,[7,"starTint","mul"],[[1,[1,[1,"primarySpikes","+","secondarySpikes"],"*","radialFall"],"*","starburstInt"]]]]]]},externals:{"std.atan2":()=>bt,"lightfields.angularCosineSpikes":()=>tf,lensFlareSpectral:()=>e5,TAU_FULL:()=>Et,"std.mix":()=>Z,"d.vec3f":()=>v}})&&e.f)({})),jF=y.fn([u,u,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=W(__tsover_sub(t.y,s.y)),i=W(__tsover_sub(t.x,s.x)),d=Mt(__tsover_mul(__tsover_mul(-800,n),n)),l=__tsover_add(__tsover_mul(__tsover_mul(r,r),.25),.001),c=Mt(__tsover_div(__tsover_mul(__tsover_mul(-1,i),i),__tsover_mul(l,.7))),_=Mt(__tsover_div(__tsover_mul(__tsover_mul(-1,i),i),l)),p=Mt(__tsover_div(__tsover_mul(__tsover_mul(-1,i),i),__tsover_mul(l,1.4)));return v(__tsover_mul(__tsover_mul(d,c),.5),__tsover_mul(__tsover_mul(d,_),.65),__tsover_mul(__tsover_mul(d,p),.9)).mul(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"lightPos"},{type:"i",name:"streakLen"},{type:"i",name:"streakInt"}],body:[0,[[13,"dy",[6,"std.abs",[[1,[7,"uv","y"],"-",[7,"lightPos","y"]]]]],[13,"dx",[6,"std.abs",[[1,[7,"uv","x"],"-",[7,"lightPos","x"]]]]],[13,"vertFall",[6,"std.exp",[[1,[1,[4,"-",[5,"800"]],"*","dy"],"*","dy"]]]],[13,"lenSq",[1,[1,[1,"streakLen","*","streakLen"],"*",[5,"0.25"]],"+",[5,"0.001"]]],[13,"rStreak",[6,"std.exp",[[1,[1,[1,[4,"-",[5,"1"]],"*","dx"],"*","dx"],"/",[1,"lenSq","*",[5,"0.7"]]]]]],[13,"gStreak",[6,"std.exp",[[1,[1,[1,[4,"-",[5,"1"]],"*","dx"],"*","dx"],"/","lenSq"]]]],[13,"bStreak",[6,"std.exp",[[1,[1,[1,[4,"-",[5,"1"]],"*","dx"],"*","dx"],"/",[1,"lenSq","*",[5,"1.4"]]]]]],[10,[6,[7,[6,"d.vec3f",[[1,[1,"vertFall","*","rStreak"],"*",[5,"0.5"]],[1,[1,"vertFall","*","gStreak"],"*",[5,"0.65"]],[1,[1,"vertFall","*","bStreak"],"*",[5,"0.9"]]]],"mul"],["streakInt"]]]]]},externals:{"std.abs":()=>W,"std.exp":()=>Mt,"d.vec3f":()=>v}})&&e.f)({})),KF=y.fn([a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=O3(t,__tsover_div(1,__tsover_add(__tsover_mul(s,s),.01)));return v(1,.98,.95).mul(__tsover_mul(o,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lightDist"},{type:"i",name:"glareSz"},{type:"i",name:"glareInt"}],body:[0,[[13,"glareSharpness",[1,[5,"1"],"/",[1,[1,"glareSz","*","glareSz"],"+",[5,"0.01"]]]],[13,"glareFalloff",[6,"lightfields.radialGaussianFalloff",["lightDist","glareSharpness"]]],[10,[6,[7,[6,"d.vec3f",[[5,"1"],[5,"0.98"],[5,"0.95"]]],"mul"],[[1,"glareFalloff","*","glareInt"]]]]]]},externals:{"lightfields.radialGaussianFalloff":()=>O3,"d.vec3f":()=>v}})&&e.f)({})),ZF=y.fn([a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Mt(__tsover_mul(__tsover_mul(-500,t),t)),o=__tsover_sub(1,ce(0,.025,t));return v(1,.98,.96).mul(__tsover_mul(__tsover_add(r,__tsover_mul(o,1.5)),s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lightDist"},{type:"i",name:"intensity"}],body:[0,[[13,"coreSoft",[6,"std.exp",[[1,[1,[4,"-",[5,"500"]],"*","lightDist"],"*","lightDist"]]]],[13,"coreSharp",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],[5,"0.025"],"lightDist"]]]],[10,[6,[7,[6,"d.vec3f",[[5,"1"],[5,"0.98"],[5,"0.96"]]],"mul"],[[1,[1,"coreSoft","+",[1,"coreSharp","*",[5,"1.5"]]],"*","intensity"]]]]]]},externals:{"std.exp":()=>Mt,"std.smoothstep":()=>ce,"d.vec3f":()=>v}})&&e.f)({})),QF=y.fn([v,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.mul(s);return b(r,z(__tsover_mul(cp(r),2),0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"flareTotal"},{type:"i",name:"masterFade"}],body:[0,[[13,"finalColor",[6,[7,"flareTotal","mul"],["masterFade"]]],[13,"flareAlpha",[6,"std.clamp",[[1,[6,"tone.luma601Dot",["finalColor"]],"*",[5,"2"]],[5,"0"],[5,"1"]]]],[10,[6,"d.vec4f",["finalColor","flareAlpha"]]]]]},externals:{"std.clamp":()=>z,"tone.luma601Dot":()=>cp,"d.vec4f":()=>b}})&&e.f)({})),SN=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(o,.03),i=u(uo(t.mul(5).add(u(n,n))),uo(t.mul(5).add(u(31.4,31.4)).add(u(n,n)))).sub(u(.5,.5)),d=u(__tsover_div(1,s.x),__tsover_div(1,s.y));return t.add(i.mul(r).mul(d).mul(8))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"bleed"},{type:"i",name:"time"}],body:[0,[[13,"t",[1,"time","*",[5,"0.03"]]],[13,"wob",[6,[7,[6,"d.vec2f",[[6,"noise.value12",[[6,[7,[6,[7,"uv","mul"],[[5,"5"]]],"add"],[[6,"d.vec2f",["t","t"]]]]]],[6,"noise.value12",[[6,[7,[6,[7,[6,[7,"uv","mul"],[[5,"5"]]],"add"],[[6,"d.vec2f",[[5,"31.4"],[5,"31.4"]]]]],"add"],[[6,"d.vec2f",["t","t"]]]]]]]],"sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"texel",[6,"d.vec2f",[[1,[5,"1"],"/",[7,"viewport","x"]],[1,[5,"1"],"/",[7,"viewport","y"]]]]],[10,[6,[7,"uv","add"],[[6,[7,[6,[7,[6,[7,"wob","mul"],["bleed"]],"mul"],["texel"]],"mul"],[[5,"8"]]]]]]]]},externals:{"d.vec2f":()=>u,"noise.value12":()=>uo}})&&e.f)({})),AN=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return u(__tsover_add(t.x,__tsover_div(r,s.x)),__tsover_add(t.y,__tsover_div(o,s.y)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uvBase"},{type:"i",name:"viewport"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"uvBase","x"],"+",[1,"ox","/",[7,"viewport","x"]]],[1,[7,"uvBase","y"],"+",[1,"oy","/",[7,"viewport","y"]]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),EN=y.fn([u,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return uo(t.mul(s).mul(.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[10,[6,"noise.value12",[[6,[7,[6,[7,"uv","mul"],["viewport"]],"mul"],[[5,"0.5"]]]]]]]]},externals:{"noise.value12":()=>uo}})&&e.f)({})),PN=y.fn([b,b,b,b,v,v,v,v,a,b,b,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p,f,h,g)=>{"use gpu";let x=t.mul(c),T=s.mul(c),S=r.mul(c),A=o.mul(c),E=v(x.x,x.y,x.z),M=v(T.x,T.y,T.z),$=v(S.x,S.y,S.z),L=v(A.x,A.y,A.z),B=n.mul(c).sub(E.mul(E)),D=i.mul(c).sub(M.mul(M)),G=d.mul(c).sub($.mul($)),I=l.mul(c).sub(L.mul(L)),X=__tsover_add(__tsover_add(B.x,B.y),B.z),H=__tsover_add(__tsover_add(D.x,D.y),D.z),ee=__tsover_add(__tsover_add(G.x,G.y),G.z),Q=__tsover_add(__tsover_add(I.x,I.y),I.z),de=b(x.x,x.y,x.z,x.w),Ee=X;de=F(de,T,H<Ee),Ee=ue(Ee,H),de=F(de,S,ee<Ee),Ee=ue(Ee,ee),de=F(de,A,Q<Ee),Ee=ue(Ee,Q);let he=Hn(de),Me=v(he.x,he.y,he.z),Te=Z(1,g,f),Pe=v(p.x,p.y,p.z);return Me=Z(Me.mul(Te),Me.mul(Pe),v(__tsover_mul(f,.4))),Z(v(_.x,_.y,_.z),Me,v(h))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sum0"},{type:"i",name:"sum1"},{type:"i",name:"sum2"},{type:"i",name:"sum3"},{type:"i",name:"sq0"},{type:"i",name:"sq1"},{type:"i",name:"sq2"},{type:"i",name:"sq3"},{type:"i",name:"invN"},{type:"i",name:"originalBleed"},{type:"i",name:"paperColor"},{type:"i",name:"paper"},{type:"i",name:"strength"},{type:"i",name:"grain"}],body:[0,[[13,"mean0",[6,[7,"sum0","mul"],["invN"]]],[13,"mean1",[6,[7,"sum1","mul"],["invN"]]],[13,"mean2",[6,[7,"sum2","mul"],["invN"]]],[13,"mean3",[6,[7,"sum3","mul"],["invN"]]],[13,"rgb0",[6,"d.vec3f",[[7,"mean0","x"],[7,"mean0","y"],[7,"mean0","z"]]]],[13,"rgb1",[6,"d.vec3f",[[7,"mean1","x"],[7,"mean1","y"],[7,"mean1","z"]]]],[13,"rgb2",[6,"d.vec3f",[[7,"mean2","x"],[7,"mean2","y"],[7,"mean2","z"]]]],[13,"rgb3",[6,"d.vec3f",[[7,"mean3","x"],[7,"mean3","y"],[7,"mean3","z"]]]],[13,"var0",[6,[7,[6,[7,"sq0","mul"],["invN"]],"sub"],[[6,[7,"rgb0","mul"],["rgb0"]]]]],[13,"var1",[6,[7,[6,[7,"sq1","mul"],["invN"]],"sub"],[[6,[7,"rgb1","mul"],["rgb1"]]]]],[13,"var2",[6,[7,[6,[7,"sq2","mul"],["invN"]],"sub"],[[6,[7,"rgb2","mul"],["rgb2"]]]]],[13,"var3",[6,[7,[6,[7,"sq3","mul"],["invN"]],"sub"],[[6,[7,"rgb3","mul"],["rgb3"]]]]],[13,"sigma0",[1,[1,[7,"var0","x"],"+",[7,"var0","y"]],"+",[7,"var0","z"]]],[13,"sigma1",[1,[1,[7,"var1","x"],"+",[7,"var1","y"]],"+",[7,"var1","z"]]],[13,"sigma2",[1,[1,[7,"var2","x"],"+",[7,"var2","y"]],"+",[7,"var2","z"]]],[13,"sigma3",[1,[1,[7,"var3","x"],"+",[7,"var3","y"]],"+",[7,"var3","z"]]],[12,"picked",[6,"d.vec4f",[[7,"mean0","x"],[7,"mean0","y"],[7,"mean0","z"],[7,"mean0","w"]]]],[12,"best","sigma0"],[2,"picked","=",[6,"std.select",["picked","mean1",[1,"sigma1","<","best"]]]],[2,"best","=",[6,"std.min",["best","sigma1"]]],[2,"picked","=",[6,"std.select",["picked","mean2",[1,"sigma2","<","best"]]]],[2,"best","=",[6,"std.min",["best","sigma2"]]],[2,"picked","=",[6,"std.select",["picked","mean3",[1,"sigma3","<","best"]]]],[2,"best","=",[6,"std.min",["best","sigma3"]]],[13,"straight",[6,"blend.unpremultiplyAlpha",["picked"]]],[12,"result",[6,"d.vec3f",[[7,"straight","x"],[7,"straight","y"],[7,"straight","z"]]]],[13,"paperMul",[6,"std.mix",[[5,"1"],"grain","paper"]]],[13,"paperTint",[6,"d.vec3f",[[7,"paperColor","x"],[7,"paperColor","y"],[7,"paperColor","z"]]]],[2,"result","=",[6,"std.mix",[[6,[7,"result","mul"],["paperMul"]],[6,[7,"result","mul"],["paperTint"]],[6,"d.vec3f",[[1,"paper","*",[5,"0.4"]]]]]]],[13,"origRgb",[6,"d.vec3f",[[7,"originalBleed","x"],[7,"originalBleed","y"],[7,"originalBleed","z"]]]],[13,"finalRGB",[6,"std.mix",["origRgb","result",[6,"d.vec3f",["strength"]]]]],[10,"finalRGB"]]]},externals:{"d.vec3f":()=>v,"d.vec4f":()=>b,"std.select":()=>F,"std.min":()=>ue,"blend.unpremultiplyAlpha":()=>Hn,"std.mix":()=>Z}})&&e.f)({})),t5=Math.sin(.785),s5=Math.cos(.785),r5=Math.sin(-.785),o5=Math.cos(-.785),Vl=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ms(t)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"noise.hash12",["p"]]]]]},externals:{"noise.hash12":()=>ms}})&&e.f)({})),gf=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=K(t),r=ve(t),o=r.mul(r).mul(r.mul(-2).add(3)),n=Vl(s),i=Vl(u(__tsover_add(s.x,1),s.y)),d=Vl(u(s.x,__tsover_add(s.y,1))),l=Vl(u(__tsover_add(s.x,1),__tsover_add(s.y,1)));return Z(Z(n,i,o.x),Z(d,l,o.x),o.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,"std.floor",["p"]]],[13,"f",[6,"std.fract",["p"]]],[13,"u",[6,[7,[6,[7,"f","mul"],["f"]],"mul"],[[6,[7,[6,[7,"f","mul"],[[4,"-",[5,"2"]]]],"add"],[[5,"3"]]]]]],[13,"a",[6,"chalkHash21",["i"]]],[13,"b",[6,"chalkHash21",[[6,"d.vec2f",[[1,[7,"i","x"],"+",[5,"1"]],[7,"i","y"]]]]]],[13,"c",[6,"chalkHash21",[[6,"d.vec2f",[[7,"i","x"],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[13,"dd",[6,"chalkHash21",[[6,"d.vec2f",[[1,[7,"i","x"],"+",[5,"1"]],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[10,[6,"std.mix",[[6,"std.mix",["a","b",[7,"u","x"]]],[6,"std.mix",["c","dd",[7,"u","x"]]],[7,"u","y"]]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,chalkHash21:()=>Vl,"d.vec2f":()=>u,"std.mix":()=>Z}})&&e.f)({})),MN=y.fn([b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return le(v(t.x,t.y,t.z),v(.299,.587,.114))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,"std.dot",[[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]],[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),kN=y.fn([u,u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_div(1,s.x),d=__tsover_div(1,s.y);return u(__tsover_add(t.x,__tsover_mul(__tsover_mul(i,r),o)),__tsover_add(t.y,__tsover_mul(__tsover_mul(d,r),n)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"edgeThickness"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[13,"texelX",[1,[5,"1"],"/",[7,"viewport","x"]]],[13,"texelY",[1,[5,"1"],"/",[7,"viewport","y"]]],[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+",[1,[1,"texelX","*","edgeThickness"],"*","ox"]],[1,[7,"uv","y"],"+",[1,[1,"texelY","*","edgeThickness"],"*","oy"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),P_=y.fn([u,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_add(__tsover_mul(t.x,o),__tsover_mul(t.y,n)),l=__tsover_mul(W(__tsover_sub(ve(__tsover_div(d,s)),.5)),2),c=__tsover_sub(1,ce(0,.35,l));return __tsover_mul(c,ot(i,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"P"},{type:"i",name:"hatchScale"},{type:"i",name:"shade"},{type:"i",name:"sa"},{type:"i",name:"ca"},{type:"i",name:"thr"}],body:[0,[[13,"ry",[1,[1,[7,"P","x"],"*","sa"],"+",[1,[7,"P","y"],"*","ca"]]],[13,"hl",[1,[6,"std.abs",[[1,[6,"std.fract",[[1,"ry","/","hatchScale"]]],"-",[5,"0.5"]]]],"*",[5,"2"]]],[13,"line",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],[5,"0.35"],"hl"]]]],[10,[1,"line","*",[6,"std.step",["thr","shade"]]]]]]},externals:{"std.abs":()=>W,"std.fract":()=>ve,"std.smoothstep":()=>ce,"std.step":()=>ot}})&&e.f)({})),$N=y.fn([b,b,u,u,b,b,b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=t.x,_=t.y,p=t.z,f=t.w,h=s.x,g=s.y,x=s.z,T=s.w,S=n.x,A=n.y,E=i.x,M=i.y,$=i.z,L=i.w,B=__tsover_add(__tsover_add(__tsover_add(__tsover_sub(__tsover_sub(-c,__tsover_mul(f,2)),g),p),__tsover_mul(h,2)),T),D=__tsover_add(__tsover_add(__tsover_add(__tsover_sub(__tsover_sub(-c,__tsover_mul(_,2)),p),g),__tsover_mul(x,2)),T),G=$e(__tsover_add(__tsover_mul(B,B),__tsover_mul(D,D))),I=Z(a(1),.08,E),X=ce(__tsover_mul(I,.4),I,G),H=__tsover_sub(1,S),ee=r.mul(o),Q=__tsover_mul(w(w(P_(ee,M,H,t5,s5,.22),P_(ee,M,H,r5,o5,.5)),P_(ee,M,H,0,1,.78)),$),de=Z(__tsover_sub(1,L),a(1),gf(ee.mul(.5))),Ee=z(__tsover_mul(w(X,Q),de),0,1),he=__tsover_mul(__tsover_sub(gf(ee.mul(.9)),.5),.04);return b(Z(d.xyz.add(he),l.xyz,v(Ee)),A)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sobelA"},{type:"i",name:"sobelB"},{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"misc"},{type:"i",name:"params"},{type:"i",name:"boardColor"},{type:"i",name:"chalkColor"}],body:[0,[[13,"tl",[7,"sobelA","x"]],[13,"t",[7,"sobelA","y"]],[13,"tr",[7,"sobelA","z"]],[13,"l",[7,"sobelA","w"]],[13,"r",[7,"sobelB","x"]],[13,"bl",[7,"sobelB","y"]],[13,"bo",[7,"sobelB","z"]],[13,"br",[7,"sobelB","w"]],[13,"centerLum",[7,"misc","x"]],[13,"centerAlpha",[7,"misc","y"]],[13,"edgeSensitivity",[7,"params","x"]],[13,"hatchScale",[7,"params","y"]],[13,"shading",[7,"params","z"]],[13,"grain",[7,"params","w"]],[13,"gx",[1,[1,[1,[1,[1,[4,"-","tl"],"-",[1,"l","*",[5,"2"]]],"-","bl"],"+","tr"],"+",[1,"r","*",[5,"2"]]],"+","br"]],[13,"gy",[1,[1,[1,[1,[1,[4,"-","tl"],"-",[1,"t","*",[5,"2"]]],"-","tr"],"+","bl"],"+",[1,"bo","*",[5,"2"]]],"+","br"]],[13,"edgeMag",[6,"std.sqrt",[[1,[1,"gx","*","gx"],"+",[1,"gy","*","gy"]]]]],[13,"edgeHigh",[6,"std.mix",[[6,"d.f32",[[5,"1"]]],[5,"0.08"],"edgeSensitivity"]]],[13,"edge",[6,"std.smoothstep",[[1,"edgeHigh","*",[5,"0.4"]],"edgeHigh","edgeMag"]]],[13,"shade",[1,[5,"1"],"-","centerLum"]],[13,"P",[6,[7,"uv","mul"],["viewport"]]],[13,"hatch",[1,[6,"std.max",[[6,"std.max",[[6,"chalkHatchLine",["P","hatchScale","shade","SIN_045","COS_045",[5,"0.22"]]],[6,"chalkHatchLine",["P","hatchScale","shade","SIN_N45","COS_N45",[5,"0.5"]]]]],[6,"chalkHatchLine",["P","hatchScale","shade",[5,"0"],[5,"1"],[5,"0.78"]]]]],"*","shading"]],[13,"dust",[6,"std.mix",[[1,[5,"1"],"-","grain"],[6,"d.f32",[[5,"1"]]],[6,"chalkVnoise",[[6,[7,"P","mul"],[[5,"0.5"]]]]]]]],[13,"chalkMask",[6,"std.clamp",[[1,[6,"std.max",["edge","hatch"]],"*","dust"],[5,"0"],[5,"1"]]]],[13,"boardGrain",[1,[1,[6,"chalkVnoise",[[6,[7,"P","mul"],[[5,"0.9"]]]]],"-",[5,"0.5"]],"*",[5,"0.04"]]],[13,"boardRGB",[6,[7,[7,"boardColor","xyz"],"add"],["boardGrain"]]],[13,"col",[6,"std.mix",["boardRGB",[7,"chalkColor","xyz"],[6,"d.vec3f",["chalkMask"]]]]],[10,[6,"d.vec4f",["col","centerAlpha"]]]]]},externals:{"std.sqrt":()=>$e,"std.mix":()=>Z,"d.f32":()=>a,"std.smoothstep":()=>ce,"std.max":()=>w,chalkHatchLine:()=>P_,SIN_045:()=>t5,COS_045:()=>s5,SIN_N45:()=>r5,COS_N45:()=>o5,chalkVnoise:()=>gf,"std.clamp":()=>z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})),n5=1080,xf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({cellCenter:u,cellUV:u,isOutside:a}),"AsciiGrid"),CN=y.fn([u,u,a,a],xf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_div(s.y,n5),i=__tsover_mul(r,n),d=u(__tsover_div(s.x,i),__tsover_div(s.y,i)),l=u(__tsover_mul(t.x,d.x),__tsover_mul(t.y,d.y)),c=K(l),_=ve(l),p=__tsover_sub(_.x,.5),f=__tsover_sub(_.y,.5),h=u(__tsover_add(__tsover_div(p,o),.5),__tsover_add(__tsover_div(f,o),.5)),g=__tsover_mul(o,.5),x=F(a(0),a(1),W(p)>g||W(f)>g);return xf({cellCenter:u(__tsover_div(__tsover_add(c.x,.5),d.x),__tsover_div(__tsover_add(c.y,.5),d.y)),cellUV:h,isOutside:x})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cellSize"},{type:"i",name:"spacing"}],body:[0,[[13,"scaleFactor",[1,[7,"viewport","y"],"/","REFERENCE_HEIGHT"]],[13,"effectiveCellSize",[1,"cellSize","*","scaleFactor"]],[13,"mainGridSize",[6,"d.vec2f",[[1,[7,"viewport","x"],"/","effectiveCellSize"],[1,[7,"viewport","y"],"/","effectiveCellSize"]]]],[13,"gridCoords",[6,"d.vec2f",[[1,[7,"uv","x"],"*",[7,"mainGridSize","x"]],[1,[7,"uv","y"],"*",[7,"mainGridSize","y"]]]]],[13,"cellCoords",[6,"std.floor",["gridCoords"]]],[13,"rawCellUV",[6,"std.fract",["gridCoords"]]],[13,"centeredU",[1,[7,"rawCellUV","x"],"-",[5,"0.5"]]],[13,"centeredV",[1,[7,"rawCellUV","y"],"-",[5,"0.5"]]],[13,"cellUV",[6,"d.vec2f",[[1,[1,"centeredU","/","spacing"],"+",[5,"0.5"]],[1,[1,"centeredV","/","spacing"],"+",[5,"0.5"]]]]],[13,"half",[1,"spacing","*",[5,"0.5"]]],[13,"isOutside",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[3,[1,[6,"std.abs",["centeredU"]],">","half"],"||",[1,[6,"std.abs",["centeredV"]],">","half"]]]]],[13,"cellCenter",[6,"d.vec2f",[[1,[1,[7,"cellCoords","x"],"+",[5,"0.5"]],"/",[7,"mainGridSize","x"]],[1,[1,[7,"cellCoords","y"],"+",[5,"0.5"]],"/",[7,"mainGridSize","y"]]]]],[10,[6,"AsciiGrid",[[104,{cellCenter:"cellCenter",cellUV:"cellUV",isOutside:"isOutside"}]]]]]]},externals:{REFERENCE_HEIGHT:()=>n5,"d.vec2f":()=>u,"std.floor":()=>K,"std.fract":()=>ve,"std.select":()=>F,"d.f32":()=>a,"std.abs":()=>W,AsciiGrid:()=>xf}})&&e.f)({})).$name("asciiGrid"),RN=y.fn([v,a,a,a,a,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Ye(le(t,v(.299,.587,.114)),s),l=__tsover_sub(1,d),c=z(K(__tsover_mul(l,r)),0,__tsover_sub(r,1)),_=__tsover_sub(c,__tsover_mul(o,K(__tsover_div(c,o)))),p=K(__tsover_div(c,o)),f=__tsover_mul(__tsover_div(1,o),n),h=__tsover_mul(_,f),g=__tsover_mul(p,f);return u(__tsover_add(h,__tsover_mul(i.x,f)),__tsover_add(g,__tsover_mul(i.y,f)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cellRgb"},{type:"i",name:"gamma"},{type:"i",name:"charCount"},{type:"i",name:"atlasSize"},{type:"i",name:"atlasScale"},{type:"i",name:"cellUV"}],body:[0,[[13,"rawBrightness",[6,"std.dot",["cellRgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"adjustedBrightness",[6,"std.pow",["rawBrightness","gamma"]]],[13,"invertedBrightness",[1,[5,"1"],"-","adjustedBrightness"]],[13,"scaledBrightness",[1,"invertedBrightness","*","charCount"]],[13,"charIndex",[6,"std.clamp",[[6,"std.floor",["scaledBrightness"]],[5,"0"],[1,"charCount","-",[5,"1"]]]]],[13,"atlasCol",[1,"charIndex","-",[1,"atlasSize","*",[6,"std.floor",[[1,"charIndex","/","atlasSize"]]]]]],[13,"atlasRow",[6,"std.floor",[[1,"charIndex","/","atlasSize"]]]],[13,"atlasCellSize",[1,[1,[5,"1"],"/","atlasSize"],"*","atlasScale"]],[13,"baseU",[1,"atlasCol","*","atlasCellSize"]],[13,"baseV",[1,"atlasRow","*","atlasCellSize"]],[10,[6,"d.vec2f",[[1,"baseU","+",[1,[7,"cellUV","x"],"*","atlasCellSize"]],[1,"baseV","+",[1,[7,"cellUV","y"],"*","atlasCellSize"]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"std.pow":()=>Ye,"std.clamp":()=>z,"std.floor":()=>K,"d.vec2f":()=>u}})&&e.f)({})).$name("asciiAtlasUV"),UN=y.fn([v,b,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=le(t,v(.299,.587,.114))<.1,d=s.w,l=d<o,c=F(a(1),d,n>.5),_=i||r>.5||l,p=F(c,a(0),_);return b(__tsover_mul(t.x,s.x),__tsover_mul(t.y,s.y),__tsover_mul(t.z,s.z),p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"asciiRgb"},{type:"i",name:"cellColor"},{type:"i",name:"isOutside"},{type:"i",name:"alphaThreshold"},{type:"i",name:"preserveAlpha"}],body:[0,[[13,"charBrightness",[6,"std.dot",["asciiRgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"isBackground",[1,"charBrightness","<",[5,"0.1"]]],[13,"sourceAlpha",[7,"cellColor","w"]],[13,"isBelowThreshold",[1,"sourceAlpha","<","alphaThreshold"]],[13,"outputAlpha",[6,"std.select",[[6,"d.f32",[[5,"1"]]],"sourceAlpha",[1,"preserveAlpha",">",[5,"0.5"]]]]],[13,"hide",[3,[3,"isBackground","||",[1,"isOutside",">",[5,"0.5"]]],"||","isBelowThreshold"]],[13,"finalAlpha",[6,"std.select",["outputAlpha",[6,"d.f32",[[5,"0"]]],"hide"]]],[10,[6,"d.vec4f",[[1,[7,"asciiRgb","x"],"*",[7,"cellColor","x"]],[1,[7,"asciiRgb","y"],"*",[7,"cellColor","y"]],[1,[7,"asciiRgb","z"],"*",[7,"cellColor","z"]],"finalAlpha"]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v,"std.select":()=>F,"d.f32":()=>a,"d.vec4f":()=>b}})&&e.f)({})).$name("asciiCompose"),hT=Pn({TangentFrame:()=>O_,WardSpecularInput:()=>wT,bevelledFlatNormal:()=>yT,cosinePalette:()=>Vc,fieldGradient:()=>Py,insideMask:()=>Sv,orthonormalTangentFrame:()=>Av,outsideShape:()=>xT,patternCoords:()=>gT,perspectiveViewRay:()=>bT,volumetricNormal:()=>My,wardAnisotropicSpecular:()=>JF}),Py=y.fn([b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return u(__tsover_div(__tsover_sub(s.x,t.x),o),__tsover_div(__tsover_sub(r.x,t.x),o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"eps"}],body:[0,[[10,[6,"d.vec2f",[[1,[1,[7,"surfX","x"],"-",[7,"surf0","x"]],"/","eps"],[1,[1,[7,"surfY","x"],"-",[7,"surf0","x"]],"/","eps"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),My=y.fn([b,b,b,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";return Rs(v(z(__tsover_div(__tsover_sub(s.w,t.w),o),__tsover_mul(n,-1),n),z(__tsover_div(__tsover_sub(r.w,t.w),o),__tsover_mul(n,-1),n),-1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"eps"},{type:"i",name:"gradClamp"}],body:[0,[[13,"ddx",[6,"std.clamp",[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","eps"],[1,"gradClamp","*",[4,"-",[5,"1"]]],"gradClamp"]]],[13,"ddy",[6,"std.clamp",[[1,[1,[7,"surfY","w"],"-",[7,"surf0","w"]],"/","eps"],[1,"gradClamp","*",[4,"-",[5,"1"]]],"gradClamp"]]],[10,[6,"std.normalize",[[6,"d.vec3f",["ddx","ddy",[4,"-",[5,"1"]]]]]]]]]},externals:{"std.clamp":()=>z,"std.normalize":()=>Rs,"d.vec3f":()=>v}})&&e.f)({})),yT=y.fn([u,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=w(te(t),1e-4),o=ue(s,.9995);return v(__tsover_mul(__tsover_div(t.x,r),o),__tsover_mul(__tsover_div(t.y,r),o),__tsover_mul($e(__tsover_sub(1,__tsover_mul(o,o))),-1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"grad"},{type:"i",name:"sinTilt"}],body:[0,[[13,"glen",[6,"std.max",[[6,"std.length",["grad"]],[5,"0.0001"]]]],[13,"sB",[6,"std.min",["sinTilt",[5,"0.9995"]]]],[10,[6,"d.vec3f",[[1,[1,[7,"grad","x"],"/","glen"],"*","sB"],[1,[1,[7,"grad","y"],"/","glen"],"*","sB"],[1,[6,"std.sqrt",[[1,[5,"1"],"-",[1,"sB","*","sB"]]]],"*",[4,"-",[5,"1"]]]]]]]]},externals:{"std.max":()=>w,"std.length":()=>te,"std.min":()=>ue,"d.vec3f":()=>v,"std.sqrt":()=>$e}})&&e.f)({})),gT=y.fn([u,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(F(__tsover_sub(t.x,.5),s.y,r>.5),F(__tsover_sub(t.y,.5),s.z,r>.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdfUV"},{type:"i",name:"surf0"},{type:"i",name:"volumetric"}],body:[0,[[10,[6,"d.vec2f",[[6,"std.select",[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]],[6,"std.select",[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]]]]]]},externals:{"d.vec2f":()=>u,"std.select":()=>F}})&&e.f)({})),xT=y.fn([a,a],Ft)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return t>__tsover_mul(s,2)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"pxH"}],body:[0,[[10,[1,"sdf",">",[1,"pxH","*",[5,"2"]]]]]]},externals:{}})&&e.f)({})),Sv=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=w(__tsover_mul(s,.03125),__tsover_mul(r,o));return z(__tsover_div(__tsover_mul(t,-1),n),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"sharpEdge"},{type:"i",name:"pxH"},{type:"i",name:"minPixels"}],body:[0,[[13,"w",[6,"std.max",[[1,"sharpEdge","*",[5,"0.03125"]],[1,"pxH","*","minPixels"]]]],[10,[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","w"],[5,"0"],[5,"1"]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z}})&&e.f)({})),bT=y.fn([u,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return Rs(v(__tsover_mul(__tsover_mul(__tsover_sub(t.x,.5),s),r),__tsover_mul(__tsover_sub(t.y,.5),r),1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"fov"}],body:[0,[[10,[6,"std.normalize",[[6,"d.vec3f",[[1,[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],"*","fov"],[1,[1,[7,"uv","y"],"-",[5,"0.5"]],"*","fov"],[5,"1"]]]]]]]]},externals:{"std.normalize":()=>Rs,"d.vec3f":()=>v}})&&e.f)({})),O_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({tangent:v,bitangent:v}),"TangentFrame"),Av=y.fn([v,v],O_)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Rs(s.sub(t.mul(le(t,s))));return O_({tangent:r,bitangent:v(__tsover_sub(__tsover_mul(t.y,r.z),__tsover_mul(t.z,r.y)),__tsover_sub(__tsover_mul(t.z,r.x),__tsover_mul(t.x,r.z)),__tsover_sub(__tsover_mul(t.x,r.y),__tsover_mul(t.y,r.x)))})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"normal"},{type:"i",name:"dir"}],body:[0,[[13,"T3",[6,"std.normalize",[[6,[7,"dir","sub"],[[6,[7,"normal","mul"],[[6,"std.dot",["normal","dir"]]]]]]]]],[13,"B3",[6,"d.vec3f",[[1,[1,[7,"normal","y"],"*",[7,"T3","z"]],"-",[1,[7,"normal","z"],"*",[7,"T3","y"]]],[1,[1,[7,"normal","z"],"*",[7,"T3","x"]],"-",[1,[7,"normal","x"],"*",[7,"T3","z"]]],[1,[1,[7,"normal","x"],"*",[7,"T3","y"]],"-",[1,[7,"normal","y"],"*",[7,"T3","x"]]]]]],[10,[6,"TangentFrame",[[104,{tangent:"T3",bitangent:"B3"}]]]]]]},externals:{"std.normalize":()=>Rs,"std.dot":()=>le,"d.vec3f":()=>v,TangentFrame:()=>O_}})&&e.f)({})),wT=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({normal:v,tangent:v,light:v,view:v,alphaAlong:a,alphaAcross:a}),"WardSpecularInput"),JF=y.fn([wT],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Av(t.normal,t.tangent),r=Rs(t.light.sub(t.view)),o=le(r,s.tangent),n=le(r,s.bitangent),i=z(W(le(r,t.normal)),1e-4,1),d=w(t.alphaAlong,1e-4),l=w(t.alphaAcross,1e-4),c=__tsover_div(__tsover_add(__tsover_mul(__tsover_div(o,d),__tsover_div(o,d)),__tsover_mul(__tsover_div(n,l),__tsover_div(n,l))),__tsover_mul(__tsover_add(i,1),.5));return Mt(__tsover_mul(c,-1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"frame",[6,"orthonormalTangentFrame",[[7,"p","normal"],[7,"p","tangent"]]]],[13,"H",[6,"std.normalize",[[6,[7,[7,"p","light"],"sub"],[[7,"p","view"]]]]]],[13,"hT",[6,"std.dot",["H",[7,"frame","tangent"]]]],[13,"hB",[6,"std.dot",["H",[7,"frame","bitangent"]]]],[13,"hN",[6,"std.clamp",[[6,"std.abs",[[6,"std.dot",["H",[7,"p","normal"]]]]],[5,"0.0001"],[5,"1"]]]],[13,"aT",[6,"std.max",[[7,"p","alphaAlong"],[5,"0.0001"]]]],[13,"aB",[6,"std.max",[[7,"p","alphaAcross"],[5,"0.0001"]]]],[13,"expo",[1,[1,[1,[1,"hT","/","aT"],"*",[1,"hT","/","aT"]],"+",[1,[1,"hB","/","aB"],"*",[1,"hB","/","aB"]]],"/",[1,[1,"hN","+",[5,"1"]],"*",[5,"0.5"]]]],[10,[6,"std.exp",[[1,"expo","*",[4,"-",[5,"1"]]]]]]]]},externals:{orthonormalTangentFrame:()=>Av,"std.normalize":()=>Rs,"std.dot":()=>le,"std.clamp":()=>z,"std.abs":()=>W,"std.max":()=>w,"std.exp":()=>Mt}})&&e.f)({})),Vc=y.fn([a,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return v(__tsover_add(__tsover_mul(J(__tsover_mul(__tsover_add(t,s),_o)),.5),.5),__tsover_add(__tsover_mul(J(__tsover_mul(__tsover_add(t,r),_o)),.5),.5),__tsover_add(__tsover_mul(J(__tsover_mul(__tsover_add(t,o),_o)),.5),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"phaseR"},{type:"i",name:"phaseG"},{type:"i",name:"phaseB"}],body:[0,[[10,[6,"d.vec3f",[[1,[1,[6,"std.cos",[[1,[1,"t","+","phaseR"],"*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[6,"std.cos",[[1,[1,"t","+","phaseG"],"*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[6,"std.cos",[[1,[1,"t","+","phaseB"],"*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]]},externals:{"d.vec3f":()=>v,"std.cos":()=>J,TWO_PI:()=>_o}})&&e.f)({})),eB=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return ce(0,1,Sv(t,w(__tsover_mul(s,.5),.001),r,1.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"edgeSoftness"},{type:"i",name:"pxH"}],body:[0,[[13,"sharpEdge",[6,"std.max",[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[10,[6,"std.smoothstep",[[5,"0"],[5,"1"],[6,"insideMask",["sdf","sharpEdge","pxH",[5,"1.5"]]]]]]]]},externals:{"std.max":()=>w,"std.smoothstep":()=>ce,insideMask:()=>Sv}})&&e.f)({})),bf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({L:v,H:v}),"KeyLight"),tB=y.fn([a,a,a],bf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Rs(v(t,s,r));return bf({L:o,H:Rs(o.add(v(0,0,-1)))})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"lx"},{type:"i",name:"ly"},{type:"i",name:"lz"}],body:[0,[[13,"L",[6,"std.normalize",[[6,"d.vec3f",["lx","ly","lz"]]]]],[13,"H",[6,"std.normalize",[[6,[7,"L","add"],[[6,"d.vec3f",[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[10,[6,"KeyLight",[[104,{L:"L",H:"H"}]]]]]]},externals:{"std.normalize":()=>Rs,"d.vec3f":()=>v,KeyLight:()=>bf}})&&e.f)({})),sB=y.fn([v],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_sub(1,z(__tsover_mul(t.z,-1),0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"n"}],body:[0,[[10,[1,[5,"1"],"-",[6,"std.clamp",[[1,[7,"n","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]]]]]},externals:{"std.clamp":()=>z}})&&e.f)({})),rB=y.fn([a,a,b],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_mul(Ye(t,Z(r.x,r.y,s)),Z(r.z,r.w,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"ndh"},{type:"i",name:"sharp"},{type:"i",name:"cfg"}],body:[0,[[10,[1,[6,"std.pow",["ndh",[6,"std.mix",[[7,"cfg","x"],[7,"cfg","y"],"sharp"]]]],"*",[6,"std.mix",[[7,"cfg","z"],[7,"cfg","w"],"sharp"]]]]]]},externals:{"std.pow":()=>Ye,"std.mix":()=>Z}})&&e.f)({})),oB=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=a(4),o=qn(t);return u(z(__tsover_mul(o.y,s),__tsover_mul(r,-1),r),z(__tsover_mul(o.z,s),__tsover_mul(r,-1),r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"q"},{type:"i",name:"gain"}],body:[0,[[13,"gMax",[6,"d.f32",[[5,"4"]]]],[13,"nd",[6,"perlin12d",["q"]]],[10,[6,"d.vec2f",[[6,"std.clamp",[[1,[7,"nd","y"],"*","gain"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]],[6,"std.clamp",[[1,[7,"nd","z"],"*","gain"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]]]]]]},externals:{"d.f32":()=>a,perlin12d:()=>qn,"d.vec2f":()=>u,"std.clamp":()=>z}})&&e.f)({})),nB=y.fn([v,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return Rs(v(__tsover_add(t.x,s),__tsover_add(t.y,r),t.z))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"n"},{type:"i",name:"dx"},{type:"i",name:"dy"}],body:[0,[[10,[6,"std.normalize",[[6,"d.vec3f",[[1,[7,"n","x"],"+","dx"],[1,[7,"n","y"],"+","dy"],[7,"n","z"]]]]]]]]},externals:{"std.normalize":()=>Rs,"d.vec3f":()=>v}})&&e.f)({})),aB=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=z(__tsover_mul(__tsover_mul(t,-1),2),0,1.2);return F(__tsover_mul(z(__tsover_mul(t,-1),0,.5),2),r,s>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"volumetric"}],body:[0,[[13,"thickVol",[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"*",[5,"2"]],[5,"0"],[5,"1.2"]]]],[13,"thickFlat",[1,[6,"std.clamp",[[1,"sdf","*",[4,"-",[5,"1"]]],[5,"0"],[5,"0.5"]]],"*",[5,"2"]]],[10,[6,"std.select",["thickFlat","thickVol",[1,"volumetric",">",[5,"0.5"]]]]]]]},externals:{"std.clamp":()=>z,"std.select":()=>F}})&&e.f)({})),iB=y.fn([a,v],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return v(Mt(__tsover_mul(__tsover_mul(t,s.x),-1)),Mt(__tsover_mul(__tsover_mul(t,s.y),-1)),Mt(__tsover_mul(__tsover_mul(t,s.z),-1)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"thickness"},{type:"i",name:"absorb"}],body:[0,[[10,[6,"d.vec3f",[[6,"std.exp",[[1,[1,"thickness","*",[7,"absorb","x"]],"*",[4,"-",[5,"1"]]]]],[6,"std.exp",[[1,[1,"thickness","*",[7,"absorb","y"]],"*",[4,"-",[5,"1"]]]]],[6,"std.exp",[[1,[1,"thickness","*",[7,"absorb","z"]],"*",[4,"-",[5,"1"]]]]]]]]]]},externals:{"d.vec3f":()=>v,"std.exp":()=>Mt}})&&e.f)({})),dB=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(__tsover_mul(O(__tsover_add(__tsover_add(__tsover_mul(t.x,1.7),__tsover_mul(s,.7)),1.7)),J(__tsover_add(__tsover_add(__tsover_mul(t.y,1.3),__tsover_mul(s,.5)),2.3))),__tsover_mul(J(__tsover_add(__tsover_add(__tsover_mul(t.x,1.4),__tsover_mul(s,.9)),8.7)),O(__tsover_add(__tsover_add(__tsover_mul(t.y,1.6),__tsover_mul(s,.6)),5.1))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"warpInput"},{type:"i",name:"flowT"}],body:[0,[[13,"wx",[1,[6,"std.sin",[[1,[1,[1,[7,"warpInput","x"],"*",[5,"1.7"]],"+",[1,"flowT","*",[5,"0.7"]]],"+",[5,"1.7"]]]],"*",[6,"std.cos",[[1,[1,[1,[7,"warpInput","y"],"*",[5,"1.3"]],"+",[1,"flowT","*",[5,"0.5"]]],"+",[5,"2.3"]]]]]],[13,"wy",[1,[6,"std.cos",[[1,[1,[1,[7,"warpInput","x"],"*",[5,"1.4"]],"+",[1,"flowT","*",[5,"0.9"]]],"+",[5,"8.7"]]]],"*",[6,"std.sin",[[1,[1,[1,[7,"warpInput","y"],"*",[5,"1.6"]],"+",[1,"flowT","*",[5,"0.6"]]],"+",[5,"5.1"]]]]]],[10,[6,"d.vec2f",["wx","wy"]]]]]},externals:{"std.sin":()=>O,"std.cos":()=>J,"d.vec2f":()=>u}})&&e.f)({})),lB=y.fn([a,a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=__tsover_sub(__tsover_mul(t,r),__tsover_mul(s,o)),_=__tsover_add(__tsover_mul(t,o),__tsover_mul(s,r)),p=u(c,_),f=ce(-.7,.85,_),h=__tsover_mul(__tsover_mul(f,f),l),g=__tsover_mul(n,1);h=__tsover_add(h,__tsover_mul(__tsover_mul(ce(g,__tsover_mul(g,.2),te(p.sub(u(__tsover_add(0,i),.55)))),1.7),d));let x=__tsover_mul(n,1.15);h=__tsover_add(h,__tsover_mul(__tsover_mul(ce(x,__tsover_mul(x,.2),te(p.sub(u(__tsover_add(-.55,i),.18)))),1.05),d));let T=__tsover_mul(n,1);h=__tsover_add(h,__tsover_mul(__tsover_mul(ce(T,__tsover_mul(T,.2),te(p.sub(u(__tsover_add(.55,i),.1)))),1),d));let S=__tsover_mul(n,1.3);h=__tsover_add(h,__tsover_mul(__tsover_mul(ce(S,__tsover_mul(S,.2),te(p.sub(u(__tsover_add(.2,i),-.5)))),.7),d));let A=__tsover_mul(n,1.1);return h=__tsover_add(h,__tsover_mul(__tsover_mul(ce(A,__tsover_mul(A,.2),te(p.sub(u(__tsover_add(-.35,i),-.25)))),.85),d)),h}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rx"},{type:"i",name:"ry"},{type:"i",name:"envC"},{type:"i",name:"envS"},{type:"i",name:"keyRad"},{type:"i",name:"drift"},{type:"i",name:"envStr"},{type:"i",name:"skyGain"}],body:[0,[[13,"ex",[1,[1,"rx","*","envC"],"-",[1,"ry","*","envS"]]],[13,"ey",[1,[1,"rx","*","envS"],"+",[1,"ry","*","envC"]]],[13,"p",[6,"d.vec2f",["ex","ey"]]],[13,"sky",[6,"std.smoothstep",[[4,"-",[5,"0.7"]],[5,"0.85"],"ey"]]],[12,"lum",[1,[1,"sky","*","sky"],"*","skyGain"]],[13,"r0",[1,"keyRad","*",[5,"1"]]],[2,"lum","=",[1,"lum","+",[1,[1,[6,"std.smoothstep",["r0",[1,"r0","*",[5,"0.2"]],[6,"std.length",[[6,[7,"p","sub"],[[6,"d.vec2f",[[1,[5,"0"],"+","drift"],[5,"0.55"]]]]]]]]],"*",[5,"1.7"]],"*","envStr"]]],[13,"r1",[1,"keyRad","*",[5,"1.15"]]],[2,"lum","=",[1,"lum","+",[1,[1,[6,"std.smoothstep",["r1",[1,"r1","*",[5,"0.2"]],[6,"std.length",[[6,[7,"p","sub"],[[6,"d.vec2f",[[1,[4,"-",[5,"0.55"]],"+","drift"],[5,"0.18"]]]]]]]]],"*",[5,"1.05"]],"*","envStr"]]],[13,"r2",[1,"keyRad","*",[5,"1"]]],[2,"lum","=",[1,"lum","+",[1,[1,[6,"std.smoothstep",["r2",[1,"r2","*",[5,"0.2"]],[6,"std.length",[[6,[7,"p","sub"],[[6,"d.vec2f",[[1,[5,"0.55"],"+","drift"],[5,"0.1"]]]]]]]]],"*",[5,"1"]],"*","envStr"]]],[13,"r3",[1,"keyRad","*",[5,"1.3"]]],[2,"lum","=",[1,"lum","+",[1,[1,[6,"std.smoothstep",["r3",[1,"r3","*",[5,"0.2"]],[6,"std.length",[[6,[7,"p","sub"],[[6,"d.vec2f",[[1,[5,"0.2"],"+","drift"],[4,"-",[5,"0.5"]]]]]]]]]],"*",[5,"0.7"]],"*","envStr"]]],[13,"r4",[1,"keyRad","*",[5,"1.1"]]],[2,"lum","=",[1,"lum","+",[1,[1,[6,"std.smoothstep",["r4",[1,"r4","*",[5,"0.2"]],[6,"std.length",[[6,[7,"p","sub"],[[6,"d.vec2f",[[1,[4,"-",[5,"0.35"]],"+","drift"],[4,"-",[5,"0.25"]]]]]]]]]],"*",[5,"0.85"]],"*","envStr"]]],[10,"lum"]]]},externals:{"d.vec2f":()=>u,"std.smoothstep":()=>ce,"std.length":()=>te}})&&e.f)({})),cB=new Map,a5=new Set;function TT(e){return cB.get(e)??null}function ST(e){return a5.add(e),()=>{a5.delete(e)}}var uB=16,_B=64;var zN=uB*_B;var pB=Pn({accumulateInstances:()=>bB,formatFloat:()=>$m,gridPlacement:()=>vB,instanceHueShift:()=>xB,instanceVariation:()=>gB,linePlacement:()=>yB,placementField:()=>fB,radialPlacement:()=>hB,sourceRect:()=>mB}),uc=Math.PI;function mB(e,t,s){let{p:r,L:o}=e;return[`let ${r}_cropL = ${s.left};`,`let ${r}_cropR = ${s.right};`,`let ${r}_cropT = ${s.top};`,`let ${r}_cropB = ${s.bottom};`,`let ${r}_srcCx = (${t.cx}) + (${r}_cropL - ${r}_cropR) * (${t.hw});`,`let ${r}_srcCy = (${t.cy}) + (${r}_cropT - ${r}_cropB) * (${t.hh});`,`let ${r}_srcHw = max((${t.hw}) * (1.0 - ${r}_cropL - ${r}_cropR), ${o(1e-6)});`,`let ${r}_srcHh = max((${t.hh}) * (1.0 - ${r}_cropT - ${r}_cropB), ${o(1e-6)});`,`let ${r}_srcHwSq = ${r}_srcHw * ${r}_aspect;`,`let ${r}_srcHhSq = ${r}_srcHh;`]}function fB(e,t){let{p:s,L:r}=e;return[`let ${s}_fieldCenterSq = vec2f((${t.cx}) * ${s}_aspect, ${t.cy});`,`let ${s}_fieldHwSq = max((${t.hw}) * ${s}_aspect, ${r(1e-6)});`,`let ${s}_fieldHh = max(${t.hh}, ${r(1e-6)});`]}function vB(e,t){return{requested:()=>`(${e.columns} * ${e.rows})`,body:s=>{let{p:r,L:o}=s,n=[`let ${r}_cols = ${e.columns};`,`let ${r}_rows = ${e.rows};`,`let ${r}_col = ${r}_j - ${r}_cols * floor(${r}_j / ${r}_cols);`,`let ${r}_row = floor(${r}_j / ${r}_cols);`,`let ${r}_gapXSq = ${e.gapX} * ${r}_aspect;`,`let ${r}_gapY = ${e.gapY};`,`let ${r}_fieldW = ${r}_fieldHwSq * 2.0;`,`let ${r}_fieldH = ${r}_fieldHh * 2.0;`,`let ${r}_pitchX = (${r}_fieldW - ${r}_gapXSq * (${r}_cols - 1.0)) / ${r}_cols;`,`let ${r}_pitchY = (${r}_fieldH - ${r}_gapY * (${r}_rows - 1.0)) / ${r}_rows;`,`let ${r}_periodX = ${r}_pitchX + ${r}_gapXSq;`,`let ${r}_periodY = ${r}_pitchY + ${r}_gapY;`,`${r}_cellFitInv = max(${r}_srcHwSq * 2.0 / max(${r}_pitchX, ${o(1e-5)}), ${r}_srcHhSq * 2.0 / max(${r}_pitchY, ${o(1e-5)}));`,`let ${r}_rowMod2 = ${r}_row - 2.0 * floor(${r}_row / 2.0);`,`let ${r}_staggerOff = ${r}_rowMod2 * ${e.stagger} * ${r}_periodX;`,`let ${r}_cxArg = ${r}_col * ${r}_periodX + ${r}_staggerOff + ${r}_phase * ${r}_periodX;`,`let ${r}_cxMod = ${r}_periodX * ${r}_cols;`,`let ${r}_cellX = ${r}_cxArg - ${r}_cxMod * floor(${r}_cxArg / ${r}_cxMod);`,`let ${r}_cyArg = ${r}_row * ${r}_periodY + ${r}_phase * ${r}_periodY;`,`let ${r}_cyMod = ${r}_periodY * ${r}_rows;`,`let ${r}_cellY = ${r}_cyArg - ${r}_cyMod * floor(${r}_cyArg / ${r}_cyMod);`,`${r}_pos = vec2f(${r}_fieldCenterSq.x - ${r}_fieldW * 0.5 + ${r}_pitchX * 0.5 + ${r}_cellX, ${r}_fieldCenterSq.y - ${r}_fieldH * 0.5 + ${r}_pitchY * 0.5 + ${r}_cellY);`];return(t===1||t===3)&&n.push(`${r}_flipX = 1.0 - (${r}_col - 2.0 * floor(${r}_col / 2.0)) * 2.0;`),(t===2||t===3)&&n.push(`${r}_flipY = 1.0 - (${r}_row - 2.0 * floor(${r}_row / 2.0)) * 2.0;`),n}}}function hB(e,t){return{requested:()=>t.count,body:s=>{let{p:r,L:o}=s;return[`let ${r}_cSq = ${e};`,`let ${r}_sweep = ${t.sweep} * ${o(uc/180)};`,`let ${r}_start = ${t.startAngle} * ${o(uc/180)};`,`let ${r}_ang = ${r}_start + ${r}_sweep * (${r}_j / ${r}_totalN) + ${r}_phase * ${r}_sweep;`,`${r}_pos = ${r}_cSq + vec2f(cos(${r}_ang), sin(${r}_ang)) * ${t.radius};`,`${r}_layoutRot = select(0.0, ${r}_ang + ${o(uc/2)}, ${t.faceCenter} > 0.0);`]}}}function yB(e,t){return{requested:()=>t.count,body:s=>{let{p:r,L:o}=s;return[`let ${r}_cSq = ${e};`,`let ${r}_dirRad = ${t.direction} * ${o(uc/180)};`,`let ${r}_dir = vec2f(cos(${r}_dirRad), sin(${r}_dirRad));`,`let ${r}_tArg = ${r}_j + ${r}_phase;`,`let ${r}_t = ${r}_tArg - ${r}_totalN * floor(${r}_tArg / ${r}_totalN);`,`${r}_pos = ${r}_cSq + ${r}_dir * ${t.spacing} * ${r}_t;`]}}}function gB(e,t){let{p:s,L:r}=e,o=n=>`fract(sin((${s}_hashBase + ${r(n)}) * 78.233) * 43758.5453)`;return[`let ${s}_hashBase = ${s}_j + ${s}_seed * 7.0;`,`let ${s}_h1 = ${o(.123)};`,`let ${s}_h2 = ${o(5.456)};`,`let ${s}_h3 = ${o(9.789)};`,`let ${s}_h4 = ${o(13.21)};`,`let ${s}_h5 = ${o(17.65)};`,`let ${s}_scale = max(pow(${t.scale}, ${s}_j) * (1.0 + ${t.jitterScale} * (${s}_h3 - 0.5)), ${r(1e-4)});`,`let ${s}_rot = ${s}_layoutRot + ${t.rotation} * ${s}_j + ${t.jitterRotation} * (${s}_h4 - 0.5) * ${r(uc*2)};`,`let ${s}_instOpacity = pow(${t.opacity}, ${s}_j) * (1.0 - ${t.jitterOpacity} * ${s}_h5);`,`${s}_pos = ${s}_pos + vec2f((${s}_h1 - 0.5) * ${s}_fieldHwSq, (${s}_h2 - 0.5) * ${s}_fieldHh) * ${t.jitterPosition};`]}function xB(e,t){let{p:s,L:r}=e;return[`let ${s}_hueAngle = ${t} * ${s}_j;`,`let ${s}_cosH = cos(${s}_hueAngle);`,`let ${s}_sinH = sin(${s}_hueAngle);`,`let ${s}_kOMC = (1.0 - ${s}_cosH) * ${r(1/3)};`,`let ${s}_sOS3 = ${s}_sinH / 1.7320508075688772;`,`let ${s}_mA = ${s}_cosH + ${s}_kOMC;`,`let ${s}_mB = ${s}_kOMC - ${s}_sOS3;`,`let ${s}_mC = ${s}_kOMC + ${s}_sOS3;`,`${s}_rgb = vec3f(${s}_src.r * ${s}_mA + ${s}_src.g * ${s}_mB + ${s}_src.b * ${s}_mC, ${s}_src.r * ${s}_mC + ${s}_src.g * ${s}_mA + ${s}_src.b * ${s}_mB, ${s}_src.r * ${s}_mB + ${s}_src.g * ${s}_mC + ${s}_src.b * ${s}_mA);`]}function bB(e,t){let{p:s}=e,r=[];r.push(`let ${s}_totalN = min(max(${t.placement.requested()}, 1.0), 64.0);`),r.push(`var ${s}_accum = vec4f(0.0, 0.0, 0.0, 0.0);`),r.push(`var ${s}_cellFitInv = 1.0;`);let o=[];o.push(`let ${s}_fi = f32(${s}_i);`),o.push(t.zBack?`let ${s}_j = ${s}_totalN - 1.0 - ${s}_fi;`:`let ${s}_j = ${s}_fi;`),o.push(`var ${s}_pos = vec2f(0.0, 0.0);`),o.push(`var ${s}_layoutRot = 0.0;`),o.push(`var ${s}_flipX = 1.0;`),o.push(`var ${s}_flipY = 1.0;`),o.push(...t.placement.body(e)),o.push(...t.variation),o.push(`let ${s}_negRot = -${s}_rot;`),o.push(`let ${s}_cosA = cos(${s}_negRot);`),o.push(`let ${s}_sinA = sin(${s}_negRot);`),o.push(`let ${s}_d0 = ${s}_pix - ${s}_pos;`),o.push(`let ${s}_dr = vec2f(${s}_d0.x * ${s}_cosA - ${s}_d0.y * ${s}_sinA, ${s}_d0.x * ${s}_sinA + ${s}_d0.y * ${s}_cosA);`),o.push(`let ${s}_dl = ${s}_dr / ${s}_scale;`),o.push(`let ${s}_localU = ${s}_dl.x * ${s}_flipX * ${s}_cellFitInv / (${s}_srcHwSq * 2.0) + 0.5;`),o.push(`let ${s}_localV = ${s}_dl.y * ${s}_flipY * ${s}_cellFitInv / (${s}_srcHhSq * 2.0) + 0.5;`);let n=[];n.push(`let ${s}_sampleUV = vec2f(${s}_srcCx - ${s}_srcHw + ${s}_localU * ${s}_srcHw * 2.0, ${s}_srcCy - ${s}_srcHh + ${s}_localV * ${s}_srcHh * 2.0);`),n.push(`let ${s}_src = textureSampleLevel(tex.$.${t.texKey}, samp.$.linearClamp, ${s}_sampleUV, 0.0);`),n.push(`var ${s}_rgb = ${s}_src.rgb;`),n.push(...t.hue),n.push(`let ${s}_a = ${s}_src.a * ${s}_instOpacity;`),n.push(`let ${s}_premul = ${s}_rgb * ${s}_a;`),n.push(`${s}_accum = vec4f(${s}_premul + ${s}_accum.rgb * (1.0 - ${s}_a), ${s}_a + ${s}_accum.a * (1.0 - ${s}_a));`),o.push(`if (${s}_localU >= 0.0 && ${s}_localU <= 1.0 && ${s}_localV >= 0.0 && ${s}_localV <= 1.0) {`);for(let i of n)o.push(` ${i}`);o.push("}"),r.push(`for (var ${s}_i = 0u; ${s}_i < u32(${s}_totalN); ${s}_i++) {`);for(let i of o)r.push(` ${i}`);return r.push("}"),r}function No(){if(typeof window>"u")return!1;let e=!!(window.matchMedia&&window.matchMedia("(pointer: coarse)").matches),t=Math.max(window.innerWidth||0,window.innerHeight||0);return e&&t>0&&t<=1366}function AT(){return No()?1.5:2}var GN=No()?24:50;var wB=14,DN=wB+1,Ev="rgba32float";var ET=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({dt:a,trackersF:a,agility:a,threshold:a,variance:a,lifespan:a}),"TrackParams"),LN=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({src:{texture:Hs(a)},grid:{storageTexture:an(Ev,"write-only")},params:{uniform:ET}}),"featureLayout"),FN=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({src:{texture:Hs(a)},featGrid:{texture:Hs(a),sampleType:"unfilterable-float"},prev:{texture:Hs(a),sampleType:"unfilterable-float"},next:{storageTexture:an(Ev,"write-only")},present:{storageTexture:an(Ev,"write-only")},params:{uniform:ET}}),"trackLayout"),BN=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return ve(__tsover_mul(O(t),43758.5453123))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[6,"std.fract",[[1,[6,"std.sin",["x"]],"*",[5,"43758.5453123"]]]]]]]},externals:{"std.fract":()=>ve,"std.sin":()=>O}})&&e.f)({})),"trackHash");function TB(e={}){let t=e.smoothing??.2,s=e.teleportGuard??.25,r=e.minDrag??6e-4,o=e.initialX??.5,n=e.initialY??.5,i=0,d=0,l=!1,c=!1;return{update(_,p){let f=_?.seen===!1;f?l=!0:_?.x!==void 0&&l&&!c&&(c=!0,o=_.x,n=_.y??n);let h=o,g=n,x=f?o:_?.x??o,T=f?n:_?.y??n,S=x-h,A=T-g,E=Math.sqrt(S*S+A*A),M=E>=s;o=x,n=T;let $=M?0:S,L=M?0:A,B=1/Math.max(p,.001),D=$*B,G=L*B;return i=i*(1-t)+D*t,d=d*(1-t)+G*t,{x,y:T,prevX:h,prevY:g,dx:$,dy:L,dragDist:E,velX:D,velY:G,smoothVelX:i,smoothVelY:d,smoothSpeed:Math.sqrt(i*i+d*d),teleport:M,moving:!M&&E>r}}}}var i5=3,Pv=Math.exp(-(i5*i5)),d5=1/(1-Pv),Mv=.004,PT="rgba16float";function SB(e){return y.bindGroupLayout({readBuf:{storage:zt(a,e),access:"readonly"},writeBuf:{storage:zt(a,e),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(t=>t))(Ct({cursorX:a,cursorY:a,cursorSpeed:a,dt:a,damping:a,radius:a,aspect:a}),"uniform")}})}function AB(e){return y.bindGroupLayout({srcBuf:{storage:zt(a,e),access:"readonly"},dispTex:{storageTexture:an(PT,"write-only")}})}var l5=new Map;function EB(e){let t=l5.get(e);if(t)return t;let s=e*e,r=e-1,o=SB(s),n=AB(s),i={resolution:e,propagateLayout:o,gradientLayout:n,propagateKernel:y.fn([Y,Y])((d=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(d.f=((l,c)=>{"use gpu";if(l>Y(0)&&l<Y(r)&&c>Y(0)&&c<Y(r)){let _=o.$.params,p=Y(e),f=__tsover_add(__tsover_mul(c,p),l),h=o.$.readBuf[__tsover_sub(f,Y(1))],g=o.$.readBuf[__tsover_add(f,Y(1))],x=o.$.readBuf[__tsover_sub(f,p)],T=o.$.readBuf[__tsover_add(f,p)],S=__tsover_mul(__tsover_add(__tsover_add(__tsover_add(h,g),x),T),.5),A=o.$.writeBuf[f],E=__tsover_sub(1,__tsover_mul(_.damping,Mv)),M=__tsover_mul(__tsover_sub(S,A),E),$=__tsover_div(__tsover_add(a(l),.5),a(e)),L=__tsover_div(__tsover_add(a(c),.5),a(e)),B=F(__tsover_sub($,_.cursorX),__tsover_mul(__tsover_sub($,_.cursorX),_.aspect),_.aspect>=1),D=F(__tsover_div(__tsover_sub(L,_.cursorY),_.aspect),__tsover_sub(L,_.cursorY),_.aspect>=1),G=__tsover_add(__tsover_mul(B,B),__tsover_mul(D,D)),I=__tsover_mul(_.radius,3);if(G<__tsover_mul(I,I)&&_.cursorSpeed>.01){let X=__tsover_mul(__tsover_sub(Mt(__tsover_mul(__tsover_div(G,__tsover_mul(_.radius,_.radius)),-1)),Pv),d5);M=__tsover_sub(M,__tsover_mul(__tsover_mul(__tsover_mul(X,_.cursorSpeed),_.dt),3))}o.$.writeBuf[f]=M}}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,"d.u32",[[5,"0"]]]],"&&",[1,"cx","<",[6,"d.u32",["gridMax"]]]],"&&",[1,"cy",">",[6,"d.u32",[[5,"0"]]]]],"&&",[1,"cy","<",[6,"d.u32",["gridMax"]]]],[0,[[13,"p",[7,[7,"propagateLayout","$"],"params"]],[13,"gs",[6,"d.u32",["resolution"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"left",[8,[7,[7,"propagateLayout","$"],"readBuf"],[1,"idx","-",[6,"d.u32",[[5,"1"]]]]]],[13,"right",[8,[7,[7,"propagateLayout","$"],"readBuf"],[1,"idx","+",[6,"d.u32",[[5,"1"]]]]]],[13,"up",[8,[7,[7,"propagateLayout","$"],"readBuf"],[1,"idx","-","gs"]]],[13,"down",[8,[7,[7,"propagateLayout","$"],"readBuf"],[1,"idx","+","gs"]]],[13,"avg",[1,[1,[1,[1,"left","+","right"],"+","up"],"+","down"],"*",[5,"0.5"]]],[13,"prev",[8,[7,[7,"propagateLayout","$"],"writeBuf"],"idx"]],[13,"dampFactor",[1,[5,"1"],"-",[1,[7,"p","damping"],"*","DAMPING_SCALE"]]],[12,"next",[1,[1,"avg","-","prev"],"*","dampFactor"]],[13,"cellX",[1,[1,[6,"d.f32",["cx"]],"+",[5,"0.5"]],"/",[6,"d.f32",["resolution"]]]],[13,"cellY",[1,[1,[6,"d.f32",["cy"]],"+",[5,"0.5"]],"/",[6,"d.f32",["resolution"]]]],[13,"ddx",[6,"std.select",[[1,"cellX","-",[7,"p","cursorX"]],[1,[1,"cellX","-",[7,"p","cursorX"]],"*",[7,"p","aspect"]],[1,[7,"p","aspect"],">=",[5,"1"]]]]],[13,"ddy",[6,"std.select",[[1,[1,"cellY","-",[7,"p","cursorY"]],"/",[7,"p","aspect"]],[1,"cellY","-",[7,"p","cursorY"]],[1,[7,"p","aspect"],">=",[5,"1"]]]]],[13,"distSq",[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]]],[13,"influenceRadius",[1,[7,"p","radius"],"*",[5,"3"]]],[11,[3,[1,"distSq","<",[1,"influenceRadius","*","influenceRadius"]],"&&",[1,[7,"p","cursorSpeed"],">",[5,"0.01"]]],[0,[[13,"influence",[1,[1,[6,"std.exp",[[1,[1,"distSq","/",[1,[7,"p","radius"],"*",[7,"p","radius"]]],"*",[4,"-",[5,"1"]]]]],"-","BRUSH_EDGE"],"*","BRUSH_EDGE_GAIN"]],[2,"next","=",[1,"next","-",[1,[1,[1,"influence","*",[7,"p","cursorSpeed"]],"*",[7,"p","dt"]],"*",[5,"3"]]]]]]],[2,[8,[7,[7,"propagateLayout","$"],"writeBuf"],"idx"],"=","next"]]]]]]},externals:{"d.u32":()=>Y,gridMax:()=>r,propagateLayout:()=>o,resolution:()=>e,DAMPING_SCALE:()=>Mv,"d.f32":()=>a,"std.select":()=>F,"std.exp":()=>Mt,BRUSH_EDGE:()=>Pv,BRUSH_EDGE_GAIN:()=>d5}})&&d.f)({})).$name(`waveFieldPropagate_${e}`),gradientKernel:y.fn([Y,Y])((d=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(d.f=((l,c)=>{"use gpu";if(l>Y(0)&&l<Y(r)&&c>Y(0)&&c<Y(r)){let _=Y(e),p=__tsover_add(__tsover_mul(c,_),l),f=n.$.srcBuf[__tsover_add(p,Y(1))],h=n.$.srcBuf[__tsover_sub(p,Y(1))],g=n.$.srcBuf[__tsover_add(p,_)],x=n.$.srcBuf[__tsover_sub(p,_)],T=__tsover_mul(__tsover_sub(f,h),.5),S=__tsover_mul(__tsover_sub(g,x),.5);Co(n.$.dispTex,He(l,c),b(T,S,0,1))}}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,"d.u32",[[5,"0"]]]],"&&",[1,"cx","<",[6,"d.u32",["gridMax"]]]],"&&",[1,"cy",">",[6,"d.u32",[[5,"0"]]]]],"&&",[1,"cy","<",[6,"d.u32",["gridMax"]]]],[0,[[13,"gs",[6,"d.u32",["resolution"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"right",[8,[7,[7,"gradientLayout","$"],"srcBuf"],[1,"idx","+",[6,"d.u32",[[5,"1"]]]]]],[13,"left",[8,[7,[7,"gradientLayout","$"],"srcBuf"],[1,"idx","-",[6,"d.u32",[[5,"1"]]]]]],[13,"down",[8,[7,[7,"gradientLayout","$"],"srcBuf"],[1,"idx","+","gs"]]],[13,"up",[8,[7,[7,"gradientLayout","$"],"srcBuf"],[1,"idx","-","gs"]]],[13,"dx",[1,[1,"right","-","left"],"*",[5,"0.5"]]],[13,"dy",[1,[1,"down","-","up"],"*",[5,"0.5"]]],[6,"std.textureStore",[[7,[7,"gradientLayout","$"],"dispTex"],[6,"d.vec2u",["cx","cy"]],[6,"d.vec4f",["dx","dy",[5,"0"],[5,"1"]]]]]]]]]]},externals:{"d.u32":()=>Y,gridMax:()=>r,resolution:()=>e,gradientLayout:()=>n,"std.textureStore":()=>Co,"d.vec2u":()=>He,"d.vec4f":()=>b}})&&d.f)({})).$name(`waveFieldGradient_${e}`)};return l5.set(e,i),i}function PB(e,t){let{gpu:s,registerComputeTexture:r,getCpuValue:o,onCleanup:n,onResize:i,dimensions:d}=e,l=s?.root;if(!l)return null;let{resolution:c,dampingProp:_,radiusProp:p,radiusScale:f,speedMax:h,teleportGuard:g="on"}=t,{propagateLayout:x,gradientLayout:T,propagateKernel:S,gradientKernel:A}=EB(c),E=c*c,M=M2(l,a,E),$=M2(l,a,E),L=(globalThis.__TYPEGPU_AUTONAME__??(Te=>Te))(l.createTexture({size:[c,c],format:PT}).$usage("storage","sampled"),"dispTex");n(()=>L.destroy());let B=r(L),D=(globalThis.__TYPEGPU_AUTONAME__??(Te=>Te))(l.createUniform(Ct({cursorX:a,cursorY:a,cursorSpeed:a,dt:a,damping:a,radius:a,aspect:a})),"propParams"),G=Math.max(1,Math.round(d.width)),I=Math.max(1,Math.round(d.height));i(({width:Te,height:Pe})=>{G=Math.max(1,Math.round(Te)),I=Math.max(1,Math.round(Pe))});let X=[c,c],H=wF(M,$),ee=H.groups((Te,Pe)=>l.createBindGroup(x,{readBuf:Te,writeBuf:Pe,params:D.buffer})),Q=H.perSide(Te=>l.createBindGroup(T,{srcBuf:Te,dispTex:L})),de=wv(l,(Te=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(Te.f=((Pe,Ce)=>{"use gpu";S(Pe,Ce)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"propagateKernel",["cx","cy"]]]]},externals:{propagateKernel:()=>S}})&&Te.f)({}),{size:X}),Ee=wv(l,(Te=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(Te.f=((Pe,Ce)=>{"use gpu";A(Pe,Ce)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"gradientKernel",["cx","cy"]]]]},externals:{gradientKernel:()=>A}})&&Te.f)({}),{size:X}),he=TB(g==="off"?{teleportGuard:Number.POSITIVE_INFINITY}:{}),Me=Date.now();return{displacement:B,getComputeNodes:Te=>{let Pe=Te,Ce=Date.now(),ie=Math.min(Pe.deltaTime??0,.016),Ne=Math.max(1,Pe.dimensions?.width??G)/Math.max(1,Pe.dimensions?.height??I),ye=o(_)??10,Ve=(o(p)??.5)*f,qe=he.update(Pe.pointer,ie),st=Math.min(Math.sqrt(qe.velX*qe.velX+qe.velY*qe.velY),h);st>.01&&(Me=Ce);let We=1-ye*Mv,Be=We>=1?1/0:Math.min(3e4,Math.log(1e-6)/Math.log(Math.max(We,.001))*16.67);if(Ce-Me>Be)return null;D.write({cursorX:qe.x,cursorY:qe.y,cursorSpeed:st,dt:ie,damping:ye,radius:Ve,aspect:Ne});let rt=[de.with(ee()),Ee.with(Q.written())];return H.swap(),rt}}}var MB=j7;function kB(e,t,s={}){let{uniforms:r,propValues:o}=e,n=o.colorSpace??0;return(o.stopCount??0)>1?dl(t,{colorsArray:r.colorsArray,positionsArray:r.positionsArray,convertedColorsArray:r.convertedColorsArray,stopCount:r.stopCount},n):se(Xo[n]??lr,"mixColors",[r[s.colorA??"colorA"],r[s.colorB??"colorB"],t])}var IN=y.fn([u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(__tsover_mul(t.x,s),t.y),i=__tsover_mul(r,4);return n.mul(i).add(o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"scale"},{type:"i",name:"seed"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"freq",[1,"scale","*",[5,"4"]]],[10,[6,[7,[6,[7,"aspectUV","mul"],["freq"]],"add"],["seed"]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),YN=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=qn(s),n=u(o.y,o.z).mul(r).mul(.012);return t.add(n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"pos"},{type:"i",name:"distortion"}],body:[0,[[13,"grad",[6,"perlin12d",["pos"]]],[13,"disp",[6,[7,[6,[7,[6,"d.vec2f",[[7,"grad","y"],[7,"grad","z"]]],"mul"],["distortion"]],"mul"],[[5,"0.012"]]]],[10,[6,[7,"uv","add"],["disp"]]]]]},externals:{perlin12d:()=>qn,"d.vec2f":()=>u}})&&e.f)({})),WN=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_add(__tsover_mul(__tsover_sub(t,.5),__tsover_add(s,1)),.5);return z(__tsover_add(1,__tsover_mul(__tsover_sub(o,.5),__tsover_mul(r,1.1))),0,1.6)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"contrast"},{type:"i",name:"intensity"}],body:[0,[[13,"hAdj",[1,[1,[1,"h","-",[5,"0.5"]],"*",[1,"contrast","+",[5,"1"]]],"+",[5,"0.5"]]],[10,[6,"std.clamp",[[1,[5,"1"],"+",[1,[1,"hAdj","-",[5,"0.5"]],"*",[1,"intensity","*",[5,"1.1"]]]],[5,"0"],[5,"1.6"]]]]]]},externals:{"std.clamp":()=>z}})&&e.f)({}));var ON=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=F(t,__tsover_sub(1,t),o>0),i=w(r,1e-4),d=__tsover_sub(__tsover_mul(s,__tsover_add(1,__tsover_mul(2,i))),i);return ce(__tsover_sub(d,i),__tsover_add(d,i),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"coord"},{type:"i",name:"progress"},{type:"i",name:"feather"},{type:"i",name:"invert"}],body:[0,[[13,"c",[6,"std.select",["coord",[1,[5,"1"],"-","coord"],[1,"invert",">",[5,"0"]]]]],[13,"f",[6,"std.max",["feather",[5,"0.0001"]]]],[13,"front",[1,[1,"progress","*",[1,[5,"1"],"+",[1,[5,"2"],"*","f"]]],"-","f"]],[10,[6,"std.smoothstep",[[1,"front","-","f"],[1,"front","+","f"],"c"]]]]]},externals:{"std.select":()=>F,"std.max":()=>w,"std.smoothstep":()=>ce}})&&e.f)({})),VN=y.fn([b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return b(t.x,t.y,t.z,__tsover_mul(t.w,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"reveal"}],body:[0,[[10,[6,"d.vec4f",[[7,"color","x"],[7,"color","y"],[7,"color","z"],[1,[7,"color","w"],"*","reveal"]]]]]]},externals:{"d.vec4f":()=>b}})&&e.f)({})),NN=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(r,Qe),n=u(J(o),O(o)),i=le(u(__tsover_mul(__tsover_sub(t.x,.5),s),__tsover_sub(t.y,.5)),n),d=__tsover_mul(.5,__tsover_add(__tsover_mul(s,W(n.x)),W(n.y)));return __tsover_add(__tsover_div(i,__tsover_mul(2,d)),.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"angleDeg"}],body:[0,[[13,"a",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"dir",[6,"d.vec2f",[[6,"std.cos",["a"]],[6,"std.sin",["a"]]]]],[13,"p",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],[1,[7,"uv","y"],"-",[5,"0.5"]]]]],[13,"grad",[6,"std.dot",["p","dir"]]],[13,"ext",[1,[5,"0.5"],"*",[1,[1,"aspect","*",[6,"std.abs",[[7,"dir","x"]]]],"+",[6,"std.abs",[[7,"dir","y"]]]]]],[10,[1,[1,"grad","/",[1,[5,"2"],"*","ext"]],"+",[5,"0.5"]]]]]},externals:{DEG_TO_RAD:()=>Qe,"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.abs":()=>W}})&&e.f)({})),qN=y.fn([u,a,u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(r.x,s),n=__tsover_sub(1,r.y),i=te(u(__tsover_sub(__tsover_mul(t.x,s),o),__tsover_sub(t.y,n))),d=te(u(w(o,__tsover_sub(s,o)),w(n,__tsover_sub(1,n))));return __tsover_div(i,w(d,1e-4))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"}],body:[0,[[13,"cx",[1,[7,"center","x"],"*","aspect"]],[13,"cy",[1,[5,"1"],"-",[7,"center","y"]]],[13,"rel",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"*","aspect"],"-","cx"],[1,[7,"uv","y"],"-","cy"]]]],[13,"dist",[6,"std.length",["rel"]]],[13,"dx",[6,"std.max",["cx",[1,"aspect","-","cx"]]]],[13,"dy",[6,"std.max",["cy",[1,[5,"1"],"-","cy"]]]],[13,"maxDist",[6,"std.length",[[6,"d.vec2f",["dx","dy"]]]]],[10,[1,"dist","/",[6,"std.max",["maxDist",[5,"0.0001"]]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.max":()=>w}})&&e.f)({})),XN=y.fn([u,a,u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=u(__tsover_mul(__tsover_sub(t.x,r.x),s),__tsover_sub(t.y,__tsover_sub(1,r.y))),d=bt(i.y,i.x),l=__tsover_mul(o,Qe),c=__tsover_div(__tsover_sub(d,l),_o);c=__tsover_sub(c,K(c));let _=__tsover_sub(1,c),p=__tsover_mul(ue(c,__tsover_sub(1,c)),2),f=F(c,_,n>.5);return f=F(f,p,n>1.5),f}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"startDeg"},{type:"i",name:"mode"}],body:[0,[[13,"rel",[6,"d.vec2f",[[1,[1,[7,"uv","x"],"-",[7,"center","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[1,[5,"1"],"-",[7,"center","y"]]]]]],[13,"ang",[6,"std.atan2",[[7,"rel","y"],[7,"rel","x"]]]],[13,"start",[1,"startDeg","*","DEG_TO_RAD"]],[12,"frac",[1,[1,"ang","-","start"],"/","TWO_PI"]],[2,"frac","=",[1,"frac","-",[6,"std.floor",["frac"]]]],[13,"ccwCoord",[1,[5,"1"],"-","frac"]],[13,"bothCoord",[1,[6,"std.min",["frac",[1,[5,"1"],"-","frac"]]],"*",[5,"2"]]],[12,"coord",[6,"std.select",["frac","ccwCoord",[1,"mode",">",[5,"0.5"]]]]],[2,"coord","=",[6,"std.select",["coord","bothCoord",[1,"mode",">",[5,"1.5"]]]]],[10,"coord"]]]},externals:{"d.vec2f":()=>u,"std.atan2":()=>bt,DEG_TO_RAD:()=>Qe,TWO_PI:()=>_o,"std.floor":()=>K,"std.min":()=>ue,"std.select":()=>F}})&&e.f)({})),wf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({cell:u,local:u,grid:u}),"CellGrid"),Xd=y.fn([u,a,a],wf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_div(1,w(r,.001)),n=w(__tsover_div(o,s),1),i=__tsover_mul(t.x,o),d=__tsover_mul(t.y,n);return wf({cell:u(K(i),K(d)),local:u(ve(i),ve(d)),grid:u(o,n)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"size"}],body:[0,[[13,"gridX",[1,[5,"1"],"/",[6,"std.max",["size",[5,"0.001"]]]]],[13,"gridY",[6,"std.max",[[1,"gridX","/","aspect"],[5,"1"]]]],[13,"sx",[1,[7,"uv","x"],"*","gridX"]],[13,"sy",[1,[7,"uv","y"],"*","gridY"]],[10,[6,"CellGrid",[[104,{cell:[6,"d.vec2f",[[6,"std.floor",["sx"]],[6,"std.floor",["sy"]]]],local:[6,"d.vec2f",[[6,"std.fract",["sx"]],[6,"std.fract",["sy"]]]],grid:[6,"d.vec2f",["gridX","gridY"]]}]]]]]]},externals:{"std.max":()=>w,CellGrid:()=>wf,"d.vec2f":()=>u,"std.floor":()=>K,"std.fract":()=>ve}})&&e.f)({})),HN=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(W(__tsover_sub(t,.5)),2)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[1,[6,"std.abs",[[1,"t","-",[5,"0.5"]]]],"*",[5,"2"]]]]]},externals:{"std.abs":()=>W}})&&e.f)({})),jN=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ve(__tsover_mul(t,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"count"}],body:[0,[[10,[6,"std.fract",[[1,"t","*","count"]]]]]]},externals:{"std.fract":()=>ve}})&&e.f)({})),KN=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=w(s,1);return z(__tsover_div(__tsover_add(K(__tsover_mul(t,r)),.5),r),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"count"}],body:[0,[[13,"n",[6,"std.max",["count",[5,"1"]]]],[10,[6,"std.clamp",[[1,[1,[6,"std.floor",[[1,"t","*","n"]]],"+",[5,"0.5"]],"/","n"],[5,"0"],[5,"1"]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,"std.floor":()=>K}})&&e.f)({})),ZN=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=K(__tsover_mul(t,w(s,1)));return fr(__tsover_add(r,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"count"}],body:[0,[[13,"idx",[6,"std.floor",[[1,"t","*",[6,"std.max",["count",[5,"1"]]]]]]],[10,[6,"hash11",[[1,"idx","+",[5,"0.5"]]]]]]]},externals:{"std.floor":()=>K,"std.max":()=>w,hash11:()=>fr}})&&e.f)({})),QN=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Xd(t,s,r);return __tsover_add(W(__tsover_sub(o.local.x,.5)),W(__tsover_sub(o.local.y,.5)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"size"}],body:[0,[[13,"g",[6,"cellGrid",["uv","aspect","size"]]],[10,[1,[6,"std.abs",[[1,[7,[7,"g","local"],"x"],"-",[5,"0.5"]]]],"+",[6,"std.abs",[[1,[7,[7,"g","local"],"y"],"-",[5,"0.5"]]]]]]]]},externals:{cellGrid:()=>Xd,"std.abs":()=>W}})&&e.f)({})),JN=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=Xd(t,s,r),n=__tsover_mul(ve(__tsover_mul(__tsover_add(o.cell.x,o.cell.y),.5)),2),i=__tsover_mul(__tsover_add(__tsover_div(o.cell.x,o.grid.x),__tsover_div(o.cell.y,o.grid.y)),.5);return z(__tsover_add(__tsover_mul(.5,n),__tsover_mul(.5,i)),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"size"}],body:[0,[[13,"g",[6,"cellGrid",["uv","aspect","size"]]],[13,"parity",[1,[6,"std.fract",[[1,[1,[7,[7,"g","cell"],"x"],"+",[7,[7,"g","cell"],"y"]],"*",[5,"0.5"]]]],"*",[5,"2"]]],[13,"diag",[1,[1,[1,[7,[7,"g","cell"],"x"],"/",[7,[7,"g","grid"],"x"]],"+",[1,[7,[7,"g","cell"],"y"],"/",[7,[7,"g","grid"],"y"]]],"*",[5,"0.5"]]],[10,[6,"std.clamp",[[1,[1,[5,"0.5"],"*","parity"],"+",[1,[5,"0.5"],"*","diag"]],[5,"0"],[5,"1"]]]]]]},externals:{cellGrid:()=>Xd,"std.fract":()=>ve,"std.clamp":()=>z}})&&e.f)({})),eq=y.fn([u,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return ms(Xd(t,s,r).cell)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"size"}],body:[0,[[10,[6,"hash12",[[7,[6,"cellGrid",["uv","aspect","size"]],"cell"]]]]]]},externals:{hash12:()=>ms,cellGrid:()=>Xd}})&&e.f)({})),tq=y.fn([u,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(__tsover_add(__tsover_mul(__tsover_mul(t.x,s),r),__tsover_mul(o,13.7)),__tsover_add(__tsover_mul(t.y,r),__tsover_mul(o,7.9))),i=$i(n),d=__tsover_mul($i(u(__tsover_add(__tsover_add(__tsover_mul(n.x,2),17.3),__tsover_mul(o,3.1)),__tsover_add(__tsover_mul(n.y,2),9.1))),.5),l=__tsover_mul($i(u(__tsover_add(__tsover_mul(n.x,4),41.7),__tsover_add(__tsover_add(__tsover_mul(n.y,4),27.9),__tsover_mul(o,5.3)))),.25),c=__tsover_div(__tsover_add(__tsover_add(i,d),l),1.75);return z(__tsover_add(.5,__tsover_mul(c,.9)),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"scale"},{type:"i",name:"seed"}],body:[0,[[13,"p",[6,"d.vec2f",[[1,[1,[1,[7,"uv","x"],"*","aspect"],"*","scale"],"+",[1,"seed","*",[5,"13.7"]]],[1,[1,[7,"uv","y"],"*","scale"],"+",[1,"seed","*",[5,"7.9"]]]]]],[13,"n1",[6,"mxNoiseFloat2",["p"]]],[13,"n2",[1,[6,"mxNoiseFloat2",[[6,"d.vec2f",[[1,[1,[1,[7,"p","x"],"*",[5,"2"]],"+",[5,"17.3"]],"+",[1,"seed","*",[5,"3.1"]]],[1,[1,[7,"p","y"],"*",[5,"2"]],"+",[5,"9.1"]]]]]],"*",[5,"0.5"]]],[13,"n3",[1,[6,"mxNoiseFloat2",[[6,"d.vec2f",[[1,[1,[7,"p","x"],"*",[5,"4"]],"+",[5,"41.7"]],[1,[1,[1,[7,"p","y"],"*",[5,"4"]],"+",[5,"27.9"]],"+",[1,"seed","*",[5,"5.3"]]]]]]],"*",[5,"0.25"]]],[13,"n",[1,[1,[1,"n1","+","n2"],"+","n3"],"/",[5,"1.75"]]],[10,[6,"std.clamp",[[1,[5,"0.5"],"+",[1,"n","*",[5,"0.9"]]],[5,"0"],[5,"1"]]]]]]},externals:{"d.vec2f":()=>u,mxNoiseFloat2:()=>$i,"std.clamp":()=>z}})&&e.f)({})),MT=new Float32Array(1),$B=new Int32Array(MT.buffer);function Ai(e){MT[0]=Math.max(-65504,Math.min(65504,e));let t=$B[0],s=t>>16&32768,r=t>>12&2047,o=t>>23&255;return o<103?s:o>142?(s|=31744,s|=(o===255?0:1)&&t&8388607,s):o<113?(r|=2048,s|=(r>>114-o)+(r>>113-o&1),s):(s|=o-112<<10|r>>1,s+=r&1,s)}var Cm=Pn({ANALYTIC_SDF_EXTRA_FIELDS:()=>RB,APERTURE_TO_HALFANGLE:()=>CB,SVG_SDF_SIZE:()=>512,ShapeMask:()=>V_,analyticSubPropValues:()=>Xp,arcSdf:()=>Vp,buildAnalyticSdfFn:()=>Cy,circleSdf:()=>_c,createAnalyticSdfSampler:()=>zT,createSdfDataTexture:()=>$y,createSvgSdfSampler:()=>RT,createSvgSdfSamplerWithGradients:()=>UT,crescentSdf:()=>Yp,crossSdf:()=>Lp,driveAnalyticSubProps:()=>DT,ellipseSdf:()=>Bp,fillStrokeColor:()=>CT,flowerSdf:()=>zp,heartSdf:()=>Op,loadSdfFromUrl:()=>ky,parallelogramSdf:()=>qp,parseShapeConfigValue:()=>GT,polygonSdf:()=>Up,ringSdf:()=>Dp,roundedRectSdf:()=>Fp,shapeLocalCoords:()=>kT,starSdf:()=>Gp,strokeMaskFromSdf:()=>$T,teardropSdf:()=>Np,trapezoidSdf:()=>Wp,vesicaSdf:()=>Ip}),c5=3.141592653589793,Hd=6.283185307179586,u5=.35355339059327373,Rp=.017453292519943295,_c=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_sub($e(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"}],body:[0,[[10,[1,[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]],"-","radius"]]]]},externals:{"std.sqrt":()=>$e}})&&e.f)({})),Up=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=$e(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),i=bt(s,t),d=__tsover_div(Hd,o),l=K(__tsover_add(__tsover_div(i,d),.5)),c=__tsover_sub(i,__tsover_mul(l,d));return __tsover_sub(__tsover_mul(n,J(c)),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"},{type:"i",name:"sides"}],body:[0,[[13,"len",[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"angle",[6,"std.atan2",["dy","dx"]]],[13,"sectorAngle",[1,"TWO_PI","/","sides"]],[13,"sectorIdx",[6,"std.floor",[[1,[1,"angle","/","sectorAngle"],"+",[5,"0.5"]]]]],[13,"canonicalAngle",[1,"angle","-",[1,"sectorIdx","*","sectorAngle"]]],[10,[1,[1,"len","*",[6,"std.cos",["canonicalAngle"]]],"-","radius"]]]]},externals:{"std.sqrt":()=>$e,"std.atan2":()=>bt,TWO_PI:()=>Hd,"std.floor":()=>K,"std.cos":()=>J}})&&e.f)({})),zp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=bt(s,t),d=$e(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),l=__tsover_mul(r,n),c=__tsover_div(__tsover_mul(i,o),Hd),_=__tsover_sub(c,K(c)),p=W(__tsover_sub(__tsover_mul(_,2),1)),f=__tsover_add(l,__tsover_mul(__tsover_sub(r,l),p));return __tsover_sub(d,f)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"outerRadius"},{type:"i",name:"sides"},{type:"i",name:"innerRatio"}],body:[0,[[13,"angle",[6,"std.atan2",["dy","dx"]]],[13,"len",[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"innerRadius",[1,"outerRadius","*","innerRatio"]],[13,"tAngle",[1,[1,"angle","*","sides"],"/","TWO_PI"]],[13,"tFrac",[1,"tAngle","-",[6,"std.floor",["tAngle"]]]],[13,"t",[6,"std.abs",[[1,[1,"tFrac","*",[5,"2"]],"-",[5,"1"]]]]],[13,"boundaryR",[1,"innerRadius","+",[1,[1,"outerRadius","-","innerRadius"],"*","t"]]],[10,[1,"len","-","boundaryR"]]]]},externals:{"std.atan2":()=>bt,"std.sqrt":()=>$e,TWO_PI:()=>Hd,"std.floor":()=>K,"std.abs":()=>W}})&&e.f)({})),Gp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_mul(r,n),d=$e(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),l=bt(s,t),c=__tsover_div(Hd,o),_=K(__tsover_add(__tsover_div(l,c),.5)),p=__tsover_sub(l,__tsover_mul(_,c)),f=W(__tsover_mul(d,O(p))),h=__tsover_mul(d,J(p)),g=__tsover_div(c5,o),x=O(g),T=J(g),S=__tsover_mul(i,x),A=__tsover_sub(__tsover_mul(i,T),r),E=f,M=__tsover_sub(h,r),$=__tsover_add(__tsover_mul(E,S),__tsover_mul(M,A)),L=__tsover_add(__tsover_mul(S,S),__tsover_mul(A,A)),B=z(__tsover_div($,L),0,1),D=__tsover_sub(f,__tsover_mul(S,B)),G=__tsover_sub(h,__tsover_add(r,__tsover_mul(A,B))),I=$e(__tsover_add(__tsover_mul(D,D),__tsover_mul(G,G))),X=__tsover_sub(__tsover_mul(S,M),__tsover_mul(A,E));return __tsover_mul(I,ir(X))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"outerRadius"},{type:"i",name:"sides"},{type:"i",name:"innerRatio"}],body:[0,[[13,"innerRadius",[1,"outerRadius","*","innerRatio"]],[13,"len",[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"angle",[6,"std.atan2",["dy","dx"]]],[13,"sectorAngle",[1,"TWO_PI","/","sides"]],[13,"sectorIdx",[6,"std.floor",[[1,[1,"angle","/","sectorAngle"],"+",[5,"0.5"]]]]],[13,"bn",[1,"angle","-",[1,"sectorIdx","*","sectorAngle"]]],[13,"fpx",[6,"std.abs",[[1,"len","*",[6,"std.sin",["bn"]]]]]],[13,"fpy",[1,"len","*",[6,"std.cos",["bn"]]]],[13,"an",[1,"PI","/","sides"]],[13,"sinAn",[6,"std.sin",["an"]]],[13,"cosAn",[6,"std.cos",["an"]]],[13,"ex",[1,"innerRadius","*","sinAn"]],[13,"ey",[1,[1,"innerRadius","*","cosAn"],"-","outerRadius"]],[13,"qx","fpx"],[13,"qy",[1,"fpy","-","outerRadius"]],[13,"dotQE",[1,[1,"qx","*","ex"],"+",[1,"qy","*","ey"]]],[13,"dotEE",[1,[1,"ex","*","ex"],"+",[1,"ey","*","ey"]]],[13,"t",[6,"std.clamp",[[1,"dotQE","/","dotEE"],[5,"0"],[5,"1"]]]],[13,"nx",[1,"fpx","-",[1,"ex","*","t"]]],[13,"ny",[1,"fpy","-",[1,"outerRadius","+",[1,"ey","*","t"]]]],[13,"dist",[6,"std.sqrt",[[1,[1,"nx","*","nx"],"+",[1,"ny","*","ny"]]]]],[13,"cross",[1,[1,"ex","*","qy"],"-",[1,"ey","*","qx"]]],[10,[1,"dist","*",[6,"std.sign",["cross"]]]]]]},externals:{"std.sqrt":()=>$e,"std.atan2":()=>bt,TWO_PI:()=>Hd,"std.floor":()=>K,"std.abs":()=>W,"std.sin":()=>O,"std.cos":()=>J,PI:()=>c5,"std.clamp":()=>z,"std.sign":()=>ir}})&&e.f)({})),Dp=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=$e(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s)));return __tsover_sub(W(__tsover_sub(n,r)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"},{type:"i",name:"thickness"}],body:[0,[[13,"len",[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[10,[1,[6,"std.abs",[[1,"len","-","radius"]]],"-","thickness"]]]]},externals:{"std.sqrt":()=>$e,"std.abs":()=>W}})&&e.f)({})),Lp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=W(t),d=W(s),l=w(__tsover_sub(i,r),__tsover_sub(d,o)),c=w(__tsover_sub(d,r),__tsover_sub(i,o));return __tsover_sub(ue(l,c),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"size"},{type:"i",name:"thickness"},{type:"i",name:"rounding"}],body:[0,[[13,"px",[6,"std.abs",["dx"]]],[13,"py",[6,"std.abs",["dy"]]],[13,"dHoriz",[6,"std.max",[[1,"px","-","size"],[1,"py","-","thickness"]]]],[13,"dVert",[6,"std.max",[[1,"py","-","size"],[1,"px","-","thickness"]]]],[10,[1,[6,"std.min",["dHoriz","dVert"]],"-","rounding"]]]]},externals:{"std.abs":()=>W,"std.max":()=>w,"std.min":()=>ue}})&&e.f)({})),Fp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_add(__tsover_sub(W(t),r),n),d=__tsover_add(__tsover_sub(W(s),o),n),l=w(i,0),c=w(d,0),_=$e(__tsover_add(__tsover_mul(l,l),__tsover_mul(c,c))),p=ue(w(i,d),0);return __tsover_sub(__tsover_add(_,p),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"width"},{type:"i",name:"height"},{type:"i",name:"rounding"}],body:[0,[[13,"qx",[1,[1,[6,"std.abs",["dx"]],"-","width"],"+","rounding"]],[13,"qy",[1,[1,[6,"std.abs",["dy"]],"-","height"],"+","rounding"]],[13,"mqx",[6,"std.max",["qx",[5,"0"]]]],[13,"mqy",[6,"std.max",["qy",[5,"0"]]]],[13,"outerDist",[6,"std.sqrt",[[1,[1,"mqx","*","mqx"],"+",[1,"mqy","*","mqy"]]]]],[13,"innerDist",[6,"std.min",[[6,"std.max",["qx","qy"]],[5,"0"]]]],[10,[1,[1,"outerDist","+","innerDist"],"-","rounding"]]]]},externals:{"std.abs":()=>W,"std.max":()=>w,"std.sqrt":()=>$e,"std.min":()=>ue}})&&e.f)({})),Bp=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_div(t,r),i=__tsover_div(s,o),d=$e(__tsover_add(__tsover_mul(n,n),__tsover_mul(i,i)));return __tsover_mul(__tsover_sub(d,1),ue(r,o))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radiusX"},{type:"i",name:"radiusY"}],body:[0,[[13,"nx",[1,"dx","/","radiusX"]],[13,"ny",[1,"dy","/","radiusY"]],[13,"k",[6,"std.sqrt",[[1,[1,"nx","*","nx"],"+",[1,"ny","*","ny"]]]]],[10,[1,[1,"k","-",[5,"1"]],"*",[6,"std.min",["radiusX","radiusY"]]]]]]},externals:{"std.sqrt":()=>$e,"std.min":()=>ue}})&&e.f)({})),Ip=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=W(t),i=W(s),d=__tsover_mul(r,o),l=$e(w(__tsover_sub(__tsover_mul(r,r),__tsover_mul(d,d)),0)),c=__tsover_mul(__tsover_sub(i,l),d)>__tsover_mul(n,l),_=$e(__tsover_add(__tsover_mul(n,n),__tsover_mul(__tsover_sub(i,l),__tsover_sub(i,l))));return F(__tsover_sub($e(__tsover_add(__tsover_mul(__tsover_add(n,d),__tsover_add(n,d)),__tsover_mul(i,i))),r),_,c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"},{type:"i",name:"spread"}],body:[0,[[13,"px",[6,"std.abs",["dx"]]],[13,"py",[6,"std.abs",["dy"]]],[13,"dd",[1,"radius","*","spread"]],[13,"b",[6,"std.sqrt",[[6,"std.max",[[1,[1,"radius","*","radius"],"-",[1,"dd","*","dd"]],[5,"0"]]]]]],[13,"cond",[1,[1,[1,"py","-","b"],"*","dd"],">",[1,"px","*","b"]]],[13,"dist1",[6,"std.sqrt",[[1,[1,"px","*","px"],"+",[1,[1,"py","-","b"],"*",[1,"py","-","b"]]]]]],[13,"dist2",[1,[6,"std.sqrt",[[1,[1,[1,"px","+","dd"],"*",[1,"px","+","dd"]],"+",[1,"py","*","py"]]]],"-","radius"]],[10,[6,"std.select",["dist2","dist1","cond"]]]]]},externals:{"std.abs":()=>W,"std.sqrt":()=>$e,"std.max":()=>w,"std.select":()=>F}})&&e.f)({})),Yp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=W(s),d=r,l=__tsover_mul(r,o),c=n,_=__tsover_div(__tsover_add(__tsover_sub(__tsover_mul(d,d),__tsover_mul(l,l)),__tsover_mul(c,c)),w(__tsover_mul(c,2),.001)),p=$e(w(__tsover_sub(__tsover_mul(d,d),__tsover_mul(_,_)),0)),f=__tsover_mul(c,__tsover_sub(__tsover_mul(t,p),__tsover_mul(i,_))),h=__tsover_mul(__tsover_mul(c,c),w(__tsover_sub(p,i),0)),g=__tsover_sub(t,_),x=__tsover_sub(i,p),T=$e(__tsover_add(__tsover_mul(g,g),__tsover_mul(x,x))),S=$e(__tsover_add(__tsover_mul(t,t),__tsover_mul(i,i))),A=__tsover_sub(t,c),E=$e(__tsover_add(__tsover_mul(A,A),__tsover_mul(i,i)));return F(w(__tsover_sub(S,d),__tsover_mul(__tsover_sub(E,l),-1)),T,f>h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"outerRadius"},{type:"i",name:"innerRatio"},{type:"i",name:"offset"}],body:[0,[[13,"py",[6,"std.abs",["dy"]]],[13,"ra","outerRadius"],[13,"rb",[1,"outerRadius","*","innerRatio"]],[13,"off","offset"],[13,"a",[1,[1,[1,[1,"ra","*","ra"],"-",[1,"rb","*","rb"]],"+",[1,"off","*","off"]],"/",[6,"std.max",[[1,"off","*",[5,"2"]],[5,"0.001"]]]]],[13,"bSq",[6,"std.max",[[1,[1,"ra","*","ra"],"-",[1,"a","*","a"]],[5,"0"]]]],[13,"b",[6,"std.sqrt",["bSq"]]],[13,"lhs",[1,"off","*",[1,[1,"dx","*","b"],"-",[1,"py","*","a"]]]],[13,"rhs",[1,[1,"off","*","off"],"*",[6,"std.max",[[1,"b","-","py"],[5,"0"]]]]],[13,"d1x",[1,"dx","-","a"]],[13,"d1y",[1,"py","-","b"]],[13,"dist1",[6,"std.sqrt",[[1,[1,"d1x","*","d1x"],"+",[1,"d1y","*","d1y"]]]]],[13,"lenP",[6,"std.sqrt",[[1,[1,"dx","*","dx"],"+",[1,"py","*","py"]]]]],[13,"innerX",[1,"dx","-","off"]],[13,"lenInner",[6,"std.sqrt",[[1,[1,"innerX","*","innerX"],"+",[1,"py","*","py"]]]]],[13,"dist2",[6,"std.max",[[1,"lenP","-","ra"],[1,[1,"lenInner","-","rb"],"*",[4,"-",[5,"1"]]]]]],[10,[6,"std.select",["dist2","dist1",[1,"lhs",">","rhs"]]]]]]},externals:{"std.abs":()=>W,"std.max":()=>w,"std.sqrt":()=>$e,"std.select":()=>F}})&&e.f)({})),Wp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=W(t),d=o,l=n,c=__tsover_sub(o,r),_=__tsover_mul(n,2),p=F(o,r,s<0),f=__tsover_sub(i,ue(i,p)),h=__tsover_sub(W(s),n),g=__tsover_sub(d,i),x=__tsover_sub(l,s),T=__tsover_add(__tsover_mul(g,c),__tsover_mul(x,_)),S=w(__tsover_add(__tsover_mul(c,c),__tsover_mul(_,_)),1e-4),A=z(__tsover_div(T,S),0,1),E=__tsover_add(__tsover_sub(i,d),__tsover_mul(c,A)),M=__tsover_add(__tsover_sub(s,l),__tsover_mul(_,A)),$=F(a(1),a(-1),h<0),L=F(a(1),$,E<0),B=__tsover_add(__tsover_mul(f,f),__tsover_mul(h,h)),D=__tsover_add(__tsover_mul(E,E),__tsover_mul(M,M));return __tsover_mul(L,$e(ue(B,D)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"r1"},{type:"i",name:"r2"},{type:"i",name:"he"}],body:[0,[[13,"px",[6,"std.abs",["dx"]]],[13,"k1x","r2"],[13,"k1y","he"],[13,"k2x",[1,"r2","-","r1"]],[13,"k2y",[1,"he","*",[5,"2"]]],[13,"clampWidth",[6,"std.select",["r2","r1",[1,"dy","<",[5,"0"]]]]],[13,"cax",[1,"px","-",[6,"std.min",["px","clampWidth"]]]],[13,"cay",[1,[6,"std.abs",["dy"]],"-","he"]],[13,"diffX",[1,"k1x","-","px"]],[13,"diffY",[1,"k1y","-","dy"]],[13,"dotNum",[1,[1,"diffX","*","k2x"],"+",[1,"diffY","*","k2y"]]],[13,"dotDen",[6,"std.max",[[1,[1,"k2x","*","k2x"],"+",[1,"k2y","*","k2y"]],[5,"0.0001"]]]],[13,"t",[6,"std.clamp",[[1,"dotNum","/","dotDen"],[5,"0"],[5,"1"]]]],[13,"cbx",[1,[1,"px","-","k1x"],"+",[1,"k2x","*","t"]]],[13,"cby",[1,[1,"dy","-","k1y"],"+",[1,"k2y","*","t"]]],[13,"sInner",[6,"std.select",[[6,"d.f32",[[5,"1"]]],[6,"d.f32",[[4,"-",[5,"1"]]]],[1,"cay","<",[5,"0"]]]]],[13,"s",[6,"std.select",[[6,"d.f32",[[5,"1"]]],"sInner",[1,"cbx","<",[5,"0"]]]]],[13,"dca",[1,[1,"cax","*","cax"],"+",[1,"cay","*","cay"]]],[13,"dcb",[1,[1,"cbx","*","cbx"],"+",[1,"cby","*","cby"]]],[10,[1,"s","*",[6,"std.sqrt",[[6,"std.min",["dca","dcb"]]]]]]]]},externals:{"std.abs":()=>W,"std.select":()=>F,"std.min":()=>ue,"std.max":()=>w,"std.clamp":()=>z,"d.f32":()=>a,"std.sqrt":()=>$e}})&&e.f)({})),Op=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_div(r,.75),n=__tsover_div(W(t),o),i=__tsover_add(__tsover_div(__tsover_mul(s,-1),o),.6),d=__tsover_sub(n,.25),l=__tsover_sub(i,.75),c=__tsover_sub($e(__tsover_add(__tsover_mul(d,d),__tsover_mul(l,l))),u5),_=__tsover_sub(i,1),p=__tsover_add(__tsover_mul(n,n),__tsover_mul(_,_)),f=__tsover_mul(w(__tsover_add(n,i),0),.5),h=__tsover_sub(n,f),g=__tsover_sub(i,f),x=__tsover_add(__tsover_mul(h,h),__tsover_mul(g,g)),T=__tsover_mul($e(ue(p,x)),ir(__tsover_sub(n,i)));return __tsover_mul(F(T,c,__tsover_add(n,i)>1),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"}],body:[0,[[13,"S",[1,"radius","/",[5,"0.75"]]],[13,"px",[1,[6,"std.abs",["dx"]],"/","S"]],[13,"py",[1,[1,[1,"dy","*",[4,"-",[5,"1"]]],"/","S"],"+",[5,"0.6"]]],[13,"ax",[1,"px","-",[5,"0.25"]]],[13,"ay",[1,"py","-",[5,"0.75"]]],[13,"distA",[1,[6,"std.sqrt",[[1,[1,"ax","*","ax"],"+",[1,"ay","*","ay"]]]],"-","SQRT2_OVER_4"]],[13,"b1y",[1,"py","-",[5,"1"]]],[13,"dot1",[1,[1,"px","*","px"],"+",[1,"b1y","*","b1y"]]],[13,"m",[1,[6,"std.max",[[1,"px","+","py"],[5,"0"]]],"*",[5,"0.5"]]],[13,"b2x",[1,"px","-","m"]],[13,"b2y",[1,"py","-","m"]],[13,"dot2v",[1,[1,"b2x","*","b2x"],"+",[1,"b2y","*","b2y"]]],[13,"distB",[1,[6,"std.sqrt",[[6,"std.min",["dot1","dot2v"]]]],"*",[6,"std.sign",[[1,"px","-","py"]]]]],[10,[1,[6,"std.select",["distB","distA",[1,[1,"px","+","py"],">",[5,"1"]]]],"*","S"]]]]},externals:{"std.abs":()=>W,"std.sqrt":()=>$e,SQRT2_OVER_4:()=>u5,"std.max":()=>w,"std.min":()=>ue,"std.sign":()=>ir,"std.select":()=>F}})&&e.f)({})),Vp=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=W(t),i=O(o),d=J(o),l=__tsover_sub($e(__tsover_add(__tsover_mul(n,n),__tsover_mul(s,s))),r),c=z(__tsover_add(__tsover_mul(n,i),__tsover_mul(s,d)),0,r),_=__tsover_sub(n,__tsover_mul(i,c)),p=__tsover_sub(s,__tsover_mul(d,c)),f=$e(__tsover_add(__tsover_mul(_,_),__tsover_mul(p,p)));return w(l,__tsover_mul(f,ir(__tsover_sub(__tsover_mul(d,n),__tsover_mul(i,s)))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"},{type:"i",name:"halfAngle"}],body:[0,[[13,"px",[6,"std.abs",["dx"]]],[13,"cx",[6,"std.sin",["halfAngle"]]],[13,"cy",[6,"std.cos",["halfAngle"]]],[13,"l",[1,[6,"std.sqrt",[[1,[1,"px","*","px"],"+",[1,"dy","*","dy"]]]],"-","radius"]],[13,"clamped",[6,"std.clamp",[[1,[1,"px","*","cx"],"+",[1,"dy","*","cy"]],[5,"0"],"radius"]]],[13,"mx",[1,"px","-",[1,"cx","*","clamped"]]],[13,"my",[1,"dy","-",[1,"cy","*","clamped"]]],[13,"m",[6,"std.sqrt",[[1,[1,"mx","*","mx"],"+",[1,"my","*","my"]]]]],[10,[6,"std.max",["l",[1,"m","*",[6,"std.sign",[[1,[1,"cy","*","px"],"-",[1,"cx","*","dy"]]]]]]]]]]},externals:{"std.abs":()=>W,"std.sin":()=>O,"std.cos":()=>J,"std.sqrt":()=>$e,"std.clamp":()=>z,"std.max":()=>w,"std.sign":()=>ir}})&&e.f)({})),Np=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(__tsover_sub(o,r),.5),i=W(t),d=__tsover_add(__tsover_mul(s,-1),n),l=w(o,1e-4),c=__tsover_div(r,l),_=$e(w(__tsover_sub(1,__tsover_mul(c,c)),0)),p=__tsover_add(__tsover_mul(i,__tsover_mul(c,-1)),__tsover_mul(d,_)),f=__tsover_sub($e(__tsover_add(__tsover_mul(i,i),__tsover_mul(d,d))),r),h=__tsover_sub(d,o),g=$e(__tsover_add(__tsover_mul(i,i),__tsover_mul(h,h)));return F(F(__tsover_sub(__tsover_add(__tsover_mul(i,_),__tsover_mul(d,c)),r),g,p>__tsover_mul(_,o)),f,p<0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"},{type:"i",name:"h"}],body:[0,[[13,"mid",[1,[1,"h","-","radius"],"*",[5,"0.5"]]],[13,"qx",[6,"std.abs",["dx"]]],[13,"qy",[1,[1,"dy","*",[4,"-",[5,"1"]]],"+","mid"]],[13,"hSafe",[6,"std.max",["h",[5,"0.0001"]]]],[13,"b",[1,"radius","/","hSafe"]],[13,"a",[6,"std.sqrt",[[6,"std.max",[[1,[5,"1"],"-",[1,"b","*","b"]],[5,"0"]]]]]],[13,"k",[1,[1,"qx","*",[1,"b","*",[4,"-",[5,"1"]]]],"+",[1,"qy","*","a"]]],[13,"cap0",[1,[6,"std.sqrt",[[1,[1,"qx","*","qx"],"+",[1,"qy","*","qy"]]]],"-","radius"]],[13,"qyTip",[1,"qy","-","h"]],[13,"cap1",[6,"std.sqrt",[[1,[1,"qx","*","qx"],"+",[1,"qyTip","*","qyTip"]]]]],[13,"body",[1,[1,[1,"qx","*","a"],"+",[1,"qy","*","b"]],"-","radius"]],[10,[6,"std.select",[[6,"std.select",["body","cap1",[1,"k",">",[1,"a","*","h"]]]],"cap0",[1,"k","<",[5,"0"]]]]]]]},externals:{"std.abs":()=>W,"std.max":()=>w,"std.sqrt":()=>$e,"std.select":()=>F}})&&e.f)({})),qp=y.fn([a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=n,d=o,l=s<0,c=F(t,__tsover_mul(t,-1),l),_=F(s,__tsover_mul(s,-1),l),p=__tsover_sub(c,i),f=__tsover_sub(_,d),h=__tsover_sub(p,z(p,__tsover_mul(r,-1),r)),g=__tsover_add(__tsover_mul(h,h),__tsover_mul(f,f)),x=__tsover_mul(f,-1),T=__tsover_sub(__tsover_mul(c,d),__tsover_mul(_,i)),S=T<0,A=F(c,__tsover_mul(c,-1),S),E=F(_,__tsover_mul(_,-1),S),M=__tsover_sub(A,r),$=__tsover_add(__tsover_mul(M,i),__tsover_mul(E,d)),L=w(__tsover_add(__tsover_mul(i,i),__tsover_mul(d,d)),1e-4),B=z(__tsover_div($,L),-1,1),D=__tsover_sub(M,__tsover_mul(i,B)),G=__tsover_sub(E,__tsover_mul(d,B)),I=ue(g,__tsover_add(__tsover_mul(D,D),__tsover_mul(G,G))),X=ue(x,__tsover_sub(__tsover_mul(r,o),W(T)));return __tsover_mul($e(I),ir(__tsover_mul(X,-1)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"wi"},{type:"i",name:"he"},{type:"i",name:"sk"}],body:[0,[[13,"ex","sk"],[13,"ey","he"],[13,"flip1",[1,"dy","<",[5,"0"]]],[13,"px0",[6,"std.select",["dx",[1,"dx","*",[4,"-",[5,"1"]]],"flip1"]]],[13,"py0",[6,"std.select",["dy",[1,"dy","*",[4,"-",[5,"1"]]],"flip1"]]],[13,"wx0",[1,"px0","-","ex"]],[13,"wy",[1,"py0","-","ey"]],[13,"wx",[1,"wx0","-",[6,"std.clamp",["wx0",[1,"wi","*",[4,"-",[5,"1"]]],"wi"]]]],[13,"dX",[1,[1,"wx","*","wx"],"+",[1,"wy","*","wy"]]],[13,"dY",[1,"wy","*",[4,"-",[5,"1"]]]],[13,"s",[1,[1,"px0","*","ey"],"-",[1,"py0","*","ex"]]],[13,"flip2",[1,"s","<",[5,"0"]]],[13,"px",[6,"std.select",["px0",[1,"px0","*",[4,"-",[5,"1"]]],"flip2"]]],[13,"py",[6,"std.select",["py0",[1,"py0","*",[4,"-",[5,"1"]]],"flip2"]]],[13,"vx0",[1,"px","-","wi"]],[13,"dotve",[1,[1,"vx0","*","ex"],"+",[1,"py","*","ey"]]],[13,"dotee",[6,"std.max",[[1,[1,"ex","*","ex"],"+",[1,"ey","*","ey"]],[5,"0.0001"]]]],[13,"tt",[6,"std.clamp",[[1,"dotve","/","dotee"],[4,"-",[5,"1"]],[5,"1"]]]],[13,"vx",[1,"vx0","-",[1,"ex","*","tt"]]],[13,"vy",[1,"py","-",[1,"ey","*","tt"]]],[13,"finalX",[6,"std.min",["dX",[1,[1,"vx","*","vx"],"+",[1,"vy","*","vy"]]]]],[13,"finalY",[6,"std.min",["dY",[1,[1,"wi","*","he"],"-",[6,"std.abs",["s"]]]]]],[10,[1,[6,"std.sqrt",["finalX"]],"*",[6,"std.sign",[[1,"finalY","*",[4,"-",[5,"1"]]]]]]]]]},externals:{"std.select":()=>F,"std.clamp":()=>z,"std.max":()=>w,"std.min":()=>ue,"std.abs":()=>W,"std.sqrt":()=>$e,"std.sign":()=>ir}})&&e.f)({})),kT=y.fn([u,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=u(__tsover_mul(r.x,o),r.y),i=u(__tsover_mul(t.x,o),__tsover_sub(1,t.y)),d=__tsover_sub(n.x,i.x),l=__tsover_sub(n.y,i.y),c=__tsover_mul(s,Rp),_=J(c),p=O(c);return u(__tsover_add(__tsover_mul(d,_),__tsover_mul(l,p)),__tsover_sub(__tsover_mul(l,_),__tsover_mul(d,p)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"rotation"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dx",[1,[7,"aspectUV","x"],"-",[7,"centerPos","x"]]],[13,"dy",[1,[7,"aspectUV","y"],"-",[7,"centerPos","y"]]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[13,"rdx",[1,[1,"dx","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dx","*","sinR"]]],[10,[6,"d.vec2f",["rdx","rdy"]]]]]},externals:{"d.vec2f":()=>u,DEG_TO_RAD:()=>Rp,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({})),V_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({overallMask:a,strokeBlend:a}),"ShapeMask"),$T=y.fn([a,a,a,a],V_)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=r>0,i=o>=1.5,d=o>=.5,l=__tsover_mul(r,.5),c=__tsover_mul(r,-1),_=__tsover_mul(l,-1),p=F(F(a(0),_,d),c,i),f=F(F(r,l,d),a(0),i),h=__tsover_sub(1,ce(__tsover_sub(f,s),f,t)),g=ce(__tsover_sub(p,s),p,t);return V_({overallMask:h,strokeBlend:F(a(0),g,n)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dist"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"}],body:[0,[[13,"hasStroke",[1,"strokeThickness",">",[5,"0"]]],[13,"isInside",[1,"strokePosition",">=",[5,"1.5"]]],[13,"isCenterOrAbove",[1,"strokePosition",">=",[5,"0.5"]]],[13,"halfThickness",[1,"strokeThickness","*",[5,"0.5"]]],[13,"negThickness",[1,"strokeThickness","*",[4,"-",[5,"1"]]]],[13,"negHalf",[1,"halfThickness","*",[4,"-",[5,"1"]]]],[13,"strokeInner",[6,"std.select",[[6,"std.select",[[6,"d.f32",[[5,"0"]]],"negHalf","isCenterOrAbove"]],"negThickness","isInside"]]],[13,"strokeOuter",[6,"std.select",[[6,"std.select",["strokeThickness","halfThickness","isCenterOrAbove"]],[6,"d.f32",[[5,"0"]]],"isInside"]]],[13,"overallMask",[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"strokeOuter","-","softness"],"strokeOuter","dist"]]]],[13,"blend",[6,"std.smoothstep",[[1,"strokeInner","-","softness"],"strokeInner","dist"]]],[13,"strokeBlend",[6,"std.select",[[6,"d.f32",[[5,"0"]]],"blend","hasStroke"]]],[10,[6,"ShapeMask",[[104,{overallMask:"overallMask",strokeBlend:"strokeBlend"}]]]]]]},externals:{"std.select":()=>F,"d.f32":()=>a,"std.smoothstep":()=>ce,ShapeMask:()=>V_}})&&e.f)({}));function CT(e,t,s,r){let o=se(Xo[r]??lr,"mixColors",[t,s,e.member("strokeBlend")]);return Ss(o.member("rgb"),o.member("a").mul(e.member("overallMask")))}async function ky(e,t){let s=await fetch(e,{mode:"cors"});if(!s.ok)throw new Error(`SDF fetch failed: HTTP ${s.status}`);let r=await s.arrayBuffer(),o=512*512;if(r.byteLength===o*2){let n=new Uint16Array(r),i=Math.min(n.length,t.length);for(let d=0;d<i;d++)t[d]=n[d]/32767.5-1}else if(r.byteLength===o*4){let n=new Float32Array(r),i=Math.min(n.length,t.length);for(let d=0;d<i;d++)t[d]=n[d]}else throw new Error(`SDF binary has unexpected size (${r.byteLength} bytes); expected ${o*2} (compact) or ${o*4} (legacy). The URL may point to a non-SDF file (e.g. the raw SVG).`)}function $y(e,t){let r=new Float32Array(262144).fill(.5),o=new Uint16Array(262144),n=Ai(.5);for(let c=0;c<262144;c++)o[c]=n;let i=e.createDataTexture({width:512,height:512,format:"r16float",data:o,label:"svg-sdf"});e.onCleanup(()=>i.destroy());let d=!1,l=0;return t&&ky(t,r).then(()=>{for(let c=0;c<262144;c++)o[c]=Ai(r[c]);d=!0}).catch(c=>vi("[SDF] Failed to load SDF texture:",c)),e.onBeforeRender(()=>{d&&(d=!1,i.write(o),l++)}),{kitTexture:e.registerMediaTexture(()=>i.texture),texture:i,getVersion:()=>l}}function RT(e,t){let{kitTexture:s}=$y(e,t);return r=>s.sampleLevel(r)}function UT(e,t){let o=new Float32Array(262144).fill(.5),n=new Uint16Array(262144*4),i=Ai(.5),d=Ai(1);for(let x=0;x<262144;x++)n[x*4]=i,n[x*4+3]=d;let l=e.createMediaTexture({width:512,height:512,format:"rgba16float",label:"svg-sdf-grad"});e.onCleanup(()=>l.destroy());let c=(x,T)=>{let S=Math.floor(x),A=Math.floor(T),E=x-S,M=T-A,$=I=>Math.min(Math.max(I,0),511),L=$(S),B=$(S+1),D=$(A),G=$(A+1);return o[D*512+L]*(1-E)*(1-M)+o[D*512+B]*E*(1-M)+o[G*512+L]*(1-E)*M+o[G*512+B]*E*M},_=.01,p=_*512,f=()=>{for(let x=0;x<512;x++)for(let T=0;T<512;T++){let S=x*512+T,A=o[S],E=(c(T+p,x)-A)/_,M=(c(T,x+p)-A)/_;n[S*4]=Ai(A),n[S*4+1]=Ai(E),n[S*4+2]=Ai(M)}},h=!1;t&&ky(t,o).then(()=>{f(),h=!0}).catch(x=>vi("[SDF] Failed to load SDF texture:",x)),e.onBeforeRender(()=>{h&&(h=!1,l.write(n))});let g=e.registerMediaTexture(()=>l.texture);return x=>g.sampleLevel(x)}var CB=.008726646259971648;function Cy(e){return y.fn([u,a,a,a,a,a,a,a,a],b)((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r,o,n,i,d,l,c,_)=>{"use gpu";let p=__tsover_sub(s.x,.5),f=__tsover_sub(s.y,.5),h=__tsover_mul(d,Rp),g=J(h),x=O(h),T=__tsover_add(__tsover_mul(p,g),__tsover_mul(f,x)),S=__tsover_sub(__tsover_mul(f,g),__tsover_mul(p,x)),A=a(0);return e==="polygonSDF"?A=Z(Up(T,S,r,o),_c(T,S,r),n):e==="flowerSDF"?A=zp(T,S,r,o,i):e==="ringSDF"?A=Dp(T,S,r,i):e==="crossSDF"?A=Lp(T,S,r,i,n):e==="starSDF"?A=Gp(T,S,r,o,i):e==="roundedRectSDF"?A=Fp(T,S,r,l,n):e==="ellipseSDF"?A=Bp(T,S,r,l):e==="vesicaSDF"?A=Ip(T,S,r,i):e==="crescentSDF"?A=Yp(T,S,r,i,c):e==="trapezoidSDF"?A=Wp(T,S,i,r,l):e==="heartSDF"?A=Op(T,S,r):e==="arcSDF"?A=Vp(T,S,r,__tsover_mul(_,.008726646259971648)):e==="teardropSDF"?A=Np(T,S,r,l):e==="parallelogramSDF"?A=qp(T,S,r,l,c):A=_c(T,S,r),b(A,0,0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"r"},{type:"i",name:"n"},{type:"i",name:"round"},{type:"i",name:"inner"},{type:"i",name:"rot"},{type:"i",name:"h"},{type:"i",name:"off"},{type:"i",name:"ap"}],body:[0,[[13,"dx",[1,[7,"uv","x"],"-",[5,"0.5"]]],[13,"dy",[1,[7,"uv","y"],"-",[5,"0.5"]]],[13,"rotRad",[1,"rot","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[13,"rdx",[1,[1,"dx","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dx","*","sinR"]]],[12,"dist",[6,"d.f32",[[5,"0"]]]],[11,[1,"shapeType","===",[103,"polygonSDF"]],[2,"dist","=",[6,"std.mix",[[6,"polygonSdf",["rdx","rdy","r","n"]],[6,"circleSdf",["rdx","rdy","r"]],"round"]]],[11,[1,"shapeType","===",[103,"flowerSDF"]],[2,"dist","=",[6,"flowerSdf",["rdx","rdy","r","n","inner"]]],[11,[1,"shapeType","===",[103,"ringSDF"]],[2,"dist","=",[6,"ringSdf",["rdx","rdy","r","inner"]]],[11,[1,"shapeType","===",[103,"crossSDF"]],[2,"dist","=",[6,"crossSdf",["rdx","rdy","r","inner","round"]]],[11,[1,"shapeType","===",[103,"starSDF"]],[2,"dist","=",[6,"starSdf",["rdx","rdy","r","n","inner"]]],[11,[1,"shapeType","===",[103,"roundedRectSDF"]],[2,"dist","=",[6,"roundedRectSdf",["rdx","rdy","r","h","round"]]],[11,[1,"shapeType","===",[103,"ellipseSDF"]],[2,"dist","=",[6,"ellipseSdf",["rdx","rdy","r","h"]]],[11,[1,"shapeType","===",[103,"vesicaSDF"]],[2,"dist","=",[6,"vesicaSdf",["rdx","rdy","r","inner"]]],[11,[1,"shapeType","===",[103,"crescentSDF"]],[2,"dist","=",[6,"crescentSdf",["rdx","rdy","r","inner","off"]]],[11,[1,"shapeType","===",[103,"trapezoidSDF"]],[2,"dist","=",[6,"trapezoidSdf",["rdx","rdy","inner","r","h"]]],[11,[1,"shapeType","===",[103,"heartSDF"]],[2,"dist","=",[6,"heartSdf",["rdx","rdy","r"]]],[11,[1,"shapeType","===",[103,"arcSDF"]],[2,"dist","=",[6,"arcSdf",["rdx","rdy","r",[1,"ap","*","APERTURE_TO_HALFANGLE"]]]],[11,[1,"shapeType","===",[103,"teardropSDF"]],[2,"dist","=",[6,"teardropSdf",["rdx","rdy","r","h"]]],[11,[1,"shapeType","===",[103,"parallelogramSDF"]],[2,"dist","=",[6,"parallelogramSdf",["rdx","rdy","r","h","off"]]],[2,"dist","=",[6,"circleSdf",["rdx","rdy","r"]]]]]]]]]]]]]]]]],[10,[6,"d.vec4f",["dist",[5,"0"],[5,"0"],[5,"1"]]]]]]},externals:{DEG_TO_RAD:()=>Rp,"std.cos":()=>J,"std.sin":()=>O,"d.f32":()=>a,shapeType:()=>e,"std.mix":()=>Z,polygonSdf:()=>Up,circleSdf:()=>_c,flowerSdf:()=>zp,ringSdf:()=>Dp,crossSdf:()=>Lp,starSdf:()=>Gp,roundedRectSdf:()=>Fp,ellipseSdf:()=>Bp,vesicaSdf:()=>Ip,crescentSdf:()=>Yp,trapezoidSdf:()=>Wp,heartSdf:()=>Op,arcSdf:()=>Vp,APERTURE_TO_HALFANGLE:()=>.008726646259971648,teardropSdf:()=>Np,parallelogramSdf:()=>qp,"d.vec4f":()=>b}})&&t.f)({})).$name(`analyticSdf_${e}`)}function zT(e,t,s="none"){let r=t.radius??nt(0),o=t.sides??nt(0),n=t.rounding??nt(0),i=t.innerRatio??nt(0),d=t.rotation??nt(0),l=t.height??nt(0),c=t.offset??nt(0),_=t.aperture??nt(0),p=Cy(e);return f=>se(p,`analyticSdf_${e}`,[f,r,o,n,i,d,l,c,_])}var RB={_saRadius:{schema:a,initial:.35},_saSides:{schema:a,initial:6},_saRounding:{schema:a,initial:0},_saInnerRatio:{schema:a,initial:.4},_saRotation:{schema:a,initial:0},_saHeight:{schema:a,initial:.25},_saOffset:{schema:a,initial:.2},_saAperture:{schema:a,initial:270}};function Xp(e){let t=(s,r)=>typeof s=="number"?s:r;return{radius:t(e.radius,t(e.width,t(e.bottomWidth,.35))),sides:t(e.sides,6),rounding:t(e.rounding,0),innerRatio:t(e.innerRatio,t(e.thickness,t(e.spread,t(e.topWidth,t(e.topRatio,.4))))),rotation:t(e.rotation,0),height:t(e.height,.25),offset:t(e.offset,t(e.skew,.2)),aperture:t(e.aperture,270)}}function GT(e){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return JSON.parse(e)}catch{return{}}return{}}function DT(e,t){let s="",r=GT(t()),o=()=>{let i=Xp(r);e.setExtraField("_saRadius",i.radius),e.setExtraField("_saSides",i.sides),e.setExtraField("_saRounding",i.rounding),e.setExtraField("_saInnerRatio",i.innerRatio),e.setExtraField("_saRotation",i.rotation),e.setExtraField("_saHeight",i.height),e.setExtraField("_saOffset",i.offset),e.setExtraField("_saAperture",i.aperture)};e.onBeforeRender(()=>{let i=t();if(i&&typeof i=="object")r=i;else if(typeof i=="string"&&i!==s){s=i;try{r=JSON.parse(i)}catch{return}}o()});let n=e.uniforms;return{radius:n._saRadius,sides:n._saSides,rounding:n._saRounding,innerRatio:n._saInnerRatio,rotation:n._saRotation,height:n._saHeight,offset:n._saOffset,aperture:n._saAperture}}var oa=512,Ri={},kv=new Set,$v={};function Rm(e,t){return e?e in Ri?Ri[e]:(t&&($v[e]??=[]).push(t),kv.has(e)||(kv.add(e),UB(e)),null):null}async function UB(e){try{let t=await fetch(e,{mode:"cors"});if(!t.ok){Ri[e]=null;return}let s=await t.arrayBuffer(),r=oa*oa;if(s.byteLength!==r*2&&s.byteLength!==r*4){Ri[e]=null;return}let o=s.byteLength===r*2?(()=>{let c=new Uint16Array(s);return _=>c[_]/32767.5-1})():(()=>{let c=new Float32Array(s);return _=>c[_]})(),n=oa,i=oa,d=-1,l=-1;for(let c=0;c<oa;c++){let _=c*oa;for(let p=0;p<oa;p++)o(_+p)<0&&(p<n&&(n=p),p>d&&(d=p),c<i&&(i=c),c>l&&(l=c))}Ri[e]=d<0?null:{hwf:(d-n+1)/oa/2,hhf:(l-i+1)/oa/2}}catch{Ri[e]=null}finally{kv.delete(e);let t=$v[e];if(t){delete $v[e];for(let s of t)s()}}}function LT(e){return!!e&&e in Ri}var _5=1/60;function Nc(e,t,s,r,o,n){if(r===0&&o===0)return[s,0];let i=200*Math.pow(.01,r),d=2*Math.sqrt(i)*(1-o*.85),l=n>_5?Math.ceil(n/_5):1,c=n/l,_=e,p=t;for(let f=0;f<l;f++){let h=i*(s-_);p+=(h-d*p)*c,_+=p*c}return[_,p]}function zB(e){return e<1/2.75?7.5625*e*e:e<2/2.75?(e-=1.5/2.75,7.5625*e*e+.75):e<2.5/2.75?(e-=2.25/2.75,7.5625*e*e+.9375):(e-=2.625/2.75,7.5625*e*e+.984375)}function Ry(e,t){switch(t){case"linear":return e;case"quad":return e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2;case"expo":return e===0?0:e===1?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2;case"bounce":return zB(e);default:return(1-Math.cos(Math.PI*e))/2}}function FT(e,t,s){let r=s.pixelRatio||1,o=Math.max(1,Math.floor(s.maxTextureDim/r)-1),n=Math.min(e,s.viewportWidth,o),i=Math.min(t,s.viewportHeight,o),d=Math.min(n/e,i/t,1);return{width:Math.max(1,Math.round(e*d)),height:Math.max(1,Math.round(t*d))}}function BT(e,t,s,r){return e!=null?(r-e)/1e3:t+s}function IT(e,t){let{lastRenderTime:s,isVisible:r,forceFullFrameRate:o,minInterval:n=0}=t,i=s>0?(e-s)/1e3:.016;if(s>0){let d=e-s;if(!r&&!o&&d<1e3)return{render:!1,deltaTime:i};if((r||o)&&d<Math.max(15.666666666666668,n))return{render:!1,deltaTime:i}}return{render:!0,deltaTime:Math.min(i,.1)}}async function Uy(e){try{let t=e.device?.queue;if(t&&typeof t.onSubmittedWorkDone=="function"){await t.onSubmittedWorkDone();return}}catch{}await new Promise(t=>setTimeout(t,16))}function YT(e){e.updateDrivers(),e.ensureComposition()&&(e.beforeRender(),e.flush(),e.render()!==!1&&e.markReady(),e.afterRender())}function WT(e){let t=null,s=n=>typeof requestAnimationFrame=="function"?requestAnimationFrame(n):setTimeout(()=>n(performance.now()),16),r=n=>{typeof cancelAnimationFrame=="function"?cancelAnimationFrame(n):clearTimeout(n)},o=()=>{e(),t!==null&&(t=s(o))};return{start(){t===null&&(t=s(o))},stop(){t!==null&&(r(t),t=null)},get running(){return t!==null}}}var OT=["sphere3D","cube3D","torus3D","octahedron3D","cylinder3D","capsule3D","cone3D","pyramid3D","prism3D","ellipsoid3D","diamond3D","link3D","gem3D","helix3D","metaballs3D","dodecahedron3D","hemisphere3D","ribbon3D","blob3D","gyroscope3D"];function VT(e){return OT.includes(e)}function NT(e){return e==="svgExtrude3D"}var qT={depth:.12,bevel:.02,rotX:15,rotY:30,rotZ:0};function XT(e,t){if(typeof e=="number")return e;if(e&&typeof e=="object"&&(e.type==="auto-animate"||e.type==="mouse")){let s=typeof e.outputMin=="number"?e.outputMin:t,r=typeof e.outputMax=="number"?e.outputMax:t;return Math.max(s,r)}return t}var HT={sphere3D:{radius:.35,rotX:0,rotY:0,rotZ:0},cube3D:{sizeX:.27,sizeY:.27,sizeZ:.27,rounding:.02,rotX:25,rotY:35,rotZ:0},torus3D:{radius:.3,tube:.12,rotX:55,rotY:0,rotZ:0},octahedron3D:{radius:.42,rotX:10,rotY:25,rotZ:0},cylinder3D:{radius:.22,height:.26,rounding:.02,rotX:60,rotY:0,rotZ:30},capsule3D:{radius:.16,height:.2,rotX:0,rotY:0,rotZ:35},cone3D:{radius:.3,topRadius:.02,height:.3,rotX:25,rotY:0,rotZ:15},pyramid3D:{size:.3,height:.45,rotX:-10,rotY:30,rotZ:0},prism3D:{radius:.28,height:.14,rotX:25,rotY:30,rotZ:0},ellipsoid3D:{radiusX:.38,radiusY:.22,radiusZ:.3,rotX:0,rotY:0,rotZ:20},diamond3D:{radius:.3,height:.42,rotX:15,rotY:0,rotZ:0},link3D:{radius:.18,length:.15,tube:.08,rotX:20,rotY:30,rotZ:0},gem3D:{radius:.3,height:.32,facets:8,rotX:15,rotY:0,rotZ:0},helix3D:{radius:.22,tube:.06,pitch:.16,rotX:20,rotY:0,rotZ:0},metaballs3D:{balls:4,ballRadius:.16,spread:.2,blend:.12,speed:1,rotX:0,rotY:0,rotZ:0},dodecahedron3D:{radius:.34,rotX:20,rotY:10,rotZ:0},hemisphere3D:{radius:.4,cut:0,rotX:30,rotY:0,rotZ:0},ribbon3D:{width:.15,thickness:.03,length:.38,wave:.1,waveFrequency:7,twist:140,speed:1,rotX:12,rotY:18,rotZ:0},blob3D:{radius:.3,wobble:.07,wobbliness:5,speed:1,rotX:0,rotY:0,rotZ:0},gyroscope3D:{radius:.34,width:.1,thickness:.028,rounding:.006,core:.14,speed:1,rotX:15,rotY:0,rotZ:0}};function jT(e){let t=HT[e.type]??{},s=(r,o=.3)=>XT(e[r],t[r]??o);switch(e.type){case"cube3D":return Math.hypot(s("sizeX"),s("sizeY"),s("sizeZ"))+s("rounding",0);case"torus3D":return s("radius")+s("tube");case"cylinder3D":return Math.hypot(s("radius"),s("height"))+s("rounding",0);case"capsule3D":return s("height")+s("radius");case"cone3D":return Math.hypot(Math.max(s("radius"),s("topRadius")),s("height"));case"pyramid3D":return Math.hypot(s("size")*Math.SQRT2,s("height")*.5);case"prism3D":return Math.hypot(s("radius")*1.1548,s("height"));case"ellipsoid3D":return Math.max(s("radiusX"),s("radiusY"),s("radiusZ"));case"diamond3D":return Math.max(s("radius"),s("height"));case"link3D":return s("length")+s("radius")+s("tube");case"gem3D":return Math.max(s("radius"),s("height"));case"helix3D":return Math.hypot(s("radius")+s("tube"),s("pitch")*3*.5+s("tube"));case"metaballs3D":return s("spread")+s("ballRadius",.16)+s("blend",.12);case"dodecahedron3D":return s("radius")*1.32;case"hemisphere3D":return s("radius");case"ribbon3D":return Math.hypot(s("length",.38),s("wave",.1)*1.2+Math.hypot(s("width",.15),s("thickness",.03)))+.01;case"blob3D":return s("radius",.3)+s("wobble",.07)+.02;case"gyroscope3D":return s("radius",.34)+s("thickness",.028)*.5+s("width",.1)*.5+s("rounding",.006);default:return s("radius",.35)}}var Ds={propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},rotation:{prop:"rotation",as:"degrees"}},computeBounds(e,t,s){let r=e.scale??1,o=typeof e.center?.x=="number"?e.center.x:.5,n=typeof e.center?.y=="number"?e.center.y:.5,{hwf:i,hhf:d}=Cv(e),l=r*s;return{centerXPx:o*t,centerYPx:n*s,widthPx:2*i*l,heightPx:2*d*l,rotationDeg:e.rotation??0}},writeBounds(e,t,s,r){let o={...t.center??{x:.5,y:.5},x:e.centerXPx/s,y:e.centerYPx/r},n=t.scale??1,i=GB(t)?Hp(t.shape):null;if(i&&n>0)return{center:o,rotation:e.rotationDeg,shape:JSON.stringify({...i,radius:Math.max(.001,e.widthPx/(2*n*r)),height:Math.max(.001,e.heightPx/(2*n*r))})};let{hwf:d}=Cv(t);return{center:o,scale:d>0?Math.max(.01,e.widthPx/(2*d*r)):.01,rotation:e.rotationDeg}}},Nl=new Map;function Hp(e){if(typeof e!="string")return e??null;if(Nl.has(e))return Nl.get(e);let t=null;try{t=JSON.parse(e)}catch{t=null}return Nl.size>=64&&Nl.clear(),Nl.set(e,t),t}function GB(e){if(e.shapeSdfUrl)return!1;let t=Hp(e.shape)?.type;return t==="roundedRectSDF"||t==="ellipseSDF"}function Cv(e){if(e.shapeSdfUrl){let r=e._shapeBounds??Rm(e.shapeSdfUrl),o=r&&typeof r.hwf=="number"&&typeof r.hhf=="number"?{hwf:r.hwf,hhf:r.hhf}:{hwf:.5,hhf:.5},n=e.shapeType;if(typeof n=="string"&&NT(n)){let i=Hp(e.shape)??{},d=c=>XT(i[c],qT[c]??0),l=Math.hypot(o.hwf,o.hhf,d("depth")*.5)+d("bevel")+.02;return{hwf:l,hhf:l}}return o}let t=Hp(e.shape);if(!t||typeof t!="object")return{hwf:.5,hhf:.5};if(typeof t.type=="string"&&VT(t.type)){let r=jT(t);return{hwf:r,hhf:r}}let s=typeof t.radius=="number"?t.radius:.35;switch(t.type){case"roundedRectSDF":case"ellipseSDF":return{hwf:s,hhf:typeof t.height=="number"?t.height:s};case"ringSDF":{let r=typeof t.thickness=="number"?t.thickness:0;return{hwf:s+r,hhf:s+r}}case"trapezoidSDF":{let r=typeof t.bottomWidth=="number"?t.bottomWidth:.3,o=typeof t.topWidth=="number"?t.topWidth:.2,n=typeof t.height=="number"?t.height:.25;return{hwf:Math.max(r,o),hhf:n}}case"vesicaSDF":{let r=typeof t.spread=="number"?Math.min(1,Math.max(0,t.spread)):.4;return{hwf:s*(1-r),hhf:s*Math.sqrt(Math.max(0,1-r*r))}}case"teardropSDF":return{hwf:s,hhf:((typeof t.height=="number"?t.height:.4)+s)/2};case"parallelogramSDF":{let r=typeof t.width=="number"?t.width:.32,o=typeof t.height=="number"?t.height:.22,n=typeof t.skew=="number"?t.skew:0;return{hwf:r+Math.abs(n),hhf:o}}default:return{hwf:s,hhf:s}}}function DB(e,t){if(e)return e;let s=t;if(typeof t=="string")try{s=JSON.parse(t)}catch{return"circleSDF"}if(s&&typeof s=="object"){let r=s.type;if(typeof r=="string"&&r)return r}return"circleSDF"}var ni=Pn({HELIX_TURNS:()=>3,MAX_METABALLS:()=>8,MarchParams:()=>va,RotStruct:()=>qc,SHAPE3D_DEFAULTS:()=>jp,SHAPE3D_TYPES:()=>KT,SVG3D_DEFAULTS:()=>QT,SVG3D_TYPES:()=>LB,SampleParams:()=>Qv,VOLUMETRIC_FIELD_EXTRA_FIELDS:()=>OB,VOLUMETRIC_FIELD_FORMAT:()=>zm,VOLUMETRIC_FIELD_RES:()=>tS,VOLUMETRIC_FIELD_RES_MOBILE:()=>768,boxFaceUV:()=>QB,buildFieldSampleGraph:()=>WB,buildFieldSampleGraphArgs:()=>Fy,buildRaymarchedField:()=>IB,buildRaymarchedFieldFn:()=>Dy,buildVolumetricFieldKernel:()=>rS,buildVolumetricFieldSampler:()=>aS,capsuleSurfaceUV:()=>e8,createAnalytic2dExtrudeSetup:()=>NB,createAnalytic3dSdfSetup:()=>iS,createSvg3dSdfSetup:()=>dS,createVolumetricFieldCompute:()=>oS,createVolumetricFieldComputeNode:()=>qB,eulerRotatePacked:()=>Js,is3dShapeType:()=>Um,isMobileGpuViewport:()=>No,isSvg3dShapeType:()=>zy,isVolumetricShapeType:()=>ZT,makeVolumetricFieldLayout:()=>Ly,makeVolumetricSvgFieldLayout:()=>nS,mobiusSurfaceUV:()=>s8,packedParamExtraFields:()=>n8,paramBoxSdf:()=>ZB,paramCapsuleSdf:()=>JB,paramMobiusSdf:()=>t8,paramSphereSdf:()=>XB,paramTorusSdf:()=>jB,paramTwistedRibbonSdf:()=>r8,resolveActiveFieldRes:()=>sS,resolveShapeFieldSampler:()=>VB,resolveShapeSubProp:()=>Gy,resolveVolumetricFieldRes:()=>Xc,rotateVec3:()=>N_,rotateVecCpu:()=>Rv,sdBicone:()=>Ec,sdCappedCone:()=>Fv,sdCapsule:()=>Lv,sdCutSphere:()=>Hv,sdDodecahedron:()=>Xv,sdEllipsoid:()=>Yv,sdFlatBand:()=>sc,sdGem:()=>Vv,sdGyroscope:()=>Zv,sdHelix:()=>Nv,sdHexPrism:()=>Iv,sdLink:()=>Wv,sdMetaballs:()=>qv,sdOctahedron:()=>Gv,sdPyramid:()=>Bv,sdRibbon:()=>jv,sdRoundBox:()=>Ac,sdRoundCylinder:()=>Dv,sdSphere:()=>Uv,sdTorus:()=>zv,sdWobbleBlob:()=>Kv,shape3dBoundingRadius:()=>eS,shapeSubPropMax:()=>JT,smin:()=>Ov,sphereSurfaceUV:()=>HB,torusSurfaceUV:()=>KB,twistedRibbonSurfaceUV:()=>o8}),p5=3.141592653589793,Ui=6.283185307179586,KT=["sphere3D","cube3D","torus3D","octahedron3D","cylinder3D","capsule3D","cone3D","pyramid3D","prism3D","ellipsoid3D","diamond3D","link3D","gem3D","helix3D","metaballs3D","dodecahedron3D","hemisphere3D","ribbon3D","blob3D","gyroscope3D"];function Um(e){return KT.includes(e)}var LB=["svgExtrude3D"];function zy(e){return e==="svgExtrude3D"}function ZT(e){return Um(e)||zy(e)}var QT={depth:.12,bevel:.02,rotX:15,rotY:30,rotZ:0},FB=e=>e<1/2.75?7.5625*e*e:e<2/2.75?(e-=1.5/2.75,7.5625*e*e+.75):e<2.5/2.75?(e-=2.25/2.75,7.5625*e*e+.9375):(e-=2.625/2.75,7.5625*e*e+.984375),BB=(e,t)=>{switch(t){case"linear":return e;case"quad":return e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2;case"expo":return e===0?0:e===1?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2;case"bounce":return FB(e);default:return(1-Math.cos(Math.PI*e))/2}};function Gy(e,t,s,r){if(typeof e=="number")return e;if(e&&typeof e=="object"){if(e.type==="auto-animate"){let o=(s.elapsed*(e.speed??1)*.2%1+1)%1,n=BB(e.mode==="loop"?o:o<.5?o*2:(1-o)*2,e.easing??e.waveform??"sine"),i=typeof e.outputMin=="number"?e.outputMin:t;return i+n*((typeof e.outputMax=="number"?e.outputMax:t)-i)}if(e.type==="mouse"){let o=e.axis==="y"?s.pointerY:s.pointerX,n=s.springs.get(r);n||(n={current:o,velocity:0},s.springs.set(r,n));let[i,d]=Nc(n.current,n.velocity,o,e.smoothing??0,e.momentum??0,s.deltaTime);n.current=i,n.velocity=d;let l=Math.max(.001,i),c=typeof e.outputMin=="number"?e.outputMin:t,_=typeof e.outputMax=="number"?e.outputMax:t,p=Math.pow(2,-(e.curve??0)*2);return c+Math.pow(l,p)*(_-c)}}return t}function JT(e,t){if(typeof e=="number")return e;if(e&&typeof e=="object"&&(e.type==="auto-animate"||e.type==="mouse")){let s=typeof e.outputMin=="number"?e.outputMin:t,r=typeof e.outputMax=="number"?e.outputMax:t;return Math.max(s,r)}return t}var jp={sphere3D:{radius:.35,rotX:0,rotY:0,rotZ:0},cube3D:{sizeX:.27,sizeY:.27,sizeZ:.27,rounding:.02,rotX:25,rotY:35,rotZ:0},torus3D:{radius:.3,tube:.12,rotX:55,rotY:0,rotZ:0},octahedron3D:{radius:.42,rotX:10,rotY:25,rotZ:0},cylinder3D:{radius:.22,height:.26,rounding:.02,rotX:60,rotY:0,rotZ:30},capsule3D:{radius:.16,height:.2,rotX:0,rotY:0,rotZ:35},cone3D:{radius:.3,topRadius:.02,height:.3,rotX:25,rotY:0,rotZ:15},pyramid3D:{size:.3,height:.45,rotX:-10,rotY:30,rotZ:0},prism3D:{radius:.28,height:.14,rotX:25,rotY:30,rotZ:0},ellipsoid3D:{radiusX:.38,radiusY:.22,radiusZ:.3,rotX:0,rotY:0,rotZ:20},diamond3D:{radius:.3,height:.42,rotX:15,rotY:0,rotZ:0},link3D:{radius:.18,length:.15,tube:.08,rotX:20,rotY:30,rotZ:0},gem3D:{radius:.3,height:.32,facets:8,rotX:15,rotY:0,rotZ:0},helix3D:{radius:.22,tube:.06,pitch:.16,rotX:20,rotY:0,rotZ:0},metaballs3D:{balls:4,ballRadius:.16,spread:.2,blend:.12,speed:1,rotX:0,rotY:0,rotZ:0},dodecahedron3D:{radius:.34,rotX:20,rotY:10,rotZ:0},hemisphere3D:{radius:.4,cut:0,rotX:30,rotY:0,rotZ:0},ribbon3D:{width:.15,thickness:.03,length:.38,wave:.1,waveFrequency:7,twist:140,speed:1,rotX:12,rotY:18,rotZ:0},blob3D:{radius:.3,wobble:.07,wobbliness:5,speed:1,rotX:0,rotY:0,rotZ:0},gyroscope3D:{radius:.34,width:.1,thickness:.028,rounding:.006,core:.14,speed:1,rotX:15,rotY:0,rotZ:0}};function eS(e){let t=jp[e.type]??{},s=(r,o=.3)=>JT(e[r],t[r]??o);switch(e.type){case"cube3D":return Math.hypot(s("sizeX"),s("sizeY"),s("sizeZ"))+s("rounding",0);case"torus3D":return s("radius")+s("tube");case"cylinder3D":return Math.hypot(s("radius"),s("height"))+s("rounding",0);case"capsule3D":return s("height")+s("radius");case"cone3D":return Math.hypot(Math.max(s("radius"),s("topRadius")),s("height"));case"pyramid3D":return Math.hypot(s("size")*Math.SQRT2,s("height")*.5);case"prism3D":return Math.hypot(s("radius")*1.1548,s("height"));case"ellipsoid3D":return Math.max(s("radiusX"),s("radiusY"),s("radiusZ"));case"diamond3D":return Math.max(s("radius"),s("height"));case"link3D":return s("length")+s("radius")+s("tube");case"gem3D":return Math.max(s("radius"),s("height"));case"helix3D":return Math.hypot(s("radius")+s("tube"),s("pitch")*3*.5+s("tube"));case"metaballs3D":return s("spread")+s("ballRadius",.16)+s("blend",.12);case"dodecahedron3D":return s("radius")*1.32;case"hemisphere3D":return s("radius");case"ribbon3D":return Math.hypot(s("length",.38),s("wave",.1)*1.2+Math.hypot(s("width",.15),s("thickness",.03)))+.01;case"blob3D":return s("radius",.3)+s("wobble",.07)+.02;case"gyroscope3D":return s("radius",.34)+s("thickness",.028)*.5+s("width",.1)*.5+s("rounding",.006);default:return s("radius",.35)}}function Rv(e,t,s,r){let o=e*r.cy+s*r.sy,n=-e*r.sy+s*r.cy,i=t*r.cx-n*r.sx,d=t*r.sx+n*r.cx;return{x:o*r.cz-i*r.sz,y:o*r.sz+i*r.cz,z:d}}var Uv=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_sub(te(t),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"}],body:[0,[[10,[1,[6,"std.length",["p"]],"-","r"]]]]},externals:{"std.length":()=>te}})&&e.f)({})),Ac=y.fn([v,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=__tsover_add(__tsover_sub(W(t.x),s),n),d=__tsover_add(__tsover_sub(W(t.y),r),n),l=__tsover_add(__tsover_sub(W(t.z),o),n),c=te(v(w(i,0),w(d,0),w(l,0))),_=ue(w(i,w(d,l)),0);return __tsover_sub(__tsover_add(c,_),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"hx"},{type:"i",name:"hy"},{type:"i",name:"hz"},{type:"i",name:"rounding"}],body:[0,[[13,"qx",[1,[1,[6,"std.abs",[[7,"p","x"]]],"-","hx"],"+","rounding"]],[13,"qy",[1,[1,[6,"std.abs",[[7,"p","y"]]],"-","hy"],"+","rounding"]],[13,"qz",[1,[1,[6,"std.abs",[[7,"p","z"]]],"-","hz"],"+","rounding"]],[13,"outer",[6,"std.length",[[6,"d.vec3f",[[6,"std.max",["qx",[5,"0"]]],[6,"std.max",["qy",[5,"0"]]],[6,"std.max",["qz",[5,"0"]]]]]]]],[13,"inner",[6,"std.min",[[6,"std.max",["qx",[6,"std.max",["qy","qz"]]]],[5,"0"]]]],[10,[1,[1,"outer","+","inner"],"-","rounding"]]]]},externals:{"std.abs":()=>W,"std.length":()=>te,"d.vec3f":()=>v,"std.max":()=>w,"std.min":()=>ue}})&&e.f)({})),zv=y.fn([v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_sub(te(u(t.x,t.z)),s);return __tsover_sub(te(u(o,t.y)),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"ringR"},{type:"i",name:"tubeR"}],body:[0,[[13,"qx",[1,[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],[7,"p","z"]]]]],"-","ringR"]],[10,[1,[6,"std.length",[[6,"d.vec2f",["qx",[7,"p","y"]]]]],"-","tubeR"]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u}})&&e.f)({})),Gv=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_mul(__tsover_sub(__tsover_add(__tsover_add(W(t.x),W(t.y)),W(t.z)),s),.57735027)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"s"}],body:[0,[[10,[1,[1,[1,[1,[6,"std.abs",[[7,"p","x"]]],"+",[6,"std.abs",[[7,"p","y"]]]],"+",[6,"std.abs",[[7,"p","z"]]]],"-","s"],"*",[5,"0.57735027"]]]]]},externals:{"std.abs":()=>W}})&&e.f)({})),Dv=y.fn([v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_add(__tsover_sub(te(u(t.x,t.z)),s),o),i=__tsover_add(__tsover_sub(W(t.y),r),o),d=ue(w(n,i),0),l=te(u(w(n,0),w(i,0)));return __tsover_sub(__tsover_add(d,l),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"},{type:"i",name:"rounding"}],body:[0,[[13,"dx",[1,[1,[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],[7,"p","z"]]]]],"-","r"],"+","rounding"]],[13,"dy",[1,[1,[6,"std.abs",[[7,"p","y"]]],"-","h"],"+","rounding"]],[13,"inner",[6,"std.min",[[6,"std.max",["dx","dy"]],[5,"0"]]]],[13,"outer",[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["dx",[5,"0"]]],[6,"std.max",["dy",[5,"0"]]]]]]]],[10,[1,[1,"inner","+","outer"],"-","rounding"]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u,"std.abs":()=>W,"std.min":()=>ue,"std.max":()=>w}})&&e.f)({})),Lv=y.fn([v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=z(t.y,__tsover_mul(r,-1),r);return __tsover_sub(te(v(t.x,__tsover_sub(t.y,o),t.z)),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"}],body:[0,[[13,"cyc",[6,"std.clamp",[[7,"p","y"],[1,"h","*",[4,"-",[5,"1"]]],"h"]]],[10,[1,[6,"std.length",[[6,"d.vec3f",[[7,"p","x"],[1,[7,"p","y"],"-","cyc"],[7,"p","z"]]]]],"-","r"]]]]},externals:{"std.clamp":()=>z,"std.length":()=>te,"d.vec3f":()=>v}})&&e.f)({})),Fv=y.fn([v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=te(u(t.x,t.z)),i=t.y,d=__tsover_sub(r,s),l=__tsover_mul(o,2),c=__tsover_sub(n,ue(n,F(r,s,i<0))),_=__tsover_sub(W(i),o),p=__tsover_add(__tsover_mul(__tsover_sub(r,n),d),__tsover_mul(__tsover_sub(o,i),l)),f=w(__tsover_add(__tsover_mul(d,d),__tsover_mul(l,l)),1e-6),h=z(__tsover_div(p,f),0,1),g=__tsover_add(__tsover_sub(n,r),__tsover_mul(d,h)),x=__tsover_add(__tsover_sub(i,o),__tsover_mul(l,h)),T=F(a(1),a(-1),_<0),S=F(a(1),T,g<0),A=__tsover_add(__tsover_mul(c,c),__tsover_mul(_,_)),E=__tsover_add(__tsover_mul(g,g),__tsover_mul(x,x));return __tsover_mul(S,$e(ue(A,E)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r1"},{type:"i",name:"r2"},{type:"i",name:"h"}],body:[0,[[13,"qx",[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],[7,"p","z"]]]]]],[13,"qy",[7,"p","y"]],[13,"k2x",[1,"r2","-","r1"]],[13,"k2y",[1,"h","*",[5,"2"]]],[13,"cax",[1,"qx","-",[6,"std.min",["qx",[6,"std.select",["r2","r1",[1,"qy","<",[5,"0"]]]]]]]],[13,"cay",[1,[6,"std.abs",["qy"]],"-","h"]],[13,"dotNum",[1,[1,[1,"r2","-","qx"],"*","k2x"],"+",[1,[1,"h","-","qy"],"*","k2y"]]],[13,"dotDen",[6,"std.max",[[1,[1,"k2x","*","k2x"],"+",[1,"k2y","*","k2y"]],[5,"0.000001"]]]],[13,"t",[6,"std.clamp",[[1,"dotNum","/","dotDen"],[5,"0"],[5,"1"]]]],[13,"cbx",[1,[1,"qx","-","r2"],"+",[1,"k2x","*","t"]]],[13,"cby",[1,[1,"qy","-","h"],"+",[1,"k2y","*","t"]]],[13,"sInner",[6,"std.select",[[6,"d.f32",[[5,"1"]]],[6,"d.f32",[[4,"-",[5,"1"]]]],[1,"cay","<",[5,"0"]]]]],[13,"s",[6,"std.select",[[6,"d.f32",[[5,"1"]]],"sInner",[1,"cbx","<",[5,"0"]]]]],[13,"dca",[1,[1,"cax","*","cax"],"+",[1,"cay","*","cay"]]],[13,"dcb",[1,[1,"cbx","*","cbx"],"+",[1,"cby","*","cby"]]],[10,[1,"s","*",[6,"std.sqrt",[[6,"std.min",["dca","dcb"]]]]]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u,"std.min":()=>ue,"std.select":()=>F,"std.abs":()=>W,"std.max":()=>w,"std.clamp":()=>z,"d.f32":()=>a,"std.sqrt":()=>$e}})&&e.f)({})),Bv=y.fn([v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(r,.5),n=$e(__tsover_add(__tsover_mul(r,r),__tsover_mul(s,s))),i=__tsover_div(__tsover_add(__tsover_mul(r,W(t.x)),__tsover_mul(s,__tsover_sub(t.y,o))),n),d=__tsover_div(__tsover_add(__tsover_mul(r,W(t.z)),__tsover_mul(s,__tsover_sub(t.y,o))),n),l=__tsover_sub(__tsover_mul(t.y,-1),o);return w(w(i,d),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"b"},{type:"i",name:"ht"}],body:[0,[[13,"h2",[1,"ht","*",[5,"0.5"]]],[13,"denom",[6,"std.sqrt",[[1,[1,"ht","*","ht"],"+",[1,"b","*","b"]]]]],[13,"dx",[1,[1,[1,"ht","*",[6,"std.abs",[[7,"p","x"]]]],"+",[1,"b","*",[1,[7,"p","y"],"-","h2"]]],"/","denom"]],[13,"dz",[1,[1,[1,"ht","*",[6,"std.abs",[[7,"p","z"]]]],"+",[1,"b","*",[1,[7,"p","y"],"-","h2"]]],"/","denom"]],[13,"dBase",[1,[1,[7,"p","y"],"*",[4,"-",[5,"1"]]],"-","h2"]],[10,[6,"std.max",[[6,"std.max",["dx","dz"]],"dBase"]]]]]},externals:{"std.sqrt":()=>$e,"std.abs":()=>W,"std.max":()=>w}})&&e.f)({})),Iv=y.fn([v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=-.8660254,n=.5,i=.57735,d=W(t.x),l=W(t.y),c=W(t.z),_=__tsover_mul(ue(__tsover_add(__tsover_mul(o,d),__tsover_mul(n,l)),0),2),p=__tsover_sub(d,__tsover_mul(_,o)),f=__tsover_sub(l,__tsover_mul(_,n)),h=z(p,__tsover_mul(__tsover_mul(i,s),-1),__tsover_mul(i,s)),g=__tsover_sub(p,h),x=__tsover_sub(f,s),T=__tsover_mul($e(__tsover_add(__tsover_mul(g,g),__tsover_mul(x,x))),ir(__tsover_sub(f,s))),S=__tsover_sub(c,r),A=ue(w(T,S),0),E=te(u(w(T,0),w(S,0)));return __tsover_add(A,E)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"he"}],body:[0,[[13,"kx",[4,"-",[5,"0.8660254"]]],[13,"ky",[5,"0.5"]],[13,"kz",[5,"0.57735"]],[13,"ax",[6,"std.abs",[[7,"p","x"]]]],[13,"ay",[6,"std.abs",[[7,"p","y"]]]],[13,"az",[6,"std.abs",[[7,"p","z"]]]],[13,"dk",[1,[6,"std.min",[[1,[1,"kx","*","ax"],"+",[1,"ky","*","ay"]],[5,"0"]]],"*",[5,"2"]]],[13,"px",[1,"ax","-",[1,"dk","*","kx"]]],[13,"py",[1,"ay","-",[1,"dk","*","ky"]]],[13,"cx",[6,"std.clamp",["px",[1,[1,"kz","*","r"],"*",[4,"-",[5,"1"]]],[1,"kz","*","r"]]]],[13,"ex",[1,"px","-","cx"]],[13,"ey",[1,"py","-","r"]],[13,"dHex",[1,[6,"std.sqrt",[[1,[1,"ex","*","ex"],"+",[1,"ey","*","ey"]]]],"*",[6,"std.sign",[[1,"py","-","r"]]]]],[13,"dZ",[1,"az","-","he"]],[13,"inner",[6,"std.min",[[6,"std.max",["dHex","dZ"]],[5,"0"]]]],[13,"outer",[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["dHex",[5,"0"]]],[6,"std.max",["dZ",[5,"0"]]]]]]]],[10,[1,"inner","+","outer"]]]]},externals:{"std.abs":()=>W,"std.min":()=>ue,"std.clamp":()=>z,"std.sqrt":()=>$e,"std.sign":()=>ir,"std.max":()=>w,"std.length":()=>te,"d.vec2f":()=>u}})&&e.f)({})),Yv=y.fn([v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=te(v(__tsover_div(t.x,s),__tsover_div(t.y,r),__tsover_div(t.z,o))),i=te(v(__tsover_div(t.x,__tsover_mul(s,s)),__tsover_div(t.y,__tsover_mul(r,r)),__tsover_div(t.z,__tsover_mul(o,o))));return __tsover_div(__tsover_mul(n,__tsover_sub(n,1)),w(i,1e-6))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rx"},{type:"i",name:"ry"},{type:"i",name:"rz"}],body:[0,[[13,"k0",[6,"std.length",[[6,"d.vec3f",[[1,[7,"p","x"],"/","rx"],[1,[7,"p","y"],"/","ry"],[1,[7,"p","z"],"/","rz"]]]]]],[13,"k1",[6,"std.length",[[6,"d.vec3f",[[1,[7,"p","x"],"/",[1,"rx","*","rx"]],[1,[7,"p","y"],"/",[1,"ry","*","ry"]],[1,[7,"p","z"],"/",[1,"rz","*","rz"]]]]]]],[10,[1,[1,"k0","*",[1,"k0","-",[5,"1"]]],"/",[6,"std.max",["k1",[5,"0.000001"]]]]]]]},externals:{"std.length":()=>te,"d.vec3f":()=>v,"std.max":()=>w}})&&e.f)({})),Ec=y.fn([v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=te(u(t.x,t.z)),n=W(t.y),i=__tsover_mul(s,-1),d=r,l=__tsover_sub(o,s),c=n,_=w(__tsover_add(__tsover_mul(i,i),__tsover_mul(d,d)),1e-6),p=z(__tsover_div(__tsover_add(__tsover_mul(l,i),__tsover_mul(c,d)),_),0,1),f=__tsover_sub(l,__tsover_mul(i,p)),h=__tsover_sub(c,__tsover_mul(d,p)),g=$e(__tsover_add(__tsover_mul(f,f),__tsover_mul(h,h)));return __tsover_mul(g,ir(__tsover_sub(__tsover_add(__tsover_mul(r,o),__tsover_mul(s,n)),__tsover_mul(s,r))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"}],body:[0,[[13,"qx",[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],[7,"p","z"]]]]]],[13,"qy",[6,"std.abs",[[7,"p","y"]]]],[13,"abx",[1,"r","*",[4,"-",[5,"1"]]]],[13,"aby","h"],[13,"apx",[1,"qx","-","r"]],[13,"apy","qy"],[13,"den",[6,"std.max",[[1,[1,"abx","*","abx"],"+",[1,"aby","*","aby"]],[5,"0.000001"]]]],[13,"t",[6,"std.clamp",[[1,[1,[1,"apx","*","abx"],"+",[1,"apy","*","aby"]],"/","den"],[5,"0"],[5,"1"]]]],[13,"dxx",[1,"apx","-",[1,"abx","*","t"]]],[13,"dyy",[1,"apy","-",[1,"aby","*","t"]]],[13,"dist",[6,"std.sqrt",[[1,[1,"dxx","*","dxx"],"+",[1,"dyy","*","dyy"]]]]],[10,[1,"dist","*",[6,"std.sign",[[1,[1,[1,"h","*","qx"],"+",[1,"r","*","qy"]],"-",[1,"r","*","h"]]]]]]]]},externals:{"std.length":()=>te,"d.vec2f":()=>u,"std.abs":()=>W,"std.max":()=>w,"std.clamp":()=>z,"std.sqrt":()=>$e,"std.sign":()=>ir}})&&e.f)({})),Wv=y.fn([v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=w(__tsover_sub(W(t.y),s),0),i=__tsover_sub(te(u(t.x,n)),r);return __tsover_sub(te(u(i,t.z)),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"le"},{type:"i",name:"r1"},{type:"i",name:"r2"}],body:[0,[[13,"qy",[6,"std.max",[[1,[6,"std.abs",[[7,"p","y"]]],"-","le"],[5,"0"]]]],[13,"ring",[1,[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],"qy"]]]],"-","r1"]],[10,[1,[6,"std.length",[[6,"d.vec2f",["ring",[7,"p","z"]]]]],"-","r2"]]]]},externals:{"std.max":()=>w,"std.abs":()=>W,"std.length":()=>te,"d.vec2f":()=>u}})&&e.f)({})),Ov=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=z(__tsover_add(__tsover_mul(__tsover_div(__tsover_sub(s,t),r),.5),.5),0,1);return __tsover_sub(Z(s,t,o),__tsover_mul(__tsover_mul(r,o),__tsover_sub(1,o)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"k"}],body:[0,[[13,"h",[6,"std.clamp",[[1,[1,[1,[1,"b","-","a"],"/","k"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,[1,[6,"std.mix",["b","a","h"]],"-",[1,[1,"k","*","h"],"*",[1,[5,"1"],"-","h"]]]]]]},externals:{"std.clamp":()=>z,"std.mix":()=>Z}})&&e.f)({})),Vv=y.fn([v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Ec(t,s,r),i=te(u(t.x,t.z)),d=bt(t.z,t.x),l=__tsover_div(Ui,o),c=K(__tsover_add(__tsover_div(d,l),.5)),_=__tsover_sub(d,__tsover_mul(c,l)),p=__tsover_mul(s,J(__tsover_div(p5,o)));return w(w(n,__tsover_sub(__tsover_mul(i,J(_)),p)),__tsover_sub(t.y,__tsover_mul(r,.45)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"},{type:"i",name:"sides"}],body:[0,[[13,"base",[6,"sdBicone",["p","r","h"]]],[13,"lenXZ",[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],[7,"p","z"]]]]]],[13,"ang",[6,"std.atan2",[[7,"p","z"],[7,"p","x"]]]],[13,"sector",[1,"TWO_PI","/","sides"]],[13,"idx",[6,"std.floor",[[1,[1,"ang","/","sector"],"+",[5,"0.5"]]]]],[13,"ca",[1,"ang","-",[1,"idx","*","sector"]]],[13,"ri",[1,"r","*",[6,"std.cos",[[1,"PI","/","sides"]]]]],[13,"facet",[1,[1,"lenXZ","*",[6,"std.cos",["ca"]]],"-","ri"]],[13,"dd",[6,"std.max",["base","facet"]]],[13,"table",[1,[7,"p","y"],"-",[1,"h","*",[5,"0.45"]]]],[10,[6,"std.max",["dd","table"]]]]]},externals:{sdBicone:()=>Ec,"std.length":()=>te,"d.vec2f":()=>u,"std.atan2":()=>bt,TWO_PI:()=>Ui,"std.floor":()=>K,"std.cos":()=>J,PI:()=>p5,"std.max":()=>w}})&&e.f)({})),Nv=y.fn([v,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=bt(t.z,t.x),d=K(__tsover_add(__tsover_sub(__tsover_div(t.y,o),__tsover_div(i,Ui)),.5)),l=__tsover_add(i,__tsover_mul(Ui,d)),c=__tsover_mul(s,J(l)),_=__tsover_div(__tsover_mul(o,l),Ui),p=__tsover_mul(s,O(l));return w(__tsover_sub(te(v(__tsover_sub(t.x,c),__tsover_sub(t.y,_),__tsover_sub(t.z,p))),r),__tsover_sub(W(t.y),__tsover_mul(__tsover_mul(o,n),.5)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"R"},{type:"i",name:"tube"},{type:"i",name:"pitch"},{type:"i",name:"turns"}],body:[0,[[13,"psi",[6,"std.atan2",[[7,"p","z"],[7,"p","x"]]]],[13,"k",[6,"std.floor",[[1,[1,[1,[7,"p","y"],"/","pitch"],"-",[1,"psi","/","TWO_PI"]],"+",[5,"0.5"]]]]],[13,"theta",[1,"psi","+",[1,"TWO_PI","*","k"]]],[13,"ccx",[1,"R","*",[6,"std.cos",["theta"]]]],[13,"ccy",[1,[1,"pitch","*","theta"],"/","TWO_PI"]],[13,"ccz",[1,"R","*",[6,"std.sin",["theta"]]]],[13,"dStrand",[1,[6,"std.length",[[6,"d.vec3f",[[1,[7,"p","x"],"-","ccx"],[1,[7,"p","y"],"-","ccy"],[1,[7,"p","z"],"-","ccz"]]]]],"-","tube"]],[13,"slab",[1,[6,"std.abs",[[7,"p","y"]]],"-",[1,[1,"pitch","*","turns"],"*",[5,"0.5"]]]],[10,[6,"std.max",["dStrand","slab"]]]]]},externals:{"std.atan2":()=>bt,"std.floor":()=>K,TWO_PI:()=>Ui,"std.cos":()=>J,"std.sin":()=>O,"std.length":()=>te,"d.vec3f":()=>v,"std.abs":()=>W,"std.max":()=>w}})&&e.f)({})),m5=zt(v,8),f5=8,qv=y.fn([v,v,v,v,v,v,v,v,v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p)=>{"use gpu";let f=m5();f[0]=v(s),f[1]=v(r),f[2]=v(o),f[3]=v(n),f[4]=v(i),f[5]=v(d),f[6]=v(l),f[7]=v(c);let h=__tsover_sub(te(t.sub(f[0])),_);for(let g=1;g<f5;g++)h=Ov(h,__tsover_sub(te(t.sub(f[g])),_),p);return h}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"b0"},{type:"i",name:"b1"},{type:"i",name:"b2"},{type:"i",name:"b3"},{type:"i",name:"b4"},{type:"i",name:"b5"},{type:"i",name:"b6"},{type:"i",name:"b7"},{type:"i",name:"r"},{type:"i",name:"k"}],body:[0,[[13,"balls",[6,"MetaballArray",[]]],[2,[8,"balls",[5,"0"]],"=",[6,"d.vec3f",["b0"]]],[2,[8,"balls",[5,"1"]],"=",[6,"d.vec3f",["b1"]]],[2,[8,"balls",[5,"2"]],"=",[6,"d.vec3f",["b2"]]],[2,[8,"balls",[5,"3"]],"=",[6,"d.vec3f",["b3"]]],[2,[8,"balls",[5,"4"]],"=",[6,"d.vec3f",["b4"]]],[2,[8,"balls",[5,"5"]],"=",[6,"d.vec3f",["b5"]]],[2,[8,"balls",[5,"6"]],"=",[6,"d.vec3f",["b6"]]],[2,[8,"balls",[5,"7"]],"=",[6,"d.vec3f",["b7"]]],[12,"dd",[1,[6,"std.length",[[6,[7,"p","sub"],[[8,"balls",[5,"0"]]]]]],"-","r"]],[14,[12,"i",[5,"1"]],[1,"i","<","METABALL_COUNT"],[102,"++","i"],[0,[[2,"dd","=",[6,"smin",["dd",[1,[6,"std.length",[[6,[7,"p","sub"],[[8,"balls","i"]]]]],"-","r"],"k"]]]]]],[10,"dd"]]]},externals:{MetaballArray:()=>m5,"d.vec3f":()=>v,"std.length":()=>te,METABALL_COUNT:()=>f5,smin:()=>Ov}})&&e.f)({})),Xv=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=v(W(t.x),W(t.y),W(t.z)),o=le(r,v(0,.5257311,.8506508)),n=le(r,v(.8506508,0,.5257311)),i=le(r,v(.5257311,.8506508,0));return __tsover_sub(w(w(o,n),i),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"}],body:[0,[[13,"q",[6,"d.vec3f",[[6,"std.abs",[[7,"p","x"]]],[6,"std.abs",[[7,"p","y"]]],[6,"std.abs",[[7,"p","z"]]]]]],[13,"a",[6,"std.dot",["q",[6,"d.vec3f",[[5,"0"],[5,"0.5257311"],[5,"0.8506508"]]]]]],[13,"b",[6,"std.dot",["q",[6,"d.vec3f",[[5,"0.8506508"],[5,"0"],[5,"0.5257311"]]]]]],[13,"c",[6,"std.dot",["q",[6,"d.vec3f",[[5,"0.5257311"],[5,"0.8506508"],[5,"0"]]]]]],[10,[1,[6,"std.max",[[6,"std.max",["a","b"]],"c"]],"-","r"]]]]},externals:{"d.vec3f":()=>v,"std.abs":()=>W,"std.dot":()=>le,"std.max":()=>w}})&&e.f)({})),Hv=y.fn([v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=$e(w(__tsover_sub(__tsover_mul(s,s),__tsover_mul(r,r)),0)),n=te(u(t.x,t.z)),i=t.y,d=w(__tsover_add(__tsover_mul(__tsover_mul(__tsover_sub(r,s),n),n),__tsover_mul(__tsover_mul(o,o),__tsover_sub(__tsover_add(r,s),__tsover_mul(i,2)))),__tsover_sub(__tsover_mul(r,n),__tsover_mul(o,i))),l=__tsover_sub(te(u(n,i)),s),c=__tsover_sub(r,i);return F(F(te(u(__tsover_sub(n,o),__tsover_sub(i,r))),c,n<o),l,d<0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"}],body:[0,[[13,"w",[6,"std.sqrt",[[6,"std.max",[[1,[1,"r","*","r"],"-",[1,"h","*","h"]],[5,"0"]]]]]],[13,"qx",[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],[7,"p","z"]]]]]],[13,"qy",[7,"p","y"]],[13,"s",[6,"std.max",[[1,[1,[1,[1,"h","-","r"],"*","qx"],"*","qx"],"+",[1,[1,"w","*","w"],"*",[1,[1,"h","+","r"],"-",[1,"qy","*",[5,"2"]]]]],[1,[1,"h","*","qx"],"-",[1,"w","*","qy"]]]]],[13,"case0",[1,[6,"std.length",[[6,"d.vec2f",["qx","qy"]]]],"-","r"]],[13,"case1",[1,"h","-","qy"]],[13,"case2",[6,"std.length",[[6,"d.vec2f",[[1,"qx","-","w"],[1,"qy","-","h"]]]]]],[13,"inner",[6,"std.select",["case2","case1",[1,"qx","<","w"]]]],[10,[6,"std.select",["inner","case0",[1,"s","<",[5,"0"]]]]]]]},externals:{"std.sqrt":()=>$e,"std.max":()=>w,"std.length":()=>te,"d.vec2f":()=>u,"std.select":()=>F}})&&e.f)({})),jv=y.fn([v,a,a,a,a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p)=>{"use gpu";let f=__tsover_mul(n,O(__tsover_add(__tsover_mul(i,t.x),d))),h=__tsover_mul(__tsover_mul(n,.6),O(__tsover_add(__tsover_mul(__tsover_mul(i,.8),t.x),l))),g=__tsover_sub(t.y,f),x=__tsover_sub(t.z,h),T=__tsover_add(__tsover_mul(c,t.x),_),S=J(T),A=O(T),E=__tsover_add(__tsover_mul(g,S),__tsover_mul(x,A)),M=__tsover_sub(__tsover_mul(x,S),__tsover_mul(g,A)),$=__tsover_mul(r,.4),L=__tsover_add(__tsover_sub(W(E),s),$),B=__tsover_add(__tsover_sub(W(M),r),$),D=__tsover_sub(__tsover_add(te(u(w(L,0),w(B,0))),ue(w(L,B),0)),$),G=__tsover_sub(W(t.x),o),I=__tsover_add(te(u(w(D,0),w(G,0))),ue(w(D,G),0));return __tsover_mul(I,p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"w"},{type:"i",name:"th"},{type:"i",name:"len"},{type:"i",name:"amp"},{type:"i",name:"freq"},{type:"i",name:"ph1"},{type:"i",name:"ph2"},{type:"i",name:"twRate"},{type:"i",name:"twPh"},{type:"i",name:"lip"}],body:[0,[[13,"yc",[1,"amp","*",[6,"std.sin",[[1,[1,"freq","*",[7,"p","x"]],"+","ph1"]]]]],[13,"zc",[1,[1,"amp","*",[5,"0.6"]],"*",[6,"std.sin",[[1,[1,[1,"freq","*",[5,"0.8"]],"*",[7,"p","x"]],"+","ph2"]]]]],[13,"qy",[1,[7,"p","y"],"-","yc"]],[13,"qz",[1,[7,"p","z"],"-","zc"]],[13,"ang",[1,[1,"twRate","*",[7,"p","x"]],"+","twPh"]],[13,"c",[6,"std.cos",["ang"]]],[13,"s",[6,"std.sin",["ang"]]],[13,"ry",[1,[1,"qy","*","c"],"+",[1,"qz","*","s"]]],[13,"rz",[1,[1,"qz","*","c"],"-",[1,"qy","*","s"]]],[13,"round",[1,"th","*",[5,"0.4"]]],[13,"bx",[1,[1,[6,"std.abs",["ry"]],"-","w"],"+","round"]],[13,"by",[1,[1,[6,"std.abs",["rz"]],"-","th"],"+","round"]],[13,"d2",[1,[1,[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["bx",[5,"0"]]],[6,"std.max",["by",[5,"0"]]]]]]],"+",[6,"std.min",[[6,"std.max",["bx","by"]],[5,"0"]]]],"-","round"]],[13,"dx",[1,[6,"std.abs",[[7,"p","x"]]],"-","len"]],[13,"dd",[1,[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["d2",[5,"0"]]],[6,"std.max",["dx",[5,"0"]]]]]]],"+",[6,"std.min",[[6,"std.max",["d2","dx"]],[5,"0"]]]]],[10,[1,"dd","*","lip"]]]]},externals:{"std.sin":()=>O,"std.cos":()=>J,"std.abs":()=>W,"std.length":()=>te,"d.vec2f":()=>u,"std.max":()=>w,"std.min":()=>ue}})&&e.f)({})),Kv=y.fn([v,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(t.x,o),n)),O(__tsover_add(__tsover_mul(__tsover_mul(t.y,o),1.3),i))),__tsover_mul(O(__tsover_add(__tsover_mul(__tsover_mul(t.y,o),.8),__tsover_mul(i,1.1))),O(__tsover_add(__tsover_mul(__tsover_mul(t.z,o),1.1),__tsover_mul(n,.9))))),c=__tsover_sub(__tsover_sub(te(t),s),__tsover_mul(__tsover_mul(r,l),.5));return __tsover_mul(c,d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"amp"},{type:"i",name:"freq"},{type:"i",name:"ph1"},{type:"i",name:"ph2"},{type:"i",name:"lip"}],body:[0,[[13,"w",[1,[1,[6,"std.sin",[[1,[1,[7,"p","x"],"*","freq"],"+","ph1"]]],"*",[6,"std.sin",[[1,[1,[1,[7,"p","y"],"*","freq"],"*",[5,"1.3"]],"+","ph2"]]]],"+",[1,[6,"std.sin",[[1,[1,[1,[7,"p","y"],"*","freq"],"*",[5,"0.8"]],"+",[1,"ph2","*",[5,"1.1"]]]]],"*",[6,"std.sin",[[1,[1,[1,[7,"p","z"],"*","freq"],"*",[5,"1.1"]],"+",[1,"ph1","*",[5,"0.9"]]]]]]]],[13,"dd",[1,[1,[6,"std.length",["p"]],"-","r"],"-",[1,[1,"amp","*","w"],"*",[5,"0.5"]]]],[10,[1,"dd","*","lip"]]]]},externals:{"std.sin":()=>O,"std.length":()=>te}})&&e.f)({})),sc=y.fn([a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_add(__tsover_sub(W(__tsover_sub(t,r)),o),i),l=__tsover_add(__tsover_sub(W(s),n),i),c=te(u(w(d,0),w(l,0))),_=ue(w(d,l),0);return __tsover_sub(__tsover_add(c,_),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"radialDist"},{type:"i",name:"axialDist"},{type:"i",name:"R"},{type:"i",name:"ht"},{type:"i",name:"hw"},{type:"i",name:"rnd"}],body:[0,[[13,"bx",[1,[1,[6,"std.abs",[[1,"radialDist","-","R"]]],"-","ht"],"+","rnd"]],[13,"by",[1,[1,[6,"std.abs",["axialDist"]],"-","hw"],"+","rnd"]],[13,"outer",[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["bx",[5,"0"]]],[6,"std.max",["by",[5,"0"]]]]]]]],[13,"inner",[6,"std.min",[[6,"std.max",["bx","by"]],[5,"0"]]]],[10,[1,[1,"outer","+","inner"],"-","rnd"]]]]},externals:{"std.abs":()=>W,"std.length":()=>te,"d.vec2f":()=>u,"std.max":()=>w,"std.min":()=>ue}})&&e.f)({})),Zv=y.fn([v,a,a,a,a,a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p,f)=>{"use gpu";let h=__tsover_mul(r,.5),g=__tsover_mul(o,.5),x=__tsover_sub(te(t),i),T=__tsover_add(__tsover_mul(t.y,d),__tsover_mul(t.z,l)),S=__tsover_sub(__tsover_mul(t.z,d),__tsover_mul(t.y,l)),A=sc(te(u(t.x,S)),T,s,g,h,n),E=__tsover_sub(__tsover_mul(t.x,c),__tsover_mul(t.z,_)),M=__tsover_add(__tsover_mul(t.z,c),__tsover_mul(t.x,_)),$=sc(te(u(E,t.y)),M,__tsover_mul(s,.78),g,h,n),L=__tsover_add(__tsover_mul(t.x,p),__tsover_mul(t.y,f)),B=sc(te(u(__tsover_sub(__tsover_mul(t.y,p),__tsover_mul(t.x,f)),t.z)),L,__tsover_mul(s,.56),g,h,n);return ue(ue(x,A),ue($,B))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"radius"},{type:"i",name:"width"},{type:"i",name:"thick"},{type:"i",name:"rnd"},{type:"i",name:"core"},{type:"i",name:"c1"},{type:"i",name:"s1"},{type:"i",name:"c2"},{type:"i",name:"s2"},{type:"i",name:"c3"},{type:"i",name:"s3"}],body:[0,[[13,"hw",[1,"width","*",[5,"0.5"]]],[13,"ht",[1,"thick","*",[5,"0.5"]]],[13,"dCore",[1,[6,"std.length",["p"]],"-","core"]],[13,"p1y",[1,[1,[7,"p","y"],"*","c1"],"+",[1,[7,"p","z"],"*","s1"]]],[13,"p1z",[1,[1,[7,"p","z"],"*","c1"],"-",[1,[7,"p","y"],"*","s1"]]],[13,"d1",[6,"sdFlatBand",[[6,"std.length",[[6,"d.vec2f",[[7,"p","x"],"p1z"]]]],"p1y","radius","ht","hw","rnd"]]],[13,"p2x",[1,[1,[7,"p","x"],"*","c2"],"-",[1,[7,"p","z"],"*","s2"]]],[13,"p2z",[1,[1,[7,"p","z"],"*","c2"],"+",[1,[7,"p","x"],"*","s2"]]],[13,"d2",[6,"sdFlatBand",[[6,"std.length",[[6,"d.vec2f",["p2x",[7,"p","y"]]]]],"p2z",[1,"radius","*",[5,"0.78"]],"ht","hw","rnd"]]],[13,"p3x",[1,[1,[7,"p","x"],"*","c3"],"+",[1,[7,"p","y"],"*","s3"]]],[13,"p3y",[1,[1,[7,"p","y"],"*","c3"],"-",[1,[7,"p","x"],"*","s3"]]],[13,"d3",[6,"sdFlatBand",[[6,"std.length",[[6,"d.vec2f",["p3y",[7,"p","z"]]]]],"p3x",[1,"radius","*",[5,"0.56"]],"ht","hw","rnd"]]],[10,[6,"std.min",[[6,"std.min",["dCore","d1"]],[6,"std.min",["d2","d3"]]]]]]]},externals:{"std.length":()=>te,sdFlatBand:()=>sc,"d.vec2f":()=>u,"std.min":()=>ue}})&&e.f)({})),qc=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({cx:a,sx:a,cy:a,sy:a,cz:a,sz:a}),"RotStruct"),N_=y.fn([v,qc],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(t.x,s.cy),__tsover_mul(t.z,s.sy)),o=__tsover_sub(__tsover_mul(t.z,s.cy),__tsover_mul(t.x,s.sy)),n=__tsover_sub(__tsover_mul(t.y,s.cx),__tsover_mul(o,s.sx)),i=__tsover_add(__tsover_mul(t.y,s.sx),__tsover_mul(o,s.cx));return v(__tsover_sub(__tsover_mul(r,s.cz),__tsover_mul(n,s.sz)),__tsover_add(__tsover_mul(r,s.sz),__tsover_mul(n,s.cz)),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"},{type:"i",name:"rot"}],body:[0,[[13,"x1",[1,[1,[7,"v","x"],"*",[7,"rot","cy"]],"+",[1,[7,"v","z"],"*",[7,"rot","sy"]]]],[13,"z1",[1,[1,[7,"v","z"],"*",[7,"rot","cy"]],"-",[1,[7,"v","x"],"*",[7,"rot","sy"]]]],[13,"y2",[1,[1,[7,"v","y"],"*",[7,"rot","cx"]],"-",[1,"z1","*",[7,"rot","sx"]]]],[13,"z2",[1,[1,[7,"v","y"],"*",[7,"rot","sx"]],"+",[1,"z1","*",[7,"rot","cx"]]]],[13,"x3",[1,[1,"x1","*",[7,"rot","cz"]],"-",[1,"y2","*",[7,"rot","sz"]]]],[13,"y3",[1,[1,"x1","*",[7,"rot","sz"]],"+",[1,"y2","*",[7,"rot","cz"]]]],[10,[6,"d.vec3f",["x3","y3","z2"]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({}));function Dy(e,t="none",s="span"){let r=No()?64:96,o=No()?224:384,n=No()?140:220;return y.fn([u,qc,a],b)((i=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(i.f=((d,l,c)=>{"use gpu";let _=v(__tsover_sub(d.x,.5),__tsover_sub(.5,d.y),-1.2),p=v(0,0,1),f=N_(_,l),h=N_(p,l),g=oe(z(__tsover_mul(c,a(n)),a(r),a(o))),x=le(f,h),T=$e(w(__tsover_sub(le(f,f),__tsover_mul(x,x)),0)),S=$e(w(__tsover_sub(__tsover_mul(c,c),__tsover_mul(T,T)),0)),A=w(__tsover_sub(__tsover_mul(x,-1),S),0),E=__tsover_add(__tsover_add(__tsover_mul(x,-1),S),.01),M=A,$=A,L=a(10),B=a(0);for(let H=0;H<g;H++){let ee=e(f.add(h.mul(M)));if(L=ue(L,ee),ee<0){B=a(1);break}if(M>E)break;$=M,M=__tsover_add(M,w(ee,.002))}let D=L,G=a(0),I=a(0),X=__tsover_add(E,.4);if(B>.5){let H=$,ee=M;for(let he=0;he<10;he++){let Me=__tsover_mul(__tsover_add(H,ee),.5);e(f.add(h.mul(Me)))>0?H=Me:ee=Me}let Q=__tsover_mul(__tsover_add(H,ee),.5),de=Q;if(s==="firstLobe"){let he=ee,Me=__tsover_add(ee,.002);for(let Ce=0;Ce<g;Ce++){let ie=e(f.add(h.mul(Me)));if(ie>=0||(he=Me,Me=__tsover_add(Me,w(__tsover_mul(ie,-1),.002)),Me>E))break}let Te=he,Pe=Me;for(let Ce=0;Ce<10;Ce++){let ie=__tsover_mul(__tsover_add(Te,Pe),.5);e(f.add(h.mul(ie)))<0?Te=ie:Pe=ie}de=__tsover_mul(__tsover_add(Te,Pe),.5)}if(s==="span"){let he=f.add(h.mul(E)),Me=__tsover_add(__tsover_sub(E,A),.01),Te=a(0),Pe=a(0);for(let Ne=0;Ne<g;Ne++){let ye=e(he.sub(h.mul(Te)));if(ye<0||Te>Me)break;Pe=Te,Te=__tsover_add(Te,w(ye,.002))}let Ce=Pe,ie=Te;for(let Ne=0;Ne<10;Ne++){let ye=__tsover_mul(__tsover_add(Ce,ie),.5);e(he.sub(h.mul(ye)))>0?Ce=ye:ie=ye}de=__tsover_sub(E,__tsover_mul(__tsover_add(Ce,ie),.5))}let Ee=__tsover_mul(w(__tsover_sub(de,Q),0),.5);if(D=__tsover_mul(Ee,-1),X=Q,t==="raw"){let he=f.add(h.mul(Q));G=__tsover_add(he.x,__tsover_mul(he.z,.7)),I=__tsover_add(he.y,__tsover_mul(he.z,.5))}if(t==="triplanar"){let he=f.add(h.mul(Q)),Me=.004,Te=__tsover_sub(e(v(__tsover_add(he.x,Me),he.y,he.z)),e(v(__tsover_sub(he.x,Me),he.y,he.z))),Pe=__tsover_sub(e(v(he.x,__tsover_add(he.y,Me),he.z)),e(v(he.x,__tsover_sub(he.y,Me),he.z))),Ce=__tsover_sub(e(v(he.x,he.y,__tsover_add(he.z,Me))),e(v(he.x,he.y,__tsover_sub(he.z,Me)))),ie=W(Te),Ne=W(Pe),ye=W(Ce),Ve=u(__tsover_add(he.y,2.17),__tsover_add(he.z,5.31)),qe=u(__tsover_add(he.z,7.73),__tsover_add(he.x,1.13)),st=F(u(he.x,he.y),qe,Ne>=ye),We=F(st,F(st,Ve,ie>=ye),ie>=Ne);G=We.x,I=We.y}}return b(D,G,I,X)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"fuv"},{type:"i",name:"rot"},{type:"i",name:"rBound"}],body:[0,[[13,"ro0",[6,"d.vec3f",[[1,[7,"fuv","x"],"-",[5,"0.5"]],[1,[5,"0.5"],"-",[7,"fuv","y"]],[4,"-",[5,"1.2"]]]]],[13,"rd0",[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"1"]]]],[13,"ro",[6,"rotateVec3",["ro0","rot"]]],[13,"rd",[6,"rotateVec3",["rd0","rot"]]],[13,"steps",[6,"d.i32",[[6,"std.clamp",[[1,"rBound","*",[6,"d.f32",["STEP_SCALE"]]],[6,"d.f32",["STEP_MIN"]],[6,"d.f32",["STEP_MAX"]]]]]]],[13,"b",[6,"std.dot",["ro","rd"]]],[13,"perp",[6,"std.sqrt",[[6,"std.max",[[1,[6,"std.dot",["ro","ro"]],"-",[1,"b","*","b"]],[5,"0"]]]]]],[13,"halfSpan",[6,"std.sqrt",[[6,"std.max",[[1,[1,"rBound","*","rBound"],"-",[1,"perp","*","perp"]],[5,"0"]]]]]],[13,"tStart",[6,"std.max",[[1,[1,"b","*",[4,"-",[5,"1"]]],"-","halfSpan"],[5,"0"]]]],[13,"tEnd",[1,[1,[1,"b","*",[4,"-",[5,"1"]]],"+","halfSpan"],"+",[5,"0.01"]]],[12,"t","tStart"],[12,"tPrev","tStart"],[12,"minD",[6,"d.f32",[[5,"10"]]]],[12,"hit",[6,"d.f32",[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","steps"],[102,"++","i"],[0,[[13,"p",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["t"]]]]],[13,"dd",[6,"sdfFn",["p"]]],[2,"minD","=",[6,"std.min",["minD","dd"]]],[11,[1,"dd","<",[5,"0"]],[0,[[2,"hit","=",[6,"d.f32",[[5,"1"]]]],[17]]]],[11,[1,"t",">","tEnd"],[0,[[17]]]],[2,"tPrev","=","t"],[2,"t","=",[1,"t","+",[6,"std.max",["dd",[5,"0.002"]]]]]]]],[12,"fieldVal","minD"],[12,"patternU",[6,"d.f32",[[5,"0"]]]],[12,"patternV",[6,"d.f32",[[5,"0"]]]],[12,"viewDepth",[1,"tEnd","+",[5,"0.4"]]],[11,[1,"hit",">",[5,"0.5"]],[0,[[12,"eLo","tPrev"],[12,"eHi","t"],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"10"]],[102,"++","i"],[0,[[13,"mid",[1,[1,"eLo","+","eHi"],"*",[5,"0.5"]]],[13,"dm",[6,"sdfFn",[[6,[7,"ro","add"],[[6,[7,"rd","mul"],["mid"]]]]]]],[11,[1,"dm",">",[5,"0"]],[0,[[2,"eLo","=","mid"]]],[0,[[2,"eHi","=","mid"]]]]]]],[13,"tEnter",[1,[1,"eLo","+","eHi"],"*",[5,"0.5"]]],[12,"tExit","tEnter"],[11,[1,"chordMode","===",[103,"firstLobe"]],[0,[[12,"sInPrev","eHi"],[12,"sIn",[1,"eHi","+",[5,"0.002"]]],[14,[12,"i",[5,"0"]],[1,"i","<","steps"],[102,"++","i"],[0,[[13,"dd",[6,"sdfFn",[[6,[7,"ro","add"],[[6,[7,"rd","mul"],["sIn"]]]]]]],[11,[1,"dd",">=",[5,"0"]],[0,[[17]]]],[2,"sInPrev","=","sIn"],[2,"sIn","=",[1,"sIn","+",[6,"std.max",[[1,"dd","*",[4,"-",[5,"1"]]],[5,"0.002"]]]]],[11,[1,"sIn",">","tEnd"],[0,[[17]]]]]]],[12,"fLo","sInPrev"],[12,"fHi","sIn"],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"10"]],[102,"++","i"],[0,[[13,"mid",[1,[1,"fLo","+","fHi"],"*",[5,"0.5"]]],[13,"dm",[6,"sdfFn",[[6,[7,"ro","add"],[[6,[7,"rd","mul"],["mid"]]]]]]],[11,[1,"dm","<",[5,"0"]],[0,[[2,"fLo","=","mid"]]],[0,[[2,"fHi","=","mid"]]]]]]],[2,"tExit","=",[1,[1,"fLo","+","fHi"],"*",[5,"0.5"]]]]]],[11,[1,"chordMode","===",[103,"span"]],[0,[[13,"roB",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["tEnd"]]]]],[13,"span",[1,[1,"tEnd","-","tStart"],"+",[5,"0.01"]]],[12,"s",[6,"d.f32",[[5,"0"]]]],[12,"sPrev",[6,"d.f32",[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","steps"],[102,"++","i"],[0,[[13,"p",[6,[7,"roB","sub"],[[6,[7,"rd","mul"],["s"]]]]],[13,"dd",[6,"sdfFn",["p"]]],[11,[1,"dd","<",[5,"0"]],[0,[[17]]]],[11,[1,"s",">","span"],[0,[[17]]]],[2,"sPrev","=","s"],[2,"s","=",[1,"s","+",[6,"std.max",["dd",[5,"0.002"]]]]]]]],[12,"xLo","sPrev"],[12,"xHi","s"],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"10"]],[102,"++","i"],[0,[[13,"mid",[1,[1,"xLo","+","xHi"],"*",[5,"0.5"]]],[13,"dm",[6,"sdfFn",[[6,[7,"roB","sub"],[[6,[7,"rd","mul"],["mid"]]]]]]],[11,[1,"dm",">",[5,"0"]],[0,[[2,"xLo","=","mid"]]],[0,[[2,"xHi","=","mid"]]]]]]],[2,"tExit","=",[1,"tEnd","-",[1,[1,"xLo","+","xHi"],"*",[5,"0.5"]]]]]]],[13,"halfChord",[1,[6,"std.max",[[1,"tExit","-","tEnter"],[5,"0"]]],"*",[5,"0.5"]]],[2,"fieldVal","=",[1,"halfChord","*",[4,"-",[5,"1"]]]],[2,"viewDepth","=","tEnter"],[11,[1,"patternMode","===",[103,"raw"]],[0,[[13,"hp",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["tEnter"]]]]],[2,"patternU","=",[1,[7,"hp","x"],"+",[1,[7,"hp","z"],"*",[5,"0.7"]]]],[2,"patternV","=",[1,[7,"hp","y"],"+",[1,[7,"hp","z"],"*",[5,"0.5"]]]]]]],[11,[1,"patternMode","===",[103,"triplanar"]],[0,[[13,"hp",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["tEnter"]]]]],[13,"e2",[5,"0.004"]],[13,"nlx",[1,[6,"sdfFn",[[6,"d.vec3f",[[1,[7,"hp","x"],"+","e2"],[7,"hp","y"],[7,"hp","z"]]]]],"-",[6,"sdfFn",[[6,"d.vec3f",[[1,[7,"hp","x"],"-","e2"],[7,"hp","y"],[7,"hp","z"]]]]]]],[13,"nly",[1,[6,"sdfFn",[[6,"d.vec3f",[[7,"hp","x"],[1,[7,"hp","y"],"+","e2"],[7,"hp","z"]]]]],"-",[6,"sdfFn",[[6,"d.vec3f",[[7,"hp","x"],[1,[7,"hp","y"],"-","e2"],[7,"hp","z"]]]]]]],[13,"nlz",[1,[6,"sdfFn",[[6,"d.vec3f",[[7,"hp","x"],[7,"hp","y"],[1,[7,"hp","z"],"+","e2"]]]]],"-",[6,"sdfFn",[[6,"d.vec3f",[[7,"hp","x"],[7,"hp","y"],[1,[7,"hp","z"],"-","e2"]]]]]]],[13,"anx",[6,"std.abs",["nlx"]]],[13,"anyv",[6,"std.abs",["nly"]]],[13,"anz",[6,"std.abs",["nlz"]]],[13,"branch1",[6,"d.vec2f",[[1,[7,"hp","y"],"+",[5,"2.17"]],[1,[7,"hp","z"],"+",[5,"5.31"]]]]],[13,"branch2",[6,"d.vec2f",[[1,[7,"hp","z"],"+",[5,"7.73"]],[1,[7,"hp","x"],"+",[5,"1.13"]]]]],[13,"branch3",[6,"d.vec2f",[[7,"hp","x"],[7,"hp","y"]]]],[13,"branch23",[6,"std.select",["branch3","branch2",[1,"anyv",">=","anz"]]]],[13,"innerPick",[6,"std.select",["branch23","branch1",[1,"anx",">=","anz"]]]],[13,"pattern",[6,"std.select",["branch23","innerPick",[1,"anx",">=","anyv"]]]],[2,"patternU","=",[7,"pattern","x"]],[2,"patternV","=",[7,"pattern","y"]]]]]]]],[10,[6,"d.vec4f",["fieldVal","patternU","patternV","viewDepth"]]]]]},externals:{"d.vec3f":()=>v,rotateVec3:()=>N_,"d.i32":()=>oe,"std.clamp":()=>z,"d.f32":()=>a,STEP_SCALE:()=>n,STEP_MIN:()=>r,STEP_MAX:()=>o,"std.dot":()=>le,"std.sqrt":()=>$e,"std.max":()=>w,sdfFn:()=>e,"std.min":()=>ue,chordMode:()=>s,patternMode:()=>t,"std.abs":()=>W,"d.vec2f":()=>u,"std.select":()=>F,"d.vec4f":()=>b}})&&i.f)({})).$name("raymarchedField")}function IB(e,t="none",s="span"){return Dy(e,t,s)}var zm="rgba32float",tS=1536;function Xc(){return No()?768:tS}var YB=[256,320,384,512,640,768,896,1024,1280,1536];function sS(e,t,s,r,o,n){if(!(r>0)||!(s>0))return o;let i=No()?.5:1,d=Math.max(e,t)*s*r*i,l=o;for(let c of YB){if(c>o)break;if(c>=d){l=c;break}}return n>0&&l<n&&d>n*.78&&(l=Math.min(n,o)),l}var va=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({rot:J6(16,ew(32,qc)),rBound:a,spanX:a,spanY:a,originX:a,originY:a,activeRes:Y,pA:a,pB:a,pC:a,pD:a,mb0:v,mb1:v,mb2:v,mb3:v,mb4:v,mb5:v,mb6:v,mb7:v}),"MarchParams");function Ly(){return{layout:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({field:{storageTexture:an(zm,"write-only")},params:{uniform:va}}),"layout"),MarchParams:va}}function rS(e,t){return y.fn([Y,Y])((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,o)=>{"use gpu";let n=e.$.params,i=a(n.activeRes),d=t(u(__tsover_add(n.originX,__tsover_mul(__tsover_div(__tsover_add(a(r),.5),i),n.spanX)),__tsover_add(n.originY,__tsover_mul(__tsover_div(__tsover_add(a(o),.5),i),n.spanY))),n.rot,n.rBound);Co(e.$.field,He(r,o),d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"activeResF",[6,"d.f32",[[7,"p","activeRes"]]]],[13,"uv",[6,"d.vec2f",[[1,[7,"p","originX"],"+",[1,[1,[1,[6,"d.f32",["cx"]],"+",[5,"0.5"]],"/","activeResF"],"*",[7,"p","spanX"]]],[1,[7,"p","originY"],"+",[1,[1,[1,[6,"d.f32",["cy"]],"+",[5,"0.5"]],"/","activeResF"],"*",[7,"p","spanY"]]]]]],[13,"field",[6,"marchFn",["uv",[7,"p","rot"],[7,"p","rBound"]]]],[6,"std.textureStore",[[7,[7,"layout","$"],"field"],[6,"d.vec2u",["cx","cy"]],"field"]]]]},externals:{layout:()=>e,"d.f32":()=>a,"d.vec2f":()=>u,marchFn:()=>t,"std.textureStore":()=>Co,"d.vec2u":()=>He}})&&s.f)({})).$name("volumetricFieldMarch")}var Qv=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({originX:a,originY:a,spanX:a,spanY:a,activeResF:a,rBound:a}),"SampleParams");function WB(){let e=(globalThis.__TYPEGPU_AUTONAME__??(s=>s))(y.bindGroupLayout({field:{texture:Hs(a),sampleType:"unfilterable-float"},params:{uniform:Qv}}),"sampleLayout"),t=y.fn([a,a],b)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,o)=>{"use gpu";let n=__tsover_sub(e.$.params.activeResF,1),i=Y(z(r,a(0),n)),d=Y(z(o,a(0),n));return at(e.$.field,He(i,d),0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"xi"},{type:"i",name:"yi"}],body:[0,[[13,"maxT",[1,[7,[7,[7,"sampleLayout","$"],"params"],"activeResF"],"-",[5,"1"]]],[13,"tx",[6,"d.u32",[[6,"std.clamp",["xi",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"ty",[6,"d.u32",[[6,"std.clamp",["yi",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[10,[6,"std.textureLoad",[[7,[7,"sampleLayout","$"],"field"],[6,"d.vec2u",["tx","ty"]],[5,"0"]]]]]]},externals:{sampleLayout:()=>e,"d.u32":()=>Y,"std.clamp":()=>z,"d.f32":()=>a,"std.textureLoad":()=>at,"d.vec2u":()=>He}})&&s.f)({})).$name("fieldFetchTexel");return{sampleLayout:e,fieldSample:y.fn([u],b)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=(r=>{"use gpu";let o=e.$.params,n=z(r.x,o.originX,__tsover_add(o.originX,o.spanX)),i=z(r.y,o.originY,__tsover_add(o.originY,o.spanY)),d=te(u(__tsover_sub(r.x,n),__tsover_sub(r.y,i))),l=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(n,o.originX),o.spanX),o.activeResF),.5),c=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(i,o.originY),o.spanY),o.activeResF),.5),_=K(l),p=K(c),f=__tsover_sub(l,_),h=__tsover_sub(c,p),g=__tsover_mul(f,f),x=__tsover_mul(g,f),T=__tsover_sub(__tsover_add(__tsover_mul(x,-.5),g),__tsover_mul(f,.5)),S=__tsover_add(__tsover_sub(__tsover_mul(x,1.5),__tsover_mul(g,2.5)),1),A=__tsover_add(__tsover_add(__tsover_mul(x,-1.5),__tsover_mul(g,2)),__tsover_mul(f,.5)),E=__tsover_sub(__tsover_mul(x,.5),__tsover_mul(g,.5)),M=__tsover_mul(h,h),$=__tsover_mul(M,h),L=__tsover_sub(__tsover_add(__tsover_mul($,-.5),M),__tsover_mul(h,.5)),B=__tsover_add(__tsover_sub(__tsover_mul($,1.5),__tsover_mul(M,2.5)),1),D=__tsover_add(__tsover_add(__tsover_mul($,-1.5),__tsover_mul(M,2)),__tsover_mul(h,.5)),G=__tsover_sub(__tsover_mul($,.5),__tsover_mul(M,.5)),I=t(__tsover_sub(_,1),__tsover_sub(p,1)),X=t(_,__tsover_sub(p,1)),H=t(__tsover_add(_,1),__tsover_sub(p,1)),ee=t(__tsover_add(_,2),__tsover_sub(p,1)),Q=t(__tsover_sub(_,1),p),de=t(_,p),Ee=t(__tsover_add(_,1),p),he=t(__tsover_add(_,2),p),Me=t(__tsover_sub(_,1),__tsover_add(p,1)),Te=t(_,__tsover_add(p,1)),Pe=t(__tsover_add(_,1),__tsover_add(p,1)),Ce=t(__tsover_add(_,2),__tsover_add(p,1)),ie=t(__tsover_sub(_,1),__tsover_add(p,2)),Ne=t(_,__tsover_add(p,2)),ye=t(__tsover_add(_,1),__tsover_add(p,2)),Ve=t(__tsover_add(_,2),__tsover_add(p,2)),qe=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(I.r,T),L),__tsover_mul(__tsover_mul(X.r,S),L)),__tsover_mul(__tsover_mul(H.r,A),L)),__tsover_mul(__tsover_mul(ee.r,E),L)),__tsover_mul(__tsover_mul(Q.r,T),B)),__tsover_mul(__tsover_mul(de.r,S),B)),__tsover_mul(__tsover_mul(Ee.r,A),B)),__tsover_mul(__tsover_mul(he.r,E),B)),__tsover_mul(__tsover_mul(Me.r,T),D)),__tsover_mul(__tsover_mul(Te.r,S),D)),__tsover_mul(__tsover_mul(Pe.r,A),D)),__tsover_mul(__tsover_mul(Ce.r,E),D)),__tsover_mul(__tsover_mul(ie.r,T),G)),__tsover_mul(__tsover_mul(Ne.r,S),G)),__tsover_mul(__tsover_mul(ye.r,A),G)),__tsover_mul(__tsover_mul(Ve.r,E),G)),st=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(I.a,T),L),__tsover_mul(__tsover_mul(X.a,S),L)),__tsover_mul(__tsover_mul(H.a,A),L)),__tsover_mul(__tsover_mul(ee.a,E),L)),__tsover_mul(__tsover_mul(Q.a,T),B)),__tsover_mul(__tsover_mul(de.a,S),B)),__tsover_mul(__tsover_mul(Ee.a,A),B)),__tsover_mul(__tsover_mul(he.a,E),B)),__tsover_mul(__tsover_mul(Me.a,T),D)),__tsover_mul(__tsover_mul(Te.a,S),D)),__tsover_mul(__tsover_mul(Pe.a,A),D)),__tsover_mul(__tsover_mul(Ce.a,E),D)),__tsover_mul(__tsover_mul(ie.a,T),G)),__tsover_mul(__tsover_mul(Ne.a,S),G)),__tsover_mul(__tsover_mul(ye.a,A),G)),__tsover_mul(__tsover_mul(Ve.a,E),G)),We=Z(Z(de,Ee,f),Z(Te,Pe,f),h),Be=ue(ue(de.r,Ee.r),ue(Te.r,Pe.r)),rt=w(w(de.r,Ee.r),w(Te.r,Pe.r)),tt=z(st,ue(ue(de.a,Ee.a),ue(Te.a,Pe.a)),w(w(de.a,Ee.a),w(Te.a,Pe.a))),Ke=__tsover_add(z(qe,Be,rt),d);return b(Z(Ke,w(__tsover_sub(te(u(__tsover_sub(r.x,.5),__tsover_sub(r.y,.5))),o.rBound),Ke),ce(a(0),.25,d)),We.g,We.b,tt)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"p",[7,[7,"sampleLayout","$"],"params"]],[13,"uxc",[6,"std.clamp",[[7,"uv","x"],[7,"p","originX"],[1,[7,"p","originX"],"+",[7,"p","spanX"]]]]],[13,"uyc",[6,"std.clamp",[[7,"uv","y"],[7,"p","originY"],[1,[7,"p","originY"],"+",[7,"p","spanY"]]]]],[13,"outsideDist",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","uxc"],[1,[7,"uv","y"],"-","uyc"]]]]]],[13,"px",[1,[1,[1,[1,"uxc","-",[7,"p","originX"]],"/",[7,"p","spanX"]],"*",[7,"p","activeResF"]],"-",[5,"0.5"]]],[13,"py",[1,[1,[1,[1,"uyc","-",[7,"p","originY"]],"/",[7,"p","spanY"]],"*",[7,"p","activeResF"]],"-",[5,"0.5"]]],[13,"x0",[6,"std.floor",["px"]]],[13,"y0",[6,"std.floor",["py"]]],[13,"fx",[1,"px","-","x0"]],[13,"fy",[1,"py","-","y0"]],[13,"tx2",[1,"fx","*","fx"]],[13,"tx3",[1,"tx2","*","fx"]],[13,"wx0",[1,[1,[1,"tx3","*",[4,"-",[5,"0.5"]]],"+","tx2"],"-",[1,"fx","*",[5,"0.5"]]]],[13,"wx1",[1,[1,[1,"tx3","*",[5,"1.5"]],"-",[1,"tx2","*",[5,"2.5"]]],"+",[5,"1"]]],[13,"wx2",[1,[1,[1,"tx3","*",[4,"-",[5,"1.5"]]],"+",[1,"tx2","*",[5,"2"]]],"+",[1,"fx","*",[5,"0.5"]]]],[13,"wx3",[1,[1,"tx3","*",[5,"0.5"]],"-",[1,"tx2","*",[5,"0.5"]]]],[13,"ty2",[1,"fy","*","fy"]],[13,"ty3",[1,"ty2","*","fy"]],[13,"wy0",[1,[1,[1,"ty3","*",[4,"-",[5,"0.5"]]],"+","ty2"],"-",[1,"fy","*",[5,"0.5"]]]],[13,"wy1",[1,[1,[1,"ty3","*",[5,"1.5"]],"-",[1,"ty2","*",[5,"2.5"]]],"+",[5,"1"]]],[13,"wy2",[1,[1,[1,"ty3","*",[4,"-",[5,"1.5"]]],"+",[1,"ty2","*",[5,"2"]]],"+",[1,"fy","*",[5,"0.5"]]]],[13,"wy3",[1,[1,"ty3","*",[5,"0.5"]],"-",[1,"ty2","*",[5,"0.5"]]]],[13,"k00",[6,"fetchTexel",[[1,"x0","-",[5,"1"]],[1,"y0","-",[5,"1"]]]]],[13,"k01",[6,"fetchTexel",["x0",[1,"y0","-",[5,"1"]]]]],[13,"k02",[6,"fetchTexel",[[1,"x0","+",[5,"1"]],[1,"y0","-",[5,"1"]]]]],[13,"k03",[6,"fetchTexel",[[1,"x0","+",[5,"2"]],[1,"y0","-",[5,"1"]]]]],[13,"k10",[6,"fetchTexel",[[1,"x0","-",[5,"1"]],"y0"]]],[13,"k11",[6,"fetchTexel",["x0","y0"]]],[13,"k12",[6,"fetchTexel",[[1,"x0","+",[5,"1"]],"y0"]]],[13,"k13",[6,"fetchTexel",[[1,"x0","+",[5,"2"]],"y0"]]],[13,"k20",[6,"fetchTexel",[[1,"x0","-",[5,"1"]],[1,"y0","+",[5,"1"]]]]],[13,"k21",[6,"fetchTexel",["x0",[1,"y0","+",[5,"1"]]]]],[13,"k22",[6,"fetchTexel",[[1,"x0","+",[5,"1"]],[1,"y0","+",[5,"1"]]]]],[13,"k23",[6,"fetchTexel",[[1,"x0","+",[5,"2"]],[1,"y0","+",[5,"1"]]]]],[13,"k30",[6,"fetchTexel",[[1,"x0","-",[5,"1"]],[1,"y0","+",[5,"2"]]]]],[13,"k31",[6,"fetchTexel",["x0",[1,"y0","+",[5,"2"]]]]],[13,"k32",[6,"fetchTexel",[[1,"x0","+",[5,"1"]],[1,"y0","+",[5,"2"]]]]],[13,"k33",[6,"fetchTexel",[[1,"x0","+",[5,"2"]],[1,"y0","+",[5,"2"]]]]],[13,"rAcc",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","r"],"*","wx0"],"*","wy0"],"+",[1,[1,[7,"k01","r"],"*","wx1"],"*","wy0"]],"+",[1,[1,[7,"k02","r"],"*","wx2"],"*","wy0"]],"+",[1,[1,[7,"k03","r"],"*","wx3"],"*","wy0"]],"+",[1,[1,[7,"k10","r"],"*","wx0"],"*","wy1"]],"+",[1,[1,[7,"k11","r"],"*","wx1"],"*","wy1"]],"+",[1,[1,[7,"k12","r"],"*","wx2"],"*","wy1"]],"+",[1,[1,[7,"k13","r"],"*","wx3"],"*","wy1"]],"+",[1,[1,[7,"k20","r"],"*","wx0"],"*","wy2"]],"+",[1,[1,[7,"k21","r"],"*","wx1"],"*","wy2"]],"+",[1,[1,[7,"k22","r"],"*","wx2"],"*","wy2"]],"+",[1,[1,[7,"k23","r"],"*","wx3"],"*","wy2"]],"+",[1,[1,[7,"k30","r"],"*","wx0"],"*","wy3"]],"+",[1,[1,[7,"k31","r"],"*","wx1"],"*","wy3"]],"+",[1,[1,[7,"k32","r"],"*","wx2"],"*","wy3"]],"+",[1,[1,[7,"k33","r"],"*","wx3"],"*","wy3"]]],[13,"aAcc",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","a"],"*","wx0"],"*","wy0"],"+",[1,[1,[7,"k01","a"],"*","wx1"],"*","wy0"]],"+",[1,[1,[7,"k02","a"],"*","wx2"],"*","wy0"]],"+",[1,[1,[7,"k03","a"],"*","wx3"],"*","wy0"]],"+",[1,[1,[7,"k10","a"],"*","wx0"],"*","wy1"]],"+",[1,[1,[7,"k11","a"],"*","wx1"],"*","wy1"]],"+",[1,[1,[7,"k12","a"],"*","wx2"],"*","wy1"]],"+",[1,[1,[7,"k13","a"],"*","wx3"],"*","wy1"]],"+",[1,[1,[7,"k20","a"],"*","wx0"],"*","wy2"]],"+",[1,[1,[7,"k21","a"],"*","wx1"],"*","wy2"]],"+",[1,[1,[7,"k22","a"],"*","wx2"],"*","wy2"]],"+",[1,[1,[7,"k23","a"],"*","wx3"],"*","wy2"]],"+",[1,[1,[7,"k30","a"],"*","wx0"],"*","wy3"]],"+",[1,[1,[7,"k31","a"],"*","wx1"],"*","wy3"]],"+",[1,[1,[7,"k32","a"],"*","wx2"],"*","wy3"]],"+",[1,[1,[7,"k33","a"],"*","wx3"],"*","wy3"]]],[13,"bl",[6,"std.mix",[[6,"std.mix",["k11","k12","fx"]],[6,"std.mix",["k21","k22","fx"]],"fy"]]],[13,"rMin",[6,"std.min",[[6,"std.min",[[7,"k11","r"],[7,"k12","r"]]],[6,"std.min",[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"rMax",[6,"std.max",[[6,"std.max",[[7,"k11","r"],[7,"k12","r"]]],[6,"std.max",[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"aMin",[6,"std.min",[[6,"std.min",[[7,"k11","a"],[7,"k12","a"]]],[6,"std.min",[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aMax",[6,"std.max",[[6,"std.max",[[7,"k11","a"],[7,"k12","a"]]],[6,"std.max",[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aOut",[6,"std.clamp",["aAcc","aMin","aMax"]]],[13,"rNear",[1,[6,"std.clamp",["rAcc","rMin","rMax"]],"+","outsideDist"]],[13,"rCircle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-",[7,"p","rBound"]]],[13,"rOut",[6,"std.mix",["rNear",[6,"std.max",["rCircle","rNear"]],[6,"std.smoothstep",[[6,"d.f32",[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,"d.vec4f",["rOut",[7,"bl","g"],[7,"bl","b"],"aOut"]]]]]},externals:{sampleLayout:()=>e,"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.floor":()=>K,fetchTexel:()=>t,"std.mix":()=>Z,"std.min":()=>ue,"std.max":()=>w,"std.smoothstep":()=>ce,"d.f32":()=>a,"d.vec4f":()=>b}})&&s.f)({})).$name("fieldSample"),fieldSampleFast:y.fn([u],b)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=(r=>{"use gpu";let o=e.$.params,n=z(r.x,o.originX,__tsover_add(o.originX,o.spanX)),i=z(r.y,o.originY,__tsover_add(o.originY,o.spanY)),d=te(u(__tsover_sub(r.x,n),__tsover_sub(r.y,i))),l=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(n,o.originX),o.spanX),o.activeResF),.5),c=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(i,o.originY),o.spanY),o.activeResF),.5),_=K(l),p=K(c),f=__tsover_sub(l,_),h=__tsover_sub(c,p),g=t(_,p),x=t(__tsover_add(_,1),p),T=t(_,__tsover_add(p,1)),S=t(__tsover_add(_,1),__tsover_add(p,1)),A=Z(Z(g,x,f),Z(T,S,f),h),E=__tsover_add(A.r,d);return b(Z(E,w(__tsover_sub(te(u(__tsover_sub(r.x,.5),__tsover_sub(r.y,.5))),o.rBound),E),ce(a(0),.25,d)),A.g,A.b,A.a)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"p",[7,[7,"sampleLayout","$"],"params"]],[13,"uxc",[6,"std.clamp",[[7,"uv","x"],[7,"p","originX"],[1,[7,"p","originX"],"+",[7,"p","spanX"]]]]],[13,"uyc",[6,"std.clamp",[[7,"uv","y"],[7,"p","originY"],[1,[7,"p","originY"],"+",[7,"p","spanY"]]]]],[13,"outsideDist",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","uxc"],[1,[7,"uv","y"],"-","uyc"]]]]]],[13,"px",[1,[1,[1,[1,"uxc","-",[7,"p","originX"]],"/",[7,"p","spanX"]],"*",[7,"p","activeResF"]],"-",[5,"0.5"]]],[13,"py",[1,[1,[1,[1,"uyc","-",[7,"p","originY"]],"/",[7,"p","spanY"]],"*",[7,"p","activeResF"]],"-",[5,"0.5"]]],[13,"x0",[6,"std.floor",["px"]]],[13,"y0",[6,"std.floor",["py"]]],[13,"fx",[1,"px","-","x0"]],[13,"fy",[1,"py","-","y0"]],[13,"t00",[6,"fetchTexel",["x0","y0"]]],[13,"t10",[6,"fetchTexel",[[1,"x0","+",[5,"1"]],"y0"]]],[13,"t01",[6,"fetchTexel",["x0",[1,"y0","+",[5,"1"]]]]],[13,"t11",[6,"fetchTexel",[[1,"x0","+",[5,"1"]],[1,"y0","+",[5,"1"]]]]],[13,"bl",[6,"std.mix",[[6,"std.mix",["t00","t10","fx"]],[6,"std.mix",["t01","t11","fx"]],"fy"]]],[13,"rNear",[1,[7,"bl","r"],"+","outsideDist"]],[13,"rCircle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-",[7,"p","rBound"]]],[13,"rOut",[6,"std.mix",["rNear",[6,"std.max",["rCircle","rNear"]],[6,"std.smoothstep",[[6,"d.f32",[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,"d.vec4f",["rOut",[7,"bl","g"],[7,"bl","b"],[7,"bl","a"]]]]]]},externals:{sampleLayout:()=>e,"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.floor":()=>K,fetchTexel:()=>t,"std.mix":()=>Z,"std.max":()=>w,"std.smoothstep":()=>ce,"d.f32":()=>a,"d.vec4f":()=>b}})&&s.f)({})).$name("fieldSampleFast"),SampleParams:Qv}}function oS(e,t,s,r,o={}){let n=Xc(),i=(globalThis.__TYPEGPU_AUTONAME__??(p=>p))(e.createTexture({size:[n,n],format:zm}).$usage("storage","sampled"),"fieldTexture"),d=o.paramsUniform??e.createUniform(va);r(()=>i.destroy());let l=e.createBindGroup(t,{field:i,params:d.buffer,...o.sdfSourceTexture?{sdfSource:o.sdfSourceTexture}:{}}),c=wv(e,(p=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(p.f=((f,h)=>{"use gpu";s(f,h)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernel",["cx","cy"]]]]},externals:{kernel:()=>s}})&&p.f)({}),{bindGroup:l});for(let p of o.extraBindGroups??[])c=c.with(p);let _=n;return{computeStep:c,fieldTexture:i,maxRes:n,get activeRes(){return _},writeParams(p){d.write(p)},dispatch(p){_=p,c.dispatchThreads(p,p)}}}function nS(){return{layout:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({field:{storageTexture:an(zm,"write-only")},params:{uniform:va},sdfSource:{texture:Hs(a)}}),"layout"),MarchParams:va}}function Fy(){return{fieldSampleArg:y.fn([u,Hs(a),a,a,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=z(t.x,r,__tsover_add(r,n)),_=z(t.y,o,__tsover_add(o,i)),p=te(u(__tsover_sub(t.x,c),__tsover_sub(t.y,_))),f=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(c,r),n),d),.5),h=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(_,o),i),d),.5),g=K(f),x=K(h),T=__tsover_sub(f,g),S=__tsover_sub(h,x),A=__tsover_mul(T,T),E=__tsover_mul(A,T),M=__tsover_sub(__tsover_add(__tsover_mul(E,-.5),A),__tsover_mul(T,.5)),$=__tsover_add(__tsover_sub(__tsover_mul(E,1.5),__tsover_mul(A,2.5)),1),L=__tsover_add(__tsover_add(__tsover_mul(E,-1.5),__tsover_mul(A,2)),__tsover_mul(T,.5)),B=__tsover_sub(__tsover_mul(E,.5),__tsover_mul(A,.5)),D=__tsover_mul(S,S),G=__tsover_mul(D,S),I=__tsover_sub(__tsover_add(__tsover_mul(G,-.5),D),__tsover_mul(S,.5)),X=__tsover_add(__tsover_sub(__tsover_mul(G,1.5),__tsover_mul(D,2.5)),1),H=__tsover_add(__tsover_add(__tsover_mul(G,-1.5),__tsover_mul(D,2)),__tsover_mul(S,.5)),ee=__tsover_sub(__tsover_mul(G,.5),__tsover_mul(D,.5)),Q=__tsover_sub(d,1),de=Y(z(__tsover_sub(g,1),a(0),Q)),Ee=Y(z(g,a(0),Q)),he=Y(z(__tsover_add(g,1),a(0),Q)),Me=Y(z(__tsover_add(g,2),a(0),Q)),Te=Y(z(__tsover_sub(x,1),a(0),Q)),Pe=Y(z(x,a(0),Q)),Ce=Y(z(__tsover_add(x,1),a(0),Q)),ie=Y(z(__tsover_add(x,2),a(0),Q)),Ne=at(s,He(de,Te),0),ye=at(s,He(Ee,Te),0),Ve=at(s,He(he,Te),0),qe=at(s,He(Me,Te),0),st=at(s,He(de,Pe),0),We=at(s,He(Ee,Pe),0),Be=at(s,He(he,Pe),0),rt=at(s,He(Me,Pe),0),tt=at(s,He(de,Ce),0),Ke=at(s,He(Ee,Ce),0),Oe=at(s,He(he,Ce),0),gt=at(s,He(Me,Ce),0),pt=at(s,He(de,ie),0),Ut=at(s,He(Ee,ie),0),Lt=at(s,He(he,ie),0),Wt=at(s,He(Me,ie),0),vs=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(Ne.r,M),I),__tsover_mul(__tsover_mul(ye.r,$),I)),__tsover_mul(__tsover_mul(Ve.r,L),I)),__tsover_mul(__tsover_mul(qe.r,B),I)),__tsover_mul(__tsover_mul(st.r,M),X)),__tsover_mul(__tsover_mul(We.r,$),X)),__tsover_mul(__tsover_mul(Be.r,L),X)),__tsover_mul(__tsover_mul(rt.r,B),X)),__tsover_mul(__tsover_mul(tt.r,M),H)),__tsover_mul(__tsover_mul(Ke.r,$),H)),__tsover_mul(__tsover_mul(Oe.r,L),H)),__tsover_mul(__tsover_mul(gt.r,B),H)),__tsover_mul(__tsover_mul(pt.r,M),ee)),__tsover_mul(__tsover_mul(Ut.r,$),ee)),__tsover_mul(__tsover_mul(Lt.r,L),ee)),__tsover_mul(__tsover_mul(Wt.r,B),ee)),jt=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(Ne.a,M),I),__tsover_mul(__tsover_mul(ye.a,$),I)),__tsover_mul(__tsover_mul(Ve.a,L),I)),__tsover_mul(__tsover_mul(qe.a,B),I)),__tsover_mul(__tsover_mul(st.a,M),X)),__tsover_mul(__tsover_mul(We.a,$),X)),__tsover_mul(__tsover_mul(Be.a,L),X)),__tsover_mul(__tsover_mul(rt.a,B),X)),__tsover_mul(__tsover_mul(tt.a,M),H)),__tsover_mul(__tsover_mul(Ke.a,$),H)),__tsover_mul(__tsover_mul(Oe.a,L),H)),__tsover_mul(__tsover_mul(gt.a,B),H)),__tsover_mul(__tsover_mul(pt.a,M),ee)),__tsover_mul(__tsover_mul(Ut.a,$),ee)),__tsover_mul(__tsover_mul(Lt.a,L),ee)),__tsover_mul(__tsover_mul(Wt.a,B),ee)),Qt=Z(Z(We,Be,T),Z(Ke,Oe,T),S),$s=ue(ue(We.r,Be.r),ue(Ke.r,Oe.r)),Is=w(w(We.r,Be.r),w(Ke.r,Oe.r)),Ys=z(jt,ue(ue(We.a,Be.a),ue(Ke.a,Oe.a)),w(w(We.a,Be.a),w(Ke.a,Oe.a))),hs=__tsover_add(z(vs,$s,Is),p);return b(Z(hs,w(__tsover_sub(te(u(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),l),hs),ce(a(0),.25,p)),Qt.g,Qt.b,Ys)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"field"},{type:"i",name:"originX"},{type:"i",name:"originY"},{type:"i",name:"spanX"},{type:"i",name:"spanY"},{type:"i",name:"activeResF"},{type:"i",name:"rBound"}],body:[0,[[13,"uxc",[6,"std.clamp",[[7,"uv","x"],"originX",[1,"originX","+","spanX"]]]],[13,"uyc",[6,"std.clamp",[[7,"uv","y"],"originY",[1,"originY","+","spanY"]]]],[13,"outsideDist",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","uxc"],[1,[7,"uv","y"],"-","uyc"]]]]]],[13,"px",[1,[1,[1,[1,"uxc","-","originX"],"/","spanX"],"*","activeResF"],"-",[5,"0.5"]]],[13,"py",[1,[1,[1,[1,"uyc","-","originY"],"/","spanY"],"*","activeResF"],"-",[5,"0.5"]]],[13,"x0",[6,"std.floor",["px"]]],[13,"y0",[6,"std.floor",["py"]]],[13,"fx",[1,"px","-","x0"]],[13,"fy",[1,"py","-","y0"]],[13,"tx2",[1,"fx","*","fx"]],[13,"tx3",[1,"tx2","*","fx"]],[13,"wx0",[1,[1,[1,"tx3","*",[4,"-",[5,"0.5"]]],"+","tx2"],"-",[1,"fx","*",[5,"0.5"]]]],[13,"wx1",[1,[1,[1,"tx3","*",[5,"1.5"]],"-",[1,"tx2","*",[5,"2.5"]]],"+",[5,"1"]]],[13,"wx2",[1,[1,[1,"tx3","*",[4,"-",[5,"1.5"]]],"+",[1,"tx2","*",[5,"2"]]],"+",[1,"fx","*",[5,"0.5"]]]],[13,"wx3",[1,[1,"tx3","*",[5,"0.5"]],"-",[1,"tx2","*",[5,"0.5"]]]],[13,"ty2",[1,"fy","*","fy"]],[13,"ty3",[1,"ty2","*","fy"]],[13,"wy0",[1,[1,[1,"ty3","*",[4,"-",[5,"0.5"]]],"+","ty2"],"-",[1,"fy","*",[5,"0.5"]]]],[13,"wy1",[1,[1,[1,"ty3","*",[5,"1.5"]],"-",[1,"ty2","*",[5,"2.5"]]],"+",[5,"1"]]],[13,"wy2",[1,[1,[1,"ty3","*",[4,"-",[5,"1.5"]]],"+",[1,"ty2","*",[5,"2"]]],"+",[1,"fy","*",[5,"0.5"]]]],[13,"wy3",[1,[1,"ty3","*",[5,"0.5"]],"-",[1,"ty2","*",[5,"0.5"]]]],[13,"maxT",[1,"activeResF","-",[5,"1"]]],[13,"cxm",[6,"d.u32",[[6,"std.clamp",[[1,"x0","-",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx0",[6,"d.u32",[[6,"std.clamp",["x0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx1",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx2",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"2"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cym",[6,"d.u32",[[6,"std.clamp",[[1,"y0","-",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy0",[6,"d.u32",[[6,"std.clamp",["y0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy1",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy2",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"2"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"k00",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cym"]],[5,"0"]]]],[13,"k01",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cym"]],[5,"0"]]]],[13,"k02",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cym"]],[5,"0"]]]],[13,"k03",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cym"]],[5,"0"]]]],[13,"k10",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cy0"]],[5,"0"]]]],[13,"k11",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy0"]],[5,"0"]]]],[13,"k12",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy0"]],[5,"0"]]]],[13,"k13",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cy0"]],[5,"0"]]]],[13,"k20",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cy1"]],[5,"0"]]]],[13,"k21",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy1"]],[5,"0"]]]],[13,"k22",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy1"]],[5,"0"]]]],[13,"k23",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cy1"]],[5,"0"]]]],[13,"k30",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cy2"]],[5,"0"]]]],[13,"k31",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy2"]],[5,"0"]]]],[13,"k32",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy2"]],[5,"0"]]]],[13,"k33",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cy2"]],[5,"0"]]]],[13,"rAcc",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","r"],"*","wx0"],"*","wy0"],"+",[1,[1,[7,"k01","r"],"*","wx1"],"*","wy0"]],"+",[1,[1,[7,"k02","r"],"*","wx2"],"*","wy0"]],"+",[1,[1,[7,"k03","r"],"*","wx3"],"*","wy0"]],"+",[1,[1,[7,"k10","r"],"*","wx0"],"*","wy1"]],"+",[1,[1,[7,"k11","r"],"*","wx1"],"*","wy1"]],"+",[1,[1,[7,"k12","r"],"*","wx2"],"*","wy1"]],"+",[1,[1,[7,"k13","r"],"*","wx3"],"*","wy1"]],"+",[1,[1,[7,"k20","r"],"*","wx0"],"*","wy2"]],"+",[1,[1,[7,"k21","r"],"*","wx1"],"*","wy2"]],"+",[1,[1,[7,"k22","r"],"*","wx2"],"*","wy2"]],"+",[1,[1,[7,"k23","r"],"*","wx3"],"*","wy2"]],"+",[1,[1,[7,"k30","r"],"*","wx0"],"*","wy3"]],"+",[1,[1,[7,"k31","r"],"*","wx1"],"*","wy3"]],"+",[1,[1,[7,"k32","r"],"*","wx2"],"*","wy3"]],"+",[1,[1,[7,"k33","r"],"*","wx3"],"*","wy3"]]],[13,"aAcc",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","a"],"*","wx0"],"*","wy0"],"+",[1,[1,[7,"k01","a"],"*","wx1"],"*","wy0"]],"+",[1,[1,[7,"k02","a"],"*","wx2"],"*","wy0"]],"+",[1,[1,[7,"k03","a"],"*","wx3"],"*","wy0"]],"+",[1,[1,[7,"k10","a"],"*","wx0"],"*","wy1"]],"+",[1,[1,[7,"k11","a"],"*","wx1"],"*","wy1"]],"+",[1,[1,[7,"k12","a"],"*","wx2"],"*","wy1"]],"+",[1,[1,[7,"k13","a"],"*","wx3"],"*","wy1"]],"+",[1,[1,[7,"k20","a"],"*","wx0"],"*","wy2"]],"+",[1,[1,[7,"k21","a"],"*","wx1"],"*","wy2"]],"+",[1,[1,[7,"k22","a"],"*","wx2"],"*","wy2"]],"+",[1,[1,[7,"k23","a"],"*","wx3"],"*","wy2"]],"+",[1,[1,[7,"k30","a"],"*","wx0"],"*","wy3"]],"+",[1,[1,[7,"k31","a"],"*","wx1"],"*","wy3"]],"+",[1,[1,[7,"k32","a"],"*","wx2"],"*","wy3"]],"+",[1,[1,[7,"k33","a"],"*","wx3"],"*","wy3"]]],[13,"bl",[6,"std.mix",[[6,"std.mix",["k11","k12","fx"]],[6,"std.mix",["k21","k22","fx"]],"fy"]]],[13,"rMin",[6,"std.min",[[6,"std.min",[[7,"k11","r"],[7,"k12","r"]]],[6,"std.min",[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"rMax",[6,"std.max",[[6,"std.max",[[7,"k11","r"],[7,"k12","r"]]],[6,"std.max",[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"aMin",[6,"std.min",[[6,"std.min",[[7,"k11","a"],[7,"k12","a"]]],[6,"std.min",[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aMax",[6,"std.max",[[6,"std.max",[[7,"k11","a"],[7,"k12","a"]]],[6,"std.max",[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aOut",[6,"std.clamp",["aAcc","aMin","aMax"]]],[13,"rNear",[1,[6,"std.clamp",["rAcc","rMin","rMax"]],"+","outsideDist"]],[13,"rCircle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-","rBound"]],[13,"rOut",[6,"std.mix",["rNear",[6,"std.max",["rCircle","rNear"]],[6,"std.smoothstep",[[6,"d.f32",[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,"d.vec4f",["rOut",[7,"bl","g"],[7,"bl","b"],"aOut"]]]]]},externals:{"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.floor":()=>K,"d.u32":()=>Y,"d.f32":()=>a,"std.textureLoad":()=>at,"d.vec2u":()=>He,"std.mix":()=>Z,"std.min":()=>ue,"std.max":()=>w,"std.smoothstep":()=>ce,"d.vec4f":()=>b}})&&e.f)({})).$name("fieldSampleArg"),fieldSampleGradArg:y.fn([u,Hs(a),a,a,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=z(t.x,r,__tsover_add(r,n)),_=z(t.y,o,__tsover_add(o,i)),p=te(u(__tsover_sub(t.x,c),__tsover_sub(t.y,_))),f=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(c,r),n),d),.5),h=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(_,o),i),d),.5),g=K(f),x=K(h),T=__tsover_sub(f,g),S=__tsover_sub(h,x),A=__tsover_mul(T,T),E=__tsover_mul(A,T),M=__tsover_sub(__tsover_add(__tsover_mul(E,-.5),A),__tsover_mul(T,.5)),$=__tsover_add(__tsover_sub(__tsover_mul(E,1.5),__tsover_mul(A,2.5)),1),L=__tsover_add(__tsover_add(__tsover_mul(E,-1.5),__tsover_mul(A,2)),__tsover_mul(T,.5)),B=__tsover_sub(__tsover_mul(E,.5),__tsover_mul(A,.5)),D=__tsover_mul(S,S),G=__tsover_mul(D,S),I=__tsover_sub(__tsover_add(__tsover_mul(G,-.5),D),__tsover_mul(S,.5)),X=__tsover_add(__tsover_sub(__tsover_mul(G,1.5),__tsover_mul(D,2.5)),1),H=__tsover_add(__tsover_add(__tsover_mul(G,-1.5),__tsover_mul(D,2)),__tsover_mul(S,.5)),ee=__tsover_sub(__tsover_mul(G,.5),__tsover_mul(D,.5)),Q=__tsover_sub(1,T),de=__tsover_mul(__tsover_mul(__tsover_mul(Q,Q),Q),.16666667),Ee=__tsover_add(__tsover_sub(__tsover_mul(E,.5),A),.66666667),he=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(E,-.5),__tsover_mul(A,.5)),__tsover_mul(T,.5)),.16666667),Me=__tsover_mul(E,.16666667),Te=__tsover_mul(__tsover_mul(Q,Q),-.5),Pe=__tsover_sub(__tsover_mul(A,1.5),__tsover_mul(T,2)),Ce=__tsover_add(__tsover_add(__tsover_mul(A,-1.5),T),.5),ie=__tsover_mul(A,.5),Ne=__tsover_sub(1,S),ye=__tsover_mul(__tsover_mul(__tsover_mul(Ne,Ne),Ne),.16666667),Ve=__tsover_add(__tsover_sub(__tsover_mul(G,.5),D),.66666667),qe=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(G,-.5),__tsover_mul(D,.5)),__tsover_mul(S,.5)),.16666667),st=__tsover_mul(G,.16666667),We=__tsover_mul(__tsover_mul(Ne,Ne),-.5),Be=__tsover_sub(__tsover_mul(D,1.5),__tsover_mul(S,2)),rt=__tsover_add(__tsover_add(__tsover_mul(D,-1.5),S),.5),tt=__tsover_mul(D,.5),Ke=__tsover_sub(d,1),Oe=Y(z(__tsover_sub(g,1),a(0),Ke)),gt=Y(z(g,a(0),Ke)),pt=Y(z(__tsover_add(g,1),a(0),Ke)),Ut=Y(z(__tsover_add(g,2),a(0),Ke)),Lt=Y(z(__tsover_sub(x,1),a(0),Ke)),Wt=Y(z(x,a(0),Ke)),vs=Y(z(__tsover_add(x,1),a(0),Ke)),jt=Y(z(__tsover_add(x,2),a(0),Ke)),Qt=at(s,He(Oe,Lt),0),$s=at(s,He(gt,Lt),0),Is=at(s,He(pt,Lt),0),Ys=at(s,He(Ut,Lt),0),hs=at(s,He(Oe,Wt),0),rr=at(s,He(gt,Wt),0),or=at(s,He(pt,Wt),0),Cr=at(s,He(Ut,Wt),0),Zr=at(s,He(Oe,vs),0),Rr=at(s,He(gt,vs),0),ur=at(s,He(pt,vs),0),Qr=at(s,He(Ut,vs),0),nr=at(s,He(Oe,jt),0),ho=at(s,He(gt,jt),0),Cn=at(s,He(pt,jt),0),Go=at(s,He(Ut,jt),0),ed=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(Qt.r,M),I),__tsover_mul(__tsover_mul($s.r,$),I)),__tsover_mul(__tsover_mul(Is.r,L),I)),__tsover_mul(__tsover_mul(Ys.r,B),I)),__tsover_mul(__tsover_mul(hs.r,M),X)),__tsover_mul(__tsover_mul(rr.r,$),X)),__tsover_mul(__tsover_mul(or.r,L),X)),__tsover_mul(__tsover_mul(Cr.r,B),X)),__tsover_mul(__tsover_mul(Zr.r,M),H)),__tsover_mul(__tsover_mul(Rr.r,$),H)),__tsover_mul(__tsover_mul(ur.r,L),H)),__tsover_mul(__tsover_mul(Qr.r,B),H)),__tsover_mul(__tsover_mul(nr.r,M),ee)),__tsover_mul(__tsover_mul(ho.r,$),ee)),__tsover_mul(__tsover_mul(Cn.r,L),ee)),__tsover_mul(__tsover_mul(Go.r,B),ee)),ui=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(Qt.a,M),I),__tsover_mul(__tsover_mul($s.a,$),I)),__tsover_mul(__tsover_mul(Is.a,L),I)),__tsover_mul(__tsover_mul(Ys.a,B),I)),__tsover_mul(__tsover_mul(hs.a,M),X)),__tsover_mul(__tsover_mul(rr.a,$),X)),__tsover_mul(__tsover_mul(or.a,L),X)),__tsover_mul(__tsover_mul(Cr.a,B),X)),__tsover_mul(__tsover_mul(Zr.a,M),H)),__tsover_mul(__tsover_mul(Rr.a,$),H)),__tsover_mul(__tsover_mul(ur.a,L),H)),__tsover_mul(__tsover_mul(Qr.a,B),H)),__tsover_mul(__tsover_mul(nr.a,M),ee)),__tsover_mul(__tsover_mul(ho.a,$),ee)),__tsover_mul(__tsover_mul(Cn.a,L),ee)),__tsover_mul(__tsover_mul(Go.a,B),ee)),td=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(Qt.r,Te),ye),__tsover_mul(__tsover_mul($s.r,Pe),ye)),__tsover_mul(__tsover_mul(Is.r,Ce),ye)),__tsover_mul(__tsover_mul(Ys.r,ie),ye)),__tsover_mul(__tsover_mul(hs.r,Te),Ve)),__tsover_mul(__tsover_mul(rr.r,Pe),Ve)),__tsover_mul(__tsover_mul(or.r,Ce),Ve)),__tsover_mul(__tsover_mul(Cr.r,ie),Ve)),__tsover_mul(__tsover_mul(Zr.r,Te),qe)),__tsover_mul(__tsover_mul(Rr.r,Pe),qe)),__tsover_mul(__tsover_mul(ur.r,Ce),qe)),__tsover_mul(__tsover_mul(Qr.r,ie),qe)),__tsover_mul(__tsover_mul(nr.r,Te),st)),__tsover_mul(__tsover_mul(ho.r,Pe),st)),__tsover_mul(__tsover_mul(Cn.r,Ce),st)),__tsover_mul(__tsover_mul(Go.r,ie),st)),sd=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(Qt.r,de),We),__tsover_mul(__tsover_mul($s.r,Ee),We)),__tsover_mul(__tsover_mul(Is.r,he),We)),__tsover_mul(__tsover_mul(Ys.r,Me),We)),__tsover_mul(__tsover_mul(hs.r,de),Be)),__tsover_mul(__tsover_mul(rr.r,Ee),Be)),__tsover_mul(__tsover_mul(or.r,he),Be)),__tsover_mul(__tsover_mul(Cr.r,Me),Be)),__tsover_mul(__tsover_mul(Zr.r,de),rt)),__tsover_mul(__tsover_mul(Rr.r,Ee),rt)),__tsover_mul(__tsover_mul(ur.r,he),rt)),__tsover_mul(__tsover_mul(Qr.r,Me),rt)),__tsover_mul(__tsover_mul(nr.r,de),tt)),__tsover_mul(__tsover_mul(ho.r,Ee),tt)),__tsover_mul(__tsover_mul(Cn.r,he),tt)),__tsover_mul(__tsover_mul(Go.r,Me),tt)),N=ue(ue(rr.r,or.r),ue(Rr.r,ur.r)),xe=w(w(rr.r,or.r),w(Rr.r,ur.r)),pe=z(ui,ue(ue(rr.a,or.a),ue(Rr.a,ur.a)),w(w(rr.a,or.a),w(Rr.a,ur.a))),_e=__tsover_add(__tsover_mul(__tsover_sub(xe,N),.3),1e-6),me=z(__tsover_add(__tsover_mul(__tsover_div(__tsover_sub(xe,ed),_e),.5),.5),0,1),Ue=__tsover_sub(Z(xe,ed,me),__tsover_mul(__tsover_mul(_e,me),__tsover_sub(1,me))),je=z(__tsover_add(__tsover_mul(__tsover_div(__tsover_sub(Ue,N),_e),.5),.5),0,1),yt=__tsover_add(Z(N,Ue,je),__tsover_mul(__tsover_mul(_e,je),__tsover_sub(1,je))),wt=__tsover_add(yt,p),mt=Z(wt,w(__tsover_sub(te(u(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),l),wt),ce(a(0),.25,p)),us=F(a(0),a(1),W(__tsover_sub(t.x,c))<1e-7),ds=F(a(0),a(1),W(__tsover_sub(t.y,_))<1e-7),hr=__tsover_div(1,w(p,1e-5));return b(mt,__tsover_add(__tsover_mul(__tsover_mul(td,__tsover_div(d,n)),us),__tsover_mul(__tsover_sub(t.x,c),hr)),__tsover_add(__tsover_mul(__tsover_mul(sd,__tsover_div(d,i)),ds),__tsover_mul(__tsover_sub(t.y,_),hr)),pe)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"field"},{type:"i",name:"originX"},{type:"i",name:"originY"},{type:"i",name:"spanX"},{type:"i",name:"spanY"},{type:"i",name:"activeResF"},{type:"i",name:"rBound"}],body:[0,[[13,"uxc",[6,"std.clamp",[[7,"uv","x"],"originX",[1,"originX","+","spanX"]]]],[13,"uyc",[6,"std.clamp",[[7,"uv","y"],"originY",[1,"originY","+","spanY"]]]],[13,"outsideDist",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","uxc"],[1,[7,"uv","y"],"-","uyc"]]]]]],[13,"px",[1,[1,[1,[1,"uxc","-","originX"],"/","spanX"],"*","activeResF"],"-",[5,"0.5"]]],[13,"py",[1,[1,[1,[1,"uyc","-","originY"],"/","spanY"],"*","activeResF"],"-",[5,"0.5"]]],[13,"x0",[6,"std.floor",["px"]]],[13,"y0",[6,"std.floor",["py"]]],[13,"fx",[1,"px","-","x0"]],[13,"fy",[1,"py","-","y0"]],[13,"tx2",[1,"fx","*","fx"]],[13,"tx3",[1,"tx2","*","fx"]],[13,"wx0",[1,[1,[1,"tx3","*",[4,"-",[5,"0.5"]]],"+","tx2"],"-",[1,"fx","*",[5,"0.5"]]]],[13,"wx1",[1,[1,[1,"tx3","*",[5,"1.5"]],"-",[1,"tx2","*",[5,"2.5"]]],"+",[5,"1"]]],[13,"wx2",[1,[1,[1,"tx3","*",[4,"-",[5,"1.5"]]],"+",[1,"tx2","*",[5,"2"]]],"+",[1,"fx","*",[5,"0.5"]]]],[13,"wx3",[1,[1,"tx3","*",[5,"0.5"]],"-",[1,"tx2","*",[5,"0.5"]]]],[13,"ty2",[1,"fy","*","fy"]],[13,"ty3",[1,"ty2","*","fy"]],[13,"wy0",[1,[1,[1,"ty3","*",[4,"-",[5,"0.5"]]],"+","ty2"],"-",[1,"fy","*",[5,"0.5"]]]],[13,"wy1",[1,[1,[1,"ty3","*",[5,"1.5"]],"-",[1,"ty2","*",[5,"2.5"]]],"+",[5,"1"]]],[13,"wy2",[1,[1,[1,"ty3","*",[4,"-",[5,"1.5"]]],"+",[1,"ty2","*",[5,"2"]]],"+",[1,"fy","*",[5,"0.5"]]]],[13,"wy3",[1,[1,"ty3","*",[5,"0.5"]],"-",[1,"ty2","*",[5,"0.5"]]]],[13,"oxf",[1,[5,"1"],"-","fx"]],[13,"bx0",[1,[1,[1,"oxf","*","oxf"],"*","oxf"],"*",[5,"0.16666667"]]],[13,"bx1",[1,[1,[1,"tx3","*",[5,"0.5"]],"-","tx2"],"+",[5,"0.66666667"]]],[13,"bx2",[1,[1,[1,[1,"tx3","*",[4,"-",[5,"0.5"]]],"+",[1,"tx2","*",[5,"0.5"]]],"+",[1,"fx","*",[5,"0.5"]]],"+",[5,"0.16666667"]]],[13,"bx3",[1,"tx3","*",[5,"0.16666667"]]],[13,"dbx0",[1,[1,"oxf","*","oxf"],"*",[4,"-",[5,"0.5"]]]],[13,"dbx1",[1,[1,"tx2","*",[5,"1.5"]],"-",[1,"fx","*",[5,"2"]]]],[13,"dbx2",[1,[1,[1,"tx2","*",[4,"-",[5,"1.5"]]],"+","fx"],"+",[5,"0.5"]]],[13,"dbx3",[1,"tx2","*",[5,"0.5"]]],[13,"oyf",[1,[5,"1"],"-","fy"]],[13,"by0",[1,[1,[1,"oyf","*","oyf"],"*","oyf"],"*",[5,"0.16666667"]]],[13,"by1",[1,[1,[1,"ty3","*",[5,"0.5"]],"-","ty2"],"+",[5,"0.66666667"]]],[13,"by2",[1,[1,[1,[1,"ty3","*",[4,"-",[5,"0.5"]]],"+",[1,"ty2","*",[5,"0.5"]]],"+",[1,"fy","*",[5,"0.5"]]],"+",[5,"0.16666667"]]],[13,"by3",[1,"ty3","*",[5,"0.16666667"]]],[13,"dby0",[1,[1,"oyf","*","oyf"],"*",[4,"-",[5,"0.5"]]]],[13,"dby1",[1,[1,"ty2","*",[5,"1.5"]],"-",[1,"fy","*",[5,"2"]]]],[13,"dby2",[1,[1,[1,"ty2","*",[4,"-",[5,"1.5"]]],"+","fy"],"+",[5,"0.5"]]],[13,"dby3",[1,"ty2","*",[5,"0.5"]]],[13,"maxT",[1,"activeResF","-",[5,"1"]]],[13,"cxm",[6,"d.u32",[[6,"std.clamp",[[1,"x0","-",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx0",[6,"d.u32",[[6,"std.clamp",["x0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx1",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx2",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"2"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cym",[6,"d.u32",[[6,"std.clamp",[[1,"y0","-",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy0",[6,"d.u32",[[6,"std.clamp",["y0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy1",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy2",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"2"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"k00",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cym"]],[5,"0"]]]],[13,"k01",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cym"]],[5,"0"]]]],[13,"k02",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cym"]],[5,"0"]]]],[13,"k03",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cym"]],[5,"0"]]]],[13,"k10",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cy0"]],[5,"0"]]]],[13,"k11",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy0"]],[5,"0"]]]],[13,"k12",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy0"]],[5,"0"]]]],[13,"k13",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cy0"]],[5,"0"]]]],[13,"k20",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cy1"]],[5,"0"]]]],[13,"k21",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy1"]],[5,"0"]]]],[13,"k22",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy1"]],[5,"0"]]]],[13,"k23",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cy1"]],[5,"0"]]]],[13,"k30",[6,"std.textureLoad",["field",[6,"d.vec2u",["cxm","cy2"]],[5,"0"]]]],[13,"k31",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy2"]],[5,"0"]]]],[13,"k32",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy2"]],[5,"0"]]]],[13,"k33",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx2","cy2"]],[5,"0"]]]],[13,"rAcc",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","r"],"*","wx0"],"*","wy0"],"+",[1,[1,[7,"k01","r"],"*","wx1"],"*","wy0"]],"+",[1,[1,[7,"k02","r"],"*","wx2"],"*","wy0"]],"+",[1,[1,[7,"k03","r"],"*","wx3"],"*","wy0"]],"+",[1,[1,[7,"k10","r"],"*","wx0"],"*","wy1"]],"+",[1,[1,[7,"k11","r"],"*","wx1"],"*","wy1"]],"+",[1,[1,[7,"k12","r"],"*","wx2"],"*","wy1"]],"+",[1,[1,[7,"k13","r"],"*","wx3"],"*","wy1"]],"+",[1,[1,[7,"k20","r"],"*","wx0"],"*","wy2"]],"+",[1,[1,[7,"k21","r"],"*","wx1"],"*","wy2"]],"+",[1,[1,[7,"k22","r"],"*","wx2"],"*","wy2"]],"+",[1,[1,[7,"k23","r"],"*","wx3"],"*","wy2"]],"+",[1,[1,[7,"k30","r"],"*","wx0"],"*","wy3"]],"+",[1,[1,[7,"k31","r"],"*","wx1"],"*","wy3"]],"+",[1,[1,[7,"k32","r"],"*","wx2"],"*","wy3"]],"+",[1,[1,[7,"k33","r"],"*","wx3"],"*","wy3"]]],[13,"aAcc",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","a"],"*","wx0"],"*","wy0"],"+",[1,[1,[7,"k01","a"],"*","wx1"],"*","wy0"]],"+",[1,[1,[7,"k02","a"],"*","wx2"],"*","wy0"]],"+",[1,[1,[7,"k03","a"],"*","wx3"],"*","wy0"]],"+",[1,[1,[7,"k10","a"],"*","wx0"],"*","wy1"]],"+",[1,[1,[7,"k11","a"],"*","wx1"],"*","wy1"]],"+",[1,[1,[7,"k12","a"],"*","wx2"],"*","wy1"]],"+",[1,[1,[7,"k13","a"],"*","wx3"],"*","wy1"]],"+",[1,[1,[7,"k20","a"],"*","wx0"],"*","wy2"]],"+",[1,[1,[7,"k21","a"],"*","wx1"],"*","wy2"]],"+",[1,[1,[7,"k22","a"],"*","wx2"],"*","wy2"]],"+",[1,[1,[7,"k23","a"],"*","wx3"],"*","wy2"]],"+",[1,[1,[7,"k30","a"],"*","wx0"],"*","wy3"]],"+",[1,[1,[7,"k31","a"],"*","wx1"],"*","wy3"]],"+",[1,[1,[7,"k32","a"],"*","wx2"],"*","wy3"]],"+",[1,[1,[7,"k33","a"],"*","wx3"],"*","wy3"]]],[13,"drdpx",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","r"],"*","dbx0"],"*","by0"],"+",[1,[1,[7,"k01","r"],"*","dbx1"],"*","by0"]],"+",[1,[1,[7,"k02","r"],"*","dbx2"],"*","by0"]],"+",[1,[1,[7,"k03","r"],"*","dbx3"],"*","by0"]],"+",[1,[1,[7,"k10","r"],"*","dbx0"],"*","by1"]],"+",[1,[1,[7,"k11","r"],"*","dbx1"],"*","by1"]],"+",[1,[1,[7,"k12","r"],"*","dbx2"],"*","by1"]],"+",[1,[1,[7,"k13","r"],"*","dbx3"],"*","by1"]],"+",[1,[1,[7,"k20","r"],"*","dbx0"],"*","by2"]],"+",[1,[1,[7,"k21","r"],"*","dbx1"],"*","by2"]],"+",[1,[1,[7,"k22","r"],"*","dbx2"],"*","by2"]],"+",[1,[1,[7,"k23","r"],"*","dbx3"],"*","by2"]],"+",[1,[1,[7,"k30","r"],"*","dbx0"],"*","by3"]],"+",[1,[1,[7,"k31","r"],"*","dbx1"],"*","by3"]],"+",[1,[1,[7,"k32","r"],"*","dbx2"],"*","by3"]],"+",[1,[1,[7,"k33","r"],"*","dbx3"],"*","by3"]]],[13,"drdpy",[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[1,[7,"k00","r"],"*","bx0"],"*","dby0"],"+",[1,[1,[7,"k01","r"],"*","bx1"],"*","dby0"]],"+",[1,[1,[7,"k02","r"],"*","bx2"],"*","dby0"]],"+",[1,[1,[7,"k03","r"],"*","bx3"],"*","dby0"]],"+",[1,[1,[7,"k10","r"],"*","bx0"],"*","dby1"]],"+",[1,[1,[7,"k11","r"],"*","bx1"],"*","dby1"]],"+",[1,[1,[7,"k12","r"],"*","bx2"],"*","dby1"]],"+",[1,[1,[7,"k13","r"],"*","bx3"],"*","dby1"]],"+",[1,[1,[7,"k20","r"],"*","bx0"],"*","dby2"]],"+",[1,[1,[7,"k21","r"],"*","bx1"],"*","dby2"]],"+",[1,[1,[7,"k22","r"],"*","bx2"],"*","dby2"]],"+",[1,[1,[7,"k23","r"],"*","bx3"],"*","dby2"]],"+",[1,[1,[7,"k30","r"],"*","bx0"],"*","dby3"]],"+",[1,[1,[7,"k31","r"],"*","bx1"],"*","dby3"]],"+",[1,[1,[7,"k32","r"],"*","bx2"],"*","dby3"]],"+",[1,[1,[7,"k33","r"],"*","bx3"],"*","dby3"]]],[13,"rMin",[6,"std.min",[[6,"std.min",[[7,"k11","r"],[7,"k12","r"]]],[6,"std.min",[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"rMax",[6,"std.max",[[6,"std.max",[[7,"k11","r"],[7,"k12","r"]]],[6,"std.max",[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"aMin",[6,"std.min",[[6,"std.min",[[7,"k11","a"],[7,"k12","a"]]],[6,"std.min",[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aMax",[6,"std.max",[[6,"std.max",[[7,"k11","a"],[7,"k12","a"]]],[6,"std.max",[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aOut",[6,"std.clamp",["aAcc","aMin","aMax"]]],[13,"kSoft",[1,[1,[1,"rMax","-","rMin"],"*",[5,"0.3"]],"+",[5,"0.000001"]]],[13,"hCap",[6,"std.clamp",[[1,[1,[1,[1,"rMax","-","rAcc"],"/","kSoft"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"rCap",[1,[6,"std.mix",["rMax","rAcc","hCap"]],"-",[1,[1,"kSoft","*","hCap"],"*",[1,[5,"1"],"-","hCap"]]]],[13,"hFlr",[6,"std.clamp",[[1,[1,[1,[1,"rCap","-","rMin"],"/","kSoft"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"rSoft",[1,[6,"std.mix",["rMin","rCap","hFlr"]],"+",[1,[1,"kSoft","*","hFlr"],"*",[1,[5,"1"],"-","hFlr"]]]],[13,"rNear",[1,"rSoft","+","outsideDist"]],[13,"rCircle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-","rBound"]],[13,"rOut",[6,"std.mix",["rNear",[6,"std.max",["rCircle","rNear"]],[6,"std.smoothstep",[[6,"d.f32",[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[13,"insideX",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,[6,"std.abs",[[1,[7,"uv","x"],"-","uxc"]]],"<",[5,"1e-7"]]]]],[13,"insideY",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,[6,"std.abs",[[1,[7,"uv","y"],"-","uyc"]]],"<",[5,"1e-7"]]]]],[13,"invOut",[1,[5,"1"],"/",[6,"std.max",["outsideDist",[5,"0.00001"]]]]],[13,"gU",[1,[1,[1,"drdpx","*",[1,"activeResF","/","spanX"]],"*","insideX"],"+",[1,[1,[7,"uv","x"],"-","uxc"],"*","invOut"]]],[13,"gV",[1,[1,[1,"drdpy","*",[1,"activeResF","/","spanY"]],"*","insideY"],"+",[1,[1,[7,"uv","y"],"-","uyc"],"*","invOut"]]],[10,[6,"d.vec4f",["rOut","gU","gV","aOut"]]]]]},externals:{"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.floor":()=>K,"d.u32":()=>Y,"d.f32":()=>a,"std.textureLoad":()=>at,"d.vec2u":()=>He,"std.min":()=>ue,"std.max":()=>w,"std.mix":()=>Z,"std.smoothstep":()=>ce,"std.select":()=>F,"std.abs":()=>W,"d.vec4f":()=>b}})&&e.f)({})).$name("fieldSampleGradArg"),fieldSampleFastArg:y.fn([u,Hs(a),a,a,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=z(t.x,r,__tsover_add(r,n)),_=z(t.y,o,__tsover_add(o,i)),p=te(u(__tsover_sub(t.x,c),__tsover_sub(t.y,_))),f=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(c,r),n),d),.5),h=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(_,o),i),d),.5),g=K(f),x=K(h),T=__tsover_sub(f,g),S=__tsover_sub(h,x),A=__tsover_sub(d,1),E=Y(z(g,a(0),A)),M=Y(z(__tsover_add(g,1),a(0),A)),$=Y(z(x,a(0),A)),L=Y(z(__tsover_add(x,1),a(0),A)),B=at(s,He(E,$),0),D=at(s,He(M,$),0),G=at(s,He(E,L),0),I=at(s,He(M,L),0),X=Z(Z(B,D,T),Z(G,I,T),S),H=__tsover_add(X.r,p);return b(Z(H,w(__tsover_sub(te(u(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),l),H),ce(a(0),.25,p)),X.g,X.b,X.a)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"field"},{type:"i",name:"originX"},{type:"i",name:"originY"},{type:"i",name:"spanX"},{type:"i",name:"spanY"},{type:"i",name:"activeResF"},{type:"i",name:"rBound"}],body:[0,[[13,"uxc",[6,"std.clamp",[[7,"uv","x"],"originX",[1,"originX","+","spanX"]]]],[13,"uyc",[6,"std.clamp",[[7,"uv","y"],"originY",[1,"originY","+","spanY"]]]],[13,"outsideDist",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","uxc"],[1,[7,"uv","y"],"-","uyc"]]]]]],[13,"px",[1,[1,[1,[1,"uxc","-","originX"],"/","spanX"],"*","activeResF"],"-",[5,"0.5"]]],[13,"py",[1,[1,[1,[1,"uyc","-","originY"],"/","spanY"],"*","activeResF"],"-",[5,"0.5"]]],[13,"x0",[6,"std.floor",["px"]]],[13,"y0",[6,"std.floor",["py"]]],[13,"fx",[1,"px","-","x0"]],[13,"fy",[1,"py","-","y0"]],[13,"maxT",[1,"activeResF","-",[5,"1"]]],[13,"cx0",[6,"d.u32",[[6,"std.clamp",["x0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx1",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy0",[6,"d.u32",[[6,"std.clamp",["y0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy1",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"t00",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy0"]],[5,"0"]]]],[13,"t10",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy0"]],[5,"0"]]]],[13,"t01",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx0","cy1"]],[5,"0"]]]],[13,"t11",[6,"std.textureLoad",["field",[6,"d.vec2u",["cx1","cy1"]],[5,"0"]]]],[13,"bl",[6,"std.mix",[[6,"std.mix",["t00","t10","fx"]],[6,"std.mix",["t01","t11","fx"]],"fy"]]],[13,"rNear",[1,[7,"bl","r"],"+","outsideDist"]],[13,"rCircle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-","rBound"]],[13,"rOut",[6,"std.mix",["rNear",[6,"std.max",["rCircle","rNear"]],[6,"std.smoothstep",[[6,"d.f32",[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,"d.vec4f",["rOut",[7,"bl","g"],[7,"bl","b"],[7,"bl","a"]]]]]]},externals:{"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.floor":()=>K,"d.u32":()=>Y,"d.f32":()=>a,"std.textureLoad":()=>at,"d.vec2u":()=>He,"std.mix":()=>Z,"std.max":()=>w,"std.smoothstep":()=>ce,"d.vec4f":()=>b}})&&e.f)({})).$name("fieldSampleFastArg"),fieldSampleTexelArg:y.fn([u,Hs(a),a,a,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=z(t.x,r,__tsover_add(r,n)),_=z(t.y,o,__tsover_add(o,i)),p=te(u(__tsover_sub(t.x,c),__tsover_sub(t.y,_))),f=__tsover_sub(d,1),h=z(K(__tsover_mul(__tsover_div(__tsover_sub(c,r),n),d)),a(0),f),g=z(K(__tsover_mul(__tsover_div(__tsover_sub(_,o),i),d)),a(0),f),x=at(s,He(Y(h),Y(g)),0),T=__tsover_add(x.r,p);return b(Z(T,w(__tsover_sub(te(u(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),l),T),ce(a(0),.25,p)),x.g,x.b,x.a)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"field"},{type:"i",name:"originX"},{type:"i",name:"originY"},{type:"i",name:"spanX"},{type:"i",name:"spanY"},{type:"i",name:"activeResF"},{type:"i",name:"rBound"}],body:[0,[[13,"uxc",[6,"std.clamp",[[7,"uv","x"],"originX",[1,"originX","+","spanX"]]]],[13,"uyc",[6,"std.clamp",[[7,"uv","y"],"originY",[1,"originY","+","spanY"]]]],[13,"outsideDist",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","uxc"],[1,[7,"uv","y"],"-","uyc"]]]]]],[13,"maxT",[1,"activeResF","-",[5,"1"]]],[13,"px",[6,"std.clamp",[[6,"std.floor",[[1,[1,[1,"uxc","-","originX"],"/","spanX"],"*","activeResF"]]],[6,"d.f32",[[5,"0"]]],"maxT"]]],[13,"py",[6,"std.clamp",[[6,"std.floor",[[1,[1,[1,"uyc","-","originY"],"/","spanY"],"*","activeResF"]]],[6,"d.f32",[[5,"0"]]],"maxT"]]],[13,"t",[6,"std.textureLoad",["field",[6,"d.vec2u",[[6,"d.u32",["px"]],[6,"d.u32",["py"]]]],[5,"0"]]]],[13,"rNear",[1,[7,"t","r"],"+","outsideDist"]],[13,"rCircle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-","rBound"]],[13,"rOut",[6,"std.mix",["rNear",[6,"std.max",["rCircle","rNear"]],[6,"std.smoothstep",[[6,"d.f32",[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,"d.vec4f",["rOut",[7,"t","g"],[7,"t","b"],[7,"t","a"]]]]]]},externals:{"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.floor":()=>K,"d.f32":()=>a,"std.textureLoad":()=>at,"d.vec2u":()=>He,"d.u32":()=>Y,"std.mix":()=>Z,"std.max":()=>w,"std.smoothstep":()=>ce,"d.vec4f":()=>b}})&&e.f)({})).$name("fieldSampleTexelArg"),texelSpanFn:y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_div(w(t,s),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"spanX"},{type:"i",name:"spanY"},{type:"i",name:"activeResF"}],body:[0,[[10,[1,[6,"std.max",["spanX","spanY"]],"/","activeResF"]]]]},externals:{"std.max":()=>w}})&&e.f)({})).$name("fieldTexelSpan")}}var OB={_vfOriginX:{schema:a,initial:0},_vfOriginY:{schema:a,initial:0},_vfSpanX:{schema:a,initial:1},_vfSpanY:{schema:a,initial:1},_vfActiveRes:{schema:a,initial:1},_vfRBound:{schema:a,initial:.6}};function aS(e,t){let{fieldSampleArg:s,fieldSampleGradArg:r,fieldSampleFastArg:o,fieldSampleTexelArg:n,texelSpanFn:i}=Fy(),d=(globalThis.__TYPEGPU_AUTONAME__??(c=>c))(e.accessor(),"acc"),l=c=>[c,d,t.originX,t.originY,t.spanX,t.spanY,t.activeResF,t.rBound];return{volumetricFieldSampler:c=>se(s,"vfSample",l(c)),volumetricFieldSamplerGrad:c=>se(r,"vfSampleGrad",l(c)),volumetricFieldSamplerFast:c=>se(o,"vfSampleFast",l(c)),volumetricFieldSamplerTexel:c=>se(n,"vfSampleTexel",l(c)),volumetricFieldTexelSpan:se(i,"vfTexelSpan",[t.spanX,t.spanY,t.activeResF])}}function VB(e,t={}){let{patternMode:s="none",gradSampler:r="fast",bakedGradients:o="none"}=t,{computeOutputs:n,uniforms:i,propValues:d,getCpuValue:l}=e,c=n?.volumetricFieldTexture;if(c){let g=aS(c,{originX:i._vfOriginX,originY:i._vfOriginY,spanX:i._vfSpanX,spanY:i._vfSpanY,activeResF:i._vfActiveRes,rBound:i._vfRBound}),x=o!=="none",T=x?g.volumetricFieldSamplerGrad:g.volumetricFieldSampler;return{sampler:T,gradSampler:r==="same"?T:g.volumetricFieldSamplerFast,texelSampler:g.volumetricFieldSamplerTexel,volumetric:!0,bakedGradients:x}}let _=d.shapeSdfUrl||"",p=d.shapeType||"";if(_){let g=o==="all",x=g?UT(e,_):RT(e,_);return{sampler:x,gradSampler:x,texelSampler:x,volumetric:ZT(p),bakedGradients:g}}let f=DB(p,l("shape")),h=zT(f,DT(e,()=>l("shape")),s);return{sampler:h,gradSampler:h,texelSampler:h,volumetric:Um(f),bakedGradients:!1}}var zi=Math.PI/180;function By(e){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return JSON.parse(e)}catch{return{}}return{}}function iS(e,t,s,r,o={}){let n=jp[t]??jp.sphere3D,i=o.extraPad??(()=>0),{layout:d}=Ly(),l=(globalThis.__TYPEGPU_AUTONAME__??(Pe=>Pe))(e.createUniform(va),"marchParamsBuffer"),c=y.fn([v],a)((Pe=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(Pe.f=(Ce=>{"use gpu";let ie=d.$.params;return t==="cube3D"?Ac(Ce,ie.pA,ie.pB,ie.pC,ie.pD):t==="torus3D"?zv(Ce,ie.pA,ie.pB):t==="octahedron3D"?Gv(Ce,ie.pA):t==="cylinder3D"?Dv(Ce,ie.pA,ie.pB,ie.pD):t==="capsule3D"?Lv(Ce,ie.pA,ie.pB):t==="cone3D"?Fv(Ce,ie.pA,ie.pC,ie.pB):t==="pyramid3D"?Bv(Ce,ie.pA,ie.pB):t==="prism3D"?Iv(Ce,ie.pA,ie.pB):t==="ellipsoid3D"?Yv(Ce,ie.pA,ie.pB,ie.pC):t==="diamond3D"?Ec(Ce,ie.pA,ie.pB):t==="link3D"?Wv(Ce,ie.pB,ie.pA,ie.pC):t==="gem3D"?Vv(Ce,ie.pA,ie.pB,ie.pC):t==="helix3D"?Nv(Ce,ie.pA,ie.pB,ie.pC,a(3)):t==="metaballs3D"?qv(Ce,ie.mb0,ie.mb1,ie.mb2,ie.mb3,ie.mb4,ie.mb5,ie.mb6,ie.mb7,ie.pA,ie.pD):t==="dodecahedron3D"?Xv(Ce,ie.pA):t==="hemisphere3D"?Hv(Ce,ie.pA,ie.pB):t==="ribbon3D"?jv(Ce,ie.pA,ie.pB,ie.pC,ie.mb0.x,ie.mb0.y,ie.mb0.z,ie.mb1.x,ie.mb1.y,ie.mb1.z,ie.mb2.x):t==="blob3D"?Kv(Ce,ie.pA,ie.mb0.x,ie.mb0.y,ie.mb0.z,ie.mb1.x,ie.mb2.x):t==="gyroscope3D"?Zv(Ce,ie.pA,ie.pB,ie.pD,ie.mb3.x,ie.pC,ie.mb0.x,ie.mb0.y,ie.mb1.x,ie.mb1.y,ie.mb2.x,ie.mb2.y):Uv(Ce,ie.pA)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"pp",[7,[7,"layout","$"],"params"]],[11,[1,"shapeType","===",[103,"cube3D"]],[10,[6,"sdRoundBox",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pC"],[7,"pp","pD"]]]],[11,[1,"shapeType","===",[103,"torus3D"]],[10,[6,"sdTorus",["p",[7,"pp","pA"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"octahedron3D"]],[10,[6,"sdOctahedron",["p",[7,"pp","pA"]]]],[11,[1,"shapeType","===",[103,"cylinder3D"]],[10,[6,"sdRoundCylinder",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pD"]]]],[11,[1,"shapeType","===",[103,"capsule3D"]],[10,[6,"sdCapsule",["p",[7,"pp","pA"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"cone3D"]],[10,[6,"sdCappedCone",["p",[7,"pp","pA"],[7,"pp","pC"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"pyramid3D"]],[10,[6,"sdPyramid",["p",[7,"pp","pA"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"prism3D"]],[10,[6,"sdHexPrism",["p",[7,"pp","pA"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"ellipsoid3D"]],[10,[6,"sdEllipsoid",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pC"]]]],[11,[1,"shapeType","===",[103,"diamond3D"]],[10,[6,"sdBicone",["p",[7,"pp","pA"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"link3D"]],[10,[6,"sdLink",["p",[7,"pp","pB"],[7,"pp","pA"],[7,"pp","pC"]]]],[11,[1,"shapeType","===",[103,"gem3D"]],[10,[6,"sdGem",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pC"]]]],[11,[1,"shapeType","===",[103,"helix3D"]],[10,[6,"sdHelix",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pC"],[6,"d.f32",["HELIX_TURNS"]]]]],[11,[1,"shapeType","===",[103,"metaballs3D"]],[10,[6,"sdMetaballs",["p",[7,"pp","mb0"],[7,"pp","mb1"],[7,"pp","mb2"],[7,"pp","mb3"],[7,"pp","mb4"],[7,"pp","mb5"],[7,"pp","mb6"],[7,"pp","mb7"],[7,"pp","pA"],[7,"pp","pD"]]]],[11,[1,"shapeType","===",[103,"dodecahedron3D"]],[10,[6,"sdDodecahedron",["p",[7,"pp","pA"]]]],[11,[1,"shapeType","===",[103,"hemisphere3D"]],[10,[6,"sdCutSphere",["p",[7,"pp","pA"],[7,"pp","pB"]]]],[11,[1,"shapeType","===",[103,"ribbon3D"]],[10,[6,"sdRibbon",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pC"],[7,[7,"pp","mb0"],"x"],[7,[7,"pp","mb0"],"y"],[7,[7,"pp","mb0"],"z"],[7,[7,"pp","mb1"],"x"],[7,[7,"pp","mb1"],"y"],[7,[7,"pp","mb1"],"z"],[7,[7,"pp","mb2"],"x"]]]],[11,[1,"shapeType","===",[103,"blob3D"]],[10,[6,"sdWobbleBlob",["p",[7,"pp","pA"],[7,[7,"pp","mb0"],"x"],[7,[7,"pp","mb0"],"y"],[7,[7,"pp","mb0"],"z"],[7,[7,"pp","mb1"],"x"],[7,[7,"pp","mb2"],"x"]]]],[11,[1,"shapeType","===",[103,"gyroscope3D"]],[10,[6,"sdGyroscope",["p",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pD"],[7,[7,"pp","mb3"],"x"],[7,"pp","pC"],[7,[7,"pp","mb0"],"x"],[7,[7,"pp","mb0"],"y"],[7,[7,"pp","mb1"],"x"],[7,[7,"pp","mb1"],"y"],[7,[7,"pp","mb2"],"x"],[7,[7,"pp","mb2"],"y"]]]],[10,[6,"sdSphere",["p",[7,"pp","pA"]]]]]]]]]]]]]]]]]]]]]]]]]},externals:{layout:()=>d,shapeType:()=>t,sdRoundBox:()=>Ac,sdTorus:()=>zv,sdOctahedron:()=>Gv,sdRoundCylinder:()=>Dv,sdCapsule:()=>Lv,sdCappedCone:()=>Fv,sdPyramid:()=>Bv,sdHexPrism:()=>Iv,sdEllipsoid:()=>Yv,sdBicone:()=>Ec,sdLink:()=>Wv,sdGem:()=>Vv,sdHelix:()=>Nv,"d.f32":()=>a,HELIX_TURNS:()=>3,sdMetaballs:()=>qv,sdDodecahedron:()=>Xv,sdCutSphere:()=>Hv,sdRibbon:()=>jv,sdWobbleBlob:()=>Kv,sdGyroscope:()=>Zv,sdSphere:()=>Uv}})&&Pe.f)({})),_=0,p="",f=s,h=new Map,g=.35,x=.3,T=.3,S=0,A=.6,E=1,M=0,$=1,L=0,B=1,D=0,G=1,I=1,X=0,H=0,ee=Xc(),Q=Array.from({length:8},()=>[0,0,0]),de=()=>{l.write({rot:{cx:E,sx:M,cy:$,sy:L,cz:B,sz:D},rBound:A,spanX:G,spanY:I,originX:X,originY:H,activeRes:ee,pA:g,pB:x,pC:T,pD:S,mb0:v(Q[0][0],Q[0][1],Q[0][2]),mb1:v(Q[1][0],Q[1][1],Q[1][2]),mb2:v(Q[2][0],Q[2][1],Q[2][2]),mb3:v(Q[3][0],Q[3][1],Q[3][2]),mb4:v(Q[4][0],Q[4][1],Q[4][2]),mb5:v(Q[5][0],Q[5][1],Q[5][2]),mb6:v(Q[6][0],Q[6][1],Q[6][2]),mb7:v(Q[7][0],Q[7][1],Q[7][2])})},Ee=Pe=>{let Ce=Pe?.deltaTime??0;_+=Ce;let ie=r();if(ie&&typeof ie=="object")f=ie;else if(typeof ie=="string"&&ie!==p){p=ie;try{f=JSON.parse(ie)}catch{}}let Ne={elapsed:_,deltaTime:Ce,pointerX:Pe?.pointer?.x??.5,pointerY:Pe?.pointer?.y??.5,springs:h},ye=Be=>Gy(f[Be],n[Be]??0,Ne,Be);x=.3,T=.3,S=0;for(let Be=0;Be<Q.length;Be++)Q[Be]=[0,0,0];switch(t){case"cube3D":g=ye("sizeX"),x=ye("sizeY"),T=ye("sizeZ"),S=ye("rounding");break;case"torus3D":g=ye("radius"),x=ye("tube");break;case"cylinder3D":g=ye("radius"),x=ye("height"),S=ye("rounding");break;case"capsule3D":g=ye("radius"),x=ye("height");break;case"cone3D":g=ye("radius"),x=ye("height"),T=ye("topRadius");break;case"pyramid3D":g=ye("size"),x=ye("height");break;case"prism3D":case"diamond3D":g=ye("radius"),x=ye("height");break;case"ellipsoid3D":g=ye("radiusX"),x=ye("radiusY"),T=ye("radiusZ");break;case"link3D":g=ye("radius"),x=ye("length"),T=ye("tube");break;case"gem3D":g=ye("radius"),x=ye("height"),T=ye("facets");break;case"helix3D":g=ye("radius"),x=ye("tube"),T=ye("pitch");break;case"metaballs3D":{g=ye("ballRadius"),x=ye("spread"),S=ye("blend");let Be=Math.min(8,Math.max(1,Math.round(ye("balls")))),rt=x,tt=_*ye("speed")*.6;for(let Ke=0;Ke<Q.length;Ke++){if(Ke>=Be){Q[Ke]=[0,99,0];continue}let Oe=Ke*(Ui/Be),gt=Oe+tt,pt=.75+.25*Math.sin(tt*1.3+Ke*1.7);Q[Ke]=[rt*Math.cos(gt)*pt,rt*.6*Math.sin(tt*.9+Oe*1.5),rt*Math.sin(gt)*pt]}break}case"hemisphere3D":g=ye("radius"),x=ye("cut");break;case"ribbon3D":{g=ye("width"),x=ye("thickness"),T=ye("length");let Be=_*ye("speed"),rt=ye("wave")*(.8+.2*Math.sin(Be*.9)),tt=ye("waveFrequency"),Ke=ye("twist")*zi/Math.max(T*2,.01);Q[0]=[rt,tt,Be*1.1],Q[1]=[Be*.7+2.1,Ke,Be*.45];let Oe=Math.abs(rt)*tt+Math.abs(Ke)*Math.hypot(g,x);Q[2]=[1/Math.sqrt(1+Oe*Oe),0,0];break}case"blob3D":{g=ye("radius");let Be=_*ye("speed"),rt=ye("wobble")*(.75+.25*Math.sin(Be*.83)),tt=ye("wobbliness");Q[0]=[rt,tt,Be*1.2],Q[1]=[Be*.77+1.3,0,0],Q[2]=[1/(1+Math.abs(rt)*tt*1.3),0,0];break}case"gyroscope3D":{g=ye("radius"),x=ye("width"),T=ye("core"),S=ye("thickness");let Be=Math.max(0,Math.min(ye("rounding"),Math.min(x,S)*.5)),rt=_*ye("speed"),tt=rt*.9,Ke=rt*.63+1.1,Oe=rt*1.21+2.3;Q[0]=[Math.cos(tt),Math.sin(tt),0],Q[1]=[Math.cos(Ke),Math.sin(Ke),0],Q[2]=[Math.cos(Oe),Math.sin(Oe),0],Q[3]=[Be,0,0];break}default:g=ye("radius");break}A=eS({...f,type:t})+.02+i();let Ve=ye("rotX")*zi,qe=ye("rotY")*zi,st=ye("rotZ")*zi;E=Math.cos(Ve),M=Math.sin(Ve),$=Math.cos(qe),L=Math.sin(qe),B=Math.cos(st),D=Math.sin(st);let We=A+.05;G=We*2,I=We*2,X=.5-We,H=.5-We,de()};Ee();let he=Pe=>{Pe!==ee&&(ee=Pe,de())},Me=()=>`${g},${x},${T},${S},${A},`+Q.map(Pe=>`${Pe[0]},${Pe[1]},${Pe[2]}`).join(",");return{layout:d,marchParamsBuffer:l,sdfFn:c,update:Ee,setActiveRes:he,getStateKey:()=>`${Me()},${E},${M},${$},${L},${B},${D}`,getFootprint:()=>({spanX:G,spanY:I,originX:X,originY:H,rBound:A}),getRotation:()=>({cx:E,sx:M,cy:$,sy:L,cz:B,sz:D}),getGeometryKey:Me}}function dS(e,t,s,r={}){let o=e.gpu.root,n=r.extraPad??(()=>0),{texture:i,getVersion:d}=$y(e,t),{layout:l}=nS(),c=(globalThis.__TYPEGPU_AUTONAME__??(Pe=>Pe))(o.createUniform(va),"marchParamsBuffer"),_=a(512),p=a(511),f=y.fn([v],a)((Pe=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(Pe.f=(Ce=>{"use gpu";let ie=l.$.params,Ne=ie.pA,ye=ie.pB,Ve=__tsover_sub(__tsover_mul(__tsover_add(Ce.x,.5),_),.5),qe=__tsover_sub(__tsover_mul(__tsover_sub(.5,Ce.y),_),.5),st=K(Ve),We=K(qe),Be=__tsover_sub(Ve,st),rt=__tsover_sub(qe,We),tt=Y(z(st,a(0),p)),Ke=Y(z(__tsover_add(st,1),a(0),p)),Oe=Y(z(We,a(0),p)),gt=Y(z(__tsover_add(We,1),a(0),p)),pt=at(l.$.sdfSource,He(tt,Oe),0).r,Ut=at(l.$.sdfSource,He(Ke,Oe),0).r,Lt=at(l.$.sdfSource,He(tt,gt),0).r,Wt=at(l.$.sdfSource,He(Ke,gt),0).r,vs=Z(Z(pt,Ut,Be),Z(Lt,Wt,Be),rt),jt=__tsover_add(vs,ye),Qt=__tsover_add(__tsover_sub(W(Ce.z),Ne),ye),$s=ue(w(jt,Qt),a(0)),Is=te(u(w(jt,a(0)),w(Qt,a(0))));return __tsover_sub(__tsover_add($s,Is),ye)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"pp",[7,[7,"layout","$"],"params"]],[13,"halfDepth",[7,"pp","pA"]],[13,"bevel",[7,"pp","pB"]],[13,"u",[1,[1,[1,[7,"p","x"],"+",[5,"0.5"]],"*","SIZE_F"],"-",[5,"0.5"]]],[13,"v",[1,[1,[1,[5,"0.5"],"-",[7,"p","y"]],"*","SIZE_F"],"-",[5,"0.5"]]],[13,"x0",[6,"std.floor",["u"]]],[13,"y0",[6,"std.floor",["v"]]],[13,"fx",[1,"u","-","x0"]],[13,"fy",[1,"v","-","y0"]],[13,"cx0",[6,"d.u32",[[6,"std.clamp",["x0",[6,"d.f32",[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"cx1",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"cy0",[6,"d.u32",[[6,"std.clamp",["y0",[6,"d.f32",[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"cy1",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"s00",[7,[6,"std.textureLoad",[[7,[7,"layout","$"],"sdfSource"],[6,"d.vec2u",["cx0","cy0"]],[5,"0"]]],"r"]],[13,"s10",[7,[6,"std.textureLoad",[[7,[7,"layout","$"],"sdfSource"],[6,"d.vec2u",["cx1","cy0"]],[5,"0"]]],"r"]],[13,"s01",[7,[6,"std.textureLoad",[[7,[7,"layout","$"],"sdfSource"],[6,"d.vec2u",["cx0","cy1"]],[5,"0"]]],"r"]],[13,"s11",[7,[6,"std.textureLoad",[[7,[7,"layout","$"],"sdfSource"],[6,"d.vec2u",["cx1","cy1"]],[5,"0"]]],"r"]],[13,"field2d",[6,"std.mix",[[6,"std.mix",["s00","s10","fx"]],[6,"std.mix",["s01","s11","fx"]],"fy"]]],[13,"d2",[1,"field2d","+","bevel"]],[13,"wz",[1,[1,[6,"std.abs",[[7,"p","z"]]],"-","halfDepth"],"+","bevel"]],[13,"inner",[6,"std.min",[[6,"std.max",["d2","wz"]],[6,"d.f32",[[5,"0"]]]]]],[13,"outer",[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["d2",[6,"d.f32",[[5,"0"]]]]],[6,"std.max",["wz",[6,"d.f32",[[5,"0"]]]]]]]]]],[10,[1,[1,"inner","+","outer"],"-","bevel"]]]]},externals:{layout:()=>l,SIZE_F:()=>_,"std.floor":()=>K,"d.u32":()=>Y,"std.clamp":()=>z,"d.f32":()=>a,MAX_TEXEL:()=>p,"std.textureLoad":()=>at,"d.vec2u":()=>He,"std.mix":()=>Z,"std.abs":()=>W,"std.min":()=>ue,"std.max":()=>w,"std.length":()=>te,"d.vec2f":()=>u}})&&Pe.f)({})),h=0,g="",x=By(s()),T=new Map,S=.06,A=.02,E=.75,M=1,$=0,L=1,B=0,D=1,G=0,I=1,X=1,H=0,ee=0,Q=Xc(),de=()=>{c.write({rot:{cx:M,sx:$,cy:L,sy:B,cz:D,sz:G},rBound:E,spanX:I,spanY:X,originX:H,originY:ee,activeRes:Q,pA:S,pB:A,pC:0,pD:0,mb0:v(0,0,0),mb1:v(0,0,0),mb2:v(0,0,0),mb3:v(0,0,0),mb4:v(0,0,0),mb5:v(0,0,0),mb6:v(0,0,0),mb7:v(0,0,0)})},Ee=Pe=>{let Ce=Pe?.deltaTime??0;h+=Ce;let ie=s();if(ie&&typeof ie=="object")x=ie;else if(typeof ie=="string"&&ie!==g){g=ie;try{x=JSON.parse(ie)}catch{}}let Ne={elapsed:h,deltaTime:Ce,pointerX:Pe?.pointer?.x??.5,pointerY:Pe?.pointer?.y??.5,springs:T},ye=jt=>Gy(x[jt],QT[jt]??0,Ne,jt);S=Math.max(.001,ye("depth")*.5),A=Math.min(Math.max(0,ye("bevel")),S);let Ve=Rm(t),qe=Ve?Math.min(.5,Ve.hwf+.02):.5,st=Ve?Math.min(.5,Ve.hhf+.02):.5,We=n();E=Math.hypot(qe,st,S)+A+.03+We;let Be=ye("rotX")*zi,rt=ye("rotY")*zi,tt=ye("rotZ")*zi;M=Math.cos(Be),$=Math.sin(Be),L=Math.cos(rt),B=Math.sin(rt),D=Math.cos(tt),G=Math.sin(tt);let Ke={cx:M,sx:$,cy:L,sy:B,cz:D,sz:G},Oe=Rv(1,0,0,Ke),gt=Rv(0,1,0,Ke),pt=A+.03+We,Ut=Math.abs(Oe.x)*qe+Math.abs(Oe.y)*st+Math.abs(Oe.z)*S+pt,Lt=Math.abs(gt.x)*qe+Math.abs(gt.y)*st+Math.abs(gt.z)*S+pt,Wt=Ut+.05,vs=Lt+.05;I=Wt*2,X=vs*2,H=.5-Wt,ee=.5-vs,de()};Ee();let he=Pe=>{Pe!==Q&&(Q=Pe,de())},Me=()=>`${S},${A},${E},${d()}`,Te=()=>`${Me()},${I},${X},${M},${$},${L},${B},${D},${G}`;return{layout:l,marchParamsBuffer:c,sdfFn:f,sdfSourceTexture:i.texture,update:Ee,setActiveRes:he,getStateKey:Te,getFootprint:()=>({spanX:I,spanY:X,originX:H,originY:ee,rBound:E}),getRotation:()=>({cx:M,sx:$,cy:L,sy:B,cz:D,sz:G}),getGeometryKey:Me}}function NB(e,t,s,r,o={}){let n=o.extraPad??(()=>0),{layout:i}=Ly(),d=(globalThis.__TYPEGPU_AUTONAME__??(D=>D))(e.createUniform(va),"marchParamsBuffer"),l=Cy(t),c=y.fn([v],a)((D=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(D.f=(G=>{"use gpu";let I=i.$.params,X=l(u(__tsover_add(G.x,.5),__tsover_sub(.5,G.y)),I.pA,I.pB,I.pC,I.pD,I.mb0.x,I.mb0.y,I.mb0.z,I.mb1.x).x,H=__tsover_sub(W(G.z),I.mb1.y),ee=ue(w(X,H),a(0)),Q=te(u(w(X,a(0)),w(H,a(0))));return __tsover_add(ee,Q)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"pp",[7,[7,"layout","$"],"params"]],[13,"uv",[6,"d.vec2f",[[1,[7,"p","x"],"+",[5,"0.5"]],[1,[5,"0.5"],"-",[7,"p","y"]]]]],[13,"d2",[7,[6,"analytic",["uv",[7,"pp","pA"],[7,"pp","pB"],[7,"pp","pC"],[7,"pp","pD"],[7,[7,"pp","mb0"],"x"],[7,[7,"pp","mb0"],"y"],[7,[7,"pp","mb0"],"z"],[7,[7,"pp","mb1"],"x"]]],"x"]],[13,"wz",[1,[6,"std.abs",[[7,"p","z"]]],"-",[7,[7,"pp","mb1"],"y"]]],[13,"inner",[6,"std.min",[[6,"std.max",["d2","wz"]],[6,"d.f32",[[5,"0"]]]]]],[13,"outer",[6,"std.length",[[6,"d.vec2f",[[6,"std.max",["d2",[6,"d.f32",[[5,"0"]]]]],[6,"std.max",["wz",[6,"d.f32",[[5,"0"]]]]]]]]]],[10,[1,"inner","+","outer"]]]]},externals:{layout:()=>i,"d.vec2f":()=>u,analytic:()=>l,"std.abs":()=>W,"std.min":()=>ue,"std.max":()=>w,"d.f32":()=>a,"std.length":()=>te}})&&D.f)({})),_="",p=By(s()),f=Xp(p),h=.06,g=.6,x=1,T=1,S=0,A=0,E=Xc(),M=()=>{d.write({rot:{cx:1,sx:0,cy:1,sy:0,cz:1,sz:0},rBound:g,spanX:x,spanY:T,originX:S,originY:A,activeRes:E,pA:f.radius,pB:f.sides,pC:f.rounding,pD:f.innerRatio,mb0:v(f.rotation,f.height,f.offset),mb1:v(f.aperture,h,0),mb2:v(0,0,0),mb3:v(0,0,0),mb4:v(0,0,0),mb5:v(0,0,0),mb6:v(0,0,0),mb7:v(0,0,0)})},$=()=>{let D=s();if(D&&typeof D=="object")p=D;else if(typeof D=="string"&&D!==_){_=D;try{p=JSON.parse(D)}catch{}}f=Xp(p),h=Math.max(.001,r());let{hwf:G,hhf:I}=Cv({shape:{...p,radius:f.radius,height:f.height}});g=Math.hypot(G,I,h)+.02+n();let X=g+.05;x=X*2,T=X*2,S=.5-X,A=.5-X,M()};$();let L=D=>{D!==E&&(E=D,M())},B=()=>`${f.radius},${f.sides},${f.rounding},${f.innerRatio},${f.rotation},${f.height},${f.offset},${f.aperture},${h},${g}`;return{layout:i,marchParamsBuffer:d,sdfFn:c,update:$,setActiveRes:L,getStateKey:B,getFootprint:()=>({spanX:x,spanY:T,originX:S,originY:A,rBound:g}),getRotation:()=>({cx:1,sx:0,cy:1,sy:0,cz:1,sz:0}),getGeometryKey:B}}function qB(e,t,s="none",r="span"){let o=e.gpu?.root;if(!o)return null;let n=By(t()),i=e.getCpuValue("shapeSdfUrl")||"",d=e.getCpuValue("shapeType")||n.type||"",l=null;if(i&&zy(d)?l=dS(e,i,t):!i&&Um(d)&&(l=iS(o,d,n,t)),!l)return null;let c=Dy(l.sdfFn,s,r),_=rS(l.layout,c),p=oS(o,l.layout,_,e.onCleanup,{paramsUniform:l.marchParamsBuffer,sdfSourceTexture:l.sdfSourceTexture}),f=e.registerComputeTexture(p.fieldTexture),h=p.maxRes,g="",x=No()?2:1,T=0,S={originX:0,originY:0,spanX:1,spanY:1,activeRes:1,rBound:.6};return{outputs:{volumetricFieldTexture:f},getComputeNodes:E=>{l.update(E);let M=l.getFootprint(),$=e.getCpuValue("scale")??1,L=e.dimensions.height;h=sS(M.spanX,M.spanY,$,L,p.maxRes,h);let B=`${l.getStateKey()},${h}`;return B===g||(T++,x>1&&T%x!==0)?null:(g=B,l.setActiveRes(h),e.setExtraField("_vfOriginX",M.originX),e.setExtraField("_vfOriginY",M.originY),e.setExtraField("_vfSpanX",M.spanX),e.setExtraField("_vfSpanY",M.spanY),e.setExtraField("_vfActiveRes",h),e.setExtraField("_vfRBound",M.rBound),S.originX=M.originX,S.originY=M.originY,S.spanX=M.spanX,S.spanY=M.spanY,S.activeRes=h,S.rBound=M.rBound,[()=>p.dispatch(h)])},fieldTexture:p.fieldTexture,getFieldDomain:()=>({...S})}}var Kp=.08,Js=y.fn([v,b,b],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=s.x,n=s.y,i=s.z,d=s.w,l=r.x,c=r.y,_=v(__tsover_add(__tsover_mul(t.x,i),__tsover_mul(t.z,d)),t.y,__tsover_add(__tsover_mul(__tsover_mul(t.x,d),-1),__tsover_mul(t.z,i))),p=v(_.x,__tsover_sub(__tsover_mul(_.y,o),__tsover_mul(_.z,n)),__tsover_add(__tsover_mul(_.y,n),__tsover_mul(_.z,o)));return v(__tsover_sub(__tsover_mul(p.x,l),__tsover_mul(p.y,c)),__tsover_add(__tsover_mul(p.x,c),__tsover_mul(p.y,l)),p.z)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"}],body:[0,[[13,"cx",[7,"rp0","x"]],[13,"sx",[7,"rp0","y"]],[13,"cy",[7,"rp0","z"]],[13,"sy",[7,"rp0","w"]],[13,"cz",[7,"rp1","x"]],[13,"sz",[7,"rp1","y"]],[13,"py",[6,"d.vec3f",[[1,[1,[7,"p","x"],"*","cy"],"+",[1,[7,"p","z"],"*","sy"]],[7,"p","y"],[1,[1,[1,[7,"p","x"],"*","sy"],"*",[4,"-",[5,"1"]]],"+",[1,[7,"p","z"],"*","cy"]]]]],[13,"px",[6,"d.vec3f",[[7,"py","x"],[1,[1,[7,"py","y"],"*","cx"],"-",[1,[7,"py","z"],"*","sx"]],[1,[1,[7,"py","y"],"*","sx"],"+",[1,[7,"py","z"],"*","cx"]]]]],[10,[6,"d.vec3f",[[1,[1,[7,"px","x"],"*","cz"],"-",[1,[7,"px","y"],"*","sz"]],[1,[1,[7,"px","x"],"*","sz"],"+",[1,[7,"px","y"],"*","cz"]],[7,"px","z"]]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})).$name("eulerRotatePacked"),XB=y.fn([v,b,b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";return __tsover_sub(te(Js(t,s,r)),r.z)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[10,[1,[6,"std.length",[[6,"eulerRotatePacked",["p","rp0","rp1"]]]],"-",[7,"rp1","z"]]]]]},externals:{"std.length":()=>te,eulerRotatePacked:()=>Js}})&&e.f)({})).$name("paramSphereSdf"),HB=y.fn([v,v,b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Rs(Js(t,r,o));return u(__tsover_add(__tsover_div(bt(d.z,d.x),6.283185307179586),.5),__tsover_mul(__tsover_add(d.y,1),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"_n"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[13,"n",[6,"std.normalize",[[6,"eulerRotatePacked",["h","rp0","rp1"]]]]],[10,[6,"d.vec2f",[[1,[1,[6,"std.atan2",[[7,"n","z"],[7,"n","x"]]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]],[1,[1,[7,"n","y"],"+",[5,"1"]],"*",[5,"0.5"]]]]]]]},externals:{"std.normalize":()=>Rs,eulerRotatePacked:()=>Js,"d.vec2f":()=>u,"std.atan2":()=>bt}})&&e.f)({})).$name("sphereSurfaceUV"),jB=y.fn([v,b,b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=Js(t,s,r),d=u(__tsover_sub(te(u(i.x,i.z)),r.z),i.y);return __tsover_sub(te(d),r.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["p","rp0","rp1"]]],[13,"q",[6,"d.vec2f",[[1,[6,"std.length",[[6,"d.vec2f",[[7,"rp","x"],[7,"rp","z"]]]]],"-",[7,"rp1","z"]],[7,"rp","y"]]]],[10,[1,[6,"std.length",["q"]],"-",[7,"rp1","w"]]]]]},externals:{eulerRotatePacked:()=>Js,"d.vec2f":()=>u,"std.length":()=>te}})&&e.f)({})).$name("paramTorusSdf"),KB=y.fn([v,v,b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Js(t,r,o),l=__tsover_add(__tsover_div(bt(d.z,d.x),6.283185307179586),.5),c=__tsover_sub(te(u(d.x,d.z)),o.z);return u(l,__tsover_add(__tsover_div(bt(d.y,c),6.283185307179586),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"_n"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["h","rp0","rp1"]]],[13,"u",[1,[1,[6,"std.atan2",[[7,"rp","z"],[7,"rp","x"]]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]]],[13,"ringDist",[1,[6,"std.length",[[6,"d.vec2f",[[7,"rp","x"],[7,"rp","z"]]]]],"-",[7,"rp1","z"]]],[10,[6,"d.vec2f",["u",[1,[1,[6,"std.atan2",[[7,"rp","y"],"ringDist"]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]]]]]]]},externals:{eulerRotatePacked:()=>Js,"std.atan2":()=>bt,"std.length":()=>te,"d.vec2f":()=>u}})&&e.f)({})).$name("torusSurfaceUV"),ZB=y.fn([v,b,b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=Js(t,s,r),d=o.y,l=__tsover_add(__tsover_sub(W(i.x),r.z),d),c=__tsover_add(__tsover_sub(W(i.y),r.w),d),_=__tsover_add(__tsover_sub(W(i.z),o.x),d),p=te(v(w(l,a(0)),w(c,a(0)),w(_,a(0)))),f=ue(w(l,w(c,_)),a(0));return __tsover_sub(__tsover_add(p,f),d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["p","rp0","rp1"]]],[13,"rounding",[7,"rp2","y"]],[13,"qx",[1,[1,[6,"std.abs",[[7,"rp","x"]]],"-",[7,"rp1","z"]],"+","rounding"]],[13,"qy",[1,[1,[6,"std.abs",[[7,"rp","y"]]],"-",[7,"rp1","w"]],"+","rounding"]],[13,"qz",[1,[1,[6,"std.abs",[[7,"rp","z"]]],"-",[7,"rp2","x"]],"+","rounding"]],[13,"outer",[6,"std.length",[[6,"d.vec3f",[[6,"std.max",["qx",[6,"d.f32",[[5,"0"]]]]],[6,"std.max",["qy",[6,"d.f32",[[5,"0"]]]]],[6,"std.max",["qz",[6,"d.f32",[[5,"0"]]]]]]]]]],[13,"inner",[6,"std.min",[[6,"std.max",["qx",[6,"std.max",["qy","qz"]]]],[6,"d.f32",[[5,"0"]]]]]],[10,[1,[1,"outer","+","inner"],"-","rounding"]]]]},externals:{eulerRotatePacked:()=>Js,"std.abs":()=>W,"std.length":()=>te,"d.vec3f":()=>v,"std.max":()=>w,"d.f32":()=>a,"std.min":()=>ue}})&&e.f)({})).$name("paramBoxSdf"),QB=y.fn([v,v,b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Js(t,r,o),l=Js(s,r,o),c=v(W(l.x),W(l.y),W(l.z)),_=o.z,p=o.w,f=n.x,h=__tsover_div(.5,w(p,f)),g=__tsover_div(.5,w(_,f)),x=__tsover_div(.5,w(_,p)),T=u(__tsover_add(__tsover_mul(d.z,h),.5),__tsover_add(__tsover_mul(d.y,h),.5)),S=u(__tsover_add(__tsover_mul(d.x,g),.5),__tsover_add(__tsover_mul(d.z,g),.5)),A=u(__tsover_add(__tsover_mul(d.x,x),.5),__tsover_add(__tsover_mul(d.y,x),.5)),E=F(A,T,c.x>c.z);return F(F(A,S,c.y>c.z),E,c.x>c.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"n"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["h","rp0","rp1"]]],[13,"rn",[6,"eulerRotatePacked",["n","rp0","rp1"]]],[13,"an",[6,"d.vec3f",[[6,"std.abs",[[7,"rn","x"]]],[6,"std.abs",[[7,"rn","y"]]],[6,"std.abs",[[7,"rn","z"]]]]]],[13,"hx",[7,"rp1","z"]],[13,"hy",[7,"rp1","w"]],[13,"hz",[7,"rp2","x"]],[13,"scaleX",[1,[5,"0.5"],"/",[6,"std.max",["hy","hz"]]]],[13,"scaleY",[1,[5,"0.5"],"/",[6,"std.max",["hx","hz"]]]],[13,"scaleZ",[1,[5,"0.5"],"/",[6,"std.max",["hx","hy"]]]],[13,"uvX",[6,"d.vec2f",[[1,[1,[7,"rp","z"],"*","scaleX"],"+",[5,"0.5"]],[1,[1,[7,"rp","y"],"*","scaleX"],"+",[5,"0.5"]]]]],[13,"uvY",[6,"d.vec2f",[[1,[1,[7,"rp","x"],"*","scaleY"],"+",[5,"0.5"]],[1,[1,[7,"rp","z"],"*","scaleY"],"+",[5,"0.5"]]]]],[13,"uvZ",[6,"d.vec2f",[[1,[1,[7,"rp","x"],"*","scaleZ"],"+",[5,"0.5"]],[1,[1,[7,"rp","y"],"*","scaleZ"],"+",[5,"0.5"]]]]],[13,"pickXZ",[6,"std.select",["uvZ","uvX",[1,[7,"an","x"],">",[7,"an","z"]]]]],[13,"pickYZ",[6,"std.select",["uvZ","uvY",[1,[7,"an","y"],">",[7,"an","z"]]]]],[10,[6,"std.select",["pickYZ","pickXZ",[1,[7,"an","x"],">",[7,"an","y"]]]]]]]},externals:{eulerRotatePacked:()=>Js,"d.vec3f":()=>v,"std.abs":()=>W,"std.max":()=>w,"d.vec2f":()=>u,"std.select":()=>F}})&&e.f)({})).$name("boxFaceUV"),JB=y.fn([v,b,b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=Js(t,s,r),d=r.z,l=r.w,c=z(i.y,__tsover_mul(l,-1),l);return __tsover_sub(te(v(i.x,__tsover_sub(i.y,c),i.z)),d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["p","rp0","rp1"]]],[13,"radius",[7,"rp1","z"]],[13,"halfHeight",[7,"rp1","w"]],[13,"clampedY",[6,"std.clamp",[[7,"rp","y"],[1,"halfHeight","*",[4,"-",[5,"1"]]],"halfHeight"]]],[10,[1,[6,"std.length",[[6,"d.vec3f",[[7,"rp","x"],[1,[7,"rp","y"],"-","clampedY"],[7,"rp","z"]]]]],"-","radius"]]]]},externals:{eulerRotatePacked:()=>Js,"std.clamp":()=>z,"std.length":()=>te,"d.vec3f":()=>v}})&&e.f)({})).$name("paramCapsuleSdf"),e8=y.fn([v,v,b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Js(t,r,o),l=__tsover_add(__tsover_div(bt(d.z,d.x),6.283185307179586),.5),c=__tsover_add(o.w,o.z);return u(l,z(__tsover_add(__tsover_mul(__tsover_div(d.y,c),.5),.5),0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"_n"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["h","rp0","rp1"]]],[13,"u",[1,[1,[6,"std.atan2",[[7,"rp","z"],[7,"rp","x"]]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]]],[13,"span",[1,[7,"rp1","w"],"+",[7,"rp1","z"]]],[10,[6,"d.vec2f",["u",[6,"std.clamp",[[1,[1,[1,[7,"rp","y"],"/","span"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]]]]},externals:{eulerRotatePacked:()=>Js,"std.atan2":()=>bt,"d.vec2f":()=>u,"std.clamp":()=>z}})&&e.f)({})).$name("capsuleSurfaceUV"),t8=y.fn([v,b,b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=Js(t,s,r),d=r.z,l=r.w,c=o.x,_=bt(i.z,i.x),p=v(__tsover_mul(J(_),d),0,__tsover_mul(O(_),d)),f=v(__tsover_sub(i.x,p.x),__tsover_sub(i.y,p.y),__tsover_sub(i.z,p.z)),h=__tsover_mul(_,.5),g=v(__tsover_mul(J(_),J(h)),O(h),__tsover_mul(O(_),J(h))),x=le(f,g),T=w(__tsover_sub(W(x),l),a(0)),S=v(__tsover_sub(f.x,__tsover_mul(g.x,x)),__tsover_sub(f.y,__tsover_mul(g.y,x)),__tsover_sub(f.z,__tsover_mul(g.z,x)));return __tsover_sub(te(u(T,te(S))),c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["p","rp0","rp1"]]],[13,"ringRadius",[7,"rp1","z"]],[13,"halfWidth",[7,"rp1","w"]],[13,"thickness",[7,"rp2","x"]],[13,"phi",[6,"std.atan2",[[7,"rp","z"],[7,"rp","x"]]]],[13,"spine",[6,"d.vec3f",[[1,[6,"std.cos",["phi"]],"*","ringRadius"],[5,"0"],[1,[6,"std.sin",["phi"]],"*","ringRadius"]]]],[13,"dvec",[6,"d.vec3f",[[1,[7,"rp","x"],"-",[7,"spine","x"]],[1,[7,"rp","y"],"-",[7,"spine","y"]],[1,[7,"rp","z"],"-",[7,"spine","z"]]]]],[13,"halfPhi",[1,"phi","*",[5,"0.5"]]],[13,"ev",[6,"d.vec3f",[[1,[6,"std.cos",["phi"]],"*",[6,"std.cos",["halfPhi"]]],[6,"std.sin",["halfPhi"]],[1,[6,"std.sin",["phi"]],"*",[6,"std.cos",["halfPhi"]]]]]],[13,"vProj",[6,"std.dot",["dvec","ev"]]],[13,"du",[6,"std.max",[[1,[6,"std.abs",["vProj"]],"-","halfWidth"],[6,"d.f32",[[5,"0"]]]]]],[13,"perp",[6,"d.vec3f",[[1,[7,"dvec","x"],"-",[1,[7,"ev","x"],"*","vProj"]],[1,[7,"dvec","y"],"-",[1,[7,"ev","y"],"*","vProj"]],[1,[7,"dvec","z"],"-",[1,[7,"ev","z"],"*","vProj"]]]]],[10,[1,[6,"std.length",[[6,"d.vec2f",["du",[6,"std.length",["perp"]]]]]],"-","thickness"]]]]},externals:{eulerRotatePacked:()=>Js,"std.atan2":()=>bt,"d.vec3f":()=>v,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"std.max":()=>w,"std.abs":()=>W,"d.f32":()=>a,"std.length":()=>te,"d.vec2f":()=>u}})&&e.f)({})).$name("paramMobiusSdf"),s8=y.fn([v,v,b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=Js(t,r,o),l=o.z,c=o.w,_=bt(d.z,d.x),p=v(__tsover_mul(J(_),l),0,__tsover_mul(O(_),l)),f=v(__tsover_sub(d.x,p.x),__tsover_sub(d.y,p.y),__tsover_sub(d.z,p.z)),h=__tsover_mul(_,.5),g=le(f,v(__tsover_mul(J(_),J(h)),O(h),__tsover_mul(O(_),J(h))));return u(__tsover_add(__tsover_div(_,6.283185307179586),.5),__tsover_add(__tsover_mul(__tsover_div(g,c),.5),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"_n"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"_t"}],body:[0,[[13,"rp",[6,"eulerRotatePacked",["h","rp0","rp1"]]],[13,"ringRadius",[7,"rp1","z"]],[13,"halfWidth",[7,"rp1","w"]],[13,"phi",[6,"std.atan2",[[7,"rp","z"],[7,"rp","x"]]]],[13,"spine",[6,"d.vec3f",[[1,[6,"std.cos",["phi"]],"*","ringRadius"],[5,"0"],[1,[6,"std.sin",["phi"]],"*","ringRadius"]]]],[13,"dvec",[6,"d.vec3f",[[1,[7,"rp","x"],"-",[7,"spine","x"]],[1,[7,"rp","y"],"-",[7,"spine","y"]],[1,[7,"rp","z"],"-",[7,"spine","z"]]]]],[13,"halfPhi",[1,"phi","*",[5,"0.5"]]],[13,"ev",[6,"d.vec3f",[[1,[6,"std.cos",["phi"]],"*",[6,"std.cos",["halfPhi"]]],[6,"std.sin",["halfPhi"]],[1,[6,"std.sin",["phi"]],"*",[6,"std.cos",["halfPhi"]]]]]],[13,"vProj",[6,"std.dot",["dvec","ev"]]],[10,[6,"d.vec2f",[[1,[1,"phi","/",[5,"6.283185307179586"]],"+",[5,"0.5"]],[1,[1,[1,"vProj","/","halfWidth"],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]]},externals:{eulerRotatePacked:()=>Js,"std.atan2":()=>bt,"d.vec3f":()=>v,"std.cos":()=>J,"std.sin":()=>O,"std.dot":()=>le,"d.vec2f":()=>u}})&&e.f)({})).$name("mobiusSurfaceUV"),r8=y.fn([v,b,b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=s.x,d=s.y,l=s.z,c=r.x,_=r.y,p=r.z,f=J(i),h=O(i),g=__tsover_add(__tsover_mul(t.x,f),__tsover_mul(t.y,h)),x=__tsover_add(__tsover_mul(__tsover_mul(t.x,h),-1),__tsover_mul(t.y,f)),T=__tsover_add(__tsover_add(__tsover_mul(g,d),_),__tsover_mul(n,Kp)),S=J(T),A=O(T),E=__tsover_add(__tsover_mul(x,S),__tsover_mul(t.z,A)),M=__tsover_add(__tsover_mul(__tsover_mul(x,A),-1),__tsover_mul(t.z,S)),$=w(__tsover_sub(W(E),l),a(0));return __tsover_div(__tsover_sub(te(u($,M)),c),p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"t"}],body:[0,[[13,"angleRad",[7,"rp0","x"]],[13,"twist",[7,"rp0","y"]],[13,"halfW",[7,"rp0","z"]],[13,"thickness",[7,"rp1","x"]],[13,"phase",[7,"rp1","y"]],[13,"lipschitz",[7,"rp1","z"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"rpx",[1,[1,[7,"p","x"],"*","cosA"],"+",[1,[7,"p","y"],"*","sinA"]]],[13,"rpy",[1,[1,[1,[7,"p","x"],"*","sinA"],"*",[4,"-",[5,"1"]]],"+",[1,[7,"p","y"],"*","cosA"]]],[13,"twistAngle",[1,[1,[1,"rpx","*","twist"],"+","phase"],"+",[1,"t","*","TWISTED_RIBBON_TWIST_RATE"]]],[13,"ca",[6,"std.cos",["twistAngle"]]],[13,"sa",[6,"std.sin",["twistAngle"]]],[13,"localU",[1,[1,"rpy","*","ca"],"+",[1,[7,"p","z"],"*","sa"]]],[13,"localV",[1,[1,[1,"rpy","*","sa"],"*",[4,"-",[5,"1"]]],"+",[1,[7,"p","z"],"*","ca"]]],[13,"du",[6,"std.max",[[1,[6,"std.abs",["localU"]],"-","halfW"],[6,"d.f32",[[5,"0"]]]]]],[10,[1,[1,[6,"std.length",[[6,"d.vec2f",["du","localV"]]]],"-","thickness"],"/","lipschitz"]]]]},externals:{"std.cos":()=>J,"std.sin":()=>O,TWISTED_RIBBON_TWIST_RATE:()=>Kp,"std.max":()=>w,"std.abs":()=>W,"d.f32":()=>a,"std.length":()=>te,"d.vec2f":()=>u}})&&e.f)({})).$name("paramTwistedRibbonSdf"),o8=y.fn([v,v,b,b,b,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=r.x,l=r.y,c=r.z,_=r.w,p=o.y,f=J(d),h=O(d),g=__tsover_add(__tsover_mul(t.x,f),__tsover_mul(t.y,h)),x=__tsover_add(__tsover_mul(__tsover_mul(t.x,h),-1),__tsover_mul(t.y,f)),T=__tsover_add(__tsover_add(__tsover_mul(g,l),p),__tsover_mul(i,Kp)),S=J(T),A=O(T),E=w(ue(__tsover_add(__tsover_mul(x,S),__tsover_mul(t.z,A)),c),__tsover_mul(c,-1));return u(__tsover_add(__tsover_mul(g,.15),.5),__tsover_add(__tsover_div(E,_),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"h"},{type:"i",name:"_n"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"_rp2"},{type:"i",name:"t"}],body:[0,[[13,"angleRad",[7,"rp0","x"]],[13,"twist",[7,"rp0","y"]],[13,"halfW",[7,"rp0","z"]],[13,"width",[7,"rp0","w"]],[13,"phase",[7,"rp1","y"]],[13,"cosA",[6,"std.cos",["angleRad"]]],[13,"sinA",[6,"std.sin",["angleRad"]]],[13,"rpx",[1,[1,[7,"h","x"],"*","cosA"],"+",[1,[7,"h","y"],"*","sinA"]]],[13,"rpy",[1,[1,[1,[7,"h","x"],"*","sinA"],"*",[4,"-",[5,"1"]]],"+",[1,[7,"h","y"],"*","cosA"]]],[13,"twistAngle",[1,[1,[1,"rpx","*","twist"],"+","phase"],"+",[1,"t","*","TWISTED_RIBBON_TWIST_RATE"]]],[13,"ca",[6,"std.cos",["twistAngle"]]],[13,"sa",[6,"std.sin",["twistAngle"]]],[13,"localU",[1,[1,"rpy","*","ca"],"+",[1,[7,"h","z"],"*","sa"]]],[13,"localUClamped",[6,"std.max",[[6,"std.min",["localU","halfW"]],[1,"halfW","*",[4,"-",[5,"1"]]]]]],[10,[6,"d.vec2f",[[1,[1,"rpx","*",[5,"0.15"]],"+",[5,"0.5"]],[1,[1,"localUClamped","/","width"],"+",[5,"0.5"]]]]]]]},externals:{"std.cos":()=>J,"std.sin":()=>O,TWISTED_RIBBON_TWIST_RATE:()=>Kp,"std.max":()=>w,"std.min":()=>ue,"d.vec2f":()=>u}})&&e.f)({})).$name("twistedRibbonSurfaceUV");function n8(e,t){let s={};return t.forEach((r,o)=>{s[`${e}${o}`]={schema:b,initial:r}}),s}var Tf=No()?128:192,sq=Math.ceil(Tf/4)*Tf*Tf,Zp=No()?512:1024;var rq=Math.PI/180;var Sf=2.39996323,v5=.27;var oq=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({cam:J6(16,ew(32,qc)),lightDir:v,voxelSize:a,lightT1:v,fill:a,lightT2:v,voxelScale:a,bevel:a,gridOrigin:a,gridN:a,gridW:a}),"VoxelMarchParams");var Af=y.fn([Hs(a),a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=a(__tsover_sub(Zp,1)),i=K(s),d=K(r),l=__tsover_sub(s,i),c=__tsover_sub(r,d),_=Y(z(i,a(0),n)),p=Y(z(__tsover_add(i,1),a(0),n)),f=Y(z(d,a(0),n)),h=Y(z(__tsover_add(d,1),a(0),n)),g=F(a(0),a(1),at(t,He(_,f),0).r<o),x=F(a(0),a(1),at(t,He(p,f),0).r<o),T=F(a(0),a(1),at(t,He(_,h),0).r<o),S=F(a(0),a(1),at(t,He(p,h),0).r<o);return Z(Z(g,x,l),Z(T,S,l),c)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"tex"},{type:"i",name:"mx"},{type:"i",name:"my"},{type:"i",name:"ref"}],body:[0,[[13,"maxT",[6,"d.f32",[[1,"VOXEL_SHADOW_RES","-",[5,"1"]]]]],[13,"x0",[6,"std.floor",["mx"]]],[13,"y0",[6,"std.floor",["my"]]],[13,"fx",[1,"mx","-","x0"]],[13,"fy",[1,"my","-","y0"]],[13,"cx0",[6,"d.u32",[[6,"std.clamp",["x0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cx1",[6,"d.u32",[[6,"std.clamp",[[1,"x0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy0",[6,"d.u32",[[6,"std.clamp",["y0",[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"cy1",[6,"d.u32",[[6,"std.clamp",[[1,"y0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],"maxT"]]]]],[13,"s00",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,[7,[6,"std.textureLoad",["tex",[6,"d.vec2u",["cx0","cy0"]],[5,"0"]]],"r"],"<","ref"]]]],[13,"s10",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,[7,[6,"std.textureLoad",["tex",[6,"d.vec2u",["cx1","cy0"]],[5,"0"]]],"r"],"<","ref"]]]],[13,"s01",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,[7,[6,"std.textureLoad",["tex",[6,"d.vec2u",["cx0","cy1"]],[5,"0"]]],"r"],"<","ref"]]]],[13,"s11",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,[7,[6,"std.textureLoad",["tex",[6,"d.vec2u",["cx1","cy1"]],[5,"0"]]],"r"],"<","ref"]]]],[10,[6,"std.mix",[[6,"std.mix",["s00","s10","fx"]],[6,"std.mix",["s01","s11","fx"]],"fy"]]]]]},externals:{"d.f32":()=>a,VOXEL_SHADOW_RES:()=>Zp,"std.floor":()=>K,"d.u32":()=>Y,"std.clamp":()=>z,"std.select":()=>F,"std.textureLoad":()=>at,"d.vec2u":()=>He,"std.mix":()=>Z}})&&e.f)({})).$name("voxelShadowCompare"),nq=y.fn([Hs(a),v,v,v,v,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=a(Zp),_=__tsover_div(__tsover_mul(i,2),c),p=le(s,o),f=le(s,n),h=__tsover_sub(i,le(s,r)),g=__tsover_sub(__tsover_mul(__tsover_add(__tsover_mul(__tsover_div(p,i),.5),.5),c),.5),x=__tsover_sub(__tsover_mul(__tsover_add(__tsover_mul(__tsover_div(f,i),.5),.5),c),.5),T=__tsover_sub(h,__tsover_add(__tsover_mul(l,.05),__tsover_mul(_,2))),S=a(0);if(d<.001)S=Af(t,g,x,T);else{let A=__tsover_mul(d,v5),E=w(__tsover_div(ue(__tsover_mul(i,A),__tsover_mul(i,.25)),_),1),M=a(0),$=a(0);for(let L=0;L<8;L++){let B=__tsover_mul($e(__tsover_div(__tsover_add(a(L),.5),8)),E),D=__tsover_mul(a(L),Sf),G=z(__tsover_add(g,__tsover_mul(J(D),B)),a(0),__tsover_sub(c,1)),I=z(__tsover_add(x,__tsover_mul(O(D),B)),a(0),__tsover_sub(c,1)),X=at(t,He(Y(G),Y(I)),0).r;X<T&&(M=__tsover_add(M,X),$=__tsover_add($,1))}if($>.5){let L=__tsover_div(M,$),B=z(__tsover_div(__tsover_mul(__tsover_sub(h,L),A),_),1,E),D=a(0);for(let G=0;G<12;G++){let I=__tsover_mul($e(__tsover_div(__tsover_add(a(G),.5),12)),B),X=__tsover_add(__tsover_mul(a(G),Sf),.7);D=__tsover_add(D,Af(t,__tsover_add(g,__tsover_mul(J(X),I)),__tsover_add(x,__tsover_mul(O(X),I)),T))}S=__tsover_div(D,12)}}return S}),{v:2,name:void 0,ast:{params:[{type:"i",name:"tex"},{type:"i",name:"p"},{type:"i",name:"L"},{type:"i",name:"T1"},{type:"i",name:"T2"},{type:"i",name:"rBound"},{type:"i",name:"softness"},{type:"i",name:"voxel"}],body:[0,[[13,"RES",[6,"d.f32",["VOXEL_SHADOW_RES"]]],[13,"texelWorld",[1,[1,"rBound","*",[5,"2"]],"/","RES"]],[13,"u",[6,"std.dot",["p","T1"]]],[13,"w",[6,"std.dot",["p","T2"]]],[13,"dL",[1,"rBound","-",[6,"std.dot",["p","L"]]]],[13,"mx",[1,[1,[1,[1,[1,"u","/","rBound"],"*",[5,"0.5"]],"+",[5,"0.5"]],"*","RES"],"-",[5,"0.5"]]],[13,"my",[1,[1,[1,[1,[1,"w","/","rBound"],"*",[5,"0.5"]],"+",[5,"0.5"]],"*","RES"],"-",[5,"0.5"]]],[13,"ref",[1,"dL","-",[1,[1,"voxel","*",[5,"0.05"]],"+",[1,"texelWorld","*",[5,"2"]]]]],[12,"shadow",[6,"d.f32",[[5,"0"]]]],[11,[1,"softness","<",[5,"0.001"]],[0,[[2,"shadow","=",[6,"shadowCompare",["tex","mx","my","ref"]]]]],[0,[[13,"k",[1,"softness","*","SOFT_TAN"]],[13,"rSearch",[6,"std.max",[[1,[6,"std.min",[[1,"rBound","*","k"],[1,"rBound","*",[5,"0.25"]]]],"/","texelWorld"],[5,"1"]]]],[12,"sum",[6,"d.f32",[[5,"0"]]]],[12,"count",[6,"d.f32",[[5,"0"]]]],[14,[12,"s",[5,"0"]],[1,"s","<",[5,"8"]],[102,"++","s"],[0,[[13,"r",[1,[6,"std.sqrt",[[1,[1,[6,"d.f32",["s"]],"+",[5,"0.5"]],"/",[5,"8"]]]],"*","rSearch"]],[13,"th",[1,[6,"d.f32",["s"]],"*","GOLDEN_ANGLE"]],[13,"sx",[6,"std.clamp",[[1,"mx","+",[1,[6,"std.cos",["th"]],"*","r"]],[6,"d.f32",[[5,"0"]]],[1,"RES","-",[5,"1"]]]]],[13,"sy",[6,"std.clamp",[[1,"my","+",[1,[6,"std.sin",["th"]],"*","r"]],[6,"d.f32",[[5,"0"]]],[1,"RES","-",[5,"1"]]]]],[13,"dep",[7,[6,"std.textureLoad",["tex",[6,"d.vec2u",[[6,"d.u32",["sx"]],[6,"d.u32",["sy"]]]],[5,"0"]]],"r"]],[11,[1,"dep","<","ref"],[0,[[2,"sum","=",[1,"sum","+","dep"]],[2,"count","=",[1,"count","+",[5,"1"]]]]]]]]],[11,[1,"count",">",[5,"0.5"]],[0,[[13,"avgBlocker",[1,"sum","/","count"]],[13,"penumbra",[6,"std.clamp",[[1,[1,[1,"dL","-","avgBlocker"],"*","k"],"/","texelWorld"],[5,"1"],"rSearch"]]],[12,"acc",[6,"d.f32",[[5,"0"]]]],[14,[12,"s",[5,"0"]],[1,"s","<",[5,"12"]],[102,"++","s"],[0,[[13,"r",[1,[6,"std.sqrt",[[1,[1,[6,"d.f32",["s"]],"+",[5,"0.5"]],"/",[5,"12"]]]],"*","penumbra"]],[13,"th",[1,[1,[6,"d.f32",["s"]],"*","GOLDEN_ANGLE"],"+",[5,"0.7"]]],[2,"acc","=",[1,"acc","+",[6,"shadowCompare",["tex",[1,"mx","+",[1,[6,"std.cos",["th"]],"*","r"]],[1,"my","+",[1,[6,"std.sin",["th"]],"*","r"]],"ref"]]]]]]],[2,"shadow","=",[1,"acc","/",[5,"12"]]]]]]]]],[10,"shadow"]]]},externals:{"d.f32":()=>a,VOXEL_SHADOW_RES:()=>Zp,"std.dot":()=>le,shadowCompare:()=>Af,SOFT_TAN:()=>v5,"std.max":()=>w,"std.min":()=>ue,"std.sqrt":()=>$e,GOLDEN_ANGLE:()=>Sf,"std.clamp":()=>z,"std.cos":()=>J,"std.sin":()=>O,"std.textureLoad":()=>at,"d.vec2u":()=>He,"d.u32":()=>Y}})&&e.f)({})).$name("voxelShadowLookup"),h5=y.fn([v,v,v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=F(a(-1),a(1),s.x>=0),i=F(a(-1),a(1),s.y>=0),d=F(a(-1),a(1),s.z>=0),l=__tsover_div(n,w(W(s.x),1e-6)),c=__tsover_div(i,w(W(s.y),1e-6)),_=__tsover_div(d,w(W(s.z),1e-6)),p=__tsover_mul(__tsover_sub(__tsover_sub(r.x,o),t.x),l),f=__tsover_mul(__tsover_sub(__tsover_add(r.x,o),t.x),l),h=__tsover_mul(__tsover_sub(__tsover_sub(r.y,o),t.y),c),g=__tsover_mul(__tsover_sub(__tsover_add(r.y,o),t.y),c),x=__tsover_mul(__tsover_sub(__tsover_sub(r.z,o),t.z),_),T=__tsover_mul(__tsover_sub(__tsover_add(r.z,o),t.z),_),S=w(ue(p,f),w(ue(h,g),ue(x,T))),A=ue(w(p,f),ue(w(h,g),w(x,T))),E=__tsover_mul(F(a(0),a(1),S<=A),F(a(0),a(1),A>=0));return F(a(-1),w(S,a(0)),E>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"ro"},{type:"i",name:"rd"},{type:"i",name:"c"},{type:"i",name:"h"}],body:[0,[[13,"sx",[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],[6,"d.f32",[[5,"1"]]],[1,[7,"rd","x"],">=",[5,"0"]]]]],[13,"sy",[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],[6,"d.f32",[[5,"1"]]],[1,[7,"rd","y"],">=",[5,"0"]]]]],[13,"sz",[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],[6,"d.f32",[[5,"1"]]],[1,[7,"rd","z"],">=",[5,"0"]]]]],[13,"ix",[1,"sx","/",[6,"std.max",[[6,"std.abs",[[7,"rd","x"]]],[5,"0.000001"]]]]],[13,"iy",[1,"sy","/",[6,"std.max",[[6,"std.abs",[[7,"rd","y"]]],[5,"0.000001"]]]]],[13,"iz",[1,"sz","/",[6,"std.max",[[6,"std.abs",[[7,"rd","z"]]],[5,"0.000001"]]]]],[13,"t1x",[1,[1,[1,[7,"c","x"],"-","h"],"-",[7,"ro","x"]],"*","ix"]],[13,"t2x",[1,[1,[1,[7,"c","x"],"+","h"],"-",[7,"ro","x"]],"*","ix"]],[13,"t1y",[1,[1,[1,[7,"c","y"],"-","h"],"-",[7,"ro","y"]],"*","iy"]],[13,"t2y",[1,[1,[1,[7,"c","y"],"+","h"],"-",[7,"ro","y"]],"*","iy"]],[13,"t1z",[1,[1,[1,[7,"c","z"],"-","h"],"-",[7,"ro","z"]],"*","iz"]],[13,"t2z",[1,[1,[1,[7,"c","z"],"+","h"],"-",[7,"ro","z"]],"*","iz"]],[13,"tIn",[6,"std.max",[[6,"std.min",["t1x","t2x"]],[6,"std.max",[[6,"std.min",["t1y","t2y"]],[6,"std.min",["t1z","t2z"]]]]]]],[13,"tOut",[6,"std.min",[[6,"std.max",["t1x","t2x"]],[6,"std.min",[[6,"std.max",["t1y","t2y"]],[6,"std.max",["t1z","t2z"]]]]]]],[13,"ok",[1,[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"tIn","<=","tOut"]]],"*",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"tOut",">=",[5,"0"]]]]]],[10,[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],[6,"std.max",["tIn",[6,"d.f32",[[5,"0"]]]]],[1,"ok",">",[5,"0.5"]]]]]]]},externals:{"std.select":()=>F,"d.f32":()=>a,"std.max":()=>w,"std.abs":()=>W,"std.min":()=>ue}})&&e.f)({})).$name("voxelRayBox"),aq=y.fn([v,v,v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=t.sub(r),i=le(n,s),d=__tsover_sub(le(n,n),__tsover_mul(o,o)),l=__tsover_sub(__tsover_mul(i,i),d),c=__tsover_sub(__tsover_mul(i,-1),$e(w(l,0))),_=__tsover_mul(F(a(0),a(1),l>=0),F(a(0),a(1),c>=0));return F(a(-1),c,_>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"ro"},{type:"i",name:"rd"},{type:"i",name:"c"},{type:"i",name:"h"}],body:[0,[[13,"oc",[6,[7,"ro","sub"],["c"]]],[13,"b",[6,"std.dot",["oc","rd"]]],[13,"cc",[1,[6,"std.dot",["oc","oc"]],"-",[1,"h","*","h"]]],[13,"disc",[1,[1,"b","*","b"],"-","cc"]],[13,"t",[1,[1,"b","*",[4,"-",[5,"1"]]],"-",[6,"std.sqrt",[[6,"std.max",["disc",[5,"0"]]]]]]],[13,"ok",[1,[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"disc",">=",[5,"0"]]]],"*",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"t",">=",[5,"0"]]]]]],[10,[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],"t",[1,"ok",">",[5,"0.5"]]]]]]]},externals:{"std.dot":()=>le,"std.sqrt":()=>$e,"std.max":()=>w,"std.select":()=>F,"d.f32":()=>a}})&&e.f)({})).$name("voxelRaySphere"),iq=y.fn([v,v,v,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=h5(t,s,r,o),d=a(-1);if(i>=0){let l=i,c=a(0);for(let _=0;_<8;_++){let p=Ac(t.add(s.mul(l)).sub(r),o,o,o,n);if(p<__tsover_mul(o,.004)){c=a(1);break}if(l=__tsover_add(l,p),l>__tsover_add(i,__tsover_mul(o,3.5)))break}d=F(a(-1),l,c>.5)}return d}),{v:2,name:void 0,ast:{params:[{type:"i",name:"ro"},{type:"i",name:"rd"},{type:"i",name:"c"},{type:"i",name:"h"},{type:"i",name:"r"}],body:[0,[[13,"tBox",[6,"voxelRayBox",["ro","rd","c","h"]]],[12,"t",[6,"d.f32",[[4,"-",[5,"1"]]]]],[11,[1,"tBox",">=",[5,"0"]],[0,[[12,"s","tBox"],[12,"hit",[6,"d.f32",[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"8"]],[102,"++","i"],[0,[[13,"p",[6,[7,[6,[7,"ro","add"],[[6,[7,"rd","mul"],["s"]]]],"sub"],["c"]]],[13,"dd",[6,"sdRoundBox",["p","h","h","h","r"]]],[11,[1,"dd","<",[1,"h","*",[5,"0.004"]]],[0,[[2,"hit","=",[6,"d.f32",[[5,"1"]]]],[17]]]],[2,"s","=",[1,"s","+","dd"]],[11,[1,"s",">",[1,"tBox","+",[1,"h","*",[5,"3.5"]]]],[0,[[17]]]]]]],[2,"t","=",[6,"std.select",[[6,"d.f32",[[4,"-",[5,"1"]]]],"s",[1,"hit",">",[5,"0.5"]]]]]]]],[10,"t"]]]},externals:{voxelRayBox:()=>h5,"d.f32":()=>a,sdRoundBox:()=>Ac,"std.select":()=>F}})&&e.f)({})).$name("voxelRayRoundedBox");var lS=Pn({bevelSin:()=>cS}),cS=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_sub(1,t),o=ce(0,.14,t),n=ce(.68,.92,t);return Z(r,Z(a(1),__tsover_mul(.72,__tsover_sub(1,n)),o),s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"shape"}],body:[0,[[13,"sRound",[1,[5,"1"],"-","t"]],[13,"k1",[6,"std.smoothstep",[[5,"0"],[5,"0.14"],"t"]]],[13,"k2",[6,"std.smoothstep",[[5,"0.68"],[5,"0.92"],"t"]]],[13,"sMach",[6,"std.mix",[[6,"d.f32",[[5,"1"]]],[1,[5,"0.72"],"*",[1,[5,"1"],"-","k2"]],"k1"]]],[10,[6,"std.mix",["sRound","sMach","shape"]]]]]},externals:{"std.smoothstep":()=>ce,"std.mix":()=>Z,"d.f32":()=>a}})&&e.f)({})),uS=Pn({BLUR_DISK:()=>Ei,GlassLensUVs:()=>q_,applyGlassEffect:()=>i8,glassBlurOffset:()=>pS,glassBorderHighlight:()=>th,glassComposite:()=>mS,glassFresnelRim:()=>rh,glassGradient:()=>Dm,glassLensUVs:()=>_S,glassRefrStrength:()=>Pc,glassSpecular:()=>sh,glassTint:()=>eh,offsetUV:()=>jd,sdfSpaceUV:()=>Gm}),Oa=.017453292519943295,M_=.4472135954999579,a8=2.3999632297286535,Jv=9,Ei=[];for(let e=0;e<Jv;e++){let t=e*a8,s=Math.sqrt(e/Jv);Ei.push([Math.cos(t)*s,Math.sin(t)*s])}var Gm=y.fn([u,a,a,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=t.x,d=__tsover_sub(1,t.y),l=__tsover_mul(__tsover_sub(o.x,i),n),c=__tsover_sub(o.y,d),_=__tsover_mul(r,Oa),p=J(_),f=O(_),h=__tsover_add(__tsover_mul(l,p),__tsover_mul(c,f)),g=__tsover_sub(__tsover_mul(c,p),__tsover_mul(l,f));return u(__tsover_add(__tsover_div(h,s),.5),__tsover_add(__tsover_div(g,s),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"scale"},{type:"i",name:"rotation"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"centerX",[7,"center","x"]],[13,"centerY",[1,[5,"1"],"-",[7,"center","y"]]],[13,"dxAc",[1,[1,[7,"uv","x"],"-","centerX"],"*","aspect"]],[13,"dy",[1,[7,"uv","y"],"-","centerY"]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[13,"rdx",[1,[1,"dxAc","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dxAc","*","sinR"]]],[10,[6,"d.vec2f",[[1,[1,"rdx","/","scale"],"+",[5,"0.5"]],[1,[1,"rdy","/","scale"],"+",[5,"0.5"]]]]]]]},externals:{DEG_TO_RAD:()=>Oa,"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({})),jd=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(__tsover_add(t.x,s),__tsover_add(t.y,r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,"d.vec2f",[[1,[7,"uv","x"],"+","ox"],[1,[7,"uv","y"],"+","oy"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),Dm=y.fn([a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return u(__tsover_div(__tsover_sub(s,t),.01),__tsover_div(__tsover_sub(r,t),.01))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdfRaw"},{type:"i",name:"sdfX"},{type:"i",name:"sdfY"}],body:[0,[[13,"eps",[5,"0.01"]],[10,[6,"d.vec2f",[[1,[1,"sdfX","-","sdfRaw"],"/","eps"],[1,[1,"sdfY","-","sdfRaw"],"/","eps"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),Pc=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=w(__tsover_mul(s,.3),.005),n=z(__tsover_div(__tsover_mul(t,-1),o),0,1),i=ce(0,1,n);return F(__tsover_mul(__tsover_sub(1,n),__tsover_sub(1,n)),i,r>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"thickness"},{type:"i",name:"volumetric"}],body:[0,[[13,"thicknessRange",[6,"std.max",[[1,"thickness","*",[5,"0.3"]],[5,"0.005"]]]],[13,"depthNorm",[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","thicknessRange"],[5,"0"],[5,"1"]]]],[13,"vol",[6,"std.smoothstep",[[5,"0"],[5,"1"],"depthNorm"]]],[13,"flat",[1,[1,[5,"1"],"-","depthNorm"],"*",[1,[5,"1"],"-","depthNorm"]]],[10,[6,"std.select",["flat","vol",[1,"volumetric",">",[5,"0.5"]]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,"std.smoothstep":()=>ce,"std.select":()=>F}})&&e.f)({})),q_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({lensUV:u,rUV:u,bUV:u}),"GlassLensUVs"),_S=y.fn([u,u,a,a,a,a,a,a,a,a,a,a],q_)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p,f)=>{"use gpu";let h=Pc(__tsover_div(r,o),c,f),g=__tsover_mul(d,.15),x=w($e(__tsover_add(__tsover_mul(n,n),__tsover_mul(i,i))),1e-4),T=ue(a(1),__tsover_div(12,x)),S=__tsover_div(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(n,T),-1),g),h),p),A=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(i,T),-1),g),h),E=s.x,M=__tsover_sub(1,s.y),$=__tsover_add(E,__tsover_div(__tsover_sub(t.x,E),l)),L=__tsover_add(M,__tsover_div(__tsover_sub(t.y,M),l)),B=__tsover_add($,S),D=__tsover_add(L,A),G=__tsover_mul(_,.06),I=__tsover_mul(S,G),X=__tsover_mul(A,G);return q_({lensUV:u(B,D),rUV:u(__tsover_add(B,I),__tsover_add(D,X)),bUV:u(__tsover_sub(B,I),__tsover_sub(D,X))})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"center"},{type:"i",name:"sdfRaw"},{type:"i",name:"scale"},{type:"i",name:"gradX"},{type:"i",name:"gradY"},{type:"i",name:"refraction"},{type:"i",name:"innerZoom"},{type:"i",name:"thickness"},{type:"i",name:"aberration"},{type:"i",name:"aspect"},{type:"i",name:"volumetric"}],body:[0,[[13,"sdf",[1,"sdfRaw","/","scale"]],[13,"refrStrength",[6,"glassRefrStrength",["sdf","thickness","volumetric"]]],[13,"refrScale",[1,"refraction","*",[5,"0.15"]]],[13,"slopeLen",[6,"std.max",[[6,"std.sqrt",[[1,[1,"gradX","*","gradX"],"+",[1,"gradY","*","gradY"]]]],[5,"0.0001"]]]],[13,"slopeScale",[6,"std.min",[[6,"d.f32",[[5,"1"]]],[1,[5,"12"],"/","slopeLen"]]]],[13,"offsetX",[1,[1,[1,[1,[1,"gradX","*","slopeScale"],"*",[4,"-",[5,"1"]]],"*","refrScale"],"*","refrStrength"],"/","aspect"]],[13,"offsetY",[1,[1,[1,[1,"gradY","*","slopeScale"],"*",[4,"-",[5,"1"]]],"*","refrScale"],"*","refrStrength"]],[13,"centerX",[7,"center","x"]],[13,"centerY",[1,[5,"1"],"-",[7,"center","y"]]],[13,"zoomedX",[1,"centerX","+",[1,[1,[7,"uv","x"],"-","centerX"],"/","innerZoom"]]],[13,"zoomedY",[1,"centerY","+",[1,[1,[7,"uv","y"],"-","centerY"],"/","innerZoom"]]],[13,"lensX",[1,"zoomedX","+","offsetX"]],[13,"lensY",[1,"zoomedY","+","offsetY"]],[13,"chrScale",[1,"aberration","*",[5,"0.06"]]],[13,"chrOffX",[1,"offsetX","*","chrScale"]],[13,"chrOffY",[1,"offsetY","*","chrScale"]],[10,[6,"GlassLensUVs",[[104,{lensUV:[6,"d.vec2f",["lensX","lensY"]],rUV:[6,"d.vec2f",[[1,"lensX","+","chrOffX"],[1,"lensY","+","chrOffY"]]],bUV:[6,"d.vec2f",[[1,"lensX","-","chrOffX"],[1,"lensY","-","chrOffY"]]]}]]]]]]},externals:{glassRefrStrength:()=>Pc,"std.max":()=>w,"std.sqrt":()=>$e,"std.min":()=>ue,"d.f32":()=>a,GlassLensUVs:()=>q_,"d.vec2f":()=>u}})&&e.f)({})),pS=y.fn([u,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(s,2);return u(__tsover_mul(__tsover_div(r,t.x),n),__tsover_mul(__tsover_div(o,t.y),n))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"viewportSize"},{type:"i",name:"blur"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[13,"m",[1,"blur","*",[5,"2"]]],[10,[6,"d.vec2f",[[1,[1,"ox","/",[7,"viewportSize","x"]],"*","m"],[1,[1,"oy","/",[7,"viewportSize","y"]],"*","m"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),eh=y.fn([v,v,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=v(.299,.587,.114),i=le(t,n),d=Z(t,s,r),l=le(d,n);return Z(d,d.mul(__tsover_div(i,w(l,1e-4))),F(a(0),a(1),o>.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"tintColor"},{type:"i",name:"tintIntensity"},{type:"i",name:"preserveLum"}],body:[0,[[13,"lumWeights",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]],[13,"origLum",[6,"std.dot",["rgb","lumWeights"]]],[13,"tinted",[6,"std.mix",["rgb","tintColor","tintIntensity"]]],[13,"tintedLum",[6,"std.dot",["tinted","lumWeights"]]],[13,"lumPreserved",[6,[7,"tinted","mul"],[[1,"origLum","/",[6,"std.max",["tintedLum",[5,"0.0001"]]]]]]],[13,"preserveFactor",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"preserveLum",">",[5,"0.5"]]]]],[10,[6,"std.mix",["tinted","lumPreserved","preserveFactor"]]]]]},externals:{"d.vec3f":()=>v,"std.dot":()=>le,"std.mix":()=>Z,"std.max":()=>w,"std.select":()=>F,"d.f32":()=>a}})&&e.f)({})),th=y.fn([a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=w(__tsover_mul(s,.5),.001),c=w(__tsover_mul(l,.0625),__tsover_mul(r,1.5)),_=__tsover_sub(t,r),p=__tsover_sub(z(__tsover_div(__tsover_mul(_,-1),c),0,1),z(__tsover_div(__tsover_mul(t,-1),c),0,1)),f=J(__tsover_mul(i,Oa)),h=O(__tsover_mul(i,Oa)),g=__tsover_add(__tsover_mul(o,f),__tsover_mul(n,h)),x=z(__tsover_add(__tsover_mul(g,.5),.5),0,1);return __tsover_mul(__tsover_mul(p,x),d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"edgeSoftness"},{type:"i",name:"pxH"},{type:"i",name:"gradX"},{type:"i",name:"gradY"},{type:"i",name:"lightAngle"},{type:"i",name:"highlight"}],body:[0,[[13,"sharp",[6,"std.max",[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"w2",[6,"std.max",[[1,"sharp","*",[5,"0.0625"]],[1,"pxH","*",[5,"1.5"]]]]],[13,"sdfOuter",[1,"sdf","-","pxH"]],[13,"rb2base",[1,[6,"std.clamp",[[1,[1,"sdfOuter","*",[4,"-",[5,"1"]]],"/","w2"],[5,"0"],[5,"1"]]],"-",[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","w2"],[5,"0"],[5,"1"]]]]],[13,"lx",[6,"std.cos",[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,"std.sin",[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"normalDotLight",[1,[1,"gradX","*","lx"],"+",[1,"gradY","*","ly"]]],[13,"lightFacing",[6,"std.clamp",[[1,[1,"normalDotLight","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,[1,[1,"rb2base","*","lightFacing"],"*","highlight"]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,"std.cos":()=>J,DEG_TO_RAD:()=>Oa,"std.sin":()=>O}})&&e.f)({})),sh=y.fn([a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=J(__tsover_mul(r,Oa)),l=O(__tsover_mul(r,Oa)),c=a(2),_=$e(__tsover_add(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s)),__tsover_mul(c,c))),p=__tsover_div(t,_),f=__tsover_div(s,_),h=__tsover_div(c,_),g=__tsover_add(__tsover_add(__tsover_mul(p,__tsover_mul(d,M_)),__tsover_mul(f,__tsover_mul(l,M_))),__tsover_mul(h,__tsover_mul(2,M_))),x=rp(__tsover_sub(8,__tsover_mul(n,7)));return __tsover_mul(__tsover_mul(Ye(z(g,0,1),x),o),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"gradX"},{type:"i",name:"gradY"},{type:"i",name:"lightAngle"},{type:"i",name:"highlight"},{type:"i",name:"highlightSoftness"},{type:"i",name:"refrStrength"}],body:[0,[[13,"lx",[6,"std.cos",[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,"std.sin",[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"nz",[6,"d.f32",[[5,"2"]]]],[13,"nLen",[6,"std.sqrt",[[1,[1,[1,"gradX","*","gradX"],"+",[1,"gradY","*","gradY"]],"+",[1,"nz","*","nz"]]]]],[13,"nx",[1,"gradX","/","nLen"]],[13,"ny",[1,"gradY","/","nLen"]],[13,"nnz",[1,"nz","/","nLen"]],[13,"nDotH",[1,[1,[1,"nx","*",[1,"lx","*","INV_HLEN_GLASS"]],"+",[1,"ny","*",[1,"ly","*","INV_HLEN_GLASS"]]],"+",[1,"nnz","*",[1,[5,"2"],"*","INV_HLEN_GLASS"]]]],[13,"shininess",[6,"std.exp2",[[1,[5,"8"],"-",[1,"highlightSoftness","*",[5,"7"]]]]]],[10,[1,[1,[6,"std.pow",[[6,"std.clamp",["nDotH",[5,"0"],[5,"1"]]],"shininess"]],"*","highlight"],"*","refrStrength"]]]]},externals:{"std.cos":()=>J,DEG_TO_RAD:()=>Oa,"std.sin":()=>O,"d.f32":()=>a,"std.sqrt":()=>$e,INV_HLEN_GLASS:()=>M_,"std.exp2":()=>rp,"std.pow":()=>Ye,"std.clamp":()=>z}})&&e.f)({})),rh=y.fn([a,a,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_add(__tsover_mul(s,s),__tsover_mul(r,r)),c=__tsover_div(1,$e(__tsover_add(l,1))),_=Z(6,1.5,z(n,0,1)),p=__tsover_mul(__tsover_mul(__tsover_mul(Ye(__tsover_sub(1,c),_),o),2),i),f=w(__tsover_mul(n,.06),.001),h=z(__tsover_div(__tsover_mul(t,-1),f),0,1);return F(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_sub(1,h),__tsover_sub(1,h)),o),i),p,d>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"gradX"},{type:"i",name:"gradY"},{type:"i",name:"fresnel"},{type:"i",name:"fresnelSoftness"},{type:"i",name:"rb1"},{type:"i",name:"volumetric"}],body:[0,[[13,"slopeSq",[1,[1,"gradX","*","gradX"],"+",[1,"gradY","*","gradY"]]],[13,"cosView",[1,[5,"1"],"/",[6,"std.sqrt",[[1,"slopeSq","+",[5,"1"]]]]]],[13,"exponent",[6,"std.mix",[[5,"6"],[5,"1.5"],[6,"std.clamp",["fresnelSoftness",[5,"0"],[5,"1"]]]]]],[13,"volRim",[1,[1,[1,[6,"std.pow",[[1,[5,"1"],"-","cosView"],"exponent"]],"*","fresnel"],"*",[5,"2"]],"*","rb1"]],[13,"fresnelWidth",[6,"std.max",[[1,"fresnelSoftness","*",[5,"0.06"]],[5,"0.001"]]]],[13,"fresnelDepth",[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","fresnelWidth"],[5,"0"],[5,"1"]]]],[13,"flatRim",[1,[1,[1,[1,[5,"1"],"-","fresnelDepth"],"*",[1,[5,"1"],"-","fresnelDepth"]],"*","fresnel"],"*","rb1"]],[10,[6,"std.select",["flatRim","volRim",[1,"volumetric",">",[5,"0.5"]]]]]]]},externals:{"std.sqrt":()=>$e,"std.mix":()=>Z,"std.clamp":()=>z,"std.pow":()=>Ye,"std.max":()=>w,"std.select":()=>F}})&&e.f)({})),mS=y.fn([b,b,a,a,a,a,u,a,a,a,v,a,a,v,a,a,v,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p,f,h,g,x,T,S,A,E,M,$)=>{"use gpu";let L=w(__tsover_mul(l,.5),.001),B=__tsover_div(1,d.y),D=__tsover_div(r,o),G=w(__tsover_mul(L,.03125),__tsover_mul(B,1.5)),I=z(__tsover_div(__tsover_mul(D,-1),G),0,1),X=Pc(D,T,$),H=th(D,l,B,n,i,c,_),ee=eh(v(s.x,s.y,s.z),S,A,E),Q=sh(n,i,c,_,f,X),de=rh(D,n,i,h,x,I,$),Ee=b(__tsover_add(__tsover_add(__tsover_add(ee.x,__tsover_mul(p.x,H)),__tsover_mul(p.x,Q)),__tsover_mul(g.x,de)),__tsover_add(__tsover_add(__tsover_add(ee.y,__tsover_mul(p.y,H)),__tsover_mul(p.y,Q)),__tsover_mul(g.y,de)),__tsover_add(__tsover_add(__tsover_add(ee.z,__tsover_mul(p.z,H)),__tsover_mul(p.z,Q)),__tsover_mul(g.z,de)),__tsover_add(s.w,H)),he=ce(0,1,I),Me=Z(t,Ee,he),Te=F(a(1),he,M>.5);return b(Me.x,Me.y,Me.z,__tsover_mul(Me.w,Te))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"baseColor"},{type:"i",name:"blurred"},{type:"i",name:"sdfRaw"},{type:"i",name:"scale"},{type:"i",name:"gradX"},{type:"i",name:"gradY"},{type:"i",name:"viewportSize"},{type:"i",name:"edgeSoftness"},{type:"i",name:"lightAngle"},{type:"i",name:"highlight"},{type:"i",name:"highlightColor"},{type:"i",name:"highlightSoftness"},{type:"i",name:"fresnel"},{type:"i",name:"fresnelColor"},{type:"i",name:"fresnelSoftness"},{type:"i",name:"thickness"},{type:"i",name:"tintColor"},{type:"i",name:"tintIntensity"},{type:"i",name:"tintPreserveLuminosity"},{type:"i",name:"cutout"},{type:"i",name:"volumetric"}],body:[0,[[13,"sharp",[6,"std.max",[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdf",[1,"sdfRaw","/","scale"]],[13,"w1",[6,"std.max",[[1,"sharp","*",[5,"0.03125"]],[1,"pxH","*",[5,"1.5"]]]]],[13,"rb1",[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","w1"],[5,"0"],[5,"1"]]]],[13,"refrStrength",[6,"glassRefrStrength",["sdf","thickness","volumetric"]]],[13,"rb2",[6,"glassBorderHighlight",["sdf","edgeSoftness","pxH","gradX","gradY","lightAngle","highlight"]]],[13,"blurredRgb",[6,"d.vec3f",[[7,"blurred","x"],[7,"blurred","y"],[7,"blurred","z"]]]],[13,"tintedRgb",[6,"glassTint",["blurredRgb","tintColor","tintIntensity","tintPreserveLuminosity"]]],[13,"specGlint",[6,"glassSpecular",["gradX","gradY","lightAngle","highlight","highlightSoftness","refrStrength"]]],[13,"fresnelRim",[6,"glassFresnelRim",["sdf","gradX","gradY","fresnel","fresnelSoftness","rb1","volumetric"]]],[13,"litR",[1,[1,[1,[7,"tintedRgb","x"],"+",[1,[7,"highlightColor","x"],"*","rb2"]],"+",[1,[7,"highlightColor","x"],"*","specGlint"]],"+",[1,[7,"fresnelColor","x"],"*","fresnelRim"]]],[13,"litG",[1,[1,[1,[7,"tintedRgb","y"],"+",[1,[7,"highlightColor","y"],"*","rb2"]],"+",[1,[7,"highlightColor","y"],"*","specGlint"]],"+",[1,[7,"fresnelColor","y"],"*","fresnelRim"]]],[13,"litB",[1,[1,[1,[7,"tintedRgb","z"],"+",[1,[7,"highlightColor","z"],"*","rb2"]],"+",[1,[7,"highlightColor","z"],"*","specGlint"]],"+",[1,[7,"fresnelColor","z"],"*","fresnelRim"]]],[13,"litA",[1,[7,"blurred","w"],"+","rb2"]],[13,"lighting",[6,"d.vec4f",["litR","litG","litB","litA"]]],[13,"transition",[6,"std.smoothstep",[[5,"0"],[5,"1"],"rb1"]]],[13,"composited",[6,"std.mix",["baseColor","lighting","transition"]]],[13,"cutoutAlpha",[6,"std.select",[[6,"d.f32",[[5,"1"]]],"transition",[1,"cutout",">",[5,"0.5"]]]]],[10,[6,"d.vec4f",[[7,"composited","x"],[7,"composited","y"],[7,"composited","z"],[1,[7,"composited","w"],"*","cutoutAlpha"]]]]]]},externals:{"std.max":()=>w,"std.clamp":()=>z,glassRefrStrength:()=>Pc,glassBorderHighlight:()=>th,"d.vec3f":()=>v,glassTint:()=>eh,glassSpecular:()=>sh,glassFresnelRim:()=>rh,"d.vec4f":()=>b,"std.smoothstep":()=>ce,"std.mix":()=>Z,"std.select":()=>F,"d.f32":()=>a}})&&e.f)({}));function i8(e,t,s,r,o){let{uniforms:n,propValues:i,ctx:d}=e,l=o?.volumetric??!1,c=o?.bakedGradients??!1,_=nt(l?1:0),p=Vs(se(Gm,"sdfSpaceUV",[n.center,n.scale,n.rotation,d.uv,d.aspect]),"glassSdfUV"),f=Vs(t(p),"glassSurf"),h=f.member("r"),g,x;if(c)g=f.member("g"),x=f.member("b");else{let H=t(se(jd,"offsetUV",[p,nt(.01),nt(0)])),ee=t(se(jd,"offsetUV",[p,nt(0),nt(.01)])),Q=Vs(se(Dm,"glassGradient",[h,H.member("r"),ee.member("r")]),"glassGrad");g=Q.member("x"),x=Q.member("y")}let T=Vs(se(_S,"glassLensUVs",[d.uv,n.center,h,n.scale,g,x,n.refraction,n.innerZoom,n.thickness,n.aberration,d.aspect,_]),"glassLens"),S=T.member("lensUV"),A=T.member("rUV"),E=T.member("bUV"),M=i.blur,$=typeof M=="number"?M>0:!0,L=i.aberration,B=typeof L=="number"?L>0:!0,D=(H,ee,Q,de)=>H.sample(ee.add(se(pS,"glassBlurOffset",[d.viewportSize,n.blur,nt(Q),nt(de)]))),G=(H,ee)=>{let Q=D(H,ee,Ei[0][0],Ei[0][1]);for(let de=1;de<Ei.length;de++)Q=Q.add(D(H,ee,Ei[de][0],Ei[de][1]));return Q.mul(1/Jv)},I;if(r&&$)I=B?Ss(r.sample(A).member("r"),r.sample(S).member("g"),r.sample(E).member("b"),r.sample(S).member("a")):r.sample(S);else if(!$&&!B)I=s.sample(S);else if(!$&&B)I=Ss(s.sample(A).member("r"),s.sample(S).member("g"),s.sample(E).member("b"),s.sample(S).member("a"));else if($&&!B)I=G(s,S);else{let H=G(s,A),ee=G(s,S),Q=G(s,E);I=Ss(H.member("r"),ee.member("g"),Q.member("b"),ee.member("a"))}let X=se(Hn,"unpremultiplyAlpha",[I]);return se(mS,"glassComposite",[se(Hn,"unpremultiplyAlpha",[s.sample(d.uv)]),X,h,n.scale,g,x,d.viewportSize,n.edgeSoftness,n.lightAngle,n.highlight,n.highlightColor.member("rgb"),n.highlightSoftness,n.fresnel,n.fresnelColor.member("rgb"),n.fresnelSoftness,n.thickness,n.tintColor.member("rgb"),n.tintIntensity,n.tintPreserveLuminosity,n.cutout,_])}var dq=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),o=__tsover_div(s.x,s.y),n=w(__tsover_div(o,r),1);return u(__tsover_mul(__tsover_div(r,o),n),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dims"},{type:"i",name:"vp"}],body:[0,[[13,"aspect",[1,[7,"dims","x"],"/",[7,"dims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"coverScale",[6,"std.max",[[1,"viewportAspect","/","aspect"],[5,"1"]]]],[10,[6,"d.vec2f",[[1,[1,"aspect","/","viewportAspect"],"*","coverScale"],"coverScale"]]]]]},externals:{"std.max":()=>w,"d.vec2f":()=>u}})&&e.f)({})),lq=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),o=__tsover_div(s.x,s.y),n=ue(__tsover_div(o,r),1);return u(__tsover_mul(__tsover_div(r,o),n),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dims"},{type:"i",name:"vp"}],body:[0,[[13,"aspect",[1,[7,"dims","x"],"/",[7,"dims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"containScale",[6,"std.min",[[1,"viewportAspect","/","aspect"],[5,"1"]]]],[10,[6,"d.vec2f",[[1,[1,"aspect","/","viewportAspect"],"*","containScale"],"containScale"]]]]]},externals:{"std.min":()=>ue,"d.vec2f":()=>u}})&&e.f)({})),cq=y.fn([],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(()=>{"use gpu";return u(1,1)}),{v:2,name:void 0,ast:{params:[],body:[0,[[10,[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),uq=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),o=__tsover_div(s.x,s.y),n=ue(ue(__tsover_div(o,r),1),ue(__tsover_div(s.x,t.x),__tsover_div(s.y,t.y)));return u(__tsover_mul(__tsover_div(r,o),n),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dims"},{type:"i",name:"vp"}],body:[0,[[13,"aspect",[1,[7,"dims","x"],"/",[7,"dims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"containScale",[6,"std.min",[[1,"viewportAspect","/","aspect"],[5,"1"]]]],[13,"naturalScale",[6,"std.min",[[1,[7,"vp","x"],"/",[7,"dims","x"]],[1,[7,"vp","y"],"/",[7,"dims","y"]]]]],[13,"scaleDownScale",[6,"std.min",["containScale","naturalScale"]]],[10,[6,"d.vec2f",[[1,[1,"aspect","/","viewportAspect"],"*","scaleDownScale"],"scaleDownScale"]]]]]},externals:{"std.min":()=>ue,"d.vec2f":()=>u}})&&e.f)({})),_q=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),o=__tsover_div(s.x,s.y),n=ue(__tsover_div(s.x,t.x),__tsover_div(s.y,t.y));return u(__tsover_mul(__tsover_div(r,o),n),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dims"},{type:"i",name:"vp"}],body:[0,[[13,"aspect",[1,[7,"dims","x"],"/",[7,"dims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"noneScale",[6,"std.min",[[1,[7,"vp","x"],"/",[7,"dims","x"]],[1,[7,"vp","y"],"/",[7,"dims","y"]]]]],[10,[6,"d.vec2f",[[1,[1,"aspect","/","viewportAspect"],"*","noneScale"],"noneScale"]]]]]},externals:{"std.min":()=>ue,"d.vec2f":()=>u}})&&e.f)({})),pq=y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.sub(u(.5,.5));return u(__tsover_div(r.x,s.x),__tsover_div(r.y,s.y)).add(u(.5,.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"uvScale"}],body:[0,[[13,"centeredUV",[6,[7,"uv","sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"scaledUV",[6,"d.vec2f",[[1,[7,"centeredUV","x"],"/",[7,"uvScale","x"]],[1,[7,"centeredUV","y"],"/",[7,"uvScale","y"]]]]],[10,[6,[7,"scaledUV","add"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),mq=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(F(t.x,__tsover_sub(1,t.x),s>0),t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"mirror"}],body:[0,[[13,"mirroredX",[6,"std.select",[[7,"uv","x"],[1,[5,"1"],"-",[7,"uv","x"]],[1,"mirror",">",[5,"0"]]]]],[10,[6,"d.vec2f",["mirroredX",[7,"uv","y"]]]]]]},externals:{"std.select":()=>F,"d.vec2f":()=>u}})&&e.f)({})),fq=y.fn([b,u],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=d2(v(t.x,t.y,t.z)),o=s.x<0||s.x>1||s.y<0||s.y>1,n=F(t.w,0,o);return b(r.x,r.y,r.z,n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"}],body:[0,[[13,"linear",[6,"srgbToLinear",[[6,"d.vec3f",[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]]]],[13,"outOfBounds",[3,[3,[3,[1,[7,"uv","x"],"<",[5,"0"]],"||",[1,[7,"uv","x"],">",[5,"1"]]],"||",[1,[7,"uv","y"],"<",[5,"0"]]],"||",[1,[7,"uv","y"],">",[5,"1"]]]],[13,"alpha",[6,"std.select",[[7,"color","w"],[5,"0"],"outOfBounds"]]],[10,[6,"d.vec4f",[[7,"linear","x"],[7,"linear","y"],[7,"linear","z"],"alpha"]]]]]},externals:{srgbToLinear:()=>d2,"d.vec3f":()=>v,"std.select":()=>F,"d.vec4f":()=>b}})&&e.f)({}));var vq=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=W(s),i=__tsover_sub(r,t),d=o,l=__tsover_mul(r,2),c=z(__tsover_div(__tsover_add(__tsover_mul(n,d),__tsover_mul(i,l)),w(__tsover_add(__tsover_mul(d,d),__tsover_mul(l,l)),1e-9)),0,1),_=__tsover_sub(n,__tsover_mul(d,c)),p=__tsover_sub(i,__tsover_mul(l,c)),f=__tsover_sub(n,__tsover_mul(d,z(__tsover_div(n,w(d,1e-9)),0,1))),h=__tsover_sub(i,l),g=ue(__tsover_add(__tsover_mul(_,_),__tsover_mul(p,p)),__tsover_add(__tsover_mul(f,f),__tsover_mul(h,h))),x=ue(__tsover_sub(__tsover_mul(i,d),__tsover_mul(n,l)),__tsover_sub(l,i))>0;return F($e(g),-$e(g),x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"n"},{type:"i",name:"hl"},{type:"i",name:"hw"}],body:[0,[[13,"px",[6,"std.abs",["n"]]],[13,"py",[1,"hl","-","t"]],[13,"qx","hw"],[13,"qy",[1,"hl","*",[5,"2"]]],[13,"k",[6,"std.clamp",[[1,[1,[1,"px","*","qx"],"+",[1,"py","*","qy"]],"/",[6,"std.max",[[1,[1,"qx","*","qx"],"+",[1,"qy","*","qy"]],[5,"1e-9"]]]],[5,"0"],[5,"1"]]]],[13,"ax",[1,"px","-",[1,"qx","*","k"]]],[13,"ay",[1,"py","-",[1,"qy","*","k"]]],[13,"bx",[1,"px","-",[1,"qx","*",[6,"std.clamp",[[1,"px","/",[6,"std.max",["qx",[5,"1e-9"]]]],[5,"0"],[5,"1"]]]]]],[13,"by",[1,"py","-","qy"]],[13,"dSq",[6,"std.min",[[1,[1,"ax","*","ax"],"+",[1,"ay","*","ay"]],[1,[1,"bx","*","bx"],"+",[1,"by","*","by"]]]]],[13,"sA",[1,[1,"py","*","qx"],"-",[1,"px","*","qy"]]],[13,"sB",[1,"qy","-","py"]],[13,"inside",[1,[6,"std.min",["sA","sB"]],">",[5,"0"]]],[10,[6,"std.select",[[6,"std.sqrt",["dSq"]],[4,"-",[6,"std.sqrt",["dSq"]]],"inside"]]]]]},externals:{"std.abs":()=>W,"std.clamp":()=>z,"std.max":()=>w,"std.min":()=>ue,"std.select":()=>F,"std.sqrt":()=>$e}})&&e.f)({})).$name("agentArrowSdf"),hq=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_sub(t,z(t,-r,r));return __tsover_sub($e(__tsover_add(__tsover_mul(n,n),__tsover_mul(s,s))),o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"n"},{type:"i",name:"hl"},{type:"i",name:"r"}],body:[0,[[13,"tc",[1,"t","-",[6,"std.clamp",["t",[4,"-","hl"],"hl"]]]],[10,[1,[6,"std.sqrt",[[1,[1,"tc","*","tc"],"+",[1,"n","*","n"]]]],"-","r"]]]]},externals:{"std.clamp":()=>z,"std.sqrt":()=>$e}})&&e.f)({})).$name("agentCapsuleSdf"),yq=y.fn([a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_sub(W(t),r),i=__tsover_sub(W(s),o),d=w(n,0),l=w(i,0);return __tsover_add($e(__tsover_add(__tsover_mul(d,d),__tsover_mul(l,l))),ue(w(n,i),0))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"n"},{type:"i",name:"hl"},{type:"i",name:"hw"}],body:[0,[[13,"qx",[1,[6,"std.abs",["t"]],"-","hl"]],[13,"qy",[1,[6,"std.abs",["n"]],"-","hw"]],[13,"ox",[6,"std.max",["qx",[5,"0"]]]],[13,"oy",[6,"std.max",["qy",[5,"0"]]]],[10,[1,[6,"std.sqrt",[[1,[1,"ox","*","ox"],"+",[1,"oy","*","oy"]]]],"+",[6,"std.min",[[6,"std.max",["qx","qy"]],[5,"0"]]]]]]]},externals:{"std.abs":()=>W,"std.max":()=>w,"std.sqrt":()=>$e,"std.min":()=>ue}})&&e.f)({})).$name("agentBoxSdf");var gq=y.fn([u,u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=te(t),i=F(u(0,0),t.div(w(n,1e-5)).mul(r),n>1e-5).sub(s),d=te(i);return F(i,i.div(w(d,1e-5)).mul(o),d>o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"dir"},{type:"i",name:"vel"},{type:"i",name:"maxSpeed"},{type:"i",name:"maxForce"}],body:[0,[[13,"len",[6,"std.length",["dir"]]],[13,"desired",[6,"std.select",[[6,"d.vec2f",[[5,"0"],[5,"0"]]],[6,[7,[6,[7,"dir","div"],[[6,"std.max",["len",[5,"0.00001"]]]]],"mul"],["maxSpeed"]],[1,"len",">",[5,"0.00001"]]]]],[13,"steer",[6,[7,"desired","sub"],["vel"]]],[13,"sl",[6,"std.length",["steer"]]],[10,[6,"std.select",["steer",[6,[7,[6,[7,"steer","div"],[[6,"std.max",["sl",[5,"0.00001"]]]]],"mul"],["maxForce"]],[1,"sl",">","maxForce"]]]]]]},externals:{"std.length":()=>te,"std.select":()=>F,"d.vec2f":()=>u,"std.max":()=>w}})&&e.f)({})).$name("agentReynoldsSteer"),xq=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(.82,__tsover_mul(fr(__tsover_add(__tsover_mul(t,.61803),.13)),.4))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"fi"}],body:[0,[[10,[1,[5,"0.82"],"+",[1,[6,"noise.hash11",[[1,[1,"fi","*",[5,"0.61803"]],"+",[5,"0.13"]]]],"*",[5,"0.4"]]]]]]},externals:{"noise.hash11":()=>fr}})&&e.f)({})).$name("agentCruiseVariation"),bq=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_add(.55,__tsover_mul(fr(__tsover_add(__tsover_mul(t,1.91),2.53)),.7))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"fi"}],body:[0,[[10,[1,[5,"0.55"],"+",[1,[6,"noise.hash11",[[1,[1,"fi","*",[5,"1.91"]],"+",[5,"2.53"]]]],"*",[5,"0.7"]]]]]]},externals:{"noise.hash11":()=>fr}})&&e.f)({})).$name("agentPresenceVariation"),wq=y.fn([b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=z(t.w,0,1),o=__tsover_add(r,__tsover_mul(s.w,__tsover_sub(1,r))),n=t.xyz.mul(r).add(s.xyz.mul(__tsover_mul(s.w,__tsover_sub(1,r)))).div(w(o,1e-4));return b(n.x,n.y,n.z,o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"c"}],body:[0,[[13,"pa",[6,"std.clamp",[[7,"p","w"],[5,"0"],[5,"1"]]]],[13,"outA",[1,"pa","+",[1,[7,"c","w"],"*",[1,[5,"1"],"-","pa"]]]],[13,"rgb",[6,[7,[6,[7,[6,[7,[7,"p","xyz"],"mul"],["pa"]],"add"],[[6,[7,[7,"c","xyz"],"mul"],[[1,[7,"c","w"],"*",[1,[5,"1"],"-","pa"]]]]]],"div"],[[6,"std.max",["outA",[5,"0.0001"]]]]]],[10,[6,"d.vec4f",[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"outA"]]]]]},externals:{"std.clamp":()=>z,"std.max":()=>w,"d.vec4f":()=>b}})&&e.f)({})).$name("agentStraightAlphaOver"),Tq=y.fn([u,u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=le(s,t);return F(t.mul(__tsover_mul(2,o)).sub(s),t,r>.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rhat"},{type:"i",name:"axis"},{type:"i",name:"fieldType"}],body:[0,[[13,"mdotr",[6,"std.dot",["axis","rhat"]]],[13,"dipoleB",[6,[7,[6,[7,"rhat","mul"],[[1,[5,"2"],"*","mdotr"]]],"sub"],["axis"]]],[10,[6,"std.select",["dipoleB","rhat",[1,"fieldType",">",[5,"0.5"]]]]]]]},externals:{"std.dot":()=>le,"std.select":()=>F}})&&e.f)({})).$name("agentDipoleOrRadialField"),Sq=y.fn([a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_mul(t,O(__tsover_mul(2,__tsover_sub(s,r))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"k"},{type:"i",name:"target"},{type:"i",name:"theta"}],body:[0,[[10,[1,"k","*",[6,"std.sin",[[1,[5,"2"],"*",[1,"target","-","theta"]]]]]]]]},externals:{"std.sin":()=>O}})&&e.f)({})).$name("agentNematicTorque"),Aq=y.fn([b,a,b,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(r.w,o),i=s>=n,d=w(s,n),l=F(v(r.x,r.y,r.z),v(t.x,t.y,t.z),i);return b(l.x,l.y,l.z,d)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"col"},{type:"i",name:"curA"},{type:"i",name:"prev"},{type:"i",name:"trails"}],body:[0,[[13,"prevA",[1,[7,"prev","w"],"*","trails"]],[13,"win",[1,"curA",">=","prevA"]],[13,"outA",[6,"std.max",["curA","prevA"]]],[13,"outRGB",[6,"std.select",[[6,"d.vec3f",[[7,"prev","x"],[7,"prev","y"],[7,"prev","z"]]],[6,"d.vec3f",[[7,"col","x"],[7,"col","y"],[7,"col","z"]]],"win"]]],[10,[6,"d.vec4f",[[7,"outRGB","x"],[7,"outRGB","y"],[7,"outRGB","z"],"outA"]]]]]},externals:{"std.max":()=>w,"std.select":()=>F,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})).$name("agentTrailMaxDecay"),Eq=y.fn([v,b,b,b],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return v(__tsover_add(__tsover_add(__tsover_mul(s.x,t.x),__tsover_mul(s.y,t.y)),__tsover_mul(s.z,t.z)),__tsover_add(__tsover_add(__tsover_mul(r.x,t.x),__tsover_mul(r.y,t.y)),__tsover_mul(r.z,t.z)),__tsover_add(__tsover_add(__tsover_mul(o.x,t.x),__tsover_mul(o.y,t.y)),__tsover_mul(o.z,t.z)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pw"},{type:"i",name:"rowX"},{type:"i",name:"rowY"},{type:"i",name:"rowZ"}],body:[0,[[10,[6,"d.vec3f",[[1,[1,[1,[7,"rowX","x"],"*",[7,"pw","x"]],"+",[1,[7,"rowX","y"],"*",[7,"pw","y"]]],"+",[1,[7,"rowX","z"],"*",[7,"pw","z"]]],[1,[1,[1,[7,"rowY","x"],"*",[7,"pw","x"]],"+",[1,[7,"rowY","y"],"*",[7,"pw","y"]]],"+",[1,[7,"rowY","z"],"*",[7,"pw","z"]]],[1,[1,[1,[7,"rowZ","x"],"*",[7,"pw","x"]],"+",[1,[7,"rowZ","y"],"*",[7,"pw","y"]]],"+",[1,[7,"rowZ","z"],"*",[7,"pw","z"]]]]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})).$name("agentApplyCameraRows"),Pq=y.fn([v,b,b,b],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";return v(__tsover_add(__tsover_add(__tsover_mul(s.x,t.x),__tsover_mul(r.x,t.y)),__tsover_mul(o.x,t.z)),__tsover_add(__tsover_add(__tsover_mul(s.y,t.x),__tsover_mul(r.y,t.y)),__tsover_mul(o.y,t.z)),__tsover_add(__tsover_add(__tsover_mul(s.z,t.x),__tsover_mul(r.z,t.y)),__tsover_mul(o.z,t.z)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"},{type:"i",name:"rowX"},{type:"i",name:"rowY"},{type:"i",name:"rowZ"}],body:[0,[[10,[6,"d.vec3f",[[1,[1,[1,[7,"rowX","x"],"*",[7,"v","x"]],"+",[1,[7,"rowY","x"],"*",[7,"v","y"]]],"+",[1,[7,"rowZ","x"],"*",[7,"v","z"]]],[1,[1,[1,[7,"rowX","y"],"*",[7,"v","x"]],"+",[1,[7,"rowY","y"],"*",[7,"v","y"]]],"+",[1,[7,"rowZ","y"],"*",[7,"v","z"]]],[1,[1,[1,[7,"rowX","z"],"*",[7,"v","x"]],"+",[1,[7,"rowY","z"],"*",[7,"v","y"]]],"+",[1,[7,"rowZ","z"],"*",[7,"v","z"]]]]]]]]},externals:{"d.vec3f":()=>v}})&&e.f)({})).$name("agentApplyCameraRowsT"),Ef=Ct({x0:Y,x1:Y,y0:Y,y1:Y,fx:a,fy:a}).$name("AgentBilinearFrame"),Mq=y.fn([u,u],Ef)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_sub(__tsover_mul(t.x,s.x),.5),o=__tsover_sub(__tsover_mul(t.y,s.y),.5),n=K(r),i=K(o);return Ef({x0:Y(z(n,a(0),__tsover_sub(s.x,1))),x1:Y(z(__tsover_add(n,1),a(0),__tsover_sub(s.x,1))),y0:Y(z(i,a(0),__tsover_sub(s.y,1))),y1:Y(z(__tsover_add(i,1),a(0),__tsover_sub(s.y,1))),fx:__tsover_sub(r,n),fy:__tsover_sub(o,i)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv01"},{type:"i",name:"dims"}],body:[0,[[13,"cu",[1,[1,[7,"uv01","x"],"*",[7,"dims","x"]],"-",[5,"0.5"]]],[13,"cv",[1,[1,[7,"uv01","y"],"*",[7,"dims","y"]],"-",[5,"0.5"]]],[13,"cx0",[6,"std.floor",["cu"]]],[13,"cy0",[6,"std.floor",["cv"]]],[10,[6,"BilinearFrame",[[104,{x0:[6,"d.u32",[[6,"std.clamp",["cx0",[6,"d.f32",[[5,"0"]]],[1,[7,"dims","x"],"-",[5,"1"]]]]]],x1:[6,"d.u32",[[6,"std.clamp",[[1,"cx0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],[1,[7,"dims","x"],"-",[5,"1"]]]]]],y0:[6,"d.u32",[[6,"std.clamp",["cy0",[6,"d.f32",[[5,"0"]]],[1,[7,"dims","y"],"-",[5,"1"]]]]]],y1:[6,"d.u32",[[6,"std.clamp",[[1,"cy0","+",[5,"1"]],[6,"d.f32",[[5,"0"]]],[1,[7,"dims","y"],"-",[5,"1"]]]]]],fx:[1,"cu","-","cx0"],fy:[1,"cv","-","cy0"]}]]]]]]},externals:{"std.floor":()=>K,BilinearFrame:()=>Ef,"d.u32":()=>Y,"std.clamp":()=>z,"d.f32":()=>a}})&&e.f)({})).$name("agentBilinearTexelFrame"),y5=y.fn([u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=le(t,t);return Mt(__tsover_mul(__tsover_div(r,w(s,1e-5)),-1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"delta"},{type:"i",name:"radSq"}],body:[0,[[13,"dl",[6,"std.dot",["delta","delta"]]],[10,[6,"std.exp",[[1,[1,"dl","/",[6,"std.max",["radSq",[5,"0.00001"]]]],"*",[4,"-",[5,"1"]]]]]]]]},externals:{"std.dot":()=>le,"std.exp":()=>Mt,"std.max":()=>w}})&&e.f)({})).$name("agentCursorFalloff"),kq=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=w(te(t),1e-4);return t.div(o).mul(__tsover_mul(y5(t,s),r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"delta"},{type:"i",name:"radSq"},{type:"i",name:"force"}],body:[0,[[13,"dl",[6,"std.max",[[6,"std.length",["delta"]],[5,"0.0001"]]]],[10,[6,[7,[6,[7,"delta","div"],["dl"]],"mul"],[[1,[6,"cursorFalloff",["delta","radSq"]],"*","force"]]]]]]},externals:{"std.max":()=>w,"std.length":()=>te,cursorFalloff:()=>y5}})&&e.f)({})).$name("agentCursorMagnet");var ha=e=>e;function Ls(){return{default:null,transform:ha,compileTimeWhen:(e,t)=>{let s=r=>{let o=Array.isArray(r)?r.length:0;return o>1?o:0};return s(e)!==s(t)},description:"Multi-stop gradient colors (overrides Color A / Color B when set)",ui:{type:"gradient-stops",label:"Colors",group:"Colors"}}}var Wi=e=>e;function d8(e){let t=e?.ui;return!t||t.type!=="list"||!t.item||typeof t.maxItems!="number"?null:{item:t.item,maxItems:t.maxItems,minItems:t.minItems,itemLabel:t.itemLabel}}var Iy=(e,t)=>`${e}_${t}`,Yy=e=>`${e}Count`;function Lm(e){return!!e&&typeof e=="object"&&e.type==="mouse-position"}var fS=(e,t,s)=>`${e}.${t}.${s}`;function Wy(e){let t=/^([^.]+)\.(\d+)\.([^.]+)$/.exec(e);return t?{prop:t[1],index:Number(t[2]),field:t[3]}:null}function Oy(e,t,s){return(Array.isArray(e)?e.slice(0,t.maxItems):[]).map((r,o)=>{let n=r&&typeof r=="object"?r:{},i={};for(let[d,l]of Object.entries(t.item)){let c=n[d]===void 0||n[d]===null?l.default:n[d];i[d]=l8(l.kind,c,o,d,s)}return i})}function l8(e,t,s,r,o){switch(e){case"position":{if(Lm(t)){let i=o.drivenPosition?.(s,r,t);return i||{x:typeof t.x=="number"?t.x:t.originX??.5,y:1-(typeof t.y=="number"?t.y:t.originY??.5)}}let n=ct(t);return{x:n.x,y:n.y}}case"color":return o.color(typeof t=="string"?t:"#ffffff");case"boolean":return t?1:-1;default:return typeof t=="number"?t:0}}function c8(e){return typeof e=="number"?[e,0,0,0]:Array.isArray(e)?e:[e.x,e.y,0,0]}function Vy(e,t){let s={};for(let r of Object.keys(t.item)){let o=new Array(t.maxItems*4).fill(0);for(let n=0;n<Math.min(e.length,t.maxItems);n++){let i=c8(e[n][r]);o[n*4]=i[0],o[n*4+1]=i[1],o[n*4+2]=i[2],o[n*4+3]=i[3]}s[r]=o}return{count:e.length,fields:s}}function Ny(e,t){return Array.isArray(e)?e.some(s=>s&&typeof s=="object"&&Object.entries(t.item).some(([r,o])=>o.kind==="position"&&Lm(s[r]))):!1}var vS="p3-linear";function hS(e){vS=e;try{Gx(e)}catch{}}function u8(e){try{let t=new io(e),s=vS==="srgb"?"srgb-linear":"p3-linear",r=t.to(s).coords,o=Number(t.alpha);return{r:Number.isFinite(r?.[0])?r[0]:0,g:Number.isFinite(r?.[1])?r[1]:0,b:Number.isFinite(r?.[2])?r[2]:0,a:Number.isFinite(o)?o:1}}catch{return{r:0,g:0,b:0,a:0}}}function yS(e){let{r:t,g:s,b:r,a:o}=u8(e);return b(t,s,r,o)}function Hc(e){let t=yS(e);return[t.x,t.y,t.z,t.w]}function g5(e,t){if(typeof e=="number")return e;if(typeof e=="object"&&e!==null)return e.value;let s=e.toLowerCase().trim();if(t){if(s==="top")return 0;if(s==="bottom")return 1;if(s==="center")return .5}else{if(s==="left")return 0;if(s==="right")return 1;if(s==="center")return .5}return console.warn(`Invalid position value: ${e}. Defaulting to center.`),.5}function _8(e){let t=.5,s=.5;if(typeof e=="string"){let r=e.toLowerCase().trim().split(/\s+/);r.includes("left")?t=0:r.includes("right")?t=1:(r.includes("center")||r.length===1&&(r[0]==="top"||r[0]==="bottom"))&&(t=.5),r.includes("top")?s=0:r.includes("bottom")?s=1:(r.includes("center")||r.length===1&&(r[0]==="left"||r[0]==="right"))&&(s=.5),r.length===1&&r[0]==="center"&&(t=.5,s=.5)}else typeof e=="object"&&e!==null?(t=g5(e.x,!1),s=g5(e.y,!0)):console.warn(`Invalid position value provided: ${e}. Defaulting to center.`);return u(t,1-s)}function gS(e){if(e)return e===ke?yS:e===ct?_8:e===ha?ha:e===Wi?Wi:e}function qy(e,t){e>0,t>0}function jc(e){return e!=null&&typeof e=="object"&&typeof e.value=="number"&&(e.unit==="px"||e.unit==="uv")}function Xy(e){if(!e)return;let t;for(let[s,r]of Object.entries(e)){let o=r?.ui?.dimensional;(o==="canvas-height"||o==="half-canvas-height"||o==="canvas-width"||o==="count-canvas-height")&&(t??=new Map).set(s,o)}return t}function ll(e,t){let s=e?.propBindings,r=new Set,o=new Map;if(s)for(let n of["x","y","width","height"]){let i=s[n];i&&(i.as==="position-x"||i.as==="position-y"?r.add(i.prop):(i.as==="canvas-height"||i.as==="half-canvas-height")&&o.set(i.prop,i.as))}if(t)for(let[n,i]of t)o.set(n,i);return r.size>0||o.size>0?{positionProps:r,sizeProps:o}:null}var p8=e=>({ox:e.includes("left")?"start":e.includes("right")?"end":"center",oy:e.includes("top")?"start":e.includes("bottom")?"end":"center"}),m8=(e,t,s)=>t==="start"?e+s:t==="end"?e-s:e;function Mc(e,t,s,r){let o=(n,i)=>jc(n)?n.unit==="px"?n.value:n.value*i:typeof n=="number"?n*i:0;return e.as==="canvas-height"?o(t,r):e.as==="half-canvas-height"?o(t,2*r):e.as==="canvas-width"?o(t,s):0}function Hy(e,t,s,r){if(e?.computeBounds){let d=e.computeBounds(t,s,r);return{hwx:s>0?d.widthPx/s/2:0,hhy:r>0?d.heightPx/r/2:0}}let o=e?.propBindings,n=0,i=0;return o?.width&&s>0&&(n=Mc(o.width,t[o.width.prop],s,r)/(2*s)),o?.height&&r>0&&(i=Mc(o.height,t[o.height.prop],s,r)/(2*r)),{hwx:n,hhy:i}}function x5(e,t,s,r){let o;if(jc(e))if(e.unit==="px"){let n=t>0?e.value/t:0;o=s==="end"?1-n:s==="center"?.5+n:n}else o=e.value;else if(typeof e=="number")o=e;else return e;return m8(o,s,r)}function f8(e,t,s,r){return e.unit!=="px"?e.value:t==="canvas-width"?s>0?e.value/s:e.value:r<=0?e.value:t==="count-canvas-height"?e.value>0?r/e.value:e.value:t==="canvas-height"?e.value/r:e.value/(2*r)}function Kc(e,t,s,r,o,n,i,d){let l=ll(e,i);if(!l)return s;let{ox:c,oy:_}=p8(r);if(l.positionProps.has(t))return!s||typeof s!="object"?s:{...s,x:x5(s.x,o,c,d?.hwx??0),y:x5(s.y,n,_,d?.hhy??0)};let p=l.sizeProps.get(t);return p&&jc(s)?f8(s,p,o,n):s}function jy(e,t,s){let r=ll(e,s);return r?r.positionProps.has(t)||r.sizeProps.has(t):!1}function Pf(e){let{body:t,build:s,args:r,compose:o,identity:n,missingChildMessage:i,setup:d,...l}=e;if(!t&&!s)throw new Error(`definePointwiseFilter(${e.name}): needs a body or a build`);return{...l,requiresChild:!0,fragment:_=>{if(!_.childNode)return i&&console.error(i),_s;let p=_;if(Ky(n,p))return p.childNode;d?.(p);let f;if(s)f=s(p);else{let{fn:h,hint:g}=typeof t=="function"?t(p.propValues):t;f=se(h,g,[p.childNode,...r?.(p)??[]])}return o?o(f,p):f}}}function Ky(e,t){if(!e)return!1;for(let s of e.props)if(t.getMapInfo?.(s))return!1;return e.when(t.propValues)}function b5(e){let{build:t,resultAlpha:s,identity:r,missingChildMessage:o,setup:n,...i}=e;return{...i,requiresRTT:!0,requiresChild:!0,fragment:l=>{if(!l.childNode)return o&&console.error(o),_s;let c=l.convertToTexture(l.childNode),_=h=>se(Hn,"unpremultiplyAlpha",[c.sample(h)]),p={...l,childNode:l.childNode,texture:c,sampleStraight:_};if(Ky(r,l))return _(l.ctx.uv);n?.(p);let f=t(p);return s==="straight"?f:se(Hn,"unpremultiplyAlpha",[f])}}}function w5(e){return"uv"in e?e:{uv:e}}function v8(e,t={}){let s=typeof e=="function"?e:()=>e,r=t.edges??"prop",o=n=>r==="none"?null:typeof r=="number"?r:n.edges??0;return{fragment:n=>{let{childNode:i,ctx:d,convertToTexture:l,propValues:c}=n;if(!i)return t.requireChildMessage&&console.error(t.requireChildMessage),_s;let _=l(i),p=o(c),f=w5(s(n).map(d.uv,d.aspect)),h=p===null?_.sample(f.uv):t.resample==="bilinear"?Ed(f.uv,g=>_.sample(g),p):JL(_,f.uv,p);return se(Hn,"unpremultiplyAlpha",[f.coverage?Ss(h.member("rgb"),h.member("a").mul(f.coverage)):h])},uvRemap:n=>{if(t.uvRemapIdentityWhen?.(n))return{uv:n.uv,mask:n.mask};let i=o(n.propValues),d=w5(s(n).map(n.uv,n.aspect)),l=i===null?{uv:d.uv,mask:n.mask}:QL(d.uv,n.mask,i);return d.coverage?{uv:l.uv,mask:l.mask.mul(d.coverage)}:l}}}function h8(e,t){let s={type:"position",label:t?.label??"Center",group:t?.group??"Position"};return t?.units&&(s.units=[...t.units]),{default:t?.default??{x:.5,y:.5},transform:ct,description:e,ui:s}}function y8(){return{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}}}function g8(e){return{softness:{default:0,description:e?.softnessDescription??"Edge softness for antialiasing",ui:{type:"range",min:0,max:.1,step:.001,label:"Softness",group:"Effect"}},strokeThickness:{default:0,description:"Stroke thickness. Zero means no stroke.",ui:{type:"range",min:0,max:e?.strokeThicknessMax??.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:ke,description:e?.strokeColorDescription??"Color of the stroke outline",ui:{type:"color",label:"Stroke Color",group:"Colors"}},strokePosition:{default:"center",transform:Lx,description:e?.strokePositionDescription??"Position of the stroke relative to the shape edge",ui:{type:"select",options:[{label:"Outside",value:"outside"},{label:"Center",value:"center"},{label:"Inside",value:"inside"}],label:"Stroke Position",group:"Stroke"}}}}function x8(e){return{default:"linear",transform:ft,compileTime:!0,description:e?.description??"Color space for blending fill and stroke colors",ui:{type:"select",options:At,label:"Color Blending",group:"Colors"}}}var b8={refraction:{default:.5,description:"How strongly the shell bends what's seen through or inside it",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Refraction",group:"Glass"}},dispersion:{default:.25,description:"Spectral splitting at the shell \u2014 rainbow fringes where light bends hardest",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Dispersion",group:"Glass"}},thickness:{default:.2,description:"Shell depth \u2014 how far inward from the edge the shell's optics extend",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Thickness",group:"Glass"}},environment:{default:1,description:"Strength of the studio lighting reflected in the shell",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Environment",group:"Glass"}},envRotation:{default:0,description:"Rotates the reflected studio \u2014 spins where the bright reflections fall",ui:{type:"range",min:0,max:360,step:1,label:"Env Rotation",group:"Glass"}},lightAngle:{default:315,description:"Direction of the key light, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Glass"}},highlight:{default:1,description:"Sharp key-light glint on the shell",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Highlight",group:"Highlight"}},highlightColor:{default:"#ffffff",transform:ke,description:"Color of the key-light highlight",ui:{type:"color",label:"Highlight Color",group:"Highlight"}},highlightSoftness:{default:.5,description:"Specular highlight softness \u2014 lower is a tighter, sharper glint",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Highlight Softness",group:"Highlight"}},fresnel:{default:.1,description:"Fresnel rim glow \u2014 the luminous edge where the shell turns away from view",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Fresnel",group:"Fresnel"}},fresnelSoftness:{default:.1,description:"Fresnel rim width \u2014 higher values spread the glow further inward",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Fresnel Softness",group:"Fresnel"}},fresnelColor:{default:"#ffffff",transform:ke,description:"Color of the fresnel rim glow",ui:{type:"color",label:"Fresnel Color",group:"Fresnel"}},edgeSoftness:{default:.05,description:"Softness of the shape boundary edge",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Edge Softness",group:"Glass"}}};function Ho(e){let t={};for(let s of Object.keys(e)){let r=e[s];if(!r)continue;let o=b8[s];t[s]=r===!0?o:{...o,...r,ui:{...o.ui,...r.ui??{}}}}return t}function w8(e){return{default:0,description:e,ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}}}function T8(e){return{default:"#ffffff",transform:ke,description:e,ui:{type:"color",label:"Color",group:"Colors"}}}function S8(e,t){if(e.custom)return e.custom;let s=e.size.as??"half-canvas-height",r={x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:e.size.width,as:s},height:{prop:e.size.height,as:s}};return t&&(r.rotation={prop:"rotation",as:"degrees"}),{propBindings:r}}function A8(e,t,s){if(!t)return e;let r=Object.keys(e).filter(i=>!t.includes(i)),o=t.filter(i=>!(i in e));if(r.length||o.length)throw new Error(`defineSdfShapeShader(${s}): propOrder must list every prop exactly once (missing: ${r.join(", ")||"none"}; unknown: ${o.join(", ")||"none"})`);let n={};for(let i of t)n[i]=e[i];return n}function E8(e){let t=e.rotatable!==!1,s=g8(e.stroke),r={origin:y8(),color:T8(e.colorDescription),center:h8(e.centerDescription,{units:["%","px"],...e.centerLabel?{label:e.centerLabel}:{}}),...e.shapeProps,...t?{rotation:w8(e.rotationDescription??"Rotation in degrees")}:{},softness:s.softness,strokeThickness:s.strokeThickness,strokeColor:s.strokeColor,strokePosition:s.strokePosition,colorSpace:x8(e.colorSpaceDescription?{description:e.colorSpaceDescription}:void 0),...e.propOverrides};return{name:e.name,category:e.category??"Shapes",description:e.description,acceptsUVContext:!0,boundingBoxDeclaration:S8(e.bounds,t),props:A8(r,e.propOrder,e.name),fragment:o=>{let{uniforms:n,ctx:i,propValues:d}=o,l=o.uvContext??i.uv,c=d.colorSpace??0;return CT(Vs(P8(e,n,l,i.aspect),"shapeMask"),n.color,n.strokeColor,c)}}}function P8(e,t,s,r){let o=t.rotation??il("0f"),n=Vs(se(kT,"shapeLocalCoords",[t.center,o,s,r]),"shapeLocal"),i=d=>{let l=t[d];if(!l)throw new Error(`defineSdfShapeShader(${e.name}): distance reads unknown prop '${d}'`);return l};return se($T,"strokeMaskFromSdf",[e.distance({x:n.member("x"),y:n.member("y")},i),t.softness,t.strokeThickness,t.strokePosition])}function re(e){return{kind:"prop",name:e}}var ai=class oh{constructor(t){this.node=t}times(t){return new oh({kind:"mul",a:this.node,b:t instanceof oh?t.node:t})}};function Mn(e){return{uv:e.uvContext??e.ctx.uv,viewport:e.effectiveViewportSize??e.ctx.viewportSize}}function Se(e,t){let s=t.uniforms[e.name];if(!s)throw new Error(`std: effect binds unknown prop '${e.name}'`);return s}function En(e,t){let s=e instanceof ai?e.node:e;switch(s.kind){case"prop":return Se(s,t);case"mul":return En(s.a,t).mul(En(s.b,t));case"radialMask":if(!t.ctx)throw new Error("std: radialMask needs a fragment host (warp slots have no ctx)");return se(YD,"radialFalloffMask",[t.ctx.uv,t.ctx.aspect,Se(s.center,t),Se(s.radius,t),Se(s.falloff,t)]);case"signal":return s.build(t)}}function M8(e,t){if(typeof e=="number")return nt(e);if(e instanceof ai)return En(e,t);switch(e.kind){case"prop":return Se(e,t);case"ctx":if(!t.ctx)throw new Error(`std: ctx.${e.name} needs a fragment host (warp slots have no ctx)`);return t.ctx[e.name];default:return En(e,t)}}function Zy(e,t,s){let r={},o=e.boundingBoxDeclaration,n=Xy(e.props),i=k8(e.props,t);for(let[d,l]of Object.entries(e.props)){let c=l.transform;if(c===ha){$8(r,d,l,t[d],i);continue}if(c===Wi){C8(r,d,l,t[d]);continue}let _=t[d],p=_;p==null&&(p=l.default),p==null&&(console.error(`[Shaders] Uniform "${d}" is null/undefined after fallback. PropConfig:`,{propName:d,initialValue:_,default:l.default,hasTransform:!!c}),p=0);let f=gS(c),h=jy(o,d,n),g=!f&&!h&&(typeof p=="string"||typeof p=="object"&&p!==null&&!Array.isArray(p));r[d]={value:p,transform:f,compileTime:l.compileTime||!1,...l.compileTimeWhen?{compileTimeWhen:l.compileTimeWhen,_lastCompiledValue:_??l.default}:{},...h?{_rawDimensional:_}:{},...g?{cpu:!0}:{}}}return r}function k8(e,t){for(let[s,r]of Object.entries(e))if(r.transform===ft){let o=t[s]??r.default;return typeof o=="string"?ft(o):0}return 0}function $8(e,t,s,r,o){let n=r??null,i=Ay(n,Hc),d=Ey(i.colors,i.stopCount,o);e[t]={value:n,transform:ha,cpu:!0,compileTime:s.compileTime||!1,...s.compileTimeWhen?{compileTimeWhen:s.compileTimeWhen,_lastCompiledValue:n??s.default}:{}},e.colorsArray={value:i.colors,schema:zt(b,8)},e.positionsArray={value:i.positions,schema:zt(b,8/4)},e.convertedColorsArray={value:d,schema:zt(v,8)},e.stopCount={value:i.stopCount,schema:a}}function C8(e,t,s,r){let o=d8(s);if(!o){console.error(`[Shaders] List prop "${t}" has no item spec in its ui config`);return}let n=Oy(r??s.default,o,{color:Hc}),i=Vy(n,o);e[t]={value:n,transform:Wi,cpu:!0,compileTime:s.compileTime||!1,_rawList:r??s.default,_listSpec:o};for(let[d,l]of Object.entries(i.fields))e[Iy(t,d)]={value:l,schema:zt(b,o.maxItems)};e[Yy(t)]={value:i.count,schema:a}}var Md=Ct({x0:oe,x1:oe,y0:oe,y1:oe}).$name("SplatWindow"),$q=y.fn([u,a,a,a],Md)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=w(r,1e-5),i=oe(K(__tsover_mul(__tsover_div(t.x,n),o))),d=oe(K(__tsover_mul(t.y,o))),l=oe(ac(__tsover_div(__tsover_mul(s,o),n))),c=oe(ac(__tsover_mul(s,o))),_=__tsover_sub(oe(o),1);return Md({x0:w(__tsover_sub(i,l),0),x1:ue(__tsover_add(i,l),_),y0:w(__tsover_sub(d,c),0),y1:ue(__tsover_add(d,c),_)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"pos"},{type:"i",name:"reach"},{type:"i",name:"aspect"},{type:"i",name:"res"}],body:[0,[[13,"asp",[6,"std.max",["aspect",[5,"0.00001"]]]],[13,"cxi",[6,"d.i32",[[6,"std.floor",[[1,[1,[7,"pos","x"],"/","asp"],"*","res"]]]]]],[13,"cyi",[6,"d.i32",[[6,"std.floor",[[1,[7,"pos","y"],"*","res"]]]]]],[13,"radX",[6,"d.i32",[[6,"std.ceil",[[1,[1,"reach","*","res"],"/","asp"]]]]]],[13,"radY",[6,"d.i32",[[6,"std.ceil",[[1,"reach","*","res"]]]]]],[13,"last",[1,[6,"d.i32",["res"]],"-",[5,"1"]]],[10,[6,"SplatWindow",[[104,{x0:[6,"std.max",[[1,"cxi","-","radX"],[5,"0"]]],x1:[6,"std.min",[[1,"cxi","+","radX"],"last"]],y0:[6,"std.max",[[1,"cyi","-","radY"],[5,"0"]]],y1:[6,"std.min",[[1,"cyi","+","radY"],"last"]]}]]]]]]},externals:{"std.max":()=>w,"d.i32":()=>oe,"std.floor":()=>K,"std.ceil":()=>ac,SplatWindow:()=>Md,"std.min":()=>ue}})&&e.f)({})).$name("worldSplatWindow"),Cq=y.fn([u,oe,tp],Md)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=oe(K(t.x)),n=oe(K(t.y));return Md({x0:w(__tsover_sub(o,s),0),x1:ue(__tsover_add(o,s),r.x),y0:w(__tsover_sub(n,s),0),y1:ue(__tsover_add(n,s),r.y)})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"rad"},{type:"i",name:"last"}],body:[0,[[13,"cxi",[6,"d.i32",[[6,"std.floor",[[7,"center","x"]]]]]],[13,"cyi",[6,"d.i32",[[6,"std.floor",[[7,"center","y"]]]]]],[10,[6,"SplatWindow",[[104,{x0:[6,"std.max",[[1,"cxi","-","rad"],[5,"0"]]],x1:[6,"std.min",[[1,"cxi","+","rad"],[7,"last","x"]]],y0:[6,"std.max",[[1,"cyi","-","rad"],[5,"0"]]],y1:[6,"std.min",[[1,"cyi","+","rad"],[7,"last","y"]]]}]]]]]]},externals:{"d.i32":()=>oe,"std.floor":()=>K,SplatWindow:()=>Md,"std.max":()=>w,"std.min":()=>ue}})&&e.f)({})).$name("texelSplatWindow"),Rq=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_sub(1,Mt(__tsover_mul(__tsover_mul(t,s),-1)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"energy"},{type:"i",name:"k"}],body:[0,[[10,[1,[5,"1"],"-",[6,"std.exp",[[1,[1,"energy","*","k"],"*",[4,"-",[5,"1"]]]]]]]]]},externals:{"std.exp":()=>Mt}})&&e.f)({})).$name("energyCoverageAlpha"),Uq=y.fn([v,v,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=t.add(s.mul(r)).mul(o),d=te(i);return i.mul(__tsover_div(ue(d,n),w(d,1e-5)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"vel"},{type:"i",name:"force"},{type:"i",name:"dt"},{type:"i",name:"dragMul"},{type:"i",name:"maxSpeed"}],body:[0,[[13,"v",[6,[7,[6,[7,"vel","add"],[[6,[7,"force","mul"],["dt"]]]],"mul"],["dragMul"]]],[13,"spd",[6,"std.length",["v"]]],[10,[6,[7,"v","mul"],[[1,[6,"std.min",["spd","maxSpeed"]],"/",[6,"std.max",["spd",[5,"0.00001"]]]]]]]]]},externals:{"std.length":()=>te,"std.min":()=>ue,"std.max":()=>w}})&&e.f)({})).$name("integrateSemiImplicitEuler");var nh=Math.exp(-1),T5=1/(1-nh),S5=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return Mt(__tsover_mul(__tsover_div(t,s),-1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"distSq"},{type:"i",name:"radiusSq"}],body:[0,[[10,[6,"std.exp",[[1,[1,"distSq","/","radiusSq"],"*",[4,"-",[5,"1"]]]]]]]]},externals:{"std.exp":()=>Mt}})&&e.f)({})),A5=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return z(__tsover_mul(__tsover_sub(Mt(__tsover_mul(__tsover_div(t,s),-1)),nh),T5),a(0),a(1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"distSq"},{type:"i",name:"radiusSq"}],body:[0,[[10,[6,"std.clamp",[[1,[1,[6,"std.exp",[[1,[1,"distSq","/","radiusSq"],"*",[4,"-",[5,"1"]]]]],"-","EDGE"],"*","INV_EDGE"],[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]]]]]]]},externals:{"std.clamp":()=>z,"std.exp":()=>Mt,EDGE:()=>nh,INV_EDGE:()=>T5,"d.f32":()=>a}})&&e.f)({}));y.fn([u,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=It(t,s);return S5(le(o,o),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cellPos"},{type:"i",name:"center"},{type:"i",name:"radiusSq"}],body:[0,[[13,"off",[6,"std.sub",["cellPos","center"]]],[10,[6,"gaussianBrushSq",[[6,"std.dot",["off","off"]],"radiusSq"]]]]]},externals:{"std.sub":()=>It,gaussianBrushSq:()=>S5,"std.dot":()=>le}})&&e.f)({}));y.fn([u,u,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=It(t,s);return A5(le(o,o),r)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cellPos"},{type:"i",name:"center"},{type:"i",name:"radiusSq"}],body:[0,[[13,"off",[6,"std.sub",["cellPos","center"]]],[10,[6,"gaussianBrushShiftedSq",[[6,"std.dot",["off","off"]],"radiusSq"]]]]]},externals:{"std.sub":()=>It,gaussianBrushShiftedSq:()=>A5,"std.dot":()=>le}})&&e.f)({}));var ql=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ms(u(t,s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"px"},{type:"i",name:"py"}],body:[0,[[10,[6,"noise.hash12",[[6,"d.vec2f",["px","py"]]]]]]]},externals:{"noise.hash12":()=>ms,"d.vec2f":()=>u}})&&e.f)({})),k_=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=K(t),o=K(s),n=ve(t),i=ve(s),d=__tsover_mul(__tsover_mul(n,n),__tsover_sub(3,__tsover_mul(n,2))),l=__tsover_mul(__tsover_mul(i,i),__tsover_sub(3,__tsover_mul(i,2)));return Z(Z(ql(r,o),ql(__tsover_add(r,1),o),d),Z(ql(r,__tsover_add(o,1)),ql(__tsover_add(r,1),__tsover_add(o,1)),d),l)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"nx"},{type:"i",name:"ny"}],body:[0,[[13,"ix",[6,"std.floor",["nx"]]],[13,"iy",[6,"std.floor",["ny"]]],[13,"sx",[6,"std.fract",["nx"]]],[13,"sy",[6,"std.fract",["ny"]]],[13,"ux",[1,[1,"sx","*","sx"],"*",[1,[5,"3"],"-",[1,"sx","*",[5,"2"]]]]],[13,"uy",[1,[1,"sy","*","sy"],"*",[1,[5,"3"],"-",[1,"sy","*",[5,"2"]]]]],[10,[6,"std.mix",[[6,"std.mix",[[6,"valueHash",["ix","iy"]],[6,"valueHash",[[1,"ix","+",[5,"1"]],"iy"]],"ux"]],[6,"std.mix",[[6,"valueHash",["ix",[1,"iy","+",[5,"1"]]]],[6,"valueHash",[[1,"ix","+",[5,"1"]],[1,"iy","+",[5,"1"]]]],"ux"]],"uy"]]]]]},externals:{"std.floor":()=>K,"std.fract":()=>ve,"std.mix":()=>Z,valueHash:()=>ql}})&&e.f)({})),zq=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_add(__tsover_add(__tsover_mul(k_(t,s),.5),__tsover_mul(k_(__tsover_add(__tsover_mul(t,2),5.37),__tsover_add(__tsover_mul(s,2),9.13)),.3)),__tsover_mul(k_(__tsover_add(__tsover_mul(t,4),1.79),__tsover_add(__tsover_mul(s,4),3.51)),.2))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"nx"},{type:"i",name:"ny"}],body:[0,[[10,[1,[1,[1,[6,"valueNoise2D",["nx","ny"]],"*",[5,"0.5"]],"+",[1,[6,"valueNoise2D",[[1,[1,"nx","*",[5,"2"]],"+",[5,"5.37"]],[1,[1,"ny","*",[5,"2"]],"+",[5,"9.13"]]]],"*",[5,"0.3"]]],"+",[1,[6,"valueNoise2D",[[1,[1,"nx","*",[5,"4"]],"+",[5,"1.79"]],[1,[1,"ny","*",[5,"4"]],"+",[5,"3.51"]]]],"*",[5,"0.2"]]]]]]},externals:{valueNoise2D:()=>k_}})&&e.f)({})),Gq=y.fn([a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=__tsover_mul(fr(__tsover_mul(r,37.31)),97),i=__tsover_mul(fr(__tsover_mul(r,83.17)),97);return u(__tsover_add(__tsover_mul(t,o),n),__tsover_add(__tsover_mul(s,o),i))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"seed"},{type:"i",name:"cellsPerTexel"}],body:[0,[[13,"sdx",[1,[6,"noise.hash11",[[1,"seed","*",[5,"37.31"]]]],"*",[5,"97"]]],[13,"sdy",[1,[6,"noise.hash11",[[1,"seed","*",[5,"83.17"]]]],"*",[5,"97"]]],[10,[6,"d.vec2f",[[1,[1,"x","*","cellsPerTexel"],"+","sdx"],[1,[1,"y","*","cellsPerTexel"],"+","sdy"]]]]]]},externals:{"noise.hash11":()=>fr,"d.vec2f":()=>u}})&&e.f)({}));var Dq=y.fn([a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=__tsover_mul(__tsover_sub(t,r),d),c=__tsover_sub(s,o),_=J(i),p=O(i),f=__tsover_add(__tsover_mul(l,_),__tsover_mul(c,p)),h=__tsover_sub(__tsover_mul(c,_),__tsover_mul(l,p));return u(__tsover_add(__tsover_div(f,n),.5),__tsover_add(__tsover_div(h,n),.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"u"},{type:"i",name:"v"},{type:"i",name:"centerX"},{type:"i",name:"centerY"},{type:"i",name:"scale"},{type:"i",name:"rotation"},{type:"i",name:"aspect"}],body:[0,[[13,"dxAc",[1,[1,"u","-","centerX"],"*","aspect"]],[13,"dy",[1,"v","-","centerY"]],[13,"cosR",[6,"std.cos",["rotation"]]],[13,"sinR",[6,"std.sin",["rotation"]]],[13,"rdx",[1,[1,"dxAc","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dxAc","*","sinR"]]],[10,[6,"d.vec2f",[[1,[1,"rdx","/","scale"],"+",[5,"0.5"]],[1,[1,"rdy","/","scale"],"+",[5,"0.5"]]]]]]]},externals:{"std.cos":()=>J,"std.sin":()=>O,"d.vec2f":()=>u}})&&e.f)({}));Ct({centerX:a,centerY:a,scale:a,rotation:a,aspect:a,saRadius:a,saSides:a,saRounding:a,saInnerRatio:a,saRotation:a,saHeight:a,saOffset:a,saAperture:a,vfOriginX:a,vfOriginY:a,vfSpanX:a,vfSpanY:a,vfActiveRes:a});var X_=256*256;var E5=1-10*.004,Lq=E5>=1?1/0:Math.min(3e4,Math.log(1e-6)/Math.log(Math.max(E5,.001))*16.67);var P5="rgba16float",xS=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({amp:a,freq:a,seed:a,edgePin:a,cursorIntensity:a,t:a,aspect:a,focal:a,camPos:v,camForward:v,camRight:v,camUp:v,lighting:a,glossiness:a,highlights:a,lightX:a,lightY:a,lightZ:a,lightColor:v,nearCutoff:a,farCutoff:a,cursorWaveX:a,cursorWaveY:a,mouseSpeed:a,dt:a,decay:a,radius:a,waveSpeed:a,heightEnvelope:a,cursorActive:a}),"HeightFieldParams");var Fq=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({readSrc:{storage:zt(a,X_),access:"readonly"},writeBuf:{storage:zt(a,X_),access:"mutable"},readBuf:{storage:zt(a,X_),access:"mutable"},params:{uniform:xS}}),"waveEquationLayout"),Bq=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({readBuf:{storage:zt(a,X_),access:"readonly"},params:{uniform:xS},uvMaskTex:{storageTexture:an(P5,"write-only")},litTex:{storageTexture:an(P5,"write-only")}}),"heightFieldMarchLayout");var Iq=y.fn([b,b,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=W(t.xyz.sub(s.xyz)),n=W(__tsover_sub(t.w,s.w)),i=__tsover_add(le(o,v(.299,.587,.114)),n);return ce(r,__tsover_add(__tsover_mul(r,2),.001),i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"live"},{type:"i",name:"prev"},{type:"i",name:"threshold"}],body:[0,[[13,"dRgb",[6,"std.abs",[[6,[7,[7,"live","xyz"],"sub"],[[7,"prev","xyz"]]]]]],[13,"dA",[6,"std.abs",[[1,[7,"live","w"],"-",[7,"prev","w"]]]]],[13,"diff",[1,[6,"std.dot",["dRgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]],"+","dA"]],[10,[6,"std.smoothstep",["threshold",[1,[1,"threshold","*",[5,"2"]],"+",[5,"0.001"]],"diff"]]]]]},externals:{"std.abs":()=>W,"std.dot":()=>le,"d.vec3f":()=>v,"std.smoothstep":()=>ce}})&&e.f)({})).$name("frameDiffMask"),Yq=y.fn([v,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=lc(t);return Yi(v(ve(__tsover_add(r.x,s)),r.y,r.z))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"amount"}],body:[0,[[13,"hsl",[6,"colorMixing.rgbToHsl",["rgb"]]],[13,"rotated",[6,"d.vec3f",[[6,"std.fract",[[1,[7,"hsl","x"],"+","amount"]]],[7,"hsl","y"],[7,"hsl","z"]]]],[10,[6,"colorMixing.hslToRgb",["rotated"]]]]]},externals:{"colorMixing.rgbToHsl":()=>lc,"d.vec3f":()=>v,"std.fract":()=>ve,"colorMixing.hslToRgb":()=>Yi}})&&e.f)({})).$name("hueRotateTurns");var R8=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],U8=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],bS=[];for(let e=0;e<8;e++)for(let t=0;t<8;t++)bS[e*8+t]=Math.cos((2*e+1)*t*Math.PI/16);var Wq=Math.PI/16,Oq=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.const(zt(a,64),bS),"COS_LUT"),Vq=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.const(zt(a,64),R8),"LUMA_QUANT_C"),Nq=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.const(zt(a,64),U8),"CHROMA_QUANT_C");var qq=y.fn([b,b,b,b,b,b,b,b,b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_)=>{"use gpu";let p=ce(0,.1,__tsover_mul(__tsover_add(__tsover_add(__tsover_add(__tsover_add(t.z,s.z),r.z),o.z),n.z),.2)),f=t.xy.add(s.xy).add(r.xy).add(o.xy).add(n.xy).mul(.2),h=te(f),g=ce(.01,.1,h),x=__tsover_div(f.x,__tsover_add(h,.001)),T=__tsover_div(f.y,__tsover_add(h,.001)),S=ce(0,.7,w(x,0)),A=ce(0,.7,w(__tsover_mul(x,-1),0)),E=ce(0,.7,w(T,0)),M=ce(0,.7,w(__tsover_mul(T,-1),0)),$=c.mul(A).add(_.mul(S)),L=l.mul(M).add(d.mul(E)),B=__tsover_add(A,S),D=__tsover_add(E,M),G=__tsover_add(__tsover_add(B,D),.001);return Z(i,$.mul(__tsover_div(B,G)).add(L.mul(__tsover_div(D,G))),b(g)).mul(p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"s0"},{type:"i",name:"s1"},{type:"i",name:"s2"},{type:"i",name:"s3"},{type:"i",name:"s4"},{type:"i",name:"base"},{type:"i",name:"up"},{type:"i",name:"down"},{type:"i",name:"left"},{type:"i",name:"right"}],body:[0,[[13,"smoothedLiquid",[1,[1,[1,[1,[1,[7,"s0","z"],"+",[7,"s1","z"]],"+",[7,"s2","z"]],"+",[7,"s3","z"]],"+",[7,"s4","z"]],"*",[5,"0.2"]]],[13,"liquidIntensity",[6,"std.smoothstep",[[5,"0"],[5,"0.1"],"smoothedLiquid"]]],[13,"flow",[6,[7,[6,[7,[6,[7,[6,[7,[6,[7,[7,"s0","xy"],"add"],[[7,"s1","xy"]]],"add"],[[7,"s2","xy"]]],"add"],[[7,"s3","xy"]]],"add"],[[7,"s4","xy"]]],"mul"],[[5,"0.2"]]]],[13,"flowMagnitude",[6,"std.length",["flow"]]],[13,"hasFlow",[6,"std.smoothstep",[[5,"0.01"],[5,"0.1"],"flowMagnitude"]]],[13,"normalizedX",[1,[7,"flow","x"],"/",[1,"flowMagnitude","+",[5,"0.001"]]]],[13,"normalizedY",[1,[7,"flow","y"],"/",[1,"flowMagnitude","+",[5,"0.001"]]]],[13,"rightAmount",[6,"std.smoothstep",[[5,"0"],[5,"0.7"],[6,"std.max",["normalizedX",[5,"0"]]]]]],[13,"leftAmount",[6,"std.smoothstep",[[5,"0"],[5,"0.7"],[6,"std.max",[[1,"normalizedX","*",[4,"-",[5,"1"]]],[5,"0"]]]]]],[13,"upAmount",[6,"std.smoothstep",[[5,"0"],[5,"0.7"],[6,"std.max",["normalizedY",[5,"0"]]]]]],[13,"downAmount",[6,"std.smoothstep",[[5,"0"],[5,"0.7"],[6,"std.max",[[1,"normalizedY","*",[4,"-",[5,"1"]]],[5,"0"]]]]]],[13,"horizontalColor",[6,[7,[6,[7,"left","mul"],["leftAmount"]],"add"],[[6,[7,"right","mul"],["rightAmount"]]]]],[13,"verticalColor",[6,[7,[6,[7,"down","mul"],["downAmount"]],"add"],[[6,[7,"up","mul"],["upAmount"]]]]],[13,"horizontalWeight",[1,"leftAmount","+","rightAmount"]],[13,"verticalWeight",[1,"upAmount","+","downAmount"]],[13,"totalWeight",[1,[1,"horizontalWeight","+","verticalWeight"],"+",[5,"0.001"]]],[13,"directionalColor",[6,[7,[6,[7,"horizontalColor","mul"],[[1,"horizontalWeight","/","totalWeight"]]],"add"],[[6,[7,"verticalColor","mul"],[[1,"verticalWeight","/","totalWeight"]]]]]],[13,"finalColor",[6,"std.mix",["base","directionalColor",[6,"d.vec4f",["hasFlow"]]]]],[10,[6,[7,"finalColor","mul"],["liquidIntensity"]]]]]},externals:{"std.smoothstep":()=>ce,"std.length":()=>te,"std.max":()=>w,"std.mix":()=>Z,"d.vec4f":()=>b}})&&e.f)({})).$name("flowDirectionColor"),Fm={name:"Root",props:{},fragment:({childNode:e})=>e??il("vec4f(0.0, 0.0, 0.0, 0.0)")};function it(e,t,s="_animTime"){let r=e.props.member(s);if(t){let o=e.uniforms[t];if(o)return r.add(o)}return r}var z8=class{kind="wgsl";spec;identifiers;fns=new Map;constructor(e){if(typeof e.body!="string"||e.body.trim()==="")throw new Error("wgsl: the body must be a non-empty WGSL string");if(!/\breturn\b/.test(wS(e.body)))throw new Error("wgsl: the body must `return` a vec4f color");this.spec=e,this.identifiers=G8(e.body)}get samplesChild(){return this.identifiers.has("childTexture")}fnFor(e,t){let s=this.fns.get(e);return s||(s=t(),this.fns.set(e,s)),s}};function Zc(e){return e instanceof z8}function wS(e){return e.replace(/\/\*[\s\S]*?\*\//g," ").replace(/\/\/[^\n]*/g," ")}function G8(e){let t=new Set,s=new RegExp("(?<![\\w.])[A-Za-z_][A-Za-z0-9_]*","g");for(let r of wS(e).matchAll(s))t.add(r[0]);return t}function TS(e){let t=e.transform;if(t===ke)return"vec4f";if(t===ct)return"vec2f";if(t===ha||t===Wi)return null;let s=e.default;if(jc(s))return"f32";let r=gS(t);if(!r&&(typeof s=="string"||typeof s=="object"&&s!==null&&!Array.isArray(s)))return null;let o=s;if(r)try{o=r(s)}catch{o=s}switch(o&&typeof o=="object"&&"data"in o&&(o=o.data),N7(o).type){case"f32":return"f32";case"vec2f":return"vec2f";case"vec3f":return"vec3f";case"vec4f":return"vec4f";default:return null}}var D8={f32:a,vec2f:u,vec3f:v,vec4f:b,"texture_2d<f32>":Hs(a),sampler:Nh()},L8=new Set(["viewport","child","childTexture","childSampler"]),SS={uv:"vec2f",aspect:"f32",time:"f32",viewportSize:"vec2f",logicalViewportSize:"vec2f",pointer:"vec2f"};function M5(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)?e:e.replace(/[^A-Za-z0-9_]/g,"_")}function Qy(e,t,s){let r=M5(e.spec.name??F8(s.name)+B8(t)),o=I8(t,s),n=Y8(e.spec.inputs??{},s.props),i=new Map;for(let _ of o)e.identifiers.has(_.name)&&i.set(_.name,_);for(let _ of n)i.set(_.name,_);let d=[...i.values()],l=`(${d.map(_=>`${M5(_.name)}: ${_.type}`).join(", ")}) -> vec4f`,c=d.map(_=>`${_.name}:${_.type}`).join(",");return _=>(j0(),_.noteCustomWgsl?.(),se(e.fnFor(c,()=>(globalThis.__TYPEGPU_AUTONAME__??(p=>p))(y.fn(d.map(p=>D8[p.type]),b),"shell")(`${l} {
|
|
${e.spec.body}
|
|
}`)),r,d.map(p=>p.value(_))))}function F8(e){return e?e[0].toLowerCase()+e.slice(1):"custom"}function B8(e){return e==="generator"?"Paint":"Filter"}function I8(e,t){let s=[],r=e==="generator";s.push({name:"uv",type:"vec2f",value:o=>r?o.uvContext??o.ctx.uv:o.ctx.uv}),s.push({name:"time",type:"f32",value:o=>t.animatedTime?it(o):o.ctx.time}),s.push({name:"aspect",type:"f32",value:o=>o.ctx.aspect}),s.push({name:"viewport",type:"vec2f",value:o=>r?o.effectiveViewportSize??o.ctx.viewportSize:o.ctx.viewportSize}),s.push({name:"pointer",type:"vec2f",value:o=>o.ctx.pointer}),e==="pointwise"&&s.push({name:"child",type:"vec4f",value:o=>o.childNode}),e==="gather"&&(s.push({name:"childTexture",type:"texture_2d<f32>",value:o=>o.texture.accessor()}),s.push({name:"childSampler",type:"sampler",value:()=>il("samp.$.linearClamp")}));for(let[o,n]of Object.entries(t.props)){if(SS[o]||L8.has(o))continue;let i=TS(n);if(!i)continue;let d=n.transform===ct;s.push({name:o,type:i,value:l=>{let c=l.uniforms[o];if(!c)throw new Error(`wgsl: prop '${o}' has no GPU uniform (is it CPU-only?)`);return d?new Ts(_=>`vec2f(${c.member("x")._emit(_)}, 1.0 - ${c.member("y")._emit(_)})`):c}})}return s}function Y8(e,t){let s=[];for(let[r,o]of Object.entries(e)){let n=o!==null&&typeof o=="object"&&"value"in o&&"type"in o,i=n?o.value:o,d=W8(i,t),l=n?o.type:d;if(n&&l!==d)throw new Error(`wgsl: input '${r}' is declared ${l} but its source is ${d}`);s.push({name:r,type:l,value:c=>typeof i=="number"?nt(i):M8(i,c)})}return s}function W8(e,t){if(typeof e=="number"||e instanceof ai)return"f32";if(e.kind==="ctx")return SS[e.name]??"f32";if(e.kind==="prop"){let s=t[e.name];if(!s)throw new Error(`wgsl: input binds unknown prop '${e.name}'`);let r=TS(s);if(!r)throw new Error(`wgsl: prop '${e.name}' is CPU-only and cannot be bound as a WGSL parameter`);return r}return"f32"}function ri(e){let t={};for(let s of Object.keys(e)){let{recompile:r,...o}=e[s],n={...o};if(r?.kind==="crosses"){let i=r.value;n.compileTimeWhen=(d,l)=>d===i!=(l===i)}else r?.kind==="custom"&&(n.compileTimeWhen=r.predicate);t[s]=n}return t}function AS(e,t){switch(e.kind){case"isZero":case"isValue":{let s=e.kind==="isZero"?0:e.value,r=t[e.prop];return{props:[e.prop],when:o=>(o[e.prop]??r)===s}}case"allOf":{let s=e.rules.map(r=>AS(r,t));return{props:[...new Set(s.flatMap(r=>r.props))],when:r=>s.every(o=>o.when(r))}}case"custom":return{props:e.props,when:e.when}}}function Qp(e,t){if(!e)return;let s={};for(let[r,o]of Object.entries(t))s[r]=o.default;return AS(e,s)}function O8(e){let{role:t,species:s,effect:r,identityWhen:o,missingChildMessage:n,props:i,...d}=e,l={...d,props:ri(i),identity:Qp(o,i),missingChildMessage:n};if(r.kind==="tintToward"){let{color:p,amount:f}=r;return Pf({...l,body:{fn:cL,hint:"mixToward"},args:h=>[Se(p,h),En(f,h)]})}if(Zc(r))return Pf({...l,build:Qy(r,"pointwise",Jy(e))});let{kind:c,..._}=r;return Pf({...l,..._})}function Jy(e){return{name:e.name,props:e.props,animatedTime:e.animatedTime}}function V8(e){let{role:t,species:s,effect:r,identityWhen:o,missingChildMessage:n,props:i,...d}=e;if(r.kind==="displaceBy")return N8(e);if(Zc(r))return b5({...d,props:ri(i),identity:Qp(o,i),missingChildMessage:n,build:Qy(r,"gather",Jy(e)),resultAlpha:r.spec.alpha??"premultiplied"});let{kind:l,...c}=r;return b5({...d,props:ri(i),identity:Qp(o,i),missingChildMessage:n,...c})}function N8(e){let{role:t,species:s,effect:r,identityWhen:o,missingChildMessage:n,props:i,...d}=e,l=r,c=Qp(o,i),_=l.field.sim.config,p=l.field.output,f=_.step.find(g=>g.kind==="op.wave"),h=_.step.find(g=>g.kind==="op.splat");if(!f||!h||_.step.length!==2)throw new Error(`std: simulate.grid currently implements exactly [op.wave, op.splat] (got: ${_.step.map(g=>g.kind).join(", ")})`);if(_.history!==2)throw new Error(`std: op.wave reads t\u22121 and t\u22122 \u2014 declare history: 2 (got ${_.history})`);if(_.derive[p]?.kind!=="op.gradient")throw new Error(`std: displaceBy consumes a vector field \u2014 derive '${p}' must be op.gradient()`);if(_.rest&&_.rest.settlesWhen!=="derived-from-damping")throw new Error("std: simulate.grid rest supports settlesWhen: 'derived-from-damping' only");return{...d,props:ri(i),requiresRTT:!0,requiresChild:!0,usesPointer:h.at.kind==="pointer",compute:g=>{if(!g.childNode)return null;let x=PB(g,{resolution:_.resolution,dampingProp:f.damping.name,radiusProp:h.radius.name,radiusScale:.05,speedMax:h.amount.max,teleportGuard:h.at.teleportGuard});return x?{outputs:{[p]:x.displacement},getComputeNodes:x.getComputeNodes}:null},fragment:g=>{let{childNode:x,ctx:T,computeOutputs:S,propValues:A,convertToTexture:E}=g;if(!x)return _s;let M=E(x);if(Ky(c,g))return se(Hn,"unpremultiplyAlpha",[M.sample(T.uv)]);let $=A[l.edges.name]??0,L=S?.[p],B=L?L.sample(T.uv,"linearClamp").member("xy"):il("vec2f(0.0, 0.0)"),D=se(eF,"chromaticDisplaceUVs",[T.uv,B,Se(l.strength,g),Se(l.chromatic,g)]),G=ee=>M.sample(ee),I=Ed(D.member("rUV"),G,$),X=Ed(D.member("gUV"),G,$),H=Ed(D.member("bUV"),G,$);return se(Hn,"unpremultiplyAlpha",[Ss(I.member("r"),X.member("g"),H.member("b"),X.member("a"))])}}}function q8(e){let{role:t,map:s,edges:r,resample:o,uvRemapIdentityWhen:n,missingChildMessage:i,props:d,...l}=e;return{...l,props:ri(d),requiresRTT:!0,requiresChild:!0,...v8(s,{edges:r,resample:o,uvRemapIdentityWhen:n,requireChildMessage:i})}}function X8(e){let{role:t,name:s,description:r,category:o,shape:n}=e;return E8({name:s,description:r,category:o,...n})}function H8(e){let{role:t,paint:s,props:r,...o}=e;return Zc(s)?{acceptsUVContext:!0,...o,props:ri(r),fragment:Qy(s,"generator",Jy(e))}:{...o,props:ri(r),fragment:s}}function j8(e){let{role:t,species:s,gpu:r,props:o,...n}=e;return{...n,props:ri(o),fragment:r.fragment,...r.uvRemap?{uvRemap:r.uvRemap}:{}}}function K8(e){let t=[],s=e.paint,r=e.effect;for(let n of[s,r])Zc(n)&&t.push(n.spec.body,Z8(n.spec.inputs??{}),n.spec.alpha??"");if(t.length===0)return;let o=2166136261;for(let n of t.join("\0"))o^=n.charCodeAt(0),o=Math.imul(o,16777619)>>>0;return o.toString(16)}function Z8(e){let t=r=>{if(typeof r!="object"||r===null)return String(r);let o=r;switch(o.kind){case"prop":return`p:${o.name}`;case"ctx":return`c:${o.name}`;case"mul":return`mul(${t(o.a)},${t(o.b)})`;case"radialMask":return`radialMask(${o.center?.name},${o.radius?.name},${o.falloff?.name})`;default:return o.kind}},s=r=>typeof r=="number"?`n:${r}`:r instanceof ai?`s:${t(r.node)}`:t(r);return Object.keys(e).sort().map(r=>{let o=e[r];return o!==null&&typeof o=="object"&&"value"in o&&"type"in o?`${r}=${s(o.value)}:${o.type}`:`${r}=${s(o)}`}).join(",")}var Q8=new Set(["blendMode","opacity","visible","id","maskSource","maskType","renderOrder","transform","boundingBox","flow","absolute","children","ref","key","src"]),J8=new Set(["_animTime","_opacity"]),eI=["_pad","_bbox_","_map_","_childBounds_","_animTime_"],tI=/^[A-Za-z_][A-Za-z0-9_]*$/;function sI(e,t){for(let s of Object.keys(t)){if(!tI.test(s))throw new Error(`defineShader("${e}"): prop '${s}' is not a valid identifier (letters, digits and _ only, not starting with a digit)`);if(Q8.has(s))throw new Error(`defineShader("${e}"): '${s}' is a layer prop every component already has (blend mode, opacity, layout, \u2026) \u2014 rename the shader prop`);if(J8.has(s)||eI.some(r=>s.startsWith(r)))throw new Error(`defineShader("${e}"): '${s}' collides with a field the renderer manages itself \u2014 rename the shader prop`)}}function et(e){"props"in e&&e.props&&sI(e.name,e.props);let t=aI(e),s=K8(e);return s?{...t,revision:s}:t}function rI(e){let t="shape"in e?"shape":"map"in e?"warp":"gpu"in e?"custom":"paint"in e?"generator":"effect"in e?"filter":null,s=String(e.name??"?");if(!t)throw new Error(`defineShader("${s}"): give it a GPU half \u2014 paint: (generator), effect: (filter), map: (warp), shape: (shape) or gpu: (custom)`);let r=e.role;if(r&&t!=="custom"&&r!==t)throw new Error(`defineShader("${s}"): role '${r}' contradicts its ${oI[t]} field (a ${t})`);return t}var oI={shape:"shape:",warp:"map:",custom:"gpu:",generator:"paint:",filter:"effect:"};function nI(e){let{effect:t,species:s}=e;if(Zc(t))return s??(t.samplesChild?"gather":"pointwise");let r=t.kind==="gather"||t.kind==="displaceBy"?"gather":"pointwise";if(s&&s!==r)throw new Error(`defineShader("${e.name}"): species '${s}' contradicts its '${t.kind}' effect (${r})`);return r}function aI(e){switch(rI(e)){case"shape":return X8(e);case"warp":return q8(e);case"custom":return j8(e);case"generator":return H8(e);case"filter":{let t=e;return nI(t)==="gather"?V8({...t,species:"gather"}):O8({...t,species:"pointwise"})}}}var ah=e=>typeof e=="number"?nt(e):e,Jp=(e,t)=>typeof e=="number"?nt(e)._emit(t):e._emit(t);function tr(e,...t){return new Ts(s=>`${e}(${t.map(r=>Jp(r,s)).join(", ")})`)}function cl(e,t,s){return new Ts(r=>`(${Jp(t,r)} ${e} ${Jp(s,r)})`)}var C=(e,t)=>cl("+",e,t),ae=(e,t)=>cl("-",e,t),m=(e,t)=>cl("*",e,t),De=(e,t)=>cl("/",e,t),mo=e=>new Ts(t=>`(-(${Jp(e,t)}))`),Us=e=>tr("abs",e),e0=e=>tr("floor",e);var Uo=e=>tr("fract",e),un=e=>tr("sqrt",e),rs=(e,t)=>tr("pow",e,t),Fs=e=>tr("exp",e);var Zt=e=>tr("sin",e),kn=e=>tr("cos",e);var $n=(e,t)=>tr("min",e,t),ht=(e,t)=>tr("max",e,t),Le=(e,t,s)=>tr("clamp",e,t,s),dt=(e,t,s)=>wn(ah(e),ah(t),s),ES=(e,t)=>tr("step",e,t),Fe=(e,t,s)=>tr("smoothstep",e,t,s);var Ir=e=>tr("length",e);var Gs=(e,t)=>tr("dot",e,t),Jr=e=>tr("normalize",e);var Bm=(e,t,s)=>Je(ae(m($_(e,"x"),t),m($_(e,"y"),s)),C(m($_(e,"x"),s),m($_(e,"y"),t))),$_=(e,t)=>typeof e=="number"?e:e.member(t),jo=(e,t)=>tr("reflect",e,t),PS=(e,t,s)=>tr("refract",e,t,s),t0=e=>tr("exp2",e),s0=(e,t)=>m(Uo(m(Zt(m(e,t.k)),t.big)),6.283185307179586);var MS=(e,t)=>cl("<=",e,t),r0=(e,t)=>cl(">",e,t);var Gt=e=>nt(e),Je=(e,t)=>tr("vec2f",e,t),Ze=(e,t,s)=>tr("vec3f",e,t,s),is=(...e)=>Ss(...e.map(ah)),Dt=e=>tr("vec3f",e),P=(e,t)=>Vs(e,t),kS=(e,t)=>{let s=P(e,"sp");return m(C(s,un(C(m(s,s),m(t,t)))),.5)},Im=(e,t)=>Fs(mo(m(m(e,e),t)));function $S(e){return m(Fe(e.below.from,e.below.to,e.distance),ae(1,Fe(e.above.from??0,e.above.to,e.distance)))}function CS(e){let{width:t,curve:s}=e.softness;return rs(ae(1,Fe(ae(e.radius,t),C(e.radius,t),e.dist)),s)}function ul(e){let t=m(e.footprint,.5);return ae(1,Fe(mo(t),t,e.distance))}function RS(e){return ul({distance:ae(Us(e.distance),m(e.width,.5)),footprint:e.footprint})}function US(e,t,s){e.onBeforeRender(()=>{let r=e.getCpuValue(t.x),o=e.getCpuValue(t.y),n=e.getCpuValue(t.z),i=Math.sqrt(r*r+o*o+n*n);i>0?(e.setExtraField(s.x,r/i),e.setExtraField(s.y,o/i),e.setExtraField(s.z,n/i)):(e.setExtraField(s.x,0),e.setExtraField(s.y,0),e.setExtraField(s.z,0))})}function zS(e){return{kind:"crosses",value:e}}var iI=e=>typeof e=="number"?nt(e):e,vo=(e,t)=>(...s)=>se(e,t,s.map(iI)),GS=vo(_c,"circleSdf"),Xq=vo(Bp,"ellipseSdf"),DS=vo(Fp,"roundedRectSdf"),Hq=vo(Up,"polygonSdf"),jq=vo(Gp,"starSdf"),Kq=vo(zp,"flowerSdf"),Zq=vo(Op,"heartSdf"),Qq=vo(Lp,"crossSdf"),Jq=vo(Dp,"ringSdf"),eX=vo(Ip,"vesicaSdf"),tX=vo(Yp,"crescentSdf"),sX=vo(Wp,"trapezoidSdf"),rX=vo(Np,"teardropSdf"),oX=vo(qp,"parallelogramSdf"),nX=vo(Vp,"arcSdf");var Ge=Math.fround,dI=Ge($D),Mf=Ge(Et),lI=.11,ih=Ge(4294967295),k5=new DataView(new ArrayBuffer(4));function dh(e){return k5.setFloat32(0,Ge(e),!0),k5.getUint32(0,!0)}function em(e,t){return Math.imul(e>>>0,t>>>0)>>>0}function $5(e){let t=dh(Ge(Ge(e)*Ge(3141592653)));return Ge(Ge(em(em(t,t),3141592653))/ih)}function C5(e,t){let s=(dh(Ge(Ge(e)*Ge(141421356)))^dh(Ge(Ge(t)*Ge(2718281828))))>>>0;return[Ge(Ge(em(s,3141592653))/ih),Ge(Ge(em(s,1618033988))/ih)]}function cI(e,t,s,r,o,n){let i=Ge(Ge(e*dI)+Ge($5(Ge(Ge(s*Ge(.7311))+Ge(1.618)))*Mf)),d=Ge(Math.sqrt(Ge(Ge(e+.5)/Ge(t)))),l=C5(Ge(Ge(e*Ge(3.77))+Ge(.917)),Ge(Ge(s*Ge(1.093))+Ge(2.236))),c=Ge(Ge(l[0]-.5)*Ge(.26)),_=Ge(Ge(l[1]-.5)*Ge(.26)),p=C5(Ge(Ge(e*Ge(7.13))+Ge(1.618)),Ge(Ge(s*Ge(.531))+Ge(3.71))),f=Ge(p[0]*Mf),h=Ge(p[1]*Mf),g=Ge(.5+Ge($5(Ge(Ge(Ge(e*Ge(5.417))+Ge(s*Ge(.291)))+Ge(.917)))*Ge(.7))),x=Ge(Ge(n*Ge(lI))*g),T=Ge(Math.sin(Ge(x+f))),S=Ge(Math.cos(Ge(Ge(x*Ge(1.37))+h))),A=Ge(Ge(Ge(Ge(Math.cos(i))*d)*Ge(.62))+c)+Ge(Ge(T*Ge(r))*Ge(.16)),E=Ge(Ge(Ge(Ge(Math.sin(i))*d)*Ge(.62))+_)+Ge(Ge(S*Ge(r))*Ge(.16));return[Ge(Ge(.5+Ge(A))*Ge(o)),Ge(.5+Ge(E))]}function uI(e,t,s,r,o){let n=new Array(16);for(let i=0;i<8;i++){let[d,l]=cI(i,e,t,s,r,o);n[i*2]=d,n[i*2+1]=l}return n}function R5(e,t){return typeof e=="number"?nt(e):e instanceof ai||e.kind!=="ctx"?En(e,t):t.ctx[e.name]}function wr(e,t){if(typeof e=="object"&&e!==null&&"base"in e){let s=R5(e.base,t);return e.add!==void 0&&(s=s.add(e.add)),e.mul!==void 0&&(s=s.mul(e.mul)),s}return R5(e,t)}function Pi(e){return{uv:e.uvContext??e.ctx.uv,viewport:e.effectiveViewportSize??e.ctx.viewportSize}}function o0(e,t){return t.propValues[e.name]}function Qc(e){return typeof e=="number"?e:typeof e=="string"?ft(e):0}function LS(e,t){return Xo[e?Qc(t.propValues[e.name]):0]??lr}function Ym(e){return(t,s,r)=>{let o=LS(e.space,r);return se(o,"mixColors",[se(o,"mixColors",[Se(e.a,r),Se(e.b,r),t]),Se(e.c,r),s])}}function FS(e,t,s){return(r,o)=>se(Xo[Qc(o0(s,o))]??lr,"mixColors",[Se(e,o),Se(t,o),r])}function eo(e){return(t,s)=>{let r=Qc(o0(e,s));return(s.propValues.stopCount??0)>1?dl(t,{colorsArray:s.uniforms.colorsArray,positionsArray:s.uniforms.positionsArray,convertedColorsArray:s.uniforms.convertedColorsArray,stopCount:s.uniforms.stopCount},r):se(Xo[r]??lr,"mixColors",[s.uniforms.colorA,s.uniforms.colorB,t])}}var U5=1,_I=2,pI=3;function _n(e,t,s){return r=>{let{uv:o}=Pi(r),n=e(r,o);if(!s?.edges)return t(n,r);let i=o0(s.edges,r)??0,d;i===_I?d=se(cT,"gradientEdgeMirror",[n]):i===pI?d=se(sF,"gradientEdgeWrap",[n]):i===U5?d=n:d=se(E2,"gradientClamp01",[n]);let l=t(se(E2,"gradientClamp01",[d]),r);if(i===U5){let c=se(rF,"gradientTransparentAlpha",[n]);return Ss(l.member("rgb"),l.member("a").mul(c))}return l}}var BS={linear(e){return(t,s)=>{let{viewport:r}=Pi(t);return se(tF,"gradientRawT",[Se(e.from,t),Se(e.to,t),wr(e.angle,t),s,r])}},radial(e){return(t,s)=>{let{viewport:r}=Pi(t);return se(oF,"radialDist",[Se(e.center,t),wr(e.skew,t),wr(e.aspect,t),wr(e.radius,t),s,r])}},conic(e){return(t,s)=>{let{viewport:r}=Pi(t);return se(nF,"conicSweep",[Se(e.center,t),wr(e.rotation,t),s,r])}},diamond(e){return(t,s)=>{let{viewport:r}=Pi(t);return se(aF,"diamondDist",[Se(e.center,t),wr(e.size,t),wr(e.rotation,t),wr(e.roundness,t),s,r])}},spiral(e){return(t,s)=>{let{viewport:r}=Pi(t);return se(uF,"spiralMask",[Se(e.center,t),wr(e.scale,t),wr(e.width,t),wr(e.falloff,t),wr(e.softness,t),it(t),s,r])}}};function IS(e,t){return(s,r)=>se(_F,"toneRemap",[e(s,r),wr(t.glow,s),wr(t.contrast,s),wr(t.balance,s)])}function YS(e,t){return(s,r)=>se(vF,"unitThreshold",[e(s,r),t.bias!==void 0?wr(t.bias,s):nt(0),nt(t.low),nt(t.high)])}function Jc(e){let t=new WeakMap;return(s,r)=>{let o=t.get(s);return o||(o=Vs(e(s,r),"field"),t.set(s,o)),o}}var mI={mx3:{fn:()=>mF,hint:"unitNoise3"},perlin:{fn:()=>yd,hint:"perlin13"},value:{fn:()=>CD,hint:"value13"},mx3signed:{fn:()=>Po,hint:"mxNoiseFloat3"}};function WS(e){let t=mI[e];return(s,r)=>se(t.fn(),t.hint,[r])}function OS(e,t){let s=J7(Po,{name:"warpDomain"});return(r,o)=>{let n=wr(t.amount,r);t.amountScale!==void 0&&(n=n.mul(t.amountScale));let i=it(r);return t.timeScale!==void 0&&(i=i.mul(t.timeScale)),e(r,se(s,"warpDomain",[o,i,n]))}}function VS(e,t){return(s,r)=>{let{viewport:o}=Pi(s);return e(s,se(pF,"volumeDomain",[r,o,wr(t.scale,s)]))}}function NS(e){return(t,s)=>se(fF,"flowLayers",[s,wr(e.detail,t),it(t)])}function qS(e,t){return(s,r)=>se(hF,"shimmerPulse",[e(s,r),it(s),nt(t.speed),nt(t.span),nt(t.depth)])}function XS(e){let t=P(m(Uo(e),6),"hue6");return Ze(Le(ae(Us(ae(t,3)),1),0,1),Le(ae(2,Us(ae(t,2))),0,1),Le(ae(2,Us(ae(t,4))),0,1))}function HS(e,t){return s=>e(s).mul(t(s,s.ctx.uv))}function jS(e){let t=s=>typeof s=="number"?nt(s):s;return e.anchors?se(WD,"scatterField",[e.at,t(e.count),t(e.seed),e.anchors,t(e.softness)]):se(OD,"scatterField",[e.at,t(e.count),t(e.seed),t(e.drift),t(e.aspect),t(e.time),t(e.softness)])}function KS(e,t){let s=e.dimensions.width/Math.max(e.dimensions.height,1e-6);e.onResize(({width:o,height:n})=>{s=o/Math.max(n,1e-6)});let r="";return e.onBeforeRender(()=>{let o=e.getCpuValue("_animTime"),n=e.getCpuValue(t.count.name),i=e.getCpuValue(t.seed.name),d=e.getCpuValue(t.drift.name);if(typeof o!="number"||typeof n!="number"||typeof i!="number"||typeof d!="number")return;let l=`${n}|${i}|${d}|${s}|${o}`;l!==r&&(r=l,e.setExtraField(t.field,uI(n,i,d,s,o)))}),e.uniforms[t.field]}function ZS(e){return se(bF,"rampWrap",[e.t,typeof e.cycles=="number"?nt(e.cycles):e.cycles])}function QS(e){return se(cT,"gradientEdgeMirror",[e])}function JS(e){let t=s=>typeof s=="number"?nt(s):s;return e.levels===1?se(ID(Po,{name:"warpDomain1"}),"warpDomain1",[e.at,t(e.time),t(e.amount)]):se(J7(Po,{name:"warpDomain"}),"warpDomain",[e.at,t(e.time),t(e.amount)])}function n0(e){let t=s=>typeof s=="number"?nt(s):s;return se(VD,"chainedWarpStep",[e.at,nt(e.scale),t(e.z),Je(e.offsets[0][0],e.offsets[0][1]),Je(e.offsets[1][0],e.offsets[1][1]),nt(e.reach),t(e.strength)])}function eA(e,t){return kB(t,e)}function tA(e){return(t,s,r)=>{let{uniforms:o}=r,n=Qc(r.propValues[e.space.name]),i=Se(e.a,r),d=Se(e.b,r),l=Se(e.c,r),c=Se(e.d,r);if(n!==0){let _="";r.onBeforeRender(()=>{let h=[e.a.name,e.b.name,e.c.name,e.d.name].map(T=>r.getCpuValue(T));if(h.some(T=>!T))return;let g=h.map(T=>`${T.x},${T.y},${T.z}`).join("|");if(g===_)return;_=g;let x=["convA","convB","convC","convD"];h.forEach((T,S)=>{let A=Mm(T.x,T.y,T.z,n);r.setExtraField(x[S],[A[0],A[1],A[2]])})});let p=Vs(se(ti,"mixInSpace",[o.convA,i.member("a"),o.convB,d.member("a"),t]),"flowRow1"),f=Vs(se(ti,"mixInSpace",[o.convC,l.member("a"),o.convD,c.member("a"),t]),"flowRow2");return se(hy[n]??Pm,"mixPreconvertedColors",[p.member("conv"),f.member("conv"),p.member("alpha"),f.member("alpha"),s])}return se(lr,"mixColors",[Vs(se(lr,"mixColors",[i,d,t]),"flowRow1"),Vs(se(lr,"mixColors",[l,c,t]),"flowRow2"),s])}}function z5(e,t){return typeof e=="number"?nt(e):e instanceof ai||e.kind!=="ctx"?En(e,t):t.ctx[e.name]}function fI(e){return{uv:e.uvContext??e.ctx.uv,viewport:e.effectiveViewportSize??e.ctx.viewportSize}}function G5(e,t){return t.propValues[e.name]}function sA(e){return t=>{let{uv:s,viewport:r}=fI(t),o=it(t),n=se(iF,"colorWheelT",[s,r,z5(e.direction,t),z5(e.scale,t),o]);if((G5(e.mode,t)??"rainbow")==="rainbow")return se(dF,"colorWheelRainbow",[n]);let i=P(se(lF,"colorWheelPhase",[n]),"wheelPhase"),d=i.member("x"),l=i.member("y"),c=Xo[G5(e.space,t)??0]??lr;return se(cF,"colorWheelSelect",[se(c,"mixColors",[Se(e.palette.a,t),Se(e.palette.b,t),d]),se(c,"mixColors",[Se(e.palette.b,t),Se(e.palette.c,t),d]),se(c,"mixColors",[Se(e.palette.c,t),Se(e.palette.a,t),d]),l])}}function Va(e,t){return typeof e=="function"?e(t):Se(e,t)}function rA(e){let t=new WeakMap;return s=>{let r=t.get(s);if(r)return r;let o=e(s);return t.set(s,o),o}}function _l(e){return rA(t=>se(LS(e.space,t),"mixColors",[Va(e.fill,t),Va(e.stroke,t),Va(e.mask,t)]))}function oA(e,t){return s=>Ss(Va(e,s).member("rgb"),Va(t,s))}function nA(e){return t=>Va(e,t).member("a")}function aA(e,t){return s=>Va(e,s).mul(Va(t,s))}function iA(e){return t=>{let{uv:s,viewport:r}=Mn(t);return se(EF,"stripesMask",[s,r,Se(e.angle,t),Se(e.density,t),it(t),Se(e.offset,t),Se(e.balance,t),Se(e.softness,t)])}}function dA(e){return t=>{let{uv:s,viewport:r}=Mn(t);return se(PF,"ripplesMask",[Se(e.center,t),Se(e.frequency,t),Se(e.softness,t),Se(e.thickness,t),Se(e.phase,t),it(t),s,r])}}function lA(e){let t=rA(s=>{let{uv:r,viewport:o}=Mn(s);return P(se(MF,"fallingLinesField",[r,o,Se(e.angle,s),Se(e.density,s),Se(e.speedVariance,s),Se(e.trailLength,s),Se(e.strokeWidth,s),Se(e.rounding,s),Se(e.balance,s),it(s)]),"fallingField")});return{mask:s=>t(s).member("x"),fade:s=>t(s).member("y")}}function cA(e){let t=C(m(e.along,e.frequency),m(e.time,e.speed));return e.phase!==void 0&&(t=C(t,e.phase)),rs(C(m(Zt(t),.5),.5),e.sharpness)}function uA(e){let t=e.bulge?.tilt??.2,s=e.bulge?.drop??.1,r=Vs(Fe(0,e.radius,e.dist),"domeSlope"),o=C(r,t);return Jr(Ze(m(e.delta.member("x"),o),m(e.delta.member("y"),o),ae(1,m(r,s))))}function _A(e){return rs(ht(0,jo(m(e.light,-1),e.normal).member("z")),e.gloss)}function Ks(e,t){return typeof e=="number"?nt(e):e instanceof ai||e.kind!=="ctx"?En(e,t):t.ctx[e.name]}function pl(e){return{uv:e.uvContext??e.ctx.uv,viewport:e.effectiveViewportSize??e.ctx.viewportSize}}function pA(e){return t=>{let{uv:s,viewport:r}=pl(t);return se(jD,"radialFrame",[s,r,Se(e,t)])}}function mA(e){return t=>{let{uv:s,viewport:r}=pl(t);return se(yF,"godraysFrame",[s,r,Se(e,t)])}}function Wm(e,t,s){return r=>t(s?Vs(e(r),s):e(r),r)}function fA(e,...t){return(s,r)=>t.reduce((o,n)=>o.mul(n(s,r)),e(s,r))}function vA(e){return(t,s)=>se(HD,"softRayLobes",[t.member("y"),Ks(e.count,s),it(s).mul(e.spin),Ks(e.softness,s)])}function hA(e){return(t,s)=>se(XD,"featherMask",[t.member("x"),Ks(e.radius,s),Ks(e.feather,s)])}function yA(e){return(t,s)=>se(gF,"godraysRayStack",[t,it(s),Ks(e.density,s),Ks(e.intensity,s),Ks(e.spotty,s)])}function gA(e){return t=>{let{uv:s,viewport:r}=pl(t);return se(NF,"flareFrame",[s,r,it(t),Se(e.position,t),Ks(e.intensity,t),Ks(e.edgeFade,t)])}}function xA(e){return(t,s,r,o)=>{let{uv:n}=pl(o);return se(qF,"lensFlareGhost",[n,t.member("aspect"),t.member("lightPos"),t.member("flareAxis"),it(o),Ks(e.spread,o),Ks(e.chroma,o),Ks(e.intensity,o),Ss(...s),Ss(...r)])}}function bA(e){return(t,s)=>{let{uv:r}=pl(s);return se(XF,"flareHalo",[r,t.member("aspect"),t.member("lightPos"),it(s),Ks(e.intensity,s),Ks(e.radius,s),Ks(e.chroma,s),Ks(e.softness,s)])}}function wA(e){return(t,s)=>se(HF,"flareStarburst",[t.member("lightAngle"),t.member("flareAxis"),t.member("aspect"),it(s),t.member("lightDist"),Ks(e.points,s),Ks(e.intensity,s)])}function TA(e){return(t,s)=>{let{uv:r}=pl(s);return se(jF,"flareStreak",[r,t.member("lightPos"),Ks(e.length,s),Ks(e.intensity,s)])}}function SA(e){return(t,s)=>se(KF,"flareGlare",[t.member("lightDist"),Ks(e.size,s),Ks(e.intensity,s)])}function AA(e){return(t,s)=>se(ZF,"flareCore",[t.member("lightDist"),Ks(e.intensity,s)])}function EA(e,t){return se(QF,"flareComposite",[e,t.member("masterFade")])}function a0(e,...t){return t.reduce((s,r)=>s.add(r),e)}function PA(e){return t=>{let s=e.hint?Vs(e.coverage(t),e.hint):e.coverage(t),r=Se(e.color,t),o=Se(e.background,t);return Ss(wn(o.member("rgb"),r.member("rgb"),s),wn(o.member("a"),r.member("a"),s))}}function MA(e){return t=>se(xF,"coverageOver",[Se(e.color,t),Se(e.background,t),e.coverage(t)])}function ml(e,t){let s=(n,i,d)=>{if(i!==void 0){if(n===void 0)throw new Error(`std: waves() schedule uses axis '${d}' but the axes object doesn't provide it`);return i===1?n:m(n,i)}},r=n=>{let i=[s(e.x,n.x,"x"),s(e.y,n.y,"y"),s(e.t,n.t,"t"),n.phase].filter(d=>d!==void 0);if(i.length===0)throw new Error("std: a wave needs at least one axis coefficient or phase");return Zt(i.reduce((d,l)=>C(d,l)))},o=t.map(n=>{if(n.waves.length===0)throw new Error("std: a waves() term needs at least one wave");let i=n.waves.map(r).reduce((d,l)=>m(d,l));return n.weight===void 0||n.weight===1?i:m(i,n.weight)});if(o.length===0)throw new Error("std: waves() needs at least one term");return o.reduce((n,i)=>C(n,i))}function kA(e){return ml({x:e.along,t:e.time},e.waves.map(t=>({waves:[{x:t.freq,t:t.speed,phase:t.phase}],weight:t.amount})))}function $A(e,t){return(s,r)=>{let{viewport:o}=Mn(s);return e(s,se(FD,"aspectScaledDomain",[r,o,Se(t.scale,s),Se(t.seed,s)]))}}function CA(e){return(t,s)=>se(RD,"gabor12",[s,Se(e.frequency,t),it(t)])}function RA(e){return(t,s)=>se(UD,"signedToUnit",[e(t,s)])}function UA(e,t){return(s,r)=>se(MB,"noiseToneKColor",[e(s,r),t?.contrast?Se(t.contrast,s):nt(0),t?.balance?Se(t.balance,s):nt(0)])}function vI(e,t){return(s,r)=>se(GF,"worleyTone",[e(s,r),Se(t.contrast,s),Se(t.balance,s)])}function zA(e){return _n((s,r)=>{let{viewport:o}=Mn(s);return se(RF,"fbmNormalize",[se(CF,"fractalSum",[se($F,"rotatedCenteredDomain",[r,o,Se(e.angle,s)]),Se(e.detail,s),Se(e.contrast,s),it(s),Se(e.seed,s),Se(e.octaves,s)])])},eo(e.space))}function GA(e){return _n(vI((s,r)=>{let{viewport:o}=Mn(s),n=DF(s.propValues[e.mode.name]),i=LF(s.propValues[e.distance.name]),d=Math.max(1,Math.min(4,Math.round(s.propValues[e.octaves.name]??1)));return se(zF,"worleyNormalize",[se(UF,"worleyCells",[se(mT,"aspectPlane",[r,o]),Se(e.scale,s),Se(e.seed,s),Se(e.jitter,s),Se(e.lacunarity,s),Se(e.persistence,s),it(s),nt(d),nt(i),nt(n)]),nt(FF(n,i))])},{contrast:e.contrast,balance:e.balance}),eo(e.space))}function DA(e){return(t,s)=>{let{viewport:r}=Mn(t);return se(BF,"voronoiNearest2",[se(mT,"aspectPlane",[s,r]).mul(Se(e.scale,t)),it(t),Se(e.seed,t)])}}function LA(e,t){return(s,r)=>se(IF,"cellFill",[e(s,r),Se(t.edgeIntensity,s)])}function FA(e,t){return(s,r)=>se(YF,"cellBorders",[e(s,r),Se(t.softness,s),Se(t.scale,s)])}function BA(e,t,s){return r=>{let{uv:o}=Mn(r),n=Vs(e(r),"base");return Ss(wn(Se(s.color,r).member("rgb"),n.member("rgb"),t(r,o)),n.member("a"))}}function IA(e,...t){return s=>{let r=e(s),o=r.member("rgb");for(let n of t)o=n(o,s);return Ss(o,r.member("a"))}}function YA(e){return(t,s)=>pT(t,e.space?Qc(s.propValues[e.space.name]):0)}function WA(){return e=>se(WF,"toneLift",[e])}function OA(e){return t=>{let{uniforms:s}=t,{uv:r,viewport:o}=Mn(t),n=it(t),i=it(t,void 0,"_animTime_color"),d=Ss(Se(e.amplitude,t),Se(e.frequency,t),Se(e.count,t),Se(e.width,t)),l=Ss(Se(e.softness,t),Se(e.spread,t),Se(e.colorScale,t),Se(e.colorVariance,t)),c=Ss(Se(e.pinEdges,t),n,i,s.stopCount);return se(OF,"ribbonsField",[r,o,Se(e.from,t),Se(e.to,t),d,l,c,s.colorsArray,s.positionsArray,s.convertedColorsArray])}}var VA=fT,NA=vT;var{sdfSpaceUV:hI,offsetUV:C_}=uS,{ANALYTIC_SDF_EXTRA_FIELDS:yI}=Cm,{createVolumetricFieldComputeNode:gI,resolveShapeFieldSampler:xI,VOLUMETRIC_FIELD_EXTRA_FIELDS:bI}=ni,wI=0;function sr(e,t,s,r="guarded",o=[]){let n=wI++;return new Ts(i=>i.memo(`guard:${n}`,()=>{let d=i.freshLocal(r),l=e._emit(i),c=s._emit(i);for(let f of o)f._emit(i);let _=[],p=t._emit({external:(f,h)=>i.external(f,h),statement:f=>_.push(f),freshLocal:f=>i.freshLocal(f),memo:(f,h)=>i.memo(f,h)});return i.statement(`var ${d} = ${c};`),i.statement(`if (${l}) {
|
|
${_.join(`
|
|
`)}
|
|
${d} = ${p};
|
|
}`),d}))}function Yr(e,t){let s=se(xT,"outsideShape",[e,t]);return new Ts(r=>`(!(${s._emit(r)}))`)}function Bs(e){let t=e.pattern??"none",s=e.chord??"span",r=e.stencil??{kind:"forward",eps:.01},o=i=>gI(i,()=>i.getCpuValue("shape"),t,s),n=i=>{let{childNode:d,computeOutputs:l,convertToTexture:c,uniforms:_,ctx:p}=i,f;if(e.child==="required"){if(!d)return _s;f=l?.childTexture??c(d)}let{sampler:h,gradSampler:g,texelSampler:x,volumetric:T,bakedGradients:S}=xI(i,{patternMode:t,gradSampler:e.gradSampler??"fast",bakedGradients:e.bakedGradients??"none"}),A={sampler:h,gradSampler:g,texelSampler:x,volumetric:T,bakedGradients:S,volFlag:nt(T?1:0),childTexture:f};if(r!=="none"){let E=e.placeUV?e.placeUV(i):p.uv;if(A.sdfUV=P(se(hI,"sdfSpaceUV",[_.center,_.scale,_.rotation,E,p.aspect]),"sdfUV"),A.surf0=(e.centreTap==="fast"?g:h)(A.sdfUV),r!=="centre"){let{kind:M,eps:$}=r;A.surfX=g(se(C_,"offsetUV",[A.sdfUV,nt($),nt(0)])),M==="central"&&(A.surfL=g(se(C_,"offsetUV",[A.sdfUV,nt(-$),nt(0)]))),A.surfY=g(se(C_,"offsetUV",[A.sdfUV,nt(0),nt($)])),M==="central"&&(A.surfD=g(se(C_,"offsetUV",[A.sdfUV,nt(0),nt(-$)])))}}return e.surface(A,i)};return{extraFields:{...bI,...yI},compute:o,gpu:{fragment:n}}}function to(e,t,s={}){let{ctx:r}=t,o=P(e.surf0,"s0"),n=P(De(1,r.viewportSize.member("y")),"pxH"),i=P(s.scale?De(o.member("x"),s.scale):o.member("x"),"sdf"),d=De(r.viewportSize.member("x"),r.viewportSize.member("y"));return{s0:o,sX:e.surfX?P(e.surfX,"sX"):void 0,sY:e.surfY?P(e.surfY,"sY"):void 0,sdf:i,pxH:n,aspect:d}}function fl(e,t,s){let r=Gt(s.eps??.01),o=s.hint??"nGeo";if(e.volumetric)return P(se(My,"volumetricNormal",[t.s0,t.sX,t.sY,r,Gt(s.sharpness??5)]),o);let n=Le(De(mo(t.sdf),ht(s.bevelWidth,.003)),0,1);return P(se(yT,"bevelledFlatNormal",[se(Py,"fieldGradient",[t.s0,t.sX,t.sY,r]),se(cS,"bevelSin",[n,s.bevelShape])]),o)}function zo(e,t,s={}){return P(se(gT,"patternCoords",[s.uv??e.sdfUV,t.s0,e.volFlag]),"pat")}function ii(e,t=.01){return P(se(Py,"fieldGradient",[e.s0,e.sX,e.sY,Gt(t)]),"grad")}function di(e,t,s=.6){return P(se(bT,"perspectiveViewRay",[e.ctx.uv,t.aspect,Gt(s)]),"viewI")}function Om(e,t){return P(ae(1,Le(mo(Gs(e,t)),0,1)),"grazing")}function Vm(e,t,s){let r=o=>typeof o=="number"?Gt(o):o;return se(lB,"studio5Softbox",[e,t,s.rotation.member("x"),s.rotation.member("y"),r(s.keyRadius),r(s.drift),r(s.strength),Gt(s.skyGain)])}function so(e,t){return se(eB,"silhouetteAlpha",[e.sdf,t,e.pxH])}function Nm(e){return se(sT,"tonemapNeutral",[e])}function li(e,t,s,r="n"){return P(se(nB,"nudgeNormal",[e,t,s]),r)}function vl(e,t=5,s="nGeo"){return P(se(My,"volumetricNormal",[e.s0,e.sX,e.sY,Gt(.01),Gt(t)]),s)}function pn(e,t,s="kl"){return TI(e.member("x"),e.member("y"),t,s)}function TI(e,t,s,r="kl"){return P(se(tB,"keyLight",[e,t,Gt(s)]),r)}function ci(e){return P(se(sB,"grazingView",[e]),"grazing")}function qm(e,t,s){return se(rB,"sharpGlint",[e,t,s])}function Xm(e,t){return se(oB,"clampedPerlinGrad",[e,typeof t=="number"?Gt(t):t])}function Kd(e,t){return se(aB,"opticalThickness",[e.sdf,t.volFlag])}function Hm(e,t){return se(iB,"beerLambert",[e,t])}function jm(e,t){return se(dB,"flowWarpOffset",[e,t])}function $r(e,t){return se($i,"mxNoiseFloat2",[Je(e,t)])}function ro(e){return se($i,"mxNoiseFloat2",[e])}function Tn(e){return se(Po,"mxNoiseFloat3",[e])}function qA(e,t){return se(Vc,"cosinePalette",[e,Gt(t[0]),Gt(t[1]),Gt(t[2])])}function SI(e){return se(fy,"mxWorleyNoiseFloat2Pub",[e,Gt(1)])}function hl(e,t){return se(ms,"hash12",[Je(e,t)])}function XA(e,t){return se(uo,"value12",[Je(e,t)])}function HA(e){let t=P(e.gradSampler(Je(.5,.5)),"s0C");return{x:P(m(mo(t.member("y")),e.volFlag),"rotSenseX"),y:P(m(mo(t.member("z")),e.volFlag),"rotSenseY")}}function jA(e,t,s){let r=P(ae(e.sdfUV.member("x"),.5),"cx"),o=P(ae(e.sdfUV.member("y"),.5),"cy");return{x:P(C(r,m(t.member("x"),s)),"bentX"),y:P(C(o,m(t.member("y"),s)),"bentY"),centered:{x:r,y:o}}}function Km(e,t){return C(t.r0??.04,m(rs(e,Gt(t.power??5)),t.gain))}function i0(e,t,s){return C(ae(1,s.amount),m(Zt(C(m(e,s.rate),m(t,s.spread))),s.amount))}function d0(e,t){let s=t.hint??"stars",r=P(C(m(ro(m(e,t.variationFreq)),.5),.5),`${s}V`),o=t.shimmer?t.shimmer(r):Gt(1),n=P(m(m(m(Fe(C(t.radius[0],m(r,t.radius[1])),5e-4,SI(e)),Fe(t.keep[0],t.keep[1],r)),m(C(t.brightness[0],m(m(r,r),t.brightness[1])),o)),t.gain),s);return{glint:n,variation:r,rgb:t.tint?m(dt(Ze(...t.tint.from),Ze(...t.tint.to),Dt(r)),Dt(m(n,t.tint.gain))):void 0}}function KA(e,t){let s=t.softness?P(t0(dt(2,-2,t.softness)),"lobeWiden"):void 0,r=o=>s?m(o,s):Gt(o);return m(C(m(rs(e,r(t.core[0])),t.core[1]),m(rs(e,r(t.halo[0])),t.halo[1])),t.gain)}function ZA(e,t,s){let r=P(m(e.s0.member("w"),t.volFlag),"rayEntry"),o=P(s.lengthScale===void 0?Kd(e,t):m(Kd(e,t),s.lengthScale),"rayLen"),n=s.view?P(m(s.view.member("x"),s.shear??1),"rayShearX"):void 0,i=s.view?P(m(s.view.member("y"),s.shear??1),"rayShearY"):void 0;return{entry:r,length:o,at(d){return{x:n?C(s.origin.x,m(n,d)):s.origin.x,y:i?C(s.origin.y,m(i,d)):s.origin.y}}}}function l0(e,t){let s=t.hint??"plane",r=P(C(e.entry,m(e.length,t.depth)),`${s}Z`),o=e.at(r);if(!t.pan)return{x:o.x,y:o.y,z:r};let n=t.panRate??1;return{x:C(o.x,m(t.pan.x,n)),y:C(o.y,m(t.pan.y,n)),z:r}}function QA(e,t){let s=t.hint??"",r=t.drift,o=t.seed,n=(p,f,h,g)=>{let x=f===void 0?m(p,t.frequency):m(p,m(t.frequency,f));return r&&(x=C(x,h===1?r:m(r,h))),o&&(x=C(x,g===1?o:m(o,g))),x},i=P(Ze(n(e.x,void 0,1,1),n(e.y,void 0,-.7,.53),n(e.z,1.25,1.3,.79)),`q${s}`),d=P(Tn(r?C(m(i,.5),Ze(m(r,1.4),0,m(r,-.9))):m(i,.5)),`warp${s}`),l=t.billow?P(C(i,m(Ze(d,m(d,-.73),m(d,.41)),t.billow)),`qw${s}`):i,c=P(Tn(C(m(l,2.13),Ze(5.2,1.3,8.4))),`mid${s}`),_=P(Tn(C(m(l,4.31),Ze(9.1,3.7,1.2))),`fine${s}`);return{density:P(m(C(C(Tn(l),m(c,.5)),m(_,.27)),.57),`fbm${s}`),mid:c,fine:_}}function JA(e,t){let s=Dt(1),r=Ze(0,0,0);for(let o=0;o<e.steps;o++){let n=(o+.5)/e.steps,i=P(C(e.entry,m(e.length,e.jitter?C(n,e.jitter):n)),`z${o}`),{emit:d,absorb:l}=t({i:o,t:n,z:i}),c=m(d,s);r=C(r,e.emissionGain?m(c,Dt(e.emissionGain)):c),s=P(m(s,Fs(mo(l))),`transmit${o}`)}return{color:P(r,e.hint??"marchAcc"),transmittance:s}}function eE(e,t){let s,r;if(e.forEach((o,n)=>{let{value:i,weight:d}=t(o,n),l=m(i,d);s=s===void 0?l:C(s,l),r=r===void 0?d:C(r,d)}),!s||!r)throw new Error("std: layered([]) needs at least one layer");return{weightedSum:s,totalWeight:r}}function tE(e){let t;for(let s of e){let r=s instanceof Object&&"paint"in s?s:{paint:s},o=r.paint;r.opacity!==void 0&&(o=m(o,r.opacity)),r.behind&&(o=m(o,r.behind)),t=t===void 0?o:r.blend==="screen"?ae(C(t,o),m(t,o)):C(t,o)}if(!t)throw new Error("std: layers([]) needs at least one layer");return t}function sE(e,t){let{uv:s,viewport:r}=Mn(t);return se(LD,"rgbDither",[e,s,r,it(t)])}function Xl(e,t){return typeof e=="number"?nt(e):e instanceof ai||e.kind!=="ctx"?En(e,t):t.ctx[e.name]}function AI(e,t,s){let r=Se(e,s);return Ss(r.member("rgb"),r.member("a").mul(t))}function rE(e){return t=>{let{uv:s,viewport:r}=Mn(t),o=se(VF,"sineWaveMask",[s,r,Xl(e.angle,t),Se(e.position,t),Xl(e.frequency,t),Xl(e.amplitude,t),Xl(e.thickness,t),Xl(e.softness,t),it(t)]);return AI(e.color,o,t)}}var{sdfSpaceUV:aX}=uS,EI="rgba16float",c0=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({center:u,lightPos:zt(b,8),lightColor:zt(b,8),lightCount:a,scale:a,rotation:a,aspect:a,reach:a,wrap:a,lightRange:a,shadowSoftness:a,eps:a,res:a,frame:a,rays:a,saRadius:a,saSides:a,saRounding:a,saInnerRatio:a,saRotation:a,saHeight:a,saOffset:a,saAperture:a,vfOriginX:a,vfOriginY:a,vfSpanX:a,vfSpanY:a,vfActiveRes:a,vfRBound:a}),"IrradianceParams"),Ki={storageTexture:an(EI,"write-only")},iX=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({params:{uniform:c0},outTex:Ki}),"irradianceAnalyticLayout"),kf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({params:{uniform:c0},outTex:Ki,sdfSource:{texture:Hs(a)},samp:{sampler:"filtering"}}),"irradianceSvgLayout"),R_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({params:{uniform:c0},outTex:Ki,silhouetteTex:{texture:Hs(a)},samp:{sampler:"filtering"}}),"irradianceFieldLayout"),$f=1e3,tm=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return w(ue(t,$f),__tsover_mul($f,-1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[6,"std.max",[[6,"std.min",["v","FAR"]],[1,"FAR","*",[4,"-",[5,"1"]]]]]]]]},externals:{"std.max":()=>w,"std.min":()=>ue,FAR:()=>$f}})&&e.f)({})).$name("irradianceSane"),D5=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=z(t,u(0,0),u(1,1));return te(t.sub(s))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"c",[6,"std.clamp",["uv",[6,"d.vec2f",[[5,"0"],[5,"0"]]],[6,"d.vec2f",[[5,"1"],[5,"1"]]]]]],[10,[6,"std.length",[[6,[7,"uv","sub"],["c"]]]]]]]},externals:{"std.clamp":()=>z,"d.vec2f":()=>u,"std.length":()=>te}})&&e.f)({})).$name("irradianceBeyondSquare");var dX=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ip(kf.$.sdfSource,kf.$.samp,t,a(0)).x,r=D5(t);return tm(F(s,w(r,__tsover_sub(s,r)),r>0))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"border",[7,[6,"std.textureSampleLevel",[[7,[7,"irradianceSvgLayout","$"],"sdfSource"],[7,[7,"irradianceSvgLayout","$"],"samp"],"uv",[6,"d.f32",[[5,"0"]]]]],"x"]],[13,"beyond",[6,"beyondSquare",["uv"]]],[10,[6,"sane",[[6,"std.select",["border",[6,"std.max",["beyond",[1,"border","-","beyond"]]],[1,"beyond",">",[5,"0"]]]]]]]]]},externals:{"std.textureSampleLevel":()=>ip,irradianceSvgLayout:()=>kf,"d.f32":()=>a,beyondSquare:()=>D5,sane:()=>tm,"std.select":()=>F,"std.max":()=>w}})&&e.f)({})).$name("irradianceSvgField"),lX=y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=R_.$.params,r=z(t.x,s.vfOriginX,__tsover_add(s.vfOriginX,s.vfSpanX)),o=z(t.y,s.vfOriginY,__tsover_add(s.vfOriginY,s.vfSpanY)),n=te(u(__tsover_sub(t.x,r),__tsover_sub(t.y,o))),i=__tsover_sub(te(u(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),s.vfRBound),d=u(__tsover_div(__tsover_sub(r,s.vfOriginX),s.vfSpanX),__tsover_div(__tsover_sub(o,s.vfOriginY),s.vfSpanY)),l=ip(R_.$.silhouetteTex,R_.$.samp,d,a(0)),c=__tsover_mul(l.z,l.w);return tm(F(c,w(w(n,i),__tsover_sub(c,n)),n>0))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"p",[7,[7,"irradianceFieldLayout","$"],"params"]],[13,"cx",[6,"std.clamp",[[7,"uv","x"],[7,"p","vfOriginX"],[1,[7,"p","vfOriginX"],"+",[7,"p","vfSpanX"]]]]],[13,"cy",[6,"std.clamp",[[7,"uv","y"],[7,"p","vfOriginY"],[1,[7,"p","vfOriginY"],"+",[7,"p","vfSpanY"]]]]],[13,"outside",[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-","cx"],[1,[7,"uv","y"],"-","cy"]]]]]],[13,"circle",[1,[6,"std.length",[[6,"d.vec2f",[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-",[7,"p","vfRBound"]]],[13,"tuv",[6,"d.vec2f",[[1,[1,"cx","-",[7,"p","vfOriginX"]],"/",[7,"p","vfSpanX"]],[1,[1,"cy","-",[7,"p","vfOriginY"]],"/",[7,"p","vfSpanY"]]]]],[13,"sil",[6,"std.textureSampleLevel",[[7,[7,"irradianceFieldLayout","$"],"silhouetteTex"],[7,[7,"irradianceFieldLayout","$"],"samp"],"tuv",[6,"d.f32",[[5,"0"]]]]]],[13,"inDomain",[1,[7,"sil","z"],"*",[7,"sil","w"]]],[13,"beyond",[6,"std.max",[[6,"std.max",["outside","circle"]],[1,"inDomain","-","outside"]]]],[10,[6,"sane",[[6,"std.select",["inDomain","beyond",[1,"outside",">",[5,"0"]]]]]]]]]},externals:{irradianceFieldLayout:()=>R_,"std.clamp":()=>z,"std.length":()=>te,"d.vec2f":()=>u,"std.textureSampleLevel":()=>ip,"d.f32":()=>a,"std.max":()=>w,sane:()=>tm,"std.select":()=>F}})&&e.f)({})).$name("irradianceVolumetricField"),oE=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({vfOriginX:a,vfOriginY:a,vfSpanX:a,vfSpanY:a,vfActiveRes:a,vfRBound:a,res:a,step:a}),"SilhouetteParams"),kd=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({params:{uniform:oE},fieldTex:{texture:Hs(a),sampleType:"unfilterable-float"},out:Ki}),"silhouetteSeedLayout"),Hl=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({params:{uniform:oE},src:{texture:Hs(a)},out:Ki}),"silhouetteStepLayout"),{fieldSampleFastArg:L5}=Fy(),vd=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=kd.$.params,o=L5(u(__tsover_add(r.vfOriginX,__tsover_mul(__tsover_div(__tsover_add(t,.5),r.res),r.vfSpanX)),__tsover_add(r.vfOriginY,__tsover_mul(__tsover_div(__tsover_add(s,.5),r.res),r.vfSpanY))),kd.$.fieldTex,r.vfOriginX,r.vfOriginY,r.vfSpanX,r.vfSpanY,r.vfActiveRes,r.vfRBound).x;return F(a(1),a(-1),o<0)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"tx"},{type:"i",name:"ty"}],body:[0,[[13,"p",[7,[7,"silhouetteSeedLayout","$"],"params"]],[13,"uv",[6,"d.vec2f",[[1,[7,"p","vfOriginX"],"+",[1,[1,[1,"tx","+",[5,"0.5"]],"/",[7,"p","res"]],"*",[7,"p","vfSpanX"]]],[1,[7,"p","vfOriginY"],"+",[1,[1,[1,"ty","+",[5,"0.5"]],"/",[7,"p","res"]],"*",[7,"p","vfSpanY"]]]]]],[13,"v",[7,[6,"fieldSampleFastArg",["uv",[7,[7,"silhouetteSeedLayout","$"],"fieldTex"],[7,"p","vfOriginX"],[7,"p","vfOriginY"],[7,"p","vfSpanX"],[7,"p","vfSpanY"],[7,"p","vfActiveRes"],[7,"p","vfRBound"]]],"x"]],[10,[6,"std.select",[[6,"d.f32",[[5,"1"]]],[6,"d.f32",[[4,"-",[5,"1"]]]],[1,"v","<",[5,"0"]]]]]]]},externals:{silhouetteSeedLayout:()=>kd,"d.vec2f":()=>u,fieldSampleFastArg:()=>L5,"std.select":()=>F,"d.f32":()=>a}})&&e.f)({})).$name("silhouetteInside"),cX=y.fn([Y,Y])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=kd.$.params,o=a(t),n=a(s),i=vd(o,n),d=__tsover_sub(r.res,1),l=vd(w(__tsover_sub(o,1),0),n),c=vd(ue(__tsover_add(o,1),d),n),_=vd(o,w(__tsover_sub(n,1),0)),p=vd(o,ue(__tsover_add(n,1),d)),f=l!==i||c!==i||_!==i||p!==i,h=__tsover_add(r.vfOriginX,__tsover_mul(__tsover_div(__tsover_add(o,.5),r.res),r.vfSpanX)),g=__tsover_add(r.vfOriginY,__tsover_mul(__tsover_div(__tsover_add(n,.5),r.res),r.vfSpanY)),x=F(b(-1,-1,6e4,i),b(h,g,0,i),f);Co(kd.$.out,He(t,s),x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"silhouetteSeedLayout","$"],"params"]],[13,"fx",[6,"d.f32",["cx"]]],[13,"fy",[6,"d.f32",["cy"]]],[13,"s0",[6,"silhouetteInside",["fx","fy"]]],[13,"maxT",[1,[7,"p","res"],"-",[5,"1"]]],[13,"sL",[6,"silhouetteInside",[[6,"std.max",[[1,"fx","-",[5,"1"]],[5,"0"]]],"fy"]]],[13,"sR",[6,"silhouetteInside",[[6,"std.min",[[1,"fx","+",[5,"1"]],"maxT"]],"fy"]]],[13,"sD",[6,"silhouetteInside",["fx",[6,"std.max",[[1,"fy","-",[5,"1"]],[5,"0"]]]]]],[13,"sU",[6,"silhouetteInside",["fx",[6,"std.min",[[1,"fy","+",[5,"1"]],"maxT"]]]]],[13,"boundary",[3,[3,[3,[1,"sL","!==","s0"],"||",[1,"sR","!==","s0"]],"||",[1,"sD","!==","s0"]],"||",[1,"sU","!==","s0"]]],[13,"sx",[1,[7,"p","vfOriginX"],"+",[1,[1,[1,"fx","+",[5,"0.5"]],"/",[7,"p","res"]],"*",[7,"p","vfSpanX"]]]],[13,"sy",[1,[7,"p","vfOriginY"],"+",[1,[1,[1,"fy","+",[5,"0.5"]],"/",[7,"p","res"]],"*",[7,"p","vfSpanY"]]]],[13,"seed",[6,"std.select",[[6,"d.vec4f",[[4,"-",[5,"1"]],[4,"-",[5,"1"]],[5,"60000"],"s0"]],[6,"d.vec4f",["sx","sy",[5,"0"],"s0"]],"boundary"]]],[6,"std.textureStore",[[7,[7,"silhouetteSeedLayout","$"],"out"],[6,"d.vec2u",["cx","cy"]],"seed"]]]]},externals:{silhouetteSeedLayout:()=>kd,"d.f32":()=>a,silhouetteInside:()=>vd,"std.max":()=>w,"std.min":()=>ue,"std.select":()=>F,"d.vec4f":()=>b,"std.textureStore":()=>Co,"d.vec2u":()=>He}})&&e.f)({})).$name("silhouetteSeed"),uX=y.fn([Y,Y])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Hl.$.params,o=a(t),n=a(s),i=u(__tsover_add(r.vfOriginX,__tsover_mul(__tsover_div(__tsover_add(o,.5),r.res),r.vfSpanX)),__tsover_add(r.vfOriginY,__tsover_mul(__tsover_div(__tsover_add(n,.5),r.res),r.vfSpanY))),d=at(Hl.$.src,He(t,s),0),l=b(d),c=__tsover_sub(r.res,1);for(let _=-1;_<=1;_++)for(let p=-1;p<=1;p++){let f=z(__tsover_add(o,__tsover_mul(a(p),r.step)),0,c),h=z(__tsover_add(n,__tsover_mul(a(_),r.step)),0,c),g=at(Hl.$.src,He(Y(f),Y(h)),0);if(g.x>=0){let x=te(g.xy.sub(i));x<l.z&&(l=b(g.x,g.y,x,l.w))}}Co(Hl.$.out,He(t,s),b(l.x,l.y,l.z,d.w))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"silhouetteStepLayout","$"],"params"]],[13,"tx",[6,"d.f32",["cx"]]],[13,"ty",[6,"d.f32",["cy"]]],[13,"here",[6,"d.vec2f",[[1,[7,"p","vfOriginX"],"+",[1,[1,[1,"tx","+",[5,"0.5"]],"/",[7,"p","res"]],"*",[7,"p","vfSpanX"]]],[1,[7,"p","vfOriginY"],"+",[1,[1,[1,"ty","+",[5,"0.5"]],"/",[7,"p","res"]],"*",[7,"p","vfSpanY"]]]]]],[13,"self",[6,"std.textureLoad",[[7,[7,"silhouetteStepLayout","$"],"src"],[6,"d.vec2u",["cx","cy"]],[5,"0"]]]],[12,"best",[6,"d.vec4f",["self"]]],[13,"maxT",[1,[7,"p","res"],"-",[5,"1"]]],[14,[12,"j",[4,"-",[5,"1"]]],[1,"j","<=",[5,"1"]],[102,"++","j"],[0,[[14,[12,"i",[4,"-",[5,"1"]]],[1,"i","<=",[5,"1"]],[102,"++","i"],[0,[[13,"nx",[6,"std.clamp",[[1,"tx","+",[1,[6,"d.f32",["i"]],"*",[7,"p","step"]]],[5,"0"],"maxT"]]],[13,"ny",[6,"std.clamp",[[1,"ty","+",[1,[6,"d.f32",["j"]],"*",[7,"p","step"]]],[5,"0"],"maxT"]]],[13,"n",[6,"std.textureLoad",[[7,[7,"silhouetteStepLayout","$"],"src"],[6,"d.vec2u",[[6,"d.u32",["nx"]],[6,"d.u32",["ny"]]]],[5,"0"]]]],[11,[1,[7,"n","x"],">=",[5,"0"]],[0,[[13,"dist",[6,"std.length",[[6,[7,[7,"n","xy"],"sub"],["here"]]]]],[11,[1,"dist","<",[7,"best","z"]],[0,[[2,"best","=",[6,"d.vec4f",[[7,"n","x"],[7,"n","y"],"dist",[7,"best","w"]]]]]]]]]]]]]]]],[6,"std.textureStore",[[7,[7,"silhouetteStepLayout","$"],"out"],[6,"d.vec2u",["cx","cy"]],[6,"d.vec4f",[[7,"best","x"],[7,"best","y"],[7,"best","z"],[7,"self","w"]]]]]]]},externals:{silhouetteStepLayout:()=>Hl,"d.f32":()=>a,"d.vec2f":()=>u,"std.textureLoad":()=>at,"d.vec2u":()=>He,"d.vec4f":()=>b,"std.clamp":()=>z,"d.u32":()=>Y,"std.length":()=>te,"std.textureStore":()=>Co}})&&e.f)({})).$name("silhouetteStep");var PI=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({weight:a}),"AccumulateParams"),jl=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({sample:{texture:Hs(a)},prev:{texture:Hs(a)},out:Ki,params:{uniform:PI}}),"accumulateLayout"),_X=y.fn([Y,Y])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=He(t,s),o=at(jl.$.sample,r,0),n=at(jl.$.prev,r,0),i=jl.$.params.weight;Co(jl.$.out,r,F(n.add(o.sub(n).mul(i)),o,i>=1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"at",[6,"d.vec2u",["cx","cy"]]],[13,"s",[6,"std.textureLoad",[[7,[7,"accumulateLayout","$"],"sample"],"at",[5,"0"]]]],[13,"prev",[6,"std.textureLoad",[[7,[7,"accumulateLayout","$"],"prev"],"at",[5,"0"]]]],[13,"w",[7,[7,[7,"accumulateLayout","$"],"params"],"weight"]],[6,"std.textureStore",[[7,[7,"accumulateLayout","$"],"out"],"at",[6,"std.select",[[6,[7,"prev","add"],[[6,[7,[6,[7,"s","sub"],["prev"]],"mul"],["w"]]]],"s",[1,"w",">=",[5,"1"]]]]]]]]},externals:{"d.vec2u":()=>He,"std.textureLoad":()=>at,accumulateLayout:()=>jl,"std.textureStore":()=>Co,"std.select":()=>F}})&&e.f)({})).$name("irradianceAccumulate"),Cf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({src:{texture:Hs(a)},out:Ki}),"copyLayout"),pX=y.fn([Y,Y])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=He(t,s);Co(Cf.$.out,r,at(Cf.$.src,r,0))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"at",[6,"d.vec2u",["cx","cy"]]],[6,"std.textureStore",[[7,[7,"copyLayout","$"],"out"],"at",[6,"std.textureLoad",[[7,[7,"copyLayout","$"],"src"],"at",[5,"0"]]]]]]]},externals:{"d.vec2u":()=>He,"std.textureStore":()=>Co,copyLayout:()=>Cf,"std.textureLoad":()=>at}})&&e.f)({})).$name("irradianceCopy");var{createSdfDataTexture:mX,analyticSubPropValues:fX,parseShapeConfigValue:vX}=Cm,{createVolumetricFieldComputeNode:hX}=ni;var yX=[[1/16,-3/16],[-1/16,3/16],[5/16,1/16],[-3/16,-5/16],[-5/16,5/16],[-7/16,-1/16],[3/16,7/16],[7/16,-7/16]];var MI=Qe;function Ko(e){let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize;return{uv:t,viewport:s,aspect:P(De(s.member("x"),s.member("y")),"aspect")}}function nE(e){let t=e.uvContext??e.ctx.uv,s=e.ctx.viewportSize;return{uv:t,viewport:s,aspect:P(De(s.member("x"),s.member("y")),"aspect")}}function aE(e){return(t,s)=>{let r=Se(e.center,t),{uv:o,aspect:n}=s,i=P(Je(ae(m(o.member("x"),n),m(r.member("x"),n)),ae(o.member("y"),ae(1,r.member("y")))),"centred");return{delta:i,dist:P(Ir(i),"centredDist")}}}function Zm(e){return(t,s)=>{let r=Se(e.from,t),o=Se(e.to,t),{uv:n,aspect:i}=s,d=m(r.member("x"),i),l=ae(1,r.member("y")),c=P(Je(ae(m(n.member("x"),i),d),ae(n.member("y"),l)),"rel"),_=P(Je(ae(m(o.member("x"),i),d),ae(ae(1,o.member("y")),l)),"toRel"),p=P(ht(Ir(_),1e-4),"segLen"),f=P(De(_,p),"segDir");return{along:P(Gs(c,f),"along"),across:P(C(m(c.member("x"),mo(f.member("y"))),m(c.member("y"),f.member("x"))),"across"),length:p}}}function Wr(e,t="dir"){let s=m(e,MI);return P(Je(kn(s),Zt(s)),t)}function Qm(e,t="grain"){let s=Wr(e,`${t}T`),r=P(Je(mo(s.member("y")),s.member("x")),`${t}P`);return{tangent:s,perp:r,coordsOf(o){return{along:P(Gs(o,s),"along"),across:P(Gs(o,r),"across")}}}}var gX=y.fn([u,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return u(t.x,__tsover_sub(__tsover_mul(s,2),t.y))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"lineY"}],body:[0,[[10,[6,"d.vec2f",[[7,"uv","x"],[1,[1,"lineY","*",[5,"2"]],"-",[7,"uv","y"]]]]]]]},externals:{"d.vec2f":()=>u}})&&e.f)({})),xX=y.fn([b,b,a,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=w(__tsover_sub(r,o),0),l=w(n,.001),c=w(__tsover_mul(l,i),1e-4),_=__tsover_sub(l,c),p=__tsover_sub(1,ce(_,l,d)),f=__tsover_mul(s.w,p),h=__tsover_sub(1,f);return Z(t,b(s.xyz.mul(p).add(t.xyz.mul(h)),__tsover_add(f,__tsover_mul(t.w,h))),b(ot(o,r)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"original"},{type:"i",name:"refl"},{type:"i",name:"uvY"},{type:"i",name:"lineY"},{type:"i",name:"distance"},{type:"i",name:"falloff"}],body:[0,[[13,"distBelow",[6,"std.max",[[1,"uvY","-","lineY"],[5,"0"]]]],[13,"distanceMax",[6,"std.max",["distance",[5,"0.001"]]]],[13,"fadeWidth",[6,"std.max",[[1,"distanceMax","*","falloff"],[5,"0.0001"]]]],[13,"fadeStart",[1,"distanceMax","-","fadeWidth"]],[13,"visibility",[1,[5,"1"],"-",[6,"std.smoothstep",["fadeStart","distanceMax","distBelow"]]]],[13,"effReflA",[1,[7,"refl","w"],"*","visibility"]],[13,"oneMinusReflA",[1,[5,"1"],"-","effReflA"]],[13,"belowRgb",[6,[7,[6,[7,[7,"refl","xyz"],"mul"],["visibility"]],"add"],[[6,[7,[7,"original","xyz"],"mul"],["oneMinusReflA"]]]]],[13,"belowA",[1,"effReflA","+",[1,[7,"original","w"],"*","oneMinusReflA"]]],[13,"belowLine",[6,"d.vec4f",["belowRgb","belowA"]]],[13,"isBelowLine",[6,"std.step",["lineY","uvY"]]],[10,[6,"std.mix",["original","belowLine",[6,"d.vec4f",["isBelowLine"]]]]]]]},externals:{"std.max":()=>w,"std.smoothstep":()=>ce,"d.vec4f":()=>b,"std.step":()=>ot,"std.mix":()=>Z}})&&e.f)({}));var bX=y.fn([b,b,b],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=r.w,n=z(s.xyz.mul(r.xyz).mul(o),v(0,0,0),v(1,1,1)),i=v(1,1,1),d=i.sub(i.sub(t.xyz).mul(i.sub(n))),l=__tsover_add(t.w,__tsover_mul(__tsover_mul(s.w,o),__tsover_sub(1,t.w)));return b(d.x,d.y,d.z,z(l,0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"glow"},{type:"i",name:"tintStrength"}],body:[0,[[13,"strength",[7,"tintStrength","w"]],[13,"bloomC",[6,"std.clamp",[[6,[7,[6,[7,[7,"glow","xyz"],"mul"],[[7,"tintStrength","xyz"]]],"mul"],["strength"]],[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]]]],[13,"one",[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]],[13,"screened",[6,[7,"one","sub"],[[6,[7,[6,[7,"one","sub"],[[7,"base","xyz"]]],"mul"],[[6,[7,"one","sub"],["bloomC"]]]]]]],[13,"a",[1,[7,"base","w"],"+",[1,[1,[7,"glow","w"],"*","strength"],"*",[1,[5,"1"],"-",[7,"base","w"]]]]],[10,[6,"d.vec4f",[[7,"screened","x"],[7,"screened","y"],[7,"screened","z"],[6,"std.clamp",["a",[5,"0"],[5,"1"]]]]]]]]},externals:{"std.clamp":()=>z,"d.vec3f":()=>v,"d.vec4f":()=>b}})&&e.f)({})).$name("tintedScreenGlow");var wX=y.fn([u,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let o=__tsover_mul(s,.006),n=__tsover_mul(__tsover_add(__tsover_mul(O(__tsover_mul(r,1.7)),.5),__tsover_mul(O(__tsover_add(__tsover_mul(r,.9),1.3)),.5)),o),i=__tsover_mul(__tsover_add(__tsover_mul(O(__tsover_add(__tsover_mul(r,1.3),.7)),.5),__tsover_mul(O(__tsover_mul(r,2.3)),.5)),o),d=__tsover_mul(__tsover_mul(O(__tsover_mul(r,.6)),s),.004),l=J(d),c=O(d),_=t.sub(u(.5,.5)),p=__tsover_sub(__tsover_mul(_.x,l),__tsover_mul(_.y,c)),f=__tsover_add(__tsover_mul(_.x,c),__tsover_mul(_.y,l));return u(__tsover_add(__tsover_add(p,.5),n),__tsover_add(__tsover_add(f,.5),i))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"amount"},{type:"i",name:"t"}],body:[0,[[13,"amp",[1,"amount","*",[5,"0.006"]]],[13,"ox",[1,[1,[1,[6,"std.sin",[[1,"t","*",[5,"1.7"]]]],"*",[5,"0.5"]],"+",[1,[6,"std.sin",[[1,[1,"t","*",[5,"0.9"]],"+",[5,"1.3"]]]],"*",[5,"0.5"]]],"*","amp"]],[13,"oy",[1,[1,[1,[6,"std.sin",[[1,[1,"t","*",[5,"1.3"]],"+",[5,"0.7"]]]],"*",[5,"0.5"]],"+",[1,[6,"std.sin",[[1,"t","*",[5,"2.3"]]]],"*",[5,"0.5"]]],"*","amp"]],[13,"ang",[1,[1,[6,"std.sin",[[1,"t","*",[5,"0.6"]]]],"*","amount"],"*",[5,"0.004"]]],[13,"c",[6,"std.cos",["ang"]]],[13,"s",[6,"std.sin",["ang"]]],[13,"p",[6,[7,"uv","sub"],[[6,"d.vec2f",[[5,"0.5"],[5,"0.5"]]]]]],[13,"rx",[1,[1,[7,"p","x"],"*","c"],"-",[1,[7,"p","y"],"*","s"]]],[13,"ry",[1,[1,[7,"p","x"],"*","s"],"+",[1,[7,"p","y"],"*","c"]]],[10,[6,"d.vec2f",[[1,[1,"rx","+",[5,"0.5"]],"+","ox"],[1,[1,"ry","+",[5,"0.5"]],"+","oy"]]]]]]},externals:{"std.sin":()=>O,"std.cos":()=>J,"d.vec2f":()=>u}})&&e.f)({})).$name("swayUV");var pc=_o,F5=.35,iE=y.fn([a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(.18,t),r=Ye(W(O(__tsover_mul(s,pc))),10),o=Ye(W(O(__tsover_mul(__tsover_sub(s,.15),pc))),10);return z(__tsover_add(r,__tsover_mul(.6,o)),0,1)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"animTime"}],body:[0,[[13,"time",[1,[5,"0.18"],"*","animTime"]],[13,"first",[6,"std.pow",[[6,"std.abs",[[6,"std.sin",[[1,"time","*","TWO_PI"]]]]],[5,"10"]]]],[13,"second",[6,"std.pow",[[6,"std.abs",[[6,"std.sin",[[1,[1,"time","-",[5,"0.15"]],"*","TWO_PI"]]]]],[5,"10"]]]],[10,[6,"std.clamp",[[1,"first","+",[1,[5,"0.6"],"*","second"]],[5,"0"],[5,"1"]]]]]]},externals:{"std.pow":()=>Ye,"std.abs":()=>W,"std.sin":()=>O,TWO_PI:()=>pc,"std.clamp":()=>z}})&&e.f)({})),dE=y.fn([a,u,u,a,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p)=>{"use gpu";let f=__tsover_add(__tsover_mul(c,1.2),131),h=w(__tsover_mul(__tsover_mul(.5,n),F5),.002),g=W(__tsover_add(__tsover_div(t,w(o,.001)),Z(h,a(0),i))),x=Z(h,__tsover_mul(3,h),i),T=__tsover_div(2,__tsover_mul(r.y,w(o,.001))),S=ue(Z(x,__tsover_mul(x,-1),i),__tsover_add(x,T)),A=w(Z(x,__tsover_mul(x,-1),i),__tsover_add(x,T)),E=__tsover_sub(1,ce(S,A,g));E=Ye(z(E,0,1),__tsover_add(1,i));let M=u(__tsover_sub(s.x,.5),__tsover_sub(s.y,.5)).mul(__tsover_add(.5,__tsover_mul(2.5,d))),$=__tsover_mul(.5,f),L=uo(u(__tsover_add(__tsover_mul(M.x,2.7),$),__tsover_add(__tsover_mul(M.y,2.7),$))),B=uo(u(__tsover_sub(__tsover_mul(M.x,3.4),$),__tsover_sub(__tsover_mul(M.y,3.4),$))),D=__tsover_sub(z(__tsover_mul(3,L),0,1),B),G=z(__tsover_add(h,.2),.1,.4),I=Ye(z(__tsover_sub(1,ce(__tsover_mul(G,-1),__tsover_add(G,T),g)),0,1),2);D=__tsover_mul(D,I),D=__tsover_mul(__tsover_mul(__tsover_mul(30,D),D),__tsover_mul(__tsover_mul(.5,l),l)),D=__tsover_mul(D,Z(a(1),p,_)),E=z(__tsover_add(E,z(D,0,1)),0,1);let X=__tsover_div(bt(__tsover_sub(s.y,.5),__tsover_sub(s.x,.5)),pc);return u(E,X)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"fieldRaw"},{type:"i",name:"sdfUV"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"smokeSize"},{type:"i",name:"smokeAmt"},{type:"i",name:"animTime"},{type:"i",name:"pulse"},{type:"i",name:"beat"}],body:[0,[[13,"t",[1,[1,"animTime","*",[5,"1.2"]],"+",[5,"131"]]],[13,"th",[6,"std.max",[[1,[1,[5,"0.5"],"*","thickness"],"*","BAND_THICKNESS_REF"],[5,"0.002"]]]],[13,"f",[1,[1,"fieldRaw","/",[6,"std.max",["scale",[5,"0.001"]]]],"+",[6,"std.mix",["th",[6,"d.f32",[[5,"0"]]],"softness"]]]],[13,"bd",[6,"std.abs",["f"]]],[13,"borderTh",[6,"std.mix",["th",[1,[5,"3"],"*","th"],"softness"]]],[13,"aa",[1,[5,"2"],"/",[1,[7,"viewport","y"],"*",[6,"std.max",["scale",[5,"0.001"]]]]]],[13,"e0",[6,"std.min",[[6,"std.mix",["borderTh",[1,"borderTh","*",[4,"-",[5,"1"]]],"softness"]],[1,"borderTh","+","aa"]]]],[13,"e1",[6,"std.max",[[6,"std.mix",["borderTh",[1,"borderTh","*",[4,"-",[5,"1"]]],"softness"]],[1,"borderTh","+","aa"]]]],[12,"border",[1,[5,"1"],"-",[6,"std.smoothstep",["e0","e1","bd"]]]],[2,"border","=",[6,"std.pow",[[6,"std.clamp",["border",[5,"0"],[5,"1"]]],[1,[5,"1"],"+","softness"]]]],[13,"suv",[6,[7,[6,"d.vec2f",[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[1,[7,"sdfUV","y"],"-",[5,"0.5"]]]],"mul"],[[1,[5,"0.5"],"+",[1,[5,"2.5"],"*","smokeSize"]]]]],[13,"drift",[1,[5,"0.5"],"*","t"]],[13,"n1",[6,"noise.value12",[[6,"d.vec2f",[[1,[1,[7,"suv","x"],"*",[5,"2.7"]],"+","drift"],[1,[1,[7,"suv","y"],"*",[5,"2.7"]],"+","drift"]]]]]],[13,"n2",[6,"noise.value12",[[6,"d.vec2f",[[1,[1,[7,"suv","x"],"*",[5,"3.4"]],"-","drift"],[1,[1,[7,"suv","y"],"*",[5,"3.4"]],"-","drift"]]]]]],[12,"smoke",[1,[6,"std.clamp",[[1,[5,"3"],"*","n1"],[5,"0"],[5,"1"]]],"-","n2"]],[13,"smokeTh",[6,"std.clamp",[[1,"th","+",[5,"0.2"]],[5,"0.1"],[5,"0.4"]]]],[13,"smokeBand",[6,"std.pow",[[6,"std.clamp",[[1,[5,"1"],"-",[6,"std.smoothstep",[[1,"smokeTh","*",[4,"-",[5,"1"]]],[1,"smokeTh","+","aa"],"bd"]]],[5,"0"],[5,"1"]]],[5,"2"]]]],[2,"smoke","=",[1,"smoke","*","smokeBand"]],[2,"smoke","=",[1,[1,[1,[5,"30"],"*","smoke"],"*","smoke"],"*",[1,[1,[5,"0.5"],"*","smokeAmt"],"*","smokeAmt"]]],[2,"smoke","=",[1,"smoke","*",[6,"std.mix",[[6,"d.f32",[[5,"1"]]],"beat","pulse"]]]],[2,"border","=",[6,"std.clamp",[[1,"border","+",[6,"std.clamp",["smoke",[5,"0"],[5,"1"]]]],[5,"0"],[5,"1"]]]],[13,"angle01",[1,[6,"std.atan2",[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[1,[7,"sdfUV","x"],"-",[5,"0.5"]]]],"/","TWO_PI"]],[10,[6,"d.vec2f",["border","angle01"]]]]]},externals:{"std.max":()=>w,BAND_THICKNESS_REF:()=>F5,"std.mix":()=>Z,"d.f32":()=>a,"std.abs":()=>W,"std.min":()=>ue,"std.smoothstep":()=>ce,"std.pow":()=>Ye,"std.clamp":()=>z,"d.vec2f":()=>u,"noise.value12":()=>uo,"std.atan2":()=>bt,TWO_PI:()=>pc}})&&e.f)({})),lE=y.fn([a,a,a,a,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p)=>{"use gpu";let f=__tsover_add(__tsover_mul(r,1.2),131),h=__tsover_add(1,__tsover_mul(__tsover_add(1,__tsover_mul(4,c)),l)),g=a(0),x=a(0);for(let T=0;T<5;T++){let S=a(T),A=F(a(0),a(1),S<n),E=Dr(u(__tsover_add(__tsover_add(__tsover_mul(S,10),2),__tsover_mul(_,7.31)),__tsover_add(__tsover_add(40,p),__tsover_mul(_,3.17)))),M=__tsover_add(.1,__tsover_mul(.15,W(__tsover_mul(O(__tsover_mul(S,__tsover_add(2,p))),J(__tsover_mul(S,__tsover_add(2,__tsover_mul(2.5,p)))))))),$=F(a(1),a(-1),E.y<.5),L=__tsover_mul(__tsover_add(__tsover_mul(M,f),__tsover_mul(E.x,3)),$),B=W(__tsover_sub(p,__tsover_mul(2,K(__tsover_mul(p,.5)))))<.5,D=O(__tsover_add(f,__tsover_mul(S,__tsover_sub(5,__tsover_mul(1.5,p))))),G=J(__tsover_add(f,__tsover_mul(S,__tsover_add(3,__tsover_mul(1.3,p))))),I=__tsover_add(.5,__tsover_mul(.5,F(G,D,B))),X=z(__tsover_sub(__tsover_mul(2,d),E.x),0,1);I=Z(I,o,X);let H=ve(__tsover_add(t,L)),ee=__tsover_add(__tsover_add(.05,__tsover_mul(__tsover_mul(.6,i),i)),__tsover_mul(.05,E.x));ee=Z(ee,.1,X);let Q=__tsover_mul(ce(__tsover_sub(.5,ee),.5,H),__tsover_sub(1,ce(.5,__tsover_add(.5,ee),H)));Q=__tsover_mul(z(__tsover_mul(__tsover_mul(__tsover_mul(Q,I),s),h),0,1),A),g=__tsover_add(g,__tsover_mul(__tsover_sub(1,g),Q)),x=__tsover_add(x,Q)}return u(g,x)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"angle01"},{type:"i",name:"border"},{type:"i",name:"animTime"},{type:"i",name:"beat"},{type:"i",name:"spotsF"},{type:"i",name:"spotSize"},{type:"i",name:"pulse"},{type:"i",name:"intensity"},{type:"i",name:"softness"},{type:"i",name:"seed"},{type:"i",name:"colorIdxF"}],body:[0,[[13,"t",[1,[1,"animTime","*",[5,"1.2"]],"+",[5,"131"]]],[13,"intensityEff",[1,[5,"1"],"+",[1,[1,[5,"1"],"+",[1,[5,"4"],"*","softness"]],"*","intensity"]]],[12,"overAcc",[6,"d.f32",[[5,"0"]]]],[12,"addAcc",[6,"d.f32",[[5,"0"]]]],[14,[12,"s",[5,"0"]],[1,"s","<",[5,"5"]],[102,"++","s"],[0,[[13,"sF",[6,"d.f32",["s"]]],[13,"gate",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"sF","<","spotsF"]]]],[13,"randVal",[6,"noise.hash22",[[6,"d.vec2f",[[1,[1,[1,"sF","*",[5,"10"]],"+",[5,"2"]],"+",[1,"seed","*",[5,"7.31"]]],[1,[1,[5,"40"],"+","colorIdxF"],"+",[1,"seed","*",[5,"3.17"]]]]]]]],[13,"speedFactor",[1,[5,"0.1"],"+",[1,[5,"0.15"],"*",[6,"std.abs",[[1,[6,"std.sin",[[1,"sF","*",[1,[5,"2"],"+","colorIdxF"]]]],"*",[6,"std.cos",[[1,"sF","*",[1,[5,"2"],"+",[1,[5,"2.5"],"*","colorIdxF"]]]]]]]]]]],[13,"dir",[6,"std.select",[[6,"d.f32",[[5,"1"]]],[6,"d.f32",[[4,"-",[5,"1"]]]],[1,[7,"randVal","y"],"<",[5,"0.5"]]]]],[13,"sTime",[1,[1,[1,"speedFactor","*","t"],"+",[1,[7,"randVal","x"],"*",[5,"3"]]],"*","dir"]],[13,"evenCond",[1,[6,"std.abs",[[1,"colorIdxF","-",[1,[5,"2"],"*",[6,"std.floor",[[1,"colorIdxF","*",[5,"0.5"]]]]]]]],"<",[5,"0.5"]]],[13,"sinVal",[6,"std.sin",[[1,"t","+",[1,"sF","*",[1,[5,"5"],"-",[1,[5,"1.5"],"*","colorIdxF"]]]]]]],[13,"cosVal",[6,"std.cos",[[1,"t","+",[1,"sF","*",[1,[5,"3"],"+",[1,[5,"1.3"],"*","colorIdxF"]]]]]]],[12,"mask",[1,[5,"0.5"],"+",[1,[5,"0.5"],"*",[6,"std.select",["cosVal","sinVal","evenCond"]]]]],[13,"pWeight",[6,"std.clamp",[[1,[1,[5,"2"],"*","pulse"],"-",[7,"randVal","x"]],[5,"0"],[5,"1"]]]],[2,"mask","=",[6,"std.mix",["mask","beat","pWeight"]]],[13,"atg",[6,"std.fract",[[1,"angle01","+","sTime"]]]],[12,"ss",[1,[1,[5,"0.05"],"+",[1,[1,[5,"0.6"],"*","spotSize"],"*","spotSize"]],"+",[1,[5,"0.05"],"*",[7,"randVal","x"]]]],[2,"ss","=",[6,"std.mix",["ss",[5,"0.1"],"pWeight"]]],[12,"sector",[1,[6,"std.smoothstep",[[1,[5,"0.5"],"-","ss"],[5,"0.5"],"atg"]],"*",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0.5"],[1,[5,"0.5"],"+","ss"],"atg"]]]]],[2,"sector","=",[1,[6,"std.clamp",[[1,[1,[1,"sector","*","mask"],"*","border"],"*","intensityEff"],[5,"0"],[5,"1"]]],"*","gate"]],[2,"overAcc","=",[1,"overAcc","+",[1,[1,[5,"1"],"-","overAcc"],"*","sector"]]],[2,"addAcc","=",[1,"addAcc","+","sector"]]]]],[10,[6,"d.vec2f",["overAcc","addAcc"]]]]]},externals:{"d.f32":()=>a,"std.select":()=>F,"noise.hash22":()=>Dr,"d.vec2f":()=>u,"std.abs":()=>W,"std.sin":()=>O,"std.cos":()=>J,"std.floor":()=>K,"std.clamp":()=>z,"std.mix":()=>Z,"std.fract":()=>ve,"std.smoothstep":()=>ce}})&&e.f)({})),Ya=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({rgb:v,w:a,ba:a,ac:v,aa:a}),"EdgeGlowAccum"),cE=y.fn([],Ya)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(()=>{"use gpu";return Ya({rgb:v(0,0,0),w:a(0),ba:a(0),ac:v(0,0,0),aa:a(0)})}),{v:2,name:void 0,ast:{params:[],body:[0,[[10,[6,"EdgeGlowAccum",[[104,{rgb:[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],w:[6,"d.f32",[[5,"0"]]],ba:[6,"d.f32",[[5,"0"]]],ac:[6,"d.vec3f",[[5,"0"],[5,"0"],[5,"0"]]],aa:[6,"d.f32",[[5,"0"]]]}]]]]]]},externals:{EdgeGlowAccum:()=>Ya,"d.vec3f":()=>v,"d.f32":()=>a}})&&e.f)({})),B5=new Map;function kI(e){let t=Xo[e]??lr;return y.fn([Ya,b,u],Ya)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,o,n)=>{"use gpu";let i=__tsover_mul(o.w,n.x),d=__tsover_div(i,w(__tsover_add(r.w,i),1e-5)),l=t(b(r.rgb,1),b(o.xyz,1),d),c=__tsover_add(r.ba,__tsover_mul(__tsover_sub(1,r.ba),i)),_=r.ac.add(o.xyz.mul(__tsover_mul(o.w,n.y))),p=__tsover_add(r.aa,__tsover_mul(o.w,n.y));return Ya({rgb:l.xyz,w:__tsover_add(r.w,i),ba:c,ac:_,aa:p})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"st"},{type:"i",name:"color"},{type:"i",name:"sectors"}],body:[0,[[13,"wNew",[1,[7,"color","w"],"*",[7,"sectors","x"]]],[13,"t",[1,"wNew","/",[6,"std.max",[[1,[7,"st","w"],"+","wNew"],[5,"0.00001"]]]]],[13,"mixed",[6,"variant",[[6,"d.vec4f",[[7,"st","rgb"],[5,"1"]]],[6,"d.vec4f",[[7,"color","xyz"],[5,"1"]]],"t"]]],[13,"ba",[1,[7,"st","ba"],"+",[1,[1,[5,"1"],"-",[7,"st","ba"]],"*","wNew"]]],[13,"ac",[6,[7,[7,"st","ac"],"add"],[[6,[7,[7,"color","xyz"],"mul"],[[1,[7,"color","w"],"*",[7,"sectors","y"]]]]]]],[13,"aa",[1,[7,"st","aa"],"+",[1,[7,"color","w"],"*",[7,"sectors","y"]]]],[10,[6,"EdgeGlowAccum",[[104,{rgb:[7,"mixed","xyz"],w:[1,[7,"st","w"],"+","wNew"],ba:"ba",ac:"ac",aa:"aa"}]]]]]]},externals:{"std.max":()=>w,variant:()=>t,"d.vec4f":()=>b,EdgeGlowAccum:()=>Ya}})&&s.f)({})).$name(`edgeGlowAccumColor_${e}`)}function uE(e){let t=B5.get(e);return t||(t=kI(e),B5.set(e,t)),t}var _E=y.fn([zt(b,8),a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t[oe(s)];return b(r.x,r.y,r.z,r.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"colors"},{type:"i",name:"idx"}],body:[0,[[13,"c",[8,"colors",[6,"d.i32",["idx"]]]],[10,[6,"d.vec4f",[[7,"c","x"],[7,"c","y"],[7,"c","z"],[7,"c","w"]]]]]]},externals:{"d.i32":()=>oe,"d.vec4f":()=>b}})&&e.f)({})),pE=y.fn([Ya,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(s,4),o=Z(t.rgb.mul(t.ba),t.ac,v(r)),n=z(Z(t.ba,t.aa,r),0,1);return b(z(o.div(w(n,1e-4)),v(0),v(1)),n)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"st"},{type:"i",name:"bloom"}],body:[0,[[13,"k",[1,"bloom","*",[5,"4"]]],[13,"blendPremult",[6,[7,[7,"st","rgb"],"mul"],[[7,"st","ba"]]]],[13,"accumC",[6,"std.mix",["blendPremult",[7,"st","ac"],[6,"d.vec3f",["k"]]]]],[13,"accumA",[6,"std.clamp",[[6,"std.mix",[[7,"st","ba"],[7,"st","aa"],"k"]],[5,"0"],[5,"1"]]]],[13,"straight",[6,"std.clamp",[[6,[7,"accumC","div"],[[6,"std.max",["accumA",[5,"0.0001"]]]]],[6,"d.vec3f",[[5,"0"]]],[6,"d.vec3f",[[5,"1"]]]]]],[10,[6,"d.vec4f",["straight","accumA"]]]]]},externals:{"std.mix":()=>Z,"d.vec3f":()=>v,"std.clamp":()=>z,"std.max":()=>w,"d.vec4f":()=>b}})&&e.f)({}));var Rf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({crackIntensity:a,edgeNormal:u,displacedUV:u,disp:u}),"CrackGeom"),TX=y.fn([u,a,a,a,a,a,a,a],Rf)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l)=>{"use gpu";let c=u(s,r),_=u(o,n),p=u(i,d),f=t.sub(c),h=te(f),g=te(t.sub(_)),x=te(p),T=__tsover_sub(g,h),S=__tsover_mul(l,.005),A=__tsover_sub(1,ce(0,S,T)),E=ce(0,.01,x),M=__tsover_mul(A,E),$=f.div(w(h,1e-5));return Rf({crackIntensity:M,edgeNormal:u(__tsover_mul($.y,-1),$.x),displacedUV:t.sub(p),disp:p})}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"nPosX"},{type:"i",name:"nPosY"},{type:"i",name:"sPosX"},{type:"i",name:"sPosY"},{type:"i",name:"dispX"},{type:"i",name:"dispY"},{type:"i",name:"crackWidth"}],body:[0,[[13,"nearestPos",[6,"d.vec2f",["nPosX","nPosY"]]],[13,"secondPos",[6,"d.vec2f",["sPosX","sPosY"]]],[13,"disp",[6,"d.vec2f",["dispX","dispY"]]],[13,"fromNearest",[6,[7,"uv","sub"],["nearestPos"]]],[13,"minDist1",[6,"std.length",["fromNearest"]]],[13,"minDist2",[6,"std.length",[[6,[7,"uv","sub"],["secondPos"]]]]],[13,"displacementMag",[6,"std.length",["disp"]]],[13,"edgeDiff",[1,"minDist2","-","minDist1"]],[13,"crackThreshold",[1,"crackWidth","*",[5,"0.005"]]],[13,"baseCrackIntensity",[1,[5,"1"],"-",[6,"std.smoothstep",[[5,"0"],"crackThreshold","edgeDiff"]]]],[13,"displacementFactor",[6,"std.smoothstep",[[5,"0"],[5,"0.01"],"displacementMag"]]],[13,"crackIntensity",[1,"baseCrackIntensity","*","displacementFactor"]],[13,"toNearest",[6,[7,"fromNearest","div"],[[6,"std.max",["minDist1",[5,"0.00001"]]]]]],[13,"edgeNormal",[6,"d.vec2f",[[1,[7,"toNearest","y"],"*",[4,"-",[5,"1"]]],[7,"toNearest","x"]]]],[13,"displacedUV",[6,[7,"uv","sub"],["disp"]]],[10,[6,"CrackGeom",[[104,{crackIntensity:"crackIntensity",edgeNormal:"edgeNormal",displacedUV:"displacedUV",disp:"disp"}]]]]]]},externals:{"d.vec2f":()=>u,"std.length":()=>te,"std.smoothstep":()=>ce,"std.max":()=>w,CrackGeom:()=>Rf}})&&e.f)({})),SX=y.fn([u,u,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=s.mul(__tsover_mul(o,.01)),l=__tsover_mul(n,.005),c=s.mul(__tsover_mul(i,l)),_=d.add(c);return t.add(_.mul(r))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"displacedUV"},{type:"i",name:"edgeNormal"},{type:"i",name:"crackIntensity"},{type:"i",name:"refractionStrength"},{type:"i",name:"chromaticSplit"},{type:"i",name:"channel"}],body:[0,[[13,"refractionOffset",[6,[7,"edgeNormal","mul"],[[1,"refractionStrength","*",[5,"0.01"]]]]],[13,"chromaticOffset",[1,"chromaticSplit","*",[5,"0.005"]]],[13,"chromaShift",[6,[7,"edgeNormal","mul"],[[1,"channel","*","chromaticOffset"]]]],[13,"offset",[6,[7,"refractionOffset","add"],["chromaShift"]]],[10,[6,[7,"displacedUV","add"],[[6,[7,"offset","mul"],["crackIntensity"]]]]]]]},externals:{}})&&e.f)({})),I5=.3/Math.hypot(.3,.6),Y5=.6/Math.hypot(.3,.6),AX=y.fn([b,b,b,b,a,u,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d)=>{"use gpu";let l=v(s.x,r.y,o.z),c=t.xyz.mul(__tsover_sub(1,n)).add(l.mul(n)),_=te(i),p=__tsover_div(i.x,__tsover_add(_,.001)),f=__tsover_div(i.y,__tsover_add(_,.001)),h=__tsover_add(__tsover_mul(p,I5),__tsover_mul(f,Y5)),g=__tsover_add(1,__tsover_mul(h,d)),x=ce(0,.02,_),T=__tsover_add(1,__tsover_mul(__tsover_sub(g,1),x));return b(c.mul(T),t.w)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"normalColor"},{type:"i",name:"rFinal"},{type:"i",name:"gFinal"},{type:"i",name:"bFinal"},{type:"i",name:"crackIntensity"},{type:"i",name:"disp"},{type:"i",name:"shardLighting"}],body:[0,[[13,"refractedRGB",[6,"d.vec3f",[[7,"rFinal","x"],[7,"gFinal","y"],[7,"bFinal","z"]]]],[13,"shadedRGB",[6,[7,[6,[7,[7,"normalColor","xyz"],"mul"],[[1,[5,"1"],"-","crackIntensity"]]],"add"],[[6,[7,"refractedRGB","mul"],["crackIntensity"]]]]],[13,"displacementLength",[6,"std.length",["disp"]]],[13,"tiltX",[1,[7,"disp","x"],"/",[1,"displacementLength","+",[5,"0.001"]]]],[13,"tiltY",[1,[7,"disp","y"],"/",[1,"displacementLength","+",[5,"0.001"]]]],[13,"normalDot",[1,[1,"tiltX","*","SHARD_LIGHT_DIR_X"],"+",[1,"tiltY","*","SHARD_LIGHT_DIR_Y"]]],[13,"lightingFactor",[1,[5,"1"],"+",[1,"normalDot","*","shardLighting"]]],[13,"lightingIntensity",[6,"std.smoothstep",[[5,"0"],[5,"0.02"],"displacementLength"]]],[13,"finalLighting",[1,[5,"1"],"+",[1,[1,"lightingFactor","-",[5,"1"]],"*","lightingIntensity"]]],[13,"finalRGB",[6,[7,"shadedRGB","mul"],["finalLighting"]]],[10,[6,"d.vec4f",["finalRGB",[7,"normalColor","w"]]]]]]},externals:{"d.vec3f":()=>v,"std.length":()=>te,SHARD_LIGHT_DIR_X:()=>I5,SHARD_LIGHT_DIR_Y:()=>Y5,"std.smoothstep":()=>ce,"d.vec4f":()=>b}})&&e.f)({}));var{formatFloat:EX}=pB;var PX=y.fn([u,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n)=>{"use gpu";let i=Ab(s),d=u(__tsover_div(J(i),o),O(i)),l=__tsover_mul(r,.1),c=d.mul(l);return t.add(c.mul(n))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"angle"},{type:"i",name:"strength"},{type:"i",name:"aspect"},{type:"i",name:"channelOffset"}],body:[0,[[13,"angleRad",[6,"std.radians",["angle"]]],[13,"direction",[6,"d.vec2f",[[1,[6,"std.cos",["angleRad"]],"/","aspect"],[6,"std.sin",["angleRad"]]]]],[13,"scaledStrength",[1,"strength","*",[5,"0.1"]]],[13,"offsetBase",[6,[7,"direction","mul"],["scaledStrength"]]],[10,[6,[7,"uv","add"],[[6,[7,"offsetBase","mul"],["channelOffset"]]]]]]]},externals:{"std.radians":()=>Ab,"d.vec2f":()=>u,"std.cos":()=>J,"std.sin":()=>O}})&&e.f)({}));var mE="rgba16float",fE=16384;var MX=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({buffer:{storage:zt(b,fE),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({cursorX:a,cursorY:a,mouseVelX:a,mouseVelY:a,dt:a,decay:a,intensity:a,radius:a,aspect:a}),"uniform")}}),"splatUpdateLayout"),kX=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({buffer:{storage:zt(b,fE),access:"readonly"},dispTex:{storageTexture:an(mE,"write-only")}}),"splatOutputLayout");var la=64,lh=la*la,Uf=la-1,en=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({readBuf:{storage:zt(b,lh),access:"readonly"},writeBuf:{storage:zt(b,lh),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({cursorX:a,cursorY:a,dirX:a,dirY:a,clampedSpeed:a,dt:a,subDt:a,stiffness:a,dampFactor:a,radius:a,aspect:a}),"uniform")}}),"latticeLayout"),zf=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(y.bindGroupLayout({srcBuf:{storage:zt(b,lh),access:"readonly"},dispTex:{storageTexture:an(mE,"write-only")}}),"latticeOutputLayout"),$X=y.fn([Y,Y])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";if(t>Y(0)&&t<Y(Uf)&&s>Y(0)&&s<Y(Uf)){let r=en.$.params,o=Y(la),n=__tsover_add(__tsover_mul(s,o),t),i=en.$.readBuf[n],d=i.x,l=i.y,c=i.z,_=i.w,p=en.$.readBuf[__tsover_sub(n,Y(1))],f=en.$.readBuf[__tsover_add(n,Y(1))],h=en.$.readBuf[__tsover_sub(n,o)],g=en.$.readBuf[__tsover_add(n,o)],x=en.$.readBuf[__tsover_sub(__tsover_sub(n,o),Y(1))],T=en.$.readBuf[__tsover_add(__tsover_sub(n,o),Y(1))],S=en.$.readBuf[__tsover_sub(__tsover_add(n,o),Y(1))],A=en.$.readBuf[__tsover_add(__tsover_add(n,o),Y(1))],E=__tsover_mul(r.stiffness,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(p.x,d),__tsover_sub(f.x,d)),__tsover_sub(h.x,d)),__tsover_sub(g.x,d))),M=__tsover_mul(r.stiffness,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(p.y,l),__tsover_sub(f.y,l)),__tsover_sub(h.y,l)),__tsover_sub(g.y,l))),$=__tsover_mul(r.stiffness,.35);E=__tsover_add(E,__tsover_mul($,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(x.x,d),__tsover_sub(T.x,d)),__tsover_sub(S.x,d)),__tsover_sub(A.x,d)))),M=__tsover_add(M,__tsover_mul($,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(x.y,l),__tsover_sub(T.y,l)),__tsover_sub(S.y,l)),__tsover_sub(A.y,l)))),E=__tsover_sub(E,__tsover_mul(__tsover_mul(r.stiffness,.1),d)),M=__tsover_sub(M,__tsover_mul(__tsover_mul(r.stiffness,.1),l));let L=__tsover_add(__tsover_mul(c,r.dampFactor),__tsover_mul(E,r.subDt)),B=__tsover_add(__tsover_mul(_,r.dampFactor),__tsover_mul(M,r.subDt));if(r.clampedSpeed>.01){let I=__tsover_div(__tsover_add(a(t),.5),a(la)),X=__tsover_div(__tsover_add(a(s),.5),a(la)),H=F(__tsover_sub(I,r.cursorX),__tsover_mul(__tsover_sub(I,r.cursorX),r.aspect),r.aspect>=1),ee=F(__tsover_div(__tsover_sub(X,r.cursorY),r.aspect),__tsover_sub(X,r.cursorY),r.aspect>=1),Q=__tsover_add(__tsover_mul(H,H),__tsover_mul(ee,ee)),de=__tsover_mul(r.radius,3);if(Q<__tsover_mul(de,de)){let Ee=Mt(__tsover_mul(__tsover_div(Q,__tsover_mul(r.radius,r.radius)),-1)),he=__tsover_mul(__tsover_mul(__tsover_mul(Ee,r.clampedSpeed),r.dt),2);L=__tsover_add(L,__tsover_mul(r.dirX,he)),B=__tsover_add(B,__tsover_mul(r.dirY,he))}}let D=z(__tsover_add(d,__tsover_mul(L,r.subDt)),-.5,.5),G=z(__tsover_add(l,__tsover_mul(B,r.subDt)),-.5,.5);en.$.writeBuf[n]=b(D,G,L,B)}}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,"d.u32",[[5,"0"]]]],"&&",[1,"cx","<",[6,"d.u32",["LATTICE_MAX"]]]],"&&",[1,"cy",">",[6,"d.u32",[[5,"0"]]]]],"&&",[1,"cy","<",[6,"d.u32",["LATTICE_MAX"]]]],[0,[[13,"p",[7,[7,"latticeLayout","$"],"params"]],[13,"gs",[6,"d.u32",["LATTICE_GRID"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"current",[8,[7,[7,"latticeLayout","$"],"readBuf"],"idx"]],[13,"dispX",[7,"current","x"]],[13,"dispY",[7,"current","y"]],[13,"velX",[7,"current","z"]],[13,"velY",[7,"current","w"]],[13,"nL",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,"idx","-",[6,"d.u32",[[5,"1"]]]]]],[13,"nR",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,"idx","+",[6,"d.u32",[[5,"1"]]]]]],[13,"nU",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,"idx","-","gs"]]],[13,"nD",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,"idx","+","gs"]]],[13,"nUL",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,[1,"idx","-","gs"],"-",[6,"d.u32",[[5,"1"]]]]]],[13,"nUR",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,[1,"idx","-","gs"],"+",[6,"d.u32",[[5,"1"]]]]]],[13,"nDL",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,[1,"idx","+","gs"],"-",[6,"d.u32",[[5,"1"]]]]]],[13,"nDR",[8,[7,[7,"latticeLayout","$"],"readBuf"],[1,[1,"idx","+","gs"],"+",[6,"d.u32",[[5,"1"]]]]]],[12,"fx",[1,[7,"p","stiffness"],"*",[1,[1,[1,[1,[7,"nL","x"],"-","dispX"],"+",[1,[7,"nR","x"],"-","dispX"]],"+",[1,[7,"nU","x"],"-","dispX"]],"+",[1,[7,"nD","x"],"-","dispX"]]]],[12,"fy",[1,[7,"p","stiffness"],"*",[1,[1,[1,[1,[7,"nL","y"],"-","dispY"],"+",[1,[7,"nR","y"],"-","dispY"]],"+",[1,[7,"nU","y"],"-","dispY"]],"+",[1,[7,"nD","y"],"-","dispY"]]]],[13,"shearK",[1,[7,"p","stiffness"],"*",[5,"0.35"]]],[2,"fx","=",[1,"fx","+",[1,"shearK","*",[1,[1,[1,[1,[7,"nUL","x"],"-","dispX"],"+",[1,[7,"nUR","x"],"-","dispX"]],"+",[1,[7,"nDL","x"],"-","dispX"]],"+",[1,[7,"nDR","x"],"-","dispX"]]]]],[2,"fy","=",[1,"fy","+",[1,"shearK","*",[1,[1,[1,[1,[7,"nUL","y"],"-","dispY"],"+",[1,[7,"nUR","y"],"-","dispY"]],"+",[1,[7,"nDL","y"],"-","dispY"]],"+",[1,[7,"nDR","y"],"-","dispY"]]]]],[2,"fx","=",[1,"fx","-",[1,[1,[7,"p","stiffness"],"*",[5,"0.1"]],"*","dispX"]]],[2,"fy","=",[1,"fy","-",[1,[1,[7,"p","stiffness"],"*",[5,"0.1"]],"*","dispY"]]],[12,"newVelX",[1,[1,"velX","*",[7,"p","dampFactor"]],"+",[1,"fx","*",[7,"p","subDt"]]]],[12,"newVelY",[1,[1,"velY","*",[7,"p","dampFactor"]],"+",[1,"fy","*",[7,"p","subDt"]]]],[11,[1,[7,"p","clampedSpeed"],">",[5,"0.01"]],[0,[[13,"cellX",[1,[1,[6,"d.f32",["cx"]],"+",[5,"0.5"]],"/",[6,"d.f32",["LATTICE_GRID"]]]],[13,"cellY",[1,[1,[6,"d.f32",["cy"]],"+",[5,"0.5"]],"/",[6,"d.f32",["LATTICE_GRID"]]]],[13,"ddx",[6,"std.select",[[1,"cellX","-",[7,"p","cursorX"]],[1,[1,"cellX","-",[7,"p","cursorX"]],"*",[7,"p","aspect"]],[1,[7,"p","aspect"],">=",[5,"1"]]]]],[13,"ddy",[6,"std.select",[[1,[1,"cellY","-",[7,"p","cursorY"]],"/",[7,"p","aspect"]],[1,"cellY","-",[7,"p","cursorY"]],[1,[7,"p","aspect"],">=",[5,"1"]]]]],[13,"distSq",[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]]],[13,"influenceRadius",[1,[7,"p","radius"],"*",[5,"3"]]],[11,[1,"distSq","<",[1,"influenceRadius","*","influenceRadius"]],[0,[[13,"influence",[6,"std.exp",[[1,[1,"distSq","/",[1,[7,"p","radius"],"*",[7,"p","radius"]]],"*",[4,"-",[5,"1"]]]]]],[13,"forceMag",[1,[1,[1,"influence","*",[7,"p","clampedSpeed"]],"*",[7,"p","dt"]],"*",[5,"2"]]],[2,"newVelX","=",[1,"newVelX","+",[1,[7,"p","dirX"],"*","forceMag"]]],[2,"newVelY","=",[1,"newVelY","+",[1,[7,"p","dirY"],"*","forceMag"]]]]]]]]],[13,"newDispX",[6,"std.clamp",[[1,"dispX","+",[1,"newVelX","*",[7,"p","subDt"]]],[4,"-",[5,"0.5"]],[5,"0.5"]]]],[13,"newDispY",[6,"std.clamp",[[1,"dispY","+",[1,"newVelY","*",[7,"p","subDt"]]],[4,"-",[5,"0.5"]],[5,"0.5"]]]],[2,[8,[7,[7,"latticeLayout","$"],"writeBuf"],"idx"],"=",[6,"d.vec4f",["newDispX","newDispY","newVelX","newVelY"]]]]]]]]},externals:{"d.u32":()=>Y,LATTICE_MAX:()=>Uf,latticeLayout:()=>en,LATTICE_GRID:()=>la,"d.f32":()=>a,"std.select":()=>F,"std.exp":()=>Mt,"std.clamp":()=>z,"d.vec4f":()=>b}})&&e.f)({})).$name("springLatticeStep"),CX=y.fn([Y,Y])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,Y(la)),t),o=zf.$.srcBuf[r];Co(zf.$.dispTex,He(t,s),b(o.x,o.y,0,1))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,"d.u32",["LATTICE_GRID"]]],"+","cx"]],[13,"cell",[8,[7,[7,"latticeOutputLayout","$"],"srcBuf"],"idx"]],[6,"std.textureStore",[[7,[7,"latticeOutputLayout","$"],"dispTex"],[6,"d.vec2u",["cx","cy"]],[6,"d.vec4f",[[7,"cell","x"],[7,"cell","y"],[5,"0"],[5,"1"]]]]]]]},externals:{"d.u32":()=>Y,LATTICE_GRID:()=>la,latticeOutputLayout:()=>zf,"std.textureStore":()=>Co,"d.vec2u":()=>He,"d.vec4f":()=>b}})&&e.f)({})).$name("springLatticeOutput");var W5=Qe,RX=y.fn([u,a,u,a,a,a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=u(__tsover_mul(t.x,s),t.y),l=u(__tsover_mul(r.x,s),__tsover_sub(1,r.y)),c=__tsover_sub(d.x,l.x),_=__tsover_sub(d.y,l.y),p=__tsover_mul(o,W5),f=J(p),h=O(p),g=__tsover_add(__tsover_mul(c,f),__tsover_mul(_,h)),x=__tsover_sub(__tsover_mul(_,f),__tsover_mul(c,h)),T=__tsover_add(__tsover_div(g,__tsover_mul(n,2)),.5),S=__tsover_add(__tsover_div(x,__tsover_mul(i,2)),.5);return v(T,S,__tsover_mul(__tsover_mul(__tsover_mul(ot(0,T),ot(T,1)),ot(0,S)),ot(S,1)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"rotationDeg"},{type:"i",name:"halfW"},{type:"i",name:"halfH"}],body:[0,[[13,"aspectUV",[6,"d.vec2f",[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,"d.vec2f",[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dx",[1,[7,"aspectUV","x"],"-",[7,"centerPos","x"]]],[13,"dy",[1,[7,"aspectUV","y"],"-",[7,"centerPos","y"]]],[13,"rotRad",[1,"rotationDeg","*","OBF_DEG_TO_RAD"]],[13,"cosR",[6,"std.cos",["rotRad"]]],[13,"sinR",[6,"std.sin",["rotRad"]]],[13,"rdx",[1,[1,"dx","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dx","*","sinR"]]],[13,"localU",[1,[1,"rdx","/",[1,"halfW","*",[5,"2"]]],"+",[5,"0.5"]]],[13,"localV",[1,[1,"rdy","/",[1,"halfH","*",[5,"2"]]],"+",[5,"0.5"]]],[13,"insideMask",[1,[1,[1,[6,"std.step",[[5,"0"],"localU"]],"*",[6,"std.step",["localU",[5,"1"]]]],"*",[6,"std.step",[[5,"0"],"localV"]]],"*",[6,"std.step",["localV",[5,"1"]]]]],[10,[6,"d.vec3f",["localU","localV","insideMask"]]]]]},externals:{"d.vec2f":()=>u,OBF_DEG_TO_RAD:()=>W5,"std.cos":()=>J,"std.sin":()=>O,"std.step":()=>ot,"d.vec3f":()=>v}})&&e.f)({})),mc=Et,O5=Qe,UX=y.fn([u,a,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=__tsover_mul(s,O5),l=J(d),c=O(d),_=__tsover_add(__tsover_mul(t.x,__tsover_mul(c,-1)),__tsover_mul(t.y,l)),p=J(__tsover_add(__tsover_mul(__tsover_mul(_,r),mc),o)),f=Z(-1.15,1.15,z(n,0,1));return ce(__tsover_sub(f,i),__tsover_add(f,i),p)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"angleDeg"},{type:"i",name:"frequency"},{type:"i",name:"reliefPhase"},{type:"i",name:"level"},{type:"i",name:"aa"}],body:[0,[[13,"angleRad",[1,"angleDeg","*","HP_DEG_TO_RAD"]],[13,"c",[6,"std.cos",["angleRad"]]],[13,"s",[6,"std.sin",["angleRad"]]],[13,"w",[1,[1,[7,"p","x"],"*",[1,"s","*",[4,"-",[5,"1"]]]],"+",[1,[7,"p","y"],"*","c"]]],[13,"phase",[1,[1,[1,"w","*","frequency"],"*","HP_TAU"],"+","reliefPhase"]],[13,"v",[6,"std.cos",["phase"]]],[13,"thr",[6,"std.mix",[[4,"-",[5,"1.15"]],[5,"1.15"],[6,"std.clamp",["level",[5,"0"],[5,"1"]]]]]],[10,[6,"std.smoothstep",[[1,"thr","-","aa"],[1,"thr","+","aa"],"v"]]]]]},externals:{HP_DEG_TO_RAD:()=>O5,"std.cos":()=>J,"std.sin":()=>O,HP_TAU:()=>mc,"std.mix":()=>Z,"std.clamp":()=>z,"std.smoothstep":()=>ce}})&&e.f)({})),zX=y.fn([u,u,a,a,a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i)=>{"use gpu";let d=t.sub(s),l=te(d),c=bt(d.y,d.x),_=J(__tsover_add(__tsover_mul(__tsover_sub(__tsover_mul(l,r),__tsover_mul(c,__tsover_div(1,mc))),mc),o)),p=Z(-1.15,1.15,z(n,0,1));return ce(__tsover_sub(p,i),__tsover_add(p,i),_)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"c"},{type:"i",name:"frequency"},{type:"i",name:"reliefPhase"},{type:"i",name:"level"},{type:"i",name:"aa"}],body:[0,[[13,"dv",[6,[7,"p","sub"],["c"]]],[13,"r",[6,"std.length",["dv"]]],[13,"theta",[6,"std.atan2",[[7,"dv","y"],[7,"dv","x"]]]],[13,"phase",[1,[1,[1,[1,"r","*","frequency"],"-",[1,"theta","*",[1,[5,"1"],"/","HP_TAU"]]],"*","HP_TAU"],"+","reliefPhase"]],[13,"v",[6,"std.cos",["phase"]]],[13,"thr",[6,"std.mix",[[4,"-",[5,"1.15"]],[5,"1.15"],[6,"std.clamp",["level",[5,"0"],[5,"1"]]]]]],[10,[6,"std.smoothstep",[[1,"thr","-","aa"],[1,"thr","+","aa"],"v"]]]]]},externals:{"std.length":()=>te,"std.atan2":()=>bt,HP_TAU:()=>mc,"std.cos":()=>J,"std.mix":()=>Z,"std.clamp":()=>z,"std.smoothstep":()=>ce}})&&e.f)({}));var GX=Ct({pos:u,dir:u,spd:a}).$name("AgentPose");var DX=Ct({rhat:u,strength:a,phi:a}).$name("AgentFieldSample");var LX=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return F(F(__tsover_mul(fr(__tsover_add(__tsover_mul(t,2.3987),.517)),3.141592653589793),a(0),s>.5),a(1.5707963267948966),s>1.5)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"fi"},{type:"i",name:"restMode"}],body:[0,[[13,"randAng",[1,[6,"noise.hash11",[[1,[1,"fi","*",[5,"2.3987"]],"+",[5,"0.517"]]]],"*",[5,"3.141592653589793"]]],[13,"a",[6,"std.select",["randAng",[6,"d.f32",[[5,"0"]]],[1,"restMode",">",[5,"0.5"]]]]],[10,[6,"std.select",["a",[6,"d.f32",[[5,"1.5707963267948966"]]],[1,"restMode",">",[5,"1.5"]]]]]]]},externals:{"noise.hash11":()=>fr,"std.select":()=>F,"d.f32":()=>a}})&&e.f)({})).$name("agentRestAngle");var FX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return le(t,v(.299,.587,.114))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"_a"}],body:[0,[[10,[6,"std.dot",["rgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),BX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_sub(1,le(t,v(.299,.587,.114)))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"_a"}],body:[0,[[10,[1,[5,"1"],"-",[6,"std.dot",["rgb",[6,"d.vec3f",[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]]]]]},externals:{"std.dot":()=>le,"d.vec3f":()=>v}})&&e.f)({})),IX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return t.x}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"_a"}],body:[0,[[10,[7,"rgb","x"]]]]},externals:{}})&&e.f)({})),YX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return t.y}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"_a"}],body:[0,[[10,[7,"rgb","y"]]]]},externals:{}})&&e.f)({})),WX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return t.z}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"_a"}],body:[0,[[10,[7,"rgb","z"]]]]},externals:{}})&&e.f)({})),OX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=w(w(t.x,t.y),t.z),o=ue(ue(t.x,t.y),t.z);return __tsover_sub(r,o)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"_a"}],body:[0,[[13,"mx",[6,"std.max",[[6,"std.max",[[7,"rgb","x"],[7,"rgb","y"]]],[7,"rgb","z"]]]],[13,"mn",[6,"std.min",[[6,"std.min",[[7,"rgb","x"],[7,"rgb","y"]]],[7,"rgb","z"]]]],[10,[1,"mx","-","mn"]]]]},externals:{"std.max":()=>w,"std.min":()=>ue}})&&e.f)({})),VX=y.fn([v,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return s}),{v:2,name:void 0,ast:{params:[{type:"i",name:"_rgb"},{type:"i",name:"a"}],body:[0,[[10,"a"]]]},externals:{}})&&e.f)({}));var NX=y.fn([a,a],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=w(t,0),o=w(s,0);return __tsover_add(ue(w(t,s),0),$e(__tsover_add(__tsover_mul(r,r),__tsover_mul(o,o))))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"d2"},{type:"i",name:"wz"}],body:[0,[[13,"ox",[6,"std.max",["d2",[5,"0"]]]],[13,"oz",[6,"std.max",["wz",[5,"0"]]]],[10,[1,[6,"std.min",[[6,"std.max",["d2","wz"]],[5,"0"]]],"+",[6,"std.sqrt",[[1,[1,"ox","*","ox"],"+",[1,"oz","*","oz"]]]]]]]]},externals:{"std.max":()=>w,"std.min":()=>ue,"std.sqrt":()=>$e}})&&e.f)({})).$name("shapeFieldExtrudeZ");function vE(){return{colorA:{default:"#ffffff",description:"First color",transform:ke,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",description:"Second color",transform:ke,ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}}}function hE(){return{contrast:{default:0,description:"Pattern contrast (higher = sharper transitions)",ui:{type:["range","map"],min:-1,max:5,step:.1,label:"Contrast",group:"Effect"}},balance:{default:0,description:"Balance between colors (negative = more colorB, positive = more colorA)",ui:{type:["range","map"],min:-1,max:1,step:.05,label:"Balance",group:"Effect"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Effect"}}}}function yE(e=1){return{speed:{default:e,description:"Animation speed",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}}}}var $I=[{freq:.7,speed:.4,amount:.15,salt:{k:12.9,big:4758.5}},{freq:1.6,speed:.65,amount:.08,salt:{k:78.2,big:2847.1}},{freq:2.9,speed:.3,amount:.04,salt:{k:41.6,big:1593.7}}],CI={k:53.7,big:3847.2},RI=[{timeOffset:0,weight:1},{timeOffset:3.1,weight:.65},{timeOffset:6.7,weight:.45},{timeOffset:9.4,weight:.3}],eu=et({name:"Aurora",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Mesmerizing aurora borealis with layered curtains, vertical rays, and flowing light.",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#a533f8",transform:ke,description:"Edge color at the curtain base",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#22ee88",transform:ke,description:"Core color in the bright center",ui:{type:"color",label:"Color B",group:"Colors"}},colorC:{default:"#1694e8",transform:ke,description:"Tip color at the ray ends",ui:{type:"color",label:"Color C",group:"Colors"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},balance:{default:50,description:"Shifts color distribution across the curtain height",ui:{type:["range","map"],min:0,max:100,step:1,label:"Balance",group:"Colors"}},intensity:{default:80,description:"Overall aurora brightness",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Aurora"}},curtainCount:{default:4,compileTime:!0,description:"Number of aurora curtain layers",ui:{type:"range",min:1,max:4,step:1,label:"Curtains",group:"Aurora"}},speed:{default:5,description:"Animation speed",ui:{type:"range",min:-10,max:10,step:.1,label:"Speed",group:"Aurora"}},waviness:{default:50,description:"How much the curtains undulate",ui:{type:["range","map"],min:0,max:200,step:1,label:"Waviness",group:"Aurora"}},rayDensity:{default:20,description:"Density of vertical ray structures",ui:{type:["range","map"],min:0,max:100,step:1,label:"Ray Detail",group:"Aurora"}},height:{default:120,description:"How tall the aurora extends",ui:{type:["range","map"],min:10,max:200,step:1,label:"Height",group:"Scene"}},center:{default:{x:.5,y:0},transform:ct,description:"Center position of the aurora",ui:{type:"position",label:"Center",group:"Scene"}},seed:{default:0,description:"Random seed for variation",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Aurora"}}},paint:e=>{let{uv:t,viewport:s}=Ko(e),r=P(De(s.member("x"),ht(s.member("y"),1e-6)),"aspect"),o=P(it(e),"auroraTime"),n=Se(re("seed"),e),i=Se(re("center"),e),d=i.member("x"),l=ae(1,i.member("y")),c=m(Se(re("waviness"),e),.01),_=m(Se(re("rayDensity"),e),.01),p=m(Se(re("height"),e),.01),f=m(Se(re("intensity"),e),.018),h=dt(2.5,.4,m(Se(re("balance"),e),.01)),g=(L,B)=>{let D=P(C(m(o,.06),B),"tSlow"),G=P(C(n,Math.fround(L*Math.fround(31.7))),"lSeed"),I=P(m(m(ae(t.member("x"),d),r),2),"wx"),X=kA({along:I,time:D,waves:$I.map(Ne=>({...Ne,phase:s0(G,Ne.salt)}))}),H=P(Tn(Ze(m(I,.5),m(D,.25),m(G,.1))),"curtainNoise"),ee=C(C(l,m(X,c)),m(m(H,.14),c)),Q=P(cA({along:C(I,m(H,2.5)),frequency:m(dt(6,20,_),.15),time:D,speed:.1,phase:s0(G,CI),sharpness:1.5}),"curtainRays"),de=m(p,dt(.4,1,Q)),Ee=P(ae(t.member("y"),ee),"distFromPath"),he=P(m(de,C(m(Q,.4),.6)),"topExtent"),Me=$S({distance:Ee,below:{from:-.04,to:.015},above:{to:he}}),Te=P(Le(De(Ee,C(he,.001)),0,1),"colorT"),Pe=dt(.4,1,C(m(H,.5),.5)),Ce=ae(Te,.2),ie=C(m(Fs(m(m(Ce,Ce),-6)),.3),1);return{colorT:Te,alpha:P(m(m(m(Me,Q),Pe),ie),"curtainAlpha")}},x=Math.max(1,Math.min(4,Math.round(e.propValues.curtainCount??4))),{weightedSum:T,totalWeight:S}=eE(RI.slice(0,x),({timeOffset:L,weight:B},D)=>{let{colorT:G,alpha:I}=g(D,L);return{value:G,weight:B===1?I:m(I,B)}}),A=P(S,"auroraAlpha"),E=P(rs(De(T,C(A,.001)),h),"auroraAvgT"),M=Ym({a:re("colorA"),b:re("colorB"),c:re("colorC"),space:re("colorSpace")})(Fe(0,.2,E),Fe(.4,.85,E),e),$=P(m(A,f),"auroraGlow");return is(Le(m(M.member("rgb"),$),Dt(0),Dt(1)),Le(m($,.5),0,1))}});var UI=[{amount:.15,schedule:[{waves:[{x:3.2,t:.8},{y:2.8,t:.6}]},{waves:[{x:4.8,y:-3.6,t:-.4}]}]},{amount:.12,schedule:[{waves:[{x:5.6,t:-.5},{y:4.4,t:.7}]}]},{amount:.1,schedule:[{waves:[{x:7.2,y:6.4,t:.3}]},{waves:[{x:2.4,t:-.9}]}]},{amount:.04,schedule:[{waves:[{x:8.8,t:.2},{y:7.6,t:-.8}]}]}],zI=[{waves:[{x:1,t:.4},{y:1,t:.3}]},{waves:[{x:.7,y:.8,t:.2}]}],GI=[{waves:[{x:1.3,t:-.5},{y:1.1,t:.6}]},{waves:[{x:.5,y:-.6,t:.3}]}],tu=et({name:"Blob",role:"generator",category:"Textures",description:"Organic animated blob with 3D lighting and gradients",acceptsUVContext:!0,animatedTime:{speed:"speed"},extraFields:{normLx:{schema:a,initial:0},normLy:{schema:a,initial:0},normLz:{schema:a,initial:1}},boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"}},computeBounds(e,t,s){let r=e.size??.5,o=typeof e.center?.x=="number"?e.center.x:.5,n=typeof e.center?.y=="number"?e.center.y:.5,i=r*2*s;return{centerXPx:o*t,centerYPx:n*s,widthPx:i,heightPx:i,rotationDeg:0}},writeBounds(e,t,s,r){let o=Math.max(0,e.widthPx/(2*r));return{center:{...t.center??{x:.5,y:.5},x:e.centerXPx/s,y:e.centerYPx/r},size:o}},softnessBinding:{prop:"softness",toPx:(e,t,s)=>e*.3*s,fromPx:(e,t,s)=>Math.max(0,Math.min(1,e/(.3*s)))}},props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},colorA:{default:"#ff6b35",transform:ke,description:"Primary color of the blob",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#e91e63",transform:ke,description:"Secondary color of the blob",ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),size:{default:.5,description:"Size of the blob",ui:{type:"range",min:0,max:2,step:.01,label:"Size",group:"Effect"}},deformation:{default:.5,description:"How organic and blobby the shape is (0 = circle, 1 = very blobby)",ui:{type:"range",min:0,max:1,step:.1,label:"Deformation",group:"Effect"}},softness:{default:.5,description:"Softness of the blob edges (combines edge width and transition curve)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Softness",group:"Effect"}},highlightIntensity:{default:.5,description:"Intensity of specular highlight effect",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Highlight Intensity",group:"Highlight"}},highlightX:{default:.3,description:"Light direction X component",ui:{type:"range",min:-1,max:1,step:.1,label:"Highlight X",group:"Highlight"}},highlightY:{default:-.3,description:"Light direction Y component",ui:{type:"range",min:-1,max:1,step:.1,label:"Highlight Y",group:"Highlight"}},highlightZ:{default:.4,description:"Light direction Z component",ui:{type:"range",min:-1,max:1,step:.1,label:"Highlight Z",group:"Highlight"}},highlightColor:{default:"#ffe11a",transform:ke,description:"Color of the specular highlight",ui:{type:"color",label:"Highlight Color",group:"Highlight"}},speed:{default:.5,description:"Animation speed",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Speed",group:"Animation"}},seed:{default:1,description:"Adjusts the starting state, useful for variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Effect"}},center:{default:{x:.5,y:.5},transform:ct,description:"The center point of the blob",ui:{type:"position",label:"Center Position",group:"Position",units:["%","px"]}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:e=>{let{uniforms:t}=e,s=S=>En(S,e);US(e,{x:"highlightX",y:"highlightY",z:"highlightZ"},{x:"normLx",y:"normLy",z:"normLz"});let r=P(it(e,"seed"),"blobTime"),{delta:o,dist:n}=aE({center:re("center")})(e,nE(e)),i={x:o.member("x"),y:o.member("y"),t:r},d=s(re("deformation")),l=P(C(s(re("size")),UI.map(({schedule:S,amount:A})=>m(m(ml(i,S),A),d)).reduce((S,A)=>C(S,A))),"blobRadius"),c=P(s(re("softness")),"blobSoftness"),_=P(CS({dist:n,radius:l,softness:{width:m(c,.3),curve:C(m(c,2),.5)}}),"blobMask"),p=m(m(m(_A({normal:uA({delta:o,dist:n,radius:l}),light:Ze(t.normLx,t.normLy,t.normLz),gloss:32}),C(m(Fe(0,l,n),.5),.5)),s(re("highlightIntensity"))),_),f={x:m(i.x,3),y:m(i.y,3),t:r},h=S=>C(m(ml(f,S),.5),.5),g=eo(re("colorSpace"))(Fe(.1,.9,C(m(h(zI),.6),m(h(GI),.4))),e),x=Se(re("highlightColor"),e),T=m(C(t.colorA.member("a"),t.colorB.member("a")),.5);return is(C(g.member("rgb"),m(x.member("rgb"),p)),m(T,_))}});var{bevelSin:DI}=lS,{fieldGradient:LI}=hT,{isMobileGpuViewport:FI}=ni,BI=Qe,II=JSON.stringify({type:"sphere3D",radius:.35});function u0(e,t,s,r,o,n,i,d,l){let c=P(e,"ex"),_=P(t,"ey"),p=P(s,"ez"),f=P(De(c,C(Ir(Je(c,_)),1e-4)),"horiz"),h=P(C(.35,m(.65,Fe(-.7,.7,f))),"warmSide"),g=P(C(.45,m(.55,Fe(-.7,.7,m(f,-1)))),"coolSide"),x=P(Fe(-.65,1,_),"up"),T=C(m(l,.03),Ze(.003,.003,.004)),S=dt(dt(Ze(.17,.175,.19),T,Dt(i)),Ze(.56,.57,.6),Dt(m(x,x))),A=Fe(.3,.9,_);S=C(S,m(Ze(.55,.55,.56),A));let E=P(De(C(_,.45),.2),"cd"),M=Fs(m(m(E,E),-1));S=C(S,m(l,m(m(m(M,n),.2),g)));let $=P(Fe(.18,-.1,p),"facing"),L=P(ht(ae(.32,p),.06),"pz"),B=P(De(c,L),"px"),D=P(De(_,L),"py"),G=P(ae(Us(B),.62),"bx"),I=P(ae(Us(ae(D,.3)),.28),"by"),X=$n(ht(G,I),0),H=P(C(Ir(ht(Je(G,I),Je(0,0))),X),"dbox"),ee=P(C(.05,m(r,.4)),"boxSoft"),Q=m(Fe(ee,m(ee,-.6),H),$);S=C(S,m(Ze(2.9,2.87,2.82),Q));let de=Fe(.5,.92,Us(c)),Ee=dt(.55,.07,i);S=m(S,dt(Gt(1),Ee,de));let he=P(C(.065,m(o,.05)),"gw"),Me=P(ht(H,0),"dOut"),Te=m(Fs(m(m(De(Me,he),De(Me,he)),-1)),Fe(-.06,.1,H));S=C(S,m(d,m(m(m(m(Te,n),1.3),h),$)));let Pe=P(De(C(_,.12),.05),"fb");S=C(S,m(d,m(m(m(m(Fs(m(m(Pe,Pe),-1)),n),.5),h),ae(1,$))));let Ce=P(ae(Us(B),.7),"cbx"),ie=P(ae(Us(C(D,.78)),.05),"cby"),Ne=P(C(Ir(ht(Je(Ce,ie),Je(0,0))),$n(ht(Ce,ie),0)),"dcard"),ye=m(Fe(ee,m(ee,-.6),Ne),$);return C(S,m(Ze(.5,.5,.52),ye))}var su=et({name:"Chrome",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Studio-lit mirror chrome \u2014 a precision-machined shape with a controllable polished bevel, softly convex faces and a photographic studio reflected in them: one huge frontal softbox, black flags, and thin warm/cool strip lights that fringe amber and ice-blue exactly where the reflections break",animatedTime:{speed:"speed"},...Bs({pattern:"raw",surface:(e,t)=>{let{uniforms:s}=t,r=it(t),o=e.volumetric,n=FI(),i=.01,d=.0081,l=to(e,t,{scale:s.scale}),{s0:c,sX:_,sY:p,sdf:f,pxH:h}=l,g=zo(e,l),x=g.member("x"),T=g.member("y"),S;if(o)S=vl(l);else{let pt=P(se(LI,"fieldGradient",[c,_,p,Gt(i)]),"grad"),Ut=P(ht(Ir(pt),1e-4),"glen"),Lt=P(De(pt.member("x"),Ut),"gx"),Wt=P(De(pt.member("y"),Ut),"gy"),vs=ht(s.bevelWidth,.003),jt=P(m(f,-1),"depth"),Qt=P(Le(De(jt,vs),0,1),"t0"),$s=P(se(DI,"bevelSin",[Le(C(Qt,m(m(m(m(m(P(se(qn,"perlin12d",[Je(m(x,21),m(T,21))]),"rimN").member("x"),s.waviness),.22),Qt),ae(1,Qt)),4)),0,1),s.bevelShape]),"sBev"),Is=m(m(s.curvature,.14),De(d,C(m(jt,jt),d))),Ys=P(Ir(Je(x,T)),"flen"),hs=P(De(x,ht(Ys,1e-4)),"dgx"),rr=P(De(T,ht(Ys,1e-4)),"dgy"),or=P(m(m(s.curvature,.75),Fe(0,.5,Ys)),"sSphere"),Cr=P(ht($s,Is),"sEdge"),Zr=P(Je(C(m(Lt,Cr),m(hs,or)),C(m(Wt,Cr),m(rr,or))),"txy"),Rr=P($n(Ir(Zr),.9995),"tl"),ur=P(m(Zr,De(Rr,ht(Ir(Zr),1e-4))),"tn"),Qr=un(ae(1,m(Rr,Rr)));S=P(Ze(ur.member("x"),ur.member("y"),m(Qr,-1)),"nGeo")}let A=P(Xm(Je(C(m(x,1.05),m(r,.08)),m(T,1.05)),1),"wg"),E=P(m(s.waviness,.2),"wAmt"),M=li(S,m(A.member("x"),E),m(A.member("y"),E)),$=di(t,l,.55),L=P(jo($,M),"R"),B=Om(M,$),D=P(C(m(s.envRotation,BI),m(Zt(m(r,.23)),.05)),"rotA"),G=P(kn(D),"envC"),I=P(Zt(D),"envS"),X=P(m(L.member("y"),-1),"upY"),H=P(ae(m(L.member("x"),G),m(X,I)),"rx0"),ee=P(C(m(L.member("x"),I),m(X,G)),"ry0"),Q=P(C(m(Zt(m(r,.5)),.4),m(Zt(C(m(r,.19),1.7)),.2)),"orbit"),de=P(kn(Q),"oc"),Ee=P(Zt(Q),"os"),he=P(C(m(H,de),m(L.member("z"),Ee)),"rx"),Me=P(ae(m(L.member("z"),de),m(H,Ee)),"rz0"),Te=P(m(Zt(C(m(r,.31),.9)),.12),"nod"),Pe=P(kn(Te),"nc"),Ce=P(Zt(Te),"ns"),ie=P(ae(m(ee,Pe),m(Me,Ce)),"ry"),Ne=P(C(m(Me,Pe),m(ee,Ce)),"rz"),ye=Fe(.75,1,m(M.member("z"),-1)),Ve=P(s.softness,"soft"),qe=P(C(Ve,m(ye,.2)),"softEff"),st=P(s.spectral,"spectral"),We=P(s.shadows,"shadows"),Be=P(s.warmColor.member("rgb"),"warmC"),rt=P(s.coolColor.member("rgb"),"coolC"),tt=P(u0(he,ie,Ne,qe,Ve,st,We,Be,rt),"envG"),Ke,Oe;if(n)Ke=tt.member("x"),Oe=tt.member("z");else{let pt=P(m(s.dispersion,C(.004,m(m(B,B),.06))),"delta"),Ut=P(u0(he,C(ie,pt),Ne,qe,Ve,st,We,Be,rt),"envRt"),Lt=P(u0(he,ae(ie,pt),Ne,qe,Ve,st,We,Be,rt),"envBt");Ke=Ut.member("x"),Oe=Lt.member("z")}let gt=Nm(m(m(Ze(Ke,tt.member("y"),Oe),s.environment),s.tint.member("rgb")));return sr(Yr(f,h),is(gt,so(l,s.edgeSoftness)),_s,"chrome")}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the chrome shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the chrome shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the chrome shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},tint:{default:"#ffffff",transform:ke,description:"Metal tint multiplied into the reflection \u2014 white for silver chrome, warm ivory for gold, dusky rose for copper",ui:{type:"color",label:"Tint",group:"Metal"}},warmColor:{default:"#ffa94d",transform:ke,description:"Color of the warm strip light hugging the studio horizon \u2014 the amber band that fringes the reflections",ui:{type:"color",label:"Warm Light",group:"Metal"}},coolColor:{default:"#82a7e6",transform:ke,description:"Color of the cool wash below the horizon \u2014 the steel-blue zone the darker reflections fall into",ui:{type:"color",label:"Cool Light",group:"Metal"}},bevelWidth:{default:.028,description:"Width of the polished edge bevel, relative to the shape \u2014 thin for machined jewellery edges, wide for soft pillowed metal",ui:{type:["range","map"],min:.005,max:.2,step:.001,label:"Bevel Width",group:"Bevel"}},bevelShape:{default:.55,description:"Bevel profile \u2014 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee, each catching its own line of light",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Bevel Profile",group:"Bevel"}},curvature:{default:.5,description:"Convex doming of the faces \u2014 sweeps the big soft studio gradients across otherwise flat metal",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Curvature",group:"Bevel"}},waviness:{default:.15,description:"Pressed-metal imperfection \u2014 gently bends the face reflections and wobbles the bevel light lines so the surface reads as real",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Waviness",group:"Bevel"}},...Ho({environment:{description:"Exposure of the reflected studio \u2014 the overall brilliance of the chrome",ui:{group:"Studio"}},envRotation:{description:"Rotates the whole reflected studio \u2014 spins where the softbox, flags and strips fall",ui:{type:["range","map"],group:"Studio"}}}),softness:{default:.3,description:"Softness of the studio edges \u2014 0 = razor polished reflections, 1 = satin diffusion",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Studio"}},spectral:{default:.9,description:"The colored accent lights: an amber glow hugging the softbox edge and an ice-blue wash below it. 0 = a fully achromatic black-and-white studio.",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Accent Lights",group:"Studio"}},...Ho({dispersion:{default:.3,description:"Prismatic RGB splitting concentrated on the fast-curving bevel \u2014 thin rainbow micro-fringes along the edge highlights, distinct from the broad accent lights",ui:{group:"Studio"}}}),shadows:{default:.7,description:"Depth of the dark studio reflections \u2014 how hard the black side flags and floor crush toward graphite. 0 lifts them to a soft gray studio.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Shadows",group:"Studio"}},speed:{default:.5,description:"Speed of the studio orbit \u2014 the whole lighting environment slowly wanders around the piece, sliding the reflections across faces and edges. 0 freezes it.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Studio"}},...Ho({edgeSoftness:{ui:{group:"Surface"}}}),shape:{default:II,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var ru=et({name:"ColorWheel",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"A directional gradient that smoothly cycles through rainbow colors or a custom set of three colors",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{mode:{default:"rainbow",compileTime:!0,description:"Rainbow cycles through the full spectrum; Custom loops through your three chosen colors",ui:{type:"select",options:[{label:"Rainbow",value:"rainbow"},{label:"Custom",value:"custom"}],label:"Mode",group:"Colors"}},colorA:{default:"#ff0000",transform:ke,description:"First color in the cycle",ui:{type:"color",label:"Color 1",group:"Colors",condition:{mode:"custom"}}},colorB:{default:"#00ff88",transform:ke,description:"Second color in the cycle",ui:{type:"color",label:"Color 2",group:"Colors",condition:{mode:"custom"}}},colorC:{default:"#0066ff",transform:ke,description:"Third color in the cycle",ui:{type:"color",label:"Color 3",group:"Colors",condition:{mode:"custom"}}},scale:{default:1,description:"Number of color cycles across the viewport",ui:{type:["range","map"],min:.1,max:10,step:.1,label:"Scale",group:"Effect"}},angle:{default:0,transform:Ra,description:"Direction the gradient flows",ui:{type:["range","map"],min:-180,max:180,step:1,label:"Angle",group:"Effect"}},speed:{default:.05,description:"Speed at which the gradient cycles",ui:{type:"range",min:-1,max:1,step:.01,label:"Speed",group:"Animation"}},colorSpace:{default:"oklch",transform:ft,compileTime:!0,description:"Color space for blending between custom colors",ui:{type:"select",options:At,label:"Color Space",group:"Colors",condition:{mode:"custom"}}}},paint:sA({mode:re("mode"),direction:re("angle"),scale:re("scale"),palette:{a:re("colorA"),b:re("colorB"),c:re("colorC")},space:re("colorSpace")})});var xE=lA({angle:re("angle"),density:re("density"),speedVariance:re("speedVariance"),trailLength:re("trailLength"),strokeWidth:re("strokeWidth"),rounding:re("rounding"),balance:re("balance")}),gE=_l({fill:re("colorB"),stroke:re("colorA"),mask:xE.fade,space:re("colorSpace")}),ou=et({name:"FallingLines",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Directional falling lines with a leading-to-trailing color fade",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#ffffff",transform:ke,description:"Color at the leading edge of each line",ui:{type:"color",label:"Lead Color",group:"Colors"}},colorB:{default:"#ffffff00",transform:ke,description:"Color at the trailing edge (transparent by default)",ui:{type:"color",label:"Trail Color",group:"Colors"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for interpolation between lead and trail colors",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},angle:{default:90,description:"Direction of movement in degrees (90=down, 270=up, 0=right, 180=left)",ui:{type:"range",min:0,max:360,step:1,label:"Angle",group:"Effect"}},speed:{default:.5,description:"Movement speed",ui:{type:"range",min:0,max:3,step:.01,label:"Speed",group:"Animation"}},speedVariance:{default:.3,description:"Per-line speed variance (0=uniform, 1=high variance)",ui:{type:"range",min:0,max:1,step:.01,label:"Speed Variance",group:"Animation"}},density:{default:15,description:"Number of line columns across the canvas",ui:{type:"range",min:1,max:60,step:1,label:"Density",group:"Effect"}},trailLength:{default:.35,description:"Streak length relative to spacing (0=point, 1=continuous)",ui:{type:["range","map"],min:.01,max:1,step:.01,label:"Trail Length",group:"Effect"}},balance:{default:.5,description:"Color mix midpoint (0.5=linear, 0=all trailing/colorB, 1=all leading/colorA)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Balance",group:"Colors"}},strokeWidth:{default:.15,description:"Line thickness as fraction of column width (0=hairline, 1=full width)",ui:{type:["range","map"],min:.02,max:1,step:.02,label:"Stroke Width",group:"Effect"}},rounding:{default:1,description:"Rounds the leading edge (0=flat/square, 1=fully rounded cap)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Rounding",group:"Effect"}}},paint:oA(gE,aA(nA(gE),xE.mask))});var YI=4*Math.PI,yl=[{scale:2,offsets:[[5.2,1.3],[1.7,9.2]],reach:.25},{scale:1.5,offsets:[[8.3,2.8],[3.1,7.4]],reach:.2}],nu=et({name:"FlowingGradient",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Liquid silk gradient with organic flowing color bands",acceptsUVContext:!0,animatedTime:{speed:"speed"},extraFields:{convA:{schema:v,initial:[0,0,0]},convB:{schema:v,initial:[0,0,0]},convC:{schema:v,initial:[0,0,0]},convD:{schema:v,initial:[0,0,0]}},props:{colorA:{default:"#0a0015",transform:ke,description:"Deep background color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#6b17e6",transform:ke,description:"Primary accent color",ui:{type:"color",label:"Color B",group:"Colors"}},colorC:{default:"#ff4d6a",transform:ke,description:"Secondary accent color",ui:{type:"color",label:"Color C",group:"Colors"}},colorD:{default:"#ff6b35",transform:ke,description:"Tertiary accent color",ui:{type:"color",label:"Color D",group:"Colors"}},colorSpace:{default:"oklch",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},speed:{default:1,description:"Animation speed",ui:{type:"range",min:0,max:10,step:.1,label:"Speed",group:"Effect"}},distortion:{default:.5,description:"Organic distortion intensity",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Distortion",group:"Effect"}},seed:{default:0,description:"Random seed for variation",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}}},paint:e=>{let{uv:t,viewport:s}=Ko(e),r=P(De(s.member("x"),ht(s.member("y"),1e-6)),"aspect"),o=P(m(it(e),.075),"flowTime"),n=P(m(Se(re("seed"),e),.17),"flowSeed"),i=P(Se(re("distortion"),e),"flowStrength"),d=P(ae(t,.5),"flowCentred"),l=P(m(m(Tn(Ze(C(m(d.member("x"),.8),m(o,.4)),ae(m(d.member("y"),.8),m(o,.25)),n)),YI),i),"flowAngle"),c=P(Bm(Je(d.member("x"),De(d.member("y"),r)),kn(l),Zt(l)),"flowSpun"),_=P(Je(c.member("x"),m(c.member("y"),r)),"flowRot"),p=m(o,2),f=P(C(_.member("x"),m(De(Zt(C(m(_.member("y"),5),p)),50),i)),"flowShearX"),h=P(n0({at:Je(f,C(_.member("y"),m(De(Zt(C(m(f,7.5),p)),25),i))),scale:yl[0].scale,z:C(m(o,.5),n),offsets:yl[0].offsets,reach:yl[0].reach,strength:i}),"flowWarp1"),g=P(C(m(o,.3),n),"flowTz"),x=P(n0({at:h.member("xy"),scale:yl[1].scale,z:g,offsets:yl[1].offsets,reach:yl[1].reach,strength:i}),"flowWarp2"),T=Tn(Ze(m(x.member("x"),1.8),m(x.member("y"),1.8),g)),S=P(rs(C(m(h.member("z"),.5),.5),1.5),"flowHardness"),A=P(dt(.5,.008,S),"flowEdge"),E=P(Fe(m(A,-1),A,T),"flowT1"),M=P(Fe(m(A,-1),A,h.member("w")),"flowT2"),$=P(tA({a:re("colorA"),b:re("colorB"),c:re("colorC"),d:re("colorD"),space:re("colorSpace")})(E,M,e),"flowBase"),L=G=>ae(1,Us(ae(m(G,2),1))),B=m(ht(L(E),L(M)),S),D=m(C(m(C(m(x.member("z"),.5),.5),.12),.94),C(1,m(B,.35)));return is(Le(m($.member("rgb"),D),Dt(0),Dt(1)),$.member("a"))}});var au=et({name:"FractalNoise",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Multi-octave fractal Brownian motion noise texture with true noise evolution",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#000000",transform:ke,description:"First color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:ke,description:"Second color",ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),octaves:{default:4,compileTime:!0,description:"Number of noise octaves (more = more detail)",ui:{type:"range",min:1,max:8,step:1,label:"Octaves",group:"Effect"}},detail:{default:2,description:"How much finer each successive octave becomes",ui:{type:["range","map"],min:1,max:4,step:.1,label:"Detail",group:"Effect"}},contrast:{default:.5,description:"How strongly finer octaves contribute \u2014 higher values create more texture contrast",ui:{type:["range","map"],min:.1,max:1,step:.01,label:"Contrast",group:"Effect"}},speed:{default:.15,description:"Speed at which the noise pattern evolves in place",ui:{type:"range",min:0,max:1,step:.01,label:"Speed",group:"Animation"}},angle:{default:0,transform:Ra,description:"Rotation angle in degrees",ui:{type:["range","map"],min:-180,max:180,step:1,label:"Angle",group:"Effect"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:zA({angle:re("angle"),detail:re("detail"),contrast:re("contrast"),octaves:re("octaves"),seed:re("seed"),space:re("colorSpace")})});var WI=JSON.stringify({type:"sphere3D",radius:.35}),iu=et({name:"Frost",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Photoreal frozen ice \u2014 thickness-driven subsurface scattering that reads as a solid block, with fine frost crystals creeping in from the edges",animatedTime:{speed:"speed"},...Bs({pattern:"raw",chord:"firstLobe",surface:(e,t)=>{let{uniforms:s}=t,r=it(t),o=e.volumetric,n=.01,i=to(e,t,{scale:s.scale}),{s0:d,sX:l,sY:c,sdf:_,pxH:p}=i,f=ii(i),h=so(i,s.edgeSoftness),g=zo(e,i),x=g.member("x"),T=g.member("y"),S=P(Le(De(m(_,-1),ht(.3,.01)),0,1),"depthNorm"),A,E;if(o){let gt=P(Le(De(ae(l.member("w"),d.member("w")),n),-4,4),"ddx"),pt=P(Le(De(ae(c.member("w"),d.member("w")),n),-4,4),"ddy");A=P(Jr(Ze(gt,pt,-1)),"nBase"),E=P(De(1,C(1,m(Le(C(m(gt,gt),m(pt,pt)),0,2),2))),"steepAtten")}else{let gt=P(m(un(ht(ae(1,m(S,S)),0)),1.8),"bevelSlope");A=P(Jr(Ze(m(f.member("x"),gt),m(f.member("y"),gt),-1)),"nBase"),E=Gt(1)}let M=P(m(Kd(i,e),s.density),"thickness"),$=P(Le(m(M,1.2),0,1),"depthT"),L=P(Hm(M,m(Ze(1.6,.85,.45),s.absorption)),"transmit"),B=P(m(dt(Ze(1,1,1),s.iceColor.member("rgb"),Dt($)),L),"scatteredRgb"),D=P(m(ae(1,Fe(0,ht(m(s.frostDepth,.3),.01),m(_,-1))),s.frostAmount),"frostField"),G=P(m(s.frostScale,60),"frostScl"),I=.004,X=P($r(m(x,G),m(T,G)),"fn0"),H=De(ae($r(m(C(x,I),G),m(T,G)),X),I),ee=De(ae($r(m(x,G),m(C(T,I),G)),X),I),Q=P(m(m(D,s.frostRoughness),E),"frostNormalAmp"),de=m(s.frostScale,40),Ee=se(fy,"mxWorleyNoiseFloat2Pub",[Je(m(x,de),m(T,de)),Gt(1)]),he=P(sr(r0(D,0),Ze(m(m(H,Q),.03),m(m(ee,Q),.03),m(Fe(.25,0,Ee),D)),Ze(0,0,0),"frostFx",[g,D,G,E]),"fx3"),Me=li(A,he.member("x"),he.member("y")),Te=pn(Wr(s.lightAngle,"light"),-.6),Pe=Te.member("L"),Ce=P(Gs(Me,Pe),"ndl"),ie=P(Le(Gs(Me,Te.member("H")),0,1),"ndh"),Ne=rs(C(m(Ce,.5),.5),.7),ye=m(m(m(L,Le(C(m(Gs(Pe,Ze(0,0,1)),.5),.5),0,1)),s.scatter),ae(1,m($,.4))),Ve=C(m(B,C(m(Ne,.6),.5)),m(ye,.5)),qe=P(C(m($r(C(m(x,190),13.7),ae(m(T,190),4.3)),.5),.5),"glintField"),st=C(m(Zt(C(m(r,3),m(qe,40))),.5),.5),We=sr(r0(D,0),m(m(m(Fe(.72,.96,m(qe,st)),C(m(rs(ie,6),.6),.4)),D),s.sparkle),Gt(0),"sparkleGlint",[g,D,ie]),Be=m(Ze(.95,.98,1),C(m(he.member("z"),.4),m(We,4))),rt=m(rs(ci(Me),3),s.fresnel),tt=m(Ze(.85,.93,1),m(rt,1.5)),Ke=P(m(m(rs(ie,16),.4),s.gloss),"broadSpec"),Oe=P(C(C(C(C(Ve,m(Ze(.4,.46,.55),s.ambient)),Dt(Ke)),tt),Be),"iceRgb");return sr(Yr(_,p),is(Oe,h),_s,"frost")}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the ice shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the ice shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the ice shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},iceColor:{default:"#0597fc",transform:ke,description:"Ice tint \u2014 the color deep ice saturates toward (thin edges stay near white)",ui:{type:"color",label:"Ice Color",group:"Ice"}},ambient:{default:0,description:"Cool ambient fill so shadowed ice never goes black",ui:{type:"range",min:0,max:1,step:.01,label:"Ambient",group:"Ice"}},edgeSoftness:{default:.05,description:"Softness of the shape boundary edge",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Softness",group:"Ice"}},density:{default:5,description:"Optical depth multiplier \u2014 how thick and deep the ice reads",ui:{type:"range",min:0,max:10,step:.01,label:"Density",group:"Subsurface"}},absorption:{default:1,description:"Beer\u2013Lambert absorption strength \u2014 higher drives a deeper blue-teal core",ui:{type:"range",min:0,max:2,step:.01,label:"Absorption",group:"Subsurface"}},scatter:{default:.5,description:"Forward back-lit glow transmitted through thin ice",ui:{type:"range",min:0,max:1,step:.01,label:"Scatter",group:"Subsurface"}},frostAmount:{default:.8,description:"Overall density of the rim frost crystals",ui:{type:"range",min:0,max:1,step:.01,label:"Frost",group:"Frost"}},frostDepth:{default:.4,description:"How far the frost creeps inward from the rim",ui:{type:"range",min:0,max:1,step:.01,label:"Frost Depth",group:"Frost"}},frostScale:{default:1,description:"Crystal size \u2014 higher = finer, busier frost",ui:{type:"range",min:.3,max:4,step:.01,label:"Frost Scale",group:"Frost"}},frostRoughness:{default:3,description:"Feathery roughness of the frost crystal surface",ui:{type:"range",min:1,max:5,step:.01,label:"Frost Roughness",group:"Frost"}},sparkle:{default:.5,description:"Tiny bright crystal glints catching the light at the rim",ui:{type:"range",min:0,max:1,step:.01,label:"Sparkle",group:"Frost"}},gloss:{default:.6,description:"Surface sheen \u2014 the broad soft icy specular",ui:{type:"range",min:0,max:1,step:.01,label:"Gloss",group:"Surface"}},fresnel:{default:.02,description:"Cold rim glow on grazing surfaces",ui:{type:"range",min:0,max:1,step:.01,label:"Fresnel",group:"Surface"}},lightAngle:{default:300,description:"Key light direction in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Surface"}},speed:{default:.3,description:"Sparkle twinkle speed. 0 freezes the sparkle.",ui:{type:"range",min:0,max:2,step:.01,label:"Speed",group:"Animation"}},shape:{default:WI,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var du=et({name:"GaborNoise",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Oriented sine-grain noise with a fingerprint-like flow",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{...vE(),scale:{default:1.5,description:"Pattern scale (higher = finer, more detailed patterns; each +1 roughly doubles the frequency)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},frequency:{default:8,description:"Frequency of the oriented waves within each cell",ui:{type:"range",min:1,max:24,step:.5,label:"Frequency",group:"Effect"}},...hE(),...yE()},paint:_n(UA($A(RA(CA({frequency:re("frequency")})),{scale:re("scale"),seed:re("seed")}),{contrast:re("contrast"),balance:re("balance")}),eo(re("colorSpace")))});var lu=et({name:"Godrays",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Volumetric light rays emanating from a point",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{center:{default:{x:0,y:0},transform:ct,description:"The center point of the god rays",ui:{type:"position",label:"Center",group:"Position"}},density:{default:.3,description:"Frequency of ray sectors",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Density",group:"Effect"}},intensity:{default:.8,description:"Ray visibility within sectors",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Intensity",group:"Effect"}},spotty:{default:1,description:"Density of spots on rays (higher = more spots)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Spotty",group:"Effect"}},speed:{default:.5,description:"Animation speed of the rays",ui:{type:"range",min:0,max:2,step:.1,label:"Speed",group:"Animation"}},rayColor:{default:"#4283fb",transform:ke,description:"Color of the light rays",ui:{type:"color",label:"Ray Color",group:"Colors"}},backgroundColor:{default:"transparent",transform:ke,description:"Background color",ui:{type:"color",label:"Background Color",group:"Colors"}}},paint:MA({color:re("rayColor"),background:re("backgroundColor"),coverage:Wm(mA(re("center")),yA({density:re("density"),intensity:re("intensity"),spotty:re("spotty")}))})});var OI=JSON.stringify({type:"sphere3D",radius:.35}),_0=7,gl=e=>{let t=Math.sin(e*12.9898)*43758.5453;return t-Math.floor(t)},bE=[],wE=[];for(let e=0;e<_0;e++){let t=e*2.399963,s=Math.sqrt((e+.5)/_0);bE.push([s*Math.cos(t),s*Math.sin(t),.5+gl(e+1),.5+gl(e+7)]),wE.push([.5+gl(e+13),gl(e+2)*6.2831853,gl(e+5)*6.2831853,gl(e+9)*6.2831853])}var cu=et({name:"Goo",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Photoreal wet liquid \u2014 animated 3D metaball blobs that merge and bulge to loosely form the shape, with sliding wet highlights, a clearcoat rim and a translucent body",animatedTime:{speed:"speed"},props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the goo",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the goo (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the goo in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},gooColor:{default:"#37c95a",transform:ke,description:"Base liquid color (a glossy slime green by default)",ui:{type:"color",label:"Goo Color",group:"Goo"}},translucency:{default:.6,description:"Subsurface glow strength \u2014 deep lobes transmit more color",ui:{type:"range",min:0,max:1,step:.01,label:"Translucency",group:"Goo"}},absorb:{default:2,description:"How fast thin areas clear and thick areas saturate (Beer\u2013Lambert)",ui:{type:"range",min:0,max:6,step:.01,label:"Absorption",group:"Goo"}},containment:{default:.9,description:"0 = free blobs that ignore the shape, 1 = goo fills the shape and its surface conforms to the 3D form (highlights track the faces as it rotates)",ui:{type:"range",min:0,max:1,step:.01,label:"Containment",group:"Goo"}},edgeSoftness:{default:.06,description:"Softness of the blob coverage edge",ui:{type:"range",min:0,max:.3,step:.005,label:"Edge Softness",group:"Goo"}},blobScale:{default:.3,description:"Base radius of each liquid lobe",ui:{type:"range",min:.1,max:1,step:.01,label:"Blob Size",group:"Blobs"}},spread:{default:1,description:"How far the lobes scatter across the shape",ui:{type:"range",min:0,max:2,step:.01,label:"Spread",group:"Blobs"}},merge:{default:.6,description:"How much the lobes fuse together \u2014 low = distinct beads, high = one fused mass",ui:{type:"range",min:0,max:1,step:.01,label:"Merge",group:"Blobs"}},bulge:{default:1,description:"How 3D-rounded each lobe reads \u2014 dome height of the wet surface",ui:{type:"range",min:0,max:1.5,step:.01,label:"Bulge",group:"Blobs"}},threshold:{default:.5,description:"Iso-surface level \u2014 lower makes fatter, fuller blobs",ui:{type:"range",min:.2,max:.9,step:.01,label:"Threshold",group:"Blobs"}},lightAngle:{default:300,description:"Light direction in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Lighting"}},wetness:{default:2,description:"Master scale on the sharp specular highlight and clearcoat rim",ui:{type:"range",min:0,max:5,step:.01,label:"Highlights",group:"Lighting"}},fresnel:{default:.25,description:"Clearcoat fresnel rim strength wrapping each lobe",ui:{type:"range",min:0,max:1,step:.01,label:"Fresnel",group:"Lighting"}},specColor:{default:"#ffffff",transform:ke,description:"Highlight / rim color (white reads as a clear wet coat)",ui:{type:"color",label:"Highlight Color",group:"Lighting"}},ambient:{default:.25,description:"Base fill so shadowed goo isn't black",ui:{type:"range",min:0,max:1,step:.01,label:"Ambient",group:"Lighting"}},speed:{default:.5,description:"Drift and breathe speed of the blobs. 0 pauses.",ui:{type:"range",min:0,max:2,step:.01,label:"Speed",group:"Animation"}},wobble:{default:.5,description:"Drift amplitude \u2014 how far the lobe centers wander",ui:{type:"range",min:0,max:1,step:.01,label:"Wobble",group:"Animation"}},breathe:{default:.3,description:"Radius pulsing amplitude \u2014 lobes swell and shrink",ui:{type:"range",min:0,max:1,step:.01,label:"Breathe",group:"Animation"}},seed:{default:1,description:"Variation offset \u2014 shifts the blob arrangement",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Animation"}},shape:{default:OI,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}},...Bs({chord:"firstLobe",stencil:{kind:"forward",eps:.004},surface:(e,t)=>{let{uniforms:s}=t,r=P(it(t,"seed"),"gooT"),o=.004,n=P(e.surf0,"s0"),i=P(e.sdfUV,"sdfUV"),d=P(ae(i.member("x"),.5),"px"),l=P(ae(i.member("y"),.5),"py"),c=un(C(m(d,d),m(l,l))),_=P(m(s.spread,.45),"spread"),p=P(m(s.wobble,.12),"driftAmp"),f=P(s.breathe,"breatheAmp"),h=C(.65,m(s.merge,.7)),g=P(m(m(s.blobScale,.38),h),"baseR"),x=C(C(C(_,m(g,C(1,f))),p),.2),T=null,S=null,A=null;for(let Oe=0;Oe<_0;Oe++){let gt=bE[Oe],pt=wE[Oe],Ut=P(C(m(gt[0],_),m(p,Zt(C(m(r,gt[2]),pt[1])))),`cx${Oe}`),Lt=P(C(m(gt[1],_),m(p,kn(C(m(r,gt[3]),pt[2])))),`cy${Oe}`),Wt=P(m(g,C(1,m(f,Zt(C(m(r,pt[0]),pt[3]))))),`rVal${Oe}`),vs=P(De(1,ht(m(Wt,Wt),1e-4)),`invR2_${Oe}`),jt=P(ae(d,Ut),`dcx${Oe}`),Qt=P(ae(l,Lt),`dcy${Oe}`),$s=Fs(m(m(C(m(jt,jt),m(Qt,Qt)),vs),-1)),Is=P(ae(C(d,o),Ut),`dxx${Oe}`),Ys=Fs(m(m(C(m(Is,Is),m(Qt,Qt)),vs),-1)),hs=P(ae(C(l,o),Lt),`dyy${Oe}`),rr=Fs(m(m(C(m(jt,jt),m(hs,hs)),vs),-1));T=T?C(T,$s):$s,S=S?C(S,Ys):Ys,A=A?C(A,rr):rr}let E=P(ae(1,Fe(-.06,.06,n.member("x"))),"inside0"),M=P(ae(1,Fe(-.06,.06,e.surfX.member("x"))),"insideX"),$=P(ae(1,Fe(-.06,.06,e.surfY.member("x"))),"insideY"),L=s.containment,B=P(C(m(T,dt(Gt(1),E,L)),m(E,L)),"H0"),D=P(C(m(S,dt(Gt(1),M,L)),m(M,L)),"Hx"),G=P(C(m(A,dt(Gt(1),$,L)),m($,L)),"Hy"),I=P(ht(s.edgeSoftness,.001),"soft"),X=Fe(ae(s.threshold,I),C(s.threshold,I),B),H=De(ae(D,B),o),ee=De(ae(G,B),o),Q=P(C(m(s.bulge,.12),.03),"metaSlope"),de=$n($n(E,M),$),Ee=P(m(m(L,1.6),de),"shapeRelief"),he=Le(De(ae(e.surfX.member("w"),n.member("w")),o),-6,6),Me=Le(De(ae(e.surfY.member("w"),n.member("w")),o),-6,6),Te=P(Jr(Ze(C(m(m(H,-1),Q),m(he,Ee)),C(m(m(ee,-1),Q),m(Me,Ee)),-1)),"n"),Pe=P(Le(C(m(un(ht(ae(B,s.threshold),0)),s.bulge),m(m(ht(m(n.member("x"),-1),0),L),1.2)),0,1),"thick"),Ce=pn(Wr(s.lightAngle,"light"),-.8),ie=P(Le(Gs(Te,Ce.member("L")),0,1),"ndl"),Ne=P(Le(Gs(Te,Ce.member("H")),0,1),"ndh"),ye=m(rs(Ne,232),1.7),Ve=m(rs(Ne,32),.25),qe=m(Fe(.992,.999,Ne),1.9),st=m(rs(ci(Te),5),s.fresnel),We=m(s.specColor.member("rgb"),m(C(C(C(ye,Ve),qe),st),s.wetness)),Be=Fs(m(m(s.absorb,-1),ae(1,Pe))),rt=P(s.gooColor.member("xyz"),"gooRgb"),tt=m(m(rt,m(s.translucency,Be)),C(m(ie,.5),.5)),Ke=P(C(C(m(rt,C(s.ambient,m(ie,.7))),tt),We),"gooOut");return sr(MS(c,x),is(Ke,m(X,s.gooColor.member("w"))),_s,"goo")}})});var VI=JSON.stringify({type:"sphere3D",radius:.35}),NI=[{color:"#02010f",position:0},{color:"#2a0a8a",position:.2},{color:"#a41c9b",position:.45},{color:"#e8632b",position:.7},{color:"#f9e25f",position:.9},{color:"#ffffff",position:1}],p0=(e,t,s,r)=>{let o=dt(-.6,.6,s),n=ae(XA(C(m(t,4),m(Gt(r),13.7)),C(m(s,3),m(Gt(r),7.1))),.5),i=P(C(ae(e,o),m(n,.12)),"aEff");return Le(m(Fs(De(m(m(i,i),-1),.0256)),m(Fe(0,.15,s),ae(1,Fe(.85,1,s)))),0,1)},uu=et({name:"Heatmap",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Thermal-camera heat flowing through any 2D, SVG, or 3D shape. Powered by Paper Shaders.",animatedTime:{speed:"speed"},...Bs({stencil:"centre",surface:(e,t)=>{let{uniforms:s,propValues:r}=t,o=it(t),n=P(e.sdfUV,"suv"),i=ht(s.scale,.001),d=P(De(e.surf0.member("r"),i),"f"),l=P(ae(1,Fe(-.003,.003,d)),"inside"),c=Qm(s.angle,"travel"),_=P(ae(n.member("xy"),Je(.5,.5)),"rel"),p=P(Gs(_,c.tangent),"a"),f=P(m(Gs(_,c.perp),-1),"b"),h=P(ae(m(.1,o),.3),"tBase"),g=C(.8,m(.8,Fs(De(m(ht(m(d,-1),0),-1),.12))));g=P(dt(g,0,p0(p,f,Uo(h),1)),"inner1"),g=P(dt(g,0,p0(p,f,Uo(C(h,1/3)),2)),"inner2"),g=P(dt(g,0,p0(p,f,Uo(C(h,2/3)),3)),"inner3"),g=m(g,m(2,s.innerGlow)),g=C(g,m(m(s.contour,2),Fs(De(m(Us(d),-1),.03)))),g=m($n(g,1),l),g=P(rs(ht(g,0),1.2),"inner");let x=Fs(De(m(ht(d,0),-1),C(.05,m(.15,s.outerGlow)))),T=Uo(ae(m(h,3),.1)),S=P(Uo(ae(m(p,1.2),T)),"yy"),A=C(.5,m(Fe(.3,.65,S),ae(1,Fe(.65,1,S)))),E=P(m(m(m(m(m(m(.9,rs(x,.8)),A),5),s.outerGlow),s.outerGlow),ae(1,l)),"outer"),M=Le(C(g,E),0,1),$=P(m(m(m(Fe(-.06,.1,n.member("x")),ae(1,Fe(.9,1.06,n.member("x")))),Fe(-.06,.1,n.member("y"))),ae(1,Fe(.9,1.06,n.member("y")))),"frameFade");M=m(M,$),M=C(M,m(.005,ae(hl(m(n.member("x"),991.3),m(n.member("y"),787.7)),.5))),M=P(Le(M,0,1),"heat");let L=m(Le(C(l,E),0,1),$),B=r.colorSpace??0,D=r.stopCount??0,G;D>1?G=dl(M,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},B):G=se(Xo[B]??lr,"mixColors",[s.colorA,s.colorB,M]);let I=P(G,"ramp");return is(Le(I.member("xyz"),Ze(0,0,0),Ze(1,1,1)),m(I.member("w"),L))}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the heatmap shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the heatmap shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the heatmap shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},colorA:{default:"#02010f",transform:ke,description:"Cold color (used when no gradient stops are set)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#f9e25f",transform:ke,description:"Hot color (used when no gradient stops are set)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:{...Ls(),default:NI},colorSpace:{default:"oklab",transform:ft,compileTime:!0,description:"Color space for the heat ramp interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},innerGlow:{default:.4,description:"Heat filling the inside of the shape",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Inner Glow",group:"Heat"}},outerGlow:{default:.2,description:"Heat radiating beyond the silhouette",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Outer Glow",group:"Heat"}},contour:{default:.5,description:"Heat concentrated along the shape boundary",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Contour",group:"Heat"}},angle:{default:90,description:"Direction the heat waves travel, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Angle",group:"Heat"}},speed:{default:1,description:"Speed of the flowing heat. 0 pauses.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Heat"}},shape:{default:VI,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var qI=JSON.stringify({type:"sphere3D",radius:.35}),XI=_o,_u=et({name:"Hologram",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Volumetric sci-fi hologram \u2014 a translucent emissive projection of the shape with fresnel-lit edges, depth scan-lines that wrap 3D forms, CRT scanlines, flicker and beam wobble",animatedTime:{speed:"speed"},...Bs({chord:"firstLobe",stencil:{kind:"central",eps:.008},placeUV:e=>{let{uniforms:t,ctx:s}=e,r=it(e),o=s.uv.member("y"),n=C(m(Zt(C(m(o,38),m(r,2.3))),.5),m(Zt(ae(m(o,11.5),m(r,1.7))),.5));return Je(C(s.uv.member("x"),m(m(n,t.distortion),.012)),o)},surface:(e,t)=>{let{uniforms:s,ctx:r}=t,o=P(it(t),"animTime"),n=e.volumetric,i=.008,d=P(e.surf0,"sC"),l=P(De(1,r.viewportSize.member("y")),"pxH"),c=P(De(d.member("x"),s.scale),"sdf"),_=P(e.surfX,"sR"),p=P(e.surfL,"sL"),f=P(e.surfY,"sU"),h=P(e.surfD,"sD"),g=ht(m(s.edgeSoftness,.5),.001),x=P(De(ae(_.member("x"),p.member("x")),i*2),"gradX"),T=P(ht(m(c,-1),0),"thickness"),S=P(Fs(m(T,-5.5)),"thin"),A,E;if(n){let We=rs(Le(ae(1,Us(P(Jr(Ze(Le(De(ae(_.member("w"),p.member("w")),i*2),-2,2),Le(De(ae(f.member("w"),h.member("w")),i*2),-2,2),-1)),"nrm").member("z"))),0,1),2.2);A=C(m(S,.55),We),E=d.member("w")}else A=S,E=T;let M=P(m(A,s.edgeGlow),"rim"),$=m(ae(1,Fs(m(T,-5))),s.fill),L=P(Uo(ae(m(E,s.depthScale),m(o,1.2))),"phaseFract"),B=m(Fe(.06,0,$n(L,ae(1,L))),s.depthLines),D=C(m(Zt(m(ae(m(r.uv.member("y"),s.scanlineScale),m(o,m(s.scanlineSpeed,3))),XI)),.5),.5),G=P(dt(Gt(1),D,s.scanlines),"scanMask"),I=Uo(m(o,.16)),X=P(ae(r.uv.member("y"),I),"sweepD"),H=P(m(Fs(m(m(X,X),-650)),s.sweep),"sweepGlow"),ee=C(m(Zt(m(o,40)),.04),m(Zt(m(o,23.3)),.03)),Q=Fe(.6,.95,C(m($r(m(o,6),11),.5),.5)),de=m(C(1,ee),ae(1,m(m(s.flicker,Q),.7))),Ee=C(1,m(m(ae(hl(C(m(r.uv.member("x"),r.viewportSize.member("x")),m(o,57.3)),m(r.uv.member("y"),r.viewportSize.member("y"))),.5),s.grain),.6)),he=P(m(C(m(m(m(C(C($,M),B),G),de),Ee),m(H,G)),s.brightness),"core"),Me=C(m(s.distortion,.12),.04),Te=P(m(m(m(M,x),Me),.1),"fringe"),Pe=C(he,Te),Ce=ae(he,Te),ie=s.color.member("rgb"),Ne=Ze(m(ie.member("x"),Pe),m(ie.member("y"),he),m(ie.member("z"),Ce)),ye=Le(C(m(M,.5),H),0,.8),Ve=P(dt(Ne,Dt(he),Dt(ye)),"hotRgb"),qe=Fe(0,1,Le(m(De(m(c,-1),g),32),0,1)),st=m(Le(he,0,1),qe);return sr(Yr(c,l),is(Ve,st),_s,"hologram")}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the hologram shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the hologram shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the hologram shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},color:{default:"#5ec8ff",transform:ke,description:"Projection tint \u2014 the color the whole hologram emits (classic sci-fi cyan by default)",ui:{type:"color",label:"Color",group:"Style"}},brightness:{default:2.5,description:"Overall emission gain. Bright edges blow out toward white for a hot, projected look.",ui:{type:"range",min:.2,max:3,step:.01,label:"Brightness",group:"Style"}},edgeSoftness:{default:.04,description:"Softness of the shape boundary edge \u2014 keep low for crisp projection edges",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Softness",group:"Style"}},fill:{default:.45,description:"Translucent interior glow. Driven by optical thickness, so thicker parts of a 3D form glow more \u2014 the core volumetric cue.",ui:{type:"range",min:0,max:1,step:.01,label:"Volume Fill",group:"Volume"}},edgeGlow:{default:1,description:"Fresnel rim intensity \u2014 bright glowing silhouette and, on 3D shapes, the grazing internal walls of extruded logos",ui:{type:"range",min:0,max:2.5,step:.01,label:"Edge Glow",group:"Volume"}},depthLines:{default:.5,description:"Iso-depth scan-lines that hug the surface and reveal the 3D form like a volumetric scan. On flat shapes they become concentric contour rings.",ui:{type:"range",min:0,max:1,step:.01,label:"Depth Lines",group:"Volume"}},depthScale:{default:26,description:"Density of the depth scan-lines \u2014 higher packs more contour bands through the volume",ui:{type:"range",min:4,max:70,step:1,label:"Depth Density",group:"Volume"}},scanlines:{default:.55,description:"CRT scanline contrast \u2014 how dark the gaps between horizontal projection lines get",ui:{type:"range",min:0,max:1,step:.01,label:"Scanlines",group:"Scanlines"}},scanlineScale:{default:130,description:"Number of horizontal scanlines across the canvas height",ui:{type:"range",min:20,max:400,step:1,label:"Scanline Count",group:"Scanlines"}},scanlineSpeed:{default:1,description:"How fast the scanlines drift upward \u2014 0 holds them static",ui:{type:"range",min:0,max:5,step:.01,label:"Scanline Drift",group:"Scanlines"}},sweep:{default:.1,description:"Brightness of the refresh bar that sweeps vertically through the projection",ui:{type:"range",min:0,max:1,step:.01,label:"Sweep Bar",group:"Scanlines"}},flicker:{default:.3,description:"Unstable-projector flicker \u2014 a fast shimmer plus occasional brightness dropouts",ui:{type:"range",min:0,max:1,step:.01,label:"Flicker",group:"Interference"}},distortion:{default:.1,description:"Continuous horizontal wobble and chromatic edge fringing \u2014 the wavering of an unstable beam",ui:{type:"range",min:0,max:1,step:.01,label:"Distortion",group:"Interference"}},grain:{default:.7,description:"Fine projection static \u2014 animated per-pixel noise over the emission",ui:{type:"range",min:0,max:1,step:.01,label:"Grain",group:"Interference"}},speed:{default:1,description:"Master animation speed for every animated layer. 0 freezes the projection.",ui:{type:"range",min:0,max:3,step:.01,label:"Speed",group:"Animation"}},shape:{default:qI,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file \u2014 when non-empty, activates SVG mode and triggers a shader recompile"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type \u2014 triggers recompile when shape is switched. When empty, derived from shape JSON at mount time."}}});var HI=JSON.stringify({type:"sphere3D",radius:.35}),jI=1/3,KI=2/3,Jm=Math.cos(300*Math.PI/180),e1=Math.sin(300*Math.PI/180),ZI=.37164708971977234,QI=-.6437116265296936,JI=-.6689647436141968,TE=e=>qA(e,[0,jI,KI]),pu=et({name:"Holographic",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Iridescent holographic foil sticker with animated rainbow sheen and glitter flakes",animatedTime:{speed:"speed"},...Bs({pattern:"raw",stencil:{kind:"forward",eps:.008},surface:(e,t)=>{let{uniforms:s}=t,r=P(it(t),"animTime"),o=e.volumetric,n=.008,i=to(e,t,{scale:s.scale}),{s0:d,sX:l,sY:c,sdf:_,pxH:p}=i,f=so(i,s.edgeSoftness),h=P(e.sdfUV,"suv"),g=zo(e,i,{uv:h}),x=g.member("x"),T=g.member("y"),S=ae(h.member("x"),.5),A=ae(h.member("y"),.5),E,M,$;if(o){let Lt=P(Le(De(ae(l.member("w"),d.member("w")),n),-1.5,1.5),"baseNxVol"),Wt=P(Le(De(ae(c.member("w"),d.member("w")),n),-1.5,1.5),"baseNyVol");E=Lt,M=Wt,$=P(De(1,C(1,m(Le(C(m(Lt,Lt),m(Wt,Wt)),0,2),2))),"steepAtten")}else{let Lt=ii(i,n),Wt=P(m(ae(1,Le(De(m(_,-1),.06),0,1)),.35),"domeSlope");E=P(m(Lt.member("x"),Wt),"baseNx"),M=P(m(Lt.member("y"),Wt),"baseNy"),$=Gt(1)}let L=P(m(s.crinkleScale,1.35),"crScale"),B=P(m(m(s.crinkle,.8),$),"crAmp"),D=.02,G=P($r(C(m(x,L),2.7),C(m(T,L),11.3)),"w0"),I=De(ae($r(C(m(C(x,D),L),2.7),C(m(T,L),11.3)),G),D),X=De(ae($r(C(m(x,L),2.7),C(m(C(T,D),L),11.3)),G),D),H=P(Jr(Ze(C(E,m(m(I,B),.4)),C(M,m(m(X,B),.4)),-1)),"n"),ee=P(m(s.foilScale,2.2),"fScale"),Q=P(m(r,.06),"drift"),de=C($r(C(m(x,ee),m(Q,Jm)),C(m(T,ee),m(Q,e1))),m($r(ae(C(m(m(x,ee),2.1),5.2),m(m(Q,Jm),1.6)),ae(C(m(m(T,ee),2.1),9.4),m(m(Q,e1),1.6))),.4)),Ee=C(m(H.member("x"),Jm),m(H.member("y"),e1)),he=m(C(m(x,Jm),m(T,e1)),.8),Me=P(C(C(C(C(m(de,.45),he),m(Ee,1.4)),m(r,.18)),De(s.hueShift,360)),"hue"),Te=Le(s.saturation,0,1),Pe=TE(Me),Ce=P(dt(Ze(.72,.73,.76),Pe,Dt(m(Te,.85))),"foilTint"),ie=P(Le(s.roughness,0,1),"roughnessC"),Ne=P(Ze(ZI,QI,JI),"L"),ye=P(Jr(C(Ne,Ze(0,0,-1))),"H"),Ve=P(Le(C(m(Gs(H,Ne),.5),.5),0,1),"ndl"),qe=P(Le(Gs(H,ye),0,1),"ndh"),st=m(m(rs(qe,7),.45),ae(1,m(ie,.35))),We=m(m(rs(qe,dt(Gt(42),Gt(12),ie)),.85),ae(1,m(ie,.55))),Be=C(m(Ce,st),m(dt(Ce,Ze(1,1,1),Dt(.6)),We)),rt=$r(m(x,190),m(T,190)),tt=P($r(C(m(x,190),47.3),ae(m(T,190),31.1)),"flakePhase"),Ke=P(C(m(Zt(C(m(r,2.2),m(tt,12.6))),.5),.5),"twinkle"),Oe=m(m(Fe(.52,.62,C(m(rt,.75),m(Ke,.3))),Le(s.sparkle,0,1)),$),gt=m(m(TE(C(C(Me,.33),m(tt,.5))),C(.85,m(Ke,.55))),C(m(Ve,.6),.7)),pt=C(1,m(m($r(m(S,420),m(A,420)),ie),.28)),Ut=P(m(dt(C(m(Ce,C(m(Ve,.5),.62)),Be),gt,Dt(Oe)),pt),"foilRgb");return sr(Yr(_,p),is(Ut,f),_s,"holo")}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the foil shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the foil shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the foil shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},hueShift:{default:0,description:"Rotates the rainbow spectrum across the foil",ui:{type:"range",min:0,max:360,step:1,label:"Hue Shift",group:"Foil"}},foilScale:{default:1.5,description:"Size of the iridescent color patches \u2014 higher = smaller, busier patches",ui:{type:"range",min:.3,max:6,step:.01,label:"Foil Scale",group:"Foil"}},saturation:{default:.75,description:"Rainbow saturation \u2014 0 = plain silver foil, 1 = fully spectral",ui:{type:"range",min:0,max:1,step:.01,label:"Saturation",group:"Foil"}},roughness:{default:.25,description:"Matte laminate grain \u2014 softens the gloss with fine paper-like noise",ui:{type:"range",min:0,max:1,step:.01,label:"Roughness",group:"Foil"}},speed:{default:1,description:"Animation speed \u2014 the spectrum drifts across the foil as if the sticker is tilting in your hand. 0 pauses.",ui:{type:"range",min:0,max:2,step:.01,label:"Speed",group:"Animation"}},crinkle:{default:.5,description:"Laminate wrinkles \u2014 perturbs the surface so the sheen and rainbow swirl locally instead of lying flat",ui:{type:"range",min:0,max:1,step:.01,label:"Crinkle",group:"Foil"}},crinkleScale:{default:1,description:"Size of the laminate wrinkles \u2014 higher = smaller, denser wrinkles",ui:{type:"range",min:.3,max:6,step:.01,label:"Crinkle Scale",group:"Foil"}},sparkle:{default:.4,description:"Glitter flakes embedded in the foil \u2014 tiny facets that refract a shifted hue and twinkle as the spectrum drifts",ui:{type:"range",min:0,max:1,step:.01,label:"Sparkle",group:"Foil"}},edgeSoftness:{default:.05,description:"Softness of the shape boundary edge",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Softness",group:"Foil"}},shape:{default:HI,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var mu=et({name:"LensFlare",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Stylize",description:"Realistic camera lens flare with artifacts.",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{lightPosition:{default:{x:.3,y:.3},transform:ct,description:"Position of the light source",ui:{type:"position",label:"Light Position",group:"Light"}},intensity:{default:.5,description:"Master brightness of the entire lens flare effect",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Intensity",group:"Light"}},ghostIntensity:{default:.4,description:"Brightness of internal reflection ghost discs along the flare axis",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Ghosts",group:"Reflections"}},ghostSpread:{default:.7,description:"Spacing between ghost reflections along the flare axis",ui:{type:"range",min:.1,max:2,step:.01,label:"Ghost Spread",group:"Reflections"}},ghostChroma:{default:.3,description:"Rainbow chromatic fringing around ghost element edges",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Ghost Chroma",group:"Reflections"}},haloIntensity:{default:.4,description:"Brightness of the circular halo ring from internal reflection",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Halo",group:"Reflections"}},haloRadius:{default:.6,description:"Radius of the halo ring",ui:{type:"range",min:.1,max:1,step:.01,label:"Halo Size",group:"Reflections"}},haloChroma:{default:.6,description:"Spectral dispersion on the halo creating rainbow color separation",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Halo Chroma",group:"Reflections"}},haloSoftness:{default:.8,description:"Thickness and softness of the halo ring",ui:{type:["range","map"],min:.01,max:3,step:.01,label:"Halo Softness",group:"Reflections"}},starburstIntensity:{default:.3,description:"Brightness of diffraction spikes radiating from the light source",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Starburst",group:"Effects"}},starburstPoints:{default:6,description:"Number of starburst spikes (simulates aperture blade count)",ui:{type:["range","map"],min:4,max:16,step:1,label:"Blades",group:"Effects"}},streakIntensity:{default:.15,description:"Brightness of horizontal anamorphic light streak",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Streak",group:"Effects"}},streakLength:{default:.5,description:"Horizontal extent of the anamorphic streak",ui:{type:["range","map"],min:.1,max:1,step:.01,label:"Streak Length",group:"Effects"}},glareIntensity:{default:.2,description:"Soft veiling glare that washes out contrast around the light",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Glare",group:"Effects"}},glareSize:{default:.5,description:"Size of the soft glare glow",ui:{type:["range","map"],min:.1,max:1,step:.01,label:"Glare Size",group:"Effects"}},edgeFade:{default:.2,description:"How much the flare fades when the light source is near the screen edge (0 = no fade, 1 = heavy fade)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Edge Fade",group:"Light"}},speed:{default:.5,description:"Speed of subtle flare shimmer and starburst rotation",ui:{type:"range",min:0,max:3,step:.1,label:"Speed",group:"Animation"}}},paint:e=>{let t=Vs(gA({position:re("lightPosition"),intensity:re("intensity"),edgeFade:re("edgeFade")})(e),"flare"),s=xA({intensity:re("ghostIntensity"),spread:re("ghostSpread"),chroma:re("ghostChroma")});return EA(a0(a0(s(t,[.15,.2,.3,.1],[1,.95,.9,0],e),s(t,[.3,.12,.25,.65],[1,.85,.55,2.17],e),s(t,[.5,.08,.35,.15],[.62,.82,1,4.34],e),s(t,[.72,.14,.18,.75],[.75,1,.7,6.51],e),s(t,[.95,.06,.3,0],[1,.6,.85,8.68],e),s(t,[1.25,.1,.15,.8],[.55,.88,1,10.85],e),s(t,[1.55,.07,.2,.25],[1,.92,.6,13.02],e)),bA({intensity:re("haloIntensity"),radius:re("haloRadius"),chroma:re("haloChroma"),softness:re("haloSoftness")})(t,e),wA({intensity:re("starburstIntensity"),points:re("starburstPoints")})(t,e),TA({intensity:re("streakIntensity"),length:re("streakLength")})(t,e),SA({intensity:re("glareIntensity"),size:re("glareSize")})(t,e),AA({intensity:re("intensity")})(t,e)),t)}});var eY=JSON.stringify({type:"sphere3D",radius:.35}),tY=[{color:"#7b2ff7",position:0},{color:"#00e0ff",position:.5},{color:"#ff3d81",position:1}],fu=et({name:"LightEdge",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Glowing, pulsing light racing around the edge of any 2D, SVG, or 3D shape. Powered by Paper Shaders.",animatedTime:{speed:"speed"},...Bs({chord:"firstLobe",stencil:"centre",surface:(e,t)=>{let{uniforms:s,propValues:r}=t,o=it(t),n=Vs(se(iE,"heartbeatPulse",[o]),"beat"),i=se(dE,"edgeGlowBand",[e.surf0.member("r"),e.sdfUV,t.ctx.viewportSize,s.scale,s.thickness,s.softness,s.smokeSize,s.smoke,o,s.pulse,n]),d=i.member("x"),l=i.member("y"),c=r.stopCount??0,_=c>1?Math.min(c,8):2,p=uE(r.colorSpace??0),f=x=>se(lE,"orbitSpotsAccum",[l,d,o,n,s.spots,s.spotSize,s.pulse,s.intensity,s.softness,s.seed,nt(x)]),h=x=>c>1?se(_E,"colorAtIndex",[s.colorsArray,nt(x)]):x===0?s.colorA:s.colorB,g=se(cE,"edgeGlowAccumZero",[]);for(let x=0;x<_;x++)g=se(p,"edgeGlowAccumColor",[g,h(x),f(x)]);return se(pE,"edgeGlowCompose",[g,s.bloom])}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},colorA:{default:"#7b2ff7",transform:ke,description:"First border light color (used when no gradient stops are set)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#00e0ff",transform:ke,description:"Second border light color (used when no gradient stops are set)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:{...Ls(),default:tY},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space overlapping lights blend in",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},thickness:{default:.25,description:"Width of the border band",ui:{type:["range","map"],min:.01,max:1,step:.01,label:"Thickness",group:"Border"}},softness:{default:.5,description:"Edge softness \u2014 0 = crisp band, 1 = wide smooth gradient",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Border"}},intensity:{default:.6,description:"Brightness of the individual light spots",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Light"}},bloom:{default:.3,description:"How additively overlapping lights pile up \u2014 high values overdrive to white",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Bloom",group:"Light"}},spots:{default:3,description:"Number of light spots orbiting per color",ui:{type:"range",min:1,max:5,step:1,label:"Spots",group:"Light"}},spotSize:{default:.5,description:"Angular size of each light spot",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Spot Size",group:"Light"}},pulse:{default:0,description:"Heartbeat pulsing \u2014 synchronizes the lights to a double-beat rhythm",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Pulse",group:"Animation"}},smoke:{default:.3,description:"Noisy luminous smoke drifting along the border",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Smoke",group:"Smoke"}},smokeSize:{default:.5,description:"Scale of the smoke billows",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Smoke Size",group:"Smoke"}},speed:{default:1,description:"Animation speed. 0 pauses.",ui:{type:"range",min:0,max:4,step:.1,label:"Speed",group:"Animation"}},seed:{default:0,description:"Random seed \u2014 re-rolls spot speeds, directions and phases",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Animation"}},shape:{default:eY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var{isMobileGpuViewport:sY}=ni,rY=JSON.stringify({type:"sphere3D",radius:.35});function SE(e,t,s,r,o,n,i){let d=P(ae(m(e,s),m(t,r)),"ex"),l=P(C(m(e,r),m(t,s)),"ey"),c=P(Je(d,l),"p"),_=P(Fe(-.7,.85,l),"sky"),p=m(m(_,_),.4),f=P(m(o,1.05),"r0"),h=Fe(f,m(f,.2),Ir(ae(c,Je(C(0,n),.55))));p=C(p,m(m(h,1.75),i));let g=P(m(o,1.25),"r1"),x=Fe(g,m(g,.2),Ir(ae(c,Je(C(-.45,n),-.4))));p=C(p,m(m(x,1.15),i));let T=P(m(o,1.15),"r2"),S=Fe(T,m(T,.2),Ir(ae(c,Je(C(.55,n),.1))));return C(p,m(m(S,1.1),i))}var vu=et({name:"LiquidMetal",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Flowing liquid chrome \u2014 a molten reflective surface that wraps the shape, sweeping a procedural studio reflection across animated folds with crisp speculars and prismatic edges",animatedTime:{speed:"speed"},...Bs({pattern:"raw",surface:(e,t)=>{let{uniforms:s}=t,r=it(t),o=sY(),n=to(e,t,{scale:s.scale}),{sdf:i,pxH:d}=n,l=fl(e,n,{bevelWidth:s.bevelWidth,bevelShape:s.bevelShape}),c=zo(e,n),_=P(m(s.ripple,2.6),"freq"),p=P(m(r,.12),"flowT"),f=P(Je(m(c.member("x"),_),m(c.member("y"),_)),"q"),h=m(s.warp,.9),g=P(Xm(C(f,m(jm(m(f,.6),p),h)),.62),"hg"),x=P(m(s.turbulence,.5),"relief"),T=li(l,m(m(g.member("x"),x),-1),m(m(g.member("y"),x),-1)),S=P(jo(di(t,n),T),"R"),A=P(s.environment,"envStr"),E=P(Le(s.sharpness,0,1),"sharp"),M=P(dt(.5,.18,E),"keyRad"),$=P(m(Zt(m(r,.07)),.05),"drift"),L=Wr(s.envRotation,"env"),B=L.member("x"),D=L.member("y"),G=P(pn(Wr(s.lightAngle,"light"),-.7).member("H"),"Hh"),I=P(qm(Le(C(C(m(T.member("x"),G.member("x")),m(T.member("y"),G.member("y"))),m(T.member("z"),G.member("z"))),0,1),E,is(60,900,.4,1.4)),"spec"),X=P(C(SE(S.member("x"),S.member("y"),B,D,M,$,A),I),"lumG"),H,ee;if(o)H=X,ee=X;else{let he=ae(1,Le(m(T.member("z"),-1),0,1)),Me=P(m(m(s.dispersion,.09),C(.4,m(he,1.3))),"dth"),Te=P(C(SE(C(S.member("x"),m(S.member("y"),Me)),ae(S.member("y"),m(S.member("x"),Me)),B,D,M,$,A),I),"lumBoffset");ee=Te,H=ae(m(X,2),Te)}let Q=P(s.darkColor.member("rgb"),"dark"),de=P(s.lightColor.member("rgb"),"light"),Ee=is(dt(Q.member("x"),de.member("x"),Le(H,0,1.8)),dt(Q.member("y"),de.member("y"),Le(X,0,1.8)),dt(Q.member("z"),de.member("z"),Le(ee,0,1.8)),so(n,s.edgeSoftness));return sr(Yr(i,d),Ee,_s,"liquidMetal")}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the metal shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the metal shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the metal shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},lightColor:{default:"#eef0f6",transform:ke,description:"The bright tone of the chrome highlights",ui:{type:"color",label:"Light Color",group:"Metal"}},darkColor:{default:"#141414",transform:ke,description:"The dark tone the reflection falls to in shadow \u2014 recolor for tinted metal (gold, steel, copper\u2026)",ui:{type:"color",label:"Dark Color",group:"Metal"}},turbulence:{default:1,description:"How molten the surface is \u2014 the depth of the flowing folds that bend the reflection",ui:{type:"range",min:0,max:1.5,step:.01,label:"Turbulence",group:"Liquid"}},ripple:{default:4,description:"Scale of the molten folds \u2014 higher = smaller, busier ripples",ui:{type:"range",min:.5,max:8,step:.01,label:"Ripple Scale",group:"Liquid"}},warp:{default:1.5,description:"Swirl of the flow \u2014 domain-warps the folds into liquid curls",ui:{type:"range",min:0,max:1.5,step:.01,label:"Swirl",group:"Liquid"}},speed:{default:.5,description:"Speed of the molten flow and the slowly drifting reflection. 0 pauses.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Liquid"}},...Ho({environment:{default:1.5,description:"Strength of the reflected studio lighting \u2014 the softboxes seen across the metal",ui:{group:"Surface"}},envRotation:{ui:{group:"Surface"}}}),sharpness:{default:.6,description:"Tightness of the specular highlights \u2014 1 = razor chrome glints, 0 = soft satin",ui:{type:"range",min:0,max:1,step:.01,label:"Sharpness",group:"Surface"}},...Ho({dispersion:{description:"Prismatic color fringing along the reflection edges",ui:{group:"Surface"}},lightAngle:{default:265,description:"Direction of the key light for the specular glints, in degrees",ui:{group:"Surface"}}}),bevelWidth:{default:.05,description:"Width of the edge bevel, relative to the shape \u2014 thin for machined jewellery edges, wide for soft pillowed metal",ui:{type:["range","map"],min:.005,max:.2,step:.001,label:"Bevel Width",group:"Surface"}},bevelShape:{default:0,description:"Bevel profile \u2014 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee, each catching its own line of light",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Bevel Profile",group:"Surface"}},...Ho({edgeSoftness:{ui:{group:"Surface"}}}),shape:{default:rY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var oY=3.141592653589793,hu=et({name:"Marble",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Classic marble swirl and vein texture using noise-warped sine waves",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#ffffff",transform:ke,description:"Base background color of the marble",ui:{type:"color",label:"Base",group:"Colors"}},colorB:{default:"#3a2d54",transform:ke,description:"Secondary marble tone",ui:{type:"color",label:"Tone",group:"Colors"}},colorC:{default:"#0f0f0f",transform:ke,description:"Deepest marble color",ui:{type:"color",label:"Depth",group:"Colors"}},scale:{default:2,description:"Scale and density of the marble vein pattern",ui:{type:["range","map"],min:.1,max:10,step:.1,label:"Scale",group:"Effect"}},turbulence:{default:10,description:"Amount of noise-driven distortion applied to the veins",ui:{type:["range","map"],min:0,max:50,step:.5,label:"Turbulence",group:"Effect"}},speed:{default:.05,description:"Animation speed",ui:{type:"range",min:0,max:.25,step:.005,label:"Speed",group:"Animation"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:e=>{let{uv:t,viewport:s}=Ko(e),r=P(De(s.member("x"),ht(s.member("y"),1e-6)),"aspect"),o=P(it(e),"marbleTime"),n=Se(re("seed"),e),i=P(m(Je(m(t.member("x"),r),t.member("y")),Se(re("scale"),e)),"plane"),d=i.member("x"),l=i.member("y"),c=P(C(C(ro(Je(C(d,n),C(l,o))),m(ro(Je(C(m(d,2),m(n,1.7)),C(m(l,2),m(o,.7)))),.5)),m(ro(Je(C(m(d,4),m(n,3.1)),C(m(l,4),m(o,1.3)))),.25)),"marbleTurb"),_=P(C(m(Zt(C(m(d,oY),m(c,Se(re("turbulence"),e)))),.5),.5),"veinT"),p=C(m(ro(Je(C(m(l,1.5),m(n,2)),m(d,1.2))),.3),.5);return Ym({a:re("colorA"),b:re("colorB"),c:re("colorC"),space:re("colorSpace")})(Fe(.3,.6,_),m(Fe(.6,.9,_),p),e)}});var t1=1.6,nY=.48,aY=.125,iY=3,AE=1.9,dY=1.4,lY=.045,cY=9,uY=[{color:"#1a0533",position:0},{color:"#6d2fd1",position:.26},{color:"#e04b9e",position:.52},{color:"#ff8c42",position:.76},{color:"#ffdf8e",position:1}],yu=et({name:"MeshGradient",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Flowing mesh gradient of soft drifting color swaths whose seams wrap through the palette",acceptsUVContext:!0,animatedTime:{speed:"speed"},extraFields:{meshAnchors:{schema:zt(b,4),initial:new Array(16).fill(0)}},props:{colorA:{default:"#1a0533",transform:ke,description:"First gradient color (two-color fallback when stops are cleared)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffdf8e",transform:ke,description:"Second gradient color (two-color fallback when stops are cleared)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:{...Ls(),default:uY},colorSpace:{default:"oklab",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},count:{default:5,description:"Number of color points scattered across the canvas",ui:{type:"range",min:2,max:8,step:1,label:"Points",group:"Effect"}},smoothness:{default:2,description:"How smoothly the color points blend into each other",ui:{type:["range","map"],min:0,max:5,step:.01,label:"Smoothness",group:"Effect"}},variation:{default:.35,recompile:zS(0),description:"Varies edge softness across the canvas \u2014 some color boundaries crisp, others diffuse",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variation",group:"Effect"}},swirl:{default:.3,description:"Vortex rotation that spirals the field around the frame centre \u2014 negative values spin the other way",ui:{type:["range","map"],min:-1,max:1,step:.01,label:"Swirl",group:"Effect"}},drift:{default:.5,description:"How far the color points wander from their home positions",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Drift",group:"Effect"}},wrapping:{default:0,description:"Wraps the palette back through itself where colors meet \u2014 banded seams where the field pinches, smooth elsewhere",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Wrapping",group:"Effect"}},speed:{default:1,description:"Animation speed",ui:{type:"range",min:0,max:10,step:.1,label:"Speed",group:"Animation"}},seed:{default:0,description:"Random seed for the point layout and palette assignment",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}}},paint:e=>{let{uv:t,viewport:s}=Ko(e),r=P(De(s.member("x"),ht(s.member("y"),1e-6)),"aspect"),o=P(it(e),"meshTime"),n=Se(re("seed"),e),i=P(Je(ae(m(t.member("x"),r),m(r,.5)),ae(t.member("y"),.5)),"meshCentred"),d=P(m(m(-iY,Se(re("swirl"),e)),Fe(0,1,Ir(i))),"swirlAngle"),l=P(Bm(i,kn(d),Zt(d)),"meshRot"),c=P(Je(C(l.member("x"),m(r,.5)),C(l.member("y"),.5)),"meshSwirled"),_=P(JS({at:Ze(m(c.member("x"),t1),m(c.member("y"),t1),m(n,7.31)),time:m(o,aY),amount:nY,levels:No()?1:2}),"meshWarp"),p=P(Je(De(_.member("x"),t1),De(_.member("y"),t1)),"meshQ"),f=De(8,C(Se(re("smoothness"),e),.5)),h=e.propValues.variation,g=h!==void 0&&h!==0?Le(m(f,Fs(m(m(Tn(Ze(m(p.member("x"),AE),m(p.member("y"),AE),C(m(n,3.17),m(o,lY)))),Se(re("variation"),e)),dY))),.6,16):Le(f,.6,16),x=KS(e,{count:re("count"),seed:re("seed"),drift:re("drift"),field:"meshAnchors"});return sE(eA(ZS({t:jS({at:p,count:Se(re("count"),e),seed:n,drift:Se(re("drift"),e),aspect:r,time:o,softness:g,anchors:x}),cycles:C(1,m(Se(re("wrapping"),e),cY))}),e),e)}});var{isMobileGpuViewport:_Y,VOLUMETRIC_FIELD_EXTRA_FIELDS:pY}=ni,{ANALYTIC_SDF_EXTRA_FIELDS:mY}=Cm,fY=JSON.stringify({type:"sphere3D",radius:.35}),vY=6,hY=4,gu=et({name:"Nebula",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"A volumetric gas nebula sealed inside polished glass; billowing emission clouds with hollow dark cavities and hot glowing cores, star fields drifting at real depth behind the gas, all refracted through the curved walls of the shape and dressed with studio reflections",animatedTime:{speed:"speed"},...Bs({pattern:"raw",surface:(e,t)=>{let{uniforms:s}=t,r=it(t),o=_Y()?hY:vY,n=t.propValues.colorSpace??0,i,d;if(n!==0){let We="";t.onBeforeRender(()=>{let rt=["veilColor","gasColor","coreColor"].map(Oe=>t.getCpuValue(Oe));if(rt.some(Oe=>!Oe))return;let tt=rt.map(Oe=>`${Oe.x},${Oe.y},${Oe.z}`).join("|");if(tt===We)return;We=tt;let Ke=["convVeil","convGas","convCore"];rt.forEach((Oe,gt)=>{let pt=Mm(Oe.x,Oe.y,Oe.z,n);t.setExtraField(Ke[gt],[pt[0],pt[1],pt[2]])})});let Be=hy[n]??Pm;i=rt=>se(Be,"mixPreconvertedColors",[s.convVeil,s.convGas,s.veilColor.member("a"),s.gasColor.member("a"),rt]),d=(rt,tt,Ke)=>{let Oe=P(se(ti,"mixInSpace",[s.convVeil,s.veilColor.member("a"),s.convGas,s.gasColor.member("a"),rt]),`${Ke}AB`);return se(Be,"mixPreconvertedColors",[Oe.member("conv"),s.convCore,Oe.member("alpha"),s.coreColor.member("a"),tt])}}else i=We=>se(lr,"mixColors",[s.veilColor,s.gasColor,We]),d=(We,Be)=>se(lr,"mixColors",[se(lr,"mixColors",[s.veilColor,s.gasColor,We]),s.coreColor,Be]);let l=to(e,t,{scale:s.scale}),{sdf:c,pxH:_}=l,p=fl(e,l,{bevelWidth:Gt(.09),bevelShape:Gt(0)}),f=di(t,l),h=jA(e,p,P(m(s.refraction,.16),"bend")),{x:g,y:x}=h.centered,T=HA(e),S=ZA(l,e,{origin:h,view:f,shear:.55,lengthScale:.9}),A=S.length,E=P(m(s.gasScale,3.1),"freq"),M=P(m(r,.14),"drift"),$=P(m(s.seed,7.31),"seedOff"),L=P(m(hl(m(h.x,311.7),m(h.y,173.3)),.15/o),"jit"),B=P(m(ro(Je(C(C(m(g,1.3),m(M,.6)),m($,.37)),C(m(x,1.3),m($,.61)))),.5),"macro"),D=P(dt(-.35,.5,s.cavity),"cav"),G=P(m(s.billow,.55),"billowAmt"),I=P(s.coreColor.member("rgb"),"coreRgb"),X=P(s.veilColor.member("rgb"),"veilRgb"),H=P(m(C(.3,m(A,.9)),6/o),"eGain"),ee=P(m(m(C(.5,m(A,2.2)),s.density),3/o),"aGain"),Q=JA({steps:o,entry:S.entry,length:S.length,jitter:L,emissionGain:H,hint:"gasAcc"},({i:We,t:Be,z:rt})=>{let tt=S.at(rt),Ke=QA({x:tt.x,y:tt.y,z:rt},{frequency:E,drift:M,seed:$,billow:G,hint:`${We}`}),Oe=Fe(0,.11,m(A,Math.min(Be,1-Be))),gt=ae(1,Le(m(Us(Ke.fine),1.6),0,1)),pt=P(m(m(Fe(0,.5,ae(C(Ke.density,B),D)),Oe),C(.65,m(gt,.7))),`dens${We}`),Ut=P(m(m(Fe(.45,.75,Ke.mid),Oe),s.dust),`dust${We}`),Lt=P(d(Fe(.05,.75,pt),Fe(.68,1,pt),`cB${We}`),`cB${We}`).member("rgb"),Wt=1-Be*.45,vs=m(Fe(-.7,.3,Ke.density),m(.05,Oe));return{emit:C(C(m(Lt,m(pt,Wt)),m(I,m(rs(pt,3),m(s.glow,1.2*Wt)))),m(X,m(vs,Wt))),absorb:C(Dt(m(pt,ee)),m(Ze(1.5,1,.55),m(Ut,m(ee,2.2))))}}),de=P(m(s.starScale,34),"starFreq"),Ee=P(m(s.twinkle,.5),"twinkleAmt"),he=l0(S,{depth:1.1,pan:T,panRate:1.3,hint:"far"}),Me=d0(P(Je(m(he.x,de),m(he.y,de)),"farP"),{variationFreq:.13,radius:[.004,.013],keep:[.35,.75],brightness:[.3,1.2],shimmer:We=>i0(r,We,{amount:Ee,rate:1.7,spread:40}),gain:s.stars,tint:{from:[.72,.82,1],to:[1,.92,.82],gain:1.6},hint:"starFar"}),Te=l0(S,{depth:.25,pan:T,panRate:.55,hint:"near"}),Pe=m(de,.56),Ce=d0(P(Je(C(m(Te.x,Pe),7.3),C(m(Te.y,Pe),2.9)),"nearP"),{variationFreq:.11,radius:[.003,.01],keep:[.45,.8],brightness:[.35,1.3],shimmer:We=>i0(r,We,{amount:Ee,rate:2.3,spread:34}),gain:s.stars,tint:{from:[.75,.85,1],to:[1,.95,.88],gain:1.8},hint:"starNear"}),ie=Wr(s.lightAngle,"light"),Ne=P(Le(Gs(p,pn(ie,-.7).member("H")),0,1),"ndh"),ye=P(jo(f,p),"R"),Ve=P(Vm(ye.member("x"),ye.member("y"),{rotation:ie,keyRadius:.2,drift:0,strength:s.environment,skyGain:.32}),"envLum"),qe=KA(Ne,{core:[140,1.3],halo:[22,.14],softness:s.highlightSoftness,gain:s.highlight}),st=Nm(tE([{paint:i(Gt(.25)).member("rgb"),opacity:.06,behind:Q.transmittance},Q.color,{paint:Me.rgb,behind:Q.transmittance},{paint:Ce.rgb,behind:dt(Q.transmittance,Dt(1),.35)},{paint:m(Ze(.85,.92,1.08),Ve),opacity:.38},m(Ze(1,.98,.95),qe)]));return sr(Yr(c,_),is(st,so(l,s.edgeSoftness)),_s,"nebula")}}),extraFields:{...pY,...mY,convVeil:{schema:v,initial:[0,0,0]},convGas:{schema:v,initial:[0,0,0]},convCore:{schema:v,initial:[0,0,0]}},props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the nebula shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the nebula shape (1 = default size)",ui:{type:["range","map"],min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the nebula shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},coreColor:{default:"#ffd9b0",transform:ke,description:"The hot color the densest gas cores glow with \u2014 the embedded newborn stars",ui:{type:"color",label:"Core Color",group:"Nebula"}},gasColor:{default:"#ff5e7a",transform:ke,description:"The main emission color of the gas body \u2014 H-alpha rose by default",ui:{type:"color",label:"Gas Color",group:"Nebula"}},veilColor:{default:"#3a5bdb",transform:ke,description:"The color of the thin outer veils and the deep-space background behind the gas",ui:{type:"color",label:"Veil Color",group:"Nebula"}},colorSpace:{default:"oklab",transform:ft,compileTime:!0,description:"Color space the veil \u2192 gas \u2192 core ramps blend in",ui:{type:"select",options:At,label:"Color Space",group:"Nebula"}},density:{default:1,description:"Optical density of the gas \u2014 how strongly clouds occlude the stars and gas behind them",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Density",group:"Nebula"}},cavity:{default:0,description:"How hollowed-out the nebula is \u2014 0 fills the volume with cloud banks, high carves large dark voids between them",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Cavity",group:"Nebula"}},dust:{default:.55,description:"Cold dark dust lanes threading the gas \u2014 absorb-only tendrils that redden the clouds and stars behind them",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Dust",group:"Nebula"}},gasScale:{default:.4,description:"Feature size of the gas \u2014 higher = finer, busier cloud detail",ui:{type:["range","map"],min:.1,max:1,step:.01,label:"Gas Scale",group:"Nebula"}},billow:{default:.6,description:"Turbulent folding of the clouds \u2014 0 = smooth drifting banks, 1 = heavily churned billows",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Billow",group:"Nebula"}},glow:{default:0,description:"Hot emission bloom of the dense cores",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Glow",group:"Nebula"}},seed:{default:0,description:"Random seed \u2014 pans the gas field to a different region of noise space for a new cloud composition",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Nebula"}},stars:{default:.07,description:"Brightness of the star fields drifting at depth behind and inside the gas",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Stars",group:"Stars"}},starScale:{default:1,description:"Density of the star fields \u2014 higher = smaller, busier stars",ui:{type:["range","map"],min:.25,max:3,step:.01,label:"Star Scale",group:"Stars"}},twinkle:{default:.35,description:"Intensity of the star twinkle (0 = steady stars, 1 = full shimmer)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Twinkle",group:"Stars"}},...Ho({refraction:{description:"How strongly the curved glass walls bend the interior seen near the edges"},environment:{default:.7,description:"Strength of the studio softboxes reflected in the polished glass surface"},highlight:{default:1.15,description:"Sharp key-light glint on the glass",ui:{group:"Glass"}},highlightSoftness:{ui:{group:"Glass"}},lightAngle:{description:"Direction of the key light and reflected studio, in degrees"},edgeSoftness:!0}),speed:{default:.3,description:"Speed of the slowly churning gas and twinkling stars. 0 freezes the nebula.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Animation"}},shape:{default:fY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var yY=JSON.stringify({type:"sphere3D",radius:.35}),gY=[{color:"#ff2f7a",position:0},{color:"#2a2cff",position:.3},{color:"#5fe6ff",position:.55},{color:"#a6ffd8",position:.75},{color:"#ffb3e6",position:1}],xY=.9,bY=.55,wY=.25,xu=et({name:"Obsidian",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Dark tinted glass whose faces stay near-black while every surface turning away from the viewer ignites with a flowing iridescent gradient \u2014 vivid color living only on the oblique walls and bevels",animatedTime:{speed:"speed"},props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the glass shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the glass shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the glass shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},bodyColor:{default:"#06071a",transform:ke,description:"The dark body of the glass \u2014 what the faces looking straight at you show. Keep it deep for the iridescence to pop.",ui:{type:"color",label:"Body Color",group:"Colors"}},colorA:{default:"#ff2f7a",transform:ke,description:"First iridescent color (two-color fallback when stops are cleared)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#5fe6ff",transform:ke,description:"Second iridescent color (two-color fallback when stops are cleared)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:{...Ls(),default:gY},colorSpace:{default:"oklab",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},iridescence:{default:1,description:"Strength of the color on the oblique surfaces \u2014 0 = plain dark glass, above 1 = saturated neon walls",ui:{type:["range","map"],min:0,max:1.5,step:.01,label:"Iridescence",group:"Iridescence"}},rimWidth:{default:.55,description:"How far in from edge-on the color reaches \u2014 small keeps it to the steepest walls, large lets it creep across gently turning faces",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Rim Width",group:"Iridescence"}},rimSoftness:{default:.25,description:"Softness of the transition from dark face to colored wall",ui:{type:["range","map"],min:.02,max:.6,step:.01,label:"Rim Softness",group:"Iridescence"}},flowAngle:{default:30,description:"Direction the gradient flows across the surface, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Flow Angle",group:"Iridescence"}},flowScale:{default:1,description:"How many times the palette cycles across the shape \u2014 higher = tighter color bands",ui:{type:["range","map"],min:.2,max:4,step:.01,label:"Flow Scale",group:"Iridescence"}},speed:{default:.5,description:"Speed the gradient flows along the walls. 0 pauses.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Iridescence"}},gloss:{default:.35,description:"Strength of the studio softboxes reflected in the glass \u2014 the pale highlights riding the top edges",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Gloss",group:"Surface"}},...Ho({envRotation:{ui:{group:"Surface"}}}),bevelWidth:{default:.08,description:"Width of the edge bevel on flat shapes \u2014 the band that turns away from the viewer and catches the color",ui:{type:["range","map"],min:.005,max:.3,step:.001,label:"Bevel Width",group:"Surface"}},bevelShape:{default:0,description:"Bevel profile \u2014 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Bevel Profile",group:"Surface"}},...Ho({edgeSoftness:{ui:{group:"Surface"}}}),shape:{default:yY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}},...Bs({pattern:"raw",surface:(e,t)=>{let{uniforms:s}=t,r=it(t),o=to(e,t,{scale:s.scale}),n=fl(e,o,{bevelWidth:s.bevelWidth,bevelShape:s.bevelShape}),i=di(t,o),d=Om(n,i),l=P(ae(1,s.rimWidth),"rimEdge"),c=P(Fe(ae(l,s.rimSoftness),C(l,s.rimSoftness),d),"rim"),_=Qm(s.flowAngle,"flow").coordsOf(zo(e,o)).along,p=C(C(m(_,m(s.flowScale,1/bY)),m(d,xY)),m(r,.2)),f=P(eo(re("colorSpace"))(QS(p),t).member("rgb"),"iri"),h=P(jo(i,n),"R"),g=P(m(Vm(h.member("x"),h.member("y"),{rotation:Wr(s.envRotation,"env"),keyRadius:.3,drift:0,strength:s.gloss,skyGain:wY}),Km(d,{r0:.04,gain:.96,power:4})),"shine"),x=C(dt(s.bodyColor.member("rgb"),f,Dt(m(c,s.iridescence))),m(dt(f,Dt(1),Dt(.6)),Dt(m(g,.5))));return sr(Yr(o.sdf,o.pxH),is(x,so(o,s.edgeSoftness)),_s,"obsidian")}})});var bu=et({name:"Plasma",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Animated effect of glowing plasma",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{density:{default:2,description:"Density of the plasma pattern",ui:{type:["range","map"],min:0,max:4,step:.1,label:"Density",group:"Effect"}},speed:{default:2,description:"Animation speed",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Effect"}},intensity:{default:1.5,description:"Brightness and spread of the plasma glow",ui:{type:["range","map"],min:.1,max:3,step:.1,label:"Intensity",group:"Colors"}},warp:{default:.4,description:"How much the flow distorts and swirls",ui:{type:"range",min:0,max:1,step:.01,label:"Warp",group:"Effect"}},contrast:{default:1,description:"Push darks darker and lights lighter",ui:{type:["range","map"],min:0,max:3,step:.1,label:"Contrast",group:"Colors"}},balance:{default:50,description:"Skew color balance toward A (higher) or B (lower)",ui:{type:["range","map"],min:0,max:100,step:1,label:"Balance",group:"Colors"}},colorA:{default:"#7018be",description:"Primary color",transform:ke,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",description:"Secondary color",transform:ke,ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:_n(IS(VS(OS(WS("mx3"),{amount:re("warp"),amountScale:4,timeScale:.125}),{scale:re("density")}),{glow:re("intensity"),contrast:re("contrast"),balance:re("balance"),invert:!0}),eo(re("colorSpace")))});var TY=JSON.stringify({type:"sphere3D",radius:.35}),Zi=(e,t,s,r,o)=>{let n=P(r,`${o}S`),i=P(e,`${o}X`);return m(Fe(ae(t,n),C(t,n),i),ae(1,Fe(ae(s,n),C(s,n),i)))},m0=(e,t,s,r)=>{let o=Je(C(m(e,s),r),C(m(t,s),m(r,.617))),n=Je(C(C(m(m(e,s),2.3),13.1),r),C(C(m(m(t,s),2.3),7.7),m(r,.617)));return C(Us(ro(o)),m(Us(ro(n)),.45))},wu=et({name:"Plastic",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Glossy molded plastic with photorealistic studio reflections, driven in a custom shape",animatedTime:{speed:"speed"},...Bs({pattern:"raw",surface:(e,t)=>{let{uniforms:s,propValues:r}=t,o=it(t),n=e.volumetric,i=to(e,t,{scale:s.scale}),{sdf:d,pxH:l}=i,c=P(e.sdfUV,"sdfUV"),_=Wr(s.gradientAngle,"gDir"),p=Fe(0,1,Le(C(De(Gs(ae(c.member("xy"),Je(.5,.5)),_),.7),.5),0,1)),f=r.colorSpace??0,h=r.stopCount??0,g;h>1?g=dl(p,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},f):g=se(Xo[f]??lr,"mixColors",[s.colorA,s.colorB,p]);let x=g.member("rgb"),T=Wr(C(s.lightAngle,m(o,6)),"light"),S=T.member("x"),A=T.member("y"),E=ii(i),M=so(i,s.edgeSoftness),$=zo(e,i,{uv:c}),L=$.member("x"),B=$.member("y"),D=ht(m(s.thickness,.3),.01),G=P(Le(De(m(d,-1),D),0,1),"depthNorm"),I;if(n)I=vl(i,4,"nBase");else{let hs=P(m(un(ht(ae(1,m(G,G)),0)),2.4),"bevelSlope");I=P(Jr(Ze(m(E.member("x"),hs),m(E.member("y"),hs),-1)),"nBase")}let X=P(m(s.crumpleScale,4),"cScale"),H=m(s.crumple,.9),ee=P(m(s.seed,7.31),"seedOff"),Q=.012,de=P(m0(L,B,X,ee),"cr0"),Ee=De(ae(m0(C(L,Q),B,X,ee),de),Q),he=De(ae(m0(L,C(B,Q),X,ee),de),Q),Me=Le(s.crumpleCoverage,0,1),Te=C(m($r(C(C(m(L,2.6),ee),31.7),C(C(m(B,2.6),m(ee,.617)),17.3)),.5),.5),Pe=P(ae(1.25,m(Me,1.75)),"covThreshold"),Ce=P(m(m(H,Fe(ae(Pe,.25),C(Pe,.25),Te)),C(m(Fe(0,.35,G),.85),.15)),"crumpleW"),ie=li(I,m(m(Ee,Ce),.25),m(m(he,Ce),.25)),Ne=ci(ie),ye=P(jo(Ze(0,0,1),ie),"R"),Ve=P(Le(s.roughness,0,1),"rough"),qe=P(m(m(Ve,$r(m(L,140),m(B,140))),.18),"rJit"),st=P(C(C(m(ye.member("x"),S),m(ye.member("y"),A)),qe),"eu"),We=P(C(C(m(ye.member("x"),m(A,-1)),m(ye.member("y"),S)),m(qe,.6)),"ev"),Be=P(dt(.02,.45,Ve),"soft"),rt=m(m(Zi(st,.18,.95,Be,"win1"),Zi(We,-.42,.42,Be,"win2")),ae(1,m(m(Zi(We,-.045,.045,m(Be,.6),"mull"),.8),ae(1,Ve)))),tt=m(m(Zi(st,-.16,-.05,m(Be,.7),"strip1"),Zi(We,-.85,.85,Be,"strip2")),.85),Ke=m(m(Zi(st,-.95,-.45,m(Be,1.6),"fill1"),Zi(We,-.6,.6,m(Be,1.6),"fill2")),.3),Oe=m(Le(C(m(st,.5),.5),0,1),.12),gt=m(C(C(C(rt,tt),Ke),Oe),ae(1,m(Ve,.55))),pt=C(.3,m(rs(Ne,3),.7)),Ut=m(s.reflectivity,pt),Lt=pn(T,-.8),Wt=Lt.member("L"),vs=P(m(C(gt,m(m(rs(Le(Gs(ie,Lt.member("H")),0,1),t0(dt(9,4,Ve))),1.6),ae(1,m(Ve,.7)))),Ut),"specular"),jt=P(C(m(Le(Gs(ie,Wt),-1,1),.5),.5),"lit"),Qt=dt(ae(1,m(s.shading,.75)),C(1,m(s.shading,.45)),jt),$s=dt(.6,1,Fe(0,1,Le(De(m(d,-1),.025),0,1))),Is=m(m(m(rs(Ne,3.5),s.rim),C(m(jt,.6),.4)),1.6),Ys=P(C(C(m(m(x,Qt),$s),Dt(vs)),m(s.rimColor.member("rgb"),Is)),"plasticRgb");return sr(Yr(d,l),is(Ys,M),_s,"plastic")}}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the plastic shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the plastic shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the plastic shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},colorA:{default:"#f5f5f7",transform:ke,description:"Body color at the start of the gradient",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#d9dade",transform:ke,description:"Body color at the end of the gradient",ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),gradientAngle:{default:90,description:"Direction of the body color gradient in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Gradient Angle",group:"Colors"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for gradient color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},thickness:{default:.5,description:"Puffiness \u2014 how far the rounded bevel reaches inward from the edge before the surface flattens",ui:{type:"range",min:.05,max:1,step:.01,label:"Puffiness",group:"Plastic"}},roughness:{default:.12,description:"Surface roughness \u2014 0 = polished gloss with crisp mirror reflections, 1 = matte satin",ui:{type:"range",min:0,max:1,step:.01,label:"Roughness",group:"Plastic"}},reflectivity:{default:1,description:"Strength of the environment reflections and specular highlights",ui:{type:"range",min:0,max:2,step:.01,label:"Reflectivity",group:"Plastic"}},crumple:{default:.25,description:"Surface crumple \u2014 irregular dents that break reflections into hard organic shapes, like blown or vacuum-formed plastic",ui:{type:"range",min:0,max:1,step:.01,label:"Crumple",group:"Plastic"}},crumpleScale:{default:1,description:"Size of the crumple dents \u2014 higher = smaller, denser dents",ui:{type:"range",min:.5,max:10,step:.1,label:"Crumple Scale",group:"Plastic"}},crumpleCoverage:{default:1,description:"How much of the surface is crumpled \u2014 0 = pristine, 0.5 = patches of crumple, 1 = fully crumpled",ui:{type:"range",min:0,max:1,step:.01,label:"Crumple Coverage",group:"Plastic"}},seed:{default:0,description:"Random seed \u2014 re-rolls the crumple pattern for reflection variety",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Plastic"}},edgeSoftness:{default:.05,description:"Softness of the shape boundary edge",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Softness",group:"Plastic"}},lightAngle:{default:315,description:"Direction the studio key light comes from, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Lighting"}},speed:{default:1,description:"Speed of the environment drift \u2014 the studio reflections slowly orbit the surface. 0 pauses.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Animation"}},shading:{default:.35,description:"Diffuse shading contrast \u2014 how strongly the body darkens away from the light",ui:{type:"range",min:0,max:1,step:.01,label:"Shading",group:"Lighting"}},rim:{default:.25,description:"Fresnel rim light intensity on grazing surfaces",ui:{type:"range",min:0,max:1,step:.01,label:"Rim Light",group:"Lighting"}},rimColor:{default:"#ffffff",transform:ke,description:"Color of the fresnel rim light",ui:{type:"color",label:"Rim Color",group:"Lighting"}},shape:{default:TY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}}});var Tu=et({name:"Prism",role:"generator",category:"Textures",description:"A beam of light that fans out and splits into a slowly-rotating rainbow past a controllable point. Transparent background \u2014 composite over a dark layer.",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{position:{default:{x:.18,y:.18},transform:ct,description:"Where the beam originates",ui:{type:"position",label:"Source",group:"Beam"}},beamWidth:{default:.04,description:"Thickness of the white beam",ui:{type:["range","map"],min:.002,max:.3,step:.002,label:"Beam Width",group:"Beam"}},intensity:{default:1.6,description:"Brightness (above 1 blows the core to white)",ui:{type:["range","map"],min:0,max:4,step:.01,label:"Intensity",group:"Beam"}},beamColor:{default:"#ffffff",transform:ke,description:"color of the beam before it splits",ui:{type:"color",label:"Beam Color",group:"Beam"}},startFalloff:{default:.15,description:"How softly the beam fades in at its source",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Start Falloff",group:"Beam"}},endFalloff:{default:.6,description:"How quickly the rainbow fades out with distance",ui:{type:["range","map"],min:.02,max:2,step:.01,label:"End Falloff",group:"Beam"}},splitPosition:{default:{x:.5,y:.42},transform:ct,description:"Where the beam starts to fan out and split (projected onto the beam axis)",ui:{type:"position",label:"Split Point",group:"Spectrum"}},spread:{default:.7,description:"How widely the rainbow diffuses as it travels past the split point",ui:{type:["range","map"],min:0,max:3,step:.01,label:"Spread",group:"Spectrum"}},softness:{default:.12,description:"How quickly the white beam transitions into the rainbow",ui:{type:["range","map"],min:.001,max:1,step:.005,label:"Softness",group:"Spectrum"}},saturation:{default:.95,description:"Rainbow saturation \u2014 0 = white, 1 = full color",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Saturation",group:"Spectrum"}},speed:{default:.1,description:"Speed the hue slowly rotates through the rainbow (0 = static)",ui:{type:"range",min:-1,max:1,step:.01,label:"Hue Speed",group:"Spectrum"}}},paint:e=>{let t=h=>Se(re(h),e),s=Zm({from:re("position"),to:re("splitPosition")})(e,Ko(e)),r=P(ht(t("softness"),.001),"soft"),o=P(kS(ae(s.along,s.length),m(r,.6)),"past"),n=P(m(Fe(0,ht(t("startFalloff"),.001),s.along),Fs(mo(De(o,ht(t("endFalloff"),.001))))),"longEnv"),i=ht(C(t("beamWidth"),m(o,t("spread"))),.001),d=P(De(s.across,i),"an"),l=Im(d,2.5),c=Fe(s.length,C(s.length,r),s.along),_=C(m(d,.42),it(e)),p=dt(t("beamColor").member("rgb"),XS(_),Dt(m(c,t("saturation")))),f=P(m(l,n),"amt");return is(P(m(m(p,f),t("intensity")),"beamRgb").member("xyz"),Le(f,0,1))}});var Su=et({name:"Ripples",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Concentric animated ripples emanating from a point",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{center:{default:{x:.5,y:.5},transform:ct,description:"The center point where ripples emanate from",ui:{type:"position",label:"Center",group:"Position"}},colorA:{default:"#ffffff",transform:ke,description:"Color of the ripple waves",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",transform:ke,description:"Background color between ripples",ui:{type:"color",label:"Color B",group:"Colors"}},speed:{default:1,description:"Speed of ripple animation",ui:{type:"range",min:-5,max:5,step:.1,label:"Speed",group:"Animation"}},frequency:{default:20,description:"Number of ripples/spacing between them",ui:{type:["range","map"],min:1,max:80,step:.1,label:"Frequency",group:"Effect"}},softness:{default:0,description:"Softness of ripple edges",ui:{type:["range","map"],min:0,max:3,step:.1,label:"Softness",group:"Effect"}},thickness:{default:.5,description:"Thickness of each ripple band",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Thickness",group:"Effect"}},phase:{default:0,description:"Phase offset for ripple animation",ui:{type:["range","map"],min:0,max:6.28,step:.1,label:"Phase",group:"Animation"}}},paint:_l({fill:re("colorB"),stroke:re("colorA"),mask:dA({center:re("center"),frequency:re("frequency"),thickness:re("thickness"),softness:re("softness"),phase:re("phase")})})});var Au=et({name:"SineWave",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Animated wave with thickness and softness",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{color:{default:"#ffffff",transform:ke,description:"The color of the sine wave",ui:{type:"color",label:"Color",group:"Colors"}},amplitude:{default:.15,description:"The height/amplitude of the sine wave",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Amplitude",group:"Effect"}},frequency:{default:1,description:"The frequency/number of wave cycles",ui:{type:["range","map"],min:.1,max:20,step:.1,label:"Frequency",group:"Effect"}},speed:{default:1,description:"The animation speed of the wave",ui:{type:"range",min:-5,max:5,step:.1,label:"Speed",group:"Animation"}},angle:{default:0,transform:Ra,description:"The rotation angle of the wave (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},position:{default:{x:.5,y:.5},transform:ct,description:"The center position of the wave",ui:{type:"position",label:"Position",group:"Position"}},thickness:{default:.2,description:"The thickness of the wave line",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Thickness",group:"Effect"}},softness:{default:.4,description:"Edge softness of the wave line",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Softness",group:"Effect"}}},paint:rE({position:re("position"),angle:re("angle"),frequency:re("frequency"),amplitude:re("amplitude"),thickness:re("thickness"),softness:re("softness"),color:re("color")})});var Eu=et({name:"Spiral",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Rotating spiral pattern with animated movement",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#000000",transform:ke,description:"Background color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:ke,description:"Spiral stroke color",ui:{type:"color",label:"Color B",group:"Colors"}},strokeWidth:{default:.5,description:"Thickness of spiral stroke",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Stroke Width",group:"Effect"}},strokeFalloff:{default:0,description:"Stroke losing width further from center",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Stroke Falloff",group:"Effect"}},softness:{default:0,description:"Color transition sharpness (0 = hard edge, 1 = smooth fade)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Softness",group:"Effect"}},speed:{default:1,description:"Animation speed (negative values reverse direction)",ui:{type:"range",min:-3,max:3,step:.1,label:"Speed",group:"Animation"}},center:{default:{x:.5,y:.5},transform:ct,description:"The center point of the spiral",ui:{type:"position",label:"Center",group:"Position"}},scale:{default:1,description:"Scale factor for spiral bands (higher = more bands, lower = fewer bands)",ui:{type:["range","map"],min:.1,max:5,step:.1,label:"Scale",group:"Effect"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:_n(BS.spiral({center:re("center"),scale:re("scale"),width:re("strokeWidth"),falloff:re("strokeFalloff"),softness:re("softness")}),FS(re("colorA"),re("colorB"),re("colorSpace")))});var Pu=et({name:"Strands",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Flowing ribbons of light with a multi-color gradient",acceptsUVContext:!0,animatedTime:{speed:"speed"},extraAnimatedTimes:{color:"colorSpeed"},props:{speed:{default:.5,description:"Overall animation speed",ui:{type:"range",min:0,max:2,step:.1,label:"Speed",group:"Animation"}},amplitude:{default:2,description:"How far the strands wave away from their resting line",ui:{type:["range","map"],min:0,max:5,step:.1,label:"Amplitude",group:"Effect"}},frequency:{default:.3,description:"How many waves run along each strand",ui:{type:["range","map"],min:0,max:5,step:.1,label:"Frequency",group:"Effect"}},lineCount:{default:8,description:"Number of strands",ui:{type:"range",min:1,max:16,step:1,label:"Strand Count",group:"Effect"}},lineWidth:{default:.05,description:"Thickness of each strand\u2019s solid core",ui:{type:["range","map"],min:0,max:1,step:.05,label:"Strand Width",group:"Effect"}},softness:{default:.05,description:"Softness of each strand\u2019s edge (0 is crisp, higher is feathered)",ui:{type:["range","map"],min:0,max:1,step:.05,label:"Strand Softness",group:"Effect"}},spread:{default:.2,description:"How far the strands fan out across the field",ui:{type:["range","map"],min:0,max:1,step:.05,label:"Spread",group:"Effect"}},pinEdges:{default:!1,transform:Dx,description:"Pin the strands so they converge to the start and end points",ui:{type:"checkbox",label:"Pin Edges",group:"Effect"}},stops:{...Ls(),default:[{color:"#00e5ff",position:0},{color:"#5b8cff",position:.34},{color:"#b06bff",position:.67},{color:"#ff5fa2",position:1}]},colorSpace:{default:"oklab",transform:ft,compileTime:!0,description:"Color space used to blend the gradient",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},colorScale:{default:1,description:"How many times the gradient repeats along the strands",ui:{type:["range","map"],min:1,max:6,step:1,label:"Color Scale",group:"Colors"}},colorVariance:{default:1,description:"At 0 every strand shares the same color; at 1 the strands spread across the full gradient",ui:{type:["range","map"],min:0,max:1,step:.05,label:"Color Variance",group:"Colors"}},colorSpeed:{default:1,description:"Speed at which the colors flow along the strands (loops)",ui:{type:"range",min:0,max:2,step:.05,label:"Color Speed",group:"Colors"}},start:{default:{x:0,y:.5},transform:ct,description:"Starting point of the strands",ui:{type:"position",label:"Start",group:"Position"}},end:{default:{x:1,y:.5},transform:ct,description:"Ending point of the strands",ui:{type:"position",label:"End",group:"Position"}}},paint:IA(OA({from:re("start"),to:re("end"),count:re("lineCount"),width:re("lineWidth"),amplitude:re("amplitude"),frequency:re("frequency"),softness:re("softness"),spread:re("spread"),pinEdges:re("pinEdges"),colorScale:re("colorScale"),colorVariance:re("colorVariance")}),YA({space:re("colorSpace")}),WA())});var Mu=et({name:"Stripes",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Alternating colored stripes with animation",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#000000",transform:ke,description:"First stripe color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:ke,description:"Second stripe color",ui:{type:"color",label:"Color B",group:"Colors"}},angle:{default:45,transform:Ra,description:"Angle of stripes in degrees",ui:{type:["range","map"],min:-180,max:180,step:1,label:"Angle",group:"Effect"}},density:{default:5,description:"Number of stripe pairs visible",ui:{type:["range","map"],min:1,max:30,step:1,label:"Density",group:"Effect"}},balance:{default:.5,description:"Ratio of the two colors",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Balance",group:"Effect"}},softness:{default:0,description:"Edge softness",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Softness",group:"Effect"}},speed:{default:.2,description:"Animation speed",ui:{type:"range",min:-1,max:1,step:.1,label:"Speed",group:"Animation"}},offset:{default:0,description:"Phase offset for pattern positioning",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Offset",group:"Animation"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:_l({fill:re("colorA"),stroke:re("colorB"),mask:iA({angle:re("angle"),density:re("density"),balance:re("balance"),softness:re("softness"),offset:re("offset")}),space:re("colorSpace")})});var ku=et({name:"SunBurst",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Radial sunburst rays emanating from a center point",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{color:{default:"#ffdd88",transform:ke,description:"Ray color",ui:{type:"color",label:"Color",group:"Colors"}},background:{default:"#000000",transform:ke,description:"Background color",ui:{type:"color",label:"Background",group:"Colors"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center point of the sunburst",ui:{type:"position",label:"Center",group:"Position"}},rayCount:{default:12,description:"Number of rays",ui:{type:"range",min:3,max:64,step:1,label:"Ray Count",group:"Effect"}},softness:{default:.3,description:"Softness of ray edges",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},radius:{default:.8,description:"How far the rays extend from the center",ui:{type:["range","map"],min:0,max:1.2,step:.01,label:"Radius",group:"Effect"}},feather:{default:.5,description:"How gradually the rays fade at their outer edge",ui:{type:["range","map"],min:0,max:5,step:.01,label:"Feather",group:"Effect"}},speed:{default:.2,description:"Rotation speed \u2014 positive values rotate clockwise",ui:{type:"range",min:-2,max:2,step:.1,label:"Speed",group:"Animation"}}},paint:PA({color:re("color"),background:re("background"),coverage:Wm(pA(re("center")),fA(vA({count:re("rayCount"),softness:re("softness"),spin:-1}),hA({radius:re("radius"),feather:re("feather")})),"burstFrame"),hint:"burstAlpha"})});var EE=Jc(NS({detail:re("detail")})),$u=et({name:"Swirl",role:"generator",boundingBoxDeclaration:{aspectRatio:null},category:"Textures",description:"Flowing swirl pattern with multi-layered noise",animatedTime:{speed:"speed"},props:{colorA:{default:"#1275d8",description:"Primary gradient color",transform:ke,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#e19136",description:"Secondary gradient color",transform:ke,ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),speed:{default:1,description:"Flow animation speed",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}},detail:{default:1,description:"Level of detail and intricacy in the swirl patterns",ui:{type:["range","map"],min:0,max:5,step:.1,label:"Detail",group:"Effect"}},blend:{default:50,description:"Skew color balance toward A (lower values) or B (higher values)",ui:{type:["range","map"],min:0,max:100,step:1,label:"Blend",group:"Effect"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:HS(_n(YS(EE,{low:.3,high:.7,bias:{base:re("blend"),add:-50,mul:.006}}),eo(re("colorSpace"))),qS(EE,{speed:2.5,span:8,depth:.015}))});var SY=Pn({applyThinFilmEffect:()=>AY,thinFilmCompose:()=>CE,thinFilmCustomParams:()=>$E,thinFilmRainbow:()=>kE,thinFilmShade:()=>ME}),f0=.017453292519943295,PE=6.283185307179586,ME=y.fn([a,a,a,a,a,a,a,a,a,a,a,a],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o,n,i,d,l,c,_,p,f)=>{"use gpu";let h=__tsover_div(t,s),g=w(__tsover_mul(n,.5),.001),x=w($e(__tsover_add(__tsover_mul(r,r),__tsover_mul(o,o))),1e-4),T=__tsover_div(r,x),S=__tsover_div(o,x),A=z(__tsover_mul(__tsover_div(__tsover_mul(h,-1),g),32),0,1),E=w(__tsover_mul(i,.1),.001),M=z(__tsover_div(__tsover_mul(h,-1),E),0,1),$=__tsover_div(1,$e(__tsover_add(__tsover_mul(x,x),1))),L=Z(7,1.5,z(i,0,1)),B=__tsover_mul(Ye(__tsover_sub(1,$),L),A),D=F(__tsover_mul(__tsover_mul(__tsover_sub(1,M),__tsover_sub(1,M)),A),B,f>.5),G=J(__tsover_mul(_,f0)),I=O(__tsover_mul(_,f0)),X=__tsover_add(__tsover_mul(T,G),__tsover_mul(S,I)),H=__tsover_sub(__tsover_mul(S,G),__tsover_mul(T,I)),ee=__tsover_mul(p,PE),Q=__tsover_add(__tsover_mul(X,J(ee)),__tsover_mul(H,O(ee))),de=__tsover_mul(__tsover_mul(d,w(__tsover_mul(h,-1),0)),10),Ee=F(__tsover_mul(__tsover_mul(d,M),2),de,f>.5);return u(__tsover_add(__tsover_add(c,__tsover_mul(l,Q)),Ee),D)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"sdfRaw"},{type:"i",name:"scale"},{type:"i",name:"gradX"},{type:"i",name:"gradY"},{type:"i",name:"edgeSoftness"},{type:"i",name:"rimWidthUniform"},{type:"i",name:"thickness"},{type:"i",name:"dispersion"},{type:"i",name:"hueShift"},{type:"i",name:"lightAngle"},{type:"i",name:"animTime"},{type:"i",name:"volumetric"}],body:[0,[[13,"sdf",[1,"sdfRaw","/","scale"]],[13,"sharp",[6,"std.max",[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"gLen",[6,"std.max",[[6,"std.sqrt",[[1,[1,"gradX","*","gradX"],"+",[1,"gradY","*","gradY"]]]],[5,"0.0001"]]]],[13,"nx",[1,"gradX","/","gLen"]],[13,"ny",[1,"gradY","/","gLen"]],[13,"rb1",[6,"std.clamp",[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"rimWidth",[6,"std.max",[[1,"rimWidthUniform","*",[5,"0.1"]],[5,"0.001"]]]],[13,"depth",[6,"std.clamp",[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","rimWidth"],[5,"0"],[5,"1"]]]],[13,"cosView",[1,[5,"1"],"/",[6,"std.sqrt",[[1,[1,"gLen","*","gLen"],"+",[5,"1"]]]]]],[13,"exponent",[6,"std.mix",[[5,"7"],[5,"1.5"],[6,"std.clamp",["rimWidthUniform",[5,"0"],[5,"1"]]]]]],[13,"volRim",[1,[6,"std.pow",[[1,[5,"1"],"-","cosView"],"exponent"]],"*","rb1"]],[13,"flatRim",[1,[1,[1,[5,"1"],"-","depth"],"*",[1,[5,"1"],"-","depth"]],"*","rb1"]],[13,"rim",[6,"std.select",["flatRim","volRim",[1,"volumetric",">",[5,"0.5"]]]]],[13,"lx",[6,"std.cos",[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,"std.sin",[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"baseCos",[1,[1,"nx","*","lx"],"+",[1,"ny","*","ly"]]],[13,"baseSin",[1,[1,"ny","*","lx"],"-",[1,"nx","*","ly"]]],[13,"theta",[1,"animTime","*","TWO_PI"]],[13,"rotatedDot",[1,[1,"baseCos","*",[6,"std.cos",["theta"]]],"+",[1,"baseSin","*",[6,"std.sin",["theta"]]]]],[13,"thickVol",[1,[1,"thickness","*",[6,"std.max",[[1,"sdf","*",[4,"-",[5,"1"]]],[5,"0"]]]],"*",[5,"10"]]],[13,"thickFlat",[1,[1,"thickness","*","depth"],"*",[5,"2"]]],[13,"thicknessTerm",[6,"std.select",["thickFlat","thickVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"phase",[1,[1,"hueShift","+",[1,"dispersion","*","rotatedDot"]],"+","thicknessTerm"]],[10,[6,"d.vec2f",["phase","rim"]]]]]},externals:{"std.max":()=>w,"std.sqrt":()=>$e,"std.clamp":()=>z,"std.mix":()=>Z,"std.pow":()=>Ye,"std.select":()=>F,"std.cos":()=>J,DEG_TO_RAD:()=>f0,"std.sin":()=>O,TWO_PI:()=>PE,"d.vec2f":()=>u}})&&e.f)({})),kE=y.fn([a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return Vc(t,0,.3333,.6667)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[10,[6,"cosinePalette",["phase",[5,"0"],[5,"0.3333"],[5,"0.6667"]]]]]]},externals:{cosinePalette:()=>Vc}})&&e.f)({})),$E=y.fn([a],v)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=ve(t),r=__tsover_mul(s,3),o=ve(r),n=K(r);return v(o,F(a(0),a(1),n<=1.5),F(a(0),a(1),n<=.5))}),{v:2,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[13,"t",[6,"std.fract",["phase"]]],[13,"t3",[1,"t","*",[5,"3"]]],[13,"si",[6,"std.fract",["t3"]]],[13,"floorT3",[6,"std.floor",["t3"]]],[13,"gate12",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"floorT3","<=",[5,"1.5"]]]]],[13,"gate01",[6,"std.select",[[6,"d.f32",[[5,"0"]]],[6,"d.f32",[[5,"1"]]],[1,"floorT3","<=",[5,"0.5"]]]]],[10,[6,"d.vec3f",["si","gate12","gate01"]]]]]},externals:{"std.fract":()=>ve,"std.floor":()=>K,"std.select":()=>F,"d.f32":()=>a,"d.vec3f":()=>v}})&&e.f)({})),CE=y.fn([v,a,a,a],b)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,o)=>{"use gpu";let n=Z(v(1,1,1),t,o).mul(s).mul(r),i=z(s,0,1);return b(n.x,n.y,n.z,i)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"baseColor"},{type:"i",name:"rim"},{type:"i",name:"intensity"},{type:"i",name:"saturation"}],body:[0,[[13,"white",[6,"d.vec3f",[[5,"1"],[5,"1"],[5,"1"]]]],[13,"col",[6,"std.mix",["white","baseColor","saturation"]]],[13,"rgb",[6,[7,[6,[7,"col","mul"],["rim"]],"mul"],["intensity"]]],[13,"alpha",[6,"std.clamp",["rim",[5,"0"],[5,"1"]]]],[10,[6,"d.vec4f",[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]]},externals:{"d.vec3f":()=>v,"std.mix":()=>Z,"std.clamp":()=>z,"d.vec4f":()=>b}})&&e.f)({}));function AY(e,t,s){let{uniforms:r,propValues:o,ctx:n}=e,i=s?.volumetric??!1,d=s?.gradSampler??t,l=nt(i?1:0),c=e.props.member("_animTime"),_=se(Gm,"sdfSpaceUV",[r.center,r.scale,r.rotation,n.uv,n.aspect]),p=t(_),f=p.member("r"),h,g;if(s?.bakedGradients)h=p.member("g"),g=p.member("b");else{let E=d(se(jd,"offsetUV",[_,nt(.01),nt(0)])),M=d(se(jd,"offsetUV",[_,nt(0),nt(.01)])),$=se(Dm,"glassGradient",[f,E.member("r"),M.member("r")]);h=$.member("x"),g=$.member("y")}let x=se(ME,"thinFilmShade",[f,r.scale,h,g,r.edgeSoftness,r.rimWidth,r.thickness,r.dispersion,r.hueShift,r.lightAngle,c,l]),T=x.member("x"),S=x.member("y"),A;if(o.mode==="custom"){let E=Xo[typeof o.colorSpace=="number"?o.colorSpace:0]??lr,M=se($E,"thinFilmCustomParams",[T]),$=M.member("x"),L=M.member("y"),B=M.member("z"),D=se(E,"mixColors",[r.colorA,r.colorB,$]),G=se(E,"mixColors",[r.colorB,r.colorC,$]);A=wn(wn(se(E,"mixColors",[r.colorC,r.colorA,$]),G,L),D,B).member("rgb")}else A=se(kE,"thinFilmRainbow",[T]);return se(CE,"thinFilmCompose",[A,S,r.intensity,r.saturation])}var{applyThinFilmEffect:EY}=SY,PY=JSON.stringify({type:"sphere3D",radius:.35}),Cu=et({name:"ThinFilm",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Iridescent thin-film edge",animatedTime:{speed:"speed"},...Bs({chord:"firstLobe",gradSampler:"same",bakedGradients:"volumetric",stencil:"none",surface:(e,t)=>EY(t,e.sampler,{volumetric:e.volumetric,bakedGradients:e.bakedGradients})}),props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the shape (1 = default size)",ui:{type:["range","map"],min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},intensity:{default:1,description:"Rim brightness \u2014 values above 1 push the edge past white for HDR bloom",ui:{type:["range","map"],min:0,max:4,step:.01,label:"Intensity",group:"Film"}},rimWidth:{default:1,description:"How far inward from the edge the iridescence reaches",ui:{type:["range","map"],min:0,max:3,step:.01,label:"Rim Width",group:"Film"}},edgeSoftness:{default:.3,description:"Softness of the shape boundary",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Edge Softness",group:"Film"}},thickness:{default:.5,description:"Film thickness \u2014 higher values pack more spectral bands across the rim",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Thickness",group:"Film"}},dispersion:{default:.5,description:"How strongly color separates around the perimeter (warm vs cool sides)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Dispersion",group:"Film"}},saturation:{default:1,description:"Spectral saturation \u2014 0 = white rim, 1 = full iridescence",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Saturation",group:"Film"}},hueShift:{default:0,description:"Rotate the spectrum to reposition the colors",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Hue Shift",group:"Film"}},lightAngle:{default:300,description:"Light angle in degrees \u2014 sets which side of the rim runs warm vs cool",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Film"}},mode:{default:"rainbow",compileTime:!0,description:"Rainbow uses the full iridescent spectrum; Custom cycles through your three chosen colors",ui:{type:"select",options:[{label:"Rainbow",value:"rainbow"},{label:"Custom",value:"custom"}],label:"Mode",group:"Colors"}},colorA:{default:"#2b6fff",transform:ke,description:"First color in the rim cycle",ui:{type:"color",label:"Color 1",group:"Colors",condition:{mode:"custom"}}},colorB:{default:"#ffffff",transform:ke,description:"Second color in the rim cycle",ui:{type:"color",label:"Color 2",group:"Colors",condition:{mode:"custom"}}},colorC:{default:"#ff7a21",transform:ke,description:"Third color in the rim cycle",ui:{type:"color",label:"Color 3",group:"Colors",condition:{mode:"custom"}}},colorSpace:{default:"oklch",transform:ft,compileTime:!0,description:"color space used to blend between custom colors",ui:{type:"select",options:At,label:"Color Space",group:"Colors",condition:{mode:"custom"}}},speed:{default:.1,description:"Speed at which the colors rotate around the rim (0 = static)",ui:{type:"range",min:-1,max:1,step:.01,label:"Speed",group:"Animation"}},shape:{default:PY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file \u2014 when non-empty, activates SVG mode and triggers a shader recompile"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type \u2014 triggers recompile when shape is switched. When empty, derived from shape JSON at mount time."}}});var RE=Jc(DA({scale:re("scale"),seed:re("seed")})),Ru=et({name:"Voronoi",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Cellular pattern where each pixel is colored by its distance to the nearest of many scattered points",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#3186cf",transform:ke,description:"Color near each cell's center point",ui:{type:"color",label:"Color A (Center)",group:"Colors"}},colorB:{default:"#fc02dd",transform:ke,description:"Color at cell boundaries, far from any center point",ui:{type:"color",label:"Color B (Edge)",group:"Colors"}},stops:Ls(),colorBorder:{default:"#000000",transform:ke,description:"Color of the cell boundary lines",ui:{type:"color",label:"Border Color",group:"Colors"}},scale:{default:6,description:"Number of cells across the canvas",ui:{type:["range","map"],min:1,max:20,step:.5,label:"Scale",group:"Effect"}},speed:{default:.5,description:"Animation speed \u2014 how fast the cell points drift",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}},seed:{default:0,description:"Random seed \u2014 shifts the cell pattern without changing the overall structure",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}},edgeIntensity:{default:.5,description:"Controls how much of the cell interior is filled by the edge color. Low = center color dominates with a sharp boundary. High = edge color spreads further into the cell.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Edge Intensity",group:"Effect"}},edgeSoftness:{default:.05,description:"Width of the cell boundary lines.",ui:{type:["range","map"],min:0,max:.4,step:.005,label:"Edge Softness",group:"Effect"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}}},paint:BA(_n(Jc(LA(RE,{edgeIntensity:re("edgeIntensity")})),eo(re("colorSpace"))),FA(RE,{softness:re("edgeSoftness"),scale:re("scale")}),{color:re("colorBorder")})});var MY=JSON.stringify({type:"sphere3D",radius:.35}),v0=(e,t)=>{let s=P(e,t),r=ro(s),o=m(ro(C(m(s,2.07),Je(4.3,9.1))),.5),n=m(ro(C(m(s,4.13),Je(1.7,8.2))),.25);return m(C(C(r,o),n),.52)},xl=e=>m(ro(e),.52),UE=(e,t,s,r,o,n,i,d)=>{let l=P(ae(m(e,o),m(t,n)),`${d}Ex`),c=P(C(m(e,n),m(t,o)),`${d}Ey`),_=P(Le(C(m(c,.5),.5),0,1),`${d}Up`),p=Ze(.9,.96,1),f=Ze(.2,.46,.85),h=dt(Ze(.04,.1,.16),dt(p,f,Dt(Fe(.5,1,_))),Dt(Fe(.4,.55,_))),g=Je(m(s,.8),C(m(r,.8),.12)),x=P(dt(.5,.13,i),`${d}SunRad`),T=Ir(ae(Je(l,c),g)),S=Fe(x,m(x,.15),T);return C(h,m(Ze(1,.97,.88),m(S,1.5)))},Uu=et({name:"Water",role:"shapeEffect",species:"custom",boundingBoxDeclaration:Ds,category:"Shape Effects",description:"Translucent water \u2014 a refractive, light-absorbing body that deepens to its color with thickness, wrapped in a wind-driven wave surface that reflects a procedural sky, with Fresnel-bright grazing edges and foam breaking on the crests and shoreline",animatedTime:{speed:"speed"},props:{origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:ct,description:"Center position of the water shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the water shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the water shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},waterColor:{default:"#00bfeb",transform:ke,description:"The color the water saturates toward with depth",ui:{type:"color",label:"Water Color",group:"Water"}},clarity:{default:.4,description:"How much of the reflected sky transmits through the body",ui:{type:"range",min:0,max:1,step:.01,label:"Clarity",group:"Water"}},depth:{default:5,description:"How quickly the water darkens and saturates toward its color with thickness",ui:{type:"range",min:0,max:8,step:.01,label:"Depth",group:"Water"}},shallows:{default:.5,description:"Brightness of the thin shallow water at the edges \u2014 high fades the rim to light translucent water, low keeps the edges close to the deep water color",ui:{type:"range",min:0,max:1,step:.01,label:"Shallows",group:"Water"}},caustics:{default:.15,description:"Intensity of the light caustics bubbling up through the body \u2014 bright veins of focused light churning inside the water",ui:{type:"range",min:0,max:2,step:.01,label:"Caustics",group:"Water"}},causticScale:{default:6,description:"Size of the caustic veins \u2014 higher = finer, busier light patterns inside the body",ui:{type:"range",min:1,max:20,step:.1,label:"Caustic Scale",group:"Water"}},choppiness:{default:.8,description:"Height of the wind-driven waves \u2014 the depth of the folds that bend the reflection",ui:{type:"range",min:0,max:1.5,step:.01,label:"Choppiness",group:"Waves"}},waveScale:{default:3.5,description:"Scale of the wave fronts \u2014 higher = smaller, busier ripples",ui:{type:"range",min:.5,max:8,step:.01,label:"Wave Scale",group:"Waves"}},swirl:{default:.6,description:"Swirl of the flow \u2014 domain-warps the wave fronts into curling eddies",ui:{type:"range",min:0,max:1.5,step:.01,label:"Swirl",group:"Waves"}},speed:{default:.5,description:"Speed of the rolling waves. 0 pauses the surface.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",group:"Waves"}},reflection:{default:2,description:"Strength of the reflected sky across the surface",ui:{type:"range",min:0,max:2,step:.01,label:"Reflection",group:"Surface"}},envRotation:{default:0,description:"Rotates the reflected sky \u2014 spins where the bright sky and sun fall",ui:{type:"range",min:0,max:360,step:1,label:"Env Rotation",group:"Surface"}},sharpness:{default:.1,description:"Tightness of the sun glint and reflected sun",ui:{type:"range",min:0,max:1,step:.01,label:"Sharpness",group:"Surface"}},lightAngle:{default:30,description:"Direction of the sun, in degrees \u2014 drives the glint and where the sun reflects",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Surface"}},foam:{default:.3,description:"White foam breaking on the wave crests and along the shoreline edge",ui:{type:"range",min:0,max:1,step:.01,label:"Foam",group:"Surface"}},edgeSoftness:{default:.05,description:"Softness of the shape boundary edge",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Softness",group:"Surface"}},shape:{default:MY,description:"Serialized shape configuration (JSON)",ui:{type:"shape",label:"Shape",group:"Shape"}},shapeSdfUrl:{default:"",compileTime:!0,description:"URL to a pre-generated SDF .bin file"},shapeType:{default:"",compileTime:!0,description:"Active SDF shape type"}},...Bs({pattern:"raw",surface:(e,t)=>{let{uniforms:s}=t,r=it(t),o=e.volumetric,n=to(e,t,{scale:s.scale}),{sdf:i,pxH:d}=n,l=Wr(s.lightAngle,"light"),c=l.member("x"),_=l.member("y"),p=Wr(s.envRotation,"env"),f=p.member("x"),h=p.member("y"),g=ii(n),x;if(o)x=vl(n);else{let Cr=P(m(ae(1,Le(De(m(i,-1),.05),0,1)),1.6),"rimBevel");x=P(Jr(Ze(m(g.member("x"),Cr),m(g.member("y"),Cr),-1)),"nGeo")}let T=zo(e,n),S=T.member("x"),A=T.member("y"),E=P(m(s.waveScale,2.4),"freq"),M=P(m(r,.2),"flowT"),$=P(Je(m(m(S,E),.8),m(m(A,E),1.25)),"q"),L=m(s.swirl,.9),B=P(C(C($,m(jm(m($,.6),M),L)),Je(0,m(M,-1))),"qw"),D=.06,G=P(v0(B,"fbmH0"),"h0"),I=P(xl(B),"h0n1"),X=Le(De(ae(xl(C(B,Je(D,0))),I),D),-4,4),H=Le(De(ae(xl(C(B,Je(0,D))),I),D),-4,4),ee=.025,Q=P(C(C(m(B,3.3),Je(m(M,1.7),m(M,-1.15))),Je(11.3,4.7)),"qf"),de=P(xl(Q),"f0n1"),Ee=Le(De(ae(xl(C(Q,Je(ee,0))),de),ee),-4,4),he=Le(De(ae(xl(C(Q,Je(0,ee))),de),ee),-4,4),Me=P(m(s.choppiness,.5),"relief"),Te=P(m(s.choppiness,.22),"reliefFine"),Pe=P(Jr(Ze(ae(ae(x.member("x"),m(X,Me)),m(Ee,Te)),ae(ae(x.member("y"),m(H,Me)),m(he,Te)),x.member("z"))),"n"),Ce=P(Le(s.sharpness,0,1),"sharp"),ie=P(jo(Ze(0,0,1),Pe),"R"),Ne=P(m(UE(ie.member("x"),ie.member("y"),c,_,f,h,Ce,"refl"),s.reflection),"reflCol"),ye=P(m(Kd(n,e),s.depth),"thickness"),Ve=P(Le(m(ye,1.3),0,1),"depthT"),qe=P(s.waterColor.member("rgb"),"wc"),st=P(Hm(ye,Ze(m(ae(1,qe.member("x")),2.2),m(ae(1,qe.member("y")),2.2),m(ae(1,qe.member("z")),2.2))),"transmit"),We=Le(s.shallows,0,1),Be=P(C(m(dt(dt(qe,Ze(1,1,1),Dt(We)),qe,Dt(Ve)),st),m(qe,m(Ve,.18))),"bodyTint"),rt=pn(l,-.7),tt=P(C(m(rs(Le(C(m(Gs(Pe,rt.member("L")),.5),.5),0,1),.8),.5),.5),"diffuse"),Ke=P(PS(Ze(0,0,1),Pe,Gt(1/1.333)),"tDir"),Oe=m(UE(Ke.member("x"),Ke.member("y"),c,_,f,h,Ce,"trans"),st),gt=m(Le(s.clarity,0,1),ae(1,m(Ve,.8))),pt=m(dt(Be,C(m(Oe,.6),m(Be,.4)),Dt(gt)),tt),Ut=P(m(r,3),"causT"),Lt=P(C(m(Je(S,A),s.causticScale),Je(m(Zt(m(Ut,.15)),.4),m(m(Ut,.3),-1))),"causP"),Wt=ae(1,Us(v0(Lt,"fbmC1"))),vs=ae(1,Us(v0(C(m(Lt,1.9),Je(3.7,m(m(Ut,.18),-1))),"fbmC2"))),jt=P(rs(Le(C(m(Wt,.6),m(vs,.4)),0,1),3),"causV"),Qt=P(m(C(m(Ve,.8),.2),s.caustics),"causMask"),$s=dt(C(m(pt,C(1,m(m(jt,Qt),.7))),m(Ze(.55,.82,1),m(m(jt,Qt),.45))),Ne,Dt(Le(Km(ci(Pe),{gain:.96}),0,1))),Is=qm(Le(Gs(Pe,rt.member("H")),0,1),Ce,is(40,600,.3,1.3)),Ys=C($s,m(Ze(1,.98,.92),Is)),hs=P(m(Le(C(Fe(.62,.92,Le(C(m(G,.5),.5),0,1)),m(ae(1,Fe(0,.045,m(i,-1))),.7)),0,1),s.foam),"foamMask"),rr=P(dt(Ys,Ze(1,1,1),Dt(m(hs,.85))),"waterRgb"),or=so(n,s.edgeSoftness);return sr(Yr(i,d),is(rr,or),_s,"water")}})});var kY=[{waves:[{x:5.1,t:1.3}],weight:.28},{waves:[{x:9.7,t:-1.9},{x:1.7,t:.6}],weight:.24},{waves:[{x:17.3,t:2.7}],weight:.18},{waves:[{x:31.9,t:-3.4},{x:3.3,t:-.9}],weight:.14},{waves:[{x:67.7,t:4.1}],weight:.09},{waves:[{x:131.3,t:-5.3},{x:7.9,t:1.1}],weight:.07}],$Y=.4,CY=4,RY=.45,UY=.6,h0=.002,zE={bars:0,wave:1,line:2,dots:3},GE={mirrored:0,top:1,bottom:2},zY=e=>typeof e=="number"?Object.keys(zE)[e]??"bars":e==="wave"||e==="line"||e==="dots"?e:"bars",GY=e=>typeof e=="number"?Object.keys(GE)[e]??"mirrored":e==="top"||e==="bottom"?e:"mirrored",zu=et({name:"Waveform",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Audio-visualizer waveform \u2014 equalizer bars, a filled wave, an oscilloscope line, or a dot matrix \u2014 driven by a simulated signal whose amplitude you can map to your own audio level",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{style:{default:"bars",transform:e=>zE[e]??0,compileTime:!0,description:"Visualizer style: equalizer bars, a filled wave envelope, an oscilloscope line, or a dot matrix",ui:{type:"select",options:[{label:"Bars",value:"bars"},{label:"Wave",value:"wave"},{label:"Line",value:"line"},{label:"Dots",value:"dots"}],label:"Style",group:"Style"}},colorA:{default:"#3b5bff",transform:ke,description:"Color at the start",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ff3bd4",transform:ke,description:"Color at the end",ui:{type:"color",label:"Color B",group:"Colors"}},stops:Ls(),colorSpace:{default:"oklab",transform:ft,compileTime:!0,description:"Color space for the start\u2192end gradient",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},from:{default:{x:0,y:.5},transform:ct,description:"Where the waveform starts (Color A end)",ui:{type:"position",label:"Start",group:"Position",units:["%","px"]}},to:{default:{x:1,y:.5},transform:ct,description:"Where the waveform ends (Color B end)",ui:{type:"position",label:"End",group:"Position",units:["%","px"]}},amplitude:{default:1,description:"Overall signal level (0 = silence). Map this to your own audio level to make the waveform react to real sound.",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Amplitude",group:"Signal"}},frequency:{default:1,description:"How busy the signal is across the width (higher = more peaks)",ui:{type:["range","map"],min:.2,max:3,step:.01,label:"Frequency",group:"Signal"}},height:{default:.6,description:"Maximum vertical extent of the waveform as a fraction of the canvas height",ui:{type:["range","map"],min:.05,max:1,step:.01,label:"Height",group:"Effect"}},align:{default:"mirrored",transform:e=>GE[e]??0,compileTime:!0,description:"Which side of the start\u2192end baseline the waveform grows on: mirrored around it, above it (top), or below it (bottom)",ui:{type:"select",options:[{label:"Mirrored",value:"mirrored"},{label:"Top",value:"top"},{label:"Bottom",value:"bottom"}],label:"Align",group:"Effect"}},count:{default:32,description:"Number of bars (or dot columns) across the width",ui:{type:["range","map"],min:4,max:128,step:1,label:"Count",group:"Effect",condition:{style:["bars","dots"]}}},barWidth:{default:.6,description:"Bar thickness as a fraction of its column (1 = bars touch)",ui:{type:["range","map"],min:.1,max:1,step:.01,label:"Bar Width",group:"Effect",condition:{style:"bars"}}},rounding:{default:1,description:"Rounds the bar ends (0 = square, 1 = fully rounded caps)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Rounding",group:"Effect",condition:{style:"bars"}}},dotSize:{default:.7,description:"Dot diameter as a fraction of its cell",ui:{type:["range","map"],min:.2,max:1,step:.01,label:"Dot Size",group:"Effect",condition:{style:"dots"}}},lineWidth:{default:.006,description:"Stroke thickness of the line. A value of one (1) matches the canvas height.",ui:{type:["range","map"],min:.001,max:.05,step:.001,label:"Line Width",group:"Effect",dimensional:"canvas-height",condition:{style:"line"}}},softness:{default:0,description:"Feathers the wave's edge into a glow",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect",condition:{style:"wave"}}},speed:{default:1,description:"Animation speed of the simulated signal",ui:{type:"range",min:0,max:3,step:.01,label:"Speed",group:"Animation"}},seed:{default:1,description:"Adjusts the starting state, useful for variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Animation"}}},paint:e=>{let t=zY(e.propValues.style),s=GY(e.propValues.align),{viewport:r}=Ko(e),o=de=>Se(re(de),e),{along:n,across:i,length:d}=Zm({from:re("from"),to:re("to")})(e,Ko(e)),l=P(De(n,d),"wfX"),c=P(De(1,r.member("y")),"wfPx"),_=P(it(e,"seed"),"wfTime"),p=o("amplitude"),f=o("frequency"),h=o("height"),g=de=>ml({x:m(de,f),t:_},kY),x=de=>dt($Y,1,Im(ae(de,.5),CY)),T=de=>Le(m(m(g(de),x(de)),p),-1,1),S=de=>Le(m(m(C(RY,m(g(de),UY)),x(de)),p),0,1),A=s==="mirrored",E=P(s==="top"?mo(i):i,"wfDy"),M=A?Us(E):E,$=de=>m(m(de,h),A?.5:1),L=de=>A?ae(M,de):ht(ae(M,de),mo(M)),B=o("count"),D=P(De(d,B),"wfCell"),G=P(m(l,B),"wfXCells"),I=P(De(C(e0(G),.5),B),"wfColX"),X=P(m(ae(Uo(G),.5),D),"wfColDx"),H;if(t==="bars"){let de=P(m(m(o("barWidth"),D),.5),"wfHalfW"),Ee=P(ht($(S(I)),A?de:m(de,2)),"wfExtent"),he=A?Ee:m(Ee,.5);H=ul({distance:DS(X,A?E:ae(E,he),de,he,m(o("rounding"),de)),footprint:c})}else if(t==="dots"){let de=P(De(M,D),"wfRows"),Ee=P(m(C(e0(de),.5),D),"wfRowY"),he=P($(S(I)),"wfExtent"),Me=m(ae(1,Fe(ae(he,m(D,.5)),C(he,m(D,.5)),Ee)),A?1:ES(0,M)),Te=m(m(o("dotSize"),D),.5);H=m(ul({distance:GS(X,m(ae(Uo(de),.5),D),Te),footprint:c}),Me)}else if(t==="line"){let de=Me=>$(A?T(Me):S(Me)),Ee=P(de(l),"wfCurve"),he=P(De(ae(de(C(l,h0)),de(ae(l,h0))),m(2*h0,d)),"wfSlope");H=RS({distance:De(ae(E,Ee),un(C(1,m(he,he)))),width:o("lineWidth"),footprint:c})}else H=ul({distance:L(P($(S(l)),"wfExtent")),footprint:C(c,m(o("softness"),.2))});let ee=ul({distance:ht(mo(n),ae(n,d)),footprint:c}),Q=P(eo(re("colorSpace"))(l,e),"wfColor");return is(Q.member("rgb"),m(m(Q.member("a"),H),ee))}});var Gu=et({name:"WorleyNoise",role:"generator",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Cellular noise field \u2014 distance-based, with selectable feature combinations and fractal octaves",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#ffffff",transform:ke,description:"Color where the noise field is low (typically near cell centers)",ui:{type:"color",label:"Color A (Low)",group:"Colors"}},colorB:{default:"#000000",transform:ke,description:"Color where the noise field is high (typically near cell boundaries)",ui:{type:"color",label:"Color B (High)",group:"Colors"}},colorSpace:{default:"linear",transform:ft,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:At,label:"Color Space",group:"Colors"}},scale:{default:6,description:"Number of cells across the canvas at the base octave",ui:{type:["range","map"],min:1,max:30,step:.5,label:"Scale",group:"Effect"}},mode:{default:"f1",transform:VA,compileTime:!0,description:"Field type. F1 = distance to nearest point. F2 = distance to second-nearest. F2 \u2212 F1 emphasises cell boundaries.",ui:{type:"select",options:[{label:"F1 (Cells)",value:"f1"},{label:"F2 (Wider Cells)",value:"f2"},{label:"F2 \u2212 F1 (Edges)",value:"f2MinusF1"},{label:"F1 + F2",value:"f1PlusF2"},{label:"F1 \xD7 F2",value:"f1TimesF2"}],label:"Mode",group:"Effect"}},distance:{default:"euclidean",transform:NA,compileTime:!0,description:"Distance metric. Euclidean = round cells. Manhattan = diamond. Chebyshev = square.",ui:{type:"select",options:[{label:"Euclidean",value:"euclidean"},{label:"Manhattan",value:"manhattan"},{label:"Chebyshev",value:"chebyshev"}],label:"Distance",group:"Effect"}},octaves:{default:1,compileTime:!0,description:"Number of fractal layers stacked at progressively finer scales",ui:{type:"range",min:1,max:4,step:1,label:"Octaves",group:"Effect"}},lacunarity:{default:2,description:"Scale multiplier between octaves (only active when Octaves > 1)",ui:{type:["range","map"],min:1.5,max:4,step:.1,label:"Lacunarity",group:"Effect",condition:{octaves:[2,3,4]}}},persistence:{default:.5,description:"Amplitude multiplier between octaves (only active when Octaves > 1)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Persistence",group:"Effect",condition:{octaves:[2,3,4]}}},jitter:{default:1,description:"How much each cell's point drifts inside its cell. 0 = rigid grid (banded look), 1 = fully random.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Jitter",group:"Effect"}},contrast:{default:1,description:"Steepness of the gradient between low and high regions",ui:{type:["range","map"],min:.25,max:4,step:.01,label:"Contrast",group:"Effect"}},balance:{default:0,description:"Shifts the gradient midpoint. Negative pulls the field toward Color A, positive toward Color B.",ui:{type:["range","map"],min:-1,max:1,step:.01,label:"Balance",group:"Effect"}},seed:{default:0,description:"Random seed \u2014 shifts the cell pattern without changing its overall structure",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}},speed:{default:.5,description:"Animation speed \u2014 how fast each cell's point drifts",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}}},paint:GA({scale:re("scale"),jitter:re("jitter"),lacunarity:re("lacunarity"),persistence:re("persistence"),contrast:re("contrast"),balance:re("balance"),seed:re("seed"),mode:re("mode"),distance:re("distance"),octaves:re("octaves"),space:re("colorSpace")})});var DY=[eu,tu,su,ru,ou,nu,au,iu,du,lu,cu,uu,_u,pu,mu,fu,vu,hu,yu,gu,xu,bu,wu,Tu,Su,Au,Eu,Pu,Mu,ku,$u,Cu,Ru,Uu,zu,Gu].map(e=>({definition:e})),LY=e=>DY.find(t=>t.definition.name===e);var FY=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Em({in:{vertexIndex:qr.vertexIndex},out:{pos:qr.position,uv:$t}})`{
|
|
const pos = array<vec2f, 3>(vec2f(-1, -1), vec2f(3, -1), vec2f(-1, 3));
|
|
const uv = array<vec2f, 3>(vec2f(0, 1), vec2f(2, 1), vec2f(0, -1));
|
|
|
|
return Out(vec4f(pos[in.vertexIndex], 0, 1), uv[in.vertexIndex]);
|
|
}`,"fullScreenTriangle");Q5.disable("external-omitted");var BY=["float32-filterable","timestamp-query"],g0=new WeakMap,y0=new WeakMap,x0=new WeakSet,bl=null,IY=new WeakSet;async function YY(e={}){if(e.device&&!x0.has(e.device)){let r=e.device,o=g0.get(r);o||(o=y.initFromDevice({device:r}),g0.set(r,o));let n=DE(o,e.onDeviceLost);return{root:o,device:r,adapter:e.adapter,createdDevice:!1,release:n}}e.device&&vi("[gpu] injected GPU device was lost \u2014 falling back to the shared default device");let t=await WY(),s=DE(t.root,e.onDeviceLost);return{root:t.root,device:t.device,adapter:t.adapter,createdDevice:!1,release:s}}async function WY(){for(;;){let t=bl;if(!t)break;let s=await t.catch(()=>null);if(s&&!IY.has(t)&&!x0.has(s.device))return s;bl===t&&(bl=null)}let e=OY();bl=e;try{return await e}catch(t){throw bl===e&&(bl=null),t}}async function OY(){if(typeof navigator>"u"||!navigator.gpu)throw new od("unsupported","[gpu] WebGPU is not available in this environment (navigator.gpu is undefined).");let e;try{e=await y.init({adapter:{powerPreference:"high-performance"},device:{optionalFeatures:BY}})}catch(t){let s=await Z0();throw new od(s.supported?"no-device":s.reason??"init-failed",void 0,{cause:t})}if(!e.device)throw new od("no-device","[gpu] adapter returned no device.");return g0.set(e.device,e),{root:e,device:e.device,createdDevice:!0}}function VY(e,t,s={}){return e.configureContext({canvas:t,alphaMode:"premultiplied",...s})}function DE(e,t){let s=e.device,r=y0.get(s);if(r||(r=new Set,y0.set(s,r),e.device.lost.then(n=>{if(x0.add(s),n.reason!=="destroyed")for(let i of[...y0.get(s)??[]])i(n)})),!t)return()=>{};let o=r;return o.add(t),()=>o.delete(t)}function NY(){let e={value:0,advance(t,s){e.value+=t*s}};return e}var LE=new WeakMap;function Qi(e){let t=LE.get(e);return t||(t=NY(),LE.set(e,t)),t}var qY=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(Ct({time:a,viewportSize:u,logicalViewportSize:u,aspect:a,pointer:u,pointerActive:a}),"SystemUniforms");y.fn([u,u],u)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return Kr(t,s)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewportSize"}],body:[0,[[10,[6,"std.mul",["uv","viewportSize"]]]]]},externals:{"std.mul":()=>Kr}})&&e.f)({}));y.fn([u],a)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(t.x,t.y)}),{v:2,name:void 0,ast:{params:[{type:"i",name:"viewportSize"}],body:[0,[[10,[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]]]]},externals:{}})&&e.f)({}));function XY(e){let t=2166136261,s=e.join("");for(let r=0;r<s.length;r++)t^=s.charCodeAt(r),t=Math.imul(t,16777619);return`${(t>>>0).toString(16).padStart(8,"0")}:${s.length}`}function HY(e={}){let t=e.maxSize??4,s=e.dispose,r=new Map,o=0,n=null,i=null;function d(c){c.lastUsed=++o}function l(){for(;r.size>t;){let c=null;for(let _ of r.values())_.hash===n||_.hash===i||(!c||_.lastUsed<c.lastUsed)&&(c=_);if(!c)break;r.delete(c.hash),s?.(c.value,c.hash)}}return{getOrBuild(c,_){let p=r.get(c);if(p)return d(p),c===n?i=null:i=c,p.value;let f=_(),h={hash:c,value:f,lastUsed:++o};return r.set(c,h),n===null?(n=c,i=null):i=c,l(),f},markReady(c){if(c!==i)return;let _=r.get(c);_&&(n=c,i=null,d(_),l())},get renderValue(){let c=n??i;return c?r.get(c)?.value??null:null},get activeHash(){return n},get pendingHash(){return i},release(c){let _=r.get(c);_&&(r.delete(c),s?.(_.value,c),n===c&&(n=null),i===c&&(i=null))},has(c){return r.has(c)},get size(){return r.size},clear(){for(let c of r.values())s?.(c.value,c.hash);r.clear(),n=null,i=null}}}var wl="passManager";function jY(e,t){let{textureManager:s,dispatcher:r}=t,o=t.canvasFormat??KY(),n=t.rttFormat??"rgba16float",i=e.device?.limits?.maxSampledTexturesPerShaderStage,d=t.maxSampledTextures??(typeof i=="number"&&i>0?i:16),l=t.fullScreenTriangle??FY,c=new Map,_=new Set,p=null;function f(){let G=s.samplers;try{return e.createBindGroup(by,{linearClamp:G.linearClamp,nearestClamp:G.nearestClamp,linearRepeat:G.linearRepeat,nearestRepeat:G.nearestRepeat})}catch(I){yr(`[${wl}] failed to build sampler bind group:`,I);return}}function h(G,I){let X=new Set;for(let H of G.textures)if(H.kind==="rtt")if(X.add(H.key),c.has(H.key))c.get(H.key).resize(I.width,I.height);else{let ee=s.createRenderTexture({width:I.width,height:I.height,format:n,label:`rtt:${H.key}`});c.set(H.key,ee),_.add(ee)}for(let[H,ee]of[...c])X.has(H)||(ee.destroy(),_.delete(ee),c.delete(H))}function g(G,I){if(!G.textureLayout||G.reads.length===0)return;let X={};for(let H of G.reads){let ee=c.get(H),Q=I?.[H],de=ee??Q;if(!de){yr(`[${wl}] pass "${G.entry}" reads unknown texture "${H}"`);return}X[H]=de.texture}G.reads.length>d&&vi(`[${wl}] pass samples ${G.reads.length} textures (> device limit ~${d}); composition may fail on this device.`);try{return e.createBindGroup(G.textureLayout,X)}catch(H){yr(`[${wl}] failed to build texture bind group:`,H);return}}function x(G,I){return e.createRenderPipeline({vertex:l,fragment:G.entry,targets:{format:I}})}function T(G,I){if(!G.externalLayout||G.externalReads.length===0)return;let X=G.externalReads;if(X.length===1){let ee=I.get(X[0]);if(!ee){yr(`[${wl}] external read "${X[0]}" has no registered source`);return}return s.createExternalTextureBinding({layout:G.externalLayout,entryKey:X[0],getSource:ee})}let H=null;return{update(){let ee={};for(let Q of X){let de=I.get(Q)?.();if(!de)return H=null,null;try{ee[Q]=e.device.importExternalTexture({source:de})}catch{return H=null,null}}return H=e.createBindGroup(G.externalLayout,ee),H},get current(){return H},destroy(){H=null}}}function S(G,I,X,H){let ee=I.kind==="canvas"?o:n,Q=G.reads.filter(Ee=>X?.[Ee]),de=new Map(Q.map(Ee=>[Ee,X[Ee].texture]));return{fragment:G,pipeline:x(G,ee),textureBindGroup:g(G,X),externalBinding:T(G,H),target:I,mediaReads:Q,mediaSnapshot:de}}function A(G,I,X,H){h(G,X);for(let he of G.computeSteps)he.bindInputs?.(Me=>c.get(Me)??H?.[Me]);let ee=f(),Q=new Map;for(let he of G.externalTextures)Q.set(he.key,he.getSource);let de=G.rttPasses.map(he=>S(he.fragment,{kind:"rtt",key:he.textureKey},H,Q)),Ee=S(G.finalPass,{kind:"canvas"},H,Q);p={ir:G,uniformBindGroup:I,samplerBindGroup:ee,computeSteps:G.computeSteps,rttPasses:de,finalPass:Ee,size:X,mediaResources:H}}function E(G,I){let X=G.pipeline;if(p?.uniformBindGroup&&(X=X.with(p.uniformBindGroup)),G.mediaReads&&G.mediaReads.length>0&&p?.mediaResources){let H=!1;for(let ee of G.mediaReads)p.mediaResources[ee].texture!==G.mediaSnapshot.get(ee)&&(H=!0);if(H){G.textureBindGroup=g(G.fragment,p.mediaResources);for(let ee of G.mediaReads)G.mediaSnapshot.set(ee,p.mediaResources[ee].texture)}}if(G.textureBindGroup&&(X=X.with(G.textureBindGroup)),G.fragment.usesSamplers&&p?.samplerBindGroup&&(X=X.with(p.samplerBindGroup)),G.fragment.externalReads.length>0){let H=G.externalBinding?.update()??null;if(!H){G.externalSkipLogged||(vi(`[${wl}] external texture not ready \u2014 skipping pass (${G.fragment.externalReads.join(", ")})`),G.externalSkipLogged=!0);return}X=X.with(H)}X.withColorAttachment({view:I}).draw(3)}function M(G,I,X){if(p){for(let H of p.computeSteps){let ee=H.getComputeNodes(I);ee&&ee.length&&r.dispatch(ee)}X?.(),$(),E(p.finalPass,G)}}function $(){if(p)for(let G of p.rttPasses){let I=c.get(G.target.key);I&&E(G,L(I))}}function L(G){return e.unwrap(G.texture).createView()}function B(G){if(!(!G.fragment.textureLayout||G.fragment.reads.length===0)&&(G.textureBindGroup=g(G.fragment,p?.mediaResources),G.mediaReads&&G.mediaSnapshot&&p?.mediaResources))for(let I of G.mediaReads)G.mediaSnapshot.set(I,p.mediaResources[I].texture)}function D(G,I){let X=!1;for(let H of c.values())H.resize(G,I)&&(X=!0);if(!p)return X;if(p.size={width:G,height:I},!X)return!1;for(let H of p.computeSteps)H.bindInputs?.(ee=>c.get(ee)??p.mediaResources?.[ee]);for(let H of p.rttPasses)B(H);return B(p.finalPass),!0}return{setComposition:A,render:M,repaintRtt:$,resize:D,get textureCount(){return _.size},get passCount(){return p?p.rttPasses.length+1:0},dispose(){for(let G of[..._])G.destroy();_.clear(),c.clear(),p=null}}}function KY(){return typeof navigator<"u"&&navigator.gpu?navigator.gpu.getPreferredCanvasFormat():"bgra8unorm"}function FE(e){return`${e}-srgb`}function ZY(e){let t=new Set;function s(h,...g){return e.createTexture.call(e,h).$usage(...g)}let r,o,n,i,d={get linearClamp(){return r??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get nearestClamp(){return o??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get linearRepeat(){return n??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})},get nearestRepeat(){return i??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"repeat",addressModeV:"repeat"})}};function l(h,g,x,T,S){let A={texture:h,width:g,height:x,format:T,write(E){h.write(E)},unwrap(){return e.unwrap(h)},createSrgbView(){if(S)return e.unwrap(h).createView({format:FE(T)})},generateMipmaps(){h.generateMipmaps?.()},destroy(){t.has(A)&&(h.destroy(),t.delete(A))}};return t.add(A),A}function c(h){let{width:g,height:x,srgb:T=!1,mipLevelCount:S}=h,A=h.format??"rgba8unorm";return l(s({size:[g,x],format:A,...T?{viewFormats:[FE(A)]}:{},...S?{mipLevelCount:S}:{}},"sampled","render"),g,x,A,T)}function _(h){let{width:g,height:x,format:T,data:S}=h,A=l(s({size:[g,x],format:T},"sampled"),g,x,T,!1);return S&&A.write(S),A}function p(h){let g=h.format??"rgba16float",{mipLevelCount:x}=h,T=h.width,S=h.height;function A(M,$){return l(s({size:[M,$],format:g,...x?{mipLevelCount:x}:{}},"sampled","render"),M,$,g,!1)}let E=A(T,S);return{get texture(){return E.texture},get width(){return T},get height(){return S},format:g,write(M){E.write(M)},unwrap(){return E.unwrap()},createSrgbView(){return E.createSrgbView()},generateMipmaps(){E.generateMipmaps()},resize(M,$){return M===T&&$===S?!1:(E.destroy(),T=M,S=$,E=A(M,$),!0)},destroy(){E.destroy()}}}function f(h){let{layout:g,entryKey:x,getSource:T,staticEntries:S={}}=h,A=null;return{update(){let E=T();if(!E)return A=null,null;let M;try{M=e.device.importExternalTexture({source:E})}catch{return A=null,null}return A=e.createBindGroup(g,{...S,[x]:M}),A},get current(){return A},destroy(){A=null}}}return{samplers:d,createMediaTexture:c,createDataTexture:_,createRenderTexture:p,createExternalTextureBinding:f,get textureCount(){return t.size},destroy(){for(let h of[...t])h.destroy();t.clear()}}}function QY(e,t){let s=LY(e)?.definition?.naturalSizeKey;if(!s)return null;if("fixed"in s)return s.fixed||null;let r=t[s.fromProp];return typeof r=="string"&&r?r:null}function JY(e,t,s){if(!e||typeof e!="object")return null;let r=(i,d)=>!i||typeof i!="object"||typeof i.value!="number"?null:i.unit==="px"?i.value:i.value*d,o=r(e.width,t),n=r(e.height,s);return o!=null&&n!=null&&o>0&&n>0?{widthPx:o,heightPx:n}:null}function eW(e,t,s){let{type:r,decl:o,props:n,boundingBox:i}=e;if(!(t>0)||!(s>0)||e.requiresChild)return null;if(o?.computeBounds){let _=o.computeBounds(n,t,s);return _.widthPx>0&&_.heightPx>0?{widthPx:_.widthPx,heightPx:_.heightPx}:null}let d=o?.propBindings;if(d?.width&&d?.height){let _=Mc(d.width,n[d.width.prop],t,s),p=Mc(d.height,n[d.height.prop],t,s);return _>0&&p>0?{widthPx:_,heightPx:p}:null}let l=JY(i,t,s);if(l)return l;let c=QY(r,n);if(c){let _=TT(c);if(_)return{widthPx:_.width,heightPx:_.height}}return null}function tW(e,t){return e==null?0:typeof e=="number"?e:e.unit==="px"?e.value:e.value*t}function b0(e,t,s){return!e||e.mode!=="column"&&e.mode!=="row"?null:{mode:e.mode,gapPx:Math.max(0,tW(e.gap,e.mode==="column"?s:t)),align:e.align??"center",anchor:e.anchor??"center",anchorOffsetX:e.anchorOffset?.x??0,anchorOffsetY:e.anchorOffset?.y??0}}var BE=e=>({ox:e.includes("left")?"start":e.includes("right")?"end":"center",oy:e.includes("top")?"start":e.includes("bottom")?"end":"center"}),s1=(e,t,s,r)=>e==="start"?r:e==="end"?s-t-r:(s-t)/2+r;function r1(e,t){let s=0,r=0;for(let o of t){let n=e.mode==="column"?o.size.heightPx:o.size.widthPx,i=e.mode==="column"?o.size.widthPx:o.size.heightPx;s+=n,r=Math.max(r,i)}return t.length>1&&(s+=e.gapPx*(t.length-1)),e.mode==="column"?{widthPx:r,heightPx:s}:{widthPx:s,heightPx:r}}function sW(e,t,s,r){let o=new Map;if(t.length===0)return o;let n=r1(e,t),{ox:i,oy:d}=BE(e.anchor),l=s1(i,n.widthPx,s,e.anchorOffsetX),c=s1(d,n.heightPx,r,e.anchorOffsetY),_=(f,h)=>e.align==="start"?0:e.align==="end"?h-f:(h-f)/2,p=0;for(let f of t)if(e.mode==="column"){let h=l+_(f.size.widthPx,n.widthPx)+f.size.widthPx/2,g=c+p+f.size.heightPx/2;o.set(f.id,{centerXPx:h,centerYPx:g}),p+=f.size.heightPx+e.gapPx}else{let h=l+p+f.size.widthPx/2,g=c+_(f.size.heightPx,n.heightPx)+f.size.heightPx/2;o.set(f.id,{centerXPx:h,centerYPx:g}),p+=f.size.widthPx+e.gapPx}return o}function rW(e,t,s){let r=b0(e.layout,t,s);if(r){let o=w0(e,t,s);return o.length===0?null:r1(r,o)}return eW({type:e.componentName,decl:e.decl,props:e.props,boundingBox:e.boundingBox,requiresChild:e.requiresChild,availableWidthPx:t},t,s)}function w0(e,t,s){let r=[];for(let o of e.children){if(o.visible===!1||o.absolute)continue;let n=rW(o,t,s);n&&r.push({id:o.id,size:n,view:o})}return r}function oW(e,t,s){if(!e.decl?.computeBounds)return{x:0,y:0};let r=e.decl.computeBounds(e.props,t,s),o=typeof e.props.center?.x=="number"?e.props.center.x:.5,n=typeof e.props.center?.y=="number"?e.props.center.y:.5;return{x:r.centerXPx-o*t,y:r.centerYPx-n*s}}function nW(e,t,s,r,o,n,i,d){let l=b0(e.layout,o,n);if(l){IE(e,l,o,n,i,{centerXPx:s,centerYPx:r},d);return}let c=e.decl?.propBindings?.x?.prop??e.decl?.propBindings?.y?.prop;if(c){if(!e.positionDriven){let _=oW(e,o,n);i.push({kind:"position",id:e.id,prop:c,value:{x:(s-_.x)/o,y:(r-_.y)/n}})}return}i.push({kind:"box",id:e.id,xPx:s-t.widthPx/2,yPx:r-t.heightPx/2,widthPx:t.widthPx,heightPx:t.heightPx})}function IE(e,t,s,r,o,n,i,d){let l=d??w0(e,s,r);if(l.length===0)return;let c=t;if(n){let p=r1(t,l);c={...t,anchor:"top-left",anchorOffsetX:n.centerXPx-p.widthPx/2,anchorOffsetY:n.centerYPx-p.heightPx/2}}if(i){let p=r1(c,l),{ox:f,oy:h}=BE(c.anchor);i.set(e.id,{leftPx:s1(f,p.widthPx,s,c.anchorOffsetX),topPx:s1(h,p.heightPx,r,c.anchorOffsetY),widthPx:p.widthPx,heightPx:p.heightPx})}let _=sW(c,l,s,r);for(let p of l){let f=_.get(p.id);f&&nW(p.view,p.size,f.centerXPx,f.centerYPx,s,r,o,i)}}function aW(e,t,s,r){let o=[],n=i=>{let d=b0(i.layout,t,s);if(d){let l=w0(i,t,s);IE(i,d,t,s,o,void 0,r,l);let c=new Set(l.map(_=>_.id));for(let _ of i.children)_.visible!==!1&&(c.has(_.id)||n(_));return}for(let l of i.children)l.visible!==!1&&n(l)};for(let i of e)i.visible!==!1&&n(i);return o}var iW=class{frameTimesMs=[];frameTimesIndex=0;frameTimesCount=0;maxSamples=60;targetFrameTime=16.67;jankFrameCount=0;totalFrameCount=0;memorySnapshots=[];memorySnapshotIndex=0;maxMemorySnapshots=300;nodeCount=0;rttNodeCount=0;lastCpuTime=null;lastGpuTime=null;isRendering=!1;lastFrameTimestamp=0;frameIntervals=[];frameIntervalsIndex=0;frameIntervalsCount=0;pushToCircularBuffer(e,t,s,r,o){return e.length<o?(e.push(t),{index:e.length,count:e.length}):(e[s%o]=t,{index:s+1,count:o})}getBufferValues(e,t){return t<=e.length?e.slice(0,t):e}recordFrame(e){let t=this.pushToCircularBuffer(this.frameTimesMs,e,this.frameTimesIndex,this.frameTimesCount,this.maxSamples);this.frameTimesIndex=t.index,this.frameTimesCount=t.count,this.totalFrameCount++,e>this.targetFrameTime&&this.jankFrameCount++;let s=performance.now();if(this.lastFrameTimestamp>0){let r=s-this.lastFrameTimestamp,o=this.pushToCircularBuffer(this.frameIntervals,r,this.frameIntervalsIndex,this.frameIntervalsCount,this.maxSamples);this.frameIntervalsIndex=o.index,this.frameIntervalsCount=o.count}this.lastFrameTimestamp=s,this.recordMemorySnapshot()}recordCpuTime(e){this.lastCpuTime=e}recordGpuTime(e){this.lastGpuTime=e}updateNodeCounts(e,t){this.nodeCount=e,this.rttNodeCount=t}setRendering(e){this.isRendering=e}recordMemorySnapshot(){if(!performance.memory)return;let e=performance.now(),t=performance.memory.usedJSHeapSize;if(this.memorySnapshots.length<this.maxMemorySnapshots)this.memorySnapshots.push({time:e,bytes:t});else{let s=this.memorySnapshots[this.memorySnapshotIndex];s.time=e,s.bytes=t,this.memorySnapshotIndex=(this.memorySnapshotIndex+1)%this.maxMemorySnapshots}}calculateMemoryGrowthRate(){if(this.memorySnapshots.length<2)return null;let e=this.memorySnapshots.length,t=e<this.maxMemorySnapshots?0:this.memorySnapshotIndex,s=e<this.maxMemorySnapshots?e-1:(this.memorySnapshotIndex-1+e)%e,r=this.memorySnapshots[t],o=this.memorySnapshots[s],n=(o.time-r.time)/1e3;return n<=0?null:(o.bytes-r.bytes)/(1024*1024)/n}calculateStdDev(e){if(e.length===0)return 0;let t=e.reduce((r,o)=>r+o,0)/e.length,s=0;for(let r=0;r<e.length;r++){let o=e[r]-t;s+=o*o}return Math.sqrt(s/e.length)}sortBuffer=[];calculateP99(e){let t=e.length;if(t===0)return 0;for(;this.sortBuffer.length<t;)this.sortBuffer.push(0);for(let r=0;r<t;r++)this.sortBuffer[r]=e[r];for(let r=1;r<t;r++){let o=this.sortBuffer[r],n=r-1;for(;n>=0&&this.sortBuffer[n]>o;)this.sortBuffer[n+1]=this.sortBuffer[n],n--;this.sortBuffer[n+1]=o}let s=Math.floor(t*.99);return this.sortBuffer[Math.min(s,t-1)]}calculateComplexityScore(){return this.nodeCount+this.rttNodeCount*10}calculateIntensityScore(){let e=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),t=e.length;if(t===0)return{score:0,label:"N/A"};let s=e.reduce((_,p)=>_+p,0)/t,r=Math.min(s/16.67*100,100),o=this.calculateComplexityScore(),n=Math.min(o/100*100,100),i=0;this.lastGpuTime!==null&&(i=Math.min(this.lastGpuTime/16.67*100,100));let d=this.lastGpuTime!==null?{frame:.4,gpu:.4,complexity:.2}:{frame:.7,gpu:0,complexity:.3},l=Math.round(r*d.frame+i*d.gpu+n*d.complexity),c;return l<=20?c="Very Light":l<=40?c="Light":l<=60?c="Medium":l<=80?c="Heavy":c="Very Heavy",{score:Math.min(l,100),label:c}}getStats(e){let t=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),s=this.getBufferValues(this.frameIntervals,this.frameIntervalsCount),r=t.length,o=s.length>0?1e3/(s.reduce((E,M)=>E+M,0)/s.length):0,n=r>0?t.reduce((E,M)=>E+M,0)/r:0,i=r>0?Math.min(...t):0,d=r>0?Math.max(...t):0,l=this.calculateP99(t),c=this.calculateStdDev(t),_=this.totalFrameCount>0?this.jankFrameCount/this.totalFrameCount*100:0,p=performance.memory,f=p?p.usedJSHeapSize/(1024*1024):null,h=this.calculateMemoryGrowthRate(),g=n>0?n/this.targetFrameTime*100:0,x=e?.render?.calls??null,T=e?.programs?.length??null,S=e?.memory?.textures??null,A=this.calculateIntensityScore();return{fps:Math.round(o),avgFrameTime:Math.round(n*100)/100,minFrameTime:Math.round(i*100)/100,maxFrameTime:Math.round(d*100)/100,p99FrameTime:Math.round(l*100)/100,stdDevFrameTime:Math.round(c*100)/100,jankCount:this.jankFrameCount,jankPercent:Math.round(_*10)/10,nodeCount:this.nodeCount,rttNodeCount:this.rttNodeCount,complexityScore:this.calculateComplexityScore(),memoryUsedMB:f!==null?Math.round(f*100)/100:null,memoryGrowthRate:h!==null?Math.round(h*1e3)/1e3:null,cpuTime:this.lastCpuTime!==null?Math.round(this.lastCpuTime*100)/100:null,gpuTime:this.lastGpuTime!==null?Math.round(this.lastGpuTime*100)/100:null,budgetUsed:Math.round(g*10)/10,drawCalls:x,shaderPrograms:T,textureCount:S,intensityScore:A.score,intensityLabel:A.label,isRendering:this.isRendering}}reset(){this.frameTimesMs.length=0,this.frameTimesIndex=0,this.frameTimesCount=0,this.frameIntervals.length=0,this.frameIntervalsIndex=0,this.frameIntervalsCount=0,this.lastFrameTimestamp=0,this.jankFrameCount=0,this.totalFrameCount=0,this.memorySnapshots.length=0,this.memorySnapshotIndex=0,this.sortBuffer.length=0,this.lastCpuTime=null,this.lastGpuTime=null}},dW=32,lW=5,cW=(()=>{let e=0,t=new Set,s=(c,_)=>{t.forEach(p=>{try{p[c](_)}catch(f){yr("[Shaders] Error in pointer handler:",f)}})},r=c=>s("onMouseMove",c),o=c=>s("onTouchMove",c),n=c=>s("onMouseDown",c),i=c=>s("onTouchStart",c),d=()=>s("onMouseUp"),l=()=>s("onTouchEnd");return{register(c){return t.add(c),e++,e===1&&typeof window<"u"&&(window.addEventListener("mousemove",r),window.addEventListener("touchmove",o),window.addEventListener("mousedown",n,!0),window.addEventListener("touchstart",i,!0),window.addEventListener("mouseup",d,!0),window.addEventListener("touchend",l,!0)),()=>{t.delete(c),e--,e===0&&typeof window<"u"&&(window.removeEventListener("mousemove",r),window.removeEventListener("touchmove",o),window.removeEventListener("mousedown",n,!0),window.removeEventListener("touchstart",i,!0),window.removeEventListener("mouseup",d,!0),window.removeEventListener("touchend",l,!0))}}}})();function uW(e){if(!e)return!1;let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return!1}if(!t||typeof t!="object")return!1;for(let s in t){let r=t[s];if(r&&typeof r=="object"&&r.type==="mouse")return!0}return!1}function YE(){let e=null,t=null,s=null,r=null,o=null,n=null,i=!1,d=!1,l=!1,c=null,_=new Map,p=null,f=new Map,h=[],g=[],x=HY({maxSize:4,dispose:k=>R0(k)}),T=new Set,S=null,A=null,E=!0,M=0,$=0,L=0,B=0,D=1,G=8192,I=0,X=0,H=!1,ee=()=>L||M||1,Q=()=>B||$||1,de=!0,Ee=!1,he=!1,Me=0,Te=0,Pe=0,Ce=null,ie=null,Ne=-10,ye=-10,Ve=!1,qe=!1,st=null,We=!1,Be=null,rt=null,tt=null,Ke=null,Oe=null,gt=null,pt=!1,Ut="p3-linear",Lt="linear",Wt=!1,vs=null,jt=null,Qt=!1,$s=!1,Is=null,Ys=!1,hs=null,rr=null,or=!1,Cr=null,Zr=null,Rr=0,ur=0,Qr=new iW,nr={deltaTime:0,pointer:{x:-10,y:-10,seen:!1},pointerActive:!1,dimensions:{width:0,height:0}},ho=WT(()=>Tl()),Cn=k=>k.replace(/[^a-zA-Z0-9_]/g,"_"),Go=k=>{let R=f.get(k);if(!R)return[];let U=[];for(let j of R){let V=_.get(j);V&&U.push(V)}return U},ed=k=>{let R=Cn(k);for(let[U,j]of _)if(j.metadata.id===R)return U;return null},ui=(k,R)=>{if(R==="center")return;let U=k.boundingBoxDeclaration;if(!U)return;let j={};for(let[V,ne]of Object.entries(k.uniforms))j[V]=ne._rawDimensional!==void 0?ne._rawDimensional:ne.value;return sd(k,j.shapeSdfUrl),Hy(U,j,ee(),Q())},td=new WeakMap,sd=(k,R)=>{if(typeof R!="string"||!R||LT(R))return;let U=td.get(k)??new Set;td.set(k,U),!U.has(R)&&(U.add(R),Rm(R,()=>{U.delete(R),_.get(k.id)===k&&(N(k),ds()&&us(),Qo())}))},N=k=>{let R=k.boundingBoxDeclaration,U=k.extraDimProps,j=ll(R,U);if(!j)return;let V=k.uniforms.origin?.value??"center",ne=ui(k,V),ge=[...j.positionProps,...j.sizeProps.keys()];for(let ze of ge){let Ie=k.uniforms[ze];if(!Ie||Ie._rawDimensional===void 0)continue;let ut=Kc(R,ze,Ie._rawDimensional,V,ee(),Q(),U,ne);Ie.value=ut,pi(k,ze,ut)}},xe=(k,R,U)=>{if(typeof U=="number")return U;let j=k.uniforms.origin?.value??"center",V=Kc(k.boundingBoxDeclaration,R,U,j,ee(),Q(),k.extraDimProps);return typeof V=="number"?V:U?.value??0},pe=()=>{let{width:k,height:R}=mi();return k/Math.max(1,R)},_e=k=>{let R=k.metadata.transform;return{offsetX:R?.offsetX??0,offsetY:R?.offsetY??0,rotation:R?.rotation??0,scale:R?.scale??1,anchorX:R?.anchorX??.5,anchorY:R?.anchorY??.5,aspectRatio:pe()}},me=k=>{let R=k.metadata.boundingBox;if(!R)return null;let U=gy(R,ee(),Q());return{centerX:U.centerX,centerY:U.centerY,halfWidth:U.halfWidthUV,halfHeight:U.halfHeightUV,cornerRadius:U.cornerRadiusUV,rotation:U.rotation,aspectRatio:pe()}},Ue=k=>!!k.metadata.boundingBox&&!!k.boundingBoxDeclaration&&!km(k.metadata.boundingBox),je=k=>{let R=k.boundingBoxDeclaration;if(!R||!k.uniforms||!R.computeBounds&&!R.propBindings)return null;let U={};for(let[Ie,ut]of Object.entries(k.uniforms))U[Ie]=ut._rawDimensional!==void 0?ut._rawDimensional:ut.value;let j=Hy(R,U,ee(),Q());if(j.hwx<=0&&j.hhy<=0)return null;let V=.5,ne=.5,ge=R.propBindings?.x?.prop??R.propBindings?.y?.prop,ze=ge?k.uniforms[ge]?.value:void 0;if(ze&&typeof ze.x=="number"&&typeof ze.y=="number"&&(V=ze.x,ne=ze.y),ge){let Ie=k.metadata.maps?.[ge];if(Ie?.type==="mouse-position"){let ut=k.mouseDriverState[ge];ut&&(V=ut.liveX??(typeof Ie.x=="number"?Ie.x:ut.currentX),ne=ut.liveY??(typeof Ie.y=="number"?Ie.y:ut.currentY))}}return{centerX:V,centerY:ne,halfWidth:j.hwx,halfHeight:j.hhy}},yt=k=>{if(!k.definition.wantsBoundsParams)return null;let R=Go(k.id).sort((U,j)=>U.metadata.renderOrder-j.metadata.renderOrder);for(let U of R){if(U.metadata.visible===!1)continue;if(Ue(U))return null;let j=je(U);if(j)return j}return null},wt=()=>{for(let k of _.values()){if(!k.definition.wantsBoundsParams)continue;let R=yt(k);R&&(Ps(k,"_childBounds_centerX",R.centerX),Ps(k,"_childBounds_centerY",R.centerY),Ps(k,"_childBounds_halfWidth",R.halfWidth),Ps(k,"_childBounds_halfHeight",R.halfHeight))}},mt=!1,us=()=>{mt=!0,Qo()},ds=()=>{for(let k of _.values()){let R=k.metadata.flow?.mode;if(R==="column"||R==="row")return!0}return!1},hr=k=>{let R={};for(let[ne,ge]of Object.entries(k.uniforms))R[ne]=ge._rawDimensional!==void 0?ge._rawDimensional:ge.value;let U=k.boundingBoxDeclaration?.propBindings?.x?.prop??k.boundingBoxDeclaration?.propBindings?.y?.prop,j=U?k.uniforms[U]?.value:void 0,V=!!(U&&(j?.type==="mouse-position"||k.metadata.maps?.[U]));return{id:k.id,componentName:k.componentName,visible:k.metadata.visible!==!1,absolute:k.metadata.absolute===!0,requiresChild:k.requiresChild,layout:k.metadata.flow,decl:k.boundingBoxDeclaration,props:R,boundingBox:k.metadata.boundingBox,positionDriven:V,children:Go(k.id).sort((ne,ge)=>ne.metadata.renderOrder-ge.metadata.renderOrder).map(hr)}},Zo=()=>{if(!ds()){mt=!1;return}let k=ee(),R=Q();if(k<=1||R<=1)return;mt=!1;let U=[];for(let V of _.values())V.parentId===null&&U.push(hr(V));let j=aW(U,k,R);for(let V of j){let ne=_.get(V.id);if(ne)if(V.kind==="position"){let ge=ne.uniforms[V.prop];if(!ge)continue;let ze=ge.value,Ie=ze&&typeof ze=="object"?{...ze,x:V.value.x,y:V.value.y}:V.value;ge.value=Ie,pi(ne,V.prop,Ie)}else{let ge=Ue(ne);if(ne.metadata.boundingBox={x:{value:V.xPx,unit:"px"},y:{value:V.yPx,unit:"px"},width:{value:V.widthPx,unit:"px"},height:{value:V.heightPx,unit:"px"},origin:"top-left",rotation:ne.metadata.boundingBox?.rotation??0,...ne.metadata.boundingBox?.cornerRadius?{cornerRadius:ne.metadata.boundingBox.cornerRadius}:{},...ne.metadata.boundingBox?.lockAspect!==void 0?{lockAspect:ne.metadata.boundingBox.lockAspect}:{}},!ge&&Ue(ne))Aa();else{let ze=me(ne);if(ze)for(let[Ie,ut]of Object.entries(ze))Ps(ne,`_bbox_${Ie}`,ut)}}}},oo=()=>{mt&&Zo()},ys=null,Rn=()=>{ds()&&us()},yo=()=>{ys||(ys=ST(()=>{ds()&&us()})),typeof document<"u"&&document.fonts?.addEventListener&&document.fonts.addEventListener("loadingdone",Rn)};yo();let mn=k=>da(k.metadata.transform),_i=(k,R,U)=>{let j=k.mapValues[R]??{inputMin:0,inputMax:1,outputMin:0,outputMax:1,curve:0};if(U.type==="map"){let V=U;j.inputMin=V.inputMin,j.inputMax=V.inputMax,j.outputMin=xe(k,R,V.outputMin),j.outputMax=xe(k,R,V.outputMax),j.curve=V.curve??0}else if(U.type==="mouse"){let V=U;j.outputMin=xe(k,R,V.outputMin),j.outputMax=xe(k,R,V.outputMax),j.curve=V.curve??0}else if(U.type==="auto-animate"){let V=U;j.outputMin=xe(k,R,V.outputMin),j.outputMax=xe(k,R,V.outputMax)}return k.mapValues[R]=j,j},n1=(k,R,U)=>{let j=k.mouseDriverState[R];if(j)return j;if(U.type==="mouse-position"){let V=U.x===void 0||U.x==="mouse",ne=U.y===void 0||U.y==="mouse";j={currentX:V?Ne:U.x,currentY:ne?ye:U.y,velocityX:0,velocityY:0,pointerSnapped:qe}}else j={currentX:Math.max(.001,U.axis==="x"?Ne:ye),currentY:0,velocityX:0,velocityY:0,pointerSnapped:qe};return k.mouseDriverState[R]=j,j},a1=k=>{let R=k.metadata.maps;if(R)for(let[U,j]of Object.entries(R))U in k.uniforms&&(j.type==="map"?_i(k,U,j):j.type==="mouse-position"?n1(k,U,j):j.type==="mouse"?(n1(k,U,j),_i(k,U,j)):j.type==="auto-animate"&&(k.autoAnimateState[U]||(k.autoAnimateState[U]={}),_i(k,U,j)))},Lu=k=>{let R=k.definition.animatedTime;return(R?k.uniforms[R.speed]:void 0)??k},i1=(k,R)=>k.uniforms[R]??k,A0=k=>{let R=[];for(let[V,ne]of Object.entries(k.uniforms))R.push({name:V,initial:ne.value,transform:ne.transform,cpu:ne.cpu,schema:ne.schema});if(R.push({name:"_opacity",schema:a,initial:k.metadata.opacity??1}),k.definition.animatedTime&&R.push({name:"_animTime",schema:a,initial:Qi(Lu(k)).value}),k.definition.extraAnimatedTimes)for(let[V,ne]of Object.entries(k.definition.extraAnimatedTimes))R.push({name:`_animTime_${V}`,schema:a,initial:Qi(i1(k,ne)).value});let U=k.definition.extraFields;if(U)for(let[V,ne]of Object.entries(U))R.push({name:V,schema:ne.schema,initial:ne.initial});if(mn(k)){let V=_e(k);for(let[ne,ge]of Object.entries(V))R.push({name:`_xform_${ne}`,schema:a,initial:ge})}if(Ue(k)){let V=me(k);if(V)for(let[ne,ge]of Object.entries(V))R.push({name:`_bbox_${ne}`,schema:a,initial:ge})}if(k.definition.wantsBoundsParams){let V=yt(k)??{centerX:.5,centerY:.5,halfWidth:.5,halfHeight:.5};for(let[ne,ge]of Object.entries(V))R.push({name:`_childBounds_${ne}`,schema:a,initial:ge})}let j=k.metadata.maps;if(j){a1(k);for(let[V,ne]of Object.entries(j))if(V in k.uniforms){if(ne.type==="map"){let ge=k.mapValues[V];R.push({name:`_map_${V}_inputMin`,schema:a,initial:ge.inputMin}),R.push({name:`_map_${V}_inputMax`,schema:a,initial:ge.inputMax}),R.push({name:`_map_${V}_outputMin`,schema:a,initial:ge.outputMin}),R.push({name:`_map_${V}_outputMax`,schema:a,initial:ge.outputMax}),R.push({name:`_map_${V}_curve`,schema:a,initial:ge.curve})}else if(ne.type==="mouse-position"){let ge=k.mouseDriverState[V];R.push({name:`_smoothed_${V}`,schema:u,initial:[ge.currentX,1-ge.currentY]})}else if(ne.type==="mouse"){let ge=k.mapValues[V];R.push({name:`_smoothed_${V}`,schema:a,initial:ge.outputMin})}else if(ne.type==="auto-animate"){let ge=k.mapValues[V];R.push({name:`_smoothed_${V}`,schema:a,initial:ge.outputMin})}}}return R},pi=(k,R,U)=>{let j=k._liveHandles?.[R];j&&(vs?.(Ut),H7(j,U))},Ps=(k,R,U)=>{let j=k._liveHandles?.[R];j instanceof An&&(j.value=U)},E0=(k,R,U)=>{let j=k._liveHandles?.[R];j instanceof An?j.value=U:j instanceof bc&&Array.isArray(U)&&(j.array=U)},VE=k=>{for(let R of Object.values(k.uniforms))if(R.transform===ft){let U=R.value;if(typeof U=="string")return ft(U);if(typeof U=="number")return U}return 0},NE=k=>{if(!k.uniforms.convertedColorsArray)return;let R=null;for(let ne of Object.values(k.uniforms))if(ne.transform===ha){R=ne.value??null;break}let U=Ay(R,Hc),j=Ey(U.colors,U.stopCount,VE(k)),V=(ne,ge)=>{let ze=k.uniforms[ne];ze&&(ze.value=ge),pi(k,ne,ge)};V("colorsArray",U.colors),V("positionsArray",U.positions),V("convertedColorsArray",j),V("stopCount",U.stopCount)},P0=(k,R)=>{let U=k.uniforms[R],j=U?._listSpec;if(!U||!j)return;let V=U._rawList,ne=new Set,ge=Oy(V,j,{color:Hc,drivenPosition:(ut,ls,Cs)=>{let bs=fS(R,ut,ls);ne.add(bs);let St=n1(k,bs,Cs);return St.liveX!==void 0&&St.liveY!==void 0?{x:St.liveX,y:1-St.liveY}:void 0}});for(let ut of Object.keys(k.mouseDriverState)){let ls=Wy(ut);ls&&ls.prop===R&&!ne.has(ut)&&delete k.mouseDriverState[ut]}U.value=ge,pi(k,R,ge);let ze=Vy(ge,j),Ie=(ut,ls)=>{let Cs=k.uniforms[ut];Cs&&(Cs.value=ls),pi(k,ut,ls)};for(let[ut,ls]of Object.entries(ze.fields))Ie(Iy(R,ut),ls);Ie(Yy(R),ze.count)},qE=(k,R)=>{let U=k.metadata.maps?.[R];if(U)return U;let j=Wy(R);if(!j)return;let V=k.uniforms[j.prop]?._rawList,ne=(Array.isArray(V)?V[j.index]:void 0)?.[j.field];return Lm(ne)?ne:void 0},XE=k=>Object.values(k.uniforms).some(R=>R._listSpec&&Ny(R._rawList,R._listSpec)),HE=k=>{if(Ps(k,"_opacity",k.metadata.opacity??1),k.definition.animatedTime&&Ps(k,"_animTime",Qi(Lu(k)).value),k.definition.extraAnimatedTimes)for(let[U,j]of Object.entries(k.definition.extraAnimatedTimes))Ps(k,`_animTime_${U}`,Qi(i1(k,j)).value);if(mn(k))for(let[U,j]of Object.entries(_e(k)))Ps(k,`_xform_${U}`,j);if(Ue(k)){let U=me(k);if(U)for(let[j,V]of Object.entries(U))Ps(k,`_bbox_${j}`,V)}let R=k.metadata.maps;if(R){for(let[U,j]of Object.entries(R))if(j.type==="map"&&k.mapValues[U]){let V=k.mapValues[U];Ps(k,`_map_${U}_inputMin`,V.inputMin),Ps(k,`_map_${U}_inputMax`,V.inputMax),Ps(k,`_map_${U}_outputMin`,V.outputMin),Ps(k,`_map_${U}_outputMax`,V.outputMax),Ps(k,`_map_${U}_curve`,V.curve)}}},jE=(k,R)=>{let U={};for(let j of Object.keys(k.uniforms)){let V=R[j];V&&(U[j]=V)}return U},KE=k=>{let R={};for(let[U,j]of Object.entries(k.uniforms))R[U]={accessorPath:"",cpu:!!j.cpu,value:j.value};return R},ZE=(k,R)=>({id:k.id,customId:k.metadata.id,componentName:k.componentName,parentId:k.parentId,definition:k.definition,metadata:k.metadata,handles:R,domCanvas:k.domCanvas}),M0=(k,R)=>{let U=new Map,j=ne=>ZE(ne,k&&R?jE(ne,R.get(ne.id)??{}):KE(ne)),V=ne=>{let ge=U.get(ne);if(ge)return ge;let ze=_.get(ne);if(!ze)return;let Ie=j(ze);return U.set(ne,Ie),Ie};return{rootId:p,getNode:V,getChildren:ne=>Go(ne).map(ge=>V(ge.id)),resolveCustomId:ne=>ed(ne),store:{gpuAccessor:(ne,ge)=>k?k.gpuAccessor(ne,ge):"",layout:k?.layout}}},k0=()=>({toneMapping:Lt,flipY:!1,premultiplyAlpha:!0,canvas:n??void 0,dimensions:mi(),gpu:t?{device:t.device,root:t}:void 0,writeExtraField:(k,R,U)=>{let j=_.get(k);j&&E0(j,R,U)},createMediaTexture:k=>{if(!r)throw new Error("[gpu] createMediaTexture before init");return r.createMediaTexture(k)},createDataTexture:k=>{if(!r)throw new Error("[gpu] createDataTexture before init");return r.createDataTexture(k)},resolveMapWindow:(k,R)=>{let U=_.get(k),j=U?.metadata.maps?.[R];if(!U||!j||j.type!=="map")return;let V=_i(U,R,j);return{inputMin:V.inputMin,inputMax:V.inputMax,outputMin:V.outputMin,outputMax:V.outputMax,curve:V.curve}},resolveDriverCpuValue:(k,R)=>{let U=_.get(k);if(!U)return;if(R==="_animTime"||R.startsWith("_animTime_")){let V=U._liveHandles?.[R];return V instanceof An?V.value:void 0}let j=U.metadata.maps?.[R];if(j){if(j.type==="mouse-position"){let V=U.mouseDriverState[R];return!V||V.liveX===void 0||V.liveY===void 0?void 0:{x:V.liveX,y:1-V.liveY}}if(j.type==="mouse"||j.type==="auto-animate"){let V=U._liveHandles?.[`_smoothed_${R}`];return V instanceof An?V.value:void 0}}}}),QE=()=>{let k=[];for(let[R,U]of _){let j=U.metadata;k.push(`aopac:${R}:${(j.opacity??1)<1}`);let V=U.uniforms.stopCount?.value;typeof V=="number"&&k.push(`stops:${R}:${V>1?V:0}`);for(let[ne,ge]of Object.entries(U.uniforms)){if(!ge.compileTimeWhen)continue;let ze=ge._lastCompiledValue;typeof ze!="number"&&typeof ze!="boolean"||k.push(`ctw:${R}:${ne}:${String(ze)}`)}if(j.maps){let ne=Object.entries(j.maps).sort(([ge],[ze])=>ge<ze?-1:ge>ze?1:0).map(([ge,ze])=>{let Ie=ze;return`${ge}=${Ie.type}:${Ie.source??""}:${Ie.channel??""}:${Ie.axis??""}`}).join(",");k.push(`mapfp:${R}:${ne}`)}}return k},$0=()=>p?XY([...aT(M0(null,null),k0()),...QE()]):null,mi=()=>({width:Math.max(1,Math.round(M*D)),height:Math.max(1,Math.round($*D))}),JE=k=>{let R={};for(let U of k.textures)U.kind!=="rtt"&&U.resource&&(R[U.key]=U.resource);return R},eP=k=>{if(!t||!r||!o)throw new Error("[gpu] buildComposition before init");let R=X7(t,{systemSchema:qY}),U=new Map;for(let[ze,Ie]of _)U.set(ze,R.defineNode(ze,A0(Ie)));R.defineSystem(),R.finalize();let j=nT(M0(R,U),k0()),V=jY(t,{textureManager:r,dispatcher:o}),ne={hash:k,store:R,ir:j,passManager:V,handlesById:U,fresh:!0,validationFrames:3},ge=j.usesCustomWgsl?t.device:void 0;ge&&ge.pushErrorScope("validation");try{V.setComposition(j,R.bindGroup,mi(),JE(j))}finally{ge&&ge.popErrorScope().then(ze=>{ze&&!ne.broken&&C0(ne,ze.message)}).catch(()=>{})}return T.add(ne),ne},C0=(k,R)=>{k.broken=R,Vu("[gpu] a shader in this composition failed GPU validation \u2014 it will not draw until it changes. If you are writing a wgsl`\u2026` body, the message below points at the line:\n"+R)},R0=k=>{try{for(let R of k.ir.onCleanup)R()}catch(R){yr("[gpu] composition onCleanup error:",R)}try{k.passManager.dispose()}catch(R){yr("[gpu] passManager dispose error:",R)}try{k.store.destroy()}catch(R){yr("[gpu] store destroy error:",R)}T.delete(k),S===k&&(S=null)},tP=k=>{let R=!1;for(let[U,j]of k.handlesById){let V=_.get(U);V&&V._liveHandles!==j&&(V._liveHandles=j,R=!0)}if(!(k===S&&!R)){if(!k.fresh){for(let U of _.values()){for(let[j,V]of Object.entries(U.uniforms))pi(U,j,V.value);a1(U),HE(U)}k.store.writeAll()}k.fresh=!1,S=k,!Qt&&k.ir.composedNodeIds.size>0&&($s=!0)}},Aa=()=>{E=!0,ds()&&(mt=!0),Qo()},Qo=()=>{hs||ho.running||ie===null&&typeof requestAnimationFrame=="function"&&(ie=requestAnimationFrame(()=>{ie=null,Tl()}))},U0=(k,R,U,j,V={},ne,ge)=>{if(hs)return;if(R===null){let St=h.findIndex(Ur=>Ur.id===k);if(St!==-1){h.splice(St,1),g=g.filter(Ur=>Ur.id!==k);return}d1(k);return}if(!ne){console.error(`[gpu] registerNode("${k}") requires a componentDefinition`);return}if(!l){let St=h.findIndex(fn=>fn.id===k),Ur={id:k,definition:ne,parentId:U,metadata:j,uniforms:V,domCanvas:ge};St!==-1?(h[St]=Ur,g=g.filter(fn=>fn.id!==k)):h.push(Ur);return}let ze=0;if(U!==null){let St=f.get(U);if(St&&St.size>0){let Ur=0;for(let fn of St){let go=_.get(fn);go&&go.metadata.renderOrder>Ur&&(Ur=go.metadata.renderOrder)}ze=Ur+1}}let Ie={blendMode:j?.blendMode||"normal",opacity:j?.opacity,visible:j?.visible!==!1,id:j?.id?Cn(j.id):j?.id,mask:j?.mask,maps:j?.maps,renderOrder:j?.renderOrder!==void 0?j.renderOrder:ze,transform:j?.transform,boundingBox:j?.boundingBox,flow:j?.flow,absolute:j?.absolute},ut=ne.boundingBoxDeclaration,ls=ne.props?Xy(ne.props):void 0,Cs={id:k,componentName:ne.name||"Unknown",parentId:U,definition:ne,metadata:Ie,uniforms:V,domCanvas:ge,requiresRTT:!!ne.requiresRTT,requiresChild:!!ne.requiresChild,blendWithChildren:!!ne.blendWithChildren,acceptsUVContext:!!ne.acceptsUVContext,providesUVContextViaCompute:!!ne.providesUVContextViaCompute,usesPointer:!!ne.usesPointer,hasUvRemap:!!ne.uvRemap,boundingBoxDeclaration:ut,wantsBoundsParams:!!ne.wantsBoundsParams,extraDimProps:ls,mouseDriverState:{},autoAnimateState:{},mapValues:{},_liveHandles:null};if(ut||ls){let St=ll(ut,ls);if(St){let Ur=V.origin?.value??"center",fn=ui(Cs,Ur);for(let go of[...St.positionProps,...St.sizeProps.keys()]){let no=V[go];no&&(no._rawDimensional===void 0&&(no._rawDimensional=no.value),no.value=Kc(ut,go,no._rawDimensional,Ur,ee(),Q(),ls,fn))}}}for(let St of Object.values(V))St.compileTimeWhen&&St._lastCompiledValue===void 0&&(St._lastCompiledValue=St.value);_.set(k,Cs),U===null&&(p=k);let bs=f.get(U)||new Set;bs.add(k),f.set(U,bs),Sl(),Aa(),ds()&&us()},z0=k=>{h.some(R=>R.id===k.id)&&g.push(k)},G0=(k,R,U)=>{let j=_.get(k);if(!j){z0({id:k,kind:"uniform",name:R,value:U});return}let V=j.uniforms[R];if(!V)return;let ne=j.boundingBoxDeclaration,ge=j.extraDimProps;if((ne||ge)&&jy(ne,R,ge)){V._rawDimensional=U;let ze=j.uniforms.origin?.value??"center",Ie=ui(j,ze);U=Kc(ne,R,U,ze,ee(),Q(),ge,Ie)}if(V.transform===Wi){V._rawList=U,P0(j,R),Sl(),Qo();return}if(V.value=U,pi(j,R,U),(V.transform===ha||V.transform===ft)&&NE(j),R==="origin"&&ne)N(j);else if(ne&&(j.uniforms.origin?.value??"center")!=="center"){let ze=ll(ne,ge),Ie=!!ne.computeBounds||(ze?.sizeProps.has(R)??!1),ut=ze?.positionProps.has(R)??!1;Ie&&!ut&&N(j)}if(R==="shape"&&Sl(),ds()&&us(),V.compileTime){Aa();return}if(V.compileTimeWhen){let ze=V._lastCompiledValue;if(V.compileTimeWhen(ze,U)){V._lastCompiledValue=U,Aa();return}}Qo()},D0=(k,R)=>{let U=_.get(k);if(!U){z0({id:k,kind:"metadata",metadata:R});return}let j=!1;if(R.blendMode!==void 0&&U.metadata.blendMode!==R.blendMode&&(U.metadata.blendMode=R.blendMode,j=!0),R.opacity!==void 0&&U.metadata.opacity!==R.opacity){let V=U.metadata.opacity??1,ne=R.opacity;U.metadata.opacity=ne,Ps(U,"_opacity",ne),V>=1!=ne>=1&&(j=!0)}if(R.renderOrder!==void 0&&U.metadata.renderOrder!==R.renderOrder&&(U.metadata.renderOrder=R.renderOrder,j=!0),"visible"in R){let V=R.visible!==!1;U.metadata.visible!==V&&(U.metadata.visible=V,j=!0)}if(R.id!==void 0){let V=Cn(R.id);U.metadata.id!==V&&(U.metadata.id=V,j=!0)}if("mask"in R&&(U.metadata.mask?.source!==R.mask?.source||U.metadata.mask?.type!==R.mask?.type)&&(U.metadata.mask=R.mask,j=!0),"maps"in R&&JSON.stringify(U.metadata.maps)!==JSON.stringify(R.maps)){let V=U.metadata.maps,ne=R.maps;if(U.metadata.maps=ne,Sl(),(()=>{if(!V||!ne)return!0;let ge=Object.keys(V),ze=Object.keys(ne);if(ge.length!==ze.length||!ge.every(Ie=>Ie in ne))return!0;for(let Ie of ze){let ut=V[Ie],ls=ne[Ie];if(ut.type!==ls.type)return!0;if(ls.type==="map"){let Cs=ut,bs=ls;if(Cs.source!==bs.source||Cs.channel!==bs.channel)return!0}else if(ls.type==="mouse"&&ut.axis!==ls.axis)return!0}return!1})()){if(V&&ne)for(let ge of Object.keys(V))ge in ne&&V[ge].type!==ne[ge].type&&(delete U.mouseDriverState[ge],delete U.autoAnimateState[ge],delete U.mapValues[ge]);j=!0}else if(ne)for(let[ge,ze]of Object.entries(ne)){let Ie=_i(U,ge,ze);ze.type==="map"&&(Ps(U,`_map_${ge}_inputMin`,Ie.inputMin),Ps(U,`_map_${ge}_inputMax`,Ie.inputMax),Ps(U,`_map_${ge}_outputMin`,Ie.outputMin),Ps(U,`_map_${ge}_outputMax`,Ie.outputMax),Ps(U,`_map_${ge}_curve`,Ie.curve))}}if(R.transform!==void 0){let V=U.metadata.transform,ne={offsetX:R.transform.offsetX??V?.offsetX??0,offsetY:R.transform.offsetY??V?.offsetY??0,rotation:R.transform.rotation??V?.rotation??0,scale:R.transform.scale??V?.scale??1,anchorX:R.transform.anchorX??V?.anchorX??.5,anchorY:R.transform.anchorY??V?.anchorY??.5,edges:R.transform.edges??V?.edges??"transparent"},ge=mn(U);U.metadata.transform=ne;let ze=da(ne);if(ge!==ze||V&&V.edges!==ne.edges)j=!0;else if(ze)for(let[Ie,ut]of Object.entries(_e(U)))Ps(U,`_xform_${Ie}`,ut)}if(R.boundingBox!==void 0&&R.boundingBox!==null&&U.boundingBoxDeclaration!==void 0){let V=Ue(U);U.metadata.boundingBox=R.boundingBox;let ne=Ue(U);if(V!==ne)j=!0;else if(ne){let ge=me(U);if(ge)for(let[ze,Ie]of Object.entries(ge))Ps(U,`_bbox_${ze}`,Ie)}}else R.boundingBox===null&&U.metadata.boundingBox!==void 0&&(U.metadata.boundingBox=void 0,j=!0);if("flow"in R&&JSON.stringify(U.metadata.flow)!==JSON.stringify(R.flow)){let V=U.metadata.flow?.mode==="column"||U.metadata.flow?.mode==="row";U.metadata.flow=R.flow??void 0;let ne=U.metadata.flow?.mode==="column"||U.metadata.flow?.mode==="row";if(V&&!ne){let ge=ze=>{for(let Ie of Go(ze))N(Ie),ge(Ie.id)};ge(k)}us()}"absolute"in R&&U.metadata.absolute!==R.absolute&&(U.metadata.absolute=R.absolute,R.absolute&&N(U),us()),ds()&&us(),j?Aa():Qo()},d1=k=>{let R=_.get(k);if(!R)return;for(let j of Go(k))d1(j.id);p===k&&(p=null);let U=f.get(R.parentId);U&&(U.delete(k),U.size===0&&f.delete(R.parentId)),_.delete(k),Sl(),Aa(),ds()&&us()},L0=()=>{let k=nr.deltaTime;Pe=BT(Ce,Pe,k,performance.now());for(let R of _.values()){let U=R.metadata.maps??{};for(let j in R.mouseDriverState){let V=R.mouseDriverState[j],ne=qE(R,j);if(ne){if(ne.type==="mouse-position"){let ge=ne.smoothing??0,ze=ne.momentum??0,Ie=ne.x===void 0||ne.x==="mouse",ut=ne.y===void 0||ne.y==="mouse";!V.pointerSnapped&&qe&&(V.pointerSnapped=!0,Ie&&(V.currentX=Ne,V.velocityX=0),ut&&(V.currentY=ye,V.velocityY=0));let ls,Cs;if(Ie){let[vn,rd]=Nc(V.currentX,V.velocityX,Ne,ge,ze,k);V.currentX=vn,V.velocityX=rd,ls=vn}else ls=ne.x,V.velocityX=0;if(ut){let[vn,rd]=Nc(V.currentY,V.velocityY,ye,ge,ze,k);V.currentY=vn,V.velocityY=rd,Cs=vn}else Cs=ne.y,V.velocityY=0;let bs=ne.reach??1,St=ne.originX??.5,Ur=ne.originY??.5,fn=ne.invertX?-1:1,go=ne.invertY?-1:1,no=St+fn*(ls-St)*bs,Jo=Ur+go*(Cs-Ur)*bs,fi=no,Al=Jo,Yu=R.metadata.boundingBox;if(Yu&&R.boundingBoxDeclaration?.supportsResizeFit&&Ue(R)){let vn=gy(Yu,ee(),Q()),rd=rT(no,Jo,{centerX:vn.centerX,centerY:vn.centerY,halfWidthUV:vn.halfWidthUV,halfHeightUV:vn.halfHeightUV,rotationDeg:vn.rotation,aspectRatio:pe()});fi=rd.x,Al=rd.y}V.liveX=fi,V.liveY=Al;let q0=R._liveHandles?.[`_smoothed_${j}`];q0 instanceof An&&q0.setComponents(fi,1-Al)}else if(ne.type==="mouse"){let ge=ne.smoothing??0,ze=ne.momentum??0,Ie=ne.axis==="x"?Ne:ye;!V.pointerSnapped&&qe&&(V.pointerSnapped=!0,V.currentX=Math.max(.001,Ie),V.velocityX=0);let[ut,ls]=Nc(V.currentX,V.velocityX,Ie,ge,ze,k);V.currentX=ut,V.velocityX=ls;let Cs=Math.max(.001,ut),bs=R.mapValues[j],St=bs?bs.outputMin+(bs.outputMax-bs.outputMin)*Math.pow(Cs,Math.pow(2,-bs.curve*2)):Cs;V.liveScalar=St,Ps(R,`_smoothed_${j}`,St)}}}for(let[j,V]of Object.entries(R.uniforms))V._listSpec&&Ny(V._rawList,V._listSpec)&&P0(R,j);for(let j in R.autoAnimateState){let V=U[j];if(!V||V.type!=="auto-animate")continue;let ne=Pe*(V.speed??1)*.2,ge,ze=V.easing??V.waveform??"sine";if(V.mode==="loop")ge=Ry((ne%1+1)%1,ze);else{let St=(ne%1+1)%1;ge=Ry(St<.5?St*2:(1-St)*2,ze)}let Ie=R.mapValues[j],ut=Ie?Ie.outputMin:xe(R,j,V.outputMin),ls=Ie?Ie.outputMax:xe(R,j,V.outputMax),Cs=ut+ge*(ls-ut),bs=R.uniforms[j];if(bs?.compileTimeWhen){let St=bs._lastCompiledValue;bs.compileTimeWhen(St,Cs)&&(bs._lastCompiledValue=Cs,Aa())}Ps(R,`_smoothed_${j}`,Cs)}}},F0=()=>{let k=nr.deltaTime;for(let R of _.values()){let U=R.definition.animatedTime;if(U){let V=R.uniforms[U.speed],ne=V&&Number(V.value)||0,ge=Qi(Lu(R));ge.advance(k,ne),Ps(R,"_animTime",ge.value)}let j=R.definition.extraAnimatedTimes;if(j)for(let[V,ne]of Object.entries(j)){let ge=R.uniforms[ne],ze=ge&&Number(ge.value)||0,Ie=Qi(i1(R,ne));Ie.advance(k,ze),Ps(R,`_animTime_${V}`,Ie.value)}}},l1=(k,R)=>FT(k,R,{maxTextureDim:G,pixelRatio:D,viewportWidth:typeof window<"u"?window.innerWidth:k,viewportHeight:typeof window<"u"?window.innerHeight:R}),c1=()=>{let k=(typeof window<"u"?window.devicePixelRatio:1)||1;return Math.min(k,AT())},Fu=(k,R,U,j)=>{if(H&&k===M&&R===$&&U===L&&j===B){let{width:ze,height:Ie}=mi();if(!n||n.width===ze&&n.height===Ie)return}M=k,$=R,L=U,B=j,qy(U,j),H||(H=!0,_.size>0&&Aa());let{width:V,height:ne}=mi();n&&(n.width=V,n.height=ne);let ge=!1;for(let ze of T)ze.passManager.resize(V,ne)&&(ge=!0);for(let ze of T)for(let Ie of ze.ir.onResize)try{Ie({width:V,height:ne})}catch(ut){yr("[gpu] composition onResize error:",ut)}for(let ze of _.values()){if(mn(ze)&&Ps(ze,"_xform_aspectRatio",pe()),Ue(ze)){let Ie=me(ze);if(Ie)for(let[ut,ls]of Object.entries(Ie))Ps(ze,`_bbox_${ut}`,ls)}N(ze)}if(Zo(),ge)for(let ze of T)I0(ze.store),ze.store.flush(),ze.passManager.repaintRtt();Me=0,Tl()},u1=(k,R)=>{k<=0||R<=0||k===I&&R===X||(I=k,X=R,gt={width:k,height:R},!pt&&typeof requestAnimationFrame=="function"&&(pt=!0,requestAnimationFrame(()=>{if(pt=!1,!gt)return;let U=gt;gt=null;let{width:j,height:V}=l1(U.width,U.height);Fu(j,V,U.width,U.height)})))},sP=k=>{let R=k[0];if(!R)return;let U,j;if(R.contentBoxSize){let V=Array.isArray(R.contentBoxSize)?R.contentBoxSize[0]:R.contentBoxSize;V?(U=Math.round(V.inlineSize),j=Math.round(V.blockSize)):(U=Math.round(R.contentRect.width),j=Math.round(R.contentRect.height))}else U=Math.round(R.contentRect.width),j=Math.round(R.contentRect.height);U===0||j===0||u1(U,j)},rP=k=>{let R=k[0];R&&(Ee=R.isIntersecting)},B0=()=>i&&!!t&&!!s&&M>0&&$>0,I0=k=>{let R=k.systemHandles,{width:U,height:j}=mi(),V=c1(),ne=(ge,ze)=>{let Ie=R[ge];Ie instanceof An&&(Ie.value=ze)};ne("time",Pe),ne("viewportSize",[U,j]),ne("logicalViewportSize",[ee()*V,Q()*V]),ne("aspect",U/Math.max(1,j)),ne("pointer",[Ne,ye]),ne("pointerActive",Ve?1:0)},Y0=k=>{for(let R of k)try{R(nr)}catch(U){yr("[gpu] render callback error:",U)}},W0=k=>{if(hs||!B0())return;let R=performance.now(),U;if(k!==void 0)U=k;else{let ge=IT(R,{lastRenderTime:Me,isVisible:Ee,forceFullFrameRate:he,minInterval:Te});if(!ge.render)return;U=ge.deltaTime}Me=R,Wt&&performance.mark("shader-cpu-start");let j=Ne>-5;nr.deltaTime=U,nr.pointer.x=j?Ne:.5,nr.pointer.y=j?ye:.5,nr.pointer.seen=qe,nr.pointerActive=Ve,nr.dimensions.width=M,nr.dimensions.height=$;let V=null,ne=null;try{YT({updateDrivers:()=>{L0(),F0(),wt(),oo()},ensureComposition:()=>((E||A===null)&&(A=$0(),E=!1),A===null?!1:(V=x.getOrBuild(A,()=>eP(A)),tP(V),!!S)),beforeRender:()=>Y0(S.ir.onBeforeRender),flush:()=>{I0(S.store),S.store.flush()},render:()=>{if(Wt&&performance.mark("shader-gpu-start"),ne=x.renderValue??V,ne?.broken)return!1;let ge=ne,ze=ge&&ge.validationFrames>0&&ge.ir.usesCustomWgsl?t?.device:void 0;ze&&ze.pushErrorScope("validation");try{ge?.passManager.render(s,nr,()=>S?.store.flush())}finally{ze&&ge&&(ge.validationFrames--,ze.popErrorScope().then(Ie=>{Ie&&!ge.broken&&C0(ge,Ie.message)}).catch(()=>{}))}if(Wt){performance.mark("shader-gpu-end");try{performance.measure("shader-gpu-time","shader-gpu-start","shader-gpu-end");let Ie=performance.getEntriesByName("shader-gpu-time")[0];Ie&&Qr.recordGpuTime(Ie.duration),performance.clearMeasures("shader-gpu-time"),performance.clearMarks("shader-gpu-start"),performance.clearMarks("shader-gpu-end")}catch{}}},markReady:()=>{x.markReady(A),$s&&!Qt&&(Qt=!0,$s=!1,jt&&queueMicrotask(jt))},afterRender:()=>Y0((ne??S).ir.onAfterRender)}),ur=0}catch(ge){_P(ge);return}if(Wt){performance.mark("shader-cpu-end");try{performance.measure("shader-cpu-time","shader-cpu-start","shader-cpu-end");let ge=performance.getEntriesByName("shader-cpu-time")[0];ge&&Qr.recordCpuTime(ge.duration),performance.clearMarks("shader-cpu-start"),performance.clearMarks("shader-cpu-end"),performance.clearMeasures("shader-cpu-time")}catch{}}Qr.recordFrame(performance.now()-R)},Tl=()=>W0(void 0),oP=async k=>{if(hs)return;if(!B0())throw new Error("Renderer is not ready");let R=ho.running;R&&Bu(),Me=0,Tl(),t&&k?.waitForGpu!==!1&&await Uy(t),R&&_1()},nP=async(k,R)=>{W0(k),t&&R?.waitForGpu!==!1&&await Uy(t)},_1=()=>{hs||ho.running||!de||(Qr.setRendering(!0),ho.start())},Bu=()=>{ho.running&&(ho.stop(),Qr.setRendering(!1))},Iu=k=>{if(!n)return;st=n.getBoundingClientRect();let R,U;if("touches"in k){if(k.touches.length===0)return;R=k.touches[0].clientX,U=k.touches[0].clientY}else R=k.clientX,U=k.clientY;Ne=(R-st.left)/st.width,ye=(U-st.top)/st.height,qe=!0},aP=k=>{!i||!n||(Iu(k),Ve=!0,Qo())},iP=k=>{!i||!n||(Iu(k),Ve=!0,Qo())},dP=()=>{i&&(Ve=!1,Qo())},lP=()=>{i&&(Ve=!1,Qo())},O0=(k,R)=>{if(!i||!n)return!1;let U=n.getBoundingClientRect();return U.width===0||U.height===0?!1:k>=U.left&&k<=U.right&&R>=U.top&&R<=U.bottom},cP=k=>{k.button===0&&O0(k.clientX,k.clientY)&&(Ve=!0,Iu(k),Qo())},uP=k=>{k.touches.length!==0&&O0(k.touches[0].clientX,k.touches[0].clientY)&&(Ve=!0,Iu(k),Qo())},Sl=()=>{let k=!1;for(let R of _.values()){if(R.usesPointer){k=!0;break}if(uW(R.uniforms?.shape?.value)||XE(R)){k=!0;break}if(R.metadata.maps){for(let U of Object.values(R.metadata.maps))if(U&&typeof U=="object"&&"type"in U){let j=U.type;if(j==="mouse"||j==="mouse-position"){k=!0;break}}if(k)break}}k&&!We?(We=!0,!Be&&n&&(Be=cW.register({onMouseMove:aP,onTouchMove:iP,onMouseDown:cP,onTouchStart:uP,onMouseUp:dP,onTouchEnd:lP}))):!k&&We&&(We=!1,Be&&(Be(),Be=null))},V0=()=>{if(h.length===0)return;let k=[...h];h=[];for(let U of k)U0(U.id,U.definition.fragment,U.parentId,U.metadata,U.uniforms,U.definition,U.domCanvas);let R=g;g=[];for(let U of R)U.kind==="uniform"?G0(U.id,U.name,U.value):D0(U.id,U.metadata)},Ea=(k,R)=>{if(!hs){hs=k,Q0(k),yr(`[gpu] renderer stopped (${k}):`,R);try{p1()}catch(U){yr("[gpu] cleanup during failure threw:",U)}if(!or&&rr){or=!0;let U=rr;queueMicrotask(()=>{try{U(k,R)}catch(j){yr("[gpu] onUnavailable callback threw:",j)}})}}},_P=k=>{if(f1(k)){Ea(k.reason,k);return}ur++,ur===1&&Vu("[gpu] render error:",k),ur>=lW&&Ea("render-failed",k)},pP=k=>{!k||typeof k.addEventListener!="function"||(N0(),Cr=k,Zr=R=>{try{R.preventDefault()}catch{}let U=R.error;if(Vu("[gpu] uncaptured device error (a custom WGSL body that fails to compile reports here \u2014 read the message for the line):",U),typeof GPUOutOfMemoryError<"u"&&U instanceof GPUOutOfMemoryError){Ea("out-of-memory",U);return}if(typeof GPUInternalError<"u"&&U instanceof GPUInternalError){Ea("gpu-error",U);return}Rr++,Rr>=dW&&Ea("gpu-error",U)},k.addEventListener("uncapturederror",Zr))},N0=()=>{if(Cr&&Zr)try{Cr.removeEventListener("uncapturederror",Zr)}catch{}Cr=null,Zr=null},mP=k=>{if(!Ys){Ys=!0;try{Bu()}catch{}if(Is){let R=Is;queueMicrotask(()=>{try{R(k)}catch(U){yr("[gpu] onDeviceLost callback threw:",U)}});return}Ea("device-lost",k)}},fP=async k=>{if(k.context!==void 0)throw new Error("[gpu] initialize({ context }) is not supported \u2014 this renderer is WebGPU-only. Remove the WebGL `context` option.");if(hs)return;let R=J0();if(R){Ea(R);return}if(i||d)return;let{canvas:U,resizeTarget:j,enablePerformanceTracking:V=!1,colorSpace:ne="p3-linear",toneMapping:ge="linear",gpu:ze,forceFullFrameRate:Ie=!1,observeElement:ut=!0,timeOrigin:ls}=k;ls!=null&&(Ce=ls),Wt=V,he=Ie,Ut=ne,Lt=ge,yo(),d=!0,c=new AbortController;let Cs=c;try{if(vs=hS,vs(ne),Cs.signal.aborted||(n=U,e=await YY({device:ze?.device,adapter:ze?.adapter,onDeviceLost:Jo=>mP(Jo.message||Jo.reason||"unknown")}),Cs.signal.aborted))return;t=e.root,pP(t.device),D=c1();let bs=t.device.limits?.maxTextureDimension2D;typeof bs=="number"&&bs>0&&(G=bs),r=ZY(t),o=_T(t),typeof window<"u"&&(Ke=()=>p1(),window.addEventListener("beforeunload",Ke),Oe=()=>{if(I>0&&X>0){let Jo=I,fi=X;I=0,X=0,u1(Jo,fi)}},window.addEventListener("resize",Oe,{passive:!0}));let St=U.getBoundingClientRect();st=St,Ee=!ut||St.width>0&&St.height>0&&St.top<window.innerHeight&&St.bottom>0&&St.left<window.innerWidth&&St.right>0,de=!0;let Ur=St.width>0?St.width:U.width,fn=St.height>0?St.height:U.height,go=Math.round(Ur),no=Math.round(fn);if(go>0&&no>0){I=go,X=no;let{width:Jo,height:fi}=l1(go,no);M=Jo,$=fi,L=go,B=no,H=!0,qy(go,no);let{width:Al,height:Yu}=mi();U.width=Al,U.height=Yu}else H=!1;if(s=VY(t,U),ut&&typeof ResizeObserver<"u"){let Jo=j??U.parentElement;Jo?(rt=new ResizeObserver(sP),rt.observe(Jo)):console.warn("[gpu] no element available for resize observation \u2014 use resize() manually"),typeof IntersectionObserver<"u"&&(tt=new IntersectionObserver(rP,{threshold:0,rootMargin:"128px"}),tt.observe(U))}if(Cs.signal.aborted)return;i=!0,l=!0,V0(),M>0&&$>0&&Tl(),de&&_1()}catch(bs){let St=f1(bs)?bs.reason:"init-failed";d=!1,c===Cs&&(c=null),Ea(St,bs);return}finally{d=!1,c===Cs&&(c=null)}},p1=()=>{c&&c.abort(),rt&&(rt.disconnect(),rt=null),tt&&(tt.disconnect(),tt=null),Be&&(Be(),Be=null),Ke&&typeof window<"u"&&(window.removeEventListener("beforeunload",Ke),Ke=null),Oe&&typeof window<"u"&&(window.removeEventListener("resize",Oe),Oe=null),ie!==null&&typeof cancelAnimationFrame=="function"&&(cancelAnimationFrame(ie),ie=null),Bu(),N0(),ys?.(),ys=null,typeof document<"u"&&document.fonts?.removeEventListener&&document.fonts.removeEventListener("loadingdone",Rn);try{e?.release?.()}catch{}x.clear();for(let k of[...T])R0(k);S=null;try{r?.destroy()}catch{}try{e?.createdDevice&&t?.destroy()}catch{}_.clear(),p=null,f.clear(),h=[],g=[],l=!1,gt=null,pt=!1,n=null,s=null,r=null,o=null,t=null,e=null,i=!1,d=!1,H=!1,c=null,M=0,$=0,L=0,B=0,A=null,E=!0,Ee=!1,de=!0,Ne=-10,ye=-10,Ve=!1,qe=!1,We=!1,jt=null,Qt=!1,$s=!1,Is=null,Ys=!1,Rr=0,ur=0};return{initialize:fP,cleanup:p1,registerNode:U0,removeNode:d1,updateUniformValue:G0,updateNodeMetadata:D0,isInitialized:()=>i,resize:(k,R)=>{t&&u1(k,R)},startAnimation:_1,stopAnimation:Bu,renderAndWait:oP,renderSyntheticFrame:nP,getPerformanceStats:()=>{let k=Math.max(0,_.size-1),R=S?S.ir.rttPasses.length:0;Qr.updateNodeCounts(k,R);let U={render:{calls:S?S.passManager.passCount:0},programs:{length:x.size},memory:{textures:r?r.textureCount:0}};return Qr.getStats(U)},getLiveDriverValue:(k,R)=>{let U=_.get(k)?.mouseDriverState?.[R];return!U||U.liveX===void 0||U.liveY===void 0?null:{x:U.liveX,y:U.liveY}},getLiveScalarValue:(k,R)=>{let U=_.get(k);if(!U)return null;let j=U.metadata.maps?.[R];if(j?.type==="auto-animate"){let V=U._liveHandles?.[`_smoothed_${R}`],ne=V instanceof An?V.value:void 0;return typeof ne=="number"?ne:null}return j?.type==="mouse"?U.mouseDriverState[R]?.liveScalar??null:null},getNodeRegistry:()=>({nodes:new Map(_)}),getRendererType:()=>"webgpu",getInternalRenderer:()=>t?{device:t.device,adapter:e?.adapter,root:t}:null,setForceFullFrameRate:k=>{let R=he;return he=k,R},beginRecordingResolution:(k,R,U)=>{if(!t||k<=0||R<=0)return()=>{};let j=D,V=M,ne=$,ge=L,ze=B,Ie=I,ut=X;return D=U,Fu(k,R,k,R),()=>{t&&(D=j,Fu(V,ne,ge,ze),I=Ie,X=ut)}},setResolutionScale:k=>{if(!t)return;let R=Math.max(.05,Math.min(k,1)),U=Math.max(.01,c1()*R);if(Math.abs(D-U)<.001)return;D=U;let j=L||M,V=B||$;if(j<=0||V<=0)return;let{width:ne,height:ge}=l1(j,V);Fu(ne,ge,j,V)},setFrameRateCap:k=>{Te=k&&k>0?1e3/Math.max(k,10)-1:0},setTimeOrigin:k=>{Ce=k},setOnReady:k=>{jt=k,k&&Qt&&queueMicrotask(k)},setOnDeviceLost:k=>{Is=k},setOnUnavailable:k=>{if(rr=k,k&&hs&&!or){or=!0;let R=hs;queueMicrotask(()=>{try{k(R)}catch(U){yr("[gpu] onUnavailable callback threw:",U)}})}},getFailureReason:()=>hs,__testing:{needsTransformation:da,findChildNodes:Go,buildFieldInits:k=>{let R=_.get(k);return R?A0(R):null},ensureDriverState:k=>{let R=_.get(k);R&&a1(R)},stepMouseDrivers:k=>{nr.deltaTime=k,L0()},stepAnimatedTime:k=>{nr.deltaTime=k,F0()},getAnimatedTimeValue:k=>{let R=_.get(k);return R?.definition.animatedTime?Qi(Lu(R)).value:null},writeExtraField:(k,R,U)=>{let j=_.get(k);j&&E0(j,R,U)},readExtraField:(k,R)=>{let U=_.get(k)?._liveHandles?.[R];return U instanceof An?U.value:void 0},getNodeRegistry:()=>({nodes:_,rootId:p,parentToChildren:f}),getParentToChildren:()=>f,getPendingRegistrations:()=>[...h],getFrameDiagnostics:()=>({deltaTime:nr.deltaTime,pointerX:Ne,pointerY:ye,pointerActive:Ve,globalElapsedTime:Pe,lastRenderTime:Me,isVisible:Ee,forceFullFrameRate:he,sharedTimeOrigin:Ce,animating:ho.running,mouseListenersNeeded:We}),computeStructuralHash:$0,isStructuralDirty:()=>E,clearStructuralDirty:()=>{E=!1},setTestReady:k=>{i=!0,l=!0,k&&(M=k.width,$=k.height,L=k.width,B=k.height,H=!0),V0()}}}}var WE={Aurora:eu,Blob:tu,Chrome:su,ColorWheel:ru,FallingLines:ou,FlowingGradient:nu,FractalNoise:au,Frost:iu,GaborNoise:du,Godrays:lu,Goo:cu,Heatmap:uu,Hologram:_u,Holographic:pu,LensFlare:mu,LightEdge:fu,LiquidMetal:vu,Marble:hu,MeshGradient:yu,Nebula:gu,Obsidian:xu,Plasma:bu,Plastic:wu,Prism:Tu,Ripples:Su,SineWave:Au,Spiral:Eu,Strands:Pu,Stripes:Mu,SunBurst:ku,Swirl:$u,ThinFilm:Cu,Voronoi:Ru,Water:Uu,Waveform:zu,WorleyNoise:Gu};var o1=document.querySelector("canvas[data-shader]"),Du=WE[o1.dataset.shader],Ji=YE(),T0=Promise.resolve();function OE(e){return T0=T0.then(()=>Ji.renderSyntheticFrame(e-Ji.__testing.getFrameDiagnostics().globalElapsedTime)),T0}var S0=(async()=>{if(!Du)throw new Error(`shaders: no shader named "${o1.dataset.shader}" in this bundle`);await Ji.initialize({canvas:o1,observeElement:!1,colorSpace:"srgb"});let e=Ji.getFailureReason();if(e)throw new Error(`shaders: WebGPU unavailable (${e})`);Ji.registerNode("root",Fm.fragment,null,null,{},Fm);let t=JSON.parse(o1.dataset.shaderProps||"{}"),s=Object.fromEntries(Object.entries(Du.props).map(([o,n])=>[o,o in t?t[o]:n.default])),r={blendMode:"normal",renderOrder:1,id:"fx",boundingBox:xy(void 0)};Ji.registerNode("fx",Du.fragment,"root",r,Zy(Du,s,"fx"),Du),Ji.stopAnimation(),await OE(window.__hfTypegpuTime??0)})();window.__hf=window.__hf||{};window.__hf.buildReady=window.__hf.buildReady||{};window.__hf.buildReady.shaders=S0;S0.catch(e=>console.error(String(e)));window.addEventListener("hf-seek",e=>{let t=S0.then(()=>OE(e.detail.time));typeof e.detail.waitUntil=="function"&&e.detail.waitUntil(t)});})();
|