PageSourceSearch

https://beyondpraxis.de/js/vendor/[email protected]?v=20260723secure

js beyondpraxis.de collected 2026-10-07 05:54:53 UTC 2,125,919 bytes, 247 lines download raw bytes

vendor: 9,617 bytes, lines 1-2
1/* [email protected]/js — ESM bundle for CDN consumption (no bundler required). https://shaders.com */
2var nU=Object.defineProperty;var zh=(e,t)=>{for(var s in t)nU(e,s,{get:t[s],enumerable:!0})};var o={};zh(o,{Void:()=>ss,align:()=>Gy,alignmentOf:()=>Ny,arrayOf:()=>qs,atomic:()=>dp,bool:()=>Et,builtin:()=>zo,comparisonSampler:()=>bc,data_exports:()=>Rz,deepEqual:()=>_l,disarrayOf:()=>lg,f16:()=>Fs,f32:()=>S,float16:()=>Ay,float16x2:()=>Ey,float16x4:()=>My,float32:()=>Cy,float32x2:()=>Py,float32x3:()=>ky,float32x4:()=>Ry,formatToWGSLType:()=>Hr,getLongestContiguousPrefix:()=>og,i32:()=>fe,interpolate:()=>Xy,invariant:()=>qy,isAlignAttrib:()=>oc,isAtomic:()=>Yr,isBuiltin:()=>tr,isBuiltinAttrib:()=>ld,isContiguous:()=>sg,isData:()=>ba,isDecorated:()=>Lo,isDisarray:()=>ur,isInterpolateAttrib:()=>Fh,isLocationAttrib:()=>Bu,isLooseData:()=>Pn,isLooseDecorated:()=>Jo,isPackedData:()=>Ku,isPtr:()=>ws,isSizeAttrib:()=>rc,isUnstruct:()=>xo,isWgslArray:()=>Wt,isWgslData:()=>fr,isWgslStruct:()=>Dt,location:()=>uc,mat2x2f:()=>gr,mat3x3f:()=>bo,mat4x4f:()=>Ms,matToArray:()=>jy,memoryLayoutOf:()=>fp,packedFormats:()=>fd,ptrFn:()=>ac,ptrHandle:()=>Yh,ptrPrivate:()=>Bh,ptrStorage:()=>Oh,ptrUniform:()=>Nh,ptrWorkgroup:()=>Vh,ref:()=>Xu,sampler:()=>xc,sint16:()=>vy,sint16x2:()=>hy,sint16x4:()=>yy,sint32:()=>Iy,sint32x2:()=>Ly,sint32x3:()=>Fy,sint32x4:()=>By,sint8:()=>ry,sint8x2:()=>ay,sint8x4:()=>ny,size:()=>Wy,sizeOf:()=>Yy,snorm16:()=>wy,snorm16x2:()=>Ty,snorm16x4:()=>Sy,snorm8:()=>dy,snorm8x2:()=>uy,snorm8x4:()=>py,struct:()=>sr,texture1d:()=>Tf,texture2d:()=>Sa,texture2dArray:()=>Af,texture3d:()=>Cf,textureCube:()=>Ef,textureCubeArray:()=>Mf,textureDepth2d:()=>Ky,textureDepth2dArray:()=>Qy,textureDepthCube:()=>eg,textureDepthCubeArray:()=>tg,textureDepthMultisampled2d:()=>Jy,textureExternal:()=>wc,textureMultisampled2d:()=>Sf,textureStorage1d:()=>Pf,textureStorage2d:()=>jr,textureStorage2dArray:()=>kf,textureStorage3d:()=>Rf,u16:()=>ey,u32:()=>ie,uint16:()=>my,uint16x2:()=>_y,uint16x4:()=>fy,uint32:()=>$y,uint32x2:()=>Uy,uint32x3:()=>Dy,uint32x4:()=>zy,uint8:()=>ty,uint8x2:()=>sy,uint8x4:()=>oy,unorm10_10_10_2:()=>Vy,unorm16:()=>gy,unorm16x2:()=>xy,unorm16x4:()=>by,unorm8:()=>iy,unorm8x2:()=>ly,unorm8x4:()=>cy,unorm8x4_bgra:()=>Oy,unstruct:()=>cg,vec2b:()=>Pr,vec2f:()=>H,vec2h:()=>Bo,vec2i:()=>fs,vec2u:()=>Qe,vec3b:()=>kr,vec3f:()=>W,vec3h:()=>Uo,vec3i:()=>Os,vec3u:()=>Bt,vec4b:()=>Rr,vec4f:()=>ee,vec4h:()=>Vo,vec4i:()=>ls,vec4u:()=>ts});var iU=Object.defineProperty,Cn=e=>{let t={};for(var s in e)iU(t,s,{get:e[s],enumerable:!0});return t};var $o="0.11.9";var K=Symbol(`typegpu:${$o}:$internal`),Yt=Symbol(`typegpu:${$o}:$gpuValueOf`),bs=Symbol(`typegpu:${$o}:$getNameForward`),Ho=Symbol(`typegpu:${$o}:$providing`),ro=Symbol(`typegpu:${$o}:$ownSnippet`),Je=Symbol(`typegpu:${$o}:$resolve`),nd=Symbol(`typegpu:${$o}:$cast`),ms=Symbol(`typegpu:${$o}:$gpuCallable`),ii=Symbol(`typegpu:${$o}:$repr`),OK=Symbol(`typegpu:${$o}:$gpuRepr`),NK=Symbol(`typegpu:${$o}:$reprPartial`),YK=Symbol(`typegpu:${$o}:$reprPatch`),GK=Symbol(`typegpu:${$o}:$inRepr`),WK=Symbol(`typegpu:${$o}:$memIdent`),XK=Symbol(`typegpu:${$o}:$invalidStorageSchema`),qK=Symbol(`typegpu:${$o}:$validUniformSchema`),HK=Symbol(`typegpu:${$o}:$validVertexSchema`),jK=Symbol(`typegpu:${$o}:$invalidSchemaReason`);function Ht(e){return!!e?.[K]}function ga(e){typeof Symbol[e]>"u"&&Object.defineProperty(Symbol,e,{value:Symbol.for(`Symbol.${e}`),writable:!1,enumerable:!1,configurable:!1})}function s7(e,t){return typeof e?.[t]=="function"}function id(e,t,s,r){let a=dr.deferOperation;return s7(e,s)&&(a=e[s](e,t)),a===dr.deferOperation&&s7(t,s)&&(a=t[s](e,t)),a===dr.deferOperation?r(e,t):a}var lU=(e,t)=>e+t;function cU(e,t){return(typeof e=="number"||typeof e=="string")&&(typeof t=="number"||typeof t=="string")?e+t:id(e,t,dr.plus,lU)}var dU=(e,t)=>e-t;function uU(e,t){return typeof e=="number"&&typeof t=="number"?e-t:id(e,t,dr.minus,dU)}var pU=(e,t)=>e*t;function mU(e,t){return typeof e=="number"&&typeof t=="number"?e*t:id(e,t,dr.star,pU)}var _U=(e,t)=>e/t;function fU(e,t){return typeof e=="number"&&typeof t=="number"?e/t:id(e,t,dr.slash,_U)}var vU=(e,t)=>e**t;function hU(e,t){return typeof e=="number"&&typeof t=="number"?e**t:id(e,t,dr.starStar,vU)}var yU=(e,t)=>e%t;function gU(e,t){return typeof e=="number"&&typeof t=="number"?e%t:id(e,t,dr.percent,yU)}var dr=(ga("deferOperation"),ga("operatorPlus"),ga("operatorMinus"),ga("operatorStar"),ga("operatorSlash"),ga("operatorStarStar"),ga("operatorPercent"),ga("operatorEqEq"),ga("operatorPrePlusPlus"),ga("operatorPreMinusMinus"),ga("operatorPostPlusPlus"),ga("operatorPostMinusMinus"),ga("operatorPreMinus"),globalThis.__tsover_add=cU,globalThis.__tsover_sub=uU,globalThis.__tsover_mul=mU,globalThis.__tsover_div=fU,globalThis.__tsover_pow=hU,globalThis.__tsover_mod=gU,{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});var ss={[K]:{},type:"void",toString(){return"void"}},xU=["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 Rs(e){let t=e;return Ht(t)&&typeof t.kind=="string"&&t.kind.startsWith("vec")}function bU(e){let t=e;return Ht(t)&&typeof t.type=="string"&&t.type.startsWith("vec2")}function wU(e){let t=e;return Ht(t)&&typeof t.type=="string"&&t.type.startsWith("vec3")}function TU(e){let t=e;return Ht(t)&&typeof t.type=="string"&&t.type.startsWith("vec4")}function es(e){return bU(e)||wU(e)||TU(e)}function $_(e){return es(e)&&e.type.includes("b")}function Or(e){let t=e;return Ht(t)&&typeof t.kind?.startsWith=="function"&&t.kind.startsWith("mat")}function Iu(e){return Ht(e)&&e?.type==="mat2x2f"}function Lu(e){return Ht(e)&&e?.type==="mat3x3f"}function SU(e){return Ht(e)&&e?.type==="mat4x4f"}function Nr(e){return Iu(e)||Lu(e)||SU(e)}function Ih(e){return Rs(e)&&["vec2f","vec3f","vec4f"].includes(e.kind)}function Fu(e){return Rs(e)&&/[iu]$/.test(e.kind)}function Lh(e){return Rs(e)&&/[u]$/.test(e.kind)}function fr(e){return Ht(e)&&xU.includes(e?.type)}function Wt(e){return Ht(e)&&e?.type==="array"}function Dt(e){return Ht(e)&&e?.type==="struct"}function ws(e){return Ht(e)&&e?.type==="ptr"}function Yr(e){return Ht(e)&&e?.type==="atomic"}function oc(e){return Ht(e)&&e?.type==="@align"}function rc(e){return Ht(e)&&e?.type==="@size"}function Bu(e){return Ht(e)&&e?.type==="@location"}function Fh(e){return Ht(e)&&e?.type==="@interpolate"}function ld(e){return Ht(e)&&e?.type==="@builtin"}function Lo(e){return Ht(e)&&e?.type==="decorated"}function U_(e){return Ht(e)&&e.type==="void"}function D_(e){return Ht(e)&&e.type==="bool"}function cd(e){let t=e?.type;return Ht(e)&&(t==="abstractInt"||t==="abstractFloat"||t==="f32"||t==="f16"||t==="i32"||t==="u32")}function z_(e){let t=e?.type;return Ht(e)&&(t==="f16"||t==="vec2h"||t==="vec3h"||t==="vec4h")}var AU=["abstractInt","abstractFloat","f32","f16","i32","u32","bool"];function xa(e){return!Ht(e)||AU.includes(e?.type)}function dd(e){return e.schema}var I_=["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"],o7={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 Fo(e){return Lo(e)||Jo(e)?e.inner:e}function Hi(e){return ws(e)?e.inner:e}var EU=["unstruct","disarray","loose-decorated",...I_];function Pn(e){return Ht(e)&&EU.includes(e?.type)}function ur(e){return Ht(e)&&e?.type==="disarray"}function xo(e){return Ht(e)&&e?.type==="unstruct"}function Jo(e){return Ht(e)&&e?.type==="loose-decorated"}function ud(e){return e.attribs?.find(oc)?.params[0]}function r7(e){return e.attribs?.find(rc)?.params[0]}function Oa(e){return e.attribs?.find(Bu)?.params[0]}function ba(e){return fr(e)||Pn(e)}var os=Symbol("UNKNOWN"),L_=class{matrix;constructor(e){this.matrix=e}};function a7(e){return e==="runtime"||e==="constant"?e:"runtime"}function aa(e){return!(e.origin==="runtime"||e.origin==="constant")}var n7={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"}
2,"local-def":{space:"function",access:"read-write"}},B_=class{value;dataType;origin;possibleSideEffects;constructor(e,t,s,r){this.value=e,this.dataType=t,this.origin=s,this.possibleSideEffects=r}};function li(e){return e instanceof B_}function Vu(e){return cd(e.dataType)}function Te(e,t,s,r=!0){if(!1)throw new Error("Cannot nest snippets");return new B_(e,Fo(t),s,r)}function i7(e,t){return new B_(t.value,e,t.origin,t.possibleSideEffects)}function MU(e,t){return new B_(t.value,t.dataType,t.origin,e)}function l7(e){return MU(!1,e)}function ac(e){return ci("function",e,"read-write")}function Bh(e){return ci("private",e,"read-write")}function Vh(e){return ci("workgroup",e,"read-write")}function Oh(e,t="read"){return ci("storage",e,t)}function Nh(e){return ci("uniform",e,"read")}function Yh(e){return ci("handle",e,"read")}function ci(e,t,s,r=!1){return{[K]:{},type:"ptr",addressSpace:e,inner:t,access:s,implicit:r,toString:()=>`ptr<${e}, ${t}, ${s}>`}}function pd(e,t){let s=n7[e];if(s)return ci(s.space,t,s.access)}function V_(e){return ci(e.addressSpace,e.inner,e.access,!0)}function c7(e){return ci(e.addressSpace,e.inner,e.access,!1)}function Qo(e){if(Array.isArray(e))return`[${e.map(Qo).join(", ")}]`;let t=String(e);if(t!=="[object Object]")return t;try{return JSON.stringify(e)}catch(s){return console.error("Error parsing JSON:",s),"<invalid json>"}}function O_(e){return Rs(e)||Or(e)?e.toString():Array.isArray(e)?`[${e.map(O_).join(", ")}]`:e&&typeof e=="object"?`{ ${Object.entries(e).map(([t,s])=>`${t}: ${O_(s)}`).join(", ")} }`:String(e)}function d7(e){let t={};for(let[s,r]of Object.entries(e))typeof r=="function"?Object.defineProperty(t,s,{get:r,enumerable:!0}):t[s]=d7(r);return t}function u7(e){if(e.v===1){let t=e.externals;return{...e,externals:typeof t=="function"?t:()=>t}}if(e.v===2){let t=d7(e?.externals);return{...e,externals:()=>t}}throw new Error(`Unrecognized TypeGPU metadata format: ${Qo(e)}`)}var di=globalThis;di.__TYPEGPU_VERSION__!==void 0&&console.warn(`Found duplicate TypeGPU version. First was ${di.__TYPEGPU_VERSION__}, this one is ${$o}. This may cause unexpected behavior.`);di.__TYPEGPU_VERSION__=$o;di.__TYPEGPU_AUTONAME__=(e,t)=>kn(e)&&Ht(e)&&!Ce(e)?e.$name(t):e;var N_=new WeakMap;function kn(e){return!!e?.$name}function _7(e){return!!e?.[bs]}function Ce(e){return _7(e)?Ce(e[bs]):N_.get(e)??di.__TYPEGPU_META__?.get(e)?.name}function je(e,t){if(_7(e)){je(e[bs],t);return}N_.set(e,t)}var p7=new WeakMap;function Ou(e){let t=di.__TYPEGPU_META__?.get(e);if(t){di.__TYPEGPU_META__?.delete(e);let s=u7(t);p7.set(e,s),t.name&&N_.get(e)===void 0&&N_.set(e,t.name)}return p7.get(e)}function Rn(e){return typeof e=="function"&&!!Ou(e)}var ji=void 0;var Gh="Invariant failed";function Vs(e,t){if(e)return;if(!!1&&!!1)throw new Error(Gh);let s=typeof t=="function"?t():t,r=s?`${Gh}: ${s}`:Gh;throw new Error(r)}
vendor: 10,106 bytes, lines 2-12
2var Zi=class Wh extends Error{cause;trace;constructor(t,s){let r=s.map(a=>`- ${Rn(a)?`fn*:${Ce(a)}`:a}`);r.length>20&&(r=[...r.slice(0,11),"...",...r.slice(-10)]),super(`Resolution of the following tree failed:
3${r.join(`
4`)}: ${t&&typeof t=="object"&&"message"in t?t.message:t}`),this.cause=t,this.trace=s,Object.setPrototypeOf(this,Wh.prototype)}appendToTrace(t){let s=[t,...this.trace];return new Wh(this.cause,s)}},qh=class Xh extends Error{cause;trace;constructor(t,s){let r=s.map(a=>`- ${a}`);r.length>20&&(r=[...r.slice(0,11),"...",...r.slice(-10)]),super(`Execution of the following tree failed:
5${r.join(`
6`)}: ${t&&typeof t=="object"&&"message"in t?t.message:t}`),this.cause=t,this.trace=s,Object.setPrototypeOf(this,Xh.prototype)}appendToTrace(t){let s=[t,...this.trace];return new Xh(this.cause,s)}},f7=class v7 extends Error{slot;constructor(t){super(`Missing value for '${t}'`),this.slot=t,Object.setPrototypeOf(this,v7.prototype)}},h7=class y7 extends Error{constructor(t){super(`Buffer '${Ce(t)??"<unnamed>"}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`),Object.setPrototypeOf(this,y7.prototype)}},g7=class x7 extends Error{constructor(t){super(`Missing bind groups for layouts: '${[...t].map(s=>Ce(s)??"<unnamed>").join(", ")}'. Please provide it using pipeline.with(bindGroup).(...)`),Object.setPrototypeOf(this,x7.prototype)}},b7=class w7 extends Error{constructor(t){super(`Missing vertex buffers for layouts: '${[...t].map(s=>Ce(s)??"<unnamed>").join(", ")}'. Please provide it using pipeline.with(layout, buffer).(...)`),Object.setPrototypeOf(this,w7.prototype)}},Hh=class T7 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,T7.prototype)}},jh=class S7 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,S7.prototype)}},Ut=class A7 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,A7.prototype)}},vr=class E7 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,E7.prototype)}},Nu=class M7 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,M7.prototype)}};function Yu(e){return e?.resourceType==="slot"}function Gu(e){return e?.resourceType==="lazy"}function Wu(e){return e?.[Ho]!==void 0}function $n(e){return e?.resourceType==="accessor"}function Un(e){return e?.resourceType==="mutable-accessor"}var Na=class{type="normal"},C7=class{type="codegen"},P7=class{type="simulate";buffers;vars;constructor(e,t){this.buffers=e,this.vars=t}};function Zh(e){return!!e?.[Je]}function nc(e){return e?.[ro]}function Y_(e){return!!e?.[ms]}function k7(e){return!!e?.[nd]}function Us(e){return(typeof e.value!="string"||e.dataType===os)&&nc(e.value)===void 0}function R7(e){return typeof e=="number"||typeof e=="boolean"||typeof e=="string"||Zh(e)||fr(e)||Yu(e)||Gu(e)||Wu(e)}function cn(e){return!!e&&typeof e=="object"&&"getMappedRange"in e&&"mapAsync"in e}var G_=!1;function $7(e){if(G_)return e();try{return G_=!0,e()}finally{G_=!1}}function md(){return G_}var Ki;function W_(e,t){if(Vs(Ki===void 0||Ki===e,"Cannot nest context providers"),Ki===e)return t();Ki=e;try{return t()}finally{Ki=void 0}}function Gr(){return Ki}var Kh=new Na;function Ji(){return Ki?.mode??Kh}function er(){return Ki?.mode.type==="codegen"}function se(e,...t){let s=Gr();function r(i){return li(i)?s.resolve(i.value,i.dataType).value:i}let a="";for(let i=0;i<e.length;++i){a+=e[i];let l=t[i];Array.isArray(l)?a+=l.filter(c=>c!==void 0).map(r).join(", "):l&&(a+=r(l))}return a}var Xu=(()=>{let e=(t=>CU(t));return je(e,"ref"),e.toString=()=>"ref",e[K]=!0,e[ms]={call(t,[s]){if(s.origin==="argument")throw new Ut(se`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 a=t.resolve(s.dataType).value;throw new Ut(se`d.ref(${s}) is illegal, cannot take a reference to a constant.
7-----
8- Try 'd.ref(${a}(${s}));' instead to create a new referencable value.
9-----`)}if(aa(s)&&xa(s.dataType)){let a=t.resolve(s.dataType).value;throw new Ut(se`d.ref(${s}) is illegal, cannot take a reference to a scalar value.
10-----
11- Try 'd.ref(${a}(${s}));' instead to create a new referencable scalar.
12-----`)}if(ws(s.dataType))return Te(s.value,c7(s.dataType),s.origin);let r=pd(s.origin,s.dataType);return Te(new Ya(s,r),r??os,"runtime")}},e})();function X_(e){return e?.[K]?.type==="ref"}function CU(e){let t={[K]:{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,a){return r===K?!1:r==="$"?(console.log("Setting ref value:",a),Reflect.set(t,r,a)):Reflect.set(e,r,a)}}):t}var Ya=class{[K];snippet;#e;constructor(e,t){this[K]=!0,this.snippet=e,this.#e=t}get[ro](){if(!this.#e)throw new Error(se`Cannot take a reference of ${this.snippet}`);return Te(this,this.#e,this.snippet.origin)}[Je](){if(!this.#e)throw new Error(se`Cannot take a reference of ${this.snippet}`);return Te(se`(&${this.snippet})`,this.#e,this.snippet.origin)}};function _d(e){if(!ws(e.dataType))return e;let t=e.dataType.inner;return e.value instanceof Ya?Te(se`${e.value.snippet}`,t,e.origin):Te(se`(*${e})`,t,e.origin)}function hr(e,t){let s=e;return k7(s)?s[nd](t):typeof s!="function"?t:t===void 0?s():s(t)}function q_(e,t,s){if(!Y_(t))return s;let r=t;return s===void 0||s.value===void 0?r[ms].call(e,[]):r[ms].call(e,[s])}function Dn(e,t){throw new Error(`Failed to handle ${e} at ${t}`)}function H_(e,t){Vs(Dt(e.dataType)||xo(e.dataType),"Expected snippet type to be struct/unstruct.");let s=e.dataType.propTypes[t];if(s)return s=Fo(s),Te(se`${e}.${t}`,s,e.origin,e.possibleSideEffects)}var Jh={rank:Number.POSITIVE_INFINITY,action:"none"};function j_(e,t){let s=Fo(e),r=Fo(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 es(s)&&es(r)&&s.type[3]===r.type[3]?j_(s.primitive,r.primitive):Nr(s)&&Nr(r)&&s.type[3]===r.type[3]?{rank:0,action:"none"}:Jh}function PU(e,t){let s=Fo(e),r=Fo(t);if(ws(s)&&s.implicit&&j_(s.inner,r).rank<Number.POSITIVE_INFINITY)return{rank:0,action:"deref"};if(ws(r)&&j_(s,r.inner).rank<Number.POSITIVE_INFINITY)return{rank:1,action:"ref"};let a={f32:0,f16:1,i32:2,u32:3,bool:4};if(s.type in a&&r.type in a){let i=s.type,l=r.type;if(i!==l){let c=a[i];return{rank:a[l]<c?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 Jh}function kU(e,t,s){let r=j_(e,t);return r.rank<Number.POSITIVE_INFINITY?r:s?PU(e,t):Jh}function U7(e,t,s){let r;for(let i of t){let l=i,c=[],d=0;for(let u of e){let p=kU(u,i,s);if(d+=p.rank,p.rank===Number.POSITIVE_INFINITY)break;c.push(p),p.action==="cast"&&(l=p.targetType)}d<(r?.sum??Number.POSITIVE_INFINITY)&&(r={type:l,details:c,sum:d})}if(!r)return;let a=r.details.map((i,l)=>({sourceIndex:l,action:i.action,...i.action==="cast"&&{targetType:i.targetType}}));return{targetType:r.type,actions:a,hasImplicitConversions:a.some(i=>i.action==="cast")}}function Z_(e,t){if(e.length===0)return;let s=[...new Set((t||e).map(Fo))],r=U7(e,s,!1);if(r)return r;let a=U7(e,s,!0);if(a)return a}function RU(e,t,s,r){if(s.action==="none")return r===t.dataType?t:i7(r,t);switch(s.action){case"ref":return Te(new Ya(t,r),r,t.origin);case"deref":return _d(t);case"cast":if(Dt(t.dataType)&&Dt(r)){let a=Ce(t.dataType)??"<unnamed>",i=Ce(r)??"<unnamed>";if(!aa(t))throw new Error(`Cannot resolve struct cast from '${a}' to '${i}'. Store the value to a variable first, then cast it.`);let l=Object.entries(r.propTypes).map(([d,u])=>{let p=H_(t,d);if(!p)throw new Error(`Cannot auto-convert struct '${a}' to '${i}' because the property '${d}' is missing.`);let m=zn(e,[p],[u]);if(!m||!m[0])throw new Error(`Cannot auto-convert struct '${a}' to '${i}' because type '${Ce(p.dataType)??"<unnamed>"}' is not convertible to '${Ce(Fo(u))??"<unnamed>"}'.`);return m[0]}),c=e.resolve(r).value;return Te(`${c}(${l.map(d=>d.value).join(", ")})`,r,"runtime",!1)}return q_(e,r,t);default:Dn(s.action,"applyActionToSnippet")}}function Ws(e,t){if(e.some(r=>r===os))return;let s=Z_(e,t);if(s)return e.map(r=>es(r)||Nr(r)?r:s.targetType)}function zn(e,t,s,r=!0){let a=t.map(l=>l.dataType);if(a.some(l=>l===os))return;!1;let i=Z_(a,s);if(i)return!1,t.map((l,c)=>{let d=i.actions[c];return Vs(d,"Action should not be undefined"),RU(e,l,d,i.targetType)})}function na(e,t,s,r=!0){let a=Array.isArray(s)?s:[s],{value:i,dataType:l,origin:c}=t;if(a.length===1){let u=a[0];if(u===l)return Te(i,u,c);if(l===os)return Te(se`${Te(i,u,c)}`,u,c)}let d=zn(e,[t],a,r);if(d)return d[0];throw new Ut(`Cannot convert value of type '${String(l)}' to any of the target types: [${a.map(u=>u.type).join(", ")}]`)}function Qh(e,t,s){return Object.entries(t.propTypes).map(([r,a])=>{let i=s[r];if(!i)throw new Error(`Missing property ${r}`);return zn(e,[i],[a])?.[0]??i})}function In(e){let t=((...s)=>e.normalImpl(...s));return je(t,e.name),t.toString=()=>e.name,t[ms]={get strictSignature(){},call(s,r){let a=e.argTypes(...r.map(c=>ws(c.dataType)&&c.dataType.implicit?c.dataType.inner:c.dataType)),i=r.map((c,d)=>{let u=a[d];
12if(!u)throw new Error("Function called with invalid arguments");return na(s,c,u,!1)}),l;if(i.every(c=>Us(c))){s.pushMode(new Na);try{l=Te(e.normalImpl(...i.map(c=>c.value)),e.schema(),"constant")}finally{s.popMode("normal")}}else l=e.codegenImpl(s,i);return r.some(c=>c.possibleSideEffects)?l:l7(l)}},t}var $U=In({name:"bool",schema:()=>Et,argTypes:e=>e?[e]:[],normalImpl(e){return e===void 0?!1:typeof e=="boolean"?e:!!e},codegenImpl:(e,[t])=>e.gen.typeInstantiation(Et,t?[t]:[])}),Et=Object.assign($U,{[K]:{},type:"bool"}),UU=In({name:"u32",schema:()=>ie,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 Nu(e,ie);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(ie,t?[t]:[])}),ie=Object.assign(UU,{[K]:{},type:"u32"}),DU=In({name:"i32",schema:()=>fe,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 Nu(e,fe);return e|0},codegenImpl:(e,[t])=>e.gen.typeInstantiation(fe,t?[t]:[])}),ey={[K]:{},type:"u16"},fe=Object.assign(DU,{[K]:{},type:"i32"}),zU=In({name:"f32",schema:()=>S,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 Nu(e,S);return Math.fround(e)},codegenImpl:(e,[t])=>e.gen.typeInstantiation(S,t?[t]:[])}),S=Object.assign(zU,{[K]:{},type:"f32"}),D7=new ArrayBuffer(4),IU=new Float32Array(D7),LU=new Uint32Array(D7);function FU(e){IU[0]=e;let t=LU[0],s=t>>>31&1,r=t>>>23&255,a=t&8388607;return r===255?s<<15|31744|(a?512:0):(r=r-127+15,r<=0?r<-10?s<<15:(a=(a|8388608)>>1-r,a=a+4096>>13,s<<15|a):r>=31||(a=a+4096,a&8388608&&(a=0,++r,r>=31))?s<<15|31744:s<<15|r<<10|a>>13)}function BU(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 VU(e){return BU(FU(e))}var OU=In({name:"f16",schema:()=>Fs,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 Nu(e,Fs);return VU(e)},codegenImpl:(e,[t])=>e.gen.typeInstantiation(Fs,t?[t]:[])}),Fs=Object.assign(OU,{[K]:{},type:"f16"}),ic={[K]:{},type:"abstractInt",toString(){return"abstractInt"},concretized:fe},Ln={[K]:{},type:"abstractFloat",toString(){return"abstractFloat"},concretized:S};function Wr(e){return e>=2**63||e<-(2**63)?Te(e,Ln,"constant",!1):Number.isInteger(e)?(Number.isSafeInteger(e)||console.warn(`The integer ${e} exceeds the safe integer range and may have lost precision.`),Te(e,ic,"constant",!1)):Te(e,Ln,"constant",!1)}function yr(e){return e.type==="abstractFloat"?S:e.type==="abstractInt"?fe:e}function z7(e){return Te(e.value,yr(e.dataType),e.origin)}function Xr(e){if(li(e))return e;if(X_(e))throw new Error("Cannot use refs (d.ref(...)) from the outer scope.");let t=nc(e);return t||(Rs(e)||Or(e)?Te(e,dd(e),"constant",!1):typeof e=="string"||typeof e=="function"||typeof e=="object"||typeof e=="symbol"||typeof e>"u"||e===null?Te(e,os,"constant",!1):typeof e=="number"?Wr(e):typeof e=="boolean"?Te(e,Et,"constant",!1):Te(e,os,"constant",!1))}var Qi=class{[K]=!0;type;elements;constructor(e,t){this.type=e,this.elements=t}toString(){return"ArrayExpression"}[Je](e){for(let t of this.elements)if(aa(t)&&!xa(t.dataType)){let s=e.resolve(t.value,t.dataType).value,r=e.resolve(yr(t.dataType)).value;throw new Ut(`'${s}' reference cannot be used in an array constructor.
13-----
14Try '${r}(${s})' or 'arrayOf(${r}, count)([...])' to copy the value instead.
15-----`)}return e.gen.typeInstantiation(this.type,this.elements)}};var ui=["x","y","z","w"],pi=["r","g","b","a"],dn=class lc extends Array{static{for(let t=0;t<4;t++)for(let s=0;s<4;s++)for(let r=0;r<4;r++)for(let a=0;a<4;a++){let i=`${ui[t]}${ui[s]}${ui[r]}${ui[a]}`,l=`${pi[t]}${pi[s]}${pi[r]}${pi[a]}`;Object.defineProperty(lc.prototype,i,{get(){return new this._Vec4(this[t],this[s],this[r],this[a])}}),Object.defineProperty(lc.prototype,l,{get(){return new this._Vec4(this[t],this[s],this[r],this[a])}})}for(let t=0;t<4;t++)for(let s=0;s<4;s++)for(let r=0;r<4;r++){let a=`${ui[t]}${ui[s]}${ui[r]}`,i=`${pi[t]}${pi[s]}${pi[r]}`;Object.defineProperty(lc.prototype,a,{get(){return new this._Vec3(this[t],this[s],this[r])}}),Object.defineProperty(lc.prototype,i,{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=`${ui[t]}${ui[s]}`,a=`${pi[t]}${pi[s]}`;Object.defineProperty(lc.prototype,r,{get(){return new this._Vec2(this[t],this[s])}}),Object.defineProperty(lc.prototype,a,{get(){return new this._Vec2(this[t],this[s])}})}}castElement(){return this[K].elementSchema}[Je](t){let s=dd(this);return this.every(r=>!r)?t.gen.typeInstantiation(s,[]):this.every(r=>this[0]===r)?t.gen.typeInstantiation(s,[Wr(this[0])]):t.gen.typeInstantiation(s,this.map(r=>Wr(r)))}toString(){return`${this.kind}(${this.join(", ")})`}}
vendor: 11,827 bytes, line 15
15,qu=class extends dn{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)}},Hu=class extends dn{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)}},ju=class extends dn{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}},K_=class I7 extends qu{get[K](){return{elementSchema:S}}get kind(){return"vec2f"}get _Vec2(){return I7}get _Vec3(){return sf}get _Vec4(){return lf}},J_=class L7 extends qu{get[K](){return{elementSchema:Fs}}get kind(){return"vec2h"}get _Vec2(){return L7}get _Vec3(){return of}get _Vec4(){return cf}},Q_=class F7 extends qu{get[K](){return{elementSchema:fe}}get kind(){return"vec2i"}get _Vec2(){return F7}get _Vec3(){return rf}get _Vec4(){return df}},ef=class B7 extends qu{get[K](){return{elementSchema:ie}}get kind(){return"vec2u"}get _Vec2(){return B7}get _Vec3(){return af}get _Vec4(){return uf}},tf=class V7 extends qu{get[K](){return{elementSchema:Et}}get kind(){return"vec2<bool>"}get _Vec2(){return V7}get _Vec3(){return nf}get _Vec4(){return pf}},sf=class O7 extends Hu{get[K](){return{elementSchema:S}}get kind(){return"vec3f"}get _Vec2(){return K_}get _Vec3(){return O7}get _Vec4(){return lf}},of=class N7 extends Hu{get[K](){return{elementSchema:Fs}}get kind(){return"vec3h"}get _Vec2(){return J_}get _Vec3(){return N7}get _Vec4(){return cf}},rf=class Y7 extends Hu{get[K](){return{elementSchema:fe}}get kind(){return"vec3i"}get _Vec2(){return Q_}get _Vec3(){return Y7}get _Vec4(){return df}},af=class G7 extends Hu{get[K](){return{elementSchema:ie}}get kind(){return"vec3u"}get _Vec2(){return ef}get _Vec3(){return G7}get _Vec4(){return uf}},nf=class W7 extends Hu{get[K](){return{elementSchema:Et}}get kind(){return"vec3<bool>"}get _Vec2(){return tf}get _Vec3(){return W7}get _Vec4(){return pf}},lf=class X7 extends ju{get[K](){return{elementSchema:S}}get kind(){return"vec4f"}get _Vec2(){return K_}get _Vec3(){return sf}get _Vec4(){return X7}},cf=class q7 extends ju{get[K](){return{elementSchema:Fs}}get kind(){return"vec4h"}get _Vec2(){return J_}get _Vec3(){return of}get _Vec4(){return q7}},df=class H7 extends ju{get[K](){return{elementSchema:fe}}get kind(){return"vec4i"}get _Vec2(){return Q_}get _Vec3(){return rf}get _Vec4(){return H7}},uf=class j7 extends ju{get[K](){return{elementSchema:ie}}get kind(){return"vec4u"}get _Vec2(){return ef}get _Vec3(){return af}get _Vec4(){return j7}},pf=class Z7 extends ju{get[K](){return{elementSchema:Et}}get kind(){return"vec4<bool>"}get _Vec2(){return tf}get _Vec3(){return nf}get _Vec4(){return Z7}};var H=qr(K_,S),Bo=qr(J_,Fs),fs=qr(Q_,fe),Qe=qr(ef,ie),Pr=qr(tf,Et),W=qr(sf,S),Uo=qr(of,Fs),Os=qr(rf,fe),Bt=qr(af,ie),kr=qr(nf,Et),ee=qr(lf,S),Vo=qr(cf,Fs),ls=qr(df,fe),ts=qr(uf,ie),Rr=qr(pf,Et),Zu={vec2f:H,vec2h:Bo,vec2i:fs,vec2u:Qe,"vec2<bool>":Pr,vec3f:W,vec3h:Uo,vec3i:Os,vec3u:Bt,"vec3<bool>":kr,vec4f:ee,vec4h:Vo,vec4i:ls,vec4u:ts,"vec4<bool>":Rr};function qr(e,t){let{kind:s,length:r}=new e,a=r,l=In({name:s,schema:()=>c,argTypes:(...d)=>d.map(u=>es(u)?u:t),normalImpl:(...d)=>{let u=Array.from({length:d.length}),p=0;for(let m of d)if(typeof m=="number"||typeof m=="boolean")u[p++]=m;else for(let _=0;_<m.length;++_)u[p++]=m[_];if(u.length<=1||u.length===a)return new e(...u);throw new Error(`'${s}' constructor called with invalid number of arguments.`)},codegenImpl:(d,u)=>d.gen.typeInstantiation(c,u)}),c=Object.assign(l,{[K]:{},type:s,primitive:t,componentCount:a,[ii]:void 0});return e.prototype.schema=c,c}var jt=class{[K]={};type;[ms];constructor(e){this.type=e,this[ms]={call:(t,[s])=>q_(t,Hr[this.type],s)}}[nd](e){return hr(Hr[this.type],e)}},Hr={uint8:ie,uint8x2:Qe,uint8x4:ts,sint8:fe,sint8x2:fs,sint8x4:ls,unorm8:S,unorm8x2:H,unorm8x4:ee,snorm8:S,snorm8x2:H,snorm8x4:ee,uint16:ie,uint16x2:Qe,uint16x4:ts,sint16:fe,sint16x2:fs,sint16x4:ls,unorm16:S,unorm16x2:H,unorm16x4:ee,snorm16:S,snorm16x2:H,snorm16x4:ee,float16:S,float16x2:H,float16x4:ee,float32:S,float32x2:H,float32x3:W,float32x4:ee,uint32:ie,uint32x2:Qe,uint32x3:Bt,uint32x4:ts,sint32:fe,sint32x2:fs,sint32x3:Os,sint32x4:ls,"unorm10-10-10-2":ee,"unorm8x4-bgra":ee},fd=new Set(Object.keys(Hr)),ty=new jt("uint8"),sy=new jt("uint8x2"),oy=new jt("uint8x4"),ry=new jt("sint8"),ay=new jt("sint8x2"),ny=new jt("sint8x4"),iy=new jt("unorm8"),ly=new jt("unorm8x2"),cy=new jt("unorm8x4"),dy=new jt("snorm8"),uy=new jt("snorm8x2"),py=new jt("snorm8x4"),my=new jt("uint16"),_y=new jt("uint16x2"),fy=new jt("uint16x4"),vy=new jt("sint16"),hy=new jt("sint16x2"),yy=new jt("sint16x4"),gy=new jt("unorm16"),xy=new jt("unorm16x2"),by=new jt("unorm16x4"),wy=new jt("snorm16"),Ty=new jt("snorm16x2"),Sy=new jt("snorm16x4"),Ay=new jt("float16"),Ey=new jt("float16x2"),My=new jt("float16x4"),Cy=new jt("float32"),Py=new jt("float32x2"),ky=new jt("float32x3"),Ry=new jt("float32x4"),$y=new jt("uint32"),Uy=new jt("uint32x2"),Dy=new jt("uint32x3"),zy=new jt("uint32x4"),Iy=new jt("sint32"),Ly=new jt("sint32x2"),Fy=new jt("sint32x3"),By=new jt("sint32x4"),Vy=new jt("unorm10-10-10-2"),Oy=new jt("unorm8x4-bgra");function Ku(e){return Ht(e)&&fd.has(e?.type)}var NU={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 YU(e){let t=e?.type,s=NU[t];if(s!==void 0)return s;if(Dt(e))return Object.values(e.propTypes).map(rs).reduce((r,a)=>r>a?r:a);if(Wt(e))return rs(e.elementType);if(xo(e)){let r=Object.values(e.propTypes)[0];return r?ud(r)??1:1}if(ur(e))return ud(e.elementType)??1;if(Lo(e)||Jo(e))return ud(e)??rs(e.inner);if(fd.has(t))return 1;throw new Error(`Cannot determine alignment of data: ${Qo(e)}`)}function GU(e){if(xo(e)){let t=Object.values(e.propTypes)[0];return t?$r(t):1}return ur(e)?$r(e.elementType):Jo(e)?ud(e)??$r(e.inner):ud(e)??1}var K7=new WeakMap,J7=new WeakMap;function rs(e){let t=K7.get(e);return t===void 0&&(t=YU(e),K7.set(e,t)),t}function $r(e){let t=J7.get(e);return t===void 0&&(t=GU(e),J7.set(e,t)),t}function Ny(e){return rs(e)}var Xs=(e,t)=>{let s=t-1,r=~s;return(e&s)===0?e:(e&r)+t};var WU={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 XU(e){let t=0,s=0,r=!0,a=!1;for(let l of Object.values(e.propTypes)){if(Number.isNaN(t))throw new Error("Only the last property of a struct can be unbounded");let c=t;t=Xs(t,rs(l));let d=c!==t,u=cc(l);if(t+=u.size,Number.isNaN(t)&&l.type!=="array")throw new Error("Cannot nest unbounded struct within another struct");a||(!d&&u.isContiguous?s+=u.size:(a=!0,r=!1,d||(s+=u.longestContiguousPrefix)))}let i=Xs(t,rs(e));return{isContiguous:t===i&&r,size:i,longestContiguousPrefix:s}}function qU(e){let t=0,s=0,r=!0,a=!1;for(let i of Object.values(e.propTypes)){let l=$r(i),c=t;t=Xs(t,l);let d=c!==t;d&&(r=!1);let u=cc(i);t+=u.size,!a&&(!d&&u.isContiguous?s+=u.size:(a=!0,r=!1,d||(s+=u.longestContiguousPrefix)))}return{isContiguous:r,size:t,longestContiguousPrefix:s}}function HU(e){let t=e.elementType,s=cc(t),r=s.size,a=Xs(r,rs(t)),i=!(a>r)&&s.isContiguous,l=e.elementCount===0?NaN:e.elementCount*a,c;return i?c=l:c=s.longestContiguousPrefix,{size:l,isContiguous:i,longestContiguousPrefix:c}}function jU(e){let t=e.elementType,s=cc(t),r=s.size,a=Xs(r,$r(t)),i=!(a>r)&&s.isContiguous,l=e.elementCount*a,c;return i?c=l:c=s.longestContiguousPrefix,{size:l,isContiguous:i,longestContiguousPrefix:c}}function cc(e){let t=WU[e.type];if(t!==void 0)return{isContiguous:e.type!=="mat3x3f",size:t,longestContiguousPrefix:e.type==="mat3x3f"?12:t};if(Dt(e))return XU(e);if(xo(e))return qU(e);if(Wt(e))return HU(e);if(ur(e))return jU(e);if(Lo(e)||Jo(e)){let s=r7(e),r=cc(Fo(e));return s?{isContiguous:s===r.size&&r.isContiguous,size:s,longestContiguousPrefix:r.longestContiguousPrefix}:cc(e.inner)}throw new Error(`Cannot determine memory layout of data: ${e}`)}var Q7=new WeakMap;function vd(e,t){let s=Q7.get(e);return s===void 0&&(s=cc(e),Q7.set(e,s)),s[t]}function yt(e){return vd(e,"size")}function Yy(e){return yt(e)}function dc(e,t){return Lo(e)?new e5(e.inner,[t,...e.attribs]):Jo(e)?new t5(e.inner,[t,...e.attribs]):Pn(e)?new t5(e,[t]):new e5(e,[t])}function Gy(e,t){return dc(t,{[K]:!0,type:"@align",params:[e]})}function Wy(e,t){return dc(t,{[K]:!0,type:"@size",params:[e]})}function uc(e,t){return dc(t,{[K]:!0,type:"@location",params:[e]})}function Xy(e,t){return dc(t,{[K]:!0,type:"@interpolate",params:[e]})}function qy(e){if(!tr(e))throw new Error("The @invariant attribute must only be applied to the position built-in value.");let t=Lo(e)||Jo(e)?e.attribs.find(ld):void 0;if(!t||t.params[0]!=="position")throw new Error("The @invariant attribute must only be applied to the position built-in value.");return dc(e,{[K]:!0,type:"@invariant",params:[]})}function tr(e){return(Lo(e)||Jo(e))&&e.attribs.find(ld)!==void 0}function el(e){return!Lo(e)&&!Jo(e)?"":e.attribs.map(t=>t.params.length===0?`${t.type} `:`${t.type}(${t.params.join(", ")}) `).join("")}var s5=class{[K]={};inner;attribs;constructor(e,t){this.inner=e,this.attribs=t;let s=t.find(oc)?.params[0],r=t.find(rc)?.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(fr(this.inner)&&s%rs(this.inner)!==0)throw new Error(`Custom alignment has to be a multiple of the standard data alignment. Got: ${s}, expected multiple of: ${rs(this.inner)}.`)}if(r!==void 0){if(r<yt(this.inner))throw new Error(`Custom data size c
15annot be smaller then the standard data size. Got: ${r}, expected at least: ${yt(this.inner)}.`);if(r<=0)throw new Error(`Custom data size must be a positive number. Got: ${r}.`)}}},e5=class extends s5{[K]={};type="decorated"},t5=class extends s5{[K]={};type="loose-decorated"};var Ju=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"]),o5=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 r5(e){if(e){let t=e.replaceAll(/\s/g,"_").replaceAll(/[^\
vendor: 6,453 bytes, line 15
15w]/g,"");return hd(t).success?t:"item"}return"item"}function hd(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 mf(e){let t=hd(e);return t.success?Ju.has(e)?{success:!1,error:"Identifiers cannot start with reserved keywords."}:{success:!0}:t}function sr(e){return Qu(e,!1)}function or(e){return Qu(e,!0)}function Qu(e,t){Object.keys(e).forEach(r=>{let a=mf(r);if(!a.success)throw new Error(`Invalid property key '${r}'${a.error?`: ${a.error}`:""}`)});let s=r=>Object.fromEntries(Object.entries(e).map(([a,i])=>[a,hr(i,r?.[a])]));return Object.setPrototypeOf(s,ZU),s.propTypes=e,Object.defineProperty(s,K,{value:{isAbstruct:t}}),s}var ZU={type:"struct",$name(e){return je(this,e),this},toString(){return`struct:${Ce(this)??"<unnamed>"}`}};var Ao=class extends Error{constructor(e){super(e),this.name=this.constructor.name}};function ve(e){let t=((...s)=>{if(typeof e.normalImpl=="string")throw new Ao(e.normalImpl);return e.normalImpl(...s)});return e.name&&je(t,e.name),t.toString=()=>e.name??"<unknown>",t[ms]={get strictSignature(){return typeof e.signature!="function"?e.signature:void 0},call(s,r){let{argTypes:a,returnType:i}=typeof e.signature=="function"?e.signature(...r.map(c=>ws(c.dataType)&&c.dataType.implicit?c.dataType.inner:c.dataType)):e.signature,l=r.map((c,d)=>{let u=a[d];if(!u)throw new Error("Function called with invalid arguments");return na(s,c,u,!e.ignoreImplicitCastWarning)});if(!e.noComptime&&l.every(c=>Us(c))&&typeof e.normalImpl=="function"){s.pushMode(new Na);try{return Te(e.normalImpl(...l.map(c=>c.value)),i,"constant")}catch(c){if(!(c instanceof Ao))throw c}finally{s.popMode("normal")}}return Te(e.codegenImpl(s,l),yr(i),"runtime")}},t}function Do(e){let t=((...s)=>e(...s));return t.toString=()=>"comptime",t[bs]=e,t[ms]={call(s,r){if(!r.every(a=>Us(a)))throw new Ut(`Called comptime function with runtime-known values: ${r.filter(a=>!Us(a)).map(a=>`'${a.value}'`).join(", ")}`);s.pushMode(new Na);try{return Xr(e(...r.map(a=>a.value)))}finally{s.popMode()}}},t.$name=s=>(je(e,s),t),Object.defineProperty(t,K,{value:{isComptime:!0}}),t}var pc=class{};function Hy(e){let t=In({name:e.type,schema:()=>s,normalImpl:(...r)=>{let a=[];for(let i of r)if(typeof i=="number")a.push(i);else for(let l=0;l<i.length;++l)a.push(i[l]);if(a.length!==0&&a.length!==e.columns*e.rows)throw new Error(`'${e.type}' constructor called with invalid number of arguments.`);for(let i=a.length;i<e.columns*e.rows;++i)a.push(0);return new e.MatImpl(...a)},argTypes:(...r)=>r.map(a=>es(a)?a:S),codegenImpl:(r,a)=>r.gen.typeInstantiation(s,a)}),s=Object.assign(t,{[K]:{},type:e.type,primitive:S,identity:oD[e.columns],translation:e.columns===4?tl:void 0,scaling:e.columns===4?sl:void 0,rotationX:e.columns===4?ol:void 0,rotationY:e.columns===4?rl:void 0,rotationZ:e.columns===4?al:void 0});return e.MatImpl.prototype.schema=s,s}var a5=[0,1,2,3],KU=class extends pc{[K]=!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]}[Je](e){return e.gen.typeInstantiation(gr,a5.map(t=>Wr(this[t])))}toString(){return`${this.kind}(${a5.map(e=>this[e]).join(", ")})`}},JU=class extends KU{kind="mat2x2f";makeColumn(e,t){return H(e,t)}},n5=[0,1,2,4,5,6,8,9,10],QU=class extends pc{[K]=!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]}[Je](e){return e.gen.typeInstantiation(bo,n5.map(t=>Wr(this[t])))}toString(){return`${this.kind}(${n5.map(e=>this[e]).join(", ")})`}},eD=class extends QU{kind="mat3x3f";makeColumn(e,t,s){return W(e,t,s)}},i5=Array.from({length:16},(e,t)=>t),tD=class extends pc{[K]=!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]}[Je](e){return e.gen.typeInstantiation(Ms,i5.map(t=>Wr(this[t])))}toString(){return`${this.kind}(${i5.map(e=>this[e]).join(", ")})`}}
15,sD=class extends tD{kind="mat4x4f";makeColumn(e,t,s,r){return ee(e,t,s,r)}},_f=Do(()=>gr(1,0,0,1)).$name("identity2"),ff=Do(()=>bo(1,0,0,0,1,0,0,0,1)).$name("identity3"),vf=Do(()=>Ms(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)).$name("identity4"),oD={2:_f,3:ff,4:vf},tl=ve({name:"translation4",normalImpl:e=>Ms(1,0,0,0,0,1,0,0,0,0,1,0,e.x,e.y,e.z,1),get signature(){return{argTypes:[W],returnType:Ms}},codegenImpl:(e,[t])=>se`mat4x4f(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, ${t}.x, ${t}.y, ${t}.z, 1)`}),sl=ve({name:"scaling4",normalImpl:e=>Ms(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1),get signature(){return{argTypes:[W],returnType:Ms}},codegenImpl:(e,[t])=>se`mat4x4f(${t}.x, 0, 0, 0, 0, ${t}.y, 0, 0, 0, 0, ${t}.z, 0, 0, 0, 0, 1)`}),ol=ve({name:"rotationX4",normalImpl:e=>Ms(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:[S],returnType:Ms}},codegenImpl:(e,[t])=>se`mat4x4f(1, 0, 0, 0, 0, cos(${t}), sin(${t}), 0, 0, -sin(${t}), cos(${t}), 0, 0, 0, 0, 1)`}),rl=ve({name:"rotationY4",normalImpl:e=>Ms(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:[S],returnType:Ms}},codegenImpl:(e,[t])=>se`mat4x4f(cos(${t}), 0, -sin(${t}), 0, 0, 1, 0, 0, sin(${t}), 0, cos(${t}), 0, 0, 0, 0, 1)`}),al=ve({name:"rotationZ4",normalImpl:e=>Ms(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:[S],returnType:Ms}},codegenImpl:(e,[t])=>se`mat4x4f(cos(${t}), sin(${t}), 0, 0, -sin(${t}), cos(${t}), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)`}),gr=Hy({type:"mat2x2f",rows:2,columns:2,MatImpl:JU}),bo=Hy({type:"mat3x3f",rows:3,columns:3,MatImpl:eD}),Ms=Hy({type:"mat4x4f",rows:4,columns:4,MatImpl:sD});function jy(e){return e.kind==="mat3x3f"?[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]]:Array.from({length:e.length}).map((t,s)=>e[s])}var mi=(e,t,s)=>{if(e===t)return 0;let r=cs((s-e)/(t-e),0,1);return r*r*(3-2*r)},cs=(e,t,s)=>Math.min(Math.max(t,e),s),mc=(e,t)=>t===0?e:Math.trunc(e/t);function Ga(e){let t=new DataView(new ArrayBuffer(4));return t.setUint32(0,e,!0),t.getFloat32(0,!0)}function Wa(e){let t=new DataView(new ArrayBuffer(4));return t.setUint32(0,e,!0),t.getInt32(0,!0)}var Xa=Pr,ja=H,fi=Bo,hc=fs,op=Qe,qa=kr,wa=W,Fn=Uo,yc=Os,rp=Bt,Ha=Rr,Za=ee,vi=Vo,gc=ls,ap=ts,yd=e=>Math.sqrt(e.x**2+e.y**2),gd=e=>Math.sqrt(e.x**2+e.y**2+e.z**2),xd=e=>Math.sqrt(e.x**2+e.y**2+e.z**2+e.w**2),hf=(e,t)=>
15e.x*t.x+e.y*t.y,yf=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z,gf=(e,t)=>e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w,uo=e=>t=>ja(e(t.x),e(t.y)),Eo=e=>t=>fi(e(t.x),e(t.y)),bd=e=>t=>hc(e(t.x),e(t.y)),ep=e=>t=>op(e(t.x),e(t.y)),ao=e=>t=>wa(e(t.x),e(t.y),e(t.z)),Mo=e=>t=>Fn(e(t.x),e(t.y),e(t.z)),wd=e=>t=>yc(e(t.x),e(t.y),e(t.z)),tp=e=>t=>rp(e(t.x),e(t.y),e(t.z)),Qs=e=>t=>Za(e(t.x),e(t.y),e(t.z),e(t.w)),Co=e=>t=>vi(e(t.x),e(t.y),e(t.z),e(t.w)),Td=e=>t=>gc(e(t.x),e(t.y),e(t.z),e(t.w)),sp=e=>t=>ap(e(t.x),e(t.y),e(t.z),e(t.w)),l5=e=>t=>{let s=t.columns;return gr(uo(e)(s[0]),uo(e)(s[1]))},c5=e=>t=>{let s=t.columns;return bo(ao(e)(s[0]),ao(e)(s[1]),ao(e)(s[2]))},d5=e=>t=>{let s=t.columns;return Ms(Qs(e)(s[0]),Qs(e)(s[1]),Qs(e)(s[2]),Qs(e)(s[3]))},_i=e=>(t,s)=>ja(e(t.x,s.x),e(t.y,s.y)),_c=e=>(t,s)=>fi(e(t.x,s.x),e(t.y,s.y)),Sd=e=>(t,s)=>hc(e(t.x,s.x),e(t.y,s.y)),nl=e=>(t,s)=>op(e(t.x,s.x),e(t.y,s.y)),Bn=e=>(t,s)=>wa(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),fc=e=>(t,s)=>Fn(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),Ad=e=>(t,s)=>yc(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),il=e=>(t,s)=>rp(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),un=e=>(t,s)=>Za(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),vc=e=>(t,s)=>vi(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),Ed=e=>(t,s)=>gc(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),ll=e=>(t,s)=>ap(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),u5=e=>(t,s)=>hc(e(t.x,s.x),e(t.y,s.y)),p5=e=>(t,s)=>yc(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z)),m5=e=>(t,s)=>gc(e(t.x,s.x),e(t.y,s.y),e(t.z,s.z),e(t.w,s.w)),rD=e=>(t,s)=>{let r=t.columns,a=s.columns;return gr(_i(e)(r[0],a[0]),_i(e)(r[1],a[1]))},aD=e=>(t,s)=>{let r=t.columns,a=s.columns;return bo(Bn(e)(r[0],a[0]),Bn(e)(r[1],a[1]),Bn(e)(r[2],a[2]))},nD=e=>(t,s)=>{let r=t.columns,a=s.columns;return Ms(un(e)(r[0],a[0]),un(e)(r[1],a[1]),un(e)(r[2],a[2]),un(e)(r[3],a[3]))},iD=e=>(t,s,r)=>ja(e(t.x,s.x,r.x),e(t.y,s.y,r.y)),lD=e=>(t,s,r)=>fi(e(t.x,s.x,r.x),e(t.y,s.y,r.y)),cD=e=>(t,s,r)=>wa(e(t.x,s.x,r.x),e(t.y,s.y,r.y),e(t.z,s.z,r.z)),dD=e=>(t,s,r)=>Fn(e(t.x,s.x,r.x),e(t.y,s.y,r.y),e(t.z,s.z,r.z)),uD=e=>(t,s,r)=>Za(e(t.x,s.x,r.x),e(t.y,s.y,r.y),e(t.z,s.z,r.z),e(t.w,s.w,r.w)),pD=e=>(t,s,r)=>vi(e(t.x,s.x,r.x),e(t.y,s.y,r.y),e(t.z,s.z,r.z),e(t.w,s.w,r.w)),gt={eq:{vec2f:(e,t)=>Xa(e.x===t.x,e.y===t.y),vec2h:(e,t)=>Xa(e.x===t.x,e.y===t.y),vec2i:(e,t)=>Xa(e.x===t.x,e.y===t.y),vec2u:(e,t)=>Xa(e.x===t.x,e.y===t.y),"vec2<bool>":(e,t)=>Xa(e.x===t.x,e.y===t.y),vec3f:(e,t)=>qa(e.x===t.x,e.y===t.y,e.z===t.z),vec3h:(e,t)=>qa(e.x===t.x,e.y===t.y,e.z===t.z),vec3i:(e,t)=>qa(e.x===t.x,e.y===t.y,e.z===t.z),vec3u:(e,t)=>qa(e.x===t.x,e.y===t.y,e.z===t.z),"vec3<bool>":(e,t)=>qa(e.x===t.x,e.y===t.y,e.z===t.z),vec4f:(e,t)=>Ha(e.x===t.x,e.y===t.y,e.z===t.z,e.w===t.w),vec4h:(e,t)=>Ha(e.x===t.x,e.y===t.y,e.z===t.z,e.w===t.w),vec4i:(e,t)=>Ha(e.x===t.x,e.y===t.y,e.z===t.z,e.w===t.w),vec4u:(e,t)=>Ha(e.x===t.x,e.y===t.y,e.z===t.z,e.w===t.w),"vec4<bool>":(e,t)=>Ha(e.x===t.x,e.y===t.y,e.z===t.z,e.w===t.w)},lt:{vec2f:(e,t)=>Xa(e.x<t.x,e.y<t.y),vec2h:(e,t)=>Xa(e.x<t.x,e.y<t.y),vec2i:(e,t)=>Xa(e.x<t.x,e.y<t.y),vec2u:(e,t)=>Xa(e.x<t.x,e.y<t.y),vec3f:(e,t)=>qa(e.x<t.x,e.y<t.y,e.z<t.z),vec3h:(e,t)=>qa(e.x<t.x,e.y<t.y,e.z<t.z),vec3i:(e,t)=>qa(e.x<t.x,e.y<t.y,e.z<t.z),vec3u:(e,t)=>qa(e.x<t.x,e.y<t.y,e.z<t.z),vec4f:(e,t)=>Ha(e.x<t.x,e.y<t.y,e.z<t.z,e.w<t.w),vec4h:(e,t)=>Ha(e.x<t.x,e.y<t.y,e.z<t.z,e.w<t.w),vec4i:(e,t)=>Ha(e.x<t.x,e.y<t.y,e.z<t.z,e.w<t.w),vec4u:(e,t)=>Ha(e.x<t.x,e.y<t.y,e.z<t.z,e.w<t.w)},or:{"vec2<bool>":(e,t)=>Xa(e.x||t.x,e.y||t.y),"vec3<bool>":(e,t)=>qa(e.x||t.x,e.y||t.y,e.z||t.z),"vec4<bool>":(e,t)=>Ha(e.x||t.x,e.y||t.y,e.z||t.z,e.w||t.w)},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},abs:{vec2f:uo(Math.abs),vec2h:Eo(Math.abs),vec2i:bd(Math.abs),vec2u:ep(Math.abs),vec3f:ao(Math.abs),vec3h:Mo(Math.abs),vec3i:wd(Math.abs),vec3u:tp(Math.abs),vec4f:Qs(Math.abs),vec4h:Co(Math.abs),vec4i:Td(Math.abs),vec4u:sp(Math.abs)},atan2:{vec2f:_i(Math.atan2),vec2h:_c(Math.atan2),vec3f:Bn(Math.atan2),vec3h:fc(Math.atan2),vec4f:un(Math.atan2),vec4h:vc(Math.atan2)},acos:{vec2f:uo(Math.acos),vec2h:Eo(Math.acos),vec2i:bd(Math.acos),vec2u:ep(Math.acos),vec3f:ao(Math.acos),vec3h:Mo(Math.acos),vec3i:wd(Math.acos),vec3u:tp(Math.acos),vec4f:Qs(Math.acos),vec4h:Co(Math.acos),vec4i:Td(Math.acos),vec4u:sp(Math.acos)},acosh:{vec2f:uo(Math.acosh),vec2h:Eo(Math.acosh),vec3f:ao(Math.acosh),vec3h:Mo(Math.acosh),vec4f:Qs(Math.acosh),vec4h:Co(Math.acosh)},asin:{vec2f:uo(Math.asin),vec2h:Eo(Math.asin),vec3f:ao(Math.asin),vec3h:Mo(Math.asin),vec4f:Qs(Math.asin),vec4h:Co(Math.asin)},asinh:{vec2f:uo(Math.asinh),vec2h:Eo(Math.asinh),vec3f:ao(Math.asinh),vec3h:Mo(Math.asinh),vec4f:Qs(Math.asinh),vec4h:Co(Math.asinh)},atan:{vec2f:uo(Math.atan),vec2h:Eo(Math.atan),vec3f:ao(Math.atan),vec3h:Mo(Math.atan),vec4f:Qs(Math.atan),vec4h:Co(Math.atan)},atanh:{vec2f:uo(Math.atanh),vec2h:Eo(Math.atanh),vec3f:ao(Math.atanh),vec3h:Mo(Math.atanh),vec4f:Qs(Math.atanh),vec4h:Co(Math.atanh)},ceil:{vec2f:uo(Math.ceil),vec2h:Eo(Math.ceil),vec3f:ao(Math.ceil),vec3h:Mo(Math.ceil),vec4f:Qs(Math.ceil),vec4h:Co(Math.ceil)},clamp:{vec2f:(e,t,s)=>ja(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y)),vec2h:(e,t,s)=>fi(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y)),vec2i:(e,t,s)=>hc(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y)),vec2u:(e,t,s)=>op(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y)),vec3f:(e,t,s)=>wa(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z)),vec3h:(e,t,s)=>Fn(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z)),vec3i:(e,t,s)=>yc(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z)),vec3u:(e,t,s)=>rp(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z)),vec4f:(e,t,s)=>Za(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z),cs(e.w,t.w,s.w)),vec4h:(e,t,s)=>vi(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z),cs(e.w,t.w,s.w)),vec4i:(e,t,s)=>gc(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z),cs(e.w,t.w,s.w)),vec4u:(e,t,s)=>ap(cs(e.x,t.x,s.x),cs(e.y,t.y,s.y),cs(e.z,t.z,s.z),cs(e.w,t.w,s.w))},length:{vec2f:yd,vec2h:yd,vec3f:gd,vec3h:gd,vec4f:xd,vec4h:xd},add:{vec2f:_i((e,t)=>e+t),vec2h:_c((e,t)=>e+t),vec2i:Sd((e,t)=>e+t),vec2u:nl((e,t)=>
15e+t),vec3f:Bn((e,t)=>e+t),vec3h:fc((e,t)=>e+t),vec3i:Ad((e,t)=>e+t),vec3u:il((e,t)=>e+t),vec4f:un((e,t)=>e+t),vec4h:vc((e,t)=>e+t),vec4i:Ed((e,t)=>e+t),vec4u:ll((e,t)=>e+t),mat2x2f:rD((e,t)=>e+t),mat3x3f:aD((e,t)=>e+t),mat4x4f:nD((e,t)=>e+t)},smoothstep:{vec2f:iD(mi),vec2h:lD(mi),vec3f:cD(mi),vec3h:dD(mi),vec4f:uD(mi),vec4h:pD(mi)},addMixed:{vec2f:(e,t)=>uo(s=>s+t)(e),vec2h:(e,t)=>Eo(s=>s+t)(e),vec2i:(e,t)=>bd(s=>s+t)(e),vec2u:(e,t)=>ep(s=>s+t)(e),vec3f:(e,t)=>ao(s=>s+t)(e),vec3h:(e,t)=>Mo(s=>s+t)(e),vec3i:(e,t)=>wd(s=>s+t)(e),vec3u:(e,t)=>tp(s=>s+t)(e),vec4f:(e,t)=>Qs(s=>s+t)(e),vec4h:(e,t)=>Co(s=>s+t)(e),vec4i:(e,t)=>Td(s=>s+t)(e),vec4u:(e,t)=>sp(s=>s+t)(e),mat2x2f:(e,t)=>l5(s=>s+t)(e),mat3x3f:(e,t)=>c5(s=>s+t)(e),mat4x4f:(e,t)=>d5(s=>s+t)(e)},mulSxV:{vec2f:(e,t)=>uo(s=>e*s)(t),vec2h:(e,t)=>Eo(s=>e*s)(t),vec2i:(e,t)=>bd(s=>e*s)(t),vec2u:(e,t)=>ep(s=>e*s)(t),vec3f:(e,t)=>ao(s=>e*s)(t),vec3h:(e,t)=>Mo(s=>e*s)(t),vec3i:(e,t)=>wd(s=>e*s)(t),vec3u:(e,t)=>tp(s=>e*s)(t),vec4f:(e,t)=>Qs(s=>e*s)(t),vec4h:(e,t)=>Co(s=>e*s)(t),vec4i:(e,t)=>Td(s=>e*s)(t),vec4u:(e,t)=>sp(s=>e*s)(t),mat2x2f:(e,t)=>l5(s=>e*s)(t),mat3x3f:(e,t)=>c5(s=>e*s)(t),mat4x4f:(e,t)=>d5(s=>e*s)(t)},mulVxV:{vec2f:_i((e,t)=>e*t),vec2h:_c((e,t)=>e*t),vec2i:Sd((e,t)=>e*t),vec2u:nl((e,t)=>e*t),vec3f:Bn((e,t)=>e*t),vec3h:fc((e,t)=>e*t),vec3i:Ad((e,t)=>e*t),vec3u:il((e,t)=>e*t),vec4f:un((e,t)=>e*t),vec4h:vc((e,t)=>e*t),vec4i:Ed((e,t)=>e*t),vec4u:ll((e,t)=>e*t),mat2x2f:(e,t)=>{let s=e.columns,r=t.columns;return gr(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 bo(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 Ms(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 ja(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 wa(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 Za(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 ja(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 wa(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 Za(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)}},div:{vec2f:_i((e,t)=>e/t),vec2h:_c((e,t)=>e/t),vec2i:Sd(mc),vec2u:nl(mc),vec3f:Bn((e,t)=>e/t),vec3h:fc((e,t)=>e/t),vec3i:Ad(mc),vec3u:il(mc),vec4f:un((e,t)=>e/t),vec4h:vc((e,t)=>e/t),vec4i:Ed(mc),vec4u:ll(mc)},dot:{vec2f:hf,vec2h:hf,vec2i:hf,vec2u:hf,vec3f:yf,vec3h:yf,vec3i:yf,vec3u:yf,vec4f:gf,vec4h:gf,vec4i:gf,vec4u:gf},normalize:{vec2f:e=>{let t=yd(e);return ja(e.x/t,e.y/t)},vec2h:e=>{let t=yd(e);return fi(e.x/t,e.y/t)},vec2i:e=>{let t=yd(e);return hc(e.x/t,e.y/t)},vec2u:e=>{let t=yd(e);return op(e.x/t,e.y/t)},vec3f:e=>{let t=gd(e);return wa(e.x/t,e.y/t,e.z/t)},vec3h:e=>{let t=gd(e);return Fn(e.x/t,e.y/t,e.z/t)},vec3i:e=>{let t=gd(e);return yc(e.x/t,e.y/t,e.z/t)},vec3u:e=>{let t=gd(e);return rp(e.x/t,e.y/t,e.z/t)},vec4f:e=>{let t=xd(e);return Za(e.x/t,e.y/t,e.z/t,e.w/t)},vec4h:e=>{let t=xd(e);return vi(e.x/t,e.y/t,e.z/t,e.w/t)},vec4i:e=>{let t=xd(e);return gc(e.x/t,e.y/t,e.z/t,e.w/t)},vec4u:e=>{let t=xd(e);return ap(e.x/t,e.y/t,e.z/t,e.w/t)}},cross:{vec3f:(e,t)=>
15wa(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)=>Fn(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)},mod:{vec2f:_i((e,t)=>e%t),vec2h:_c((e,t)=>e%t),vec2i:Sd((e,t)=>e%t),vec2u:nl((e,t)=>e%t),vec3f:Bn((e,t)=>e%t),vec3h:fc((e,t)=>e%t),vec3i:Ad((e,t)=>e%t),vec3u:il((e,t)=>e%t),vec4f:un((e,t)=>e%t),vec4h:vc((e,t)=>e%t),vec4i:Ed((e,t)=>e%t),vec4u:ll((e,t)=>e%t)},floor:{vec2f:uo(Math.floor),vec2h:Eo(Math.floor),vec3f:ao(Math.floor),vec3h:Mo(Math.floor),vec4f:Qs(Math.floor),vec4h:Co(Math.floor)},max:{vec2f:_i(Math.max),vec2h:_c(Math.max),vec2i:Sd(Math.max),vec2u:nl(Math.max),vec3f:Bn(Math.max),vec3h:fc(Math.max),vec3i:Ad(Math.max),vec3u:il(Math.max),vec4f:un(Math.max),vec4h:vc(Math.max),vec4i:Ed(Math.max),vec4u:ll(Math.max)},min:{vec2f:_i(Math.min),vec2h:_c(Math.min),vec2i:Sd(Math.min),vec2u:nl(Math.min),vec3f:Bn(Math.min),vec3h:fc(Math.min),vec3i:Ad(Math.min),vec3u:il(Math.min),vec4f:un(Math.min),vec4h:vc(Math.min),vec4i:Ed(Math.min),vec4u:ll(Math.min)},pow:{vec2f:(e,t)=>ja(e.x**t.x,e.y**t.y),vec2h:(e,t)=>fi(e.x**t.x,e.y**t.y),vec3f:(e,t)=>wa(e.x**t.x,e.y**t.y,e.z**t.z),vec3h:(e,t)=>Fn(e.x**t.x,e.y**t.y,e.z**t.z),vec4f:(e,t)=>Za(e.x**t.x,e.y**t.y,e.z**t.z,e.w**t.w),vec4h:(e,t)=>vi(e.x**t.x,e.y**t.y,e.z**t.z,e.w**t.w)},sign:{vec2f:uo(Math.sign),vec2h:Eo(Math.sign),vec2i:bd(Math.sign),vec3f:ao(Math.sign),vec3h:Mo(Math.sign),vec3i:wd(Math.sign),vec4f:Qs(Math.sign),vec4h:Co(Math.sign),vec4i:Td(Math.sign)},sqrt:{vec2f:uo(Math.sqrt),vec2h:Eo(Math.sqrt),vec3f:ao(Math.sqrt),vec3h:Mo(Math.sqrt),vec4f:Qs(Math.sqrt),vec4h:Co(Math.sqrt)},mix:{vec2f:(e,t,s)=>typeof s=="number"?ja(e.x*(1-s)+t.x*s,e.y*(1-s)+t.y*s):ja(e.x*(1-s.x)+t.x*s.x,e.y*(1-s.y)+t.y*s.y),vec2h:(e,t,s)=>typeof s=="number"?fi(e.x*(1-s)+t.x*s,e.y*(1-s)+t.y*s):fi(e.x*(1-s.x)+t.x*s.x,e.y*(1-s.y)+t.y*s.y),vec3f:(e,t,s)=>typeof s=="number"?wa(e.x*(1-s)+t.x*s,e.y*(1-s)+t.y*s,e.z*(1-s)+t.z*s):wa(e.x*(1-s.x)+t.x*s.x,e.y*(1-s.y)+t.y*s.y,e.z*(1-s.z)+t.z*s.z),vec3h:(e,t,s)=>typeof s=="number"?Fn(e.x*(1-s)+t.x*s,e.y*(1-s)+t.y*s,e.z*(1-s)+t.z*s):Fn(e.x*(1-s.x)+t.x*s.x,e.y*(1-s.y)+t.y*s.y,e.z*(1-s.z)+t.z*s.z),vec4f:(e,t,s)=>typeof s=="number"?Za(e.x*(1-s)+t.x*s,e.y*(1-s)+t.y*s,e.z*(1-s)+t.z*s,e.w*(1-s)+t.w*s):Za(e.x*(1-s.x)+t.x*s.x,e.y*(1-s.y)+t.y*s.y,e.z*(1-s.z)+t.z*s.z,e.w*(1-s.w)+t.w*s.w),vec4h:(e,t,s)=>typeof s=="number"?vi(e.x*(1-s)+t.x*s,e.y*(1-s)+t.y*s,e.z*(1-s)+t.z*s,e.w*(1-s)+t.w*s):vi(e.x*(1-s.x)+t.x*s.x,e.y*(1-s.y)+t.y*s.y,e.z*(1-s.z)+t.z*s.z,e.w*(1-s.w)+t.w*s.w)},sin:{vec2f:uo(Math.sin),vec2h:Eo(Math.sin),vec3f:ao(Math.sin),vec3h:Mo(Math.sin),vec4f:Qs(Math.sin),vec4h:Co(Math.sin)},cos:{vec2f:uo(Math.cos),vec2h:Eo(Math.cos),vec3f:ao(Math.cos),vec3h:Mo(Math.cos),vec4f:Qs(Math.cos),vec4h:Co(Math.cos)},cosh:{vec2f:uo(Math.cosh),vec2h:Eo(Math.cosh),vec3f:ao(Math.cosh),vec3h:Mo(Math.cosh),vec4f:Qs(Math.cosh),vec4h:Co(Math.cosh)},exp:{vec2f:uo(Math.exp),vec2h:Eo(Math.exp),vec3f:ao(Math.exp),vec3h:Mo(Math.exp),vec4f:Qs(Math.exp),vec4h:Co(Math.exp)},exp2:{vec2f:uo(e=>2**e),vec2h:Eo(e=>2**e),vec3f:ao(e=>2**e),vec3h:Mo(e=>2**e),vec4f:Qs(e=>2**e),vec4h:Co(e=>2**e)},log:{vec2f:uo(Math.log),vec2h:Eo(Math.log),vec3f:ao(Math.log),vec3h:Mo(Math.log),vec4f:Qs(Math.log),vec4h:Co(Math.log)},log2:{vec2f:uo(Math.log2),vec2h:Eo(Math.log2),vec3f:ao(Math.log2),vec3h:Mo(Math.log2),vec4f:Qs(Math.log2),vec4h:Co(Math.log2)},fract:{vec2f:uo(e=>e-Math.floor(e)),vec2h:Eo(e=>e-Math.floor(e)),vec3f:ao(e=>e-Math.floor(e)),vec3h:Mo(e=>e-Math.floor(e)),vec4f:Qs(e=>e-Math.floor(e)),vec4h:Co(e=>e-Math.floor(e))},isCloseToZero:{vec2f:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t,vec2h:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t,vec3f:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t,vec3h:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t,vec4f:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t&&Math.abs(e.w)<=t,vec4h:(e,t)=>Math.abs(e.x)<=t&&Math.abs(e.y)<=t&&Math.abs(e.z)<=t&&Math.abs(e.w)<=t},neg:{vec2f:uo(e=>-e),vec2h:Eo(e=>-e),vec2i:bd(e=>-e),vec2u:ep(e=>-e),"vec2<bool>":e=>Xa(!e.x,!e.y),vec3f:ao(e=>-e),vec3h:Mo(e=>-e),vec3i:wd(e=>-e),vec3u:tp(e=>-e),"vec3<bool>":e=>qa(!e.x,!e.y,!e.z),vec4f:Qs(e=>-e),vec4h:Co(e=>-e),vec4i:Td(e=>-e),vec4u:sp(e=>-e),"vec4<bool>":e=>Ha(!e.x,!e.y,!e.z,!e.w)},select:{vec2f:(e,t,s)=>ja(s.x?t.x:e.x,s.y?t.y:e.y),vec2h:(e,t,s)=>fi(s.x?t.x:e.x,s.y?t.y:e.y),vec2i:(e,t,s)=>hc(s.x?t.x:e.x,s.y?t.y:e.y),vec2u:(e,t,s)=>op(s.x?t.x:e.x,s.y?t.y:e.y),"vec2<bool>":(e,t,s)=>Xa(s.x?t.x:e.x,s.y?t.y:e.y),vec3f:(e,t,s)=>wa(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z),vec3h:(e,t,s)=>Fn(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z),vec3i:(e,t,s)=>yc(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z),vec3u:(e,t,s)=>rp(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z),"vec3<bool>":(e,t,s)=>qa(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z),vec4f:(e,t,s)=>Za(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z,s.w?t.w:e.w),vec4h:(e,t,s)=>vi(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z,s.w?t.w:e.w),vec4i:(e,t,s)=>gc(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z,s.w?t.w:e.w),vec4u:(e,t,s)=>ap(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z,s.w?t.w:e.w),"vec4<bool>":(e,t,s)=>Ha(s.x?t.x:e.x,s.y?t.y:e.y,s.z?t.z:e.z,s.w?t.w:e.w)},tanh:{vec2f:uo(Math.tanh),vec2h:Eo(Math.tanh),vec3f:ao(Math.tanh),vec3h:Mo(Math.tanh),vec4f:Qs(Math.tanh),vec4h:Co(Math.tanh)},bitShiftLeft:{vec2i:u5((e,t)=>e<<t),vec2u:nl((e,t)=>
15e<<t),vec3i:p5((e,t)=>e<<t),vec3u:il((e,t)=>e<<t),vec4i:m5((e,t)=>e<<t),vec4u:ll((e,t)=>e<<t)},bitShiftRight:{vec2i:u5((e,t)=>e>>t),vec2u:nl((e,t)=>e>>t),vec3i:p5((e,t)=>e>>t),vec3u:il((e,t)=>e>>t),vec4i:m5((e,t)=>e>>t),vec4u:ll((e,t)=>e>>t)},bitcastU32toF32:{vec2u:e=>ja(Ga(e.x),Ga(e.y)),vec3u:e=>wa(Ga(e.x),Ga(e.y),Ga(e.z)),vec4u:e=>Za(Ga(e.x),Ga(e.y),Ga(e.z),Ga(e.w))},bitcastU32toI32:{vec2u:e=>hc(Wa(e.x),Wa(e.y)),vec3u:e=>yc(Wa(e.x),Wa(e.y),Wa(e.z)),vec4u:e=>gc(Wa(e.x),Wa(e.y),Wa(e.z),Wa(e.w))}};var _5=e=>"primitive"in e?e.primitive:e,Zy=e=>(t,s)=>{let{restrict:r}=e??{},a=p=>{throw r?new vr([t,s],r):new Error(`Cannot apply operator to ${t.type} and ${s.type}: ${p}`)};if(e?.noMat&&(Nr(t)||Nr(s)))return a("matrices not supported");let i=es(t)||Nr(t),l=es(s)||Nr(s);if(!i&&!l){let p=Ws([t,s],r);return p?{argTypes:p,returnType:p[0]}:a("incompatible scalar types")}if(i&&l)return e?.matVecProduct&&es(t)!==es(s)?{argTypes:[t,s],returnType:es(t)?t:s}:t.type!==s.type?a("operands must have the same type"):{argTypes:[t,s],returnType:t};let[c,d]=i?[s,t]:[t,s],u=Ws([c],[_5(d)]);return u?{argTypes:i?[t,u[0]]:[u[0],s],returnType:d}:a(`scalar not convertible to ${_5(d).type}`)},v5=Zy(),mD=Zy({matVecProduct:!0}),h5=Zy({noMat:!0,restrict:[S,Fs,Ln]});function y5(e,t){if(typeof e=="number"&&typeof t=="number")return e+t;if(typeof e=="number"&&Rs(t))return gt.addMixed[t.kind](t,e);if(Rs(e)&&typeof t=="number")return gt.addMixed[e.kind](e,t);if(Rs(e)&&Rs(t)||Or(e)&&Or(t))return gt.add[e.kind](e,t);throw new Error("Add/Sub called with invalid arguments.")}var Ta=ve({name:"add",signature:v5,normalImpl:y5,codegenImpl:(e,[t,s])=>se`(${t} + ${s})`});function _D(e,t){return y5(e,g5(-1,t))}var Ts=ve({name:"sub",signature:v5,normalImpl:_D,codegenImpl:(e,[t,s])=>se`(${t} - ${s})`});function g5(e,t){if(typeof e=="number"&&typeof t=="number")return e*t;if(typeof e=="number"&&(Rs(t)||Or(t)))return gt.mulSxV[t.kind](e,t);if((Rs(e)||Or(e))&&typeof t=="number")return gt.mulSxV[e.kind](t,e);if(Rs(e)&&Rs(t))return gt.mulVxV[e.kind](e,t);if(Ih(e)&&Or(t))return gt.mulVxM[t.kind](e,t);if(Or(e)&&Ih(t))return gt.mulMxV[e.kind](e,t);if(Or(e)&&Or(t))return gt.mulVxV[e.kind](e,t);throw new Error("Mul called with invalid arguments.")}var Po=ve({name:"mul",signature:mD,normalImpl:g5,codegenImpl:(e,[t,s])=>se`(${t} * ${s})`});function fD(e,t){if(typeof e=="number"&&typeof t=="number")return e/t;if(typeof e=="number"&&Rs(t)){let s=Zu[t.kind];return gt.div[t.kind](s(e),t)}if(Rs(e)&&typeof t=="number"){let s=Zu[e.kind];return gt.div[e.kind](e,s(t))}if(Rs(e)&&Rs(t))return gt.div[e.kind](e,t);throw new Error("Div called with invalid arguments.")}var cl=ve({name:"div",signature:h5,normalImpl:fD,codegenImpl:(e,[t,s])=>se`(${t} / ${s})`,ignoreImplicitCastWarning:!0}),Vn=ve({name:"mod",signature:h5,normalImpl:((e,t)=>{if(typeof e=="number"&&typeof t=="number")return e%t;if(typeof e=="number"&&Rs(t)){let s=Zu[t.kind];return gt.mod[t.kind](s(e),t)}if(Rs(e)&&typeof t=="number"){let s=Zu[e.kind];return gt.mod[e.kind](e,s(t))}if(Rs(e)&&Rs(t))return gt.mod[e.kind](e,t);throw new Error("Mod called with invalid arguments, expected types: number or vector.")}),codegenImpl:(e,[t,s])=>se`(${t} % ${s})`});function vD(e){return typeof e=="number"?-e:gt.neg[e.kind](e)}var Md=ve({name:"neg",signature:e=>({argTypes:[e],returnType:e}),normalImpl:vD,codegenImpl:(e,[t])=>se`-(${t})`}),f5=[fe,ie,fs,Os,ls,Qe,Bt,ts],x5={vec2i:Qe,vec2u:Qe,vec3i:Bt,vec3u:Bt,vec4i:ts,vec4u:ts},b5=(e,t)=>{let s=Ws([e],f5)?.[0];if(!s)throw new vr([e],f5);let r;if(es(s)){let a=s.componentCount,i=a===2?Qe:a===3?Bt:ts,l=Ws([t],[ie,i])?.[0];if(!l)throw new vr([t],[ie,i]);r=l}else r=ie;return{argTypes:[s,r],returnType:s}};function hD(e,t){if(typeof e=="number"&&typeof t=="number")return e<<t;
vendor: 5,577 bytes, line 15
15if(Fu(e)&&Lh(t)&&e.length==t.length)return gt.bitShiftLeft[e.kind](e,t);if(Fu(e)&&typeof t=="number"){let s=x5[e.kind](t);return gt.bitShiftLeft[e.kind](e,s)}throw new Error("bitShiftLeft called with invalid arguments, expected types: number or integer vector (rhs must be the same arity as lhs).")}var np=ve({name:"bitShiftLeft",signature:b5,normalImpl:hD,codegenImpl:(e,[t,s])=>{if(es(t.dataType)&&!es(s.dataType)){let r=t.dataType.componentCount;return se`(${t} << ${r===2?"vec2u":r===3?"vec3u":"vec4u"}(${s}))`}return se`(${t} << ${s})`}});function yD(e,t){if(typeof e=="number"&&typeof t=="number")return e>>t;if(Fu(e)&&Lh(t)&&e.length==t.length)return gt.bitShiftRight[e.kind](e,t);if(Fu(e)&&typeof t=="number"){let s=x5[e.kind](t);return gt.bitShiftRight[e.kind](e,s)}throw new Error("bitShiftRight called with invalid arguments, expected types: number or integer vector (rhs must be the same arity as lhs).")}var ip=ve({name:"bitShiftRight",signature:b5,normalImpl:yD,codegenImpl:(e,[t,s])=>{if(es(t.dataType)&&!es(s.dataType)){let r=t.dataType.componentCount;return se`(${t} >> ${r===2?"vec2u":r===3?"vec3u":"vec4u"}(${s}))`}return se`(${t} >> ${s})`}});var xf={add:Ta,sub:Ts,mul:Po,div:cl,mod:Vn,bitShiftLeft:np,bitShiftRight:ip},bf=class{lhs;operator;constructor(e,t){this.lhs=e,this.operator=t}};function w5(e){return e instanceof bf}function pn(e,t,s){let r=xf[t];Object.defineProperty(e.prototype,s,{value:r});function a(i){return r(this,i)}Object.defineProperty(e.prototype,t,{get(){return er()?new bf(this,r):a}})}function xc(){return{[K]:{},type:"sampler",[ii]:void 0}}function bc(){return{[K]:{},type:"sampler_comparison",[ii]:void 0}}function T5(e){return!!e[K]&&e.type==="sampler"}function S5(e){return!!e[K]&&e.type==="sampler_comparison"}function lp(e){if("multisampled"in e){if(e.multisampled){if(e.dimension==="2d")return Sf(e.sampleType);throw new Error(`Multisampled textures only support '2d' dimension, got '${e.dimension}'`)}switch(e.dimension){case"1d":return Tf(e.sampleType);case"2d":return Sa(e.sampleType);case"2d-array":return Af(e.sampleType);case"3d":return Cf(e.sampleType);case"cube":return Ef(e.sampleType);case"cube-array":return Mf(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 Pf(e.format,e.access);case"2d":return jr(e.format,e.access);case"2d-array":return kf(e.format,e.access);case"3d":return Rf(e.format,e.access);default:throw new Error(`Unsupported storage texture dimension: '${e.dimension}'`)}}function Ka(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{[K]:{},[ii]:void 0,type:e,bindingSampleType:s,...t}}function wf(e,t){return{[K]:{},[ii]:void 0,type:e,...t}}var A5=new Map,Cd={"write-only":"write","read-only":"read","read-write":"read_write"};function xr(e,t){let s=A5.get(e);return s||(s=t(),A5.set(e,s)),s}function Tf(e){let t=e||S;return xr(`texture_1d<${t.type}>`,()=>Ka("texture_1d",{dimension:"1d",sampleType:t,multisampled:!1}))}function Sa(e){let t=e||S;return xr(`texture_2d<${t.type}>`,()=>Ka("texture_2d",{dimension:"2d",sampleType:t,multisampled:!1}))}function Sf(e){let t=e||S;return xr(`texture_multisampled_2d<${t.type}>`,()=>Ka("texture_multisampled_2d",{dimension:"2d",sampleType:t,multisampled:!0}))}function Af(e){let t=e||S;return xr(`texture_2d_array<${t.type}>`,()=>Ka("texture_2d_array",{dimension:"2d-array",sampleType:t,multisampled:!1}))}function Ef(e){let t=e||S;return xr(`texture_cube<${t.type}>`,()=>Ka("texture_cube",{dimension:"cube",sampleType:t,multisampled:!1}))}function Mf(e){let t=e||S;return xr(`texture_cube_array<${t.type}>`,()=>Ka("texture_cube_array",{dimension:"cube-array",sampleType:t,multisampled:!1}))}function Cf(e){let t=e||S;return xr(`texture_3d<${t.type}>`,()=>Ka("texture_3d",{dimension:"3d",sampleType:t,multisampled:!1}))}function Pf(e,t){let s=t||"write-only";return xr(`texture_storage_1d<${e}, ${Cd[s]}>`,()=>wf("texture_storage_1d",{dimension:"1d",format:e,access:s}))}function jr(e,t){let s=t||"write-only";return xr(`texture_storage_2d<${e}, ${Cd[s]}>`,()=>wf("texture_storage_2d",{dimension:"2d",format:e,access:s}))}function kf(e,t){let s=t||"write-only";return xr(`texture_storage_2d_array<${e}, ${Cd[s]}>`,()=>wf("texture_storage_2d_array",{dimension:"2d-array",format:e,access:s}))}function Rf(e,t){let s=t||"write-only";return xr(`texture_storage_3d<${e}, ${Cd[s]}>`,()=>wf("texture_storage_3d",{dimension:"3d",format:e,access:s}))}function Ky(){return xr("texture_depth_2d",()=>Ka("texture_depth_2d",{dimension:"2d",sampleType:S,multisampled:!1}))}function Jy(){return xr("texture_depth_multisampled_2d",()=>Ka("texture_depth_multisampled_2d",{dimension:"2d",sampleType:S,multisampled:!0}))}function Qy(){return xr("texture_depth_2d_array",()=>Ka("texture_depth_2d_array",{dimension:"2d-array",sampleType:S,multisampled:!1}))}function eg(){return xr("texture_depth_cube",()=>Ka("texture_depth_cube",{dimension:"cube",sampleType:S,multisampled:!1}))}function tg(){return xr("texture_depth_cube_array",()=>Ka("texture_depth_cube_array",{dimension:"cube-array",sampleType:S,multisampled:!1}))}function wc(){return xr("texture_external",()=>({[K]:{},[ii]:void 0,type:"texture_external",dimension:"2d"}))}function $f(e){return!!e[K]&&typeof e.multisampled=="boolean"}function cp(e){return!!e[K]&&typeof e.format=="string"&&typeof e.access=="str
15ing"}function E5(e){return!!e[K]&&e.type==="texture_external"}var qs=Do(((e,t)=>t===void 0?Do(s=>M5(e,s)):M5(e,t))).$name("arrayOf");function M5(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},(a,i)=>hr(e,r?.[i]))};if(Object.setPrototypeOf(s,gD),Number.isNaN(yt(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 gD={[K]:!0,type:"array",toString(){return`arrayOf(${String(this.elementType)}, ${this.elementCount})`}};function dp(e){return new xD(e)}var xD=class{[K]={};type="atomic";inner;constructor(e){this.inner=e}};function jo(e,t){return dc(e,{[K]:!0,type:"@builtin",params:[t]})}var zo={vertexIndex:jo(ie,"vertex_index"),instanceIndex:jo(ie,"instance_index"),clipDistances:jo(qs(ie,8),"clip_distances"),position:jo(ee,"position"),frontFacing:jo(Et,"front_facing"),fragDepth:jo(S,"frag_depth"),primitiveIndex:jo(ie,"primitive_index"),sampleIndex:jo(ie,"sample_index"),sampleMask:jo(ie,"sample_mask"),localInvocationId:jo(Bt,"local_invocation_id"),localInvocationIndex:jo(ie,"local_invocation_index"),globalInvocationId:jo(Bt,"global_invocation_id"),globalInvocationIndex:jo(ie,"global_invocation_index"),workgroupId:jo(Bt,"workgroup_id"),workgroupIndex:jo(ie,"workgroup_index"),numWorkgroups:jo(Bt,"num_workgroups"),subgroupInvocationId:jo(ie,"subgroup_invocation_id"),subgroupSize:jo(ie,"subgroup_size"),subgroupId:jo(ie,"subgroup_id"),numSubgroups:jo(ie,"num_subgroups")};function Uf(e){return vd(e,"isContiguous")}function sg(e){return Uf(e)}function Df(e){return vd(e,"longestContiguousPrefix")}function og(e){return Df(e)}function bD(e,t){let s="size"in e?e.size:e.currentByteOffset,r=t-1,a=s&r;"skipBytes"in e?e.skipBytes(t-a&r):e.add(t-a&r)}var Oo=bD;var C5=Object.defineProperty,wD=(e,t,s)=>t in e?C5(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,TD=(e,t)=>{for(var s in t)C5(e,s,{get:t[s],enumerable:!0})},ds=(e,t,s)=>wD(e,typeof t!="symbol"?t+"":t,s),SD={};TD(SD,{BufferReader:()=>ul,BufferWriter:()=>On,MaxValue:()=>No,Measurer:()=>wo,UnresolvedReferenceError:()=>Tc,ValidationError:()=>zf,arrayOf:()=>PD,bool:()=>RD,byte:()=>LD,chars:()=>KD,concat:()=>tz,dynamicArrayOf:()=>oz,f16:()=>qD,f32:()=>jD,f32Array:()=>gz,f64Array:()=>xz,generic:()=>QD,genericEnum:()=>ez,i16:()=>BD,i16Array:()=>hz,i32:()=>YD,i32Array:()=>yz,i8:()=>zD,i8Array:()=>vz,keyed:()=>nz,object:()=>JD,optional:()=>lz,string:()=>UD,tupleOf:()=>uz,u16:()=>OD,u16Array:()=>_z,u32:()=>WD,u32Array:()=>fz,u8:()=>U5,u8Array:()=>pz,u8ClampedArray:()=>mz});var Tc=class P5 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,P5.prototype)}},zf=class k5 extends Error{constructor(t){super(t),Object.setPrototypeOf(this,k5.prototype)}},AD=class{constructor(){ds(this,"size",Number.NaN),ds(this,"unbounded",this),ds(this,"isUnbounded",!0)}add(){return this}fork(){return this}},ED=new AD,wo=class R5{constructor(){ds(this,"size",0),ds(this,"unbounded",ED),ds(this,"isUnbounded",!1)}add(t){return this.size+=t,this}fork(){let t=new R5;return t.size=this.size,t}},No=Symbol("The biggest (in amount of bytes needed) value a schema can represent"),pr=class{constructor(){ds(this,"__unwrapped")}resolveReferences(e){}seekProperty(e,t){return null}},MD=class{constructor(e){this.key=e}},pp={STRING:"string",ENUM:"enum"},CD=class extends pr{constructor(e,t){super(),this._unstableElementSchema=e,this.length=t,ds(this,"elementSchema"),this.elementSchema=e}resolveReferences(e){this.elementSchema=e.resolve(this._unstableElementSchema)}write(e,t){if(t.length!==this.length)throw new zf(`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(No).size*this.length}measure(e,t=new wo){for(let s=0;s<this.length;++s)this.elementSchema.measure(e===No?No:e[s],t);return t}};function PD(e,t){return new CD(e,t)}var kD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",1)}read(e){return e.readBool()}write(e,t){e.writeBool(t)}measure(e,t=new wo){return t.add(1)}},RD=new kD,$5=class up extends pr{static get _encoder(){return up._cachedEncoder||(up._cachedEncoder=new TextEncoder),up._cachedEncoder}read(t){return t.readString()}write(t,s){t.writeString(s)}measure(t,s=new wo){if(t===No)return s.unbounded;let r=up._encoder.encode(t);return s.add(r.byteLength+1)}};ds($5,"_cachedEncoder");var $D=$5,UD=new $D,DD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",1)}read(e){return e.readInt8()}write(e,t){e.writeInt8(t)}measure(e,t=new wo){return t.add(1)}},zD=new DD,ID=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",1)}read(e){return e.readUint8()}write(e,t){e.writeUint8(t)}measure(e,t=new wo){return t.add(1)}},U5=new ID,LD=U5,FD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",2)}read(e){return e.readInt16()}write(e,t){e.writeInt16(t)}measure(e,t=new wo){return t.add(2)}},BD=new FD,VD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",2)}read(e){return e.readUint16()}write(e,t){e.writeUint16(t)}measure(e,t=new wo){return t.add(2)}},OD=new VD,ND=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",4)}read(e){return e.readInt32()}write(e,t){e.writeInt32(t)}measure(e,t=new wo){return t.add(4)}},YD=new ND,GD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",4)}read(e){return e.readUint32()}write(e,t){e.writeUint32(t)}measure(e,t=new wo){return t.add(4)}},WD=new GD,XD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",2)}read(e){return e.readFloat16()}write(e,t){e.writeFloat16(t)}measure(e,t=new wo){return t.add(2)}},qD=new XD,HD=class extends pr{constructor(){super(...arguments),ds(this,"maxSize",4)}read(e){return e.readFloat32()}write(e,t){e.writeFloat32(t)}measure(e,t=new wo){return t.add(4)}},jD=new HD,ZD=class extends pr{constructor(e){super(),this.length=e}write(e,t){if(t.length!==this.length)throw new zf(`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 wo){return t.add(this.length)}};function KD(e){return new ZD(e)}function dl(e){return Object.entries(e)}function D5(e,t){let s={};for(let[r,a]of dl(t))s[r]=e.resolve(a);return s}var rg=class extends pr{constructor(e){super(),this._properties=e,ds(this,"properties"),this.properties=e}resolveReferences(e){this.properties=D5(e,this._properties)}write(e,t){for(let[s,r]of dl(this.properties))r.write(e,t[s])}read(e){let t={};for(let[s,r]of dl(this.properties))t[s]=r.read(e);return t}get maxSize(){let e=new wo;for(let t of Object.values(this.properties))t.measure(No,e);return e.size}measure(e,t=new wo){for(let[s,r]of dl(this.properties))r.measure(e===No?No:e[s],t);return t}seekProperty(e,t){let s=0;for(let[r,a]of dl(this.properties)){if(r===t)return{bufferOffset:s,schema:a};s+=a.measure(e).size}return null}};function JD(e){return new rg(e)}var z5=class extends pr{constructor(e,t,s){super(),this.keyedBy=e,this._subTypeMap=s,ds(this,"_baseObject"),ds(this,"subTypeMap"),this._baseObject=ne
vendor: 12,956 bytes, line 15
15w rg(t),this.subTypeMap=s}resolveReferences(e){this._baseObject.resolveReferences(e),this.subTypeMap=D5(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===pp.ENUM?e.writeUint8(t.type):e.writeString(t.type),this._baseObject.write(e,t);for(let[a,i]of dl(r.properties))i.write(e,t[a])}read(e){let t=this.keyedBy===pp.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[a,i]of dl(s.properties))r[a]=i.read(e);return r}measure(e,t=new wo){if(this._baseObject.measure(e,t),this.keyedBy===pp.ENUM)t.add(1);else if(e!==No)t.add(e.type.length+1);else return t.unbounded;if(e===No){let s=Object.values(this.subTypeMap).map(r=>{let a=t.fork();for(let i of Object.values(r.properties))i.measure(No,a);return[r,a.size]}).reduce((r,a)=>r[1]>a[1]?r:a)[0];for(let r of Object.values(s.properties))r.measure(No,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[a,i]of dl(r.properties))i.measure(e[a],t)}return t}};function QD(e,t){return new z5(pp.STRING,e,t)}function ez(e,t){return new z5(pp.ENUM,e,t)}function tz(e){return new rg(Object.fromEntries(e.flatMap(({properties:t})=>Object.entries(t))))}var sz=class extends pr{constructor(e){super(),this._unstableElementType=e,ds(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(No).size}measure(e,t=new wo){if(e===No)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===No)return{bufferOffset:this.elementType.measure(No).size*s,schema:this.elementType};if(s>=e.length)return null;let r=new wo;for(let a=0;a<s;++a)this.elementType.measure(e[a],r);return{bufferOffset:r.size,schema:this.elementType}}};function oz(e){return new sz(e)}var I5=class{constructor(e){ds(this,"__unwrapped"),ds(this,"ref"),this.ref=new MD(e)}resolveReferences(){throw new Tc("Tried to resolve a reference directly. Do it through a RefResolver instead.")}read(){throw new Tc("Tried to read a reference directly. Resolve it instead.")}write(){throw new Tc("Tried to write a reference directly. Resolve it instead.")}measure(){throw new Tc("Tried to measure size of a reference directly. Resolve it instead.")}seekProperty(){throw new Tc("Tried to seek property of a reference directly. Resolve it instead.")}},rz=class{constructor(){ds(this,"registry",{})}hasKey(e){return this.registry[e]!==void 0}register(e,t){this.registry[e]=t}resolve(e){if(e instanceof I5){let s=e.ref.key;if(this.registry[s]!==void 0)return this.registry[s];throw new Tc(`Couldn't resolve reference to ${s}. Unknown key.`)}return e.resolveReferences(this),e}},az=class{constructor(e,t){this.key=e,ds(this,"__unwrapped"),ds(this,"__keyDefinition"),ds(this,"innerType"),this.innerType=t(new I5(e)),this.resolveReferences(new rz)}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(No).size}measure(e,t=new wo){return this.innerType.measure(e,t)}seekProperty(e,t){return this.innerType.seekProperty(e,t)}};function nz(e,t){return new az(e,t)}var iz=class extends pr{constructor(e){super(),this._innerUnstableSchema=e,ds(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(No).size}measure(e,t=new wo){return e!==void 0&&this.innerSchema.measure(e,t),t.add(1)}};function lz(e){return new iz(e)}function cz(e,t){return t.map(s=>e.resolve(s))}var dz=class extends pr{constructor(e){super(),this._unstableSchemas=e,ds(this,"schemas"),this.schemas=e}resolveReferences(e){this.schemas=cz(e,this._unstableSchemas)}write(e,t){if(t.length!==this.schemas.length)throw new zf(`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(No).size}measure(e,t=new wo){for(let s=0;s<this.schemas.length;++s)this.schemas[s].measure(e===No?No:e[s],t);return t}};function uz(e){return new dz(e)}var hi=class extends pr{constructor(e,t){super(),this.length=e,this._arrayConstructor=t,ds(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 wo){return t.add(this.byteLength)}},pz=e=>new hi(e,Uint8Array),mz=e=>new hi(e,Uint8ClampedArray),_z=e=>new hi(e,Uint16Array),fz=e=>new hi(e,Uint32Array),vz=e=>new hi(e,Int8Array),hz=e=>new hi(e,Int16Array),yz=e=>new hi(e,Int32Array),gz=e=>new hi(e,Float32Array),xz=e=>new hi(e,Float64Array);function bz(){let e=new Uint8Array(4),t=new Uint32Array(e.buffer);return t[0]=1,e[0]===0}function mp(){return bz()?"big":"little"}function ag(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 L5=class{constructor(e,t){ds(this,"dataView"),ds(this,"littleEndian"),ds(this,"needsByteSwap"),ds(this,"byteOffset",0),ds(this,"endianness");let{byteOffset:s=0,endianness:r="system"}=t??{};this.byteOffset=s;let a=mp();this.endianness=r==="system"?a:r,this.littleEndian=this.endianness==="little",this.needsByteSwap=this.endianness!==a;let i=ag(e);this.byteOffset+=i.byteOffset,this.dataView=new DataView(i.buffer)}get currentByteOffset(){return this.byteOffset}seekTo(e){this.byteOffset=e}skipBytes(e){this.byteOffset+=e}},ul=class extends L5{constructor(){super(...arguments),ds(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=ag(e),a=new Uint8Array(r.buffer,r.byteOffset+t),i=e.BYTES_PER_ELEMENT;if(this.needsByteSwap&&i>1)for(let l=0;l<s;l+=i)for(let c=i-1;c>=0;c--)a[l+c]=this.dataView.getUint8(this.byteOffset++);else a.set(new Uint8Array(this.dataView.buffer,this.byteOffset,s)),this.byteOffset+=s}},On=class extends L5{constructor(){super(...arguments),ds(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=ag(e),s=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=e.BYTES_PER_ELEMENT;if(this.needsByteSwap&&r>1)for(let a=0;a<s.length;a+=r)for(let i=r-1;i>=0;i--)this.dataView.setUint8(this.byteOffset++,s[a+i]);else new Uint8Array(this.dataView.buffer,this.byteOffset).set(s),this.byteOffset+=s.length}};var F5=new WeakMap;function yi(e){let t=F5.get(e);if(t)return t;let s=new wo,r={},a;for(let i in e.propTypes){let l=e.propTypes[i];if(l===void 0)throw new Error(`Property ${i} is undefined in struct`);let c=s.size;Oo(s,xo(e)?$r(l):rs(l)),a&&(a.padding=s.size-c);let d=yt(l);r[i]={offset:s.size,size:d},a=r[i],s.add(d)}return a&&(a.padding=Xs(yt(e),rs(e))-s.size),F5.set(e,r),r}var pl=Symbol("indirectOffset"),ml=Symbol("indirectContiguous");function Tz(e){return typeof e=="object"&&e!==null&&pl in e&&ml in e}function _p(e,t){return{[pl]:e,[ml]:t}}function ng(e,t){if(t===pl)return e[pl];if(t===ml)return e[ml]}function ig(e,t,s=yt(e)){let r=Fo(e),a=es(r)?r.componentCount:void 0;if(a!==void 0){let i=yt(r.primitive);return Az(_p(t,s),i,a)}return Dt(r)?Mz(r,_p(t,s)):Wt(r)?Ez(r,_p(t,s)):_p(t,s)}function Sz(e,t=0){return ig(e,t,yt(e))}function Az(e,t,s){let r=e[pl];return new Proxy(e,{get(a,i){let l=ng(a,i);if(l!==void 0)return l;let c=i==="x"||i==="0"?0:i==="y"||i==="1"?1:i==="z"||i==="2"?2:i==="w"||i==="3"?3:-1;if(c<0||c>=s)return;let d=c*t,u=Math.max(0,a[ml]-d);return _p(r+d,u)}})}function Ez(e,t){let s=e.elementType,r=yt(s),a=Xs(r,rs(s)),i=a>r;return new Proxy(t,{get(l,c){let d=ng(l,c);if(d!==void 0)return d;if(c==="length")return e.elementCount;if(typeof c!="string")return;let u=Number(c);if(!Number.isInteger(u)||u<0||u>=e.elementCount)return;let p=u*a,m=Uf(s)?Math.max(0,l[ml]-p):r+Df(s),_=i?Math.min(m,r):m;return ig(s,l[pl]+p,_)}})}function Mz(e,t){let s=yi(e),r=e.propTypes,a=Object.keys(r),i=new Map,l=0;for(let c=0;c<a.length;c++){let d=a[c];if(!d)continue;let u=r[d];if(!u)continue;let p=s[d],m=p.padding??0,_=Uf(u);if(!(c===a.length-1||m>0||!_))continue;let v=p.offset+(_?p.size:Df(u));for(let h=l;h<=c;h++){let y=a[h];if(!y)continue;let x=s[y];i.set(y,{offset:x.offset,runEnd:v})}l=c+1}return new Proxy(t,{get(c,d){let u=ng(c,d);if(u!==void 0)return u;if(typeof d!="string")return;let p=i.get(d);if(!p)return;let m=Math.max(0,c[ml]-p.offset),_=Math.max(0,p.runEnd-p.offset),v=r[d];if(v)return ig(v,c[pl]+p.offset,yt(e)===p.runEnd?m:_)}})}function Cz(e){let t=Fo(e);if(Dt(t)){let s=yi(t),r=t.propTypes,a=Object.keys(r);for(let i=0;i<a.length;i++){let l=a[i];if(!l)continue;let c=s[l],d=c.padding??0,u=c.offset+c.size;if(i===a.length-1||d>0)return u}return 0}if(Wt(t)){let s=t.elementType,r=yt(s),a=Xs(r,rs(s)),i=yt(e);return Number.isFinite(i)?a>r?r:i:r}return yt(e)}function fp(e,t){if(!t)return{offset:0,contiguous:Cz(e)};let s=t(Sz(e));if(Tz(s))return{offset:s[pl],contiguous:s[ml]};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`).")}var lg=Do(((e,t)=>t===void 0?s=>B5(e,s):B5(e,t))).$name("disarrayOf");function B5(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},(a,i)=>hr(e,r?.[i]))};if(Object.setPrototypeOf(s,Pz),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 Pz={[K]:!0,type:"disarray",toString(){return`disarrayOf(${this.elementType}, ${this.elementCount})`}};function cg(e){let t=s=>Object.fromEntries(Object.entries(e).map(([r,a])=>
15[r,hr(a,s?.[r])]));return Object.setPrototypeOf(t,kz),t.propTypes=e,t}var kz={[K]:!0,type:"unstruct",$name(e){return je(this,e),this},toString(){return`unstruct:${Ce(this)??"<unnamed>"}`}};function _l(e,t){if(e===t)return!0;if(e.type!==t.type)return!1;if(Dt(e)&&Dt(t)||xo(e)&&xo(t)){let s=e.propTypes,r=t.propTypes,a=Object.keys(s),i=Object.keys(r);if(a.length!==i.length)return!1;for(let l=0;l<a.length;l++){let c=a[l],d=i[l];if(c!==d||!c||!d||!_l(s[c],r[d]))return!1}return!0}if(Wt(e)&&Wt(t)||ur(e)&&ur(t))return e.elementCount===t.elementCount&&_l(e.elementType,t.elementType);if(ws(e)&&ws(t))return e.addressSpace===t.addressSpace&&e.access===t.access&&_l(e.inner,t.inner);if(Yr(e)&&Yr(t))return _l(e.inner,t.inner);if(Lo(e)&&Lo(t)||Jo(e)&&Jo(t)){if(!_l(e.inner,t.inner)||e.attribs.length!==t.attribs.length)return!1;let s=i=>{let l=i;return`${l.type}(${(l.params??[]).join(",")})`},r=e.attribs.map(s),a=t.attribs.map(s);for(let i=0;i<r.length;i++)if(r[i]!==a[i])return!1}return!0}var Rz=Cn({Void:()=>ss,align:()=>Gy,alignmentOf:()=>Ny,arrayOf:()=>qs,atomic:()=>dp,bool:()=>Et,builtin:()=>zo,comparisonSampler:()=>bc,deepEqual:()=>_l,disarrayOf:()=>lg,f16:()=>Fs,f32:()=>S,float16:()=>Ay,float16x2:()=>Ey,float16x4:()=>My,float32:()=>Cy,float32x2:()=>Py,float32x3:()=>ky,float32x4:()=>Ry,formatToWGSLType:()=>Hr,getLongestContiguousPrefix:()=>og,i32:()=>fe,interpolate:()=>Xy,invariant:()=>qy,isAlignAttrib:()=>oc,isAtomic:()=>Yr,isBuiltin:()=>tr,isBuiltinAttrib:()=>ld,isContiguous:()=>sg,isData:()=>ba,isDecorated:()=>Lo,isDisarray:()=>ur,isInterpolateAttrib:()=>Fh,isLocationAttrib:()=>Bu,isLooseData:()=>Pn,isLooseDecorated:()=>Jo,isPackedData:()=>Ku,isPtr:()=>ws,isSizeAttrib:()=>rc,isUnstruct:()=>xo,isWgslArray:()=>Wt,isWgslData:()=>fr,isWgslStruct:()=>Dt,location:()=>uc,mat2x2f:()=>gr,mat3x3f:()=>bo,mat4x4f:()=>Ms,matToArray:()=>jy,memoryLayoutOf:()=>fp,packedFormats:()=>fd,ptrFn:()=>ac,ptrHandle:()=>Yh,ptrPrivate:()=>Bh,ptrStorage:()=>Oh,ptrUniform:()=>Nh,ptrWorkgroup:()=>Vh,ref:()=>Xu,sampler:()=>xc,sint16:()=>vy,sint16x2:()=>hy,sint16x4:()=>yy,sint32:()=>Iy,sint32x2:()=>Ly,sint32x3:()=>Fy,sint32x4:()=>By,sint8:()=>ry,sint8x2:()=>ay,sint8x4:()=>ny,size:()=>Wy,sizeOf:()=>Yy,snorm16:()=>wy,snorm16x2:()=>Ty,snorm16x4:()=>Sy,snorm8:()=>dy,snorm8x2:()=>uy,snorm8x4:()=>py,struct:()=>sr,texture1d:()=>Tf,texture2d:()=>Sa,texture2dArray:()=>Af,texture3d:()=>Cf,textureCube:()=>Ef,textureCubeArray:()=>Mf,textureDepth2d:()=>Ky,textureDepth2dArray:()=>Qy,textureDepthCube:()=>eg,textureDepthCubeArray:()=>tg,textureDepthMultisampled2d:()=>Jy,textureExternal:()=>wc,textureMultisampled2d:()=>Sf,textureStorage1d:()=>Pf,textureStorage2d:()=>jr,textureStorage2dArray:()=>kf,textureStorage3d:()=>Rf,u16:()=>ey,u32:()=>ie,uint16:()=>my,uint16x2:()=>_y,uint16x4:()=>fy,uint32:()=>$y,uint32x2:()=>Uy,uint32x3:()=>Dy,uint32x4:()=>zy,uint8:()=>ty,uint8x2:()=>sy,uint8x4:()=>oy,unorm10_10_10_2:()=>Vy,unorm16:()=>gy,unorm16x2:()=>xy,unorm16x4:()=>by,unorm8:()=>iy,unorm8x2:()=>ly,unorm8x4:()=>cy,unorm8x4_bgra:()=>Oy,unstruct:()=>cg,vec2b:()=>Pr,vec2f:()=>H,vec2h:()=>Bo,vec2i:()=>fs,vec2u:()=>Qe,vec3b:()=>kr,vec3f:()=>W,vec3h:()=>Uo,vec3i:()=>Os,vec3u:()=>Bt,vec4b:()=>Rr,vec4f:()=>ee,vec4h:()=>Vo,vec4i:()=>ls,vec4u:()=>ts});pn(dn,"add",dr.plus);pn(pc,"add",dr.plus);pn(dn,"sub",dr.minus);pn(pc,"sub",dr.minus);pn(dn,"mul",dr.star);pn(pc,"mul",dr.star);pn(dn,"div",dr.slash);pn(dn,"mod",dr.percent);pn(dn,"bitShiftLeft",Symbol());pn(dn,"bitShiftRight",Symbol());function $z(e){return R7(e)||Pn(e)||Rn(e)}function dg(e){let t=e.pluginProvided??e.userProvided??{},s=Object.defineProperties({},Object.getOwnPropertyDescriptors(t));for(let r of[e.args,e.out].filter(a=>a!==void 0))for(let[a,i]of Object.entries(r)){if(a in s&&s[a]!==i)throw new Error(`Key '${a}' appears in externals despite already being used for argument/return type. Please rename this external.`);s[a]=i}return s}function V5(e,t,s){let r=[...e.matchAll(/:\s*(?<arg>.*?)\s*[,)]/g)].map(i=>i?.[1]),a=Object.fromEntries(t.flatMap((i,l)=>{let c=r?.[l];return Dt(i)&&c!==void 0?[[c,i]]:[]}));s.setExternals("args",a)}
vendor: 24,462 bytes, lines 15-34
15function If(e,t,s){let r=e.match(/->\s(?<output>[\w\d_]+)\s{/),a=r?r[1]?.trim():void 0;Dt(t)&&a&&!/\s/g.test(a)&&s.setExternals("out",{[a]:t})}function Uz(e){return new RegExp(`(?<![\\w\\$_.])${e.replaceAll(".","\\.").replaceAll("$","\\$")}(?![\\w\\$_])`,"g")}function gi(e,t,s){return Object.entries(t).reduce((r,[a,i])=>{let l=Uz(a);if(s&&a!=="Out"&&a!=="in"&&!l.test(s)&&console.warn(`The external '${a}' wasn't used in the resolved template.`),$z(i))return kn(i)&&Ce(i)===void 0&&je(i,a.split(".").at(-1)),r.replaceAll(l,e.resolve(i).value);if(i!==null&&typeof i=="object"){let c=[...s.matchAll(new RegExp(`${a.replaceAll(".","\\.").replaceAll("$","\\$")}\\.(?<prop>.*?)(?![\\w\\$_])`,"g"))].map(d=>d[1]);return[...new Set(c)].reduce((d,u)=>u&&u in i?gi(e,{[`${a}.${u}`]:i[u]},d):d,r)}return console.warn(`During resolution, the external '${a}' has been omitted. Only TGPU resources, 'use gpu' functions, primitives, and plain JS objects can be used as externals.`),r},s)}function Y5(e){let{strippedCode:t,argRange:s}=Dz(e),r=new G5(t);r.consume("(");let a=[];for(;!r.isAt(")");){let l=[];for(;r.isAt("@");)r.parseUntil(O5,N5),r.consume(")"),l.push(r.lastParsed);r.parseUntil(Iz);let c=r.lastParsed,d;r.isAt(":")&&(r.consume(":"),r.parseUntil(Lz,Bz),d=r.lastParsed),a.push({identifier:c,attributes:l,type:d}),r.isAt(",")&&r.consume(",")}r.consume(")");let i;if(r.isAt("->")){r.consume("->");let l=[];for(;r.isAt("@");)r.parseUntil(O5,N5),r.consume(")"),l.push(r.lastParsed);i={type:r.str.slice(r.pos),attributes:l}}return{args:a,ret:i,range:{begin:s[0],end:s[1]}}}function Dz(e){let t=new G5(e),s="",r;for(;!t.isFinished();){if(t.isAt(zz)){t.advanceBy(1);continue}if(t.isAt("//")){t.consume("//"),t.parseUntil(W5),t.advanceBy(1);continue}if(t.isAt("/*")){t.parseUntil(Fz,Vz),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 G5=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)}},W5=new Set([`
16`,"\v","\f","\r","\x85","\u2028","\u2029"]),zz=new Set([...W5," ","	","\u200E","\u200F"]),O5=new Set([")"]),Iz=new Set([":",",",")"]),Lz=new Set([",",")"]),Fz=new Set(["*/"]),N5=["(",")"],Bz=["<",">"],Vz=["/*","*/"];function Aa(e,t,s){let r={};return{[bs]:typeof e=="function"?e:void 0,setExternals(a,i){if(a==="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[a]=i,r.userProvided&&r.pluginProvided)throw new Error("Cannot call '$uses' on functions whose metadata was provided by unplugin-typegpu.")},resolve(a,i,l,c){let d="";t==="compute"?d=`@compute @workgroup_size(${s?.join(", ")}) `:t==="vertex"?d="@vertex ":t==="fragment"&&(d="@fragment ");let u=a.makeUniqueIdentifier(Ce(this),"global");if(typeof e=="string"){if(!l)throw new Error("Explicit return type is required for string implementation");if(c){for(let f of c.positionalArgs){let A=hd(f.schemaKey);if(!A.success)throw new Error(`Invalid argument name "${f.schemaKey}"${A.error?`: ${A.error}`:""}`);if(a.isIdentifierBanned(f.schemaKey))throw new Error(`Invalid argument name "${f.schemaKey}", the identifier is a reserved keyword.`)}this.setExternals("args",{in:Object.fromEntries(c.positionalArgs.map(f=>[f.schemaKey,f.schemaKey]))})}let x=gi(a,dg(r),e),g="",w="";if(t!=="normal"&&c){let{dataSchema:f,positionalArgs:A}=c,E=[];f&&X5("in",x)&&E.push(`in: ${a.resolve(f).value}`);for(let $ of A){let U=$.schemaKey;X5(U,x)&&E.push(`${el($.type)}${U}: ${a.resolve($.type).value}`)}let P=`(${E.join(", ")})`,C=fr(l)?el(l):"";g=`${P}${l!==ss?Dt(l)?` -> ${a.resolve(l).value} `:` -> ${C!==""?C:"@location(0)"} ${a.resolve(l).value} `:" "}`,w=x}else{let f=Y5(x);if(f.args.length!==i.length)throw new Error(`WGSL implementation has ${f.args.length} arguments, while the shell has ${i.length} arguments.`);g=`(${f.args.map((A,E)=>`${A.identifier}: ${q5(a,`parameter ${A.identifier}`,A.type,i[E])}`).join(", ")})${l===ss?" ":` -> ${q5(a,"return type",f.ret?.type,l)} `}`,w=x.slice(f.range.end)}return a.addDeclaration(`${d}fn ${u}${g}${w}`),Te(u,l,"runtime")}let p=Ou(e),m=p?.externals();m&&this.setExternals("pluginProvided",m);let _=p?.ast;if(!_)throw new Error("Missing metadata for tgpu.fn function body (either missing 'use gpu' directive, or misconfigured `unplugin-typegpu`)");let v=_.params[1];v&&v.type==="i"&&t!=="normal"&&this.setExternals("out",{[v.name]:Fo(l)});let{code:h,returnType:y}=a.resolveFunction({functionType:t,name:u,workgroupSize:s,argTypes:i,entryInput:c,params:_.params,returnType:l,body:_.body,externalMap:dg(r)});return a.addDeclaration(h),Te(u,y,"runtime")}}}function X5(e,t){return new RegExp(`\\b${e}\\b`).test(t)}function q5(e,t,s,r){let a=e.resolve(r).value.replace(/\s/g,"");if(!s)return a;let i=s.replace(/\s/g,"");if(i!==a)throw new Error(`Type mismatch between TGPU shell and WGSL code string: ${t}, JS type "${a}", WGSL type "${i}".`);return s}function fl(e,...t){return Oz(e)?Nz(e,...t):e}function Oz(e){return Array.isArray(e)&&"raw"in e&&Array.isArray(e.raw)&&e.raw.every(t=>typeof t=="string")}function Nz(e,...t){return e.slice(1).reduce((s,r,a)=>`${s}${t[a]}${r}`,e[0])}function Ss(e,t){if(typeof e=="function")return j5(e,[]);let s=e,r={[K]:!0,argTypes:s,returnType:t??ss};return Object.assign((i,...l)=>Yz(r,fl(i,...l)),r)}function vp(e){return Ht(e)&&e?.resourceType==="function"}function pg(e){return Ht(e)&&e?.resourceType==="generic-function"}function H5([e,t]){return`${Ce(e)??"<unnamed>"}=${t}`}function Yz(e,t){let s=[],r;pg(t)?(s=t[Ho]?.pairs??[],r=t[K].inner):r=t;let a=Aa(r,"normal"),i={shell:e,resourceType:"function",[K]:{implementation:r},$uses(d){return a.setExternals("userProvided",d),this},[bs]:a,$name(d){return je(this,d),this},with:Do((d,u)=>ug(c,[[$n(d)||Un(d)?d.slot:d,u]])),[Je](d){return typeof r=="string"&&(V5(r,e.argTypes,a),If(r,e.returnType,a)),a.resolve(d,e.argTypes,e.returnType)}},l=ve({name:void 0,noComptime:!0,signature:{argTypes:e.argTypes,returnType:e.returnType},normalImpl:(...d)=>$7(()=>{try{if(typeof r=="string")throw new Error("Cannot execute on the CPU functions constructed with raw WGSL");let u=d.map((m,_)=>hr(e.argTypes[_],m)),p=r(...u);return hr(e.returnType,p)}catch(u){throw u instanceof qh?u.appendToTrace(c):new qh(u,[c])}}),codegenImpl:(d,u)=>d.withResetIndentLevel(()=>se`${d.resolve(c).value}(${u})`)}),c=Object.assign(l,i);return Object.defineProperty(c,"toString",{value(){return`fn:${Ce(a)??"<unnamed>"}`}}),s.length>0?ug(c,s):c}function ug(e,t){let s={resourceType:"function",shell:e.shell,[K]:{implementation:e[K].implementation},[Ho]:{inner:e,pairs:t},$uses(l){return e.$uses(l),this},$name(l){return je(this,l),this},with:Do((l,c)=>{let d=$n(l)||Un(l)?l.slot:l;return ug(e,[...t,[d,c]])})},r=ve({name:void 0,noComptime:!0,signature:{argTypes:e.shell.argTypes,returnType:e.shell.returnType},normalImpl:e,codegenImpl:(l,c)=>l.withResetIndentLevel(()=>se`${l.resolve(a).value}(${c})`)}),a=Object.assign(r,s);Object.defineProperty(a,"toString",{value(){return`fn:${Ce(this)??"<unnamed>"}[${t.map(H5).join(", ")}]`}});let i=Ce(e);return i&&je(a,i),a}function j5(e,t){let s={[K]:{inner:e},resourceType:"generic-function",[Ho]:t.length>0?{inner:e,pairs:t}:void 0,$name(l){return je(this,l),Ce(e)||je(e,l),this},[Je](l){return l.resolve(e)},with(l,c){let d=$n(l)||Un(l)?l.slot:l;return j5(e,[...t,[d,c]])}},a=Object.assign((...l)=>e(...l),s),i=Ce(e);return i&&je(a,i),Object.defineProperty(a,"toString",{value(){let l=Ce(a)??"<unnamed>";return t.length>0?`fn*:${l}[${t.map(H5).join(", ")}]`:`fn*:${l}`}}),a}var Gz=(()=>{try{return new Function("return true"),!0}catch{return!1}})(),Z5=new WeakMap,Lf={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"},Wz={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"},Ff={u32:"setUint32",i32:"setInt32",f32:"setFloat32",u16:"setUint16",i16:"setInt16",f16:"setFloat16",u8:"setUint8",i8:"setInt8"},Xz={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)`},K5={"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);
17`},"unorm8x4-bgra":{writeFunction:"setUint8",generator:(e,t)=>["z","y","x","w"].map((s,r)=>`output.setUint8((${e} + ${r}), Math.round(${t}.${s} * 255), littleEndian);
18`).join("")}};function J5(e,t,s,r=0,a=!1){let i=(d,u,p)=>a?`if (${u} < endOffset) { output.${d}(${u}, ${p}, littleEndian); }
19`:`output.${d}(${u}, ${p}, littleEndian);
20`,l=(d,u)=>a?`if (${d} < endOffset) {
21${u}}
22`:u;function c(d,u,p,m){let _=["i","j","k"][m]||`i${m}`;if(Yr(d)||Lo(d))return c(d.inner,u,p,m);if(Dt(d)||xo(d))return Object.entries(yi(d)).map(([h,y])=>{let x=d.propTypes[h];return x?c(x,`(${u} + ${y.offset})`,`${p}.${h}`,m):""}).join("");if(Wt(d)||ur(d)){if(d.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let h=Xs(yt(d.elementType),rs(d)),y=d.elementCount*h,x=a?`Math.min(${p}.byteLength, Math.max(0, endOffset - (${u})))`:`Math.min(${p}.byteLength, ${y})`,g=`if (ArrayBuffer.isView(${p})) {
23`;return g+=`  new Uint8Array(output.buffer).set(new Uint8Array(${p}.buffer, ${p}.byteOffset, ${x}), output.byteOffset + (${u}));
24`,g+=`} else {
25`,g+=`for (let ${_} = 0; ${_} < ${d.elementCount}; ${_}++) {
26`,a&&(g+=`if ((${u} + ${_} * ${h}) >= endOffset) return;
27`),g+=c(d.elementType,`(${u} + ${_} * ${h})`,`${p}[${_}]`,m+1),g+=`}
28`,g+=`}
29`,g}if(es(d)){if($_(d))throw new Error("Compiled writers do not support boolean vectors");let h=Lf[d.type],y=yt(d.primitive),x=Ff[h];return Array.from({length:d.componentCount},(g,w)=>i(x,`(${u} + ${w*y})`,`${p}[${w}]`)).join("")}if(Nr(d)){let h=Ff[Lf[d.type]],y=Iu(d)?2:Lu(d)?3:4,x=Xs(y*4,8),g=["x","y","z","w"],w=x/4;return Array.from({length:y*y},(f,A)=>{let E=Math.floor(A/y),P=A%y,C=E*y+P,$=E*w+P;return i(h,`(${u} + ${E*x+P*4})`,`ArrayBuffer.isView(${p}) ? ${p}[${$}] : Array.isArray(${p}) ? ${p}[${C}] : ${p}.columns[${E}].${g[P]}`)}).join("")}if(Ku(d)){let h=d.type;if(h in K5){let P=K5[h];return l(`(${u})`,P.generator(u,p))}let y=Wz[h],x=Ff[y],g=Hr[h],w=es(g)?g.componentCount:1,f=y==="u8"||y==="i8"?1:y==="u16"||y==="i16"||y==="f16"?2:4,A=["x","y","z","w"],E=Xz[h];return Array.from({length:w},(P,C)=>{let $=w===1?p:`${p}.${A[C]}`,U=E?E($):$;return i(x,`(${u} + ${C*f})`,U)}).join("")}if(!Object.hasOwn(Lf,d.type))throw new Error(`Primitive ${d.type} is unsupported by compiled writer`);let v=Lf[d.type];return i(Ff[v],u,p)}return c(e,t,s,r)}function Pd(e){if(!Gz){if(!Pd._w){Pd._w=1;console.warn("This environment does not allow eval - using default writer as fallback")}return}let t=Z5.get(e);if(t)return t;try{let s=J5(e,"offset","value",0,!1),r=`if (offset > 0 || endOffset < output.byteLength) {
30${J5(e,"offset","value",0,!0)}} else {
31${s}}
32`,a=new Function("output","offset","value","littleEndian=true","endOffset=output.byteLength",r);return Z5.set(e,a),a}catch(s){console.warn(`Failed to compile writer for schema: ${e}
33Reason: ${s instanceof Error?s.message:String(s)}
34Falling back to default writer`)}}var kd={bool(){throw new Error("Booleans are not host-shareable")},f32(e,t,s){e.writeFloat32(s)},f16(e,t,s){e.writeFloat16(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){e.writeFloat16(s[0]),e.writeFloat16(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){e.writeFloat16(s[0]),e.writeFloat16(s[1]),e.writeFloat16(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){e.writeFloat16(s[0]),e.writeFloat16(s[1]),e.writeFloat16(s[2]),e.writeFloat16(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=rs(t);Oo(e,r);for(let[a,i]of Object.entries(t.propTypes))Oo(e,rs(i)),hp(e,i,s[a]);Oo(e,r)},array(e,t,s){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let r=rs(t);Oo(e,r);let a=e.currentByteOffset;for(let i=0;i<Math.min(t.elementCount,s.length);i++)Oo(e,r),hp(e,t.elementType,s[i]);e.seekTo(a+yt(t))},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t,s){kd[t.inner.type]?.(e,t,s)},decorated(e,t,s){Oo(e,$r(t));let r=e.currentByteOffset;kd[t.inner?.type]?.(e,t.inner,s),e.seekTo(r+yt(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){e.writeFloat16(s)},float16x2(e,t,s){e.writeFloat16(s.x),e.writeFloat16(s.y)},float16x4(e,t,s){e.writeFloat16(s.x),e.writeFloat16(s.y),e.writeFloat16(s.z),e.writeFloat16(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=rs(t);Oo(e,r);let a=e.currentByteOffset;for(let i=0;i<Math.min(t.elementCount,s.length);i++)Oo(e,r),kd[t.elementType?.type]?.(e,t.elementType,s[i]);e.seekTo(a+yt(t))},unstruct(e,t,s){let r=t.propTypes;for(let[a,i]of Object.entries(r))kd[i.type]?.(e,i,s[a])},"loose-decorated"(e,t,s){Oo(e,$r(t));let r=e.currentByteOffset,a=kd[t.inner?.type];return a?.(e,t.inner,s),e.seekTo(r+yt(t)),s}};function hp(e,t,s){if(ArrayBuffer.isView(s)){let a=s,i=yt(t);a.byteLength!==i&&console.warn(`TypedArray size mismatch: schema expects ${i} bytes, got ${a.byteLength}. `+(a.byteLength<i?"Data truncated.":"Excess ignored."));let l=e.currentByteOffset;e.writeSlice(new Uint8Array(a.buffer,a.byteOffset,Math.min(a.byteLength,i))),e.seekTo(l+i);return}let r=kd[t.type];if(!r)throw new Error(`Cannot write data of type '${t.type}'.`);r(e,t,s)}var qz={bool(){throw new Error("Booleans are not host-shareable")},f32(e){return e.readFloat32()},f16(e){return e.readFloat16()},i32(e){return e.readInt32()},u32(e){return e.readUint32()},u16(e){return e.readUint16()},vec2f(e){return H(e.readFloat32(),e.readFloat32())},vec3f(e){return W(e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return ee(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return Bo(e.readFloat16(),e.readFloat16())},vec3h(e){return Uo(e.readFloat16(),e.readFloat16(),e.readFloat16())},vec4h(e){return Vo(e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16())},vec2i(e){return fs(e.readInt32(),e.readInt32())},vec3i(e){return Os(e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return ls(e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return Qe(e.readUint32(),e.readUint32())},vec3u(e){return Bt(e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return ts(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 gr(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let s=e.readFloat32();return e.readFloat32(),s};return bo(e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return Ms(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=rs(t);Oo(e,s);let r={},a=t.propTypes;for(let[i,l]of Object.entries(a))Oo(e,rs(l)),r[i]=vl(e,l);return Oo(e,s),r},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let s=rs(t),r=[];for(let a=0;a<t.elementCount;a++){Oo(e,s);let i=t.elementType,l=vl(e,i);r.push(l)}return Oo(e,s),r},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t){return vl(e,t.inner)},decorated(e,t){Oo(e,$r(t));let s=e.currentByteOffset,r=vl(e,t.inner);return e.seekTo(s+yt(t)),r},uint8:e=>e.readUint8(),uint8x2:e=>Qe(e.readUint8(),e.readUint8()),uint8x4:e=>ts(e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8()),sint8:e=>e.readInt8(),sint8x2:e=>fs(e.readInt8(),e.readInt8()),sint8x4:e=>ls(e.readInt8(),e.readInt8(),e.readInt8(),e.readInt8()),unorm8:e=>e.readUint8()/255,unorm8x2:e=>H(e.readUint8()/255,e.readUint8()/255),unorm8x4:e=>ee(e.readUint8()/255,e.readUint8()/255,e.readUint8()/255,e.readUint8()/255),snorm8:e=>e.readInt8()/127,snorm8x2:e=>H(e.readInt8()/127,e.readInt8()/127),snorm8x4:e=>ee(e.readInt8()/127,e.readInt8()/127,e.readInt8()/127,e.readInt8()/127),uint16:e=>e.readUint16(),uint16x2:e=>Qe(e.readUint16(),e.readUint16()),uint16x4:e=>ts(e.readUint16(),e.readUint16(),e.readUint16(),e.readUint16()),sint16:e=>e.readInt16(),sint16x2:e=>fs(e.readInt16(),e.readInt16()),sint16x4:e=>ls(e.readInt16(),e.readInt16(),e.readInt16(),e.readInt16()),unorm16:e=>e.readUint16()/65535,unorm16x2:e=>H(e.readUint16()/65535,e.readUint16()/65535),unorm16x4:e=>ee(e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535),snorm16:e=>e.readInt16()/32767,snorm16x2:e=>H(e.readInt16()/32767,e.readInt16()/32767),snorm16x4:e=>ee(e.readInt16()/32767,e.readInt16()/32767,e.readInt16()/32767,e.readInt16()/32767),float16(e){return e.readFloat16()},float16x2:e=>H(e.readFloat16(),e.readFloat16()),float16x4:e=>ee(e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16()),float32:e=>e.readFloat32(),float32x2:e=>H(e.readFloat32(),e.readFloat32()),float32x3:e=>W(e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>ee(e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>Qe(e.readUint32(),e.readUint32()),uint32x3:e=>Bt(e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>ts(e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>fs(e.readInt32(),e.readInt32()),sint32x3:e=>Os(e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>ls(e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32()),"unorm10-10-10-2"(e){let t=e.readUint32();return ee((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 ee(e.readByte()/255,s,t,e.readByte()/255)},unstruct(e,t){let s={},r=t.propTypes;for(let[a,i]of Object.entries(r))s[a]=vl(e,i);return s},disarray(e,t){let s=rs(t),r=[];for(let a=0;a<t.elementCount;a++)Oo(e,s),r.push(vl(e,t.elementType));return Oo(e,s),r},"loose-decorated"(e,t){Oo(e,$r(t));let s=e.currentByteOffset,r=vl(e,t.inner);return e.seekTo(s+yt(t)),r}};function vl(e,t){let s=qz[t.type];if(!s)throw new Error(`Cannot read data of type '${t.type}'.`);return s(e,t)}var Hz=mp();function mg(e,t,s){let r=yt(t),a=e?.startOffset??0,i;Wt(t)&&Array.isArray(s)?i=s.length*Xs(yt(t.elementType),rs(t.elementType)):(ArrayBuffer.isView(s)||s instanceof ArrayBuffer)&&(i=s.byteLength);let l=i!==void 0?Math.min(a+i,r):void 0;return{startOffset:a,endOffset:e?.endOffset??l??r}}function Bf(e,t,s,r){let{startOffset:a,endOffset:i}=mg(r,t,s);if(s instanceof ArrayBuffer||ArrayBuffer.isView(s)){let p=s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength),m=i-a;p.byteLength!==m&&console.warn(`Buffer size mismatch: expected ${m} bytes, got ${p.byteLength}
34. `+(p.byteLength<m?"Data truncated.":"Excess ignored."));let _=Math.min(p.byteLength,m);new Uint8Array(e).set(p.subarray(0,_),a);return}let l=new DataView(e),c=Hz==="little",d=Pd(t);if(d)try{d(l,a,s,c,i);return}catch(p){console.error(`Error when using compiled writer for data type '${t.type}' (${Ce(t)??"unnamed"}) - this is likely a bug, please submit an issue at https://github.com/software-mansion/TypeGPU/issues
35Using fallback writer instead.`,p)}let u=new On(e);u.seekTo(a),hp(u,t,s)}function Vf(e,t){return vl(new ul(e),t)}function Of(e,t){if(t==null)return t;if(Dt(e)||xo(e)){let s={},r=t;for(let a of Object.keys(e.propTypes)){let i=e.propTypes[a],l=r[a];l!==void 0&&i&&(s[a]=Of(i,l))}return s}if(Wt(e)||ur(e)){let s=e,r={};for(let{idx:a,value:i}of t)r[a]=Of(s.elementType,i);return r}return t}var jz=mp()==="little";function _g(e,t,s){let r=yt(e);if(r===0||t===void 0||t===null)return[];let a=s??new ArrayBuffer(r),i=new On(a),l=new DataView(a),c=[];function d(m,_,v,h){if(_==null)return;if(Dt(m)||xo(m)){let g=yi(m);for(let[w,f]of Object.entries(g)){let A=_[w],E=m.propTypes[w];A!==void 0&&E&&d(E,A,v+f.offset,f.padding??h)}return}if(Wt(m)||ur(m)){let g=m,w=Xs(yt(g.elementType),rs(g.elementType)),f=w-yt(g.elementType);if(ArrayBuffer.isView(_)){let E=Math.min(_.byteLength,g.elementCount*w);new Uint8Array(a,v,E).set(new Uint8Array(_.buffer,_.byteOffset,E)),c.push({start:v,end:v+E,padding:h});return}if(Array.isArray(_)){for(let E=0;E<Math.min(g.elementCount,_.length);E++)d(g.elementType,_[E],v+E*w,f);return}let A=_;for(let E of Object.keys(A)){let P=Number(E);Number.isNaN(P)||d(g.elementType,A[E],v+P*w,f)}return}let y=yt(m),x=Pd(m);x?x(l,v,_,jz,v+y):(i.seekTo(v),hp(i,m,_)),c.push({start:v,end:v+y,padding:h})}d(e,t,0);let u=[],p=null;for(let m of c)p&&m.start===p.end+(p.padding??0)?p={start:p.start,end:m.end,padding:m.padding}:(p&&u.push({gpuOffset:p.start,data:new Uint8Array(a,p.start,p.end-p.start).slice()}),p=m);return p&&u.push({gpuOffset:p.start,data:new Uint8Array(a,p.start,p.end-p.start).slice()}),u}function Q5(e,t,s){let r=_g(t,s,e),a=new Uint8Array(e);for(let{data:i,gpuOffset:l}of r)a.set(i,l)}function Rd(e){return!!e?.usableAsStorage}var fg=class e6 extends Error{constructor(t){super(`Resource '${Ce(t)??"<unnamed>"}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,e6.prototype)}};function t6(e){return e?.[Yt]}function vg(e,t={}){let s=0,r=new Set;return Object.fromEntries(Object.entries(e??{}).map(([a,i])=>{let l=Oa(i);if(l!==void 0){if(r.has(l))throw new Error("Duplicate custom location attributes found");r.add(l)}return[a,i]}).map(([a,i])=>{if(tr(i))return[a,i];if(Oa(i)!==void 0)return[a,i];if(t[a])return[a,uc(t[a],i)];for(;r.has(s);)s++;return[a,uc(s++,i)]}))}function Nf(e,t={}){let s=[],r={};for(let[a,i]of Object.entries(e))tr(i)?s.push({schemaKey:a,type:i}):r[a]=i;return{dataSchema:Object.keys(r).length>0?Qu(vg(r,t),!1):void 0,positionalArgs:s}}function s6(e){let t=vg(e);return{dataSchema:void 0,positionalArgs:Object.entries(t).map(([s,r])=>({schemaKey:s,type:r}))}}function xi(e,t={}){return ba(e)?U_(e)||tr(e)||Oa(e)!==void 0?e:uc(0,e):Qu(vg(e,t),!1)}var Zr=class{#e;#t;#s;#o;#r;#a;constructor(e,t,s){this.#e=e,this.#a=t,this.#t={},this.#o=s,this.#s=new Set}accessProp(e){let t=this.#e[e]??this.#a;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 a=mf(r);if(!a.success)throw new Error(`Invalid property key '${e}'${a.error?`: ${a.error}`:""}`);this.#s.add(r),s={prop:r,type:t},this.#t[e]=s}return s}get completeStruct(){if(!this.#r){this.#r=xi(Object.fromEntries(Object.values(this.#t).map(t=>[t.prop,t.type])),this.#o);let e=Ce(this);e&&je(this.#r,e)}return this.#r}[Je](e){return e.resolve(this.completeStruct)}toString(){return`auto-struct:${Ce(this)??"<unnamed>"}`}};Zr.prototype[K]={};Zr.prototype.type="auto-struct";var Yf=class{[K]={};type="entry-input-router";structArg;positionalArgsMap;
vendor: 5,254 bytes, line 35
35constructor(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&&Dt(s.dataType))return{target:s,prop:e}}};var Zz=["vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","mat2x2f","mat3x3f","mat4x4f"],Kz={f:{1:S,2:H,3:W,4:ee},h:{1:Fs,2:Bo,3:Uo,4:Vo},i:{1:fe,2:fs,3:Os,4:ls},u:{1:ie,2:Qe,3:Bt,4:ts},b:{1:Et,2:Pr,3:kr,4:Rr}};function Nn(e,t){if(Zz.includes(e.dataType.type)&&t in xf){let r=xf[t];return Te(new bf(e,r),os,e.origin,e.possibleSideEffects)}if(Wt(e.dataType)&&t==="length")return e.dataType.elementCount===0?Te(se`arrayLength(&${e})`,ie,"runtime",e.possibleSideEffects):Wr(e.dataType.elementCount);if(Nr(e.dataType)&&t==="columns")return Te(new L_(e),os,e.origin,e.possibleSideEffects);if(Dt(e.dataType)||xo(e.dataType))return H_(e,t);if(e.dataType instanceof Zr){let r=e.dataType.accessProp(t);return r?Te(se`${e}.${r.prop}`,r.type,"argument",e.possibleSideEffects):void 0}if(e.dataType instanceof Yf){let r=e.dataType.accessProp(t);return li(r)?r:r?Nn(r.target,r.prop):void 0}if(ws(e.dataType)){let r=_d(e);return t==="$"?r:Nn(r,t)}if(es(e.dataType)&&t==="kind")return Te(e.dataType.type,os,"constant",!1);let s=t.length;if(es(e.dataType)&&s>=1&&s<=4&&/^[xyzw]+$|^[rgba]+$/.test(t)){let r=Kz[e.dataType.type.includes("bool")?"b":e.dataType.type[4]][s];return r?Te(Us(e)?e.value[t]:se`${e}.${t}`,r,s===1?e.origin:e.origin==="constant"||e.origin==="constant-immutable-def"?"constant":"runtime",e.possibleSideEffects):void 0}if(Us(e)||e.dataType===os){let r=e.value[t];return kn(r)&&Ce(r)===void 0&&je(r,t),Xr(r)}}var o6={mat2x2f:H,mat3x3f:W,mat4x4f:ee};function Sc(e,t){let s=typeof t=="number"?Xr(t):t;if(Wt(e.dataType)||ur(e.dataType)){let r=e.dataType.elementType,a;return e.origin==="constant-immutable-def"?a=s.origin==="constant"||s.origin==="constant-immutable-def"?"constant-immutable-def":"runtime-immutable-def":e.origin==="constant"?a=s.origin==="constant"||s.origin==="constant-immutable-def"?"constant":"runtime":a=e.origin,e.value instanceof Qi&&Us(s)?e.value.elements[s.value]:Te(Us(e)&&Us(s)?e.value[s.value]:se`${e}[${s}]`,r,a,e.possibleSideEffects||s.possibleSideEffects)}if(es(e.dataType))return Te(Us(e)&&Us(s)?e.value[s.value]:se`${e}[${s}]`,e.dataType.primitive,e.origin,e.possibleSideEffects||s.possibleSideEffects);if(ws(e.dataType))return Sc(_d(e),s);if(e.value instanceof L_){let r=o6[e.value.matrix.dataType.type];return Te(se`${e.value.matrix}[${s}]`,r,e.origin,e.possibleSideEffects||s.possibleSideEffects)}if(e.dataType.type in o6)throw new Error("The only way of accessing matrix elements in TypeGPU functions is through the 'columns' property.");if(Us(e)&&Us(s))return Xr(e.value[s.value]);if(Dt(e.dataType)&&Us(s)&&typeof s.value=="string")return Nn(e,s.value)}var Yo={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=nc(e),r=Number(t);if(!Number.isNaN(r)){let i=Sc(s,r);return i?new Proxy({[K]:!0,[Je]:l=>l.resolve(i.value,i.dataType),[ro]:i,toString:()=>`${String(e)}[${t}]`},Yo):void 0}let a=Nn(s,String(t));if(a)return new Proxy({[K]:!0,[Je]:i=>i.resolve(a.value,a.dataType),[ro]:a,toString:()=>`${String(e)}.${t}`},Yo)}};function $d(e){let t=e;for(;;){let s=t6(t);if(!s)break;t=s}return t}function hg(e){return!!e.usableAsUniform}var yg=class{resourceType="buffer-usage";usage;buffer;[K];[bs];constructor(e,t){this.usage=e,this.buffer=t,this[K]={dataType:t.dataType},this[bs]=t}$name(e){return je(this,e),this}[Je](e){let t=this.buffer.dataType,s=e.makeUniqueIdentifier(Ce(this),"global"),{group:r,binding:a}=e.allocateFixedEntry(this.usage==="uniform"?{uniform:t}:{storage:t,access:this.usage},this.buffer);return e.gen.declareGlobalVar({group:r,binding:a,scope:this.usage,id:s,dataType:t,init:void 0})}toString(){return`${this.usage}:${Ce(this)??"<unnamed>"}`}get[Yt](){let e=this.buffer.dataType,t=this.usage;return new Proxy({[K]:!0,get[ro](){return Te(this,e,t)},[Je]:s=>s.resolve(this),toString:()=>`${this.usage}:${Ce(this)??"<unnamed>"}.$`},Yo)}get $(){let e=Ji(),t=md();if(e.type==="normal")throw new jh(t?`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()`");return e.type==="codegen"?this[Yt]:e.type==="simulate"?(e.buffers.has(this.buffer)||e.buffers.set(this.buffer,hr(this.buffer.dataType,this.buffer.initial)),e.buffers.get(this.buffer)):Dn(e,"bufferUsage.ts#TgpuFixedBufferImpl/$")}get value(){return this.$}set $(e){let t=Ji(),s=md();if(t.type==="normal")throw new jh(s?`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()`");if(t.type==="codegen")throw new Error("Unreachable bufferUsage.ts#TgpuFixedBufferImpl/$");if(t.type==="simulate"){t.buffers.set(this.buffer,e);return}Dn(t,"bufferUsage.ts#TgpuFixedBufferImpl/$")}set value(e){this.$=e}}
35,gg=class{[K];resourceType="buffer-usage";usage;dataType;#e;constructor(e,t,s){this[K]={dataType:t},this.usage=e,this.dataType=t,this.#e=s,je(this,s.key)}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),s=e.allocateLayoutEntry(this.#e.layout);return e.gen.declareGlobalVar({group:s,binding:this.#e.idx,scope:this.usage,id:t,dataType:this.dataType,init:void 0})}toString(){return`${this.usage}:${Ce(this)??"<unnamed>"}`}get[Yt](){let e=this.dataType,t=this.usage;return new Proxy({[K]:!0,get[ro](){return Te(this,e,t)},[Je]:s=>s.resolve(this),toString:()=>`${this.usage}:${Ce(this)??"<unnamed>"}.$`},Yo)}get $(){if(er())return this[Yt];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")}get value(){return this.$}},r6=new WeakMap;function i6(e){if(!Rd(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=r6.get(e);return t||(t=new yg("mutable",e),r6.set(e,t)),t}var a6=new WeakMap;function l6(e){if(!Rd(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=a6.get(e);return t||(t=new yg("readonly",e),a6.set(e,t)),t}var n6=new WeakMap;function c6(e){if(!hg(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=n6.get(e);return t||(t=new yg("uniform",e),n6.set(e,t)),t}var Jz={uniform:c6,mutable:i6,readonly:l6};function yp(e,t,s){return fr(t)?new d6(e,t,s):new d6(e,t,s,["storage","uniform"])}function hl(e){return e.resourceType==="buffer"}var d6=class{[K]=!0;resourceType="buffer";flags=GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC;dataType;#e;#t=null;#s;#o=!1;#r;get#a(){return this.#r??=new ArrayBuffer(yt(this.dataType))}#i;#n;#c;initial;usableAsUniform=!1;usableAsStorage=!1;usableAsVertex=!1;usableAsIndex=!1;usableAsIndirect=!1;constructor(e,t,s,r){this.dataType=t,this.#c=r,this.#e=e.device,cn(s)?(this.#s=!1,this.#t=s):(this.#s=!0,typeof s=="function"?this.#n=s:this.initial=s)}get buffer(){if(this.#o)throw new Error("This buffer has been destroyed");return this.#t||(this.#t=this.#e.createBuffer({size:yt(this.dataType),usage:this.flags,mappedAtCreation:!!this.initial||!!this.#n,label:Ce(this)??"<unnamed>"}),(this.initial||this.#n)&&(this.#n?this.#n(this):this.initial&&Bf(this.#l(),this.dataType,this.initial),this.#d())),this.#t}get destroyed(){return this.#o}get arrayBuffer(){return this.buffer.mapState==="mapped"?this.#l():this.#a}#l(){if(!this.#t||this.#t.mapState!=="mapped")throw new Error("Buffer is not mapped.");return this.#i??=this.#t.getMappedRange(),this.#i}#d(){!this.#t||this.#t.mapState!=="mapped"||(this.#i=void 0,this.#t.unmap())}$name(e){return je(this,e),this.#t&&(this.#t.label=e),this}$usage(...e){for(let t of e){if(this.#c?.includes(t))throw new Error(`Buffer of type ${this.dataType.type} cannot be used as ${t}`);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"}return this}$addFlags(e){if(!this.#s)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(){Pd(this.dataType)}write(e,t){let s=this.buffer;if(s.mapState==="mapped"){let l=this.#l();if(e instanceof ArrayBuffer&&e===l)return;Bf(l,this.dataType,e,t);return}e instanceof ArrayBuffer&&e===this.#a||Bf(this.#a,this.dataType,e,t);let{startOffset:r,endOffset:a}=mg(t,this.dataType,e),i=a-r;this.#e.queue.writeBuffer(s,r,this.#a,r,i)}writePartial(e){this.patch(Of(this.dataType,e))}patch(e){let t=this.buffer;if(t.mapState==="mapped")Q5(this.#l(),this.dataType,e);else{let s=_g(this.dataType,e,this.#a);for(let{data:r,gpuOffset:a}of s)this.#e.queue.writeBuffer(t,a,r)}}clear(){let e=this.buffer;if(e.mapState==="mapped"){new Uint8Array(this.#l()).fill(0);return}let t=this.#e.createCommandEncoder();t.clearBuffer(e),this.#e.queue.submit([t.finish()])}copyFrom(e){if(this.buffer.mapState==="mapped")throw new Error("Cannot copy to a mapped buffer.");let t=yt(this.dataType),s=this.#e.createCommandEncoder();s.copyBufferToBuffer(e.buffer,0,this.buffer,0,t),this.#e.queue.submit([s.finish()])}async read(){let e=this.buffer;if(e.mapState==="mapped")return Vf(this.#l(),this.dataType);if(e.usage&GPUBufferUsage.MAP_READ){await e.mapAsync(GPUMapMode.READ);let a=Vf(this.#l(),this.dataType);return this.#d(),a}let t=this.#e.createBuffer({size:yt(this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),s=this.#e.createCommandEncoder();s.copyBufferToBuffer(e,0,t,0,yt(this.dataType)),this.#e.queue.submit([s.finish()]),await t.mapAsync(GPUMapMode.READ,0,yt(this.dataType));let r=Vf(t.getMappedRange(),this.dataType);return t.unmap(),t.destroy(),r}as(e){return Jz[e]?.(this)}destroy(){this.#o||(this.#o=!0,this.#i=void 0,this.#s&&this.#t?.destroy())}toString(){return`buffer:${Ce(this)??"<unnamed>"}`}};function u6(e,t){return new _6(xc(),e,t)}function p6(e,t){return new _6(bc(),e,t)}function Gf(e){let t=e;return t?.resourceType==="sampler"&&!!t[K]}function Wf(e){let t=e;return t?.resourceType==="sampler-comparison"&&!!t[K]}var m6=class{[K]={unwrap:void 0};resourceType;schema;#e;constructor(e,t){this.schema=e,this.#e=t,this.resourceType=e.type==="sampler_comparison"?"sampler-comparison":"sampler",je(this,t.key)}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),s=e.allocateLayoutEntry(this.#e.layout);return e.addDeclaration(`@group(${s}) @binding(${this.#e.idx}) var ${t}: ${e.resolve(this.schema).value};`),Te(t,this.schema,"handle")}get[Yt](){let e=this.schema;return new Proxy({[K]:!0,get[ro](){return Te(this,e,"handle")},[Je]:t=>t.resolve(this),toString:()=>`${this.toString()}.$`},Yo)}
vendor: 3,681 bytes, lines 35-42
35get $(){if(er())return this[Yt];throw new Error("Direct access to sampler values is possible only as part of a compute dispatch or draw call.")}get value(){return this.$}toString(){return`${this.resourceType}:${Ce(this)??"<unnamed>"}`}},_6=class{[K];resourceType;schema;#e;#t=null;#s;#o;constructor(e,t,s){this.schema=e,this.#s=t,this.#o=s,this.resourceType=e.type==="sampler_comparison"?"sampler-comparison":"sampler",this[K]={unwrap:()=>(this.#t||(this.#t=this.#o.device.createSampler({...this.#s,label:Ce(this)??"<unnamed>"})),this.#t)},this.#e=t.minFilter==="linear"||t.magFilter==="linear"||t.mipmapFilter==="linear"}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),{group:s,binding:r}=e.allocateFixedEntry(this.schema.type==="sampler_comparison"?{sampler:"comparison"}:{sampler:this.#e?"filtering":"non-filtering"},this);return e.addDeclaration(`@group(${s}) @binding(${r}) var ${t}: ${e.resolve(this.schema).value};`),Te(t,this.schema,"handle")}get[Yt](){let e=this.schema;return new Proxy({[K]:!0,get[ro](){return Te(this,e,"handle")},[Je]:t=>t.resolve(this),toString:()=>`${this.toString()}.$`},Yo)}get $(){if(er())return this[Yt];throw new Error("Direct access to sampler values is possible only as part of a compute dispatch or draw call.")}get value(){return this.$}$name(e){return je(this,e),this}toString(){return`${this.resourceType}:${Ce(this)??"<unnamed>"}`}};var Qz={channelType:S,vectorType:ee,sampleTypes:["depth","unfilterable-float"],texelSize:"non-copyable"},eI={channelType:S,vectorType:ee,sampleTypes:["depth","unfilterable-float"],texelSize:2},tI={channelType:S,vectorType:ee,sampleTypes:["depth","unfilterable-float"],texelSize:4},sI={channelType:ie,vectorType:ts,sampleTypes:["uint"],texelSize:1},f6=new Map;function yl(e){let t=f6.get(e);return t===void 0&&(t=oI(e),f6.set(e,t)),t}function oI(e){let t=nI(e),s=rI(e),r=e.includes("stencil");return{channelType:t,vectorType:t===ie?ts:t===fe?ls:ee,texelSize:iI(e),sampleTypes:lI(e),canRenderAttachment:aI(e),...s&&{depthAspect:s},...r&&{stencilAspect:sI}}}function rI(e){if(e==="depth16unorm")return eI;if(e==="depth32float"||e==="depth32float-stencil8")return tI;if(e==="depth24plus"||e==="depth24plus-stencil8")return Qz}function aI(e){return!(e.startsWith("bc")||e.startsWith("etc2")||e.startsWith("eac")||e.startsWith("astc")||e==="rgb9e5ufloat")}function nI(e){return e==="stencil8"?ie:e.includes("uint")?ie:e.includes("sint")?fe:S}function iI(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 lI(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 cI=new Set(["r32float","rg32float","rgba32float"]);function v6(e,t){return cI.has(t)&&!e.features.has("float32-filterable")?["unfilterable-float"]:yl(t).sampleTypes}function bg(e){let{videoWidth:t,videoHeight:s}=e;if(t&&s)return{width:t,height:s};let{naturalWidth:r,naturalHeight:a}=e;if(r&&a)return{width:r,height:a};let{codedWidth:i,codedHeight:l}=e;if(i&&l)return{width:i,height:l};let{width:c,height:d}=e;if(c&&d)return{width:c,height:d};throw new Error("Cannot determine dimensions of the provided image source.")}var dI=`
36struct VertexOutput {
37  @builtin(position) pos: vec4f,
38  @location(0) uv: vec2f,
39}
40
41@vertex
42fn vs_main(@builtin(vertex_index) i: u32) -> VertexOutput {
43  const pos = array(vec2f(-1, -1), vec2f(3, -1), vec2f(-1, 3));
44  const uv = array(vec2f(0, 1), vec2f(2, 1), vec2f(0, -1));
45  return VertexOutput(vec4f(pos[i], 0, 1), uv[i]);
46}`,uI=`
47@group(0) @binding(0) var src: texture_2d<f32>;
48@group(0) @binding(1) var samp: sampler;
49
50@fragment
51fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
52  return textureSample(src, samp, uv);
53}`,pI=`
54@group(0) @binding(0) var src: texture_2d<f32>;
55@group(0) @binding(1) var samp: sampler;
56
57@fragment
58fn fs_main(@location(0) uv: vec2f) -> @location(0) vec4f {
59  let r = textureGather(0, src, samp, uv);
60  let g = textureGather(1, src, samp, uv);
61  let b = textureGather(2, src, samp, uv);
62  let a = textureGather(3, src, samp, uv);
63  return vec4f(dot(r, vec4f(0.25)), dot(g, vec4f(0.25)), dot(b, vec4f(0.25)), dot(a, vec4f(0.25)));
64}`,xg=new WeakMap;function mI(e){let t=xg.get(e);return t||(t={vertexModule:e.createShaderModule({code:dI}),filterableResources:new Map,layoutResources:new Map},xg.set(e,t)),t}function _I(e,t,s){let r=mI(e),a=r.filterableResources.get(t);a||(a={fragmentModule:e.createShaderModule({code:t?uI:pI}),sampler:e.createSampler(t?{magFilter:"linear",minFilter:"linear"}:{})},r.filterableResources.set(t,a));let i=`${t}:${s}`,l=r.layoutResources.get(i);if(!l){let c=e.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:s}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:t?"filtering":"non-filtering"}}]});l={bindGroupLayout:c,pipelineLayout:e.createPipelineLayout({bindGroupLayouts:[c]})},r.layoutResources.set(i,l)}return{vertexModule:r.vertexModule,...a,...l}}function h6(e){let{device:t,source:s,destination:r,format:a,filterable:i,sampleType:l}=e,c=_I(t,i,l),d=t.createRenderPipeline({layout:c.pipelineLayout,vertex:{module:c.vertexModule},fragment:{module:c.fragmentModule,targets:[{format:a}]},primitive:{topology:"triangle-list"}}),u=t.createBindGroup({layout:c.bindGroupLayout,entries:[{binding:0,resource:s},{binding:1,resource:c.sampler}]}),p=!e.encoder,m=e.encoder??t.createCommandEncoder(),_=m.beginRenderPass({colorAttachments:[{view:r,loadOp:"clear",storeOp:"store"}]});_.setPipeline(d),_.setBindGroup(0,u),_.draw(3),_.end(),p&&t.queue.submit([m.finish()])}function y6(e){xg.delete(e)}function g6(e,t,s){let r=yl(t),a=v6(e,t),i=a.includes("float"),l=a.includes("unfilterable-float");if(!i&&!l)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:i,sampleType:i?"float":"unfilterable-float"}}function x6(e,t,s=0,r){if(t.dimension!=="2d")throw new Error("Mipmap generation only supports 2D textures.");let{filterable:a,sampleType:i}=g6(e,t.format,"generate mipmaps"),l=r??t.mipLevelCount-s;for(let c=0;c<t.depthOrArrayLayers;c++)for(let d=s;d<s+l-1;d++){let u=p=>({dimension:"2d",baseMipLevel:p,mipLevelCount:1,baseArrayLayer:c,arrayLayerCount:1});h6({device:e,source:t.createView(u(d)),destination:t.createView(u(d+1)),format:t.format,filterable:a,sampleType:i})}}function b6(e,t,s,r=0){if(t.dimension!=="2d")throw new Error("Resampling only supports 2D textures.");let{filterable:a}=g6(e,t.format,"resample"),{width:i,height:l}=bg(s),c=e.createTexture({size:[i,l],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});e.queue.copyExternalImageToTexture({source:s},{texture:c},[i,l]);let d=e.createTexture({size:[t.width,t.height],format:t.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC}),u=e.createCommandEncoder();h6({device:e,source:c.createView(),destination:d.createView(),format:t.format,filterable:a,sampleType:"float",encoder:u}),u.copyTextureToTexture({texture:d},{texture:t,origin:{x:0,y:0,z:r}},{width:t.width,height:t.height,depthOrArrayLayers:1}),e.queue.submit([u.finish()]),c.destroy(),d.destroy()}function fI(e){return{dimension:e.dimension??"2d",sampleType:yl(e.format).channelType,multisampled:(e.sampleCount??1)!==1}}function w6(e,t){return new vI(e,t)}function bi(e){return e?.resourceType==="texture"&&!!e[K]}function wi(e){return e?.resourceType==="texture-view"&&!!e[K]}var vI=class{[K];resourceType="texture";props;usableAsSampled=!1;usableAsStorage=!1;usableAsRender=!1;#e;#t=!1;#s=GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC;#o=null;#r;constructor(e,t){this.props=e;let s=e.format;this.#r=t,this.#e=yl(s),this[K]={unwrap:()=>
64{if(this.#t)throw new Error("This texture has been destroyed");return this.#o||(this.#o=t.device.createTexture({label:Ce(this)??"<unnamed>",format:e.format,size:e.size,usage:this.#s,dimension:e.dimension??"2d",viewFormats:e.viewFormats??[],mipLevelCount:e.mipLevelCount??1,sampleCount:e.sampleCount??1})),this.#o}}}$name(e){return je(this,e),this}$usage(...e){let t=e.includes("storage"),s=e.includes("sampled"),r=e.includes("render");return this.#s|=s?GPUTextureUsage.TEXTURE_BINDING:0,this.#s|=t?GPUTextureUsage.STORAGE_BINDING:0,this.#s|=r?GPUTextureUsage.RENDER_ATTACHMENT:0,this.usableAsStorage||=t,this.usableAsSampled||=s,this.usableAsRender||=r,this}createView(e,t){return e==="render"?new yI(this,t):new hI(e??lp(fI(this.props)),this,t)}#a(e=0){let t=2**e,[s,r,a]=[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))],i=this.#e.texelSize;if(i==="non-copyable")throw new Error(`Cannot clear texture with format '${this.props.format}': this format does not support copy operations.`);this.#r.device.queue.writeTexture({texture:this[K].unwrap(),mipLevel:e},new Uint8Array(s*r*a*i),{bytesPerRow:i*s,rowsPerImage:r},[s,r,a])}clear(e="all"){if(e==="all"){let t=this.props.mipLevelCount??1;for(let s=0;s<t;s++)this.#a(s)}else this.#a(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){console.warn(`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.`);x6(this.#r.device,this[K].unwrap(),e,s)}write(e,t=0){if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){this.#i(e,t);return}let s=this.props.dimension??"2d";if(!Array.isArray(e)){this.#n(e,s==="3d"?0:void 0);return}let r=this.props.size[2]??1;e.length>r&&console.warn(`Too many image sources provided. Expected ${r} layers, got ${e.length}. Extra sources will be ignored.`);for(let a=0;a<Math.min(e.length,r);a++){let i=e[a];i&&this.#n(i,a)}}#i(e,t){let s=Math.max(1,this.props.size[0]>>t),r=Math.max(1,(this.props.size[1]??1)>>t),a=Math.max(1,(this.props.size[2]??1)>>t),i=this.#e.texelSize;if(i==="non-copyable")throw new Error(`Cannot write to texture with format '${this.props.format}': this format does not support copy operations.`);let l=s*r*a*i,c=e.byteLength??e.byteLength;if(c!==l)throw new Error(`Buffer size mismatch. Expected ${l} bytes for mip level ${t}, got ${c} bytes.`);this.#r.device.queue.writeTexture({texture:this[K].unwrap(),mipLevel:t},"buffer"in e?e.buffer:e,{bytesPerRow:i*s,rowsPerImage:r},[s,r,a])}#n(e,t){let s=this.props.size[0],r=this.props.size[1]??1,{width:a,height:i}=bg(e);if(a!==s||i!==r){b6(this.#r.device,this[K].unwrap(),e,t);return}this.#r.device.queue.copyExternalImageToTexture({source:e},{texture:this[K].unwrap(),...t!==void 0&&{origin:{x:0,y:0,z:t}}},t!==void 0?[s,r,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.#r.device.createCommandEncoder();t.copyTextureToTexture({texture:e[K].unwrap()},{texture:this[K].unwrap()},e.props.size),this.#r.device.queue.submit([t.finish()])}toString(){return`${this.resourceType}:${Ce(this)??"<unnamed>"}`}get destroyed(){return this.#t}destroy(){this.#t||(this.#t=!0,this.#o?.destroy())}},hI=class{[K];resourceType="texture-view";schema;#e;#t;#s;constructor(e,t,s){this.schema=e,this.#e=t,this.#s=s,this[K]={unwrap:()=>{if(!this.#t){let r=this.schema,a=cp(r)?r.format:this.#e.props.format;this.#t=this.#e[K].unwrap().createView({...this.#s,label:Ce(this)??"<unnamed>",format:this.#s?.format??a,dimension:r.dimension})}return this.#t}}}$name(e){return je(this,e),this.#t&&(this.#t.label=e),this}get[Yt](){let e=this.schema;return new Proxy({[K]:!0,get[ro](){return Te(this,e,"handle")},[Je]:t=>t.resolve(this),toString:()=>`${this.toString()}.$`},Yo)}
64get $(){if(er())return this[Yt];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 value(){return this.$}get size(){return this.#e.props.size}toString(){return`textureView:${Ce(this)??"<unnamed>"}`}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),{group:s,binding:r}=e.allocateFixedEntry(cp(this.schema)?{storageTexture:this.schema}:{texture:this.schema,sampleType:this.#s?.sampleType??this.schema.bindingSampleType[0]},this);return e.gen.declareGlobalVar({group:s,binding:r,id:t,dataType:this.schema,scope:"handle",init:void 0})}},wg=class{[K]={unwrap:void 0};resourceType="texture-view";#e;schema;constructor(e,t){this.schema=e,this.#e=t,je(this,t.key)}toString(){return`textureView:${Ce(this)??"<unnamed>"}`}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),s=e.allocateLayoutEntry(this.#e.layout);return e.addDeclaration(`@group(${s}) @binding(${this.#e.idx}) var ${t}: ${e.resolve(this.schema).value};`),Te(t,this.schema,"handle")}get[Yt](){let e=this.schema;return new Proxy({[K]:!0,get[ro](){return Te(this,e,"handle")},[Je]:t=>t.resolve(this),toString:()=>`${this.toString()}.$`},Yo)}get $(){if(er())return this[Yt];throw new Error(`Accessed view '${Ce(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`)}get value(){return this.$}$name(e){return je(this,e),this}},yI=class{[K];resourceType="texture-view";descriptor;constructor(e,t={}){this.descriptor=t,this[K]={unwrap:()=>e[K].unwrap().createView({label:Ce(this)??"<unnamed>",...this.descriptor})}}};function T6(e){return!!e?.usableAsSampled}var S6=class A6 extends Error{constructor(t){super(`Resource '${Ce(t)??"<unnamed>"}' cannot be bound as 'sampled'. Use .$usage('sampled') to allow it.`),Object.setPrototypeOf(this,A6.prototype)}};function Ac(e,t){return new E6("private",e,t)}function Xf(e){return new E6("workgroup",e)}var E6=class{[K]={};resourceType;#e;#t;#s;constructor(e,t,s){this.resourceType="var",this.#e=e,this.#t=t,this.#s=s}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),s=this.#s?Te(this.#s,this.#t,"constant"):void 0;return e.gen.declareGlobalVar({scope:this.#e,id:t,dataType:this.#t,init:s})}$name(e){return je(this,e),this}toString(){return`var:${Ce(this)??"<unnamed>"}`}get[Yt](){let e=this.#t,t=this.#e;return new Proxy({[K]:!0,get[ro](){return Te(this,e,t)},[Je]:s=>s.resolve(this),toString:()=>`var:${Ce(this)??"<unnamed>"}.$`},Yo)}get $(){let e=Ji(),t=md();if(e.type==="normal")throw new Hh(t?`Cannot access variable '${Ce(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()`");return e.type==="codegen"?this[Yt]:e.type==="simulate"?(e.vars[this.#e].has(this)||e.vars[this.#e].set(this,this.#s),e.vars[this.#e].get(this)):Dn(e,"tgpuVariable.ts#TgpuVarImpl/$")}set $(e){let t=Ji(),s=md();if(t.type==="normal")throw new Hh(s?`Cannot access ${String(this)}. 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()`");if(t.type==="codegen")throw new Error("Unreachable tgpuVariable.ts#TgpuVarImpl/$");if(t.type==="simulate"){t.vars[this.#e].set(this,e);return}Dn(t,"tgpuVariable.ts#TgpuVarImpl/$")}get value(){return this.$}set value(e){this.$=e}};function Ud(e,t){if(!ba(e)){if(!Array.isArray(t))throw new Error(`Expected an array value for a partially-applied array schema, but received: ${typeof t}.`);return new M6(e(t.length),t)}return new M6(e,t)}function C6(e){let t=Reflect.ownKeys(e);for(let s of t){let r=e[s];(r&&typeof r=="object"||typeof r=="function")&&C6(r)}return Object.freeze(e)}var M6=class{[K]={};resourceType;dataType;#e;constructor(e,t){this.resourceType="const",this.dataType=e,this.#e=t&&typeof t=="object"?C6(t):t}$name(e){return je(this,e),this}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global");return e.gen.declareGlobalConst({id:t,dataType:this.dataType,init:Te(this.#e,this.dataType,"constant")})}toString(){return`const:${Ce(this)??"<unnamed>"}`}get[Yt](){let e=this.dataType;return new Proxy({[K]:!0,get[ro](){return Te(this,e,"constant-immutable-def")},[Je]:t=>t.resolve(this),toString:()=>`const:${Ce(this)??"<unnamed>"}.$`},Yo)}get $(){return er()?this[Yt]:this.#e}get value(){return this.$}};var Tg=e=>({argTypes:[e],returnType:e}),Sg=(...e)=>{let t=Ws(e)??e;return{argTypes:t,returnType:t[0]}},ns=e=>(...t)=>{let s=Ws(t,e);if(!s)throw new vr(t,e);return{argTypes:s,returnType:s[0]}};function P6(e){return(t,...s)=>{let r=t;for(let a of s)r=e(r,a);return r}}function k6(e){return(t,[s,...r])=>{let a=se`${s}`;for(let i of r)a=se`${e}(${a}, ${i})`;return a}}var gI=[S,Fs,Ln],gp=[H,W,ee,Bo,Uo,Vo],as=[...gI,...gp],xI=[fe,ie],bI=[fs,Os,ls,Qe,Bt,ts],Ti=[...xI,...bI];function wI(e){return typeof e=="number"?Math.abs(e):gt.abs[e.kind](e)}var at=ve({name:"abs",signature:Tg,normalImpl:wI,codegenImpl:(e,[t])=>se`abs(${t})`});function TI(e){return typeof e=="number"?Math.acos(e):gt.acos[e.kind](e)}var xp=ve({name:"acos",signature:ns(as),normalImpl:TI,codegenImpl:(e,[t])=>se`acos(${t})`});function SI(e){return typeof e=="number"?Math.acosh(e):gt.acosh[e.kind](e)}
vendor: 4,640 bytes, line 64
64var bp=ve({name:"acosh",signature:ns(as),normalImpl:SI,codegenImpl:(e,[t])=>se`acosh(${t})`});function AI(e){return typeof e=="number"?Math.asin(e):gt.asin[e.kind](e)}var wp=ve({name:"asin",signature:ns(as),normalImpl:AI,codegenImpl:(e,[t])=>se`asin(${t})`});function EI(e){return typeof e=="number"?Math.asinh(e):gt.asinh[e.kind](e)}var Tp=ve({name:"asinh",signature:ns(as),normalImpl:EI,codegenImpl:(e,[t])=>se`asinh(${t})`});function MI(e){return typeof e=="number"?Math.atan(e):gt.atan[e.kind](e)}var Sp=ve({name:"atan",signature:ns(as),normalImpl:MI,codegenImpl:(e,[t])=>se`atan(${t})`});function CI(e){return typeof e=="number"?Math.atanh(e):gt.atanh[e.kind](e)}var Ap=ve({name:"atanh",signature:ns(as),normalImpl:CI,codegenImpl:(e,[t])=>se`atanh(${t})`});function PI(e,t){return typeof e=="number"&&typeof t=="number"?Math.atan2(e,t):gt.atan2[e.kind](e,t)}var Ea=ve({name:"atan2",signature:ns(as),normalImpl:PI,codegenImpl:(e,[t,s])=>se`atan2(${t}, ${s})`});function kI(e){return typeof e=="number"?Math.ceil(e):gt.ceil[e.kind](e)}var Ec=ve({name:"ceil",signature:ns(as),normalImpl:kI,codegenImpl:(e,[t])=>se`ceil(${t})`});function RI(e,t,s){return typeof e=="number"?Math.min(Math.max(t,e),s):gt.clamp[e.kind](e,t,s)}var xt=ve({name:"clamp",signature:Sg,normalImpl:RI,codegenImpl:(e,[t,s,r])=>se`clamp(${t}, ${s}, ${r})`});function $I(e){return typeof e=="number"?Math.cos(e):gt.cos[e.kind](e)}var po=ve({name:"cos",signature:ns(as),normalImpl:$I,codegenImpl:(e,[t])=>se`cos(${t})`});function UI(e){return typeof e=="number"?Math.cosh(e):gt.cosh[e.kind](e)}var Ep=ve({name:"cosh",signature:ns(as),normalImpl:UI,codegenImpl:(e,[t])=>se`cosh(${t})`}),Mp=ve({name:"countLeadingZeros",signature:ns(Ti),normalImpl:"CPU implementation for countLeadingZeros not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`countLeadingZeros(${t})`}),Ag=ve({name:"countOneBits",signature:ns(Ti),normalImpl:"CPU implementation for countOneBits not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`countOneBits(${t})`}),Eg=ve({name:"countTrailingZeros",signature:ns(Ti),normalImpl:"CPU implementation for countTrailingZeros not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`countTrailingZeros(${t})`}),Mg=ve({name:"cross",signature:ns([W,Uo]),normalImpl:(e,t)=>gt.cross[e.kind](e,t),codegenImpl:(e,[t,s])=>se`cross(${t}, ${s})`});function DI(e){if(typeof e=="number")return e*180/Math.PI;throw new Ao("CPU implementation for degrees on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Cg=ve({name:"degrees",signature:ns(as),normalImpl:DI,codegenImpl:(e,[t])=>se`degrees(${t})`}),Pg=ve({name:"determinant",signature:e=>{if(!(e.type==="mat2x2f"||e.type==="mat3x3f"||e.type==="mat4x4f"))throw new vr([e],[gr,bo,Ms]);return{argTypes:[e],returnType:S}},normalImpl:"CPU implementation for determinant not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`determinant(${t})`});function zI(e,t){return typeof e=="number"&&typeof t=="number"?Math.abs(e-t):It(Ts(e,t))}var kg=ve({name:"distance",signature:(...e)=>{let t=Ws(e,as);if(!t)throw new vr(e,as);return{argTypes:t,returnType:z_(t[0])?Fs:S}},normalImpl:zI,codegenImpl:(e,[t,s])=>se`distance(${t}, ${s})`}),no=ve({name:"dot",signature:(...e)=>({argTypes:e,returnType:e[0].primitive}),normalImpl:(e,t)=>gt.dot[e.kind](e,t),codegenImpl:(e,[t,s])=>se`dot(${t}, ${s})`}),Rg=ve({name:"dot4U8Packed",signature:{argTypes:[ie,ie],returnType:ie},normalImpl:"CPU implementation for dot4U8Packed not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s])=>se`dot4U8Packed(${t}, ${s})`}),$g=ve({name:"dot4I8Packed",signature:{argTypes:[ie,ie],returnType:fe},normalImpl:"CPU implementation for dot4I8Packed not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t,s])=>se`dot4I8Packed(${t}, ${s})`});function II(e){return typeof e=="number"?Math.exp(e):gt.exp[e.kind](e)}var Mc=ve({name:"exp",signature:ns(as),normalImpl:II,codegenImpl:(e,[t])=>se`exp(${t})`});function LI(e){return typeof e=="number"?2**e:gt.exp2[e.kind](e)}var Ug=ve({name:"exp2",signature:ns(as),normalImpl:LI,codegenImpl:(e,[t])=>se`exp2(${t})`}),Dg=ve({name:"extractBits",signature:(e,t,s)=>{let r=Ws([e],Ti)?.[0];if(!r)throw new vr([e],Ti);return{argTypes:[r,ie,ie],returnType:r}}
64,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])=>se`extractBits(${t}, ${s}, ${r})`}),zg=ve({name:"faceForward",signature:ns(gp),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])=>se`faceForward(${t}, ${s}, ${r})`}),Ig=ve({name:"firstLeadingBit",signature:Tg,normalImpl:"CPU implementation for firstLeadingBit not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`firstLeadingBit(${t})`}),Lg=ve({name:"firstTrailingBit",signature:ns(Ti),normalImpl:"CPU implementation for firstTrailingBit not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`firstTrailingBit(${t})`});function FI(e){return typeof e=="number"?Math.floor(e):gt.floor[e.kind](e)}var Lt=ve({name:"floor",signature:ns(as),normalImpl:FI,codegenImpl:(e,[t])=>se`floor(${t})`});function BI(e,t,s){if(typeof e=="number")return e*t+s;throw new Ao("CPU implementation for fma on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Fg=ve({name:"fma",signature:ns(as),normalImpl:BI,codegenImpl:(e,[t,s,r])=>se`fma(${t}, ${s}, ${r})`});function VI(e){return typeof e=="number"?e-Math.floor(e):gt.fract[e.kind](e)}var Ur=ve({name:"fract",signature:ns(as),normalImpl:VI,codegenImpl:(e,[t])=>se`fract(${t})`}),OI={f32:or({fract:S,exp:fe}),f16:or({fract:Fs,exp:fe}),abstractFloat:or({fract:Ln,exp:ic}),vec2f:or({fract:H,exp:fs}),vec3f:or({fract:W,exp:Os}),vec4f:or({fract:ee,exp:ls}),vec2h:or({fract:Bo,exp:fs}),vec3h:or({fract:Uo,exp:Os}),vec4h:or({fract:Vo,exp:ls})},Bg=ve({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=OI[e.type];if(!t)throw new vr([e],as);return{argTypes:[e],returnType:t}},codegenImpl:(e,[t])=>se`frexp(${t})`}),Vg=ve({name:"insertBits",signature:(e,t,s,r)=>{let a=Ws([e,t],Ti);if(!a)throw new vr([e,t],Ti);return{argTypes:[...a,ie,ie],returnType:a[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,a])=>se`insertBits(${t}, ${s}, ${r}, ${a})`});function NI(e){if(typeof e=="number")return 1/Math.sqrt(e);throw new Ao("CPU implementation for inverseSqrt on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Og=ve({name:"inverseSqrt",signature:ns(as),normalImpl:NI,codegenImpl:(e,[t])=>se`inverseSqrt(${t})`}),Ng=ve({name:"ldexp",signature:(e,t)=>{switch(e.type){case"abstractFloat":return{argTypes:[e,ic],returnType:e};case"f32":case"f16":return{argTypes:[e,fe],returnType:e};case"vec2f":case"vec2h":return{argTypes:[e,fs],returnType:e};case"vec3f":case"vec3h":return{argTypes:[e,Os],returnType:e};case"vec4f":case"vec4h":return{argTypes:[e,ls],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])=>se`ldexp(${t}, ${s})`});function YI(e){return typeof e=="number"?Math.abs(e):gt.length[e.kind](e)}var It=ve({name:"length",signature:e=>{let t=Ws([e],as);if(!t)throw new vr([e],as);return{argTypes:t,returnType:z_(t[0])?Fs:S}},normalImpl:YI,codegenImpl:(e,[t])=>se`length(${t})`});function GI(e){return typeof e=="number"?Math.log(e):gt.log[e.kind](e)}var Cp=ve({name:"log",signature:ns(as),normalImpl:GI,codegenImpl:(e,[t])=>se`log(${t})`});function WI(e){return typeof e=="number"?Math.log2(e):gt.log2[e.kind](e)}var Cc=ve({name:"log2",signature:ns(as),normalImpl:WI,codegenImpl:(e,[t])=>se`log2(${t})`});function XI(e,t){return typeof e=="number"?Math.max(e,t):gt.max[e.kind](e,t)}var $e=ve({name:"max",signature:Sg,normalImpl:P6(XI),codegenImpl:k6("max")});function qI(e,t){return typeof e=="number"?Math.min(e,t):gt.min[e.kind](e,t)}var Ct=ve({name:"min",signature:Sg,normalImpl:P6(qI),codegenImpl:k6("min")});function HI(e,t,s){if(typeof e=="number"){if(typeof s!="number"||typeof t!="number")throw new Error("When e1 and e2 are numbers, the blend factor must be a number.");return e*(1-s)+t*s}if(typeof e=="number"||typeof t=="number")throw new Error("e1 and e2 need to both be vectors of the same kind.");return gt.mix[e.kind](e,t,s)}var Ft=ve({name:"mix",signature:(e,t,s)=>{if(e.type.startsWith("vec")&&!s.type.startsWith("vec")){let a=Ws([s],[e.primitive]);if(!a)throw new vr([s],[e.primitive]);return{argTypes:[e,t,a[0]],returnType:e}}let r=Ws([e,t,s],as);if(!r)throw new vr([e,t,s],as);return{argTypes:r,returnType:r[0]}},normalImpl:HI,codegenImpl:(e,[t,s,r])=>se`mix(${t}, ${s}, ${r})`}),jI={f32:or({fract:S,whole:S}),f16:or({fract:Fs,whole:Fs}),abstractFloat:or({fract:Ln,whole:Ln}
vendor: 15,024 bytes, lines 64-71
64),vec2f:or({fract:H,whole:H}),vec3f:or({fract:W,whole:W}),vec4f:or({fract:ee,whole:ee}),vec2h:or({fract:Bo,whole:Bo}),vec3h:or({fract:Uo,whole:Uo}),vec4h:or({fract:Vo,whole:Vo})},Yg=ve({name:"modf",signature:e=>{let t=jI[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])=>se`modf(${t})`}),Dd=ve({name:"normalize",signature:ns(gp),normalImpl:e=>gt.normalize[e.kind](e),codegenImpl:(e,[t])=>se`normalize(${t})`});function ZI(e,t){if(typeof e=="number"&&typeof t=="number")return e**t;if(Rs(e)&&Rs(t))return gt.pow[e.kind](e,t);throw new Error(`Invalid arguments to pow(): '${e}' '${t}'`)}var io=ve({name:"pow",signature:ns(as),normalImpl:ZI,codegenImpl:(e,[t,s])=>se`pow(${t}, ${s})`}),Gg=ve({name:"quantizeToF16",signature:e=>{let t=[H,W,ee,S],s=Ws([e],t)?.[0];if(!s)throw new vr([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])=>se`quantizeToF16(${t})`});function KI(e){if(typeof e=="number")return e*Math.PI/180;throw new Ao("CPU implementation for radians on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Wg=ve({name:"radians",signature:ns(as),normalImpl:KI,codegenImpl:(e,[t])=>se`radians(${t})`}),Xg=ve({name:"reflect",signature:(...e)=>{let t=Ws(e,gp);if(!t)throw new vr(e,gp);return{argTypes:t,returnType:t[0]}},normalImpl:(e,t)=>Ts(e,Po(2*no(t,e),t)),codegenImpl:(e,[t,s])=>se`reflect(${t}, ${s})`}),qg=ve({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])=>se`refract(${t}, ${s}, ${r})`,signature:(e,t,s)=>({argTypes:[e,t,z_(e)?Fs:S],returnType:e})}),Hg=ve({name:"reverseBits",signature:ns(Ti),normalImpl:"CPU implementation for reverseBits not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`reverseBits(${t})`});function JI(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 Ao("CPU implementation for round on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Yn=ve({name:"round",signature:ns(as),normalImpl:JI,codegenImpl:(e,[t])=>se`round(${t})`});function QI(e){if(typeof e=="number")return Math.max(0,Math.min(1,e));throw new Ao("CPU implementation for saturate on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var jg=ve({name:"saturate",signature:ns(as),normalImpl:QI,codegenImpl:(e,[t])=>se`saturate(${t})`});function eL(e){return typeof e=="number"?Math.sign(e):gt.sign[e.kind](e)}var Kr=ve({name:"sign",signature:e=>{let t=[...as,fe,fs,Os,ls],s=Ws([e],t)?.[0];if(!s)throw new vr([e],t);return{argTypes:[s],returnType:s}},normalImpl:eL,codegenImpl:(e,[t])=>se`sign(${t})`});function tL(e){return typeof e=="number"?Math.sin(e):gt.sin[e.kind](e)}var vs=ve({name:"sin",signature:ns(as),normalImpl:tL,codegenImpl:(e,[t])=>se`sin(${t})`});function sL(e){if(typeof e=="number")return Math.sinh(e);throw new Ao("CPU implementation for sinh on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var Pp=ve({name:"sinh",signature:ns(as),normalImpl:sL,codegenImpl:(e,[t])=>se`sinh(${t})`});function oL(e,t,s){return typeof s=="number"?mi(e,t,s):gt.smoothstep[s.kind](e,t,s)}var Ja=ve({name:"smoothstep",signature:ns(as),normalImpl:oL,codegenImpl:(e,[t,s,r])=>se`smoothstep(${t}, ${s}, ${r})`});function rL(e){return typeof e=="number"?Math.sqrt(e):gt.sqrt[e.kind](e)}var qt=ve({name:"sqrt",signature:ns(as),normalImpl:rL,codegenImpl:(e,[t])=>se`sqrt(${t})`});function aL(e,t){if(typeof e=="number")return e<=t?1:0;throw new Ao("CPU implementation for step on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var gl=ve({name:"step",signature:ns(as),normalImpl:aL,codegenImpl:(e,[t,s])=>se`step(${t}, ${s})`});function nL(e){if(typeof e=="number")return Math.tan(e);throw new Ao("CPU implementation for tan on vectors not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues")}var kp=ve({name:"tan",signature:ns(as),normalImpl:nL,codegenImpl:(e,[t])=>se`tan(${t})`});function iL(e){return typeof e=="number"?Math.tanh(e):gt.tanh[e.kind](e)}var Rp=ve({name:"tanh",signature:ns(as),normalImpl:iL,codegenImpl:(e,[t])=>se`tanh(${t})`}),Zg=ve({name:"transpose",signature:Tg,normalImpl:"CPU implementation for transpose not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`transpose(${t})`}),$p=ve({name:"trunc",signature:ns(as),normalImpl:"CPU implementation for trunc not implemented yet. Please submit an issue at https://github.com/software-mansion/TypeGPU/issues",codegenImpl:(e,[t])=>se`trunc(${t})`});function Up(e){return typeof e?.format=="string"}function R6(e,t){let s=[];if(ba(e)){if(!Up(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:Oa(e)??0}]}]}}let r=[],a=new WeakMap,i=0;for(let[l,c]of Object.entries(e)){if(tr(c))continue;let d=t[l];if(!d)throw new Error(`An attribute by the name of '${l}' was not provided to the shader.`);let u=d._layout,p=a.get(u);p||(s.push(u),p=[],r.push({arrayStride:u.stride,stepMode:u.stepMode,attributes:p}),a.set(u,p)),i=Oa(c)??i,p.push({format:d.format,offset:d.offset,shaderLocation:i++})}return{usedVertexLayouts:s,bufferDefinitions:r}}var lL=["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 cL(e){return lL.includes(e.type)}function Kg(e,[t,s]){return`  ${el(s)}${t}: ${e.resolve(s).value},
65`}function dL(e,t){if(t[K].isAbstruct)throw new Error("Cannot resolve abstract struct types to WGSL.");let s=e.makeUniqueIdentifier(Ce(t),"global");return e.addDeclaration(`struct ${s} {
66${Object.entries(t.propTypes).map(r=>Kg(e,r)).join("")}}`),s}function uL(e,t){let s=e.makeUniqueIdentifier(Ce(t),"global");return e.addDeclaration(`struct ${s} {
67${Object.entries(t.propTypes).map(r=>Up(r[1])?Kg(e,[r[0],Hr[r[1].format]]):Kg(e,r)).join("")}
68}`),s}function pL(e,t){let s=e.resolve(t.elementType).value;return t.elementCount===0?`array<${s}>`:`array<${s}, ${t.elementCount}>`}function mL(e,t){let s=e.resolve(Up(t.elementType)?Hr[t.elementType.format]:t.elementType).value;return t.elementCount===0?`array<${s}>`:`array<${s}, ${t.elementCount}>`}function Jg(e,t){if(Pn(t))return t.type==="unstruct"?uL(e,t):t.type==="disarray"?mL(e,t):t.type==="loose-decorated"?e.resolve(Up(t.inner)?Hr[t.inner.format]:t.inner).value:e.resolve(Hr[t.type]).value;if(cL(t))return t.type;if(t.type==="struct")return dL(e,t);if(t.type==="array")return pL(e,t);if(t.type==="atomic")return`atomic<${Jg(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(cp(t))return`${t.type}<${t.format}, ${Cd[t.access]}>`;if($f(t))return t.type.startsWith("texture_depth")?t.type:`${t.type}<${t.sampleType.type}>`;if(S5(t)||T5(t))return t.type;Dn(t,"resolveData")}var Qg=class{[K]=!0;snippet;constructor(e){this.snippet=e}[Je](e){return Te(se`${this.snippet}`,this.snippet.dataType,this.snippet.origin)}},qf=(()=>{function e(s){return s}let t=e;return je(t,"unroll"),t.toString=()=>"unroll",t[K]=!0,t[ms]={call(s,[r]){return Te(new Qg(r),r.dataType,r.origin)}},t})();var e0=new Map([[Math.abs,at],[Math.acos,xp],[Math.acosh,bp],[Math.asin,wp],[Math.asinh,Tp],[Math.atan,Sp],[Math.atan2,Ea],[Math.atanh,Ap],[Math.ceil,Ec],[Math.cos,po],[Math.cosh,Ep],[Math.exp,Mc],[Math.floor,Lt],[Math.fround,S],[Math.clz32,Mp],[Math.trunc,$p],[Math.log,Cp],[Math.log2,Cc],[Math.pow,io],[Math.sign,Kr],[Math.sin,vs],[Math.sinh,Pp],[Math.sqrt,qt],[Math.tan,kp],[Math.tanh,Rp],[Math.max,$e],[Math.min,Ct]]),$6=()=>[console.log,console.debug,console.info,console.warn,console.error,console.clear];var t0=Do((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 a=e;a<t;a+=s)r.push(a);if(s<0)for(let a=e;a>t;a+=s)r.push(a);return r});function Dp(e){return Array.isArray(e)&&"start"in e&&"end"in e&&"step"in e}var U6=e=>ws(e)&&Wt(e.inner)?e.inner.elementCount:0,zp=ve({name:"arrayLength",signature:e=>{let t=ws(e)?e:ac(e);return{argTypes:[t],returnType:U6(t)>0?ic:ie}},normalImpl:e=>X_(e)?e.$.length:e.length,codegenImpl(e,[t]){let s=U6(t.dataType);return s>0?`${s}`:se`arrayLength(${t})`}});function D6(e){return e.origin==="constant-immutable-def"?"const":"let"}function s0(e,t){let s=Sc(e,t);if(!s)throw new Ut("`for ... of ...` loops only support array or vector iterables");return s}function z6(e,t){let s=e.dataType;if(s===os)throw new Ut(se`The elements in iterable ${t} are of unknown type`);if(xa(e.dataType)||e.origin==="runtime"||e.origin==="constant"||e.origin==="constant-immutable-def"||e.origin==="runtime-immutable-def")return s;if(!ws(s)){let r=pd(e.origin,yr(s));Vs(r!==void 0,`Creating pointer type from origin ${e.origin}`),s=r}return V_(s)}function I6(e,t,s=!1){let{value:r,dataType:a}=t;if(Dp(r)){let{start:l,end:c,step:d}=r,u=[l,c,d].every(p=>p>=0)?ie:fe;return{start:Te(l,u,"constant"),end:Te(c,u,"constant"),step:Te(d,u,"constant"),comparison:d<0?">":"<"}}if(!s&&!aa(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 i={start:Te(0,ie,"constant"),step:Te(1,ie,"constant"),comparison:"<"};if(Wt(a))return{...i,end:a.elementCount>0?Te(a.elementCount,ie,"constant"):zp[ms].call(e,[t])};if(es(a))return{...i,end:Te(a.componentCount,ie,"constant")};if(s){if(Array.isArray(r))return{...i,end:Te(r.length,ie,"constant")};if(r instanceof Qi)return{...i,end:Te(r.elements.length,ie,"constant")}}throw new Ut("`for ... of ...` loops only support array or vector iterables")}var Ip={};zh(Ip,{FuncParameterType:()=>Pc,NodeTypeCatalog:()=>L6});var L6={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},Pc={identifier:"i",destructuredObject:"d"};var{NodeTypeCatalog:Nt}=Ip;function Hs(e){return B6(e)?br(e,""):Si(e,"")}function Si(e,t){if(B6(e))return`${t}${br(e,t)};`;if(e[0]===Nt.block)return`{
69${e[1].map(s=>Si(s,t+"  ")).join(`
70`)}
71${t}}`;if(e[0]===Nt.return)return`${t}return${e[1]===void 0?"":` ${br(e[1],"")}`};`;if(e[0]===Nt.if){let s=`${t}if (${br(e[1],t)}) ${Si(e[2],t)}`;return e[3]!==void 0?`${s} else ${Si(e[3],t)}`:s}if(e[0]===Nt.let)return e[2]!==void 0?`${t}let ${e[1]} = ${br(e[2],t)};`:`${t}let ${e[1]};`;if(e[0]===Nt.const)return e[2]!==void 0?`${t}const ${e[1]} = ${br(e[2],t)};`:`${t}const ${e[1]};`;if(e[0]===Nt.for){let s=e[1]?Si(e[1],""):";",r=e[2]?br(e[2],t):"",a=e[3]?Si(e[3],""):"",i=Si(e[4],t);return`${t}for (${s} ${r}; ${a.slice(0,-1)}) ${i}`}if(e[0]===Nt.while)return`${t}while (${br(e[1],t)}) ${Si(e[2],t)}`;if(e[0]===Nt.continue)return`${t}continue;`;if(e[0]===Nt.break)return`${t}break;`;if(e[0]===Nt.forOf)return`${t}for (${e[1][0]===Nt.const?"const":"let"} ${e[1][1]} of ${br(e[2],t)}) ${Si(e[3],t)}`;F6(e)}function br(e,t){if(typeof e=="string")return e;if(typeof e=="boolean")return`${e}`;if(e[0]===Nt.numericLiteral)return e[1];if(e[0]===Nt.stringLiteral)return JSON.stringify(e[1]);if(e[0]===Nt.arrayExpr)return`[${e[1].map(s=>br(s,t)).join(", ")}]`;if(e[0]===Nt.binaryExpr)return`${Ma(e[1],t)} ${e[2]} ${Ma(e[3],t)}`;if(e[0]===Nt.assignmentExpr)return`${br(e[1],t)} ${e[2]} ${br(e[3],t)}`;if(e[0]===Nt.logicalExpr)return`${Ma(e[1],t)} ${e[2]} ${Ma(e[3],t)}`;if(e[0]===Nt.unaryExpr){let s=e[1].length>1?" ":"";return`${e[1]}${s}${Ma(e[2],t)}`}if(e[0]===Nt.call)return`${Ma(e[1],t)}(${e[2].map(s=>br(s,t)).join(", ")})`;if(e[0]===Nt.memberAccess)return Array.isArray(e[1])&&e[1][0]===Nt.numericLiteral?`(${br(e[1],t)}).${e[2]}`:`${Ma(e[1],t)}.${e[2]}`;if(e[0]===Nt.indexAccess)return`${Ma(e[1],t)}[${br(e[2],t)}]`;if(e[0]===Nt.preUpdate)return`${e[1]}${Ma(e[2],t)}`;if(e[0]===Nt.postUpdate)return`${Ma(e[2],t)}${e[1]}`;if(e[0]===Nt.objectExpr)return`{ ${Object.entries(e[1]).map(([s,r])=>`${s}: ${br(r,t)}`).join(", ")} }`;if(e[0]===Nt.conditionalExpr)return`${Ma(e[1],t)} ? ${Ma(e[2],t)} : ${Ma(e[3],t)}`;F6(e)}function F6(e){throw new Error(`'${JSON.stringify(e)}' was not handled by the stringify function.`)}function B6(e){return typeof e=="string"||typeof e=="boolean"||e[0]===Nt.numericLiteral||e[0]===Nt.stringLiteral||e[0]===Nt.arrayExpr||e[0]===Nt.binaryExpr||e[0]===Nt.assignmentExpr||e[0]===Nt.logicalExpr||e[0]===Nt.unaryExpr||e[0]===Nt.call||e[0]===Nt.memberAccess||e[0]===Nt.indexAccess||e[0]===Nt.preUpdate||e[0]===Nt.postUpdate||e[0]===Nt.objectExpr||e[0]===Nt.conditionalExpr}var _L=[Nt.memberAccess,Nt.indexAccess,Nt.call,Nt.arrayExpr,Nt.stringLiteral,Nt.numericLiteral];function Ma(e,t){let s=br(e,t);return typeof e=="string"||typeof e=="boolean"||_L.includes(e[0])?s:`(${s})`}function kc(e){return e.type.includes("2")?Pr:e.type.includes("3")?kr:Rr}var Fp=ve({name:"allEq",signature:(...e)=>({argTypes:e,returnType:Et}),normalImpl:(e,t)=>u0(Bp(e,t)),codegenImpl:(e,[t,s])=>se`all(${t} == ${s})`}),Bp=(e,t)=>gt.eq[e.kind](e,t),o0=ve({name:"eq",signature:(...e)=>({argTypes:e,returnType:kc(e[0])}),normalImpl:Bp,codegenImpl:(e,[t,s])=>se`(${t} == ${s})`}),r0=ve({name:"ne",signature:(...e)=>({argTypes:e,returnType:kc(e[0])}),normalImpl:(e,t)=>mr(Bp(e,t)),codegenImpl:(e,[t,s])=>se`(${t} != ${s})`}),Hf=(e,t)=>
71gt.lt[e.kind](e,t),a0=ve({name:"lt",signature:(...e)=>({argTypes:e,returnType:kc(e[0])}),normalImpl:Hf,codegenImpl:(e,[t,s])=>se`(${t} < ${s})`}),zd=ve({name:"le",signature:(...e)=>({argTypes:e,returnType:kc(e[0])}),normalImpl:(e,t)=>l0(Hf(e,t),Bp(e,t)),codegenImpl:(e,[t,s])=>se`(${t} <= ${s})`}),n0=ve({name:"gt",signature:(...e)=>({argTypes:e,returnType:kc(e[0])}),normalImpl:(e,t)=>V6(mr(Hf(e,t)),mr(Bp(e,t))),codegenImpl:(e,[t,s])=>se`(${t} > ${s})`}),Vp=ve({name:"ge",signature:(...e)=>({argTypes:e,returnType:kc(e[0])}),normalImpl:(e,t)=>mr(Hf(e,t)),codegenImpl:(e,[t,s])=>se`(${t} >= ${s})`});function mr(e){if(typeof e=="number"&&isNaN(e))return!1;if(Rs(e)){if(e.length===2)return Pr(mr(e.x),mr(e.y));if(e.length===3)return kr(mr(e.x),mr(e.y),mr(e.z));if(e.length===4)return Rr(mr(e.x),mr(e.y),mr(e.z),mr(e.w))}return!e}var i0=ve({name:"not",signature:e=>{let t=es(e)?kc(e):Et;return{argTypes:[e],returnType:t}},normalImpl:mr,codegenImpl:(e,[t])=>{let{dataType:s}=t;return D_(s)?se`!${t}`:cd(s)?se`!bool(${t})`:$_(s)?se`!(${t})`:es(s)?se`!(${`vec${s.componentCount}<bool>`}(${t}))`:"false"}}),l0=(e,t)=>gt.or[e.kind](e,t),c0=ve({name:"or",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:l0,codegenImpl:(e,[t,s])=>se`(${t} | ${s})`}),V6=(e,t)=>mr(l0(mr(e),mr(t))),d0=ve({name:"and",signature:(...e)=>({argTypes:e,returnType:e[0]}),normalImpl:V6,codegenImpl:(e,[t,s])=>se`(${t} & ${s})`}),u0=e=>gt.all[e.kind](e),p0=ve({name:"all",signature:(...e)=>({argTypes:e,returnType:Et}),normalImpl:u0,codegenImpl:(e,[t])=>se`all(${t})`}),m0=ve({name:"any",signature:(...e)=>({argTypes:e,returnType:Et}),normalImpl:e=>!u0(mr(e)),codegenImpl:(e,[t])=>se`any(${t})`}),_0=ve({name:"isCloseTo",signature:(...e)=>({argTypes:e,returnType:Et}),normalImpl:(e,t,s=.01)=>typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<s:Rs(e)&&Rs(t)?gt.isCloseToZero[e.kind](Ts(e,t),s):!1,codegenImpl:(e,[t,s,r=Te(.01,S,"constant")])=>Vu(t)&&Vu(s)?se`(abs(f32(${t}) - f32(${s})) <= ${r})`:!Vu(t)&&!Vu(s)?se`all(abs(${t} - ${s}) <= (${t} - ${t}) + ${r})`:"false"});function fL(e,t,s){return typeof s=="boolean"?s?t:e:gt.select[e.kind](e,t,s)}var Lp=[S,Fs,fe,ie,Et,H,W,ee,Bo,Uo,Vo,fs,Os,ls,Qe,Bt,ts,Pr,kr,Rr],bt=ve({name:"select",signature:(e,t,s)=>{let[r,a]=Ws([e,t],Lp)??[e,t];return{argTypes:[r,a,s],returnType:r}},normalImpl:fL,codegenImpl:(e,[t,s,r])=>{let a=se`select(${t}, ${s}, ${r})`;if(!Lp.includes(t.dataType)||!Lp.includes(s.dataType))throw new Error(`'${a}' is invalid, std.select requires both branches to be either scalars or vectors.`);if(t.dataType!==s.dataType){let i=e.resolve(t.dataType),l=e.resolve(s.dataType);throw new Error(`'${a}' is invalid, std.select requires both branches to be the same type, got [${i.value}, ${l.value}].`)}return a}});var{NodeTypeCatalog:As}=Ip,vL=["==","!=","===","!==","<","<=",">",">=","<<",">>","+","-","*","/","%","|","^","&","&&","||"],hL=["&&","||","==","!=","===","!==","<","<=",">",">="],yL=["<<",">>","<<=",">>="],O6={"===":"==","!==":"!=",get">>>"(){throw new Error("The `>>>` operator is unsupported in TypeGPU functions.")},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.")},get"||="(){throw new Error("The `||=` operator is unsupported in TypeGPU functions.")}};function N6(e,t,s){return s?hL.includes(t)?Et:t==="="?s:e:t==="!"?Et:e}var gL={"-":Md[ms].call.bind(Md),void:()=>Te(void 0,ss,"constant"),"!":(e,[t])=>{if(t===void 0)throw new Error("The unary operator `!` expects 1 argument, but 0 were provided.");if(Us(t))return Te(!t.value,Et,"constant");let{value:s,dataType:r}=t,a=e.resolve(s,r).value;if(D_(r))return Te(`!${a}`,Et,"runtime");if(cd(r)){let i=`!bool(${a})`;return Te(r.type==="f32"?`(((bitcast<u32>(${a}) & 0x7fffffff) > 0x7f800000) || ${i})`:r.type==="f16"?`(((bitcast<u32>(${a}) & 0x7fff) > 0x7c00) || ${i})`:i,Et,"runtime")}return Te(!1,Et,"constant")}},xL={"+":Ta[ms].call.bind(Ta),"-":Ts[ms].call.bind(Ts),"*":Po[ms].call.bind(Po),"/":cl[ms].call.bind(cl),"**":io[ms].call.bind(io)}
71,Y6={private:"private",workgroup:"workgroup",uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"},bL=class{#e=void 0;#t=!1;initGenerator(e){this.#e=e}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([e,t],s){if(this.ctx.pushBlockScope(),s){let r=Object.fromEntries(Object.entries(s).map(([a,i])=>[a,Xr(i)]));this.ctx.setBlockExternals(r)}try{this.ctx.indent();let r=t.map(a=>this._statement(a)).filter(a=>a.length>0).join(`
72`);return this.ctx.dedent(),`{
73${r}
74${this.ctx.pre}}`}finally{this.ctx.popBlockScope()}}_blockStatement(e,t){return`${this.ctx.pre}${this._block(e,t)}`}refVariable(e,t){let s=this.ctx.makeUniqueIdentifier(e,"block"),r=ac(t),a=Te(new Ya(Te(s,t,"function"),r),r,"function");return this.ctx.defineVariable(e,a),s}_emitVarDecl(e,t,s,r){return`${this.ctx.pre}${e} ${t} = ${r};`}_identifier(e){if(!e)throw new Error("Cannot resolve an empty identifier");if(e==="undefined")return Te(void 0,ss,"constant");let t=this.ctx.getById(e);if(!t)throw new Error(`Identifier ${e} not found`);return t}_typedExpression(e,t){let s=this.ctx.expectedType;this.ctx.expectedType=t;try{let r=this._expression(e);return t instanceof Zr?r:na(this.ctx,r,t)}finally{this.ctx.expectedType=s}}_expression(e){if(typeof e=="string")return this._identifier(e);if(typeof e=="boolean")return Te(e,Et,"constant");if(e[0]===As.logicalExpr||e[0]===As.binaryExpr||e[0]===As.assignmentExpr){let[t,s,r,a]=e,i=this._expression(s);if((r==="||"||r==="&&")&&Us(i)){if(!(r==="&&"?i.value:!i.value))return Te(r==="||",Et,"constant");let v=this._expression(a);if(v.dataType===os)throw new Ut(`Right-hand side of '${r}' is of unknown type`);if(Us(v))return Te(!!v.value,Et,"constant");let h=na(this.ctx,v,Et,!1),y=this.ctx.resolve(h.value,h.dataType).value;return Te(y,Et,"runtime")}let l=this._expression(a);if(l.value instanceof Ya)throw new Ut(se`Cannot assign a ref to an existing variable '${Hs(s)}', define a new variable instead.`);if(r==="==")throw new Error("Please use the === operator instead of ==");if(r==="!=")throw new Error("Please use the !== operator instead of !=");if(r==="==="&&Us(i)&&Us(l))return Te(i.value===l.value,Et,"constant",!1);if(r==="!=="&&Us(i)&&Us(l))return Te(i.value!==l.value,Et,"constant",!1);if((r==="<"||r==="<="||r===">"||r===">=")&&Us(i)&&Us(l)){let v=i.value,h=l.value;if(typeof v!="number"||typeof h!="number")throw new Ut(`Inequality comparison '${r}' requires numeric operands, got '${typeof v}' and '${typeof h}'`);switch(r){case"<":return Te(v<h,Et,"constant",!1);case"<=":return Te(v<=h,Et,"constant",!1);case">":return Te(v>h,Et,"constant",!1);case">=":return Te(v>=h,Et,"constant",!1)}}if(i.dataType===os)throw new Ut(`Left-hand side of '${r}' is of unknown type`);if(l.dataType===os)throw new Ut(`Right-hand side of '${r}' is of unknown type`);let c=xL[r];if(c)return c(this.ctx,[i,l]);let d,u;if(yL.includes(r)){let v;if(es(i.dataType)){let h=i.dataType.componentCount;v=h===2?Qe:h===3?Bt:ts}else v=ie;u=na(this.ctx,l,v,!1),d=i}else{let v=t===As.assignmentExpr?[i.dataType]:void 0;[d,u]=zn(this.ctx,[i,l],v)??[i,l]}let p=this.ctx.resolve(d.value,d.dataType).value,m=this.ctx.resolve(u.value,u.dataType).value,_=N6(d.dataType,r,u.dataType);if(t===As.assignmentExpr&&(G6(d,e),this.tryMarkModified(s),r==="="&&aa(l)&&!xa(l.dataType)))throw new Ut(`'${Hs(e)}' is invalid, because references cannot be assigned.
75-----
76Try '${Hs(s)} = ${this.ctx.resolve(l.dataType).value}(${Hs(a)})' to copy the value instead.
77-----`);return Te(vL.includes(r)?`(${p} ${O6[r]??r} ${m})`:`${p} ${O6[r]??r} ${m}`,_,"runtime")}if(e[0]===As.postUpdate)throw new Error(`'${Hs(e)}' is invalid because update is only allowed as a statement.`);if(e[0]===As.unaryExpr){let[t,s,r]=e,a=this._expression(r),i=gL[s];if(i)return i(this.ctx,[a]);let l=this.ctx.resolve(a.value,a.dataType).value,c=N6(a.dataType,s);return Te(`${s}${l}`,c,"runtime")}if(e[0]===As.memberAccess){let[t,s,r]=e,a=Nn(this._expression(s),r);if(!a)throw new Error(`Property '${r}' not found on '${Hs(s)}'`);return a}if(e[0]===As.indexAccess){let[t,s,r]=e,a=this._expression(s),i=this._expression(r),l=Sc(a,zn(this.ctx,[i],[ie,fe],!1)?.[0]??i);if(!l)throw new Error(`Index access '${Hs(e)}
77' 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 l}if(e[0]===As.numericLiteral){let t=typeof e[1]=="string"?Wr(TL(e[1])):Wr(e[1]);return Vs(t,`Expected ${Hs(e)} to be valid numeric literal`),t}if(e[0]===As.call){let[t,s,r]=e,a=this._expression(s),i=e0.has(a.value)?Te(e0.get(a.value),os,"runtime"):a;if($6().includes(i.value))return this.ctx.generateLog(i.value,r.map(u=>this._expression(u)));if(Dt(i.value)){if(r.length>1)throw new Ut("Struct schemas should always be called with at most 1 argument");if(!r[0])return Te(`${this.ctx.resolve(i.value).value}()`,i.value,"runtime");let u=this._typedExpression(r[0],i.value);return Te(this.ctx.resolve(u.value,i.value).value,i.value,"runtime")}if(Wt(i.value)){if(r.length>1)throw new Ut("Array schemas should always be called with at most 1 argument");if(!r[0])return Te(`${this.ctx.resolve(i.value).value}()`,i.value,"runtime");let u=this._typedExpression(r[0],i.value);return u.value instanceof Qi?Te(se`${this.ctx.resolve(i.value).value}(${u.value.elements})`,u.dataType,"runtime"):Te(this.ctx.resolve(u.value,i.value).value,i.value,"runtime")}if(i.value===Ud)throw new Error("Constants cannot be defined within TypeGPU function scope. To address this, move the constant definition outside the function scope.");if(w5(i.value)){if(!r[0])throw new Ut(`An infix operator '${Ce(i.value.operator)}' was called without any arguments`);let u=Xr(i.value.lhs),p=this._expression(r[0]);return i.value.operator[ms].call(this.ctx,[u,p])}if((i.value===Xu||i.value===qf)&&r[0]&&this.tryMarkModified(r[0]),Y_(i.value)){let u=i.value[ms],p=u.strictSignature,m;p?m=r.map((_,v)=>{let h=p.argTypes[v];if(!h)throw new Ut(`Call '${Hs(e)}' is invalid since the function expected fewer arguments`);return this._typedExpression(_,h)}):m=r.map(_=>this._expression(_));try{return u.call(this.ctx,m)}catch(_){throw _ instanceof Zi?_:new Zi(_,[{toString:()=>`fn:${Ce(i.value)}`}])}}let l=pg(i.value);if(!Ht(i.value)||l){let u=l?i.value[Ho]?.pairs??[]:[],p=l?i.value[K].inner:i.value,m=this.ctx.withRenamed(p,Ce(i.value),()=>this.ctx.withSlots(u,()=>{let _=r.map(y=>this._expression(y)),v=this.ctx.shelllessRepo.get(p,_);if(!v)return;let h=_.map((y,x)=>{let g=v.argTypes[x];return na(this.ctx,y,g,!1)});return this.ctx.withResetIndentLevel(()=>{let y=this.ctx.resolve(v);return Te(se`${y.value}(${h})`,y.dataType,"runtime")})}));if(m)return m}let c=Object.getOwnPropertyNames(Math).find(u=>Math[u]===i.value);if(c)throw new Error(`Unsupported Math functionality 'Math.${c}()'. Use an std alternative, or implement the function manually.`);let d=Object.getOwnPropertyNames(console).find(u=>console[u]===i.value);throw d?new Error(`Unsupported console functionality 'console.${d}()'.`):new Error(`Function '${Ce(i.value)??String(i.value)}' is not marked with the 'use gpu' directive and cannot be used in a shader`)}if(e[0]===As.objectExpr){let t=e[1],s=this.ctx.expectedType;if(s instanceof Zr){let r=Object.fromEntries(Object.entries(t).map(([l,c])=>{let d=s.accessProp(l),u;if(d)u=this._typedExpression(c,d.type);else{if(u=this._expression(c),u.dataType===os)throw new Ut(se`Property ${l} in object literal has a value of unknown type: '${u}'`);d=s.provideProp(l,Hi(yr(u.dataType)))}return[d.prop,u]})),a=s.completeStruct,i=Qh(this.ctx,a,r);return Te(se`${this.ctx.resolve(s).value}(${i})`,a,"runtime")}if(Dt(s)){let r=Object.fromEntries(Object.entries(s.propTypes).map(([i,l])=>{let c=t[i];if(c===void 0)throw new Ut(`Missing property ${i} in object literal for struct ${s}`);return[i,this._typedExpression(c,l)]})),a=Qh(this.ctx,s,r);return Te(se`${this.ctx.resolve(s).value}(${a})`,s,"runtime")}throw new Ut(`No target type could be inferred for object '${Hs(e)}', please wrap the object in the corresponding schema.`)}if(e[0]===As.arrayExpr){let[t,s]=e,r=this.ctx.expectedType,a,i;if(Wt(r)){if(a=r.elementType,i=s.map(c=>this._typedExpression(c,a)),i.length!==r.elementCount)throw new Ut(`Cannot create value of type '${r}' from an array of length: ${i.length}`)}else{let c=s.map(u=>this._expression(u));if(c.length===0)throw new Ut("Cannot infer the type of an empty array literal.");
vendor: 4,101 bytes, lines 77-80
77let d=zn(this.ctx,c);if(!d)throw new Ut(`Values '${Hs(e)}' cannot be automatically converted to a common type. Consider wrapping the array in an appropriate schema`);i=d,a=yr(i[0]?.dataType)}let l=qs(a,i.length);return Te(new Qi(l,i),l,"runtime")}if(e[0]===As.conditionalExpr){let[t,s,r,a]=e,i=this._expression(s);if(Us(i))return i.value?this._expression(r):this._expression(a);{let l=this._expression(r),c=this._expression(a),[d,u]=zn(this.ctx,[l,c],Lp)??[];if(!d||!u||l.possibleSideEffects||c.possibleSideEffects)throw new Error(`Ternary operator '${Hs(e)}' is invalid. For more complex branching, please use 'std.select' or if/else statements.`);return Te(se`select(${u}, ${d}, ${i})`,d.dataType,"runtime",i.possibleSideEffects)}}if(e[0]===As.stringLiteral)return Te(e[1],os,"constant");if(e[0]===As.preUpdate)throw new Error("Cannot use pre-updates in TypeGPU functions.");wL(e)}declareGlobalConst(e){let t=this.ctx.resolve(e.dataType).value,s=this.ctx.resolveSnippet(e.init).value;return this.ctx.addDeclaration(`const ${e.id}: ${t} = ${s};`),Te(e.id,e.dataType,"constant-immutable-def")}declareGlobalVar(e){let t="";return e.group!==void 0&&(t+=`@group(${e.group}) `),e.binding!==void 0&&(t+=`@binding(${e.binding}) `),e.scope in Y6?t+=`var<${Y6[e.scope]}> `:t+="var ",t+=`${e.id}: ${this.ctx.resolve(e.dataType).value}`,this.ctx.addDeclaration(e.init?`${t} = ${this.ctx.resolveSnippet(e.init).value};`:`${t};`),Te(e.id,e.dataType,e.scope)}functionDefinition(e){let t=this._block(e.body),s=this.ctx.topFunctionScope;Vs(s,"Expected function scope to be present");let r=Object.fromEntries([...s.placeholderForVariable.entries()].map(([d,u])=>[u,s.modifiedVariables.has(d)?"var":"let"]));if(Object.keys(r).length>0){let d=new RegExp(Object.keys(r).join("|"),"gi");t=t.replace(d,u=>r[u]??"#ERR")}let a=e.determineReturnType(),i=e.args.filter(d=>d.used||e.functionType==="normal").map(d=>`${el(d.decoratedType)}${d.name}: ${this.ctx.resolve(d.decoratedType).value}`).join(", "),l=a.type!=="void"?`(${i}) -> ${el(a)}${this.ctx.resolve(a).value} `:`(${i}) `,c="";if(e.functionType==="compute"){if(!e.workgroupSize)throw new Error("Compute shaders must have a workgroup size");c=`@compute @workgroup_size(${e.workgroupSize.join(", ")}) `}else e.functionType==="vertex"?c="@vertex ":e.functionType==="fragment"&&(c="@fragment ");return`${c}fn ${e.name}${l}${t}`}typeAnnotation(e){return Jg(this.ctx,e)}typeInstantiation(e,t){return t.length===1&&t[0]?.dataType===e?Te(se`${t[0]}`,e,a7(t[0].origin)):Te(se`${this.ctx.resolve(e).value}(${t})`,e,"runtime")}numericLiteral(e,t){if(!Number.isFinite(e))throw new Error(`Value '${e}' (${t.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(t.type==="abstractInt")return Te(`${e}`,t,"constant");if(t.type==="u32")return Te(`${e}u`,t,"constant");if(t.type==="i32")return Te(`${e}i`,t,"constant");let s=e.toExponential(),r=t.type==="abstractFloat"&&Number.isInteger(e)?`${e}.`:`${e}`,a=s.length<r.length?s:r;return t.type==="f32"?Te(`${a}f`,t,"constant"):t.type==="f16"?Te(`${a}h`,t,"constant"):Te(a,t,"constant")}_return(e){let t=e[1];if(t!==void 0){let s=this.ctx.topFunctionReturnType,r=s?this._typedExpression(t,s):this._expression(t);if(r.value instanceof Ya)throw new Ut(`Cannot return '${Hs(t)}' because it is a d.ref`);if(r.origin==="argument"&&!xa(r.dataType)&&this.ctx.topFunctionScope?.functionType==="normal")throw new Ut(`'${Hs(e)}' is invalid, cannot return references to arguments. Copy the argument before returning it.`);if(!s&&aa(r)&&!xa(r.dataType)&&r.origin!=="local-def"){let a=Hs(t),i=this.ctx.resolve(Hi(r.dataType)).value;throw new Ut(`'return ${a};' is invalid, cannot return references.
78-----
79Try 'return ${i}(${a});' instead.
80-----`)}return r=na(this.ctx,r,Hi(r.dataType),!1),Vs(r.dataType!==os,"Return type should be known"),this.ctx.reportReturnType(r.dataType),se`${this.ctx.pre}return ${r};`}return`${this.ctx.pre}return;`}_letStatement(e){let[t,s,r]=e;if(r===void 0)throw new Error(`'${Hs(e)}
80' is invalid because all variables need initializers.`);let a=this._expression(r);if(a.value instanceof Ya){let _=Hs(r);throw new Ut(`'let ${s} = ${_}' is invalid, cannot initialize 'let' variables with d.ref()
81-----
82- Try 'const ${s} = ${_}'.
83-----`)}let i=a.dataType;if(i===os){let _=Hs(r);throw new Ut(`'let ${s} = ${_}' is invalid, cannot determine WGSL type of '${_}'
84-----
85- Try using or defining a schema that matches your desired value the most, and wrap the value with it: 'let ${s} = Schema(${_})'
86-----`)}if(aa(a)&&!xa(a.dataType)){let _=Hs(r),v=this.ctx.resolve(Hi(a.dataType)).value;throw new Ut(`'let ${s} = ${_}' is invalid, because references cannot be assigned to 'let' variable declarations.
87-----
88- Try 'let ${s} = ${v}(${_})' if you need to reassign '${s}' later
89- Try 'const ${s} = ${_}' if you won't reassign '${s}' later.
90-----`)}let l=yr(i),c=Te(this.ctx.makeUniqueIdentifier(s,"block"),l,"local-def",!1);this.ctx.defineVariable(s,c);let d=na(this.ctx,a,i,!1),u=this.ctx.resolve(d.value,d.dataType).value,p=this.ctx.topFunctionScope;Vs(p,`Expected function scope to be present for ${s}`);let m=`#VAR_${p.placeholderForVariable.size}#`;return p.placeholderForVariable.set(c,m),this._emitVarDecl(m,c.value,l,u)}_constStatement(e){let[t,s,r]=e;if(r===void 0)throw new Error(`'${Hs(e)}' is invalid because all variables need initializers.`);let a=this._expression(r);if(a.value instanceof Ya){if(a.dataType!==os)throw new Ut("Cannot store d.ref() in a variable if it references another value. Copy the value passed into d.ref() instead.");let h=a.value.snippet,y=this.refVariable(s,yr(h.dataType));return se`${this.ctx.pre}var ${y} = ${na(this.ctx,h,h.dataType,!1)};`}let i=xa(a.dataType),l="local-def",c="<deferred>",d=a.dataType;if(d===os){let h=Hs(r);throw new Ut(`'const ${s} = ${h}' is invalid, cannot determine WGSL type of '${h}'
91-----
92- Try using or defining a schema that matches your desired value the most, and wrap the value with it: 'const ${s} = Schema(${h})'
93-----`)}if(a.origin==="argument")c="let",l=i?"local-def":"argument";else if(a.origin==="constant-immutable-def")c="const",l="constant-immutable-def";else if(a.origin==="runtime-immutable-def")c="let",l="runtime-immutable-def";else if(i)c=a.origin==="constant"?"const":"let",l="local-def";else if(!aa(a))c="<deferred>",l="local-def";else{if(c="let",l=a.origin,!ws(a.dataType)){let h=pd(a.origin,yr(a.dataType));Vs(h!==void 0,`Creating pointer type from origin ${a.origin}`),d=h}d=V_(d),this.tryMarkModified(r)}let u=yr(d),p=Te(this.ctx.makeUniqueIdentifier(s,"block"),u,l,!1);this.ctx.defineVariable(s,p);let m=na(this.ctx,a,d,!1),_=this.ctx.resolve(m.value,m.dataType).value,v;if(c==="<deferred>"){let h=this.ctx.topFunctionScope;Vs(h,`Expected function scope to be present for ${s}`),v=`#VAR_${h.placeholderForVariable.size}#`,h.placeholderForVariable.set(p,v)}else v=c;return this._emitVarDecl(v,p.value,u,_)}_statement(e){if(typeof e=="string"){let r=this._identifier(e),a=r.value&&this.ctx.resolve(r.value).value;return a?`${this.ctx.pre}${a};`:""}if(typeof e=="boolean")return`${this.ctx.pre}${e?"true":"false"};`;if(e[0]===As.return)return this._return(e);if(e[0]===As.if){let[r,a,i,l]=e,c=this._typedExpression(a,Et);if(typeof c.value=="boolean"){let p=c.value?i:l;return p===void 0?"":(Array.isArray(p)||(p=Rc(p)),p[0]===As.block&&p[1].length===1&&p[1][0][0]===As.if?this._statement(p[1][0]):p[0]===As.if?this._statement(p):this._blockStatement(Rc(p)))}let d=this._block(Rc(i)),u=l?this._block(Rc(l)):void 0;return u?se`\
94${this.ctx.pre}if (${c}) ${d}
95${this.ctx.pre}else ${u}`:se`${this.ctx.pre}if (${c}) ${d}`}if(e[0]===As.let)return this._letStatement(e);if(e[0]===As.const)return this._constStatement(e);if(e[0]===As.block)return this._blockStatement(e);if(e[0]===As.for){let[r,a,i,l,c]=e,d=this.#t;this.#t=!1;try{this.ctx.pushBlockScope();let[u,p,m]=this.ctx.withResetIndentLevel(()=>[a?this._statement(a):void 0,i?this._typedExpression(i,Et):void 0,l?this._statement(l):void 0]),_=u?u.slice(0,-1):"",v=m?m.slice(0,-1):"",h=this._block(Rc(c));return se`${this.ctx.pre}for (${_}; ${p}; ${v}) ${h}`}finally{this.#t=d,this.ctx.popBlockScope()}}if(e[0]===As.while){let r=this.#t;this.#t=!1;try{let[a,i,l]=e,c=this._typedExpression(i,Et),d=this.ctx.resolve(c.value).value,u=this._block(Rc(l));return`${this.ctx.pre}while (${d}) ${u}`}finally{this.#t=r}}if(e[0]===As.forOf){let[r,a,i,l]=e;if(a[0]!==As.const)throw new Ut("Only `for (const ... of ... )` loops are supported");this.tryMarkModified(i);let c=!1,d=this.#t;try{this.ctx.pushBlockScope();let u=this._expression(i),p=u.value instanceof Qg,m=p?u.value.snippet:u,_=I6(this.ctx,m,p),v=a[1],h=Rc(l);if(p){if(!Us(_.end))throw new Error("Cannot unroll loop. Length of iterable is unknown at comptime.");this.#t=!0;let w=_.end.value;if(w===0)return"";let{value:f}=m,A=Dp(f)?f.map(P=>Xr(P)):f instanceof Qi?f.elements:Array.from({length:w},(P,C)=>s0(m,Te(C,ie,"constant"))),E=A[0];if(!aa(E)&&!xa(E.dataType))throw new Ut(`Cannot unroll '${Hs(i)}
95'. The elements of iterable are constructed in place but are not value types.`);return A.map((P,C)=>`${this.ctx.pre}// unrolled iteration #${C}
96${this._blockStatement(h,{[v]:P})}`).join(`
97`)}this.#t=!1;let y=this.ctx.makeUniqueIdentifier("i","block"),x=se`${this.ctx.pre}for (var ${y} = ${_.start}; ${y} ${_.comparison} ${_.end}; ${y} += ${_.step})`,g="";if(Dp(m.value))g=this._block(h,{[v]:Te(y,_.start.dataType,"runtime")});else{this.ctx.indent(),c=!0;let w=this.ctx.makeUniqueIdentifier(v,"block"),f=s0(m,Te(y,ie,"runtime")),A=D6(f),E=z6(f,m);g=`{
98${se`${this.ctx.pre}${A} ${w} = ${na(this.ctx,f,E,!1)};`}
99${this._blockStatement(h,{[v]:Te(w,E,f.origin)})}
100`,this.ctx.dedent(),g+=`${this.ctx.pre}}`,c=!1}return se`${x} ${g.trim()}`}finally{c&&this.ctx.dedent(),this.#t=d,this.ctx.popBlockScope()}}if(e[0]===As.postUpdate){let[r,a,i]=e,l=this._expression(i),c=this.ctx.resolve(l.value,l.dataType).value;return G6(l,e),this.tryMarkModified(i),`${this.ctx.pre}${c}${a};`}if(e[0]===As.continue){if(this.#t)throw new Ut("Cannot unroll loop containing `continue`");return`${this.ctx.pre}continue;`}if(e[0]===As.break){if(this.#t)throw new Ut("Cannot unroll loop containing `break`");return`${this.ctx.pre}break;`}let t=this._expression(e),s=t.value&&this.ctx.resolve(t.value).value;return s?`${this.ctx.pre}${s};`:""}tryMarkModified(e){if(!e)return;let t=SL(e);if(t!==void 0){let s=this.ctx.getById(t),r=this.ctx.topFunctionScope;s&&r&&r.placeholderForVariable.has(s)&&r.modifiedVariables.add(s)}}};function G6(e,t){if(e.origin==="constant"||e.origin==="constant-immutable-def"||e.origin==="runtime-immutable-def")throw Us(e)?new Ut(`'${Hs(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 Ut(`'${Hs(t)}' is invalid, because the left side is a constant.`);if(e.origin==="uniform")throw new Ut(`'${Hs(t)}' is invalid, because uniform buffers cannot be mutated.`);if(e.origin==="readonly")throw new Ut(`'${Hs(t)}' is invalid, because readonly buffers cannot be mutated.`);if(e.origin==="argument")throw new Ut(`'${Hs(t)}' is invalid, because non-pointer arguments cannot be mutated.`)}function wL(e){throw new Error(`'${Qo(e)}' was not handled by the WGSL generator.`)}function TL(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 Rc(e){return typeof e!="object"||e[0]!==As.block?[As.block,[e]]:e}function SL(e){let t=e;for(;Array.isArray(t)&&(t[0]===As.memberAccess||t[0]===As.indexAccess);)t=t[1];if(typeof t=="string")return t}var AL=new bL,jf=AL;var Zf=class{[K]=!0;[bs];resourceType;buffer;#e;constructor(e,t){this.resourceType=e,this.buffer=t,this[bs]=t,this.#e=this.buffer.as(this.resourceType)}$name(e){return je(this,e),this}write(e,t){this.buffer.write(e,t)}writePartial(e){this.buffer.writePartial(e)}patch(e){this.buffer.patch(e)}read(){return this.buffer.read()}get[Yt](){return this.#e.$}get $(){return this.#e.$}get value(){return this.$}toString(){return`${this.resourceType}BufferShorthand:${Ce(this)??"<unnamed>"}`}[Je](e){return e.resolve(this.#e)}};function Gn(e){return new EL(e)}var EL=class{[K]=!0;resourceType="slot";defaultValue;constructor(e=void 0){this.defaultValue=e}$name(e){return je(this,e),this}areEqual(e,t){return Object.is(e,t)}toString(){return`slot:${Ce(this)??"<unnamed>"}`}get[Yt](){let e=Gr();if(!e)throw new Error("Cannot access tgpu.slot's value outside of resolution.");return $d(e.unwrap(this))}get value(){return this[Yt]}get $(){return this.value}};var mn=Gn(void 0);function Id(e){let t={argTypes:Object.values(e.in??{}),returnType:ss,workgroupSize:e.workgroupSize,entryPoint:"compute"},s=Nf(e.in??{});return Object.assign((a,...i)=>ML(t,e.workgroupSize,fl(a,...i),s),t)}function ML(e,t,s,r){let a=Aa(s,"compute",t);return{shell:e,$uses(i){return a.setExternals("userProvided",i),this},[K]:!0,[bs]:a,$name(i){return je(this,i),this},[Je](i){return i.withSlots([[mn,"compute"]],()=>a.resolve(i,[],e.returnType,r))},toString(){return`computeFn:${Ce(a)??"<unnamed>"}`}}}function Kf(e){let t={in:e.in,out:e.out,returnType:xi(e.out),entryPoint:"fragment"};return Object.assign((r,...a)=>CL(t,fl(r,...a)),t)}function CL(e,t){let s=Aa(t,"fragment"),r=e.returnType;return typeof t=="string"&&If(t,r,s),{shell:e,outputType:r,$uses(a){return s.setExternals("userProvided",a),this}
100,[K]:!0,[bs]:s,$name(a){return je(this,a),kn(r)&&r.$name(`${a}_Output`),this},[Je](a){let i=Nf(e.in??{},a.varyingLocations??{});return i.dataSchema&&kn(i.dataSchema)&&i.dataSchema.$name(`${Ce(this)??""}_Input`),typeof t=="string"&&s.setExternals("out",{Out:r}),a.withSlots([[mn,"fragment"]],()=>s.resolve(a,[],e.returnType,i))},toString(){return`fragmentFn:${Ce(s)??"<unnamed>"}`}}}function Ld(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?[xi(e.in)]:[],entryPoint:"vertex"};return Object.assign((r,...a)=>PL(t,fl(r,...a)),t)}function PL(e,t){let s=Aa(t,"vertex"),r=s6(e.in??{});return{shell:e,$uses(a){return s.setExternals("userProvided",a),this},[K]:!0,[bs]:s,$name(a){return je(this,a),this},[Je](a){let i=xi(e.out,a.varyingLocations).$name(`${Ce(this)??""}_Output`);return typeof t=="string"&&s.setExternals("out",{Out:i}),a.withSlots([[mn,"vertex"]],()=>s.resolve(a,[],i,r))},toString(){return`vertexFn:${Ce(s)??"<unnamed>"}`}}}var W6=class{resourceType="external-texture";[K]=!0;schema;#e;constructor(e,t){this.schema=e,this.#e=t,je(this,t.key)}[Je](e){let t=e.makeUniqueIdentifier(Ce(this),"global"),s=e.allocateLayoutEntry(this.#e.layout);return e.addDeclaration(`@group(${s}) @binding(${this.#e.idx}) var ${t}: ${e.resolve(this.schema).value};`),Te(t,wc(),"handle")}get[Yt](){let e=this.schema;return new Proxy({[K]:!0,get[ro](){return Te(this,e,"handle")},[Je]:t=>t.resolve(this),toString:()=>`textureExternal:${Ce(this)??"<unnamed>"}.$`},Yo)}get $(){if(er())return this[Yt];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")}get value(){return this.$}toString(){return`textureExternal:${Ce(this)??"<unnamed>"}`}};function kL(e){let t={};for(let[s,r]of Object.entries(e)){if(r===null){t[s]=null;continue}if("texture"in r&&typeof r.texture=="string"){let a=r.texture;t[s]={...r,texture:lp({dimension:r.viewDimension??"2d",sampleType:a==="sint"?fe:a==="uint"?ie:S,multisampled:r.multisampled??!1})}}else if("storageTexture"in r&&typeof r.storageTexture=="string"){let a={readonly:"read-only",writeonly:"write-only",mutable:"read-write"};t[s]={...r,storageTexture:lp({access:a[r.access??"writeonly"],format:r.storageTexture,dimension:r.viewDimension??"2d"})}}else"externalTexture"in r&&Object.keys(r.externalTexture).length===0?t[s]={...r,externalTexture:{type:"texture_external",dimension:"2d"}}:t[s]=r}return t}function Jf(e){return new $L(kL(e))}function Fd(e){return!!e&&e.resourceType==="bind-group-layout"}function xl(e){return!!e&&e.resourceType==="bind-group"}var RL=class q6 extends Error{constructor(t,s){super(`Bind group '${t??"<unnamed>"}' is missing a required binding '${s}'`),Object.setPrototypeOf(this,q6.prototype)}},X6=["compute","fragment"],Op=["compute","vertex","fragment"],$L=class{#e;[K];resourceType="bind-group-layout";value={};$=this.value;entries;get[Yt](){return this.$}constructor(e){this.entries=e;let t=0,s={};this[K]={bound:s};for(let[r,a]of Object.entries(e)){if(a===null){t++;continue}let i={layout:this,key:r,idx:t};if("uniform"in a&&(s[r]=new gg("uniform",a.uniform,i)),"storage"in a){let l="type"in a.storage?a.storage:a.storage(0);s[r]=new gg(a.access??"readonly",l,i)}"texture"in a&&(s[r]=new wg(a.texture,i)),"storageTexture"in a&&(s[r]=new wg(a.storageTexture,i)),"externalTexture"in a&&(s[r]=new W6(a.externalTexture,i)),"sampler"in a&&(s[r]=new m6(a.sampler==="comparison"?bc():xc(),i)),Object.defineProperty(this.value,r,{get:()=>s[r].value}),t++}}toString(){return`bindGroupLayout:${Ce(this)??"<unnamed>"}`}get index(){return this.#e}$name(e){return je(this,e),this}get bound(){return this[K].bound}$idx(e){return this.#e=e,this}unwrap(e){return e.device.createBindGroupLayout({label:Ce(this)??"<unnamed>",entries:Object.values(this.entries).map((t,s)=>{if(t===null)return null;let r=t.visibility,a={binding:s,visibility:0};if("uniform"in t)r=r??Op,a.buffer={type:"uniform"};else if("storage"in t)r=r??(t.access==="mutable"?X6:Op),a.buffer={type:t.access==="mutable"?"storage":"read-only-storage"};else if("sampler"in t)r=r??Op,a.sampler={type:t.sampler};else if("texture"in t){r=r??Op;let{multisampled:i,dimension:l,bindingSampleType:c}=t.texture;a.texture={sampleType:t.sampleType??c[0],viewDimension:l,multisampled:i}}else if("storageTexture"in t){r=r??X6;let{dimension:i,access:l,format:c}=t.storageTexture;a.storageTexture={access:l,format:c,viewDimension:i}}else"externalTexture"in t&&(r=r??Op,a.externalTexture={});return r?.includes("compute")&&(a.visibility|=GPUShaderStage.COMPUTE),r?.includes("vertex")&&(a.visibility|=GPUShaderStage.VERTEX),r?.includes("fragment")&&(a.visibility|=GPUShaderStage.FRAGMENT),a}).filter(t=>t!==null)})}},Qf=class{resourceType="bind-group";layout;entries;constructor(e,t){this.layout=e,this.entries=t;
vendor: 23,280 bytes, lines 100-223
100for(let s of Object.keys(e.entries))if(e.entries[s]!==null&&!(s in t))throw new RL(Ce(e),s)}unwrap(e){return e.device.createBindGroup({label:Ce(this.layout)??"<unnamed>",layout:e.unwrap(this.layout),entries:Object.entries(this.layout.entries).map(([t,s],r)=>{if(s===null)return null;let a=this.entries[t];if(a===void 0)throw new Error(`'${t}' is a resource required to populate bind group layout '${Ce(this.layout)??"<unnamed>"}'.`);if("uniform"in s){let i;if(hl(a)){if(!hg(a))throw new h7(a);i={buffer:e.unwrap(a)}}else i={buffer:a};return{binding:r,resource:i}}if("storage"in s){let i;if(hl(a)){if(!Rd(a))throw new fg(a);i={buffer:e.unwrap(a)}}else i={buffer:a};return{binding:r,resource:i}}if("texture"in s){let i;if(bi(a)){if(!T6(a))throw new S6(a);i=e.unwrap(a.createView(s.texture))}else wi(a)?i=e.unwrap(a):i=a;return{binding:r,resource:i}}if("storageTexture"in s){let i;if(bi(a)){if(!Rd(a))throw new fg(a);i=e.unwrap(a.createView(s.storageTexture))}else wi(a)?i=e.unwrap(a):i=a;return{binding:r,resource:i}}if("sampler"in s)return Wf(a)||Gf(a)?{binding:r,resource:e.unwrap(a)}:{binding:r,resource:a};if("externalTexture"in s)return{binding:r,resource:a};throw new Error(`Malformed bind group entry: ${Qo(a)}`)}).filter(t=>t!==null)})}};var e1=class f0{bindings;constructor(t){this.bindings=t}with(t,s){return new f0([...this.bindings,[$n(t)||Un(t)?t.slot:t,s]])}pipe(t){let s=t(this);return new f0([...this.bindings,...s.bindings])}};function*H6(e){let t=0;for(;;)e.has(t)||(yield t),t++}var j6=Ac(ie,0).$name("dataBlockIndex"),Z6=Ac(ie,0).$name("dataByteIndex"),K6=Gn().$name("dataBuffer"),UL=Ss([],ie)`() {
101  let i = dataByteIndex;
102  dataByteIndex = dataByteIndex + 1u;
103  return i;
104}`.$uses({dataByteIndex:Z6}).$name("nextByteIndex"),et="dataBuffer[dataBlockIndex].serializedData[nextByteIndex()]",J6={f32:Ss([S])`(n) {
105  ${et} = bitcast<u32>(n);
106}`,f16:Ss([Fs])`(n) {
107  ${et} = pack2x16float(vec2f(f32(n), 0.0));
108}`,i32:Ss([fe])`(n) {
109  ${et} = bitcast<u32>(n);
110}`,u32:Ss([ie])`(n) {
111  ${et} = n;
112}`,bool:Ss([Et])`(b) {
113  ${et} = u32(b);
114}`,vec2f:Ss([H])`(v) {
115  ${et} = bitcast<u32>(v.x);
116  ${et} = bitcast<u32>(v.y);
117}`,vec3f:Ss([W])`(v) {
118  ${et} = bitcast<u32>(v.x);
119  ${et} = bitcast<u32>(v.y);
120  ${et} = bitcast<u32>(v.z);
121}`,vec4f:Ss([ee])`(v) {
122  ${et} = bitcast<u32>(v.x);
123  ${et} = bitcast<u32>(v.y);
124  ${et} = bitcast<u32>(v.z);
125  ${et} = bitcast<u32>(v.w);
126}`,vec2h:Ss([Bo])`(v) {
127  ${et} = pack2x16float(vec2f(f32(v.x), f32(v.y)));
128}`,vec3h:Ss([Uo])`(v) {
129  ${et} = pack2x16float(vec2f(f32(v.x), f32(v.y)));
130  ${et} = pack2x16float(vec2f(f32(v.z), 0.0));
131}`,vec4h:Ss([Vo])`(v) {
132  ${et} = pack2x16float(vec2f(f32(v.x), f32(v.y)));
133  ${et} = pack2x16float(vec2f(f32(v.z), f32(v.w)));
134}`,vec2i:Ss([fs])`(v) {
135  ${et} = bitcast<u32>(v.x);
136  ${et} = bitcast<u32>(v.y);
137}`,vec3i:Ss([Os])`(v) {
138  ${et} = bitcast<u32>(v.x);
139  ${et} = bitcast<u32>(v.y);
140  ${et} = bitcast<u32>(v.z);
141}`,vec4i:Ss([ls])`(v) {
142  ${et} = bitcast<u32>(v.x);
143  ${et} = bitcast<u32>(v.y);
144  ${et} = bitcast<u32>(v.z);
145  ${et} = bitcast<u32>(v.w);
146}`,vec2u:Ss([Qe])`(v) {
147  ${et} = v.x;
148  ${et} = v.y;
149}`,vec3u:Ss([Bt])`(v) {
150  ${et} = v.x;
151  ${et} = v.y;
152  ${et} = v.z;
153}`,vec4u:Ss([ts])`(v) {
154  ${et} = v.x;
155  ${et} = v.y;
156  ${et} = v.z;
157  ${et} = v.w;
158}`,"vec2<bool>":Ss([Pr])`(v) {
159  ${et} = u32(v.x);
160  ${et} = u32(v.y);
161}`,"vec3<bool>":Ss([kr])`(v) {
162  ${et} = u32(v.x);
163  ${et} = u32(v.y);
164  ${et} = u32(v.z);
165}`,"vec4<bool>":Ss([Rr])`(v) {
166  ${et} = u32(v.x);
167  ${et} = u32(v.y);
168  ${et} = u32(v.z);
169  ${et} = u32(v.w);
170}`,mat2x2f:Ss([gr])`(m) {
171  ${et} = bitcast<u32>(m[0][0]);
172  ${et} = bitcast<u32>(m[0][1]);
173  ${et} = bitcast<u32>(m[1][0]);
174  ${et} = bitcast<u32>(m[1][1]);
175}`,mat3x3f:Ss([bo])`(m) {
176  ${et} = bitcast<u32>(m[0][0]);
177  ${et} = bitcast<u32>(m[0][1]);
178  ${et} = bitcast<u32>(m[0][2]);
179  ${et} = 0u;
180  ${et} = bitcast<u32>(m[1][0]);
181  ${et} = bitcast<u32>(m[1][1]);
182  ${et} = bitcast<u32>(m[1][2]);
183  ${et} = 0u;
184  ${et} = bitcast<u32>(m[2][0]);
185  ${et} = bitcast<u32>(m[2][1]);
186  ${et} = bitcast<u32>(m[2][2]);
187  ${et} = 0u;
188}`,mat4x4f:Ss([Ms])`(m) {
189  ${et} = bitcast<u32>(m[0][0]);
190  ${et} = bitcast<u32>(m[0][1]);
191  ${et} = bitcast<u32>(m[0][2]);
192  ${et} = bitcast<u32>(m[0][3]);
193  ${et} = bitcast<u32>(m[1][0]);
194  ${et} = bitcast<u32>(m[1][1]);
195  ${et} = bitcast<u32>(m[1][2]);
196  ${et} = bitcast<u32>(m[1][3]);
197  ${et} = bitcast<u32>(m[2][0]);
198  ${et} = bitcast<u32>(m[2][1]);
199  ${et} = bitcast<u32>(m[2][2]);
200  ${et} = bitcast<u32>(m[2][3]);
201  ${et} = bitcast<u32>(m[3][0]);
202  ${et} = bitcast<u32>(m[3][1]);
203  ${et} = bitcast<u32>(m[3][2]);
204  ${et} = bitcast<u32>(m[3][3]);
205}`};for(let[e,t]of Object.entries(J6))t.$name(`serialize${e[0].toLocaleUpperCase()}${e.slice(1)}`).$uses({dataBlockIndex:j6,nextByteIndex:UL,dataBuffer:K6});function Q6(e){return`(${e.map((t,s)=>`_arg_${s}`).join(", ")})`}function ew(e,t){let s=J6[e.type];if(s)return s.with(K6,t);if(Dt(e)){let r=Object.keys(e.propTypes),a=tw(Object.values(e.propTypes),t);return Ss([e])`(arg) {\n  propsSerializer(${r.map(i=>`arg.${i}`).join(", ")});\n}`.$uses({propsSerializer:a}).$name(`${Ce(e)??"struct"}Serializer`)}if(Wt(e)){let r=e.elementType,a=e.elementCount,i=ew(r,t);return Ss([e])`(arg) {\n${Array.from({length:a},(l,c)=>`  elementSerializer(arg[${c}]);`).join(`
206`)}\n}`.$uses({elementSerializer:i}).$name("arraySerializer")}throw new Error(`Cannot serialize data of type ${e.type}`)}function tw(e,t){let s={};return Ss(e)`${Q6(e)} {\n${e.map((r,a)=>(s[`serializer${a}`]=ew(r,t),`  serializer${a}(_arg_${a});`)).join(`
207`)}\n}`.$uses(s).$name("compoundSerializer")}function sw(e,t,s,r,a){let i=t.map(yt).reduce((d,u)=>d+u,0);if(i>a.logSizeLimit)throw new Error(`Logged data needs to fit in ${a.logSizeLimit} bytes (one of the logs requires ${i} bytes). Consider increasing the limit by passing appropriate options to tgpu.init().`);let l=tw(t,s).$name(`log${e}serializer`),c=Q6(t);return Ss(t)`${c} {
208  dataBlockIndex = atomicAdd(&indexBuffer, 1);
209  if (dataBlockIndex >= ${a.logCountLimit}) {
210    return;
211  }
212  dataBuffer[dataBlockIndex].id = ${e};
213  dataByteIndex = 0;
214
215  compoundSerializer${c};
216}`.$uses({indexBuffer:r,dataBuffer:s,dataBlockIndex:j6,dataByteIndex:Z6,compoundSerializer:l}).$name(`log${e}`)}var DL={logCountLimit:64,logSizeLimit:252,messagePrefix:" GPU "},ow=Te("/* console.log() */",ss,"runtime"),rw=class{get logResources(){}generateLog(){return console.warn("'console.log' is only supported when resolving pipelines."),ow}},aw=class{#e;#t;#s=1;#o;#r;constructor(e){this.#e={...DL,...e[K].logOptions},this.#t=new Map;let t=sr({id:ie,serializedData:qs(ie,Math.ceil(this.#e.logSizeLimit/4))}).$name("SerializedLogData");this.#r=e.createMutable(qs(t,this.#e.logCountLimit)).$name("dataBuffer"),this.#o=e.createMutable(dp(ie)).$name("indexBuffer")}generateLog(e,t,s){if(mn.$==="vertex")return console.warn("'console' operations are not supported in vertex shaders."),ow;let r=this.#s++,a=s.map(d=>{if(d.dataType===os)return d;let u=zn(e,[d],[Hi(d.dataType)])?.[0];return Vs(u,`Internal error. Expected type ${d.dataType} to be convertible to ${Hi(d.dataType)}`),u}).map(z7),i=a.filter(d=>d.dataType!==os),l=sw(r,i.map(d=>d.dataType),this.#r,this.#o,this.#e),c=Te(se`${e.resolve(l).value}(${i})`,ss,"runtime");return this.#t.set(r,{op:t,argTypes:a.map(d=>d?.dataType===os?d?.value:d?.dataType)}),c}get logResources(){return this.#s===1?void 0:{dataBuffer:this.#r,indexBuffer:this.#o,options:this.#e,logIdToMeta:this.#t}}};function nw(e){return e?.resourceType==="shellless-impl"}function iw(e,t){let s=Aa(t,"normal");return{[K]:!0,[bs]:s,resourceType:"shellless-impl",argTypes:e,[Je](r){return s.resolve(r,e,void 0)},toString(){return`fn*:${Ce(s)??"<unnamed>"}(${e.map(r=>r.toString()).join(", ")})`}}}var cw="#CATCHALL#",zL=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")}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 a={type:"functionScope",functionType:e,argAccess:t,returnType:s,externalMap:r,reportedReturnTypes:new Set,placeholderForVariable:new Map,modifiedVariables:new Set};return this._stack.push(a),a}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();let a=s.externalMap[e];return kn(a)&&Ce(a)===void 0&&je(a,e),a!=null?Xr(a):void 0}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}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,a])=>{s.externals.set(r,a)});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.")}},t1=["","  ","    ","      ","        ","          ","            ","              ","                "],v0=t1.length-1,IL=class{identLevel=0;get pre(){return t1[this.identLevel]??t1[v0].repeat(this.identLevel/v0)+t1[this.identLevel%v0]}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 Bd(e,t,s="argument"){let r=!1;return{name:e,access:()=>(r=!0,Te(e,t,s)),decoratedType:t,get used(){return r}}}function lw(e,t){return()=>{let s=e();if(s)return Nn(s,t)}}var h0=class{#e;_indentController=new IL;_itemStateStack=new zL;#t=[];_declarations=[];_varyingLocations;#s=new WeakSet;#o;gen;get varyingLocations(){return this._varyingLocations}[K]={itemStateStack:this._itemStateStack};bindGroupLayoutsToPlaceholderMap=new Map;_nextFreeLayoutPlaceholderIdx=0;fixedBindings=[];enableExtensions;expectedType;#r=0;constructor(e){this.enableExtensions=e.enableExtensions,this.gen=e.shaderGenerator??jf,this.#o=e.root?new aw(e.root):new rw,this.#e=e.namespace[K]}isIdentifierBanned(e){return Ju.has(e)}isIdentifierTaken(e){return this.#e.takenGlobalIdentifiers.has(e)||this._itemStateStack.isIdentifierTakenLocally(e)}makeUniqueIdentifier(e="item",t){if(t==="block"&&hd(e).success&&!this.isIdentifierTaken(e))return this.reserveIdentifier(e,"block"),e;let s=r5(e),r=0,a=this.#e.strategy==="random",i=a?`${s}_${this.#r++}`:s;for(;this.isIdentifierTaken(i);)i=a?`${s}_${this.#r++}`:`${s}_${++r}`;return this.reserveIdentifier(i,t),i}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 Vs(e,"Internal error, expected function scope to be present."),e.returnType}get shelllessRepo(){return this.#e.shelllessRepo}indent(){return this._indentController.indent()}dedent(){return this._indentController.dedent()}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;Vs(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.#o.generateLog(this,e,t)}get logResources(){return this.#o.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:i,positionalArgs:l}=e.entryInput,c=e.params[0],d=i?Bd(this.makeUniqueIdentifier("_arg_0","block"),i):void 0;if(d&&s.push(d),c?.type===Pc.destructuredObject)for(let{name:u,alias:p}of c.props){let m=l.find(_=>_.schemaKey===u);if(m){let _=Bd(this.makeUniqueIdentifier(p,"block"),m.type);s.push(_),t.argAccess[p]=_.access}else d&&(t.argAccess[p]=lw(d.access,u))}else if(c?.type===Pc.identifier){let u=[];for(let m of l){let _=Bd(this.makeUniqueIdentifier(m.schemaKey,"block"),m.type);s.push(_),u.push({schemaKey:m.schemaKey,arg:_.access})}let p=new Yf(d?.access,u);t.argAccess[c.name]=()=>Te("N/A",p,"argument")}else for(let u of l){let p=this.makeUniqueIdentifier(`_arg_${u.schemaKey}`,"block"),m=Bd(p,u.type);s.push(m),t.argAccess[p]=m.access}}else for(let[i,l]of e.argTypes.entries()){let c=e.params[i],d=ws(l)?l.addressSpace==="storage"?l.access==="read"?"readonly":"mutable":l.addressSpace:"argument";switch(c?.type){case Pc.identifier:{let u=Bd(this.makeUniqueIdentifier(c.name,"block"),l,d);s.push(u),t.argAccess[c.name]=u.access;break}case Pc.destructuredObject:{let u=Bd(this.makeUniqueIdentifier(`_arg_${i}`,"block"),l,d);s.push(u);for(let{name:p,alias:m}of c.props)t.argAccess[m]=lw(u.access,p);break}case void 0:l instanceof Zr||s.push({name:this.makeUniqueIdentifier(`_arg_${i}`,"block"),access:()=>{throw new Error("Unreachable: Accessing an argument that wasn't named in the function signature")},decoratedType:l,used:!1})}}let r,a=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 Zr&&(Dt(t.reportedReturnTypes.values().next().value)?r=r.completeStruct:r=void 0),!r){let i=[...t.reportedReturnTypes];if(i.length===0)r=ss;else{let l=Z_(i);l&&!l.hasImplicitConversions&&(r=l.targetType)}if(!r)throw new Error(`Expected function to have a single return type, got [${i.join(", ")}]. Cast explicitly to the desired type.`);r=yr(r),(e.functionType==="vertex"||e.functionType==="fragment")&&(r=xi(r))}return r}});if(!r)throw new Error("Failed to determine return type");return{code:a,returnType:r}}finally{this._itemStateStack.pop("blockScope"),this._itemStateStack.pop("functionScope")}}addDeclaration(e){this._declarations.push(e)}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:cw,binding:s}}readSlot(e){let t=this._itemStateStack.readSlot(e);if(t===void 0)throw new f7(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=Ce(e);try{return je(e,t),s()}finally{r&&je(e,r)}}unwrap(e){if(Wu(e))return this.withRenamed(e[Ho].inner,Ce(e),()=>this.withSlots(e[Ho].pairs,()=>this.unwrap(e[Ho].inner)));let t=e;for(;;)if(Yu(t))t=this.readSlot(t);else if(Gu(t))t=this._getOrCompute(t);else break;return t}_getOrCompute(e){let t=this.#e.memoizedLazy.get(e)??[];this._itemStateStack.pushItem();try{for(let a of t)if([...a.slotToValueMap.entries()].every(([i,l])=>i.areEqual(this._itemStateStack.readSlot(i),l)))return a.result;this.pushMode(new Na);let s;try{s=e[K].compute()}finally{this.popMode("normal")}let r=new Map;for(let a of this._itemStateStack.topItem.usedSlots)r.set(a,this._itemStateStack.readSlot(a));return t.push({slotToValueMap:r,result:s}),this.#e.memoizedLazy.set(e,t),s}catch(s){throw s instanceof Zi?s.appendToTrace(e):new Zi(s,[e])}finally{this._itemStateStack.pop("item")}}_getOrInstantiate(e){let t=this.#e.memoizedResolves.get(e)??[];this._itemStateStack.pushItem();try{for(let a of t)if([...a.slotToValueMap.entries()].every(([i,l])=>i.areEqual(this._itemStateStack.readSlot(i),l)))return a.result;let s;if(ba(e))s=Te(this.gen.typeAnnotation(e),ss,"runtime");else if(Gu(e)||Yu(e))s=this.resolve(this.unwrap(e));else if(Zh(e))s=e[Je](this);else if(Rn(e)){let a=this.#e.shelllessRepo.get(e,void 0);if(!a)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(a))}else throw new TypeError(`Unresolvable internal value: ${Qo(e)}`);let r=new Map;for(let a of this._itemStateStack.topItem.usedSlots)r.set(a,this._itemStateStack.readSlot(a));return t.push({slotToValueMap:r,result:s}),this.#e.memoizedResolves.set(e,t),s}catch(s){throw s instanceof Zi?s.appendToTrace(e):new Zi(s,[e])}finally{this._itemStateStack.pop("item")}}resolve(e,t){if(vp(e)||nw(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(Wu(e))return this.withRenamed(e[Ho].inner,Ce(e),()=>this.withSlots(e[Ho].pairs,()=>this.resolve(e[Ho].inner,t)));if(Ht(e)||Rn(e)){if(this._itemStateStack.itemDepth===0){this.gen.initGenerator(this);try{this.pushMode(new C7);let s=W_(this,()=>this._getOrInstantiate(e));return Te(`${[...this._declarations].join(`
217
218`)}${s.value}`,ss,"runtime")}finally{this.popMode("codegen")}}return this._getOrInstantiate(e)}if(typeof e=="number"){let s=t??Wr(e).dataType;return Vs(s!==os,"Schema has to be known for resolving numbers"),this.gen.numericLiteral(e,s)}if(typeof e=="boolean")return Te(e?"true":"false",Et,"constant");if(typeof e=="string")return Te(e,ss,"runtime");if(t&&Wt(t)){if(!Array.isArray(e))throw new Ut(`Cannot coerce ${e} into value of type '${t}'`);if(t.elementCount!==e.length)throw new Ut(`Cannot create value of type '${t}' from an array of length: ${e.length}`);return this.gen.typeInstantiation(t,e.map(s=>Te(s,t.elementType,"runtime")))}if(t&&Dt(t))return this.gen.typeInstantiation(t,Object.entries(t.propTypes).map(([s,r])=>Te(e[s],r,"runtime")));throw new Ut(`Value ${Qo(e)} is not resolvable${t?` to type ${Qo(t)}`:""}`)}resolveSnippet(e){return Te(this.resolve(e.value,e.dataType).value,e.dataType,e.origin)}pushMode(e){this.#t.push(e)}popMode(e){let t=this.#t.pop();e!==void 0&&Vs(t?.type===e,"Unexpected mode")}get mode(){return this.#t[this.#t.length-1]??Kh}};function Ai(e,t){let s=new h0(t),r=(t.config?s.withSlots(t.config(new e1([])).bindings,()=>s.resolve(e)):s.resolve(e)).value,a=s.bindGroupLayoutsToPlaceholderMap,i=[],l=H6(new Set([...a.keys()].map(p=>p.index).filter(p=>p!==void 0))),c=s.fixedBindings.map((p,m)=>[String(m),p.layoutEntry]),d=()=>{let p=l.next().value,m=Jf(Object.fromEntries(c));return i[p]=m,r=r.replaceAll(cw,String(p)),[p,new Qf(m,Object.fromEntries(s.fixedBindings.map((_,v)=>[String(v),_.resource])))]},u=c.length>0?d():void 0;for(let[p,m]of a.entries()){let _=p.index??l.next().value;i[_]=p,r=r.replaceAll(m,String(_))}return t.enableExtensions&&t.enableExtensions.length>0&&(r=`${t.enableExtensions.map(p=>`enable ${p};`).join(`
219`)}
220
221${r}`),{code:r,usedBindGroupLayouts:i,catchall:u,logResources:s.logResources}}function y0(e){let t=e;return t?.resourceType==="compute-pipeline"&&!!t[K]}function g0(e){let t=e;return t?.resourceType==="render-pipeline"&&!!t[K]}function dw(e){return g0(e)||y0(e)}function s1(e){return!!e&&typeof e=="object"&&"beginRenderPass"in e&&"beginComputePass"in e}function uw(e){return!!e&&typeof e=="object"&&"dispatchWorkgroups"in e&&!("beginRenderPass"in e)}function pw(e){return!!e&&typeof e=="object"&&"executeBundles"in e&&"draw"in e}function mw(e){return!!e&&typeof e=="object"&&"draw"in e&&"finish"in e&&!("executeBundles"in e)&&!("beginRenderPass"in e)&&!("dispatchWorkgroups"in e)}function x0(e,t){return e.type!==t.type?!1:ws(e)&&ws(t)?e.access===t.access&&e.addressSpace===t.addressSpace&&e.implicit===t.implicit&&x0(e.inner,t.inner):Wt(e)&&Wt(t)?e.elementCount===t.elementCount&&x0(e.elementType,t.elementType):Dt(e)&&Dt(t)?e===t:!0}var _w=class{cache=new Map;get(e,t){let s=Ou(e);if(!s)return;if(!t&&s.ast.params.length>0)throw new Error(`Cannot resolve '${Ce(e)}' directly, because it expects arguments. Either call it from another function, or wrap it in a shell`);let r=(t??[]).map((l,c)=>{if(l.value instanceof Ya){if(l.dataType===os)throw new Ut("d.ref() created with primitive types must be stored in a variable before use");return l.dataType}if(l.dataType===os)throw new Error(`Passed illegal value ${l.value} as the #${c} argument to ${Ce(e)??"<unnamed>"}(...)
222Shellless functions can only accept arguments representing WGSL resources: constructible WGSL types, d.refs, samplers or texture views.
223Remember, that arguments such as samplers, texture views, accessors, slots etc. should be dereferenced via '.$' first.`);let d=yr(l.dataType);return ws(d)&&d.implicit&&(d=d.inner),d}),a=this.cache.get(e);if(a){let l=a.find(c=>c.argTypes.length===r.length&&c.argTypes.every((d,u)=>x0(d,r[u])));if(l)return l}else a=[],this.cache.set(e,a);let i=iw(r,e);return a.push(i),i}};var LL=class{[K];constructor(e){this[K]={strategy:e,takenGlobalIdentifiers:new Set([...Ju,...o5]),shelllessRepo:new _w,memoizedResolves:new WeakMap,memoizedLazy:new WeakMap}}};function _n(e){let{names:t="strict"}=e??{};return new LL(t)}function o1(e,t){return Array.isArray(e)?BL(e,t):FL(e)}function fw(e,t){return Array.isArray(e)?o1(e,t).code:o1(e).code}function FL(e){let{template:t,externals:s,unstable_shaderGenerator:r,names:a="strict",config:i,enableExtensions:l}=e;return t||console.warn("Calling resolve with an empty template is deprecated and will soon return an empty string. Consider using the 'tgpu.resolve(resolvableArray, options)' API instead."),Ai({[K]:!0,[Je](c){return Te(gi(c,s,t??""),ss,"runtime")},toString:()=>"<root>"}
223,{namespace:typeof a=="string"?_n({names:a}):a,enableExtensions:l,shaderGenerator:r,config:i,root:vw(Object.values(s))})}function BL(e,t){let{unstable_shaderGenerator:s,names:r="strict",config:a,enableExtensions:i}=t??{};return Ai({[K]:!0,[Je](l){for(let c of e)if(Fd(c))for(let d of Object.values(c[K].bound))l.resolve(d);else l.resolve(c);return Te("",ss,"runtime")},toString:()=>"<root>"},{namespace:typeof r=="string"?_n({names:r}):r,enableExtensions:i,shaderGenerator:s,config:a,root:vw(e)})}function vw(e){let t=e.filter(dw);if(t.length>1)throw new Error(`Found ${t.length} pipelines but can only resolve one at a time.`);return t[0]?.[K].root}function a1(e,t="vertex"){return new VL(e,t)}function n1(e){return e?.resourceType==="vertex-layout"}var b0=Symbol("defaultAttribEntry");function r1(e,t,s,r,a){if(Lo(t)||Jo(t)){let i=Oa(t);return i!==void 0&&(r[a??b0]=i),r1(e,t.inner,Xs(s,$r(t)),r)}if(Dt(t)){let i=s,l=t.propTypes;return Object.fromEntries(Object.entries(l).map(([c,d])=>{i=Xs(i,rs(d));let u=[c,r1(e,d,i,r,c)];return i+=yt(d),u}))}if(xo(t)){let i=s,l=t.propTypes;return Object.fromEntries(Object.entries(l).map(([c,d])=>{i=Xs(i,$r(d));let u=[c,r1(e,d,i,r,c)];return i+=yt(d),u}))}if("type"in t&&typeof t.type=="string"){if(I_.includes(t.type))return{_layout:e,format:t.type,offset:s};let i=o7[t.type];if(i)return{_layout:e,format:i,offset:s}}throw new Error(`Unsupported data used in vertex layout: ${String(t)}`)}var VL=class{[K]=!0;resourceType="vertex-layout";stride;attrib;schemaForCount;stepMode;#e={};constructor(e,t){this.schemaForCount=e,this.stepMode=t;let s=e(0);this.stride=Xs(yt(s.elementType),rs(s)),this.attrib=r1(this,s.elementType,0,this.#e)}get vertexLayout(){if(this.#e[b0]!==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[b0]}]}}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 je(this,e),this}};function hw(e,t,s,r){return new OL(e,t,s,r)}function Np(e){let t=e;return t?.resourceType==="query-set"&&!!t[K]}var OL=class{resourceType="query-set";type;count;#e;#t;#s;#o;#r=!1;#a=!0;#i=void 0;#n=void 0;constructor(e,t,s,r){this.#t=e.device,this.type=t,this.count=s,this.#e=r,this.#o=!r,this.#s=r}get querySet(){if(this.#r)throw new Error("This QuerySet has been destroyed.");return this.#e?this.#e:this.#s?this.#s:(this.#s=this.#t.createQuerySet({type:this.type,count:this.count}),this.#s)}get destroyed(){return this.#r}get available(){return this.#a}get[K](){let e=this;return{get readBuffer(){return e.#i||(e.#i=e.#t.createBuffer({size:e.count*BigUint64Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})),e.#i},get resolveBuffer(){return e.#n||(e.#n=e.#t.createBuffer({size:e.count*BigUint64Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC})),e.#n}}}$name(e){return je(this,e),this.#s&&(this.#s.label=e),this}resolve(){if(this.#r)throw new Error("This QuerySet has been destroyed.");if(!this.#a)throw new Error("This QuerySet is busy resolving or reading.");let e=this.#t.createCommandEncoder();e.resolveQuerySet(this.querySet,0,this.count,this[K].resolveBuffer,0),this.#t.queue.submit([e.finish()])}async read(){if(!this.#n)throw new Error("QuerySet must be resolved before reading.");this.#a=!1;try{let e=this.#t.createCommandEncoder();e.copyBufferToBuffer(this[K].resolveBuffer,0,this[K].readBuffer,0,this.count*BigUint64Array.BYTES_PER_ELEMENT),this.#t.queue.submit([e.finish()]);let t=this[K].readBuffer;await t.mapAsync(GPUMapMode.READ);let s=new BigUint64Array(t.getMappedRange().slice());return t.unmap(),Array.from(s)}finally{this.#a=!0}}destroy(){this.#r||(this.#r=!0,this.#s&&this.#o&&this.#s.destroy(),this.#i?.destroy(),this.#n?.destroy(),this.#i=this.#n=void 0)}};var w0=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 yw(e,t){let s=Object.values(e).flatMap(i=>Object.values(i.entries)).filter(i=>i!==null),r=s.filter(i=>"uniform"in i).length,a=s.filter(i=>"storage"in i).length;r>t.maxUniformBuffersPerShaderStage&&console.warn(`Total number of uniform buffers (${r}) exceeds maxUniformBuffersPerShaderStage (${t.maxUniformBuffersPerShaderStage}). Consider:
2241. Grouping some of the uniforms into one using 'd.struct',
2252. Increasing the limit when requesting a device or creating a root.`),a>t.maxStorageBuffersPerShaderStage&&console.warn(`Total number of storage buffers (${a}) exceeds maxStorageBuffersPerShaderStage (${t.maxStorageBuffersPerShaderStage}).`)}function Vd(e,t,s,r,a){let i=new Set(s);
vendor: 4,517 bytes, line 225
225if(yw(s,t.device.limits),s.forEach((l,c)=>{if(r&&c===r[0])e.setBindGroup(c,t.unwrap(r[1])),i.delete(l);else{let d=a(l);d!==void 0&&(i.delete(l),xl(d)?e.setBindGroup(c,t.unwrap(d)):e.setBindGroup(c,d))}}),i.size>0)throw new g7(i)}function i1(e,t,s,r){let a=new Set;if(s.forEach((i,l)=>{let c=r(i);!c||!c.buffer?a.add(i):hl(c.buffer)?e.setVertexBuffer(l,t.unwrap(c.buffer),c.offset,c.size):e.setVertexBuffer(l,c.buffer,c.offset,c.size)}),a.size>0)throw new b7(a)}var Yp=ve({name:"bitcastU32toF32",normalImpl:(e=>typeof e=="number"?Ga(e):gt.bitcastU32toF32[e.kind](e)),codegenImpl:(e,[t])=>se`bitcast<f32>(${t})`,signature:(...e)=>{let t=Ws(e,[ie])??e;return{argTypes:t,returnType:es(t[0])?t[0].type==="vec2u"?H:t[0].type==="vec3u"?W:ee:S}}}),Gp=ve({name:"bitcastU32toI32",normalImpl:(e=>typeof e=="number"?Wa(e):gt.bitcastU32toI32[e.kind](e)),codegenImpl:(e,[t])=>se`bitcast<i32>(${t})`,signature:(...e)=>{let t=Ws(e,[ie])??e;return{argTypes:t,returnType:es(t[0])?t[0].type==="vec2u"?fs:t[0].type==="vec3u"?Os:ls:fe}}});var Wp=ve({name:"unpack2x16float",normalImpl:e=>{let t=new ArrayBuffer(4);new On(t).writeUint32(e);let s=new ul(t);return H(s.readFloat16(),s.readFloat16())},signature:{argTypes:[ie],returnType:H},codegenImpl:(e,[t])=>se`unpack2x16float(${t})`}),T0=ve({name:"pack2x16float",normalImpl:e=>{let t=new ArrayBuffer(4),s=new On(t);return s.writeFloat16(e.x),s.writeFloat16(e.y),ie(new ul(t).readUint32())},signature:{argTypes:[H],returnType:ie},codegenImpl:(e,[t])=>se`pack2x16float(${t})`}),S0=ve({name:"unpack4x8unorm",normalImpl:e=>{let t=new ArrayBuffer(4);new On(t).writeUint32(e);let s=new ul(t);return ee(s.readUint8()/255,s.readUint8()/255,s.readUint8()/255,s.readUint8()/255)},signature:{argTypes:[ie],returnType:ee},codegenImpl:(e,[t])=>se`unpack4x8unorm(${t})`}),A0=ve({name:"pack4x8unorm",normalImpl:e=>{let t=new ArrayBuffer(4),s=new On(t);return s.writeUint8(e.x*255),s.writeUint8(e.y*255),s.writeUint8(e.z*255),s.writeUint8(e.w*255),ie(new ul(t).readUint32())},signature:{argTypes:[ee],returnType:ie},codegenImpl:(e,[t])=>se`pack4x8unorm(${t})`});var is=e=>Yp(e??0),Wn=e=>Gp(e??0),Od=e=>Wp(e??0),NL={f32:e=>is(e[0]),f16:e=>Od(e[0]).x,i32:e=>Wn(e[0]),u32:e=>e[0]??0,bool:e=>!!e[0],vec2f:e=>H(is(e[0]),is(e[1])),vec3f:e=>W(is(e[0]),is(e[1]),is(e[2])),vec4f:e=>ee(is(e[0]),is(e[1]),is(e[2]),is(e[3])),vec2h(e){let t=Od(e[0]);return Bo(t.x,t.y)},vec3h(e){let t=Od(e[0]),s=Od(e[1]);return Uo(t.x,t.y,s.x)},vec4h(e){let t=Od(e[0]),s=Od(e[1]);return Vo(t.x,t.y,s.x,s.y)},vec2i:e=>fs(Wn(e[0]),Wn(e[1])),vec3i:e=>Os(Wn(e[0]),Wn(e[1]),Wn(e[2])),vec4i:e=>ls(Wn(e[0]),Wn(e[1]),Wn(e[2]),Wn(e[3])),vec2u:e=>Qe(e[0]??0,e[1]??0),vec3u:e=>Bt(e[0]??0,e[1]??0,e[2]??0),vec4u:e=>ts(e[0]??0,e[1]??0,e[2]??0,e[3]??0),"vec2<bool>":e=>Pr(!!e[0],!!e[1]),"vec3<bool>":e=>kr(!!e[0],!!e[1],!!e[2]),"vec4<bool>":e=>Rr(!!e[0],!!e[1],!!e[2],!!e[3]),mat2x2f:e=>gr(is(e[0]),is(e[1]),is(e[2]),is(e[3])),mat3x3f:e=>bo(is(e[0]),is(e[1]),is(e[2]),is(e[4]),is(e[5]),is(e[6]),is(e[8]),is(e[9]),is(e[10])),mat4x4f:e=>Ms(is(e[0]),is(e[1]),is(e[2]),is(e[3]),is(e[4]),is(e[5]),is(e[6]),is(e[7]),is(e[8]),is(e[9]),is(e[10]),is(e[11]),is(e[12]),is(e[13]),is(e[14]),is(e[15]))};function YL(e,t){let s=NL[t.type];if(s)return s(e);if(Dt(t)){let r=Object.keys(t.propTypes),a=E0(e,Object.values(t.propTypes));return Object.fromEntries(r.map((i,l)=>[i,a[l]]))}if(Wt(t)){let r=t.elementType,a=t.elementCount;return E0(e,Array.from({length:a},()=>r))}throw new Error(`Cannot deserialize data of type ${t.type}`)}function E0(e,t){let s=0;return t.map(r=>{if(!fr(r))return r;let a=Math.ceil(yt(r)/4),i=YL(e.subarray(s,s+a),r);return s+=a,i})}function GL(e,t){return E0(e,t).map(O_)}function $c(e){let{indexBuffer:t,dataBuffer:s,logIdToMeta:r,options:a}=e;s.read().then(i=>{i.filter(l=>l.id).forEach(({id:l,serializedData:c})=>{let{argTypes:d,op:u}=r.get(l),p=GL(new Uint32Array(c),d);p.length===0&&p.push(""),u.bind(console)(`%c${a.messagePrefix}%c ${p[0]}`,"background: #936ff5; color: white;","color: inherit; background: none",...p.slice(1))})}),t.read().then(i=>{i>a.logCountLimit&&console.warn(`Log count limit per dispatch (${a.logCountLimit}) exceeded by ${i-a.logCountLimit} calls. Consider increasing the limit by passing appropriate options to tgpu.init().`)}),s.buffer.clear(),t.buffer.clear()}var Nd=["f16","clip_distances","dual_source_blending","subgroups","primitive_index"],l1={f16:"shader-f16",clip_distances:"clip-distances",dual_source_blending:"dual-source-blending",subgroups:"subgroups",primitive_index:"primitive-index"};
225var WL={dispatchWorkgroupsIndirect:"3 x u32",drawIndirect:"4 x u32",drawIndexedIndirect:"3 x u32, i32, u32"};function gw(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 Xp(e,t,s,r){if(cn(e)){let l=typeof t=="number"?t:t?.offset??0;return gw(e.size,l,s,r),l}let{offset:a,contiguous:i}=t?typeof t=="number"?{offset:t,contiguous:s}:t:fp(e.dataType);return gw(yt(e.dataType),a,s,r),i<s&&console.warn(`${r}: Starting at offset ${a}, only ${i} contiguous bytes are available before padding. '${r}' requires ${s} bytes (${WL[r]}). Reading across padding may result in undefined behavior.`),a}function c1(e,t,s){return e.timestampWrites?{...e,performanceCallback:t}:{...e,performanceCallback:t,timestampWrites:{querySet:s,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}}}function d1(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}}function qp(e,t){if(!e.timestampWrites)return{};let{querySet:s,beginningOfPassWriteIndex:r,endOfPassWriteIndex:a}=e.timestampWrites,i={querySet:Np(s)?t.unwrap(s):s};return r!==void 0&&(i.beginningOfPassWriteIndex=r),a!==void 0&&(i.endOfPassWriteIndex=a),{timestampWrites:i}}function Uc({root:e,priors: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(!Np(s))throw new Error("Performance callback with raw GPUQuerySet is not supported. Use TgpuQuerySet instead.");let a=e.device.createCommandEncoder();a.resolveQuerySet(e.unwrap(s),0,s.count,s[K].resolveBuffer,0),e.device.queue.submit([a.finish()]),e.device.queue.onSubmittedWorkDone().then(async()=>{if(!s.available)return;let i=await s.read(),l=i[t.timestampWrites?.beginningOfPassWriteIndex??0],c=i[t.timestampWrites?.endOfPassWriteIndex??1];if(l===void 0||c===void 0)throw new Error("QuerySet did not return valid timestamps.");await r(l,c)})}function M0(e,t,s){return new XL(new qL(e,t,s),{})}var xw=new WeakMap,XL=class bl{[K];resourceType="compute-pipeline";[bs];#e;#t;constructor(t,s){this.#e=t,this.#t=s,this[K]={get rawPipeline(){return t.unwrap().pipeline},get priors(){return s},get root(){return t.root}},this[bs]=t}[Je](t){return t.resolve(this.#e)}toString(){return`computePipeline:${Ce(this)??"<unnamed>"}`}get rawPipeline(){return this.#e.unwrap().pipeline}with(t,s){return uw(t)?new bl(this.#e,{...this.#t,externalPass:t,externalEncoder:void 0}):s1(t)?new bl(this.#e,{...this.#t,externalEncoder:t,externalPass:void 0}):xl(t)?new bl(this.#e,{...this.#t,bindGroupLayoutMap:new Map([...this.#t.bindGroupLayoutMap??[],[t.layout,t]])}):new bl(this.#e,{...this.#t,bindGroupLayoutMap:new Map([...this.#t.bindGroupLayoutMap??[],[t,s]])})}withPerformanceCallback(t){if(this.#t.timestampWrites)return new bl(this.#e,{...this.#t,performanceCallback:t});let s=this.#e.performanceCallbackQuerySet;if(!s)return console.warn("Performance callback cannot be used because the timestamp-query feature is not enabled on the root."),this;let r=c1(this.#t,t,s);return new bl(this.#e,r)}withTimestampWrites(t){let s=d1(this.#t,t,this.#e.root);return new bl(this.#e,s)}dispatchWorkgroups(t,s,r){this._executeComputePass(a=>a.dispatchWorkgroups(t,s,r))}dispatchWorkgroupsIndirect(t,s){let a=cn(t)?t:t.buffer,i=Xp(t,s,12,"dispatchWorkgroupsIndirect");this._executeComputePass(l=>l.dispatchWorkgroupsIndirect(a,i))}_applyComputeState(t){let s=this.#e.unwrap(),{root:r}=this.#e;t.setPipeline(s.pipeline),Vd(t,r,s.usedBindGroupLayouts,s.catchall,a=>this.#t.bindGroupLayoutMap?.get(a))}_executeComputePass(t){let{root:s}=this.#e;if(this.#t.externalPass){xw.get(this.#t.externalPass)!==this&&(this._applyComputeState(this.#t.externalPass),xw.set(this.#t.externalPass,this)),t(this.#t.externalPass);return}if(this.#t.externalEncoder){let c={label:Ce(this.#e)??"<unnamed>",...qp(this.#t,s)},d=this.#t.externalEncoder.beginComputePass(c);this._applyComputeState(d),t(d),d.end();return}let r=this.#e.unwrap(),a={label:Ce(this.#e)??"<unnamed>",...qp(this.#t,s)},i=s.device.createCommandEncoder(),l=i.beginComputePass(a);this._applyComputeState(l),t(l),l.end(),s.device.queue.submit([i.finish()]),r.logResources&&$c(r.logResources),this.#t.performanceCallback&&Uc({root:s,priors:this.#t})}$name(t){return je(this,t),this}},qL=class{[K]=!0;root;_memo;#e;#t;#s;constructor(e,t,s){this.root=e,this.#e=t,this.#t=s}[Je](e){return e.withSlots(this.#e,()=>(e.resolve(this.#t.compute),Te("",ss,"runtime")))}toString(){return"computePipelineCore"}get performanceCallbackQuerySet(){if(this.root.enabledFeatures.has("timestamp-query"))return this.#s??=this.root.createQuerySet("timestamp",2)}unwrap(){if(this._memo===void 0){let e=this.root.device,t=Nd.filter(p=>this.root.enabledFeatures.has(l1[p])),s,r,a=_n({names:this.root.nameRegistrySetting});if(ji?.enabled){let p=performance.mark("typegpu:resolution:start");s=Ai(this,{namespace:a,enableExtensions:t,shaderGenerator:this.root.shaderGenerator,root:this.root}),r=performance.measure("typegpu:resolution",{start:p.name})}else s=Ai(this,{namespace:a,enableExtensions:t,shaderGenerator:this.root.shaderGenerator,root:this.root});
225let{code:i,usedBindGroupLayouts:l,catchall:c,logResources:d}=s;c!==void 0&&l[c[0]]?.$name(`${Ce(this)??"<unnamed>"} - Automatic Bind Group & Layout`);let u=e.createShaderModule({label:`${Ce(this)??"<unnamed>"} - Shader`,code:i});this._memo={pipeline:e.createComputePipeline({label:Ce(this)??"<unnamed>",layout:e.createPipelineLayout({label:`${Ce(this)??"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:l.map(p=>this.root.unwrap(p))}),compute:{module:u}}),usedBindGroupLayouts:l,catchall:c,logResources:d},ji?.enabled&&(async()=>{let p=performance.mark("typegpu:compile-start");await e.queue.onSubmittedWorkDone();let m=performance.measure("typegpu:compiled",{start:p.name});ji?.record("resolution",{resolveDuration:r?.duration,compileDuration:m.duration,wgslSize:i.length})})()}return this._memo}};var HL={$vertexIndex:zo.vertexIndex,$instanceIndex:zo.instanceIndex},jL={$clipDistances:zo.clipDistances,$position:zo.position},ZL={$position:zo.position,$frontFacing:zo.frontFacing,$primitiveIndex:zo.primitiveIndex,$sampleIndex:zo.sampleIndex,$sampleMask:zo.sampleMask,$subgroupInvocationId:zo.subgroupInvocationId,$subgroupSize:zo.subgroupSize},KL={$fragDepth:zo.fragDepth,$sampleMask:zo.sampleMask},u1=class{#e;autoIn;autoOut;constructor(e,t,s){Ce(e)||je(e,"fragmentFn"),this.#e=Aa(e,"fragment"),this.autoIn=new Zr({...ZL,...t},void 0,s),je(this.autoIn,"FragmentIn"),this.autoOut=new Zr(KL,ee),je(this.autoOut,"FragmentOut")}toString(){return"autoFragmentFn"}[Je](e){return e.withSlots([[mn,"fragment"]],()=>this.#e.resolve(e,[this.autoIn],this.autoOut))}};u1.prototype[K]=!0;u1.prototype.resourceType="auto-fragment-fn";var p1=class{#e;autoIn;autoOut;constructor(e,t,s){Ce(e)||je(e,"vertexFn"),this.#e=Aa(e,"vertex"),this.autoIn=new Zr({...HL,...t},void 0,s),je(this.autoIn,"VertexIn"),this.autoOut=new Zr(jL,void 0),je(this.autoOut,"VertexOut")}toString(){return"autoVertexFn"}[Je](e){return e.withSlots([[mn,"vertex"]],()=>this.#e.resolve(e,[this.autoIn],this.autoOut))}};p1.prototype[K]=!0;p1.prototype.resourceType="auto-vertex-fn";function JL(e){return!!e?.view}function bw(e,t){if(tr(e))return[];if(Dt(e)){let s=[];for(let r of Object.keys(e.propTypes)){let a=e.propTypes[r];if(tr(a))continue;let i=t[r];if(!i)throw new Error(`A color attachment by the name of '${r}' was not provided to the shader.`);s.push(i)}return s}if(!JL(t))throw new Error("Expected a single color attachment, not a record.");return[t]}function ww(e,t){let s;if(U_(e)||tr(e))return[null];if(Dt(e)){let a=[];for(let i of Object.keys(e.propTypes)){let l=e.propTypes[i];if(tr(l))continue;let c=t[i];a.push({...c,format:c?.format??(s??=navigator.gpu.getPreferredCanvasFormat())})}return a}let r=t;return[{...r,format:r?.format??(s??=navigator.gpu.getPreferredCanvasFormat())}]}var QL=16,eF=20;function m1(e){return new tF(new sF(e),{})}var wl=new WeakMap,tF=class ia{[K];resourceType="render-pipeline";[bs];hasIndexBuffer=!1;constructor(t,s){this[K]={core:t,priors:s,root:t.options.root},this[bs]=t}[Je](t){return t.resolve(this[K].core)}toString(){return`renderPipeline:${Ce(this)??"<unnamed>"}`}$name(t){return je(this,t),this}with(t,s){let r=this[K];if(pw(t)||mw(t))return new ia(r.core,{...r.priors,externalRenderEncoder:t,externalEncoder:void 0});if(s1(t))return new ia(r.core,{...r.priors,externalEncoder:t,externalRenderEncoder:void 0});if(xl(t))return new ia(r.core,{...r.priors,bindGroupLayoutMap:new Map([...r.priors.bindGroupLayoutMap??[],[t.layout,t]])});if(Fd(t))return new ia(r.core,{...r.priors,bindGroupLayoutMap:new Map([...r.priors.bindGroupLayoutMap??[],[t,s]])});if(n1(t))return new ia(r.core,{...r.priors,vertexLayoutMap:new Map([...r.priors.vertexLayoutMap??[],[t,s]])});throw new Error("Unsupported value passed into .with()")}withPerformanceCallback(t){let s=this[K];if(s.priors.timestampWrites)return new ia(s.core,{...s.priors,performanceCallback:t});let r=s.core.performanceCallbackQuerySet;if(!r)return console.warn("Performance callback cannot be used because the timestamp-query feature is not enabled on the root."),this;let a=c1(s.priors,t,r);return new ia(s.core,a)}withTimestampWrites(t){let s=this[K],r=d1(s.priors,t,s.core.options.root);return new ia(s.core,r)}withColorAttachment(t){let s=this[K];return new ia(s.core,{...s.priors,colorAttachment:t})}withDepthStencilAttachment(t){let s=this[K];return new ia(s.core,{...s.priors,depthStencilAttachment:t})}withStencilReference(t){let s=this[K];return new ia(s.core,{...s.priors,stencilReference:t})}withIndexBuffer(t,s,r,a){let i=this[K];
225if(cn(t)){if(typeof s!="string")throw new Error("If a GPUBuffer is passed, indexFormat must be provided.");return new ia(i.core,{...i.priors,indexBuffer:{buffer:t,indexFormat:s,offsetBytes:r,sizeBytes:a}})}let l={u32:"uint32",u16:"uint16"},c=t.dataType.elementType;return new ia(i.core,{...i.priors,indexBuffer:{buffer:t,indexFormat:l[c.type],offsetBytes:s!==void 0?s*yt(c):void 0,sizeBytes:a!==void 0?a*yt(c):void 0}})}_createRenderPass(t){let s=this[K],{root:r,descriptor:a}=s.core.options,i=s.core.unwrap(),l=a.fragment?bw(a.fragment?.shell?.returnType??i.fragmentOut,s.priors.colorAttachment??{}).map(u=>{let p={loadOp:"clear",storeOp:"store",...u};return bi(p.view)?p.view=r.unwrap(p.view).createView():wi(p.view)?p.view=r.unwrap(p.view):Tw(p.view)&&(p.view=p.view.getCurrentTexture().createView()),bi(p.resolveTarget)?p.resolveTarget=r.unwrap(p.resolveTarget).createView():wi(p.resolveTarget)?p.resolveTarget=r.unwrap(p.resolveTarget):Tw(p.resolveTarget)&&(p.resolveTarget=p.resolveTarget.getCurrentTexture().createView()),p}):[],c={label:Ce(s.core)??"<unnamed>",colorAttachments:l,...qp(s.priors,r)},d=s.priors.depthStencilAttachment;if(d!==void 0){let u=bi(d.view)?r.unwrap(d.view).createView():wi(d.view)?r.unwrap(d.view):d.view;c.depthStencilAttachment={...d,view:u}}return t.beginRenderPass(c)}_applyRenderState(t){let s=this[K],r=s.core.unwrap(),{root:a}=s.core.options;t.setPipeline(r.pipeline),Vd(t,a,r.usedBindGroupLayouts,r.catchall,i=>s.priors.bindGroupLayoutMap?.get(i)),i1(t,a,r.usedVertexLayouts,i=>{let l=s.priors.vertexLayoutMap?.get(i);return l?{buffer:l}:void 0}),s.priors.stencilReference!==void 0&&"setStencilReference"in t&&t.setStencilReference(s.priors.stencilReference)}_setIndexBuffer(t){let s=this[K],{root:r}=s.core.options;if(!s.priors.indexBuffer)throw new Error("No index buffer set for this render pipeline.");let{buffer:a,indexFormat:i,offsetBytes:l,sizeBytes:c}=s.priors.indexBuffer;cn(a)?t.setIndexBuffer(a,i,l,c):t.setIndexBuffer(r.unwrap(a),i,l,c)}draw(t,s,r,a){let i=this[K],{root:l}=i.core.options;if(i.priors.externalRenderEncoder){wl.get(i.priors.externalRenderEncoder)!==this&&(this._applyRenderState(i.priors.externalRenderEncoder),wl.set(i.priors.externalRenderEncoder,this)),i.priors.externalRenderEncoder.draw(t,s,r,a);return}if(i.priors.externalEncoder){let p=this._createRenderPass(i.priors.externalEncoder);this._applyRenderState(p),p.draw(t,s,r,a),p.end();return}let{logResources:c}=i.core.unwrap(),d=l.device.createCommandEncoder(),u=this._createRenderPass(d);this._applyRenderState(u),u.draw(t,s,r,a),u.end(),l.device.queue.submit([d.finish()]),c&&$c(c),i.priors.performanceCallback&&Uc({root:l,priors:i.priors})}drawIndexed(t,s,r,a,i){let l=this[K],{root:c}=l.core.options;if(l.priors.externalRenderEncoder){wl.get(l.priors.externalRenderEncoder)!==this&&(this._applyRenderState(l.priors.externalRenderEncoder),this._setIndexBuffer(l.priors.externalRenderEncoder),wl.set(l.priors.externalRenderEncoder,this)),l.priors.externalRenderEncoder.drawIndexed(t,s,r,a,i);return}if(l.priors.externalEncoder){let m=this._createRenderPass(l.priors.externalEncoder);this._applyRenderState(m),this._setIndexBuffer(m),m.drawIndexed(t,s,r,a,i),m.end();return}let{logResources:d}=l.core.unwrap(),u=c.device.createCommandEncoder(),p=this._createRenderPass(u);this._applyRenderState(p),this._setIndexBuffer(p),p.drawIndexed(t,s,r,a,i),p.end(),c.device.queue.submit([u.finish()]),d&&$c(d),l.priors.performanceCallback&&Uc({root:c,priors:l.priors})}drawIndirect(t,s){let r=this[K],{root:a}=r.core.options,i=cn(t)?t:t.buffer,l=Xp(t,s,QL,"drawIndirect");if(r.priors.externalRenderEncoder){wl.get(r.priors.externalRenderEncoder)!==this&&(this._applyRenderState(r.priors.externalRenderEncoder),wl.set(r.priors.externalRenderEncoder,this)),r.priors.externalRenderEncoder.drawIndirect(i,l);return}if(r.priors.externalEncoder){let p=this._createRenderPass(r.priors.externalEncoder);this._applyRenderState(p),p.drawIndirect(i,l),p.end();return}let{logResources:c}=r.core.unwrap(),d=a.device.createCommandEncoder(),u=this._createRenderPass(d);this._applyRenderState(u),u.drawIndirect(i,l),u.end(),a.device.queue.submit([d.finish()]),c&&$c(c),r.priors.performanceCallback&&Uc({root:a,priors:r.priors})}drawIndexedIndirect(t,s){let r=this[K],{root:a}
225=r.core.options,i=cn(t)?t:a.unwrap(t),l=Xp(t,s,eF,"drawIndexedIndirect");if(r.priors.externalRenderEncoder){wl.get(r.priors.externalRenderEncoder)!==this&&(this._applyRenderState(r.priors.externalRenderEncoder),this._setIndexBuffer(r.priors.externalRenderEncoder),wl.set(r.priors.externalRenderEncoder,this)),r.priors.externalRenderEncoder.drawIndexedIndirect(i,l);return}if(r.priors.externalEncoder){let p=this._createRenderPass(r.priors.externalEncoder);this._applyRenderState(p),this._setIndexBuffer(p),p.drawIndexedIndirect(i,l),p.end();return}let{logResources:c}=r.core.unwrap(),d=a.device.createCommandEncoder(),u=this._createRenderPass(d);this._applyRenderState(u),this._setIndexBuffer(u),u.drawIndexedIndirect(i,l),u.end(),a.device.queue.submit([d.finish()]),c&&$c(c),r.priors.performanceCallback&&Uc({root:a,priors:r.priors})}},sF=class{[K]=!0;options;_memo;#e;#t;#s;constructor(e){this.options=e}[Je](e){let{slotBindings:t}=this.options,{vertex:s,fragment:r,attribs:a={}}=this.options.descriptor;this.#e=void 0,this.#t=void 0;let i=oF(s?.shell?.out,r?.shell?.in,Ce(s)??"<unnamed>",Ce(r)??"<unnamed>");return e.withVaryingLocations(i,()=>e.withSlots(t,()=>{let l;if(typeof s=="function"){let c=new p1(s,Object.fromEntries(Object.entries(a).map(([d,u])=>[d,Hr[u.format]])),i);e.resolve(c),this.#e=c.autoIn.completeStruct.propTypes,l=c.autoOut.completeStruct}else l=e.resolve(s).dataType;if(r)if(typeof r=="function"){let c=Object.fromEntries(Object.entries(l.propTypes).filter(([,d])=>!tr(d)));this.#t=e.resolve(new u1(r,c,i)).dataType}else e.resolve(r);return Te("",ss,"runtime")}))}toString(){return"renderPipelineCore"}get performanceCallbackQuerySet(){if(this.options.root.enabledFeatures.has("timestamp-query"))return this.#s??=this.options.root.createQuerySet("timestamp",2)}unwrap(){if(this._memo!==void 0)return this._memo;let{root:e,descriptor:t}=this.options,s=e.device,r=Nd.filter(E=>e.enabledFeatures.has(l1[E])),a,i,l=_n({names:e.nameRegistrySetting});if(ji?.enabled){let E=performance.mark("typegpu:resolution:start");a=Ai(this,{namespace:l,enableExtensions:r,shaderGenerator:e.shaderGenerator,root:e}),i=performance.measure("typegpu:resolution",{start:E.name})}else a=Ai(this,{namespace:l,enableExtensions:r,shaderGenerator:e.shaderGenerator,root:e});let{code:c,usedBindGroupLayouts:d,catchall:u,logResources:p}=a;u!==void 0&&d[u[0]]?.$name(`${Ce(this)??"<unnamed>"} - Automatic Bind Group & Layout`);let m=s.createShaderModule({label:`${Ce(this)??"<unnamed>"} - Shader`,code:c}),{vertex:_,fragment:v,attribs:h={},targets:y}=this.options.descriptor,x=R6(_?.shell?.in??this.#e??{},h),g=v?.shell?.returnType??this.#t,w=g?ww(g,y):[null],f={layout:s.createPipelineLayout({label:`${Ce(this)??"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:d.map(E=>e.unwrap(E))}),vertex:{module:m,buffers:x.bufferDefinitions}},A=Ce(this);return A!==void 0&&(f.label=A),t.fragment&&(f.fragment={module:m,targets:w}),t.primitive&&(fr(t.primitive.stripIndexFormat)?f.primitive={...t.primitive,stripIndexFormat:{u32:"uint32",u16:"uint16"}[t.primitive.stripIndexFormat.type]}:f.primitive=t.primitive),t.depthStencil&&(f.depthStencil=t.depthStencil),t.multisample&&(f.multisample=t.multisample),this._memo={pipeline:s.createRenderPipeline(f),usedBindGroupLayouts:d,catchall:u,logResources:p,usedVertexLayouts:x.usedVertexLayouts,fragmentOut:this.#t},ji?.enabled&&(async()=>{let E=performance.mark("typegpu:compile-start");await s.queue.onSubmittedWorkDone();let P=performance.measure("typegpu:compiled",{start:E.name});ji?.record("resolution",{resolveDuration:i?.duration,compileDuration:P.duration,wgslSize:c.length})})(),this._memo}};function oF(e={},t={},s,r){let a={},i=new Set;function l(d,u){a[d]=u,i.add(u)}for(let[d,u]of Object.entries(e)){let p=Oa(u);p!==void 0&&l(d,p)}for(let[d,u]of Object.entries(t)){let p=Oa(u);p!==void 0&&(a[d]===void 0?l(d,p):a[d]!==p&&console.warn(`Mismatched location between vertexFn (${s}) output (${a[d]}) and fragmentFn (${r}) input (${p}) for the key "${d}", using the location set on vertex output.`))}let c=0;for(let d of Object.keys(e??{}))if(!(tr(e[d])||a[d]!==void 0)){for(;i.has(c);)c++;l(d,c)}return a}function Tw(e){return typeof e?.getCurrentTexture=="function"}function rF(e){if(e.includes(0))throw new Error("Size and workgroupSize cannot contain zeroe
225s.");return Bt(e[0]??1,e[1]??1,e[2]??1)}var aF=[Bt(1,1,1),Bt(256,1,1),Bt(16,16,1),Bt(8,8,4)],nF=class _1{#e;#t;#s;#o;#r;constructor(t,s,r,a){this.#e=t,this.#t=s,this.#s=r,this.#o=a,this.#r=Bt()}with(t){return new _1(this.#e,this.#t.with(t),this.#s,this.#o)}withPerformanceCallback(t){return new _1(this.#e,this.#t.withPerformanceCallback(t),this.#s,this.#o)}withTimestampWrites(t){return new _1(this.#e,this.#t.withTimestampWrites(t),this.#s,this.#o)}dispatchThreads(...t){let s=rF(t),r=Ec(W(s).div(W(this.#o)));Fp(s,this.#r)||(this.#r=s,this.#s.write(s)),this.#t.dispatchWorkgroups(r.x,r.y,r.z)}get pipeline(){return this.#t}get sizeUniform(){return this.#s}[K]=!0;get[bs](){return this.#t}$name(t){return je(this,t),this}},iF=class C0{#e;#t;constructor(t,s){this.#e=t,this.#t=s}with(t,s){return new C0(this.#e,[...this.#t,[$n(t)||Un(t)?t.slot:t,s]])}withCompute(t){return new lF(this.#e(),this.#t,t)}createComputePipeline(t){return M0(this.#e(),this.#t,t)}createRenderPipeline(t){return m1({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=aF[t.length],a=Ss([ie,ie,ie])(t);Ce(a)===void 0&&a.$name("wrappedCallback");let i=s.createUniform(Bt),l=Id({workgroupSize:r,in:{id:zo.globalInvocationId}})`{
226  if (any(in.id >= sizeUniform)) {
227    return;
228  }
229  wrappedCallback(in.id.x, in.id.y, in.id.z);
230}`.$uses({sizeUniform:i,wrappedCallback:a});return new nF(s,this.createComputePipeline({compute:l}),i,r)}withVertex(t,s){return new cF(this.#e(),this.#t,{vertex:t,attribs:s})}pipe(t){let s=t(new e1([]));return new C0(this.#e,[...this.#t,...s.bindings])}},lF=class{#e;#t;#s;constructor(e,t,s){this.#e=e,this.#t=t,this.#s=s}createPipeline(){return M0(this.#e,this.#t,{compute:this.#s})}},cF=class f1{#e;#t;#s;constructor(t,s,r){this.#e=t,this.#t=s,this.#s=r}withFragment(t,s,r){return Vs(typeof t!="string","Just type mismatch validation"),Vs(s===void 0||typeof s!="string","Just type mismatch validation"),new dF(this.#e,this.#t,{...this.#s,fragment:t,targets:s})}withPrimitive(t){return new f1(this.#e,this.#t,{...this.#s,primitive:t})}withDepthStencil(t){return new f1(this.#e,this.#t,{...this.#s,depthStencil:t})}withMultisample(t){return new f1(this.#e,this.#t,{...this.#s,multisample:t})}createPipeline(){return m1({root:this.#e,slotBindings:this.#t,descriptor:this.#s})}},dF=class v1{#e;#t;#s;constructor(t,s,r){this.#e=t,this.#t=s,this.#s=r}withPrimitive(t){return new v1(this.#e,this.#t,{...this.#s,primitive:t})}withDepthStencil(t){return new v1(this.#e,this.#t,{...this.#s,depthStencil:t})}withMultisample(t){return new v1(this.#e,this.#t,{...this.#s,multisample:t})}createPipeline(){return m1({root:this.#e,slotBindings:this.#t,descriptor:this.#s})}},Sw=class extends iF{"~unstable";device;nameRegistrySetting;shaderGenerator;#e=new w0(e=>e.unwrap(this));#t=new w0(e=>e.unwrap(this));#s;[K];constructor(e,t,s,r,a){super(()=>this,[]),this.device=e,this.nameRegistrySetting=t,this.#s=s,this.shaderGenerator=a,this["~unstable"]=this,this[K]={logOptions:r}}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)}createBuffer(e,t){return yp(this,e,t)}createUniform(e,t){return new Zf("uniform",yp(this,e,t).$usage("uniform"))}createMutable(e,t){return new Zf("mutable",yp(this,e,t).$usage("storage"))}createReadonly(e,t){return new Zf("readonly",yp(this,e,t).$usage("storage"))}createQuerySet(e,t,s){return hw(this,e,t,s)}createBindGroup(e,t){return new Qf(e,t)}destroy(){y6(this.device),this.#s&&this.device.destroy()}createTexture(e){return w6(e,this)}createSampler(e){return u6(e,this)}createComparisonSampler(e){return p6(e,this)}unwrap(e){if(y0(e))return e[K].rawPipeline;if(g0(e))return e[K].core.unwrap().pipeline;if(Fd(e))return this.#e.getOrMake(e);if(xl(e))return this.#t.getOrMake(e);if(hl(e))return e.buffer;if(bi(e))return e[K].unwrap();if(wi(e)){if(!e[K].unwrap)throw new Error("Cannot unwrap laid-out texture view as it has no underlying resource.");return e[K].unwrap()}if(n1(e))return e.vertexLayout;if(Gf(e)||Wf(e)){if(e[K].unwrap)return e[K].unwrap();throw new Error("Cannot unwrap laid-out sampler.")}if(Np(e))return e.querySet;throw new Error(`Unknown resource type: ${e}`)}createDrawablePassProxy(e){let t=new Map,s=new Map,r,a=!0,i=()=>
230{if(!r)throw new Error("Cannot draw without a call to pass.setPipeline");if(!a)return;a=!1;let{core:l,priors:c}=r[K],d=l.unwrap();e.setPipeline(d.pipeline),Vd(e,this,d.usedBindGroupLayouts,d.catchall,u=>c.bindGroupLayoutMap?.get(u)??t.get(u)),i1(e,this,d.usedVertexLayouts,u=>{let p=c.vertexLayoutMap?.get(u);return p?{buffer:p,offset:void 0,size:void 0}:s.get(u)})};return{setPipeline(l){r=l,a=!0},setIndexBuffer:(l,c,d,u)=>{hl(l)?e.setIndexBuffer(this.unwrap(l),c,d,u):e.setIndexBuffer(l,c,d,u)},setVertexBuffer(l,c,d,u){s.set(l,{buffer:c,offset:d,size:u}),a=!0},setBindGroup(l,c){t.set(l,c),a=!0},draw(l,c,d,u){i(),e.draw(l,c,d,u)},drawIndexed(...l){i(),e.drawIndexed(...l)},drawIndirect(...l){i(),e.drawIndirect(...l)},drawIndexedIndirect(...l){i(),e.drawIndexedIndirect(...l)}}}beginRenderPass(e,t){let s=this.device.createCommandEncoder(),r=s.beginRenderPass(e);t({setViewport(...a){r.setViewport(...a)},setScissorRect(...a){r.setScissorRect(...a)},setBlendConstant(...a){r.setBlendConstant(...a)},setStencilReference(...a){r.setStencilReference(...a)},beginOcclusionQuery(...a){r.beginOcclusionQuery(...a)},endOcclusionQuery(...a){r.endOcclusionQuery(...a)},executeBundles(...a){r.executeBundles(...a)},...this.createDrawablePassProxy(r)}),r.end(),this.device.queue.submit([s.finish()])}beginRenderBundleEncoder(e,t){let s=this.device.createRenderBundleEncoder(e);return t(this.createDrawablePassProxy(s)),s.finish()}flush(){console.warn("flush() has been deprecated, and has no effect.")}};async function Aw(e){let{adapter:t,device:s,unstable_names:r="strict",unstable_logOptions:a}=e??{};if(!navigator.gpu)throw new Error("WebGPU is not supported by this browser.");let i=await navigator.gpu.requestAdapter(t);if(!i)throw new Error("Could not find a compatible GPU");let l=[];for(let c of s?.requiredFeatures??[]){if(!i.features.has(c))throw new Error(`Requested feature "${c}" is not supported by the adapter.`);l.push(c)}for(let c of s?.optionalFeatures??[])i.features.has(c)?l.push(c):console.warn(`Optional feature "${c}" is not supported by the adapter.`);return new Sw(await i.requestDevice({...s,requiredFeatures:l}),r,!0,a??{},e?.shaderGenerator)}function Ew(e){let{device:t,unstable_names:s="strict",unstable_logOptions:r}=e??{};return new Sw(t,s,!1,r??{},e?.shaderGenerator)}function h1(e){if(Gr())throw new Error("Cannot create tgpu.lazy objects during shader resolution.");return new Mw(e,void 0)}var Mw=class Cw{[K];[Ho];constructor(t,s){this[K]={compute:t},this[Ho]=s}get[Yt](){let t=Gr();if(!t)throw new Error("Cannot access tgpu.lazy's value outside of resolution.");return $d(t.unwrap(this))}get value(){return this[Yt]}get $(){return this[Yt]}toString(){return"lazy"}with(t,s){return new Cw(this[K].compute.bind(this),{inner:this[Ho]?.inner??this,pairs:[...this[Ho]?.pairs??[],[$n(t)||Un(t)?t.slot:t,s]]})}};Mw.prototype.resourceType="lazy";function y1(e,t){return new uF(e,t)}function g1(e,t){return new pF(e,t)}var Pw=class{[K]=!0;[bs];slot;schema;defaultValue;constructor(e,t=void 0){this.schema=ba(e)?e:e(0),this.defaultValue=t,this.slot=Gn(t),this[bs]=this.slot}get[Yt](){return new Proxy({[K]:!0,[ro]:this.#e(),[Je]:e=>e.resolve(this),toString:()=>`${this.resourceType}:${Ce(this)??"<unnamed>"}.$`},Yo)}#e(){let e=Gr(),t=$d(e.unwrap(this.slot));for(;typeof t=="function"&&!vp(t)&&!Rn(t);)t=t(),li(t)&&(t=t.value);let s=nc(t);if(s)return s;if(vp(t)||Rn(t))return e.withResetIndentLevel(()=>Te(`${e.resolve(t).value}()`,this.schema,"runtime"));e.pushMode(new Na);try{return Te(hr(this.schema,t),this.schema,"constant",!1)}finally{e.popMode("normal")}}$name(e){return je(this,e),this.defaultValue&&typeof this.defaultValue=="function"&&!Ce(this.defaultValue)&&je(this.defaultValue,e),this}toString(){return`${this.resourceType}:${Ce(this)??"<unnamed>"}`}get value(){return this.$}[Je](e){let t=this.#e();return Te(e.resolve(t.value,t.dataType).value,t.dataType,t.origin)}},uF=class extends Pw{resourceType="accessor";constructor(e,t=void 0){super(e,t)}get $(){if(er())return this[Yt];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.")}},pF=class extends Pw{resourceType="mutable-accessor";constructor(e,t=void 0){super(e,t)}
vendor: 5,716 bytes, line 230
230get $(){if(er())return this[Yt];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.")}};function kw(e){return new mF(e)}var mF=class{[K]=!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}[Je](e){let t=gi(e,this.#e??{},this.#t);return e.addDeclaration(t),Te("",ss,"constant")}toString(){return`declare: ${this.#t}`}};function Rw(e,t,s="runtime"){return new _F(e,t,s)}var _F=class{[K];dataType;origin;#e;#t;constructor(e,t,s){this[K]=!0,this.dataType=t,this.origin=s,this.#e=e}$uses(e){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=e,this}[Je](e){return Te(gi(e,this.#t??{},this.#e),this.dataType,this.origin)}toString(){return`raw(${String(this.dataType)}): "${this.#e}"`}get[Yt](){let e=this.dataType,t=this.origin;return new Proxy({[K]:!0,get[ro](){return Te(this,e,t)},[Je]:s=>s.resolve(this),toString:()=>`raw(${String(this.dataType)}): "${this.#e}".$`},Yo)}get $(){if(!er())throw new Error("Raw code snippets can only be used on the GPU.");return this[Yt]}get value(){return this.$}};function $w(e){let t=Gr()??new h0({namespace:_n(),shaderGenerator:jf}),s=[1,1,1],r=[1,1,1],a=[s[0]*r[0],s[1]*r[1],s[2]*r[2]],i=new Map,l=Array.from({length:s[0]},()=>Array.from({length:s[1]},()=>Array.from({length:s[2]},()=>new Map))),c=Array.from({length:a[0]},()=>Array.from({length:a[1]},()=>Array.from({length:a[2]},()=>new Map))),d=Array.from({length:a[0]},(u,p)=>Array.from({length:a[1]},(m,_)=>Array.from({length:a[2]},(v,h)=>{let y=Math.floor(p/r[0]),x=Math.floor(_/r[1]),g=Math.floor(h/r[2]);return new P7(i,{private:c[p][_][h],workgroup:l[y][x][g]})})));t.pushMode(d[0][0][0]);try{return{value:W_(t,e),buffers:i,privateVars:c,workgroupVars:l}}finally{t.popMode("simulate")}}var Uw=Cn({accessor:()=>bF,comptime:()=>vF,computeFn:()=>hF,const:()=>fF,declare:()=>kw,derived:()=>TF,fn:()=>yF,fragmentFn:()=>gF,mutableAccessor:()=>wF,namespace:()=>_n,privateVar:()=>AF,rawCodeSnippet:()=>Rw,simulate:()=>$w,slot:()=>SF,vertexFn:()=>xF,vertexLayout:()=>MF,workgroupVar:()=>EF}),fF=Ud,vF=Do,hF=Id,yF=Ss,gF=Kf,xF=Ld,bF=y1,wF=g1,TF=h1,SF=Gn,AF=Ac,EF=Xf,MF=a1;var Dw=Cn({accessor:()=>y1,bindGroupLayout:()=>Jf,comptime:()=>Do,computeFn:()=>Id,const:()=>Ud,fn:()=>Ss,fragmentFn:()=>Kf,init:()=>Aw,initFromDevice:()=>Ew,lazy:()=>h1,mutableAccessor:()=>g1,privateVar:()=>Ac,resolve:()=>fw,resolveWithContext:()=>o1,slot:()=>Gn,unroll:()=>qf,vertexFn:()=>Ld,vertexLayout:()=>a1,workgroupVar:()=>Xf,"~unstable":()=>Uw});var n={};zh(n,{abs:()=>at,acos:()=>xp,acosh:()=>bp,add:()=>Ta,all:()=>p0,allEq:()=>Fp,and:()=>d0,any:()=>m0,arrayLength:()=>zp,asin:()=>wp,asinh:()=>Tp,atan:()=>Sp,atan2:()=>Ea,atanh:()=>Ap,atomicAdd:()=>Y0,atomicAnd:()=>q0,atomicLoad:()=>O0,atomicMax:()=>W0,atomicMin:()=>X0,atomicOr:()=>H0,atomicStore:()=>N0,atomicSub:()=>G0,atomicXor:()=>j0,bitShiftLeft:()=>np,bitShiftRight:()=>ip,bitcastU32toF32:()=>Yp,bitcastU32toI32:()=>Gp,ceil:()=>Ec,clamp:()=>xt,copy:()=>k0,cos:()=>po,cosh:()=>Ep,countLeadingZeros:()=>Mp,countOneBits:()=>Ag,countTrailingZeros:()=>Eg,cross:()=>Mg,degrees:()=>Cg,determinant:()=>Pg,discard:()=>R0,distance:()=>kg,div:()=>cl,dot:()=>no,dot4I8Packed:()=>$g,dot4U8Packed:()=>Rg,dpdx:()=>Z0,dpdxCoarse:()=>K0,dpdxFine:()=>J0,dpdy:()=>Q0,dpdyCoarse:()=>e3,dpdyFine:()=>t3,eq:()=>o0,exp:()=>Mc,exp2:()=>Ug,extensionEnabled:()=>D3,extractBits:()=>Dg,faceForward:()=>zg,firstLeadingBit:()=>Ig,firstTrailingBit:()=>Lg,floor:()=>Lt,fma:()=>Fg,fract:()=>Ur,frexp:()=>Bg,fwidth:()=>Yd,fwidthCoarse:()=>s3,fwidthFine:()=>o3,ge:()=>Vp,getTargetShaderLanguage:()=>L3,gt:()=>n0,identity2:()=>_f,identity3:()=>ff,identity4:()=>vf,insertBits:()=>Vg,inverseSqrt:()=>Og,isBeingTranspiled:()=>I3,isCloseTo:()=>_0,ldexp:()=>Ng,le:()=>zd,length:()=>It,log:()=>Cp,log2:()=>Cc,lt:()=>a0,max:()=>$e,min:()=>Ct,mix:()=>Ft,mod:()=>Vn,modf:()=>Yg,mul:()=>Po,ne:()=>r0,neg:()=>Md,normalize:()=>Dd,not:()=>i0,or:()=>c0,pack2x16float:()=>T0,pack4x8unorm:()=>A0,pow:()=>io,quantizeToF16:()=>Gg,radians:()=>Wg,range:()=>t0,reflect:()=>Xg,refract:()=>qg,reverseBits:()=>Hg,rotateX4:()=>z0,rotateY4:()=>I0,rotateZ4:()=>L0,rotationX4:()=>ol,rotationY4:()=>rl,rotationZ4:()=>al,round:()=>Yn,saturate:()=>jg,scale4:()=>U0,scaling4:()=>sl,select:()=>bt,sign:()=>Kr,sin:()=>vs,sinh:()=>Pp,smoothstep:()=>Ja,sqrt:()=>qt,std_exports:()=>XF,step:()=>gl,storageBarrier:()=>B0,sub:()=>Ts,subgroupAdd:()=>m3,subgroupAll:()=>v3,subgroupAnd:()=>h3,subgroupAny:()=>y3,subgroupBallot:()=>g3,subgroupBroadcast:()=>x3,subgroupBroadcastFirst:()=>b3,subgroupElect:()=>w3,subgroupExclusiveAdd:()=>_3,subgroupExclusiveMul:()=>E3,subgroupInclusiveAdd:()=>f3,subgroupInclusiveMul:()=>M3,subgroupMax:()=>T3,subgroupMin:()=>S3,subgroupMul:()=>A3,subgroupOr:()=>C3,subgroupShuffle:()=>P3,subgroupShuffleDown:()=>k3,subgroupShuffleUp:()=>R3,subgroupShuffleXor:()=>$3,subgroupXor:()=>U3,tan:()=>kp,tanh:()=>Rp,textureBarrier:()=>V0,textureDimensions:()=>i3,textureGather:()=>l3,textureLoad:()=>_s,textureSample:()=>r3,textureSampleBaseClampToEdge:()=>p3,textureSampleBias:()=>a3,textureSampleCompare:()=>c3,textureSampleCompareLevel:()=>d3,textureSampleGrad:()=>u3,textureSampleLevel:()=>n3,textureStore:()=>fn,translate4:()=>$0,translation4:()=>tl,transpose:()=>Zg,trunc:()=>$p,unpack2x16float:()=>Wp,unpack4x8unorm:()=>S0,workgroupBarrier:()=>F0});function P0(e){return Rs(e)||Or(e)?dd(e)(e):Array.isArray(e)?e.map(P0):typeof e=="object"&&e!==null?Ob
230ject.fromEntries(Object.entries(e).map(([t,s])=>[t,P0(s)])):e}var k0=ve({name:"copy",signature:e=>({argTypes:[e],returnType:e}),normalImpl:P0,codegenImpl(e,[t]){return se`${t}`}});var R0=ve({name:"discard",normalImpl:"`discard` relies on GPU resources and cannot be executed outside of a draw call",signature:{argTypes:[],returnType:ss},codegenImpl:()=>"discard;"});var CF=tl[ms].call.bind(tl),PF=sl[ms].call.bind(sl),kF=ol[ms].call.bind(ol),RF=rl[ms].call.bind(rl),$F=al[ms].call.bind(al),$0=ve({name:"translate4",normalImpl:(e,t)=>Po(tl(t),e),signature:{argTypes:[Ms,W],returnType:Ms},codegenImpl:(e,[t,s])=>se`(${CF(e,[s])} * ${t})`}),U0=ve({name:"scale4",normalImpl:(e,t)=>Po(sl(t),e),signature:{argTypes:[Ms,W],returnType:Ms},codegenImpl:(e,[t,s])=>se`(${PF(e,[s])} * ${t})`}),D0={argTypes:[Ms,S],returnType:Ms},z0=ve({name:"rotateX4",normalImpl:(e,t)=>Po(ol(t),e),signature:D0,codegenImpl:(e,[t,s])=>se`(${kF(e,[s])} * ${t})`}),I0=ve({name:"rotateY4",normalImpl:(e,t)=>Po(rl(t),e),signature:D0,codegenImpl:(e,[t,s])=>se`(${RF(e,[s])} * ${t})`}),L0=ve({name:"rotateZ4",normalImpl:(e,t)=>Po(al(t),e),signature:D0,codegenImpl:(e,[t,s])=>se`(${$F(e,[s])} * ${t})`});var F0=ve({name:"workgroupBarrier",normalImpl:"workgroupBarrier is a no-op outside of CODEGEN mode.",signature:{argTypes:[],returnType:ss},codegenImpl:()=>"workgroupBarrier()"}),B0=ve({name:"storageBarrier",normalImpl:"storageBarrier is a no-op outside of CODEGEN mode.",signature:{argTypes:[],returnType:ss},codegenImpl:()=>"storageBarrier()"}),V0=ve({name:"textureBarrier",normalImpl:"textureBarrier is a no-op outside of CODEGEN mode.",signature:{argTypes:[],returnType:ss},codegenImpl:()=>"textureBarrier()"}),Ei="Atomic operations are not supported outside of CODEGEN mode.",O0=ve({name:"atomicLoad",normalImpl:Ei,signature:e=>{if(!Yr(e))throw new Error(`Invalid atomic type: ${Qo(e)}`);return{argTypes:[e],returnType:e.inner}},codegenImpl:(e,[t])=>se`atomicLoad(&${t})`}),UF=e=>{if(!Yr(e))throw new Error(`Invalid atomic type: ${Qo(e)}`);return{argTypes:[e,e.inner.type==="u32"?ie:fe],returnType:ss}},Dc=e=>{if(!Yr(e))throw new Error(`Invalid atomic type: ${Qo(e)}`);let t=e.inner.type==="u32"?ie:fe;return{argTypes:[e,t],returnType:t}},N0=ve({name:"atomicStore",normalImpl:Ei,signature:UF,codegenImpl:(e,[t,s])=>se`atomicStore(&${t}, ${s})`}),Y0=ve({name:"atomicAdd",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicAdd(&${t}, ${s})`}),G0=ve({name:"atomicSub",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicSub(&${t}, ${s})`}),W0=ve({name:"atomicMax",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicMax(&${t}, ${s})`}),X0=ve({name:"atomicMin",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicMin(&${t}, ${s})`}),q0=ve({name:"atomicAnd",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicAnd(&${t}, ${s})`}),H0=ve({name:"atomicOr",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicOr(&${t}, ${s})`}),j0=ve({name:"atomicXor",normalImpl:Ei,signature:Dc,codegenImpl:(e,[t,s])=>se`atomicXor(&${t}, ${s})`});var Mi="Derivative builtins are not allowed on the CPU",Z0=ve({name:"dpdx",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`dpdx(${t})`}),K0=ve({name:"dpdxCoarse",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`dpdxCoarse(${t})`}),J0=ve({name:"dpdxFine",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`dpdxFine(${t})`}),Q0=ve({name:"dpdy",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`dpdy(${t})`}),e3=ve({name:"dpdyCoarse",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`dpdyCoarse(${t})`}),t3=ve({name:"dpdyFine",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`dpdyFine(${t})`}),Yd=ve({name:"fwidth",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`fwidth(${t})`}),s3=ve({name:"fwidthCoarse",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`fwidthCoarse(${t})`}),o3=ve({name:"fwidthFine",normalImpl:Mi,signature:e=>({argTypes:[e],returnType:e}),codegenImpl:(e,[t])=>se`fwidthFine(${t})`});function DF(e,t,s,r,a){throw new Ao("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var r3=ve({name:"textureSample",normalImpl:DF,codegenImpl:(e,t)=>se`textureSample(${t})`,signature:(...e)=>({argTypes:e,returnType:e[0].type.startsWith("texture_depth")?S:ee})});function zF(e,t,s,r,a,i){throw new Ao("Texture sampling with bias relies on GPU resources and cannot be executed outside of a draw call")}var a3=ve({name:"textureSampleBias",normalImpl:zF,codegenImpl:(e,t)=>se`textureSampleBias(${t})`,signature:(...e)=>({argTypes:e,returnType:ee})});function IF(e,t,s,r,a,i){throw new Ao("Texture sampling relies on GPU resources and cannot be executed outside of a draw call")}var n3=ve({name:"textureSampleLevel",normalImpl:IF,codegenImpl:(e,t)=>se`textureSampleLevel(${t})`,signature:(...e)=>({argTypes:e,returnType:e[0].type.startsWith("texture_depth")?S:ee})});function LF(e,t,s){throw new Ao("`textureLoad` relies on GPU resources and cannot be executed outside of a draw call")}var _s=ve({name:"textureLoad",normalImpl:LF,codegenImpl:(e,t)=>se`textureLoad(${t})`,signature:(...e)=>{let t=e[0];if($f(t)){let r=t.type.startsWith("texture_depth"),a=t.sampleType;return{argTypes:e,returnType:r?S:a.type==="f32"?ee:a.type==="u32"?ts:ls}}if(E5(t))return{argTypes:e,returnType:ee};let s=t.format;return{argTypes:e,returnType:yl(s).vectorType}}});function FF(e,t,s,r){throw new Ao("`textureStore` relies on GPU resources and cannot be executed outside of a draw call")}var fn=ve({name:"textureStore",normalImpl:FF,codegenImpl:(e,t)=>se`textureStore(${t})`,signature:(...e)=>({argTypes:e,returnType:ss})});function BF(e,t){throw new Ao("`textureDimensions` relies on GPU resources and cannot be executed outside of a draw call")}var i3=ve({name:"textureDimensions",normalImpl:BF,codegenImpl:(e,t)=>se`textureDimensions(${t})`,signature:(...e)=>{let t=e[0].dimension;return t==="1d"?{argTypes:e,returnType:ie}:t==="3d"?{argTypes:e,returnType:Bt}:{argTypes:e,returnType:Qe}}}),VF=(...e)=>{throw new Error("Texture gather relies on GPU resources and cannot be executed outside of a draw call")},OF={f32:ee,i32:ls,u32:ts},l3=ve({name:"textureGather",normalImpl:VF,codegenImpl:(e,t)=>se`textureGather(${t})`,signature:(...e)=>{if(e[0].type.startsWith("texture")){let[l,c,d,u,...p]=e;return{argTypes:l.type==="texture_depth_2d_array"||l.type==="texture_depth_cube_array"?[l,c,d,[ie,fe],...p]:e,returnType:ee}}let[t,s,r,a,...i]=e;return{argTypes:s.type==="texture_2d_array"||s.type==="texture_cube_array"?[[ie,fe],s,r,a,[ie,fe],...i]:[[ie,fe],s,r,a,...i],returnType:OF[s.sampleType.type]}}});function NF(e,t,s,r,a,i){throw new Ao("Texture comparison sampling relies on GPU resources and cannot be executed outside of a draw call")}var c3=ve({name:"textureSampleCompare",normalImpl:NF,codegenImpl:(e,t)=>se`textureSampleCompare(${t})`,signature:(...e)=>({argTypes:e,returnType:S})});function YF(e,t,s,r,a,i){throw new Ao("Texture comparison sampling with level relies on GPU resources and cannot be executed outside of a draw call")}var d3=ve({name:"textureSampleCompareLevel",normalImpl:YF,codegenImpl:(e,t)=>se`textureSampleCompareLevel(${t})`,signature:(...e)=>({argTypes:e,returnType:S})});function GF(e,t,s){throw new Ao("Texture sampling with base clamp to edge is not supported outside of GPU mode.")}function WF(e,t,s,r,a,i,l){throw new Ao("Texture sampling with gradients relies on GPU resources and cannot be executed outside of a draw call")}var u3=ve({name:"textureSampleGrad",normalImpl:WF,codegenImpl:(e,t)=>se`textureSampleGrad(${t})`,signature:(...e)=>({argTypes:e,returnType:ee})}),p3=ve({name:"textureSampleBaseClampToEdge",normalImpl:GF,codegenImpl:(e,t)=>se`textureSampleBaseClampToEdge(${t})`,signature:(...e)=>({argTypes:e,returnType:ee})});var Go="Subgroup operations can only be used in the GPU context.",m3=ve({name:"subgroupAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupAdd(${t})`}),_3=ve({name:"subgroupExclusiveAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupExclusiveAdd(${t})`}),f3=ve({name:"subgroupInclusiveAdd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupInclusiveAdd(${t})`}),v3=ve({name:"subgroupAll",signature:{argTypes:[Et],returnType:Et},normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupAll(${t})`}),h3=ve({name:"subgroupAnd",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupAnd(${t})`}),y3=ve({name:"subgroupAny",signature:{argTypes:[Et],returnType:Et},normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupAny(${t})`}),g3=ve({name:"subgroupBallot",signature:{argTypes:[Et],returnType:ts},normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupBallot(${t})`}),x3=ve({name:"subgroupBroadcast",signature:(...e)=>{let t=Ws([e[1]],[fe,ie]);if(!t)throw new Error(`subgroupBroadcast's second argument has to be compatible with i32 or u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:Go,codegenImpl:(e,[t,s])=>se`subgroupBroadcast(${t}, ${s})`}),b3=ve({name:"subgroupBroadcastFirst",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupBroadcastFirst(${t})`}),w3=ve({name:"subgroupElect",signature:{argTypes:[],returnType:Et},normalImpl:Go,codegenImpl:()=>se`subgroupElect()`}),T3=ve({name:"subgroupMax",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupMax(${t})`}),S3=ve({name:"subgroupMin",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupMin(${t})`}),A3=ve({name:"subgroupMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupMul(${t})`}),E3=ve({name:"subgroupExclusiveMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupExclusiveMul(${t})`}),M3=ve({name:"subgroupInclusiveMul",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupInclusiveMul(${t})`}),C3=ve({name:"subgroupOr",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupOr(${t})`}),P3=ve({name:"subgroupShuffle",signature:(...e)=>{let t=Ws([e[1]],[fe,ie]);if(!t)throw new Error(`subgroupShuffle's second argument has to be compatible with i32 or u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:Go,codegenImpl:(e,[t,s])=>se`subgroupShuffle(${t}, ${s})`}),k3=ve({name:"subgroupShuffleDown",signature:(...e)=>{let t=Ws([e[1]],[ie]);if(!t)throw new Error(`subgroupShuffleDown's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:Go,codegenImpl:(e,[t,s])=>se`subgroupShuffleDown(${t}, ${s})`}),R3=ve({name:"subgroupShuffleUp",signature:(...e)=>{let t=Ws([e[1]],[ie]);if(!t)throw new Error(`subgroupShuffleUp's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:Go,codegenImpl:(e,[t,s])=>se`subgroupShuffleUp(${t}, ${s})`}),$3=ve({name:"subgroupShuffleXor",signature:(...e)=>{let t=Ws([e[1]],[ie]);if(!t)throw new Error(`subgroupShuffleXor's second argument has to be compatible with u32. Got: ${e[1].type}`);return{argTypes:[e[0],t[0]],returnType:e[0]}},normalImpl:Go,codegenImpl:(e,[t,s])=>se`subgroupShuffleXor(${t}, ${s})`}),U3=ve({name:"subgroupXor",signature:e=>({argTypes:[e],returnType:e}),normalImpl:Go,codegenImpl:(e,[t])=>se`subgroupXor(${t})`});
230var D3=Do(e=>{let t=Gr();if(!t)throw new Error("Functions using `extensionEnabled` cannot be called directly. Either generate WGSL from them, or use tgpu['~unstable'].simulate(...)");if(typeof e!="string"||!Nd.includes(e))throw new Error(`extensionEnabled has to be called with a string literal representing a valid WGSL extension name. Got: '${e}'`);return(t.enableExtensions??[]).includes(e)});var z3=(()=>!1);z3.toString=()=>"isBeingTranspiled";z3[ms]={call(e,t){return Xr(!0)}};var I3=z3,L3=Do((()=>{if(Gr())return Ji().type!=="simulate"?"wgsl":void 0}));var XF=Cn({abs:()=>at,acos:()=>xp,acosh:()=>bp,add:()=>Ta,all:()=>p0,allEq:()=>Fp,and:()=>d0,any:()=>m0,arrayLength:()=>zp,asin:()=>wp,asinh:()=>Tp,atan:()=>Sp,atan2:()=>Ea,atanh:()=>Ap,atomicAdd:()=>Y0,atomicAnd:()=>q0,atomicLoad:()=>O0,atomicMax:()=>W0,atomicMin:()=>X0,atomicOr:()=>H0,atomicStore:()=>N0,atomicSub:()=>G0,atomicXor:()=>j0,bitShiftLeft:()=>np,bitShiftRight:()=>ip,bitcastU32toF32:()=>Yp,bitcastU32toI32:()=>Gp,ceil:()=>Ec,clamp:()=>xt,copy:()=>k0,cos:()=>po,cosh:()=>Ep,countLeadingZeros:()=>Mp,countOneBits:()=>Ag,countTrailingZeros:()=>Eg,cross:()=>Mg,degrees:()=>Cg,determinant:()=>Pg,discard:()=>R0,distance:()=>kg,div:()=>cl,dot:()=>no,dot4I8Packed:()=>$g,dot4U8Packed:()=>Rg,dpdx:()=>Z0,dpdxCoarse:()=>K0,dpdxFine:()=>J0,dpdy:()=>Q0,dpdyCoarse:()=>e3,dpdyFine:()=>t3,eq:()=>o0,exp:()=>Mc,exp2:()=>Ug,extensionEnabled:()=>D3,extractBits:()=>Dg,faceForward:()=>zg,firstLeadingBit:()=>Ig,firstTrailingBit:()=>Lg,floor:()=>Lt,fma:()=>Fg,fract:()=>Ur,frexp:()=>Bg,fwidth:()=>Yd,fwidthCoarse:()=>s3,fwidthFine:()=>o3,ge:()=>Vp,getTargetShaderLanguage:()=>L3,gt:()=>n0,identity2:()=>_f,identity3:()=>ff,identity4:()=>vf,insertBits:()=>Vg,inverseSqrt:()=>Og,isBeingTranspiled:()=>I3,isCloseTo:()=>_0,ldexp:()=>Ng,le:()=>zd,length:()=>It,log:()=>Cp,log2:()=>Cc,lt:()=>a0,max:()=>$e,min:()=>Ct,mix:()=>Ft,mod:()=>Vn,modf:()=>Yg,mul:()=>Po,ne:()=>r0,neg:()=>Md,normalize:()=>Dd,not:()=>i0,or:()=>c0,pack2x16float:()=>T0,pack4x8unorm:()=>A0,pow:()=>io,quantizeToF16:()=>Gg,radians:()=>Wg,range:()=>t0,reflect:()=>Xg,refract:()=>qg,reverseBits:()=>Hg,rotateX4:()=>z0,rotateY4:()=>I0,rotateZ4:()=>L0,rotationX4:()=>ol,rotationY4:()=>rl,rotationZ4:()=>al,round:()=>Yn,saturate:()=>jg,scale4:()=>U0,scaling4:()=>sl,select:()=>bt,sign:()=>Kr,sin:()=>vs,sinh:()=>Pp,smoothstep:()=>Ja,sqrt:()=>qt,step:()=>gl,storageBarrier:()=>B0,sub:()=>Ts,subgroupAdd:()=>m3,subgroupAll:()=>v3,subgroupAnd:()=>h3,subgroupAny:()=>y3,subgroupBallot:()=>g3,subgroupBroadcast:()=>x3,subgroupBroadcastFirst:()=>b3,subgroupElect:()=>w3,subgroupExclusiveAdd:()=>_3,subgroupExclusiveMul:()=>E3,subgroupInclusiveAdd:()=>f3,subgroupInclusiveMul:()=>M3,subgroupMax:()=>T3,subgroupMin:()=>S3,subgroupMul:()=>A3,subgroupOr:()=>C3,subgroupShuffle:()=>P3,subgroupShuffleDown:()=>k3,subgroupShuffleUp:()=>R3,subgroupShuffleXor:()=>$3,subgroupXor:()=>U3,tan:()=>kp,tanh:()=>Rp,textureBarrier:()=>V0,textureDimensions:()=>i3,textureGather:()=>l3,textureLoad:()=>_s,textureSample:()=>r3,textureSampleBaseClampToEdge:()=>p3,textureSampleBias:()=>a3,textureSampleCompare:()=>c3,textureSampleCompareLevel:()=>d3,textureSampleGrad:()=>u3,textureSampleLevel:()=>n3,textureStore:()=>fn,translate4:()=>$0,translation4:()=>tl,transpose:()=>Zg,trunc:()=>$p,unpack2x16float:()=>Wp,unpack4x8unorm:()=>S0,workgroupBarrier:()=>F0});var zw=Ld({in:{vertexIndex:zo.vertexIndex},out:{pos:zo.position,uv:H}})`{
231  const pos = array<vec2f, 3>(vec2f(-1, -1), vec2f(3, -1), vec2f(-1, 3));
232  const uv = array<vec2f, 3>(vec2f(0, 1), vec2f(2, 1), vec2f(0, -1));
233
234  return Out(vec4f(pos[in.vertexIndex], 0, 1), uv[in.vertexIndex]);
235}`;function qF(e){let t=Fo(e);return Yr(t)?t.inner:t}function Iw(e){return Lu(e)?3:Iu(e)?2:Nr(e)?4:void 0}function x1(e){let t=qF(e),s=Iw(t);return s?s*s*4:Wt(t)?t.elementCount*x1(t.elementType):yt(t)}function HF(e,t){let s=e.elementType,r;for(let i in s.propTypes){let l=t[i],c=s.propTypes[i];if(l===void 0||c===void 0)continue;let d=x1(c);if(d===0)continue;let u=Math.floor(l.byteLength/d);r=r===void 0?u:Math.min(r,u)}if(r===void 0)return;let a=Xs(yt(s),rs(s));return r*a}function Lw(e,t,s,r,a){let i=Fo(t),l=Yr(i)?i.inner:i,c=Iw(l);if(c){let d=c*4,u=Xs(d,rs(t));for(let p=0;p<c;p++)e.set(s.subarray(a+p*d,a+p*d+d),r+p*u);return}if(Wt(i)){let d=x1(i.elementType),u=Xs(yt(i.elementType),rs(i.elementType));for(let p=0;p<i.elementCount;p++)Lw(e,i.elementType,s,r+p*u,a+p*d);return}e.set(s.subarray(a,a+yt(l)),r)}function jF(e,t,s,r,a){let i=t.elementType,l=Xs(yt(i),rs(i));Vs(r%l===0,`startOffset (${r}) must be aligned to the element stride (${l})`);let c=Math.floor(r/l),d=Math.min(t.elementCount,Math.ceil(a/l)),u=Math.max(0,d-c),p=yi(i);for(let m in i.propTypes){let _=i.propTypes[m];if(_===void 0)continue;let v=s[m];Vs(v!==void 0,`Missing SoA data for field '${m}'`);let h=p[m]?.offset;Vs(h!==void 0,`Field ${m} not found in struct schema`);let y=x1(_),x=new Uint8Array(v.buffer,v.byteOffset,v.byteLength);for(let g=0;g<u;g++)Lw(e,_,x,(c+g)*l+h,g*y)}}function Fw(e,t,s){let r=e.arrayBuffer,a=s?.startOffset??0,i=yt(e.dataType),l=HF(e.dataType,t),c=s?.endOffset??(l===void 0?i:Math.min(a+l,i));jF(new Uint8Array(r),e.dataType,t,a,c),e.write(r,{startOffset:a,endOffset:c})}var F3=Cn({fullScreenTriangle:()=>zw,writeSoA:()=>Fw});var b=Dw;var ZF=Object.defineProperty,wr=e=>{let t={};for(var s in e)ZF(t,s,{get:e[s],enumerable:!0});return t},b1="uniforms";function gT(e){return e.replace(/[^a-zA-Z0-9_]/g,"_")}var KF=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_
235cast","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 JF(e){let t=gT(e);return KF.has(t)?`${t}_`:t}function vn(e){return`n_${gT(e)}`}function O3(e){return e==="vec2"?2:e==="vec3"?3:4}function xT(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 QF(e){return e.type==="array"}function eB(e){if(typeof e=="number"||typeof e=="boolean")return S;if(e&&typeof e=="object"){let t=e.kind;if(typeof t=="string"){if(t.startsWith("vec2"))return H;if(t.startsWith("vec3"))return W;if(t.startsWith("vec4"))return ee}if(Array.isArray(e))return qs(S,e.length||1);let s=e;if("w"in s)return ee;if("z"in s)return W;if("x"in s&&"y"in s)return H}return Array.isArray(e)?qs(S,e.length||1):S}function N3(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 bT)return s.toArray().slice(0,t);if(Array.isArray(s))return Bw(s,t);if(s&&typeof s=="object"){let r=s;if("x"in r){let a=[r.x,r.y??0];return t>=3&&a.push(r.z??0),t>=4&&a.push(r.w??0),a.slice(0,t)}if(typeof r.length=="number")return Bw(Array.from(r),t)}throw new Error(`[uniformStore] cannot coerce value to a ${t}-component vector: ${String(e)}`)}function Bw(e,t){let s=e.slice(0,t);for(;s.length<t;)s.push(0);return s}function Vw(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 Ow=new Set;function tB(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 bT=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=N3(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)}},Hn=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":xT(e.schema),this._componentCount=this._kind==="scalar"?1:O3(this._kind),this.cpu?(this._mirror=[],this._raw=e.initial):this._kind==="scalar"?this._mirror=[Vw(e.initial)]:(this._mirror=N3(e.initial,this._componentCount),this._view=new bT(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]=Vw(e);else{let t=N3(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()}},Y3=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=xT(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:O3(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:O3(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)}},sB=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({time:S,deltaTime:S,frame:S,viewportSize:H,logicalViewportSize:H,aspect:S,pointer:H,pointerActive:S}),"SystemUniforms"),oB={time:0,deltaTime:0,frame:0,viewportSize:[1,1],logicalViewportSize:[1,1],aspect:1,pointer:[.5,.5],pointerActive:0};function wT(e,t={}){let s=t.systemSchema??sB,r={...oB,...t.systemInitial??{}},a=new Map,i=new Map,l={},c=s,d=!1,u=new Set,p=new Map,m={markScalar(g){u.add(g)},markArray(g,w){if(w==="all"){p.set(g,"all");return}let f=p.get(g);f!=="all"&&(f?f.add(w):p.set(g,new Set([w])))}},_;function v(g,w){let f={},A={};for(let E of w){let P=JF(E.name),C=E.transform?E.transform(E.initial):E.initial,$=E.cpu??typeof C=="string";if(E.transform&&!$&&!tB(C)&&!Ow.has(E.transform)&&(Ow.add(E.transform),console.warn(`[gpu] prop transform for "${E.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).`,C)),$){f[E.name]=new Hn({sink:m,gpuPath:[g,P],initial:C,transform:E.transform,cpu:!0});continue}let U=C&&typeof C=="object"&&"data"in C?C.data:C,k=E.schema??eB(U);if(A[P]=k,QF(k)){let R=new Y3({sink:m,gpuPath:[g,P],schema:k,initial:E.initial,transform:E.transform});f[E.name]=R}else{let R=new Hn({sink:m,gpuPath:[g,P],schema:k,initial:C,transform:E.transform});f[E.name]=R}}return{handles:f,struct:(globalThis.__TYPEGPU_AUTONAME__??(E=>E))(sr(A),"struct")}}function h(){if(_)throw new Error("[uniformStore] cannot register fields after finalize()")}function y(){let g={};for(let[w,f]of i)g[w]=x(f);return g._sys=x(l),g}function x(g){let w={};for(let f of Object.values(g))f instanceof Y3?w[f.gpuPath[1]]=f._wholeArray():f.cpu||(w[f.gpuPath[1]]=f._patchValue());return w}return{get schema(){return _?.schema},get layout(){return _?.layout},get buffer(){return _?.buffer},get bindGroup(){return _?.bindGroup},get systemHandles(){return l},defineNode(g,w){h();let f=vn(g),{handles:A,struct:E}=v(f,w);return a.set(f,E),i.set(f,A),A},defineSystem(g){if(h(),g&&g.length){let w=v("_sys",g);l=w.handles,c=w.struct}else{let w=v("_sys",Object.entries(s.propTypes).map(([f,A])=>({name:f,schema:A,initial:r[f]??0})));l=w.handles,c=w.struct}return d=!0,l},finalize(){if(_)return _;d||this.defineSystem();let g={};for(let[E,P]of a)g[E]=P;g._sys=c;let w=(globalThis.__TYPEGPU_AUTONAME__??(E=>E))(sr(g),"combined"),f=(globalThis.__TYPEGPU_AUTONAME__??(E=>E))(e.createBuffer(w).$usage("uniform"),"buffer"),A=(globalThis.__TYPEGPU_AUTONAME__??(E=>E))(b.bindGroupLayout({[b1]:{uniform:w}}),"layout");return _={schema:w,layout:A,buffer:f,bindGroup:e.createBindGroup(A,{[b1]:f}),uniformEntryKey:b1},this.writeAll(),_},flush(){if(!_||u.size===0&&p.size===0)return;let g={},w=f=>g[f]??={};for(let f of u)w(f.gpuPath[0])[f.gpuPath[1]]=f._patchValue();for(let[f,A]of p){let E=w(f.gpuPath[0]);if(A==="all")E[f.gpuPath[1]]=f._wholeArray();else if(f.componentsPerElement===1){let P={};for(let C of A)P[C]=f._elementAt(C);E[f.gpuPath[1]]=P}else{let P=f.componentsPerElement,C={};for(let $ of A){let U=Math.floor($/P);C[U]=f._elementTuple(U)}E[f.gpuPath[1]]=C}}_.buffer.patch(g),u.clear(),p.clear()},writeAll(){_&&(_.buffer.write(y()),u.clear(),p.clear())},gpuAccessor(g,w="layout"){return`${w}.$.${b1}.${g.accessorPath}`},destroy(){_?.buffer.destroy?.(),_=void 0,a.clear(),i.clear(),u.clear(),p.clear()}}}function TT(e,t){if(e instanceof Y3){Array.isArray(t)&&(e.array=t);return}e.setFromRaw(t)}
vendor: 18,002 bytes, line 235
235var en=wr({MixStep:()=>ua,convertMixSpaceToP3:()=>PT,convertP3ToMixSpace:()=>aB,convertP3ToMixSpaceCPU:()=>Tm,hslToRgb:()=>ki,hsvToRgb:()=>Ri,labToLch:()=>om,labToRgb:()=>$i,lchToLab:()=>Ui,mixColors:()=>rB,mixColorsHsl:()=>ET,mixColorsHsv:()=>MT,mixColorsLch:()=>CT,mixColorsLinear:()=>Be,mixColorsOklab:()=>AT,mixColorsOklch:()=>ST,mixColorsVariants:()=>Ye,mixPreconvertedColors:()=>nB,mixPreconvertedHsl:()=>$T,mixPreconvertedHsv:()=>UT,mixPreconvertedInSpace:()=>am,mixPreconvertedLch:()=>DT,mixPreconvertedLinear:()=>wm,mixPreconvertedOklab:()=>RT,mixPreconvertedOklch:()=>kT,mixPreconvertedVariants:()=>L1,oklabToOklch:()=>Ml,oklabToRgb:()=>Zo,oklchToOklab:()=>yn,p3ToSRGB:()=>eo,rgbToHsl:()=>em,rgbToHsv:()=>tm,rgbToLab:()=>sm,rgbToOklab:()=>Qr,sRGBToP3:()=>Zt,selectRGBBySector:()=>rm}),qn=1e-4,kl=1.0471975512,hn=6/29,k1=500,R1=200,w1=hn*hn*hn,Al=4/29,T1=1/(3*hn*hn),S1=3*hn*hn,eo=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_sub(__tsover_sub(__tsover_mul(t.x,1.2249401),__tsover_mul(t.y,.2249404)),__tsover_mul(t.z,0)),r=__tsover_add(__tsover_add(__tsover_mul(t.x,-.0420569),__tsover_mul(t.y,1.0420571)),__tsover_mul(t.z,0)),a=__tsover_add(__tsover_sub(__tsover_mul(t.x,-.0196376),__tsover_mul(t.y,.0786361)),__tsover_mul(t.z,1.0982735));return W(s,r,a)}),{v:1,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,[7,"d","vec3f"],["r","g","b"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Zt=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_add(__tsover_add(__tsover_mul(t.x,.8224621),__tsover_mul(t.y,.177538)),__tsover_mul(t.z,0)),r=__tsover_add(__tsover_add(__tsover_mul(t.x,.0331941),__tsover_mul(t.y,.9668058)),__tsover_mul(t.z,0)),a=__tsover_add(__tsover_add(__tsover_mul(t.x,.0170826),__tsover_mul(t.y,.0723974)),__tsover_mul(t.z,.9105199));return W(s,r,a)}),{v:1,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,[7,"d","vec3f"],["r","g","b"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Qr=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=__tsover_add(__tsover_add(__tsover_mul(s,.4122214708),__tsover_mul(r,.5363325363)),__tsover_mul(a,.0514459929)),l=__tsover_add(__tsover_mul(s,.2119034982),__tsover_add(__tsover_mul(r,.6806995451),__tsover_mul(a,.1073969566))),c=__tsover_add(__tsover_add(__tsover_mul(s,.0883024619),__tsover_mul(r,.2817188376)),__tsover_mul(a,.6299787005)),d=__tsover_mul(Kr(i),io(at(i),__tsover_div(1,3))),u=__tsover_mul(Kr(l),io(at(l),__tsover_div(1,3))),p=__tsover_mul(Kr(c),io(at(c),__tsover_div(1,3)));return W(__tsover_sub(__tsover_add(__tsover_mul(d,.2104542553),__tsover_mul(u,.793617785)),__tsover_mul(p,.0040720468)),__tsover_add(__tsover_sub(__tsover_mul(d,1.9779984951),__tsover_mul(u,2.428592205)),__tsover_mul(p,.4505937099)),__tsover_sub(__tsover_add(__tsover_mul(d,.0259040371),__tsover_mul(u,.7827717662)),__tsover_mul(p,.808675766)))}),{v:1,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,[7,"std","sign"],["l"]],"*",[6,[7,"std","pow"],[[6,[7,"std","abs"],["l"]],[1,[5,"1"],"/",[5,"3"]]]]]],[13,"m_",[1,[6,[7,"std","sign"],["m"]],"*",[6,[7,"std","pow"],[[6,[7,"std","abs"],["m"]],[1,[5,"1"],"/",[5,"3"]]]]]],[13,"s_",[1,[6,[7,"std","sign"],["s"]],"*",[6,[7,"std","pow"],[[6,[7,"std","abs"],["s"]],[1,[5,"1"],"/",[5,"3"]]]]]],[10,[6,[7,"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"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Zo=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=__tsover_add(__tsover_add(s,__tsover_mul(r,.3963377774)),__tsover_mul(a,.2158037573)),l=__tsover_sub(__tsover_sub(s,__tsover_mul(r,.1055613458)),__tsover_mul(a,.0638541728)),c=__tsover_sub(__tsover_sub(s,__tsover_mul(r,.0894841775)),__tsover_mul(a,1.291485548)),d=io(i,3),u=io(l,3),p=io(c,3);return W(__tsover_add(__tsover_sub(__tsover_mul(d,4.0767416621),__tsover_mul(u,3.3077115913)),__tsover_mul(p,.2309699292)),__tsover_sub(__tsover_add(__tsover_mul(d,-1.2684380046),__tsover_mul(u,2.6097574011)),__tsover_mul(p,.3413193965)),__tsover_add(__tsover_sub(__tsover_mul(d,-.0041960863),__tsover_mul(u,.7034186147)),__tsover_mul(p,1.707614701)))}),{v:1,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,[7,"std","pow"],["l_",[5,"3"]]]],[13,"m",[6,[7,"std","pow"],["m_",[5,"3"]]]],[13,"s",[6,[7,"std","pow"],["s_",[5,"3"]]]],[10,[6,[7,"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"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Ml=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=qt(__tsover_add(__tsover_mul(r,r),__tsover_mul(a,a))),l=Ea(a,r);return W(s,i,l)}),{v:1,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,[7,"std","sqrt"],[[1,[1,"a","*","a"],"+",[1,"b","*","b"]]]]],[13,"h",[6,[7,"std","atan2"],["b","a"]]],[10,[6,[7,"d","vec3f"],["L","C","h"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),yn=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z;return W(s,__tsover_mul(r,po(a)),__tsover_mul(r,vs(a)))}),{v:1,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,[7,"d","vec3f"],["L",[1,"C","*",[6,[7,"std","cos"],["h"]]],[1,"C","*",[6,[7,"std","sin"],["h"]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),rm=b.fn([S,S,S],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=S(0),i=S(0),l=S(0);return r<1?(a=t,i=s):r<2?(a=s,i=t):r<3?(i=t,l=s):r<4?(i=s,l=t):r<5?(a=s,l=t):(a=t,l=s),W(a,i,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"c"},{type:"i",name:"x"},{type:"i",name:"sector"}],body:[0,[[12,"r",[6,[7,"d","f32"],[[5,"0"]]]],[12,"g",[6,[7,"d","f32"],[[5,"0"]]]],[12,"b",[6,[7,"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,[7,"d","vec3f"],["r","g","b"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),em=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=$e($e(s,r),a),l=Ct(Ct(s,r),a),c=__tsover_sub(i,l),d=__tsover_mul(__tsover_add(i,l),.5),u=$e(__tsover_sub(1,at(__tsover_sub(__tsover_mul(d,2),1))),qn),p=__tsover_div(c,u),m=i===s,_=i===r,v=__tsover_div(__tsover_sub(r,a),$e(c,qn)),h=__tsover_add(2,__tsover_div(__tsover_sub(a,s),$e(c,qn))),y=__tsover_add(4,__tsover_div(__tsover_sub(s,r),$e(c,qn))),x=bt(bt(y,h,_),v,m),g=__tsover_mul(x,kl);return W(g,p,d)}),{v:1,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,[7,"std","max"],[[6,[7,"std","max"],["r","g"]],"b"]]],[13,"minVal",[6,[7,"std","min"],[[6,[7,"std","min"],["r","g"]],"b"]]],[13,"delta",[1,"maxVal","-","minVal"]],[13,"l",[1,[1,"maxVal","+","minVal"],"*",[5,"0.5"]]],[13,"satDenom",[6,[7,"std","max"],[[1,[5,"1"],"-",[6,[7,"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,[7,"std","max"],["delta","EPSILON"]]]],[13,"hueG",[1,[5,"2"],"+",[1,[1,"b","-","r"],"/",[6,[7,"std","max"],["delta","EPSILON"]]]]],[13,"hueB",[1,[5,"4"],"+",[1,[1,"r","-","g"],"/",[6,[7,"std","max"],["delta","EPSILON"]]]]],[13,"hue",[6,[7,"std","select"],[[6,[7,"std","select"],["hueB","hueG","isGMax"]],"hueR","isRMax"]]],[13,"h",[1,"hue","*","PI_OVER_3"]],[10,[6,[7,"d","vec3f"],["h","s","l"]]]]],externalNames:["std","EPSILON","PI_OVER_3","d"]},externals:()=>({std:n,EPSILON:qn,PI_OVER_3:kl,d:o})})&&e.f)({})),ki=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=__tsover_mul(r,__tsover_sub(1,at(__tsover_sub(__tsover_mul(a,2),1)))),l=__tsover_div(s,kl),c=__tsover_mul(i,__tsover_sub(1,at(__tsover_sub(Vn(l,2),1)))),d=__tsover_sub(a,__tsover_mul(i,.5));return rm(i,c,Lt(l)).add(d)}),{v:1,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,[7,"std","abs"],[[1,[1,"l","*",[5,"2"]],"-",[5,"1"]]]]]]],[13,"hPrime",[1,"h","/","PI_OVER_3"]],[13,"x",[1,"c","*",[1,[5,"1"],"-",[6,[7,"std","abs"],[[1,[6,[7,"std","mod"],["hPrime",[5,"2"]]],"-",[5,"1"]]]]]]],[13,"m",[1,"l","-",[1,"c","*",[5,"0.5"]]]],[13,"sector",[6,[7,"std","floor"],["hPrime"]]],[10,[6,[7,[6,"selectRGBBySector",["c","x","sector"]],"add"],["m"]]]]],externalNames:["std","PI_OVER_3","selectRGBBySector"]},externals:()=>({std:n,PI_OVER_3:kl,selectRGBBySector:rm})})&&e.f)({})),tm=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=$e($e(s,r),a),l=Ct(Ct(s,r),a),c=__tsover_sub(i,l),d=i,u=__tsover_div(c,$e(i,qn)),p=i===s,m=i===r,_=__tsover_div(__tsover_sub(r,a),$e(c,qn)),v=__tsover_add(2,__tsover_div(__tsover_sub(a,s),$e(c,qn))),h=__tsover_add(4,__tsover_div(__tsover_sub(s,r),$e(c,qn))),y=bt(bt(h,v,m),_,p),x=__tsover_mul(y,kl);return W(x,u,d)}),{v:1,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,[7,"std","max"],[[6,[7,"std","max"],["r","g"]],"b"]]],[13,"minVal",[6,[7,"std","min"],[[6,[7,"std","min"],["r","g"]],"b"]]],[13,"delta",[1,"maxVal","-","minVal"]],[13,"v","maxVal"],[13,"s",[1,"delta","/",[6,[7,"std","max"],["maxVal","EPSILON"]]]],[13,"isRMax",[1,"maxVal","===","r"]],[13,"isGMax",[1,"maxVal","===","g"]],[13,"hueR",[1,[1,"g","-","b"],"/",[6,[7,"std","max"],["delta","EPSILON"]]]],[13,"hueG",[1,[5,"2"],"+",[1,[1,"b","-","r"],"/",[6,[7,"std","max"],["delta","EPSILON"]]]]],[13,"hueB",[1,[5,"4"],"+",[1,[1,"r","-","g"],"/",[6,[7,"std","max"],["delta","EPSILON"]]]]],[13,"hue",[6,[7,"std","select"],[[6,[7,"std","select"],["hueB","hueG","isGMax"]],"hueR","isRMax"]]],[13,"h",[1,"hue","*","PI_OVER_3"]],[10,[6,[7,"d","vec3f"],["h","s","v"]]]]],externalNames:["std","EPSILON","PI_OVER_3","d"]},externals:()=>({std:n,EPSILON:qn,PI_OVER_3:kl,d:o})})&&e.f)({})),Ri=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=__tsover_mul(a,r),l=__tsover_div(s,kl),c=__tsover_mul(i,__tsover_sub(1,at(__tsover_sub(Vn(l,2),1)))),d=__tsover_sub(a,i);return rm(i,c,Lt(l)).add(d)}),{v:1,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,[7,"std","abs"],[[1,[6,[7,"std","mod"],["hPrime",[5,"2"]]],"-",[5,"1"]]]]]]],[13,"m",[1,"v","-","c"]],[13,"sector",[6,[7,"std","floor"],["hPrime"]]],[10,[6,[7,[6,"selectRGBBySector",["c","x","sector"]],"add"],["m"]]]]],externalNames:["PI_OVER_3","std","selectRGBBySector"]},externals:()=>({PI_OVER_3:kl,std:n,selectRGBBySector:rm})})&&e.f)({})),sm=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=__tsover_add(__tsover_add(__tsover_mul(s,.4124564),__tsover_mul(r,.3575761)),__tsover_mul(a,.1804375)),l=__tsover_add(__tsover_add(__tsover_mul(s,.2126729),__tsover_mul(r,.7151522)),__tsover_mul(a,.072175)),c=__tsover_add(__tsover_add(__tsover_mul(s,.0193339),__tsover_mul(r,.119192)),__tsover_mul(a,.9503041)),d=__tsover_div(i,.95047),u=__tsover_div(l,1),p=__tsover_div(c,1.08883),m=bt(__tsover_add(__tsover_mul(d,T1),Al),io(d,__tsover_div(1,3)),d>w1),_=bt(__tsover_add(__tsover_mul(u,T1),Al),io(u,__tsover_div(1,3)),u>w1),v=bt(__tsover_add(__tsover_mul(p,T1),Al),io(p,__tsover_div(1,3)),p>w1),h=__tsover_sub(__tsover_mul(_,116),16),y=__tsover_mul(__tsover_sub(m,_),k1),x=__tsover_mul(__tsover_sub(_,v),R1);return W(h,y,x)}),{v:1,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,[7,"std","select"],[[1,[1,"xn","*","LAB_FWD_SLOPE"],"+","LAB_OFFSET"],[6,[7,"std","pow"],["xn",[1,[5,"1"],"/",[5,"3"]]]],[1,"xn",">","LAB_DELTA3"]]]],[13,"fy",[6,[7,"std","select"],[[1,[1,"yn","*","LAB_FWD_SLOPE"],"+","LAB_OFFSET"],[6,[7,"std","pow"],["yn",[1,[5,"1"],"/",[5,"3"]]]],[1,"yn",">","LAB_DELTA3"]]]],[13,"fz",[6,[7,"std","select"],[[1,[1,"zn","*","LAB_FWD_SLOPE"],"+","LAB_OFFSET"],[6,[7,"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,[7,"d","vec3f"],["L","a","bLab"]]]]],externalNames:["std","LAB_FWD_SLOPE","LAB_OFFSET","LAB_DELTA3","LAB_KAPPA","LAB_LAMBDA","d"]},externals:()=>({std:n,LAB_FWD_SLOPE:T1,LAB_OFFSET:Al,LAB_DELTA3:w1,LAB_KAPPA:k1,LAB_LAMBDA:R1,d:o})})&&e.f)({})),$i=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=__tsover_div(__tsover_add(s,16),116),l=__tsover_add(__tsover_div(r,k1),i),c=__tsover_sub(i,__tsover_div(a,R1)),d=bt(__tsover_mul(__tsover_sub(l,Al),S1),io(l,3),l>hn),u=bt(__tsover_mul(__tsover_sub(i,Al),S1),io(i,3),i>hn),p=bt(__tsover_mul(__tsover_sub(c,Al),S1),io(c,3),c>hn),m=__tsover_mul(d,.95047),_=__tsover_mul(u,1),v=__tsover_mul(p,1.08883),h=__tsover_sub(__tsover_sub(__tsover_mul(m,3.2404542),__tsover_mul(_,1.5371385)),__tsover_mul(v,.4985314)),y=__tsover_add(__tsover_add(__tsover_mul(m,-.969266),__tsover_mul(_,1.8760108)),__tsover_mul(v,.041556)),x=__tsover_add(__tsover_sub(__tsover_mul(m,.0556434),__tsover_mul(_,.2040259)),__tsover_mul(v,1.0572252));return W(h,y,x)}),{v:1,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,[7,"std","select"],[[1,[1,"fx","-","LAB_OFFSET"],"*","LAB_INV_SLOPE"],[6,[7,"std","pow"],["fx",[5,"3"]]],[1,"fx",">","LAB_DELTA"]]]],[13,"yn",[6,[7,"std","select"],[[1,[1,"fy","-","LAB_OFFSET"],"*","LAB_INV_SLOPE"],[6,[7,"std","pow"],["fy",[5,"3"]]],[1,"fy",">","LAB_DELTA"]]]],[13,"zn",[6,[7,"std","select"],[[1,[1,"fz","-","LAB_OFFSET"],"*","LAB_INV_SLOPE"],[6,[7,"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,[7,"d","vec3f"],["r","g","bRgb"]]]]],externalNames:["LAB_KAPPA","LAB_LAMBDA","std","
235LAB_OFFSET","LAB_INV_SLOPE","LAB_DELTA","d"]},externals:()=>({LAB_KAPPA:k1,LAB_LAMBDA:R1,std:n,LAB_OFFSET:Al,LAB_INV_SLOPE:S1,LAB_DELTA:hn,d:o})})&&e.f)({})),om=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z,i=qt(__tsover_add(__tsover_mul(r,r),__tsover_mul(a,a))),l=Ea(a,r);return W(s,i,l)}),{v:1,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,[7,"std","sqrt"],[[1,[1,"a","*","a"],"+",[1,"b","*","b"]]]]],[13,"h",[6,[7,"std","atan2"],["b","a"]]],[10,[6,[7,"d","vec3f"],["L","C","h"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Ui=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.x,r=t.y,a=t.z;return W(s,__tsover_mul(r,po(a)),__tsover_mul(r,vs(a)))}),{v:1,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,[7,"d","vec3f"],["L",[1,"C","*",[6,[7,"std","cos"],["h"]]],[1,"C","*",[6,[7,"std","sin"],["h"]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),lo=b.fn([W,W,S,S,S],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";return t.mul(r).add(s.mul(a)).div(i)}),{v:1,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"]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),Be=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_mul(s.w,r),l=__tsover_add(a,i),c=$e(l,.001),d=lo(t.xyz,s.xyz,a,i,c);return ee(d,l)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"rgb",[6,"awMix",[[7,"colorA","xyz"],[7,"colorB","xyz"],"weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],["rgb","totalWeight"]]]]],externalNames:["std","awMix","d"]},externals:()=>({std:n,awMix:lo,d:o})})&&e.f)({})),ST=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_mul(s.w,r),l=__tsover_add(a,i),c=$e(l,.001),d=Zt(Zo(yn(lo(Ml(Qr(eo(t.xyz))),Ml(Qr(eo(s.xyz))),a,i,c))));return ee(d,l)}),{v:1,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,[7,"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,[7,"d","vec4f"],["rgb","totalWeight"]]]]],externalNames:["std","oklabToOklch","rgbToOklab","p3ToSRGB","awMix","sRGBToP3","oklabToRgb","oklchToOklab","d"]},externals:()=>({std:n,oklabToOklch:Ml,rgbToOklab:Qr,p3ToSRGB:eo,awMix:lo,sRGBToP3:Zt,oklabToRgb:Zo,oklchToOklab:yn,d:o})})&&e.f)({})),AT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_mul(s.w,r),l=__tsover_add(a,i),c=$e(l,.001),d=Zt(Zo(lo(Qr(eo(t.xyz)),Qr(eo(s.xyz)),a,i,c)));return ee(d,l)}),{v:1,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,[7,"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,[7,"d","vec4f"],["rgb","totalWeight"]]]]],externalNames:["std","rgbToOklab","p3ToSRGB","awMix","sRGBToP3","oklabToRgb","d"]},externals:()=>({std:n,rgbToOklab:Qr,p3ToSRGB:eo,awMix:lo,sRGBToP3:Zt,oklabToRgb:Zo,d:o})})&&e.f)({})),ET=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_mul(s.w,r),l=__tsover_add(a,i),c=$e(l,.001),d=Zt(ki(lo(em(eo(t.xyz)),em(eo(s.xyz)),a,i,c)));return ee(d,l)}),{v:1,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,[7,"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,[7,"d","vec4f"],["rgb","totalWeight"]]]]],externalNames:["std","rgbToHsl","p3ToSRGB","awMix","sRGBToP3","hslToRgb","d"]},externals:()=>({std:n,rgbToHsl:em,p3ToSRGB:eo,awMix:lo,sRGBToP3:Zt,hslToRgb:ki,d:o})})&&e.f)({})),MT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_mul(s.w,r),l=__tsover_add(a,i),c=$e(l,.001),d=Zt(Ri(lo(tm(eo(t.xyz)),tm(eo(s.xyz)),a,i,c)));return ee(d,l)}),{v:1,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,[7,"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,[7,"d","vec4f"],["rgb","totalWeight"]]]]],externalNames:["std","rgbToHsv","p3ToSRGB","awMix","sRGBToP3","hsvToRgb","d"]},externals:()=>({std:n,rgbToHsv:tm,p3ToSRGB:eo,awMix:lo,sRGBToP3:Zt,hsvToRgb:Ri,d:o})})&&e.f)({})),CT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_mul(s.w,r),l=__tsover_add(a,i),c=$e(l,.001),d=Zt($i(Ui(lo(om(sm(eo(t.xyz))),om(sm(eo(s.xyz))),a,i,c))));return ee(d,l)}),{v:1,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,[7,"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,[7,"d","vec4f"],["rgb","totalWeight"]]]]],externalNames:["std","labToLch","rgbToLab","p3ToSRGB","awMix","sRGBToP3","labToRgb","lchToLab","d"]},externals:()=>({std:n,labToLch:om,rgbToLab:sm,p3ToSRGB:eo,awMix:lo,sRGBToP3:Zt,labToRgb:$i,lchToLab:Ui,d:o})})&&e.f)({})),Ye={0:Be,1:ST,2:AT,3:ET,4:MT,5:CT},rB=(e,t,s,r)=>(Ye[r]??Be)(e,t,s),aB=(e,t)=>{switch(t){case 1:return Ml(Qr(eo(e)));case 2:return Qr(eo(e));case 3:return em(eo(e));case 4:return tm(eo(e));case 5:return om(sm(eo(e)));default:return e}},PT=(e,t)=>
vendor: 41,473 bytes, line 235
235{switch(t){case 1:return Zt(Zo(yn(e)));case 2:return Zt(Zo(e));case 3:return Zt(ki(e));case 4:return Zt(Ri(e));case 5:return Zt($i(Ui(e)));default:return e}},ua=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({conv:W,alpha:S}),"MixStep"),am=b.fn([W,S,W,S,S],ua)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(s,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c);return ua({conv:lo(t,r,l,c,$e(d,.001)),alpha:d})}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[10,[6,"MixStep",[[104,{conv:[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]],alpha:"totalWeight"}]]]]]],externalNames:["std","MixStep","awMix"]},externals:()=>({std:n,MixStep:ua,awMix:lo})})&&e.f)({})),wm=b.fn([W,W,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c),u=lo(t,s,l,c,$e(d,.001));return ee(u,d)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],["mixed","totalWeight"]]]]],externalNames:["std","awMix","d"]},externals:()=>({std:n,awMix:lo,d:o})})&&e.f)({})),kT=b.fn([W,W,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c),u=lo(t,s,l,c,$e(d,.001));return ee(Zt(Zo(yn(u))),d)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],[[6,"sRGBToP3",[[6,"oklabToRgb",[[6,"oklchToOklab",["mixed"]]]]]],"totalWeight"]]]]],externalNames:["std","awMix","d","sRGBToP3","oklabToRgb","oklchToOklab"]},externals:()=>({std:n,awMix:lo,d:o,sRGBToP3:Zt,oklabToRgb:Zo,oklchToOklab:yn})})&&e.f)({})),RT=b.fn([W,W,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c),u=lo(t,s,l,c,$e(d,.001));return ee(Zt(Zo(u)),d)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],[[6,"sRGBToP3",[[6,"oklabToRgb",["mixed"]]]],"totalWeight"]]]]],externalNames:["std","awMix","d","sRGBToP3","oklabToRgb"]},externals:()=>({std:n,awMix:lo,d:o,sRGBToP3:Zt,oklabToRgb:Zo})})&&e.f)({})),$T=b.fn([W,W,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c),u=lo(t,s,l,c,$e(d,.001));return ee(Zt(ki(u)),d)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],[[6,"sRGBToP3",[[6,"hslToRgb",["mixed"]]]],"totalWeight"]]]]],externalNames:["std","awMix","d","sRGBToP3","hslToRgb"]},externals:()=>({std:n,awMix:lo,d:o,sRGBToP3:Zt,hslToRgb:ki})})&&e.f)({})),UT=b.fn([W,W,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c),u=lo(t,s,l,c,$e(d,.001));return ee(Zt(Ri(u)),d)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],[[6,"sRGBToP3",[[6,"hsvToRgb",["mixed"]]]],"totalWeight"]]]]],externalNames:["std","awMix","d","sRGBToP3","hsvToRgb"]},externals:()=>({std:n,awMix:lo,d:o,sRGBToP3:Zt,hsvToRgb:Ri})})&&e.f)({})),DT=b.fn([W,W,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,__tsover_sub(1,i)),c=__tsover_mul(a,i),d=__tsover_add(l,c),u=lo(t,s,l,c,$e(d,.001));return ee(Zt($i(Ui(u))),d)}),{v:1,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,[7,"std","max"],["totalWeight",[5,"0.001"]]]],[13,"mixed",[6,"awMix",["convA","convB","weightA","weightB","safeWeight"]]],[10,[6,[7,"d","vec4f"],[[6,"sRGBToP3",[[6,"labToRgb",[[6,"lchToLab",["mixed"]]]]]],"totalWeight"]]]]],externalNames:["std","awMix","d","sRGBToP3","labToRgb","lchToLab"]},externals:()=>({std:n,awMix:lo,d:o,sRGBToP3:Zt,labToRgb:$i,lchToLab:Ui})})&&e.f)({})),L1={0:wm,1:kT,2:RT,3:$T,4:UT,5:DT},nB=(e,t,s,r,a,i)=>(L1[i]??wm)(e,t,s,r,a),Sx=1e-4,B3=6/29,iB=(e,t,s)=>[e*1.2249401-t*.2249404,e*-.0420569+t*1.0420571,e*-.0196376-t*.0786361+s*1.0982735],Nw=(e,t,s)=>{let r=Math.cbrt(e*.4122214708+t*.5363325363+s*.0514459929),a=Math.cbrt(e*.2119034982+t*.6806995451+s*.1073969566),i=Math.cbrt(e*.0883024619+t*.2817188376+s*.6299787005);return[r*.2104542553+a*.793617785-i*.0040720468,r*1.9779984951-a*2.428592205+i*.4505937099,r*.0259040371+a*.7827717662-i*.808675766]},zT=(e,t,s,r,a)=>{let i=Math.max(a,Sx);return(r===e?(t-s)/i:r===t?2+(s-e)/i:4+(e-t)/i)*(Math.PI/3)},lB=(e,t,s)=>{let r=Math.max(e,t,s),a=Math.min(e,t,s),i=r-a,l=(r+a)*.5,c=i/Math.max(1-Math.abs(2*l-1),Sx);return[zT(e,t,s,r,i),c,l]},cB=(e,t,s)=>{let r=Math.max(e,t,s),a=r-Math.min(e,t,s),i=a/Math.max(r,Sx);return[zT(e,t,s,r,a),i,r]},dB=(e,t,s)=>{let r=(e*.4124564+t*.3575761+s*.1804375)/.95047,a=e*.2126729+t*.7151522+s*.072175,i=(e*.0193339+t*.119192+s*.9503041)/1.08883,l=B3**3,c=m=>m>l?Math.cbrt(m):m/(3*B3*B3)+4/29,d=c(r),u=c(a),p=c(i);return[u*116-16,(d-u)*500,(u-p)*200]},Tm=(e,t,s,r)=>{let[a,i,l]=iB(e,t,s);switch(r){case 1:{let[c,d,u]=Nw(a,i,l);return[c,Math.sqrt(d*d+u*u),Math.atan2(u,d)]}case 2:return Nw(a,i,l);case 3:return lB(a,i,l);case 4:return cB(a,i,l);case 5:{let[c,d,u]=dB(a,i,l);return[c,Math.sqrt(d*d+u*u),Math.atan2(u,d)]}default:return[e,t,s]}},eu=wr({applyBlendMode:()=>uB,blendModes:()=>nm,color:()=>XT,colorBurn:()=>ZT,colorDodge:()=>GT,darken:()=>HT,difference:()=>YT,exclusion:()=>WT,hardLight:()=>QT,hue:()=>eS,lighten:()=>jT,linearBurn:()=>KT,linearDodge:()=>OT,luminance:()=>Ca,luminosity:()=>qT,multiply:()=>BT,normal:()=>IT,normalOklab:()=>FT,normalOklch:()=>LT,overlay:()=>NT,saturation:()=>tS,screen:()=>VT,softLight:()=>JT,unpremultiplyAlpha:()=>Re}),Ca=b.fn([W],S)((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:1,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"]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),jn=b.fn([W,W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return bt(W(0),W(1),Vp(s,t))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"edge"},{type:"i",name:"x"}],body:[0,[[10,[6,[7,"std","select"],[[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]],[6,[7,"std","ge"],["x","edge"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),hs=b.fn([ee,W,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t.w,__tsover_sub(1,r)),i=__tsover_add(r,a),l=s.mul(r).add(t.xyz.mul(a));return ee(l,i)}),{v:1,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,[7,"d","vec4f"],["rgb","finalAlpha"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Re=b.fn([ee],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.w,r=bt(W(0,0,0),t.xyz.div(s),s>.001);return ee(r,s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"alpha",[7,"color","w"]],[13,"straightRGB",[6,[7,"std","select"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,[7,"color","xyz"],"div"],["alpha"]],[1,"alpha",">",[5,"0.001"]]]]],[10,[6,[7,"d","vec4f"],["straightRGB","alpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),IT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,s.xyz,a)}),{v:1,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"]]]]],externalNames:["overComposite"]},externals:()=>({overComposite:hs})})&&e.f)({})),LT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=__tsover_mul(t.w,__tsover_sub(1,a)),l=__tsover_add(a,i),c=Ml(Qr(eo(t.xyz))),d=Zt(Zo(yn(Ml(Qr(eo(s.xyz))).mul(a).add(c.mul(i)))));return ee(d,l)}),{v:1,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,[7,"d","vec4f"],["rgb","finalAlpha"]]]]],externalNames:["oklabToOklch","rgbToOklab","p3ToSRGB","sRGBToP3","oklabToRgb","oklchToOklab","d"]},externals:()=>({oklabToOklch:Ml,rgbToOklab:Qr,p3ToSRGB:eo,sRGBToP3:Zt,oklabToRgb:Zo,oklchToOklab:yn,d:o})})&&e.f)({})),FT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=__tsover_mul(t.w,__tsover_sub(1,a)),l=__tsover_add(a,i),c=Qr(eo(t.xyz)),d=Zt(Zo(Qr(eo(s.xyz)).mul(a).add(c.mul(i))));return ee(d,l)}),{v:1,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,[7,"d","vec4f"],["rgb","finalAlpha"]]]]],externalNames:["rgbToOklab","p3ToSRGB","sRGBToP3","oklabToRgb","d"]},externals:()=>({rgbToOklab:Qr,p3ToSRGB:eo,sRGBToP3:Zt,oklabToRgb:Zo,d:o})})&&e.f)({})),BT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,t.xyz.mul(s.xyz),a)}),{v:1,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"]]]]],externalNames:["overComposite"]},externals:()=>({overComposite:hs})})&&e.f)({})),VT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,Ts(1,Ts(1,t.xyz).mul(Ts(1,s.xyz))),a)}),{v:1,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,"std","sub"],[[5,"1"],[6,[7,[6,[7,"std","sub"],[[5,"1"],[7,"base","xyz"]]],"mul"],[[6,[7,"std","sub"],[[5,"1"],[7,"overlay","xyz"]]]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","overComposite"]},externals:()=>({std:n,overComposite:hs})})&&e.f)({})),OT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,t.xyz.add(s.xyz),a)}),{v:1,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"]]]]],externalNames:["overComposite"]},externals:()=>({overComposite:hs})})&&e.f)({})),NT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=t.xyz.mul(s.xyz).mul(2),l=Ts(1,Ts(1,t.xyz).mul(Ts(1,s.xyz)).mul(2));return hs(t,Ft(i,l,jn(W(.5),t.xyz)),a)}),{v:1,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,[7,"std","sub"],[[5,"1"],[6,[7,[6,[7,[6,[7,"std","sub"],[[5,"1"],[7,"base","xyz"]]],"mul"],[[6,[7,"std","sub"],[[5,"1"],[7,"overlay","xyz"]]]]],"mul"],[[5,"2"]]]]]],[13,"blended",[6,[7,"std","mix"],["mult","scr",[6,"step3",[[6,[7,"d","vec3f"],[[5,"0.5"]]],[7,"base","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","step3","d","overComposite"]},externals:()=>({std:n,step3:jn,d:o,overComposite:hs})})&&e.f)({})),YT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,at(t.xyz.sub(s.xyz)),a)}),{v:1,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,"std","abs"],[[6,[7,[7,"base","xyz"],"sub"],[[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","overComposite"]},externals:()=>({std:n,overComposite:hs})})&&e.f)({})),GT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=Ts(1,s.xyz);return hs(t,Ft(t.xyz,Ct(t.xyz.div(i),W(1)),jn(W(.001),i)),a)}),{v:1,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,[7,"std","sub"],[[5,"1"],[7,"overlay","xyz"]]]],[13,"dodged",[6,[7,"std","mix"],[[7,"base","xyz"],[6,[7,"std","min"],[[6,[7,[7,"base","xyz"],"div"],["oneMinusOverlay"]],[6,[7,"d","vec3f"],[[5,"1"]]]]],[6,"step3",[[6,[7,"d","vec3f"],[[5,"0.001"]]],"oneMinusOverlay"]]]]],[10,[6,"overComposite",["base","dodged","overlayAlpha"]]]]],externalNames:["std","d","step3","overComposite"]},externals:()=>({std:n,d:o,step3:jn,overComposite:hs})})&&e.f)({})),WT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,t.xyz.add(s.xyz).sub(t.xyz.mul(s.xyz).mul(2)),a)}),{v:1,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"]]]]],externalNames:["overComposite"]},externals:()=>({overComposite:hs})})&&e.f)({})),XT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=Ca(t.xyz),l=Ca(s.xyz),c=__tsover_sub(i,l);return hs(t,s.xyz.add(c),a)}),{v:1,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"]]]]],externalNames:["luminance","overComposite"]},externals:()=>({luminance:Ca,overComposite:hs})})&&e.f)({})),qT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=Ca(t.xyz),l=Ca(s.xyz),c=__tsover_div(l,__tsover_add(i,1e-4));return hs(t,t.xyz.mul(c),a)}),{v:1,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"]]]]],externalNames:["luminance","overComposite"]},externals:()=>({luminance:Ca,overComposite:hs})})&&e.f)({})),HT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,Ct(t.xyz,s.xyz),a)}),{v:1,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,"std","min"],[[7,"base","xyz"],[7,"overlay","xyz"]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","overComposite"]},externals:()=>({std:n,overComposite:hs})})&&e.f)({})),jT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,$e(t.xyz,s.xyz),a)}),{v:1,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,"std","max"],[[7,"base","xyz"],[7,"overlay","xyz"]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","overComposite"]},externals:()=>({std:n,overComposite:hs})})&&e.f)({})),ZT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=$e(Ts(1,Ts(1,t.xyz).div(s.xyz.add(1e-4))),W(0));return hs(t,Ft(W(0),i,jn(W(1e-4),s.xyz)),a)}),{v:1,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,[7,"std","max"],[[6,[7,"std","sub"],[[5,"1"],[6,[7,[6,[7,"std","sub"],[[5,"1"],[7,"base","xyz"]]],"div"],[[6,[7,[7,"overlay","xyz"],"add"],[[5,"0.0001"]]]]]]],[6,[7,"d","vec3f"],[[5,"0"]]]]]],[13,"blended",[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[5,"0"]]],"burned",[6,"step3",[[6,[7,"d","vec3f"],[[5,"0.0001"]]],[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","d","step3","overComposite"]},externals:()=>({std:n,d:o,step3:jn,overComposite:hs})})&&e.f)({})),KT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r);return hs(t,$e(t.xyz.add(s.xyz).add(-1),W(0)),a)}),{v:1,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,"std","max"],[[6,[7,[6,[7,[7,"base","xyz"],"add"],[[7,"overlay","xyz"]]],"add"],[[4,"-",[5,"1"]]]],[6,[7,"d","vec3f"],[[5,"0"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","d","overComposite"]},externals:()=>({std:n,d:o,overComposite:hs})})&&e.f)({})),JT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=t.xyz.mul(s.xyz).mul(2),l=t.xyz.mul(t.xyz),c=i.add(l.mul(Ts(1,s.xyz.mul(2)))),d=qt(t.xyz),u=t.xyz.mul(Ts(1,s.xyz)).mul(2).add(d.mul(s.xyz.mul(2).sub(1)));return hs(t,Ft(c,u,jn(W(.5),s.xyz)),a)}),{v:1,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,[7,"std","sub"],[[5,"1"],[6,[7,[7,"overlay","xyz"],"mul"],[[5,"2"]]]]]]]]]],[13,"baseSqrt",[6,[7,"std","sqrt"],[[7,"base","xyz"]]]],[13,"softLightVal",[6,[7,[6,[7,[6,[7,[7,"base","xyz"],"mul"],[[6,[7,"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,[7,"std","mix"],["softDark","softLightVal",[6,"step3",[[6,[7,"d","vec3f"],[[5,"0.5"]]],[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","step3","d","overComposite"]},externals:()=>({std:n,step3:jn,d:o,overComposite:hs})})&&e.f)({})),QT=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=t.xyz.mul(s.xyz).mul(2),l=Ts(1,Ts(1,t.xyz).mul(Ts(1,s.xyz)).mul(2));return hs(t,Ft(i,l,jn(W(.5),s.xyz)),a)}),{v:1,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,[7,"std","sub"],[[5,"1"],[6,[7,[6,[7,[6,[7,"std","sub"],[[5,"1"],[7,"base","xyz"]]],"mul"],[[6,[7,"std","sub"],[[5,"1"],[7,"overlay","xyz"]]]]],"mul"],[[5,"2"]]]]]],[13,"blended",[6,[7,"std","mix"],["mult","scr",[6,"step3",[[6,[7,"d","vec3f"],[[5,"0.5"]]],[7,"overlay","xyz"]]]]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["std","step3","d","overComposite"]},externals:()=>({std:n,step3:jn,d:o,overComposite:hs})})&&e.f)({})),eS=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=Ca(t.xyz),l=Ca(s.xyz),c=t.xyz.sub(i),d=s.xyz.sub(l),u=It(c),p=It(d);return hs(t,bt(W(0),d.div(p),p>1e-4).mul(u).add(i),a)}),{v:1,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,[7,"std","length"],["baseChromaticity"]]],[13,"overlayChromaLength",[6,[7,"std","length"],["overlayChromaticity"]]],[13,"overlayChromaDir",[6,[7,"std","select"],[[6,[7,"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"]]]]],externalNames:["luminance","std","d","overComposite"]},externals:()=>({luminance:Ca,std:n,d:o,overComposite:hs})})&&e.f)({})),tS=b.fn([ee,ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s.w,r),i=Ca(t.xyz),l=Ca(s.xyz),c=t.xyz.sub(i),d=s.xyz.sub(l),u=It(c),p=bt(W(0),c.div(u),u>1e-4),m=It(d);return hs(t,p.mul(m).add(i),a)}),{v:1,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,[7,"std","length"],["baseChromaticity"]]],[13,"baseChromaDir",[6,[7,"std","select"],[[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"baseChromaticity","div"],["baseChromaLength"]],[1,"baseChromaLength",">",[5,"0.0001"]]]]],[13,"overlayChromaLength",[6,[7,"std","length"],["overlayChromaticity"]]],[13,"blended",[6,[7,[6,[7,"baseChromaDir","mul"],["overlayChromaLength"]],"add"],["baseLum"]]],[10,[6,"overComposite",["base","blended","overlayAlpha"]]]]],externalNames:["luminance","std","d","overComposite"]},externals:()=>({luminance:Ca,std:n,d:o,overComposite:hs})})&&e.f)({})),nm={normal:IT,"normal-oklch":LT,"normal-oklab":FT,multiply:BT,screen:VT,linearDodge:OT,overlay:NT,difference:YT,colorDodge:GT,exclusion:WT,color:XT,luminosity:qT,darken:HT,lighten:jT,colorBurn:ZT,linearBurn:KT,softLight:JT,hardLight:QT,hue:eS,saturation:tS},uB=(e,t,s="normal",r=1)=>(nm[s]??nm.normal)(e,t,r),A1=W(.2126,.7152,.0722),Yw={alpha:b.fn([ee,ee],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ee(t.xyz,__tsover_mul(t.w,s.w))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[10,[6,[7,"d","vec4f"],[[7,"target","xyz"],[1,[7,"target","w"],"*",[7,"mask","w"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),alphaInverted:b.fn([ee,ee],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ee(t.xyz,__tsover_mul(t.w,__tsover_sub(1,s.w)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[10,[6,[7,"d","vec4f"],[[7,"target","xyz"],[1,[7,"target","w"],"*",[1,[5,"1"],"-",[7,"mask","w"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),luminance:b.fn([ee,ee],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=no(s.xyz,A1);return ee(t.xyz,__tsover_mul(t.w,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[13,"lum",[6,[7,"std","dot"],[[7,"mask","xyz"],"LUMINANCE_WEIGHTS"]]],[10,[6,[7,"d","vec4f"],[[7,"target","xyz"],[1,[7,"target","w"],"*","lum"]]]]]],externalNames:["std","LUMINANCE_WEIGHTS","d"]},externals:()=>({std:n,LUMINANCE_WEIGHTS:A1,d:o})})&&e.f)({})),luminanceInverted:b.fn([ee,ee],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=no(s.xyz,A1);return ee(t.xyz,__tsover_mul(t.w,__tsover_sub(1,r)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"target"},{type:"i",name:"mask"}],body:[0,[[13,"lum",[6,[7,"std","dot"],[[7,"mask","xyz"],"LUMINANCE_WEIGHTS"]]],[10,[6,[7,"d","vec4f"],[[7,"target","xyz"],[1,[7,"target","w"],"*",[1,[5,"1"],"-","lum"]]]]]]],externalNames:["std","LUMINANCE_WEIGHTS","d"]},externals:()=>({std:n,LUMINANCE_WEIGHTS:A1,d:o})})&&e.f)({}))},pB=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return W(t.x,t.y,t.z)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),mB=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return xt(t.div(t.add(1)),W(0),W(1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,[7,"std","clamp"],[[6,[7,"color","div"],[[6,[7,"color","add"],[[5,"1"]]]]],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),_B=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=$e(t.sub(.004),W(0)),r=s.mul(s.mul(6.2).add(.5)),a=s.mul(s.mul(6.2).add(1.7)).add(.06);return io(r.div(a),W(2.2))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"c",[6,[7,"std","max"],[[6,[7,"color","sub"],[[5,"0.004"]]],[6,[7,"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,[7,"std","pow"],[[6,[7,"a","div"],["b"]],[6,[7,"d","vec3f"],[[5,"2.2"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Gw=bo(.59719,.076,.0284,.35458,.90834,.13383,.04823,.01566,.83777),Ww=bo(1.60475,-.10208,-.00327,-.53108,1.10813,-.07276,-.07367,-.00605,1.07602),Xw=b.fn([W],W)((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:1,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"]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),fB=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.div(.6);return s=Gw.mul(s),s=Xw(s),s=Ww.mul(s),xt(s,W(0),W(1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[12,"c",[6,[7,"color","div"],[[5,"0.6"]]]],[2,"c","=",[6,[7,"ACES_INPUT","mul"],["c"]]],[2,"c","=",[6,"rrtAndODTFit",["c"]]],[2,"c","=",[6,[7,"ACES_OUTPUT","mul"],["c"]]],[10,[6,[7,"std","clamp"],["c",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]]]],externalNames:["ACES_INPUT","rrtAndODTFit","ACES_OUTPUT","std","d"]},externals:()=>({ACES_INPUT:Gw,rrtAndODTFit:Xw,ACES_OUTPUT:Ww,std:n,d:o})})&&e.f)({})),qw=bo(.6274,.0691,.0164,.3293,.9195,.088,.0433,.0113,.8956),Hw=bo(1.6605,-.1246,-.0182,-.5876,1.1329,-.1006,-.0728,-.0083,1.1187),jw=bo(.856627153315983,.137318972929847,.11189821299995,.0951212405381588,.761241990602591,.0767994186031903,.0482516061458583,.101439036467562,.811302368396859),Zw=bo(1.1271005818144368,-.1413297634984383,-.14132976349843826,-.11060664309660323,1.157823702216272,-.11060664309660294,-.016493938717834573,-.016493938717834257,1.2519364065950405),V3=-12.47393,Kw=4.026069,Jw=b.fn([W],W)((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:1,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"]]]]]]]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),vB=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=qw.mul(t);return s=jw.mul(s),s=$e(s,W(1e-10)),s=Cc(s),s=s.sub(V3).div(__tsover_sub(Kw,V3)),s=xt(s,W(0),W(1)),s=Jw(s),s=Zw.mul(s),s=io($e(s,W(0)),W(2.2)),s=Hw.mul(s),xt(s,W(0),W(1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[12,"c",[6,[7,"LINEAR_SRGB_TO_LINEAR_REC2020","mul"],["color"]]],[2,"c","=",[6,[7,"AGX_INSET","mul"],["c"]]],[2,"c","=",[6,[7,"std","max"],["c",[6,[7,"d","vec3f"],[[5,"1e-10"]]]]]],[2,"c","=",[6,[7,"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,[7,"std","clamp"],["c",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[2,"c","=",[6,"agxContrastApprox",["c"]]],[2,"c","=",[6,[7,"AGX_OUTSET","mul"],["c"]]],[2,"c","=",[6,[7,"std","pow"],[[6,[7,"std","max"],["c",[6,[7,"d","vec3f"],[[5,"0"]]]]],[6,[7,"d","vec3f"],[[5,"2.2"]]]]]],[2,"c","=",[6,[7,"LINEAR_REC2020_TO_LINEAR_SRGB","mul"],["c"]]],[10,[6,[7,"std","clamp"],["c",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]]]],externalNames:["LINEAR_SRGB_TO_LINEAR_REC2020","AGX_INSET","std","d","AGX_MIN_EV","AGX_MAX_EV","agxContrastApprox","AGX_OUTSET","LINEAR_REC2020_TO_LINEAR_SRGB"]},externals:()=>({LINEAR_SRGB_TO_LINEAR_REC2020:qw,AGX_INSET:jw,std:n,d:o,AGX_MIN_EV:V3,AGX_MAX_EV:Kw,agxContrastApprox:Jw,AGX_OUTSET:Zw,LINEAR_REC2020_TO_LINEAR_SRGB:Hw})})&&e.f)({})),E1=.76,Qw=.15,eT={linear:pB,reinhard:mB,cineon:_B,aces:fB,agx:vB,neutral:b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Ct(t.x,Ct(t.y,t.z)),r=bt(.04,__tsover_sub(s,__tsover_mul(__tsover_mul(6.25,s),s)),s<.08),a=t.sub(r),i=$e(a.x,$e(a.y,a.z));if(i<E1)return a;let l=__tsover_sub(1,E1),c=__tsover_sub(1,__tsover_div(__tsover_mul(l,l),__tsover_sub(__tsover_add(i,l),E1)));a=a.mul(__tsover_div(c,i));let d=__tsover_sub(1,__tsover_div(1,__tsover_add(__tsover_mul(Qw,__tsover_sub(i,c)),1)));return Ft(a,W(c),d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"x",[6,[7,"std","min"],[[7,"color","x"],[6,[7,"std","min"],[[7,"color","y"],[7,"color","z"]]]]]],[13,"offset",[6,[7,"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,[7,"std","max"],[[7,"c","x"],[6,[7,"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,[7,"std","mix"],["c",[6,[7,"d","vec3f"],["newPeak"]],"g"]]]]],externalNames:["std","NEUTRAL_START_COMPRESSION","NEUTRAL_DESATURATION","d"]},externals:()=>({std:n,NEUTRAL_START_COMPRESSION:E1,NEUTRAL_DESATURATION:Qw,d:o})})&&e.f)({})),hable:b.fn([W],W)((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),a=s.mul(s.mul(.15).add(.5)).add(.06);return r.div(a).sub(__tsover_div(.02,.3))}),{v:1,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"]]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),unreal:b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return t.div(t.add(.155)).mul(1.019)}),{v:1,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"]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({}))},hB=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=io(t,W(.41666)).mul(1.055).sub(.055),r=t.mul(12.92),a=zd(t,W(.0031308));return bt(s,r,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"a",[6,[7,[6,[7,[6,[7,"std","pow"],["color",[6,[7,"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,[7,"std","le"],["color",[6,[7,"d","vec3f"],[[5,"0.0031308"]]]]]],[10,[6,[7,"std","select"],["a","b","factor"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),$1=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=io(t.add(W(.055)).div(W(1.055)),W(2.4)),r=t.div(W(12.92)),a=zd(t,W(.04045));return bt(s,r,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"hi",[6,[7,"std","pow"],[[6,[7,[6,[7,"color","add"],[[6,[7,"d","vec3f"],[[5,"0.055"]]]]],"div"],[[6,[7,"d","vec3f"],[[5,"1.055"]]]]],[6,[7,"d","vec3f"],[[5,"2.4"]]]]]],[13,"lo",[6,[7,"color","div"],[[6,[7,"d","vec3f"],[[5,"12.92"]]]]]],[13,"isLow",[6,[7,"std","le"],["color",[6,[7,"d","vec3f"],[[5,"0.04045"]]]]]],[10,[6,[7,"std","select"],["hi","lo","isLow"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Cl=e=>e?e.offsetX!==0||e.offsetY!==0||e.rotation!==0||e.scale!==1||e.anchorX!==.5||e.anchorY!==.5:!1,yB=b.fn([H,S,S,S,S,S,S,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(__tsover_mul(a,Math.PI),180),p=po(u),m=vs(u),_=__tsover_div(__tsover_sub(t.x,l),i),v=__tsover_div(__tsover_sub(t.y,c),i),h=__tsover_mul(_,d),y=v,x=__tsover_sub(__tsover_mul(h,p),__tsover_mul(y,m)),g=__tsover_add(__tsover_mul(h,m),__tsover_mul(y,p)),w=__tsover_add(__tsover_sub(__tsover_div(x,d),s),l),f=__tsover_add(__tsover_sub(g,r),c);return H(w,f)}),{v:1,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","*",[7,"Math","PI"]],"/",[5,"180"]]],[13,"cosAngle",[6,[7,"std","cos"],["rotationRad"]]],[13,"sinAngle",[6,[7,"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,[7,"d","vec2f"],["finalX","finalY"]]]]],externalNames:["Math","std","d"]},externals:()=>({Math,std:n,d:o})})&&e.f)({}));b.fn([H,S,S,S,S,S,S,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_add(__tsover_sub(t.x,l),s),p=__tsover_add(__tsover_sub(t.y,c),r),m=__tsover_mul(u,d),_=p,v=-__tsover_div(__tsover_mul(a,Math.PI),180),h=po(v),y=vs(v),x=__tsover_sub(__tsover_mul(m,h),__tsover_mul(_,y)),g=__tsover_add(__tsover_mul(m,y),__tsover_mul(_,h)),w=__tsover_mul(__tsover_div(x,d),i),f=__tsover_mul(g,i);return H(__tsover_add(w,l),__tsover_add(f,c))}),{v:1,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","*",[7,"Math","PI"]],"/",[5,"180"]]]],[13,"cosAngle",[6,[7,"std","cos"],["rotationRad"]]],[13,"sinAngle",[6,[7,"std","sin"],["rotationRad"]]],[13,"rotatedSquareX",[1,[1,"squareX","*","cosAngle"],"
235-",[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,[7,"d","vec2f"],[[1,"scaledX","+","anchorX"],[1,"scaledY","+","anchorY"]]]]]],externalNames:["Math","std","d"]},externals:()=>({Math,std:n,d:o})})&&e.f)({}));var Ax=(e,t,s)=>{let r=w=>w.unit==="px"?w.value/t:w.value,a=w=>w.unit==="px"?w.value/s:w.value,i=r(e.x),l=a(e.y),c=r(e.width),d=a(e.height),u=(w,f,A)=>A==="end"?1-w-f:A==="center"?.5+w-f/2:w,p=e.origin??"top-left",m=p.includes("left")?"start":p.includes("right")?"end":"center",_=p.includes("top")?"start":p.includes("bottom")?"end":"center",v=u(i,c,m),h=u(l,d,_),y=v+c/2,x=h+d/2,g=e.cornerRadius?e.cornerRadius.unit==="px"?e.cornerRadius.value/s:e.cornerRadius.value:0;return{centerX:y,centerY:x,halfWidthUV:c/2,halfHeightUV:d/2,cornerRadiusUV:g,rotation:e.rotation}},gB=b.fn([H,S,S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_sub(t.x,s),p=__tsover_sub(t.y,r),m=-__tsover_div(__tsover_mul(c,Math.PI),180),_=po(m),v=vs(m),h=__tsover_mul(u,d),y=p,x=__tsover_sub(__tsover_mul(h,_),__tsover_mul(y,v)),g=__tsover_add(__tsover_mul(h,v),__tsover_mul(y,_)),w=__tsover_mul(a,d),f=i,A=__tsover_sub(w,l),E=__tsover_sub(f,l),P=__tsover_sub(at(x),A),C=__tsover_sub(at(g),E),$=H($e(P,0),$e(C,0)),U=__tsover_sub(__tsover_add(It($),Ct($e(P,C),0)),l);return bt(S(0),S(1),U<=0)}),{v:1,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"}],body:[0,[[13,"centeredX",[1,[7,"uv","x"],"-","centerX"]],[13,"centeredY",[1,[7,"uv","y"],"-","centerY"]],[13,"rotRad",[4,"-",[1,[1,"rotation","*",[7,"Math","PI"]],"/",[5,"180"]]]],[13,"cosA",[6,[7,"std","cos"],["rotRad"]]],[13,"sinA",[6,[7,"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,[7,"std","abs"],["rotatedX"]],"-","innerHalfW"]],[13,"qy",[1,[6,[7,"std","abs"],["rotatedY"]],"-","innerHalfH"]],[13,"qClamped",[6,[7,"d","vec2f"],[[6,[7,"std","max"],["qx",[5,"0"]]],[6,[7,"std","max"],["qy",[5,"0"]]]]]],[13,"sdf",[1,[1,[6,[7,"std","length"],["qClamped"]],"+",[6,[7,"std","min"],[[6,[7,"std","max"],["qx","qy"]],[5,"0"]]]],"-","cornerRadius"]],[10,[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"sdf","<=",[5,"0"]]]]]]],externalNames:["Math","std","d"]},externals:()=>({Math,std:n,d:o})})&&e.f)({})),tT=b.fn([H,S,S,S,S,S,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_sub(t.x,s),u=__tsover_sub(t.y,r),p=-__tsover_div(__tsover_mul(l,Math.PI),180),m=po(p),_=vs(p),v=__tsover_mul(d,c),h=u,y=__tsover_sub(__tsover_mul(v,m),__tsover_mul(h,_)),x=__tsover_add(__tsover_mul(v,_),__tsover_mul(h,m)),g=$e(__tsover_mul(a,c),1e-6),w=$e(i,1e-6),f=__tsover_add(__tsover_div(y,__tsover_mul(g,2)),.5),A=__tsover_add(__tsover_div(x,__tsover_mul(w,2)),.5);return H(f,A)}),{v:1,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","*",[7,"Math","PI"]],"/",[5,"180"]]]],[13,"cosA",[6,[7,"std","cos"],["rotRad"]]],[13,"sinA",[6,[7,"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,[7,"std","max"],[[1,"halfWidth","*","aspectRatio"],[5,"0.000001"]]]],[13,"halfHeightSq",[6,[7,"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,[7,"d","vec2f"],["localX","localY"]]]]],externalNames:["Math","std","d"]},externals:()=>({Math,std:n,d:o})})&&e.f)({})),sS=(e,t,s)=>{let r=s.rotationDeg*Math.PI/180,a=Math.cos(r),i=Math.sin(r),l=(e-s.centerX)*s.aspectRatio,c=t-s.centerY,d=l*a+c*i,u=l*-i+c*a,p=Math.max(s.halfWidthUV*s.aspectRatio,1e-6),m=Math.max(s.halfHeightUV,1e-6);return{x:d/(2*p)+.5,y:u/(2*m)+.5}},mo=class C1{_emit;constructor(t){this._emit=t}member(t){return new C1(s=>`${xB(this._emit(s))}.${t}`)}mul(t){return new C1(s=>`(${this._emit(s)} * ${sT(t,s)})`)}
vendor: 4,526 bytes, lines 235-242
235add(t){return new C1(s=>`(${this._emit(s)} + ${sT(t,s)})`)}};function xB(e){return/^[\w.$]+$/.test(e)?e:`(${e})`}function sT(e,t){return typeof e=="number"?Tr(e):e._emit(t)}function Tr(e){return Number.isFinite(e)?Number.isInteger(e)?`${e}.0`:`${e}`:e>0?"3.4e38":e<0?"-3.4e38":"0.0"}var Ex=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({linearClamp:{sampler:"filtering"},nearestClamp:{sampler:"filtering"},linearRepeat:{sampler:"filtering"},nearestRepeat:{sampler:"filtering"}}).$idx(2),"SHARED_SAMPLER_LAYOUT"),Zp={uniforms:0,textures:1,samplers:2,external:3};function rr(e){return new mo(()=>e)}function le(e){return new mo(()=>Tr(e))}function T(e,t,s){return new mo(r=>`${r.external(e,t)}(${s.map(a=>a._emit(r)).join(", ")})`)}function de(...e){return new mo(t=>`vec4f(${e.map(s=>rS(s,t)).join(", ")})`)}function Ns(e,t,s){return new mo(r=>`mix(${e._emit(r)}, ${t._emit(r)}, ${rS(s,r)})`)}function oS(e,t){return new mo(s=>`array<${e}, ${t.length}>(${t.map(r=>r._emit(s)).join(", ")})`)}var me=rr("vec4f(0.0, 0.0, 0.0, 0.0)"),bB=rr("vec4f(1.0, 1.0, 1.0, 0.0)");function rS(e,t){return typeof e=="number"?Tr(e):e._emit(t)}function Gd(e,t,s,r){return T(nm[s]??nm.normal,`blend_${U1(s)}`,[e,t,r])}function wB(e,t,s){return T(Yw[s]??Yw.alpha,`mask_${U1(s)}`,[e,t])}function U1(e){return e.replace(/[^a-zA-Z0-9_]/g,"_")}function oT(e,t,s,r){let a={},i=new Map,l=new Set,c=[],d=new Map,u=0,p={external(y,x){let g=i.get(y);if(g)return g;let w=U1(x);if(l.has(w)){let f=1;for(;l.has(`${w}_${f}`);)f++;w=`${w}_${f}`}return l.add(w),i.set(y,w),a[w]=y,w},statement(y){c.push(y)},freshLocal(y){return`${U1(y)}_${u++}`},memo(y,x){let g=d.get(y);if(g!==void 0)return g;let w=x();return d.set(y,w),w}},m=s?"vec2f(in.uv.x, 1.0 - in.uv.y)":"in.uv";c.push(`var uv = ${m};`);let _=e._emit(p),v=t(_,p),h=`${c.join(`
236`)}
237${_}
238${v}`;return r&&/\b(?:tex|samp|ext)\.\$\./.test(h)&&!/\buni\.\$\./.test(h)&&(p.external(r,"uni"),c.unshift("_ = uni.$.uniforms._sys.time;")),{body:`{
239  ${c.join(`
240  `)}
241  return ${v};
242}`,externals:a}}function aS(e,t={}){let s={sampler:Ex},r=[],a=[],i=[],l=[],c=new Set,d=[],u=[],p=[],m=[],_=0,v=0,h=0,y=0,x=new Set,g=e.store.layout;g&&g.$idx(Zp.uniforms),s.uniform=g;let w=J=>new mo(be=>(g&&be.external(g,"uni"),J)),f=J=>w(`uni.$.uniforms.${J}`),A=J=>w(e.store.gpuAccessor(J,"uni")),E={uv:new mo(()=>"uv"),time:f("_sys.time"),viewportSize:f("_sys.viewportSize"),logicalViewportSize:f("_sys.logicalViewportSize"),aspect:f("_sys.aspect"),pointer:f("_sys.pointer")},P=J=>({key:J,sample:(be,ce="linearClamp")=>new mo(xe=>`textureSample(tex.$.${J}, samp.$.${ce}, ${be._emit(xe)})`),accessor:()=>new mo(()=>`tex.$.${J}`),dimensions:()=>new mo(()=>`vec2f(textureDimensions(tex.$.${J}))`)}),C=J=>({key:J,sample:(be,ce="linearClamp")=>new mo(xe=>`textureSampleBaseClampToEdge(ext.$.${J}, samp.$.${ce}, ${be._emit(xe)})`),accessor:()=>new mo(()=>`ext.$.${J}`),dimensions:()=>new mo(()=>`vec2f(textureDimensions(ext.$.${J}))`)}),$=J=>{let be=`rtt_${_++}`;return r.push({key:be,root:J}),a.push({key:be,kind:"rtt"}),P(be)},U=new Map,k=(J,be,ce)=>{let xe=`${J.id}:${be}`,ye=U.get(xe);if(ye!==void 0)return ye;let Ee=ce?e.resolveCustomId(ce):null,Le=Ee?$(Pe(Ee,new Set([J.id]))):null;return U.set(xe,Le),Le},R=new Map,D=J=>{let be=R.get(J.id);if(be)return be;let ce={},xe=J.metadata.maps;if(xe){let ye={},Ee=J.definition.mapSampleUVs;if(Ee){let Le={};for(let[ot,Ke]of Object.entries(J.handles))Ke.cpu||(Le[ot]=A(Ke));ye=Ee({uniforms:Le,ctx:E})??{}}for(let[Le,ot]of Object.entries(xe)){if(!(Le in J.handles))continue;let Ke=B(ot,J,Le,ye[Le]);Ke&&(ce[Le]=Ke)}}return R.set(J.id,ce),ce},M=J=>{let be=vn(J.id),ce=J.metadata.maps;if(!ce||Object.keys(ce).length===0)return f(be);let xe=D(J);return Object.keys(xe).length===0?f(be):new mo(ye=>ye.memo(`props:${J.id}`,()=>{g&&ye.external(g,"uni");let Ee=ye.freshLocal(`p_${be}`);ye.statement(`var ${Ee} = uni.$.uniforms.${be};`);for(let[Le,ot]of Object.entries(xe))ye.statement(`${Ee}.${Le} = ${ot._emit(ye)};`);return Ee}))},z=J=>{let be={};for(let[ce,xe]of Object.entries(J.handles))be[ce]=xe.value;return be},L=J=>{let be={};vn(J.id);let ce=M(J);for(let[ye,Ee]of Object.entries(J.handles)){if(Ee.cpu)continue;let Le=J.metadata.maps;Le&&ye in Le?be[ye]=ce.member(ye):be[ye]=A(Ee)}let xe=J.definition.extraFields;if(xe)for(let ye of Object.keys(xe))be[ye]=ce.member(ye);return be},B=(J,be,ce,xe)=>{let ye=J,Ee=vn(be.id);if(ye.type==="map"){let Le=k(be,ce,ye.source);return Le?AB(SB(Le.sample(xe??E.uv),ye.channel??"luminance"),f(`${Ee}._map_${ce}_inputMin`),f(`${Ee}._map_${ce}
242_inputMax`),f(`${Ee}._map_${ce}_outputMin`),f(`${Ee}._map_${ce}_outputMax`),f(`${Ee}._map_${ce}_curve`)):null}return ye.type==="mouse-position"||ye.type==="mouse"||ye.type==="auto-animate"?f(`${Ee}._smoothed_${ce}`):null},N=(J,be,ce,xe)=>{let ye=be.metadata.mask;if(!ye?.source)return J;let Ee=e.resolveCustomId(ye.source);if(!Ee)return J;if(ce.has(Ee))return console.error("[gpu] circular dependency in shader masks."),J;let Le=new Set(ce);Le.add(be.id);let ot=Pe(Ee,Le);return xe&&(ot=$(ot).sample(xe)),wB(J,ot,ye.type??"alpha")},G=J=>f(`${vn(J.id)}._opacity`),I=J=>!!J.metadata.boundingBox&&!!J.definition.boundingBoxDeclaration,X=J=>J.handles.cutout?.value===1,F=J=>!!J.definition.requiresChild,Q=J=>!!J.definition.blendWithChildren,ae=J=>I(J)&&!J.definition.boundingBoxDeclaration?.boxResamplesContent&&F(J)&&J.metadata.blendMode==="normal"&&!X(J)&&!Q(J),j=J=>{let be=vn(J.id),ce=xe=>f(`${be}._bbox_${xe}`);return T(gB,"bboxClipMask",[E.uv,ce("centerX"),ce("centerY"),ce("halfWidth"),ce("halfHeight"),ce("cornerRadius"),ce("rotation"),ce("aspectRatio")])},q=(J,be)=>{if(!I(be))return J;if(be.definition.boundingBoxDeclaration?.boxResamplesContent){let xe=vn(be.id),ye=Ke=>f(`${xe}._bbox_${Ke}`),Ee=$(J),Le=T(tT,"bboxGenUVContext",[E.uv,ye("centerX"),ye("centerY"),ye("halfWidth"),ye("halfHeight"),ye("rotation"),ye("aspectRatio")]),ot=T(Re,"unpremultiplyAlpha",[Ee.sample(Le)]);return de(ot.member("rgb"),ot.member("a").mul(j(be)))}let ce=j(be);return de(J.member("rgb"),J.member("a").mul(ce))},te=(J,be)=>{let ce=be.metadata.transform;if(!ce||!Cl(ce))return J;let xe=vn(be.id),ye=$(J),Ee=Le=>f(`${xe}._xform_${Le}`);return Gt(T(yB,"applyUVTransform",[E.uv,Ee("offsetX"),Ee("offsetY"),Ee("rotation"),Ee("scale"),Ee("anchorX"),Ee("anchorY"),Ee("aspectRatio")]),Le=>ye.sample(Le),EB[ce.edges]??0)},ne=(J,be,ce)=>I(ce)?be!==void 0&&ae(ce)?Ns(be,J,j(ce)):q(J,ce):te(J,ce),oe=(J,be)=>ae(be)?{transformedFragment:J,clipMaskNode:j(be)}:{transformedFragment:I(be)?q(J,be):te(J,be),clipMaskNode:void 0},pe=(J,be,ce,xe)=>{let ye=G(ce),Ee=Q(ce)?J!==void 0?Gd(J,be,"normal",ye):Ns(me,be,ye):Ns(J??me,be,ye);return xe===void 0?Ee:Ns(J??me,Ee,xe)},_e=(J,be)=>{if(J.definition.compute)try{let ce=J.definition.compute(be);if(ce)return l.push({nodeId:J.id,getComputeNodes:ce.getComputeNodes,bindInputs:ce.bindInputs}),ce.outputs}catch(ce){console.error(`[gpu] error initializing compute for node ${J.id}:`,ce)}},ge=J=>{let be=vn(J.id),ce=xe=>f(`${be}._bbox_${xe}`);return{centerX:ce("centerX"),centerY:ce("centerY"),halfWidth:ce("halfWidth"),halfHeight:ce("halfHeight"),rotation:ce("rotation")}},Me=J=>{let be=J.definition.boundingBoxDeclaration;return!!be&&(!!be.computeBounds||!!be.propBindings)},Se=J=>{if(!J.definition.wantsBoundsParams)return{};let be={};I(J)&&(be.ownBoundsParams=ge(J));let ce=[...e.getChildren(J.id)].sort((xe,ye)=>xe.metadata.renderOrder-ye.metadata.renderOrder);for(let xe of ce)if(xe.metadata.visible!==!1){if(I(xe)){be.childBoundsParams=ge(xe);break}if(Me(xe)){let ye=vn(J.id),Ee=Le=>f(`${ye}._childBounds_${Le}`);be.childBoundsParams={centerX:Ee("centerX"),centerY:Ee("centerY"),halfWidth:Ee("halfWidth"),halfHeight:Ee("halfHeight"),rotation:le(0)};break}}return be},Ae=(J,be,ce={})=>({props:M(J),uniforms:L(J),propValues:z(J),childNode:be,ctx:E,logicalViewportSize:E.logicalViewportSize,convertToTexture:$,declareTexture:xe=>{a.some(ye=>ye.key===xe.key)||a.push({key:xe.key,kind:"media",resource:xe._resource})},registerExternalTexture:xe=>{let ye=`video_${h++}`;return i.push({key:ye,getSource:xe}),C(ye)},registerComputeTexture:xe=>{let ye=`compute_${v++}`;a.push({key:ye,kind:"compute",resource:{texture:xe}});let Ee=xe?.props?.format;return(Ee==="r32float"||Ee==="rg32float"||Ee==="rgba32float")&&x.add(ye),P(ye)},createMediaTexture:xe=>t.createMediaTexture?.(xe)??(()=>{throw new Error("[gpu] createMediaTexture unavailable (no TextureManager injected)")})(),createDataTexture:xe=>t.createDataTexture?.(xe)??(()=>{throw new Error("[gpu] createDataTexture unavailable (no TextureManager injected)")})(),registerMediaTexture:xe=>{let ye=`media_${y++}`;return a.push({key:ye,kind:"media",resource:{get texture(){return xe()}}}),P(ye)},getCpuValue:xe=>{if(J.metadata.maps?.[xe]&&t.resolveDriverCpuValue){let ye=t.resolveDriverCpuValue(J.id,xe);if(ye!==void 0)return ye}return J.handles[xe]?.value},getMapInfo:xe=>{let ye=J.metadata.maps?.[xe];if(!ye||ye.type!=="map")return null;let Ee=k(J,xe,ye.source);return Ee?{sourceTexture:Ee,channel:ye.channel??"luminance",window:()=>t.resolveMapWindow?.(J.id,xe)??{inputMin:typeof ye.inputMin=="number"?ye.inputMin:0,inputMax:typeof ye.inputMa
vendor: 6,498 bytes, line 242
242x=="number"?ye.inputMax:1,outputMin:typeof ye.outputMin=="number"?ye.outputMin:0,outputMax:typeof ye.outputMax=="number"?ye.outputMax:1,curve:typeof ye.curve=="number"?ye.curve:0}}:null},setExtraField:(xe,ye)=>t.writeExtraField?.(J.id,xe,ye),onCleanup:xe=>m.push(xe),onBeforeRender:xe=>d.push(xe),onAfterRender:xe=>u.push(xe),onResize:xe=>p.push(xe),canvas:t.canvas,dimensions:t.dimensions??{width:1,height:1},gpu:t.gpu,domCanvas:J.domCanvas,...Se(J),...ce});function Pe(J,be=new Set){let ce=e.getNode(J);if(!ce)return me;let xe=e.getChildren(J);if(xe.length>0&&ce.definition.providesUVContextViaCompute){let Ke=vt(ce,xe,be);if(Ke!==null)return Ke}if(xe.length>0&&ce.definition.uvRemap){let Ke=He(ce,xe,be);if(Ke!==null)return Ke}if(xe.length===0){c.add(J);let Ke=Ae(ce,void 0,{bboxMask:Ge(ce),...ke(ce)});Ke.computeOutputs=_e(ce,Ke);let rt=ce.definition.fragment(Ke);return N(I(ce)?q(rt,ce):te(rt,ce),ce,be)}let ye=[...xe].sort((Ke,rt)=>Ke.metadata.renderOrder-rt.metadata.renderOrder),Ee=Ve(ye,be);if(Ee!==null){let Ke=Ae(ce,Ee,{bboxMask:Ge(ce)});Ke.computeOutputs=_e(ce,Ke);let rt=ce.definition.fragment(Ke);return N(I(ce)?q(rt,ce):te(rt,ce),ce,be)}let Le=De(ce,ye,be);c.add(J);let ot=Ae(ce,Le,{bboxMask:Ge(ce)});return ot.computeOutputs=_e(ce,ot),N(ne(ce.definition.fragment(ot),Le,ce),ce,be)}function De(J,be,ce){let xe;for(let ye=0;ye<be.length;ye++){let Ee=be[ye];if(Ee.metadata.visible===!1)continue;if(xe!==void 0&&qe(Ee)){let rt=Ne(be,ye,xe,ce);if(rt){xe=rt.node,ye=rt.endIndex;continue}}c.add(Ee.id);let Le=e.getChildren(Ee.id).length>0,ot,Ke;if(Le)ot=Pe(Ee.id,ce);else{let rt=xe;Ee.definition.requiresRTT&&xe!==void 0&&(rt=Gd(me,xe,"normal",le(1)));let Mt=Ae(Ee,rt,{bboxMask:Ge(Ee),...ke(Ee)});Mt.computeOutputs=_e(Ee,Mt);let ht=oe(Ee.definition.fragment(Mt),Ee);Ke=ht.clipMaskNode,ot=N(ht.transformedFragment,Ee,ce)}if(Ee.definition.requiresChild&&Ee.metadata.blendMode==="normal"&&!Le)xe=pe(xe,ot,Ee,Ke);else{let rt=Ee.metadata.blendMode??"normal",Mt=Ee.metadata.opacity??1;xe===void 0?xe=J.definition.requiresRTT||Mt!==1?Gd(bB,ot,rt,G(Ee)):ot:xe=Gd(xe,ot,rt,G(Ee))}}return xe}function ke(J){if(!I(J))return{};if(!J.definition.boundingBoxDeclaration?.supportsResizeFit)return{};let be=vn(J.id),ce=xe=>f(`${be}._bbox_${xe}`);return{uvContext:T(tT,"bboxGenUVContext",[E.uv,ce("centerX"),ce("centerY"),ce("halfWidth"),ce("halfHeight"),ce("rotation"),ce("aspectRatio")]),effectiveViewportSize:de(ce("halfWidth").mul(2).mul(E.viewportSize.member("x")),ce("halfHeight").mul(2).mul(E.viewportSize.member("y")),0,0).member("xy")}}function Ge(J){if(!(!I(J)||!J.definition.requiresRTT)&&!J.definition.boundingBoxDeclaration?.supportsResizeFit)return j(J)}let Oe=J=>!!J.metadata.mask||J.metadata.opacity!==void 0&&J.metadata.opacity<1||(J.metadata.blendMode??"normal")!=="normal"||Cl(J.metadata.transform)||I(J),qe=J=>!!J.definition.uvRemap&&e.getChildren(J.id).length===0&&!Oe(J);function We(J){let be=E.uv,ce=le(1);for(let xe=J.length-1;xe>=0;xe--){let ye=J[xe];c.add(ye.id);let Ee=_e(ye,Ae(ye,void 0)),Le=ye.definition.uvRemap({uv:be,mask:ce,uniforms:L(ye),propValues:z(ye),props:M(ye),aspect:E.aspect,onBeforeRender:ot=>d.push(ot),computeOutputs:Ee});be=Le.uv,ce=Le.mask}return{uv:be,mask:ce}}function Ve(J,be){let ce=J.filter(ht=>ht.metadata.visible!==!1);if(!ce.some(ht=>!!ht.definition.uvRemap)||ce.length<2)return null;let xe=ce.length;for(let ht=ce.length-1;ht>=0&&qe(ce[ht]);ht--)xe=ht;let ye=ce.slice(xe),Ee=ce.slice(0,xe);if(ye.length===0||Ee.length!==1)return null;let Le=Ee[0];if(!Le.definition.acceptsUVContext||e.getChildren(Le.id).length>0||Oe(Le))return null;c.add(Le.id);for(let ht of ye)c.add(ht.id);let{uv:ot,mask:Ke}=We(ye),rt=Ae(Le,void 0,{uvContext:ot});rt.computeOutputs=_e(Le,rt);let Mt=Le.definition.fragment(rt);return de(Mt.member("rgb"),Mt.member("a").mul(Ke))}function Ne(J,be,ce,xe){if(!qe(J[be]))return null;let ye=[],Ee=be;for(let rt=be;rt<J.length;rt++){let Mt=J[rt];if(Mt.metadata.visible!==!1){if(!qe(Mt))break;ye.push(Mt),Ee=rt}}if(ye.length===0)return null;for(let rt of ye)c.add(rt.id);let{uv:Le,mask:ot}=We(ye),Ke=$(Gd(me,ce,"normal",le(1))).sample(Le);return{node:de(Ke.member("rgb"),Ke.member("a").mul(ot)),endIndex:Ee}}function He(J,be,ce){if(!J.definition.uvRemap||Oe(J))return null;let xe=8,ye=[],Ee=J,Le=be,ot=null,Ke=null;for(let St=0;St<xe;St++){ye.push(Ee);let zt=Le.filter(Qt=>Qt.metadata.visible!==!1);if(zt.length!==1)return null;let $t=zt[0],Xe=e.getChildren($t.id);if($t.definition.acceptsUVContext&&Xe.length===0&&!Oe($t)){ot=$t;break}if($t.definition.uvRemap&&!Oe($t)&&Xe.length===1){Ee=$t,Le=Xe;continue}Ke=$t;break}if(!ot&&!Ke)return null;for(let St of ye)c.add(St.id);let{uv:rt,mask:Mt}=We([...ye].reverse()),ht;if(ot){c.add(ot.id);let St=Ae(ot,void 0,{uvContext:rt});St.computeOutputs=_e(ot,St);let zt=ot.definition.fragment(St);ht=de(zt.member("rgb"),zt.member("a").mul(Mt))}else{let St=$(Gd(me,Pe(Ke.id,ce),"normal",le(1))).sample(rt);ht=de(St.member("rgb"),St.member("a").mul(Mt))}return N(I(J)?q(ht,J):te(ht,J),J,ce)}function vt(J,be,ce){let xe=Xe=>!!Xe.metadata.mask||Xe.metadata.opacity!==void 0&&Xe.metadata.opacity<1||(Xe.metadata.blendMode??"normal")!=="normal"||Cl(Xe.metadata.transform)||I(Xe);if(!J.definition.providesUVContextViaCompute||xe(J))return null;let ye=[],Ee=J,Le=null,ot=be,Ke=8;for(let Xe=0;Xe<Ke;Xe++){ye.push(Ee);let Qt=ot.filter($s=>$s.metadata.visible!==!1);if(Qt.length!==1)return null;let Xt=Qt[0];if(xe(Xt))return null;let Ps=e.getChildren(Xt.id).length>0;if(Xt.definition.acceptsUVContext&&!Ps){Le=Xt;break}if(Xt.definition.providesUVContextViaCompute){Ee=Xt,ot=e.getChildren(Xt.id);continue}return null}if(!Le)return null;c.add(Le.id);for(let Xe of ye)c.add(Xe.id);let rt=[],Mt;for(let Xe=0;Xe<ye.length;Xe++){let Qt=ye[Xe],Xt=Ae(Qt,void 0,{computeOutputs:Mt?{_upstreamUVMap:Mt}:void 0}),Ps=_e(Qt,Xt);if(!Ps||!Ps.uvMaskMap)return null;Xt.computeOutputs=Ps,rt.push(Xt),Mt=Ps.uvMaskMap}let ht=Mt.sample(E.uv),St=de(ht.member("r"),ht.member("g"),0,0).member("xy"),zt=Ae(Le,void 0,{uvContext:St});zt.computeOutputs=_e(Le,zt);let $t=Le.definition.fragment(zt);for(let Xe=ye.length-1;Xe>=0;Xe--)rt[Xe].childNode=$t,rt[Xe].uvPropagationActive=!0,$t=ye[Xe].definition.fragment(rt[Xe]);return N(I(J)?q($t,J):te($t,J),J,ce)}let _t=e.rootId?Pe(e.rootId):me,Ze=r.map(J=>{let{body:be,externals:ce}=oT(J.root,xe=>xe,t.flipY??!0,s.uniform);return{textureKey:J.key,fragment:rT(be,ce,`rtt_${J.key}`,s.sampler,x)}}),it=t.toneMapping??"linear",Tt=oT(_t,(J,be)=>TB(J,be,it,t.premultiplyAlpha??!1),t.flipY??!0,s.uniform);
vendor: 4,725 bytes, line 242
242return{computeSteps:l,rttPasses:Ze,finalPass:rT(Tt.body,Tt.externals,"final",s.sampler,x),textures:a,externalTextures:i,layouts:{uniforms:s.uniform,samplers:s.sampler},onBeforeRender:d,onAfterRender:u,onResize:p,onCleanup:m,composedNodeIds:c}}function TB(e,t,s,r){let a=t.external(eT[s]??eT.linear,`tone_${s}`),i=t.external(hB,"linearToSrgb"),l=t.freshLocal("composed");t.statement(`var ${l} = ${e};`);let c=`${i}(${a}(${l}.rgb))`;return r?`vec4f(${c} * ${l}.a, ${l}.a)`:`vec4f(${c}, ${l}.a)`}function rT(e,t,s,r,a=new Set){let i=aT(e,/\btex\.\$\.(\w+)/g),l=aT(e,/\bext\.\$\.(\w+)/g),c=/\bsamp\.\$\./.test(e),d;if(i.length>0){let p={};for(let m of i)p[m]=a.has(m)?{texture:Sa(S),sampleType:"unfilterable-float"}:{texture:Sa(S)};d=(globalThis.__TYPEGPU_AUTONAME__??(m=>m))(b.bindGroupLayout(p).$idx(Zp.textures),"textureLayout"),t.tex=d}let u;if(l.length>0){let p={};for(let v of l)p[v]={externalTexture:wc()};let m=new Set([Zp.uniforms]);i.length>0&&m.add(Zp.textures),c&&m.add(Zp.samplers);let _=0;for(;m.has(_);)_++;u=(globalThis.__TYPEGPU_AUTONAME__??(v=>v))(b.bindGroupLayout(p).$idx(_),"externalLayout"),t.ext=u}return c&&(t.samp=r),{body:e,externals:t,entry:b.fragmentFn({in:{uv:H},out:ee})(e).$uses(t).$name(s),reads:i,externalReads:l,usesSamplers:c,textureLayout:d,externalLayout:u}}function aT(e,t){let s=new Set;for(let r of e.matchAll(t))s.add(r[1]);return[...s]}function SB(e,t){switch(t){case"alpha":return e.member("a");case"alphaInverted":return new mo(s=>`(1.0 - ${e._emit(s)}.a)`);case"luminanceInverted":return new mo(s=>`(1.0 - dot(${e._emit(s)}.rgb, vec3f(0.2126, 0.7152, 0.0722)))`);default:return new mo(s=>`dot(${e._emit(s)}.rgb, vec3f(0.2126, 0.7152, 0.0722))`)}}function AB(e,t,s,r,a,i){return new mo(l=>{let c=e._emit(l),d=t._emit(l),u=s._emit(l),p=r._emit(l),m=a._emit(l),_=i._emit(l);return`mix(${p}, ${m}, ${`pow(${`clamp((${c} - ${d}) / max(${u} - ${d}, 0.0001), 0.0, 1.0)`}, pow(2.0, -${_} * 2.0))`})`})}var EB={stretch:0,transparent:1,mirror:2,wrap:3};function nS(e,t={}){let s=[];s.push(`tone:${t.toneMapping??"linear"}`),s.push(`flipY:${t.flipY??!0}`),s.push(`premul:${t.premultiplyAlpha??!1}`);let r=a=>{let i=e.getNode(a);if(!i)return;let l=i.metadata,c=i.definition,d=Cl(l.transform),u=!!l.boundingBox&&!!c.boundingBoxDeclaration,p=(l.opacity??1)===0?"zero":"nonzero",m=l.mask?`${l.mask.source}:${l.mask.type}`:"none",_=[];for(let[v,h]of Object.entries(c.props??{}))if(h.compileTime){let y=i.handles[v];_.push(`${v}=${y?String(y.value):"?"}`)}s.push([`id:${i.id}`,`name:${i.componentName}`,`blend:${l.blendMode??"normal"}`,`mask:${m}`,`order:${l.renderOrder??0}`,`visible:${l.visible!==!1}`,`opacity:${p}`,`xform:${d}${d?`:${l.transform?.edges??"transparent"}`:""}`,`bbox:${u}:${u?c.boundingBoxDeclaration?.boxResamplesContent?"resample":c.boundingBoxDeclaration?.supportsResizeFit?"resize":"clip":""}`,`rtt:${!!c.requiresRTT}`,`maps:${l.maps?Object.keys(l.maps).sort().join(","):""}`,`ct:${_.sort().join("|")}`].join("|"));for(let v of e.getChildren(a).sort((h,y)=>h.metadata.renderOrder-y.metadata.renderOrder))r(v.id)};return e.rootId&&r(e.rootId),s}var iS=wr({applyEdgeHandling:()=>CB,applyEdgeHandlingExpr:()=>Gt,applyEdgeToUV:()=>lS,applyEdgeToUVExpr:()=>cS,composeEdgeRemap:()=>MB,composeEdgeRemapExpr:()=>zs,edgeClampUV:()=>Fc,edgeMirrorUV:()=>zi,edgeTransparentMask:()=>Bc,edgeWrapUV:()=>Ii}),Fc=b.fn([H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return xt(t,H(0,0),H(1,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[10,[6,[7,"std","clamp"],["uv",[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]],[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),zi=b.fn([H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Vn(at(t.x),2),r=Vn(at(t.y),2);return H(bt(s,__tsover_sub(2,s),s>=1),bt(r,__tsover_sub(2,r),r>=1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"mirrorX",[6,[7,"std","mod"],[[6,[7,"std","abs"],[[7,"uv","x"]]],[5,"2"]]]],[13,"mirrorY",[6,[7,"std","mod"],[[6,[7,"std","abs"],[[7,"uv","y"]]],[5,"2"]]]],[10,[6,[7,"d","vec2f"],[[6,[7,"std","select"],["mirrorX",[1,[5,"2"],"-","mirrorX"],[1,"mirrorX",">=",[5,"1"]]]],[6,[7,"std","select"],["mirrorY",[1,[5,"2"],"-","mirrorY"],[1,"mirrorY",">=",[5,"1"]]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Ii=b.fn([H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return Ur(t)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[10,[6,[7,"std","fract"],["uv"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Bc=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";
242let s=__tsover_mul(gl(0,t.x),gl(t.x,1)),r=__tsover_mul(gl(0,t.y),gl(t.y,1));return __tsover_mul(s,r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"inX",[1,[6,[7,"std","step"],[[5,"0"],[7,"uv","x"]]],"*",[6,[7,"std","step"],[[7,"uv","x"],[5,"1"]]]]],[13,"inY",[1,[6,[7,"std","step"],[[5,"0"],[7,"uv","y"]]],"*",[6,[7,"std","step"],[[7,"uv","y"],[5,"1"]]]]],[10,[1,"inX","*","inY"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),tu=1,F1=2,B1=3,lS=(e,t)=>{switch(t){case tu:return e;case F1:return zi(e);case B1:return Ii(e);default:return Fc(e)}},MB=(e,t,s)=>s===tu?{uv:e,mask:t*Bc(e)}:{uv:lS(e,s),mask:t},CB=(e,t,s,r)=>{switch(r){case tu:return PB(t,Bc(e));case F1:return s?s(zi(e)):t;case B1:return s?s(Ii(e)):t;default:return t}},PB=b.fn([ee,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ee(t.x,t.y,t.z,__tsover_mul(t.w,s))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"m"}],body:[0,[[10,[6,[7,"d","vec4f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"],[1,[7,"color","w"],"*","m"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),cS=(e,t)=>{switch(t){case tu:return e;case F1:return T(zi,"edgeMirrorUV",[e]);case B1:return T(Ii,"edgeWrapUV",[e]);default:return T(Fc,"edgeClampUV",[e])}},zs=(e,t,s)=>{if(s===tu){let r=T(Bc,"edgeTransparentMask",[e]);return{uv:e,mask:t.mul(r)}}return{uv:cS(e,s),mask:t}},Gt=(e,t,s)=>{if(s===tu){let r=t(e),a=T(Bc,"edgeTransparentMask",[e]);return de(r.member("rgb"),r.member("a").mul(a))}return t(s===F1?T(zi,"edgeMirrorUV",[e]):s===B1?T(Ii,"edgeWrapUV",[e]):e)};function kB(){let e={value:0,advance(t,s){e.value+=t*s}};return e}var nT=new WeakMap;function $l(e){let t=nT.get(e);return t||(t=kB(),nT.set(e,t)),t}var dS=wr({MAX_COLOR_STOPS:()=>8,colorStopsPropConfig:()=>BB,colorStopsTransform:()=>uS,gradientStopsInSpace:()=>Em,mixColorStops:()=>LB,mixColorStopsRuntime:()=>js,packConvertedStops:()=>Am,packStops:()=>Sm,resolveStops:()=>RB,sortStops:()=>Mx});var uS=e=>e;function Mx(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 RB(e){return Array.isArray(e.stops)&&e.stops.length>0?Mx(e.stops):[{color:e.colorA??"#1aff00",position:0},{color:e.colorB??"#0000ff",position:1}]}function Sm(e,t){let s=new Array(32).fill(0),r=new Array(8).fill(0),a=Array.isArray(e)&&e.length>0?Mx(e):[],i=Math.min(a.length,8);for(let l=0;l<i;l++){let c=t(a[l].color);s[l*4]=c[0],s[l*4+1]=c[1],s[l*4+2]=c[2],s[l*4+3]=c[3],r[l]=a[l].position}return{colors:s,positions:r,stopCount:i}}function Am(e,t,s){let r=new Array(24).fill(0);for(let a=0;a<t;a++){let i=Tm(e[a*4],e[a*4+1],e[a*4+2],s);r[a*3]=i[0],r[a*3+1]=i[1],r[a*3+2]=i[2]}return r}var $B=b.fn([W,S],ua)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ua({conv:t,alpha:s})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"conv"},{type:"i",name:"alpha"}],body:[0,[[10,[6,"MixStep",[[104,{conv:"conv",alpha:"alpha"}]]]]]],externalNames:["MixStep"]},externals:()=>({MixStep:ua})})&&e.f)({})),UB=b.fn([ua,W,S,S,S,S],ua)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=xt(__tsover_div(__tsover_sub(a,i),$e(__tsover_sub(l,i),1e-6)),0,1);return am(t.conv,t.alpha,s,r,c)}),{v:1,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,[7,"std","clamp"],[[1,[1,"tClamped","-","posA"],"/",[6,[7,"std","max"],[[1,"posB","-","posA"],[5,"0.000001"]]]],[5,"0"],[5,"1"]]]],[10,[6,"mixPreconvertedInSpace",[[7,"running","conv"],[7,"running","alpha"],"convI","alphaI","seg"]]]]],externalNames:["std","mixPreconvertedInSpace"]},externals:()=>({std:n,mixPreconvertedInSpace:am})})&&e.f)({})),DB=b.fn([ua],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return t.conv}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[10,[7,"s","conv"]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),zB=b.fn([ua],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return t.alpha}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[10,[7,"s","alpha"]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),IB=b.fn([W,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ee(t,s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"a"}],body:[0,[[10,[6,[7,"d","vec4f"],["rgb","a"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({}));function LB(e,t,s,r){if(e<=1)return null;let a=xt(s,0,1),i=$B(r.convAt(0),r.alphaAt(0));for(let l=1;l<e;l++)i=UB(i,r.convAt(l),r.alphaAt(l),a,r.positionAt(l-1),r.positionAt(l));return IB(PT(DB(i),t),zB(i))}
vendor: 97,646 bytes, line 242
242var Em=b.fn([S,qs(ee,8),qs(ee,8/4),qs(W,8),S],ua)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=xt(t,0,1),c=fe(i),d=a[0],u=W(d.x,d.y,d.z),p=s[0].w;for(let m=1;m<c;m++){let _=r[__tsover_sub(m,1)>>2],v=r[m>>2],h=_[__tsover_sub(m,1)&3],y=v[m&3],x=xt(__tsover_div(__tsover_sub(l,h),$e(__tsover_sub(y,h),1e-6)),0,1),g=am(u,p,a[m],s[m].w,x);u=W(g.conv.x,g.conv.y,g.conv.z),p=g.alpha}return ua({conv:u,alpha:p})}),{v:1,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,[7,"std","clamp"],["t",[5,"0"],[5,"1"]]]],[13,"n",[6,[7,"d","i32"],["stopCount"]]],[13,"c0",[8,"converted",[5,"0"]]],[12,"conv",[6,[7,"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,[7,"std","clamp"],[[1,[1,"clampedT","-","posA"],"/",[6,[7,"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,[7,"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"}]]]]]],externalNames:["std","d","mixPreconvertedInSpace","MixStep"]},externals:()=>({std:n,d:o,mixPreconvertedInSpace:am,MixStep:ua})})&&e.f)({}));function FB(e,t){switch(t){case 1:return T(Zt,"sRGBToP3",[T(Zo,"oklabToRgb",[T(yn,"oklchToOklab",[e])])]);case 2:return T(Zt,"sRGBToP3",[T(Zo,"oklabToRgb",[e])]);case 3:return T(Zt,"sRGBToP3",[T(ki,"hslToRgb",[e])]);case 4:return T(Zt,"sRGBToP3",[T(Ri,"hsvToRgb",[e])]);case 5:return T(Zt,"sRGBToP3",[T($i,"labToRgb",[T(Ui,"lchToLab",[e])])]);default:return e}}function js(e,t,s){let r=T(Em,"gradientStopsInSpace",[e,t.colorsArray,t.positionsArray,t.convertedColorsArray,t.stopCount]);return de(FB(r.member("conv"),s),r.member("alpha"))}function BB(){return{default:null,transform:uS,compileTimeWhen:(e,t)=>{let s=r=>{let a=Array.isArray(r)?r.length:0;return a>1?a: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 mt=wr({blue12:()=>$x,curl22:()=>Lc,curl22z:()=>kx,erosion12:()=>Ix,fbmPerlin:()=>sx,gabor12:()=>Px,hash11:()=>V1,hash12:()=>Jr,hash13:()=>NB,hash22:()=>ca,hash32:()=>OB,hash33:()=>Kd,hilbertBlue12:()=>YB,mxBilerp:()=>X3,mxBitsTo01:()=>Pi,mxBjfinal:()=>Ic,mxCellNoiseVec3_2d:()=>Z3,mxCellNoiseVec3_3d:()=>K3,mxFade:()=>El,mxGradientFloat2:()=>Xd,mxGradientFloat3:()=>Xn,mxGradientScale2d:()=>G3,mxGradientScale3d:()=>W3,mxHashInt1:()=>Wd,mxHashInt2:()=>la,mxHashInt3:()=>Kp,mxNoiseFloat2:()=>Vt,mxNoiseFloat3:()=>Io,mxPerlinNoiseFloat2:()=>H3,mxPerlinNoiseFloat3:()=>j3,mxRotl32:()=>Dr,mxTrilerp:()=>q3,mxWorleyDistance2d:()=>J3,mxWorleyDistance3d:()=>Q3,mxWorleyNoiseFloat2:()=>ex,mxWorleyNoiseFloat2Pub:()=>Pa,mxWorleyNoiseFloat3:()=>tx,mxWorleyNoiseFloat3Pub:()=>VB,paper12:()=>Lx,perlin12:()=>Tl,perlin12d:()=>Di,perlin13:()=>Sl,perm4:()=>qd,scratches12:()=>Ux,stone12:()=>Dx,value12:()=>tn,value13:()=>Cx,wavelet12:()=>Rx,wool12:()=>zx}),Dr=b.fn([ie,fe],ie)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return t<<ie(s)|t>>ie(__tsover_sub(fe(32),s))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"k"}],body:[0,[[10,[1,[1,"x","<<",[6,[7,"d","u32"],["k"]]],"|",[1,"x",">>",[6,[7,"d","u32"],[[1,[6,[7,"d","i32"],[[5,"32"]]],"-","k"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Ic=b.fn([ie,ie,ie],ie)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=t,i=s,l=r;return l=l^i,l=__tsover_sub(l,Dr(i,fe(14))),a=a^l,a=__tsover_sub(a,Dr(l,fe(11))),i=i^a,i=__tsover_sub(i,Dr(a,fe(25))),l=l^i,l=__tsover_sub(l,Dr(i,fe(16))),a=a^l,a=__tsover_sub(a,Dr(l,fe(4))),i=i^a,i=__tsover_sub(i,Dr(a,fe(14))),l=l^i,l=__tsover_sub(l,Dr(i,fe(24))),l}),{v:1,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,[7,"d","i32"],[[5,"14"]]]]]]],[2,"a","=",[1,"a","^","c"]],[2,"a","=",[1,"a","-",[6,"mxRotl32",["c",[6,[7,"d","i32"],[[5,"11"]]]]]]],[2,"b","=",[1,"b","^","a"]],[2,"b","=",[1,"b","-",[6,"mxRotl32",["a",[6,[7,"d","i32"],[[5,"25"]]]]]]],[2,"c","=",[1,"c","^","b"]],[2,"c","=",[1,"c","-",[6,"mxRotl32",["b",[6,[7,"d","i32"],[[5,"16"]]]]]]],[2,"a","=",[1,"a","^","c"]],[2,"a","=",[1,"a","-",[6,"mxRotl32",["c",[6,[7,"d","i32"],[[5,"4"]]]]]]],[2,"b","=",[1,"b","^","a"]],[2,"b","=",[1,"b","-",[6,"mxRotl32",["a",[6,[7,"d","i32"],[[5,"14"]]]]]]],[2,"c","=",[1,"c","^","b"]],[2,"c","=",[1,"c","-",[6,"mxRotl32",["b",[6,[7,"d","i32"],[[5,"24"]]]]]]],[10,"c"]]],externalNames:["mxRotl32","d"]},externals:()=>({mxRotl32:Dr,d:o})})&&e.f)({})),jd=3735928559,Wd=b.fn([fe,fe],ie)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=ie(2),a=__tsover_add(__tsover_add(ie(jd),r<<ie(2)),ie(13));return Ic(__tsover_add(a,ie(t)),__tsover_add(a,ie(s)),a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[13,"len",[6,[7,"d","u32"],[[5,"2"]]]],[13,"seed",[1,[1,[6,[7,"d","u32"],["DEADBEEF"]],"+",[1,"len","<<",[6,[7,"d","u32"],[[5,"2"]]]]],"+",[6,[7,"d","u32"],[[5,"13"]]]]],[13,"a",[1,"seed","+",[6,[7,"d","u32"],["x"]]]],[13,"b",[1,"seed","+",[6,[7,"d","u32"],["y"]]]],[10,[6,"mxBjfinal",["a","b","seed"]]]]],externalNames:["d","DEADBEEF","mxBjfinal"]},externals:()=>({d:o,DEADBEEF:jd,mxBjfinal:Ic})})&&e.f)({})),la=b.fn([fe,fe,fe],ie)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=ie(3),i=__tsover_add(__tsover_add(ie(jd),a<<ie(2)),ie(13));return Ic(__tsover_add(i,ie(t)),__tsover_add(i,ie(s)),__tsover_add(i,ie(r)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"},{type:"i",name:"z"}],body:[0,[[13,"len",[6,[7,"d","u32"],[[5,"3"]]]],[13,"seed",[1,[1,[6,[7,"d","u32"],["DEADBEEF"]],"+",[1,"len","<<",[6,[7,"d","u32"],[[5,"2"]]]]],"+",[6,[7,"d","u32"],[[5,"13"]]]]],[13,"a",[1,"seed","+",[6,[7,"d","u32"],["x"]]]],[13,"b",[1,"seed","+",[6,[7,"d","u32"],["y"]]]],[13,"c",[1,"seed","+",[6,[7,"d","u32"],["z"]]]],[10,[6,"mxBjfinal",["a","b","c"]]]]],externalNames:["d","DEADBEEF","mxBjfinal"]},externals:()=>({d:o,DEADBEEF:jd,mxBjfinal:Ic})})&&e.f)({})),Kp=b.fn([fe,fe,fe,fe],ie)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=ie(4),l=__tsover_add(__tsover_add(ie(jd),i<<ie(2)),ie(13)),c=__tsover_add(l,ie(t)),d=__tsover_add(l,ie(s)),u=__tsover_add(l,ie(r));return c=__tsover_sub(c,u),c=c^Dr(u,fe(4)),u=__tsover_add(u,d),d=__tsover_sub(d,c),d=d^Dr(c,fe(6)),c=__tsover_add(c,u),u=__tsover_sub(u,d),u=u^Dr(d,fe(8)),d=__tsover_add(d,c),c=__tsover_sub(c,u),c=c^Dr(u,fe(16)),u=__tsover_add(u,d),d=__tsover_sub(d,c),d=d^Dr(c,fe(19)),c=__tsover_add(c,u),u=__tsover_sub(u,d),u=u^Dr(d,fe(4)),d=__tsover_add(d,c),c=__tsover_add(c,ie(a)),Ic(c,d,u)}),{v:1,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,[7,"d","u32"],[[5,"4"]]]],[13,"seed",[1,[1,[6,[7,"d","u32"],["DEADBEEF"]],"+",[1,"len","<<",[6,[7,"d","u32"],[[5,"2"]]]]],"+",[6,[7,"d","u32"],[[5,"13"]]]]],[12,"a",[1,"seed","+",[6,[7,"d","u32"],["x"]]]],[12,"b",[1,"seed","+",[6,[7,"d","u32"],["y"]]]],[12,"c",[1,"seed","+",[6,[7,"d","u32"],["z"]]]],[2,"a","=",[1,"a","-","c"]],[2,"a","=",[1,"a","^",[6,"mxRotl32",["c",[6,[7,"d","i32"],[[5,"4"]]]]]]],[2,"c","=",[1,"c","+","b"]],[2,"b","=",[1,"b","-","a"]],[2,"b","=",[1,"b","^",[6,"mxRotl32",["a",[6,[7,"d","i32"],[[5,"6"]]]]]]],[2,"a","=",[1,"a","+","c"]],[2,"c","=",[1,"c","-","b"]],[2,"c","=",[1,"c","^",[6,"mxRotl32",["b",[6,[7,"d","i32"],[[5,"8"]]]]]]],[2,"b","=",[1,"b","+","a"]],[2,"a","=",[1,"a","-","c"]],[2,"a","=",[1,"a","^",[6,"mxRotl32",["c",[6,[7,"d","i32"],[[5,"16"]]]]]]],[2,"c","=",[1,"c","+","b"]],[2,"b","=",[1,"b","-","a"]],[2,"b","=",[1,"b","^",[6,"mxRotl32",["a",[6,[7,"d","i32"],[[5,"19"]]]]]]],[2,"a","=",[1,"a","+","c"]],[2,"c","=",[1,"c","-","b"]],[2,"c","=",[1,"c","^",[6,"mxRotl32",["b",[6,[7,"d","i32"],[[5,"4"]]]]]]],[2,"b","=",[1,"b","+","a"]],[2,"a","=",[1,"a","+",[6,[7,"d","u32"],["xx"]]]],[10,[6,"mxBjfinal",["a","b","c"]]]]],externalNames:["d","DEADBEEF","mxRotl32","mxBjfinal"]},externals:()=>({d:o,DEADBEEF:jd,mxRotl32:Dr,mxBjfinal:Ic})})&&e.f)({})),Pi=b.fn([ie],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(S(t),S(4294967295))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"bits"}],body:[0,[[10,[1,[6,[7,"d","f32"],["bits"]],"/",[6,[7,"d","f32"],[[5,"4294967295"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),El=b.fn([S],S)((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:1,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"]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),Xd=b.fn([ie,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=t&ie(7),i=bt(r,s,a<ie(4)),l=__tsover_mul(2,bt(s,r,a<ie(4))),c=bt(i,-i,(a&ie(1))!==ie(0)),d=bt(l,-l,(a&ie(2))!==ie(0));return __tsover_add(c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"hash"},{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[13,"h",[1,"hash","&",[6,[7,"d","u32"],[[5,"7"]]]]],[13,"u",[6,[7,"std","select"],["y","x",[1,"h","<",[6,[7,"d","u32"],[[5,"4"]]]]]]],[13,"v",[1,[5,"2"],"*",[6,[7,"std","select"],["x","y",[1,"h","<",[6,[7,"d","u32"],[[5,"4"]]]]]]]],[13,"uu",[6,[7,"std","select"],["u",[4,"-","u"],[1,[1,"h","&",[6,[7,"d","u32"],[[5,"1"]]]],"!==",[6,[7,"d","u32"],[[5,"0"]]]]]]],[13,"vv",[6,[7,"std","select"],["v",[4,"-","v"],[1,[1,"h","&",[6,[7,"d","u32"],[[5,"2"]]]],"!==",[6,[7,"d","u32"],[[5,"0"]]]]]]],[10,[1,"uu","+","vv"]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),Xn=b.fn([ie,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=t&ie(15),l=bt(r,s,i<ie(8)),c=bt(a,s,i===ie(12)||i===ie(14)),d=bt(c,r,i<ie(4)),u=bt(l,-l,(i&ie(1))!==ie(0)),p=bt(d,-d,(i&ie(2))!==ie(0));return __tsover_add(u,p)}),{v:1,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,[7,"d","u32"],[[5,"15"]]]]],[13,"u",[6,[7,"std","select"],["y","x",[1,"h","<",[6,[7,"d","u32"],[[5,"8"]]]]]]],[13,"inner",[6,[7,"std","select"],["z","x",[3,[1,"h","===",[6,[7,"d","u32"],[[5,"12"]]]],"||",[1,"h","===",[6,[7,"d","u32"],[[5,"14"]]]]]]]],[13,"v",[6,[7,"std","select"],["inner","y",[1,"h","<",[6,[7,"d","u32"],[[5,"4"]]]]]]],[13,"uu",[6,[7,"std","select"],["u",[4,"-","u"],[1,[1,"h","&",[6,[7,"d","u32"],[[5,"1"]]]],"!==",[6,[7,"d","u32"],[[5,"0"]]]]]]],[13,"vv",[6,[7,"std","select"],["v",[4,"-","v"],[1,[1,"h","&",[6,[7,"d","u32"],[[5,"2"]]]],"!==",[6,[7,"d","u32"],[[5,"0"]]]]]]],[10,[1,"uu","+","vv"]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),G3=b.fn([S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(.6616,t)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[1,[5,"0.6616"],"*","v"]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),W3=b.fn([S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(.982,t)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"v"}],body:[0,[[10,[1,[5,"0.982"],"*","v"]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),X3=b.fn([S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_sub(1,i);return __tsover_add(__tsover_mul(__tsover_sub(1,l),__tsover_add(__tsover_mul(t,c),__tsover_mul(s,i))),__tsover_mul(l,__tsover_add(__tsover_mul(r,c),__tsover_mul(a,i))))}),{v:1,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"]]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),q3=b.fn([S,S,S,S,S,S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=__tsover_sub(1,u),v=__tsover_sub(1,p),h=__tsover_sub(1,m);return __tsover_add(__tsover_mul(h,__tsover_add(__tsover_mul(v,__tsover_add(__tsover_mul(t,_),__tsover_mul(s,u))),__tsover_mul(p,__tsover_add(__tsover_mul(r,_),__tsover_mul(a,u))))),__tsover_mul(m,__tsover_add(__tsover_mul(v,__tsover_add(__tsover_mul(i,_),__tsover_mul(l,u))),__tsover_mul(p,__tsover_add(__tsover_mul(c,_),__tsover_mul(d,u))))))}),{v:1,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"]]]]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),H3=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=fe(Lt(t.x)),r=fe(Lt(t.y)),a=__tsover_sub(t.x,S(s)),i=__tsover_sub(t.y,S(r)),l=El(a),c=El(i);return G3(X3(Xd(Wd(s,r),a,i),Xd(Wd(__tsover_add(s,fe(1)),r),__tsover_sub(a,1),i),Xd(Wd(s,__tsover_add(r,fe(1))),a,__tsover_sub(i,1)),Xd(Wd(__tsover_add(s,fe(1)),__tsover_add(r,fe(1))),__tsover_sub(a,1),__tsover_sub(i,1)),l,c))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"X",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","x"]]]]]],[13,"Y",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","y"]]]]]],[13,"fx",[1,[7,"p","x"],"-",[6,[7,"d","f32"],["X"]]]],[13,"fy",[1,[7,"p","y"],"-",[6,[7,"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,[7,"d","i32"],[[5,"1"]]]],"Y"]],[1,"fx","-",[5,"1"]],"fy"]],[6,"mxGradientFloat2",[[6,"mxHashInt1",["X",[1,"Y","+",[6,[7,"d","i32"],[[5,"1"]]]]]],"fx",[1,"fy","-",[5,"1"]]]],[6,"mxGradientFloat2",[[6,"mxHashInt1",[[1,"X","+",[6,[7,"d","i32"],[[5,"1"]]]],[1,"Y","+",[6,[7,"d","i32"],[[5,"1"]]]]]],[1,"fx","-",[5,"1"]],[1,"fy","-",[5,"1"]]]],"u","v"]]],[10,[6,"mxGradientScale2d",["result"]]]]],externalNames:["d","std","mxFade","mxBilerp","mxGradientFloat2","mxHashInt1","mxGradientScale2d"]},externals:()=>({d:o,std:n,mxFade:El,mxBilerp:X3,mxGradientFloat2:Xd,mxHashInt1:Wd,mxGradientScale2d:G3})})&&e.f)({})),j3=b.fn([W],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=fe(Lt(t.x)),r=fe(Lt(t.y)),a=fe(Lt(t.z)),i=__tsover_sub(t.x,S(s)),l=__tsover_sub(t.y,S(r)),c=__tsover_sub(t.z,S(a)),d=El(i),u=El(l),p=El(c);return W3(q3(Xn(la(s,r,a),i,l,c),Xn(la(__tsover_add(s,fe(1)),r,a),__tsover_sub(i,1),l,c),Xn(la(s,__tsover_add(r,fe(1)),a),i,__tsover_sub(l,1),c),Xn(la(__tsover_add(s,fe(1)),__tsover_add(r,fe(1)),a),__tsover_sub(i,1),__tsover_sub(l,1),c),Xn(la(s,r,__tsover_add(a,fe(1))),i,l,__tsover_sub(c,1)),Xn(la(__tsover_add(s,fe(1)),r,__tsover_add(a,fe(1))),__tsover_sub(i,1),l,__tsover_sub(c,1)),Xn(la(s,__tsover_add(r,fe(1)),__tsover_add(a,fe(1))),i,__tsover_sub(l,1),__tsover_sub(c,1)),Xn(la(__tsover_add(s,fe(1)),__tsover_add(r,fe(1)),__tsover_add(a,fe(1))),__tsover_sub(i,1),__tsover_sub(l,1),__tsover_sub(c,1)),d,u,p))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"X",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","x"]]]]]],[13,"Y",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","y"]]]]]],[13,"Z",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","z"]]]]]],[13,"fx",[1,[7,"p","x"],"-",[6,[7,"d","f32"],["X"]]]],[13,"fy",[1,[7,"p","y"],"-",[6,[7,"d","f32"],["Y"]]]],[13,"fz",[1,[7,"p","z"],"-",[6,[7,"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,[7,"d","i32"],[[5,"1"]]]],"Y","Z"]],[1,"fx","-",[5,"1"]],"fy","fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",["X",[1,"Y","+",[6,[7,"d","i32"],[[5,"1"]]]],"Z"]],"fx",[1,"fy","-",[5,"1"]],"fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,[7,"d","i32"],[[5,"1"]]]],[1,"Y","+",[6,[7,"d","i32"],[[5,"1"]]]],"Z"]],[1,"fx","-",[5,"1"]],[1,"fy","-",[5,"1"]],"fz"]],[6,"mxGradientFloat3",[[6,"mxHashInt2",["X","Y",[1,"Z","+",[6,[7,"d","i32"],[[5,"1"]]]]]],"fx","fy",[1,"fz","-",[5,"1"]]]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,[7,"d","i32"],[[5,"1"]]]],"Y",[1,"Z","+",[6,[7,"d","i32"],[[5,"1"]]]]]],[1,"fx","-",[5,"1"]],"fy",[1,"fz","-",[5,"1"]]]],[6,"mxGradientFloat3",[[6,"mxHashInt2",["X",[1,"Y","+",[6,[7,"d","i32"],[[5,"1"]]]],[1,"Z","+",[6,[7,"d","i32"],[[5,"1"]]]]]],"fx",[1,"fy","-",[5,"1"]],[1,"fz","-",[5,"1"]]]],[6,"mxGradientFloat3",[[6,"mxHashInt2",[[1,"X","+",[6,[7,"d","i32"],[[5,"1"]]]],[1,"Y","+",[6,[7,"d","i32"],[[5,"1"]]]],[1,"Z","+",[6,[7,"d","i32"],[[5,"1"]]]]]],[1,"fx","-",[5,"1"]],[1,"fy","-",[5,"1"]],[1,"fz","-",[5,"1"]]]],"u","v","w"]]],[10,[6,"mxGradientScale3d",["result"]]]]],externalNames:["d","std","mxFade","mxTrilerp","mxGradientFloat3","mxHashInt2","mxGradientScale3d"]},externals:()=>({d:o,std:n,mxFade:El,mxTrilerp:q3,mxGradientFloat3:Xn,mxHashInt2:la,mxGradientScale3d:W3})})&&e.f)({})),Z3=b.fn([H],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=fe(Lt(t.x)),r=fe(Lt(t.y));return W(Pi(la(s,r,fe(0))),Pi(la(s,r,fe(1))),Pi(la(s,r,fe(2))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"ix",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","x"]]]]]],[13,"iy",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","y"]]]]]],[10,[6,[7,"d","vec3f"],[[6,"mxBitsTo01",[[6,"mxHashInt2",["ix","iy",[6,[7,"d","i32"],[[5,"0"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt2",["ix","iy",[6,[7,"d","i32"],[[5,"1"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt2",["ix","iy",[6,[7,"d","i32"],[[5,"2"]]]]]]]]]]]],externalNames:["d","std","mxBitsTo01","mxHashInt2"]},externals:()=>({d:o,std:n,mxBitsTo01:Pi,mxHashInt2:la})})&&e.f)({})),K3=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=fe(Lt(t.x)),r=fe(Lt(t.y)),a=fe(Lt(t.z));return W(Pi(Kp(s,r,a,fe(0))),Pi(Kp(s,r,a,fe(1))),Pi(Kp(s,r,a,fe(2))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"ix",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","x"]]]]]],[13,"iy",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","y"]]]]]],[13,"iz",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","z"]]]]]],[10,[6,[7,"d","vec3f"],[[6,"mxBitsTo01",[[6,"mxHashInt3",["ix","iy","iz",[6,[7,"d","i32"],[[5,"0"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt3",["ix","iy","iz",[6,[7,"d","i32"],[[5,"1"]]]]]]],[6,"mxBitsTo01",[[6,"mxHashInt3",["ix","iy","iz",[6,[7,"d","i32"],[[5,"2"]]]]]]]]]]]],externalNames:["d","std","mxBitsTo01","mxHashInt3"]},externals:()=>({d:o,std:n,mxBitsTo01:Pi,mxHashInt3:Kp})})&&e.f)({})),J3=b.fn([H,fe,fe,fe,fe,S,fe],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=Z3(H(S(__tsover_add(s,a)),S(__tsover_add(r,i)))),u=H(d.x,d.y);u=Ta(Po(Ts(u,.5),l),.5);let p=Ta(H(S(s),S(r)),u),m=Ts(p,t);return c===fe(2)?__tsover_add(at(m.x),at(m.y)):c===fe(3)?$e(at(m.x),at(m.y)):no(m,m)}),{v:1,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,[7,"d","vec2f"],[[6,[7,"d","f32"],[[1,"x","+","xoff"]]],[6,[7,"d","f32"],[[1,"y","+","yoff"]]]]]]]],[12,"off",[6,[7,"d","vec2f"],[[7,"tmp","x"],[7,"tmp","y"]]]],[2,"off","=",[6,[7,"std","add"],[[6,[7,"std","mul"],[[6,[7,"std","sub"],["off",[5,"0.5"]]],"jitter"]],[5,"0.5"]]]],[13,"cellpos",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[6,[7,"d","f32"],["x"]],[6,[7,"d","f32"],["y"]]]],"off"]]],[13,"diff",[6,[7,"std","sub"],["cellpos","p"]]],[11,[1,"metric","===",[6,[7,"d","i32"],[[5,"2"]]]],[0,[[10,[1,[6,[7,"std","abs"],[[7,"diff","x"]]],"+",[6,[7,"std","abs"],[[7,"diff","y"]]]]]]]],[11,[1,"metric","===",[6,[7,"d","i32"],[[5,"3"]]]],[0,[[10,[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"diff","x"]]],[6,[7,"std","abs"],[[7,"diff","y"]]]]]]]]],[10,[6,[7,"std","dot"],["diff","diff"]]]]],externalNames:["mxCellNoiseVec3_2d","d","std"]},externals:()=>({mxCellNoiseVec3_2d:Z3,d:o,std:n})})&&e.f)({})),Q3=b.fn([W,fe,fe,fe,fe,fe,fe,S,fe],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=K3(W(S(__tsover_add(s,i)),S(__tsover_add(r,l)),S(__tsover_add(a,c))));p=Ta(Po(Ts(p,.5),d),.5);let m=Ta(W(S(s),S(r),S(a)),p),_=Ts(m,t);return u===fe(2)?__tsover_add(__tsover_add(at(_.x),at(_.y)),at(_.z)):u===fe(3)?$e($e(at(_.x),at(_.y)),at(_.z)):no(_,_)}),{v:1,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,[7,"d","vec3f"],[[6,[7,"d","f32"],[[1,"x","+","xoff"]]],[6,[7,"d","f32"],[[1,"y","+","yoff"]]],[6,[7,"d","f32"],[[1,"z","+","zoff"]]]]]]]],[2,"off","=",[6,[7,"std","add"],[[6,[7,"std","mul"],[[6,[7,"std","sub"],["off",[5,"0.5"]]],"jitter"]],[5,"0.5"]]]],[13,"cellpos",[6,[7,"std","add"],[[6,[7,"d","vec3f"],[[6,[7,"d","f32"],["x"]],[6,[7,"d","f32"],["y"]],[6,[7,"d","f32"],["z"]]]],"off"]]],[13,"diff",[6,[7,"std","sub"],["cellpos","p"]]],[11,[1,"metric","===",[6,[7,"d","i32"],[[5,"2"]]]],[0,[[10,[1,[1,[6,[7,"std","abs"],[[7,"diff","x"]]],"+",[6,[7,"std","abs"],[[7,"diff","y"]]]],"+",[6,[7,"std","abs"],[[7,"diff","z"]]]]]]]],[11,[1,"metric","===",[6,[7,"d","i32"],[[5,"3"]]]],[0,[[10,[6,[7,"std","max"],[[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"diff","x"]]],[6,[7,"std","abs"],[[7,"diff","y"]]]]],[6,[7,"std","abs"],[[7,"diff","z"]]]]]]]]],[10,[6,[7,"std","dot"],["diff","diff"]]]]],externalNames:["mxCellNoiseVec3_3d","d","std"]},externals:()=>({mxCellNoiseVec3_3d:K3,d:o,std:n})})&&e.f)({})),ex=b.fn([H,S,fe],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=fe(Lt(t.x)),i=fe(Lt(t.y)),l=H(__tsover_sub(t.x,S(a)),__tsover_sub(t.y,S(i))),c=S(1e6);for(let d=-1;d<=1;d++)for(let u=-1;u<=1;u++){let p=J3(l,d,u,a,i,s,r);c=Ct(c,p)}return r===fe(0)&&(c=qt(c)),c}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"},{type:"i",name:"metric"}],body:[0,[[13,"X",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","x"]]]]]],[13,"Y",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","y"]]]]]],[13,"localpos",[6,[7,"d","vec2f"],[[1,[7,"p","x"],"-",[6,[7,"d","f32"],["X"]]],[1,[7,"p","y"],"-",[6,[7,"d","f32"],["Y"]]]]]],[12,"sqdist",[6,[7,"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,[7,"std","min"],["sqdist","dist"]]]]]]]]],[11,[1,"metric","===",[6,[7,"d","i32"],[[5,"0"]]]],[0,[[2,"sqdist","=",[6,[7,"std","sqrt"],["sqdist"]]]]]],[10,"sqdist"]]],externalNames:["d","std","mxWorleyDistance2d"]},externals:()=>({d:o,std:n,mxWorleyDistance2d:J3})})&&e.f)({})),tx=b.fn([W,S,fe],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=fe(Lt(t.x)),i=fe(Lt(t.y)),l=fe(Lt(t.z)),c=W(__tsover_sub(t.x,S(a)),__tsover_sub(t.y,S(i)),__tsover_sub(t.z,S(l))),d=S(1e6);for(let u=-1;u<=1;u++)for(let p=-1;p<=1;p++)for(let m=-1;m<=1;m++){let _=Q3(c,u,p,m,a,i,l,s,r);d=Ct(d,_)}return r===fe(0)&&(d=qt(d)),d}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"},{type:"i",name:"metric"}],body:[0,[[13,"X",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","x"]]]]]],[13,"Y",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","y"]]]]]],[13,"Z",[6,[7,"d","i32"],[[6,[7,"std","floor"],[[7,"p","z"]]]]]],[13,"localpos",[6,[7,"d","vec3f"],[[1,[7,"p","x"],"-",[6,[7,"d","f32"],["X"]]],[1,[7,"p","y"],"-",[6,[7,"d","f32"],["Y"]]],[1,[7,"p","z"],"-",[6,[7,"d","f32"],["Z"]]]]]],[12,"sqdist",[6,[7,"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,[7,"std","min"],["sqdist","dist"]]]]]]]]]]]],[11,[1,"metric","===",[6,[7,"d","i32"],[[5,"0"]]]],[0,[[2,"sqdist","=",[6,[7,"std","sqrt"],["sqdist"]]]]]],[10,"sqdist"]]],externalNames:["d","std","mxWorleyDistance3d"]},externals:()=>({d:o,std:n,mxWorleyDistance3d:Q3})})&&e.f)({})),Vt=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return H3(t)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"mxPerlinNoiseFloat2",["p"]]]]],externalNames:["mxPerlinNoiseFloat2"]},externals:()=>({mxPerlinNoiseFloat2:H3})})&&e.f)({})),Io=b.fn([W],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return j3(t)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,"mxPerlinNoiseFloat3",["p"]]]]],externalNames:["mxPerlinNoiseFloat3"]},externals:()=>({mxPerlinNoiseFloat3:j3})})&&e.f)({})),Pa=b.fn([H,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return ex(t,s,fe(1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"}],body:[0,[[10,[6,"mxWorleyNoiseFloat2",["p","jitter",[6,[7,"d","i32"],[[5,"1"]]]]]]]],externalNames:["mxWorleyNoiseFloat2","d"]},externals:()=>({mxWorleyNoiseFloat2:ex,d:o})})&&e.f)({})),VB=b.fn([W,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return tx(t,s,fe(1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"jitter"}],body:[0,[[10,[6,"mxWorleyNoiseFloat3",["p","jitter",[6,[7,"d","i32"],[[5,"1"]]]]]]]],externalNames:["mxWorleyNoiseFloat3","d"]},externals:()=>({mxWorleyNoiseFloat3:tx,d:o})})&&e.f)({})),iT=b.fn([S],ie)("(x: f32) -> u32 { return bitcast<u32>(x); }"),Zd=b.fn([H],Qe)("(v: vec2f) -> vec2u { return bitcast<vec2u>(v); }"),D1=b.fn([W],Bt)("(v: vec3f) -> vec3u { return bitcast<vec3u>(v); }"),Qa=S(4294967295),V1=b.fn([S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=iT(__tsover_mul(t,3141592653));return __tsover_div(S(__tsover_mul(__tsover_mul(s,s),ie(3141592653))),Qa)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint1",[[1,"p","*",[5,"3141592653"]]]]],[10,[1,[6,[7,"d","f32"],[[1,[1,"u","*","u"],"*",[6,[7,"d","u32"],[[5,"3141592653"]]]]]],"/","U32"]]]],externalNames:["floatBitsToUint1","d","U32"]},externals:()=>({floatBitsToUint1:iT,d:o,U32:Qa})})&&e.f)({})),Jr=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Zd(t.mul(H(141421356,2718281828)));return __tsover_div(S(__tsover_mul(s.x^s.y,ie(3141592653))),Qa)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint2",[[6,[7,"p","mul"],[[6,[7,"d","vec2f"],[[5,"141421356"],[5,"2718281828"]]]]]]]],[10,[1,[6,[7,"d","f32"],[[1,[1,[7,"u","x"],"^",[7,"u","y"]],"*",[6,[7,"d","u32"],[[5,"3141592653"]]]]]],"/","U32"]]]],externalNames:["floatBitsToUint2","d","U32"]},externals:()=>({floatBitsToUint2:Zd,d:o,U32:Qa})})&&e.f)({})),ca=b.fn([H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Zd(t.mul(H(141421356,2718281828))),r=s.x^s.y,a=Po(Qe(r,r),Qe(3141592653,1618033988));return H(S(a.x),S(a.y)).div(Qa)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint2",[[6,[7,"p","mul"],[[6,[7,"d","vec2f"],[[5,"141421356"],[5,"2718281828"]]]]]]]],[13,"h",[1,[7,"u","x"],"^",[7,"u","y"]]],[13,"prod",[6,[7,"std","mul"],[[6,[7,"d","vec2u"],["h","h"]],[6,[7,"d","vec2u"],[[5,"3141592653"],[5,"1618033988"]]]]]],[10,[6,[7,[6,[7,"d","vec2f"],[[6,[7,"d","f32"],[[7,"prod","x"]]],[6,[7,"d","f32"],[[7,"prod","y"]]]]],"div"],["U32"]]]]],externalNames:["floatBitsToUint2","d","std","U32"]},externals:()=>({floatBitsToUint2:Zd,d:o,std:n,U32:Qa})})&&e.f)({})),OB=b.fn([H],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Zd(t.mul(H(141421356,2718281828))),r=s.x^s.y,a=Po(Bt(r,r,r),Bt(1732050807,2645751311,3316624790));return W(S(a.x),S(a.y),S(a.z)).div(Qa)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint2",[[6,[7,"p","mul"],[[6,[7,"d","vec2f"],[[5,"141421356"],[5,"2718281828"]]]]]]]],[13,"h",[1,[7,"u","x"],"^",[7,"u","y"]]],[13,"prod",[6,[7,"std","mul"],[[6,[7,"d","vec3u"],["h","h","h"]],[6,[7,"d","vec3u"],[[5,"1732050807"],[5,"2645751311"],[5,"3316624790"]]]]]],[10,[6,[7,[6,[7,"d","vec3f"],[[6,[7,"d","f32"],[[7,"prod","x"]]],[6,[7,"d","f32"],[[7,"prod","y"]]],[6,[7,"d","f32"],[[7,"prod","z"]]]]],"div"],["U32"]]]]],externalNames:["floatBitsToUint2","d","std","U32"]},externals:()=>({floatBitsToUint2:Zd,d:o,std:n,U32:Qa})})&&e.f)({})),NB=b.fn([W],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=D1(t.mul(W(141421356,2718281828,1618033988)));return __tsover_div(S(__tsover_mul(s.x^s.y^s.z,ie(3141592653))),Qa)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint3",[[6,[7,"p","mul"],[[6,[7,"d","vec3f"],[[5,"141421356"],[5,"2718281828"],[5,"1618033988"]]]]]]]],[10,[1,[6,[7,"d","f32"],[[1,[1,[1,[7,"u","x"],"^",[7,"u","y"]],"^",[7,"u","z"]],"*",[6,[7,"d","u32"],[[5,"3141592653"]]]]]],"/","U32"]]]],externalNames:["floatBitsToUint3","d","U32"]},externals:()=>({floatBitsToUint3:D1,d:o,U32:Qa})})&&e.f)({})),Kd=b.fn([W],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=D1(t.mul(W(141421356,2718281828,1618033988))),r=s.x^s.y^s.z,a=Po(Bt(r,r,r),Bt(1732050807,2645751311,3316624790));return W(S(a.x),S(a.y),S(a.z)).div(Qa)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"u",[6,"floatBitsToUint3",[[6,[7,"p","mul"],[[6,[7,"d","vec3f"],[[5,"141421356"],[5,"2718281828"],[5,"1618033988"]]]]]]]],[13,"h",[1,[1,[7,"u","x"],"^",[7,"u","y"]],"^",[7,"u","z"]]],[13,"prod",[6,[7,"std","mul"],[[6,[7,"d","vec3u"],["h","h","h"]],[6,[7,"d","vec3u"],[[5,"1732050807"],[5,"2645751311"],[5,"3316624790"]]]]]],[10,[6,[7,[6,[7,"d","vec3f"],[[6,[7,"d","f32"],[[7,"prod","x"]]],[6,[7,"d","f32"],[[7,"prod","y"]]],[6,[7,"d","f32"],[[7,"prod","z"]]]]],"div"],["U32"]]]]],externalNames:["floatBitsToUint3","d","std","U32"]},externals:()=>({floatBitsToUint3:D1,d:o,std:n,U32:Qa})})&&e.f)({})),tn=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Lt(t),r=t.sub(s),a=r.mul(r).mul(Ts(3,r.mul(2)));return Ft(Ft(Jr(s),Jr(s.add(H(1,0))),a.x),Ft(Jr(s.add(H(0,1))),Jr(s.add(H(1,1))),a.x),a.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"std","floor"],["p"]]],[13,"f0",[6,[7,"p","sub"],["i"]]],[13,"f",[6,[7,[6,[7,"f0","mul"],["f0"]],"mul"],[[6,[7,"std","sub"],[[5,"3"],[6,[7,"f0","mul"],[[5,"2"]]]]]]]],[10,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[6,"hash12",["i"]],[6,"hash12",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"0"]]]]]]],[7,"f","x"]]],[6,[7,"std","mix"],[[6,"hash12",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]]]]]],[6,"hash12",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]]],[7,"f","x"]]],[7,"f","y"]]]]]],externalNames:["std","hash12","d"]},externals:()=>({std:n,hash12:Jr,d:o})})&&e.f)({})),Hp=b.fn([H,H,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=H(r,a);return no(Dd(ca(t.add(i)).sub(.5)),s.sub(i))}),{v:1,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,[7,"d","vec2f"],["ox","oy"]]],[10,[6,[7,"std","dot"],[[6,[7,"std","normalize"],[[6,[7,[6,"hash22",[[6,[7,"i","add"],["o"]]]],"sub"],[[5,"0.5"]]]]],[6,[7,"f","sub"],["o"]]]]]]],externalNames:["d","std","hash22"]},externals:()=>({d:o,std:n,hash22:ca})})&&e.f)({})),Tl=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Lt(t),r=t.sub(s),a=r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10)),i=Hp(s,r,0,0),l=Hp(s,r,1,0),c=Hp(s,r,0,1),d=Hp(s,r,1,1);return __tsover_add(__tsover_mul(Ft(Ft(i,l,a.x),Ft(c,d,a.x),a.y),.7),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"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,[7,"std","mix"],[[6,[7,"std","mix"],["a","b",[7,"u","x"]]],[6,[7,"std","mix"],["c","dd",[7,"u","x"]]],[7,"u","y"]]],"*",[5,"0.7"]],"+",[5,"0.5"]]]]],externalNames:["std","perlinGrad2"]},externals:()=>({std:n,perlinGrad2:Hp})})&&e.f)({})),Di=b.fn([H],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Lt(t),r=Ur(t),a=r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10)),i=r.mul(r).mul(r.mul(r.sub(2)).add(1)).mul(30),l=ca(s.add(H(0,0))).mul(2).sub(1),c=ca(s.add(H(1,0))).mul(2).sub(1),d=ca(s.add(H(0,1))).mul(2).sub(1),u=ca(s.add(H(1,1))).mul(2).sub(1),p=no(l,r.sub(H(0,0))),m=no(c,r.sub(H(1,0))),_=no(d,r.sub(H(0,1))),v=no(u,r.sub(H(1,1))),h=__tsover_add(__tsover_sub(__tsover_sub(p,m),_),v),y=__tsover_add(__tsover_add(__tsover_add(p,__tsover_mul(a.x,__tsover_sub(m,p))),__tsover_mul(a.y,__tsover_sub(_,p))),__tsover_mul(__tsover_mul(a.x,a.y),h)),x=l.add(c.sub(l).mul(a.x)).add(d.sub(l).mul(a.y)).add(l.sub(c).sub(d).add(u).mul(__tsover_mul(a.x,a.y))).add(i.mul(H(a.y,a.x).mul(h).add(H(m,_)).sub(p)));return W(y,x.x,x.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"std","floor"],["p"]]],[13,"f",[6,[7,"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,[7,"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,[7,"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,[7,"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,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]]],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]],[13,"va",[6,[7,"std","dot"],["ga",[6,[7,"f","sub"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]]]]]]],[13,"vb",[6,[7,"std","dot"],["gb",[6,[7,"f","sub"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"0"]]]]]]]],[13,"vc",[6,[7,"std","dot"],["gc",[6,[7,"f","sub"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]]]]]]],[13,"vd",[6,[7,"std","dot"],["gd",[6,[7,"f","sub"],[[6,[7,"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,[7,"d","vec2f"],[[7,"u","y"],[7,"u","x"]]],"mul"],["k"]],"add"],[[6,[7,"d","vec2f"],["vb","vc"]]]],"sub"],["va"]]]]]]],[10,[6,[7,"d","vec3f"],["value",[7,"deriv","x"],[7,"deriv","y"]]]]]],externalNames:["std","hash22","d"]},externals:()=>({std:n,hash22:ca,d:o})})&&e.f)({})),qd=b.fn([ee],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.mul(t.mul(34).add(1));return s.sub(Lt(s.div(289)).mul(289))}),{v:1,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,[7,"std","floor"],[[6,[7,"xx","div"],[[5,"289"]]]]],"mul"],[[5,"289"]]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Cx=b.fn([W],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Lt(t),r=t.sub(s),a=r.mul(r).mul(Ts(3,r.mul(2))),i=ee(s.x,s.x,s.y,s.y).add(ee(0,1,0,1)),l=qd(ee(i.x,i.y,i.x,i.y)),c=qd(ee(l.x,l.y,l.x,l.y).add(ee(i.z,i.z,i.w,i.w))).add(ee(s.z,s.z,s.z,s.z)),d=qd(c),u=qd(c.add(1)),p=Ur(d.mul(.02439024)),m=Ur(u.mul(.02439024)),_=Ft(p,m,ee(a.z)),v=Ft(H(_.x,_.z),H(_.y,_.w),H(a.x));return Ft(v.x,v.y,a.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"a",[6,[7,"std","floor"],["p"]]],[13,"d0",[6,[7,"p","sub"],["a"]]],[13,"sd",[6,[7,[6,[7,"d0","mul"],["d0"]],"mul"],[[6,[7,"std","sub"],[[5,"3"],[6,[7,"d0","mul"],[[5,"2"]]]]]]]],[13,"b",[6,[7,[6,[7,"d","vec4f"],[[7,"a","x"],[7,"a","x"],[7,"a","y"],[7,"a","y"]]],"add"],[[6,[7,"d","vec4f"],[[5,"0"],[5,"1"],[5,"0"],[5,"1"]]]]]],[13,"k1",[6,"perm4",[[6,[7,"d","vec4f"],[[7,"b","x"],[7,"b","y"],[7,"b","x"],[7,"b","y"]]]]]],[13,"k2",[6,[7,[6,"perm4",[[6,[7,[6,[7,"d","vec4f"],[[7,"k1","x"],[7,"k1","y"],[7,"k1","x"],[7,"k1","y"]]],"add"],[[6,[7,"d","vec4f"],[[7,"b","z"],[7,"b","z"],[7,"b","w"],[7,"b","w"]]]]]]],"add"],[[6,[7,"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,[7,"std","fract"],[[6,[7,"k3","mul"],[[5,"0.02439024"]]]]]],[13,"o2",[6,[7,"std","fract"],[[6,[7,"k4","mul"],[[5,"0.02439024"]]]]]],[13,"o3",[6,[7,"std","mix"],["o1","o2",[6,[7,"d","vec4f"],[[7,"sd","z"]]]]]],[13,"o4",[6,[7,"std","mix"],[[6,[7,"d","vec2f"],[[7,"o3","x"],[7,"o3","z"]]],[6,[7,"d","vec2f"],[[7,"o3","y"],[7,"o3","w"]]],[6,[7,"d","vec2f"],[[7,"sd","x"]]]]]],[10,[6,[7,"std","mix"],[[7,"o4","x"],[7,"o4","y"],[7,"sd","y"]]]]]],externalNames:["std","d","perm4"]},externals:()=>({std:n,d:o,perm4:qd})})&&e.f)({})),Ci=b.fn([W,W,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=W(r,a,i);return no(s.sub(l),Dd(Kd(t.add(l)).sub(.5)))}),{v:1,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,[7,"d","vec3f"],["ox","oy","oz"]]],[10,[6,[7,"std","dot"],[[6,[7,"f","sub"],["o"]],[6,[7,"std","normalize"],[[6,[7,[6,"hash33",[[6,[7,"i","add"],["o"]]]],"sub"],[[5,"0.5"]]]]]]]]]],externalNames:["d","std","hash33"]},externals:()=>({d:o,std:n,hash33:Kd})})&&e.f)({})),Sl=b.fn([W],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Lt(t),r=t.sub(s),a=r.mul(r).mul(r).mul(r.mul(r.mul(6).sub(15)).add(10)),i=Ci(s,r,0,0,0),l=Ci(s,r,1,0,0),c=Ci(s,r,0,1,0),d=Ci(s,r,1,1,0),u=Ci(s,r,0,0,1),p=Ci(s,r,1,0,1),m=Ci(s,r,0,1,1),_=Ci(s,r,1,1,1),v=Ft(Ft(i,l,a.x),Ft(c,d,a.x),a.y),h=Ft(Ft(u,p,a.x),Ft(m,_,a.x),a.y);return __tsover_add(__tsover_mul(Ft(v,h,a.z),.7),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"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,[7,"std","mix"],[[6,[7,"std","mix"],["a0","b0",[7,"u","x"]]],[6,[7,"std","mix"],["c0","d0",[7,"u","x"]]],[7,"u","y"]]]],[13,"z1",[6,[7,"std","mix"],[[6,[7,"std","mix"],["a1","b1",[7,"u","x"]]],[6,[7,"std","mix"],["c1","d1",[7,"u","x"]]],[7,"u","y"]]]],[10,[1,[1,[6,[7,"std","mix"],["z0","z1",[7,"u","z"]]],"*",[5,"0.7"]],"+",[5,"0.5"]]]]],externalNames:["std","perlinGrad3"]},externals:()=>({std:n,perlinGrad3:Ci})})&&e.f)({})),jp=b.fn([H,H,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";return vs(__tsover_add(__tsover_mul(r,no(t,ca(s.add(H(i,l))))),a))}),{v:1,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,[7,"std","sin"],[[1,[1,"freq","*",[6,[7,"std","dot"],["p",[6,"hash22",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],["ox","oy"]]]]]]]]],"+","phase"]]]]]],externalNames:["std","hash22","d"]},externals:()=>({std:n,hash22:ca,d:o})})&&e.f)({})),Px=b.fn([H,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=Lt(t),i=t.sub(a),l=i.mul(i).mul(Ts(3,i.mul(2)));return Ft(Ft(jp(t,a,s,r,0,0),jp(t,a,s,r,1,0),l.x),Ft(jp(t,a,s,r,0,1),jp(t,a,s,r,1,1),l.x),l.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"freq"},{type:"i",name:"phase"}],body:[0,[[13,"i",[6,[7,"std","floor"],["p"]]],[13,"f0",[6,[7,"p","sub"],["i"]]],[13,"f",[6,[7,[6,[7,"f0","mul"],["f0"]],"mul"],[[6,[7,"std","sub"],[[5,"3"],[6,[7,"f0","mul"],[[5,"2"]]]]]]]],[10,[6,[7,"std","mix"],[[6,[7,"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,[7,"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"]]]]]],externalNames:["std","gaborGrain"]},externals:()=>({std:n,gaborGrain:jp})})&&e.f)({})),Lc=b.fn([H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=H(Tl(t.add(H(.1,0))),Tl(t.add(H(0,.1)))),r=H(Tl(t.sub(H(.1,0))),Tl(t.sub(H(0,.1))));return s.sub(r).div(.1).mul(.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"a",[6,[7,"d","vec2f"],[[6,"perlin12",[[6,[7,"p","add"],[[6,[7,"d","vec2f"],[[5,"0.1"],[5,"0"]]]]]]],[6,"perlin12",[[6,[7,"p","add"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"0.1"]]]]]]]]]],[13,"b",[6,[7,"d","vec2f"],[[6,"perlin12",[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[5,"0.1"],[5,"0"]]]]]]],[6,"perlin12",[[6,[7,"p","sub"],[[6,[7,"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"]]]]]],externalNames:["d","perlin12"]},externals:()=>({d:o,perlin12:Tl})})&&e.f)({})),kx=b.fn([H,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.add(H(.1,0)),a=t.add(H(0,.1)),i=t.sub(H(.1,0)),l=t.sub(H(0,.1)),c=H(Sl(W(r.x,r.y,s)),Sl(W(a.x,a.y,s))),d=H(Sl(W(i.x,i.y,s)),Sl(W(l.x,l.y,s)));return c.sub(d).div(.1).mul(.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"z"}],body:[0,[[13,"pax",[6,[7,"p","add"],[[6,[7,"d","vec2f"],[[5,"0.1"],[5,"0"]]]]]],[13,"pay",[6,[7,"p","add"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"0.1"]]]]]],[13,"pbx",[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[5,"0.1"],[5,"0"]]]]]],[13,"pby",[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"0.1"]]]]]],[13,"a",[6,[7,"d","vec2f"],[[6,"perlin13",[[6,[7,"d","vec3f"],[[7,"pax","x"],[7,"pax","y"],"z"]]]],[6,"perlin13",[[6,[7,"d","vec3f"],[[7,"pay","x"],[7,"pay","y"],"z"]]]]]]],[13,"b",[6,[7,"d","vec2f"],[[6,"perlin13",[[6,[7,"d","vec3f"],[[7,"pbx","x"],[7,"pbx","y"],"z"]]]],[6,"perlin13",[[6,[7,"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"]]]]]],externalNames:["d","perlin13"]},externals:()=>({d:o,perlin13:Sl})})&&e.f)({})),Rx=b.fn([H,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=S(0),i=S(1),l=S(0),c=H(t.x,t.y);for(let d=0;d<4;d++){let u=c.mul(i),p=Ur(Lt(u).mul(H(123.34,233.53)));p=p.add(no(p,p.add(23.234)));let m=__tsover_mul(Ur(__tsover_mul(p.x,p.y)),1e3),_=Ur(u).sub(.5),v=po(m),h=vs(m),y=H(__tsover_sub(__tsover_mul(_.x,v),__tsover_mul(_.y,h)),__tsover_add(__tsover_mul(_.x,h),__tsover_mul(_.y,v)));a=__tsover_add(a,__tsover_div(__tsover_mul(vs(__tsover_add(__tsover_mul(y.x,10),s)),Ja(.25,0,no(y,y))),i)),c=H(__tsover_sub(__tsover_mul(c.x,.54),__tsover_mul(c.y,.84)),__tsover_add(__tsover_mul(c.x,.84),__tsover_mul(c.y,.54))).add(S(d)),l=__tsover_add(l,__tsover_div(1,i)),i=__tsover_mul(i,r)}return __tsover_div(a,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"phase"},{type:"i",name:"scale"}],body:[0,[[12,"dsum",[6,[7,"d","f32"],[[5,"0"]]]],[12,"s",[6,[7,"d","f32"],[[5,"1"]]]],[12,"m",[6,[7,"d","f32"],[[5,"0"]]]],[12,"pp",[6,[7,"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,[7,"std","fract"],[[6,[7,[6,[7,"std","floor"],["q0"]],"mul"],[[6,[7,"d","vec2f"],[[5,"123.34"],[5,"233.53"]]]]]]]],[2,"g","=",[6,[7,"g","add"],[[6,[7,"std","dot"],["g",[6,[7,"g","add"],[[5,"23.234"]]]]]]]],[13,"a",[1,[6,[7,"std","fract"],[[1,[7,"g","x"],"*",[7,"g","y"]]]],"*",[5,"1000"]]],[13,"qc",[6,[7,[6,[7,"std","fract"],["q0"]],"sub"],[[5,"0.5"]]]],[13,"ca",[6,[7,"std","cos"],["a"]]],[13,"sa",[6,[7,"std","sin"],["a"]]],[13,"q",[6,[7,"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,[7,"std","sin"],[[1,[1,[7,"q","x"],"*",[5,"10"]],"+","phase"]]],"*",[6,[7,"std","smoothstep"],[[5,"0.25"],[5,"0"],[6,[7,"std","dot"],["q","q"]]]]],"/","s"]]],[2,"pp","=",[6,[7,[6,[7,"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,[7,"d","f32"],["idx"]]]]],[2,"m","=",[1,"m","+",[1,[5,"1"],"/","s"]]],[2,"s","=",[1,"s","*","scale"]]]]],[10,[1,"dsum","/","m"]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),$x=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=S(0);for(let r=0;r<9;r++){let a=S(r),i=Lt(__tsover_div(a,3)),l=__tsover_sub(a,__tsover_mul(i,3));s=__tsover_add(s,Jr(t.add(H(__tsover_sub(l,1),__tsover_sub(i,1)))))}return __tsover_add(__tsover_mul(.9,__tsover_sub(__tsover_mul(1.125,Jr(t)),__tsover_div(s,8))),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"v",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"k",[5,"0"]],[1,"k","<",[5,"9"]],[102,"++","k"],[0,[[13,"fk",[6,[7,"d","f32"],["k"]]],[13,"row",[6,[7,"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,[7,"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"]]]]],externalNames:["d","std","hash12"]},externals:()=>({d:o,std:n,hash12:Jr})})&&e.f)({})),lT=b.fn([fs],fe)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=fe(0),r=t.x,a=t.y;for(let i=256;i>0;i=i>>1){let l=fe(i),c=bt(fe(0),fe(1),(r&l)>0),d=bt(fe(0),fe(1),(a&l)>0),u=c<<1|c^d;s=__tsover_add(s,__tsover_mul(__tsover_mul(l,l),u));let p=__tsover_sub(fe(1),d),m=__tsover_mul(r^a,p)^__tsover_mul(fe(__tsover_sub(i,1)),c&p);r=r^m,a=a^m}return s}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"i",[6,[7,"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,[7,"d","i32"],["s"]]],[13,"rx",[6,[7,"std","select"],[[6,[7,"d","i32"],[[5,"0"]]],[6,[7,"d","i32"],[[5,"1"]]],[1,[1,"px","&","S"],">",[5,"0"]]]]],[13,"ry",[6,[7,"std","select"],[[6,[7,"d","i32"],[[5,"0"]]],[6,[7,"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,[7,"d","i32"],[[5,"1"]]],"-","ry"]],[13,"rhs",[1,[1,[1,"px","^","py"],"*","oneMinusRy"],"^",[1,[6,[7,"d","i32"],[[1,"s","-",[5,"1"]]]],"*",[1,"rx","&","oneMinusRy"]]]],[2,"px","=",[1,"px","^","rhs"]],[2,"py","=",[1,"py","^","rhs"]]]]],[10,"i"]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),YB=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=lT(fs(fe(t.x),fe(t.y)))&fe(262143);return Ur(__tsover_mul(.6180339887498949,S(s)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"idx",[1,[6,"hilbertEncode512",[[6,[7,"d","vec2i"],[[6,[7,"d","i32"],[[7,"p","x"]]],[6,[7,"d","i32"],[[7,"p","y"]]]]]]],"&",[6,[7,"d","i32"],[[5,"262143"]]]]],[10,[6,[7,"std","fract"],[[1,[5,"0.6180339887498949"],"*",[6,[7,"d","f32"],["idx"]]]]]]]],externalNames:["hilbertEncode512","d","std"]},externals:()=>({hilbertEncode512:lT,d:o,std:n})})&&e.f)({})),cT=b.fn([H,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=Lt(t),l=t.sub(i),c=Lt(__tsover_mul(vs(__tsover_mul(i.x,51024)),3104)),d=Lt(__tsover_mul(vs(__tsover_mul(i.y,1324)),554)),u=__tsover_add(c,d),p=l.mul(2).sub(1);p=p.mul(po(u)).add(H(-p.y,p.x).mul(vs(u))),p=p.add(vs(__tsover_sub(c,d))),p=p.mul(.5).add(.5);let m=__tsover_mul(__tsover_add(vs(__tsover_add(c,__tsover_mul(p.y,Math.PI))),vs(__tsover_add(d,__tsover_mul(p.y,Math.PI)))),.2),_=at(__tsover_add(__tsover_sub(p.x,.5),m));_=__tsover_sub(.5,__tsover_mul(_,__tsover_div(s,a))),_=__tsover_mul(Ja(-2,__tsover_add(__tsover_mul(Yd(_),1.5),16),_),12);let v=__tsover_add(__tsover_mul(vs(__tsover_add(r,__tsover_mul(Jr(i),6.2831853))),.5),.5);return __tsover_mul(__tsover_mul(_,p.y),v)}),{v:1,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,[7,"std","floor"],["uv"]]],[13,"lo",[6,[7,"uv","sub"],["seed0"]]],[13,"sx",[6,[7,"std","floor"],[[1,[6,[7,"std","sin"],[[1,[7,"seed0","x"],"*",[5,"51024"]]]],"*",[5,"3104"]]]]],[13,"sy",[6,[7,"std","floor"],[[1,[6,[7,"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,[7,"std","cos"],["ss"]]]],"add"],[[6,[7,[6,[7,"d","vec2f"],[[4,"-",[7,"u2","y"]],[7,"u2","x"]]],"mul"],[[6,[7,"std","sin"],["ss"]]]]]]],[2,"u2","=",[6,[7,"u2","add"],[[6,[7,"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,[7,"std","sin"],[[1,"sx","+",[1,[7,"u2","y"],"*",[7,"Math","PI"]]]]],"+",[6,[7,"std","sin"],[[1,"sy","+",[1,[7,"u2","y"],"*",[7,"Math","PI"]]]]]],"*","WAVYNESS"]],[12,"x",[6,[7,"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,[7,"std","smoothstep"],[[4,"-",[5,"2"]],[1,[1,[6,[7,"std","fwidth"],["x"]],"*",[5,"1.5"]],"+",[5,"16"]],"x"]],"*",[5,"12"]]],[13,"pulse",[1,[1,[6,[7,"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"]]]],externalNames:["std","d","Math","hash12"]},externals:()=>({std:n,d:o,Math,hash12:Jr})})&&e.f)({})),Ux=b.fn([H,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=S(0),i=H(t.x,t.y),l=__tsover_div(1,It(Yd(t)));for(let c=0;c<8;c++)a=$e(a,cT(i,l,s,r)),i=H(__tsover_add(i.x,__tsover_mul(i.y,.7)),__tsover_add(__tsover_mul(i.x,-.7),i.y)).sub(12.31);return a}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"time"},{type:"i",name:"thickness"}],body:[0,[[12,"scratches",[6,[7,"d","f32"],[[5,"0"]]]],[12,"p",[6,[7,"d","vec2f"],[[7,"uv","x"],[7,"uv","y"]]]],[13,"f",[1,[5,"1"],"/",[6,[7,"std","length"],[[6,[7,"std","fwidth"],["uv"]]]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"8"]],[102,"++","i"],[0,[[2,"scratches","=",[6,[7,"std","max"],["scratches",[6,"scratchOne",["p","f","time","thickness"]]]]],[2,"p","=",[6,[7,[6,[7,"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"]]],externalNames:["d","std","scratchOne"]},externals:()=>({d:o,std:n,scratchOne:cT})})&&e.f)({})),sx=b.fn([H,fe],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=S(0),a=S(0),i=S(1),l=H(t.x,t.y);for(let c=0;c<s;c++)r=__tsover_add(r,__tsover_mul(i,Tl(l))),a=__tsover_add(a,i),i=__tsover_mul(i,.5),l=l.mul(2);return __tsover_div(r,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"octaves"}],body:[0,[[12,"s",[6,[7,"d","f32"],[[5,"0"]]]],[12,"m",[6,[7,"d","f32"],[[5,"0"]]]],[12,"a",[6,[7,"d","f32"],[[5,"1"]]]],[12,"pp",[6,[7,"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"]]]],externalNames:["d","perlin12"]},externals:()=>({d:o,perlin12:Tl})})&&e.f)({})),dT=b.fn([H],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=W(0,0,0),r=S(1),a=H(t.x,t.y);for(let i=0;i<6;i++)s=s.add(Di(a).mul(r)),r=__tsover_mul(r,.5),a=a.mul(2);return s}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"s",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]]],[12,"a",[6,[7,"d","f32"],[[5,"1"]]]],[12,"pp",[6,[7,"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"]]],externalNames:["d","perlin12d"]},externals:()=>({d:o,perlin12d:Di})})&&e.f)({})),Dx=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=dT(t);return sx(t.add(H(s.y,s.z).mul(.4)),fe(6))}),{v:1,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,[7,"d","vec2f"],[[7,"fs","y"],[7,"fs","z"]]],"mul"],[[5,"0.4"]]]]],[6,[7,"d","i32"],[[5,"6"]]]]]]]],externalNames:["fbmStone","fbmPerlin","d"]},externals:()=>({fbmStone:dT,fbmPerlin:sx,d:o})})&&e.f)({})),uT=b.fn([H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=H(0,0),r=S(0),a=S(1),i=H(t.x,t.y);for(let l=0;l<6;l++)s=s.add(Lc(i).mul(a)),r=__tsover_add(r,a),a=__tsover_mul(a,.5),i=i.mul(2);return s.div(r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"s",[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]]],[12,"m",[6,[7,"d","f32"],[[5,"0"]]]],[12,"a",[6,[7,"d","f32"],[[5,"1"]]]],[12,"pp",[6,[7,"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"]]]]],externalNames:["d","curl22"]},externals:()=>({d:o,curl22:Lc})})&&e.f)({})),zx=b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=uT(t);return $e(at(s.x),at(s.y))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"n",[6,"fbmWool",["p"]]],[10,[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"n","x"]]],[6,[7,"std","abs"],[[7,"n","y"]]]]]]]],externalNames:["fbmWool","std"]},externals:()=>({fbmWool:uT,std:n})})&&e.f)({})),pT=b.fn([H,H],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=H(-s.y,s.x).mul(Math.PI),a=Lt(t),i=t.sub(a),l=H(0,0),c=S(0);for(let d=-1;d<=2;d++)for(let u=-1;u<=2;u++){let p=H(S(d),S(u)),m=i.sub(p).sub(ca(a.add(p))).add(.5),_=no(m,m),v=$e(S(0),__tsover_sub(Mc(__tsover_mul(_,-2)),.01111));c=__tsover_add(c,v);let h=no(m,r);l=l.add(H(po(h),-vs(h)).mul(v))}return W(l.x,__tsover_mul(l.y,r.x),__tsover_mul(l.y,r.y)).div(c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"slope"}],body:[0,[[13,"sideDir",[6,[7,[6,[7,"d","vec2f"],[[4,"-",[7,"slope","y"]],[7,"slope","x"]]],"mul"],[[7,"Math","PI"]]]],[13,"id",[6,[7,"std","floor"],["p"]]],[13,"pp",[6,[7,"p","sub"],["id"]]],[12,"heightSlope",[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]]],[12,"wSum",[6,[7,"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,[7,"d","vec2f"],[[6,[7,"d","f32"],["x"]],[6,[7,"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,[7,"std","dot"],["c","c"]]],[13,"w",[6,[7,"std","max"],[[6,[7,"d","f32"],[[5,"0"]]],[1,[6,[7,"std","exp"],[[1,"dist2","*",[4,"-",[5,"2"]]]]],"-",[5,"0.01111"]]]]],[2,"wSum","=",[1,"wSum","+","w"]],[13,"t",[6,[7,"std","dot"],["c","sideDir"]]],[2,"heightSlope","=",[6,[7,"heightSlope","add"],[[6,[7,[6,[7,"d","vec2f"],[[6,[7,"std","cos"],["t"]],[4,"-",[6,[7,"std","sin"],["t"]]]]],"mul"],["w"]]]]]]]]]]],[10,[6,[7,[6,[7,"d","vec3f"],[[7,"heightSlope","x"],[1,[7,"heightSlope","y"],"*",[7,"sideDir","x"]],[1,[7,"heightSlope","y"],"*",[7,"sideDir","y"]]]],"div"],["wSum"]]]]],externalNames:["d","Math","std","hash22"]},externals:()=>({d:o,Math,std:n,hash22:ca})})&&e.f)({})),Ix=b.fn([H],W)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Di(t),r=S(.25),a=S(8),i=S(1);for(let l=0;l<4;l++){let c=H(s.y,s.z),d=$e(no(c,c),S(1e-4)),u=c.mul(io(d,S(__tsover_mul(.5,__tsover_sub(.5,1)))));s=s.add(pT(t.mul(a),u).mul(r).mul(W(1,a,a))),i=__tsover_add(i,r),r=__tsover_mul(r,.5),a=__tsover_mul(a,2)}return s.div(i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[12,"nd",[6,"perlin12d",["p"]]],[12,"strength",[6,[7,"d","f32"],[[5,"0.25"]]]],[12,"freq",[6,[7,"d","f32"],[[5,"8"]]]],[12,"total",[6,[7,"d","f32"],[[5,"1"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"4"]],[102,"++","i"],[0,[[13,"grad",[6,[7,"d","vec2f"],[[7,"nd","y"],[7,"nd","z"]]]],[13,"len2",[6,[7,"std","max"],[[6,[7,"std","dot"],["grad","grad"]],[6,[7,"d","f32"],[[5,"0.0001"]]]]]],[13,"slope",[6,[7,"grad","mul"],[[6,[7,"std","pow"],["len2",[6,[7,"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,[7,"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"]]]]],externalNames:["perlin12d","d","std","gullies"]},externals:()=>({perlin12d:Di,d:o,std:n,gullies:pT})})&&e.f)({})),mT=b.fn([H,fe],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=H(0,0),a=S(0),i=S(1),l=H(t.x,t.y);for(let c=0;c<s;c++)r=r.add(xt(Lc(l).mul(.5).add(.5),H(0,0),H(1,1)).mul(i)),a=__tsover_add(a,i),i=__tsover_mul(i,.8),l=l.mul(2);return r.div(a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"octaves"}],body:[0,[[12,"s",[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]]],[12,"m",[6,[7,"d","f32"],[[5,"0"]]]],[12,"a",[6,[7,"d","f32"],[[5,"1"]]]],[12,"pp",[6,[7,"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,[7,"std","clamp"],[[6,[7,[6,[7,[6,"curl22",["pp"]],"mul"],[[5,"0.5"]]],"add"],[[5,"0.5"]]],[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]],[6,[7,"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"]]]]],externalNames:["d","std","curl22"]},externals:()=>({d:o,std:n,curl22:Lc})})&&e.f)({})),Lx=b.fn([H,fe],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_add(__tsover_mul(__tsover_div(It(mT(t,s)),1.414),.6),.4)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"octaves"}],body:[0,[[10,[1,[1,[1,[6,[7,"std","length"],[[6,"fbmPaper",["p","octaves"]]]],"/",[5,"1.414"]],"*",[5,"0.6"]],"+",[5,"0.4"]]]]],externalNames:["std","fbmPaper"]},externals:()=>({std:n,fbmPaper:mT})})&&e.f)({})),GB=b.fn([S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=xt(__tsover_add(__tsover_add(__tsover_mul(__tsover_sub(t,.5),__tsover_add(s,1)),.5),r),0,1);return __tsover_sub(1,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"noise01"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"k",[6,[7,"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"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({}));function Mm(e,t){let{uniforms:s,propValues:r}=e,a=r.colorSpace??0;return(r.stopCount??0)>1?js(t,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},a):T(Ye[a]??Be,"mixColors",[s.colorA,s.colorB,t])}function Ir(e,t){let{uniforms:s}=e;return Mm(e,T(GB,"noiseToneKColor",[t,s.contrast??le(0),s.balance??le(0)]))}var WB=b.fn([H,S,S,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=H(__tsover_mul(t.x,s),t.y),l=__tsover_mul(r,4);return i.mul(l).add(a)}),{v:1,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,[7,"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"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),XB=b.fn([H,H,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=Di(s),i=H(a.y,a.z).mul(r).mul(.012);return t.add(i)}),{v:1,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,[7,"d","vec2f"],[[7,"grad","y"],[7,"grad","z"]]],"mul"],["distortion"]],"mul"],[[5,"0.012"]]]],[10,[6,[7,"uv","add"],["disp"]]]]],externalNames:["perlin12d","d"]},externals:()=>({perlin12d:Di,d:o})})&&e.f)({})),qB=b.fn([S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_add(__tsover_mul(__tsover_sub(t,.5),__tsover_add(s,1)),.5);return xt(__tsover_add(1,__tsover_mul(__tsover_sub(a,.5),__tsover_mul(r,1.1))),0,1.6)}),{v:1,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,[7,"std","clamp"],[[1,[5,"1"],"+",[1,[1,"hAdj","-",[5,"0.5"]],"*",[1,"intensity","*",[5,"1.1"]]]],[5,"0"],[5,"1.6"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({}));function O1(e,t,s){let{childNode:r,uniforms:a,ctx:i,convertToTexture:l}=e;if(!r)return me;let c=l(r),d=T(WB,"reliefPos",[i.uv,i.aspect,a.scale,a.seed]),u=T(XB,"reliefDisplacedUV",[i.uv,d,a.distortion]),p=T(Re,"unpremultiplyAlpha",[c.sample(u)]),m=T(qB,"reliefBrightness",[T(t,s,[d]),a.contrast,a.intensity]);return de(p.member("rgb").mul(m),p.member("a"))}function pS(e,t){return{guarded:e,with(s){return pS(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 pt(e,t,s={}){let r=(globalThis.__TYPEGPU_AUTONAME__??(a=>a))(e.createGuardedComputePipeline(t),"guarded");return s.bindGroup&&(r=r.with(s.bindGroup)),pS(r,s.size)}function mS(e){return{dispatch(t){for(let s of t)typeof s=="function"?s():s.dispatch()}}}function Rt(e,t,s){return(globalThis.__TYPEGPU_AUTONAME__??(r=>r))(e.createBuffer(qs(t,s)),"buffer").$usage("storage")}var _S=24,N1=1024;var M1=.5,Jd="rgba32float",Y1="rgba16float",zr="rgba32float";function HB(e){let t=e/3,s=e*2+1,r=[],a=0;for(let i=-e;i<=e;i++){let l=Math.exp(-(i*i)/(2*t*t));r.push(l),a+=l}for(let i=0;i<s;i++)r[i]/=a;return r}function _T(e,t){let s=e*2+1,r=Math.max(1,Math.min(e,Math.ceil(t*3))),a=new Array(s).fill(0),i=0;for(let l=-e;l<=e;l++)if(Math.abs(l)<=r){let c=Math.exp(-(l*l)/(2*t*t));a[l+e]=c,i+=c}for(let l=0;l<s;l++)a[l]/=i;return{weights:a,activeHalf:r}}function jB(){return sr({activeHalf:fe,inputWidth:S,inputHeight:S})}function ZB(){return sr({activeHalf:fe})}function KB(e,t,s){let r=e*2+1,a=e,i=jB(),l=ZB(),c=(globalThis.__TYPEGPU_AUTONAME__??(u=>u))(b.bindGroupLayout({input:{texture:Sa(S)},intermediate:{storageTexture:jr(Jd,"write-only")},weights:{storage:qs(S,r),access:"readonly"},params:{uniform:i}}),"hLayout"),d=(globalThis.__TYPEGPU_AUTONAME__??(u=>u))(b.bindGroupLayout({src:{storageTexture:jr(Jd,"read-only")},output:{storageTexture:jr(Y1,"write-only")},weights:{storage:qs(S,r),access:"readonly"},params:{uniform:l}}),"vLayout");return{hLayout:c,vLayout:d,kernelH:b.fn([ie,ie])((u=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(u.f=((p,m)=>{"use gpu";let _=c.$.params,v=__tsover_sub(__tsover_div(__tsover_mul(__tsover_add(S(p),.5),_.inputWidth),t),.5),h=__tsover_sub(__tsover_div(__tsover_mul(__tsover_add(S(m),.5),_.inputHeight),s),.5),y=fe(__tsover_sub(_.inputWidth,1)),x=fe(__tsover_sub(_.inputHeight,1)),g=fe(Yn(v)),w=xt(fe(Yn(h)),0,x),f=_.activeHalf,A=__tsover_add(__tsover_mul(f,2),1),E=ee(0,0,0,0);for(let P=0;P<A;P++){let C=__tsover_sub(P,f),$=xt(__tsover_add(g,C),0,y),U=_s(c.$.input,Qe(ie($),ie(w)),0);E=E.add(U.mul(c.$.weights[__tsover_add(C,a)]))}fn(c.$.intermediate,Qe(p,m),E)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"hLayout","$"],"params"]],[13,"inputCx",[1,[1,[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"*",[7,"p","inputWidth"]],"/","computeWidth"],"-",[5,"0.5"]]],[13,"inputCy",[1,[1,[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"*",[7,"p","inputHeight"]],"/","computeHeight"],"-",[5,"0.5"]]],[13,"inputWm1",[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]],[13,"inputHm1",[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]],[13,"inputCxI",[6,[7,"d","i32"],[[6,[7,"std","round"],["inputCx"]]]]],[13,"inputCyI",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],["inputCy"]]]],[5,"0"],"inputHm1"]]],[13,"ah",[7,"p","activeHalf"]],[13,"count",[1,[1,"ah","*",[5,"2"]],"+",[5,"1"]]],[12,"sum",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","count"],[102,"++","i"],[0,[[13,"off",[1,"i","-","ah"]],[13,"sampleX",[6,[7,"std","clamp"],[[1,"inputCxI","+","off"],[5,"0"],"inputWm1"]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"hLayout","$"],"input"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["sampleX"]],[6,[7,"d","u32"],["inputCyI"]]]],[5,"0"]]]],[2,"sum","=",[6,[7,"sum","add"],[[6,[7,"texel","mul"],[[8,[7,[7,"hLayout","$"],"weights"],[1,"off","+","HALF_KERNEL"]]]]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"hLayout","$"],"intermediate"],[6,[7,"d","vec2u"],["cx","cy"]],"sum"]]]],externalNames:["hLayout","d","computeWidth","computeHeight","std","HALF_KERNEL"]},externals:()=>({hLayout:c,d:o,computeWidth:t,computeHeight:s,std:n,HALF_KERNEL:a})})&&u.f)({})).$name("gaussianBlurH"),kernelV:b.fn([ie,ie])((u=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(u.f=((p,m)=>{"use gpu";let _=d.$.params.activeHalf,v=__tsover_add(__tsover_mul(_,2),1),h=fe(m),y=ee(0,0,0,0);for(let x=0;x<v;x++){let g=__tsover_sub(x,_),w=xt(__tsover_add(h,g),0,__tsover_sub(s,1)),f=_s(d.$.src,Qe(p,ie(w)));y=y.add(f.mul(d.$.weights[__tsover_add(g,a)]))}fn(d.$.output,Qe(p,m),y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"av",[7,[7,[7,"vLayout","$"],"params"],"activeHalf"]],[13,"count",[1,[1,"av","*",[5,"2"]],"+",[5,"1"]]],[13,"cyi",[6,[7,"d","i32"],["cy"]]],[12,"sum",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","count"],[102,"++","i"],[0,[[13,"off",[1,"i","-","av"]],[13,"sampleY",[6,[7,"std","clamp"],[[1,"cyi","+","off"],[5,"0"],[1,"computeHeight","-",[5,"1"]]]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"vLayout","$"],"src"],[6,[7,"d","vec2u"],["cx",[6,[7,"d","u32"],["sampleY"]]]]]]],[2,"sum","=",[6,[7,"sum","add"],[[6,[7,"texel","mul"],[[8,[7,[7,"vLayout","$"],"weights"],[1,"off","+","HALF_KERNEL"]]]]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"vLayout","$"],"output"],[6,[7,"d","vec2u"],["cx","cy"]],"sum"]]]],externalNames:["vLayout","d","std","computeHeight","HALF_KERNEL"]},externals:()=>({vLayout:d,d:o,std:n,computeHeight:s,HALF_KERNEL:a})})&&u.f)({})).$name("gaussianBlurV"),HParams:i,VParams:l,KERNEL_SIZE:r}}function su(e,t,s,r,a,i=_S,l=N1,c=640){let d=i,u=KB(i,l,c),{hLayout:p,vLayout:m,kernelH:_,kernelV:v,KERNEL_SIZE:h}=u,y=(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(e.createTexture({size:[l,c],format:Jd}).$usage("storage"),"intermediateTex"),x=(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(e.createTexture({size:[l,c],format:Y1}).$usage("storage","sampled"),"outputTex"),g=(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(e.createBuffer(qs(S,h)).$usage("storage"),"weightsHBuf"),w=(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(e.createBuffer(qs(S,h)).$usage("storage"),"weightsVBuf"),f=(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(e.createUniform(u.HParams),"paramsH"),A=(globalThis.__TYPEGPU_AUTONAME__??(L=>L))(e.createUniform(u.VParams),"paramsV");a(()=>{y.destroy(),x.destroy()});let E=e.createBindGroup(m,{src:y,output:x,weights:w,params:A.buffer}),P=pt(e,(L=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(L.f=((B,N)=>{"use gpu";_(B,N)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernelH",["cx","cy"]]]],externalNames:["kernelH"]},externals:()=>({kernelH:_})})&&L.f)({}),{size:[l,c]}),C=[P,pt(e,(L=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(L.f=((B,N)=>{"use gpu";v(B,N)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernelV",["cx","cy"]]]],externalNames:["kernelV"]},externals:()=>({kernelV:v})})&&L.f)({}),{size:[l,c],bindGroup:E})];function $(L){let B=e.createBindGroup(p,{input:L,intermediate:y,weights:g,params:f.buffer});C[0]=P.with(B)}t!=null&&$(t);let U=r/c,k=s,R=r,D=-1;function M(){let L=D<0?4:D,B=Math.max(L*.5,.001),N=Math.max(B/U,.001),G=_T(d,B),I=_T(d,N);g.write(G.weights),w.write(I.weights),f.write({activeHalf:G.activeHalf,inputWidth:k,inputHeight:R}),A.write({activeHalf:I.activeHalf})}function z(L){Math.abs(L-D)<.01||(D=L,M())}return z(4),{computeSteps:C,outputTexture:x,updateRadius:z,computeWidth:l,computeHeight:c,setInputTexture:$,setInputDimensions:(L,B)=>{k=L,R=B,f.patch({inputWidth:L,inputHeight:B});let N=B/c;Math.abs(N-U)>.001&&(U=N,M())}}}function JB(){return sr({inputWidth:S,inputHeight:S})}function QB(){return sr({scaleY:S})}function e8(e,t,s,r){let a=e*2+1,i=e,l=1/i,c=JB(),d=QB(),u=(globalThis.__TYPEGPU_AUTONAME__??(m=>m))(b.bindGroupLayout({blurMap:{storageTexture:jr(zr,"read-only")},input:{texture:Sa(S)},intermediate:{storageTexture:jr(Jd,"write-only")},weights:{storage:qs(S,a),access:"readonly"},params:{uniform:c}}),"hLayout"),p=(globalThis.__TYPEGPU_AUTONAME__??(m=>m))(b.bindGroupLayout({blurMap:{storageTexture:jr(zr,"read-only")},src:{storageTexture:jr(Jd,"read-only")},output:{storageTexture:jr(Y1,"write-only")},weights:{storage:qs(S,a),access:"readonly"},params:{uniform:d}}),"vLayout");return{hLayout:u,vLayout:p,kernelH:b.fn([ie,ie])((m=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(m.f=((_,v)=>{"use gpu";let h=u.$.params,y=_s(u.$.blurMap,Qe(_,v)).r,x=__tsover_sub(__tsover_div(__tsover_mul(__tsover_add(S(_),.5),h.inputWidth),t),.5),g=__tsover_sub(__tsover_div(__tsover_mul(__tsover_add(S(v),.5),h.inputHeight),s),.5),w=fe(__tsover_sub(h.inputWidth,1)),f=fe(__tsover_sub(h.inputHeight,1)),A=xt(fe(Yn(g)),0,f);if(y<M1){let E=xt(fe(Yn(x)),0,w),P=_s(u.$.input,Qe(ie(E),ie(A)),0);fn(u.$.intermediate,Qe(_,v),P)}else{let E=r?__tsover_sub(Ur(__tsover_mul(52.9829189,Ur(__tsover_add(__tsover_mul(S(_),.06711056),__tsover_mul(S(v),.00583715))))),.5):S(0),P=ee(0,0,0,0);for(let C=-i;C<=i;C++){let $=__tsover_mul(__tsover_mul(__tsover_add(S(C),E),l),y),U=xt(fe(Yn(__tsover_add(x,$))),0,w),k=_s(u.$.input,Qe(ie(U),ie(A)),0);P=P.add(k.mul(u.$.weights[__tsover_add(C,i)]))}fn(u.$.intermediate,Qe(_,v),P)}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"hLayout","$"],"params"]],[13,"blurRadius",[7,[6,[7,"std","textureLoad"],[[7,[7,"hLayout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]]]],"r"]],[13,"inputCx",[1,[1,[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"*",[7,"p","inputWidth"]],"/","computeWidth"],"-",[5,"0.5"]]],[13,"inputCy",[1,[1,[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"*",[7,"p","inputHeight"]],"/","computeHeight"],"-",[5,"0.5"]]],[13,"inputWm1",[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]],[13,"inputHm1",[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]],[13,"inputCyI",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],["inputCy"]]]],[5,"0"],"inputHm1"]]],[11,[1,"blurRadius","<","PASSTHROUGH_THRESHOLD"],[0,[[13,"cxClamp",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],["inputCx"]]]],[5,"0"],"inputWm1"]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"hLayout","$"],"input"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["cxClamp"]],[6,[7,"d","u32"],["inputCyI"]]]],[5,"0"]]]],[6,[7,"std","textureStore"],[[7,[7,"hLayout","$"],"intermediate"],[6,[7,"d","vec2u"],["cx","cy"]],"texel"]]]],[0,[[13,"jitterH",[105,"jitterTaps",[1,[6,[7,"std","fract"],[[1,[5,"52.9829189"],"*",[6,[7,"std","fract"],[[1,[1,[6,[7,"d","f32"],["cx"]],"*",[5,"0.06711056"]],"+",[1,[6,[7,"d","f32"],["cy"]],"*",[5,"0.00583715"]]]]]]]],"-",[5,"0.5"]],[6,[7,"d","f32"],[[5,"0"]]]]],[12,"sum",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[14,[12,"i",[4,"-","HALF_KERNEL"]],[1,"i","<=","HALF_KERNEL"],[102,"++","i"],[0,[[13,"offset",[1,[1,[1,[6,[7,"d","f32"],["i"]],"+","jitterH"],"*","invHalf"],"*","blurRadius"]],[13,"sampleX",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"inputCx","+","offset"]]]]],[5,"0"],"inputWm1"]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"hLayout","$"],"input"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["sampleX"]],[6,[7,"d","u32"],["inputCyI"]]]],[5,"0"]]]],[2,"sum","=",[6,[7,"sum","add"],[[6,[7,"texel","mul"],[[8,[7,[7,"hLayout","$"],"weights"],[1,"i","+","HALF_KERNEL"]]]]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"hLayout","$"],"intermediate"],[6,[7,"d","vec2u"],["cx","cy"]],"sum"]]]]]]],externalNames:["hLayout","std","d","computeWidth","computeHeight","PASSTHROUGH_THRESHOLD","jitterTaps","HALF_KERNEL","invHalf"]},externals:()=>({hLayout:u,std:n,d:o,computeWidth:t,computeHeight:s,PASSTHROUGH_THRESHOLD:M1,jitterTaps:r,HALF_KERNEL:i,invHalf:l})})&&m.f)({})).$name("variableBlurH"),kernelV:b.fn([ie,ie])((m=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(m.f=((_,v)=>{"use gpu";let h=_s(p.$.blurMap,Qe(_,v)).r;if(h<M1){let y=_s(p.$.src,Qe(_,v));fn(p.$.output,Qe(_,v),y)}else{let y=fe(v),x=__tsover_div(h,p.$.params.scaleY),g=r?__tsover_sub(Ur(__tsover_mul(52.9829189,Ur(__tsover_add(__tsover_mul(S(_),.00583715),__tsover_mul(S(v),.06711056))))),.5):S(0),w=ee(0,0,0,0);for(let f=-i;f<=i;f++){let A=__tsover_mul(__tsover_mul(__tsover_add(S(f),g),l),x),E=xt(__tsover_add(y,fe(Yn(A))),0,__tsover_sub(s,1)),P=_s(p.$.src,Qe(_,ie(E)));w=w.add(P.mul(p.$.weights[__tsover_add(f,i)]))}fn(p.$.output,Qe(_,v),w)}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"blurRadius",[7,[6,[7,"std","textureLoad"],[[7,[7,"vLayout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]]]],"r"]],[11,[1,"blurRadius","<","PASSTHROUGH_THRESHOLD"],[0,[[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"vLayout","$"],"src"],[6,[7,"d","vec2u"],["cx","cy"]]]]],[6,[7,"std","textureStore"],[[7,[7,"vLayout","$"],"output"],[6,[7,"d","vec2u"],["cx","cy"]],"texel"]]]],[0,[[13,"yi",[6,[7,"d","i32"],["cy"]]],[13,"radiusComputeY",[1,"blurRadius","/",[7,[7,[7,"vLayout","$"],"params"],"scaleY"]]],[13,"jitterV",[105,"jitterTaps",[1,[6,[7,"std","fract"],[[1,[5,"52.9829189"],"*",[6,[7,"std","fract"],[[1,[1,[6,[7,"d","f32"],["cx"]],"*",[5,"0.00583715"]],"+",[1,[6,[7,"d","f32"],["cy"]],"*",[5,"0.06711056"]]]]]]]],"-",[5,"0.5"]],[6,[7,"d","f32"],[[5,"0"]]]]],[12,"sum",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[14,[12,"i",[4,"-","HALF_KERNEL"]],[1,"i","<=","HALF_KERNEL"],[102,"++","i"],[0,[[13,"offset",[1,[1,[1,[6,[7,"d","f32"],["i"]],"+","jitterV"],"*","invHalf"],"*","radiusComputeY"]],[13,"sampleY",[6,[7,"std","clamp"],[[1,"yi","+",[6,[7,"d","i32"],[[6,[7,"std","round"],["offset"]]]]],[5,"0"],[1,"computeHeight","-",[5,"1"]]]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"vLayout","$"],"src"],[6,[7,"d","vec2u"],["cx",[6,[7,"d","u32"],["sampleY"]]]]]]],[2,"sum","=",[6,[7,"sum","add"],[[6,[7,"texel","mul"],[[8,[7,[7,"vLayout","$"],"weights"],[1,"i","+","HALF_KERNEL"]]]]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"vLayout","$"],"output"],[6,[7,"d","vec2u"],["cx","cy"]],"sum"]]]]]]],externalNames:["std","vLayout","d","PASSTHROUGH_THRESHOLD","jitterTaps","HALF_KERNEL","invHalf","computeHeight"]},externals:()=>({std:n,vLayout:p,d:o,PASSTHROUGH_THRESHOLD:M1,jitterTaps:r,HALF_KERNEL:i,invHalf:l,computeHeight:s})})&&m.f)({})).$name("variableBlurV"),HParams:c,VParams:d,KERNEL_SIZE:a}}function Zn(e,t,s,r,a,i=_S,l=N1,c=640,d){let u=i,p=e8(i,l,c,d?.jitterTaps===!0),{hLayout:m,vLayout:_,kernelH:v,kernelV:h,KERNEL_SIZE:y}=p,x=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(e.createTexture({size:[l,c],format:zr}).$usage("storage"),"blurMapTex"),g=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(e.createTexture({size:[l,c],format:Jd}).$usage("storage"),"intermediateTex"),w=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(e.createTexture({size:[l,c],format:Y1}).$usage("storage","sampled"),"outputTex"),f=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(e.createBuffer(qs(S,y)).$usage("storage"),"weightsBuf");f.write(HB(u));let A=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(e.createUniform(p.HParams),"paramsH"),E=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(e.createUniform(p.VParams),"paramsV");A.write({inputWidth:s,inputHeight:r}),E.write({scaleY:r/c}),a(()=>{x.destroy(),g.destroy(),w.destroy()});let P=e.createBindGroup(_,{blurMap:x,src:g,output:w,weights:f,params:E.buffer}),C=pt(e,(k=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(k.f=((R,D)=>{"use gpu";v(R,D)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernelH",["cx","cy"]]]],externalNames:["kernelH"]},externals:()=>({kernelH:v})})&&k.f)({}),{size:[l,c]}),$=[C,pt(e,(k=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(k.f=((R,D)=>{"use gpu";h(R,D)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernelV",["cx","cy"]]]],externalNames:["kernelV"]},externals:()=>({kernelV:h})})&&k.f)({}),{size:[l,c],bindGroup:P})];function U(k){let R=e.createBindGroup(m,{blurMap:x,input:k,intermediate:g,weights:f,params:A.buffer});$[0]=C.with(R)}return t!=null&&U(t),{computeSteps:$,outputTexture:w,blurMapTexture:x,computeWidth:l,computeHeight:c,setInputTexture:U,setInputDimensions:(k,R)=>{A.patch({inputWidth:k,inputHeight:R}),E.patch({scaleY:R/c})}}}var fS=new Float32Array(1),t8=new Int32Array(fS.buffer);function da(e){fS[0]=Math.max(-65504,Math.min(65504,e));let t=t8[0],s=t>>16&32768,r=t>>12&2047,a=t>>23&255;return a<103?s:a>142?(s|=31744,s|=(a===255?0:1)&&t&8388607,s):a<113?(r|=2048,s|=(r>>114-a)+(r>>113-a&1),s):(s|=a-112<<10|r>>1,s+=r&1,s)}var ft=wr({ANALYTIC_SDF_EXTRA_FIELDS:()=>a8,SVG_SDF_SIZE:()=>512,ShapeMask:()=>Cs,arcSdf:()=>ym,buildAnalyticSdfFn:()=>vS,circleSdf:()=>Pl,createAnalyticSdfSampler:()=>r8,createSdfDataTexture:()=>Bx,createSvgSdfSampler:()=>s8,createSvgSdfSamplerWithGradients:()=>o8,crescentSdf:()=>fm,crossSdf:()=>um,driveAnalyticSubProps:()=>n8,ellipseSdf:()=>mm,flowerSdf:()=>lm,heartSdf:()=>hm,loadSdfFromUrl:()=>Fx,parallelogramSdf:()=>xm,polygonSdf:()=>im,ringSdf:()=>dm,roundedRectSdf:()=>pm,shapeLocalCoords:()=>to,starSdf:()=>cm,strokeMaskFromSdf:()=>Is,teardropSdf:()=>gm,trapezoidSdf:()=>vm,vesicaSdf:()=>_m}),fT=3.141592653589793,Qd=6.283185307179586,vT=.35355339059327373,z1=.017453292519943295,Pl=b.fn([S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_sub(qt(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"dx"},{type:"i",name:"dy"},{type:"i",name:"radius"}],body:[0,[[10,[1,[6,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]],"-","radius"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),im=b.fn([S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=qt(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),l=Ea(s,t),c=__tsover_div(Qd,a),d=Lt(__tsover_add(__tsover_div(l,c),.5)),u=__tsover_sub(l,__tsover_mul(d,c));return __tsover_sub(__tsover_mul(i,po(u)),r)}),{v:1,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,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"angle",[6,[7,"std","atan2"],["dy","dx"]]],[13,"sectorAngle",[1,"TWO_PI","/","sides"]],[13,"sectorIdx",[6,[7,"std","floor"],[[1,[1,"angle","/","sectorAngle"],"+",[5,"0.5"]]]]],[13,"canonicalAngle",[1,"angle","-",[1,"sectorIdx","*","sectorAngle"]]],[10,[1,[1,"len","*",[6,[7,"std","cos"],["canonicalAngle"]]],"-","radius"]]]],externalNames:["std","TWO_PI"]},externals:()=>({std:n,TWO_PI:Qd})})&&e.f)({})),lm=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=Ea(s,t),c=qt(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),d=__tsover_mul(r,i),u=__tsover_div(__tsover_mul(l,a),Qd),p=__tsover_sub(u,Lt(u)),m=at(__tsover_sub(__tsover_mul(p,2),1)),_=__tsover_add(d,__tsover_mul(__tsover_sub(r,d),m));return __tsover_sub(c,_)}),{v:1,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,[7,"std","atan2"],["dy","dx"]]],[13,"len",[6,[7,"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,[7,"std","floor"],["tAngle"]]]],[13,"t",[6,[7,"std","abs"],[[1,[1,"tFrac","*",[5,"2"]],"-",[5,"1"]]]]],[13,"boundaryR",[1,"innerRadius","+",[1,[1,"outerRadius","-","innerRadius"],"*","t"]]],[10,[1,"len","-","boundaryR"]]]],externalNames:["std","TWO_PI"]},externals:()=>({std:n,TWO_PI:Qd})})&&e.f)({})),cm=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,i),c=qt(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s))),d=Ea(s,t),u=__tsover_div(Qd,a),p=Lt(__tsover_add(__tsover_div(d,u),.5)),m=__tsover_sub(d,__tsover_mul(p,u)),_=at(__tsover_mul(c,vs(m))),v=__tsover_mul(c,po(m)),h=__tsover_div(fT,a),y=vs(h),x=po(h),g=__tsover_mul(l,y),w=__tsover_sub(__tsover_mul(l,x),r),f=_,A=__tsover_sub(v,r),E=__tsover_add(__tsover_mul(f,g),__tsover_mul(A,w)),P=__tsover_add(__tsover_mul(g,g),__tsover_mul(w,w)),C=xt(__tsover_div(E,P),0,1),$=__tsover_sub(_,__tsover_mul(g,C)),U=__tsover_sub(v,__tsover_add(r,__tsover_mul(w,C))),k=qt(__tsover_add(__tsover_mul($,$),__tsover_mul(U,U))),R=__tsover_sub(__tsover_mul(g,A),__tsover_mul(w,f));return __tsover_mul(k,Kr(R))}),{v:1,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,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"angle",[6,[7,"std","atan2"],["dy","dx"]]],[13,"sectorAngle",[1,"TWO_PI","/","sides"]],[13,"sectorIdx",[6,[7,"std","floor"],[[1,[1,"angle","/","sectorAngle"],"+",[5,"0.5"]]]]],[13,"bn",[1,"angle","-",[1,"sectorIdx","*","sectorAngle"]]],[13,"fpx",[6,[7,"std","abs"],[[1,"len","*",[6,[7,"std","sin"],["bn"]]]]]],[13,"fpy",[1,"len","*",[6,[7,"std","cos"],["bn"]]]],[13,"an",[1,"PI","/","sides"]],[13,"sinAn",[6,[7,"std","sin"],["an"]]],[13,"cosAn",[6,[7,"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,[7,"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,[7,"std","sqrt"],[[1,[1,"nx","*","nx"],"+",[1,"ny","*","ny"]]]]],[13,"cross",[1,[1,"ex","*","qy"],"-",[1,"ey","*","qx"]]],[10,[1,"dist","*",[6,[7,"std","sign"],["cross"]]]]]],externalNames:["std","TWO_PI","PI"]},externals:()=>({std:n,TWO_PI:Qd,PI:fT})})&&e.f)({})),dm=b.fn([S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=qt(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s)));return __tsover_sub(at(__tsover_sub(i,r)),a)}),{v:1,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,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[10,[1,[6,[7,"std","abs"],[[1,"len","-","radius"]]],"-","thickness"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),um=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=at(t),c=at(s),d=$e(__tsover_sub(l,r),__tsover_sub(c,a)),u=$e(__tsover_sub(c,r),__tsover_sub(l,a));return __tsover_sub(Ct(d,u),i)}),{v:1,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,[7,"std","abs"],["dx"]]],[13,"py",[6,[7,"std","abs"],["dy"]]],[13,"dHoriz",[6,[7,"std","max"],[[1,"px","-","size"],[1,"py","-","thickness"]]]],[13,"dVert",[6,[7,"std","max"],[[1,"py","-","size"],[1,"px","-","thickness"]]]],[10,[1,[6,[7,"std","min"],["dHoriz","dVert"]],"-","rounding"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),pm=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_add(__tsover_sub(at(t),r),i),c=__tsover_add(__tsover_sub(at(s),a),i),d=$e(l,0),u=$e(c,0),p=qt(__tsover_add(__tsover_mul(d,d),__tsover_mul(u,u))),m=Ct($e(l,c),0);return __tsover_sub(__tsover_add(p,m),i)}),{v:1,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,[7,"std","abs"],["dx"]],"-","width"],"+","rounding"]],[13,"qy",[1,[1,[6,[7,"std","abs"],["dy"]],"-","height"],"+","rounding"]],[13,"mqx",[6,[7,"std","max"],["qx",[5,"0"]]]],[13,"mqy",[6,[7,"std","max"],["qy",[5,"0"]]]],[13,"outerDist",[6,[7,"std","sqrt"],[[1,[1,"mqx","*","mqx"],"+",[1,"mqy","*","mqy"]]]]],[13,"innerDist",[6,[7,"std","min"],[[6,[7,"std","max"],["qx","qy"]],[5,"0"]]]],[10,[1,[1,"outerDist","+","innerDist"],"-","rounding"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),mm=b.fn([S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_div(t,r),l=__tsover_div(s,a),c=qt(__tsover_add(__tsover_mul(i,i),__tsover_mul(l,l)));return __tsover_mul(__tsover_sub(c,1),Ct(r,a))}),{v:1,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,[7,"std","sqrt"],[[1,[1,"nx","*","nx"],"+",[1,"ny","*","ny"]]]]],[10,[1,[1,"k","-",[5,"1"]],"*",[6,[7,"std","min"],["radiusX","radiusY"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),_m=b.fn([S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=at(t),l=at(s),c=__tsover_mul(r,a),d=qt($e(__tsover_sub(__tsover_mul(r,r),__tsover_mul(c,c)),0)),u=__tsover_mul(__tsover_sub(l,d),c)>__tsover_mul(i,d),p=qt(__tsover_add(__tsover_mul(i,i),__tsover_mul(__tsover_sub(l,d),__tsover_sub(l,d)))),m=__tsover_sub(qt(__tsover_add(__tsover_mul(__tsover_add(i,c),__tsover_add(i,c)),__tsover_mul(l,l))),r);return bt(m,p,u)}),{v:1,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,[7,"std","abs"],["dx"]]],[13,"py",[6,[7,"std","abs"],["dy"]]],[13,"dd",[1,"radius","*","spread"]],[13,"b",[6,[7,"std","sqrt"],[[6,[7,"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,[7,"std","sqrt"],[[1,[1,"px","*","px"],"+",[1,[1,"py","-","b"],"*",[1,"py","-","b"]]]]]],[13,"dist2",[1,[6,[7,"std","sqrt"],[[1,[1,[1,"px","+","dd"],"*",[1,"px","+","dd"]],"+",[1,"py","*","py"]]]],"-","radius"]],[10,[6,[7,"std","select"],["dist2","dist1","cond"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),fm=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=at(s),c=r,d=__tsover_mul(r,a),u=i,p=__tsover_div(__tsover_add(__tsover_sub(__tsover_mul(c,c),__tsover_mul(d,d)),__tsover_mul(u,u)),$e(__tsover_mul(u,2),.001)),m=$e(__tsover_sub(__tsover_mul(c,c),__tsover_mul(p,p)),0),_=qt(m),v=__tsover_mul(u,__tsover_sub(__tsover_mul(t,_),__tsover_mul(l,p))),h=__tsover_mul(__tsover_mul(u,u),$e(__tsover_sub(_,l),0)),y=__tsover_sub(t,p),x=__tsover_sub(l,_),g=qt(__tsover_add(__tsover_mul(y,y),__tsover_mul(x,x))),w=qt(__tsover_add(__tsover_mul(t,t),__tsover_mul(l,l))),f=__tsover_sub(t,u),A=qt(__tsover_add(__tsover_mul(f,f),__tsover_mul(l,l))),E=$e(__tsover_sub(w,c),__tsover_mul(__tsover_sub(A,d),-1));return bt(E,g,v>h)}),{v:1,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,[7,"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,[7,"std","max"],[[1,"off","*",[5,"2"]],[5,"0.001"]]]]],[13,"bSq",[6,[7,"std","max"],[[1,[1,"ra","*","ra"],"-",[1,"a","*","a"]],[5,"0"]]]],[13,"b",[6,[7,"std","sqrt"],["bSq"]]],[13,"lhs",[1,"off","*",[1,[1,"dx","*","b"],"-",[1,"py","*","a"]]]],[13,"rhs",[1,[1,"off","*","off"],"*",[6,[7,"std","max"],[[1,"b","-","py"],[5,"0"]]]]],[13,"d1x",[1,"dx","-","a"]],[13,"d1y",[1,"py","-","b"]],[13,"dist1",[6,[7,"std","sqrt"],[[1,[1,"d1x","*","d1x"],"+",[1,"d1y","*","d1y"]]]]],[13,"lenP",[6,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"py","*","py"]]]]],[13,"innerX",[1,"dx","-","off"]],[13,"lenInner",[6,[7,"std","sqrt"],[[1,[1,"innerX","*","innerX"],"+",[1,"py","*","py"]]]]],[13,"dist2",[6,[7,"std","max"],[[1,"lenP","-","ra"],[1,[1,"lenInner","-","rb"],"*",[4,"-",[5,"1"]]]]]],[10,[6,[7,"std","select"],["dist2","dist1",[1,"lhs",">","rhs"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),vm=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=at(t),c=a,d=i,u=__tsover_sub(a,r),p=__tsover_mul(i,2),m=bt(a,r,s<0),_=__tsover_sub(l,Ct(l,m)),v=__tsover_sub(at(s),i),h=__tsover_sub(c,l),y=__tsover_sub(d,s),x=__tsover_add(__tsover_mul(h,u),__tsover_mul(y,p)),g=$e(__tsover_add(__tsover_mul(u,u),__tsover_mul(p,p)),1e-4),w=xt(__tsover_div(x,g),0,1),f=__tsover_add(__tsover_sub(l,c),__tsover_mul(u,w)),A=__tsover_add(__tsover_sub(s,d),__tsover_mul(p,w)),E=bt(S(1),S(-1),v<0),P=bt(S(1),E,f<0),C=__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v)),$=__tsover_add(__tsover_mul(f,f),__tsover_mul(A,A));return __tsover_mul(P,qt(Ct(C,$)))}),{v:1,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,[7,"std","abs"],["dx"]]],[13,"k1x","r2"],[13,"k1y","he"],[13,"k2x",[1,"r2","-","r1"]],[13,"k2y",[1,"he","*",[5,"2"]]],[13,"clampWidth",[6,[7,"std","select"],["r2","r1",[1,"dy","<",[5,"0"]]]]],[13,"cax",[1,"px","-",[6,[7,"std","min"],["px","clampWidth"]]]],[13,"cay",[1,[6,[7,"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,[7,"std","max"],[[1,[1,"k2x","*","k2x"],"+",[1,"k2y","*","k2y"]],[5,"0.0001"]]]],[13,"t",[6,[7,"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,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],[6,[7,"d","f32"],[[4,"-",[5,"1"]]]],[1,"cay","<",[5,"0"]]]]],[13,"s",[6,[7,"std","select"],[[6,[7,"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,[7,"std","sqrt"],[[6,[7,"std","min"],["dca","dcb"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),hm=b.fn([S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_div(r,.75),i=__tsover_div(at(t),a),l=__tsover_add(__tsover_div(__tsover_mul(s,-1),a),.6),c=__tsover_sub(i,.25),d=__tsover_sub(l,.75),u=__tsover_sub(qt(__tsover_add(__tsover_mul(c,c),__tsover_mul(d,d))),vT),p=__tsover_sub(l,1),m=__tsover_add(__tsover_mul(i,i),__tsover_mul(p,p)),_=__tsover_mul($e(__tsover_add(i,l),0),.5),v=__tsover_sub(i,_),h=__tsover_sub(l,_),y=__tsover_add(__tsover_mul(v,v),__tsover_mul(h,h)),x=__tsover_mul(qt(Ct(m,y)),Kr(__tsover_sub(i,l)));return __tsover_mul(bt(x,u,__tsover_add(i,l)>1),a)}),{v:1,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,[7,"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,[7,"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,[7,"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,[7,"std","sqrt"],[[6,[7,"std","min"],["dot1","dot2v"]]]],"*",[6,[7,"std","sign"],[[1,"px","-","py"]]]]],[10,[1,[6,[7,"std","select"],["distB","distA",[1,[1,"px","+","py"],">",[5,"1"]]]],"*","S"]]]],externalNames:["std","SQRT2_OVER_4"]},externals:()=>({std:n,SQRT2_OVER_4:vT})})&&e.f)({})),ym=b.fn([S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=at(t),l=vs(a),c=po(a),d=__tsover_sub(qt(__tsover_add(__tsover_mul(i,i),__tsover_mul(s,s))),r),u=xt(__tsover_add(__tsover_mul(i,l),__tsover_mul(s,c)),0,r),p=__tsover_sub(i,__tsover_mul(l,u)),m=__tsover_sub(s,__tsover_mul(c,u)),_=qt(__tsover_add(__tsover_mul(p,p),__tsover_mul(m,m)));return $e(d,__tsover_mul(_,Kr(__tsover_sub(__tsover_mul(c,i),__tsover_mul(l,s)))))}),{v:1,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,[7,"std","abs"],["dx"]]],[13,"cx",[6,[7,"std","sin"],["halfAngle"]]],[13,"cy",[6,[7,"std","cos"],["halfAngle"]]],[13,"l",[1,[6,[7,"std","sqrt"],[[1,[1,"px","*","px"],"+",[1,"dy","*","dy"]]]],"-","radius"]],[13,"clamped",[6,[7,"std","clamp"],[[1,[1,"px","*","cx"],"+",[1,"dy","*","cy"]],[5,"0"],"radiu
242s"]]],[13,"mx",[1,"px","-",[1,"cx","*","clamped"]]],[13,"my",[1,"dy","-",[1,"cy","*","clamped"]]],[13,"m",[6,[7,"std","sqrt"],[[1,[1,"mx","*","mx"],"+",[1,"my","*","my"]]]]],[10,[6,[7,"std","max"],["l",[1,"m","*",[6,[7,"std","sign"],[[1,[1,"cy","*","px"],"-",[1,"cx","*","dy"]]]]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),gm=b.fn([S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(__tsover_sub(a,r),.5),l=at(t),c=__tsover_add(__tsover_mul(s,-1),i),d=$e(a,1e-4),u=__tsover_div(r,d),p=qt($e(__tsover_sub(1,__tsover_mul(u,u)),0)),m=__tsover_add(__tsover_mul(l,__tsover_mul(u,-1)),__tsover_mul(c,p)),_=__tsover_sub(qt(__tsover_add(__tsover_mul(l,l),__tsover_mul(c,c))),r),v=__tsover_sub(c,a),h=qt(__tsover_add(__tsover_mul(l,l),__tsover_mul(v,v))),y=__tsover_sub(__tsover_add(__tsover_mul(l,p),__tsover_mul(c,u)),r);return bt(bt(y,h,m>__tsover_mul(p,a)),_,m<0)}),{v:1,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,[7,"std","abs"],["dx"]]],[13,"qy",[1,[1,"dy","*",[4,"-",[5,"1"]]],"+","mid"]],[13,"hSafe",[6,[7,"std","max"],["h",[5,"0.0001"]]]],[13,"b",[1,"radius","/","hSafe"]],[13,"a",[6,[7,"std","sqrt"],[[6,[7,"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,[7,"std","sqrt"],[[1,[1,"qx","*","qx"],"+",[1,"qy","*","qy"]]]],"-","radius"]],[13,"qyTip",[1,"qy","-","h"]],[13,"cap1",[6,[7,"std","sqrt"],[[1,[1,"qx","*","qx"],"+",[1,"qyTip","*","qyTip"]]]]],[13,"body",[1,[1,[1,"qx","*","a"],"+",[1,"qy","*","b"]],"-","radius"]],[10,[6,[7,"std","select"],[[6,[7,"std","select"],["body","cap1",[1,"k",">",[1,"a","*","h"]]]],"cap0",[1,"k","<",[5,"0"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),xm=b.fn([S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=i,c=a,d=s<0,u=bt(t,__tsover_mul(t,-1),d),p=bt(s,__tsover_mul(s,-1),d),m=__tsover_sub(u,l),_=__tsover_sub(p,c),v=__tsover_sub(m,xt(m,__tsover_mul(r,-1),r)),h=__tsover_add(__tsover_mul(v,v),__tsover_mul(_,_)),y=__tsover_mul(_,-1),x=__tsover_sub(__tsover_mul(u,c),__tsover_mul(p,l)),g=x<0,w=bt(u,__tsover_mul(u,-1),g),f=bt(p,__tsover_mul(p,-1),g),A=__tsover_sub(w,r),E=__tsover_add(__tsover_mul(A,l),__tsover_mul(f,c)),P=$e(__tsover_add(__tsover_mul(l,l),__tsover_mul(c,c)),1e-4),C=xt(__tsover_div(E,P),-1,1),$=__tsover_sub(A,__tsover_mul(l,C)),U=__tsover_sub(f,__tsover_mul(c,C)),k=Ct(h,__tsover_add(__tsover_mul($,$),__tsover_mul(U,U))),R=Ct(y,__tsover_sub(__tsover_mul(r,a),at(x)));return __tsover_mul(qt(k),Kr(__tsover_mul(R,-1)))}),{v:1,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,[7,"std","select"],["dx",[1,"dx","*",[4,"-",[5,"1"]]],"flip1"]]],[13,"py0",[6,[7,"std","select"],["dy",[1,"dy","*",[4,"-",[5,"1"]]],"flip1"]]],[13,"wx0",[1,"px0","-","ex"]],[13,"wy",[1,"py0","-","ey"]],[13,"wx",[1,"wx0","-",[6,[7,"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,[7,"std","select"],["px0",[1,"px0","*",[4,"-",[5,"1"]]],"flip2"]]],[13,"py",[6,[7,"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,[7,"std","max"],[[1,[1,"ex","*","ex"],"+",[1,"ey","*","ey"]],[5,"0.0001"]]]],[13,"tt",[6,[7,"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,[7,"std","min"],["dX",[1,[1,"vx","*","vx"],"+",[1,"vy","*","vy"]]]]],[13,"finalY",[6,[7,"std","min"],["dY",[1,[1,"wi","*","he"],"-",[6,[7,"std","abs"],["s"]]]]]],[10,[1,[6,[7,"std","sqrt"],["finalX"]],"*",[6,[7,"std","sign"],[[1,"finalY","*",[4,"-",[5,"1"]]]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),to=b.fn([H,S,H,S],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=H(__tsover_mul(r.x,a),r.y),l=H(__tsover_mul(t.x,a),__tsover_sub(1,t.y)),c=__tsover_sub(i.x,l.x),d=__tsover_sub(i.y,l.y),u=__tsover_mul(s,z1),p=po(u),m=vs(u),_=__tsover_add(__tsover_mul(c,p),__tsover_mul(d,m)),v=__tsover_sub(__tsover_mul(d,p),__tsover_mul(c,m));return H(_,v)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"rotation"},{type:"i",name:"uv"},{type:"i",name:"aspect"}
vendor: 100,516 bytes, line 242
242],body:[0,[[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[13,"rdx",[1,[1,"dx","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dx","*","sinR"]]],[10,[6,[7,"d","vec2f"],["rdx","rdy"]]]]],externalNames:["d","DEG_TO_RAD","std"]},externals:()=>({d:o,DEG_TO_RAD:z1,std:n})})&&e.f)({})),Cs=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({overallMask:S,strokeBlend:S}),"ShapeMask"),Is=b.fn([S,S,S,S],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=r>0,l=a>=1.5,c=a>=.5,d=__tsover_mul(r,.5),u=__tsover_mul(r,-1),p=__tsover_mul(d,-1),m=bt(bt(S(0),p,c),u,l),_=bt(bt(r,d,c),S(0),l),v=__tsover_sub(1,Ja(__tsover_sub(_,s),_,t)),h=Ja(__tsover_sub(m,s),m,t);return Cs({overallMask:v,strokeBlend:bt(S(0),h,i)})}),{v:1,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,[7,"std","select"],[[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"negHalf","isCenterOrAbove"]],"negThickness","isInside"]]],[13,"strokeOuter",[6,[7,"std","select"],[[6,[7,"std","select"],["strokeThickness","halfThickness","isCenterOrAbove"]],[6,[7,"d","f32"],[[5,"0"]]],"isInside"]]],[13,"overallMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"strokeOuter","-","softness"],"strokeOuter","dist"]]]],[13,"blend",[6,[7,"std","smoothstep"],[[1,"strokeInner","-","softness"],"strokeInner","dist"]]],[13,"strokeBlend",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"blend","hasStroke"]]],[10,[6,"ShapeMask",[[104,{overallMask:"overallMask",strokeBlend:"strokeBlend"}]]]]]],externalNames:["std","d","ShapeMask"]},externals:()=>({std:n,d:o,ShapeMask:Cs})})&&e.f)({}));async function Fx(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(),a=512*512;if(r.byteLength===a*2){let i=new Uint16Array(r),l=Math.min(i.length,t.length);for(let c=0;c<l;c++)t[c]=i[c]/32767.5-1}else if(r.byteLength===a*4){let i=new Float32Array(r),l=Math.min(i.length,t.length);for(let c=0;c<l;c++)t[c]=i[c]}else throw new Error(`SDF binary has unexpected size (${r.byteLength} bytes); expected ${a*2} (compact) or ${a*4} (legacy). The URL may point to a non-SDF file (e.g. the raw SVG).`)}function Bx(e,t){let r=new Float32Array(262144).fill(.5),a=new Uint16Array(262144),i=da(.5);for(let u=0;u<262144;u++)a[u]=i;let l=e.createDataTexture({width:512,height:512,format:"r16float",data:a,label:"svg-sdf"});e.onCleanup(()=>l.destroy());let c=!1,d=0;return t&&Fx(t,r).then(()=>{for(let u=0;u<262144;u++)a[u]=da(r[u]);c=!0}).catch(u=>console.warn("[SDF] Failed to load SDF texture:",u)),e.onBeforeRender(()=>{c&&(c=!1,l.write(a),d++)}),{kitTexture:e.registerMediaTexture(()=>l.texture),texture:l,getVersion:()=>d}}function s8(e,t){let{kitTexture:s}=Bx(e,t);return r=>s.sample(r)}function o8(e,t){let a=new Float32Array(262144).fill(.5),i=new Uint16Array(262144*4),l=da(.5),c=da(1);for(let y=0;y<262144;y++)i[y*4]=l,i[y*4+3]=c;let d=e.createMediaTexture({width:512,height:512,format:"rgba16float",label:"svg-sdf-grad"});e.onCleanup(()=>d.destroy());let u=(y,x)=>{let g=Math.floor(y),w=Math.floor(x),f=y-g,A=x-w,E=k=>Math.min(Math.max(k,0),511),P=E(g),C=E(g+1),$=E(w),U=E(w+1);return a[$*512+P]*(1-f)*(1-A)+a[$*512+C]*f*(1-A)+a[U*512+P]*(1-f)*A+a[U*512+C]*f*A},p=.01,m=p*512,_=()=>{for(let y=0;y<512;y++)for(let x=0;x<512;x++){let g=y*512+x,w=a[g],f=(u(x+m,y)-w)/p,A=(u(x,y+m)-w)/p;i[g*4]=da(w),i[g*4+1]=da(f),i[g*4+2]=da(A)}},v=!1;t&&Fx(t,a).then(()=>{_(),v=!0}).catch(y=>console.warn("[SDF] Failed to load SDF texture:",y)),e.onBeforeRender(()=>{v&&(v=!1,d.write(i))});let h=e.registerMediaTexture(()=>d.texture);return y=>h.sample(y)}var hT=.008726646259971648;function vS(e){return b.fn([H,S,S,S,S,S,S,S,S],ee)((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_sub(s.x,.5),_=__tsover_sub(s.y,.5),v=__tsover_mul(c,z1),h=po(v),y=vs(v),x=__tsover_add(__tsover_mul(m,h),__tsover_mul(_,y)),g=__tsover_sub(__tsover_mul(_,h),__tsover_mul(m,y)),w=S(0);return e==="polygonSDF"?w=Ft(im(x,g,r,a),Pl(x,g,r),i):e==="flowerSDF"?w=lm(x,g,r,a,l):e==="ringSDF"?w=dm(x,g,r,l):e==="crossSDF"?w=um(x,g,r,l,i):e==="starSDF"?w=cm(x,g,r,a,l):e==="roundedRectSDF"?w=pm(x,g,r,d,i):e==="ellipseSDF"?w=mm(x,g,r,d):e==="vesicaSDF"?w=_m(x,g,r,l):e==="crescentSDF"?w=fm(x,g,r,l,u):e==="trapezoidSDF"?w=vm(x,g,l,r,d):e==="heartSDF"?w=hm(x,g,r):e==="arcSDF"?w=ym(x,g,r,__tsover_mul(p,hT)):e==="teardropSDF"?w=gm(x,g,r,d):e==="parallelogramSDF"?w=xm(x,g,r,d,u):w=Pl(x,g,r),ee(w,0,0,1)}),{v:1,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,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[13,"rdx",[1,[1,"dx","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dx","*","sinR"]]],[12,"dist",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"shapeType","===",[103,"polygonSDF"]],[2,"dist","=",[6,[7,"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,[7,"d","vec4f"],["dist",[5,"0"],[5,"0"],[5,"1"]]]]]],externalNames:["DEG_TO_RAD","std","d","shapeType","polygonSdf","circleSdf","flowerSdf","ringSdf","crossSdf","starSdf","roundedRectSdf","ellipseSdf","vesicaSdf","crescentSdf","trapezoidSdf","heartSdf","arcSdf","APERTURE_TO_HALFANGLE","teardropSdf","parallelogramSdf"]},externals:()=>({DEG_TO_RAD:z1,std:n,d:o,shapeType:e,polygonSdf:im,circleSdf:Pl,flowerSdf:lm,ringSdf:dm,crossSdf:um,starSdf:cm,roundedRectSdf:pm,ellipseSdf:mm,vesicaSdf:_m,crescentSdf:fm,trapezoidSdf:vm,heartSdf:hm,arcSdf:ym,APERTURE_TO_HALFANGLE:hT,teardropSdf:gm,parallelogramSdf:xm})})&&t.f)({})).$name(`analyticSdf_${e}`)}function r8(e,t,s="none"){let r=t.radius??le(0),a=t.sides??le(0),i=t.rounding??le(0),l=t.innerRatio??le(0),c=t.rotation??le(0),d=t.height??le(0),u=t.offset??le(0),p=t.aperture??le(0),m=vS(e);return _=>T(m,`analyticSdf_${e}`,[_,r,a,i,l,c,d,u,p])}var a8={_saRadius:{schema:S,initial:.35},_saSides:{schema:S,initial:6},_saRounding:{schema:S,initial:0},_saInnerRatio:{schema:S,initial:.4},_saRotation:{schema:S,initial:0},_saHeight:{schema:S,initial:.25},_saOffset:{schema:S,initial:.2},_saAperture:{schema:S,initial:270}};function n8(e,t){let s="",r=(()=>{let c=t();if(c&&typeof c=="object")return c;if(typeof c=="string")try{return JSON.parse(c)}catch{return{}}return{}})(),a=(c,d)=>typeof c=="number"?c:d,i=()=>{let c=r;e.setExtraField("_saRadius",a(c.radius,a(c.width,a(c.bottomWidth,.35)))),e.setExtraField("_saSides",a(c.sides,6)),e.setExtraField("_saRounding",a(c.rounding,0)),e.setExtraField("_saInnerRatio",a(c.innerRatio,a(c.thickness,a(c.spread,a(c.topWidth,a(c.topRatio,.4)))))),e.setExtraField("_saRotation",a(c.rotation,0)),e.setExtraField("_saHeight",a(c.height,.25)),e.setExtraField("_saOffset",a(c.offset,a(c.skew,.2))),e.setExtraField("_saAperture",a(c.aperture,270))};e.onBeforeRender(()=>{let c=t();if(c&&typeof c=="object")r=c;else if(typeof c=="string"&&c!==s){s=c;try{r=JSON.parse(c)}catch{return}}i()});let l=e.uniforms;return{radius:l._saRadius,sides:l._saSides,rounding:l._saRounding,innerRatio:l._saInnerRatio,rotation:l._saRotation,height:l._saHeight,offset:l._saOffset,aperture:l._saAperture}}function ou(){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 hS(){return ou()?1.5:2}var ys=wr({HELIX_TURNS:()=>3,MarchParams:()=>Rl,RotStruct:()=>G1,SHAPE3D_DEFAULTS:()=>I1,SHAPE3D_TYPES:()=>yS,SVG3D_DEFAULTS:()=>gS,SVG3D_TYPES:()=>i8,SampleParams:()=>Tx,VOLUMETRIC_FIELD_EXTRA_FIELDS:()=>Gx,VOLUMETRIC_FIELD_FORMAT:()=>W1,VOLUMETRIC_FIELD_RES:()=>wS,VOLUMETRIC_FIELD_RES_MOBILE:()=>768,buildFieldSampleGraph:()=>_8,buildFieldSampleGraphArgs:()=>CS,buildRaymarchedField:()=>p8,buildRaymarchedFieldFn:()=>Yx,buildVolumetricFieldKernel:()=>AS,buildVolumetricFieldSampler:()=>f8,createAnalytic3dSdfSetup:()=>kS,createSvg3dSdfSetup:()=>RS,createVolumetricFieldCompute:()=>ES,createVolumetricFieldComputeNode:()=>v8,is3dShapeType:()=>Vx,isMobileGpuViewport:()=>ou,isSvg3dShapeType:()=>Ox,isVolumetricShapeType:()=>l8,makeVolumetricFieldLayout:()=>SS,makeVolumetricSvgFieldLayout:()=>MS,resolveActiveFieldRes:()=>TS,resolveShapeSubProp:()=>Nx,resolveVolumetricFieldRes:()=>X1,rotateVec3:()=>P1,rotateVecCpu:()=>ox,sdBicone:()=>bm,sdCappedCone:()=>dx,sdCapsule:()=>cx,sdCutSphere:()=>gx,sdDodecahedron:()=>yx,sdEllipsoid:()=>mx,sdFlatBand:()=>Qp,sdGem:()=>fx,sdGyroscope:()=>wx,sdHelix:()=>vx,sdHexPrism:()=>px,sdLink:()=>_x,sdMetaballs:()=>hx,sdOctahedron:()=>ix,sdPyramid:()=>ux,sdRibbon:()=>xx,sdRoundBox:()=>ax,sdRoundCylinder:()=>lx,sdSphere:()=>rx,sdTorus:()=>nx,sdWobbleBlob:()=>bx,shape3dBoundingRadius:()=>bS,shapeSubPropMax:()=>xS,smin:()=>Jp}),yT=3.141592653589793,Hd=6.283185307179586,yS=["sphere3D","cube3D","torus3D","octahedron3D","cylinder3D","capsule3D","cone3D","pyramid3D","prism3D","ellipsoid3D","diamond3D","link3D","gem3D","helix3D","metaballs3D","dodecahedron3D","hemisphere3D","ribbon3D","blob3D","gyroscope3D"];function Vx(e){return yS.includes(e)}var i8=["svgExtrude3D"];function Ox(e){return e==="svgExtrude3D"}function l8(e){return Vx(e)||Ox(e)}var gS={depth:.12,bevel:.02,rotX:15,rotY:30,rotZ:0},c8=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),d8=(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 c8(e);default:return(1-Math.cos(Math.PI*e))/2}};function u8(e,t,s,r,a,i){if(r===0&&a===0)return[s,0];let l=200*Math.pow(.01,r),c=2*Math.sqrt(l)*(1-a*.85),d=t+(l*(s-e)-c*t)*i;return[e+d*i,d]}function Nx(e,t,s,r){if(typeof e=="number")return e;if(e&&typeof e=="object"){if(e.type==="auto-animate"){let a=(s.elapsed*(e.speed??1)*.2%1+1)%1,i=d8(e.mode==="loop"?a:a<.5?a*2:(1-a)*2,e.easing??e.waveform??"sine"),l=typeof e.outputMin=="number"?e.outputMin:t;return l+i*((typeof e.outputMax=="number"?e.outputMax:t)-l)}if(e.type==="mouse"){let a=e.axis==="y"?s.pointerY:s.pointerX,i=s.springs.get(r);i||(i={current:a,velocity:0},s.springs.set(r,i));let[l,c]=u8(i.current,i.velocity,a,e.smoothing??0,e.momentum??0,s.deltaTime);i.current=l,i.velocity=c;let d=Math.max(.001,l),u=typeof e.outputMin=="number"?e.outputMin:t,p=typeof e.outputMax=="number"?e.outputMax:t,m=Math.pow(2,-(e.curve??0)*2);return u+Math.pow(d,m)*(p-u)}}return t}function xS(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 I1={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:{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 bS(e){let t=I1[e.type]??{},s=(r,a=.3)=>xS(e[r],t[r]??a);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 ox(e,t,s,r){let a=e*r.cy+s*r.sy,i=-e*r.sy+s*r.cy,l=t*r.cx-i*r.sx,c=t*r.sx+i*r.cx;return{x:a*r.cz-l*r.sz,y:a*r.sz+l*r.cz,z:c}}var rx=b.fn([W,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_sub(It(t),s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"}],body:[0,[[10,[1,[6,[7,"std","length"],["p"]],"-","r"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),ax=b.fn([W,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_add(__tsover_sub(at(t.x),s),i),c=__tsover_add(__tsover_sub(at(t.y),r),i),d=__tsover_add(__tsover_sub(at(t.z),a),i),u=It(W($e(l,0),$e(c,0),$e(d,0))),p=Ct($e(l,$e(c,d)),0);return __tsover_sub(__tsover_add(u,p),i)}),{v:1,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,[7,"std","abs"],[[7,"p","x"]]],"-","hx"],"+","rounding"]],[13,"qy",[1,[1,[6,[7,"std","abs"],[[7,"p","y"]]],"-","hy"],"+","rounding"]],[13,"qz",[1,[1,[6,[7,"std","abs"],[[7,"p","z"]]],"-","hz"],"+","rounding"]],[13,"outer",[6,[7,"std","length"],[[6,[7,"d","vec3f"],[[6,[7,"std","max"],["qx",[5,"0"]]],[6,[7,"std","max"],["qy",[5,"0"]]],[6,[7,"std","max"],["qz",[5,"0"]]]]]]]],[13,"inner",[6,[7,"std","min"],[[6,[7,"std","max"],["qx",[6,[7,"std","max"],["qy","qz"]]]],[5,"0"]]]],[10,[1,[1,"outer","+","inner"],"-","rounding"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),nx=b.fn([W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_sub(It(H(t.x,t.z)),s);return __tsover_sub(It(H(a,t.y)),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"ringR"},{type:"i",name:"tubeR"}],body:[0,[[13,"qx",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"p","x"],[7,"p","z"]]]]],"-","ringR"]],[10,[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],["qx",[7,"p","y"]]]]],"-","tubeR"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),ix=b.fn([W,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_mul(__tsover_sub(__tsover_add(__tsover_add(at(t.x),at(t.y)),at(t.z)),s),.57735027)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"s"}],body:[0,[[10,[1,[1,[1,[1,[6,[7,"std","abs"],[[7,"p","x"]]],"+",[6,[7,"std","abs"],[[7,"p","y"]]]],"+",[6,[7,"std","abs"],[[7,"p","z"]]]],"-","s"],"*",[5,"0.57735027"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),lx=b.fn([W,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_add(__tsover_sub(It(H(t.x,t.z)),s),a),l=__tsover_add(__tsover_sub(at(t.y),r),a),c=Ct($e(i,l),0),d=It(H($e(i,0),$e(l,0)));return __tsover_sub(__tsover_add(c,d),a)}),{v:1,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,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"p","x"],[7,"p","z"]]]]],"-","r"],"+","rounding"]],[13,"dy",[1,[1,[6,[7,"std","abs"],[[7,"p","y"]]],"-","h"],"+","rounding"]],[13,"inner",[6,[7,"std","min"],[[6,[7,"std","max"],["dx","dy"]],[5,"0"]]]],[13,"outer",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[6,[7,"std","max"],["dx",[5,"0"]]],[6,[7,"std","max"],["dy",[5,"0"]]]]]]]],[10,[1,[1,"inner","+","outer"],"-","rounding"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),cx=b.fn([W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=xt(t.y,__tsover_mul(r,-1),r);return __tsover_sub(It(W(t.x,__tsover_sub(t.y,a),t.z)),s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"}],body:[0,[[13,"cyc",[6,[7,"std","clamp"],[[7,"p","y"],[1,"h","*",[4,"-",[5,"1"]]],"h"]]],[10,[1,[6,[7,"std","length"],[[6,[7,"d","vec3f"],[[7,"p","x"],[1,[7,"p","y"],"-","cyc"],[7,"p","z"]]]]],"-","r"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),dx=b.fn([W,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=It(H(t.x,t.z)),l=t.y,c=__tsover_sub(r,s),d=__tsover_mul(a,2),u=__tsover_sub(i,Ct(i,bt(r,s,l<0))),p=__tsover_sub(at(l),a),m=__tsover_add(__tsover_mul(__tsover_sub(r,i),c),__tsover_mul(__tsover_sub(a,l),d)),_=$e(__tsover_add(__tsover_mul(c,c),__tsover_mul(d,d)),1e-6),v=xt(__tsover_div(m,_),0,1),h=__tsover_add(__tsover_sub(i,r),__tsover_mul(c,v)),y=__tsover_add(__tsover_sub(l,a),__tsover_mul(d,v)),x=bt(S(1),S(-1),p<0),g=bt(S(1),x,h<0),w=__tsover_add(__tsover_mul(u,u),__tsover_mul(p,p)),f=__tsover_add(__tsover_mul(h,h),__tsover_mul(y,y));return __tsover_mul(g,qt(Ct(w,f)))}),{v:1,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,[7,"std","length"],[[6,[7,"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,[7,"std","min"],["qx",[6,[7,"std","select"],["r2","r1",[1,"qy","<",[5,"0"]]]]]]]],[13,"cay",[1,[6,[7,"std","abs"],["qy"]],"-","h"]],[13,"dotNum",[1,[1,[1,"r2","-","qx"],"*","k2x"],"+",[1,[1,"h","-","qy"],"*","k2y"]]],[13,"dotDen",[6,[7,"std","max"],[[1,[1,"k2x","*","k2x"],"+",[1,"k2y","*","k2y"]],[5,"0.000001"]]]],[13,"t",[6,[7,"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,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],[6,[7,"d","f32"],[[4,"-",[5,"1"]]]],[1,"cay","<",[5,"0"]]]]],[13,"s",[6,[7,"std","select"],[[6,[7,"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,[7,"std","sqrt"],[[6,[7,"std","min"],["dca","dcb"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),ux=b.fn([W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(r,.5),i=qt(__tsover_add(__tsover_mul(r,r),__tsover_mul(s,s))),l=__tsover_div(__tsover_add(__tsover_mul(r,at(t.x)),__tsover_mul(s,__tsover_sub(t.y,a))),i),c=__tsover_div(__tsover_add(__tsover_mul(r,at(t.z)),__tsover_mul(s,__tsover_sub(t.y,a))),i),d=__tsover_sub(__tsover_mul(t.y,-1),a);return $e($e(l,c),d)}),{v:1,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,[7,"std","sqrt"],[[1,[1,"ht","*","ht"],"+",[1,"b","*","b"]]]]],[13,"dx",[1,[1,[1,"ht","*",[6,[7,"std","abs"],[[7,"p","x"]]]],"+",[1,"b","*",[1,[7,"p","y"],"-","h2"]]],"/","denom"]],[13,"dz",[1,[1,[1,"ht","*",[6,[7,"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,[7,"std","max"],[[6,[7,"std","max"],["dx","dz"]],"dBase"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),px=b.fn([W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=-.8660254,i=.5,l=.57735,c=at(t.x),d=at(t.y),u=at(t.z),p=__tsover_mul(Ct(__tsover_add(__tsover_mul(a,c),__tsover_mul(i,d)),0),2),m=__tsover_sub(c,__tsover_mul(p,a)),_=__tsover_sub(d,__tsover_mul(p,i)),v=xt(m,__tsover_mul(__tsover_mul(l,s),-1),__tsover_mul(l,s)),h=__tsover_sub(m,v),y=__tsover_sub(_,s),x=__tsover_mul(qt(__tsover_add(__tsover_mul(h,h),__tsover_mul(y,y))),Kr(__tsover_sub(_,s))),g=__tsover_sub(u,r),w=Ct($e(x,g),0),f=It(H($e(x,0),$e(g,0)));return __tsover_add(w,f)}),{v:1,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,[7,"std","abs"],[[7,"p","x"]]]],[13,"ay",[6,[7,"std","abs"],[[7,"p","y"]]]],[13,"az",[6,[7,"std","abs"],[[7,"p","z"]]]],[13,"dk",[1,[6,[7,"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,[7,"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,[7,"std","sqrt"],[[1,[1,"ex","*","ex"],"+",[1,"ey","*","ey"]]]],"*",[6,[7,"std","sign"],[[1,"py","-","r"]]]]],[13,"dZ",[1,"az","-","he"]],[13,"inner",[6,[7,"std","min"],[[6,[7,"std","max"],["dHex","dZ"]],[5,"0"]]]],[13,"outer",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[6,[7,"std","max"],["dHex",[5,"0"]]],[6,[7,"std","max"],["dZ",[5,"0"]]]]]]]],[10,[1,"inner","+","outer"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),mx=b.fn([W,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=It(W(__tsover_div(t.x,s),__tsover_div(t.y,r),__tsover_div(t.z,a))),l=It(W(__tsover_div(t.x,__tsover_mul(s,s)),__tsover_div(t.y,__tsover_mul(r,r)),__tsover_div(t.z,__tsover_mul(a,a))));return __tsover_div(__tsover_mul(i,__tsover_sub(i,1)),$e(l,1e-6))}),{v:1,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,[7,"std","length"],[[6,[7,"d","vec3f"],[[1,[7,"p","x"],"/","rx"],[1,[7,"p","y"],"/","ry"],[1,[7,"p","z"],"/","rz"]]]]]],[13,"k1",[6,[7,"std","length"],[[6,[7,"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,[7,"std","max"],["k1",[5,"0.000001"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),bm=b.fn([W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=It(H(t.x,t.z)),i=at(t.y),l=__tsover_mul(s,-1),c=r,d=__tsover_sub(a,s),u=i,p=$e(__tsover_add(__tsover_mul(l,l),__tsover_mul(c,c)),1e-6),m=xt(__tsover_div(__tsover_add(__tsover_mul(d,l),__tsover_mul(u,c)),p),0,1),_=__tsover_sub(d,__tsover_mul(l,m)),v=__tsover_sub(u,__tsover_mul(c,m)),h=qt(__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v)));return __tsover_mul(h,Kr(__tsover_sub(__tsover_add(__tsover_mul(r,a),__tsover_mul(s,i)),__tsover_mul(s,r))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"}],body:[0,[[13,"qx",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"p","x"],[7,"p","z"]]]]]],[13,"qy",[6,[7,"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,[7,"std","max"],[[1,[1,"abx","*","abx"],"+",[1,"aby","*","aby"]],[5,"0.000001"]]]],[13,"t",[6,[7,"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,[7,"std","sqrt"],[[1,[1,"dxx","*","dxx"],"+",[1,"dyy","*","dyy"]]]]],[10,[1,"dist","*",[6,[7,"std","sign"],[[1,[1,[1,"h","*","qx"],"+",[1,"r","*","qy"]],"-",[1,"r","*","h"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),_x=b.fn([W,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=$e(__tsover_sub(at(t.y),s),0),l=__tsover_sub(It(H(t.x,i)),r);return __tsover_sub(It(H(l,t.z)),a)}),{v:1,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,[7,"std","max"],[[1,[6,[7,"std","abs"],[[7,"p","y"]]],"-","le"],[5,"0"]]]],[13,"ring",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"p","x"],"qy"]]]],"-","r1"]],[10,[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],["ring",[7,"p","z"]]]]],"-","r2"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Jp=b.fn([S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=xt(__tsover_add(__tsover_mul(__tsover_div(__tsover_sub(s,t),r),.5),.5),0,1);return __tsover_sub(Ft(s,t,a),__tsover_mul(__tsover_mul(r,a),__tsover_sub(1,a)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"k"}],body:[0,[[13,"h",[6,[7,"std","clamp"],[[1,[1,[1,[1,"b","-","a"],"/","k"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,[1,[6,[7,"std","mix"],["b","a","h"]],"-",[1,[1,"k","*","h"],"*",[1,[5,"1"],"-","h"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),fx=b.fn([W,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=bm(t,s,r),l=It(H(t.x,t.z)),c=Ea(t.z,t.x),d=__tsover_div(Hd,a),u=Lt(__tsover_add(__tsover_div(c,d),.5)),p=__tsover_sub(c,__tsover_mul(u,d)),m=__tsover_mul(s,po(__tsover_div(yT,a))),_=__tsover_sub(__tsover_mul(l,po(p)),m),v=$e(i,_),h=__tsover_sub(t.y,__tsover_mul(r,.45));return $e(v,h)}),{v:1,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,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"p","x"],[7,"p","z"]]]]]],[13,"ang",[6,[7,"std","atan2"],[[7,"p","z"],[7,"p","x"]]]],[13,"sector",[1,"TWO_PI","/","sides"]],[13,"idx",[6,[7,"std","floor"],[[1,[1,"ang","/","sector"],"+",[5,"0.5"]]]]],[13,"ca",[1,"ang","-",[1,"idx","*","sector"]]],[13,"ri",[1,"r","*",[6,[7,"std","cos"],[[1,"PI","/","sides"]]]]],[13,"facet",[1,[1,"lenXZ","*",[6,[7,"std","cos"],["ca"]]],"-","ri"]],[13,"dd",[6,[7,"std","max"],["base","facet"]]],[13,"table",[1,[7,"p","y"],"-",[1,"h","*",[5,"0.45"]]]],[10,[6,[7,"std","max"],["dd","table"]]]]],externalNames:["sdBicone","std","d","TWO_PI","PI"]},externals:()=>({sdBicone:bm,std:n,d:o,TWO_PI:Hd,PI:yT})})&&e.f)({})),vx=b.fn([W,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=Ea(t.z,t.x),c=Lt(__tsover_add(__tsover_sub(__tsover_div(t.y,a),__tsover_div(l,Hd)),.5)),d=__tsover_add(l,__tsover_mul(Hd,c)),u=__tsover_mul(s,po(d)),p=__tsover_div(__tsover_mul(a,d),Hd),m=__tsover_mul(s,vs(d)),_=__tsover_sub(It(W(__tsover_sub(t.x,u),__tsover_sub(t.y,p),__tsover_sub(t.z,m))),r),v=__tsover_sub(at(t.y),__tsover_mul(__tsover_mul(a,i),.5));return $e(_,v)}),{v:1,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,[7,"std","atan2"],[[7,"p","z"],[7,"p","x"]]]],[13,"k",[6,[7,"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,[7,"std","cos"],["theta"]]]],[13,"ccy",[1,[1,"pitch","*","theta"],"/","TWO_PI"]],[13,"ccz",[1,"R","*",[6,[7,"std","sin"],["theta"]]]],[13,"dStrand",[1,[6,[7,"std","length"],[[6,[7,"d","vec3f"],[[1,[7,"p","x"],"-","ccx"],[1,[7,"p","y"],"-","ccy"],[1,[7,"p","z"],"-","ccz"]]]]],"-","tube"]],[13,"slab",[1,[6,[7,"std","abs"],[[7,"p","y"]]],"-",[1,[1,"pitch","*","turns"],"*",[5,"0.5"]]]],[10,[6,[7,"std","max"],["dStrand","slab"]]]]],externalNames:["std","TWO_PI","d"]},externals:()=>({std:n,TWO_PI:Hd,d:o})})&&e.f)({})),hx=b.fn([W,W,W,W,W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_sub(It(t.sub(s)),l);return d=Jp(d,__tsover_sub(It(t.sub(r)),l),c),d=Jp(d,__tsover_sub(It(t.sub(a)),l),c),d=Jp(d,__tsover_sub(It(t.sub(i)),l),c),d}),{v:1,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:"r"},{type:"i",name:"k"}],body:[0,[[12,"dd",[1,[6,[7,"std","length"],[[6,[7,"p","sub"],["b0"]]]],"-","r"]],[2,"dd","=",[6,"smin",["dd",[1,[6,[7,"std","length"],[[6,[7,"p","sub"],["b1"]]]],"-","r"],"k"]]],[2,"dd","=",[6,"smin",["dd",[1,[6,[7,"std","length"],[[6,[7,"p","sub"],["b2"]]]],"-","r"],"k"]]],[2,"dd","=",[6,"smin",["dd",[1,[6,[7,"std","length"],[[6,[7,"p","sub"],["b3"]]]],"-","r"],"k"]]],[10,"dd"]]],externalNames:["std","smin"]},externals:()=>({std:n,smin:Jp})})&&e.f)({})),yx=b.fn([W,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=W(at(t.x),at(t.y),at(t.z)),a=no(r,W(0,.5257311,.8506508)),i=no(r,W(.8506508,0,.5257311)),l=no(r,W(.5257311,.8506508,0));return __tsover_sub($e($e(a,i),l),s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"}],body:[0,[[13,"q",[6,[7,"d","vec3f"],[[6,[7,"std","abs"],[[7,"p","x"]]],[6,[7,"std","abs"],[[7,"p","y"]]],[6,[7,"std","abs"],[[7,"p","z"]]]]]],[13,"a",[6,[7,"std","dot"],["q",[6,[7,"d","vec3f"],[[5,"0"],[5,"0.5257311"],[5,"0.8506508"]]]]]],[13,"b",[6,[7,"std","dot"],["q",[6,[7,"d","vec3f"],[[5,"0.8506508"],[5,"0"],[5,"0.5257311"]]]]]],[13,"c",[6,[7,"std","dot"],["q",[6,[7,"d","vec3f"],[[5,"0.5257311"],[5,"0.8506508"],[5,"0"]]]]]],[10,[1,[6,[7,"std","max"],[[6,[7,"std","max"],["a","b"]],"c"]],"-","r"]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),gx=b.fn([W,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=qt($e(__tsover_sub(__tsover_mul(s,s),__tsover_mul(r,r)),0)),i=It(H(t.x,t.z)),l=t.y,c=$e(__tsover_add(__tsover_mul(__tsover_mul(__tsover_sub(r,s),i),i),__tsover_mul(__tsover_mul(a,a),__tsover_sub(__tsover_add(r,s),__tsover_mul(l,2)))),__tsover_sub(__tsover_mul(r,i),__tsover_mul(a,l))),d=__tsover_sub(It(H(i,l)),s),u=__tsover_sub(r,l),p=It(H(__tsover_sub(i,a),__tsover_sub(l,r))),m=bt(p,u,i<a);return bt(m,d,c<0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"r"},{type:"i",name:"h"}],body:[0,[[13,"w",[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,[1,"r","*","r"],"-",[1,"h","*","h"]],[5,"0"]]]]]],[13,"qx",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"p","x"],[7,"p","z"]]]]]],[13,"qy",[7,"p","y"]],[13,"s",[6,[7,"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,[7,"std","length"],[[6,[7,"d","vec2f"],["qx","qy"]]]],"-","r"]],[13,"case1",[1,"h","-","qy"]],[13,"case2",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,"qx","-","w"],[1,"qy","-","h"]]]]]],[13,"inner",[6,[7,"std","select"],["case2","case1",[1,"qx","<","w"]]]],[10,[6,[7,"std","select"],["inner","case0",[1,"s","<",[5,"0"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),xx=b.fn([W,S,S,S,S,S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=__tsover_mul(i,vs(__tsover_add(__tsover_mul(l,t.x),c))),v=__tsover_mul(__tsover_mul(i,.6),vs(__tsover_add(__tsover_mul(__tsover_mul(l,.8),t.x),d))),h=__tsover_sub(t.y,_),y=__tsover_sub(t.z,v),x=__tsover_add(__tsover_mul(u,t.x),p),g=po(x),w=vs(x),f=__tsover_add(__tsover_mul(h,g),__tsover_mul(y,w)),A=__tsover_sub(__tsover_mul(y,g),__tsover_mul(h,w)),E=__tsover_mul(r,.4),P=__tsover_add(__tsover_sub(at(f),s),E),C=__tsover_add(__tsover_sub(at(A),r),E),$=__tsover_sub(__tsover_add(It(H($e(P,0),$e(C,0))),Ct($e(P,C),0)),E),U=__tsover_sub(at(t.x),a),k=__tsover_add(It(H($e($,0),$e(U,0))),Ct($e($,U),0));return __tsover_mul(k,m)}),{v:1,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,[7,"std","sin"],[[1,[1,"freq","*",[7,"p","x"]],"+","ph1"]]]]],[13,"zc",[1,[1,"amp","*",[5,"0.6"]],"*",[6,[7,"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,[7,"std","cos"],["ang"]]],[13,"s",[6,[7,"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,[7,"std","abs"],["ry"]],"-","w"],"+","round"]],[13,"by",[1,[1,[6,[7,"std","abs"],["rz"]],"-","th"],"+","round"]],[13,"d2",[1,[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[6,[7,"std","max"],["bx",[5,"0"]]],[6,[7,"std","max"],["by",[5,"0"]]]]]]],"+",[6,[7,"std","min"],[[6,[7,"std","max"],["bx","by"]],[5,"0"]]]],"-","round"]],[13,"dx",[1,[6,[7,"std","abs"],[[7,"p","x"]]],"-","len"]],[13,"dd",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[6,[7,"std","max"],["d2",[5,"0"]]],[6,[7,"std","max"],["dx",[5,"0"]]]]]]],"+",[6,[7,"std","min"],[[6,[7,"std","max"],["d2","dx"]],[5,"0"]]]]],[10,[1,"dd","*","lip"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),bx=b.fn([W,S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_add(__tsover_mul(vs(__tsover_add(__tsover_mul(t.x,a),i)),vs(__tsover_add(__tsover_mul(__tsover_mul(t.y,a),1.3),l))),__tsover_mul(vs(__tsover_add(__tsover_mul(__tsover_mul(t.y,a),.8),__tsover_mul(l,1.1))),vs(__tsover_add(__tsover_mul(__tsover_mul(t.z,a),1.1),__tsover_mul(i,.9))))),u=__tsover_sub(__tsover_sub(It(t),s),__tsover_mul(__tsover_mul(r,d),.5));return __tsover_mul(u,c)}),{v:1,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,[7,"std","sin"],[[1,[1,[7,"p","x"],"*","freq"],"+","ph1"]]],"*",[6,[7,"std","sin"],[[1,[1,[1,[7,"p","y"],"*","freq"],"*",[5,"1.3"]],"+","ph2"]]]],"+",[1,[6,[7,"std","sin"],[[1,[1,[1,[7,"p","y"],"*","freq"],"*",[5,"0.8"]],"+",[1,"ph2","*",[5,"1.1"]]]]],"*",[6,[7,"std","sin"],[[1,[1,[1,[7,"p","z"],"*","freq"],"*",[5,"1.1"]],"+",[1,"ph1","*",[5,"0.9"]]]]]]]],[13,"dd",[1,[1,[6,[7,"std","length"],["p"]],"-","r"],"-",[1,[1,"amp","*","w"],"*",[5,"0.5"]]]],[10,[1,"dd","*","lip"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Qp=b.fn([S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_add(__tsover_sub(at(__tsover_sub(t,r)),a),l),d=__tsover_add(__tsover_sub(at(s),i),l),u=It(H($e(c,0),$e(d,0))),p=Ct($e(c,d),0);return __tsover_sub(__tsover_add(u,p),l)}),{v:1,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,[7,"std","abs"],[[1,"radialDist","-","R"]]],"-","ht"],"+","rnd"]],[13,"by",[1,[1,[6,[7,"std","abs"],["axialDist"]],"-","hw"],"+","rnd"]],[13,"outer",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[6,[7,"std","max"],["bx",[5,"0"]]],[6,[7,"std","max"],["by",[5,"0"]]]]]]]],[13,"inner",[6,[7,"std","min"],[[6,[7,"std","max"],["bx","by"]],[5,"0"]]]],[10,[1,[1,"outer","+","inner"],"-","rnd"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),wx=b.fn([W,S,S,S,S,S,S,S,S,S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=__tsover_mul(r,.5),h=__tsover_mul(a,.5),y=__tsover_sub(It(t),l),x=__tsover_add(__tsover_mul(t.y,c),__tsover_mul(t.z,d)),g=__tsover_sub(__tsover_mul(t.z,c),__tsover_mul(t.y,d)),w=Qp(It(H(t.x,g)),x,s,h,v,i),f=__tsover_sub(__tsover_mul(t.x,u),__tsover_mul(t.z,p)),A=__tsover_add(__tsover_mul(t.z,u),__tsover_mul(t.x,p)),E=Qp(It(H(f,t.y)),A,__tsover_mul(s,.78),h,v,i),P=__tsover_add(__tsover_mul(t.x,m),__tsover_mul(t.y,_)),C=__tsover_sub(__tsover_mul(t.y,m),__tsover_mul(t.x,_)),$=Qp(It(H(C,t.z)),P,__tsover_mul(s,.56),h,v,i);return Ct(Ct(y,w),Ct(E,$))}),{v:1,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,[7,"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,[7,"std","length"],[[6,[7,"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,[7,"std","length"],[[6,[7,"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,[7,"std","length"],[[6,[7,"d","vec2f"],["p3y",[7,"p","z"]]]]],"p3x",[1,"radius","*",[5,"0.56"]],"ht","hw","rnd"]]],[10,[6,[7,"std","min"],[[6,[7,"std","min"],["dCore","d1"]],[6,[7,"std","min"],["d2","d3"]]]]]]],externalNames:["std","sdFlatBand","d"]},externals:()=>({std:n,sdFlatBand:Qp,d:o})})&&e.f)({})),G1=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({cx:S,sx:S,cy:S,sy:S,cz:S,sz:S}),"RotStruct"),P1=b.fn([W,G1],W)((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)),a=__tsover_sub(__tsover_mul(t.z,s.cy),__tsover_mul(t.x,s.sy)),i=__tsover_sub(__tsover_mul(t.y,s.cx),__tsover_mul(a,s.sx)),l=__tsover_add(__tsover_mul(t.y,s.sx),__tsover_mul(a,s.cx)),c=__tsover_sub(__tsover_mul(r,s.cz),__tsover_mul(i,s.sz)),d=__tsover_add(__tsover_mul(r,s.sz),__tsover_mul(i,s.cz));return W(c,d,l)}),{v:1,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,[7,"d","vec3f"],["x3","y3","z2"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({}));function Yx(e,t="none"){let s=ou()?48:64;return b.fn([H,G1,S],ee)((r=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(r.f=((a,i,l)=>{"use gpu";let c=W(__tsover_sub(a.x,.5),__tsover_sub(.5,a.y),-1.2),d=W(0,0,1),u=P1(c,i),p=P1(d,i),m=no(u,p),_=qt($e(__tsover_sub(no(u,u),__tsover_mul(m,m)),0)),v=qt($e(__tsover_sub(__tsover_mul(l,l),__tsover_mul(_,_)),0)),h=$e(__tsover_sub(__tsover_mul(m,-1),v),0),y=__tsover_add(__tsover_add(__tsover_mul(m,-1),v),.01),x=h,g=h,w=S(10),f=S(0);for(let $=0;$<s;$++){let U=e(u.add(p.mul(x)));if(w=Ct(w,U),U<0){f=S(1);break}if(x>y)break;g=x,x=__tsover_add(x,$e(U,.002))}let A=w,E=S(0),P=S(0),C=__tsover_add(y,.4);if(f>.5){let $=g,U=x;for(let I=0;I<10;I++){let X=__tsover_mul(__tsover_add($,U),.5);e(u.add(p.mul(X)))>0?$=X:U=X}let k=__tsover_mul(__tsover_add($,U),.5),R=u.add(p.mul(y)),D=__tsover_add(__tsover_sub(y,h),.01),M=S(0),z=S(0);for(let I=0;I<s;I++){let X=e(R.sub(p.mul(M)));if(X<0||M>D)break;z=M,M=__tsover_add(M,$e(X,.002))}let L=z,B=M;for(let I=0;I<10;I++){let X=__tsover_mul(__tsover_add(L,B),.5);e(R.sub(p.mul(X)))>0?L=X:B=X}let N=__tsover_sub(y,__tsover_mul(__tsover_add(L,B),.5)),G=__tsover_mul($e(__tsover_sub(N,k),0),.5);if(A=__tsover_mul(G,-1),C=k,t==="raw"){let I=u.add(p.mul(k));E=__tsover_add(I.x,__tsover_mul(I.z,.7)),P=__tsover_add(I.y,__tsover_mul(I.z,.5))}if(t==="triplanar"){let I=u.add(p.mul(k)),X=.004,F=__tsover_sub(e(W(__tsover_add(I.x,X),I.y,I.z)),e(W(__tsover_sub(I.x,X),I.y,I.z))),Q=__tsover_sub(e(W(I.x,__tsover_add(I.y,X),I.z)),e(W(I.x,__tsover_sub(I.y,X),I.z))),ae=__tsover_sub(e(W(I.x,I.y,__tsover_add(I.z,X))),e(W(I.x,I.y,__tsover_sub(I.z,X)))),j=at(F),q=at(Q),te=at(ae),ne=H(__tsover_add(I.y,2.17),__tsover_add(I.z,5.31)),oe=H(__tsover_add(I.z,7.73),__tsover_add(I.x,1.13)),pe=H(I.x,I.y),_e=bt(pe,oe,q>=te),ge=bt(_e,ne,j>=te),Me=bt(_e,ge,j>=q);E=Me.x,P=Me.y}}return ee(A,E,P,C)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"fuv"},{type:"i",name:"rot"},{type:"i",name:"rBound"}],body:[0,[[13,"ro0",[6,[7,"d","vec3f"],[[1,[7,"fuv","x"],"-",[5,"0.5"]],[1,[5,"0.5"],"-",[7,"fuv","y"]],[4,"-",[5,"1.2"]]]]],[13,"rd0",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]]],[13,"ro",[6,"rotateVec3",["ro0","rot"]]],[13,"rd",[6,"rotateVec3",["rd0","rot"]]],[13,"b",[6,[7,"std","dot"],["ro","rd"]]],[13,"perp",[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,[6,[7,"std","dot"],["ro","ro"]],"-",[1,"b","*","b"]],[5,"0"]]]]]],[13,"halfSpan",[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,[1,"rBound","*","rBound"],"-",[1,"perp","*","perp"]],[5,"0"]]]]]],[13,"tStart",[6,[7,"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,[7,"d","f32"],[[5,"10"]]]],[12,"hit",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","MARCH_STEPS"],[102,"++","i"],[0,[[13,"p",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["t"]]]]],[13,"dd",[6,"sdfFn",["p"]]],[2,"minD","=",[6,[7,"std","min"],["minD","dd"]]],[11,[1,"dd","<",[5,"0"]],[0,[[2,"hit","=",[6,[7,"d","f32"],[[5,"1"]]]],[17]]]],[11,[1,"t",">","tEnd"],[0,[[17]]]],[2,"tPrev","=","t"],[2,"t","=",[1,"t","+",[6,[7,"std","max"],["dd",[5,"0.002"]]]]]]]],[12,"fieldVal","minD"],[12,"patternU",[6,[7,"d","f32"],[[5,"0"]]]],[12,"patternV",[6,[7,"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"]]],[13,"roB",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["tEnd"]]]]],[13,"span",[1,[1,"tEnd","-","tStart"],"+",[5,"0.01"]]],[12,"s",[6,[7,"d","f32"],[[5,"0"]]]],[12,"sPrev",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","MARCH_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,[7,"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"]]]]]]],[13,"tExit",[1,"tEnd","-",[1,[1,"xLo","+","xHi"],"*",[5,"0.5"]]]],[13,"halfChord",[1,[6,[7,"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,[7,"d","vec3f"],[[1,[7,"hp","x"],"+","e2"],[7,"hp","y"],[7,"hp","z"]]]]],"-",[6,"sdfFn",[[6,[7,"d","vec3f"],[[1,[7,"hp","x"],"-","e2"],[7,"hp","y"],[7,"hp","z"]]]]]]],[13,"nly",[1,[6,"sdfFn",[[6,[7,"d","vec3f"],[[7,"hp","x"],[1,[7,"hp","y"],"+","e2"],[7,"hp","z"]]]]],"-",[6,"sdfFn",[[6,[7,"d","vec3f"],[[7,"hp","x"],[1,[7,"hp","y"],"-","e2"],[7,"hp","z"]]]]]]],[13,"nlz",[1,[6,"sdfFn",[[6,[7,"d","vec3f"],[[7,"hp","x"],[7,"hp","y"],[1,[7,"hp","z"],"+","e2"]]]]],"-",[6,"sdfFn",[[6,[7,"d","vec3f"],[[7,"hp","x"],[7,"hp","y"],[1,[7,"hp","z"],"-","e2"]]]]]]],[13,"anx",[6,[7,"std","abs"],["nlx"]]],[13,"anyv",[6,[7,"std","abs"],["nly"]]],[13,"anz",[6,[7,"std","abs"],["nlz"]]],[13,"branch1",[6,[7,"d","vec2f"],[[1,[7,"hp","y"],"+",[5,"2.17"]],[1,[7,"hp","z"],"+",[5,"5.31"]]]]],[13,"branch2",[6,[7,"d","vec2f"],[[1,[7,"hp","z"],"+",[5,"7.73"]],[1,[7,"hp","x"],"+",[5,"1.13"]]]]],[13,"branch3",[6,[7,"d","vec2f"],[[7,"hp","x"],[7,"hp","y"]]]],[13,"branch23",[6,[7,"std","select"],["branch3","branch2",[1,"anyv",">=","anz"]]]],[13,"innerPick",[6,[7,"std","select"],["branch23","branch1",[1,"anx",">=","anz"]]]],[13,"pattern",[6,[7,"std","select"],["branch23","innerPick",[1,"anx",">=","anyv"]]]],[2,"patternU","=",[7,"pattern","x"]],[2,"patternV","=",[7,"pattern","y"]]]]]]]],[10,[6,[7,"d","vec4f"],["fieldVal","patternU","patternV","viewDepth"]]]]],externalNames:["d","rotateVec3","std","MARCH_STEPS","sdfFn","patternMode"]},externals:()=>({d:o,rotateVec3:P1,std:n,MARCH_STEPS:s,sdfFn:e,patternMode:t})})&&r.f)({})).$name("raymarchedField")}function p8(e,t="none"){return Yx(e,t)}var W1="rgba32float",wS=1536;function X1(){return ou()?768:wS}var m8=[256,320,384,512,640,768,896,1024,1280,1536];function TS(e,t,s,r,a,i){if(!(r>0)||!(s>0))return a;let l=ou()?.5:1,c=Math.max(e,t)*s*r*l,d=a;for(let u of m8){if(u>a)break;if(u>=c){d=u;break}}return i>0&&d<i&&c>i*.78&&(d=Math.min(i,a)),d}var Rl=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({rot:G1,rBound:S,spanX:S,spanY:S,originX:S,originY:S,activeRes:ie,pA:S,pB:S,pC:S,pD:S,mb0:W,mb1:W,mb2:W,mb3:W}),"MarchParams");function SS(){return{layout:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({field:{storageTexture:jr(W1,"write-only")},params:{uniform:Rl}}),"layout"),MarchParams:Rl}}function AS(e,t){return b.fn([ie,ie])((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,a)=>{"use gpu";let i=e.$.params,l=S(i.activeRes),c=t(H(__tsover_add(i.originX,__tsover_mul(__tsover_div(__tsover_add(S(r),.5),l),i.spanX)),__tsover_add(i.originY,__tsover_mul(__tsover_div(__tsover_add(S(a),.5),l),i.spanY))),i.rot,i.rBound);fn(e.$.field,Qe(r,a),c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"activeResF",[6,[7,"d","f32"],[[7,"p","activeRes"]]]],[13,"uv",[6,[7,"d","vec2f"],[[1,[7,"p","originX"],"+",[1,[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","activeResF"],"*",[7,"p","spanX"]]],[1,[7,"p","originY"],"+",[1,[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","activeResF"],"*",[7,"p","spanY"]]]]]],[13,"field",[6,"marchFn",["uv",[7,"p","rot"],[7,"p","rBound"]]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"field"],[6,[7,"d","vec2u"],["cx","cy"]],"field"]]]],externalNames:["layout","d","marchFn","std"]},externals:()=>({layout:e,d:o,marchFn:t,std:n})})&&s.f)({})).$name("volumetricFieldMarch")}var Tx=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({originX:S,originY:S,spanX:S,spanY:S,activeResF:S,rBound:S}),"SampleParams");function _8(){let e=(globalThis.__TYPEGPU_AUTONAME__??(s=>s))(b.bindGroupLayout({field:{texture:Sa(S),sampleType:"unfilterable-float"},params:{uniform:Tx}}),"sampleLayout"),t=b.fn([S,S],ee)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,a)=>{"use gpu";let i=__tsover_sub(e.$.params.activeResF,1),l=ie(xt(r,S(0),i)),c=ie(xt(a,S(0),i));return _s(e.$.field,Qe(l,c),0)}),{v:1,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,[7,"d","u32"],[[6,[7,"std","clamp"],["xi",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"ty",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["yi",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[10,[6,[7,"std","textureLoad"],[[7,[7,"sampleLayout","$"],"field"],[6,[7,"d","vec2u"],["tx","ty"]],[5,"0"]]]]]],externalNames:["sampleLayout","d","std"]},externals:()=>({sampleLayout:e,d:o,std:n})})&&s.f)({})).$name("fieldFetchTexel");return{sampleLayout:e,fieldSample:b.fn([H],ee)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=(r=>{"use gpu";let a=e.$.params,i=xt(r.x,a.originX,__tsover_add(a.originX,a.spanX)),l=xt(r.y,a.originY,__tsover_add(a.originY,a.spanY)),c=It(H(__tsover_sub(r.x,i),__tsover_sub(r.y,l))),d=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(i,a.originX),a.spanX),a.activeResF),.5),u=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(l,a.originY),a.spanY),a.activeResF),.5),p=Lt(d),m=Lt(u),_=__tsover_sub(d,p),v=__tsover_sub(u,m),h=__tsover_mul(_,_),y=__tsover_mul(h,_),x=__tsover_sub(__tsover_add(__tsover_mul(y,-.5),h),__tsover_mul(_,.5)),g=__tsover_add(__tsover_sub(__tsover_mul(y,1.5),__tsover_mul(h,2.5)),1),w=__tsover_add(__tsover_add(__tsover_mul(y,-1.5),__tsover_mul(h,2)),__tsover_mul(_,.5)),f=__tsover_sub(__tsover_mul(y,.5),__tsover_mul(h,.5)),A=__tsover_mul(v,v),E=__tsover_mul(A,v),P=__tsover_sub(__tsover_add(__tsover_mul(E,-.5),A),__tsover_mul(v,.5)),C=__tsover_add(__tsover_sub(__tsover_mul(E,1.5),__tsover_mul(A,2.5)),1),$=__tsover_add(__tsover_add(__tsover_mul(E,-1.5),__tsover_mul(A,2)),__tsover_mul(v,.5)),U=__tsover_sub(__tsover_mul(E,.5),__tsover_mul(A,.5)),k=t(__tsover_sub(p,1),__tsover_sub(m,1)),R=t(p,__tsover_sub(m,1)),D=t(__tsover_add(p,1),__tsover_sub(m,1)),M=t(__tsover_add(p,2),__tsover_sub(m,1)),z=t(__tsover_sub(p,1),m),L=t(p,m),B=t(__tsover_add(p,1),m),N=t(__tsover_add(p,2),m),G=t(__tsover_sub(p,1),__tsover_add(m,1)),I=t(p,__tsover_add(m,1)),X=t(__tsover_add(p,1),__tsover_add(m,1)),F=t(__tsover_add(p,2),__tsover_add(m,1)),Q=t(__tsover_sub(p,1),__tsover_add(m,2)),ae=t(p,__tsover_add(m,2)),j=t(__tsover_add(p,1),__tsover_add(m,2)),q=t(__tsover_add(p,2),__tsover_add(m,2)),te=__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(k.r,x),P),__tsover_mul(__tsover_mul(R.r,g),P)),__tsover_mul(__tsover_mul(D.r,w),P)),__tsover_mul(__tsover_mul(M.r,f),P)),__tsover_mul(__tsover_mul(z.r,x),C)),__tsover_mul(__tsover_mul(L.r,g),C)),__tsover_mul(__tsover_mul(B.r,w),C)),__tsover_mul(__tsover_mul(N.r,f),C)),__tsover_mul(__tsover_mul(G.r,x),$)),__tsover_mul(__tsover_mul(I.r,g),$)),__tsover_mul(__tsover_mul(X.r,w),$)),__tsover_mul(__tsover_mul(F.r,f),$)),__tsover_mul(__tsover_mul(Q.r,x),U)),__tsover_mul(__tsover_mul(ae.r,g),U)),__tsover_mul(__tsover_mul(j.r,w),U)),__tsover_mul(__tsover_mul(q.r,f),U)),ne=__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(k.a,x),P),__tsover_mul(__tsover_mul(R.a,g),P)),__tsover_mul(__tsover_mul(D.a,w),P)),__tsover_mul(__tsover_mul(M.a,f),P)),__tsover_mul(__tsover_mul(z.a,x),C)),__tsover_mul(__tsover_mul(L.a,g),C)),__tsover_mul(__tsover_mul(B.a,w),C)),__tsover_mul(__tsover_mul(N.a,f),C)),__tsover_mul(__tsover_mul(G.a,x),$)),__tsover_mul(__tsover_mul(I.a,g),$)),__tsover_mul(__tsover_mul(X.a,w),$)),__tsover_mul(__tsover_mul(F.a,f),$)),__tsover_mul(__tsover_mul(Q.a,x),U)),__tsover_mul(__tsover_mul(ae.a,g),U)),__tsover_mul(__tsover_mul(j.a,w),U)),__tsover_mul(__tsover_mul(q.a,f),U)),oe=Ft(Ft(L,B,_),Ft(I,X,_),v),pe=Ct(Ct(L.r,B.r),Ct(I.r,X.r)),_e=$e($e(L.r,B.r),$e(I.r,X.r)),ge=Ct(Ct(L.a,B.a),Ct(I.a,X.a)),Me=$e($e(L.a,B.a),$e(I.a,X.a)),Se=xt(ne,ge,Me),Ae=__tsover_add(xt(te,pe,_e),c),Pe=__tsover_sub(It(H(__tsover_sub(r.x,.5),__tsover_sub(r.y,.5))),a.rBound),De=Ft(Ae,$e(Pe,Ae),Ja(S(0),.25,c));return ee(De,oe.g,oe.b,Se)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"p",[7,[7,"sampleLayout","$"],"params"]],[13,"uxc",[6,[7,"std","clamp"],[[7,"uv","x"],[7,"p","originX"],[1,[7,"p","originX"],"+",[7,"p","spanX"]]]]],[13,"uyc",[6,[7,"std","clamp"],[[7,"uv","y"],[7,"p","originY"],[1,[7,"p","originY"],"+",[7,"p","spanY"]]]]],[13,"outsideDist",[6,[7,"std","length"],[[6,[7,"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,[7,"std","floor"],["px"]]],[13,"y0",[6,[7,"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,[7,"std","mix"],[[6,[7,"std","mix"],["k11","k12","fx"]],[6,[7,"std","mix"],["k21","k22","fx"]],"fy"]]],[13,"rMin",[6,[7,"std","min"],[[6,[7,"std","min"],[[7,"k11","r"],[7,"k12","r"]]],[6,[7,"std","min"],[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"rMax",[6,[7,"std","max"],[[6,[7,"std","max"],[[7,"k11","r"],[7,"k12","r"]]],[6,[7,"std","max"],[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"aMin",[6,[7,"std","min"],[[6,[7,"std","min"],[[7,"k11","a"],[7,"k12","a"]]],[6,[7,"std","min"],[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aMax",[6,[7,"std","max"],[[6,[7,"std","max"],[[7,"k11","a"],[7,"k12","a"]]],[6,[7,"std","max"],[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aOut",[6,[7,"std","clamp"],["aAcc","aMin","aMax"]]],[13,"rNear",[1,[6,[7,"std","clamp"],["rAcc","rMin","rMax"]],"+","outsideDist"]],[13,"rCircle",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-",[7,"p","rBound"]]],[13,"rOut",[6,[7,"std","mix"],["rNear",[6,[7,"std","max"],["rCircle","rNear"]],[6,[7,"std","smoothstep"],[[6,[7,"d","f32"],[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,[7,"d","vec4f"],["rOut",[7,"bl","g"],[7,"bl","b"],"aOut"]]]]],externalNames:["sampleLayout","std","d","fetchTexel"]},externals:()=>({sampleLayout:e,std:n,d:o,fetchTexel:t})})&&s.f)({})).$name("fieldSample"),fieldSampleFast:b.fn([H],ee)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=(r=>{"use gpu";let a=e.$.params,i=xt(r.x,a.originX,__tsover_add(a.originX,a.spanX)),l=xt(r.y,a.originY,__tsover_add(a.originY,a.spanY)),c=It(H(__tsover_sub(r.x,i),__tsover_sub(r.y,l))),d=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(i,a.originX),a.spanX),a.activeResF),.5),u=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(l,a.originY),a.spanY),a.activeResF),.5),p=Lt(d),m=Lt(u),_=__tsover_sub(d,p),v=__tsover_sub(u,m),h=t(p,m),y=t(__tsover_add(p,1),m),x=t(p,__tsover_add(m,1)),g=t(__tsover_add(p,1),__tsover_add(m,1)),w=Ft(Ft(h,y,_),Ft(x,g,_),v),f=__tsover_add(w.r,c),A=__tsover_sub(It(H(__tsover_sub(r.x,.5),__tsover_sub(r.y,.5))),a.rBound),E=Ft(f,$e(A,f),Ja(S(0),.25,c));return ee(E,w.g,w.b,w.a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"p",[7,[7,"sampleLayout","$"],"params"]],[13,"uxc",[6,[7,"std","clamp"],[[7,"uv","x"],[7,"p","originX"],[1,[7,"p","originX"],"+",[7,"p","spanX"]]]]],[13,"uyc",[6,[7,"std","clamp"],[[7,"uv","y"],[7,"p","originY"],[1,[7,"p","originY"],"+",[7,"p","spanY"]]]]],[13,"outsideDist",[6,[7,"std","length"],[[6,[7,"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,[7,"std","floor"],["px"]]],[13,"y0",[6,[7,"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,[7,"std","mix"],[[6,[7,"std","mix"],["t00","t10","fx"]],[6,[7,"std","mix"],["t01","t11","fx"]],"fy"]]],[13,"rNear",[1,[7,"bl","r"],"+","outsideDist"]],[13,"rCircle",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-",[7,"p","rBound"]]],[13,"rOut",[6,[7,"std","mix"],["rNear",[6,[7,"std","max"],["rCircle","rNear"]],[6,[7,"std","smoothstep"],[[6,[7,"d","f32"],[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,[7,"d","vec4f"],["rOut",[7,"bl","g"],[7,"bl","b"],[7,"bl","a"]]]]]],externalNames:["sampleLayout","std","d","fetchTexel"]},externals:()=>({sampleLayout:e,std:n,d:o,fetchTexel:t})})&&s.f)({})).$name("fieldSampleFast"),SampleParams:Tx}}function ES(e,t,s,r,a={}){let i=X1(),l=(globalThis.__TYPEGPU_AUTONAME__??(m=>m))(e.createTexture({size:[i,i],format:W1}).$usage("storage","sampled"),"fieldTexture"),c=a.paramsUniform??e.createUniform(Rl);r(()=>l.destroy());let d=e.createBindGroup(t,{field:l,params:c.buffer,...a.sdfSourceTexture?{sdfSource:a.sdfSourceTexture}:{}}),u=pt(e,(m=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(m.f=((_,v)=>{"use gpu";s(_,v)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernel",["cx","cy"]]]],externalNames:["kernel"]},externals:()=>({kernel:s})})&&m.f)({}),{bindGroup:d}),p=i;return{computeStep:u,fieldTexture:l,maxRes:i,get activeRes(){return p},writeParams(m){c.write(m)},dispatch(m){p=m,u.dispatchThreads(m,m)}}}function MS(){return{layout:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({field:{storageTexture:jr(W1,"write-only")},params:{uniform:Rl},sdfSource:{texture:Sa(S)}}),"layout"),MarchParams:Rl}}function CS(){return{fieldSampleArg:b.fn([H,Sa(S),S,S,S,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=xt(t.x,r,__tsover_add(r,i)),p=xt(t.y,a,__tsover_add(a,l)),m=It(H(__tsover_sub(t.x,u),__tsover_sub(t.y,p))),_=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(u,r),i),c),.5),v=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(p,a),l),c),.5),h=Lt(_),y=Lt(v),x=__tsover_sub(_,h),g=__tsover_sub(v,y),w=__tsover_mul(x,x),f=__tsover_mul(w,x),A=__tsover_sub(__tsover_add(__tsover_mul(f,-.5),w),__tsover_mul(x,.5)),E=__tsover_add(__tsover_sub(__tsover_mul(f,1.5),__tsover_mul(w,2.5)),1),P=__tsover_add(__tsover_add(__tsover_mul(f,-1.5),__tsover_mul(w,2)),__tsover_mul(x,.5)),C=__tsover_sub(__tsover_mul(f,.5),__tsover_mul(w,.5)),$=__tsover_mul(g,g),U=__tsover_mul($,g),k=__tsover_sub(__tsover_add(__tsover_mul(U,-.5),$),__tsover_mul(g,.5)),R=__tsover_add(__tsover_sub(__tsover_mul(U,1.5),__tsover_mul($,2.5)),1),D=__tsover_add(__tsover_add(__tsover_mul(U,-1.5),__tsover_mul($,2)),__tsover_mul(g,.5)),M=__tsover_sub(__tsover_mul(U,.5),__tsover_mul($,.5)),z=__tsover_sub(c,1),L=ie(xt(__tsover_sub(h,1),S(0),z)),B=ie(xt(h,S(0),z)),N=ie(xt(__tsover_add(h,1),S(0),z)),G=ie(xt(__tsover_add(h,2),S(0),z)),I=ie(xt(__tsover_sub(y,1),S(0),z)),X=ie(xt(y,S(0),z)),F=ie(xt(__tsover_add(y,1),S(0),z)),Q=ie(xt(__tsover_add(y,2),S(0),z)),ae=_s(s,Qe(L,I),0),j=_s(s,Qe(B,I),0),q=_s(s,Qe(N,I),0),te=_s(s,Qe(G,I),0),ne=_s(s,Qe(L,X),0),oe=_s(s,Qe(B,X),0),pe=_s(s,Qe(N,X),0),_e=_s(s,Qe(G,X),0),ge=_s(s,Qe(L,F),0),Me=_s(s,Qe(B,F),0),Se=_s(s,Qe(N,F),0),Ae=_s(s,Qe(G,F),0),Pe=_s(s,Qe(L,Q),0),De=_s(s,Qe(B,Q),0),ke=_s(s,Qe(N,Q),0),Ge=_s(s,Qe(G,Q),0),Oe=__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(ae.r,A),k),__tsover_mul(__tsover_mul(j.r,E),k)),__tsover_mul(__tsover_mul(q.r,P),k)),__tsover_mul(__tsover_mul(te.r,C),k)),__tsover_mul(__tsover_mul(ne.r,A),R)),__tsover_mul(__tsover_mul(oe.r,E),R)),__tsover_mul(__tsover_mul(pe.r,P),R)),__tsover_mul(__tsover_mul(_e.r,C),R)),__tsover_mul(__tsover_mul(ge.r,A),D)),__tsover_mul(__tsover_mul(Me.r,E),D)),__tsover_mul(__tsover_mul(Se.r,P),D)),__tsover_mul(__tsover_mul(Ae.r,C),D)),__tsover_mul(__tsover_mul(Pe.r,A),M)),__tsover_mul(__tsover_mul(De.r,E),M)),__tsover_mul(__tsover_mul(ke.r,P),M)),__tsover_mul(__tsover_mul(Ge.r,C),M)),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(ae.a,A),k),__tsover_mul(__tsover_mul(j.a,E),k)),__tsover_mul(__tsover_mul(q.a,P),k)),__tsover_mul(__tsover_mul(te.a,C),k)),__tsover_mul(__tsover_mul(ne.a,A),R)),__tsover_mul(__tsover_mul(oe.a,E),R)),__tsover_mul(__tsover_mul(pe.a,P),R)),__tsover_mul(__tsover_mul(_e.a,C),R)),__tsover_mul(__tsover_mul(ge.a,A),D)),__tsover_mul(__tsover_mul(Me.a,E),D)),__tsover_mul(__tsover_mul(Se.a,P),D)),__tsover_mul(__tsover_mul(Ae.a,C),D)),__tsover_mul(__tsover_mul(Pe.a,A),M)),__tsover_mul(__tsover_mul(De.a,E),M)),__tsover_mul(__tsover_mul(ke.a,P),M)),__tsover_mul(__tsover_mul(Ge.a,C),M)),We=Ft(Ft(oe,pe,x),Ft(Me,Se,x),g),Ve=Ct(Ct(oe.r,pe.r),Ct(Me.r,Se.r)),Ne=$e($e(oe.r,pe.r),$e(Me.r,Se.r)),He=Ct(Ct(oe.a,pe.a),Ct(Me.a,Se.a)),vt=$e($e(oe.a,pe.a),$e(Me.a,Se.a)),_t=xt(qe,He,vt),Ze=__tsover_add(xt(Oe,Ve,Ne),m),it=__tsover_sub(It(H(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),d),Tt=Ft(Ze,$e(it,Ze),Ja(S(0),.25,m));return ee(Tt,We.g,We.b,_t)}),{v:1,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,[7,"std","clamp"],[[7,"uv","x"],"originX",[1,"originX","+","spanX"]]]],[13,"uyc",[6,[7,"std","clamp"],[[7,"uv","y"],"originY",[1,"originY","+","spanY"]]]],[13,"outsideDist",[6,[7,"std","length"],[[6,[7,"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,[7,"std","floor"],["px"]]],[13,"y0",[6,[7,"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,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"x0","-",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cx0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["x0",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cx1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"x0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cx2",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"x0","+",[5,"2"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cym",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"y0","-",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cy0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["y0",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cy1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"y0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cy2",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"y0","+",[5,"2"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"k00",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cxm","cym"]],[5,"0"]]]],[13,"k01",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx0","cym"]],[5,"0"]]]],[13,"k02",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx1","cym"]],[5,"0"]]]],[13,"k03",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx2","cym"]],[5,"0"]]]],[13,"k10",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cxm","cy0"]],[5,"0"]]]],[13,"k11",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx0","cy0"]],[5,"0"]]]],[13,"k12",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx1","cy0"]],[5,"0"]]]],[13,"k13",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx2","cy0"]],[5,"0"]]]],[13,"k20",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cxm","cy1"]],[5,"0"]]]],[13,"k21",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx0","cy1"]],[5,"0"]]]],[13,"k22",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx1","cy1"]],[5,"0"]]]],[13,"k23",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx2","cy1"]],[5,"0"]]]],[13,"k30",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cxm","cy2"]],[5,"0"]]]],[13,"k31",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx0","cy2"]],[5,"0"]]]],[13,"k32",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx1","cy2"]],[5,"0"]]]],[13,"k33",[6,[7,"std","textureLoad"],["field",[6,[7,"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,[7,"std","mix"],[[6,[7,"std","mix"],["k11","k12","fx"]],[6,[7,"std","mix"],["k21","k22","fx"]],"fy"]]],[13,"rMin",[6,[7,"std","min"],[[6,[7,"std","min"],[[7,"k11","r"],[7,"k12","r"]]],[6,[7,"std","min"],[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"rMax",[6,[7,"std","max"],[[6,[7,"std","max"],[[7,"k11","r"],[7,"k12","r"]]],[6,[7,"std","max"],[[7,"k21","r"],[7,"k22","r"]]]]]],[13,"aMin",[6,[7,"std","min"],[[6,[7,"std","min"],[[7,"k11","a"],[7,"k12","a"]]],[6,[7,"std","min"],[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aMax",[6,[7,"std","max"],[[6,[7,"std","max"],[[7,"k11","a"],[7,"k12","a"]]],[6,[7,"std","max"],[[7,"k21","a"],[7,"k22","a"]]]]]],[13,"aOut",[6,[7,"std","clamp"],["aAcc","aMin","aMax"]]],[13,"rNear",[1,[6,[7,"std","clamp"],["rAcc","rMin","rMax"]],"+","outsideDist"]],[13,"rCircle",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-","rBound"]],[13,"rOut",[6,[7,"std","mix"],["rNear",[6,[7,"std","max"],["rCircle","rNear"]],[6,[7,"std","smoothstep"],[[6,[7,"d","f32"],[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,[7,"d","vec4f"],["rOut",[7,"bl","g"],[7,"bl","b"],"aOut"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("fieldSampleArg"),fieldSampleFastArg:b.fn([H,Sa(S),S,S,S,S,S,S],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=xt(t.x,r,__tsover_add(r,i)),p=xt(t.y,a,__tsover_add(a,l)),m=It(H(__tsover_sub(t.x,u),__tsover_sub(t.y,p))),_=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(u,r),i),c),.5),v=__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(p,a),l),c),.5),h=Lt(_),y=Lt(v),x=__tsover_sub(_,h),g=__tsover_sub(v,y),w=__tsover_sub(c,1),f=ie(xt(h,S(0),w)),A=ie(xt(__tsover_add(h,1),S(0),w)),E=ie(xt(y,S(0),w)),P=ie(xt(__tsover_add(y,1),S(0),w)),C=_s(s,Qe(f,E),0),$=_s(s,Qe(A,E),0),U=_s(s,Qe(f,P),0),k=_s(s,Qe(A,P),0),R=Ft(Ft(C,$,x),Ft(U,k,x),g),D=__tsover_add(R.r,m),M=__tsover_sub(It(H(__tsover_sub(t.x,.5),__tsover_sub(t.y,.5))),d),z=Ft(D,$e(M,D),Ja(S(0),.25,m));return ee(z,R.g,R.b,R.a)}),{v:1,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,[7,"std","clamp"],[[7,"uv","x"],"originX",[1,"originX","+","spanX"]]]],[13,"uyc",[6,[7,"std","clamp"],[[7,"uv","y"],"originY",[1,"originY","+","spanY"]]]],[13,"outsideDist",[6,[7,"std","length"],[[6,[7,"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,[7,"std","floor"],["px"]]],[13,"y0",[6,[7,"std","floor"],["py"]]],[13,"fx",[1,"px","-","x0"]],[13,"fy",[1,"py","-","y0"]],[13,"maxT",[1,"activeResF","-",[5,"1"]]],[13,"cx0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["x0",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cx1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"x0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cy0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["y0",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"cy1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"y0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"t00",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx0","cy0"]],[5,"0"]]]],[13,"t10",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx1","cy0"]],[5,"0"]]]],[13,"t01",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx0","cy1"]],[5,"0"]]]],[13,"t11",[6,[7,"std","textureLoad"],["field",[6,[7,"d","vec2u"],["cx1","cy1"]],[5,"0"]]]],[13,"bl",[6,[7,"std","mix"],[[6,[7,"std","mix"],["t00","t10","fx"]],[6,[7,"std","mix"],["t01","t11","fx"]],"fy"]]],[13,"rNear",[1,[7,"bl","r"],"+","outsideDist"]],[13,"rCircle",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"-",[5,"0.5"]],[1,[7,"uv","y"],"-",[5,"0.5"]]]]]],"-","rBound"]],[13,"rOut",[6,[7,"std","mix"],["rNear",[6,[7,"std","max"],["rCircle","rNear"]],[6,[7,"std","smoothstep"],[[6,[7,"d","f32"],[[5,"0"]]],[5,"0.25"],"outsideDist"]]]]],[10,[6,[7,"d","vec4f"],["rOut",[7,"bl","g"],[7,"bl","b"],[7,"bl","a"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("fieldSampleFastArg"),texelSpanFn:b.fn([S,S,S],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_div($e(t,s),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"spanX"},{type:"i",name:"spanY"},{type:"i",name:"activeResF"}],body:[0,[[10,[1,[6,[7,"std","max"],["spanX","spanY"]],"/","activeResF"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})).$name("fieldTexelSpan")}}var Gx={_vfOriginX:{schema:S,initial:0},_vfOriginY:{schema:S,initial:0},_vfSpanX:{schema:S,initial:1},_vfSpanY:{schema:S,initial:1},_vfActiveRes:{schema:S,initial:1},_vfRBound:{schema:S,initial:.6}};function f8(e,t){let{fieldSampleArg:s,fieldSampleFastArg:r,texelSpanFn:a}=CS(),i=(globalThis.__TYPEGPU_AUTONAME__??(c=>c))(e.accessor(),"acc"),l=c=>[c,i,t.originX,t.originY,t.spanX,t.spanY,t.activeResF,t.rBound];return{volumetricFieldSampler:c=>T(s,"vfSample",l(c)),volumetricFieldSamplerFast:c=>T(r,"vfSampleFast",l(c)),volumetricFieldTexelSpan:T(a,"vfTexelSpan",[t.spanX,t.spanY,t.activeResF])}}var zc=Math.PI/180;function PS(e){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return JSON.parse(e)}catch{return{}}return{}}function kS(e,t,s,r){let a=I1[t]??I1.sphere3D,{layout:i}=SS(),l=(globalThis.__TYPEGPU_AUTONAME__??(N=>N))(e.createUniform(Rl),"marchParamsBuffer"),c=b.fn([W],S)((N=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(N.f=(G=>{"use gpu";let I=i.$.params;return t==="cube3D"?ax(G,I.pA,I.pB,I.pC,I.pD):t==="torus3D"?nx(G,I.pA,I.pB):t==="octahedron3D"?ix(G,I.pA):t==="cylinder3D"?lx(G,I.pA,I.pB,I.pD):t==="capsule3D"?cx(G,I.pA,I.pB):t==="cone3D"?dx(G,I.pA,I.pC,I.pB):t==="pyramid3D"?ux(G,I.pA,I.pB):t==="prism3D"?px(G,I.pA,I.pB):t==="ellipsoid3D"?mx(G,I.pA,I.pB,I.pC):t==="diamond3D"?bm(G,I.pA,I.pB):t==="link3D"?_x(G,I.pB,I.pA,I.pC):t==="gem3D"?fx(G,I.pA,I.pB,I.pC):t==="helix3D"?vx(G,I.pA,I.pB,I.pC,S(3)):t==="metaballs3D"?hx(G,I.mb0,I.mb1,I.mb2,I.mb3,I.pA,I.pD):t==="dodecahedron3D"?yx(G,I.pA):t==="hemisphere3D"?gx(G,I.pA,I.pB):t==="ribbon3D"?xx(G,I.pA,I.pB,I.pC,I.mb0.x,I.mb0.y,I.mb0.z,I.mb1.x,I.mb1.y,I.mb1.z,I.mb2.x):t==="blob3D"?bx(G,I.pA,I.mb0.x,I.mb0.y,I.mb0.z,I.mb1.x,I.mb2.x):t==="gyroscope3D"?wx(G,I.pA,I.pB,I.pD,I.mb3.x,I.pC,I.mb0.x,I.mb0.y,I.mb1.x,I.mb1.y,I.mb2.x,I.mb2.y):rx(G,I.pA)}),{v:1,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,[7,"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","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"]]]]]]]]]]]]]]]]]]]]]]]]],externalNames:["layout","shapeType","sdRoundBox","sdTorus","sdOctahedron","sdRoundCylinder","sdCapsule","sdCappedCone","sdPyramid","sdHexPrism","sdEllipsoid","sdBicone","sdLink","sdGem","sdHelix","d","HELIX_TURNS","sdMetaballs","sdDodecahedron","sdCutSphere","sdRibbon","sdWobbleBlob","sdGyroscope","sdSphere"]},externals:()=>({layout:i,shapeType:t,sdRoundBox:ax,sdTorus:nx,sdOctahedron:ix,sdRoundCylinder:lx,sdCapsule:cx,sdCappedCone:dx,sdPyramid:ux,sdHexPrism:px,sdEllipsoid:mx,sdBicone:bm,sdLink:_x,sdGem:fx,sdHelix:vx,d:o,HELIX_TURNS:3,sdMetaballs:hx,sdDodecahedron:yx,sdCutSphere:gx,sdRibbon:xx,sdWobbleBlob:bx,sdGyroscope:wx,sdSphere:rx})})&&N.f)({})),d=0,u="",p=s,m=new Map,_=.35,v=.3,h=.3,y=0,x=.6,g=1,w=0,f=1,A=0,E=1,P=0,C=1,$=1,U=0,k=0,R=X1(),D=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],M=()=>{l.write({rot:{cx:g,sx:w,cy:f,sy:A,cz:E,sz:P},rBound:x,spanX:C,spanY:$,originX:U,originY:k,activeRes:R,pA:_,pB:v,pC:h,pD:y,mb0:W(D[0][0],D[0][1],D[0][2]),mb1:W(D[1][0],D[1][1],D[1][2]),mb2:W(D[2][0],D[2][1],D[2][2]),mb3:W(D[3][0],D[3][1],D[3][2])})},z=N=>{let G=N?.deltaTime??0;d+=G;let I=r();if(I&&typeof I=="object")p=I;else if(typeof I=="string"&&I!==u){u=I;try{p=JSON.parse(I)}catch{}}let X={elapsed:d,deltaTime:G,pointerX:N?.pointer?.x??.5,pointerY:N?.pointer?.y??.5,springs:m},F=te=>Nx(p[te],a[te]??0,X,te);switch(v=.3,h=.3,y=0,D[0]=[0,0,0],D[1]=[0,0,0],D[2]=[0,0,0],D[3]=[0,0,0],t){case"cube3D":_=F("sizeX"),v=F("sizeY"),h=F("sizeZ"),y=F("rounding");break;case"torus3D":_=F("radius"),v=F("tube");break;case"cylinder3D":_=F("radius"),v=F("height"),y=F("rounding");break;case"capsule3D":_=F("radius"),v=F("height");break;case"cone3D":_=F("radius"),v=F("height"),h=F("topRadius");break;case"pyramid3D":_=F("size"),v=F("height");break;case"prism3D":case"diamond3D":_=F("radius"),v=F("height");break;case"ellipsoid3D":_=F("radiusX"),v=F("radiusY"),h=F("radiusZ");break;case"link3D":_=F("radius"),v=F("length"),h=F("tube");break;case"gem3D":_=F("radius"),v=F("height"),h=F("facets");break;case"helix3D":_=F("radius"),v=F("tube"),h=F("pitch");break;case"metaballs3D":{_=F("ballRadius"),v=F("spread"),y=F("blend");let te=v,ne=d*F("speed")*.6;for(let oe=0;oe<D.length;oe++){let pe=oe*(Math.PI/2),_e=pe+ne,ge=.75+.25*Math.sin(ne*1.3+oe*1.7);D[oe]=[te*Math.cos(_e)*ge,te*.6*Math.sin(ne*.9+pe*1.5),te*Math.sin(_e)*ge]}break}case"hemisphere3D":_=F("radius"),v=F("cut");break;case"ribbon3D":{_=F("width"),v=F("thickness"),h=F("length");let te=d*F("speed"),ne=F("wave")*(.8+.2*Math.sin(te*.9)),oe=F("waveFrequency"),pe=F("twist")*zc/Math.max(h*2,.01);D[0]=[ne,oe,te*1.1],D[1]=[te*.7+2.1,pe,te*.45];let _e=Math.abs(ne)*oe+Math.abs(pe)*Math.hypot(_,v);D[2]=[1/Math.sqrt(1+_e*_e),0,0];break}case"blob3D":{_=F("radius");let te=d*F("speed"),ne=F("wobble")*(.75+.25*Math.sin(te*.83)),oe=F("wobbliness");D[0]=[ne,oe,te*1.2],D[1]=[te*.77+1.3,0,0],D[2]=[1/(1+Math.abs(ne)*oe*1.3),0,0];break}case"gyroscope3D":{_=F("radius"),v=F("width"),h=F("core"),y=F("thickness");let te=Math.max(0,Math.min(F("rounding"),Math.min(v,y)*.5)),ne=d*F("speed"),oe=ne*.9,pe=ne*.63+1.1,_e=ne*1.21+2.3;D[0]=[Math.cos(oe),Math.sin(oe),0],D[1]=[Math.cos(pe),Math.sin(pe),0],D[2]=[Math.cos(_e),Math.sin(_e),0],D[3]=[te,0,0];break}default:_=F("radius");break}x=bS({...p,type:t})+.02;let Q=F("rotX")*zc,ae=F("rotY")*zc,j=F("rotZ")*zc;g=Math.cos(Q),w=Math.sin(Q),f=Math.cos(ae),A=Math.sin(ae),E=Math.cos(j),P=Math.sin(j);let q=x+.05;C=q*2,$=q*2,U=.5-q,k=.5-q,M()};return z(),{layout:i,marchParamsBuffer:l,sdfFn:c,update:z,setActiveRes:N=>{N!==R&&(R=N,M())},getStateKey:()=>`${_},${v},${h},${y},${x},${g},${w},${f},${A},${E},${P},`+D.map(N=>`${N[0]},${N[1]},${N[2]}`).join(","),getFootprint:()=>({spanX:C,spanY:$,originX:U,originY:k,rBound:x})}}function RS(e,t,s){let r=e.gpu.root,{texture:a,getVersion:i}=Bx(e,t),{layout:l}=MS(),c=(globalThis.__TYPEGPU_AUTONAME__??(N=>N))(r.createUniform(Rl),"marchParamsBuffer"),d=S(512),u=S(511),p=b.fn([W],S)((N=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(N.f=(G=>{"use gpu";let I=l.$.params,X=I.pA,F=I.pB,Q=__tsover_sub(__tsover_mul(__tsover_add(G.x,.5),d),.5),ae=__tsover_sub(__tsover_mul(__tsover_sub(.5,G.y),d),.5),j=Lt(Q),q=Lt(ae),te=__tsover_sub(Q,j),ne=__tsover_sub(ae,q),oe=ie(xt(j,S(0),u)),pe=ie(xt(__tsover_add(j,1),S(0),u)),_e=ie(xt(q,S(0),u)),ge=ie(xt(__tsover_add(q,1),S(0),u)),Me=_s(l.$.sdfSource,Qe(oe,_e),0).r,Se=_s(l.$.sdfSource,Qe(pe,_e),0).r,Ae=_s(l.$.sdfSource,Qe(oe,ge),0).r,Pe=_s(l.$.sdfSource,Qe(pe,ge),0).r,De=Ft(Ft(Me,Se,te),Ft(Ae,Pe,te),ne),ke=__tsover_add(De,F),Ge=__tsover_add(__tsover_sub(at(G.z),X),F),Oe=Ct($e(ke,Ge),S(0)),qe=It(H($e(ke,S(0)),$e(Ge,S(0))));return __tsover_sub(__tsover_add(Oe,qe),F)}),{v:1,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,[7,"std","floor"],["u"]]],[13,"y0",[6,[7,"std","floor"],["v"]]],[13,"fx",[1,"u","-","x0"]],[13,"fy",[1,"v","-","y0"]],[13,"cx0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["x0",[6,[7,"d","f32"],[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"cx1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"x0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"cy0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["y0",[6,[7,"d","f32"],[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"cy1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"y0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"MAX_TEXEL"]]]]],[13,"s00",[7,[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"sdfSource"],[6,[7,"d","vec2u"],["cx0","cy0"]],[5,"0"]]],"r"]],[13,"s10",[7,[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"sdfSource"],[6,[7,"d","vec2u"],["cx1","cy0"]],[5,"0"]]],"r"]],[13,"s01",[7,[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"sdfSource"],[6,[7,"d","vec2u"],["cx0","cy1"]],[5,"0"]]],"r"]],[13,"s11",[7,[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"sdfSource"],[6,[7,"d","vec2u"],["cx1","cy1"]],[5,"0"]]],"r"]],[13,"field2d",[6,[7,"std","mix"],[[6,[7,"std","mix"],["s00","s10","fx"]],[6,[7,"std","mix"],["s01","s11","fx"]],"fy"]]],[13,"d2",[1,"field2d","+","bevel"]],[13,"wz",[1,[1,[6,[7,"std","abs"],[[7,"p","z"]]],"-","halfDepth"],"+","bevel"]],[13,"inner",[6,[7,"std","min"],[[6,[7,"std","max"],["d2","wz"]],[6,[7,"d","f32"],[[5,"0"]]]]]],[13,"outer",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[6,[7,"std","max"],["d2",[6,[7,"d","f32"],[[5,"0"]]]]],[6,[7,"std","max"],["wz",[6,[7,"d","f32"],[[5,"0"]]]]]]]]]],[10,[1,[1,"inner","+","outer"],"-","bevel"]]]],externalNames:["layout","SIZE_F","std","d","MAX_TEXEL"]},externals:()=>({layout:l,SIZE_F:d,std:n,d:o,MAX_TEXEL:u})})&&N.f)({})),m=0,_="",v=PS(s()),h=new Map,y=.06,x=.02,g=.75,w=1,f=0,A=1,E=0,P=1,C=0,$=1,U=1,k=0,R=0,D=X1(),M=()=>{c.write({rot:{cx:w,sx:f,cy:A,sy:E,cz:P,sz:C},rBound:g,spanX:$,spanY:U,originX:k,originY:R,activeRes:D,pA:y,pB:x,pC:0,pD:0,mb0:W(0,0,0),mb1:W(0,0,0),mb2:W(0,0,0),mb3:W(0,0,0)})},z=N=>{let G=N?.deltaTime??0;m+=G;let I=s();if(I&&typeof I=="object")v=I;else if(typeof I=="string"&&I!==_){_=I;try{v=JSON.parse(I)}catch{}}let X={elapsed:m,deltaTime:G,pointerX:N?.pointer?.x??.5,pointerY:N?.pointer?.y??.5,springs:h},F=Pe=>Nx(v[Pe],gS[Pe]??0,X,Pe);y=Math.max(.001,F("depth")*.5),x=Math.min(Math.max(0,F("bevel")),y);let Q=.5,ae=.5;g=Math.hypot(Q,ae,y)+x+.03;let j=F("rotX")*zc,q=F("rotY")*zc,te=F("rotZ")*zc;w=Math.cos(j),f=Math.sin(j),A=Math.cos(q),E=Math.sin(q),P=Math.cos(te),C=Math.sin(te);let ne={cx:w,sx:f,cy:A,sy:E,cz:P,sz:C},oe=ox(1,0,0,ne),pe=ox(0,1,0,ne),_e=x+.03,ge=Math.abs(oe.x)*Q+Math.abs(oe.y)*ae+Math.abs(oe.z)*y+_e,Me=Math.abs(pe.x)*Q+Math.abs(pe.y)*ae+Math.abs(pe.z)*y+_e,Se=ge+.05,Ae=Me+.05;$=Se*2,U=Ae*2,k=.5-Se,R=.5-Ae,M()};z();let L=N=>{N!==D&&(D=N,M())},B=()=>`${y},${x},${g},${$},${U},${i()},${w},${f},${A},${E},${P},${C}`;return{layout:l,marchParamsBuffer:c,sdfFn:p,sdfSourceTexture:a.texture,update:z,setActiveRes:L,getStateKey:B,getFootprint:()=>({spanX:$,spanY:U,originX:k,originY:R,rBound:g})}}function v8(e,t,s="none"){let r=e.gpu?.root;if(!r)return null;let a=PS(t()),i=e.getCpuValue("shapeSdfUrl")||"",l=e.getCpuValue("shapeType")||a.type||"",c=null;if(i&&Ox(l)?c=RS(e,i,t):!i&&Vx(l)&&(c=kS(r,l,a,t)),!c)return null;let d=Yx(c.sdfFn,s),u=AS(c.layout,d),p=ES(r,c.layout,u,e.onCleanup,{paramsUniform:c.marchParamsBuffer,sdfSourceTexture:c.sdfSourceTexture}),m=e.registerComputeTexture(p.fieldTexture),_=p.maxRes,v="",h=ou()?2:1,y=0,x={originX:0,originY:0,spanX:1,spanY:1,activeRes:1,rBound:.6};return{outputs:{volumetricFieldTexture:m},getComputeNodes:w=>{c.update(w);let f=c.getFootprint(),A=e.getCpuValue("scale")??1,E=e.dimensions.height;_=TS(f.spanX,f.spanY,A,E,p.maxRes,_);let P=`${c.getStateKey()},${_}`;return P===v||(y++,h>1&&y%h!==0)?null:(v=P,c.setActiveRes(_),e.setExtraField("_vfOriginX",f.originX),e.setExtraField("_vfOriginY",f.originY),e.setExtraField("_vfSpanX",f.spanX),e.setExtraField("_vfSpanY",f.spanY),e.setExtraField("_vfActiveRes",_),e.setExtraField("_vfRBound",f.rBound),x.originX=f.originX,x.originY=f.originY,x.spanX=f.spanX,x.spanY=f.spanY,x.activeRes=_,x.rBound=f.rBound,[()=>p.dispatch(_)])},fieldTexture:p.fieldTexture,getFieldDomain:()=>({...x})}}var q1=b.fn([H,H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=$e(__tsover_div(a,r),1);return H(__tsover_mul(__tsover_div(r,a),i),i)}),{v:1,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,[7,"std","max"],[[1,"viewportAspect","/","aspect"],[5,"1"]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"aspect","/","viewportAspect"],"*","coverScale"],"coverScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),H1=b.fn([H,H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=Ct(__tsover_div(a,r),1);return H(__tsover_mul(__tsover_div(r,a),i),i)}),{v:1,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,[7,"std","min"],[[1,"viewportAspect","/","aspect"],[5,"1"]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"aspect","/","viewportAspect"],"*","containScale"],"containScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),j1=b.fn([],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(()=>{"use gpu";return H(1,1)}),{v:1,name:void 0,ast:{params:[],body:[0,[[10,[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Z1=b.fn([H,H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=Ct(__tsover_div(a,r),1),l=Ct(__tsover_div(s.x,t.x),__tsover_div(s.y,t.y)),c=Ct(i,l);return H(__tsover_mul(__tsover_div(r,a),c),c)}),{v:1,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,[7,"std","min"],[[1,"viewportAspect","/","aspect"],[5,"1"]]]],[13,"naturalScale",[6,[7,"std","min"],[[1,[7,"vp","x"],"/",[7,"dims","x"]],[1,[7,"vp","y"],"/",[7,"dims","y"]]]]],[13,"scaleDownScale",[6,[7,"std","min"],["containScale","naturalScale"]]],[10,[6,[7,"d","vec2f"],[[1,[1,"aspect","/","viewportAspect"],"*","scaleDownScale"],"scaleDownScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),$S=b.fn([H,H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=Ct(__tsover_div(s.x,t.x),__tsover_div(s.y,t.y));return H(__tsover_mul(__tsover_div(r,a),i),i)}),{v:1,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,[7,"std","min"],[[1,[7,"vp","x"],"/",[7,"dims","x"]],[1,[7,"vp","y"],"/",[7,"dims","y"]]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"aspect","/","viewportAspect"],"*","noneScale"],"noneScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),K1=b.fn([H,H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.sub(H(.5,.5));return H(__tsover_div(r.x,s.x),__tsover_div(r.y,s.y)).add(H(.5,.5))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"uvScale"}],body:[0,[[13,"centeredUV",[6,[7,"uv","sub"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"scaledUV",[6,[7,"d","vec2f"],[[1,[7,"centeredUV","x"],"/",[7,"uvScale","x"]],[1,[7,"centeredUV","y"],"/",[7,"uvScale","y"]]]]],[10,[6,[7,"scaledUV","add"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),J1=b.fn([ee,H],ee)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=$1(W(t.x,t.y,t.z)),a=s.x<0||s.x>1||s.y<0||s.y>1,i=bt(t.w,0,a);return ee(r.x,r.y,r.z,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"}],body:[0,[[13,"linear",[6,"srgbToLinear",[[6,[7,"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,[7,"std","select"],[[7,"color","w"],[5,"0"],"outOfBounds"]]],[10,[6,[7,"d","vec4f"],[[7,"linear","x"],[7,"linear","y"],[7,"linear","z"],"alpha"]]]]],externalNames:["srgbToLinear","d","std"]},externals:()=>({srgbToLinear:$1,d:o,std:n})})&&e.f)({})),US=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(sr({time:S,viewportSize:H,logicalViewportSize:H,aspect:S,pointer:H,pointerActive:S}),"SystemUniforms");b.fn([H,H],H)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return Po(t,s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewportSize"}],body:[0,[[10,[6,[7,"std","mul"],["uv","viewportSize"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({}));b.fn([H],S)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_div(t.x,t.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"viewportSize"}],body:[0,[[10,[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]]]],externalNames:[]},externals:()=>({})})&&e.f)({}));var Zs=wr({BLUR_DISK:()=>Vc,GlassLensUVs:()=>ev,applyGlassEffect:()=>y8,glassBlurOffset:()=>zS,glassBorderHighlight:()=>qx,glassComposite:()=>IS,glassFresnelRim:()=>jx,glassGradient:()=>tv,glassLensUVs:()=>DS,glassRefrStrength:()=>Cm,glassSpecular:()=>Hx,glassTint:()=>Xx,offsetUV:()=>Lr,sdfSpaceUV:()=>Dl}),Ul=.017453292519943295,Q1=.4472135954999579,h8=2.3999632297286535,Wx=9,Vc=[];for(let e=0;e<Wx;e++){let t=e*h8,s=Math.sqrt(e/Wx);Vc.push([Math.cos(t)*s,Math.sin(t)*s])}var Dl=b.fn([o.vec2f,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=t.x,c=__tsover_sub(1,t.y),d=__tsover_mul(__tsover_sub(a.x,l),i),u=__tsover_sub(a.y,c),p=__tsover_mul(r,Ul),m=n.cos(p),_=n.sin(p),v=__tsover_add(__tsover_mul(d,m),__tsover_mul(u,_)),h=__tsover_sub(__tsover_mul(u,m),__tsover_mul(d,_));return o.vec2f(__tsover_add(__tsover_div(v,s),.5),__tsover_add(__tsover_div(h,s),.5))}),{v:1,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,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[13,"rdx",[1,[1,"dxAc","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dxAc","*","sinR"]]],[10,[6,[7,"d","vec2f"],[[1,[1,"rdx","/","scale"],"+",[5,"0.5"]],[1,[1,"rdy","/","scale"],"+",[5,"0.5"]]]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:Ul,std:n,d:o})})&&e.f)({})),Lr=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_add(t.x,s),__tsover_add(t.y,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","ox"],[1,[7,"uv","y"],"+","oy"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),tv=b.fn([o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_div(__tsover_sub(s,t),.01),__tsover_div(__tsover_sub(r,t),.01))}),{v:1,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,[7,"d","vec2f"],[[1,[1,"sdfX","-","sdfRaw"],"/","eps"],[1,[1,"sdfY","-","sdfRaw"],"/","eps"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Cm=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.max(__tsover_mul(s,.3),.005),i=n.clamp(__tsover_div(__tsover_mul(t,-1),a),0,1),l=n.smoothstep(0,1,i),c=__tsover_mul(__tsover_sub(1,i),__tsover_sub(1,i));return n.select(c,l,r>.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"thickness"},{type:"i",name:"volumetric"}
242],body:[0,[[13,"thicknessRange",[6,[7,"std","max"],[[1,"thickness","*",[5,"0.3"]],[5,"0.005"]]]],[13,"depthNorm",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","thicknessRange"],[5,"0"],[5,"1"]]]],[13,"vol",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"depthNorm"]]],[13,"flat",[1,[1,[5,"1"],"-","depthNorm"],"*",[1,[5,"1"],"-","depthNorm"]]],[10,[6,[7,"std","select"],["flat","vol",[1,"volumetric",">",[5,"0.5"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),ev=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({lensUV:o.vec2f,rUV:o.vec2f,bUV:o.vec2f}),"GlassLensUVs"),DS=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],ev)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=Cm(__tsover_div(r,a),u,_),h=__tsover_mul(c,.15),y=__tsover_div(__tsover_mul(__tsover_mul(__tsover_mul(i,-1),h),v),m),x=__tsover_mul(__tsover_mul(__tsover_mul(l,-1),h),v),g=s.x,w=__tsover_sub(1,s.y),f=__tsover_add(g,__tsover_div(__tsover_sub(t.x,g),d)),A=__tsover_add(w,__tsover_div(__tsover_sub(t.y,w),d)),E=__tsover_add(f,y),P=__tsover_add(A,x),C=__tsover_mul(p,.06),$=__tsover_mul(y,C),U=__tsover_mul(x,C);return ev({lensUV:o.vec2f(E,P),rUV:o.vec2f(__tsover_add(E,$),__tsover_add(P,U)),bUV:o.vec2f(__tsover_sub(E,$),__tsover_sub(P,U))})}),{v:1,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,"offsetX",[1,[1,[1,[1,"gradX","*",[4,"-",[5,"1"]]],"*","refrScale"],"*","refrStrength"],"/","aspect"]],[13,"offsetY",[1,[1,[1,"gradY","*",[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,[7,"d","vec2f"],["lensX","lensY"]],rUV:[6,[7,"d","vec2f"],[[1,"lensX","+","chrOffX"],[1,"lensY","+","chrOffY"]]],bUV:[6,[7,"d","vec2f"],[[1,"lensX","-","chrOffX"],[1,"lensY","-","chrOffY"]]]}]]]]]],externalNames:["glassRefrStrength","GlassLensUVs","d"]},externals:()=>({glassRefrStrength:Cm,GlassLensUVs:ev,d:o})})&&e.f)({})),zS=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(s,2);return o.vec2f(__tsover_mul(__tsover_div(r,t.x),i),__tsover_mul(__tsover_div(a,t.y),i))}),{v:1,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,[7,"d","vec2f"],[[1,[1,"ox","/",[7,"viewportSize","x"]],"*","m"],[1,[1,"oy","/",[7,"viewportSize","y"]],"*","m"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Xx=b.fn([o.vec3f,o.vec3f,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec3f(.299,.587,.114),l=n.dot(t,i),c=n.mix(t,s,r),d=n.dot(c,i),u=c.mul(__tsover_div(l,n.max(d,1e-4))),p=n.select(o.f32(0),o.f32(1),a>.5);
vendor: 86,871 bytes, line 242
242return n.mix(c,u,p)}),{v:1,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,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]],[13,"origLum",[6,[7,"std","dot"],["rgb","lumWeights"]]],[13,"tinted",[6,[7,"std","mix"],["rgb","tintColor","tintIntensity"]]],[13,"tintedLum",[6,[7,"std","dot"],["tinted","lumWeights"]]],[13,"lumPreserved",[6,[7,"tinted","mul"],[[1,"origLum","/",[6,[7,"std","max"],["tintedLum",[5,"0.0001"]]]]]]],[13,"preserveFactor",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"preserveLum",">",[5,"0.5"]]]]],[10,[6,[7,"std","mix"],["tinted","lumPreserved","preserveFactor"]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),qx=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=n.max(__tsover_mul(s,.5),.001),u=__tsover_sub(t,r),p=__tsover_sub(n.clamp(__tsover_mul(__tsover_div(__tsover_mul(u,-1),d),16),0,1),n.clamp(__tsover_mul(__tsover_div(__tsover_mul(t,-1),d),16),0,1)),m=n.cos(__tsover_mul(l,Ul)),_=n.sin(__tsover_mul(l,Ul)),v=__tsover_add(__tsover_mul(a,m),__tsover_mul(i,_)),h=__tsover_add(__tsover_mul(v,.5),.5);return __tsover_mul(__tsover_mul(p,h),c)}),{v:1,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,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"sdfOuter",[1,"sdf","-","pxH"]],[13,"rb2base",[1,[6,[7,"std","clamp"],[[1,[1,[1,"sdfOuter","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"16"]],[5,"0"],[5,"1"]]],"-",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"16"]],[5,"0"],[5,"1"]]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"normalDotLight",[1,[1,"gradX","*","lx"],"+",[1,"gradY","*","ly"]]],[13,"lightFacing",[1,[1,"normalDotLight","*",[5,"0.5"]],"+",[5,"0.5"]]],[10,[1,[1,"rb2base","*","lightFacing"],"*","highlight"]]]],externalNames:["std","DEG_TO_RAD"]},externals:()=>({std:n,DEG_TO_RAD:Ul})})&&e.f)({})),Hx=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=n.cos(__tsover_mul(r,Ul)),d=n.sin(__tsover_mul(r,Ul)),u=o.f32(2),p=n.sqrt(__tsover_add(__tsover_add(__tsover_mul(t,t),__tsover_mul(s,s)),__tsover_mul(u,u))),m=__tsover_div(t,p),_=__tsover_div(s,p),v=__tsover_div(u,p),h=__tsover_add(__tsover_add(__tsover_mul(m,__tsover_mul(c,Q1)),__tsover_mul(_,__tsover_mul(d,Q1))),__tsover_mul(v,__tsover_mul(2,Q1))),y=n.exp2(__tsover_sub(8,__tsover_mul(i,7)));return __tsover_mul(__tsover_mul(n.pow(n.clamp(h,0,1),y),a),l)}),{v:1,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,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"nz",[6,[7,"d","f32"],[[5,"2"]]]],[13,"nLen",[6,[7,"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,[7,"std","exp2"],[[1,[5,"8"],"-",[1,"highlightSoftness","*",[5,"7"]]]]]],[10,[1,[1,[6,[7,"std","pow"],[[6,[7,"std","clamp"],["nDotH",[5,"0"],[5,"1"]]],"shininess"]],"*","highlight"],"*","refrStrength"]]]],externalNames:["std","DEG_TO_RAD","d","INV_HLEN_GLASS"]},externals:()=>({std:n,DEG_TO_RAD:Ul,d:o,INV_HLEN_GLASS:Q1})})&&e.f)({})),jx=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_add(__tsover_mul(s,s),__tsover_mul(r,r)),u=__tsover_div(1,n.sqrt(__tsover_add(d,1))),p=n.mix(6,1.5,n.clamp(i,0,1)),m=__tsover_mul(__tsover_mul(__tsover_mul(n.pow(__tsover_sub(1,u),p),a),2),l),_=n.max(__tsover_mul(i,.06),.001),v=n.clamp(__tsover_div(__tsover_mul(t,-1),_),0,1),h=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_sub(1,v),__tsover_sub(1,v)),a),l);return n.select(h,m,c>.5)}),{v:1,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,[7,"std","sqrt"],[[1,"slopeSq","+",[5,"1"]]]]]],[13,"exponent",[6,[7,"std","mix"],[[5,"6"],[5,"1.5"],[6,[7,"std","clamp"],["fresnelSoftness",[5,"0"],[5,"1"]]]]]],[13,"volRim",[1,[1,[1,[6,[7,"std","pow"],[[1,[5,"1"],"-","cosView"],"exponent"]],"*","fresnel"],"*",[5,"2"]],"*","rb1"]],[13,"fresnelWidth",[6,[7,"std","max"],[[1,"fresnelSoftness","*",[5,"0.06"]],[5,"0.001"]]]],[13,"fresnelDepth",[6,[7,"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,[7,"std","select"],["flatRim","volRim",[1,"volumetric",">",[5,"0.5"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),IS=b.fn([o.vec4f,o.vec4f,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32,o.f32,o.f32,o.vec3f,o.f32,o.f32,o.vec3f,o.f32,o.f32,o.vec3f,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v,h,y,x,g,w,f,A,E)=>{"use gpu";let P=n.max(__tsover_mul(d,.5),.001),C=__tsover_div(1,c.y),$=__tsover_div(r,a),U=n.clamp(__tsover_mul(__tsover_div(__tsover_mul($,-1),P),32),0,1),k=Cm($,x,E),R=qx($,d,C,i,l,u,p),D=Xx(o.vec3f(s.x,s.y,s.z),g,w,f),M=Hx(i,l,u,p,_,k),z=jx($,i,l,v,y,U,E),L=__tsover_add(__tsover_add(__tsover_add(D.x,__tsover_mul(m.x,R)),__tsover_mul(m.x,M)),__tsover_mul(h.x,z)),B=__tsover_add(__tsover_add(__tsover_add(D.y,__tsover_mul(m.y,R)),__tsover_mul(m.y,M)),__tsover_mul(h.y,z)),N=__tsover_add(__tsover_add(__tsover_add(D.z,__tsover_mul(m.z,R)),__tsover_mul(m.z,M)),__tsover_mul(h.z,z)),G=__tsover_add(s.w,R),I=o.vec4f(L,B,N,G),X=n.smoothstep(0,1,U),F=n.mix(t,I,X),Q=n.select(o.f32(1),X,A>.5);return o.vec4f(F.x,F.y,F.z,__tsover_mul(F.w,Q))}),{v:1,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,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdf",[1,"sdfRaw","/","scale"]],[13,"rb1",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[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,[7,"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,[7,"d","vec4f"],["litR","litG","litB","litA"]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"rb1"]]],[13,"composited",[6,[7,"std","mix"],["baseColor","lighting","transition"]]],[13,"cutoutAlpha",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],"transition",[1,"cutout",">",[5,"0.5"]]]]],[10,[6,[7,"d","vec4f"],[[7,"composited","x"],[7,"composited","y"],[7,"composited","z"],[1,[7,"composited","w"],"*","cutoutAlpha"]]]]]],externalNames:["std","glassRefrStrength","glassBorderHighlight","d","glassTint","glassSpecular","glassFresnelRim"]},externals:()=>({std:n,glassRefrStrength:Cm,glassBorderHighlight:qx,d:o,glassTint:Xx,glassSpecular:Hx,glassFresnelRim:jx})})&&e.f)({}));function y8(e,t,s,r,a){let{uniforms:i,propValues:l,ctx:c}=e,d=a?.volumetric??!1,u=a?.bakedGradients??!1,p=le(d?1:0),m=T(Dl,"sdfSpaceUV",[i.center,i.scale,i.rotation,c.uv,c.aspect]),_=t(m),v=_.member("r"),h,y;if(u)h=_.member("g"),y=_.member("b");else{let D=t(T(Lr,"offsetUV",[m,le(.01),le(0)])),M=t(T(Lr,"offsetUV",[m,le(0),le(.01)])),z=T(tv,"glassGradient",[v,D.member("r"),M.member("r")]);h=z.member("x"),y=z.member("y")}let x=T(DS,"glassLensUVs",[c.uv,i.center,v,i.scale,h,y,i.refraction,i.innerZoom,i.thickness,i.aberration,c.aspect,p]),g=x.member("lensUV"),w=x.member("rUV"),f=x.member("bUV"),A=l.blur,E=typeof A=="number"?A>0:!0,P=l.aberration,C=typeof P=="number"?P>0:!0,$=(D,M,z,L)=>D.sample(M.add(T(zS,"glassBlurOffset",[c.viewportSize,i.blur,le(z),le(L)]))),U=(D,M)=>{let z=$(D,M,Vc[0][0],Vc[0][1]);for(let L=1;L<Vc.length;L++)z=z.add($(D,M,Vc[L][0],Vc[L][1]));return z.mul(1/Wx)},k;if(r&&E)k=C?de(r.sample(w).member("r"),r.sample(g).member("g"),r.sample(f).member("b"),r.sample(g).member("a")):r.sample(g);else if(!E&&!C)k=s.sample(g);else if(!E&&C)k=de(s.sample(w).member("r"),s.sample(g).member("g"),s.sample(f).member("b"),s.sample(g).member("a"));else if(E&&!C)k=U(s,g);else{let D=U(s,w),M=U(s,g),z=U(s,f);k=de(D.member("r"),M.member("g"),z.member("b"),M.member("a"))}let R=T(Re,"unpremultiplyAlpha",[k]);return T(IS,"glassComposite",[T(Re,"unpremultiplyAlpha",[s.sample(c.uv)]),R,v,i.scale,h,y,c.viewportSize,i.edgeSoftness,i.lightAngle,i.highlight,i.highlightColor.member("rgb"),i.highlightSoftness,i.fresnel,i.fresnelColor.member("rgb"),i.fresnelSoftness,i.thickness,i.tintColor.member("rgb"),i.tintIntensity,i.tintPreserveLuminosity,i.cutout,p])}function So(e,t){let s=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(t[0])||(t=t.map(l=>[l]));let r=t[0].length,a=t[0].map((l,c)=>t.map(d=>d[c])),i=e.map(l=>a.map(c=>{let d=0;if(!Array.isArray(l)){for(let u of c)d+=l*u;return d}for(let u=0;u<l.length;u++)d+=l[u]*(c[u]||0);return d}));return s===1&&(i=i[0]),r===1?i.map(l=>l[0]):i}function Dm(e){return zl(e)==="string"}function zl(e){return(Object.prototype.toString.call(e).match(/^\[object\s+(.*?)\]$/)[1]||"").toLowerCase()}function uv(e,{precision:t,unit:s}){return Il(e)?"none":DA(e,t)+(s??"")}function Il(e){return Number.isNaN(e)||e instanceof Number&&e?.none}function Ko(e){return Il(e)?0:e}function DA(e,t){if(e===0)return 0;let s=~~e,r=0;s&&t&&(r=~~Math.log10(Math.abs(s))+1);let a=10**(t-r);return Math.floor(e*a+.5)/a}var g8={deg:1,grad:.9,rad:180/Math.PI,turn:360};function zA(e){if(!e)return;e=e.trim();let t=/^([a-z]+)\((.+?)\)$/i,s=/^-?[\d.]+$/,r=/%|deg|g?rad|turn$/,a=/\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g,i=e.match(t);if(i){let l=[];return i[2].replace(a,(c,d)=>{let u=d.match(r),p=d;if(u){let m=u[0],_=p.slice(0,-m.length);m==="%"?(p=new Number(_/100),p.type="<percentage>"):(p=new Number(_*g8[m]),p.type="<angle>",p.unit=m)}else s.test(p)?(p=new Number(p),p.type="<number>"):p==="none"&&(p=new Number(NaN),p.none=!0);c.startsWith("/")&&(p=p instanceof Number?p:new Number(p),p.alpha=!0),typeof p=="object"&&p instanceof Number&&(p.raw=d),l.push(p)}),{name:i[1].toLowerCase(),rawName:i[1],rawArgs:i[2],args:l}}}function IA(e){return e[e.length-1]}function Rm(e,t,s){return isNaN(e)?t:isNaN(t)?e:e+(t-e)*s}function LA(e,t,s){return(s-e)/(t-e)}function _2(e,t,s){return Rm(t[0],t[1],LA(e[0],e[1],s))}function FA(e){return e.map(t=>t.split("|").map(s=>{s=s.trim();let r=s.match(/^(<[a-z]+>)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);if(r){let a=new String(r[1]);return a.range=[+r[2],+r[3]],a}return s}))}function BA(e,t,s){return Math.max(Math.min(s,t),e)}function fv(e,t){return Math.sign(e)===Math.sign(t)?e:-e}function Kn(e,t){return fv(Math.abs(e)**t,e)}function f2(e,t){return t===0?0:e/t}function VA(e,t,s=0,r=e.length){for(;s<r;){let a=s+r>>1;e[a]<t?s=a+1:r=a}return s}var x8=Object.freeze({__proto__:null,bisectLeft:VA,clamp:BA,copySign:fv,interpolate:Rm,interpolateInv:LA,isNone:Il,isString:Dm,last:IA,mapRange:_2,multiplyMatrices:So,parseCoordGrammar:FA,parseFunction:zA,serializeNumber:uv,skipNone:Ko,spow:Kn,toPrecision:DA,type:zl,zdiv:f2}),b8=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)})}},Ll=new b8,$a={gamut_mapping:"css",precision:5,deltaE:"76",verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!=="test",warn:function(t){this.verbose&&globalThis?.console?.warn?.(t)}},ea={D50:[.3457/.3585,1,.2958/.3585],D65:[.3127/.329,1,.3583/.329]};function n2(e){return Array.isArray(e)?e:ea[e]}function pv(e,t,s,r={}){if(e=n2(e),t=n2(t),!e||!t)throw new TypeError(`Missing white point to convert ${e?"":"from"}${!e&&!t?"/":""}${t?"":"to"}`);if(e===t)return s;let a={W1:e,W2:t,XYZ:s,options:r};if(Ll.run("chromatic-adaptation-start",a),a.M||(a.W1===ea.D65&&a.W2===ea.D50?a.M=[[1.0479297925449969,.022946870601609652,-.05019226628920524],[.02962780877005599,.9904344267538799,-.017073799063418826],[-.009243040646204504,.015055191490298152,.7518742814281371]]:a.W1===ea.D50&&a.W2===ea.D65&&(a.M=[[.955473421488075,-.02309845494876471,.06325924320057072],[-.0283697093338637,1.0099953980813041,.021041441191917323],[.012314014864481998,-.020507649298898964,1.330365926242124]])),Ll.run("chromatic-adaptation-end",a),a.M)return So(a.M,a.XYZ);throw new TypeError("Only Bradford CAT with white points D50 and D65 supported for now.")}var w8=new Set(["<number>","<percentage>","<angle>"]);function LS(e,t,s,r){return Object.entries(e.coords).map(([a,i],l)=>{let c=t.coordGrammar[l],d=r[l],u=d?.type,p;if(d.none?p=c.find(v=>w8.has(v)):p=c.find(v=>v==u),!p){let v=i.name||a;throw new TypeError(`${u??d.raw} not allowed for ${v} in ${s}()`)}let m=p.range;u==="<percentage>"&&(m||=[0,1]);let _=i.range||i.refRange;return m&&_&&(r[l]=_2(m,_,r[l])),p})}function OA(e,{meta:t}={}){let s={str:String(e)?.trim()};if(Ll.run("parse-start",s),s.color)return s.color;if(s.parsed=zA(s.str),s.parsed){let r=s.parsed.name;if(r==="color"){let a=s.parsed.args.shift(),i=a.startsWith("--")?a.substring(2):`--${a}`,l=[a,i],c=s.parsed.rawArgs.indexOf("/")>0?s.parsed.args.pop():1;for(let p of Pt.all){let m=p.getFormat("color");if(m&&(l.includes(m.id)||m.ids?.filter(_=>l.includes(_)).length)){let _=Object.keys(p.coords).map((h,y)=>s.parsed.args[y]||0),v;return m.coordGrammar&&(v=LS(p,m,"color",_)),t&&Object.assign(t,{formatId:"color",types:v}),m.id.startsWith("--")&&!a.startsWith("--")&&$a.warn(`${p.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${m.id}) instead of color(${a}).`),a.startsWith("--")&&!m.id.startsWith("--")&&$a.warn(`${p.name} is a standard space and supported in the CSS spec. Use color(${m.id}) instead of prefixed color(${a}).`),{spaceId:p.id,coords:_,alpha:c}}}let d="",u=a in Pt.registry?a:i;if(u in Pt.registry){let p=Pt.registry[u].formats?.color?.id;p&&(d=`Did you mean color(${p})?`)}throw new TypeError(`Cannot parse color(${a}). `+(d||"Missing a plugin?"))}else for(let a of Pt.all){let i=a.getFormat(r);if(i&&i.type==="function"){let l=1;(i.lastAlpha||IA(s.parsed.args).alpha)&&(l=s.parsed.args.pop());let c=s.parsed.args,d;return i.coordGrammar&&(d=LS(a,i,r,c)),t&&Object.assign(t,{formatId:i.name,types:d}),{spaceId:a.id,coords:c,alpha:l}}}}else for(let r of Pt.all)for(let a in r.formats){let i=r.formats[a];if(i.type!=="custom"||i.test&&!i.test(s.str))continue;let l=i.parse(s.str);if(l)return l.alpha??=1,t&&(t.formatId=a),l}throw new TypeError(`Could not parse ${e} as a color. Missing a plugin?`)}function Kt(e){if(Array.isArray(e))return e.map(Kt);if(!e)throw new TypeError("Empty color reference");Dm(e)&&(e=OA(e));let t=e.space||e.spaceId;return t instanceof Pt||(e.space=Pt.get(t)),e.alpha===void 0&&(e.alpha=1),e}var T8=75e-6,Pt=class gn{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?gn.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=n2(t.white??this.base.white??"D65"),this.formats=t.formats??{};for(let r in this.formats){let a=this.formats[r];a.type||="function",a.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:gn.get(t.gamutSpace):this.isPolar?this.gamutSpace=this.base:this.gamutSpace=this,this.gamutSpace.isUnbounded&&(this.inGamut=(r,a)=>!0),this.referred=t.referred,Object.defineProperty(this,"path",{value:S8(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),Ll.run("colorspace-init-end",this)}inGamut(t,{epsilon:s=T8}={}){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((a,i)=>{let l=r[i];if(l.type!=="angle"&&l.range){if(Number.isNaN(a))return!0;let[c,d]=l.range;return(c===void 0||a>=c-s)&&(d===void 0||a<=d+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=FS(t,this),t;let s;return t==="default"?s=Object.values(this.formats)[0]:s=this.formats[t],s?(s=FS(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 c=Kt(t);[t,s]=[c.space,c.coords]}if(t=gn.get(t),this.equals(t))return s;s=s.map(c=>Number.isNaN(c)?0:c);let r=this.path,a=t.path,i,l;for(let c=0;c<r.length&&r[c].equals(a[c]);c++)i=r[c],l=c;if(!i)throw new Error(`Cannot convert between color spaces ${this} and ${t}: no connection space was found`);for(let c=r.length-1;c>l;c--)s=r[c].toBase(s);for(let c=l+1;c<a.length;c++)s=a[c].fromBase(s);return s}from(t,s){if(arguments.length===1){let r=Kt(t);[t,s]=[r.space,r.coords]}return t=gn.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],a=r.range||r.refRange;t.push(a?.min??0)}return t}static registry={};static get all(){return[...new Set(Object.values(gn.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 gn)return t;if(zl(t)==="string"){let r=gn.registry[t.toLowerCase()];if(!r)throw new TypeError(`No color space found with id = "${t}"`);return r}if(s.length)return gn.get(...s);throw new TypeError(`${t} is not a valid color space`)}static resolveCoord(t,s){let r=zl(t),a,i;if(r==="string"?t.includes(".")?[a,i]=t.split("."):[a,i]=[,t]:Array.isArray(t)?[a,i]=t:(a=t.space,i=t.coordId),a=gn.get(a),a||(a=s),!a)throw new TypeError(`Cannot resolve coordinate reference ${t}: No color space specified and relative references are not allowed here`);if(r=zl(i),r==="number"||r==="string"&&i>=0){let d=Object.entries(a.coords)[i];if(d)return{space:a,id:d[0],index:i,...d[1]}}a=gn.get(a);let l=i.toLowerCase(),c=0;for(let d in a.coords){let u=a.coords[d];if(d.toLowerCase()===l||u.name?.toLowerCase()===l)return{space:a,id:d,index:c,...u};c++}throw new TypeError(`No "${i}" coordinate found in ${a.name}. Its coordinates are: ${Object.keys(a.coords).join(", ")}`)}static DEFAULT_FORMAT={type:"functions",name:"color"}};function S8(e){let t=[e];for(let s=e;s=s.base;)t.push(s);return t}function FS(e,{coords:t}={}){if(e.coords&&!e.coordGrammar){e.type||="function",e.name||="color",e.coordGrammar=FA(e.coords);let s=Object.entries(t).map(([r,a],i)=>{let l=e.coordGrammar[i][0],c=a.range||a.refRange,d=l.range,u="";return l=="<percentage>"?(d=[0,100],u="%"):l=="<angle>"&&(u="deg"),{fromRange:c,toRange:d,suffix:u}});e.serializeCoords=(r,a)=>r.map((i,l)=>{let{fromRange:c,toRange:d,suffix:u}=s[l];return c&&d&&(i=_2(c,d,i)),i=uv(i,{precision:a,unit:u}),i})}return e}var Sr=new Pt({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"]}),ma=class extends Pt{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=Sr),e.toXYZ_M&&e.fromXYZ_M&&(e.toBase??=t=>{let s=So(e.toXYZ_M,t);return this.white!==this.base.white&&(s=pv(this.white,this.base.white,s)),s},e.fromBase??=t=>(t=pv(this.base.white,this.white,t),So(e.fromXYZ_M,t))),e.referred??="display",super(e)}};function zm(e,t){return e=Kt(e),!t||e.space.equals(t)?e.coords.slice():(t=Pt.get(t),t.from(e))}function ka(e,t){e=Kt(e);let{space:s,index:r}=Pt.resolveCoord(t,e.space);return zm(e,s)[r]}function v2(e,t,s){return e=Kt(e),t=Pt.get(t),e.coords=t.to(e.space,s),e}v2.returns="color";function Li(e,t,s){if(e=Kt(e),arguments.length===2&&zl(arguments[1])==="object"){let r=arguments[1];for(let a in r)Li(e,a,r[a])}else{typeof s=="function"&&(s=s(ka(e,t)));let{space:r,index:a}=Pt.resolveCoord(t,e.space),i=zm(e,r);i[a]=s,v2(e,r,i)}return e}Li.returns="color";var h2=new Pt({id:"xyz-d50",name:"XYZ D50",white:"D50",base:Sr,fromBase:e=>pv(Sr.white,"D50",e),toBase:e=>pv("D50",Sr.white,e)}),A8=216/24389,BS=24/116,sv=24389/27,Zx=ea.D50,Ra=new Pt({id:"lab",name:"Lab",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:Zx,base:h2,fromBase(e){let t=e.map((s,r)=>s/Zx[r]).map(s=>s>A8?Math.cbrt(s):(sv*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]>BS?Math.pow(t[0],3):(116*t[0]-16)/sv,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/sv,t[2]>BS?Math.pow(t[2],3):(116*t[2]-16)/sv].map((s,r)=>s*Zx[r])},formats:{lab:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});function Jn(e){return(e%360+360)%360}function E8(e,t){if(e==="raw")return t;let[s,r]=t.map(Jn),a=r-s;return e==="increasing"?a<0&&(r+=360):e==="decreasing"?a>0&&(s+=360):e==="longer"?-180<a&&a<180&&(a>0?s+=360:r+=360):e==="shorter"&&(a>180?s+=360:a<-180&&(r+=360)),[s,r]}var $m=new Pt({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:Ra,fromBase(e){let[t,s,r]=e,a,i=.02;return Math.abs(s)<i&&Math.abs(r)<i?a=NaN:a=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),Jn(a)]},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>"]}}}),VS=25**7,mv=Math.PI,OS=180/mv,ru=mv/180;function NS(e){let t=e*e;return t*t*t*e}function NA(e,t,{kL:s=1,kC:r=1,kH:a=1}={}){[e,t]=Kt([e,t]);let[i,l,c]=Ra.from(e),d=$m.from(Ra,[i,l,c])[1],[u,p,m]=Ra.from(t),_=$m.from(Ra,[u,p,m])[1];d<0&&(d=0),_<0&&(_=0);let v=NS((d+_)/2),h=.5*(1-Math.sqrt(v/(v+VS))),y=(1+h)*l,x=(1+h)*p,g=Math.sqrt(y**2+c**2),w=Math.sqrt(x**2+m**2),f=y===0&&c===0?0:Math.atan2(c,y),A=x===0&&m===0?0:Math.atan2(m,x);f<0&&(f+=2*mv),A<0&&(A+=2*mv),f*=OS,A*=OS;let E=u-i,P=w-g,C=A-f,$=f+A,U=Math.abs(C),k;g*w===0?k=0:U<=180?k=C:C>180?k=C-360:C<-180?k=C+360:$a.warn("the unthinkable has happened");let R=2*Math.sqrt(w*g)*Math.sin(k*ru/2),D=(i+u)/2,M=(g+w)/2,z=NS(M),L;g*w===0?L=$:U<=180?L=$/2:$<360?L=($+360)/2:L=($-360)/2;let B=(D-50)**2,N=1+.015*B/Math.sqrt(20+B),G=1+.045*M,I=1;I-=.17*Math.cos((L-30)*ru),I+=.24*Math.cos(2*L*ru),I+=.32*Math.cos((3*L+6)*ru),I-=.2*Math.cos((4*L-63)*ru);let X=1+.015*M*I,F=30*Math.exp(-1*((L-275)/25)**2),Q=2*Math.sqrt(z/(z+VS)),ae=-1*Math.sin(2*F*ru)*Q,j=(E/(s*N))**2;return j+=(P/(r*G))**2,j+=(R/(a*X))**2,j+=ae*(P/(r*G))*(R/(a*X)),Math.sqrt(j)}var M8=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],C8=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],P8=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],k8=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],lu=new Pt({id:"oklab",name:"Oklab",coords:{l:{refRange:[0,1],name:"Lightness"},a:{refRange:[-.4,.4]},b:{refRange:[-.4,.4]}},white:"D65",base:Sr,fromBase(e){return So(P8,So(M8,e).map(t=>Math.cbrt(t)))},toBase(e){return So(C8,So(k8,e).map(t=>t**3))},formats:{oklab:{coords:["<percentage> | <number>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}});function i2(e,t){[e,t]=Kt([e,t]);let[s,r,a]=lu.from(e),[i,l,c]=lu.from(t),d=s-i,u=r-l,p=a-c;return Math.sqrt(d**2+u**2+p**2)}var R8=75e-6;function Nc(e,t,{epsilon:s=R8}={}){e=Kt(e),t||(t=e.space),t=Pt.get(t);let r=e.coords;return t!==e.space&&(r=t.from(e)),t.inGamut(r,{epsilon:s})}function cu(e){return{space:e.space,coords:e.coords.slice(),alpha:e.alpha}}function YA(e,t,s="lab"){s=Pt.get(s);let r=s.from(e),a=s.from(t);return Math.sqrt(r.reduce((i,l,c)=>{let d=a[c];return isNaN(l)||isNaN(d)?i:i+(d-l)**2},0))}function $8(e,t){return YA(e,t,"lab")}var YS=Math.PI/180;function U8(e,t,{l:s=2,c:r=1}={}){[e,t]=Kt([e,t]);let[a,i,l]=Ra.from(e),[,c,d]=$m.from(Ra,[a,i,l]),[u,p,m]=Ra.from(t),_=$m.from(Ra,[u,p,m])[1];c<0&&(c=0),_<0&&(_=0);let v=a-u,h=c-_,y=i-p,x=l-m,g=y**2+x**2-h**2,w=.511;a>=16&&(w=.040975*a/(1+.01765*a));let f=.0638*c/(1+.0131*c)+.638,A;Number.isNaN(d)&&(d=0),d>=164&&d<=345?A=.56+Math.abs(.2*Math.cos((d+168)*YS)):A=.36+Math.abs(.4*Math.cos((d+35)*YS));let E=Math.pow(c,4),P=Math.sqrt(E/(E+1900)),C=f*(P*A+1-P),$=(v/(s*w))**2;return $+=(h/(r*f))**2,$+=g/C**2,Math.sqrt($)}var GS=203,y2=new Pt({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:Sr,fromBase(e){return e.map(t=>Math.max(t*GS,0))},toBase(e){return e.map(t=>Math.max(t/GS,0))}}),ov=1.15,rv=.66,WS=2610/2**14,D8=2**14/2610,XS=3424/2**12,qS=2413/2**7,HS=2392/2**7,z8=1.7*2523/2**5,jS=2**5/(1.7*2523),av=-.56,Kx=16295499532821565e-27,I8=[[.41478972,.579999,.014648],[-.20151,1.120649,.0531008],[-.0166008,.2648,.6684799]],L8=[[1.9242264357876067,-1.0047923125953657,.037651404030618],[.35031676209499907,.7264811939316552,-.06538442294808501],[-.09098281098284752,-.3127282905230739,1.5227665613052603]],F8=[[.5,.5,0],[3.524,-4.066708,.542708],[.199076,1.096799,-1.295875]],B8=[[1,.1386050432715393,.05804731615611886],[.9999999999999999,-.1386050432715393,-.05804731615611886],[.9999999999999998,-.09601924202631895,-.8118918960560388]],GA=new Pt({id:"jzazbz",name:"Jzazbz",coords:{jz:{refRange:[0,1],name:"Jz"},az:{refRange:[-.5,.5]},bz:{refRange:[-.5,.5]}},base:y2,fromBase(e){let[t,s,r]=e,[a,i,l]=So(F8,So(I8,[ov*t-(ov-1)*r,rv*s-(rv-1)*t,r]).map(function(c){return((XS+qS*(c/1e4)**WS)/(1+HS*(c/1e4)**WS))**z8}));return[(1+av)*a/(1+av*a)-Kx,i,l]},toBase(e){let[t,s,r]=e,[a,i,l]=So(L8,So(B8,[(t+Kx)/(1+av-av*(t+Kx)),s,r]).map(function(d){return 1e4*((XS-d**jS)/(HS*d**jS-qS))**D8})),c=(a+(ov-1)*l)/ov;return[c,(i+(rv-1)*c)/rv,l]},formats:{color:{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),l2=new Pt({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:GA,fromBase(e){let[t,s,r]=e,a,i=2e-4;return Math.abs(s)<i&&Math.abs(r)<i?a=NaN:a=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),Jn(a)]},toBase(e){return[e[0],e[1]*Math.cos(e[2]*Math.PI/180),e[1]*Math.sin(e[2]*Math.PI/180)]}});function V8(e,t){[e,t]=Kt([e,t]);let[s,r,a]=l2.from(e),[i,l,c]=l2.from(t),d=s-i,u=r-l;Number.isNaN(a)&&Number.isNaN(c)?(a=0,c=0):Number.isNaN(a)?a=c:Number.isNaN(c)&&(c=a);let p=a-c,m=2*Math.sqrt(r*l)*Math.sin(p/2*(Math.PI/180));return Math.sqrt(d**2+u**2+m**2)}var WA=3424/4096,XA=2413/128,qA=2392/128,ZS=2610/16384,O8=2523/32,N8=16384/2610,KS=32/2523,Y8=[[.3592832590121217,.6976051147779502,-.035891593232029],[-.1920808463704993,1.100476797037432,.0753748658519118],[.0070797844607479,.0748396662186362,.8433265453898765]],G8=[[2048/4096,2048/4096,0],[6610/4096,-13613/4096,7003/4096],[17933/4096,-17390/4096,-543/4096]],W8=[[.9999999999999998,.0086090370379328,.111029625003026],[.9999999999999998,-.0086090370379328,-.1110296250030259],[.9999999999999998,.5600313357106791,-.3206271749873188]],X8=[[2.0701522183894223,-1.3263473389671563,.2066510476294053],[.3647385209748072,.6805660249472273,-.0453045459220347],[-.0497472075358123,-.0492609666966131,1.1880659249923042]],c2=new Pt({id:"ictcp",name:"ICTCP",coords:{i:{refRange:[0,1],name:"I"},ct:{refRange:[-.5,.5],name:"CT"},cp:{refRange:[-.5,.5],name:"CP"}},base:y2,fromBase(e){return q8(So(Y8,e))},toBase(e){return So(X8,H8(e))}});function q8(e){return So(G8,e.map(function(t){return((WA+XA*(t/1e4)**ZS)/(1+qA*(t/1e4)**ZS))**O8}))}function H8(e){return So(W8,e).map(function(t){return 1e4*(Math.max(t**KS-WA,0)/(XA-qA*t**KS))**N8})}function j8(e,t){[e,t]=Kt([e,t]);let[s,r,a]=c2.from(e),[i,l,c]=c2.from(t);return 720*Math.sqrt((s-i)**2+.25*(r-l)**2+(a-c)**2)}var Z8=ea.D65,HA=.42,JS=1/HA,Jx=2*Math.PI,jA=[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],K8=[[1.8620678550872327,-1.0112546305316843,.14918677544445175],[.38752654323613717,.6214474419314753,-.008973985167612518],[-.015841498849333856,-.03412293802851557,1.0499644368778496]],J8=[[460,451,288],[460,-891,-261],[460,-220,-6300]],Q8={dark:[.8,.525,.8],dim:[.9,.59,.9],average:[1,.69,1]},Oc={h:[20.14,90,164.25,237.53,380.14],e:[.8,.7,1,1.2,.8],H:[0,100,200,300,400]},eV=180/Math.PI,QS=Math.PI/180;function ZA(e,t){return e.map(s=>{let r=Kn(t*Math.abs(s)*.01,HA);return 400*fv(r,s)/(r+27.13)})}function tV(e,t){let s=100/t*27.13**JS;return e.map(r=>{let a=Math.abs(r);return fv(s*Kn(a/(400-a),JS),r)})}function sV(e){let t=Jn(e);t<=Oc.h[0]&&(t+=360);let s=VA(Oc.h,t)-1,[r,a]=Oc.h.slice(s,s+2),[i,l]=Oc.e.slice(s,s+2),c=Oc.H[s],d=(t-r)/i;return c+100*d/(d+(a-t)/l)}function oV(e){let t=(e%400+400)%400,s=Math.floor(.01*t);t=t%100;let[r,a]=Oc.h.slice(s,s+2),[i,l]=Oc.e.slice(s,s+2);return Jn((t*(l*r-i*a)-100*r*l)/(t*(l-i)-100*l))}function KA(e,t,s,r,a){let i={};i.discounting=a,i.refWhite=e,i.surround=r;let l=e.map(v=>v*100);i.la=t,i.yb=s;let c=l[1],d=So(jA,l);r=Q8[i.surround];let u=r[0];i.c=r[1],i.nc=r[2];let p=(1/(5*i.la+1))**4;i.fl=p*i.la+.1*(1-p)*(1-p)*Math.cbrt(5*i.la),i.flRoot=i.fl**.25,i.n=i.yb/c,i.z=1.48+Math.sqrt(i.n),i.nbb=.725*i.n**-.2,i.ncb=i.nbb;let m=a?1:Math.max(Math.min(u*(1-1/3.6*Math.exp((-i.la-42)/92)),1),0);i.dRgb=d.map(v=>Rm(1,c/v,m)),i.dRgbInv=i.dRgb.map(v=>1/v);let _=ZA(d.map((v,h)=>v*i.dRgb[h]),i.fl);return i.aW=i.nbb*(2*_[0]+_[1]+.05*_[2]),i}var eA=KA(Z8,64/Math.PI*.2,20,"average",!1);function d2(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=Jn(e.h)*QS:s=oV(e.H)*QS;let r=Math.cos(s),a=Math.sin(s),i=0;e.J!==void 0?i=Kn(e.J,1/2)*.1:e.Q!==void 0&&(i=.25*t.c*e.Q/((t.aW+4)*t.flRoot));let l=0;e.C!==void 0?l=e.C/i:e.M!==void 0?l=e.M/t.flRoot/i:e.s!==void 0&&(l=4e-4*e.s**2*(t.aW+4)/t.c);let c=Kn(l*Math.pow(1.64-Math.pow(.29,t.n),-.73),10/9),d=.25*(Math.cos(s+2)+3.8),u=t.aW*Kn(i,2/t.c/t.z),p=5e4/13*t.nc*t.ncb*d,m=u/t.nbb,_=23*(m+.305)*f2(c,23*p+c*(11*r+108*a));return So(K8,tV(So(J8,[m,_*r,_*a]).map(v=>v*1/1403),t.fl).map((v,h)=>v*t.dRgbInv[h])).map(v=>v/100)}function JA(e,t){let s=ZA(So(jA,e.map(y=>y*100)).map((y,x)=>y*t.dRgb[x]),t.fl),r=s[0]+(-12*s[1]+s[2])/11,a=(s[0]+s[1]-2*s[2])/9,i=(Math.atan2(a,r)%Jx+Jx)%Jx,l=.25*(Math.cos(i+2)+3.8),c=Kn(5e4/13*t.nc*t.ncb*f2(l*Math.sqrt(r**2+a**2),s[0]+s[1]+1.05*s[2]+.305),.9)*Math.pow(1.64-Math.pow(.29,t.n),.73),d=Kn(t.nbb*(2*s[0]+s[1]+.05*s[2])/t.aW,.5*t.c*t.z),u=100*Kn(d,2),p=4/t.c*d*(t.aW+4)*t.flRoot,m=c*d,_=m*t.flRoot,v=Jn(i*eV),h=sV(v);return{J:u,C:m,h:v,s:50*Kn(t.c*c/(t.aW+4),1/2),Q:p,M:_,H:h}}var rV=new Pt({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:Sr,fromBase(e){let t=JA(e,eA);return[t.J,t.M,t.h]},toBase(e){return d2({J:e[0],M:e[1],h:e[2]},eA)}}),aV=ea.D65,nV=216/24389,QA=24389/27;function iV(e){return 116*(e>nV?Math.cbrt(e):(QA*e+16)/116)-16}function u2(e){return e>8?Math.pow((e+16)/116,3):e/QA}function lV(e,t){let[s,r,a]=e,i=[],l=0;if(a===0)return[0,0,0];let c=u2(a);a>0?l=.00379058511492914*a**2+.608983189401032*a+.9155088574762233:l=9514440756550361e-21*a**2+.08693057439788597*a-21.928975842194614;let d=2e-12,u=15,p=0,m=1/0;for(;p<=u;){i=d2({J:l,C:r,h:s},t);let _=Math.abs(i[1]-c);if(_<m){if(_<=d)return i;m=_}l=l-(i[1]-c)*l/(2*i[1]),p+=1}return d2({J:l,C:r,h:s},t)}function cV(e,t){let s=iV(e[1]);if(s===0)return[0,0,0];let r=JA(e,g2);return[Jn(r.h),r.C,s]}var g2=KA(aV,200/Math.PI*u2(50),u2(50)*100,"average",!1),Um=new Pt({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:Sr,fromBase(e){return cV(e)},toBase(e){return lV(e,g2)},formats:{color:{id:"--hct",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),dV=Math.PI/180,tA=[1,.007,.0228];function sA(e){e[1]<0&&(e=Um.fromBase(Um.toBase(e)));let t=Math.log(Math.max(1+tA[2]*e[1]*g2.flRoot,1))/tA[2],s=e[0]*dV,r=t*Math.cos(s),a=t*Math.sin(s);return[e[2],r,a]}function uV(e,t){[e,t]=Kt([e,t]);let[s,r,a]=sA(Um.from(e)),[i,l,c]=sA(Um.from(t));return Math.sqrt((s-i)**2+(r-l)**2+(a-c)**2)}var du={deltaE76:$8,deltaECMC:U8,deltaE2000:NA,deltaEJz:V8,deltaEITP:j8,deltaEOK:i2,deltaEHCT:uV};function pV(e){let t=e?Math.floor(Math.log10(Math.abs(e))):0;return Math.max(parseFloat(`1e${t-2}`),1e-6)}var oA={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 Fl(e,{method:t=$a.gamut_mapping,space:s=void 0,deltaEMethod:r="",jnd:a=2,blackWhiteClamp:i={}}={}){if(e=Kt(e),Dm(arguments[1])?s=arguments[1]:s||(s=e.space),s=Pt.get(s),Nc(e,s,{epsilon:0}))return e;let l;if(t==="css")l=mV(e,{space:s});else{if(t!=="clip"&&!Nc(e,s)){Object.prototype.hasOwnProperty.call(oA,t)&&({method:t,jnd:a,deltaEMethod:r,blackWhiteClamp:i}=oA[t]);let c=NA;if(r!==""){for(let u in du)if("deltae"+r.toLowerCase()===u.toLowerCase()){c=du[u];break}}let d=Fl(To(e,s),{method:"clip",space:s});if(c(e,d)>a){if(Object.keys(i).length===3){let g=Pt.resolveCoord(i.channel),w=ka(To(e,g.space),g.id);if(Il(w)&&(w=0),w>=i.max)return To({space:"xyz-d65",coords:ea.D65},e.space);if(w<=i.min)return To({space:"xyz-d65",coords:[0,0,0]},e.space)}let u=Pt.resolveCoord(t),p=u.space,m=u.id,_=To(e,p);_.coords.forEach((g,w)=>{Il(g)&&(_.coords[w]=0)});let v=(u.range||u.refRange)[0],h=pV(a),y=v,x=ka(_,m);for(;x-y>h;){let g=cu(_);g=Fl(g,{space:s,method:"clip"}),c(_,g)-a<h?y=ka(_,m):x=ka(_,m),Li(_,m,(y+x)/2)}l=To(_,s)}else l=d}else l=To(e,s);if(t==="clip"||!Nc(l,s,{epsilon:0})){let c=Object.values(s.coords).map(d=>d.range||[]);l.coords=l.coords.map((d,u)=>{let[p,m]=c[u];return p!==void 0&&(d=Math.max(p,d)),m!==void 0&&(d=Math.min(d,m)),d})}}return s!==e.space&&(l=To(l,e.space)),e.coords=l.coords,e}Fl.returns="color";var rA={WHITE:{space:lu,coords:[1,0,0]},BLACK:{space:lu,coords:[0,0,0]}};function mV(e,{space:t}={}){e=Kt(e),t||(t=e.space),t=Pt.get(t);let a=Pt.get("oklch");if(t.isUnbounded)return To(e,t);let i=To(e,a),l=i.coords[0];if(l>=1){let h=To(rA.WHITE,t);return h.alpha=e.alpha,To(h,t)}if(l<=0){let h=To(rA.BLACK,t);return h.alpha=e.alpha,To(h,t)}if(Nc(i,t,{epsilon:0}))return To(i,t);function c(h){let y=To(h,t),x=Object.values(t.coords);return y.coords=y.coords.map((g,w)=>{if("range"in x[w]){let[f,A]=x[w].range;return BA(f,g,A)}return g}),y}let d=0,u=i.coords[1],p=!0,m=cu(i),_=c(m),v=i2(_,m);if(v<.02)return _;for(;u-d>1e-4;){let h=(d+u)/2;if(m.coords[1]=h,p&&Nc(m,t,{epsilon:0}))d=h;else if(_=c(m),v=i2(_,m),v<.02){if(.02-v<1e-4)break;p=!1,d=h}else u=h}return _}function To(e,t,{inGamut:s}={}){e=Kt(e),t=Pt.get(t);let r=t.from(e),a={space:t,coords:r,alpha:e.alpha};return s&&(a=Fl(a,s===!0?void 0:s)),a}To.returns="color";function km(e,{precision:t=$a.precision,format:s="default",inGamut:r=!0,...a}={}){let i;e=Kt(e);let l=s;s=e.space.getFormat(s)??e.space.getFormat("default")??Pt.DEFAULT_FORMAT;let c=e.coords.slice();if(r||=s.toGamut,r&&!Nc(e)&&(c=Fl(cu(e),r===!0?void 0:r).coords),s.type==="custom")if(a.precision=t,s.serialize)i=s.serialize(c,e.alpha,a);else throw new TypeError(`format ${l} can only be used to parse colors, not for serialization`);else{let d=s.name||"color";s.serializeCoords?c=s.serializeCoords(c,t):t!==null&&(c=c.map(_=>uv(_,{precision:t})));let u=[...c];if(d==="color"){let _=s.id||s.ids?.[0]||e.space.id;u.unshift(_)}let p=e.alpha;t!==null&&(p=uv(p,{precision:t}));let m=e.alpha>=1||s.noAlpha?"":`${s.commas?",":" /"} ${p}`;i=`${d}(${u.join(s.commas?", ":" ")}${m})`}return i}var vv=new ma({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]]}),nv=1.09929682680944,aA=.018053968510807,eE=new ma({id:"rec2020",name:"REC.2020",base:vv,toBase(e){return e.map(function(t){return t<aA*4.5?t/4.5:Math.pow((t+nv-1)/nv,1/.45)})},fromBase(e){return e.map(function(t){return t>=aA?nv*Math.pow(t,.45)-(nv-1):4.5*t})}}),tE=new ma({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]]}),_V=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],ar=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],sE=new ma({id:"srgb-linear",name:"Linear sRGB",white:"D65",toXYZ_M:_V,fromXYZ_M:ar}),nA={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]},iA=Array(3).fill("<percentage> | <number>[0, 255]"),lA=Array(3).fill("<number>[0, 255]"),uu=new ma({id:"srgb",name:"sRGB",base:sE,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:iA},rgb_number:{name:"rgb",commas:!0,coords:lA,noAlpha:!0},color:{},rgba:{coords:iA,commas:!0,lastAlpha:!0},rgba_number:{name:"rgba",commas:!0,coords:lA},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(a=>Math.round(a*255));let r=s&&e.every(a=>a%17===0);return"#"+e.map(a=>r?(a/17).toString(16):a.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=nA.black,t.alpha=0):t.coords=nA[e],t.coords)return t}}}}),oE=new ma({id:"p3",cssId:"display-p3",name:"P3",base:tE,fromBase:uu.fromBase,toBase:uu.toBase});$a.display_space=uu;var fV;if(typeof CSS<"u"&&CSS.supports)for(let e of[Ra,eE,oE]){let t=km({space:e,coords:e.getMinCoords(),alpha:1});if(CSS.supports("color",t)){$a.display_space=e;break}}function vV(e,{space:t=$a.display_space,...s}={}){let r=km(e,s);if(typeof CSS>"u"||CSS.supports("color",r)||!$a.display_space)r=new String(r),r.color=e;else{let a=e;if((e.coords.some(Il)||Il(e.alpha))&&!(fV??=CSS.supports("color","hsl(none 50% 50%)"))&&(a=cu(e),a.coords=a.coords.map(Ko),a.alpha=Ko(a.alpha),r=km(a,s),CSS.supports("color",r)))return r=new String(r),r.color=a,r;a=To(a,t),r=new String(km(a,s)),r.color=a}return r}function hV(e,t){return e=Kt(e),t=Kt(t),e.space===t.space&&e.alpha===t.alpha&&e.coords.every((s,r)=>s===t.coords[r])}function Bl(e){return ka(e,[Sr,"y"])}function rE(e,t){Li(e,[Sr,"y"],t)}function yV(e){Object.defineProperty(e.prototype,"luminance",{get(){return Bl(this)},set(t){rE(this,t)}})}var gV=Object.freeze({__proto__:null,getLuminance:Bl,register:yV,setLuminance:rE});function xV(e,t){e=Kt(e),t=Kt(t);let s=Math.max(Bl(e),0),r=Math.max(Bl(t),0);return r>s&&([s,r]=[r,s]),(s+.05)/(r+.05)}var bV=.56,wV=.57,TV=.62,SV=.65,cA=.022,AV=1.414,EV=.1,MV=5e-4,CV=1.14,dA=.027,PV=1.14;function uA(e){return e>=cA?e:e+(cA-e)**AV}function au(e){let t=e<0?-1:1,s=Math.abs(e);return t*Math.pow(s,2.4)}function kV(e,t){t=Kt(t),e=Kt(e);let s,r,a,i,l,c;t=To(t,"srgb"),[i,l,c]=t.coords;let d=au(i)*.2126729+au(l)*.7151522+au(c)*.072175;e=To(e,"srgb"),[i,l,c]=e.coords;let u=au(i)*.2126729+au(l)*.7151522+au(c)*.072175,p=uA(d),m=uA(u),_=m>p;return Math.abs(m-p)<MV?r=0:_?(s=m**bV-p**wV,r=s*CV):(s=m**SV-p**TV,r=s*PV),Math.abs(r)<EV?a=0:r>0?a=r-dA:a=r+dA,a*100}function RV(e,t){e=Kt(e),t=Kt(t);let s=Math.max(Bl(e),0),r=Math.max(Bl(t),0);r>s&&([s,r]=[r,s]);let a=s+r;return a===0?0:(s-r)/a}var $V=5e4;function UV(e,t){e=Kt(e),t=Kt(t);let s=Math.max(Bl(e),0),r=Math.max(Bl(t),0);return r>s&&([s,r]=[r,s]),r===0?$V:(s-r)/r}function DV(e,t){e=Kt(e),t=Kt(t);let s=ka(e,[Ra,"l"]),r=ka(t,[Ra,"l"]);return Math.abs(s-r)}var zV=216/24389,pA=24/116,iv=24389/27,Qx=ea.D65,p2=new Pt({id:"lab-d65",name:"Lab D65",coords:{l:{refRange:[0,100],name:"Lightness"},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:Qx,base:Sr,fromBase(e){let t=e.map((s,r)=>s/Qx[r]).map(s=>s>zV?Math.cbrt(s):(iv*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]>pA?Math.pow(t[0],3):(116*t[0]-16)/iv,e[0]>8?Math.pow((e[0]+16)/116,3):e[0]/iv,t[2]>pA?Math.pow(t[2],3):(116*t[2]-16)/iv].map((s,r)=>s*Qx[r])},formats:{"lab-d65":{coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),e2=Math.pow(5,.5)*.5+.5;function IV(e,t){e=Kt(e),t=Kt(t);let s=ka(e,[p2,"l"]),r=ka(t,[p2,"l"]),a=Math.abs(Math.pow(s,e2)-Math.pow(r,e2)),i=Math.pow(a,1/e2)*Math.SQRT2-40;return i<7.5?0:i}var dv=Object.freeze({__proto__:null,contrastAPCA:kV,contrastDeltaPhi:IV,contrastLstar:DV,contrastMichelson:RV,contrastWCAG21:xV,contrastWeber:UV});function LV(e,t,s={}){Dm(s)&&(s={algorithm:s});let{algorithm:r,...a}=s;if(!r){let i=Object.keys(dv).map(l=>l.replace(/^contrast/,"")).join(", ");throw new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${i}`)}e=Kt(e),t=Kt(t);for(let i in dv)if("contrast"+r.toLowerCase()===i.toLowerCase())return dv[i](e,t,a);throw new TypeError(`Unknown contrast algorithm: ${r}`)}function hv(e){let[t,s,r]=zm(e,Sr),a=t+15*s+3*r;return[4*t/a,9*s/a]}function aE(e){let[t,s,r]=zm(e,Sr),a=t+s+r;return[t/a,s/a]}function FV(e){Object.defineProperty(e.prototype,"uv",{get(){return hv(this)}}),Object.defineProperty(e.prototype,"xy",{get(){return aE(this)}})}var BV=Object.freeze({__proto__:null,register:FV,uv:hv,xy:aE});function Pm(e,t,s={}){Dm(s)&&(s={method:s});let{method:r=$a.deltaE,...a}=s;for(let i in du)if("deltae"+r.toLowerCase()===i.toLowerCase())return du[i](e,t,a);throw new TypeError(`Unknown deltaE method: ${r}`)}function VV(e,t=.25){return Li(e,[Pt.get("oklch","lch"),"l"],s=>s*(1+t))}function OV(e,t=.25){return Li(e,[Pt.get("oklch","lch"),"l"],s=>s*(1-t))}var NV=Object.freeze({__proto__:null,darken:OV,lighten:VV});function nE(e,t,s=.5,r={}){return[e,t]=[Kt(e),Kt(t)],zl(s)==="object"&&([s,r]=[.5,s]),Im(e,t,r)(s)}function iE(e,t,s={}){let r;x2(e)&&([r,s]=[e,t],[e,t]=r.rangeArgs.colors);let{maxDeltaE:a,deltaEMethod:i,steps:l=2,maxSteps:c=1e3,...d}=s;r||([e,t]=[Kt(e),Kt(t)],r=Im(e,t,d));let u=Pm(e,t),p=a>0?Math.max(l,Math.ceil(u/a)+1):l,m=[];if(c!==void 0&&(p=Math.min(p,c)),p===1)m=[{p:.5,color:r(.5)}];else{let _=1/(p-1);m=Array.from({length:p},(v,h)=>{let y=h*_;return{p:y,color:r(y)}})}if(a>0){let _=m.reduce((v,h,y)=>{if(y===0)return 0;let x=Pm(h.color,m[y-1].color,i);return Math.max(v,x)},0);for(;_>a;){_=0;for(let v=1;v<m.length&&m.length<c;v++){let h=m[v-1],y=m[v],x=(y.p+h.p)/2,g=r(x);_=Math.max(_,Pm(g,h.color),Pm(g,y.color)),m.splice(v,0,{p:x,color:r(x)}),v++}}}return m=m.map(_=>_.color),m}function Im(e,t,s={}){if(x2(e)){let[d,u]=[e,t];return Im(...d.rangeArgs.colors,{...d.rangeArgs.options,...u})}let{space:r,outputSpace:a,progression:i,premultiplied:l}=s;e=Kt(e),t=Kt(t),e=cu(e),t=cu(t);let c={colors:[e,t],options:s};if(r?r=Pt.get(r):r=Pt.registry[$a.interpolationSpace]||e.space,a=a?Pt.get(a):r,e=To(e,r),t=To(t,r),e=Fl(e),t=Fl(t),r.coords.h&&r.coords.h.type==="angle"){let d=s.hue=s.hue||"shorter",u=[r,"h"],[p,m]=[ka(e,u),ka(t,u)];isNaN(p)&&!isNaN(m)?p=m:isNaN(m)&&!isNaN(p)&&(m=p),[p,m]=E8(d,[p,m]),Li(e,u,p),Li(t,u,m)}return l&&(e.coords=e.coords.map(d=>d*e.alpha),t.coords=t.coords.map(d=>d*t.alpha)),Object.assign(d=>{d=i?i(d):d;let u=e.coords.map((_,v)=>{let h=t.coords[v];return Rm(_,h,d)}),p=Rm(e.alpha,t.alpha,d),m={space:r,coords:u,alpha:p};return l&&(m.coords=m.coords.map(_=>_/p)),a!==r&&(m=To(m,a)),m},{rangeArgs:c})}function x2(e){return zl(e)==="function"&&!!e.rangeArgs}$a.interpolationSpace="lab";function YV(e){e.defineFunction("mix",nE,{returns:"color"}),e.defineFunction("range",Im,{returns:"function<color>"}),e.defineFunction("steps",iE,{returns:"array<color>"})}var GV=Object.freeze({__proto__:null,isRange:x2,mix:nE,range:Im,register:YV,steps:iE}),lE=new Pt({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:uu,fromBase:e=>{let t=Math.max(...e),s=Math.min(...e),[r,a,i]=e,[l,c,d]=[NaN,0,(s+t)/2],u=t-s;if(u!==0){switch(c=d===0||d===1?0:(t-d)/Math.min(d,1-d),t){case r:l=(a-i)/u+(a<i?6:0);break;case a:l=(i-r)/u+2;break;case i:l=(r-a)/u+4}l=l*60}return c<0&&(l+=180,c=Math.abs(c)),l>=360&&(l-=360),[l,c*100,d*100]},toBase:e=>{let[t,s,r]=e;t=t%360,t<0&&(t+=360),s/=100,r/=100;function a(i){let l=(i+t/30)%12,c=s*Math.min(r,1-r);return r-c*Math.max(-1,Math.min(l-3,9-l,1))}return[a(0),a(8),a(4)]},formats:{hsl:{coords:["<number> | <angle>","<percentage>","<percentage>"]},hsla:{coords:["<number> | <angle>","<percentage>","<percentage>"],commas:!0,lastAlpha:!0}}}),cE=new Pt({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:lE,fromBase(e){let[t,s,r]=e;s/=100,r/=100;let a=r+s*Math.min(r,1-r);return[t,a===0?0:200*(1-r/a),100*a]},toBase(e){let[t,s,r]=e;s/=100,r/=100;let a=r*(1-s/2);return[t,a===0||a===1?0:(r-a)/Math.min(a,1-a)*100,a*100]},formats:{color:{id:"--hsv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),WV=new Pt({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:cE,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 a=s+r;if(a>=1)return[t,0,s/a*100];let i=1-r;return[t,(i===0?0:1-s/i)*100,i*100]},formats:{hwb:{coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),dE=new ma({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]]}),XV=new ma({id:"a98rgb",cssId:"a98-rgb",name:"Adobe\xAE 98 RGB compatible",base:dE,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))}),uE=new ma({id:"prophoto-linear",cssId:"--prophoto-rgb-linear",name:"Linear ProPhoto",white:"D50",base:h2,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]]}),qV=1/512,HV=16/512,jV=new ma({id:"prophoto",cssId:"prophoto-rgb",name:"ProPhoto",base:uE,toBase(e){return e.map(t=>t<HV?t/16:t**1.8)},fromBase(e){return e.map(t=>t>=qV?t**(1/1.8):16*t)}}),ZV=new Pt({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:lu,fromBase(e){let[t,s,r]=e,a,i=2e-4;return Math.abs(s)<i&&Math.abs(r)<i?a=NaN:a=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),Jn(a)]},toBase(e){let[t,s,r]=e,a,i;return isNaN(r)?(a=0,i=0):(a=s*Math.cos(r*Math.PI/180),i=s*Math.sin(r*Math.PI/180)),[t,a,i]},formats:{oklch:{coords:["<percentage> | <number>","<number> | <percentage>[0,1]","<number> | <angle>"]}}}),pE=ea.D65,KV=216/24389,mA=24389/27,[_A,fA]=hv({space:Sr,coords:pE}),mE=new Pt({id:"luv",name:"Luv",coords:{l:{refRange:[0,100],name:"Lightness"},u:{refRange:[-215,215]},v:{refRange:[-215,215]}},white:pE,base:Sr,fromBase(e){let t=[Ko(e[0]),Ko(e[1]),Ko(e[2])],s=t[1],[r,a]=hv({space:Sr,coords:t});if(!Number.isFinite(r)||!Number.isFinite(a))return[0,0,0];let i=s<=KV?mA*s:116*Math.cbrt(s)-16;return[i,13*i*(r-_A),13*i*(a-fA)]},toBase(e){let[t,s,r]=e;if(t===0||Il(t))return[0,0,0];s=Ko(s),r=Ko(r);let a=s/(13*t)+_A,i=r/(13*t)+fA,l=t<=8?t/mA:Math.pow((t+16)/116,3);return[l*(9*a/(4*i)),l,l*((12-3*a-20*i)/(4*i))]},formats:{color:{id:"--luv",coords:["<number> | <percentage>","<number> | <percentage>[-1,1]","<number> | <percentage>[-1,1]"]}}}),b2=new Pt({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:mE,fromBase(e){let[t,s,r]=e,a,i=.02;return Math.abs(s)<i&&Math.abs(r)<i?a=NaN:a=Math.atan2(r,s)*180/Math.PI,[t,Math.sqrt(s**2+r**2),Jn(a)]},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>"]}}}),JV=216/24389,QV=24389/27,vA=ar[0][0],hA=ar[0][1],t2=ar[0][2],yA=ar[1][0],gA=ar[1][1],s2=ar[1][2],xA=ar[2][0],bA=ar[2][1],o2=ar[2][2];function nu(e,t,s){let r=t/(Math.sin(s)-e*Math.cos(s));return r<0?1/0:r}function _v(e){let t=Math.pow(e+16,3)/1560896,s=t>JV?t:e/QV,r=s*(284517*vA-94839*t2),a=s*(838422*t2+769860*hA+731718*vA),i=s*(632260*t2-126452*hA),l=s*(284517*yA-94839*s2),c=s*(838422*s2+769860*gA+731718*yA),d=s*(632260*s2-126452*gA),u=s*(284517*xA-94839*o2),p=s*(838422*o2+769860*bA+731718*xA),m=s*(632260*o2-126452*bA);return{r0s:r/i,r0i:a*e/i,r1s:r/(i+126452),r1i:(a-769860)*e/(i+126452),g0s:l/d,g0i:c*e/d,g1s:l/(d+126452),g1i:(c-769860)*e/(d+126452),b0s:u/m,b0i:p*e/m,b1s:u/(m+126452),b1i:(p-769860)*e/(m+126452)}}function wA(e,t){let s=t/360*Math.PI*2,r=nu(e.r0s,e.r0i,s),a=nu(e.r1s,e.r1i,s),i=nu(e.g0s,e.g0i,s),l=nu(e.g1s,e.g1i,s),c=nu(e.b0s,e.b0i,s),d=nu(e.b1s,e.b1i,s);return Math.min(r,a,i,l,c,d)}var eO=new Pt({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:b2,gamutSpace:uu,fromBase(e){let[t,s,r]=[Ko(e[0]),Ko(e[1]),Ko(e[2])],a;return t>99.9999999?(a=0,t=100):t<1e-8?(a=0,t=0):a=s/wA(_v(t),r)*100,[r,a,t]},toBase(e){let[t,s,r]=[Ko(e[0]),Ko(e[1]),Ko(e[2])],a;return r>99.9999999?(r=100,a=0):r<1e-8?(r=0,a=0):a=wA(_v(r),t)/100*s,[r,a,t]},formats:{color:{id:"--hsluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}});ar[0][0];ar[0][1];ar[0][2];ar[1][0];ar[1][1];ar[1][2];ar[2][0];ar[2][1];ar[2][2];function iu(e,t){return Math.abs(t)/Math.sqrt(Math.pow(e,2)+1)}function TA(e){let t=iu(e.r0s,e.r0i),s=iu(e.r1s,e.r1i),r=iu(e.g0s,e.g0i),a=iu(e.g1s,e.g1i),i=iu(e.b0s,e.b0i),l=iu(e.b1s,e.b1i);return Math.min(t,s,r,a,i,l)}var tO=new Pt({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:b2,gamutSpace:"self",fromBase(e){let[t,s,r]=[Ko(e[0]),Ko(e[1]),Ko(e[2])],a;return t>99.9999999?(a=0,t=100):t<1e-8?(a=0,t=0):a=s/TA(_v(t))*100,[r,a,t]},toBase(e){let[t,s,r]=[Ko(e[0]),Ko(e[1]),Ko(e[2])],a;return r>99.9999999?(r=100,a=0):r<1e-8?(r=0,a=0):a=TA(_v(r))/100*s,[r,a,t]},formats:{color:{id:"--hpluv",coords:["<number> | <angle>","<percentage> | <number>","<percentage> | <number>"]}}}),SA=203,AA=2610/2**14,sO=2**14/2610,oO=2523/2**5,EA=2**5/2523,MA=3424/2**12,CA=2413/2**7,PA=2392/2**7,rO=new ma({id:"rec2100pq",cssId:"rec2100-pq",name:"REC.2100-PQ",base:vv,toBase(e){return e.map(function(t){return(Math.max(t**EA-MA,0)/(CA-PA*t**EA))**sO*1e4/SA})},fromBase(e){return e.map(function(t){let s=Math.max(t*SA/1e4,0);return((MA+CA*s**AA)/(1+PA*s**AA))**oO})}}),kA=.17883277,RA=.28466892,$A=.55991073,r2=3.7743,aO=new ma({id:"rec2100hlg",cssId:"rec2100-hlg",name:"REC.2100-HLG",referred:"scene",base:vv,toBase(e){return e.map(function(t){return t<=.5?t**2/3*r2:(Math.exp((t-$A)/kA)+RA)/12*r2})},fromBase(e){return e.map(function(t){return t/=r2,t<=1/12?Math.sqrt(3*t):kA*Math.log(12*t-RA)+$A})}}),_E={};Ll.add("chromatic-adaptation-start",e=>{e.options.method&&(e.M=fE(e.W1,e.W2,e.options.method))});Ll.add("chromatic-adaptation-end",e=>{e.M||(e.M=fE(e.W1,e.W2,e.options.method))});function yv({id:e,toCone_M:t,fromCone_M:s}){_E[e]=arguments[0]}function fE(e,t,s="Bradford"){let r=_E[s],[a,i,l]=So(r.toCone_M,e),[c,d,u]=So(r.toCone_M,t),p=So([[c/a,0,0],[0,d/i,0],[0,0,u/l]],r.toCone_M);return So(r.fromCone_M,p)}yv({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]]});yv({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]]});yv({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]]});yv({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(ea,{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]});ea.ACES=[.32168/.33767,1,.34065/.33767];var vE=new ma({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:ea.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]]}),lv=2**-16,a2=-.35828683,cv=(Math.log2(65504)+9.72)/17.52,nO=new ma({id:"acescc",cssId:"--acescc",name:"ACEScc",coords:{r:{range:[a2,cv],name:"Red"},g:{range:[a2,cv],name:"Green"},b:{range:[a2,cv],name:"Blue"}},referred:"scene",base:vE,toBase(e){let t=-.3013698630136986;return e.map(function(s){return s<=t?(2**(s*17.52-9.72)-lv)*2:s<cv?2**(s*17.52-9.72):65504})},fromBase(e){return e.map(function(t){return t<=0?(Math.log2(lv)+9.72)/17.52:t<lv?(Math.log2(lv+t*.5)+9.72)/17.52:(Math.log2(t)+9.72)/17.52})}}),UA=Object.freeze({__proto__:null,A98RGB:XV,A98RGB_Linear:dE,ACEScc:nO,ACEScg:vE,CAM16_JMh:rV,HCT:Um,HPLuv:tO,HSL:lE,HSLuv:eO,HSV:cE,HWB:WV,ICTCP:c2,JzCzHz:l2,Jzazbz:GA,LCH:$m,LCHuv:b2,Lab:Ra,Lab_D65:p2,Luv:mE,OKLCH:ZV,OKLab:lu,P3:oE,P3_Linear:tE,ProPhoto:jV,ProPhoto_Linear:uE,REC_2020:eE,REC_2020_Linear:vv,REC_2100_HLG:aO,REC_2100_PQ:rO,XYZ_ABS_D65:y2,XYZ_D50:h2,XYZ_D65:Sr,sRGB:uu,sRGB_Linear:sE}),ta=class pa{constructor(...t){let s;t.length===1&&(s=Kt(t[0]));let r,a,i;s?(r=s.space||s.spaceId,a=s.coords,i=s.alpha):[r,a,i]=t,Object.defineProperty(this,"space",{value:Pt.get(r),writable:!1,enumerable:!0,configurable:!0}),this.coords=a?a.slice():[0,0,0],this.alpha=i>1||i===void 0?1:i<0?0:i;for(let l=0;l<this.coords.length;l++)this.coords[l]==="NaN"&&(this.coords[l]=NaN);for(let l in this.space.coords)Object.defineProperty(this,l,{get:()=>this.get(l),set:c=>this.set(l,c)})}get spaceId(){return this.space.id}clone(){return new pa(this.space,this.coords,this.alpha)}toJSON(){return{spaceId:this.spaceId,coords:this.coords,alpha:this.alpha}}display(...t){let s=vV(this,...t);return s.color=new pa(s.color),s}static get(t,...s){return t instanceof pa?t:new pa(t,...s)}static defineFunction(t,s,r=s){let{instance:a=!0,returns:i}=r,l=function(...c){let d=s(...c);if(i==="color")d=pa.get(d);else if(i==="function<color>"){let u=d;d=function(...p){let m=u(...p);return pa.get(m)},Object.assign(d,u)}else i==="array<color>"&&(d=d.map(u=>pa.get(u)));return d};t in pa||(pa[t]=l),a&&(pa.prototype[t]=function(...c){return l(this,...c)})}static defineFunctions(t){for(let s in t)pa.defineFunction(s,t[s],t[s])}static extend(t){if(t.register)t.register(pa);else for(let s in t)pa.defineFunction(s,t[s])}};ta.defineFunctions({get:ka,getAll:zm,set:Li,setAll:v2,to:To,equals:hV,inGamut:Nc,toGamut:Fl,distance:YA,toString:km});Object.assign(ta,{util:x8,hooks:Ll,WHITES:ea,Space:Pt,spaces:Pt.registry,parse:OA,defaults:$a});for(let e of Object.keys(UA))Pt.register(UA[e]);for(let e in Pt.registry)m2(e,Pt.registry[e]);Ll.add("colorspace-init-end",e=>{m2(e.id,e),e.aliases?.forEach(t=>{m2(t,e)})});function m2(e,t){let s=e.replace(/-/g,"_");Object.defineProperty(ta.prototype,s,{get(){let r=this.getAll(e);return typeof Proxy>"u"?r:new Proxy(r,{has:(a,i)=>{try{return Pt.resolveCoord([t,i]),!0}catch{}return Reflect.has(a,i)},get:(a,i,l)=>{if(i&&typeof i!="symbol"&&!(i in a)){let{index:c}=Pt.resolveCoord([t,i]);if(c>=0)return a[c]}return Reflect.get(a,i,l)},set:(a,i,l,c)=>{if(i&&typeof i!="symbol"&&!(i in a)||i>=0){let{index:d}=Pt.resolveCoord([t,i]);if(d>=0)return a[d]=l,this.setAll(e,a),!0}return Reflect.set(a,i,l,c)}})},set(r){this.setAll(e,r)},configurable:!0,enumerable:!0})}ta.extend(du);ta.extend({deltaE:Pm});Object.assign(ta,{deltaEMethods:du});ta.extend(NV);ta.extend({contrast:LV});ta.extend(BV);ta.extend(gV);ta.extend(GV);ta.extend(dv);var hE="p3-linear",yE=e=>{hE=e},Wo=e=>e?1:-1;function iO(e){try{let t=new ta(e),s=hE==="srgb"?"srgb-linear":"p3-linear",r=t.to(s).coords;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(t.alpha)?t.alpha:0}}catch{return{r:0,g:0,b:0,a:0}}}var O=e=>iO(e),we=e=>{let t=.5,s=.5,r=(i,l=!1)=>{if(typeof i=="number")return i;if(typeof i=="object"&&i!==null)return i.value;let c=i.toLowerCase().trim();if(l){if(c==="top")return 0;if(c==="bottom")return 1;if(c==="center")return .5}else{if(c==="left")return 0;if(c==="right")return 1;if(c==="center")return .5}return console.warn(`Invalid position value: ${i}. Defaulting to center.`),.5};if(typeof e=="string"){let i=e.toLowerCase().trim().split(/\s+/);i.includes("left")?t=0:i.includes("right")?t=1:(i.includes("center")||i.length===1&&(i[0]==="top"||i[0]==="bottom"))&&(t=.5),i.includes("top")?s=0:i.includes("bottom")?s=1:(i.includes("center")||i.length===1&&(i[0]==="left"||i[0]==="right"))&&(s=.5),i.length===1&&i[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 a=1-s;return{x:t,y:a}},Jt=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,a="deg"]=s,i=parseFloat(r);switch(a){case"deg":return(i%360+360)%360;case"rad":return(i*180/Math.PI%360+360)%360;case"turn":return(i*360%360+360)%360;default:return(i%360+360)%360}}return console.warn(`Invalid angle value: ${e}. Defaulting to 0 degrees.`),0}},Ot=e=>{let t={stretch:0,transparent:1,mirror:2,wrap:3}[e.toLowerCase()];return t===void 0?(console.warn(`Invalid edge mode: ${e}. Defaulting to 'stretch'.`),0):t},Bs=e=>({outside:0,center:1,inside:2})[e?.toLowerCase()]??1,ze=[{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"}],Ue=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 Fi=512,pu={},w2=new Set,T2={};function lO(e,t){return e?e in pu?pu[e]:(t&&(T2[e]??=[]).push(t),w2.has(e)||(w2.add(e),cO(e)),null):null}async function cO(e){try{let t=await fetch(e,{mode:"cors"});if(!t.ok){pu[e]=null;return}let s=await t.arrayBuffer(),r=Fi*Fi;if(s.byteLength!==r*2&&s.byteLength!==r*4){pu[e]=null;return}let a=s.byteLength===r*2?(()=>{let u=new Uint16Array(s);return p=>u[p]/32767.5-1})():(()=>{let u=new Float32Array(s);return p=>u[p]})(),i=Fi,l=Fi,c=-1,d=-1;for(let u=0;u<Fi;u++){let p=u*Fi;for(let m=0;m<Fi;m++)a(p+m)<0&&(m<i&&(i=m),m>c&&(c=m),u<l&&(l=u),u>d&&(d=u))}pu[e]=c<0?null:{hwf:(c-i+1)/Fi/2,hhf:(d-l+1)/Fi/2}}catch{pu[e]=null}finally{w2.delete(e);let t=T2[e];if(t){delete T2[e];for(let s of t)s()}}}var dO=["sphere3D","cube3D","torus3D","octahedron3D","cylinder3D","capsule3D","cone3D","pyramid3D","prism3D","ellipsoid3D","diamond3D","link3D","gem3D","helix3D","metaballs3D","dodecahedron3D","hemisphere3D","ribbon3D","blob3D","gyroscope3D"];function uO(e){return dO.includes(e)}function pO(e){return e==="svgExtrude3D"}var mO={depth:.12,bevel:.02,rotX:15,rotY:30,rotZ:0};function xE(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 _O={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:{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 fO(e){let t=_O[e.type]??{},s=(r,a=.3)=>xE(e[r],t[r]??a);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 gs={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,a=e.center?.x??.5,i=e.center?.y??.5,{hwf:l,hhf:c}=gE(e),d=r*s;return{centerXPx:a*t,centerYPx:i*s,widthPx:2*l*d,heightPx:2*c*d,rotationDeg:e.rotation??0}},writeBounds(e,t,s,r){let a={...t.center??{x:.5,y:.5},x:e.centerXPx/s,y:e.centerYPx/r},i=t.scale??1,l=vO(t)?S2(t.shape):null;if(l&&i>0)return{center:a,rotation:e.rotationDeg,shape:JSON.stringify({...l,radius:Math.max(.001,e.widthPx/(2*i*r)),height:Math.max(.001,e.heightPx/(2*i*r))})};let{hwf:c}=gE(t);return{center:a,scale:c>0?Math.max(.01,e.widthPx/(2*c*r)):.01,rotation:e.rotationDeg}}};function S2(e){try{return typeof e=="string"?JSON.parse(e):e}catch{return null}}function vO(e){if(e.shapeSdfUrl)return!1;let t=S2(e.shape)?.type;return t==="roundedRectSDF"||t==="ellipseSDF"}function gE(e){if(e.shapeSdfUrl){let r=e._shapeBounds??lO(e.shapeSdfUrl),a=r&&typeof r.hwf=="number"&&typeof r.hhf=="number"?{hwf:r.hwf,hhf:r.hhf}:{hwf:.5,hhf:.5},i=e.shapeType;if(typeof i=="string"&&pO(i)){let l=S2(e.shape)??{},c=u=>xE(l[u],mO[u]??0),d=Math.hypot(a.hwf,a.hhf,c("depth")*.5)+c("bevel")+.02;return{hwf:d,hhf:d}}return a}let t=null;try{t=typeof e.shape=="string"?JSON.parse(e.shape):e.shape}catch{}if(!t||typeof t!="object")return{hwf:.5,hhf:.5};if(typeof t.type=="string"&&uO(t.type)){let r=fO(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,a=typeof t.topWidth=="number"?t.topWidth:.2,i=typeof t.height=="number"?t.height:.25;return{hwf:Math.max(r,a),hhf:i}}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,a=typeof t.height=="number"?t.height:.22,i=typeof t.skew=="number"?t.skew:0;return{hwf:r+Math.abs(i),hhf:a}}default:return{hwf:s,hhf:s}}}var hO=wr({applyNeonEffect:()=>yO,neonComposite:()=>TE,neonFlicker:()=>P2,neonFlow:()=>k2,neonGlow:()=>C2,neonSmoothEPS:()=>wE}),bE=.017453292519943295,E2=.7,mu=1/Math.sqrt(1+E2*E2),M2=E2*mu,xv=M2+1,gv=1/Math.sqrt(mu*mu+xv*xv),wE=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.max(t,.006),i=__tsover_add(.008,__tsover_mul(s,.03));return n.select(i,a,r>.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"tubeThickness"},{type:"i",name:"cornerSmoothing"},{type:"i",name:"volumetric"}],body:[0,[[13,"vol",[6,[7,"std","max"],["tubeThickness",[5,"0.006"]]]],[13,"flat",[1,[5,"0.008"],"+",[1,"cornerSmoothing","*",[5,"0.03"]]]],[10,[6,[7,"std","select"],["flat","vol",[1,"volumetric",">",[5,"0.5"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),C2=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.max(s,.001),i=n.max(t,0),l=__tsover_mul(n.exp(__tsover_mul(__tsover_mul(i,-1),__tsover_div(12,a))),.7),c=__tsover_mul(n.exp(__tsover_mul(__tsover_mul(i,-1),__tsover_div(4,a))),.35),d=__tsover_mul(__tsover_add(l,c),r),u=n.smoothstep(-.003,.003,t);return __tsover_mul(d,u)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sdf"},{type:"i",name:"glowRadius"},{type:"i",name:"glowIntensity"}],body:[0,[[13,"glowR",[6,[7,"std","max"],["glowRadius",[5,"0.001"]]]],[13,"sdfOutside",[6,[7,"std","max"],["sdf",[5,"0"]]]],[13,"innerGlow",[1,[6,[7,"std","exp"],[[1,[1,"sdfOutside","*",[4,"-",[5,"1"]]],"*",[1,[5,"12"],"/","glowR"]]]],"*",[5,"0.7"]]],[13,"outerGlow",[1,[6,[7,"std","exp"],[[1,[1,"sdfOutside","*",[4,"-",[5,"1"]]],"*",[1,[5,"4"],"/","glowR"]]]],"*",[5,"0.35"]]],[13,"totalGlow",[1,[1,"innerGlow","+","outerGlow"],"*","glowIntensity"]],[13,"outsideFactor",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.003"]],[5,"0.003"],"sdf"]]],[10,[1,"totalGlow","*","outsideFactor"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),P2=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(t,s),i=n.sin(__tsover_mul(a,17.13)),l=n.sin(__tsover_mul(a,31.71)),c=n.sin(__tsover_mul(a,47.29)),d=__tsover_add(__tsover_add(i,__tsover_mul(l,.5)),__tsover_mul(c,.3)),u=n.mix(-2,.8,r);return n.smoothstep(__tsover_sub(u,.1),__tsover_add(u,.1),d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"time"},{type:"i",name:"flickerSpeed"},{type:"i",name:"flickerAmount"}],body:[0,[[13,"flickerTime",[1,"time","*","flickerSpeed"]],[13,"f1",[6,[7,"std","sin"],[[1,"flickerTime","*",[5,"17.13"]]]]],[13,"f2",[6,[7,"std","sin"],[[1,"flickerTime","*",[5,"31.71"]]]]],[13,"f3",[6,[7,"std","sin"],[[1,"flickerTime","*",[5,"47.29"]]]]],[13,"combined",[1,[1,"f1","+",[1,"f2","*",[5,"0.5"]]],"+",[1,"f3","*",[5,"0.3"]]]],[13,"threshold",[6,[7,"std","mix"],[[4,"-",[5,"2"]],[5,"0.8"],"flickerAmount"]]],[10,[6,[7,"std","smoothstep"],[[1,"threshold","-",[5,"0.1"]],[1,"threshold","+",[5,"0.1"]],"combined"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),k2=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_sub(t.x,.5),l=__tsover_sub(t.y,.5),c=n.atan2(l,i),d=__tsover_add(__tsover_mul(c,2),__tsover_mul(s,r)),u=__tsover_add(__tsover_mul(n.sin(d),.5),.5);return n.mix(1,u,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sdfUV"},{type:"i",name:"time"},{type:"i",name:"flowSpeed"},{type:"i",name:"flowAmount"}],body:[0,[[13,"flowDx",[1,[7,"sdfUV","x"],"-",[5,"0.5"]]],[13,"flowDy",[1,[7,"sdfUV","y"],"-",[5,"0.5"]]],[13,"flowAngle",[6,[7,"std","atan2"],["flowDy","flowDx"]]],[13,"flowPhase",[1,[1,"flowAngle","*",[5,"2"]],"+",[1,"time","*","flowSpeed"]]],[13,"flowWave",[1,[1,[6,[7,"std","sin"],["flowPhase"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[10,[6,[7,"std","mix"],[[5,"1"],"flowWave","flowAmount"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),TE=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.f32,o.vec2f,o.f32,o.vec2f,o.f32,o.f32,o.f32,o.vec3f,o.vec3f,o.f32,o.vec3f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v,h,y,x,g,w,f,A,E,P,C,$,U,k,R,D)=>{"use gpu";let M=t.x,z=s.x,L=r.x,B=a.x,N=i.x,G=__tsover_div(1,u.y),I=n.max(A,.001),X=n.max(__tsover_div(G,d),.004),F=__tsover_div(__tsover_sub(z,L),__tsover_mul(l,2)),Q=__tsover_div(__tsover_sub(B,N),__tsover_mul(l,2)),ae=__tsover_div(__tsover_add(__tsover_add(__tsover_add(__tsover_add(M,z),L),B),N),5),j=n.mix(M,ae,m),q=n.select(F,__tsover_sub(s.w,r.w),D>.5),te=n.select(Q,__tsover_sub(a.w,i.w),D>.5),ne=n.max(n.sqrt(__tsover_add(__tsover_mul(q,q),__tsover_mul(te,te))),1e-4),oe=__tsover_div(q,ne),pe=__tsover_div(te,ne),_e=n.clamp(__tsover_div(__tsover_mul(j,-1),n.max(_,.001)),0,1),ge=n.smoothstep(__tsover_add(_,X),__tsover_sub(_,X),__tsover_mul(j,-1)),Me=__tsover_add(n.abs(__tsover_sub(__tsover_add(s.w,r.w),__tsover_mul(t.w,2))),n.abs(__tsover_sub(__tsover_add(a.w,i.w),__tsover_mul(t.w,2)))),Se=__tsover_add(n.abs(q),n.abs(te)),Ae=__tsover_div(Me,__tsover_add(__tsover_add(Me,__tsover_mul(l,.6)),__tsover_mul(Se,.35))),Pe=n.smoothstep(.08,.35,Ae),De=n.select(_e,Ae,D>.5),ke=n.select(ge,Pe,D>.5),Ge=n.smoothstep(X,__tsover_mul(X,-1),j),Oe=__tsover_mul(Ge,ke),qe=De,We=n.sqrt(n.max(__tsover_mul(qe,__tsover_sub(2,qe)),0)),Ve=__tsover_sub(1,qe),Ne=__tsover_mul(oe,Ve),He=__tsover_mul(pe,Ve),vt=We,_t=__tsover_mul(E,bE),Ze=n.cos(_t),it=n.sin(_t),Tt=__tsover_mul(Ze,mu),J=__tsover_mul(it,mu),be=M2,ce=__tsover_add(__tsover_add(__tsover_mul(Ne,Tt),__tsover_mul(He,J)),__tsover_mul(vt,be)),xe=n.clamp(ce,0,1),ye=__tsover_add(__tsover_add(__tsover_mul(Ne,__tsover_mul(Tt,gv)),__tsover_mul(He,__tsover_mul(J,gv))),__tsover_mul(vt,__tsover_mul(xv,gv))),Ee=n.exp2(__tsover_sub(8,__tsover_mul(C,7))),Le=__tsover_mul(n.pow(n.clamp(ye,0,1),Ee),P),ot=k2(c,p,k,R),Ke=n.mix(h,v,xe),rt=n.mix(v,Ke,y),Mt=.12,ht=__tsover_mul(We,.35),St=rt.mul(__tsover_add(__tsover_add(Mt,__tsover_mul(xe,.55)),ht)),zt=o.vec3f(__tsover_add(St.x,Le),__tsover_add(St.y,Le),__tsover_add(St.z,Le)),$t=n.smoothstep(.55,1,De),Xe=__tsover_mul(__tsover_mul($t,w),ot),Qt=n.mix(v,o.vec3f(1,1,1),.75),Xt=n.mix(zt,Qt,Xe).mul(n.mix(1,ot,.4)),Ps=C2(j,A,f),$s=P2(p,$,U),Ks=__tsover_mul(g,$s),yo=Xt.mul(Ks),Gs=x.mul(__tsover_mul(Ps,Ks)),Js=n.mix(Gs.x,yo.x,Oe),Ls=n.mix(Gs.y,yo.y,Oe),Fr=n.mix(Gs.z,yo.z,Oe),Er=n.clamp(__tsover_mul(Ps,.6),0,1),so=n.max(Oe,Er),an=o.vec4f(Js,Ls,Fr,so),Tn=__tsover_add(__tsover_add(__tsover_mul(I,1.5),X),l);return n.select(an,o.vec4f(0,0,0,0),M>Tn)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sC"},{type:"i",name:"sR"},{type:"i",name:"sL"},{type:"i",name:"sU"},{type:"i",name:"sD"},{type:"i",name:"smoothEPS"},{type:"i",name:"sdfUV"},{type:"i",name:"scale"},{type:"i",name:"viewportSize"},{type:"i",name:"time"},{type:"i",name:"cornerSmoothing"},{type:"i",name:"tubeThickness"},{type:"i",name:"color"},{type:"i",name:"secondaryColor"},{type:"i",name:"secondaryBlend"},{type:"i",name:"glowColor"},{type:"i",name:"intensity"},{type:"i",name:"hotCoreIntensity"},{type:"i",name:"glowIntensity"},{type:"i",name:"glowRadius"},{type:"i",name:"lightAngle"},{type:"i",name:"specularIntensity"},{type:"i",name:"specularSize"},{type:"i",name:"flickerSpeed"},{type:"i",name:"flickerAmount"},{type:"i",name:"flowSpeed"},{type:"i",name:"flowAmount"},{type:"i",name:"volumetric"}],body:[0,[[13,"sdfCenter",[7,"sC","x"]],[13,"sdfRight",[7,"sR","x"]],[13,"sdfLeft",[7,"sL","x"]],[13,"sdfUp",[7,"sU","x"]],[13,"sdfDown",[7,"sD","x"]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"glowR",[6,[7,"std","max"],["glowRadius",[5,"0.001"]]]],[13,"softPx",[6,[7,"std","max"],[[1,"pxH","/","scale"],[5,"0.004"]]]],[13,"gradX",[1,[1,"sdfRight","-","sdfLeft"],"/",[1,"smoothEPS","*",[5,"2"]]]],[13,"gradY",[1,[1,"sdfUp","-","sdfDown"],"/",[1,"smoothEPS","*",[5,"2"]]]],[13,"smoothedSdf",[1,[1,[1,[1,[1,"sdfCenter","+","sdfRight"],"+","sdfLeft"],"+","sdfUp"],"+","sdfDown"],"/",[5,"5"]]],[13,"sdf",[6,[7,"std","mix"],["sdfCenter","smoothedSdf","cornerSmoothing"]]],[13,"gxRaw",[6,[7,"std","select"],["gradX",[1,[7,"sR","w"],"-",[7,"sL","w"]],[1,"volumetric",">",[5,"0.5"]]]]],[13,"gyRaw",[6,[7,"std","select"],["gradY",[1,[7,"sU","w"],"-",[7,"sD","w"]],[1,"volumetric",">",[5,"0.5"]]]]],[13,"gradLen",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gxRaw","*","gxRaw"],"+",[1,"gyRaw","*","gyRaw"]]]],[5,"0.0001"]]]],[13,"gnx",[1,"gxRaw","/","gradLen"]],[13,"gny",[1,"gyRaw","/","gradLen"]],[13,"depthNorm2D",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[6,[7,"std","max"],["tubeThickness",[5,"0.001"]]]],[5,"0"],[5,"1"]]]],[13,"innerMask2D",[6,[7,"std","smoothstep"],[[1,"tubeThickness","+","softPx"],[1,"tubeThickness","-","softPx"],[1,"sdf","*",[4,"-",[5,"1"]]]]]],[13,"lap",[1,[6,[7,"std","abs"],[[1,[1,[7,"sR","w"],"+",[7,"sL","w"]],"-",[1,[7,"sC","w"],"*",[5,"2"]]]]],"+",[6,[7,"std","abs"],[[1,[1,[7,"sU","w"],"+",[7,"sD","w"]],"-",[1,[7,"sC","w"],"*",[5,"2"]]]]]]],[13,"slopeMag",[1,[6,[7,"std","abs"],["gxRaw"]],"+",[6,[7,"std","abs"],["gyRaw"]]]],[13,"crease",[1,"lap","/",[1,[1,"lap","+",[1,"smoothEPS","*",[5,"0.6"]]],"+",[1,"slopeMag","*",[5,"0.35"]]]]],[13,"innerMaskVol",[6,[7,"std","smoothstep"],[[5,"0.08"],[5,"0.35"],"crease"]]],[13,"depthNorm",[6,[7,"std","select"],["depthNorm2D","crease",[1,"volumetric",">",[5,"0.5"]]]]],[13,"innerMask",[6,[7,"std","select"],["innerMask2D","innerMaskVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"outerMask",[6,[7,"std","smoothstep"],["softPx",[1,"softPx","*",[4,"-",[5,"1"]]],"sdf"]]],[13,"tubeMask",[1,"outerMask","*","innerMask"]],[13,"t","depthNorm"],[13,"cylinderZ",[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,"t","*",[1,[5,"2"],"-","t"]],[5,"0"]]]]]],[13,"cylinderR",[1,[5,"1"],"-","t"]],[13,"nx",[1,"gnx","*","cylinderR"]],[13,"ny",[1,"gny","*","cylinderR"]],[13,"nz","cylinderZ"],[13,"lightRad",[1,"lightAngle","*","DEG_TO_RAD"]],[13,"lx",[6,[7,"std","cos"],["lightRad"]]],[13,"ly",[6,[7,"std","sin"],["lightRad"]]],[13,"lxn",[1,"lx","*","_INV_LIGHT_LEN"]],[13,"lyn",[1,"ly","*","_INV_LIGHT_LEN"]],[13,"lzn","_LZN"],[13,"NdotL",[1,[1,[1,"nx","*","lxn"],"+",[1,"ny","*","lyn"]],"+",[1,"nz","*","lzn"]]],[13,"diffuse",[6,[7,"std","clamp"],["NdotL",[5,"0"],[5,"1"]]]],[13,"NdotH",[1,[1,[1,"nx","*",[1,"lxn","*","_INV_H_LEN"]],"+",[1,"ny","*",[1,"lyn","*","_INV_H_LEN"]]],"+",[1,"nz","*",[1,"_HZ","*","_INV_H_LEN"]]]],[13,"shininess",[6,[7,"std","exp2"],[[1,[5,"8"],"-",[1,"specularSize","*",[5,"7"]]]]]],[13,"specular",[1,[6,[7,"std","pow"],[[6,[7,"std","clamp"],["NdotH",[5,"0"],[5,"1"]]],"shininess"]],"*","specularIntensity"]],[13,"flowMod",[6,"neonFlow",["sdfUV","time","flowSpeed","flowAmount"]]],[13,"twoTone",[6,[7,"std","mix"],["secondaryColor","color","diffuse"]]],[13,"baseColor",[6,[7,"std","mix"],["color","twoTone","secondaryBlend"]]],[13,"ambient",[5,"0.12"]],[13,"selfEmission",[1,"cylinderZ","*",[5,"0.35"]]],[13,"shadedRgb",[6,[7,"baseColor","mul"],[[1,[1,"ambient","+",[1,"diffuse","*",[5,"0.55"]]],"+","selfEmission"]]]],[13,"tubeRgb",[6,[7,"d","vec3f"],[[1,[7,"shadedRgb","x"],"+","specular"],[1,[7,"shadedRgb","y"],"+","specular"],[1,[7,"shadedRgb","z"],"+","specular"]]]],[13,"coreProfile",[6,[7,"std","smoothstep"],[[5,"0.55"],[5,"1"],"depthNorm"]]],[13,"hotCoreAmt",[1,[1,"coreProfile","*","hotC
242oreIntensity"],"*","flowMod"]],[13,"hotCoreCol",[6,[7,"std","mix"],["color",[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],[5,"0.75"]]]],[13,"tubeWithCore",[6,[7,"std","mix"],["tubeRgb","hotCoreCol","hotCoreAmt"]]],[13,"tubeFlowed",[6,[7,"tubeWithCore","mul"],[[6,[7,"std","mix"],[[5,"1"],"flowMod",[5,"0.4"]]]]]],[13,"glowMasked",[6,"neonGlow",["sdf","glowRadius","glowIntensity"]]],[13,"flickerValue",[6,"neonFlicker",["time","flickerSpeed","flickerAmount"]]],[13,"intensityMul",[1,"intensity","*","flickerValue"]],[13,"finalTubeRgb",[6,[7,"tubeFlowed","mul"],["intensityMul"]]],[13,"finalGlowRgb",[6,[7,"glowColor","mul"],[[1,"glowMasked","*","intensityMul"]]]],[13,"finalR",[6,[7,"std","mix"],[[7,"finalGlowRgb","x"],[7,"finalTubeRgb","x"],"tubeMask"]]],[13,"finalG",[6,[7,"std","mix"],[[7,"finalGlowRgb","y"],[7,"finalTubeRgb","y"],"tubeMask"]]],[13,"finalB",[6,[7,"std","mix"],[[7,"finalGlowRgb","z"],[7,"finalTubeRgb","z"],"tubeMask"]]],[13,"glowAlpha",[6,[7,"std","clamp"],[[1,"glowMasked","*",[5,"0.6"]],[5,"0"],[5,"1"]]]],[13,"finalA",[6,[7,"std","max"],["tubeMask","glowAlpha"]]],[13,"result",[6,[7,"d","vec4f"],["finalR","finalG","finalB","finalA"]]],[13,"threshOut",[1,[1,[1,"glowR","*",[5,"1.5"]],"+","softPx"],"+","smoothEPS"]],[10,[6,[7,"std","select"],["result",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]],[1,"sdfCenter",">","threshOut"]]]]]],externalNames:["std","DEG_TO_RAD","_INV_LIGHT_LEN","_LZN","_INV_H_LEN","_HZ","neonFlow","d","neonGlow","neonFlicker"]},externals:()=>({std:n,DEG_TO_RAD:bE,_INV_LIGHT_LEN:mu,_LZN:M2,_INV_H_LEN:gv,_HZ:xv,neonFlow:k2,d:o,neonGlow:C2,neonFlicker:P2})})&&e.f)({}));function yO(e,t,s,r){let{uniforms:a,ctx:i}=e,l=r?.gradSampler??t,c=le(r?.volumetric?1:0),d=T(Dl,"sdfSpaceUV",[a.center,a.scale,a.rotation,i.uv,i.aspect]),u=T(wE,"neonSmoothEPS",[a.tubeThickness,a.cornerSmoothing,c]),p=u.mul(-1);return T(TE,"neonComposite",[t(d),l(T(Lr,"offsetUV",[d,u,le(0)])),l(T(Lr,"offsetUV",[d,p,le(0)])),l(T(Lr,"offsetUV",[d,le(0),u])),l(T(Lr,"offsetUV",[d,le(0),p])),u,d,a.scale,i.viewportSize,s,a.cornerSmoothing,a.tubeThickness,a.color.member("rgb"),a.secondaryColor.member("rgb"),a.secondaryBlend,a.glowColor.member("rgb"),a.intensity,a.hotCoreIntensity,a.glowIntensity,a.glowRadius,a.lightAngle,a.specularIntensity,a.specularSize,a.flickerSpeed,a.flickerAmount,a.flowSpeed,a.flowAmount,c])}var{applyNeonEffect:A2}=hO,{createSvgSdfSampler:gO,createAnalyticSdfSampler:xO,driveAnalyticSubProps:bO,ANALYTIC_SDF_EXTRA_FIELDS:wO}=ft,{createVolumetricFieldComputeNode:TO,buildVolumetricFieldSampler:SO,VOLUMETRIC_FIELD_EXTRA_FIELDS:AO,is3dShapeType:EO,isVolumetricShapeType:MO}=ys,CO=JSON.stringify({type:"circleSDF",radius:.35});function PO(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var SE={name:"Neon",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Photorealistic neon tube / 3D pipe effect driven by a custom shape",extraFields:{...AO,...wO},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:we,description:"Center position of the neon shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the neon shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the neon shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},color:{default:"#00ddff",transform:O,description:"Primary neon tube color",ui:{type:"color",label:"Tube Color",group:"Colors"}},secondaryColor:{default:"#ff00aa",transform:O,description:"Shadow-side color for a two-tone / dual-lit pipe look",ui:{type:"color",label:"Secondary Color",group:"Colors"}},secondaryBlend:{default:.5,description:"Blend between mono (0) and two-tone (1) tube coloring",ui:{type:"range",min:0,max:1,step:.
24201,label:"Blend",group:"Colors"}},glowColor:{default:"#00ddff",transform:O,description:"Color of the outer glow / bloom",ui:{type:"color",label:"Glow Color",group:"Colors"}},tubeThickness:{default:.2,transform:e=>e*.05,description:"How far inward from the boundary the tube extends. Low = thin neon outline, high = thick 3D pipe",ui:{type:"range",min:0,max:1,step:.01,label:"Tube Thickness",group:"Tube"}},intensity:{default:1.5,description:"Overall brightness multiplier",ui:{type:"range",min:.5,max:4,step:.01,label:"Intensity",group:"Tube"}},hotCoreIntensity:{default:.6,description:"Bright white-hot center line \u2014 the gas discharge glow inside the tube",ui:{type:"range",min:0,max:1,step:.01,label:"Hot Core",group:"Tube"}},glowIntensity:{default:.6,description:"Outer glow / bloom strength",ui:{type:"range",min:0,max:2,step:.01,label:"Glow Intensity",group:"Glow"}},glowRadius:{default:.25,description:"How far the glow extends beyond the tube",ui:{type:"range",min:.01,max:1,step:.01,label:"Glow Radius",group:"Glow"}},lightAngle:{default:300,description:"Directional light angle in degrees \u2014 controls 3D shading on the tube",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Lighting"}},specularIntensity:{default:.5,description:"Specular highlight brightness on the tube surface",ui:{type:"range",min:0,max:2,step:.01,label:"Specular",group:"Lighting"}},specularSize:{default:.5,description:"Specular highlight size \u2014 0 = tight pinpoint, 1 = broad sheen",ui:{type:"range",min:0,max:1,step:.01,label:"Specular Size",group:"Lighting"}},cornerSmoothing:{default:.15,description:"Rounds sharp corners to mimic how real glass tubes curve at bends",ui:{type:"range",min:0,max:1,step:.01,label:"Corner Smoothing",group:"Tube"}},flickerSpeed:{default:0,description:"Flicker animation speed \u2014 0 = off, higher = faster sporadic on/off",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Flicker"}},flickerAmount:{default:.2,description:"How often the neon flickers off \u2014 0 = always on, 1 = frequent outages",ui:{type:"range",min:0,max:1,step:.01,label:"Amount",group:"Flicker"}},flowSpeed:{default:0,description:"Flow animation speed \u2014 0 = off, light rotates through the tube",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Flow"}},flowAmount:{default:.3,description:"Strength of the flowing brightness variation \u2014 0 = uniform, 1 = dramatic",ui:{type:"range",min:0,max:1,step:.01,label:"Amount",group:"Flow"}},shape:{default:CO,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."}},compute:e=>{let t=TO(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l=t?.volumetricFieldTexture;if(l){let p=SO(l,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});return A2(e,p.volumetricFieldSampler,a.time,{volumetric:!0,gradSampler:p.volumetricFieldSamplerFast})}let c=r.shapeSdfUrl||"",d=r.shapeType||"";if(c)return A2(e,gO(e,c),a.time,{volumetric:MO(d)});let u=PO(d,i("shape"));return A2(e,xO(u,bO(e,()=>i("shape"))),a.time,{volumetric:EO(u)})}};var kO=wr({applyEmbossEffect:()=>RO,embossComposite:()=>ME,embossEdgeLighting:()=>U2,embossHeight:()=>Qn,embossTraceUV:()=>$2,embossWarpUV:()=>EE}),_u=.017453292519943295,bv=1/Math.sqrt(1.49),AE=.7*bv,Qn=b.fn([o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(s,n.clamp(__tsover_div(__tsover_mul(t,-1),.18),0,1)),l=__tsover_mul(s,n.smoothstep(r,__tsover_mul(r,-1),t));return n.select(l,i,a>.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"},{type:"i",name:"depth"},{type:"i",name:"transitionW"},{type:"i",name:"volumetric"}
vendor: 20,400 bytes, line 242
242],body:[0,[[13,"vol",[1,"depth","*",[6,[7,"std","clamp"],[[1,[1,"s","*",[4,"-",[5,"1"]]],"/",[5,"0.18"]],[5,"0"],[5,"1"]]]]],[13,"flat",[1,"depth","*",[6,[7,"std","smoothstep"],["transitionW",[1,"transitionW","*",[4,"-",[5,"1"]]],"s"]]]],[10,[6,[7,"std","select"],["flat","vol",[1,"volumetric",">",[5,"0.5"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),$2=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.cos(__tsover_mul(s,_u)),l=n.sin(__tsover_mul(s,_u)),c=n.max(n.abs(r),1e-4),d=__tsover_mul(c,.06);return o.vec2f(__tsover_add(t.x,__tsover_mul(__tsover_mul(i,d),a)),__tsover_add(t.y,__tsover_mul(__tsover_mul(l,d),a)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sdfUV"},{type:"i",name:"lightAngle"},{type:"i",name:"depth"},{type:"i",name:"frac"}],body:[0,[[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"absDepth",[6,[7,"std","max"],[[6,[7,"std","abs"],["depth"]],[5,"0.0001"]]]],[13,"spread",[1,"absDepth","*",[5,"0.06"]]],[10,[6,[7,"d","vec2f"],[[1,[7,"sdfUV","x"],"+",[1,[1,"lx","*","spread"],"*","frac"]],[1,[7,"sdfUV","y"],"+",[1,[1,"ly","*","spread"],"*","frac"]]]]]]],externalNames:["std","DEG_TO_RAD","d"]},externals:()=>({std:n,DEG_TO_RAD:_u,d:o})})&&e.f)({})),EE=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let l=n.smoothstep(.003,__tsover_mul(.003,-1),r),c=__tsover_sub(1,__tsover_mul(__tsover_mul(a,.05),l)),d=s.x,u=__tsover_sub(1,s.y);return o.vec2f(__tsover_add(d,__tsover_mul(__tsover_sub(t.x,d),c)),__tsover_add(u,__tsover_mul(__tsover_sub(t.y,u),c)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"center"},{type:"i",name:"sdfC"},{type:"i",name:"depth"}],body:[0,[[13,"tw",[5,"0.003"]],[13,"inside",[6,[7,"std","smoothstep"],["tw",[1,"tw","*",[4,"-",[5,"1"]]],"sdfC"]]],[13,"dispScale",[1,[5,"1"],"-",[1,[1,"depth","*",[5,"0.05"]],"*","inside"]]],[13,"centerX",[7,"center","x"]],[13,"centerY",[1,[5,"1"],"-",[7,"center","y"]]],[10,[6,[7,"d","vec2f"],[[1,"centerX","+",[1,[1,[7,"uv","x"],"-","centerX"],"*","dispScale"]],[1,"centerY","+",[1,[1,[7,"uv","y"],"-","centerY"],"*","dispScale"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),U2=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let m=Qn(t,i,.003,d),_=Qn(s,i,.003,d),v=Qn(r,i,.003,d),h=Qn(a,i,.003,d),y=__tsover_div(__tsover_sub(m,_),__tsover_mul(.003,2)),x=__tsover_div(__tsover_sub(v,h),__tsover_mul(.003,2)),g=n.sqrt(__tsover_add(__tsover_add(__tsover_mul(y,y),__tsover_mul(x,x)),1)),w=__tsover_div(__tsover_mul(y,-1),g),f=__tsover_div(__tsover_mul(x,-1),g),A=__tsover_div(1,g),E=n.cos(__tsover_mul(l,_u)),P=n.sin(__tsover_mul(l,_u)),C=__tsover_mul(E,bv),$=__tsover_mul(P,bv),U=AE,k=__tsover_add(__tsover_add(__tsover_mul(w,C),__tsover_mul(f,$)),__tsover_mul(A,U)),R=__tsover_mul(__tsover_sub(k,U),c),D=n.max(R,0),M=n.max(__tsover_mul(R,-1),0);return o.vec2f(D,M)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sdfR"},{type:"i",name:"sdfL"},{type:"i",name:"sdfU"},{type:"i",name:"sdfD"},{type:"i",name:"depth"},{type:"i",name:"lightAngle"},{type:"i",name:"lightIntensity"},{type:"i",name:"volumetric"}],body:[0,[[13,"eps",[5,"0.003"]],[13,"tw",[5,"0.003"]],[13,"hR",[6,"embossHeight",["sdfR","depth","tw","volumetric"]]],[13,"hL",[6,"embossHeight",["sdfL","depth","tw","volumetric"]]],[13,"hU",[6,"embossHeight",["sdfU","depth","tw","volumetric"]]],[13,"hD",[6,"embossHeight",["sdfD","depth","tw","volumetric"]]],[13,"dhx",[1,[1,"hR","-","hL"],"/",[1,"eps","*",[5,"2"]]]],[13,"dhy",[1,[1,"hU","-","hD"],"/",[1,"eps","*",[5,"2"]]]],[13,"nLen",[6,[7,"std","sqrt"],[[1,[1,[1,"dhx","*","dhx"],"+",[1,"dhy","*","dhy"]],"+",[5,"1"]]]]],[13,"nx",[1,[1,"dhx","*",[4,"-",[5,"1"]]],"/","nLen"]],[13,"ny",[1,[1,"dhy","*",[4,"-",[5,"1"]]],"/","nLen"]],[13,"nz",[1,[5,"1"],"/","nLen"]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"lxn",[1,"lx","*","_INV_LIGHT_LEN"]],[13,"lyn",[1,"ly","*","_INV_LIGHT_LEN"]],[13,"lzn","_LZN"],[13,"NdotL",[1,[1,[1,"nx","*","lxn"],"+",[1,"ny","*","lyn"]],"+",[1,"nz","*","lzn"]]],[13,"edgeLighting",[1,[1,"NdotL","-","lzn"],"*","lightIntensity"]],[13,"highlight",[6,[7,"std","max"],["edgeLighting",[5,"0"]]]],[13,"edgeShadow",[6,[7,"std","max"],[[1,"edgeLighting","*",[4,"-",[5,"1"]]],[5,"0"]]]],[10,[6,[7,"d","vec2f"],["highlight","edgeShadow"]]]]],externalNames:["embossHeight","std","DEG_TO_RAD","_INV_LIGHT_LEN","_LZN","d"]},externals:()=>({embossHeight:Qn,std:n,DEG_TO_RAD:_u,_INV_LIGHT_LEN:bv,_LZN:AE,d:o})})&&e.f)({})),ME=b.fn([o.vec4f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v)=>{"use gpu";let y=U2(r,a,i,l,u,p,m,v),x=y.x,g=y.y,w=Qn(s,u,.003,v),f=n.max(n.abs(u),1e-4),A=__tsover_mul(f,.06),E=Qn(c,u,A,v),P=Qn(d,u,A,v),C=__tsover_div(__tsover_sub(E,w),f),$=__tsover_div(__tsover_sub(P,w),f),U=__tsover_add(__tsover_mul(n.smoothstep(0,.5,C),.55),__tsover_mul(n.smoothstep(0,.5,$),.45)),k=__tsover_mul(n.clamp(__tsover_add(g,U),0,1),_),R=o.vec3f(t.x,t.y,t.z),D=o.vec3f(x,x,x),M=n.clamp(R.mul(__tsover_sub(1,k)).add(D),o.vec3f(0),o.vec3f(1));return o.vec4f(M.x,M.y,M.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"childColor"},{type:"i",name:"sdfC"},{type:"i",name:"sdfR"},{type:"i",name:"sdfL"},{type:"i",name:"sdfU"},{type:"i",name:"sdfD"},{type:"i",name:"h1raw"},{type:"i",name:"h2raw"},{type:"i",name:"depth"},{type:"i",name:"lightAngle"},{type:"i",name:"lightIntensity"},{type:"i",name:"shadowIntensity"},{type:"i",name:"volumetric"}],body:[0,[[13,"tw",[5,"0.003"]],[13,"light",[6,"embossEdgeLighting",["sdfR","sdfL","sdfU","sdfD","depth","lightAngle","lightIntensity","volumetric"]]],[13,"highlight",[7,"light","x"]],[13,"edgeShadow",[7,"light","y"]],[13,"hC",[6,"embossHeight",["sdfC","depth","tw","volumetric"]]],[13,"absDepth",[6,[7,"std","max"],[[6,[7,"std","abs"],["depth"]],[5,"0.0001"]]]],[13,"shadowTw",[1,"absDepth","*",[5,"0.06"]]],[13,"h1",[6,"embossHeight",["h1raw","depth","shadowTw","volumetric"]]],[13,"h2",[6,"embossHeight",["h2raw","depth","shadowTw","volumetric"]]],[13,"diff1",[1,[1,"h1","-","hC"],"/","absDepth"]],[13,"diff2",[1,[1,"h2","-","hC"],"/","absDepth"]],[13,"castShadow",[1,[1,[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.5"],"diff1"]],"*",[5,"0.55"]],"+",[1,[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.5"],"diff2"]],"*",[5,"0.45"]]]],[13,"totalShadow",[1,[6,[7,"std","clamp"],[[1,"edgeShadow","+","castShadow"],[5,"0"],[5,"1"]]],"*","shadowIntensity"]],[13,"childRgb",[6,[7,"d","vec3f"],[[7,"childColor","x"],[7,"childColor","y"],[7,"childColor","z"]]]],[13,"highlightRgb",[6,[7,"d","vec3f"],["highlight","highlight","highlight"]]],[13,"finalRgb",[6,[7,"std","clamp"],[[6,[7,[6,[7,"childRgb","mul"],[[1,[5,"1"],"-","totalShadow"]]],"add"],["highlightRgb"]],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"finalRgb","x"],[7,"finalRgb","y"],[7,"finalRgb","z"],[7,"childColor","w"]]]]]],externalNames:["embossEdgeLighting","embossHeight","std","d"]},externals:()=>({embossEdgeLighting:U2,embossHeight:Qn,std:n,d:o})})&&e.f)({}));function RO(e,t,s,r){let{uniforms:a,ctx:i}=e,l=r?.gradSampler??t,c=le(r?.volumetric?1:0),d=.003,u=T(Dl,"sdfSpaceUV",[a.center,a.scale,a.rotation,i.uv,i.aspect]),p=t(u).member("r"),m=l(T(Lr,"offsetUV",[u,le(d),le(0)])).member("r"),_=l(T(Lr,"offsetUV",[u,le(-d),le(0)])).member("r"),v=l(T(Lr,"offsetUV",[u,le(0),le(d)])).member("r"),h=l(T(Lr,"offsetUV",[u,le(0),le(-d)])).member("r"),y=l(T($2,"embossTraceUV",[u,a.lightAngle,a.depth,le(.5)])).member("r"),x=l(T($2,"embossTraceUV",[u,a.lightAngle,a.depth,le(1)])).member("r"),g=T(EE,"embossWarpUV",[i.uv,a.center,p,a.depth]);return T(ME,"embossComposite",[T(Re,"unpremultiplyAlpha",[s.sample(g)]),p,m,_,v,h,y,x,a.depth,a.lightAngle,a.lightIntensity,a.shadowIntensity,c])}var{applyEmbossEffect:R2}=kO,{createSvgSdfSampler:$O,createAnalyticSdfSampler:UO,driveAnalyticSubProps:DO,ANALYTIC_SDF_EXTRA_FIELDS:zO}=ft,{createVolumetricFieldComputeNode:IO,buildVolumetricFieldSampler:LO,VOLUMETRIC_FIELD_EXTRA_FIELDS:FO,is3dShapeType:BO,isVolumetricShapeType:VO}=ys,OO=JSON.stringify({type:"circleSDF",radius:.35});function NO(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var CE={name:"Emboss",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Embossed / debossed relief shading on top of child content, driven by a custom shape",requiresRTT:!0,requiresChild:!0,extraFields:{...FO,...zO},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:we,description:"Center position of the embossed shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the embossed shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the embossed shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},depth:{default:-.5,description:"Relief depth \u2014 negative = inset (debossed), positive = raised (embossed)",ui:{type:"range",min:-1,max:1,step:.01,label:"Depth",group:"Relief"}},lightAngle:{default:260,description:"Directional light angle in degrees \u2014 controls highlight and shadow direction",ui:{type:["range","map"],min:0,max:360,step:1,label:"Light Angle",group:"Lighting"}},lightIntensity:{default:.6,description:"Strength of the directional edge highlights and shadows",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Light Intensity",group:"Lighting"}},shadowIntensity:{default:.3,description:"Darkness of the relief shadow",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Shadow Intensity",group:"Relief"}},shape:{default:OO,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."}},compute:e=>{let t=IO(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{childNode:t,computeOutputs:s,convertToTexture:r,propValues:a,getCpuValue:i,uniforms:l}=e;if(!t)return me;let c=r(t),d=s?.volumetricFieldTexture;if(d){let _=LO(d,{originX:l._vfOriginX,originY:l._vfOriginY,spanX:l._vfSpanX,spanY:l._vfSpanY,activeResF:l._vfActiveRes,rBound:l._vfRBound});return R2(e,_.volumetricFieldSampler,c,{volumetric:!0,gradSampler:_.volumetricFieldSamplerFast})}let u=a.shapeSdfUrl||"",p=a.shapeType||"";if(u)return R2(e,$O(e,u),c,{volumetric:VO(p)});let m=NO(p,i("shape"));return R2(e,UO(m,DO(e,()=>i("shape"))),c,{volumetric:BO(m)})}};var Vl=e=>e;function xs(){return{default:null,transform:Vl,compileTimeWhen:(e,t)=>{let s=r=>{let a=Array.isArray(r)?r.length:0;return a>1?a: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 $E="p3-linear";function UE(e){$E=e;try{yE(e)}catch{}}function YO(e){try{let t=new ta(e),s=$E==="srgb"?"srgb-linear":"p3-linear",r=t.to(s).coords;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(t.alpha)?t.alpha:0}}catch{return{r:0,g:0,b:0,a:0}}}function DE(e){let{r:t,g:s,b:r,a}=YO(e);return ee(t,s,r,a)}function D2(e){let t=DE(e);return[t.x,t.y,t.z,t.w]}function PE(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 GO(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=PE(e.x,!1),s=PE(e.y,!0)):console.warn(`Invalid position value provided: ${e}. Defaulting to center.`);return H(t,1-s)}function WO(e){if(e)return e===O?DE:e===we?GO:e===Vl?Vl:e}function z2(e,t){e>0,t>0}function wv(e){return e!=null&&typeof e=="object"&&typeof e.value=="number"&&(e.unit==="px"||e.unit==="uv")}function I2(e){if(!e)return;let t;for(let[s,r]of Object.entries(e)){let a=r?.ui?.dimensional;(a==="canvas-height"||a==="half-canvas-height"||a==="canvas-width"||a==="count-canvas-height")&&(t??=new Map).set(s,a)}return t}function fu(e,t){let s=e?.propBindings,r=new Set,a=new Map;if(s)for(let i of["x","y","width","height"]){let l=s[i];l&&(l.as==="position-x"||l.as==="position-y"?r.add(l.prop):(l.as==="canvas-height"||l.as==="half-canvas-height")&&a.set(l.prop,l.as))}if(t)for(let[i,l]of t)a.set(i,l);return r.size>0||a.size>0?{positionProps:r,sizeProps:a}:null}var XO=e=>({ox:e.includes("left")?"start":e.includes("right")?"end":"center",oy:e.includes("top")?"start":e.includes("bottom")?"end":"center"}),qO=(e,t,s)=>t==="start"?e+s:t==="end"?e-s:e;function kE(e,t,s,r){let a=(i,l)=>wv(i)?i.unit==="px"?i.value:i.value*l:typeof i=="number"?i*l:0;return e.as==="canvas-height"?a(t,r):e.as==="half-canvas-height"?a(t,2*r):e.as==="canvas-width"?a(t,s):0}function L2(e,t,s,r){if(e?.computeBounds){let c=e.computeBounds(t,s,r);return{hwx:s>0?c.widthPx/s/2:0,hhy:r>0?c.heightPx/r/2:0}}let a=e?.propBindings,i=0,l=0;return a?.width&&s>0&&(i=kE(a.width,t[a.width.prop],s,r)/(2*s)),a?.height&&r>0&&(l=kE(a.height,t[a.height.prop],s,r)/(2*r)),{hwx:i,hhy:l}}function RE(e,t,s,r){let a;if(wv(e))if(e.unit==="px"){let i=t>0?e.value/t:0;a=s==="end"?1-i:s==="center"?.5+i:i}else a=e.value;else if(typeof e=="number")a=e;else return e;return qO(a,s,r)}function HO(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 Lm(e,t,s,r,a,i,l,c){let d=fu(e,l);if(!d)return s;let{ox:u,oy:p}=XO(r);if(d.positionProps.has(t))return!s||typeof s!="object"?s:{...s,x:RE(s.x,a,u,c?.hwx??0),y:RE(s.y,i,p,c?.hhy??0)};let m=d.sizeProps.get(t);return m&&wv(s)?HO(s,m,a,i):s}function F2(e,t,s){let r=fu(e,s);return r?r.positionProps.has(t)||r.sizeProps.has(t):!1}function B2(e,t,s){let r={},a=e.boundingBoxDeclaration,i=I2(e.props),l=jO(e.props,t);for(let[c,d]of Object.entries(e.props)){let u=d.transform;if(u===Vl){ZO(r,c,d,t[c],l);continue}let p=t[c],m=p;m==null&&(m=d.default),m==null&&(console.error(`[Shaders] Uniform "${c}" is null/undefined after fallback. PropConfig:`,{propName:c,initialValue:p,default:d.default,hasTransform:!!u}),m=0);let _=WO(u),v=F2(a,c,i),h=!_&&!v&&(typeof m=="string"||typeof m=="object"&&m!==null&&!Array.isArray(m));r[c]={value:m,transform:_,compileTime:d.compileTime||!1,...d.compileTimeWhen?{compileTimeWhen:d.compileTimeWhen,_lastCompiledValue:p??d.default}:{},...v?{_rawDimensional:p}:{},...h?{cpu:!0}:{}}}return r}function jO(e,t){for(let[s,r]of Object.entries(e))if(r.transform===Ue){let a=t[s]??r.default;return typeof a=="string"?Ue(a):0}return 0}function ZO(e,t,s,r,a){let i=r??null,l=Sm(i,D2),c=Am(l.colors,l.stopCount,a);e[t]={value:i,transform:Vl,cpu:!0,compileTime:s.compileTime||!1,...s.compileTimeWhen?{compileTimeWhen:s.compileTimeWhen,_lastCompiledValue:i??s.default}:{}},e.colorsArray={value:l.colors,schema:qs(ee,8)},e.positionsArray={value:l.positions,schema:qs(ee,8/4)},e.convertedColorsArray={value:c,schema:qs(W,8)},e.stopCount={value:l.stopCount,schema:S}}var Tv={name:"Root",props:{},fragment:({childNode:e})=>e??rr("vec4f(0.0, 0.0, 0.0, 0.0)")};function Fe(e,t,s="_animTime"){let r=e.props.member(s);if(t){let a=e.uniforms[t];if(a)return r.add(a)}return r}var KO=wr({Distortion3DTrace:()=>Av,applyDistortion3D:()=>JO,applyUVMode3d:()=>IE,buildDistortion3dTrace:()=>FE,distortion3dLighting:()=>LE}),Av=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({hitPos:o.vec3f,normal:o.vec3f,rd:o.vec3f,hit:o.f32}),"Distortion3DTrace"),IE=b.fn([o.vec2f,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.clamp(t,o.vec2f(0),o.vec2f(1)),a=n.abs(n.fract(t.mul(.5)).mul(2).sub(1)),i=n.fract(t),l=n.select(o.f32(0),o.f32(1),t.y<=1),c=n.select(o.f32(0),l,t.y>=0),d=n.select(o.f32(0),c,t.x<=1),u=n.select(o.f32(0),d,t.x>=0),p=n.select(i,a,s<2.5),m=n.select(p,t,s<1.5),_=n.select(m,r,s<.5),v=n.select(o.f32(1),u,s<1.5),h=n.select(v,o.f32(1),s<.5);return o.vec3f(_.x,_.y,h)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"uvMode"}],body:[0,[[13,"stretched",[6,[7,"std","clamp"],["uv",[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[5,"1"]]]]]],[13,"mirrored",[6,[7,"std","abs"],[[6,[7,[6,[7,[6,[7,"std","fract"],[[6,[7,"uv","mul"],[[5,"0.5"]]]]],"mul"],[[5,"2"]]],"sub"],[[5,"1"]]]]]],[13,"wrapped",[6,[7,"std","fract"],["uv"]]],[13,"tv1",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"uv","y"],"<=",[5,"1"]]]]],[13,"tv2",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"tv1",[1,[7,"uv","y"],">=",[5,"0"]]]]],[13,"tv3",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"tv2",[1,[7,"uv","x"],"<=",[5,"1"]]]]],[13,"transparentVisible",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"tv3",[1,[7,"uv","x"],">=",[5,"0"]]]]],[13,"fuv2",[6,[7,"std","select"],["wrapped","mirrored",[1,"uvMode","<",[5,"2.5"]]]]],[13,"fuv1",[6,[7,"std","select"],["fuv2","uv",[1,"uvMode","<",[5,"1.5"]]]]],[13,"finalUV",[6,[7,"std","select"],["fuv1","stretched",[1,"uvMode","<",[5,"0.5"]]]]],[13,"vis1",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],"transparentVisible",[1,"uvMode","<",[5,"1.5"]]]]],[13,"visible",[6,[7,"std","select"],["vis1",[6,[7,"d","f32"],[[5,"1"]]],[1,"uvMode","<",[5,"0.5"]]]]],[10,[6,[7,"d","vec3f"],[[7,"finalUV","x"],[7,"finalUV","y"],"visible"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),LE=b.fn([o.vec4f,o.vec3f,o.vec3f,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=n.normalize(o.vec3f(.4,.7,-.6)),u=r.mul(-1),p=n.clamp(n.dot(s,d),0,1),m=n.normalize(d.add(u)),_=__tsover_add(__tsover_mul(l,256),4),v=__tsover_mul(__tsover_mul(n.pow(n.clamp(n.dot(s,m),0,1),_),l),1.5),h=n.clamp(n.dot(s,u),0,1),y=__tsover_mul(__tsover_mul(n.pow(__tsover_sub(1,h),3),.5),l),x=n.mix(1,__tsover_add(__tsover_add(__tsover_add(.35,__tsover_mul(p,.65)),v),y),c),g=n.clamp(x,0,3),w=t.xyz.mul(g),f=n.clamp(w,o.vec3f(0),o.vec3f(1)),A=__tsover_mul(__tsover_mul(a,t.w),i);return o.vec4f(f.x,f.y,f.z,A)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surfaceColor"},{type:"i",name:"normal"},{type:"i",name:"rd"},{type:"i",name:"hit"},{type:"i",name:"uvVisible"},{type:"i",name:"glossAmt"},{type:"i",name:"lightAmt"}],body:[0,[[13,"lightDir",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[5,"0.4"],[5,"0.7"],[4,"-",[5,"0.6"]]]]]]],[13,"viewDir",[6,[7,"rd","mul"],[[4,"-",[5,"1"]]]]],[13,"diffuse",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["normal","lightDir"]],[5,"0"],[5,"1"]]]],[13,"halfVec",[6,[7,"std","normalize"],[[6,[7,"lightDir","add"],["viewDir"]]]]],[13,"specPow",[1,[1,"glossAmt","*",[5,"256"]],"+",[5,"4"]]],[13,"specular",[1,[1,[6,[7,"std","pow"],[[6,[7,"std","clamp"],[[6,[7,"std","dot"],["normal","halfVec"]],[5,"0"],[5,"1"]]],"specPow"]],"*","glossAmt"],"*",[5,"1.5"]]],[13,"nD
242otV",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["normal","viewDir"]],[5,"0"],[5,"1"]]]],[13,"fresnel",[1,[1,[6,[7,"std","pow"],[[1,[5,"1"],"-","nDotV"],[5,"3"]]],"*",[5,"0.5"]],"*","glossAmt"]],[13,"ambient",[5,"0.35"]],[13,"lit",[6,[7,"std","mix"],[[5,"1"],[1,[1,[1,"ambient","+",[1,"diffuse","*",[5,"0.65"]]],"+","specular"],"+","fresnel"],"lightAmt"]]],[13,"litClamped",[6,[7,"std","clamp"],["lit",[5,"0"],[5,"3"]]]],[13,"col",[6,[7,[7,"surfaceColor","xyz"],"mul"],["litClamped"]]],[13,"colClamped",[6,[7,"std","clamp"],["col",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[13,"alpha",[1,[1,"hit","*",[7,"surfaceColor","w"]],"*","uvVisible"]],[10,[6,[7,"d","vec4f"],[[7,"colClamped","x"],[7,"colClamped","y"],[7,"colClamped","z"],"alpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({}));function FE(e,t){let s=t.steps,r=t.stepCap,a=t.hitEps,i=t.maxDistance;return b.fn([o.vec2f,o.f32,o.vec2f,o.f32],Av)((l=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(l.f=((c,d,u,p)=>{"use gpu";let m=u.x,_=__tsover_sub(1,u.y),v=__tsover_sub(8,__tsover_mul(p,.06)),h=o.vec3f(0,0,__tsover_mul(v,-1)),y=n.normalize(o.vec3f(__tsover_mul(__tsover_sub(c.x,m),d),__tsover_sub(c.y,_),1.5)),x=o.f32(0),g=o.f32(0),w=o.f32(i);for(let k=0;k<s;k++){let R=e(h.add(y.mul(x)));if(R<a){g=o.f32(1);break}if(x>w)break;x=__tsover_add(x,n.min(R,r))}let f=h.add(y.mul(x)),A=.001,E=__tsover_mul(A,-1),P=e(f.add(o.vec3f(A,E,E))),C=e(f.add(o.vec3f(E,E,A))),$=e(f.add(o.vec3f(E,A,E))),U=e(f.add(o.vec3f(A,A,A)));return Av({hitPos:f,normal:n.normalize(o.vec3f(1,-1,-1).mul(P).add(o.vec3f(-1,-1,1).mul(C)).add(o.vec3f(-1,1,-1).mul($)).add(o.vec3f(1,1,1).mul(U))),rd:y,hit:g})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"zoom"}],body:[0,[[13,"cx",[7,"center","x"]],[13,"cy",[1,[5,"1"],"-",[7,"center","y"]]],[13,"camDist",[1,[5,"8"],"-",[1,"zoom","*",[5,"0.06"]]]],[13,"ro",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[1,"camDist","*",[4,"-",[5,"1"]]]]]],[13,"focal",[5,"1.5"]],[13,"rd",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[7,"uv","x"],"-","cx"],"*","aspect"],[1,[7,"uv","y"],"-","cy"],"focal"]]]]],[12,"rayT",[6,[7,"d","f32"],[[5,"0"]]]],[12,"hit",[6,[7,"d","f32"],[[5,"0"]]]],[13,"maxDistF",[6,[7,"d","f32"],["MAX_DIST"]]],[14,[12,"i",[5,"0"]],[1,"i","<","STEPS"],[102,"++","i"],[0,[[13,"p",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["rayT"]]]]],[13,"dd",[6,"sdfFn",["p"]]],[11,[1,"dd","<","HIT_EPS"],[0,[[2,"hit","=",[6,[7,"d","f32"],[[5,"1"]]]],[17]]]],[11,[1,"rayT",">","maxDistF"],[0,[[17]]]],[2,"rayT","=",[1,"rayT","+",[6,[7,"std","min"],["dd","STEP_CAP"]]]]]]],[13,"hitPos",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["rayT"]]]]],[13,"h",[5,"0.001"]],[13,"hn",[1,"h","*",[4,"-",[5,"1"]]]],[13,"k0",[6,"sdfFn",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["h","hn","hn"]]]]]]],[13,"k1",[6,"sdfFn",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["hn","hn","h"]]]]]]],[13,"k2",[6,"sdfFn",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["hn","h","hn"]]]]]]],[13,"k3",[6,"sdfFn",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["h","h","h"]]]]]]],[13,"normal",[6,[7,"std","normalize"],[[6,[7,[6,[7,[6,[7,[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[4,"-",[5,"1"]],[4,"-",[5,"1"]]]],"mul"],["k0"]],"add"],[[6,[7,[6,[7,"d","vec3f"],[[4,"-",[5,"1"]],[4,"-",[5,"1"]],[5,"1"]]],"mul"],["k1"]]]],"add"],[[6,[7,[6,[7,"d","vec3f"],[[4,"-",[5,"1"]],[5,"1"],[4,"-",[5,"1"]]]],"mul"],["k2"]]]],"add"],[[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"mul"],["k3"]]]]]]],[10,[6,"Distortion3DTrace",[[104,{hitPos:"hitPos",normal:"normal",rd:"rd",hit:"hit"}]]]]]],externalNames:["d","std","MAX_DIST","STEPS","sdfFn","HIT_EPS","STEP_CAP","Distortion3DTrace"]},externals:()=>({d:o,std:n,MAX_DIST:i,STEPS:s,sdfFn:e,HIT_EPS:a,STEP_CAP:r,Distortion3DTrace:Av})})&&l.f)({})).$name("distortion3dTrace")}function JO(e,t,s,r={}){let{uniforms:a,ctx:i}=e,l={steps:r.steps??96,stepCap:r.stepCap??.15,hitEps:r.hitEps??.001,maxDistance:r.maxDistance??20},c=FE(s.sdf,l),d=a.glossiness.mul(.005),u=a.lighting.mul(.005),p=T(c,"distortion3dTrace",[i.uv,i.aspect,a.center,a.zoom]),m=p.member("hitPos"),_=p.member("normal"),v=p.member("rd"),h=p.member("hit"),y=T(IE,"applyUVMode3d",[T(s.surfaceUV,"surfaceUV",[m,_]),a.uvMode]),x=y.member("xy"),g=y.member("z");return T(LE,"distortion3dLighting",[T(Re,"unpremultiplyAlpha",[t.sample(x)]),_,v,h,g,d,u])}var{applyUVMode3d:QO,distortion3dLighting:eN,Distortion3DTrace:V2}=KO,Sv=Math.PI/180,O2=Math.PI*2/10,Ev=.08,tN=JSON.stringify({type:"ribbon",angle:0,twist:50,width:40,thickness:20,seed:0}),Xo=b.fn([o.vec3f,o.vec4f,o.vec4f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=s.x,i=s.y,l=s.z,c=s.w,d=r.x,u=r.y,p=o.vec3f(__tsover_add(__tsover_mul(t.x,l),__tsover_mul(t.z,c)),t.y,__tsover_add(__tsover_mul(__tsover_mul(t.x,c),-1),__tsover_mul(t.z,l))),m=o.vec3f(p.x,__tsover_sub(__tsover_mul(p.y,a),__tsover_mul(p.z,i)),__tsover_add(__tsover_mul(p.y,i),__tsover_mul(p.z,a)));return o.vec3f(__tsover_sub(__tsover_mul(m.x,d),__tsover_mul(m.y,u)),__tsover_add(__tsover_mul(m.x,u),__tsover_mul(m.y,d)),m.z)}),{v:1,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,[7,"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,[7,"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,[7,"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"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),sN=b.fn([o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";return __tsover_sub(n.length(Xo(t,s,r)),r.z)}),{v:1,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,[7,"std","length"],[[6,"f3dRot",["p","rp0","rp1"]]]],"-",[7,"rp1","z"]]]]],externalNames:["std","f3dRot"]},externals:()=>({std:n,f3dRot:Xo})})&&e.f)({})),oN=b.fn([o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=n.normalize(Xo(t,r,a));return o.vec2f(__tsover_add(__tsover_div(n.atan2(c.z,c.x),6.283185307179586),.5),__tsover_mul(__tsover_add(c.y,1),.5))}),{v:1,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,[7,"std","normalize"],[[6,"f3dRot",["h","rp0","rp1"]]]]],[10,[6,[7,"d","vec2f"],[[1,[1,[6,[7,"std","atan2"],[[7,"n","z"],[7,"n","x"]]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]],[1,[1,[7,"n","y"],"+",[5,"1"]],"*",[5,"0.5"]]]]]]],externalNames:["std","f3dRot","d"]},externals:()=>({std:n,f3dRot:Xo,d:o})})&&e.f)({})),rN=b.fn([o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=Xo(t,s,r),c=o.vec2f(__tsover_sub(n.length(o.vec2f(l.x,l.z)),r.z),l.y);return __tsover_sub(n.length(c),r.w)}),{v:1,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,"f3dRot",["p","rp0","rp1"]]],[13,"q",[6,[7,"d","vec2f"],[[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"rp","x"],[7,"rp","z"]]]]],"-",[7,"rp1","z"]],[7,"rp","y"]]]],[10,[1,[6,[7,"std","length"],["q"]],"-",[7,"rp1","w"]]]]],externalNames:["f3dRot","d","std"]},externals:()=>({f3dRot:Xo,d:o,std:n})})&&e.f)({})),aN=b.fn([o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=Xo(t,r,a),d=__tsover_add(__tsover_div(n.atan2(c.z,c.x),6.283185307179586),.5),u=__tsover_sub(n.length(o.vec2f(c.x,c.z)),a.z);return o.vec2f(d,__tsover_add(__tsover_div(n.atan2(c.y,u),6.283185307179586),.5))}),{v:1,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,"f3dRot",["h","rp0","rp1"]]],[13,"u",[1,[1,[6,[7,"std","atan2"],[[7,"rp","z"],[7,"rp","x"]]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]]],[13,"ringDist",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[7,"rp","x"],[7,"rp","z"]]]]],"-",[7,"rp1","z"]]],[10,[6,[7,"d","vec2f"],["u",[1,[1,[6,[7,"std","atan2"],[[7,"rp","y"],"ringDist"]],"/",[5,"6.283185307179586"]],"+",[5,"0.5"]]]]]]],externalNames:["f3dRot","std","d"]},externals:()=>({f3dRot:Xo,std:n,d:o})})&&e.f)({})),nN=b.fn([o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=Xo(t,s,r),c=a.y,d=__tsover_add(__tsover_sub(n.abs(l.x),r.z),c),u=__tsover_add(__tsover_sub(n.abs(l.
vendor: 12,430 bytes, line 242
242y),r.w),c),p=__tsover_add(__tsover_sub(n.abs(l.z),a.x),c),m=n.length(o.vec3f(n.max(d,o.f32(0)),n.max(u,o.f32(0)),n.max(p,o.f32(0)))),_=n.min(n.max(d,n.max(u,p)),o.f32(0));return __tsover_sub(__tsover_add(m,_),c)}),{v:1,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,"f3dRot",["p","rp0","rp1"]]],[13,"rounding",[7,"rp2","y"]],[13,"qx",[1,[1,[6,[7,"std","abs"],[[7,"rp","x"]]],"-",[7,"rp1","z"]],"+","rounding"]],[13,"qy",[1,[1,[6,[7,"std","abs"],[[7,"rp","y"]]],"-",[7,"rp1","w"]],"+","rounding"]],[13,"qz",[1,[1,[6,[7,"std","abs"],[[7,"rp","z"]]],"-",[7,"rp2","x"]],"+","rounding"]],[13,"outer",[6,[7,"std","length"],[[6,[7,"d","vec3f"],[[6,[7,"std","max"],["qx",[6,[7,"d","f32"],[[5,"0"]]]]],[6,[7,"std","max"],["qy",[6,[7,"d","f32"],[[5,"0"]]]]],[6,[7,"std","max"],["qz",[6,[7,"d","f32"],[[5,"0"]]]]]]]]]],[13,"inner",[6,[7,"std","min"],[[6,[7,"std","max"],["qx",[6,[7,"std","max"],["qy","qz"]]]],[6,[7,"d","f32"],[[5,"0"]]]]]],[10,[1,[1,"outer","+","inner"],"-","rounding"]]]],externalNames:["f3dRot","std","d"]},externals:()=>({f3dRot:Xo,std:n,d:o})})&&e.f)({})),iN=b.fn([o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=Xo(t,r,a),d=Xo(s,r,a),u=o.vec3f(n.abs(d.x),n.abs(d.y),n.abs(d.z)),p=a.z,m=a.w,_=i.x,v=__tsover_div(.5,n.max(m,_)),h=__tsover_div(.5,n.max(p,_)),y=__tsover_div(.5,n.max(p,m)),x=o.vec2f(__tsover_add(__tsover_mul(c.z,v),.5),__tsover_add(__tsover_mul(c.y,v),.5)),g=o.vec2f(__tsover_add(__tsover_mul(c.x,h),.5),__tsover_add(__tsover_mul(c.z,h),.5)),w=o.vec2f(__tsover_add(__tsover_mul(c.x,y),.5),__tsover_add(__tsover_mul(c.y,y),.5)),f=n.select(w,x,u.x>u.z),A=n.select(w,g,u.y>u.z);return n.select(A,f,u.x>u.y)}),{v:1,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,"f3dRot",["h","rp0","rp1"]]],[13,"rn",[6,"f3dRot",["n","rp0","rp1"]]],[13,"an",[6,[7,"d","vec3f"],[[6,[7,"std","abs"],[[7,"rn","x"]]],[6,[7,"std","abs"],[[7,"rn","y"]]],[6,[7,"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,[7,"std","max"],["hy","hz"]]]],[13,"scaleY",[1,[5,"0.5"],"/",[6,[7,"std","max"],["hx","hz"]]]],[13,"scaleZ",[1,[5,"0.5"],"/",[6,[7,"std","max"],["hx","hy"]]]],[13,"uvX",[6,[7,"d","vec2f"],[[1,[1,[7,"rp","z"],"*","scaleX"],"+",[5,"0.5"]],[1,[1,[7,"rp","y"],"*","scaleX"],"+",[5,"0.5"]]]]],[13,"uvY",[6,[7,"d","vec2f"],[[1,[1,[7,"rp","x"],"*","scaleY"],"+",[5,"0.5"]],[1,[1,[7,"rp","z"],"*","scaleY"],"+",[5,"0.5"]]]]],[13,"uvZ",[6,[7,"d","vec2f"],[[1,[1,[7,"rp","x"],"*","scaleZ"],"+",[5,"0.5"]],[1,[1,[7,"rp","y"],"*","scaleZ"],"+",[5,"0.5"]]]]],[13,"pickXZ",[6,[7,"std","select"],["uvZ","uvX",[1,[7,"an","x"],">",[7,"an","z"]]]]],[13,"pickYZ",[6,[7,"std","select"],["uvZ","uvY",[1,[7,"an","y"],">",[7,"an","z"]]]]],[10,[6,[7,"std","select"],["pickYZ","pickXZ",[1,[7,"an","x"],">",[7,"an","y"]]]]]]],externalNames:["f3dRot","d","std"]},externals:()=>({f3dRot:Xo,d:o,std:n})})&&e.f)({})),lN=b.fn([o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=Xo(t,s,r),c=r.z,d=r.w,u=n.clamp(l.y,__tsover_mul(d,-1),d);return __tsover_sub(n.length(o.vec3f(l.x,__tsover_sub(l.y,u),l.z)),c)}),{v:1,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,"f3dRot",["p","rp0","rp1"]]],[13,"radius",[7,"rp1","z"]],[13,"halfHeight",[7,"rp1","w"]],[13,"clampedY",[6,[7,"std","clamp"],[[7,"rp","y"],[1,"halfHeight","*",[4,"-",[5,"1"]]],"halfHeight"]]],[10,[1,[6,[7,"std","length"],[[6,[7,"d","vec3f"],[[7,"rp","x"],[1,[7,"rp","y"],"-","clampedY"],[7,"rp","z"]]]]],"-","radius"]]]],externalNames:["f3dRot","std","d"]},externals:()=>({f3dRot:Xo,std:n,d:o})})&&e.f)({})),cN=b.fn([o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=Xo(t,r,a),d=__tsover_add(__tsover_div(n.atan2(c.z,c.x),6.283185307179586),.5),u=__tsover_add(a.w,a.z);return o.vec2f(d,n.clamp(__tsover_add(__tsover_mul(__tsover_div(c.y,u),.5),.5),0,1))}),{v:1,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,"f3dRot",["h","rp0","rp1"]]],[13,"u",[1,[1,[6,[7,"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,[7,"d","vec2f"],["u",[6,[7,"std","clamp"],[[1,[1,[1,[7,"rp","y"],"/","span"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]]]],externalNames:["f3dRot","std","d"]},externals:()=>({f3dRot:Xo,std:n,d:o})})&&e.f)({})),dN=b.fn([o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=Xo(t,s,r),c=r.z,d=r.w,u=a.x,p=n.atan2(l.z,l.x),m=o.vec3f(__tsover_mul(n.cos(p),c),0,__tsover_mul(n.sin(p),c)),_=o.vec3f(__tsover_sub(l.x,m.x),__tsover_sub(l.y,m.y),__tsover_sub(l.z,m.z)),v=__tsover_mul(p,.5),h=o.vec3f(__tsover_mul(n.cos(p),n.cos(v)),n.sin(v),__tsover_mul(n.sin(p),n.cos(v))),y=n.dot(_,h),x=n.max(__tsover_sub(n.abs(y),d),o.f32(0)),g=o.vec3f(__tsover_sub(_.x,__tsover_mul(h.x,y)),__tsover_sub(_.y,__tsover_mul(h.y,y)),__tsover_sub(_.z,__tsover_mul(h.z,y)));return __tsover_sub(n.length(o.vec2f(x,n.length(g))),u)}),{v:1,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,"f3dRot",["p","rp0","rp1"]]],[13,"ringRadius",[7,"rp1","z"]],[13,"halfWidth",[7,"rp1","w"]],[13,"thickness",[7,"rp2","x"]],[13,"phi",[6,[7,"std","atan2"],[[7,"rp","z"],[7,"rp","x"]]]],[13,"spine",[6,[7,"d","vec3f"],[[1,[6,[7,"std","cos"],["phi"]],"*","ringRadius"],[5,"0"],[1,[6,[7,"std","sin"],["phi"]],"*","ringRadius"]]]],[13,"dvec",[6,[7,"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,[7,"d","vec3f"],[[1,[6,[7,"std","cos"],["phi"]],"*",[6,[7,"std","cos"],["halfPhi"]]],[6,[7,"std","sin"],["halfPhi"]],[1,[6,[7,"std","sin"],["phi"]],"*",[6,[7,"std","cos"],["halfPhi"]]]]]],[13,"vProj",[6,[7,"std","dot"],["dvec","ev"]]],[13,"du",[6,[7,"std","max"],[[1,[6,[7,"std","abs"],["vProj"]],"-","halfWidth"],[6,[7,"d","f32"],[[5,"0"]]]]]],[13,"perp",[6,[7,"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,[7,"std","length"],[[6,[7,"d","vec2f"],["du",[6,[7,"std","length"],["perp"]]]]]],"-","thickness"]]]],externalNames:["f3dRot","std","d"]},externals:()=>({f3dRot:Xo,std:n,d:o})})&&e.f)({})),uN=b.fn([o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=Xo(t,r,a),d=a.z,u=a.w,p=n.atan2(c.z,c.x),m=o.vec3f(__tsover_mul(n.cos(p),d),0,__tsover_mul(n.sin(p),d)),_=o.vec3f(__tsover_sub(c.x,m.x),__tsover_sub(c.y,m.y),__tsover_sub(c.z,m.z)),v=__tsover_mul(p,.5),h=o.vec3f(__tsover_mul(n.cos(p),n.cos(v)),n.sin(v),__tsover_mul(n.sin(p),n.cos(v))),y=n.dot(_,h);return o.vec2f(__tsover_add(__tsover_div(p,6.283185307179586),.5),__tsover_add(__tsover_mul(__tsover_div(y,u),.5),.5))}),{v:1,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,"f3dRot",["h","rp0","rp1"]]],[13,"ringRadius",[7,"rp1","z"]],[13,"halfWidth",[7,"rp1","w"]],[13,"phi",[6,[7,"std","atan2"],[[7,"rp","z"],[7,"rp","x"]]]],[13,"spine",[6,[7,"d","vec3f"],[[1,[6,[7,"std","cos"],["phi"]],"*","ringRadius"],[5,"0"],[1,[6,[7,"std","sin"],["phi"]],"*","ringRadius"]]]],[13,"dvec",[6,[7,"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,[7,"d","vec3f"],[[1,[6,[7,"std","cos"],["phi"]],"*",[6,[7,"std","cos"],["halfPhi"]]],[6,[7,"std","sin"],["halfPhi"]],[1,[6,[7,"std","sin"],["phi"]],"*",[6,[7,"std","cos"],["halfPhi"]]]]]],[13,"vProj",[6,[7,"std","dot"],["dvec","ev"]]],[10,[6,[7,"d","vec2f"],[[1,[1,"phi","/",[5,"6.283185307179586"]],"+",[5,"0.5"]],[1,[1,[1,"vProj","/","halfWidth"],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]],externalNames:["f3dRot","std","d"]},externals:()=>({f3dRot:Xo,std:n,d:o})})&&e.f)({})),pN=b.fn([o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=s.x,c=s.y,d=s.z,u=r.x,p=r.y,m=r.z,_=n.cos(l),v=n.sin(l),h=__tsover_add(__tsover_mul(t.x,_),__tsover_mul(t.y,v)),y=__tsover_add(__tsover_mul(__tsover_mul(t.x,v),-1),__tsover_mul(t.y,_)),x=__tsover_add(__tsover_add(__tsover_mul(h,c),p),__tsover_mul(i,Ev)),g=n.cos(x),w=n.sin(x),f=__tsover_add(__tsover_mul(y,g),__tsover_mul(t.z,w)),A=__tsover_add(__tsover_mul(__tsover_mul(y,w),-1),__tsover_mul(t.z,g)),E=n.max(__tsover_sub(n.abs(f),d),o.f32(0));return __tsover_div(__tsover_sub(n.length(o.vec2f(E,A)),u),m)}),{v:1,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,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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","*","TWIST_SPEED"]]],[13,"ca",[6,[7,"std","cos"],["twistAngle"]]],[13,"sa",[6,[7,"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,[7,"std","max"],[[1,[6,[7,"std","abs"],["localU"]],"-","halfW"],[6,[7,"d","f32"],[[5,"0"]]]]]],[10,[1,[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],["du","localV"]]]],"-","thickness"],"/","lipschitz"]]]],externalNames:["std","TWIST_SPEED","d"]},externals:()=>({std:n,TWIST_SPEED:Ev,d:o})})&&e.f)({})),mN=b.fn([o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=r.x,d=r.y,u=r.z,p=r.w,m=a.y,_=n.cos(c),v=n.sin(c),h=__tsover_add(__tsover_mul(t.x,_),__tsover_mul(t.y,v)),y=__tsover_add(__tsover_mul(__tsover_mul(t.x,v),-1),__tsover_mul(t.y,_)),x=__tsover_add(__tsover_add(__tsover_mul(h,d),m),__tsover_mul(l,Ev)),g=n.cos(x),w=n.sin(x),f=__tsover_add(__tsover_mul(y,g),__tsover_mul(t.z,w)),A=n.max(n.min(f,u),__tsover_mul(u,-1));return o.vec2f(__tsover_add(__tsover_mul(h,.15),.5),__tsover_add(__tsover_div(A,p),.5))}),{v:1,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,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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","*","TWIST_SPEED"]]],[13,"ca",[6,[7,"std","cos"],["twistAngle"]]],[13,"sa",[6,[7,"std","sin"],["twistAngle"]]],[13,"localU",[1,[1,"rpy","*","ca"],"+",[1,[7,"h","z"],"*","sa"]]],[13,"localUClamped",[6,[7,"std","max"],[[6,[7,"std","min"],["localU","halfW"]],[1,"halfW","*",[4,"-",[5,"1"]]]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"rpx","*",[5,"0.15"]],"+",[5,"0.5"]],[1,[1,"localUClamped","/","width"],"+",[5,"0.5"]]]]]]],externalNames:["std","TWIST_SPEED","d"]},externals:()=>({std:n,TWIST_SPEED:Ev,d:o})})&&e.f)({})),vu=(e,t)=>
242e.$name(t),zE={sphere:{sdf:vu(sN,"f3dSphereSdf"),surfaceUV:oN,uvHint:"f3dSphereUV",steps:64,stepCap:1.5,hitEps:.001},torus:{sdf:vu(rN,"f3dTorusSdf"),surfaceUV:aN,uvHint:"f3dTorusUV",steps:96,stepCap:.5,hitEps:.001},box:{sdf:vu(nN,"f3dBoxSdf"),surfaceUV:iN,uvHint:"f3dBoxUV",steps:96,stepCap:.5,hitEps:.001},capsule:{sdf:vu(lN,"f3dCapsuleSdf"),surfaceUV:cN,uvHint:"f3dCapsuleUV",steps:64,stepCap:1.5,hitEps:.001},mobius:{sdf:vu(dN,"f3dMobiusSdf"),surfaceUV:uN,uvHint:"f3dMobiusUV",steps:96,stepCap:.3,hitEps:.001},ribbon:{sdf:vu(pN,"f3dRibbonSdf"),surfaceUV:mN,uvHint:"f3dRibbonUV",steps:128,stepCap:.08,hitEps:.002}};function _N(e){let t=e.steps,s=e.stepCap,r=e.hitEps,a=20,i=e.sdf;return b.fn([o.vec2f,o.f32,o.vec2f,o.f32,o.vec4f,o.vec4f,o.vec4f,o.f32],V2)((l=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(l.f=((c,d,u,p,m,_,v,h)=>{"use gpu";let y=u.x,x=__tsover_sub(1,u.y),g=__tsover_sub(8,__tsover_mul(p,.06)),w=o.vec3f(0,0,__tsover_mul(g,-1)),f=n.normalize(o.vec3f(__tsover_mul(__tsover_sub(c.x,y),d),__tsover_sub(c.y,x),1.5)),A=o.f32(0),E=o.f32(0),P=o.f32(a);for(let z=0;z<t;z++){let L=i(w.add(f.mul(A)),m,_,v,h);if(L<r){E=o.f32(1);break}if(A>P)break;A=__tsover_add(A,n.min(L,s))}let C=w.add(f.mul(A)),$=.001,U=__tsover_mul($,-1),k=i(C.add(o.vec3f($,U,U)),m,_,v,h),R=i(C.add(o.vec3f(U,U,$)),m,_,v,h),D=i(C.add(o.vec3f(U,$,U)),m,_,v,h),M=i(C.add(o.vec3f($,$,$)),m,_,v,h);return V2({hitPos:C,normal:n.normalize(o.vec3f(1,-1,-1).mul(k).add(o.vec3f(-1,-1,1).mul(R)).add(o.vec3f(-1,1,-1).mul(D)).add(o.vec3f(1,1,1).mul(M))),rd:f,hit:E})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"zoom"},{type:"i",name:"rp0"},{type:"i",name:"rp1"},{type:"i",name:"rp2"},{type:"i",name:"t"}],body:[0,[[13,"cx",[7,"center","x"]],[13,"cy",[1,[5,"1"],"-",[7,"center","y"]]],[13,"camDist",[1,[5,"8"],"-",[1,"zoom","*",[5,"0.06"]]]],[13,"ro",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[1,"camDist","*",[4,"-",[5,"1"]]]]]],[13,"rd",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[7,"uv","x"],"-","cx"],"*","aspect"],[1,[7,"uv","y"],"-","cy"],[5,"1.5"]]]]]],[12,"rayT",[6,[7,"d","f32"],[[5,"0"]]]],[12,"hit",[6,[7,"d","f32"],[[5,"0"]]]],[13,"maxDistF",[6,[7,"d","f32"],["MAX_DIST"]]],[14,[12,"i",[5,"0"]],[1,"i","<","STEPS"],[102,"++","i"],[0,[[13,"p",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["rayT"]]]]],[13,"dd",[6,"sdf",["p","rp0","rp1","rp2","t"]]],[11,[1,"dd","<","HIT_EPS"],[0,[[2,"hit","=",[6,[7,"d","f32"],[[5,"1"]]]],[17]]]],[11,[1,"rayT",">","maxDistF"],[0,[[17]]]],[2,"rayT","=",[1,"rayT","+",[6,[7,"std","min"],["dd","STEP_CAP"]]]]]]],[13,"hitPos",[6,[7,"ro","add"],[[6,[7,"rd","mul"],["rayT"]]]]],[13,"hh",[5,"0.001"]],[13,"hn",[1,"hh","*",[4,"-",[5,"1"]]]],[13,"k0",[6,"sdf",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["hh","hn","hn"]]]],"rp0","rp1","rp2","t"]]],[13,"k1",[6,"sdf",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["hn","hn","hh"]]]],"rp0","rp1","rp2","t"]]],[13,"k2",[6,"sdf",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["hn","hh","hn"]]]],"rp0","rp1","rp2","t"]]],[13,"k3",[6,"sdf",[[6,[7,"hitPos","add"],[[6,[7,"d","vec3f"],["hh","hh","hh"]]]],"rp0","rp1","rp2","t"]]],[13,"normal",[6,[7,"std","normalize"],[[6,[7,[6,[7,[6,[7,[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[4,"-",[5,"1"]],[4,"-",[5,"1"]]]],"mul"],["k0"]],"add"],[[6,[7,[6,[7,"d","vec3f"],[[4,"-",[5,"1"]],[4,"-",[5,"1"]],[5,"1"]]],"mul"],["k1"]]]],"add"],[[6,[7,[6,[7,"d","vec3f"],[[4,"-",[5,"1"]],[5,"1"],[4,"-",[5,"1"]]]],"mul"],["k2"]]]],"add"],[[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"mul"],["k3"]]]]]]],[10,[6,"Distortion3DTrace",[[104,{hitPos:"hitPos",normal:"normal",rd:"rd",hit:"hit"}]]]]]],externalNames:["d","std","MAX_DIST","STEPS","sdf","HIT_EPS","STEP_CAP","Distortion3DTrace"]},externals:()=>({d:o,std:n,MAX_DIST:a,STEPS:t,sdf:i,HIT_EPS:r,STEP_CAP:s,Distortion3DTrace:V2})})&&l.f)({}))}var fN={torus:{rotX:-90,spinY:.05},box:{rotX:15,spinY:.1},sphere:{spinY:.1},capsule:{spinY:.1},mobius:{rotX:-30,spinY:.05}},BE={name:"Form3D",boundingBoxDeclaration:{aspectRatio:null},category:"Distortions",description:"Wraps child content onto a 3D raymarched shape with lighting.",requiresRTT:!0,requiresChild:!0,animatedTime:{speed:"speed"}
vendor: 5,949 bytes, line 242
242,extraFields:{_f3p0:{schema:o.vec4f,initial:[1,0,1,0]},_f3p1:{schema:o.vec4f,initial:[1,0,.35,.1]},_f3p2:{schema:o.vec4f,initial:[.3,.02,0,0]}},props:{shape3d:{default:tN,description:"3D shape and its parameters",ui:{type:"shape3d",label:"Shape",group:"Shape"}},shape3dType:{default:"ribbon",compileTime:!0,description:"Active shape type \u2014 triggers recompile when shape is switched"},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the shape on screen",ui:{type:"position",label:"Center",group:"Position"}},zoom:{default:50,description:"Camera zoom level",ui:{type:["range","map"],min:10,max:200,step:1,label:"Zoom",group:"Scene"}},glossiness:{default:50,description:"Specular highlight intensity and sharpness",ui:{type:["range","map"],min:0,max:200,step:1,label:"Glossiness",group:"Lighting"}},lighting:{default:50,description:"Overall intensity of lighting effects",ui:{type:["range","map"],min:0,max:200,step:1,label:"Lighting",group:"Lighting"}},uvMode:{default:"stretch",transform:Ot,description:"How to handle UV coordinates at shape boundaries",ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"UV Edges",group:"Scene"}},speed:{default:1,description:"Animation speed \u2014 scales all spin rates",ui:{type:"range",min:-10,max:10,step:.1,label:"Speed",group:"Animation"}}},fragment:e=>{let{childNode:t,convertToTexture:s,uniforms:r,propValues:a,getCpuValue:i,onBeforeRender:l,ctx:c}=e;if(!t)return me;let d=s(t),u=a.shape3dType||"ribbon",p=zE[u]??zE.ribbon,m=0,_=0,v=0,h="",y=(()=>{try{return JSON.parse(i("shape3d"))}catch{return{}}})(),x=(R,D)=>typeof y[R]=="number"?y[R]:D,g=R=>{let D=i("shape3d");if(typeof D=="string"){if(D!==h){h=D;try{y=JSON.parse(D)}catch{}}}else D&&typeof D=="object"&&(y=D);let M=i("speed")??1;if(u==="ribbon"){let F=x("angle",0)*Sv,Q=x("twist",50)*.03,ae=x("width",40)*.012,j=ae*.5,q=x("thickness",20)*.001+.01,te=x("seed",0),ne=Math.max(j*Q,1);e.setExtraField("_f3p0",[F,Q,j,ae]),e.setExtraField("_f3p1",[q,te,ne,0]),e.setExtraField("_f3p2",[0,0,0,0]);return}let z=fN[u]??{};m+=R*M*x("spinX",z.spinX??0)*O2,_+=R*M*x("spinY",z.spinY??0)*O2,v+=R*M*x("spinZ",z.spinZ??0)*O2;let L=x("rotX",z.rotX??0)*Sv+m,B=x("rotY",z.rotY??0)*Sv+_,N=x("rotZ",z.rotZ??0)*Sv+v,G=[Math.cos(L),Math.sin(L),Math.cos(B),Math.sin(B)],I=Math.cos(N),X=Math.sin(N);u==="sphere"?(e.setExtraField("_f3p0",G),e.setExtraField("_f3p1",[I,X,x("radius",60)*.008+.1,0]),e.setExtraField("_f3p2",[0,0,0,0])):u==="torus"?(e.setExtraField("_f3p0",G),e.setExtraField("_f3p1",[I,X,x("outerRadius",60)*.008+.1,x("tubeRadius",25)*.006+.05]),e.setExtraField("_f3p2",[0,0,0,0])):u==="box"?(e.setExtraField("_f3p0",G),e.setExtraField("_f3p1",[I,X,x("sizeX",50)*.006,x("sizeY",50)*.006]),e.setExtraField("_f3p2",[x("sizeZ",50)*.006,x("rounding",20)*.001,0,0])):u==="capsule"?(e.setExtraField("_f3p0",G),e.setExtraField("_f3p1",[I,X,x("radius",25)*.006+.05,x("height",80)*.005]),e.setExtraField("_f3p2",[0,0,0,0])):(e.setExtraField("_f3p0",G),e.setExtraField("_f3p1",[I,X,x("ringRadius",60)*.008+.1,x("halfWidth",30)*.005]),e.setExtraField("_f3p2",[x("thickness",8)*.001+.005,0,0,0]))};g(0),l(R=>g(R?.deltaTime??0));let w=Fe(e),f=T(_N(p),`form3dTrace_${u}`,[c.uv,c.aspect,r.center,r.zoom,r._f3p0,r._f3p1,r._f3p2,w]),A=f.member("hitPos"),E=f.member("normal"),P=f.member("rd"),C=f.member("hit"),$=T(QO,"applyUVMode3d",[T(p.surfaceUV,p.uvHint,[A,E,r._f3p0,r._f3p1,r._f3p2,w]),r.uvMode]),U=$.member("xy"),k=$.member("z");return T(eN,"distortion3dLighting",[T(Re,"unpremultiplyAlpha",[d.sample(U)]),E,P,C,k,r.glossiness.mul(.005),r.lighting.mul(.005)])}};var vN=wr({applyThinFilmEffect:()=>hN,thinFilmCompose:()=>YE,thinFilmCustomParams:()=>NE,thinFilmRainbow:()=>OE,thinFilmShade:()=>VE}),N2=.017453292519943295,hu=6.283185307179586,VE=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=__tsover_div(t,s),h=n.max(__tsover_mul(i,.5),.001),y=n.max(n.sqrt(__tsover_add(__tsover_mul(r,r),__tsover_mul(a,a))),1e-4),x=__tsover_div(r,y),g=__tsover_div(a,y),w=n.clamp(__tsover_mul(__tsover_div(__tsover_mul(v,-1),h),32),0,1),f=n.max(__tsover_mul(l,.1),.001),A=n.clamp(__tsover_div(__tsover_mul(v,-1),f),0,1),E=__tsover_div(1,n.sqrt(__tsover_add(__tsover_mul(y,y),1))),P=n.mix(7,1.5,n.clamp(l,0,1)),C=__tsover_mul(n.pow(__tsover_sub(1,E),P),w),$=__tsover_mul(__tsover_mul(__tsover_sub(1,A),__tsover_sub(1,A)),w),U=n.select($,C,_>.5),k=n.cos(__tsover_mul(p,N2)),R=n.sin(__tsover_mul(p,N2)),D=__tsover_add(__tsover_mul(x,k),__tsover_mul(g,R)),M=__tsover_sub(__tsover_mul(g,k),__tsover_mul(x,R)),z=__tsover_mul(m,hu),L=__tsover_add(__tsover_mul(D,n.cos(z)),__tsover_mul(M,n.sin(z))),B=__tsover_mul(__tsover_mul(c,n.max(__tsover_mul(v,-1),0)),10),N=__tsover_mul(__tsover_mul(c,A),2),G=n.select(N,B,_>.5),I=__tsover_add(__tsover_add(u,__tsover_mul(d,L)),G);return o.vec2f(I,U)}),{v:1,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,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"gLen",[6,[7,"std","max"],[[6,[7,"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,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"rimWidth",[6,[7,"std","max"],[[1,"rimWidthUniform","*",[5,"0.1"]],[5,"0.001"]]]],[13,"depth",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","rimW
242idth"],[5,"0"],[5,"1"]]]],[13,"cosView",[1,[5,"1"],"/",[6,[7,"std","sqrt"],[[1,[1,"gLen","*","gLen"],"+",[5,"1"]]]]]],[13,"exponent",[6,[7,"std","mix"],[[5,"7"],[5,"1.5"],[6,[7,"std","clamp"],["rimWidthUniform",[5,"0"],[5,"1"]]]]]],[13,"volRim",[1,[6,[7,"std","pow"],[[1,[5,"1"],"-","cosView"],"exponent"]],"*","rb1"]],[13,"flatRim",[1,[1,[1,[5,"1"],"-","depth"],"*",[1,[5,"1"],"-","depth"]],"*","rb1"]],[13,"rim",[6,[7,"std","select"],["flatRim","volRim",[1,"volumetric",">",[5,"0.5"]]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"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,[7,"std","cos"],["theta"]]],"+",[1,"baseSin","*",[6,[7,"std","sin"],["theta"]]]]],[13,"thickVol",[1,[1,"thickness","*",[6,[7,"std","max"],[[1,"sdf","*",[4,"-",[5,"1"]]],[5,"0"]]]],"*",[5,"10"]]],[13,"thickFlat",[1,[1,"thickness","*","depth"],"*",[5,"2"]]],[13,"thicknessTerm",[6,[7,"std","select"],["thickFlat","thickVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"phase",[1,[1,"hueShift","+",[1,"dispersion","*","rotatedDot"]],"+","thicknessTerm"]],[10,[6,[7,"d","vec2f"],["phase","rim"]]]]],externalNames:["std","DEG_TO_RAD","TWO_PI","d"]},externals:()=>({std:n,DEG_TO_RAD:N2,TWO_PI:hu,d:o})})&&e.f)({})),OE=b.fn([o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.cos(__tsover_mul(__tsover_add(t,0),hu)),r=n.cos(__tsover_mul(__tsover_add(t,.3333),hu)),a=n.cos(__tsover_mul(__tsover_add(t,.6667),hu)),i=o.vec3f(s,r,a).mul(.5);return o.vec3f(__tsover_add(i.x,.5),__tsover_add(i.y,.5),__tsover_add(i.z,.5))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[13,"r",[6,[7,"std","cos"],[[1,[1,"phase","+",[5,"0"]],"*","TWO_PI"]]]],[13,"g",[6,[7,"std","cos"],[[1,[1,"phase","+",[5,"0.3333"]],"*","TWO_PI"]]]],[13,"b",[6,[7,"std","cos"],[[1,[1,"phase","+",[5,"0.6667"]],"*","TWO_PI"]]]],[13,"half",[6,[7,[6,[7,"d","vec3f"],["r","g","b"]],"mul"],[[5,"0.5"]]]],[10,[6,[7,"d","vec3f"],[[1,[7,"half","x"],"+",[5,"0.5"]],[1,[7,"half","y"],"+",[5,"0.5"]],[1,[7,"half","z"],"+",[5,"0.5"]]]]]]],externalNames:["std","TWO_PI","d"]},externals:()=>({std:n,TWO_PI:hu,d:o})})&&e.f)({})),NE=b.fn([o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.fract(t),r=__tsover_mul(s,3),a=n.fract(r),i=n.floor(r),l=n.select(o.f32(0),o.f32(1),i<=1.5),c=n.select(o.f32(0),o.f32(1),i<=.5);return o.vec3f(a,l,c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"phase"}],body:[0,[[13,"t",[6,[7,"std","fract"],["phase"]]],[13,"t3",[1,"t","*",[5,"3"]]],[13,"si",[6,[7,"std","fract"],["t3"]]],[13,"floorT3",[6,[7,"std","floor"],["t3"]]],[13,"gate12",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"floorT3","<=",[5,"1.5"]]]]],[13,"gate01",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"floorT3","<=",[5,"0.5"]]]]],[10,[6,[7,"d","vec3f"],["si","gate12","gate01"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),YE=b.fn([o.vec3f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec3f(1,1,1),l=n.mix(i,t,a).mul(s).mul(r),c=n.clamp(s,0,1);return o.vec4f(l.x,l.y,l.z,c)}),{v:1,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,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]],[13,"col",[6,[7,"std","mix"],["white","baseColor","saturation"]]],[13,"rgb",[6,[7,[6,[7,"col","mul"],["rim"]],"mul"],["intensity"]]],[13,"alpha",[6,[7,"std","clamp"],["rim",[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({}));function hN(e,t,s){let{uniforms:r,propValues:a,ctx:i}=e,l=s?.volumetric??!1,c=s?.gradSampler??t,d=le(l?1:0),u=e.props.member("_animTime"),p=T(Dl,"sdfSpaceUV",[r.center,r.scale,r.rotation,i.uv,i.aspect]),m=t(p).member("r"),_=c(T(Lr,"offsetUV",[p,le(.01),le(0)])),v=c(T(Lr,"offsetUV",[p,le(0),le(.01)])),h=T(tv,"glassGradient",[m,_.member("r"),v.member("r")]),y=h.member("x"),x=h.member("y"),g=T(VE,"thinFilmShade",[m,r.scale,y,x,r.edgeSoftness,r.rimWidth,r.thickness,r.dispersion,r.hueShift,r.lightAngle,u,d]),w=g.member("x"),f=g.member("y"),A;
242if(a.mode==="custom"){let E=Ye[typeof a.colorSpace=="number"?a.colorSpace:0]??Be,P=T(NE,"thinFilmCustomParams",[w]),C=P.member("x"),$=P.member("y"),U=P.member("z"),k=T(E,"mixColors",[r.colorA,r.colorB,C]),R=T(E,"mixColors",[r.colorB,r.colorC,C]);A=Ns(Ns(T(E,"mixColors",[r.colorC,r.colorA,C]),R,$),k,U).member("rgb")}else A=T(OE,"thinFilmRainbow",[w]);return T(YE,"thinFilmCompose",[A,f,r.intensity,r.saturation])}var{applyThinFilmEffect:Y2}=vN,{createSvgSdfSampler:yN,createAnalyticSdfSampler:gN,driveAnalyticSubProps:xN,ANALYTIC_SDF_EXTRA_FIELDS:bN}=ft,{createVolumetricFieldComputeNode:wN,buildVolumetricFieldSampler:TN,VOLUMETRIC_FIELD_EXTRA_FIELDS:SN,is3dShapeType:AN,isVolumetricShapeType:EN}=ys,MN=JSON.stringify({type:"circleSDF",radius:.35});function CN(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var GE={name:"ThinFilm",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Iridescent thin-film edge",animatedTime:{speed:"speed"},extraFields:{...SN,...bN},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:we,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 colour 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 colours",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 colours",ui:{type:"select",options:[{label:"Rainbow",value:"rainbow"},{label:"Custom",value:"custom"}],label:"Mode",group:"Colors"}},colorA:{default:"#2b6fff",transform:O,description:"First colour in the rim cycle",ui:{type:"color",label:"Color 1",group:"Colors",condition:{mode:"custom"}}},colorB:{default:"#ffffff",transform:O,description:"Second colour in the rim cycle",ui:{type:"color",label:"Color 2",group:"Colors",condition:{mode:"custom"}}},colorC:{default:"#ff7a21",transform:O,description:"Third colour in the rim cycle",ui:{type:"color",label:"Color 3",group:"Colors",condition:{mode:"custom"}}},colorSpace:{default:"oklch",transform:Ue,compileTime:!0,description:"Colour space used to blend between custom colours",ui:{type:"select",options:ze,label:"Color Space",group:"Colors",condition:{mode:"custom"}}},speed:{default:.1,description:"Speed at which the colours rotate around the rim (0 = static)",ui:{type:"range",min:-1,max:1,step:.
24201,label:"Speed",group:"Animation"}},shape:{default:MN,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."}},compute:e=>{let t=wN(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,getCpuValue:a}=e,i=t?.volumetricFieldTexture;if(i){let u=TN(i,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});return Y2(e,u.volumetricFieldSampler,{volumetric:!0,gradSampler:u.volumetricFieldSamplerFast})}let l=r.shapeSdfUrl||"",c=r.shapeType||"";if(l)return Y2(e,yN(e,l),{volumetric:EN(c)});let d=CN(c,a("shape"));return Y2(e,gN(d,xN(e,()=>a("shape"))),{volumetric:AN(d)})}};var WE=Array.from({length:32},(e,t)=>{let s=(t/31-.5)*2;return Math.exp(-.5*s*s/.64)}),PN=WE.reduce((e,t)=>e+t),kN=WE.map(e=>e/PN);var RN=b.fn([o.vec2f,o.f32,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(t.x,__tsover_sub(1,t.y)),c=__tsover_div(__tsover_mul(s,.005),31),d=__tsover_mul(i,c),u=n.cos(d),p=n.sin(d),m=__tsover_sub(r.x,l.x),_=__tsover_sub(r.y,l.y),v=__tsover_mul(m,a),h=_,y=__tsover_sub(__tsover_mul(v,u),__tsover_mul(h,p)),x=__tsover_add(__tsover_mul(v,p),__tsover_mul(h,u));return o.vec2f(__tsover_add(__tsover_div(y,a),l.x),__tsover_add(x,l.y))}),{v:1,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,[7,"d","vec2f"],[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"angleStep",[1,[1,"intensity","*",[5,"0.005"]],"/",[5,"31"]]],[13,"angle",[1,"tapIndex","*","angleStep"]],[13,"cosA",[6,[7,"std","cos"],["angle"]]],[13,"sinA",[6,[7,"std","sin"],["angle"]]],[13,"initX",[1,[7,"uv","x"],"-",[7,"centerPos","x"]]],[13,"initY",[1,[7,"uv","y"],"-",[7,"centerPos","y"]
242]],[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,[7,"d","vec2f"],[[1,[1,"rotX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rotY","+",[7,"centerPos","y"]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),XE={name:"AngularBlur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Radial motion blur rotating around a center point",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:20,description:"Intensity of the angular blur effect",ui:{type:["range","map"],min:0,max:100,step:1,label:"Blur Intensity",group:"Effect"}},center:{default:{x:.5,y:.5},transform:we,description:"The center point of the rotation",ui:{type:"position",label:"Center Position",group:"Position"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i;for(let l=0;l<32;l++){let c=T(RN,"angularBlurTapCoord",[e.center,e.intensity,s.uv,s.aspect,le(l)]),d=a.sample(c).mul(kN[l]);i=i?i.add(d):d}return T(Re,"unpremultiplyAlpha",[i])}};var qE=.008726646259971648,$N=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=to(t,a,d,u),m=__tsover_mul(r,qE);return Is(ym(p.x,p.y,s,m),i,l,c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"aperture"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"halfAngle",[1,"aperture","*","APERTURE_TO_HALF_ANGLE"]],[13,"dist",[6,[7,"sdf","arcSdf"],[[7,"local","x"],[7,"local","y"],"radiu
242s","halfAngle"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf","APERTURE_TO_HALF_ANGLE"]},externals:()=>({sdf:ft,APERTURE_TO_HALF_ANGLE:qE})})&&e.f)({})),HE={name:"Arc",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Pie sector (arc wedge) with adjustable radius and aperture angle",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the arc",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the arc",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.38,description:"Radius of the pie sector",ui:{type:"range",min:0,max:1,step:.01,label:"Size",group:"Shape"}},aperture:{default:270,description:"Aperture angle of the wedge in degrees (360 = full circle)",ui:{type:"range",min:0,max:360,step:1,label:"Aperture",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
242olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T($N,"arcShape",[t.center,t.radius,t.aperture,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var Ol=2048,jE=1080,ZE={"JetBrains Mono":"JetBrains+Mono","Fira Code":"Fira+Code","Source Code Pro":"Source+Code+Pro","IBM Plex Mono":"IBM+Plex+Mono","Space Mono":"Space+Mono","Roboto Mono":"Roboto+Mono","Courier Prime":"Courier+Prime","Geist Mono":"Geist+Mono",VT323:"VT323","Press Start 2P":"Press+Start+2P",Silkscreen:"Silkscreen","Major Mono Display":"Major+Mono+Display","Syne Mono":"Syne+Mono","Nova Mono":"Nova+Mono","Xanh Mono":"Xanh+Mono","Cutive Mono":"Cutive+Mono","Share Tech Mono":"Share+Tech+Mono","Martian Mono":"Martian+Mono","Azeret Mono":"Azeret+Mono"},KE=new Set;async function JE(e){if(KE.has(e)||!ZE[e])return;let t=ZE[e];if(!document.querySelector(`link[href*="${t}"]`)){let s=document.createElement("link");s.rel="stylesheet",s.href=`https://fonts.googleapis.com/css2?family=${t}:wght@400&display=swap`,document.head.appendChild(s)}try{if(document.fonts&&document.fonts.load){for(let s of[`400 12px "${e}"`,`12px "${e}"`,`400 12px ${e}`,`12px ${e}`])try{await document.fonts.load(s);break}catch{}await new Promise(s=>setTimeout(s,500))}else await new Promise(s=>setTimeout(s,1e3));KE.add(e)}catch{}}var UN=(e,t)=>typeof e=="number"?e:t,G2=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({cellCenter:o.vec2f,cellUV:o.vec2f,isOutside:o.f32}),"AsciiGrid"),DN=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],G2)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_div(s.y,jE),l=__tsover_mul(r,i),c=o.vec2f(__tsover_div(s.x,l),__tsover_div(s.y,l)),d=o.vec2f(__tsover_mul(t.x,c.x),__tsover_mul(t.y,c.y)),u=n.floor(d),p=n.fract(d),m=__tsover_sub(p.x,.5),_=__tsover_sub(p.y,.5),v=o.vec2f(__tsover_add(__tsover_div(m,a),.5),__tsover_add(__tsover_div(_,a),.5)),h=__tsover_mul(a,.5),y=n.select(o.f32(0),o.f32(1),n.abs(m)>h||n.abs(_)>h);return G2({cellCenter:o.vec2f(__tsover_div(__tsover_add(u.x,.5),c.x),__tsover_div(__tsover_add(u.y,.5),c.y)),cellUV:v,isOutside:y})}),{v:1,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,[7,"d","vec2f"],[[1,[7,"viewport","x"],"/","effectiveCellSize"],[1,[7,"viewport","y"],"/","effectiveCellSize"]]]],[13,"gridCoords",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*",[7,"mainGridSize","x"]],[1,[7,"uv","y"],"*",[7,"mainGridSize","y"]]]]],[13,"cellCoords",[6,[7,"std","floor"],["gridCoords"]]],[13,"rawCellUV",[6,[7,"std","fract"],["gridCoords"]]],[13,"centeredU",[1,[7,"rawCellUV","x"],"-",[5,"0.5"]]],[13,"centeredV",[1,[7,"rawCellUV","y"],"-",[5,"0.5"]]],[13,"cellUV",[6,[7,"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,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[3,[1,[6,[7,"std","abs"],["centeredU"]],">","half"],"||",[1,[6,[7,"std","abs"],["centeredV"]],">","half"]]]]],[13,"cellCenter",[6,[7,"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"}]]]]]],externalNames:["REFERENCE_HEIGHT","d","std","AsciiGrid"]},externals:()=>({REFERENCE_HEIGHT:jE,d:o,std:n,AsciiGrid:G2})})&&e.f)({})).$name("asciiGrid"),zN=b.fn([o.vec3f,o.f32,o.f32,o.f32,o.f32,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=n.dot(t,o.vec3f(.299,.587,.114)),d=n.pow(c,s),u=__tsover_sub(1,d),p=__tsover_mul(u,r),m=n.clamp(n.floor(p),0,__tsover_sub(r,1)),_=__tsover_sub(m,__tsover_mul(a,n.floor(__tsover_div(m,a)))),v=n.floor(__tsover_div(m,a)),h=__tsover_mul(__tsover_div(1,a),i),y=__tsover_mul(_,h),x=__tsover_mul(v,h);return o.vec2f(__tsover_add(y,__tsover_mul(l.x,h)),__tsover_add(x,__tsover_mul(l.y,h)))}),{v:1,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,[7,"std","dot"],["cellRgb",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"adjustedBrightness",[6,[7,"std","pow"],["rawBrightness","gamma"]]],[13,"invertedBrightness",[1,[5,"1"],"-","adjustedBrightness"]],[13,"scaledBrightness",[1,"invertedBrightness","*","charCount"]],[13,"charIndex",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["scaledBrightness"]],[5,"0"],[1,"charCount","-",[5,"1"]]]]],[13,"atlasCol",[1,"charIndex","-",[1,"atlasSize","*",[6,[7,"std","floor"],[[1,"charIndex","/","atlasSize"]]]]]],[13,"atlasRow",[6,[7,"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,[7,"d","vec2f"],[[1,"baseU","+",[1,[7,"cellUV","x"],"*","atlasCellSize"]],[1,"baseV","+",[1,[7,"cellUV","y"],"*","atlasCellSize"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("asciiAtlasUV"),IN=b.fn([o.vec3f,o.vec4f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=n.dot(t,o.vec3f(.299,.587,.114))<.1,c=s.w,d=c<a,u=n.select(o.f32(1),c,i>.5),p=l||r>.5||d,m=n.select(u,o.f32(0),p);return o.vec4f(__tsover_mul(t.x,s.x),__tsover_mul(t.y,s.y),__tsover_mul(t.z,s.z),m)}),{v:1,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,[7,"std","dot"],["asciiRgb",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"isBackgroun
242d",[1,"charBrightness","<",[5,"0.1"]]],[13,"sourceAlpha",[7,"cellColor","w"]],[13,"isBelowThreshold",[1,"sourceAlpha","<","alphaThreshold"]],[13,"outputAlpha",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],"sourceAlpha",[1,"preserveAlpha",">",[5,"0.5"]]]]],[13,"hide",[3,[3,"isBackground","||",[1,"isOutside",">",[5,"0.5"]]],"||","isBelowThreshold"]],[13,"finalAlpha",[6,[7,"std","select"],["outputAlpha",[6,[7,"d","f32"],[[5,"0"]]],"hide"]]],[10,[6,[7,"d","vec4f"],[[1,[7,"asciiRgb","x"],"*",[7,"cellColor","x"]],[1,[7,"asciiRgb","y"],"*",[7,"cellColor","y"]],[1,[7,"asciiRgb","z"],"*",[7,"cellColor","z"]],"finalAlpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("asciiCompose"),Mv={name:"Ascii",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Convert imagery to ASCII character art",requiresRTT:!0,requiresChild:!0,extraFields:{_charCount:{schema:o.f32,initial:9},_atlasScale:{schema:o.f32,initial:1},_atlasSize:{schema:o.f32,initial:3}},props:{characters:{default:"@%#*+=-:.",description:"Characters ordered from dense to sparse. First character is used for bright areas, last for dark areas.",ui:{type:"text",label:"Characters",group:"Effect"}},cellSize:{default:30,description:"Size of each ASCII character cell (normalized to 1080p reference, scales proportionally at other resolutions)",ui:{type:"range",min:8,max:100,step:1,label:"Cell Size",group:"Effect"}},fontFamily:{default:"JetBrains Mono",description:"Font family for characters",ui:{type:"select",options:[{label:"Azeret Mono",value:"Azeret Mono"},{label:"Courier Prime",value:"Courier Prime"},{label:"Cutive Mono",value:"Cutive Mono"},{label:"Fira Code",value:"Fira Code"},{label:"Geist Mono",value:"Geist Mono"},{label:"IBM Plex Mono",value:"IBM Plex Mono"},{label:"JetBrains Mono",value:"JetBrains Mono"},{label:"Major Mono Display",value:"Major Mono Display"},{label:"Martian Mono",value:"Martian Mono"},{label:"Nova Mono",value:"Nova Mono"},{label:"Press Start 2P",value:"Press Start 2P"},{label:"Roboto Mono",value:"Roboto Mono"},{label:"Share Tech Mono",value:"Share Tech Mono"},{label:"Silkscreen",value:"Silkscreen"},{label:"Source Code Pro",value:"Source Code Pro"},{label:"Space Mono",value:"Space Mono"},{label:"Syne Mono",value:"Syne Mono"},{label:"VT323",value:"VT323"},{label:"Xanh Mono",value:"Xanh Mono"}],label:"Font Family",group:"Font"}},spacing:{default:1,description:"Character size within each cell (1.0 = optimal size, 0.0 = smallest)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Character Size",group:"Effect"},transform:e=>.1+e*1.4},gamma:{default:1,description:"Brightness curve adjustment. <1 brightens darks (more light characters), >1 darkens midtones (more dark characters). Use to better fit characters to image brightness range.",ui:{type:["range","map"],min:.25,max:3,step:.01,label:"Gamma",group:"Effect"}},alphaThreshold:{default:0,description:"Pixels with alpha below this threshold become fully transparent.",ui:{type:"range",min:0,max:1,step:.01,label:"Alpha Threshold",group:"Effect"}},preserveAlpha:{default:!0,description:"When enabled, output alpha matches input alpha. When disabled, pixels above the alpha threshold become fully opaque.",ui:{type:"checkbox",label:"Preserve Alpha",group:"Effect"},transform:Wo}},fragment:e=>{let{uniforms:t,ctx:s,childNode:r,convertToTexture:a,onCleanup:i,onBeforeRender:l,getCpuValue:c,setExtraField:d,createMediaTexture:u,registerMediaTexture:p}=e;if(!r)return me;let m=a(r),_=u({width:Ol,height:Ol,label:"Ascii:atlas"});i(()=>_.destroy());let v=p(()=>_.texture),h=null,y=null,x=!1,g=($,U,k)=>{if(x||!$||$.length===0)return;let R=$.length,D=Math.max(2,Math.ceil(Math.sqrt(R))),M=128,z=Math.max(1,2/U),L=Math.min(M*z,Ol/D),B=L*.75;h||(h=document.createElement("canvas"),h.width=Ol,h.height=Ol,y=h.getContext("2d",{willReadFrequently:!0}));let N=y;if(!N)return;N.clearRect(0,0,Ol,Ol),N.fillStyle="#ffffff",N.font=`${B}px "${k}", ${k}, monospace`,!N.font.includes(k)&&!N.font.includes("IBM")&&!N.font.includes("Plex")&&(N.font=`${B}px ${k}, monospace`),N.textAlign="center",N.textBaseline="middle";for(let I=0;I<R;I++){let X=Math.floor(I/D),F=I%D;N.fillText($[I],F*L+L/2,X*L+L/2)}_.write(h);let G=D*L/Ol;d("_charCount",R),d("_atlasScale",G),d("_atlasSize",D)},w=()=>({characters:String(c("characters")??Mv.props.characters.default),fontFamily:String(c("fontFamily")??Mv.props.fontFamily.default),spacing:UN(c("spacing"),1.5)});setTimeout(()=>{let $=w();g($.characters,$.spacing,$.fontFamily),JE($.fontFamily).then(()=>{let U=w();g(U.characters,U.spacing,U.fontFamily)}).catch(()=>{})},0);let f="",A=0;l(()=>{let $=Date.now();if($-A<16)return;A=$;let U=w(),k=`${U.characters}|${U.fontFamily}|${U.spacing}`;k!==f&&(f=k,g(U.characters,U.spacing,U.fontFamily),JE(U.fontFamily).then(()=>g(U.characters,U.spacing,U.fontFamily)).catch(()=>{}))}),i(()=>{x=!0,h&&(h.width=0,h.height=0,h=null,y=null)});let E=T(DN,"asciiGrid",[s.uv,s.viewportSize,t.cellSize,t.spacing]),P=T(Re,"unpremultiplyAlpha",[m.sample(E.member("cellCenter"))]),C=T(zN,"asciiAtlasUV",[P.member("rgb"),t.gamma,t._charCount,t._atlasSize,t._atlasScale,E.member("cellUV")]);return T(IN,"asciiCompose",[v.sample(C,"nearestClamp").member("rgb"),P,E.member("isOutside"),t.alphaThreshold,t.preserveAlpha])}};var Fm=Math.PI*2,Bm=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=__tsover_add(__tsover_mul(m,.06),r),v=__tsover_add(p,__tsover_mul(s,31.7)),h=__tsover_mul(__tsover_mul(__tsover_sub(t.x,a),l),2),y=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(v,12.9)),4758.5)),Fm),x=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(v,78.2)),2847.1)),Fm),g=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(v,41.6)),1593.7)),Fm),w=__tsover_add(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(h,.7),__tsover_mul(_,.4)),y)),.15),__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(h,1.6),__tsover_mul(_,.65)),x)),.08)),__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(h,2.9),__tsover_mul(_,.3)),g)),.04)),f=Io(o.vec3f(__tsover_mul(h,.5),__tsover_mul(_,.25),__tsover_mul(v,.1))),A=__tsover_add(__tsover_add(i,__tsover_mul(w,c)),__tsover_mul(__tsover_mul(f,.14),
vendor: 26,635 bytes, line 242
242c)),E=__tsover_add(h,__tsover_mul(f,2.5)),P=n.mix(o.f32(6),o.f32(20),d),C=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(v,53.7)),3847.2)),Fm),$=n.pow(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(E,__tsover_mul(P,.15)),__tsover_mul(_,.1)),C)),.5),.5),1.5),U=__tsover_mul(u,n.mix(.4,1,$)),k=__tsover_sub(t.y,A),R=n.smoothstep(-.04,.015,k),D=__tsover_mul(U,__tsover_add(__tsover_mul($,.4),.6)),M=__tsover_sub(1,n.smoothstep(0,D,k)),z=__tsover_mul(R,M),L=n.mix(.4,1,__tsover_add(__tsover_mul(f,.5),.5)),B=n.clamp(__tsover_div(k,__tsover_add(D,.001)),0,1),N=__tsover_sub(B,.2),G=__tsover_add(__tsover_mul(n.exp(__tsover_mul(__tsover_mul(N,N),-6)),.3),1),I=__tsover_mul(__tsover_mul(__tsover_mul(z,$),L),G);return o.vec2f(B,I)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"layerIdx"},{type:"i",name:"layerTime"},{type:"i",name:"centerX"},{type:"i",name:"centerY"},{type:"i",name:"aspect"},{type:"i",name:"waviness"},{type:"i",name:"rayAmount"},{type:"i",name:"auroraHeight"},{type:"i",name:"seed"},{type:"i",name:"t"}],body:[0,[[13,"tSlow",[1,[1,"t","*",[5,"0.06"]],"+","layerTime"]],[13,"lSeed",[1,"seed","+",[1,"layerIdx","*",[5,"31.7"]]]],[13,"wx",[1,[1,[1,[7,"uv","x"],"-","centerX"],"*","aspect"],"*",[5,"2"]]],[13,"ph1",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"lSeed","*",[5,"12.9"]]]],"*",[5,"4758.5"]]]],"*","TWO_PI"]],[13,"ph2",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"lSeed","*",[5,"78.2"]]]],"*",[5,"2847.1"]]]],"*","TWO_PI"]],[13,"ph3",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"lSeed","*",[5,"41.6"]]]],"*",[5,"1593.7"]]]],"*","TWO_PI"]],[13,"arc",[1,[1,[1,[6,[7,"std","sin"],[[1,[1,[1,"wx","*",[5,"0.7"]],"+",[1,"tSlow","*",[5,"0.4"]]],"+","ph1"]]],"*",[5,"0.15"]],"+",[1,[6,[7,"std","sin"],[[1,[1,[1,"wx","*",[5,"1.6"]],"+",[1,"tSlow","*",[5,"0.65"]]],"+","ph2"]]],"*",[5,"0.08"]]],"+",[1,[6,[7,"std","sin"],[[1,[1,[1,"wx","*",[5,"2.9"]],"+",[1,"tSlow","*",[5,"0.3"]]],"+","ph3"]]],"*",[5,"0.04"]]]],[13,"warpPos",[6,[7,"d","vec3f"],[[1,"wx","*",[5,"0.5"]],[1,"tSlow","*",[5,"0.25"]],[1,"lSeed","*",[5,"0.1"]]]]],[13,"noiseWarp",[6,[7,"noise","mxNoiseFloat3"],["warpPos"]]],[13,"pathY",[1,[1,"centerY","+",[1,"arc","*","waviness"]],"+",[1,[1,"noiseWarp","*",[5,"0.14"]],"*","waviness"]]],[13,"warpedX",[1,"wx","+",[1,"noiseWarp","*",[5,"2.5"]]]],[13,"rayFreq",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"6"]]],[6,[7,"d","f32"],[[5,"20"]]],"rayAmount"]]],[13,"rayPhase",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"lSeed","*",[5,"53.7"]]]],"*",[5,"3847.2"]]]],"*","TWO_PI"]],[13,"rays",[6,[7,"std","pow"],[[1,[1,[6,[7,"std","sin"],[[1,[1,[1,"warpedX","*",[1,"rayFreq","*",[5,"0.15"]]],"+",[1,"tSlow","*",[5,"0.1"]]],"+","rayPhase"]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"1.5"]]]],[13,"localHeight",[1,"auroraHeight","*",[6,[7,"std","mix"],[[5,"0.4"],[5,"1"],"rays"]]]],[13,"distFromPath",[1,[7,"uv","y"],"-","pathY"]],[13,"bottomFade",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.04"]],[5,"0.015"],"distFromPath"]]],[13,"topExtent",[1,"localHeight","*",[1,[1,"rays","*",[5,"0.4"]],"+",[5,"0.6"]]]],[13,"topFade",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"topExtent","distFromPath"]]]],[13,"envelope",[1,"bottomFade","*","topFade"]],[13,"sectionBright",[6,[7,"std","mix"],[[5,"0.4"],[5,"1"],[1,[1,"noiseWarp","*",[5,"0.5"]],"+",[5,"0.5"]]]]],[13,"colorT",[6,[7,"std","clamp"],[[1,"distFromPath","/",[1,"topExtent","+",[5,"0.001"]]],[5,"0"],[5,"1"]]]],[13,"coreD",[1,"colorT","-",[5,"0.2"]]],[13,"coreBright",[1,[1,[6,[7,"std","exp"],[[1,[1,"coreD","*","coreD"],"*",[4,"-",[5,"6"]]]]],"*",[5,"0.3"]],"+",[5,"1"]]],[13,"finalAlpha",[1,[1,[1,"envelope","*","rays"],"*","sectionBright"],"*","coreBright"]],[10,[6,[7,"d","vec2f"],["colorT","finalAlpha"]]]]],externalNames:["std","TWO_PI","d","noise"]},externals:()=>({std:n,TWO_PI:Fm,d:o,noise:mt})})&&e.f)({})),LN=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=__tsover_div(s.x,s.y),v=d.x,h=__tsover_sub(1,d.y),y=__tsover_mul(i,.01),x=__tsover_mul(l,.01),g=__tsover_mul(c,.01),w=__tsover_mul(p,.018),f=n.mix(2.5,.4,__tsover_mul(u,.01)),A=r,E=Bm(t,o.f32(0),0,v,h,_,y,x,g,a,A),P=__tsover_mul(E.x,E.y),C=E.y,$=n.select(o.f32(0),o.f32(1),m>=2),U=Bm(t,o.f32(1),3.1,v,h,_,y,x,g,a,A),k=__tsover_mul(__tsover_mul(U.y,.65),$);P=__tsover_add(P,__tsover_mul(U.x,k)),C=__tsover_add(C,k);let R=n.select(o.f32(0),o.f32(1),m>=3),D=Bm(t,o.f32(2),6.7,v,h,_,y,x,g,a,A),M=__tsover_mul(__tsover_mul(D.y,.45),R);P=__tsover_add(P,__tsover_mul(D.x,M)),C=__tsover_add(C,M);let z=n.select(o.f32(0),o.f32(1),m>=4),L=Bm(t,o.f32(3),9.4,v,h,_,y,x,g,a,A),B=__tsover_mul(__tsover_mul(L.y,.3),z);P=__tsover_add(P,__tsover_mul(L.x,B)),C=__tsover_add(C,B);let N=n.pow(__tsover_div(P,__tsover_add(C,.001)),f),G=n.smoothstep(0,.2,N),I=n.smoothstep(.4,.85,N),X=__tsover_mul(C,w);return o.vec3f(G,I,X)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"animTime"},{type:"i",name:"seed"},{type:"i",name:"waviness"},{type:"i",name:"rayDensity"},{type:"i",name:"height"},{type:"i",name:"center"},{type:"i",name:"balance"},{type:"i",name:"intensity"},{type:"i",name:"curtainCount"}],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,"wav",[1,"waviness","*",[5,"0.01"]]],[13,"rayAmt",[1,"rayDensity","*",[5,"0.01"]]],[13,"auroraHeight",[1,"height","*",[5,"0.01"]]],[13,"intens",[1,"intensity","*",[5,"0.018"]]],[13,"balanceExp",[6,[7,"std","mix"],[[5,"2.5"],[5,"0.4"],[1,"balance","*",[5,"0.01"]]]]],[13,"t","animTime"],[13,"a0",[6,"auroraCurtain",["uv",[6,[7,"d","f32"],[[5,"0"]]],[5,"0"],"centerX","centerY","aspect","wav","rayAmt","auroraHeight","seed","t"]]],[12,"weightedT",[1,[7,"a0","x"],"*",[7,"a0","y"]]],[12,"totalAlpha",[7,"a0","y"]],[13,"g1",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"curtainCount",">=",[5,"2"]]]]],[13,"a1",[6,"auroraCurtain",["uv",[6,[7,"d","f32"],[[5,"1"]]],[5,"3.1"],"centerX","centerY","aspect","wav","rayAmt","auroraHeight","seed","t"]]],[13,"w1",[1,[1,[7,"a1","y"],"*",[5,"0.65"]],"*","g1"]],[2,"weightedT","=",[1,"weightedT","+",[1,[7,"a1","x"],"*","w1"]]],[2,"totalAlpha","=",[1,"totalAlpha","+","w1"]],[13,"g2",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"curtainCount",">=",[5,"3"]]]]],[13,"a2",[6,"auroraCurtain",["uv",[6,[7,"d","f32"],[[5,"2"]]],[5,"6.7"],"centerX","centerY","aspect","wav","rayAmt","auroraHeight","seed","t"]]],[13,"w2",[1,[1,[7,"a2","y"],"*",[5,"0.45"]],"*","g2"]],[2,"weightedT","=",[1,"weightedT","+",[1,[7,"a2","x"],"*","w2"]]],[2,"totalAlpha","=",[1,"totalAlpha","+","w2"]],[13,"g3",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"curtainCount",">=",[5,"4"]]]]],[13,"a3",[6,"auroraCurtain",["uv",[6,[7,"d","f32"],[[5,"3"]]],[5,"9.4"],"centerX","centerY","aspect","wav","rayAmt","auroraHeight","seed","t"]]],[13,"w3",[1,[1,[7,"a3","y"],"*",[5,"0.3"]],"*","g3"]],[2,"weightedT","=",[1,"weightedT","+",[1,[7,"a3","x"],"*","w3"]]],[2,"totalAlpha","=",[1,"totalAlpha","+","w3"]],[13,"avgT",[6,[7,"std","pow"],[[1,"weightedT","/",[1,"totalAlpha","+",[5,"0.001"]]],"balanceExp"]]],[13,"lowToMid",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.2"],"avgT"]]],[13,"midToHigh",[6,[7,"std","smoothstep"],[[5,"0.4"],[5,"0.85"],"avgT"]]],[13,"brightness",[1,"totalAlpha","*","intens"]],[10,[6,[7,"d","vec3f"],["lowToMid","midToHigh","brightness"]]]]],externalNames:["std","auroraCurtain","d"]},externals:()=>({std:n,auroraCurtain:Bm,d:o})})&&e.f)({})),FN=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.clamp(t.xyz.mul(s),o.vec3f(0),o.vec3f(1)),a=n.clamp(__tsover_mul(s,.5),0,1);return o.vec4f(r,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"brightness"}],body:[0,[[13,"col",[6,[7,"std","clamp"],[[6,[7,[7,"color","xyz"],"mul"],["brightness"]],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[13,"alpha",[6,[7,"std","clamp"],[[1,"brightness","*",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],["col","alpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),QE={name:"Aurora",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:O,description:"Edge color at the curtain base",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#22ee88",transform:O,description:"Core color in the bright center",ui:{type:"color",label:"Color B",group:"Colors"}},colorC:{default:"#1694e8",transform:O,description:"Tip color at the ray ends",ui:{type:"color",label:"Color C",group:"Colors"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,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:we,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"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=T(LN,"auroraField",[e.uvContext??s.uv,e.effectiveViewportSize??s.viewportSize,Fe(e),t.seed,t.waviness,t.rayDensity,t.height,t.center,t.balance,t.intensity,t.curtainCount]),i=a.member("x"),l=a.member("y"),c=a.member("z"),d=Ye[r.colorSpace??0]??Be;return T(FN,"auroraCompose",[T(d,"mixColors",[T(d,"mixColors",[t.colorA,t.colorB,i]),t.colorC,l]),c])}};var Cv=.0174533,W2=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(__tsover_sub(n.fract(__tsover_mul(n.sin(__tsover_mul(t,12.9898)),43758.5453)),.5),2)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[1,[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"x","*",[5,"12.9898"]]]],"*",[5,"43758.5453"]]]],"-",[5,"0.5"]],"*",[5,"2"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),eM=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(r,Cv),l=n.cos(i),c=n.sin(i),d=__tsover_mul(t.x,s),u=t.y,p=__tsover_sub(d,__tsover_mul(s,.5)),m=__tsover_sub(u,.5),_=__tsover_add(__tsover_mul(p,l),__tsover_mul(m,c)),v=__tsover_add(__tsover_mul(__tsover_mul(p,c),-1),__tsover_mul(m,l)),h=__tsover_add(v,a),y=__tsover_sub(__tsover_mul(_,l),__tsover_mul(h,c)),x=__tsover_add(__tsover_mul(_,c),__tsover_mul(h,l));return o.vec2f(__tsover_add(__tsover_div(y,s),.5),__tsover_add(x,.5))}),{v:1,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,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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,[7,"d","vec2f"],[[1,[1,"dcu","/","aspect"],"+",[5,"0.5"]],[1,"dcv","+",[5,"0.5"]]]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:Cv,std:n,d:o})})&&e.f)({})),tM=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_mul(s,Cv),u=n.cos(d),p=n.sin(d),m=n.max(c,1),_=__tsover_mul(l.x,c),v=l.y,h=__tsover_sub(_,__tsover_mul(c,.5)),y=__tsover_sub(v,.5),x=__tsover_add(__tsover_mul(h,u),__tsover_mul(y,p)),g=__tsover_div(__tsover_mul(x,t),m),w=n.floor(g),f=__tsover_mul(a,.137),A=W2(__tsover_add(w,f)),E=W2(__tsover_add(__tsover_add(w,f),42.7)),P=__tsover_mul(__tsover_mul(i,E),.2);return eM(l,c,s,__tsover_mul(__tsover_add(A,P),r))}),{v:1,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,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"std","sin"],["angleRad"]]],[13,"longestAxis",[6,[7,"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,[7,"std","floor"],["barCoord"]]],[13,"seedOffset",[1,"seed","*",[5,"0.137"]]],[13,"staticOffset",[6,"barHash",[[1,"barIndex","+","seedOffset"]]]],[13,"barSpeed",[6,"barHash",[[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"]]]]],externalNames:["DEG_TO_RAD","std","barHash","barSampleUV"]},externals:()=>({DEG_TO_RAD:Cv,std:n,barHash:W2,barSampleUV:eM})})&&e.f)({})),sM={name:"BarShift",category:"Distortions",description:"Slices content into parallel bars, each offset independently for a fractured or glitch-like effect",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},animatedTime:{speed:"speed"},props:{count:{default:6,description:"Number of bars across the longest viewport dimension",ui:{type:["range","map"],min:1,max:30,step:1,label:"Count",group:"Effect"}},angle:{default:0,transform:Jt,description:"Angle of bar orientation in degrees (0 = vertical bars, 90 = horizontal bars)",ui:{type:["range","map"],min:-180,max:180,step:1,label:"Angle",group:"Effect"}},intensity:{default:.15,description:"Maximum displacement per bar",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Effect"}},seed:{default:0,description:"Randomization seed for per-bar offset variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Effect"}},speed:{default:0,description:"Animation speed \u2014 each bar drifts at its own rate and direction",ui:{type:"range",min:-2,max:2,step:.1,label:"Speed",group:"Animation"}},edges:{default:"mirror",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r,propValues:a,convertToTexture:i}=e;if(!s)return console.error("You must pass a child component into the BarShift shader."),me;let l=i(s),c=a.edges??0,d=Fe(e);return T(Re,"unpremultiplyAlpha",[Gt(T(tM,"barShiftUV",[t.count,t.angle,t.intensity,t.seed,d,r.uv,r.aspect]),u=>l.sample(u),c)])},uvRemap:e=>{let t=e.propValues.edges??0,s=Fe(e);return zs(T(tM,"barShiftUV",[e.uniforms.count,e.uniforms.angle,e.uniforms.intensity,e.uniforms.seed,s,e.uv,e.aspect]),e.mask,t)}};var BN=b.fn([o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(s.x,s.y),p=o.vec2f(r.x,__tsover_sub(1,r.y)),m=o.vec2f(a.x,__tsover_sub(1,a.y)),_=o.vec2f(__tsover_mul(p.x,u),p.y),v=o.vec2f(__tsover_mul(m.x,u),m.y),h=o.vec2f(__tsover_mul(t.x,u),t.y),y=o.vec2f(__tsover_sub(v.x,_.x),__tsover_sub(v.y,_.y)),x=o.vec2f(__tsover_sub(h.x,_.x),__tsover_sub(h.y,_.y)),g=__tsover_add(__tsover_mul(x.x,y.x),__tsover_mul(x.y,y.y)),w=__tsover_add(__tsover_mul(y.x,y.x),__tsover_mul(y.y,y.y)),f=n.clamp(__tsover_div(g,n.max(w,1e-4)),0,1),A=o.vec2f(__tsover_add(_.x,__tsover_mul(y.x,f)),__tsover_add(_.y,__tsover_mul(y.y,f))),E=o.vec2f(__tsover_sub(h.x,A.x),__tsover_sub(h.y,A.y)),P=n.sqrt(__tsover_add(__tsover_mul(E.x,E.x),__tsover_mul(E.y,E.y))),C=__tsover_mul(i,.25),$=__tsover_mul(l,.25),U=n.mix(C,$,f),k=n.mix(c,d,f),R=__tsover_div(P,n.max(U,1e-4)),D=__tsover_add(1,k),M=__tsover_sub(1,n.smoothstep(1,D,R)),z=__tsover_add(1,__tsover_mul(k,1.5)),L=n.pow(M,z),B=__tsover_sub(1,k),N=__tsover_add(1,k),G=n.smoothstep(B,N,R);return o.vec2f(G,L)}),{v:1,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",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"startPos",[6,[7,"d","vec2f"],[[7,"start","x"],[1,[5,"1"],"-",[7,"start","y"]]]]],[13,"endPos",[6,[7,"d","vec2f"],[[7,"end","x"],[1,[5,"1"],"-",[7,"end","y"]]]]],[13,"acStart",[6,[7,"d","vec2f"],[[1,[7,"startPos","x"],"*","aspect"],[7,"startPos","y"]]]],[13,"acEnd",[6,[7,"d","vec2f"],[[1,[7,"endPos","x"],"*","aspect"],[7,"endPos","y"]]]],[13,"acUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"lineVec",[6,[7,"d","vec2f"],[[1,[7,"acEnd","x"],"-",[7,"acStart","x"]],[1,[7,"acEnd","y"],"-",[7,"acStart","y"]]]]],[13,"toPoint",[6,[7,"d","vec2f"],[[1,[7,"acUV","x"],"-",[7,"acStart","x"]],[1,[7,"acUV","y"],"-",[7,"acStart","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,[7,"std","clamp"],[[1,"dotProduct","/",[6,[7,"std","max"],["lineLengthSq",[5,"0.0001"]]]],[5,"0"],[5,"1"]]]],[13,"closestPoint",[6,[7,"d","vec2f"],[[1,[7,"acStart","x"],"+",[1,[7,"lineVec","x"],"*","t"]],[1,[7,"acStart","y"],"+",[1,[7,"lineVec","y"],"*","t"]]]]],[13,"distVec",[6,[7,"d","vec2f"],[[1,[7,"acUV","x"],"-",[7,"closestPoint","x"]],[1,[7,"acUV","y"],"-",[7,"closestPoint","y"]]]]],[13,"distance",[6,[7,"std","sqrt"],[[1,[1,[7,"distVec","x"],"*",[7,"distVec","x"]],"+",[1,[7,"distVec","y"],"*",[7,"distVec","y"]]]]]],[13,"startThick",[1,"startThickness","*",[5,"0.25"]]],[13,"endThick",[1,"endThickness","*",[5,"0.25"]]],[13,"thickness",[6,[7,"std","mix"],["startThick","endThick","t"]]],[13,"softness",[6,[7,"std","mix"],["startSoftness","endSoftness","t"]]],[13,"normalizedDist",[1,"distance","/",[6,[7,"std","max"],["thickness",[5,"0.0001"]]]]],[13,"edgeEnd",[1,[5,"1"],"+","softness"]],[13,"alphaBase",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"1"],"edgeEnd","normalizedDist"]]]],[13,"softnessFactor",[1,[5,"1"],"+",[1,"softness","*",[5,"1.5"]]]],[13,"alpha",[6,[7,"std","pow"],["alphaBase","softnessFactor"]]],[13,"colorGradientStart",[1,[5,"1"],"-","softness"]],[13,"colorGradientEnd",[1,[5,"1"],"+","softness"]],[13,"colorT",[6,[7,"std","smoothstep"],["colorGradientStart","colorGradientEnd","normalizedDist"]]],[10,[6,[7,"d","vec2f"],["colorT","alpha"]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),oM={name:"Beam",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"A beam of light from one point to another.",acceptsUVContext:!0,extraFields:{convA:{schema:o.vec3f,initial:[0,0,0]},convB:{schema:o.vec3f,initial:[0,0,0]}},props:{startPosition:{default:{x:.2,y:.5},transform:we,description:"Starting point of the beam",ui:{type:"position",label:"Start Position",group:"Position"}},endPosition:{default:{x:.8,y:.5},transform:we,description:"Ending point of the beam",ui:{type:"position",label:"End Position",group:"Position"}},startThickness:{default:.2,description:"Thickness at the start of the beam",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Start Thickness",group:"Effect"}},endThickness:{default:.2,description:"Thickness at the end of the beam",ui:{type:["range","map"],min:0,max:2,step:.1,label:"End Thickness",group:"Effect"}},startSoftness:{default:.5,description:"Edge softness at the start of the beam",ui:{type:["range","map"],min:0,max:50,step:.1,label:"Start Softness",group:"Effect"}},endSoftness:{default:.5,description:"Edge softness at the end of the beam",ui:{type:["range","map"],min:0,max:20,step:.1,label:"End Softness",group:"Effect"}},insideColor:{default:"#FF0000",transform:O,description:"Color at the center of the beam",ui:{type:"color",label:"Inside Color",group:"Colors"}},outsideColor:{default:"#0000FF",transform:O,description:"Color at the edges of the beam",ui:{type:"color",label:"Outside Color",group:"Colors"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=r.colorSpace??0,c=T(BN,"beamField",[a,i,t.startPosition,t.endPosition,t.startThickness,t.endThickness,t.startSoftness,t.endSoftness]),d=c.member("x"),u=c.member("y"),p;if(l!==0){let _="";e.onBeforeRender(()=>{let v=e.getCpuValue("insideColor"),h=e.getCpuValue("outsideColor");if(!v||!h)return;let y=`${v.x},${v.y},${v.z}|${h.x},${h.y},${h.z}`;if(y===_)return;_=y;let x=Tm(v.x,v.y,v.z,l),g=Tm(h.x,h.y,h.z,l);e.setExtraField("convA",[x[0],x[1],x[2]]),e.setExtraField("convB",[g[0],g[1],g[2]])}),p=T(L1[l]??wm,"mixPreconvertedColors",[t.convA,t.convB,t.insideColor.member("a"),t.outsideColor.member("a"),d]).member("rgb")}else p=T(Be,"mixColors",[t.insideColor,t.outsideColor,d]).member("rgb");let m=t.insideColor.member("a").add(t.outsideColor.member("a")).mul(.5);return de(p,m.mul(u))}};var rM=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.f32(4),l=a,c=__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(t.x,__tsover_mul(i,.8)),__tsover_mul(l,.8))),n.sin(__tsover_add(__tsover_mul(t.y,__tsover_mul(i,.7)),__tsover_mul(l,.6)))),n.sin(__tsover_sub(__tsover_mul(t.x,__tsover_mul(i,1.2)),__tsover_add(__tsover_mul(t.y,__tsover_mul(i,.9)),__tsover_mul(l,.4))))),.15),r),d=__tsover_mul(__tsover_mul(__tsover_mul(n.sin(__tsover_sub(__tsover_mul(t.x,__tsover_mul(i,1.4)),__tsover_mul(l,.5))),n.sin(__tsover_add(__tsover_mul(t.y,__tsover_mul(i,1.1)),__tsover_mul(l,.7)))),.12),r),u=__tsover_mul(__tsover_mul(__tsover_add(n.sin(__tsover_add(__tsover_mul(t.x,__tsover_mul(i,1.8)),__tsover_add(__tsover_mul(t.y,__tsover_mul(i,1.6)),__tsover_mul(l,.3)))),n.sin(__tsover_sub(__tsover_mul(t.x,__tsover_mul(i,.6)),__tsover_mul(l,.9)))),.1),r),p=__tsover_mul(__tsover_mul(__tsover_mul(n.sin(__tsover_add(__tsover_mul(t.x,__tsover_mul(i,2.2)),__tsover_mul(l,.2))),n.sin(__tsover_sub(__tsover_mul(t.y,__tsover_mul(i,1.9)),__tsover_mul(l,.8)))),.04),r);return __tsover_add(s,__tsover_add(__tsover_add(__tsover_add(c,d),u),p))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"size"},{type:"i",name:"deformation"},{type:"i",name:"animTime"}],body:[0,[[13,"ns",[6,[7,"d","f32"],[[5,"4"]]]],[13,"at","animTime"],[13,"noise1",[1,[1,[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","x"],"*",[1,"ns","*",[5,"0.8"]]],"+",[1,"at","*",[5,"0.8"]]]]],"*",[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[1,"ns","*",[5,"0.7"]]],"+",[1,"at","*",[5,"0.6"]]]]]],"+",[6,[7,"std","sin"],[[1,[1,[7,"uv","x"],"*",[1,"ns","*",[5,"1.2"]]],"-",[1,[1,[7,"uv","y"],"*",[1,"ns","*",[5,"0.9"]]],"+",[1,"at","*",[5,"0.4"]]]]]]],"*",[5,"0.15"]],"*","deformation"]],[13,"noise2",[1,[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","x"],"*",[1,"ns","*",[5,"1.4"]]],"-",[1,"at","*",[5,"0.5"]]]]],"*",[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[1,"ns","*",[5,"1.1"]]],"+",[1,"at","*",[5,"0.7"]]]]]],"*",[5,"0.12"]],"*","deformation"]],[13,"noise3",[1,[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","x"],"*",[1,"ns","*",[5,"1.8"]]],"+",[1,[1,[7,"uv","y"],"*",[1,"ns","*",[5,"1.6"]]],"+",[1,"at","*",[5,"0.3"]]]]]],"+",[6,[7,"std","sin"],[[1,[1,[7,"uv","x"],"*",[1,"ns","*",[5,"0.6"]]],"-",[1,"at","*",[5,"0.9"]]]]]],"*",[5,"0.1"]],"*","deformation"]],[13,"noise4",[1,[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","x"],"*",[1,"ns","*",[5,"2.2"]]],"+",[1,"at","*",[5,"0.2"]]]]],"*",[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[1,"ns","*",[5,"1.9"]]],"-",[1,"at","*",[5,"0.8"]]]]]],"*",[5,"0.04"]],"*","deformation"]],[10,[1,"size","+",[1,[1,[1,"noise1","+","noise2"],"+","noise3"],"+","noise4"]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),VN=b.fn([o.vec2f,o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=__tsover_mul(l,.3),v=__tsover_add(__tsover_mul(l,2),.5),h=__tsover_div(s.x,s.y),y=o.vec2f(__tsover_sub(__tsover_mul(t.x,h),__tsover_mul(r.x,h)),__tsover_sub(t.y,__tsover_sub(1,r.y))),x=n.length(y),g=rM(y,a,i,m),w=__tsover_sub(1,n.smoothstep(__tsover_sub(g,_),__tsover_add(g,_),x)),f=n.pow(w,v),A=n.smoothstep(0,g,x),E=__tsover_sub(1,__tsover_mul(A,.1)),P=__tsover_add(A,.2),C=n.normalize(o.vec3f(__tsover_mul(y.x,P),__tsover_mul(y.y,P),E)),$=o.vec3f(d,u,p),U=o.vec3f(0,0,1),k=n.reflect($.mul(-1),C),R=n.max(0,n.dot(k,U)),D=n.pow(R,32),M=__tsover_add(__tsover_mul(A,.5),.5),z=__tsover_mul(__tsover_mul(__tsover_mul(D,M),c
242),f),L=__tsover_mul(y.x,3),B=__tsover_mul(y.y,3),N=__tsover_add(__tsover_mul(__tsover_add(__tsover_mul(n.sin(__tsover_add(L,__tsover_mul(m,.4))),n.sin(__tsover_add(B,__tsover_mul(m,.3)))),n.sin(__tsover_add(__tsover_add(__tsover_mul(L,.7),__tsover_mul(B,.8)),__tsover_mul(m,.2)))),.5),.5),G=__tsover_add(__tsover_mul(__tsover_add(__tsover_mul(n.sin(__tsover_sub(__tsover_mul(L,1.3),__tsover_mul(m,.5))),n.sin(__tsover_add(__tsover_mul(B,1.1),__tsover_mul(m,.6)))),n.sin(__tsover_sub(__tsover_mul(L,.5),__tsover_sub(__tsover_mul(B,.6),__tsover_mul(m,.3))))),.5),.5),I=__tsover_add(__tsover_mul(N,.6),__tsover_mul(G,.4)),X=n.smoothstep(.1,.9,I);return o.vec3f(X,z,f)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"baseUV"},{type:"i",name:"viewport"},{type:"i",name:"center"},{type:"i",name:"size"},{type:"i",name:"deformation"},{type:"i",name:"softness"},{type:"i",name:"highlightIntensity"},{type:"i",name:"normLx"},{type:"i",name:"normLy"},{type:"i",name:"normLz"},{type:"i",name:"animTime"}],body:[0,[[13,"edgeWidth",[1,"softness","*",[5,"0.3"]]],[13,"edgeCurve",[1,[1,"softness","*",[5,"2"]],"+",[5,"0.5"]]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"uv",[6,[7,"d","vec2f"],[[1,[1,[7,"baseUV","x"],"*","aspect"],"-",[1,[7,"center","x"],"*","aspect"]],[1,[7,"baseUV","y"],"-",[1,[5,"1"],"-",[7,"center","y"]]]]]],[13,"dist",[6,[7,"std","length"],["uv"]]],[13,"organicRadius",[6,"blobOrganicRadius",["uv","size","deformation","animTime"]]],[13,"linearMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"organicRadius","-","edgeWidth"],[1,"organicRadius","+","edgeWidth"],"dist"]]]],[13,"blobMask",[6,[7,"std","pow"],["linearMask","edgeCurve"]]],[13,"normalTilt",[6,[7,"std","smoothstep"],[[5,"0"],"organicRadius","dist"]]],[13,"fakeZ",[1,[5,"1"],"-",[1,"normalTilt","*",[5,"0.1"]]]],[13,"tilted",[1,"normalTilt","+",[5,"0.2"]]],[13,"surfaceNormal",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[7,"uv","x"],"*","tilted"],[1,[7,"uv","y"],"*","tilted"],"fakeZ"]]]]],[13,"lightDir",[6,[7,"d","vec3f"],["normLx","normLy","normLz"]]],[13,"viewDir",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]]],[13,"reflectDir",[6,[7,"std","reflect"],[[6,[7,"lightDir","mul"],[[4,"-",[5,"1"]]]],"surfaceNormal"]]],[13,"specDot",[6,[7,"std","max"],[[5,"0"],[6,[7,"std","dot"],["reflectDir","viewDir"]]]]],[13,"specular",[6,[7,"std","pow"],["specDot",[5,"32"]]]],[13,"curvatureBoost",[1,[1,"normalTilt","*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"finalHighlight",[1,[1,[1,"specular","*","curvatureBoost"],"*","highlightIntensity"],"*","blobMask"]],[13,"posX",[1,[7,"uv","x"],"*",[5,"3"]]],[13,"posY",[1,[7,"uv","y"],"*",[5,"3"]]],[13,"colorNoise1",[1,[1,[1,[1,[6,[7,"std","sin"],[[1,"posX","+",[1,"animTime","*",[5,"0.4"]]]]],"*",[6,[7,"std","sin"],[[1,"posY","+",[1,"animTime","*",[5,"0.3"]]]]]],"+",[6,[7,"std","sin"],[[1,[1,[1,"posX","*",[5,"0.7"]],"+",[1,"posY","*",[5,"0.8"]]],"+",[1,"animTime","*",[5,"0.2"]]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"colorNoise2",[1,[1,[1,[1,[6,[7,"std","sin"],[[1,[1,"posX","*",[5,"1.3"]],"-",[1,"animTime","*",[5,"0.5"]]]]],"*",[6,[7,"std","sin"],[[1,[1,"posY","*",[5,"1.1"]],"+",[1,"animTime","*",[5,"0.6"]]]]]],"+",[6,[7,"std","sin"],[[1,[1,"posX","*",[5,"0.5"]],"-",[1,[1,"posY","*",[5,"0.6"]],"-",[1,"animTime","*",[5,"0.3"]]]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"combinedNoise",[1,[1,"colorNoise1","*",[5,"0.6"]],"+",[1,"colorNoise2","*",[5,"0.4"]]]],[13,"mixFactor",[6,[7,"std","smoothstep"],[[5,"0.1"],[5,"0.9"],"combinedNoise"]]],[10,[6,[7,"d","vec3f"],["mixFactor","finalHighlight","blobMask"]]]]],externalNames:["d","std","blobOrganicRadius"]},externals:()=>({d:o,std:n,blobOrganicRadius:rM})})&&e.f)({})),ON=b.fn([o.vec4f,o.vec4f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=s.xyz.mul(r),c=t.xyz.add(l);return o.vec4f(c,__tsover_mul(a,i))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"colorMix"},{type:"i",name:"highlightColor"},{type:"i",name:"finalHighlight"},{type:"i",name:"avgAlpha"},{type:"i",name:"blobMask"}],body:[0,[[13,"highlightContribution",[6,[7,[7,"highlightColor","xyz"],"mul"],["finalHighlight"]]],[13,"rgb",[6,[7,[7,"colorMix","xyz"],"add"],["highlightContribution"]]],[10,[6,[7,"d","vec4f"],["rgb",[1,"avgAlpha","*","blobMask"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),aM={name:"Blob",category:"Textures",description:"Organic animated blob with 3D lighting and gradients",acceptsUVContext:!0,animatedTime:{speed:"speed"}
242,extraFields:{normLx:{schema:o.f32,initial:0},normLy:{schema:o.f32,initial:0},normLz:{schema:o.f32,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,a=e.center?.x??.5,i=e.center?.y??.5,l=r*2*s;return{centerXPx:a*t,centerYPx:i*s,widthPx:l,heightPx:l,rotationDeg:0}},writeBounds(e,t,s,r){let a=Math.max(0,e.widthPx/(2*r));return{center:{...t.center??{x:.5,y:.5},x:e.centerXPx/s,y:e.centerYPx/r},size:a}},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:O,description:"Primary color of the blob",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#e91e63",transform:O,description:"Secondary color of the blob",ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),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:O,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:we,description:"The center point of the blob",ui:{type:"position",label:"Center Position",group:"Position",units:["%","px"]}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=s.viewportSize,l=Fe(e,"seed");e.onBeforeRender(()=>{let y=e.getCpuValue("highlightX"),x=e.getCpuValue("highlightY"),g=e.getCpuValue("highlightZ"),w=Math.sqrt(y*y+x*x+g*g);w>0?(e.setExtraField("normLx",y/w),e.setExtraField("normLy",x/w),e.setExtraField("normLz",g/w)):(e.setExtraField("normLx",0),e.setExtraField("normLy",0),e.setExtraField("normLz",0))});let c=T(VN,"blobField",[a,i,t.center,t.size,t.deformation,t.softness,t.highlightIntensity,t.normLx,t.normLy,t.normLz,l]),d=c.member("x"),u=c.member("y"),p=c.member("z"),m=r.colorSpace??0,_=r.stopCount??0,v;_>1?v=js(d,{colorsArray:t.colorsArray,positionsArray:t.positionsArray,convertedColorsArray:t.convertedColorsArray,stopCount:t.stopCount},m):v=T(Ye[m]??Be,"mixColors",[t.colorA,t.colorB,d]);let h=t.colorA.member("a").add(t.colorB.member("a")).mul(.5);return T(ON,"blobCompose",[v,t.highlightColor,u,h,p])}};function _a(){return{colorA:{default:"#ffffff",description:"First color",transform:O,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",description:"Second color",transform:O,ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}}}function nM(){return{colorA:{default:"#ffffff",description:"First c
242olor",transform:O,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",description:"Second color",transform:O,ui:{type:"color",label:"Color B",group:"Colors"}}}}function fa(){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 sn(e=1){return{speed:{default:e,description:"Animation speed",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}}}}var NN=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_div(s.x,s.y),c=o.vec2f(__tsover_mul(t.x,l),t.y).mul(n.exp(r)).add(a);return Cx(o.vec3f(c.x,c.y,__tsover_mul(i,.3)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[6,[7,"noise","value13"],[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,"animTime","*",[5,"0.3"]]]]]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),iM={name:"BlockNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Blocky value noise with soft cells that morph over time",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{..._a(),scale:{default:2,description:"Pattern scale (higher = larger patterns)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},...fa(),...sn()},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Ir(e,T(NN,"blockNoiseField",[t,s,e.uniforms.scale,e.uniforms.seed,r]))}};var YN=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";return $x(n.floor(t.mul(s).div(r)).add(a))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"grain"},{type:"i",name:"seed"}],body:[0,[[13,"cell",[6,[7,[6,[7,"std","floor"],[[6,[7,[6,[7,"uv","mul"],["viewport"]],"div"],["grain"]]]],"add"],["seed"]]],[10,[6,[7,"noise","blue12"],["cell"]]]]],externalNames:["std","noise"]},externals:()=>({std:n,noise:mt})})&&e.f)({})),lM={name:"BlueNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"High-frequency blue noise \u2014 even, grainy speckle ideal for dithering",acceptsUVContext:!0,props:{..._a(),grain:{default:1,description:"Grain size in pixels (1 = per-pixel, higher = chunkier speckle)",ui:{type:"range",min:1,max:32,step:1,label:"Grain Size",group:"Effect"}},...fa()},fragment:e=>Ir(e,T(YN,"blueNoiseField",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,e.uniforms.grain,e.uniforms.seed]))};var GN=.36,WN=e=>e*GN;function XN(){return o.struct({inputWidth:o.f32,inputHeight:o.f32,inputMin:o.f32,inputMax:o.f32,outputMin:o.f32,outputMax:o.f32,curve:o.f32})}function qN(e,t,s){let r=XN(),a=(globalThis.__TYPEGPU_AUTONAME__??(i=>i))(b.bindGroupLayout({source:{texture:o.texture2d(o.f32)},blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:r}}),"layout");return{layout:a,kernel:b.fn([o.u32,o.u32])((i=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(i.f=((l,c)=>{"use gpu";let d=a.$.params,u=__tsover_div(__tsover_add(o.f32(l),.5),e),p=__tsover_div(__tsover_add(o.f32(c),.5),t),m=n.clamp(o.i32(n.round(__tsover_mul(u,d.inputWidth))),0,o.i32(__tsover_sub(d.inputWidth,1))),_=n.clamp(o.i32(n.round(__tsover_mul(p,d.inputHeight))),0,o.i32(__tsover_sub(d.inputHeight,1))),v=n.textureLoad(a.$.source,o.vec2u(o.u32(m),o.u32(_)),0),h=s==="alpha"?v.w:s==="alphaInverted"?__tsover_sub(1,v.w):s==="luminanceInverted"?__tsover_sub(1,n.dot(v.xyz,o.vec3f(.2126,.7152,.0722))):n.dot(v.xyz,o.vec3f(.2126,.7152,.0722)),y=n.max(__tsover_sub(d.inputMax,d.inputMin),1e-4),x=n.clamp(__tsover_div(__tsover_sub(h,d.inputMin),y),0,1),g=n.pow(2,__tsover_mul(-d.curve,2)),w=n.pow(x,g),f=n.mix(d.outputMin,d.outputMax,w),A=__tsover_mul(f,.36);n.textureStore(a.$.blurMap,o.vec2u(l,c),o.vec4f(A,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","computeWidth"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"srcX",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"u","*",[7,"p","inputWidth"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"v","*",[7,"p","inputHeight"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]]]],[13,"sample",[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"source"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["srcX"]],[6,[7,"d","u32"],["srcY"]]]],[5,"0"]]]],[13,"raw",[105,[1,"channel","===",[103,"alpha"]],[7,"s
242ample","w"],[105,[1,"channel","===",[103,"alphaInverted"]],[1,[5,"1"],"-",[7,"sample","w"]],[105,[1,"channel","===",[103,"luminanceInverted"]],[1,[5,"1"],"-",[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]]]]],[13,"inputRange",[6,[7,"std","max"],[[1,[7,"p","inputMax"],"-",[7,"p","inputMin"]],[5,"0.0001"]]]],[13,"normalised",[6,[7,"std","clamp"],[[1,[1,"raw","-",[7,"p","inputMin"]],"/","inputRange"],[5,"0"],[5,"1"]]]],[13,"exponent",[6,[7,"std","pow"],[[5,"2"],[1,[4,"-",[7,"p","curve"]],"*",[5,"2"]]]]],[13,"eased",[6,[7,"std","pow"],["normalised","exponent"]]],[13,"remapped",[6,[7,"std","mix"],[[7,"p","outputMin"],[7,"p","outputMax"],"eased"]]],[13,"radius",[1,"remapped","*",[5,"0.36"]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","std","channel"]},externals:()=>({layout:a,d:o,computeWidth:e,computeHeight:t,std:n,channel:s})})&&i.f)({})).$name("fillBlurMap"),Params:r}}var cM={name:"Blur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"A simple Gaussian blur effect",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:50,description:"Intensity of the blur effect",ui:{type:["range","map"],min:0,max:200,step:1,label:"Intensity",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,getMapInfo:l,onCleanup:c,onResize:d,dimensions:u}=e;if(!t)return null;let p=s?.root;if(!p)return null;let m=r(t),_=Math.max(1,Math.round(u.width)),v=Math.max(1,Math.round(u.height)),h=l("intensity");if(h){let g=Zn(p,null,_,v,c),w=a(g.outputTexture),f=qN(g.computeWidth,g.computeHeight,h.channel),A=(globalThis.__TYPEGPU_AUTONAME__??(P=>P))(p.createUniform(f.Params),"fillParams"),E=pt(p,(P=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(P.f=((C,$)=>{"use gpu";f.kernel(C,$)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:f})})&&P.f)({}),{size:[g.computeWidth,g.computeHeight]});return d(({width:P,height:C})=>{_=Math.max(1,Math.round(P)),v=Math.max(1,Math.round(C)),g.setInputDimensions(_,v)}),{outputs:{childTexture:m,blurredTexture:w},bindInputs:P=>{let C=P(m.key);C&&g.setInputTexture(C.texture);let $=P(h.sourceTexture.key);if($){let U=p.createBindGroup(f.layout,{source:$.texture,blurMap:g.blurMapTexture,params:A.buffer});E=E.with(U)}},getComputeNodes:()=>{let P=h.window();return A.write({inputWidth:_,inputHeight:v,inputMin:P.inputMin,inputMax:P.inputMax,outputMin:P.outputMin,outputMax:P.outputMax,curve:P.curve}),[E,...g.computeSteps]}}}let y=su(p,null,_,v,c),x=a(y.outputTexture);return d(({width:g,height:w})=>y.setInputDimensions(Math.max(1,Math.round(g)),Math.max(1,Math.round(w)))),{outputs:{childTexture:m,blurredTexture:x},bindInputs:g=>{let w=g(m.key);w&&y.setInputTexture(w.texture)},getComputeNodes:()=>{let g=i("intensity");return typeof g=="number"&&y.updateRadius(WN(g)),y.computeSteps}}},fragment:({childNode:e,computeOutputs:t,ctx:s,convertToTexture:r})=>{if(!e)return me;let a=t?.blurredTexture,i=t?.childTexture;if(!a||!i)return T(Re,"unpremultiplyAlpha",[r(e).sample(s.uv)]);let l=i.sample(s.uv);return T(Re,"unpremultiplyAlpha",[de(a.sample(s.uv).member("rgb"),l.member("a"))])}};var dM=.0174533,HN=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=__tsover_div(s.x,s.y),h=__tsover_mul(t.x,v),y=t.y,x=__tsover_sub(h,__tsover_mul(v,.5)),g=__tsover_sub(y,.5),w=__tsover_mul(d,dM),f=n.cos(w),A=n.sin(w),E=__tsover_add(__tsover_mul(x,f),__tsover_mul(g,A)),P=__tsover_add(-__tsover_mul(x,A),__tsover_mul(g,f)),C=__tsover_add(__tsover_div(E,v),.5),$=__tsover_add(P,.5),U=__tsover_mul(i,.3),k=__tsover_div(__tsover_mul(__tsover_mul(U,v),a),r),R=n.floor(__tsover_mul($,a)),D=__tsover_sub(R,__tsover_mul(2,n.floor(__tsover_div(R,2)))),M=__tsover_mul(D,.5),z=__tsover_sub(__tsover_mul(D,2),1),L=__tsover_mul(__tsover_sub(n.fract(__tsover_mul(n.sin(__tsover_add(R,__tsover_mul(m,.137))),43758.5453)),.5),2),B=n.mix(z,L,p),N=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(C,r),M),__tsover_mul(_,B)),u),G=__tsover_mul($,a),I=n.fract(N),X=n.fract(G),F=__tsover_mul(l,.5),Q=__tsover_add(n.fwidth(N),F),ae=__tsover_add(n.fwidth(G),F),j=__tsover_mul(n.smoothstep(__tsover_sub(U,Q),__tsover_add(U,Q),I),n.smoothstep(__tsover_sub(U,Q),__tsover_add(U,Q),__tsover_sub(1,I))),q=__tsover_mul(n.smoothstep(__tsover_sub(k,ae),__tsover_add(k,ae),X),n.smoothstep(__tsover_sub(k,ae),__tsover_add(k,ae),__tsover_sub(1,X))),te=__tsover_mul(j,q),ne=o.vec2f(n.floor(N),R),oe=n.fract(ne.mul(o.vec2f(123.34,345.45))),pe=oe.add(n.dot(oe,oe.add(34.345))),_e=n.fract(__tsover_mul(pe.x,pe.
vendor: 4,186 bytes, line 242
242y)),ge=n.max(__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(_e,.5),2),c)),0);return o.vec2f(te,ge)}),{v:1,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",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[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,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[13,"ru",[1,[1,"cu","*","cosR"],"+",[1,"cv","*","sinR"]]],[13,"rv",[1,[4,"-",[1,"cu","*","sinR"]],"+",[1,"cv","*","cosR"]]],[13,"u",[1,[1,"ru","/","aspect"],"+",[5,"0.5"]]],[13,"v",[1,"rv","+",[5,"0.5"]]],[13,"mortarU",[1,"mortar","*",[5,"0.3"]]],[13,"mortarV",[1,[1,[1,"mortarU","*","aspect"],"*","cellsY"],"/","cellsX"]],[13,"row",[6,[7,"std","floor"],[[1,"v","*","cellsY"]]]],[13,"rowMod2",[1,"row","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"row","/",[5,"2"]]]]]]],[13,"rowOffset",[1,"rowMod2","*",[5,"0.5"]]],[13,"rowDir",[1,[1,"rowMod2","*",[5,"2"]],"-",[5,"1"]]],[13,"rowHash",[1,[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"row","+",[1,"seed","*",[5,"0.137"]]]]],"*",[5,"43758.5453"]]]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"rowSpeedMult",[6,[7,"std","mix"],["rowDir","rowHash","speedVariance"]]],[13,"brickArg",[1,[1,[1,[1,"u","*","cellsX"],"+","rowOffset"],"+",[1,"animTime","*","rowSpeedMult"]],"+","offset"]],[13,"vScaled",[1,"v","*","cellsY"]],[13,"cellU",[6,[7,"std","fract"],["brickArg"]]],[13,"cellV",[6,[7,"std","fract"],["vScaled"]]],[13,"soft",[1,"softness","*",[5,"0.5"]]],[13,"aaU",[1,[6,[7,"std","fwidth"],["brickArg"]],"+","soft"]],[13,"aaV",[1,[6,[7,"std","fwidth"],["vScaled"]],"+","soft"]],[13,"brickU",[1,[6,[7,"std","smoothstep"],[[1,"mortarU","-","aaU"],[1,"mortarU","+","aaU"],"cellU"]],"*",[6,[7,"std","smoothstep"],[[1,"mortarU","-","aaU"],[1,"mortarU","+","aaU"],[1,[5,"1"],"-","cellU"]]]]],[13,"brickV",[1,[6,[7,"std","smoothstep"],[[1,"mortarV","-","aaV"],[1,"mortarV","+","aaV"],"cellV"]],"*",[6,[7,"std","smoothstep"],[[1,"mortarV","-","aaV"],[1,"mortarV","+","aaV"],[1,[5,"1"],"-","cellV"]]]]],[13,"brickMask",[1,"brickU","*","brickV"]],[13,"brickId",[6,[7,"d","vec2f"],[[6,[7,"std","floor"],["brickArg"]],"row"]]],[13,"q0",[6,[7,"std","fract"],[[6,[7,"brickId","mul"],[[6,[7,"d","vec2f"],[[5,"123.34"],[5,"345.45"]]]]]]]],[13,"q1",[6,[7,"q0","add"],[[6,[7,"std","dot"],["q0",[6,[7,"q0","add"],[[5,"34.345"]]]]]]]],[13,"rand",[6,[7,"std","fract"],[[1,[7,"q1","x"],"*",[7,"q1","y"]]]]],[13,"variedFactor",[6,[7,"std","max"],[[1,[5,"1"],"+",[1,[1,[1,"rand","-",[5,"0.5"]],"*",[5,"2"]],"*","variation"]],[5,"0"]]]],[10,[6,[7,"d","vec2f"],["brickMask","variedFactor"]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:dM,std:n,d:o})})&&e.f)({})),uM={name:"BrickPattern",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Classic brick wall pattern with alternating rows and mortar gaps",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorBrick:{default:"#000000",transform:O,description:"Brick color",ui:{type:"color",label:"Brick Color",group:"Colors"}},colorMortar:{default:"#ffffff",transform:O,description:"Mortar / gap color",ui:{type:"color",label:"Mortar Color",group:"Colors"}},cellsX:{default:8,description:"Number of bricks per row",ui:{type:["range","map"],min:1,max:30,step:1,label:"Bricks per Row",group:"Effect"}},cellsY:{default:10,description:"Number of brick rows",ui:{type:["range","map"],min:1,max:30,step:1,label:"Rows",group:"Effect"}},mortar:{default:.05,description:"Width of mortar gaps \u2014 equal pixel thickness in both directions",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Mortar Gap",group:"Effect"}},softness:{default:0,description:"Softness of the brick edges (0 = crisp, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.
24201,label:"Softness",group:"Effect"}},variation:{default:0,description:"Per-brick random lightening/darkening of the brick color",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variation",group:"Effect"}},rotation:{default:0,transform:Jt,description:"Rotation of the pattern in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},speed:{default:0,description:"Animation speed",ui:{type:"range",min:-2,max:2,step:.1,label:"Speed",group:"Animation"}},offset:{default:0,description:"Static horizontal offset \u2014 shifts the brick pattern without animating",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Offset",group:"Animation"}},speedVariance:{default:0,description:"How much each row's speed varies \u2014 at high values rows move at different speeds and directions",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Speed Variance",group:"Animation"}},seed:{default:0,description:"Random seed for per-row speed variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Animation"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=T(HN,"brickField",[r,a,t.cellsX,t.cellsY,t.mortar,t.softness,t.variation,t.rotation,t.offset,t.speedVariance,t.seed,i]),c=l.member("x"),d=l.member("y"),u=de(t.colorBrick.member("rgb").mul(d),t.colorBrick.member("a"));return T(Ye[s.colorSpace??0]??Be,"mixColors",[t.colorMortar,u,c])}};var jN=b.fn([o.vec4f,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_add(r,1),i=o.vec3f(.5,.5,.5),l=t.xyz.sub(i).mul(a).add(i).add(o.vec3f(s,s,s));return o.vec4f(l,t.w)}),{v:1,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,[7,"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,[7,"d","vec3f"],["brightness","brightness","brightness"]]]]],[10,[6,[7,"d","vec4f"],["result",[7,"color","w"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),pM={name:"BrightnessContrast",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Adjust brightness and contrast of the image",requiresChild:!0,props:{brightness:{default:0,description:"Brightness adjustment (-1 to 1)",ui:{type:["range","map"],min:-1,max:1,step:.01,label:"Brightness",group:"Adjustments"}},contrast:{default:0,description:"Contrast adjustment (-1 to 1)",ui:{type:["range","map"],min:-1,max:1,step:.01,label:"Contrast",group:"Adjustments"}}},fragment:({uniforms:e,childNode:t})=>t?T(jN,"brightnessContrastColor",[t,e.brightness,e.contrast]):(console.error("You must pass a child component into the Brightness Contrast shader."),me)};var{sdfSpaceUV:ZN,offsetUV:mM}=Zs,{createSvgSdfSampler:KN,createAnalyticSdfSampler:JN,driveAnalyticSubProps:QN,ANALYTIC_SDF_EXTRA_FIELDS:eY}=ft,{createVolumetricFieldComputeNode:tY,buildVolumetricFieldSampler:sY,VOLUMETRIC_FIELD_EXTRA_FIELDS:oY,is3dShapeType:rY,isVolumetricShapeType:aY}=ys,Yc=.017453292519943295,nY=JSON.stringify({type:"circleSDF",radius:.35}),iY=[-4,-3,-2,-1,0,1,2,3,4],lY=(()=>{let t=iY.map(r=>Math.exp(-(r*r)/8.82)),s=t.reduce((r,a)=>r+a,0);return t.map(r=>r/s)})(),_M=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.const(o.arrayOf(o.f32,9),lY),"BRUSH_BLUR_W");function cY(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var fM=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_sub(__tsover_mul(t,r),__tsover_mul(s,a)),u=__tsover_add(__tsover_mul(t,a),__tsover_mul(s,r)),p=o.vec2f(d,u),m=n.smoothstep(-.7,.85,u),_=__tsover_mul(__tsover_mul(m,m),.38),v=__tsover_mul(i,1);_=__tsover_add(_,__tsover_mul(__tsover_mul(n.smoothstep(v,__tsover_mul(v,.2),n.length(p.sub(o.vec2f(__tsover_add(0,l),.55)))),1.7),c));let h=__tsover_mul(i,1.15);_=__tsover_add(_,__tsover_mul(__tsover_mul(n.smoothstep(h,__tsover_mul(h,.2),n.length(p.sub(o.vec2f(__tsover_add(-.55,l),.18)))
242),1.05),c));let y=__tsover_mul(i,1);_=__tsover_add(_,__tsover_mul(__tsover_mul(n.smoothstep(y,__tsover_mul(y,.2),n.length(p.sub(o.vec2f(__tsover_add(.55,l),.1)))),1),c));let x=__tsover_mul(i,1.3);_=__tsover_add(_,__tsover_mul(__tsover_mul(n.smoothstep(x,__tsover_mul(x,.2),n.length(p.sub(o.vec2f(__tsover_add(.2,l),-.5)))),.7),c));let g=__tsover_mul(i,1.1);return _=__tsover_add(_,__tsover_mul(__tsover_mul(n.smoothstep(g,__tsover_mul(g,.2),n.length(p.sub(o.vec2f(__tsover_add(-.35,l),-.25)))),.85),c)),_}),{v:1,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"}],body:[0,[[13,"ex",[1,[1,"rx","*","envC"],"-",[1,"ry","*","envS"]]],[13,"ey",[1,[1,"rx","*","envS"],"+",[1,"ry","*","envC"]]],[13,"p",[6,[7,"d","vec2f"],["ex","ey"]]],[13,"sky",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.7"]],[5,"0.85"],"ey"]]],[12,"lum",[1,[1,"sky","*","sky"],"*",[5,"0.38"]]],[13,"r0",[1,"keyRad","*",[5,"1"]]],[2,"lum","=",[1,"lum","+",[1,[1,[6,[7,"std","smoothstep"],["r0",[1,"r0","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"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,[7,"std","smoothstep"],["r1",[1,"r1","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"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,[7,"std","smoothstep"],["r2",[1,"r2","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"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,[7,"std","smoothstep"],["r3",[1,"r3","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"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,[7,"std","smoothstep"],["r4",[1,"r4","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[1,[4,"-",[5,"0.35"]],"+","drift"],[4,"-",[5,"0.25"]]]]]]]]]],"*",[5,"0.85"]],"*","envStr"]]],[10,"lum"]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),dY=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec2f,o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=u.x,v=u.y,h=u.z,y=u.w,x=p.x,g=p.y,w=p.z,f=p.w,A=m.x,E=m.y,P=m.z,C=m.w,$=__tsover_div(l.x,l.y),U=n.max(__tsover_mul(v,.5),.001),k=__tsover_div(1,l.y),R=t.x,D=__tsover_div(R,_);if(D>__tsover_mul(k,2))return o.vec4f(0,0,0,0);let M=n.cos(__tsover_mul(E,Yc)),z=n.sin(__tsover_mul(E,Yc)),L=n.cos(__tsover_mul(h,Yc)),B=n.sin(__tsover_mul(h,Yc)),N=n.cos(__tsover_mul(A,Yc)),G=n.sin(__tsover_mul(A,Yc)),I=.01,X=__tsover_div(__tsover_sub(s.x,R),I),F=__tsover_div(__tsover_sub(r.x,R),I),Q=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),I),-5,5),ae=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),I),-5,5),j=n.normalize(o.vec3f(Q,ae,-1)),q=n.clamp(__tsover_div(__tsover_mul(D,-1),.05),0,1),te=__tsover_mul(__tsover_sub(1,q),1.6),ne=n.normalize(o.vec3f(__tsover_mul(X,te),__tsover_mul(F,te),-1)),oe=n.select(ne,j,C>.5),pe=n.select(__tsover_sub(a.x,.5),t.y,C>.5),_e=n.select(__tsover_sub(a.y,.5),t.z,C>.5),ge=__tsover_mul(B,-1),Me=L,Se=__tsover_add(__tsover_mul(pe,L),__tsover_mul(_e,B)),Ae=__tsover_add(__tsover_mul(pe,ge),__tsover_mul(_e,Me)),Pe=__tsover_mul(g,150),De=__tsover_mul(n.sin(__tsover_mul(P,.05)),.35),ke=y,Ge=Vt(o.vec2f(__tsover_add(__tsover_mul(Se,1.3),De),__tsover_mul(Ae,6.5))),Oe=__tsover_add(Vt(o.vec2f(__tsover_mul(Se,4.5),__tsover_mul(Ae,Pe))),__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_mul(Se,8),3.1),__tsover_add(__tsover_mul(__tsover_mul(Ae,Pe),2.3),7.7))),.5)),qe=__tsover_add(__tsover_mul(ke,.5),.08),We=__tsover_mul(x,.16),Ve=__tsover_add(__tsover_mul(Ge,qe),__tsover_mul(Oe,We)),Ne=__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_mul(__tsover_add(Se,11.7),1.3),De),__tsover_mul(Ae,6.5))),__tsover_mul(qe,.12)),He=n.normalize(o.vec3f(__tsover_add(__tsover_add(oe.x,__tsover_mul(ge,Ve)),__tsover_mul(L,Ne)),__tsover_add(__tsover_add(oe.y,__tsover_mul(Me,Ve)),__tsover_mul(B,Ne)),oe.z)),vt=.6,_t=n.normalize(o.vec3f(__tsover_mul(__tsover_mul(__tsover_sub(i.x,.5),$),vt),__tsover_mul(__tsover_sub(i.y,.5),vt),1)),Ze=n.clamp(__tsover_mul(n.dot(He,_t),-1),0,1),it=__tsover_sub(1,Ze),Tt=n.reflect(_t,He),J=f,be=n.clamp(w,0,1),ce=n.mix(.42,.16,__tsover_sub(1,be)),xe=__tsover_mul(n.sin(__tsover_mul(P,.07)),.05),ye=__tsover_mul(__tsover_mul(ke,__tsover_add(__tsover_mul(be,.6),.25)),.42),Ee=__tsover_div(ye,4),Le=o.f32(0);for(let Ls=0;Ls<9;Ls++){let Fr=__tsover_mul(Ee,__tsover_sub(o.f32(Ls),4));Le=__tsover_add(Le,__tsover_mul(fM(__tsover_add(Tt.x,__tsover_mul(L,Fr)),__tsover_add(Tt.y,__tsover_mul(B,Fr)),N,G,ce,xe,J),_M.$[Ls]))}let ot=o.vec3f(L,B,0),Ke=n.normalize(ot.sub(He.mul(n.dot(He,ot)))),rt=o.vec3f(__tsover_sub(__tsover_mul(He.y,Ke.z),__tsover_mul(He.z,Ke.y)),__tsover_sub(__tsover_mul(He.z,Ke.x),__tsover_mul(He.x,Ke.z)),__tsover_sub(__tsover_mul(He.x,Ke.y),__tsover_mul(He.y,Ke.x))),Mt=n.normalize(o.vec3f(M,z,-.7)),ht=n.normalize(Mt.sub(_t)),St=n.dot(ht,Ke),zt=n.dot(ht,rt),$t=n.clamp(n.abs(n.dot(ht,He)),1e-4,1),Xe=n.mix(.05,.45,be),Qt=__tsover_mul(Xe,__tsover_add(1,__tsover_mul(ke,7))),Xt=n.max(__tsover_mul(Xe,__tsover_sub(1,__tsover_mul(ke,.55))),.02),Ps=__tsover_div(__tsover_add(__tsover_mul(__tsover_div(St,Qt),__tsover_div(St,Qt)),__tsover_mul(__tsover_div(zt,Xt),__tsover_div(zt,Xt))),__tsover_mul(__tsover_add($t,1),.5)),$s=__tsover_mul(n.exp(__tsover_mul(Ps,-1)),n.mix(.45,1.1,__tsover_sub(1,be))),Ks=__tsover_add(1,__tsover_mul(n.pow(it,o.f32(3)),.6)),yo=n.clamp(__tsover_mul(__tsover_add(Le,$s),Ks),0,1.7),Gs=n.mix(d,c,o.vec3f(yo)),Js=n.smoothstep(0,1,n.clamp(__tsover_mul(__tsover_div(__tsover_mul(D,-1),U),32),0,1));return o.vec4f(Gs.x,Gs.y,Gs.z,Js)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"uv"},{type:"i",name:"viewportSize"},{type:"i",name:"lightColor"},{type:"i",name:"darkColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"}],body:[0,[[13,"scl",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"brushAngle",[7,"p0","z"]],[13,"anisotropy",[7,"p0","w"]],[13,"grain",[7,"p1","x"]],[13,"grainScale",[7,"p1","y"]],[13,"roughness",[7,"p1","z"]],[13,"environment",[7,"p1","w"]],[13,"envRotation",[7,"p2","x"]],[13,"lightAngle",[7,"p2","y"]],[13,"animTime",[7,"p2","z"]],[13,"volumetric",[7,"p2","w"]],[13,"aspect",[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]],[13,"sharpEdge",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scl"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"btx",[6,[7,"std","cos"],[[1,"brushAngle","*","DEG_TO_RAD"]]]],[13,"bty",[6,[7,"std","sin"],[[1,"brushAngle","*","DEG_TO_RAD"]]]],[13,"envC",[6,[7,"std","cos"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"envS",[6,[7,"std","sin"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"EPS",[5,"0.01"]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","
242w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"nVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"rimT",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.05"]],[5,"0"],[5,"1"]]]],[13,"rimBevel",[1,[1,[5,"1"],"-","rimT"],"*",[5,"1.6"]]],[13,"nFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","rimBevel"],[1,"gradY","*","rimBevel"],[4,"-",[5,"1"]]]]]]],[13,"nGeo",[6,[7,"std","select"],["nFlat","nVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"bix",[1,"bty","*",[4,"-",[5,"1"]]]],[13,"biy","btx"],[13,"along",[1,[1,"pdx","*","btx"],"+",[1,"pdy","*","bty"]]],[13,"across",[1,[1,"pdx","*","bix"],"+",[1,"pdy","*","biy"]]],[13,"dens",[1,"grainScale","*",[5,"150"]]],[13,"driftA",[1,[6,[7,"std","sin"],[[1,"animTime","*",[5,"0.05"]]]],"*",[5,"0.35"]]],[13,"aniso","anisotropy"],[13,"sheen0",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"along","*",[5,"1.3"]],"+","driftA"],[1,"across","*",[5,"6.5"]]]]]]],[13,"line0",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"along","*",[5,"4.5"]],[1,"across","*","dens"]]]]],"+",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"along","*",[5,"8"]],"+",[5,"3.1"]],[1,[1,[1,"across","*","dens"],"*",[5,"2.3"]],"+",[5,"7.7"]]]]]],"*",[5,"0.5"]]]],[13,"sheenAmt",[1,[1,"aniso","*",[5,"0.5"]],"+",[5,"0.08"]]],[13,"lineAmt",[1,"grain","*",[5,"0.16"]]],[13,"pAcross",[1,[1,"sheen0","*","sheenAmt"],"+",[1,"line0","*","lineAmt"]]],[13,"pAlong",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"along","+",[5,"11.7"]],"*",[5,"1.3"]],"+","driftA"],[1,"across","*",[5,"6.5"]]]]]],"*",[1,"sheenAmt","*",[5,"0.12"]]]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[7,"nGeo","x"],"+",[1,"bix","*","pAcross"]],"+",[1,"btx","*","pAlong"]],[1,[1,[7,"nGeo","y"],"+",[1,"biy","*","pAcross"]],"+",[1,"bty","*","pAlong"]],[7,"nGeo","z"]]]]]],[13,"fov",[5,"0.6"]],[13,"viewI",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],"*","fov"],[1,[1,[7,"uv","y"],"-",[5,"0.5"]],"*","fov"],[5,"1"]]]]]],[13,"cosView",[6,[7,"std","clamp"],[[1,[6,[7,"std","dot"],["n","viewI"]],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"grazing",[1,[5,"1"],"-","cosView"]],[13,"R",[6,[7,"std","reflect"],["viewI","n"]]],[13,"envStr","environment"],[13,"rough",[6,[7,"std","clamp"],["roughness",[5,"0"],[5,"1"]]]],[13,"keyRad",[6,[7,"std","mix"],[[5,"0.42"],[5,"0.16"],[1,[5,"1"],"-","rough"]]]],[13,"drift",[1,[6,[7,"std","sin"],[[1,"animTime","*",[5,"0.07"]]]],"*",[5,"0.05"]]],[13,"smear",[1,[1,"aniso","*",[1,[1,"rough","*",[5,"0.6"]],"+",[5,"0.25"]]],"*",[5,"0.42"]]],[13,"step",[1,"smear","/",[5,"4"]]],[12,"envLum",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"9"]],[102,"++","i"],[0,[[13,"off",[1,"step","*",[1,[6,[7,"d","f32"],["i"]],"-",[5,"4"]]]],[2,"envLum","=",[1,"envLum","+",[1,[6,"brushedStudio",[[1,[7,"R","x"],"+",[1,"btx","*","off"]],[1,[7,"R","y"],"+",[1,"bty","*","off"]],"envC","envS","keyRad","drift","envStr"]],"*",[8,[7,"BRUSH_BLUR_W","$"],"i"]]]]]]],[13,"t0",[6,[7,"d","vec3f"],["btx","bty",[5,"0"]]]],[13,"T3",[6,[7,"std","normalize"],[[6,[7,"t0","sub"],[[6,[7,"n","mul"],[[6,[7,"std","dot"],["n","t0"]]]]]]]]],[13,"B3",[6,[7,"d","vec3f"],[[1,[1,[7,"n","y"],"*",[7,"T3","z"]],"-",[1,[7,"n","z"],"*",[7,"T3","y"]]],[1,[1,[7,"n","z"],"*",[7,"T3","x"]],"-",[1,[7,"n","x"],"*",[7,"T3","z"]]],[1,[1,[7,"n","x"],"*",[7,"T3","y"]],"-",[1,[7,"n","y"],"*",[7,"T3","x"]]]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.7"]]]]]]],[13,"H",[6,[7,"std","normalize"],[[6,[7,"L","sub"],["viewI"]]]]],[13,"hT",[6,[7,"std","dot"],["H","T3"]]],[13,"hB",[6,[7,"std","dot"],["H","B3"]]],[13,"hN",[6,[7,"std","clamp"],[[6,[7,"std","abs"],[[6,[7,"std","dot"],["H","n"]]]],[5,"0.0001"],[5,"1"]]]],[13,"baseA",[6,[7,"std","mix"],[[5,"0.05"],[5,"0.45"],"rough"]]],[13,"aAlong",[1,"baseA","*",[1,[5,"1"],"+",[1,"aniso","*",[5,"7"]]]]],[13,"aAcross",[6,[7,"std","max"],[[1,"baseA","*",[1,[5,"1"],"-",[1,"aniso","*",[5,"0.55"]]]],[5,"0.02"]]]],[13,"expo",[1,[1,[1,[1,"hT","/","aAlong"],"*",[1,"hT","/","aAlong"]],"+",[1,[1,"hB","/","aAcross"],"*",[1,"hB","/","aAcross"]]],"/",[1,[1,"hN","+",[5,"1"]],"*",[5,"0.5"]]]],[13,"spec",[1,[6,[7,"std","exp"],[[1,"expo","*",[4,"-",[5,"1"]]]]],"*",[6,[7,"std","mix"],[[5,"0.45"],[5,"1.1"],[1,[5,"1"],"-","rough"]]]]],[13,"fres",[1,[5,"1"],"+",[1,[6,[7,"std","pow"],["grazing",[6,[7,"d","f32"],[[5,"3"]]]]],"*",[5,"0.6"]]]],[13,"lit",[6,[7,"std","clamp"],[[1,[1,"envLum","+","spec"],"*","fres"],[5,"0"],[5,"1.7"]]]],[13,"rgb",[6,[7,"std","mix"],["darkColor","lightColor",[6,[7,"d","vec3f"],["lit"]]]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharpEdge"],"*",[5,"32"]],[5,"0"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"transition"]]]]],externalNames:["std","d","DEG_TO_RAD","noise","brushedStudio","BRUSH_BLUR_W"]},externals:()=>({std:n,d:o,DEG_TO_RAD:Yc,noise:mt,brushedStudio:fM,BRUSH_BLUR_W:_M})})&&e.f)({})),vM={name:"BrushedMetal",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Photorealistic brushed metal \u2014 a satin anodised surface combed with fine directional grain that smears the reflected studio and ke
242y light into the long anisotropic streaks of real brushed aluminium, steel, gold or copper",animatedTime:{speed:"speed"},extraFields:{...oY,...eY},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:we,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:"#e9ebef",transform:O,description:"The bright tone of the polished grain \u2014 recolor for gold (#ffe8b0), copper (#ffc8a0) or steel",ui:{type:"color",label:"Light Color",group:"Metal"}},darkColor:{default:"#26282d",transform:O,description:"The dark tone the brushed grain falls to in shadow. Tint it warm for gold/bronze, cool for steel.",ui:{type:"color",label:"Dark Color",group:"Metal"}},brushAngle:{default:0,description:"Direction the surface is brushed, in degrees \u2014 the grain and every reflection streak run along this axis",ui:{type:"range",min:0,max:360,step:1,label:"Brush Angle",group:"Brush"}},anisotropy:{default:.4,description:"How directional the brushing is \u2014 1 = long smeared streaks along the grain, 0 = isotropic satin with no direction",ui:{type:"range",min:0,max:1,step:.01,label:"Anisotropy",group:"Brush"}},grain:{default:.4,description:"Depth of the individual brush scratches \u2014 the fine satin texture combed into the metal",ui:{type:"range",min:0,max:1,step:.01,label:"Grain",group:"Brush"}},grainScale:{default:2,description:"Density of the brush lines \u2014 higher = finer, tighter scratches",ui:{type:"range",min:.25,max:4,step:.01,label:"Grain Scale",group:"Brush"}},roughness:{default:.5,description:"Overall satin softness \u2014 0 = near-polished with crisp reflections, 1 = soft matte brushed finish",ui:{type:"range",min:0,max:1,step:.01,label:"Roughness",group:"Surface"}},environment:{default:1.4,description:"Strength of the reflected studio lighting \u2014 the softboxes seen smeared across the metal",ui:{type:"range",min:0,max:2,step:.01,label:"Environment",group:"Surface"}},envRotation:{default:0,description:"Rotates the whole reflected studio \u2014 spins where the bright reflections fall",ui:{type:"range",min:0,max:360,step:1,label:"Env Rotation",group:"Surface"}},lightAngle:{default:215,description:"Direction of the key light for the anisotropic specular streak, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Surface"}},speed:{default:.4,description:"Speed of the slowly drifting reflection \u2014 the studio gently orbits the surface. 0 pauses.",ui:{type:"range",min:0,max:4,step:.01,label:"Speed",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:nY,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"}},compute:e=>{let t=tY(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let f=sY(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=f.volumetricFieldSampler,c=f.volumetricFieldSamplerFast,d=!0}else{let f=r.shapeSdfUrl||"",A=r.shapeType||"";if(f)l=KN(e,f),c=l,d=aY(A);else{let E=cY(A,i("shape"));l=JN(E,QN(e,()=>i("shape")),"raw"),c=l,d=rY(E)}}let p=T(ZN,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),m=l(p),_=c(T(mM,"offsetUV",[p,le(.01),le(0)])),v=c(T(mM,"offsetUV",[p,le(0),le(.01)])),h=Fe(e),y=le(d?1:0),x=de(s.scale,s.edgeSoftness,s.brushAngle,s.anisotropy),g=de(s.grain,s.grainScale,s.roughness,s.environment),w=de(s.envRotation,s.lightAngle,h,y);return T(dY,"brushedMetalComposite",[m,_,v,p,a.uv,a.viewportSize,s.lightColor.member("rgb"),s.darkColor.member("rgb"),x,g,w])}};var hM=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=o.vec2f(__tsover_mul(i.x,l),i.y),d=o.vec2f(__tsover_mul(t.x,l),__tsover_sub(1,t.y)),u=c.sub(d),p=n.length(u),m=__tsover_mul(r,.5),_=__tsover_mul(m,n.max(__tsover_sub(__tsover_sub(1,a),.001),0)),v=__tsover_sub(1,n.smoothstep(_,m,p)),h=__tsover_div(p,m),y=__tsover_mul(h,h),x=n.max(0,__tsover_sub(1,y)),g=__tsover_mul(v,x),w=__tsover_mul(s,-1),f=__tsover_mul(w,g),A=__tsover_add(1,f),E=u.mul(A),P=d.add(E);return o.vec2f(__tsover_div(P.x,l),P.y)}),{v:1,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"}
242],body:[0,[[13,"aspectCorrectedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"distance",[6,[7,"std","length"],["delta"]]],[13,"effectRadius",[1,"radius","*",[5,"0.5"]]],[13,"innerRadius",[1,"effectRadius","*",[6,[7,"std","max"],[[1,[1,[5,"1"],"-","falloff"],"-",[5,"0.001"]],[5,"0"]]]]],[13,"smoothFalloff",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["innerRadius","effectRadius","distance"]]]],[13,"normalizedDist",[1,"distance","/","effectRadius"]],[13,"distSq",[1,"normalizedDist","*","normalizedDist"]],[13,"quadraticFalloff",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"bulgedUV","x"],"/","aspect"],[7,"bulgedUV","y"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),yM={name:"Bulge",category:"Distortions",description:"Magnify or pinch content around a center point",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The center point of the bulge effect",ui:{type:"position",label:"Center",group:"Position"}},strength:{default:1,description:"The intensity of the bulge effect (positive = bulge out, negative = pinch in)",ui:{type:["range","map"],min:-1,max:1,step:.01,label:"Strength",group:"Effect"}},radius:{default:1,description:"The radius of the bulge effect area",ui:{type:["range","map"],min:0,max:5,step:.1,label:"Radius",group:"Effect"}},falloff:{default:.5,description:"Controls the smoothness of the transition (0 = hard edge, 1 = very smooth)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Falloff",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the Bulge shader."),me;let i=a(t),l=r.edges??0;return T(Re,"unpremultiplyAlpha",[Gt(T(hM,"bulgeUV",[e.center,e.strength,e.radius,e.falloff,s.uv,s.aspect]),c=>i.sample(c),l)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0;return zs(T(hM,"bulgeUV",[s.center,s.strength,s.radius,s.falloff,e,r]),t,i)}};var{sdfSpaceUV:uY,offsetUV:gM}=Zs,{createSvgSdfSampler:pY,createAnalyticSdfSampler:mY,driveAnalyticSubProps:_Y,ANALYTIC_SDF_EXTRA_FIELDS:fY}=ft,{createVolumetricFieldComputeNode:vY,buildVolumetricFieldSampler:hY,VOLUMETRIC_FIELD_EXTRA_FIELDS:yY,is3dShapeType:gY,isVolumetricShapeType:xY}=ys,Gc=.017453292519943295,xM=Math.PI,bM=2*Math.PI*7,bY=JSON.stringify({type:"circleSDF",radius:.35});function wY(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}function TY(e){return b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec2f,o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=p.x,h=p.y,y=p.z,x=p.w,g=m.x,w=m.y,f=m.z,A=m.w,E=_.x,P=_.y,C=_.z,$=_.w,U=__tsover_div(c.x,c.y),k=n.max(__tsover_mul(h,.5),.001),R=__tsover_div(1,c.y),D=s.x,M=__tsover_div(D,v);if(M>__tsover_mul(R,2))return o.vec4f(0,0,0,0);let z=n.cos(__tsover_mul(C,Gc)),L=n.sin(__tsover_mul(C,Gc)),B=n.cos(__tsover_mul(x,Gc)),N=n.sin(__tsover_mul(x,Gc)),G=n.cos(__tsover_mul(P,Gc)
242),I=n.sin(__tsover_mul(P,Gc)),X=.01,F=__tsover_div(__tsover_sub(r.x,D),X),Q=__tsover_div(__tsover_sub(a.x,D),X),ae=n.clamp(__tsover_div(__tsover_sub(r.w,s.w),X),-5,5),j=n.clamp(__tsover_div(__tsover_sub(a.w,s.w),X),-5,5),q=n.normalize(o.vec3f(ae,j,-1)),te=n.clamp(__tsover_div(__tsover_mul(M,-1),.05),0,1),ne=__tsover_mul(__tsover_sub(1,te),1.6),oe=n.normalize(o.vec3f(__tsover_mul(F,ne),__tsover_mul(Q,ne),-1)),pe=n.select(oe,q,$>.5),_e=n.select(__tsover_sub(i.x,.5),s.y,$>.5),ge=n.select(__tsover_sub(i.y,.5),s.z,$>.5),Me=__tsover_mul(N,-1),Se=B,Ae=__tsover_add(__tsover_mul(_e,B),__tsover_mul(ge,N)),Pe=__tsover_add(__tsover_mul(_e,Me),__tsover_mul(ge,Se)),De=y,ke=__tsover_mul(Ae,De),Ge=__tsover_mul(Pe,De),Oe=n.floor(ke),qe=n.floor(Ge),We=__tsover_sub(n.fract(ke),.5),Ve=__tsover_sub(n.fract(Ge),.5),Ne=o.f32(0);if(e==="plain"){let Va=__tsover_add(Oe,qe);Ne=__tsover_sub(Va,__tsover_mul(2,n.floor(__tsover_div(Va,2))))}else{let Va=__tsover_add(__tsover_sub(Oe,qe),64),ec=__tsover_sub(Va,__tsover_mul(4,n.floor(__tsover_div(Va,4))));Ne=n.select(o.f32(0),o.f32(1),ec>=2)}let He=n.mix(B,Me,Ne),vt=n.mix(N,Se,Ne),_t=n.mix(Me,B,Ne),Ze=n.mix(Se,N,Ne),it=n.mix(Ve,We,Ne),Tt=n.mix(Ae,Pe,Ne),J=__tsover_mul(g,.32),be=__tsover_mul(n.sin(__tsover_mul(it,xM)),J),ce=__tsover_mul(Vt(o.vec2f(__tsover_mul(Tt,2),__tsover_mul(it,40))),.18),xe=__tsover_mul(__tsover_add(n.sin(__tsover_mul(it,bM)),ce),.13),ye=__tsover_add(be,xe),Ee=n.normalize(o.vec3f(__tsover_add(pe.x,__tsover_mul(_t,ye)),__tsover_add(pe.y,__tsover_mul(Ze,ye)),pe.z)),Le=n.min(__tsover_sub(.5,n.abs(We)),__tsover_sub(.5,n.abs(Ve))),ot=n.mix(.5,1,n.smoothstep(0,.05,Le)),Ke=.6,rt=n.normalize(o.vec3f(__tsover_mul(__tsover_mul(__tsover_sub(l.x,.5),U),Ke),__tsover_mul(__tsover_sub(l.y,.5),Ke),1)),Mt=n.clamp(__tsover_mul(n.dot(Ee,rt),-1),0,1),ht=__tsover_sub(1,Mt),St=n.reflect(rt,Ee),zt=n.clamp(f,0,1),$t=o.vec3f(He,vt,0),Xe=n.normalize($t.sub(Ee.mul(n.dot(Ee,$t)))),Qt=o.vec3f(__tsover_sub(__tsover_mul(Ee.y,Xe.z),__tsover_mul(Ee.z,Xe.y)),__tsover_sub(__tsover_mul(Ee.z,Xe.x),__tsover_mul(Ee.x,Xe.z)),__tsover_sub(__tsover_mul(Ee.x,Xe.y),__tsover_mul(Ee.y,Xe.x))),Xt=n.normalize(o.vec3f(z,L,-.7)),Ps=n.normalize(Xt.sub(rt)),$s=n.dot(Ps,Xe),Ks=n.dot(Ps,Qt),yo=n.clamp(n.abs(n.dot(Ps,Ee)),1e-4,1),Gs=n.mix(.06,.5,zt),Js=__tsover_mul(Gs,6),Ls=Gs,Fr=__tsover_div(__tsover_add(__tsover_mul(__tsover_div($s,Js),__tsover_div($s,Js)),__tsover_mul(__tsover_div(Ks,Ls),__tsover_div(Ks,Ls))),__tsover_mul(__tsover_add(yo,1),.5)),Er=__tsover_mul(n.exp(__tsover_mul(Fr,-1)),w),so=n.clamp(__tsover_add(__tsover_mul(n.dot(Ee,Xt),.5),.5),0,1),an=n.clamp(__tsover_add(__tsover_add(.035,__tsover_mul(so,.1)),Er),0,1.3),Tn=n.mix(u,d,o.vec3f(an)).mul(ot),Mr=E,nn=o.f32(.16),Br=__tsover_sub(__tsover_mul(St.x,G),__tsover_mul(St.y,I)),lr=__tsover_add(__tsover_mul(St.x,I),__tsover_mul(St.y,G)),ha=o.vec2f(Br,lr),Oi=n.smoothstep(-.7,.85,lr),oo=__tsover_mul(__tsover_mul(Oi,Oi),.3),ln=__tsover_mul(nn,1);oo=__tsover_add(oo,__tsover_mul(__tsover_mul(n.smoothstep(ln,__tsover_mul(ln,.2),n.length(ha.sub(o.vec2f(0,.55)))),1.7),Mr));let Ni=__tsover_mul(nn,1.15);oo=__tsover_add(oo,__tsover_mul(__tsover_mul(n.smoothstep(Ni,__tsover_mul(Ni,.2),n.length(ha.sub(o.vec2f(-.55,.18)))),1.05),Mr));let ni=__tsover_mul(nn,1);oo=__tsover_add(oo,__tsover_mul(__tsover_mul(n.smoothstep(ni,__tsover_mul(ni,.2),n.length(ha.sub(o.vec2f(.55,.1)))),1),Mr));let Sn=__tsover_mul(nn,1.3);oo=__tsover_add(oo,__tsover_mul(__tsover_mul(n.smoothstep(Sn,__tsover_mul(Sn,.2),n.length(ha.sub(o.vec2f(.2,-.5)))),.7),Mr));let An=__tsover_mul(nn,1.1);oo=__tsover_add(oo,__tsover_mul(__tsover_mul(n.smoothstep(An,__tsover_mul(An,.2),n.length(ha.sub(o.vec2f(-.35,-.25)))),.85),Mr));let En=__tsover_add(.05,__tsover_mul(n.pow(ht,o.f32(5)),.95)),ra=__tsover_mul(__tsover_mul(oo,En),A),Mn=Tn.add(o.vec3f(ra,ra,ra)),Ql=n.smoothstep(0,1,n.clamp(__tsover_mul(__tsover_div(__tsover_mul(M,-1),k),32),0,1));return o.vec4f(Mn.x,Mn.y,Mn.z,Ql)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"uv"},{type:"i",name:"viewportSize"},{type:"i",name:"lightColor"},{type:"i",name:"darkColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"}],body:[0,[[13,"scl",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"weaveScale",[7,"p0","z"]],[13,"weaveAngle",[7,"p0","w"]],[13,"relief",[7,"p1","x"]],[13,"fiberSheen",[7,"p1","y"]],[13,"roughness",[7,"p1","z"]],[13,"clearcoat",[7,"p1","w"]],[13,"environment",[7,"p2","x"]],[13,"envRotation",[7,"p2","y"]],[13,"lightAngle",[7,"p2","z"]],[13,"volumetric",[7,"p2","w"]],[13,"aspect",[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]],[13,"sharpEdge",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scl"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"wtx",[6,[7,"std","cos"],[[1,"weaveAngle","*","DEG_TO_RAD"]]]],[13,"wty",[6,[7,"std","sin"],[[1,"weaveAngle","*","DEG_TO_RAD"]]]],[13,"envC",[6,[7,"std","cos"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"envS",[6,[7,"std","sin"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"EPS",[5,"0.01"]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","
242w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"nVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"rimT",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.05"]],[5,"0"],[5,"1"]]]],[13,"rimBevel",[1,[1,[5,"1"],"-","rimT"],"*",[5,"1.6"]]],[13,"nFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","rimBevel"],[1,"gradY","*","rimBevel"],[4,"-",[5,"1"]]]]]]],[13,"nGeo",[6,[7,"std","select"],["nFlat","nVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"wbx",[1,"wty","*",[4,"-",[5,"1"]]]],[13,"wby","wtx"],[13,"warp",[1,[1,"pdx","*","wtx"],"+",[1,"pdy","*","wty"]]],[13,"weft",[1,[1,"pdx","*","wbx"],"+",[1,"pdy","*","wby"]]],[13,"wScale","weaveScale"],[13,"wA",[1,"warp","*","wScale"]],[13,"wB",[1,"weft","*","wScale"]],[13,"cellX",[6,[7,"std","floor"],["wA"]]],[13,"cellY",[6,[7,"std","floor"],["wB"]]],[13,"fA",[1,[6,[7,"std","fract"],["wA"]],"-",[5,"0.5"]]],[13,"fB",[1,[6,[7,"std","fract"],["wB"]],"-",[5,"0.5"]]],[12,"parity",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"weaveStyle","===",[103,"plain"]],[0,[[13,"s2",[1,"cellX","+","cellY"]],[2,"parity","=",[1,"s2","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"s2","/",[5,"2"]]]]]]]]],[0,[[13,"s4",[1,[1,"cellX","-","cellY"],"+",[5,"64"]]],[13,"m4",[1,"s4","-",[1,[5,"4"],"*",[6,[7,"std","floor"],[[1,"s4","/",[5,"4"]]]]]]],[2,"parity","=",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"m4",">=",[5,"2"]]]]]]]],[13,"fiberX",[6,[7,"std","mix"],["wtx","wbx","parity"]]],[13,"fiberY",[6,[7,"std","mix"],["wty","wby","parity"]]],[13,"crossX",[6,[7,"std","mix"],["wbx","wtx","parity"]]],[13,"crossY",[6,[7,"std","mix"],["wby","wty","parity"]]],[13,"acrossLocal",[6,[7,"std","mix"],["fB","fA","parity"]]],[13,"alongLocal",[6,[7,"std","mix"],["warp","weft","parity"]]],[13,"reliefAmt",[1,"relief","*",[5,"0.32"]]],[13,"bulge",[1,[6,[7,"std","sin"],[[1,"acrossLocal","*","PI"]]],"*","reliefAmt"]],[13,"filJit",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"alongLocal","*",[5,"2"]],[1,"acrossLocal","*",[5,"40"]]]]]],"*",[5,"0.18"]]],[13,"filament",[1,[1,[6,[7,"std","sin"],[[1,"acrossLocal","*","TWO_PI_SEVEN"]]],"+","filJit"],"*",[5,"0.13"]]],[13,"crossTilt",[1,"bulge","+","filament"]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[7,"nGeo","x"],"+",[1,"crossX","*","crossTilt"]],[1,[7,"nGeo","y"],"+",[1,"crossY","*","crossTilt"]],[7,"nGeo","z"]]]]]],[13,"edge",[6,[7,"std","min"],[[1,[5,"0.5"],"-",[6,[7,"std","abs"],["fA"]]],[1,[5,"0.5"],"-",[6,[7,"std","abs"],["fB"]]]]]],[13,"ao",[6,[7,"std","mix"],[[5,"0.5"],[5,"1"],[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.05"],"edge"]]]]],[13,"fov",[5,"0.6"]],[13,"viewI",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"*","aspect"],"*","fov"],[1,[1,[7,"uv","y"],"-",[5,"0.5"]],"*","fov"],[5,"1"]]]]]],[13,"cosView",[6,[7,"std","clamp"],[[1,[6,[7,"std","dot"],["n","viewI"]],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"grazing",[1,[5,"1"],"-","cosView"]],[13,"R",[6,[7,"std","reflect"],["viewI","n"]]],[13,"rough",[6,[7,"std","clamp"],["roughness",[5,"0"],[5,"1"]]]],[13,"t0",[6,[7,"d","vec3f"],["fiberX","fiberY",[5,"0"]]]],[13,"T3",[6,[7,"std","normalize"],[[6,[7,"t0","sub"],[[6,[7,"n","mul"],[[6,[7,"std","dot"],["n","t0"]]]]]]]]],[13,"B3",[6,[7,"d","vec3f"],[[1,[1,[7,"n","y"],"*",[7,"T3","z"]],"-",[1,[7,"n","z"],"*",[7,"T3","y"]]],[1,[1,[7,"n","z"],"*",[7,"T3","x"]],"-",[1,[7,"n","x"],"*",[7,"T3","z"]]],[1,[1,[7,"n","x"],"*",[7,"T3","y"]],"-",[1,[7,"n","y"],"*",[7,"T3","x"]]]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.7"]]]]]]],[13,"Hh",[6,[7,"std","normalize"],[[6,[7,"L","sub"],["viewI"]]]]],[13,"hT",[6,[7,"std","dot"],["Hh","T3"]]],[13,"hB",[6,[7,"std","dot"],["Hh","B3"]]],[13,"hN",[6,[7,"std","clamp"],[[6,[7,"std","abs"],[[6,[7,"std","dot"],["Hh","n"]]]],[5,"0.0001"],[5,"1"]]]],[13,"baseA",[6,[7,"std","mix"],[[5,"0.06"],[5,"0.5"],"rough"]]],[13,"aAlong",[1,"baseA","*",[5,"6"]]],[13,"aAcross","baseA"],[13,"expo",[1,[1,[1,[1,"hT","/","aAlong"],"*",[1,"hT","/","aAlong"]],"+",[1,[1,"hB","/","aAcross"],"*",[1,"hB","/","aAcross"]]],"/",[1,[1,"hN","+",[5,"1"]],"*",[5,"0.5"]]]],[13,"sheen",[1,[6,[7,"std","exp"],[[1,"expo","*",[4,"-",[5,"1"]]]]],"*","fiberSheen"]],[13,"ndl",[6,[7,"std","clamp"],[[1,[1,[6,[7,"std","dot"],["n","L"]],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"bodyLum",[6,[7,"std","clamp"],[[1,[1,[5,"0.035"],"+",[1,"ndl","*",[5,"0.1"]]],"+","sheen"],[5,"0"],[5,"1.3"]]]],[13,"body",[6,[7,[6,[7,"std","mix"],["darkColor","lightColor",[6,[7,"d","vec3f"],["bodyLum"]]]],"mul"],["ao"]]],[13,"envStr","environment"],[13,"keyRad",[6,[7,"d","f32"],[[5,"0.16"]]]],[13,"ex",[1,[1,[7,"R","x"],"*","envC"],"-",[1,[7,"R","y"],"*","envS"]]],[13,"ey",[1,[1,[7,"R","x"],"*","envS"],"+",[1,[7,"R","y"],"*","envC"]]],[13,"p",[6,[7,"d","vec2f"],["ex","ey"]]],[13,"sky",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.7"]],[5,"0.85"],"ey"]]],[12,"coatLum",[1,[1,"sky","*","sky"],"*",[5,"0.3"]]],[13,"r0",[1,"keyRad","*",[5,"1"]]],[2,"coatLum","=",[1,"coatLum","+",[1,[1,[6,[7,"std","smoothstep"],["r0",[1,"r0","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"0.55"]]]]]]]]],"*",[5,"1.7"]],"*","envStr"]]],[13,"r1",[1,"keyRad","*",[5,"1.15"]]],[2,"coatLum","=",[1,"coatLum","+",[1,[1,[6,[7,"std","smoothstep"],["r1",[1,"r1","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[4,"-",[5,"0.55"]],[5,"0.18"]]]]]]]]],"*",[5,"1.05"]],"*","envStr"]]],[13,"r2",[1,"ke
242yRad","*",[5,"1"]]],[2,"coatLum","=",[1,"coatLum","+",[1,[1,[6,[7,"std","smoothstep"],["r2",[1,"r2","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[5,"0.55"],[5,"0.1"]]]]]]]]],"*",[5,"1"]],"*","envStr"]]],[13,"r3",[1,"keyRad","*",[5,"1.3"]]],[2,"coatLum","=",[1,"coatLum","+",[1,[1,[6,[7,"std","smoothstep"],["r3",[1,"r3","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[5,"0.2"],[4,"-",[5,"0.5"]]]]]]]]]],"*",[5,"0.7"]],"*","envStr"]]],[13,"r4",[1,"keyRad","*",[5,"1.1"]]],[2,"coatLum","=",[1,"coatLum","+",[1,[1,[6,[7,"std","smoothstep"],["r4",[1,"r4","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[4,"-",[5,"0.35"]],[4,"-",[5,"0.25"]]]]]]]]]],"*",[5,"0.85"]],"*","envStr"]]],[13,"coatF",[1,[5,"0.05"],"+",[1,[6,[7,"std","pow"],["grazing",[6,[7,"d","f32"],[[5,"5"]]]]],"*",[5,"0.95"]]]],[13,"coat",[1,[1,"coatLum","*","coatF"],"*","clearcoat"]],[13,"rgb",[6,[7,"body","add"],[[6,[7,"d","vec3f"],["coat","coat","coat"]]]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharpEdge"],"*",[5,"32"]],[5,"0"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"transition"]]]]],externalNames:["std","d","DEG_TO_RAD","weaveStyle","PI","noise","TWO_PI_SEVEN"]},externals:()=>({std:n,d:o,DEG_TO_RAD:Gc,weaveStyle:e,PI:xM,noise:mt,TWO_PI_SEVEN:bM})})&&t.f)({})).$name(`carbonFiberComposite_${e}`)}var wM={name:"CarbonFiber",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Photorealistic woven carbon fibre \u2014 interlaced tows whose anisotropic sheen flips ninety degrees cell to cell, raised into a quilted weave and finished with a glossy clearcoat that mirrors the studio. Plain or twill, in any shape.",extraFields:{...yY,...fY},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:we,description:"Center position of the carbon shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the carbon shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the carbon shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},lightColor:{default:"#b9bdc6",transform:O,description:"The bright tone of the fibre sheen \u2014 recolor for forged/coloured carbon (red, blue, bronze)",ui:{type:"color",label:"Fiber Sheen",group:"Carbon"}},darkColor:{default:"#0b0c0e",transform:O,description:"The deep resin tone the weave falls to in shadow \u2014 near-black for classic carbon",ui:{type:"color",label:"Resin Color",group:"Carbon"}},weaveStyle:{default:"twill",compileTime:!0,description:"Weave pattern \u2014 plain (checkerboard) or 2\xD72 twill (the diagonal supercar weave)",ui:{type:"select",options:[{label:"Twill (2\xD72)",value:"twill"},{label:"Plain",value:"plain"}],label:"Weave",group:"Carbon"}},weaveScale:{default:30,description:"Number of woven tows across the shape \u2014 higher = finer, denser weave",ui:{type:"range",min:2,max:50,step:.5,label:"Weave Scale",group:"Carbon"}},weaveAngle:{default:0,description:"Rotates the whole weave grid in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Weave Angle",group:"Carbon"}},relief:{default:.5,description:"Depth of the quilted weave \u2014 how far each tow bulges, catching light on its crown and shadowing the valleys between",ui:{type:"range",min:0,max:1,step:.01,label:"Weave Depth",group:"Carbon"}},fiberSheen:{default:1.2,description:"Strength of the anisotropic fibre sheen \u2014 the directional satin glint running along each tow",ui:{type:"range",min:0,max:1.5,step:.01,label:"Fiber Sheen",group:"Carbon"}},roughness:{default:.5,description:"Softness of the fibre sheen \u2014 0 = tight crisp glints, 1 = soft matte satin",ui:{type:"range",min:0,max:1,step:.
24201,label:"Roughness",group:"Surface"}},clearcoat:{default:1.2,description:"Strength of the glossy lacquer coat \u2014 the sharp studio reflections of the wet clearcoat over the weave",ui:{type:"range",min:0,max:2,step:.01,label:"Clearcoat",group:"Surface"}},environment:{default:2,description:"Strength of the reflected studio lighting seen in the clearcoat",ui:{type:"range",min:0,max:2,step:.01,label:"Environment",group:"Surface"}},envRotation:{default:0,description:"Rotates the whole reflected studio \u2014 spins where the bright reflections fall",ui:{type:"range",min:0,max:360,step:1,label:"Env Rotation",group:"Surface"}},lightAngle:{default:215,description:"Direction of the key light for the fibre sheen, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",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:bY,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"}},compute:e=>{let t=vY(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let A=hY(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=A.volumetricFieldSampler,c=A.volumetricFieldSamplerFast,d=!0}else{let A=r.shapeSdfUrl||"",E=r.shapeType||"";if(A)l=pY(e,A),c=l,d=xY(E);else{let P=wY(E,i("shape"));l=mY(P,_Y(e,()=>i("shape")),"raw"),c=l,d=gY(P)}}let p=(r.weaveStyle||"twill")==="plain"?"plain":"twill",m=TY(p),_=T(uY,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),v=l(_),h=c(T(gM,"offsetUV",[_,le(.01),le(0)])),y=c(T(gM,"offsetUV",[_,le(0),le(.01)])),x=le(d?1:0),g=de(s.scale,s.edgeSoftness,s.weaveScale,s.weaveAngle),w=de(s.relief,s.fiberSheen,s.roughness,s.clearcoat),f=de(s.environment,s.envRotation,s.lightAngle,x);return T(m,`carbonFiberComposite_${p}`,[v,h,y,_,a.uv,a.viewportSize,s.lightColor.member("rgb"),s.darkColor.member("rgb"),g,w,f])}};var TM=Math.sin(.785),SM=Math.cos(.785),AM=Math.sin(-.785),EM=Math.cos(-.785),Vm=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(n.dot(t,o.vec2f(12.9898,78.233))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"12.9898"],[5,"78.233"]]]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),X2=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.floor(t),r=n.fract(t),a=r.mul(r).mul(r.mul(-2).add(3)),i=Vm(s),l=Vm(o.vec2f(__tsover_add(s.x,1),s.y)),c=Vm(o.vec2f(s.x,__tsover_add(s.y,1))),d=Vm(o.vec2f(__tsover_add(s.x,1),__tsover_add(s.y,1)));
vendor: 5,616 bytes, line 242
242return n.mix(n.mix(i,l,a.x),n.mix(c,d,a.x),a.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"std","floor"],["p"]]],[13,"f",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"i","x"],"+",[5,"1"]],[7,"i","y"]]]]]],[13,"c",[6,"chalkHash21",[[6,[7,"d","vec2f"],[[7,"i","x"],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[13,"dd",[6,"chalkHash21",[[6,[7,"d","vec2f"],[[1,[7,"i","x"],"+",[5,"1"]],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[10,[6,[7,"std","mix"],[[6,[7,"std","mix"],["a","b",[7,"u","x"]]],[6,[7,"std","mix"],["c","dd",[7,"u","x"]]],[7,"u","y"]]]]]],externalNames:["std","chalkHash21","d"]},externals:()=>({std:n,chalkHash21:Vm,d:o})})&&e.f)({})),MM=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.dot(o.vec3f(t.x,t.y,t.z),o.vec3f(.299,.587,.114))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,[7,"std","dot"],[[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]],[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),SY=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_div(1,s.x),c=__tsover_div(1,s.y);return o.vec2f(__tsover_add(t.x,__tsover_mul(__tsover_mul(l,r),a)),__tsover_add(t.y,__tsover_mul(__tsover_mul(c,r),i)))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,[1,"texelX","*","edgeThickness"],"*","ox"]],[1,[7,"uv","y"],"+",[1,[1,"texelY","*","edgeThickness"],"*","oy"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Pv=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_add(__tsover_mul(t.x,a),__tsover_mul(t.y,i)),d=__tsover_mul(n.abs(__tsover_sub(n.fract(__tsover_div(c,s)),.5)),2),u=__tsover_sub(1,n.smoothstep(0,.35,d));return __tsover_mul(u,n.step(l,r))}),{v:1,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,[7,"std","abs"],[[1,[6,[7,"std","fract"],[[1,"ry","/","hatchScale"]]],"-",[5,"0.5"]]]],"*",[5,"2"]]],[13,"line",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.35"],"hl"]]]],[10,[1,"line","*",[6,[7,"std","step"],["thr","shade"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),AY=b.fn([o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=t.x,p=t.y,m=t.z,_=t.w,v=s.x,h=s.y,y=s.z,x=s.w,g=i.x,w=i.y,f=l.x,A=l.y,E=l.z,P=l.w,C=__tsover_add(__tsover_add(__tsover_add(__tsover_sub(__tsover_sub(-u,__tsover_mul(_,2)),h),m),__tsover_mul(v,2)),x),$=__tsover_add(__tsover_add(__tsover_add(__tsover_sub(__tsover_sub(-u,__tsover_mul(p,2)),m),h),__tsover_mul(y,2)),x),U=n.sqrt(__tsover_add(__tsover_mul(C,C),__tsover_mul($,$))),k=n.mix(o.f32(1),.08,f),R=n.smoothstep(__tsover_mul(k,.4),k,U),D=__tsover_sub(1,g),M=r.mul(a),z=__tsover_mul(n.max(n.max(Pv(M,A,D,TM,SM,.22),Pv(M,A,D,AM,EM,.5)),Pv(M,A,D,0,1,.78)),E),L=n.mix(__tsover_sub(1,P),o.f32(1),X2(M.mul(.5))),B=n.clamp(__tsover_mul(n.max(R,z),L),0,1),N=__tsover_mul(__tsover_sub(X2(M.mul(.9)),.5),.04),G=c.xyz.add(N),I=n.mix(G,d.xyz,o.vec3f(B));return o.vec4f(I,w)}),{v:1,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,[7,"std","sqrt"],[[1,[1,"gx","*","gx"],"+",[1,"gy","*","gy"]]]]],[13,"edgeHigh",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],[5,"0.08"],"edgeSensitivity"]]],[13,"edge",[6,[7,"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,[7,"std","max"],[[6,[7,"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,[7,"std","mix"],[[1,[5,"1"],"-","grain"],[6,[7,"d","f32"],[[5,"1"]]],[6,"chalkVnoise",[[6,[7,"P","mul"],[[5,"0.5"]]]]]]]],[13,"chalk
242Mask",[6,[7,"std","clamp"],[[1,[6,[7,"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,[7,"std","mix"],["boardRGB",[7,"chalkColor","xyz"],[6,[7,"d","vec3f"],["chalkMask"]]]]],[10,[6,[7,"d","vec4f"],["col","centerAlpha"]]]]],externalNames:["std","d","chalkHatchLine","SIN_045","COS_045","SIN_N45","COS_N45","chalkVnoise"]},externals:()=>({std:n,d:o,chalkHatchLine:Pv,SIN_045:TM,COS_045:SM,SIN_N45:AM,COS_N45:EM,chalkVnoise:X2})})&&e.f)({})),CM={name:"Chalkboard",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Renders content as a chalk drawing on a blackboard, with edge strokes and cross-hatch shading",requiresRTT:!0,requiresChild:!0,props:{boardColor:{default:"#000000",transform:O,description:"Background board color",ui:{type:"color",label:"Board",group:"Colors"}},chalkColor:{default:"#eceadb",transform:O,description:"Chalk stroke color",ui:{type:"color",label:"Chalk",group:"Colors"}},edgeSensitivity:{default:.5,description:"How readily edges are detected and drawn as chalk strokes",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Edge Sensitivity",group:"Effect"}},edgeThickness:{default:1.5,description:"Thickness of the chalk outline strokes",ui:{type:["range","map"],min:.5,max:4,step:.1,label:"Edge Thickness",group:"Effect"}},shading:{default:.05,description:"Amount of cross-hatch shading filling darker regions",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Shading",group:"Effect"}},hatchScale:{default:16,description:"Spacing of the cross-hatch lines in pixels",ui:{type:["range","map"],min:3,max:24,step:.5,label:"Hatch Scale",group:"Effect"}},grain:{default:.45,description:"Chalk dustiness / grain that breaks up the strokes",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Grain",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i=s.viewportSize,l=(E,P)=>{let C=T(SY,"chalkOffsetUV",[s.uv,i,e.edgeThickness,le(E),le(P)]);return T(MM,"chalkLuma",[T(Re,"unpremultiplyAlpha",[a.sample(C)])])},c=l(-1,-1),d=l(0,-1),u=l(1,-1),p=l(-1,0),m=l(1,0),_=l(-1,1),v=l(0,1),h=l(1,1),y=T(Re,"unpremultiplyAlpha",[a.sample(s.uv)]),x=T(MM,"chalkLuma",[y]),g=de(c,d,u,p),w=de(m,_,v,h),f=de(x,y.member("a"),0,0),A=de(e.edgeSensitivity,e.hatchScale,e.shading,e.grain);return T(AY,"chalkboardCompose",[g,w,s.uv,i,f,A,e.boardColor,e.chalkColor])}};var EY=b.fn([o.vec4f,o.vec4f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,.1),c=__tsover_mul(a,.1),d=__tsover_mul(i,.1),u=n.max(n.max(n.max(l,c),d),.01),p=__tsover_div(l,u),m=__tsover_div(c,u),_=__tsover_div(d,u),v=n.mix(t.x,s.x,p),h=n.mix(t.y,s.y,m),y=n.mix(t.z,s.z,_);return o.vec4f(v,h,y,t.w)}),{v:1,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,[7,"std","max"],[[6,[7,"std","max"],[[6,[7,"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,[7,"std","mix"],[[7,"sharp","x"],[7,"blurred","x"],"rMix"]]],[13,"finalG",[6,[7,"std","mix"],[[7,"sharp","y"],[7,"blurred","y"],"gMix"]]],[13,"finalB",[6,[7,"std","mix"],[[7,"sharp","z"],[7,"blurred","z"],"bMix"]]],[10,[6,[7,"d","vec4f"],["finalR","finalG","finalB",[7,"sharp","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("channelBlurCompose"),PM={name:"ChannelBlur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Independent blur for red, green, and blue channels",requiresRTT:!0,requiresChild:!0,props:{redIntensity:{default:0,description:"Blur intensity for red channel",ui:{type:["range","map"],min:0,max:100,step:1,label:"Red Intensity",group:"Effect"}},greenIntensity:{default:20,description:"Blur intensity for green channel",ui:{type:["range","map"],min:0,max:100,step:1,label:"Green Intensity",group:"Effect"}},blueIntensity:{default:40,description:"Blur intensity for blue channel",ui:{type:["range","map"],min:0,max:100,step:1,label:"Blue Intensity",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,onCleanup:l,onResize:c,dimensions:d}=e;if(!t)return null;let u=s?.root;if(!u)return null;let p=r(t),m=su(u,null,Math.max(1,Math.round(d.width)),Math.max(1,Math.round(d.height)),l),_=a(m.outputTexture);return c(({width:v,height:h})=>m.setInputDimensions(Math.max(1,Math.round(v)),Math.max(1,Math.round(h)))),{outputs:{childTexture:p,blurredTexture:_},bindInputs:v=>{let h=v(p.key);h&&m.setInputTexture(h.texture)},getComputeNodes:()=>{let v=(i("redIntensity")??0)*.1,h=(i("greenIntensity")??0)*.1,y=(i("blueIntensity")??0)*.1;return m.updateRadius(Math.max(v,h,y,.01)),m.computeSteps}}},fragment:({childNode:e,computeOutputs:t,uniforms:s,ctx:r,convertToTexture:a})=>{if(!e)return me;let i=t?.blurredTexture,l=t?.childTexture;return!i||!l?T(Re,"unpremultiplyAlpha",[a(e).sample(r.uv)]):T(Re,"unpremultiplyAlpha",[T(EY,"channelBlurCompose",[l.sample(r.uv),i.sample(r.uv),s.redIntensity,s.greenIntensity,s.blueIntensity])])}};var kM=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_mul(__tsover_mul(t.x,s),r),__tsover_mul(__tsover_sub(1,t.y),r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"cells"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[1,[7,"uv","x"],"*","aspect"],"*","cells"],[1,[1,[5,"1"],"-",[7,"uv","y"]],"*","cells"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),RM=b.fn([o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=o.vec2f(__tsover_mul(s.x,.5),__tsover_mul(s.y,.5)),a=n.abs(__tsover_sub(n.fract(__tsover_mul(__tsover_sub(t.x,r.x),.5)),.5)),i=n.abs(__tsover_sub(n.fract(__tsover_mul(__tsover_sub(t.y,r.y),.5)),.5)),l=n.abs(__tsover_sub(n.fract(__tsover_mul(__tsover_add(t.x,r.x),.5)),.5)),c=n.abs(__tsover_sub(n.fract(__tsover_mul(__tsover_add(t.y,r.y),.5)),.5)),d=__tsover_div(__tsover_mul(__tsover_sub(a,l),2),s.x),u=__tsover_div(__tsover_mul(__tsover_sub(i,c),2),s.y);return n.clamp(__tsover_sub(.5,__tsover_mul(__tsover_mul(d,u),.5)),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"w"}],body:[0,[[13,"aHalf",[6,[7,"d","vec2f"],[[1,[7,"w","x"],"*",[5,"0.5"]],[1,[7,"w","y"],"*",[5,"0.5"]]]]],[13,"minusSideX",[6,[7,"std","abs"],[[1,[6,[7,"std","fract"],[[1,[1,[7,"p","x"],"-",[7,"aHalf","x"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"minusSideY",[6,[7,"std","abs"],[[1,[6,[7,"std","fract"],[[1,[1,[7,"p","y"],"-",[7,"aHalf","y"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"plusSideX",[6,[7,"std","abs"],[[1,[6,[7,"std","fract"],[[1,[1,[7,"p","x"],"+",[7,"aHalf","x"]],"*",[5,"0.5"]]]],"-",[5,"0.5"]]]]],[13,"plusSideY",[6,[7,"std","abs"],[[1,[6,[7,"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,[7,"std","clamp"],[[1,[5,"0.5"],"-",[1,[1,"iX","*","iY"],"*",[5,"0.5"]]],[5,"0"],[5,"1"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),MY=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=kM(t,__tsover_div(s.x,n.max(s.y,1e-6)),r),l=n.dpdx(i),c=n.dpdy(i),d=o.vec2f(n.max(n.abs(l.x),n.abs(c.x)),n.max(n.abs(l.
242y),n.abs(c.y)));return RM(i,o.vec2f(n.max(__tsover_add(d.x,a),1e-5),n.max(__tsover_add(d.y,a),1e-5)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"softness"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[6,[7,"std","max"],[[7,"viewport","y"],[5,"0.000001"]]]]],[13,"p",[6,"checkerCoord",["uv","aspect","cells"]]],[13,"dpx",[6,[7,"std","dpdx"],["p"]]],[13,"dpy",[6,[7,"std","dpdy"],["p"]]],[13,"baseW",[6,[7,"d","vec2f"],[[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"dpx","x"]]],[6,[7,"std","abs"],[[7,"dpy","x"]]]]],[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"dpx","y"]]],[6,[7,"std","abs"],[[7,"dpy","y"]]]]]]]],[13,"w",[6,[7,"d","vec2f"],[[6,[7,"std","max"],[[1,[7,"baseW","x"],"+","softness"],[5,"0.00001"]]],[6,[7,"std","max"],[[1,[7,"baseW","y"],"+","softness"],[5,"0.00001"]]]]]],[10,[6,"checkerFilterValue",["p","w"]]]]],externalNames:["std","checkerCoord","d","checkerFilterValue"]},externals:()=>({std:n,checkerCoord:kM,d:o,checkerFilterValue:RM})})&&e.f)({})),$M={name:"Checkerboard",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Classic checkerboard pattern with two alternating colors",acceptsUVContext:!0,props:{colorA:{default:"#cccccc",transform:O,description:"First color of the checkerboard pattern",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#999999",transform:O,description:"Second color of the checkerboard pattern",ui:{type:"color",label:"Color B",group:"Colors"}},cells:{default:8,description:"Number of cells along the canvas height (creates square cells). Switch the unit to px in the editor to set an absolute cell size instead.",ui:{type:["range","map"],min:1,max:50,step:1,label:"Cells",group:"Effect",dimensional:"count-canvas-height"}},softness:{default:0,description:"Smoothness of the transition between colors (0 = hard edges, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Softness",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let t=T(MY,"checkerBlend",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,e.uniforms.cells,e.uniforms.softness]);return T(Ye[e.propValues.colorSpace??0]??Be,"mixColors",[e.uniforms.colorA,e.uniforms.colorB,t])}};var UM=.0174533,CY=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(s.x,s.y),p=__tsover_mul(t.x,u),m=t.y,_=__tsover_mul(a,UM),v=n.cos(_),h=n.sin(_),y=__tsover_sub(p,__tsover_mul(u,.5)),x=__tsover_sub(m,.5),g=__tsover_add(__tsover_mul(y,v),__tsover_mul(x,h)),w=__tsover_add(-__tsover_mul(y,h),__tsover_mul(x,v)),f=__tsover_mul(n.abs(__tsover_sub(n.fract(__tsover_mul(w,r)),.5)),2),A=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(g,r),__tsover_mul(f,.5)),d),c),E=n.fract(A),P=n.fwidth(A);return n.smoothstep(__tsover_sub(__tsover_sub(i,l),P),__tsover_add(__tsover_add(i,l),P),E)}),{v:1,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,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"au",[1,[7,"uv","x"],"*","aspect"]],[13,"av",[7,"uv","y"]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"std","sin"],["angleRad"]]],[13,"cu",[1,"au","-",[1,"aspect","*",[5,"0.5"]]]],[13,"cv",[1,"av","-",[5,"0.5"]]],[13,"rotU",[1,[1,"cu","*","cosA"],"+",[1,"cv","*","sinA"]]],[13,"rotV",[1,[4,"-",[1,"cu","*","sinA"]],"+",[1,"cv","*","cosA"]]],[13,"zigzag",[1,[6,[7,"std","abs"],[[1,[6,[7,"std","fract"],[[1,"rotV","*","count"]]],"-",[5,"0.5"]]]],"*",[5,"2"]]],[13,"stripeCoord",[1,[1,[1,[1,"rotU","*","count"],"+",[1,"zigzag","*",[5,"0.5"]]],"+","animTime"],"+","offset"]],[13,"pattern",[6,[7,"std","fract"],["stripeCoord"]]],[13,"fw",[6,[7,"std","fwidth"],["stripeCoord"]]],[10,[6,[7,"std","smoothstep"],[[1,[1,"balance","-","softness"],"-","fw"],[1,[1,"balance","+","softness"],"+","fw"],"pattern"]]]]],externalNames:["DEG_TO_RAD","std"]},externals:()=>({DEG_TO_RAD:UM,std:n})})&&e.f)({}
242)),DM={name:"Chevron",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Animated chevron / zigzag stripe pattern",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#000000",transform:O,description:"First color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Second color",ui:{type:"color",label:"Color B",group:"Colors"}},count:{default:5,description:"Number of chevron pairs visible",ui:{type:["range","map"],min:1,max:30,step:1,label:"Count",group:"Effect"}},angle:{default:0,transform:Jt,description:"Rotation angle of the chevrons",ui:{type:["range","map"],min:-180,max:180,step:1,label:"Angle",group:"Effect"}},balance:{default:.5,description:"Ratio of the two colors",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Balance",group:"Effect"}},softness:{default:0,description:"Edge softness",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},speed:{default:0,description:"Animation speed",ui:{type:"range",min:-2,max:2,step:.1,label:"Speed",group:"Animation"}},offset:{default:0,description:"Phase offset for pattern positioning",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Offset",group:"Animation"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=T(CY,"chevronMask",[r,a,t.count,t.angle,t.balance,t.softness,t.offset,i]);return de(T(Ye[s.colorSpace??0]??Be,"mixColors",[t.colorA,t.colorB,l]).member("rgb"),Ns(t.colorA.member("a"),t.colorB.member("a"),l))}};var ko=128,q2=(e,t)=>typeof e=="number"?e:t,PY=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_add(t.x,s),__tsover_add(t.y,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"dx"},{type:"i",name:"dy"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","dx"],[1,[7,"uv","y"],"+","dy"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})).$name("chromaFlowTapUV"),kY=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_mul(__tsover_add(__tsover_add(__tsover_add(__tsover_add(t.z,s.z),r.z),a.z),i.z),.2),_=n.smoothstep(0,.1,m),v=t.xy.add(s.xy).add(r.xy).add(a.xy).add(i.xy).mul(.2),h=n.length(v),y=n.smoothstep(.01,.1,h),x=__tsover_div(v.x,__tsover_add(h,.001)),g=__tsover_div(v.y,__tsover_add(h,.001)),w=n.smoothstep(0,.7,n.max(x,0)),f=n.smoothstep(0,.7,n.max(__tsover_mul(x,-1),0)),A=n.smoothstep(0,.7,n.max(g,0)),E=n.smoothstep(0,.7,n.max(__tsover_mul(g,-1),0)),P=u.mul(f).add(p.mul(w)),C=d.mul(E).add(c.mul(A)),$=__tsover_add(f,w),U=__tsover_add(A,E),k=__tsover_add(__tsover_add($,U),.001),R=P.mul(__tsover_div($,k)).add(C.mul(__tsover_div(U,k)));
vendor: 8,777 bytes, line 242
242return n.mix(l,R,o.vec4f(y)).mul(_)}),{v:1,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,[7,"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,[7,"std","length"],["flow"]]],[13,"hasFlow",[6,[7,"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,[7,"std","smoothstep"],[[5,"0"],[5,"0.7"],[6,[7,"std","max"],["normalizedX",[5,"0"]]]]]],[13,"leftAmount",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.7"],[6,[7,"std","max"],[[1,"normalizedX","*",[4,"-",[5,"1"]]],[5,"0"]]]]]],[13,"upAmount",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.7"],[6,[7,"std","max"],["normalizedY",[5,"0"]]]]]],[13,"downAmount",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.7"],[6,[7,"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,[7,"std","mix"],["base","directionalColor",[6,[7,"d","vec4f"],["hasFlow"]]]]],[10,[6,[7,"finalColor","mul"],["liquidIntensity"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("chromaFlowColor"),zM={name:"ChromaFlow",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Interactive liquid flow effect that follows your cursor",usesPointer:!0,props:{baseColor:{default:"#0066ff",transform:O,description:"Base liquid color",ui:{type:"color",label:"Base Color",group:"Colors"}},upColor:{default:"#00ff00",transform:O,description:"Color for upward movement",ui:{type:"color",label:"Up Color",group:"Colors"}},downColor:{default:"#ff0000",transform:O,description:"Color for downward movement",ui:{type:"color",label:"Down Color",group:"Colors"}},leftColor:{default:"#0000ff",transform:O,description:"Color for leftward movement",ui:{type:"color",label:"Left Color",group:"Colors"}},rightColor:{default:"#ffff00",transform:O,description:"Color for rightward movement",ui:{type:"color",label:"Right Color",group:"Colors"}},intensity:{default:1,description:"Strength of the liquid effect",ui:{type:"range",min:.5,max:1.5,step:.1,label:"Intensity",group:"Effect"}},radius:{default:3,description:"Radius of the liquid effect",ui:{type:"range",min:0,max:5,step:.1,label:"Radius",group:"Effect"}},momentum:{default:30,description:"How much momentum colors retain in their flow direction",ui:{type:"range",min:10,max:60,step:1,label:"Momentum",group:"Effect"}}},fragment:e=>{let{uniforms:t,ctx:s,uvContext:r,onBeforeRender:a,onCleanup:i,dimensions:l,createDataTexture:c,registerMediaTexture:d,getCpuValue:u}=e,p=new Float32Array(ko*ko*4),m=new Float32Array(ko*ko*4),_=new Uint16Array(ko*ko*4),v=c({width:ko,height:ko,format:"rgba16float",data:_,label:"chromaflow-field"});i(()=>v.destroy());let h=d(()=>v.texture),y=0,x=0,g=.5,w=.5,f=Date.now(),A=0;a(U=>{let{pointer:k}=U,R=Date.now(),D=Math.min((R-f)/1e3,.016);f=R;let M=l.width/Math.max(1,l.height),z=D>0?(k.x-g)/D:0,L=D>0?(k.y-w)/D:0;y=y*.85+z*.15,x=x*.85+L*.15,g=k.x,w=k.y;let B=Math.abs(z)+Math.abs(L)>.01;if(!B&&A<1e-4)return;let N=q2(u("intensity"),1),G=q2(u("radius"),3)*.05,I=q2(u("momentum"),30),X=1-D/Math.max(.1,1),F=1-D,Q=I*50*D,ae=0;for(let j=0;j<ko;j++)for(let q=0;q<ko;q++){let te=(j*ko+q)*4,ne=p[te],oe=p[te+1];if(m[te]=ne*X,m[te+1]=oe*X,m[te+2]=p[te+2]*F,Math.abs(ne)>.001||Math.abs(oe)>.001){let _e=q-ne*Q,ge=j-oe*Q,Me=Math.floor(_e),Se=Math.floor(ge),Ae=Me+1,Pe=Se+1;if(Me>=0&&Se>=0&&Ae<ko&&Pe<ko){let De=_e-Me,ke=ge-Se,Ge=(Se*ko+Me)*4,Oe=(Se*ko+Ae)*4,qe=(Pe*ko+Me)*4,We=(Pe*ko+Ae)*4,Ve=p[Ge+2]*(1-De)*(1-ke)+p[Oe+2]*De*(1-ke)+p[qe+2]*(1-De)*ke+p[We+2]*De*ke;m[te+2]=Ve*F}}let pe=Math.max(Math.abs(m[te]),Math.abs(m[te+1]),m[te+2]);pe>ae&&(ae=pe)}if(B){let j=Math.sqrt(y*y+x*x),q=G*Math.min(j*j*20,1),te=q*2*(q*2),ne=q*q,oe=N*100*D*.01,pe=Math.min(j*10,1);for(let _e=0;_e<ko;_e++)for(let ge=0;ge<ko;ge++){let Me=(ge+.5)/ko,Se=(_e+.5)/ko,Ae=M>=1?(Me-k.x)*M:Me-k.x,Pe=M>=1?Se-k.y:(Se-k.y)/M,De=Ae*Ae+Pe*Pe;if(De<te){let ke=(_e*ko+ge)*4,Ge=Math.exp(-De/ne);m[ke]+=y*Ge*oe,m[ke+1]+=x*Ge*oe,m[ke+2]+=Ge*oe*pe,m[ke]=Math.max(-1,Math.min(1,m[ke])),m[ke+1]=Math.max(-1,Math.min(1,m[ke+1])),m[ke+2]=Math.max(0,Math.min(1,m[ke+2]))}}}A=B?1:ae,p.set(m);for(let j=0;j<_.length;j++)_[j]=da(p[j]);v.write(_)});let E=r??s.uv,P=1/ko,C="linearClamp",$=(U,k)=>h.sample(T(PY,"chromaFlowTapUV",[E,le(U),le(k)]),C);return T(kY,"chromaFlowColor",[$(0,0),$(P,0),$(0,P),$(-P,0),$(0,-P),t.baseColor,t.upColor,t.downColor,t.leftColor,t.rightColor])}};var H2=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=n.radians(s),c=o.vec2f(__tsover_div(n.cos(l),a),n.sin(l)),d=__tsover_mul(r,.1),u=c.mul(d);return t.add(u.mul(i))}),{v:1,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,[7,"std","radians"],["angle"]]],[13,"direction",[6,[7,"d","vec2f"],[[1,[6,[7,"std","cos"],["angleRad"]],"/","aspect"],[6,[7,"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"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),IM={name:"ChromaticAberration",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Separate RGB channels for a prismatic distortion effect",requiresRTT:!0,requiresChild:!0,props:{strength:{default:.2,description:"Overall strength of the chromatic aberration effect",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Strength",group:"Effect"}},angle:{default:0,transform:Jt,description:"Direction of the chromatic aberration in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},redOffset:{default:-1,description:"Red channel offset multiplier",ui:{type:["range","map"],min:-2,max:2,step:.1,label:"Red Offset",group:"Effect"}},greenOffset:{default:0,description:"Green channel offset multiplier",ui:{type:["range","map"],min:-2,max:2,step:.1,label:"Green Offset",group:"Effect"}},blueOffset:{default:1,description:"Blue channel offset multiplier",ui:{type:["range","map"],min:-2,max:2,step:.1,label:"Blue Offset",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i=T(H2,"chromaticOffsetUV",[s.uv,e.angle,e.strength,s.aspect,e.redOffset]),l=T(H2,"chromaticOffsetUV",[s.uv,e.angle,e.strength,s.aspect,e.greenOffset]),c=T(H2,"chromaticOffsetUV",[s.uv,e.angle,e.strength,s.aspect,e.blueOffset]),d=a.sample(i),u=a.sample(l),p=a.sample(c);return T(Re,"unpremultiplyAlpha",[de(d.member("r"),u.member("g"),p.member("b"),u.member("a"))])}};var RY=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=o.vec2f(__tsover_mul(l.x,c),l.y),u=o.vec2f(__tsover_mul(t.x,c),__tsover_sub(1,t.y));return Is(Pl(__tsover_sub(d.x,u.x),__tsover_sub(d.y,u.y),__tsover_mul(s,.5)),r,a,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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"]
242]],[13,"circleEdge",[1,"radius","*",[5,"0.5"]]],[13,"dist",[6,[7,"sdf","circleSdf"],["dx","dy","circleEdge"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["d","sdf"]},externals:()=>({d:o,sdf:ft})})&&e.f)({})),LM={name:"Circle",category:"Shapes",description:"Generate a circle with adjustable size and softness",acceptsUVContext:!0,boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"canvas-height"},height:{prop:"radius",as:"canvas-height"}}},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"}},color:{default:"#ffffff",transform:O,description:"The color of the circle",ui:{type:"color",label:"Color",group:"Colors"}},radius:{default:1,description:"The radius of the circle. A value of one (1) is sets the circle to fit the canvas.",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Radius",group:"Effect",units:["%","px"]}},softness:{default:0,description:"Edge softness. Lower values like zero (0) are sharp, higher values like one (1) are softer.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect",dimensional:"canvas-height"}},center:{default:{x:.5,y:.5},transform:we,description:"The center point of the circle",ui:{type:"position",label:"Center Position",group:"Position",units:["%","px"]}},strokeThickness:{default:0,description:"The thickness of the stroke outline. Zero (0) means no stroke.",ui:{type:["range","map"],min:0,max:.5,step:.01,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"The color of the stroke outline",ui:{type:"color",label:"Stroke C
242olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"Position of the stroke relative to the circle edge",ui:{type:"select",options:[{label:"Outside",value:"outside"},{label:"Center",value:"center"},{label:"Inside",value:"inside"}],label:"Stroke Position",group:"Stroke"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors in soft edges",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(RY,"circleShape",[t.center,t.radius,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var FM=.0174533,$Y=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_div(s.x,s.y),c=__tsover_mul(r,FM),d=n.cos(c),u=n.sin(c),p=__tsover_add(__tsover_mul(__tsover_mul(t.x,l),d),__tsover_mul(t.y,u));return n.fract(__tsover_add(__tsover_mul(__tsover_mul(p,a),.2),i))}),{v:1,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,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"std","sin"],["angleRad"]]],[13,"projectedCoord",[1,[1,[1,[7,"uv","x"],"*","aspect"],"*","cosA"],"+",[1,[7,"uv","y"],"*","sinA"]]],[10,[6,[7,"std","fract"],[[1,[1,[1,"projectedCoord","*","scale"],"*",[5,"0.2"]],"+","animTime"]]]]]],externalNames:["DEG_TO_RAD","std"]},externals:()=>({DEG_TO_RAD:FM,std:n})})&&e.f)({})),UY=b.fn([o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(t,6),r=n.clamp(__tsover_sub(n.abs(__tsover_sub(s,3)),1),0,1),a=n.clamp(__tsover_sub(2,n.abs(__tsover_sub(s,2))),0,1),i=n.clamp(__tsover_sub(2,n.abs(__tsover_sub(s,4))),0,1);return o.vec4f(r,a,i,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"h6",[1,"t","*",[5,"6"]]],[13,"r",[6,[7,"std","clamp"],[[1,[6,[7,"std","abs"],[[1,"h6","-",[5,"3"]]]],"-",[5,"1"]],[5,"0"],[5,"1"]]]],[13,"g",[6,[7,"std","clamp"],[[1,[5,"2"],"-",[6,[7,"std","abs"],[[1,"h6","-",[5,"2"]]]]],[5,"0"],[5,"1"]]]],[13,"b",[6,[7,"std","clamp"],[[1,[5,"2"],"-",[6,[7,"std","abs"],[[1,"h6","-",[5,"4"]]]]],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],["r","g","b",[5,"1"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),DY=b.fn([o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(t,3);return o.vec2f(n.fract(s),n.floor(s))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"t3",[1,"t","*",[5,"3"]]],[10,[6,[7,"d","vec2f"],[[6,[7,"std","fract"],["t3"]],[6,[7,"std","floor"],["t3"]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),zY=b.fn([o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.mix(r,s,n.step(a,1.5));
vendor: 7,195 bytes, line 242
242return n.mix(i,t,n.step(a,.5))}),{v:1,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,[7,"std","mix"],["c20","c12",[6,[7,"std","step"],["floorT3",[5,"1.5"]]]]]],[10,[6,[7,"std","mix"],["seg1","c01",[6,[7,"std","step"],["floorT3",[5,"0.5"]]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),BM={name:"ColorWheel",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:O,description:"First color in the cycle",ui:{type:"color",label:"Color 1",group:"Colors",condition:{mode:"custom"}}},colorB:{default:"#00ff88",transform:O,description:"Second color in the cycle",ui:{type:"color",label:"Color 2",group:"Colors",condition:{mode:"custom"}}},colorC:{default:"#0066ff",transform:O,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:Jt,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:Ue,compileTime:!0,description:"Color space for blending between custom colors",ui:{type:"select",options:ze,label:"Color Space",group:"Colors",condition:{mode:"custom"}}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=T($Y,"colorWheelT",[r,a,t.angle,t.scale,i]);if((s.mode??"rainbow")==="rainbow")return T(UY,"colorWheelRainbow",[l]);let c=T(DY,"colorWheelPhase",[l]),d=c.member("x"),u=c.member("y"),p=Ye[s.colorSpace??0]??Be;return T(zY,"colorWheelSelect",[T(p,"mixColors",[t.colorA,t.colorB,d]),T(p,"mixColors",[t.colorB,t.colorC,d]),T(p,"mixColors",[t.colorC,t.colorA,d]),u])}};var IY=[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],LY=[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],YM=[];for(let e=0;e<8;e++)for(let t=0;t<8;t++)YM[e*8+t]=Math.cos((2*e+1)*t*Math.PI/16);var j2=Math.SQRT1_2,Z2=Math.PI/16,K2=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.const(o.arrayOf(o.f32,64),YM),"COS_LUT"),VM=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.const(o.arrayOf(o.f32,64),IY),"LUMA_QUANT_C"),OM=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.const(o.arrayOf(o.f32,64),LY),"CHROMA_QUANT_C"),Wc=6,GM=4,J2=8*GM,ei=GM,Bi=1024,WM="rgba16float",NM=b.fn([o.arrayOf(o.vec3f,64),o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.clamp(a,1,100),l=n.select(__tsover_sub(200,__tsover_mul(i,2)),__tsover_div(5e3,i),i<50),c=o.arrayOf(o.f32,64)(),d=o.arrayOf(o.f32,64)(),u=o.arrayOf(o.f32,64)();for(let C=0;C<64;C++){let $=t[C];c[C]=__tsover_sub(__tsover_add(__tsover_add(__tsover_mul($.x,.299),__tsover_mul($.y,.587)),__tsover_mul($.z,.114)),.5),d[C]=__tsover_add(__tsover_add(__tsover_mul($.x,-.168736),__tsover_mul($.y,-.331264)),__tsover_mul($.z,.5)),u[C]=__tsover_add(__tsover_add(__tsover_mul($.x,.5),__tsover_mul($.y,-.418688)),__tsover_mul($.z,-.081312))}let p=o.arrayOf(o.f32,__tsover_mul(8,Wc))();for(let C=0;C<8;C++)for(let $=0;$<Wc;$++){let U=o.f32(0);for(let k=0;k<8;k++)U=__tsover_add(U,__tsover_mul(c[__tsover_add(__tsover_mul(C,8),k)],K2.$[__tsover_add(__tsover_mul(k,8),$)]));p[__tsover_add(__tsover_mul(C,Wc),$)]=U}let m=o.f32(0);for(let C=0;C<Wc;C++){let $=n.select(1,j2,C===0),U=n.cos(__tsover_mul(__tsover_add(__tsover_mul(r,2),1),__tsover_mul(o.f32(C),Z2)));for(let k=0;k<Wc;k++){let R=n.select(1,j2,k===0),D=o.f32(0);for(let N=0;N<8;N++)D=__tsover_add(D,__tsover_mul(p[__tsover_add(__tsover_mul(N,Wc),k)],K2.$[__tsover_add(__tsover_mul(N,8),C)]));let M=__tsover_mul(D,__tsover_mul(__tsover_mul(.25,R),$)),z=__tsover_div(n.clamp(n.floor(__tsover_div(__tsover_add(__tsover_mul(l,VM.$[__tsover_add(__tsover_mul(C,8),k)]),50),100)),1,255),255),L=__tsover_mul(n.floor(__tsover_add(__tsover_div(M,z),.5)),z),B=n.cos(__tsover_mul(__tsover_add(__tsover_mul(s,2),1),__tsover_mul(o.f32(k),Z2)));m=__tsover_add(m,__tsover_mul(__tsover_mul(__tsover_mul(L,__tsover_mul(R,$)),B),U))}}let _=__tsover_add(__tsover_mul(m,.25),.5),v=o.f32(0),h=o.f32(0);for(let C=0;C<64;C++)v=__tsover_add(v,d[C]),h=__tsover_add(h,u[C]);let y=__tsover_div(n.clamp(n.floor(__tsover_div(__tsover_add(__tsover_mul(l,OM.$[0]),50),100)),1,255),255),x=__tsover_div(v,8),g=__tsover_div(h,8),w=__tsover_div(__tsover_mul(n.floor(__tsover_add(__tsover_div(x,y),.5)),y),8),f=__tsover_div(__tsover_mul(n.floor(__tsover_add(__tsover_div(g,y),.5)),y),8),A=__tsover_add(_,__tsover_mul(f,1.402)),E=__tsover_sub(__tsover_sub(_,__tsover_mul(w,.344136)),__tsover_mul(f,.714136)),P=__tsover_add(_,__tsover_mul(w,1.772));return n.clamp(o.vec3f(A,E,P),o.vec3f(0,0,0),o.vec3f(1,1,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"block"},{type:"i",name:"localX"},{type:"i",name:"localY"},{type:"i",name:"quality"}],body:[0,[[13,"qualityC",[6,[7,"std","clamp"],["quality",[5,"1"],[5,"100"]]]],[13,"qScale",[6,[7,"std","select"],[[1,[5,"200"],"-",[1,"qualityC","*",[5,"2"]]],[1,[5,"5000"],"/","qualityC"],[1,"qualityC","<",[5,"50"]]]]],[13,"Yv",[6,[6,[7,"d","arrayOf"],[[7,"d","f32"],[5,"64"]]],[]]],[13,"Cbv",[6,[6,[7,"d","arrayOf"],[[7,"d","f32"],[5,"64"]]],[]]],[13,"Crv",[6,[6,[7,"d","arrayOf"],[[7,"d","f32"],[5,"64"]]],[]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"64"]],[102,"++","i"],[0,[[13,"c",[8,"block","i"]],[2,[8,"Yv","i"],"=",[1,[1,[1,[1,[7,"c","x"],"*",[5,"0.299"]],"+",[1,[7,"c","y"],"*",[5,"0.587"]]],"+",[1,[7,"c","z"],"*",[5,"0.114"]]],"-",[5,"0.5"]]],[2,[8,"Cbv","i"],"=",[1,[1,[1,[7,"c","x"],"*",[4,"-",[5,"0.168736"]]],"+",[1,[7,"c","y"],"*",[4,"-",[5,"0.331264"]]]],"+",[1,[7,"c","z"],"*",[5,"0.5"]]]],[2,[8,"Crv","i"],"=",[1,[1,[1,[7,"c","x"],"*",[5,"0.5"]],"+",[1,[7,"c","y"],"*",[4,"-",[5,"0.418688"]]]],"+",[1,[7,"c","z"],"*",[4,"-",[5,"0.081312"]]]]]]]],[13,"rowCoef",[6,[6,[7,"d","arrayOf"],[[7,"d","f32"],[1,[5,"8"],"*","N_LUMA"]]],[]]],[14,[12,"y",[5,"0"]],[1,"y","<",[5,"8"]],[102,"++","y"],[0,[[14,[12,"u",[5,"0"]],[1,"u","<","N_LUMA"],[102,"++","u"],[0,[[12,"sum",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"x",[5,"0"]],[1,"x","<",[5,"8"]],[102,"++","x"],[2,"sum","=",[1,"sum","+",[1,[8,"Yv",[1,[1,"
242y","*",[5,"8"]],"+","x"]],"*",[8,[7,"COS_LUT","$"],[1,[1,"x","*",[5,"8"]],"+","u"]]]]]],[2,[8,"rowCoef",[1,[1,"y","*","N_LUMA"],"+","u"]],"=","sum"]]]]]]],[12,"acc",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"v",[5,"0"]],[1,"v","<","N_LUMA"],[102,"++","v"],[0,[[13,"av",[6,[7,"std","select"],[[5,"1"],"SQRT1_2",[1,"v","===",[5,"0"]]]]],[13,"cy",[6,[7,"std","cos"],[[1,[1,[1,"localY","*",[5,"2"]],"+",[5,"1"]],"*",[1,[6,[7,"d","f32"],["v"]],"*","PI_OVER_16"]]]]],[14,[12,"u",[5,"0"]],[1,"u","<","N_LUMA"],[102,"++","u"],[0,[[13,"au",[6,[7,"std","select"],[[5,"1"],"SQRT1_2",[1,"u","===",[5,"0"]]]]],[12,"colSum",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"y",[5,"0"]],[1,"y","<",[5,"8"]],[102,"++","y"],[2,"colSum","=",[1,"colSum","+",[1,[8,"rowCoef",[1,[1,"y","*","N_LUMA"],"+","u"]],"*",[8,[7,"COS_LUT","$"],[1,[1,"y","*",[5,"8"]],"+","v"]]]]]],[13,"G",[1,"colSum","*",[1,[1,[5,"0.25"],"*","au"],"*","av"]]],[13,"q",[1,[6,[7,"std","clamp"],[[6,[7,"std","floor"],[[1,[1,[1,"qScale","*",[8,[7,"LUMA_QUANT_C","$"],[1,[1,"v","*",[5,"8"]],"+","u"]]],"+",[5,"50"]],"/",[5,"100"]]]],[5,"1"],[5,"255"]]],"/",[5,"255"]]],[13,"Gq",[1,[6,[7,"std","floor"],[[1,[1,"G","/","q"],"+",[5,"0.5"]]]],"*","q"]],[13,"cx",[6,[7,"std","cos"],[[1,[1,[1,"localX","*",[5,"2"]],"+",[5,"1"]],"*",[1,[6,[7,"d","f32"],["u"]],"*","PI_OVER_16"]]]]],[2,"acc","=",[1,"acc","+",[1,[1,[1,"Gq","*",[1,"au","*","av"]],"*","cx"],"*","cy"]]]]]]]]],[13,"Y",[1,[1,"acc","*",[5,"0.25"]],"+",[5,"0.5"]]],[12,"sumCb",[6,[7,"d","f32"],[[5,"0"]]]],[12,"sumCr",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"64"]],[102,"++","i"],[0,[[2,"sumCb","=",[1,"sumCb","+",[8,"Cbv","i"]]],[2,"sumCr","=",[1,"sumCr","+",[8,"Crv","i"]]]]]],[13,"qChroma",[1,[6,[7,"std","clamp"],[[6,[7,"std","floor"],[[1,[1,[1,"qScale","*",[8,[7,"CHROMA_QUANT_C","$"],[5,"0"]]],"+",[5,"50"]],"/",[5,"100"]]]],[5,"1"],[5,"255"]]],"/",[5,"255"]]],[13,"GdcCb",[1,"sumCb","/",[5,"8"]]],[13,"GdcCr",[1,"sumCr","/",[5,"8"]]],[13,"Cb",[1,[1,[6,[7,"std","floor"],[[1,[1,"GdcCb","/","qChroma"],"+",[5,"0.5"]]]],"*","qChroma"],"/",[5,"8"]]],[13,"Cr",[1,[1,[6,[7,"std","floor"],[[1,[1,"GdcCr","/","qChroma"],"+",[5,"0.5"]]]],"*","qChroma"],"/",[5,"8"]]],[13,"r",[1,"Y","+",[1,"Cr","*",[5,"1.402"]]]],[13,"g",[1,[1,"Y","-",[1,"Cb","*",[5,"0.344136"]]],"-",[1,"Cr","*",[5,"0.714136"]]]],[13,"b",[1,"Y","+",[1,"Cb","*",[5,"1.772"]]]],[10,[6,[7,"std","clamp"],[[6,[7,"d","vec3f"],["r","g","b"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]]]],externalNames:["std","d","N_LUMA","COS_LUT","SQRT1_2","PI_OVER_16","LUMA_QUANT_C","CHROMA_QUANT_C"]},externals:()=>({std:n,d:o,N_LUMA:Wc,COS_LUT:K2,SQRT1_2:j2,PI_OVER_16:Z2,LUMA_QUANT_C:VM,CHROMA_QUANT_C:OM})})&&e.f)({})),FY=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.floor(t.mul(s)),a=n.clamp(n.floor(__tsover_div(r.x,ei)),0,__tsover_sub(Bi,1)),i=n.clamp(n.floor(__tsover_div(r.y,ei)),0,__tsover_sub(Bi,1));return o.vec2f(__tsover_div(__tsover_add(a,.5),Bi),__tsover_div(__tsover_add(i,.5),Bi))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"pPix",[6,[7,"std","floor"],[[6,[7,"uv","mul"],["viewport"]]]]],[13,"cellX",[6,[7,"std","clamp"],[[6,[7,"std","floor"],[[1,[7,"pPix","x"],"/","STRIDE"]]],[5,"0"],[1,"MAX_CELLS","-",[5,"1"]]]]],[13,"cellY",[6,[7,"std","clamp"],[[6,[7,"std","floor"],[[1,[7,"pPix","y"],"/","STRIDE"]]],[5,"0"],[1,"MAX_CELLS","-",[5,"1"]]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"cellX","+",[5,"0.5"]],"/","MAX_CELLS"],[1,[1,"cellY","+",[5,"0.5"]],"/","MAX_CELLS"]]]]]],externalNames:["std","STRIDE","MAX_CELLS","d"]},externals:()=>({std:n,STRIDE:ei,MAX_CELLS:Bi,d:o})})&&e.f)({}));function BY(){return o.struct({inputWidth:o.f32,inputHeight:o.f32,quality:o.f32})}function VY(){let e=BY(),t=(globalThis.__TYPEGPU_AUTONAME__??(s=>s))(b.bindGroupLayout({input:{texture:o.texture2d(o.f32)},cellTex:{storageTexture:o.textureStorage2d(WM,"write-only")},params:{uniform:e}}),"layout");return{layout:t,kernel:b.fn([o.u32,o.u32])((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,a)=>{"use gpu";let i=t.$.params,l=o.f32(r),c=o.f32(a),d=n.floor(__tsover_div(l,8)),u=n.floor(__tsover_div(c,8)),p=__tsover_sub(l,__tsover_mul(d,8)),m=__tsover_sub(c,__tsover_mul(u,8)),_=__tsover_mul(d,J2),v=__tsover_mul(u,J2),h=o.arrayOf(o.vec3f,64)(),y=o.i32(__tsover_sub(i.inputWi
vendor: 12,431 bytes, line 242
242dth,1)),x=o.i32(__tsover_sub(i.inputHeight,1));for(let w=0;w<8;w++)for(let f=0;f<8;f++){let A=__tsover_add(__tsover_add(_,__tsover_mul(o.f32(f),ei)),__tsover_mul(ei,.5)),E=__tsover_add(__tsover_add(v,__tsover_mul(o.f32(w),ei)),__tsover_mul(ei,.5)),P=n.clamp(o.i32(A),0,y),C=n.clamp(o.i32(E),0,x),$=n.textureLoad(t.$.input,o.vec2u(o.u32(P),o.u32(C)),0);h[__tsover_add(__tsover_mul(w,8),f)]=Re($).xyz}let g=NM(h,p,m,i.quality);n.textureStore(t.$.cellTex,o.vec2u(r,a),o.vec4f(g,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"cellXf",[6,[7,"d","f32"],["cx"]]],[13,"cellYf",[6,[7,"d","f32"],["cy"]]],[13,"blockCol",[6,[7,"std","floor"],[[1,"cellXf","/",[5,"8"]]]]],[13,"blockRow",[6,[7,"std","floor"],[[1,"cellYf","/",[5,"8"]]]]],[13,"localX",[1,"cellXf","-",[1,"blockCol","*",[5,"8"]]]],[13,"localY",[1,"cellYf","-",[1,"blockRow","*",[5,"8"]]]],[13,"originX",[1,"blockCol","*","BLOCK_PX"]],[13,"originY",[1,"blockRow","*","BLOCK_PX"]],[13,"block",[6,[6,[7,"d","arrayOf"],[[7,"d","vec3f"],[5,"64"]]],[]]],[13,"wm1",[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]],[13,"hm1",[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]],[14,[12,"y",[5,"0"]],[1,"y","<",[5,"8"]],[102,"++","y"],[0,[[14,[12,"x",[5,"0"]],[1,"x","<",[5,"8"]],[102,"++","x"],[0,[[13,"px",[1,[1,"originX","+",[1,[6,[7,"d","f32"],["x"]],"*","STRIDE"]],"+",[1,"STRIDE","*",[5,"0.5"]]]],[13,"py",[1,[1,"originY","+",[1,[6,[7,"d","f32"],["y"]],"*","STRIDE"]],"+",[1,"STRIDE","*",[5,"0.5"]]]],[13,"ix",[6,[7,"std","clamp"],[[6,[7,"d","i32"],["px"]],[5,"0"],"wm1"]]],[13,"iy",[6,[7,"std","clamp"],[[6,[7,"d","i32"],["py"]],[5,"0"],"hm1"]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"input"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["ix"]],[6,[7,"d","u32"],["iy"]]]],[5,"0"]]]],[2,[8,"block",[1,[1,"y","*",[5,"8"]],"+","x"]],"=",[7,[6,[7,"blend","unpremultiplyAlpha"],["texel"]],"xyz"]]]]]]]],[13,"rgb",[6,"jpegBlockRgb",["block","localX","localY",[7,"p","quality"]]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"cellTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["rgb",[5,"1"]]]]]]],externalNames:["layout","d","std","BLOCK_PX","STRIDE","blend","jpegBlockRgb"]},externals:()=>({layout:t,d:o,std:n,BLOCK_PX:J2,STRIDE:ei,blend:eu,jpegBlockRgb:NM})})&&s.f)({})).$name("compressionCell"),Params:e}}var XM={name:"CompressionArtifacts",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Simulates lossy JPEG compression \u2014 8\xD78 DCT block quantization, blockiness, ringing and color bleed",requiresRTT:!0,requiresChild:!0,props:{quality:{default:12,description:"JPEG quality (1 = heavily destroyed, 100 = near lossless)",ui:{type:["range","map"],min:1,max:100,step:1,label:"Quality",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,onCleanup:l,onResize:c,dimensions:d}=e;if(!t)return null;let u=s?.root;if(!u)return null;let p=r(t),m=(globalThis.__TYPEGPU_AUTONAME__??(C=>C))(u.createTexture({size:[Bi,Bi],format:WM}).$usage("storage","sampled"),"cellTex");l(()=>m.destroy());let _=a(m),v=VY(),h=(globalThis.__TYPEGPU_AUTONAME__??(C=>C))(u.createUniform(v.Params),"compParams"),y=Math.max(1,Math.round(d.width)),x=Math.max(1,Math.round(d.height)),g=(C,$)=>[Math.min(Math.ceil(C/ei),Bi),Math.min(Math.ceil($/ei),Bi)],[w,f]=g(y,x),A=pt(u,(C=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(C.f=(($,U)=>{"use gpu";v.kernel($,U)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:v})})&&C.f)({}),{}),E=A,P=!1;return c(({width:C,height:$})=>{y=Math.max(1,Math.round(C)),x=Math.max(1,Math.round($)),[w,f]=g(y,x)}),{outputs:{childTexture:p,jpegCellTexture:_},bindInputs:C=>{let $=C(p.key);if($){let U=u.createBindGroup(v.layout,{input:$.texture,cellTex:m,params:h.buffer});E=A.with(U),P=!0}},getComputeNodes:()=>{let C=i("quality");return h.write({inputWidth:y,inputHeight:x,quality:typeof C=="number"?C:12}),[()=>{P&&E.dispatchThreads(w,f)}]}}},fragment:({childNode:e,ctx:t,computeOutputs:s,convertToTexture:r})=>{if(!e)return me;let a=s?.jpegCellTexture,i=s?.childTexture;if(!a||!i)return T(Re,"unpremultiplyAlpha",[r(e).sample(t.uv)]);let l=T(Re,"unpremultiplyAlpha",[i.sample(t.uv)]),c=T(FY,"compressionCellUV",[t.uv,t.viewportSize]);return de(a.sample(c,"nearestClamp").member("rgb"),l.member("a"))}};var Q2=Math.PI,eb=Math.PI*2,Om=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(__tsover_sub(n.fract(__tsover_mul(n.sin(__tsover_mul(t,12.9898)),43758.5453)),.5),2)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[1,[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"x","*",[5,"12.9898"]]]],"*",[5,"43758.5453"]]]],"-",[5,"0.5"]],"*",[5,"2"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),qM=b.fn([o.vec2f,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec2f(r.x,__tsover_sub(1,r.y)),l=__tsover_mul(__tsover_sub(t.x,i.x),s),c=__tsover_sub(t.y,i.y),d=n.cos(a),u=n.sin(a),p=__tsover_sub(__tsover_mul(l,d),__tsover_mul(c,u)),m=__tsover_add(__tsover_mul(l,u),__tsover_mul(c,d));return o.vec2f(__tsover_add(__tsover_div(p,s),i.x),__tsover_add(m,i.y))}),{v:1,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,[7,"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,[7,"std","cos"],["angle"]]],[13,"sinA",[6,[7,"std","sin"],["angle"]]],[13,"rotX",[1,[1,"dx","*","cosA"],"-",[1,"dy","*","sinA"]]],[13,"rotY",[1,[1,"dx","*","sinA"],"+",[1,"dy","*","cosA"]]],[10,[6,[7,"d","vec2f"],[[1,[1,"rotX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rotY","+",[7,"centerPos","y"]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),HM=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=o.vec2f(t.x,__tsover_sub(1,t.y)),m=__tsover_mul(__tsover_sub(d.x,p.x),u),_=__tsover_sub(d.y,p.y),v=n.length(o.vec2f(m,_)),h=__tsover_mul(v,r),y=n.floor(h),x=n.fract(h),g=__tsover_mul(s,.01745),w=__tsover_mul(i,.137),f=__tsover_mul(Om(__tsover_add(y,w)),g),A=__tsover_mul(Om(__tsover_add(__tsover_add(y,1),w)),g),E=n.mix(1,Om(__tsover_add(y,42.7)),l),P=n.mix(1,Om(__tsover_add(__tsover_add(y,1),42.7)),l),C=__tsover_mul(__tsover_mul(c,.25),E),$=__tsover_mul(__tsover_mul(c,.25),P),U=__tsover_add(f,C),k=__tsover_add(A,$),R=__tsover_add(__tsover_sub(k,U),Q2),D=__tsover_sub(__tsover_sub(R,__tsover_mul(eb,n.floor(__tsover_div(R,eb)))),Q2),M=__tsover_add(__tsover_mul(a,.5),.001),z=n.smoothstep(__tsover_sub(.5,M),__tsover_add(.5,M),x);return qM(d,u,t,__tsover_add(U,__tsover_mul(D,z)))}),{v:1,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,[7,"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,[7,"std","length"],[[6,[7,"d","vec2f"],["dx","dy"]]]]],[13,"ringCoord",[1,"dist","*","rings"]],[13,"ringIndex",[6,[7,"std","floor"],["ringCoord"]]],[13,"ringFrac",[6,[7,"std","fract"],["ringCoord"]]],[13,"maxAngle",[1,"intensity","*",[5,"0.01745"]]],[13,"seedOffset",[1,"seed","*",[5,"0.137"]]],[13,"staticA",[1,[6,"csHash",[[1,"ringIndex","+","seedOffset"]]],"*","maxAngle"]],[13,"staticB",[1,[6,"csHash",[[1,[1,"ringIndex","+",[5,"1"]],"+","seedOffset"]]],"*","maxAngle"]],[13,"ringSpeedA",[6,[7,"std","mix"],[[5,"1"],[6,"csHash",[[1,"ringIndex","+",[5,"42.7"]]]],"speedRandomness"]]],[13,"ringSpeedB",[6,[7,"std","mix"],[[5,"1"],[6,"csHash",[[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,[7,"std","floor"],[[1,"wrapArg","/","TAU"]]]]],"-","PI"]],[13,"halfEdge",[1,[1,"smoothness","*",[5,"0.5"]],"+",[5,"0.001"]]],[13,"blend",[6,[7,"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"]]]]],externalNames:["d","std","csHash","PI","TAU","csRotateUV"]},externals:()=>({d:o,std:n,csHash:Om,PI:Q2,TAU:eb,csRotateUV:qM})})&&e.f)({})),jM={name:"ConcentricSpin",category:"Distortions",description:"Concentric rings that each rotate the underlying image by different amounts",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},animatedTime:{speed:"speed"},props:{intensity:{default:20,description:"Maximum rotation angle per ring",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Effect"}},rings:{default:8,description:"Number of concentric rings",ui:{type:["range","map"],min:1,max:30,step:1,label:"Rings",group:"Effect"}},smoothness:{default:.03,description:"Softness of transitions between rings",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Smoothness",group:"Effect"}},seed:{default:0,description:"Randomization seed for per-ring rotation variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Effect"}},speed:{default:.1,description:"Speed of continuous ring rotation",ui:{type:"range",min:-5,max:5,step:.1,label:"Speed",group:"Animation"}},speedRandomness:{default:.5,description:"How much each ring varies in rotation speed and direction",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Speed Randomness",group:"Animation"}},edges:{default:"mirror",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}},center:{default:{x:.5,y:.5},transform:we,description:"Center point of the concentric rings",ui:{type:"position",label:"Center Position",group:"Position"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r,propValues:a,convertToTexture:i}=e;if(!s)return console.error("You must pass a child component into the ConcentricSpin shader."),me;let l=i(s),c=a.edges??0,d=Fe(e);return T(Re,"unpremultiplyAlpha",[Gt(T(HM,"concentricSpinUV",[t.center,t.intensity,t.rings,t.smoothness,t.seed,t.speedRandomness,d,r.uv,r.aspect]),u=>l.sample(u),c)])},uvRemap:e=>{let t=e.propValues.edges??0,s=Fe(e);return zs(T(HM,"concentricSpinUV",[e.uniforms.center,e.uniforms.intensity,e.uniforms.rings,e.uniforms.smoothness,e.uniforms.seed,e.uniforms.speedRandomness,s,e.uv,e.aspect]),e.mask,t)}};var ZM=6.283185307179586,KM=1/360,OY=b.fn([o.vec2f,o.f32,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=n.max(i.y,1e-6),c=__tsover_div(i.x,l),d=o.vec2f(__tsover_mul(a.x,c),a.y),u=o.vec2f(__tsover_mul(t.x,c),__tsover_sub(1,t.y)),p=__tsover_sub(d.x,u.x),m=__tsover_sub(d.y,u.y),_=n.atan2(m,p),v=__tsover_sub(.5,__tsover_div(_,ZM)),h=__tsover_mul(s,KM);return n.fract(__tsover_mul(__tsover_add(v,h),r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"rotation"},{type:"i",name:"repeat"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"safeViewportY",[6,[7,"std","max"],[[7,"viewport","y"],[5,"0.000001"]]]],[13,"aspect",[1,[7,"viewport","x"],"/","safeViewportY"]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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"]
242]],[13,"angle",[6,[7,"std","atan2"],["dy","dx"]]],[13,"normalized",[1,[5,"0.5"],"-",[1,"angle","/","TAU"]]],[13,"rotationFraction",[1,"rotation","*","INV_360"]],[10,[6,[7,"std","fract"],[[1,[1,"normalized","+","rotationFraction"],"*","repeat"]]]]]],externalNames:["std","d","TAU","INV_360"]},externals:()=>({std:n,d:o,TAU:ZM,INV_360:KM})})&&e.f)({}));function NY(e,t){let{uniforms:s,propValues:r}=e,a=r.colorSpace??0;return(r.stopCount??0)>1?js(t,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},a):T(Ye[a]??Be,"mixColors",[s.colorA,s.colorB,t])}var JM={name:"ConicGradient",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Colors sweep in a full circle around a center point, like a color wheel",acceptsUVContext:!0,props:{colorA:{default:"#FF0080",transform:O,description:"Starting color of the sweep",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#00BFFF",transform:O,description:"Ending color of the sweep (wraps back to Color A)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),center:{default:{x:.5,y:.5},transform:we,description:"Center point of the sweep",ui:{type:"position",label:"Center",group:"Position"}},rotation:{default:0,description:"Rotation offset in degrees \u2014 shifts where Color A begins",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},repeat:{default:1,description:"Number of times the gradient repeats around the circle. Values above 1 create a starburst pattern.",ui:{type:["range","map"],min:1,max:24,step:1,label:"Repeat",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize;return NY(e,T(OY,"conicFinalT",[e.uniforms.center,e.uniforms.rotation,e.uniforms.repeat,t,s]))}};var YY=e=>e==="alpha"?1:0,GY=e=>e==="custom"?1:0,WY=e=>typeof e=="number"?e:e==="alpha"?1:0,XY=e=>typeof e=="number"?e:e==="custom"?1:0,qY=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.dot(o.vec3f(t.x,t.y,t.z),o.vec3f(.2126,.7152,.0722))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,[7,"std","dot"],[[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),HY=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=n.select(t,__tsover_sub(1,t),l>.5),d=n.pow(c,i),u=__tsover_add(__tsover_mul(d,s),.5),p=n.max(n.fwidth(u),1e-4),m=n.abs(__tsover_sub(n.fract(__tsover_add(u,.5)),.5)),_=__tsover_div(m,p),v=__tsover_add(__tsover_mul(a,.99),.01),h=__tsover_mul(r,__tsover_sub(1,v));return __tsover_sub(1,n.smoothstep(h,r,_))}),{v:1,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,[7,"std","select"],["sourceValue",[1,[5,"1"],"-","sourceValue"],[1,"invert",">",[5,"0.5"]]]]],[13,"sv",[6,[7,"std","pow"],["invertedValue","gamma"]]],[13,"scaledValue",[1,[1,"sv","*","levels"],"+",[5,"0.5"]]],[13,"fw",[6,[7,"std","max"],[[6,[7,"std","fwidth"],["scaledValue"]],[5,"0.0001"]]]],[13,"distFromBoundary",[6,[7,"std","abs"],[[1,[6,[7,"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,[7,"std","smoothstep"],["innerEdge","lineWidth","normalizedDist"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),jY=b.fn([o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.mix(o.vec3f(t.x,t.y,t.z),o.vec3f(s.x,s.y,s.z),o.vec3f(r)),i=n.mix(t.w,s.w,r);return o.vec4f(a.x,a.y,a.z,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"bg"},{type:"i",name:"line"},{type:"i",name:"mask"}],body:[0,[[13,"rgb",[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[7,"bg","x"],[7,"bg","y"],[7,"bg","z"]]],[6,[7,"d","vec3f"],[[7,"line","x"],[7,"line","y"],[7,"line","z"]]],[6,[7,"d","vec3f"],["mask"]]]]],[13,"alpha",[6,[7,"std","mix"],[[7,"bg","w"],[7,"line","w"],"mask"]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),QM={name:"ContourLines",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Draw topographical contour lines based on luminance or alpha",requiresChild:!0,blendWithChildren:!1,props:{levels:{default:5,description:"Number of contour levels",ui:{type:["range","map"],min:2,max:30,step:1,label:"Levels",group:"Effect"}},lineWidth:{default:2,description:"Width of the contour lines in pixels",ui:{type:["range","map"],min:.5,max:5,step:.1,label:"Line Width",group:"Effect"}},softness:{default:0,description:"Edge softness of the lines (0 = sharp, 1 = soft)",ui:{type:"range",min:0,max:1,step:.
24201,label:"Softness",group:"Effect"}},gamma:{default:.5,description:"Contour distribution. <1 clusters in bright, >1 clusters in dark",ui:{type:["range","map"],min:.1,max:2,step:.01,label:"Gamma",group:"Effect"}},invert:{default:!1,description:"Invert the source values",transform:Wo,ui:{type:"checkbox",label:"Invert",group:"Effect"}},source:{default:"luminance",description:"Use luminance or alpha channel for contours",transform:YY,compileTime:!0,ui:{type:"select",options:[{label:"Luminance",value:"luminance"},{label:"Alpha",value:"alpha"}],label:"Source",group:"Effect"}},colorMode:{default:"source",description:"Use source image colors or custom colors",transform:GY,compileTime:!0,ui:{type:"select",options:[{label:"Source",value:"source"},{label:"Custom",value:"custom"}],label:"Color Mode",group:"Colors"}},lineColor:{default:"#000000",description:"Color of the contour lines (custom mode)",transform:O,ui:{type:"color",label:"Line Color",group:"Colors",condition:{colorMode:"custom"}}},backgroundColor:{default:"transparent",description:"Background color (custom mode)",transform:O,ui:{type:"color",label:"Background Color",group:"Colors",condition:{colorMode:"custom"}}}},fragment:({childNode:e,uniforms:t,propValues:s})=>{if(!e)return me;let r=T(HY,"contourLineMask",[WY(s.source)===1?e.member("a"):T(qY,"contourLuma",[e]),t.levels,t.lineWidth,t.softness,t.gamma,t.invert]),a,i;return XY(s.colorMode)===1?(a=t.backgroundColor,i=t.lineColor):(a=me,i=de(e.member("rgb"),le(1))),T(jY,"contourCompose",[a,i,r])}};var gu=1e-8,Nm=b.fn([o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_div(t,n.select(s,gu,n.abs(s)<gu))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"n"},{type:"i",name:"dv"}],body:[0,[[10,[1,"n","/",[6,[7,"std","select"],["dv","EPS",[1,[6,[7,"std","abs"],["dv"]],"<","EPS"]]]]]]],externalNames:["std","EPS"]},externals:()=>({std:n,EPS:gu})})&&e.f)({})),yu=b.fn([o.vec2f,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_sub(r.x,s.x),i=__tsover_sub(r.y,s.y),l=__tsover_sub(t.x,s.x),c=__tsover_sub(t.y,s.y);return __tsover_sub(__tsover_mul(a,c),__tsover_mul(i,l))}),{v:1,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"]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),eC=b.fn([o.vec2f,o.vec2f,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=yu(t,s,r),l=yu(t,r,a),c=yu(t,a,s),d=__tsover_mul(__tsover_mul(n.step(o.f32(0),i),n.step(o.f32(0),l)),n.step(o.f32(0),c)),u=__tsover_mul(__tsover_mul(n.step(i,o.f32(0)),n.step(l,o.f32(0))),n.step(c,o.f32(0)));return __tsover_add(d,u)}),{v:1,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,[7,"std","step"],[[6,[7,"d","f32"],[[5,"0"]]],"d1"]],"*",[6,[7,"std","step"],[[6,[7,"d","f32"],[[5,"0"]]],"d2"]]],"*",[6,[7,"std","step"],[[6,[7,"d","f32"],[[5,"0"]]],"d3"]]]],[13,"allNeg",[1,[1,[6,[7,"std","step"],["d1",[6,[7,"d","f32"],[[5,"0"]]]]],"*",[6,[7,"std","step"],["d2",[6,[7,"d","f32"],[[5,"0"]]]]]],"*",[6,[7,"std","step"],["d3",[6,[7,"d","f32"],[[5,"0"]]]]]]],[10,[1,"allPos","+","allNeg"]]]],externalNames:["cornerSideOf","std","d"]},externals:()=>({cornerSideOf:yu,std:n,d:o})})&&e.f)({})),tC=b.fn([o.vec2f,o.vec2f,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=r.sub(s),l=n.clamp(__tsover_div(n.dot(t.sub(s),i),n.max(n.dot(i,i),gu)),0,1),c=s.add(i.mul(l)),d=o.vec2f(__tsover_mul(i.y,-1),i.x).div(n.max(n.length(i),gu)),u=__tsover_mul(__tsover_mul(n.sign(a),-1),.004);return c.add(d.mul(u))}),{v:1,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,[7,"std","clamp"],[[1,[6,[7,"std","dot"],[[6,[7,"p","sub"],["a"]],"ab"]],"/",[6,[7,"std","max"],[[6,[7,"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,[7,"d","vec2f"],[[1,[7,"ab","y"],"*",[4,"-",[5,"1"]]],[7,"ab","x"]]],"div"],[[6,[7,"std","max"],[[6,[7,"std","length"],["ab"]],"EPS"]]]]],[13,"nudge",[1,[1,[6,[7,"std","sign"],["refSide"]],"*",[4,"-",[5,"1"]]],"*",[5,"0.004"]]],[10,[6,[7,"foot","add"],[[6,[7,"perp","mul"],["nudge"]]]]]]],externalNames:["std","EPS","d"]},externals:()=>({std:n,EPS:gu,d:o})})&&e.f)({})),Ym=b.fn([o.vec2f,o.vec2f,o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=eC(t,s,r,a)>.5,l=tC(t,s,r,yu(a,s,r));return n.select(t,l,i)}),{v:1,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,[7,"std","select"],["p","proj","inside"]]]]],externalNames:["cornerInsideTri","cornerProjectToDiagonal","cornerSideOf","std"]},externals:()=>({cornerInsideTri:eC,cornerProjectToDiagonal:tC,cornerSideOf:yu,std:n})})&&e.f)({})),sC=b.fn([o.vec2f,o.f32,o.vec2f,o.vec2f,o.vec2f,o.vec2f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=o.vec2f(s,s),d=n.mix(o.vec2f(0,0),o.vec2f(r.x,__tsover_sub(1,r.y)),c),u=n.mix(o.vec2f(1,0),o.vec2f(a.x,__tsover_sub(1,a.y)),c),p=n.mix(o.vec2f(1,1),o.vec2f(i.x,__tsover_sub(1,i.y)),c),m=n.mix(o.vec2f(0,1),o.vec2f(l.x,__tsover_sub(1,l.y)),c),_=Ym(d,u,m,p),v=Ym(u,d,p,m),h=Ym(p,u,m,d),y=Ym(m,d,p,u),x=__tsover_sub(v.x,h.x),g=__tsover_sub(y.x,h.x),w=__tsover_sub(__tsover_add(__tsover_sub(_.x,v.x),h.x),y.x),f=__tsover_sub(v.y,h.y),A=__tsover_sub(y.y,h.y),E=__tsover_sub(__tsover_add(__tsover_sub(_.y,v.y),h.y),y.y),P=__tsover_sub(__tsover_mul(x,A),__tsover_mul(g,f)),C=Nm(__tsover_sub(__tsover_mul(w,A),__tsover_mul(g,E)),P),$=Nm(__tsover_sub(__tsover_mul(x,E),__tsover_mul(w,f)),P),U=__tsover_add(__tsover_sub(v.x,_.x),__tsover_mul(C,v.x)),k=__tsover_add(__tsover_sub(y.x,_.x),__tsover_mul($,y.x)),R=_.x,D=__tsover_add(__tsover_sub(v.y,_.y),__tsover_mul(C,v.y)),M=__tsover_add(__tsover_sub(y.y,_.y),__tsover_mul($,y.y)),z=_.y,L=__tsover_sub(M,__tsover_mul(z,$)),B=__tsover_mul(__tsover_sub(k,__tsover_mul(R,$)),-1),N=__tsover_sub(__tsover_mul(k,z),__tsover_mul(R,M)),G=__tsover_mul(__tsover_sub(D,__tsover_mul(z,C)),-1),I=__tsover_sub(U,__tsover_mul(R,C)),X=__tsover_mul(__tsover_sub(__tsover_mul(U,z),__tsover_mul(R,D)),-1),F=__tsover_sub(__tsover_mul(D,$),__tsover_mul(M,C)),Q=__tsover_mul(__tsover_sub(__tsover_mul(U,$),__tsover_mul(k,C)),-1),ae=__tsover_sub(__tsover_mul(U,M),__tsover_mul(k,D)),j=t.x,q=t.y,te=__tsover_add(__tsover_add(__tsover_mul(F,j),__tsover_mul(Q,q)),ae),ne=Nm(__tsover_add(__tsover_add(__tsover_mul(L,j),__tsover_mul(B,q)),N),te),oe=Nm(__tsover_add(__tsover_add(__tsover_mul(G,j),__tsover_mul(I,q)),X),te),pe=__ts
vendor: 4,361 bytes, line 242
242over_add(__tsover_add(__tsover_mul(U,L),__tsover_mul(k,G)),__tsover_mul(R,F)),_e=n.step(o.f32(0),__tsover_mul(te,pe));return o.vec3f(ne,oe,_e)}),{v:1,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,[7,"d","vec2f"],["amount","amount"]]],[13,"r0",[6,[7,"std","mix"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]],[6,[7,"d","vec2f"],[[7,"c0","x"],[1,[5,"1"],"-",[7,"c0","y"]]]],"amt"]]],[13,"r1",[6,[7,"std","mix"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"0"]]],[6,[7,"d","vec2f"],[[7,"c1","x"],[1,[5,"1"],"-",[7,"c1","y"]]]],"amt"]]],[13,"r2",[6,[7,"std","mix"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]],[6,[7,"d","vec2f"],[[7,"c2","x"],[1,[5,"1"],"-",[7,"c2","y"]]]],"amt"]]],[13,"r3",[6,[7,"std","mix"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]],[6,[7,"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,[7,"std","step"],[[6,[7,"d","f32"],[[5,"0"]]],[1,"den","*","det"]]]],[10,[6,[7,"d","vec3f"],["su","sv","front"]]]]],externalNames:["d","std","cornerConvexify","cornerPinSafeDiv"]},externals:()=>({d:o,std:n,cornerConvexify:Ym,cornerPinSafeDiv:Nm})})&&e.f)({})),oC={name:"CornerPin",category:"Distortions",description:"Pin each corner of the content to an arbitrary position for a free perspective warp",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{topLeft:{default:{x:0,y:0},transform:we,description:"Position of the top-left corner",ui:{type:"position",label:"Top Left",group:"Corners"}},topRight:{default:{x:1,y:0},transform:we,description:"Position of the top-right corner",ui:{type:"position",label:"Top Right",group:"Corners"}},bottomLeft:{default:{x:0,y:1},transform:we,description:"Position of the bottom-left corner",ui:{type:"position",label:"Bottom Left",group:"Corners"}},bottomRight:{default:{x:1,y:1},transform:we,description:"Position of the bottom-right corner",ui:{type:"position",label:"Bottom Right",group:"Corners"}},amount:{default:1,description:"Blends the warp in and out \u2014 0 returns the content to its original rectangle, 1 fully pins the corners",ui:{type:["range","map"],min:0,max:1,step:.
24201,label:"Amount",group:"Effect"}},edges:{default:"transparent",description:"How to handle areas outside the pinned quad",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({childNode:e,ctx:t,uniforms:s,propValues:r,convertToTexture:a})=>{if(!e)return me;let i=a(e),l=r.edges??0,c=T(sC,"cornerPinSample",[t.uv,s.amount,s.topLeft,s.topRight,s.bottomRight,s.bottomLeft]),d=c.member("z"),u=Gt(c.member("xy"),p=>i.sample(p),l);return T(Re,"unpremultiplyAlpha",[de(u.member("rgb"),u.member("a").mul(d))])},uvRemap:({uv:e,mask:t,uniforms:s,propValues:r})=>{let a=r.edges??0,i=T(sC,"cornerPinSample",[e,s.amount,s.topLeft,s.topRight,s.bottomRight,s.bottomLeft]),l=i.member("z"),c=zs(i.member("xy"),t,a);return{uv:c.uv,mask:c.mask.mul(l)}}};var ZY=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(fm(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"innerRatio"},{type:"i",name:"offset"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","crescentSdf"],[[7,"local","x"],[7,"local","y"],"radiu
242s","innerRatio","offset"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),rC={name:"Crescent",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Crescent moon shape \u2014 an outer circle with an inner circle subtracted",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the crescent",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the crescent",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.3,description:"Outer circle radius",ui:{type:"range",min:.05,max:1,step:.01,label:"Size",group:"Shape"}},innerRatio:{default:.8,description:"Inner (bite) circle radius as a fraction of outer radius",ui:{type:"range",min:.3,max:1.2,step:.01,label:"Bite Size",group:"Shape"}},offset:{default:.2,description:"Horizontal distance the bite circle is shifted from center",ui:{type:"range",min:.01,max:.5,step:.01,label:"Bite Offset",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
242olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(ZY,"crescentShape",[t.center,t.radius,t.innerRatio,t.offset,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var KY=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(um(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"thickness"},{type:"i",name:"rounding"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","crossSdf"],[[7,"local","x"],[7,"local","y"],"radiu
242s","thickness","rounding"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),aC={name:"Cross",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Plus / cross shape with adjustable arm length, width, and rounding",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the cross",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the cross",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.35,description:"Arm half-length \u2014 distance from center to the end of each arm",ui:{type:"range",min:0,max:1,step:.01,label:"Arm Length",group:"Shape"}},thickness:{default:.08,description:"Arm half-width \u2014 controls how wide each arm is",ui:{type:"range",min:.01,max:.5,step:.005,label:"Arm Width",group:"Shape"}},rounding:{default:0,description:"Corner rounding \u2014 rounds the arm ends and concave corners",ui:{type:"range",min:0,max:.2,step:.005,label:"Rounding",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees (45\xB0 turns a plus into an \xD7)",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
242olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(KY,"crossShape",[t.center,t.radius,t.thickness,t.rounding,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var nC=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_mul(s,.002);return o.vec2f(__tsover_add(t.x,__tsover_mul(a,r)),t.y)}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,"scaledColorShift","*","dir"]],[7,"uv","y"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),JY=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=o.vec3f(t.x,s.y,r.z).sub(o.vec3f(.5)).mul(p).add(o.vec3f(.5)).mul(u),h=__tsover_mul(a.y,d),y=n.sin(__tsover_mul(h,__tsover_mul(3.14159,2))),x=__tsover_sub(1,__tsover_mul(c,__tsover_add(__tsover_mul(y,.5),.5))),g=v.mul(x),w=__tsover_mul(l,.5),f=n.fract(a.mul(w)),A=__tsover_add(__tsover_mul(n.sin(__tsover_mul(f.x,6.28318)),.1),.95),E=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(f.x,6.28318),2.09)),.1),.95),P=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(f.x,6.28318),4.18)),.1),.95),C=o.vec3f(__tsover_mul(g.x,A),__tsover_mul(g.y,E),__tsover_mul(g.z,P)),$=a.sub(o.vec2f(.5,.5)),U=o.vec2f(__tsover_mul($.x,i),$.y),k=n.length(U),R=__tsover_sub(1,__tsover_mul(_,.9)),D=__tsover_add(R,.5),M=__tsover_sub(1,n.smoothstep(R,D,k)),z=n.mix(1,M,m),L=C.mul(z);return o.vec4f(L.x,L.y,L.z,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"redSample"},{type:"i",name:"greenSample"},{type:"i",name:"blueSample"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"pixelSize"},{type:"i",name:"scanlineIntensity"},{type:"i",name:"scanlineFrequency"},{type:"i",name:"brightness"},{type:"i",name:"contrast"},{type:"i",name:"vignetteIntensity"},{type:"i",name:"vignetteRadius"}],body:[0,[[13,"baseColor",[6,[7,"d","vec3f"],[[7,"redSample","x"],[7,"greenSample","y"],[7,"blueSample","z"]]]],[13,"adjustedColor",[6,[7,[6,[7,[6,[7,[6,[7,"baseColor","sub"],[[6,[7,"d","vec3f"],[[5,"0.5"]]]]],"mul"],["contrast"]],"add"],[[6,[7,"d","vec3f"],[[5,"0.5"]]]]],"mul"],["brightness"]]],[13,"scanlinePosition",[1,[7,"uv","y"],"*","scanlineFrequency"]],[13,"scanlineWave",[6,[7,"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"]]]]],[13,"scanlinedColor",[6,[7,"adjustedColor","mul"],["scanlineEffect"]]],[13,"phosphorScale",[1,"pixelSize","*",[5,"0.5"]]],[13,"pixelPhase",[6,[7,"std","fract"],[[6,[7,"uv","mul"],["phosphorScale"]]]]],[13,"redMask",[1,[1,[6,[7,"std","sin"],[[1,[7,"pixelPhase","x"],"*",[5,"6.28318"]]]],"*",[5,"0.1"]],"+",[5,"0.95"]]],[13,"greenMask",[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"pixelPhase","x"],"*",[5,"6.28318"]],"+",[5,"2.09"]]]],"*",[5,"0.1"]],"+",[5,"0.95"]]],[13,"blueMask",[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"pixelPhase","x"],"*",[5,"6.28318"]],"+",[5,"4.18"]]]],"*",[5,"0.1"]],"+",[5,"0.95"]]],[13,"phosphorColor",[6,[7,"d","vec3f"],[[1,[7,"scanlinedColor","x"],"*","redMask"],[1,[7,"scanlinedColor","y"],"*","greenMask"],[1,[7,"scanlinedColor","z"],"*","blueMask"]]]],[13,"centeredUV",[6,[7,"uv","sub"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"aspectCorrectedUV",[6,[7,"d","vec2f"],[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]]],[13,"vignetteDistance",[6,[7,"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,[7,"std","smoothstep"],["
242innerEdge","outerEdge","vignetteDistance"]]]],[13,"vignette",[6,[7,"std","mix"],[[5,"1"],"vignetteValue","vignetteIntensity"]]],[13,"finalColor",[6,[7,"phosphorColor","mul"],["vignette"]]],[10,[6,[7,"d","vec4f"],[[7,"finalColor","x"],[7,"finalColor","y"],[7,"finalColor","z"],[5,"1"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),iC={name:"CRTScreen",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Retro CRT monitor simulation with scanlines",requiresRTT:!0,requiresChild:!0,props:{pixelSize:{default:128,description:"Size of individual TV pixels (lower = more pixels)",ui:{type:["range","map"],min:8,max:128,step:1,label:"Pixel Size",group:"Effect"}},colorShift:{default:1,description:"Chromatic aberration amount",ui:{type:["range","map"],min:0,max:10,step:.1,label:"Color Shift",group:"Effect"}},scanlineIntensity:{default:.3,description:"Strength of horizontal scanlines",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Scanline Intensity",group:"Effect"}},scanlineFrequency:{default:200,description:"Number of scanlines across screen",ui:{type:["range","map"],min:100,max:800,step:10,label:"Scanline Frequency",group:"Effect"}},brightness:{default:1,description:"Screen brightness boost",ui:{type:["range","map"],min:.5,max:2,step:.1,label:"Brightness",group:"Adjustments"}},contrast:{default:1,description:"Screen contrast enhancement",ui:{type:["range","map"],min:.5,max:2,step:.1,label:"Contrast",group:"Adjustments"}},vignetteIntensity:{default:1,description:"Strength of corner darkening effect (0 = off)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Vignette Intensity",group:"Effect"}},vignetteRadius:{default:.5,description:"How far the vignette extends inward (0 = edges only, 1 = reaches center)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Vignette Radius",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i=T(nC,"crtSampleUV",[s.uv,e.colorShift,le(1)]),l=T(nC,"crtSampleUV",[s.uv,e.colorShift,le(-1)]);return T(Re,"unpremultiplyAlpha",[T(JY,"crtCompose",[a.sample(i),a.sample(s.uv),a.sample(l),s.uv,s.aspect,e.pixelSize,e.scanlineIntensity,e.scanlineFrequency,e.brightness,e.contrast,e.vignetteIntensity,e.vignetteRadius])])}};var{sdfSpaceUV:QY,offsetUV:lC}=Zs,{unpremultiplyAlpha:Gm}=eu,{createSvgSdfSampler:eG,createAnalyticSdfSampler:tG,driveAnalyticSubProps:sG,ANALYTIC_SDF_EXTRA_FIELDS:oG}=ft,{createVolumetricFieldComputeNode:rG,buildVolumetricFieldSampler:aG,VOLUMETRIC_FIELD_EXTRA_FIELDS:nG,is3dShapeType:iG,isVolumetricShapeType:lG}=ys,cC=.017453292519943295,dC=Math.PI,uC=6.283185307179586,cG=JSON.stringify({type:"polygonSDF",radius:.35,sides:10});function dG(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var tb=b.fn([o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_sub(t,.5),i=__tsover_sub(s,.5),l=n.sqrt(__tsover_add(__tsover_mul(a,a),__tsover_mul(i,i))),c=__tsover_add(n.atan2(i,a),dC),d=__tsover_mul(n.fract(__tsover_div(c,r)),r),u=n.min(d,__tsover_sub(r,d));return o.vec2f(__tsover_mul(l,n.cos(u)),__tsover_mul(l,n.sin(u)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uvX"},{type:"i",name:"uvY"},{type:"i",name:"sectorAngle"}],body:[0,[[13,"dx",[1,"uvX","-",[5,"0.5"]]],[13,"dy",[1,"uvY","-",[5,"0.5"]]],[13,"r",[6,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"theta",[1,[6,[7,"std","atan2"],["dy","dx"]],"+","PI"]],[13,"inSector",[1,[6,[7,"std","fract"],[[1,"theta","/","sectorAngle"]]],"*","sectorAngle"]],[13,"folded",[6,[7,"std","min"],["inSector",[1,"sectorAngle","-","inSector"]]]],[10,[6,[7,"d","vec2f"],[[1,"r","*",[6,[7,"std","cos"],["folded"]]],[1,"r","*",[6,[7,"std","sin"],["folded"]]]]]]]],externalNames:["std","PI","d"]},externals:()=>({std:n,PI:dC,d:o})})&&e.f)({})),sb=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({rUV:o.vec2f,lensUV:o.vec2f,bUV:o.vec2f,innerUV:o.vec2f,outerUV:o.vec2f,factors:o.vec4f,transition:o.f32,fresnelContrib:o.vec3f}),"CrystalTrace"),uG=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],sb)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=u.x,h=u.y,y=u.z,x=u.w,g=p.x,w=p.y,f=p.z,A=p.w,E=m.x,P=m.y,C=m.z,$=m.w,U=_.x,k=__tsover_div(l.x,l.y),R=n.max(__tsover_mul(h,.5),.001),D=__tsover_div(1,l.y),M=c.x,z=__tsover_sub(1,c.y),L=t.x,B=__tsover_div(L,v),N=.01,G=__tsover_div(__tsover_sub(s.x,L),N),I=__tsover_div(__tsover_sub(r.x,L),N),X=n.clamp(__tsover_mul(__tsover_div(__tsover_mul(B,-1),R),32),0,1),F=__tsover_mul(f,cC),Q=__tsover_add(n.cos(F),__tsover_mul(__tsover_sub(M,.5),3)),ae=__tsover_add(n.sin(F),__tsover_mul(__tsover_sub(z,.5),3)),j=n.normalize(o.vec3f(Q,ae,-.75)),q=o.vec3f(0,0,-1),te=n.normalize(j.add(q)),ne=n.normalize(o.vec3f(__tsover_mul(ae,-1),Q,-.4)),oe=n.normalize(ne.add(q)),pe=n.clamp(__tsover_div(__tsover_mul(B,-1),.15),0,1),_e=__tsover_mul(__tsover_sub(1,n.smoothstep(0,.03,B)),.4),ge=__tsover_mul(y,.15),Me=__tsover_div(__tsover_mul(__tsover_mul(__tsover_mul(G,-1),ge),_e),k),Se=__tsover_mul(__tsover_mul(__tsover_mul(I,-1),ge),_e),Ae=n.select(__tsover_sub(a.x,.5),t.y,U>.5),Pe=n.select(__tsover_sub(a.y,.5),t.z,U>.5),De=__tsover_div(uC,g),ke=tb(__tsover_add(Ae,.5),__tsover_add(Pe,.5),De),Ge=__tsover_div(n.sqrt(__tsover_add(__tsover_mul(Ae,Ae),__tsover_mul(Pe,Pe))),.35),Oe=__tsover_sub(1,n.smoothstep(.22,.32,Ge)),qe=__tsover_add(1,__tsover_mul(n.clamp(Ge,0,1),.6)),We=__tsover_sub(1,__tsover_mul(Oe,.9)),Ve=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),N),-4,4),Ne=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),N),-4,4),He=n.normalize(o.vec3f(Ve,Ne,-1)),vt=__tsover_mul(__tsover_mul(__tsover_sub(1,n.smoothstep(0,1,pe)),1.7),__tsover_sub(1,Oe)),_t=n.normalize(o.vec3f(__tsover_mul(G,vt),__tsover_mul(I,vt),-1)),Ze=n.select(_t,He,U>.5),it=n.clamp(__tsover_mul(Ze.z,-1),0,1),Tt=__tsover_sub(1,it),J=__tsover_mul(__tsover_mul(g,1.2),qe),be=ke.mul(J),ce=.02,xe=Pa(be,1),ye=__tsover_div(__tsover_sub(Pa(be.add(o.vec2f(ce,0)),1),xe),ce),Ee=__tsover_div(__tsover_sub(Pa(be.add(o.vec2f(0,ce)),1),xe),ce),Le=n.max(n.sqrt(__tsover_add(__tsover_mul(ye,ye),__tsover_mul(Ee,Ee))),.001),ot=__tsover_div(ye,Le),Ke=__tsover_div(Ee,Le),rt=n.floor(be),Mt=n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(rt.x,12.9898),__tsover_mul(rt.y,78.233))),43758.5453)),ht=n.normalize(Ze.add(o.vec3f(__tsover_mul(ot,.55),__tsover_mul(Ke,.55),0))),St=n.dot(Ze,j),zt=__ts
242over_mul(__tsover_sub(n.dot(ht,j),St),2.2),$t=ke.mul(__tsover_mul(J,1.7)).add(o.vec2f(3.7,1.2)),Xe=Pa($t,1),Qt=__tsover_div(__tsover_sub(Pa($t.add(o.vec2f(ce,0)),1),Xe),ce),Xt=__tsover_div(__tsover_sub(Pa($t.add(o.vec2f(0,ce)),1),Xe),ce),Ps=n.max(n.sqrt(__tsover_add(__tsover_mul(Qt,Qt),__tsover_mul(Xt,Xt))),.001),$s=__tsover_div(Qt,Ps),Ks=__tsover_div(Xt,Ps),yo=n.normalize(Ze.add(o.vec3f(__tsover_mul($s,.4),__tsover_mul(Ks,.4),0))),Gs=__tsover_mul(__tsover_sub(n.dot(yo,ne),n.dot(Ze,ne)),2.2),Js=o.vec3f(0,0,1),Ls=n.clamp(__tsover_mul(y,.8),0,1.6),Fr=n.normalize(Ze.add(o.vec3f(__tsover_mul(__tsover_mul(__tsover_mul(ot,.75),Ls),We),__tsover_mul(__tsover_mul(__tsover_mul(Ke,.75),Ls),We),0)).add(o.vec3f(__tsover_mul(__tsover_mul($s,.55),Ls),__tsover_mul(__tsover_mul(Ks,.55),Ls),0))),Er=__tsover_div(1,__tsover_add(1,__tsover_mul(y,.55))),so=n.refract(Js,Fr,Er),an=n.clamp(__tsover_mul(L,-1),0,.6),Tn=__tsover_mul(n.clamp(__tsover_mul(L,-1),0,.12),1.6),Mr=n.select(Tn,an,U>.5),nn=__tsover_mul(Mr,__tsover_add(.55,__tsover_mul(Mt,.9))),Br=__tsover_mul(__tsover_mul(nn,v),X),lr=__tsover_add(__tsover_div(__tsover_mul(__tsover_div(so.x,n.max(so.z,.25)),Br),k),Me),ha=__tsover_add(__tsover_mul(__tsover_div(so.y,n.max(so.z,.25)),Br),Se),Oi=n.normalize(o.vec3f(__tsover_mul($s,.7),__tsover_mul(Ks,.7),-1)),oo=n.reflect(so,Oi),ln=__tsover_mul(__tsover_mul(__tsover_mul(Mr,v),X),.8),Ni=__tsover_div(__tsover_mul(__tsover_div(oo.x,n.max(n.abs(oo.z),.3)),ln),k),ni=__tsover_mul(__tsover_div(oo.y,n.max(n.abs(oo.z),.3)),ln),Sn=__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(Tt,.5),.18),__tsover_add(__tsover_mul(Mt,.7),.3)),X),An=__tsover_add(Ae,__tsover_mul(__tsover_mul(__tsover_div(so.x,n.max(so.z,.25)),Mr),1.2)),En=__tsover_add(Pe,__tsover_mul(__tsover_mul(__tsover_div(so.y,n.max(so.z,.25)),Mr),1.2)),ra=tb(__tsover_add(An,.5),__tsover_add(En,.5),De).mul(__tsover_mul(J,1.4)).add(o.vec2f(9.1,4.7)),Mn=Pa(ra,1),Ql=__tsover_div(__tsover_sub(Pa(ra.add(o.vec2f(ce,0)),1),Mn),ce),Va=__tsover_div(__tsover_sub(Pa(ra.add(o.vec2f(0,ce)),1),Mn),ce),ec=n.max(n.sqrt(__tsover_add(__tsover_mul(Ql,Ql),__tsover_mul(Va,Va))),.001),T_=__tsover_div(Ql,ec),S_=__tsover_div(Va,ec),Yi=n.floor(ra),A_=n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(Yi.x,31.727),__tsover_mul(Yi.y,57.131))),43758.5453)),E_=__tsover_mul(__tsover_mul(n.clamp(__tsover_mul(Mr,2.5),0,1),n.clamp(__tsover_mul(y,1.2),0,1)),X),od=__tsover_add(__tsover_mul(__tsover_add(__tsover_mul(T_,Q),__tsover_mul(S_,ae)),.5),.5),rd=__tsover_mul(__tsover_add(__tsover_mul(A_,.9),.55),__tsover_add(__tsover_mul(od,.7),.65)),M_=__tsover_add(__tsover_mul(n.smoothstep(.15,.7,ec),.45),.55),Ph=__tsover_mul(rd,M_),kh=__tsover_mul(__tsover_mul(n.smoothstep(.75,1,__tsover_mul(od,__tsover_add(A_,.4))),E_),.8),Rh=__tsover_add(M,__tsover_div(__tsover_sub(i.x,M),w)),$h=__tsover_add(z,__tsover_div(__tsover_sub(i.y,z),w)),Gi=__tsover_add(Rh,lr),Wi=__tsover_add($h,ha),ad=n.clamp(zt,0,1),C_=n.clamp(__tsover_mul(zt,-1),0,1),Uh=n.max(__tsover_sub(__tsover_add(1,__tsover_mul(ad,A)),__tsover_mul(C_,E)),.02),Dh=n.clamp(Gs,0,1),P_=n.clamp(__tsover_mul(Gs,-1),0,1),t7=__tsover_sub(__tsover_add(1,__tsover_mul(Dh,__tsover_mul(A,.5))),__tsover_mul(P_,__tsover_mul(E,.5))),V=__tsover_sub(__tsover_add(1,__tsover_mul(__tsover_mul(n.clamp(St,0,1),A),.4)),__tsover_mul(__tsover_mul(n.clamp(__tsover_mul(St,-1),0,1),E),.6)),Y=__tsover_mul(__tsover_mul(Uh,t7),V),Z=__tsover_mul(x,.12),ue=__tsover_mul(lr,Z),re=__tsover_mul(ha,Z),he=n.smoothstep(.2,.8,Le),Ie=__tsover_add(__tsover_mul(n.mix(he,1,Oe),.4),.6),ct=__tsover_mul(Oe,.25),At=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_add(Y,ct),Ie),n.mix(o.f32(1),Ph,E_)),P),ps=n.clamp(n.dot(ht,te),0,1),co=n.clamp(n.dot(yo,oe),0,1),go=__tsover_mul(n.pow(ps,o.f32(110)),2.2),ks=__tsover_mul(n.pow(co,o.f32(56)),.9),Es=__tsover_mul(n.smoothstep(.965,.995,ps),3),cr=__tsover_mul(__tsover_mul(__tsover_add(__tsover_add(__tsover_add(go,ks),Es),kh),A),P),Vr=n.mix(6,1.5,n.clamp(__tsover_mul($,.5),0,1)),Cr=__tsover_mul(__tsover_mul(__tsover_mul(n.pow(Tt,Vr),C),2),X),qo=d.mul(Cr),Xi=__tsover_add(__tsover_mul(G,Q),__tsover_mul(I,ae)),tc=__tsover_add(__tsover_mul(Xi,.5),.5),sc=__tsover_sub(B,D),k_=__tsover_sub(n.clamp(__tsover_mul(__tsover_div(__tsover_mul(sc,-1),R),16),0,1),n.clamp(__tsover_mul(__tsover_div(__tsover_mul(B,-1),R),16),0,1)),R_=__tsover_mul(__tsover_mul(k_,tc),.35),ya=n.smoothstep(0,1,X),qi=o.vec2f(__tsover_add(i.x,Me),__tsover_add(i.y,Se));return sb({rUV:o.vec2f(__tsover_add(Gi,ue),__tsover_add(Wi,re)),lensUV:o.vec2f(Gi,Wi),bUV:o.vec2f(__tsover_sub(Gi,ue),__tsover_sub(Wi,re)),innerUV:o.vec2f(__tsover_add(Gi,Ni),__tsover_add(Wi,ni)),outerUV:qi,factors:o.vec4f(At,cr,Sn,R_),transition:ya,fresnelContrib:qo})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"uv"},{type:"i",name:"viewportSize"},{type:"i",name:"center"},{type:"i",name:"fresnelColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"}],body:[0,[[13,"scale",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"refraction",[7,"p0","z"]],[13,"dispersion",[7,"p0","w"]],[13,"facets",[7,"p1","x"]],[13,"innerZoom",[7,"p1","y"]],[13,"lightAngle",[7,"p1","z"]],[13,"highlights",[7,"p1","w"]],[13,"shadows",[7,"p2","x"]],[13,"brightness",[7,"p2","y"]],[13,"fresnel",[7,"p2","z"]],[13,"fresnelSoftness",[7,"p2","w"]],[13,"volumetric",[7,"p3","x"]],[13,"aspect",[1,[7,"viewportSize","x"],"/",[7,"viewportSize","y"]]],[13,"sharp",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"centerPosX",[7,"center","x"]],[13,"centerPosY",[1,[5,"1"],"-",[7,"center","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scale"]],[13,"EPS",[5,"0.01"]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"rb1",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"lightRad",[1,"lightAngle","*","DEG_TO_RAD"]],[13,"lx",[1,[6,[7,"std","cos"],["lightRad"]],"+",[1,[1,"centerPosX","-",[5,"0.5"]],"*",[5,"3"]]]],[13,"ly",[1,[6,[7,"std","sin"],["lightRad"]],"+",[1,[1,"centerPosY","-",[5,"0.5"]],"*",[5,"3"]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.75"]]]]]]],[13,"Vv",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]],[13,"H",[6,[7,"std","normalize"],[[6,[7,"L","add"],["Vv"]]]]],[13,"L2",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"ly","*",[4,"-",[5,"1"]]],"lx",[4,"-",[5,"0.4"]]]]]]],[13,"H2",[6,[7,"std","normalize"],[[6,[7,"L2","add"],["Vv"]]]]],[13,"depthNorm",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.15"]],[5,"0"],[5,"1"]]]],[13,"outerWarp",[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.03"],"sdf"]]],"*",[5,"0.4"]]],[13,"refrScale",[1,"refraction","*",[5,"0.15"]]],[13,"haloOffX",[1,[1,[1,[1,"gradX","*",[4,"-",[5,"1"]]],"*","refrScale"],"*","outerWarp"],"/","aspect"]],[13,"haloOffY",[1,[1,[1,"gradY","*",[4,"-",[5,"1"]]],"*","refrScale"],"*","outerWarp"]],[13,"pdx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"sAngle",[1,"TWO_PI","/","facets"]],[13,"fUv",[6,"crystalKaleidoFold",[[1,"pdx","+",[5,"0.5"]],[1,"pdy","+",[5,"0.5"]],"sAngle"]]],[13,"crystalRNorm",[1,[6,[7,"std","sqrt"],[[1,[1,"pdx","*","pdx"],"+",[1,"pdy","*","pdy"]]]],"/",[5,"0.35"]]],[13,"tableMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.22"],[5,"0.32"],"crystalRNorm"]]]],[13,"radialDensity",[1,[5,"1"],"+",[1,[6,[7,"std","clamp"],["crystalRNorm",[5,"0"],[5,"1"]]],"*",[5,"0.6"]]]],[13,"tableSuppress",[1,[5,"1"],"-",[1,"tableMask","*",[5,"0.9"]]]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"4"]],[5,"4"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","
242w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"4"]],[5,"4"]]]],[13,"nSurfVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"bevelSlope",[1,[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"depthNorm"]]],"*",[5,"1.7"]],"*",[1,[5,"1"],"-","tableMask"]]],[13,"nSurfFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","bevelSlope"],[1,"gradY","*","bevelSlope"],[4,"-",[5,"1"]]]]]]],[13,"nSurf",[6,[7,"std","select"],["nSurfFlat","nSurfVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"cosView",[6,[7,"std","clamp"],[[1,[7,"nSurf","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"grazing",[1,[5,"1"],"-","cosView"]],[13,"vScale1",[1,[1,"facets","*",[5,"1.2"]],"*","radialDensity"]],[13,"fUvS1",[6,[7,"fUv","mul"],["vScale1"]]],[13,"feps",[5,"0.02"]],[13,"f1center",[6,[7,"noise","mxWorleyNoiseFloat2Pub"],["fUvS1",[5,"1"]]]],[13,"gx1",[1,[1,[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"fUvS1","add"],[[6,[7,"d","vec2f"],["feps",[5,"0"]]]]],[5,"1"]]],"-","f1center"],"/","feps"]],[13,"gy1",[1,[1,[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"fUvS1","add"],[[6,[7,"d","vec2f"],[[5,"0"],"feps"]]]],[5,"1"]]],"-","f1center"],"/","feps"]],[13,"gLen1",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx1","*","gx1"],"+",[1,"gy1","*","gy1"]]]],[5,"0.001"]]]],[13,"nx1",[1,"gx1","/","gLen1"]],[13,"ny1",[1,"gy1","/","gLen1"]],[13,"cellId1",[6,[7,"std","floor"],["fUvS1"]]],[13,"cellRand",[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,[7,"cellId1","x"],"*",[5,"12.9898"]],"+",[1,[7,"cellId1","y"],"*",[5,"78.233"]]]]],"*",[5,"43758.5453"]]]]],[13,"nF1",[6,[7,"std","normalize"],[[6,[7,"nSurf","add"],[[6,[7,"d","vec3f"],[[1,"nx1","*",[5,"0.55"]],[1,"ny1","*",[5,"0.55"]],[5,"0"]]]]]]]],[13,"ndlS",[6,[7,"std","dot"],["nSurf","L"]]],[13,"ndl1",[1,[1,[6,[7,"std","dot"],["nF1","L"]],"-","ndlS"],"*",[5,"2.2"]]],[13,"fUvS2",[6,[7,[6,[7,"fUv","mul"],[[1,"vScale1","*",[5,"1.7"]]]],"add"],[[6,[7,"d","vec2f"],[[5,"3.7"],[5,"1.2"]]]]]],[13,"c2",[6,[7,"noise","mxWorleyNoiseFloat2Pub"],["fUvS2",[5,"1"]]]],[13,"gx2",[1,[1,[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"fUvS2","add"],[[6,[7,"d","vec2f"],["feps",[5,"0"]]]]],[5,"1"]]],"-","c2"],"/","feps"]],[13,"gy2",[1,[1,[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"fUvS2","add"],[[6,[7,"d","vec2f"],[[5,"0"],"feps"]]]],[5,"1"]]],"-","c2"],"/","feps"]],[13,"gLen2",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx2","*","gx2"],"+",[1,"gy2","*","gy2"]]]],[5,"0.001"]]]],[13,"nx2",[1,"gx2","/","gLen2"]],[13,"ny2",[1,"gy2","/","gLen2"]],[13,"nF2",[6,[7,"std","normalize"],[[6,[7,"nSurf","add"],[[6,[7,"d","vec3f"],[[1,"nx2","*",[5,"0.4"]],[1,"ny2","*",[5,"0.4"]],[5,"0"]]]]]]]],[13,"ndl2",[1,[1,[6,[7,"std","dot"],["nF2","L2"]],"-",[6,[7,"std","dot"],["nSurf","L2"]]],"*",[5,"2.2"]]],[13,"I",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]]],[13,"facetRefrAmp",[6,[7,"std","clamp"],[[1,"refraction","*",[5,"0.8"]],[5,"0"],[5,"1.6"]]]],[13,"nRefr",[6,[7,"std","normalize"],[[6,[7,[6,[7,"nSurf","add"],[[6,[7,"d","vec3f"],[[1,[1,[1,"nx1","*",[5,"0.75"]],"*","facetRefrAmp"],"*","tableSuppress"],[1,[1,[1,"ny1","*",[5,"0.75"]],"*","facetRefrAmp"],"*","tableSuppress"],[5,"0"]]]]],"add"],[[6,[7,"d","vec3f"],[[1,[1,"nx2","*",[5,"0.55"]],"*","facetRefrAmp"],[1,[1,"ny2","*",[5,"0.55"]],"*","facetRefrAmp"],[5,"0"]]]]]]]],[13,"eta",[1,[5,"1"],"/",[1,[5,"1"],"+",[1,"refraction","*",[5,"0.55"]]]]],[13,"refr",[6,[7,"std","refract"],["I","nRefr","eta"]]],[13,"thickVol",[6,[7,"std","clamp"],[[1,"sdfRaw","*",[4,"-",[5,"1"]]],[5,"0"],[5,"0.6"]]]],[13,"thickFlat",[1,[6,[7,"std","clamp"],[[1,"sdfRaw","*",[4,"-",[5,"1"]]],[5,"0"],[5,"0.12"]]],"*",[5,"1.6"]]],[13,"thickField",[6,[7,"std","select"],["thickFlat","thickVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"thickEff","thickField"],[13,"thickFacet",[1,"thickEff","*",[1,[5,"0.55"],"+",[1,"cellRand","*",[5,"0.9"]]]]],[13,"offMag",[1,[1,"thickFacet","*","scale"],"*","rb1"]],[13,"totalOffX",[1,[1,[1,[1,[7,"refr","x"],"/",[6,[7,"std","max"],[[7,"refr","z"],[5,"0.25"]]]],"*","offMag"],"/","aspect"],"+","haloOffX"]],[13,"totalOffY",[1,[1,[1,[7,"refr","y"],"/",[6,[7,"std","max"],[[7,"refr","z"],[5,"0.25"]]]],"*","offMag"],"+","haloOffY"]],[13,"nBack",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"nx2","*",[5,"0.7"]],[1,"ny2","*",[5,"0.7"]],[4,"-",[5,"1"]]]]]]],[13,"bounce",[6,[7,"std","reflect"],["refr","nBack"]]],[13,"bounceMag",[1,[1,[1,"thickEff","*","scale"],"*","rb1"],"*",[5,"0.8"]]],[13,"bounceOffX",[1,[1,[1,[7,"bounce","x"],"/",[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"bounce","z"]]],[5,"0.3"]]]],"*","bounceMag"],"/","aspect"]],[13,"bounceOffY",[1,[1,[7,"bounce","y"],"/",[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"bounce","z"]]],[5,"0.3"]]]],"*","bounceMag"]],[13,"innerW",[1,[1,[1,[1,"grazing","*",[5,"0.5"]],"+",[5,"0.18"]],"*",[1,[1,"cellRand","*",[5,"0.7"]],"+",[5,"0.3"]]],"*","rb1"]],[13,"pbx",[1,"pdx","+",[1,[1,[1,[7,"refr","x"],"/",[6,[7,"std","max"],[[7,"refr","z"],[5,"0.25"]]]],"*","thickEff"],"*",[5,"1.2"]]]],[13,"pby",[1,"pdy","+",[1,[1,[1,[7,"refr","y"],"/",[6,[7,"std","max"],[[7,"refr","z"],[5,"0.25"]]]],"*","thickEff"],"*",[5,"1.2"]]]],[13,"fUvB",[6,"crystalKaleidoFold",[[1,"pbx","+",[5,"0.5"]],[1,"pby","+",[5,"0.5"]],"sAngle"]]],[13,"fUvS3",[6,[7,[6,[7,"fUvB","mul"],[[1,"vScale1","*",[5,"1.4"]]]],"add"],[[6,[7,"d","vec2f"],[[5,"9.1"],[5,"4.7"]]]]]],[13,"c3",[6,[7,"noise","mxWorleyNoiseFloat2Pub"],["fUvS3",[5,"1"]]]],[13,"gx3",[1,[1,[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"fUvS3","add"],[[6,[7,"d","vec2f"],["feps",[5,"0"]]]]],[5,"1"]]],"-","c3"],"/","feps"]],[13,"gy3",[1,[1,[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"fUvS3","add"],[[6,[7,"d","vec2f"],[[5,"0"],"feps"]]]],[5,"1"]]],"-","c3"],"/","feps"]],[13,"gLen3",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx3","*","gx3"],"+",[1,"gy3","*","gy3"]]]],[5,"0.001"]]]],[13,"nx3",[1,"gx3","/","gLen3"]],[13,"ny3",[1,"gy3","/","gLen3"]],[13,"cellId3",[6,[7,"std","floor"],["fUvS3"]]],[13,"cellRand3",[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,[7,"cellId3","x"],"*",[5,"31.727"]],"+",[1,[7,"cellId3","y"],"*",[5,"57.131"]]]]],"*",[5,"43758.5453"]]]]],[13,"w3",[1,[1,[6,[7,"std","clamp"],[[1,"thickEff","*",[5,"2.5"]],[5,"0"],[5,"1"]]],"*",[6,[7,"std","clamp"],[[1,"refraction","*",[5,"1.2"]],[5,"0"],[5,"1"]]]],"*","rb1"]],[13,"wedgeLit",[1,[1,[1,[1,"nx3","*","lx"],"+",[1,"ny3","*","ly"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"mosaicLevel",[1,[1,[1,"cellRand3","*",[5,"0.9"]],"+",[5,"0.55"]],"*",[1,[1,"wedgeLit","*",[5,"0.7"]],"+",[5,"0.65"]]]],[13,"edge3",[1,[1,[6,[7,"std","smoothstep"],[[5,"0.15"],[5,"0.7"],"gLen3"]],"*",[5,"0.45"]],"+",[5,"0.55"]]],[13,"mosaicMul",[1,"mosaicLevel","*","edge3"]],[13,"mosaicFire",[1,[1,[6,[7,"std","smoothstep"],[[5,"0.75"],[5,"1"],[1,"wedgeLit","*",[1,"cellRand3","+",[5,"0.4"]]]]],"*","w3"],"*",[5,"0.8"]]],[13,"zoomedX",[1,"centerPosX","+",[1,[1,[7,"uv","x"],"-","centerPosX"],"/","innerZoom"]]],[13,"zoomedY",[1,"centerPosY","+",[1,[1,[7,"uv","y"],"-","centerPosY"],"/","innerZoom"]]],[13,"lensX",[1,"zoomedX","+","totalOffX"]],[13,"lensY",[1,"zoomedY","+","totalOffY"]],[13,"lit1",[6,[7,"std","clamp"],["ndl1",[5,"0"],[5,"1"]]]],[13,"shadow1",[6,[7,"std","clamp"],[[1,"ndl1","*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"bright1",[6,[7,"std","max"],[[1,[1,[5,"1"],"+",[1,"lit1","*","highlights"]],"-",[1,"shadow1","*","shadows"]],[5,"0.02"]]]],[13,"lit2",[6,[7,"std","clamp"],["ndl2",[5,"0"],[5,"1"]]]],[13,"shadow2",[6,[7,"std","clamp"],[[1,"ndl2","*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"bright2",[1,[1,[5,"1"],"+",[1,"lit2","*",[1,"highlights","*",[5,"0.5"]]]],"-",[1,"shadow2","*",[1,"shadows","*",[5,"0.5"]]]]],[13,"surfBright",[1,[1,[5,"1"],"+",[1,[1,[6,[7,"std","clamp"],["ndlS",[5,"0"],[5,"1"]]],"*","highlights"],"*",[5,"0.4"]]],"-",[1,[1,[6,[7,"std","clamp"],[[1,"ndlS","*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]],"*","shadows"],"*",[5,"0.6"]]]],[13,"combinedBright",[1,[1,"bright1","*","bright2"],"*","surfBright"]],[13,"chrScale",[1,"dispersion","*",[5,"0.12"]]],[13,"chrOffX",[1,"totalOffX","*","chrScale"]],[13,"chrOffY",[1,"totalOffY","*","chrScale"]],[13,"baseEdge",[6,[7,"std","smoothstep"],[[5,"0.2"],[5,"0.8"],"gLen1"]]],[13,"edgeDarken",[1,[1,[6,[7,"std","mix"],["baseEdge",[5,"1"],"tableMask"]],"*",[5,"0.4"]],"+",[5,"0.6"]]],[13,"tableBoost",[1,"tableMask","*",[5,"0.25"]]],[13,"facetMul",[1,[1,[1,[1,"combinedBright","+","tableBoost"],"*","edgeDarken"],"*",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"mosaicMul","w3"]]],"*","brightness"]],[13,"ndh1",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["nF1","H"]],[5,"0"],[5,"1"]]]],[13,"ndh2",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["nF2","H2"]],[5,"0"],[5,"1"]]]],[13,"spec1",[1,[6,[7,"std","pow"],["ndh1",[6,[7,"d","f32"],[[5,"110"]]]]],"*",[5,"2.2"]]],[13,"spec2",[1,[6,[7,"std","pow"],["ndh2",[6,[7,"d","f32"],[[5,"56"]]]]],"*",[5,"0.9"]]],[13,"glint",[1,[6,[7,"std","smoothstep"],[[5,"0.965"],[5,"0.995"],"ndh1"]],"*",[5,"3"]]],[13,"flashContrib",[1,[1,[1,[1,[1,"spec1","+","spec2"],"+","glint"],"+","mosaicFire"],"*","highlights"],"*","brightness"]],[13,"fresnelExp",[6,[7,"std","mix"],[[5,"6"],[5,"1.5"],[6,[7,"std","clamp"],[[1,"fresnelSoftness","*",[5,"0.5"]],[5,"0"],[5,"1"]]]]]],[13,"fresnelRim",[1,[1,[1,[6,[7,"std","pow"],["grazing","fresnelExp"]],"*","fresnel"],"*",[5,"2"]],"*","rb1"]],[13,"fresnelContrib",[6,[7,"fresnelColor","mul"],["fresnelRim"]]],[13,"normalDotLight",[1,[1,"gradX","*","lx"],"+",[1,"gradY","*","ly"]]],[13,"lightFacing",[1,[1,"normalDotLight","*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"sdfOuter",[1,"sdf","-","pxH"]],[13,"rb2base",[1,[6,[7,"std","clamp"],[[1,[1,[1,"sdfOuter","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"16"]],[5,"0"],[5,"1"]]],"-",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"16"]],[5,"0"],[5,"1"]]]]],[13,"rb2",[1,[1,"rb2base","*","lightFacing"],"*",[5,"0.35"]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"rb1"]]],[13,"outerUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","haloOffX"],[1,[7,"uv","y"],"+","haloOffY"]]]],[10,[6,"CrystalTrace",[[104,{rUV:[6,[7,"d","vec2f"],[[1,"lensX","+","chrOffX"],[1,"lensY","+","chrOffY"]]],lensUV:[6,[7,"d","vec2f"],["lensX","lensY"]],bUV:[6,[7,"d","vec2f"],[[1,"lensX","-","chrOffX"],[1,"lensY","-","chrOffY"]]],innerUV:[6,[7,"d","vec2f"],[[1,"lensX","+","bounceOffX"],[1,"lensY","+","bounceOffY"]]],outerUV:"outerUV",factors:[6,[7,"d","vec4f"],["facetMul","flashContrib","innerW","rb2"]],transition:"transition",fresnelContrib:"fresnelContrib"}]]]]]],externalNames:["std","DEG_TO_RAD","d","TWO_PI","crystalKaleidoFold","noise","CrystalTrace"]},externals:()=>({std:n,DEG_TO_RAD:cC,d:o,TWO_PI:uC,crystalKaleidoFold:tb,noise:mt,CrystalTrace:sb})})&&e.f)({})),pG=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec3f,o.vec3f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=d.x,m=d.y,_=d.z,v=d.w,h=u.x,y=u.y,x=u.z,g=u.w,w=o.vec3f(t.x,s.y,r.z),f=o.vec3f(a.x,a.y,a.z),A=n.mix(w,f,o.vec3f(_)),E=s.w,P=A.mul(p),C=o.vec3f(.299,.587,.114),$=n.dot(P,C),U=n.mix(P,c,o.vec3f(y)),k=n.dot(U,C),R=U.mul(__tsover_div($,n.max(k,1e-4))),D=n.select(U,R,x>.5).add(o.vec3f(m,m,m)).add(l).add(o.vec3f(v,v,v)),M=o.vec4f(D.x,D.y,D.z,E),z=n.mix(i,M,o.vec4f(h)),L=n.select(o.f32(1),h,g>.5);return o.vec4f(z.x,z.y,z.z,__tsover_mul(z.w,L))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sampledR"},{type:"i",name:"sampledG"},{type:"i",name:"sampledB"},{type:"i",name:"innerSample"},{type:"i",name:"baseColor"},{type:"i",name:"fresnelContrib"},{type:"i",name:"tintColor"},{type:"i",name:"factors"},{type:"i",name:"misc"}],body:[0,[[13,"facetMul",[7,"factors","x"]],[13,"flashContrib",[7,"factors","y"]],[13,"innerW",[7,"factors","z"]],[13,"rb2",[7,"factors","w"]],[13,"transition",[7,"misc","x"]],[13,"tintIntensity",[7,"misc","y"]],[13,"preserveLum",[7,"misc","z"]],[13,"cutout",[7,"misc","w"]],[13,"primary",[6,[7,"d","vec3f"],[[7,"sampledR","x"],[7,"sampledG","y"],[7,"sampledB","z"]]]],[13,"innerRgb",[6,[7,"d","vec3f"],[[7,"innerSample","x"],[7,"innerSample","y"],[7,"innerSample","z"]]]],[13,"refractedRgb",[6,[7,"std","mix"],["primary","innerRgb",[6,[7,"d","vec3f"],["innerW"]]]]],[13,"refractedA",[7,"sampledG","w"]],[13,"litRgb",[6,[7,"refractedRgb","mul"],["facetMul"]]],[13,"lumWeights",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]],[13,"origLum",[6,[7,"std","dot"],["litRgb","lumWeights"]]],[13,"tinted",[6,[7,"std","mix"],["litRgb","tintColor",[6,[7,"d","vec3f"],["t
242intIntensity"]]]]],[13,"tintedLum",[6,[7,"std","dot"],["tinted","lumWeights"]]],[13,"lumPreserved",[6,[7,"tinted","mul"],[[1,"origLum","/",[6,[7,"std","max"],["tintedLum",[5,"0.0001"]]]]]]],[13,"crystalRgb",[6,[7,[6,[7,"std","select"],["tinted","lumPreserved",[1,"preserveLum",">",[5,"0.5"]]]],"add"],[[6,[7,"d","vec3f"],["flashContrib","flashContrib","flashContrib"]]]]],[13,"finalRgb",[6,[7,[6,[7,"crystalRgb","add"],["fresnelContrib"]],"add"],[[6,[7,"d","vec3f"],["rb2","rb2","rb2"]]]]],[13,"lighting",[6,[7,"d","vec4f"],[[7,"finalRgb","x"],[7,"finalRgb","y"],[7,"finalRgb","z"],"refractedA"]]],[13,"composited",[6,[7,"std","mix"],["baseColor","lighting",[6,[7,"d","vec4f"],["transition"]]]]],[13,"cutoutAlpha",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],"transition",[1,"cutout",">",[5,"0.5"]]]]],[10,[6,[7,"d","vec4f"],[[7,"composited","x"],[7,"composited","y"],[7,"composited","z"],[1,[7,"composited","w"],"*","cutoutAlpha"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),pC={name:"Crystal",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Diamond-like crystal lens with faceted refraction.",requiresRTT:!0,requiresChild:!0,extraFields:{...nG,...oG},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:we,description:"Center position of the crystal shape",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},scale:{default:1,description:"Scale of the crystal shape (1 = default size)",ui:{type:"range",min:.1,max:3,step:.01,label:"Scale",group:"Position"}},rotation:{default:0,description:"Rotation of the crystal shape in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}},cutout:{default:!1,transform:Wo,description:"Cut out alpha outside the crystal shape",compileTime:!0,ui:{type:"checkbox",label:"Cutout",group:"Crystal"}},refraction:{default:.5,description:"How strongly the crystal refracts content beneath",ui:{type:"range",min:0,max:3,step:.01,label:"Refraction",group:"Crystal"}},dispersion:{default:.5,description:"Prismatic rainbow dispersion \u2014 splits light into spectral colors",ui:{type:"range",min:0,max:2,step:.01,label:"Dispersion",group:"Crystal"}},facets:{default:5,description:"Symmetry order \u2014 how many times the facet pattern repeats around the center",ui:{type:"range",min:3,max:24,step:1,label:"Facets",group:"Crystal"}},fresnel:{default:.05,description:"Fresnel rim glow intensity around the crystal boundary",ui:{type:"range",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",min:0,max:2,step:.01,label:"Fresnel Softness",group:"Fresnel"}},fresnelColor:{default:"#ffffff",transform:O,description:"Color of the fresnel rim glow",ui:{type:"color",label:"Fresnel Color",group:"Fresnel"}},edgeSoftness:{default:0,description:"Softness of the crystal boundary edge",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Softness",group:"Crystal"}},innerZoom:{default:1.5,description:"Magnification of content seen through the crystal",ui:{type:"range",min:.5,max:3,step:.01,label:"Inner Zoom",group:"Crystal"}},lightAngle:{default:270,description:"Light direction angle in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Lighting"}},highlights:{default:.5,description:"Additive brightness on light-facing facets \u2014 never darkens",ui:{type:"range",min:0,max:2,step:.01,label:"Highlights",group:"Lighting"}},shadows:{default:.3,description:"Darkening on shadow-facing facets \u2014 never brightens",ui:{type:"range",min:0,max:1,step:.01,label:"Shadows",group:"Lighting"}},brightness:{default:1.2,description:"Overall crystal brightness \u2014 higher values push facets toward brilliant white",ui:{type:"range",min:.5,max:3,step:.01,label:"Brightness",group:"Lighting"}},tintColor:{default:"#e8e0ff",transform:O,description:"Crystal body tint color",ui:{type:"color",label:"Tint Color",group:"Tint"}},tintIntensity:{default:0,description:"How much tint color is applied to the crystal interior",ui:{type:"range",min:0,max:1,step:.
24201,label:"Tint Intensity",group:"Tint"}},tintPreserveLuminosity:{default:!0,transform:Wo,description:"Preserve original brightness when tinting",ui:{type:"checkbox",label:"Preserve Luminosity",group:"Tint"}},shape:{default:cG,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"}},compute:e=>{let t=rG(e,()=>e.getCpuValue("shape"),"triplanar");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{childNode:t,computeOutputs:s,convertToTexture:r,uniforms:a,propValues:i,ctx:l,getCpuValue:c}=e;if(!t)return me;let d=r(t),u,p,m=!1,_=s?.volumetricFieldTexture;if(_){let A=aG(_,{originX:a._vfOriginX,originY:a._vfOriginY,spanX:a._vfSpanX,spanY:a._vfSpanY,activeResF:a._vfActiveRes,rBound:a._vfRBound});u=A.volumetricFieldSampler,p=A.volumetricFieldSamplerFast,m=!0}else{let A=i.shapeSdfUrl||"",E=i.shapeType||"";if(A)u=eG(e,A),p=u,m=lG(E);else{let P=dG(E,c("shape"));u=tG(P,sG(e,()=>c("shape")),"triplanar"),p=u,m=iG(P)}}let v=T(QY,"sdfSpaceUV",[a.center,a.scale,a.rotation,l.uv,l.aspect]),h=u(v),y=p(T(lC,"offsetUV",[v,le(.01),le(0)])),x=p(T(lC,"offsetUV",[v,le(0),le(.01)])),g=le(m?1:0),w=T(uG,"crystalTrace",[h,y,x,v,l.uv,l.viewportSize,a.center,a.fresnelColor.member("rgb"),de(a.scale,a.edgeSoftness,a.refraction,a.dispersion),de(a.facets,a.innerZoom,a.lightAngle,a.highlights),de(a.shadows,a.brightness,a.fresnel,a.fresnelSoftness),de(g,le(0),le(0),le(0))]),f=Number(i.cutout)>0?l.uv:w.member("outerUV");return T(pG,"crystalCompose",[T(Gm,"unpremultiplyAlpha",[d.sample(w.member("rUV"))]),T(Gm,"unpremultiplyAlpha",[d.sample(w.member("lensUV"))]),T(Gm,"unpremultiplyAlpha",[d.sample(w.member("bUV"))]),T(Gm,"unpremultiplyAlpha",[d.sample(w.member("innerUV"))]),T(Gm,"unpremultiplyAlpha",[d.sample(f)]),w.member("fresnelContrib"),a.tintColor.member("rgb"),w.member("factors"),de(w.member("transition"),a.tintIntensity,a.tintPreserveLuminosity,a.cutout)])}};var mG=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_div(s.x,s.y),c=o.vec2f(__tsover_mul(t.x,l),t.y).mul(n.exp(r)).add(a);return __tsover_div(n.length(kx(c,__tsover_mul(i,.2))),1.414)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[1,[6,[7,"std","length"],[[6,[7,"noise","curl22z"],["pos",[1,"animTime","*",[5,"0.2"]]]]]],"/",[5,"1.414"]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),mC={name:"CurlNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Swirling divergence-free flow field that drifts over time",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{..._a(),scale:{default:2,description:"Pattern scale (higher = larger patterns)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},...fa(),...sn()},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Ir(e,T(mG,"curlNoiseField",[t,s,e.uniforms.scale,e.uniforms.seed,r]))}};var Ua=128,Wm=Ua*Ua,xu=Ua-1,vC="rgba16float",ti=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({readBuf:{storage:o.arrayOf(o.f32,Wm),access:"readonly"},writeBuf:{storage:o.arrayOf(o.f32,Wm),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({cursorX:o.f32,cursorY:o.f32,mouseSpeed:o.f32,dt:o.f32,decay:o.f32,radius:o.f32,aspect:o.f32}),"uniform")}}),"propagateLayout"),Nl=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({srcBuf:{storage:o.arrayOf(o.f32,Wm),access:"readonly"},dispTex:{storageTexture:o.textureStorage2d(vC,"write-only")}}),"gradientLayout"),_C=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";if(t>o.u32(0)&&t<o.u32(xu)&&s>o.u32(0)&&s<o.u32(xu)){let r=ti.$.params,a=o.u32(Ua),i=__tsover_add(__tsover_mul(s,a),t),l=ti.$.readBuf[__tsover_sub(i,o.u32(1))],c=ti.$.readBuf[__tsover_add(i,o.u32(1))],d=ti.$.readBuf[__tsover_sub(i,a)],u=ti.$.readBuf[__tsover_add(i,a)],p=__tsover_mul(__tsover_add(__tsover_add(__tsover_add(l,c),d),u),.5),m=ti.$.writeBuf[
vendor: 4,683 bytes, line 242
242i],_=__tsover_sub(1,__tsover_mul(r.decay,.004)),v=__tsover_mul(__tsover_sub(p,m),_),h=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(Ua)),y=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(Ua)),x=n.select(__tsover_sub(h,r.cursorX),__tsover_mul(__tsover_sub(h,r.cursorX),r.aspect),r.aspect>=1),g=n.select(__tsover_div(__tsover_sub(y,r.cursorY),r.aspect),__tsover_sub(y,r.cursorY),r.aspect>=1),w=__tsover_add(__tsover_mul(x,x),__tsover_mul(g,g)),f=__tsover_mul(r.radius,3);if(w<__tsover_mul(f,f)&&r.mouseSpeed>.01){let A=n.exp(__tsover_mul(__tsover_div(w,__tsover_mul(r.radius,r.radius)),-1));v=__tsover_sub(v,__tsover_mul(__tsover_mul(__tsover_mul(A,r.mouseSpeed),r.dt),3))}ti.$.writeBuf[i]=v}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,[7,"d","u32"],[[5,"0"]]]],"&&",[1,"cx","<",[6,[7,"d","u32"],["GRID_MAX"]]]],"&&",[1,"cy",">",[6,[7,"d","u32"],[[5,"0"]]]]],"&&",[1,"cy","<",[6,[7,"d","u32"],["GRID_MAX"]]]],[0,[[13,"p",[7,[7,"propagateLayout","$"],"params"]],[13,"gs",[6,[7,"d","u32"],["GRID_SIZE"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"left",[8,[7,[7,"propagateLayout","$"],"readBuf"],[1,"idx","-",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"right",[8,[7,[7,"propagateLayout","$"],"readBuf"],[1,"idx","+",[6,[7,"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","decay"],"*",[5,"0.004"]]]],[12,"next",[1,[1,"avg","-","prev"],"*","dampFactor"]],[13,"cellX",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["GRID_SIZE"]]]],[13,"cellY",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["GRID_SIZE"]]]],[13,"ddx",[6,[7,"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,[7,"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","mouseSpeed"],">",[5,"0.01"]]],[0,[[13,"influence",[6,[7,"std","exp"],[[1,[1,"distSq","/",[1,[7,"p","radius"],"*",[7,"p","radius"]]],"*",[4,"-",[5,"1"]]]]]],[2,"next","=",[1,"next","-",[1,[1,[1,"influence","*",[7,"p","mouseSpeed"]],"*",[7,"p","dt"]],"*",[5,"3"]]]]]]],[2,[8,[7,[7,"propagateLayout","$"],"writeBuf"],"idx"],"=","next"]]]]]],externalNames:["d","GRID_MAX","propagateLayout","GRID_SIZE","std"]},externals:()=>({d:o,GRID_MAX:xu,propagateLayout:ti,GRID_SIZE:Ua,std:n})})&&e.f)({})).$name("cursorRipplesPropagate"),fC=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";if(t>o.u32(0)&&t<o.u32(xu)&&s>o.u32(0)&&s<o.u32(xu)){let r=o.u32(Ua),a=__tsover_add(__tsover_mul(s,r),t),i=Nl.$.srcBuf[__tsover_add(a,o.u32(1))],l=Nl.$.srcBuf[__tsover_sub(a,o.u32(1))],c=Nl.$.srcBuf[__tsover_add(a,r)],d=Nl.$.srcBuf[__tsover_sub(a,r)],u=__tsover_mul(__tsover_sub(i,l),.5),p=__tsover_mul(__tsover_sub(c,d),.5);n.textureStore(Nl.$.dispTex,o.vec2u(t,s),o.vec4f(u,p,0,1))}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,[7,"d","u32"],[[5,"0"]]]],"&&",[1,"cx","<",[6,[7,"d","u32"],["GRID_MAX"]]]],"&&",[1,"cy",">",[6,[7,"d","u32"],[[5,"0"]]]]],"&&",[1,"cy","<",[6,[7,"d","u32"],["GRID_MAX"]]]],[0,[[13,"gs",[6,[7,"d","u32"],["GRID_SIZE"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"right",[8,[7,[7,"gradientLayout","$"],"srcBuf"],[1,"idx","+",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"left",[8,[7,[7,"gradientLayout","$"],"srcBuf"],[1,"idx","-",[6,[7,"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,[7,"std","textureStore"],[[7,[7,"gradientLayout","$"],"dispTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["dx","dy",[5,"0"],[5,"1"]]]]]]]]]],externalNames:["d","GRID_MAX","GRID_SIZE","gradientLayout","std"]},externals:()=>({d:o,GRID_MAX:xu,GRID_SIZE:Ua,gradientLayout:Nl,std:n})})&&e.f)({})).$name("cursorRipplesGradient"),ob=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({rUV:o.vec2f,gUV:o.vec2f,bUV:o.vec2f}
242),"RippleUVs"),_G=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],ob)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=s.mul(__tsover_mul(r,.1)),l=.15,c=n.clamp(i,o.vec2f(-l,-l),o.vec2f(l,l)),d=__tsover_mul(a,.1);return ob({rUV:t.sub(c.mul(__tsover_add(1,d))),gUV:t.sub(c),bUV:t.sub(c.mul(__tsover_sub(1,d)))})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"disp"},{type:"i",name:"intensity"},{type:"i",name:"chromaticSplit"}],body:[0,[[13,"scaled",[6,[7,"disp","mul"],[[1,"intensity","*",[5,"0.1"]]]]],[13,"maxDisp",[5,"0.15"]],[13,"clamped",[6,[7,"std","clamp"],["scaled",[6,[7,"d","vec2f"],[[4,"-","maxDisp"],[4,"-","maxDisp"]]],[6,[7,"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,"RippleUVs",[[104,{rUV:"rUV",gUV:"gUV",bUV:"bUV"}]]]]]],externalNames:["std","d","RippleUVs"]},externals:()=>({std:n,d:o,RippleUVs:ob})})&&e.f)({})),hC={name:"CursorRipples",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Fluid-like ripple distortion",requiresRTT:!0,requiresChild:!0,usesPointer:!0,props:{intensity:{default:10,description:"Strength of the ripple distortion",ui:{type:["range","map"],min:0,max:20,step:.1,label:"Intensity",group:"Effect"}},decay:{default:10,description:"How quickly ripples fade (higher = faster)",ui:{type:"range",min:0,max:20,step:.1,label:"Decay",group:"Effect"}},radius:{default:.5,description:"Radius of cursor influence",ui:{type:"range",min:.1,max:1,step:.1,label:"Radius",group:"Effect"}},chromaticSplit:{default:1,description:"RGB channel separation along ripple edges",ui:{type:["range","map"],min:0,max:3,step:.1,label:"Chromatic Split",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,registerComputeTexture:r,getCpuValue:a,onCleanup:i,onResize:l,dimensions:c}=e;if(!t)return null;let d=s?.root;if(!d)return null;let u=Rt(d,o.f32,Wm),p=Rt(d,o.f32,Wm),m=(globalThis.__TYPEGPU_AUTONAME__??(R=>R))(d.createTexture({size:[Ua,Ua],format:vC}).$usage("storage","sampled"),"dispTex");i(()=>m.destroy());let _=r(m),v=(globalThis.__TYPEGPU_AUTONAME__??(R=>R))(d.createUniform(o.struct({cursorX:o.f32,cursorY:o.f32,mouseSpeed:o.f32,dt:o.f32,decay:o.f32,radius:o.f32,aspect:o.f32})),"propParams"),h=Math.max(1,Math.round(c.width)),y=Math.max(1,Math.round(c.height));l(({width:R,height:D})=>{h=Math.max(1,Math.round(R)),y=Math.max(1,Math.round(D))});let x=[Ua,Ua],g=d.createBindGroup(ti,{readBuf:u,writeBuf:p,params:v.buffer}),w=d.createBindGroup(ti,{readBuf:p,writeBuf:u,params:v.buffer}),f=pt(d,(R=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(R.f=((D,M)=>{"use gpu";_C(D,M)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"propagateKernel",["cx","cy"]]]],externalNames:["propagateKernel"]},externals:()=>({propagateKernel:_C})})&&R.f)({}),{size:x}),A=d.createBindGroup(Nl,{srcBuf:p,dispTex:m}),E=d.createBindGroup(Nl,{srcBuf:u,dispTex:m}),P=pt(d,(R=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(R.f=((D,M)=>{"use gpu";fC(D,M)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"gradientKernel",["cx","cy"]]]],externalNames:["gradientKernel"]},externals:()=>({gradientKernel:fC})})&&R.f)({}),{size:x}),C=0,$=.5,U=.5,k=Date.now();return{outputs:{displacement:_},getComputeNodes:R=>{let D=R,M=Date.now(),z=Math.min(D.deltaTime??0,.016),L=Math.max(1,D.dimensions?.width??h)/Math.max(1,D.dimensions?.height??y),B=a("decay")??10,N=(a("radius")??.5)*.05,G=D.pointer?.x??.5,I=D.pointer?.y??.5,X=z>0?(G-$)/z:0,F=z>0?(I-U)/z:0,Q=Math.min(Math.sqrt(X*X+F*F),2);$=G,U=I,Q>.01&&(k=M);let ae=1-B*.004,j=ae>=1?1/0:Math.min(3e4,Math.log(1e-6)/Math.log(Math.max(ae,.001))*16.67);if(M-k>j)return null;v.write({cursorX:G,cursorY:I,mouseSpeed:Q,dt:z,decay:B,radius:N,aspect:L});let q=C===0?[f.with(g),P.with(A)]:[f.with(w),P.with(E)];return C=1-C,q}}},fragment:({childNode:e,ctx:t,computeOutputs:s,propValues:r,convertToTexture:a,uniforms:i})=>{if(!e)return me;let l=a(e),c=r.edges??0,d=s?.displacement,u=d?d.sample(t.uv,"linearClamp").member("xy"):rr("vec2f(0.0, 0.0)"),p=T(_G,"cursorRipplesUVs",[t.uv,u,i.intensity,i.chromaticSplit]),m=y=>l.sample(y),_=Gt(p.member("rUV"),m,c),v=Gt(p.member("gUV"),m,c),h=Gt(p.member("bUV"),m,c);return T(Re,"unpremultiplyAlpha",[de(_.member("r"),v.member("g"),h.member("b"),v.member("a"))])}};var sa=128,Rv=sa*sa,wC="rgba16float",yC=en,Xm=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({trailBuf:{storage:o.arrayOf(o.vec4f,Rv),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({fadeRate:o.f32,ageRate:o.f32,shrink:o.f32}),"uniform")}}),"decayLayout"),qm=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({trailBuf:{storage:o.arrayOf(o.vec4f,Rv),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({cursorX:o.f32,cursorY:o.f32,radius:o.f32,amount:o.f32,aspect:o.f32}),"uniform")}}),"stampLayout"),kv=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({trailBuf:{storage:o.arrayOf(o.vec4f,Rv),access:"readonly"},trailTex:{storageTexture:o.textureStorage2d(wC,"write-only")}}),"outputLayout"),gC=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Xm.$.params,a=__tsover_add(__tsover_mul(s,o.u32(sa)),t),i=Xm.$.trailBuf[a],l=__tsover_mul(i.x,r.fadeRate),c=__tsover_sub(1,__tsover_mul(__tsover_sub(1,l),r.shrink)),d=n.min(__tsover_add(i.z,r.ageRate),1);Xm.$.trailBuf[a]=o.vec4f(l,c,d,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"decayLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["GRID_SIZE"]]],"+","cx"]],[13,"cell",[8,[7,[7,"decayLayout","$"],"trailBuf"],"idx"]],[13,"intensity",[1,[7,"cell","x"],"*",[7,"p","fadeRate"]]],[13,"size",[1,[5,"1"],"-",[1,[1,[5,"1"],"-","intensity"],"*",[7,"p","shrink"]]]],[13,"age",[6,[7,"std","min"],[[1,[7,"cell","z"],"+",[7,"p","ageRate"]],[5,"1"]]]],[2,[8,[7,[7,"decayLayout","$"],"trailBuf"],"idx"],"=",[6,[7,"d","vec4f"],["intensity","size","age",[5,"0"]]]]]],externalNames:["decayLayout","d","GRID_SIZE","std"]},externals:()=>({decayLayout:Xm,d:o,GRID_SIZE:sa,std:n})})&&e.f)({})).$name("cursorTrailDecay"),xC=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=qm.$.params,a=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(sa)),i=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(sa)),l=n.select(__tsover_sub(a,r.curs
242orX),__tsover_mul(__tsover_sub(a,r.cursorX),r.aspect),r.aspect>=1),c=n.select(__tsover_div(__tsover_sub(i,r.cursorY),r.aspect),__tsover_sub(i,r.cursorY),r.aspect>=1),d=__tsover_add(__tsover_mul(l,l),__tsover_mul(c,c)),u=__tsover_mul(r.radius,3);if(d<__tsover_mul(u,u)){let p=__tsover_add(__tsover_mul(s,o.u32(sa)),t),m=n.exp(__tsover_mul(__tsover_div(d,__tsover_mul(r.radius,r.radius)),-1)),_=qm.$.trailBuf[p],v=n.min(__tsover_add(_.x,__tsover_mul(m,r.amount)),1);qm.$.trailBuf[p]=o.vec4f(v,1,0,0)}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"stampLayout","$"],"params"]],[13,"cellX",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["GRID_SIZE"]]]],[13,"cellY",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["GRID_SIZE"]]]],[13,"ddx",[6,[7,"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,[7,"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,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["GRID_SIZE"]]],"+","cx"]],[13,"influence",[6,[7,"std","exp"],[[1,[1,"distSq","/",[1,[7,"p","radius"],"*",[7,"p","radius"]]],"*",[4,"-",[5,"1"]]]]]],[13,"cell",[8,[7,[7,"stampLayout","$"],"trailBuf"],"idx"]],[13,"newIntensity",[6,[7,"std","min"],[[1,[7,"cell","x"],"+",[1,"influence","*",[7,"p","amount"]]],[5,"1"]]]],[2,[8,[7,[7,"stampLayout","$"],"trailBuf"],"idx"],"=",[6,[7,"d","vec4f"],["newIntensity",[5,"1"],[5,"0"],[5,"0"]]]]]]]]],externalNames:["stampLayout","d","GRID_SIZE","std"]},externals:()=>({stampLayout:qm,d:o,GRID_SIZE:sa,std:n})})&&e.f)({})).$name("cursorTrailStamp"),bC=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(sa)),t),a=kv.$.trailBuf[r];n.textureStore(kv.$.trailTex,o.vec2u(t,s),a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["GRID_SIZE"]]],"+","cx"]],[13,"cell",[8,[7,[7,"outputLayout","$"],"trailBuf"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"trailTex"],[6,[7,"d","vec2u"],["cx","cy"]],"cell"]]]],externalNames:["d","GRID_SIZE","outputLayout","std"]},externals:()=>({d:o,GRID_SIZE:sa,outputLayout:kv,std:n})})&&e.f)({})).$name("cursorTrailOutput"),fG=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_add(t.x,s),__tsover_add(t.y,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","ox"],[1,[7,"uv","y"],"+","oy"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),rb=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({age:o.f32,mask:o.f32}),"TrailField"),vG=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],rb)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(t.x,.5),__tsover_mul(s.x,.125)),__tsover_mul(r.x,.125)),__tsover_mul(a.x,.125)),__tsover_mul(i.x,.125));return rb({age:__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(t.z,.5),__tsover_mul(s.z,.125)),__tsover_mul(r.z,.125)),__tsover_mul(a.z,.125)),__tsover_mul(i.z,.125)),mask:n.step(.01,l)})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"c"},{type:"i",name:"s1"},{type:"i",name:"s2"},{type:"i",name:"s3"},{type:"i",name:"s4"}],body:[0,[[13,"intensity",[1,[1,[1,[1,[1,[7,"c","x"],"*",[5,"0.5"]],"+",[1,[7,"s1","x"],"*",[5,"0.125"]]],"+",[1,[7,"s2","x"],"*",[5,"0.125"]]],"+",[1,[7,"s3","x"],"*",[5,"0.125"]]],"+",[1,[7,"s4","x"],"*",[5,"0.125"]]]],[13,"age",[1,[1,[1,[1,[1,[7,"c","z"],"*",[5,"0.5"]],"+",[1,[7,"s1","z"],"*",[5,"0.125"]]],"+",[1,[7,"s2","z"],"*",[5,"0.125"]]],"+",[1,[7,"s3","z"],"*",[5,"0.125"]]],"+",[1,[7,"s4","z"],"*",[5,"0.125"]]]],[13,"mask",[6,[7,"std","step"],[[5,"0.01"],"intensity"]]],[10,[6,"TrailField",[[104,{age:"age",mask:"mask"}]]]]]],externalNames:["std","TrailField"]},externals:()=>({std:n,TrailField:rb})})&&e.f)({})),TC={name:"CursorTrail",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Animated trail effect that tracks cursor movement",usesPointer:!0,props:{colorA:{default:"#00aaff",transform:O,description:"Color of fresh trails",ui:{type:"color",label:"Start Color",group:"Colors"}},colorB:{default:"#ff00aa",transform:O,description:"Color trails transition to as they fade",ui:{type:"color",label:"End Color",group:"Colors"}},stops:xs(),radius:{default:.5,description:"Base radius of trail circles",ui:{type:"range",min:.5,max:2,step:.1,label:"Radius",group:"Effect"}},length:{default:.5,description:"How long trail circles persist (in seconds)",ui:{type:"range",min:.1,max:2,step:.1,label:"Trail Length",group:"Animation"}},shrink:{default:1,description:"How much circles shrink as they fade out (0 = no shrink, 1 = full shrink)",ui:{type:"range",min:0,max:1,step:.1,label:"Shrink Amount",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},compute:e=>{let{gpu:t,registerComputeTexture:s,getCpuValue:r,onCleanup:a,onResize:i,dimensions:l}=e,c=t?.root;if(!c)return null;let d=Rt(c,o.vec4f,Rv),u=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(c.createTexture({size:[sa,sa],format:wC}).$usage("storage","sampled"),"trailTex");a(()=>u.destroy());let p=s(u),m=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(c.createUniform(o.struct({fadeRate:o.f32,ageRate:o.f32,shrink:o.f32})),"decayParams"),_=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(c.createUniform(o.struct({cursorX:o.f32,cursorY:o.f32,radius:o.f32,amount:o.f32,aspect:o.f32})),"stampParams"),v=Math.max(1,Math.round(l.width)),h=Math.max(1,Math.round(l.height));i(({width:U,height:k})=>{v=Math.max(1,Math.round(U)),h=Math.max(1,Math.round(k))});let y=[sa,sa],x=c.createBindGroup(Xm,{trailBuf:d,params:m.buffer}),g=c.createBindGroup(qm,{trailBuf:d,params:_.buffer}),w=c.createBindGroup(kv,{trailBuf:d,trailTex:u}),f=pt(c,(U=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(U.f=((k,R)=>{"use gpu";gC(k,R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"decayKernel",["cx","cy"]]]],externalNames:["decayKernel"]},externals:()=>({decayKernel:gC})})&&U.f)({}),{size:y,bindGroup:x}),A=pt(c,(U=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(U.f=((k,R)=>{"use gpu";xC(k,R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"stampKernel",["cx","cy"]]]],externalNames:["stampKernel"]},externals:()=>({stampKernel:xC})})&&U.f)({}),{size:y,bindGroup:g}),E=pt(c,(U=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(U.f=((k,R)=>{"use gpu";bC(k,R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:bC})})&&U.f)({}),{size:y,bindGroup:w}),P=.5,C=.5,$=Date.now();return{outputs:{trailTexture:p},getComputeNodes:U=>{let k=U,R=Date.now(),D=Math.min(k.deltaTime??0,.016),M=Math.max(1,k.dimensions?.width??v)/Math.max(1,k.dimensions?.height??h),z=(r("radius")??.5)*.1,L=r("length")??.5,B=r("shrink")??1,N=k.pointer?.x??.5,G=k.pointer?.y??.5,I=N-P,X=G-C,F=Math.sqrt(I*I+X*X),Q=P,ae=C;P=N,C=G,F>.001&&($=R);let j=Math.min(3e4,Math.max(3e3,L*5e3));if(R-$>j)return null;
242m.write({fadeRate:1-D/Math.max(.1,L),ageRate:D/Math.max(.1,L),shrink:B});let q=[f];if(F>.001){let te=Math.max(.005,z*.5),ne=Math.min(20,Math.max(1,Math.ceil(F/te))),oe=F/ne*50*D;for(let pe=0;pe<ne;pe++){let _e=(pe+.5)/ne,ge=Q+I*_e,Me=ae+X*_e;q.push(()=>_.write({cursorX:ge,cursorY:Me,radius:z,amount:oe,aspect:M})),q.push(A)}}return q.push(E),q}}},fragment:({ctx:e,computeOutputs:t,propValues:s,uniforms:r})=>{let a=t?.trailTexture;if(!a)return me;let i=1/sa,l=(v,h)=>a.sample(T(fG,"cursorTrailTapUV",[e.uv,le(v),le(h)]),"linearClamp"),c=T(vG,"cursorTrailField",[a.sample(e.uv,"linearClamp"),l(i,0),l(0,i),l(-i,0),l(0,-i)]),d=c.member("age"),u=c.member("mask"),p=s.colorSpace??0,m=s.stopCount??0,_;return m>1?_=js(d,{colorsArray:r.colorsArray,positionsArray:r.positionsArray,convertedColorsArray:r.convertedColorsArray,stopCount:r.stopCount},p):_=T(yC.mixColorsVariants[p]??yC.mixColorsLinear,"mixColors",[r.colorA,r.colorB,d]),de(_.member("rgb"),_.member("a").mul(u))}};var si=768,Hm="rgba16float",AC=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({time:o.f32,dt:o.f32,seed:o.f32,intensity:o.f32,blockSize:o.f32,drift:o.f32,churn:o.f32}),"MoshParams"),oa=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({src:{texture:o.texture2d(o.f32)},prev:{texture:o.texture2d(o.f32)},next:{storageTexture:o.textureStorage2d(Hm,"write-only")},display:{storageTexture:o.textureStorage2d(Hm,"write-only")},params:{uniform:AC}}),"moshLayout"),Yl=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(t),43758.5453123))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],["x"]],"*",[5,"43758.5453123"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),SC=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=oa.$.params,a=o.f32(si),i=o.f32(t),l=o.f32(s),c=__tsover_div(__tsover_add(i,.5),a),d=__tsover_div(__tsover_add(l,.5),a),u=__tsover_add(.15,__tsover_mul(r.churn,.8)),p=n.max(r.blockSize,8),m=__tsover_mul(p,2.6),_=n.floor(__tsover_div(i,m)),v=n.floor(__tsover_div(l,m)),h=Yl(__tsover_add(__tsover_add(__tsover_mul(_,91.17),__tsover_mul(v,41.23)),__tsover_mul(r.seed,3.7))),y=n.floor(__tsover_add(__tsover_mul(__tsover_mul(r.time,u),.25),h)),x=Yl(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(_,12.9898),__tsover_mul(v,78.233)),__tsover_mul(y,37.71)),__tsover_mul(r.seed,3.7))),g=n.select(p,m,x<.35),w=n.floor(__tsover_div(i,g)),f=n.floor(__tsover_div(l,g)),A=Yl(__tsover_add(__tsover_add(__tsover_mul(w,127.1),__tsover_mul(f,311.7)),__tsover_mul(r.seed,17.9))),E=__tsover_mul(u,__tsover_add(.7,__tsover_mul(.6,Yl(__tsover_add(__tsover_add(__tsover_mul(w,53.7),__tsover_mul(f,97.3)),__tsover_mul(r.seed,5.3)))))),P=n.floor(__tsover_add(__tsover_mul(r.time,E),A)),C=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(w,127.1),__tsover_mul(f,311.7)),__tsover_mul(P,74.7)),__tsover_mul(r.seed,17.9)),$=Yl(__tsover_add(C,.13)),U=Yl(__tsover_add(C,7.77)),k=Yl(__tsover_add(C,23.19)),R=__tsover_div(__tsover_mul(__tsover_add(w,.5),g),a),D=__tsover_div(__tsover_mul(__tsover_add(f,.5),g),a),M=__tsover_add(__tsover_add(.5,__tsover_mul(__tsover_mul(.25,n.sin(__tsover_add(__tsover_add(__tsover_mul(R,2.7),__tsover_mul(r.time,.31)),r.seed))),n.sin(__tsover_add(__tsover_sub(__tsover_mul(D,2.1),__tsover_mul(r.time,.23)),__tsover_mul(r.seed,.4))))),__tsover_mul(.25,n.sin(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(R,D),1.6),__tsover_mul(r.time,.17)),__tsover_mul(r.seed,.7))))),z=__tsover_sub(1,__tsover_mul(r.intensity,.55)),L=n.smoothstep(__tsover_sub(z,.09),__tsover_add(z,.09),__tsover_add(M,__tsover_mul(__tsover_sub($,.5),.3))),B=__tsover_add(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(R,1.9),__tsover_mul(r.seed,3.1))),1.7),__tsover_mul(n.cos(__tsover_sub(__tsover_mul(D,2.3),__tsover_mul(r.seed,2.7))),1.3)),__tsover_mul(r.time,.15)),N=__tsover_add(B,__tsover_mul(__tsover_sub(U,.5),1.1)),G=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_add(.5,__tsover_mul(.5,k
vendor: 8,661 bytes, line 242
242)),r.drift),r.dt),10),__tsover_div(g,a)),I=__tsover_sub(c,__tsover_mul(n.cos(N),G)),X=__tsover_sub(d,__tsover_mul(n.sin(N),G)),F=__tsover_mul(__tsover_mul(__tsover_mul(n.select(o.f32(0),o.f32(1),I>=0),n.select(o.f32(0),o.f32(1),I<=1)),n.select(o.f32(0),o.f32(1),X>=0)),n.select(o.f32(0),o.f32(1),X<=1)),Q=__tsover_sub(__tsover_mul(n.clamp(I,0,1),a),.5),ae=__tsover_sub(__tsover_mul(n.clamp(X,0,1),a),.5),j=n.floor(Q),q=n.floor(ae),te=__tsover_sub(Q,j),ne=__tsover_sub(ae,q),oe=__tsover_sub(a,1),pe=o.u32(n.clamp(j,o.f32(0),oe)),_e=o.u32(n.clamp(__tsover_add(j,1),o.f32(0),oe)),ge=o.u32(n.clamp(q,o.f32(0),oe)),Me=o.u32(n.clamp(__tsover_add(q,1),o.f32(0),oe)),Se=n.textureLoad(oa.$.prev,o.vec2u(pe,ge),0),Ae=n.textureLoad(oa.$.prev,o.vec2u(_e,ge),0),Pe=n.textureLoad(oa.$.prev,o.vec2u(pe,Me),0),De=n.textureLoad(oa.$.prev,o.vec2u(_e,Me),0),ke=n.mix(n.mix(Se,Ae,te),n.mix(Pe,De,te),ne),Ge=n.floor(ke.xyz.mul(18)).add(o.vec3f(.5,.5,.5)).div(18),Oe=n.mix(ke.xyz,Ge,.12).mul(.9985),qe=o.vec4f(Oe,ke.w),We=n.clamp(__tsover_mul(r.dt,__tsover_add(1.2,__tsover_mul(__tsover_sub(1,r.intensity),2))),0,.2),Ve=n.textureDimensions(oa.$.src),Ne=o.f32(Ve.x),He=o.f32(Ve.y),vt=__tsover_sub(__tsover_mul(c,Ne),.5),_t=__tsover_sub(__tsover_mul(d,He),.5),Ze=n.floor(vt),it=n.floor(_t),Tt=__tsover_sub(vt,Ze),J=__tsover_sub(_t,it),be=o.u32(n.clamp(Ze,o.f32(0),__tsover_sub(Ne,1))),ce=o.u32(n.clamp(__tsover_add(Ze,1),o.f32(0),__tsover_sub(Ne,1))),xe=o.u32(n.clamp(it,o.f32(0),__tsover_sub(He,1))),ye=o.u32(n.clamp(__tsover_add(it,1),o.f32(0),__tsover_sub(He,1))),Ee=n.textureLoad(oa.$.src,o.vec2u(be,xe),0),Le=n.textureLoad(oa.$.src,o.vec2u(ce,xe),0),ot=n.textureLoad(oa.$.src,o.vec2u(be,ye),0),Ke=n.textureLoad(oa.$.src,o.vec2u(ce,ye),0),rt=n.mix(n.mix(Ee,Le,Tt),n.mix(ot,Ke,Tt),J),Mt=n.mix(qe,rt,We),ht=n.mix(rt,Mt,__tsover_mul(L,F));n.textureStore(oa.$.next,o.vec2u(t,s),ht),n.textureStore(oa.$.display,o.vec2u(t,s),ht)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"P",[7,[7,"moshLayout","$"],"params"]],[13,"res",[6,[7,"d","f32"],["STATE_RES"]]],[13,"px",[6,[7,"d","f32"],["cx"]]],[13,"py",[6,[7,"d","f32"],["cy"]]],[13,"fx",[1,[1,"px","+",[5,"0.5"]],"/","res"]],[13,"fy",[1,[1,"py","+",[5,"0.5"]],"/","res"]],[13,"churnRate",[1,[5,"0.15"],"+",[1,[7,"P","churn"],"*",[5,"0.8"]]]],[13,"bsF",[6,[7,"std","max"],[[7,"P","blockSize"],[5,"8"]]]],[13,"coarse",[1,"bsF","*",[5,"2.6"]]],[13,"cbx",[6,[7,"std","floor"],[[1,"px","/","coarse"]]]],[13,"cby",[6,[7,"std","floor"],[[1,"py","/","coarse"]]]],[13,"cPhase",[6,"moshHash",[[1,[1,[1,"cbx","*",[5,"91.17"]],"+",[1,"cby","*",[5,"41.23"]]],"+",[1,[7,"P","seed"],"*",[5,"3.7"]]]]]],[13,"cEpoch",[6,[7,"std","floor"],[[1,[1,[1,[7,"P","time"],"*","churnRate"],"*",[5,"0.25"]],"+","cPhase"]]]],[13,"scalePick",[6,"moshHash",[[1,[1,[1,[1,"cbx","*",[5,"12.9898"]],"+",[1,"cby","*",[5,"78.233"]]],"+",[1,"cEpoch","*",[5,"37.71"]]],"+",[1,[7,"P","seed"],"*",[5,"3.7"]]]]]],[13,"bs",[6,[7,"std","select"],["bsF","coarse",[1,"scalePick","<",[5,"0.35"]]]]],[13,"bx",[6,[7,"std","floor"],[[1,"px","/","bs"]]]],[13,"by",[6,[7,"std","floor"],[[1,"py","/","bs"]]]],[13,"bPhase",[6,"moshHash",[[1,[1,[1,"bx","*",[5,"127.1"]],"+",[1,"by","*",[5,"311.7"]]],"+",[1,[7,"P","seed"],"*",[5,"17.9"]]]]]],[13,"bRate",[1,"churnRate","*",[1,[5,"0.7"],"+",[1,[5,"0.6"],"*",[6,"moshHash",[[1,[1,[1,"bx","*",[5,"53.7"]],"+",[1,"by","*",[5,"97.3"]]],"+",[1,[7,"P","seed"],"*",[5,"5.3"]]]]]]]]],[13,"bEpoch",[6,[7,"std","floor"],[[1,[1,[7,"P","time"],"*","bRate"],"+","bPhase"]]]],[13,"bh",[1,[1,[1,[1,"bx","*",[5,"127.1"]],"+",[1,"by","*",[5,"311.7"]]],"+",[1,"bEpoch","*",[5,"74.7"]]],"+",[1,[7,"P","seed"],"*",[5,"17.9"]]]],[13,"h1",[6,"moshHash",[[1,"bh","+",[5,"0.13"]]]]],[13,"h2",[6,"moshHash",[[1,"bh","+",[5,"7.77"]]]]],[13,"h3",[6,"moshHash",[[1,"bh","+",[5,"23.19"]]]]],[13,"bcx",[1,[1,[1,"bx","+",[5,"0.5"]],"*","bs"],"/","res"]],[13,"bcy",[1,[1,[1,"by","+",[5,"0.5"]],"*","bs"],"/","res"]],[13,"field",[1,[1,[5,"0.5"],"+",[1,[1,[5,"0.25"],"*",[6,[7,"std","sin"],[[1,[1,[1,"bcx","*",[5,"2.7"]],"+",[1,[7,"P","time"],"*",[5,"0.31"]]],"+",[7,"P","seed"]]]]],"*",[6,[7,"std","sin"],[[1,[1,[1,"bcy","*",[5,"2.1"]],"-",[1,[7,"P","time"],"*",[5,"0.23"]]],"+",[1,[7,"P","seed"],"*",[5,"0.4"]]]]]]],"+",[1,[5,"0.25"],"*",[6,[7,"std","sin"],[[1,[1,[1,[1,"bcx","+","bcy"],"*",[5,"1.6"]],"+",[1,[7,"P","time"],"*",[5,"0.17"]]],"+",[1,[7,"P","seed"],"*",[5,"0.7"]]]]]]]],[13,"thresh",[1,[5,"1"],"-",[1,[7,"P","intensity"],"*",[5,"0.55"]]]],[13,"hold",[6,[7,"std","smoothstep"],[[1,"thresh","-",[5,"0.09"]],[1,"thresh","+",[5,"0.09"]],[1,"field","+",[1,[1,"h1","-",[5,"0.5"]],"*",[5,"0.3"]]]]]],[13,"flowAng",[1,[1,[1,[6,[7,"std","sin"],[[1,[1,"bcx","*",[5,"1.9"]],"+",[1,[7,"P","seed"],"*",[5,"3.1"]]]]],"*",[5,"1.7"]],"+",[1,[6,[7,"std","cos"],[[1,[1,"bcy","*",[5,"2.3"]],"-",[1,[7,"P","seed"],"*",[5,"2.7"]]]]],"*",[5,"1.3"]]],"+",[1,[7,"P","time"],"*",[5,"0.15"]]]],[13,"ang",[1,"flowAng","+",[1,[1,"h2","-",[5,"0.5"]],"*",[5,"1.1"]]]],[13,"mag",[1,[1,[1,[1,[1,[5,"0.5"],"+",[1,[5,"0.5"],"*","h3"]],"*",[7,"P","drift"]],"*",[7,"P","dt"]],"*",[5,"10"]],"*",[1,"bs","/","res"]]],[13,"suRaw",[1,"fx","-",[1,[6,[7,"std","cos"],["ang"]],"*","mag"]]],[13,"svRaw",[1,"fy","-",[1,[6,[7,"std","sin"],["ang"]],"*","mag"]]],[13,"inBounds",[1,[1,[1,[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"suRaw",">=",[5,"0"]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"suRaw","<=",[5,"1"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"svRaw",">=",[5,"0"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"svRaw","<=",[5,"1"]]]]]],[13,"su",[1,[1,[6,[7,"std","clamp"],["suRaw",[5,"0"],[5,"1"]]],"*","res"],"-",[5,"0.5"]]],[13,"sv",[1,[1,[6,[7,"std","clamp"],["svRaw",[5,"0"],[5,"1"]]],"*","res"],"-",[5,"0.5"]]],[13,"sx0",[6,[7,"std","floor"],["su"]]],[13,"sy0",[6,[7,"std","floor"],["sv"]]],[13,"sfx",[1,"su","-","sx0"]],[13,"sfy",[1,"sv","-","sy0"]],[13,"maxT",[1,"res","-",[5,"1"]]],[13,"ix0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["sx0",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"ix1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"sx0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"iy0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["sy0",[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"iy1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"sy0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]]]],[13,"p00",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"prev"],[6,[7,"d","vec2u"],["ix0","iy0"]],[5,"0"]]]],[13,"p10",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"prev"],[6,[7,"d","vec2u"],["ix1","iy0"]],[5,"0"]]]],[13,"p01",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"prev"],[6,[7,"d","vec2u"],["ix0","iy1"]],[5,"0"]]]],[13,"p11",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"prev"],[6,[7,"d","vec2u"],["ix1","iy1"]],[5,"0"]]]],[13,"prevC",[6,[7,"std","mix"],[[6,[7,"std","mix"],["p00","p10","sfx"]],[6,[7,"std","mix"],["p01","p11","sfx"]],"sfy"]]],[13,"quant",[6,[7,[6,[7,[6,[7,"std","floor"],[[6,[7,[7,"prevC","xyz"],"mul"],[[5,"18"]]]]],"add"],[[6,[7,"d","vec3f"],[[5,"0.5"],[5,"0.5"],[5,"0.5"]]]]],"div"],[[5,"18"]]]],[13,"heldRgb",[6,[7,[6,[7,"std","mix"],[[7,"prevC","xyz"],"quant",[5,"0.12"]]],"mul"],[[5,"0.9985"]]]],[13,"held",[6,[7,"d","vec4f"],["heldRgb",[7,"prevC","w"]]]],[13,"rekey",[6,[7,"std","clamp"],[[1,[7,"P","dt"],"*",[1,[5,"1.2"],"+",[1,[1,[5,"1"],"-",[7,"P","intensity"]],"*",[5,"2"]]]],[5,"0"],[5,"0.2"]]]],[13,"srcDims",[6,[7,"std","textureDimensions"],[[7,[7,"moshLayout","$"],"src"]]]],[13,"srcW",[6,[7,"d","f32"],[[7,"srcDims","x"]]]],[13,"srcH",[6,[7,"d","f32"],[[7,"srcDims","y"]]]],[13,"cu",[1,[1,"fx","*","srcW"],"-",[5,"0.5"]]],[13,"cv",[1,[1,"fy","*","srcH"],"-",[5,"0.5"]]],[13,"cx0",[6,[7,"std","floor"],["cu"]]],[13,"cy0",[6,[7,"std","floor"],["cv"]]],[13,"cfx",[1,"cu","-","cx0"]],[13,"cfy",[1,"cv","-","cy0"]],[13,"jx0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["cx0",[6,[7,"d","f32"],[[5,"0"]]],[1,"srcW","-",[5,"1"]]]]]]],[13,"jx1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"cx0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],[1,"srcW","-",[5,"1"]]]]]]],[13,"jy0",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["cy0",[6,[7,"d","f32"],[[5,"0"]]],[1,"srcH","-",[5,"1"]]]]]]],[13,"jy1",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"cy0","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],[1,"srcH","-",[5,"1"]]]]]]],[13,"c00",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"src"],[6,[7,"d","vec2u"],["jx0","jy0"]],[5,"0"]]]],[13,"c10",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"src"],[6,[7,"d","vec2u"],["jx1","
242jy0"]],[5,"0"]]]],[13,"c01",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"src"],[6,[7,"d","vec2u"],["jx0","jy1"]],[5,"0"]]]],[13,"c11",[6,[7,"std","textureLoad"],[[7,[7,"moshLayout","$"],"src"],[6,[7,"d","vec2u"],["jx1","jy1"]],[5,"0"]]]],[13,"fresh",[6,[7,"std","mix"],[[6,[7,"std","mix"],["c00","c10","cfx"]],[6,[7,"std","mix"],["c01","c11","cfx"]],"cfy"]]],[13,"heldAnchored",[6,[7,"std","mix"],["held","fresh","rekey"]]],[13,"outC",[6,[7,"std","mix"],["fresh","heldAnchored",[1,"hold","*","inBounds"]]]],[6,[7,"std","textureStore"],[[7,[7,"moshLayout","$"],"next"],[6,[7,"d","vec2u"],["cx","cy"]],"outC"]],[6,[7,"std","textureStore"],[[7,[7,"moshLayout","$"],"display"],[6,[7,"d","vec2u"],["cx","cy"]],"outC"]]]],externalNames:["moshLayout","d","STATE_RES","std","moshHash"]},externals:()=>({moshLayout:oa,d:o,STATE_RES:si,std:n,moshHash:Yl})})&&e.f)({})).$name("dataMoshStep"),EC={name:"DataMosh",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Corrupted-codec motion smearing \u2014 macroblocks lock in place and drag their pixels across the frame in liquid trails, each recovering on its own clock, like a video stream that lost its keyframes",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:.7,description:"How much of the image locks and smears \u2014 the fraction of corrupted macroblocks",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Mosh"}},blockSize:{default:48,description:"Macroblock size \u2014 the granularity of the corruption",ui:{type:"range",min:30,max:150,step:1,label:"Block Size",group:"Mosh"}},drift:{default:.35,description:"Motion vector strength \u2014 how fast corrupted areas drag their pixels away",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Drift",group:"Mosh"}},churn:{default:.4,description:"How often each block re-rolls its fate \u2014 low values let corrupted regions melt for a long time before recovering",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Churn",group:"Mosh"}},blend:{default:1,description:"Blend between the live image and the moshed stream",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Blend",group:"Mosh"}},speed:{default:1,description:"Simulation speed. 0 freezes the decay in place.",ui:{type:"range",min:0,max:4,step:.1,label:"Speed",group:"Animation"}},seed:{default:0,description:"Random seed for the corruption layout",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Animation"}}},compute:e=>{let{childNode:t,gpu:s,registerComputeTexture:r,convertToTexture:a,getCpuValue:i,onCleanup:l}=e;if(!t)return null;let c=s?.root;if(!c)return null;let d=a(t),u=(globalThis.__TYPEGPU_AUTONAME__??(f=>f))(c.createTexture({size:[si,si],format:Hm}).$usage("storage","sampled"),"stateA"),p=(globalThis.__TYPEGPU_AUTONAME__??(f=>f))(c.createTexture({size:[si,si],format:Hm}).$usage("storage","sampled"),"stateB"),m=(globalThis.__TYPEGPU_AUTONAME__??(f=>f))(c.createTexture({size:[si,si],format:Hm}).$usage("storage","sampled"),"displayTex");l(()=>{u.destroy(),p.destroy(),m.destroy()});let _=r(m),v=(globalThis.__TYPEGPU_AUTONAME__??(f=>f))(c.createUniform(AC),"paramsBuf"),h=pt(c,(f=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(f.f=((A,E)=>{"use gpu";SC(A,E)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"moshKernel",["cx","cy"]]]],externalNames:["moshKernel"]},externals:()=>({moshKernel:SC})})&&f.f)({}),{size:[si,si]}),y=null,x=null,g=0,w=0;return{outputs:{childTexture:d,display:_},bindInputs:f=>{let A=f(d.key);A&&(y=c.createBindGroup(oa,{src:A.texture,prev:u,next:p,display:m,params:v.buffer}),x=c.createBindGroup(oa,{src:A.texture,prev:p,next:u,display:m,params:v.buffer}))},getComputeNodes:f=>{if(!y||!x)return null;let A=f,E=i("speed")??1,P=Math.min(A.deltaTime??.016,.05)*E;w+=P,v.write({time:w,dt:P,seed:i("seed")??0,intensity:i("intensity")??.7,blockSize:i("blockSize")??48,drift:i("drift")??.35,churn:i("churn")??.4});let C=[h.with(g===0?y:x)];return g=1-g,C}}},fragment:({childNode:e,ctx:t,computeOutputs:s,uniforms:r,convertToTexture:a})=>{if(!e)return me;let i=s?.display,l=(s?.childTexture??a(e)).sample(t.uv);return i?T(Re,"unpremultiplyAlpha",[Ns(l,i.sample(t.uv,"linearClamp"),r.blend)]):T(Re,"unpremultiplyAlpha",[l])}};var MC=.017453292519943295,hG=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=n.max(c.y,1e-6),u=__tsover_div(c.x,d),p=o.vec2f(__tsover_mul(l.x,u),l.y),m=o.vec2f(__tsover_mul(t.x,u),__tsover_sub(1,t.y)),_=__tsover_sub(p.x,m.x),v=__tsover_sub(p.y,m.y),h=__tsover_mul(r,MC),y=n.cos(h),x=n.sin(h),g=__tsover_add(__tsover_mul(_,y),__tsover_mul(v,x)),w=__tsover_sub(__tsover_mul(v,y),__tsover_mul(_,x)),f=n.abs(g),A=n.abs(w),E=__tsover_add(f,A),P=n.max(f,A),C=n.mix(E,P,i),$=__tsover_mul(__tsover_div(C,s),a);return n.select(n.clamp($,0,1),n.fract($),a>1.0001)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"size"},{type:"i",name:"rotation"},{type:"i",name:"repeat"},{type:"i",name:"roundness"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"safeViewportY",[6,[7,"std","max"],[[7,"viewport","y"],[5,"0.000001"]]]],[13,"aspect",[1,[7,"viewport","x"],"/","safeViewportY"]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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"]
242]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[13,"rdx",[1,[1,"dx","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dx","*","sinR"]]],[13,"absDx",[6,[7,"std","abs"],["rdx"]]],[13,"absDy",[6,[7,"std","abs"],["rdy"]]],[13,"l1",[1,"absDx","+","absDy"]],[13,"linf",[6,[7,"std","max"],["absDx","absDy"]]],[13,"dist",[6,[7,"std","mix"],["l1","linf","roundness"]]],[13,"t",[1,[1,"dist","/","size"],"*","repeat"]],[10,[6,[7,"std","select"],[[6,[7,"std","clamp"],["t",[5,"0"],[5,"1"]]],[6,[7,"std","fract"],["t"]],[1,"repeat",">",[5,"1.0001"]]]]]]],externalNames:["std","d","DEG_TO_RAD"]},externals:()=>({std:n,d:o,DEG_TO_RAD:MC})})&&e.f)({}));function yG(e,t){let{uniforms:s,propValues:r}=e,a=r.colorSpace??0;return(r.stopCount??0)>1?js(t,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},a):T(Ye[a]??Be,"mixColors",[s.colorA,s.colorB,t])}var CC={name:"DiamondGradient",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Diamond-shaped gradient radiating from a center point using Manhattan distance",acceptsUVContext:!0,props:{colorA:{default:"#4ffb4a",transform:O,description:"Color at the center of the diamond",ui:{type:"color",label:"Color A (Center)",group:"Colors"}},colorB:{default:"#4f1238",transform:O,description:"Color at the outer edges of the diamond",ui:{type:"color",label:"Color B (Edge)",group:"Colors"}},stops:xs(),center:{default:{x:.5,y:.5},transform:we,description:"Center point of the diamond",ui:{type:"position",label:"Center",group:"Position"}},size:{default:.7,description:"Extent of the gradient \u2014 controls how far Color A reaches before transitioning to Color B",ui:{type:["range","map"],min:.01,max:2,step:.01,label:"Size",group:"Effect"}},rotation:{default:0,description:"Rotation in degrees \u2014 tilts the diamond into a rhombus",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},repeat:{default:1,description:"Number of times the gradient repeats outward. Values above 1 create concentric diamond or square bands.",ui:{type:["range","map"],min:1,max:16,step:.5,label:"Repeat",group:"Effect"}},roundness:{default:0,description:"Morphs from a sharp diamond (0) to a square (1)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Roundness",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize;return yG(e,T(hG,"diamondFinalT",[e.uniforms.center,e.uniforms.size,e.uniforms.rotation,e.uniforms.repeat,e.uniforms.roundness,t,s]))}};var gG=b.fn([o.vec2f,o.f32,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=t.mul(1e3),i=n.sin(n.dot(a,o.vec2f(25.9796,156.466))),l=n.fract(o.vec2f(__tsover_mul(i,43758.5453),__tsover_mul(i,28461.7231))).mul(2).sub(o.vec2f(1,1)).mul(s).div(r);return t.add(l)}),{v:1,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,"sinVal",[6,[7,"std","sin"],[[6,[7,"std","dot"],["seed",[6,[7,"d","vec2f"],[[5,"25.9796"],[5,"156.466"]]]]]]]],[13,"randVec",[6,[7,"std","fract"],[[6,[7,"d","vec2f"],[[1,"sinVal","*",[5,"43758.5453"]],[1,"sinVal","*",[5,"28461.7231"]]]]]]],[13,"offset",[6,[7,[6,[7,[6,[7,[6,[7,"randVec","mul"],[[5,"2"]]],"sub"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]],"mul"],["intensity"]],"div"],["viewport"]]],[10,[6,[7,"uv","add"],["offset"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),PC={name:"DiffuseBlur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Grain-like pixel displacement at random",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:30,description:"Intensity of the diffuse blur effect",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"}
242,{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return me;let i=a(t),l=r.edges??0;return T(Re,"unpremultiplyAlpha",[Gt(T(gG,"diffuseBlurUV",[s.uv,e.intensity,s.viewportSize]),c=>i.sample(c),l)])}};var RC=e=>({bayer2:0,bayer4:1,bayer8:2,clusteredDot:3,blueNoise:4,whiteNoise:5,floydSteinberg:6})[e]??1,xG=e=>e==="source"?1:0,bG=e=>typeof e=="number"?e:RC(e),wG=e=>typeof e=="number"?e:e==="source"?1:0,TG=b.fn([o.vec2f,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return n.floor(o.vec2f(__tsover_div(__tsover_mul(t.x,s.x),r),__tsover_div(__tsover_mul(t.y,s.y),r)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"gridRes"},{type:"i",name:"pixelSize"}],body:[0,[[10,[6,[7,"std","floor"],[[6,[7,"d","vec2f"],[[1,[1,[7,"uv","x"],"*",[7,"gridRes","x"]],"/","pixelSize"],[1,[1,[7,"uv","y"],"*",[7,"gridRes","y"]],"/","pixelSize"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),SG=b.fn([o.vec2f,o.f32,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__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:1,name:void 0,ast:{params:[{type:"i",name:"coord"},{type:"i",name:"pixelSize"},{type:"i",name:"gridRes"}],body:[0,[[10,[6,[7,"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"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),kC=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(n.dot(o.vec3f(t.x,t.y,t.z),o.vec3f(.299,.587,.114)),t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"c"}],body:[0,[[10,[1,[6,[7,"std","dot"],[[6,[7,"d","vec3f"],[[7,"c","x"],[7,"c","y"],[7,"c","z"]]],[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]],"*",[7,"c","w"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),$v=b.fn([o.f32,o.f32],o.f32)((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:1,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"]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),AG=b.fn([o.vec2f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_sub(t.x,__tsover_mul(8,n.floor(__tsover_div(t.x,8)))),r=__tsover_sub(t.y,__tsover_mul(8,n.floor(__tsover_div(t.y,8)))),a=__tsover_sub(s,__tsover_mul(2,n.floor(__tsover_div(s,2)))),i=__tsover_sub(r,__tsover_mul(2,n.floor(__tsover_div(r,2)))),l=__tsover_sub(s,__tsover_mul(4,n.floor(__tsover_div(s,4)))),c=__tsover_sub(r,__tsover_mul(4,n.floor(__tsover_div(r,4)))),d=n.floor(__tsover_div(l,2)),u=n.floor(__tsover_div(c,2)),p=n.floor(__tsover_div(s,4)),m=n.floor(__tsover_div(r,4)),_=$v(a,i),v=$v(d,u),h=$v(p,m),y=__tsover_div(_,4),x=__tsover_div(__tsover_add(__tsover_mul(_,4),v),16),g=__tsover_div(__tsover_add(__tsover_add(__tsover_mul(_,16),__tsover_mul(v,4)),h),64),w=__tsover_add(__tsover_mul(o.i32(c),4),o.i32(l)),f=.75;return f=n.select(f,.3125,w===1),f=n.select(f,.375,w===2),f=n.select(f,.8125,w===3),f=n.select(f,.25,w===4),f=n.select(f,o.f32(0),w===5),f=n.select(f,.0625,w===6),f=n.select(f,.4375,w===7),f=n.select(f,.6875,w===8),f=n.select(f,.1875,w===9),f=n.select(f,.125,w===10),f=n.select(f,.5,w===11),f=n.select(f,.9375,w===12),f=n.select(f,.625,w===13),f=n.select(f,.5625,w===14),f=n.select(f,.875,w===15),o.vec4f(y,x,g,f)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[13,"tx",[1,[7,"coord","x"],"-",[1,[5,"8"],"*",[6,[7,"std","floor"],[[1,[7,"co
242ord","x"],"/",[5,"8"]]]]]]],[13,"ty",[1,[7,"coord","y"],"-",[1,[5,"8"],"*",[6,[7,"std","floor"],[[1,[7,"coord","y"],"/",[5,"8"]]]]]]],[13,"x2",[1,"tx","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"tx","/",[5,"2"]]]]]]],[13,"y2",[1,"ty","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"ty","/",[5,"2"]]]]]]],[13,"x4",[1,"tx","-",[1,[5,"4"],"*",[6,[7,"std","floor"],[[1,"tx","/",[5,"4"]]]]]]],[13,"y4",[1,"ty","-",[1,[5,"4"],"*",[6,[7,"std","floor"],[[1,"ty","/",[5,"4"]]]]]]],[13,"x4h",[6,[7,"std","floor"],[[1,"x4","/",[5,"2"]]]]],[13,"y4h",[6,[7,"std","floor"],[[1,"y4","/",[5,"2"]]]]],[13,"x8h",[6,[7,"std","floor"],[[1,"tx","/",[5,"4"]]]]],[13,"y8h",[6,[7,"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,[7,"d","i32"],["y4"]],"*",[5,"4"]],"+",[6,[7,"d","i32"],["x4"]]]],[12,"cd",[5,"0.75"]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.3125"],[1,"idx","===",[5,"1"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.375"],[1,"idx","===",[5,"2"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.8125"],[1,"idx","===",[5,"3"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.25"],[1,"idx","===",[5,"4"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[6,[7,"d","f32"],[[5,"0"]]],[1,"idx","===",[5,"5"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.0625"],[1,"idx","===",[5,"6"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.4375"],[1,"idx","===",[5,"7"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.6875"],[1,"idx","===",[5,"8"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.1875"],[1,"idx","===",[5,"9"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.125"],[1,"idx","===",[5,"10"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.5"],[1,"idx","===",[5,"11"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.9375"],[1,"idx","===",[5,"12"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.625"],[1,"idx","===",[5,"13"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.5625"],[1,"idx","===",[5,"14"]]]]],[2,"cd","=",[6,[7,"std","select"],["cd",[5,"0.875"],[1,"idx","===",[5,"15"]]]]],[10,[6,[7,"d","vec4f"],["bayer2","bayer4","bayer8","cd"]]]]],externalNames:["std","ditherBayerQuad","d"]},externals:()=>({std:n,ditherBayerQuad:$v,d:o})})&&e.f)({})),EG=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=t.add(o.vec2f(.5,.5));return n.fract(__tsover_mul(52.9829189,n.fract(__tsover_add(__tsover_mul(s.x,.06711056),__tsover_mul(s.y,.00583715)))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[13,"c",[6,[7,"coord","add"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[10,[6,[7,"std","fract"],[[1,[5,"52.9829189"],"*",[6,[7,"std","fract"],[[1,[1,[7,"c","x"],"*",[5,"0.06711056"]],"+",[1,[7,"c","y"],"*",[5,"0.00583715"]]]]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),MG=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(n.dot(t,o.vec2f(12.9898,78.233))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"coord"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[6,[7,"std","dot"],["coord",[6,[7,"d","vec2f"],[[5,"12.9898"],[5,"78.233"]]]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),CG=b.fn([o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_add(.5,__tsover_mul(__tsover_sub(t,.5),a));return n.step(i,__tsover_add(s,__tsover_sub(r,.5)))}),{v:1,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,[7,"std","step"],["adjustedDither",[1,"luminance","+",[1,"threshold","-",[5,"0.5"]]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),PG=b.fn([o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.floor(t.div(o.vec2f(8,8))).mul(o.vec2f(8,8))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"coord"}
vendor: 6,634 bytes, line 242
242],body:[0,[[10,[6,[7,[6,[7,"std","floor"],[[6,[7,"coord","div"],[[6,[7,"d","vec2f"],[[5,"8"],[5,"8"]]]]]]],"mul"],[[6,[7,"d","vec2f"],[[5,"8"],[5,"8"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),kG=b.fn([o.vec2f,o.vec2f],o.f32)((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:1,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"]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),RG=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";return o.vec2f(__tsover_div(__tsover_mul(__tsover_add(__tsover_add(t.x,s),.5),a),i.x),__tsover_div(__tsover_mul(__tsover_add(__tsover_add(t.y,r),.5),a),i.y))}),{v:1,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,[7,"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"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),$G=b.fn([o.arrayOf(o.f32,64),o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_sub(.5,__tsover_sub(r,.5)),l=o.arrayOf(o.f32,8)(),c=o.arrayOf(o.f32,8)(),d=o.i32(s),u=o.f32(0);for(let p=0;p<8;p++){let m=(p&1)===0;for(let _=0;_<8;_++){let v=n.select(__tsover_sub(7,_),_,m),h=__tsover_add(__tsover_mul(p,8),v),y=__tsover_add(t[h],l[v]),x=n.step(i,y);u=n.select(u,x,h===d);let g=__tsover_mul(__tsover_sub(y,x),a),w=n.select(-1,1,m),f=__tsover_add(v,w);if(f>=0&&f<8&&(l[f]=__tsover_add(l[f],__tsover_mul(g,.4375))),p<7){let A=__tsover_sub(v,w),E=__tsover_add(v,w);A>=0&&A<8&&(c[A]=__tsover_add(c[A],__tsover_mul(g,.1875))),c[v]=__tsover_add(c[v],__tsover_mul(g,.3125)),E>=0&&E<8&&(c[E]=__tsover_add(c[E],__tsover_mul(g,.0625)))}}for(let _=0;_<8;_++)l[_]=c[_],c[_]=o.f32(0)}return u}),{v:1,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,[7,"d","arrayOf"],[[7,"d","f32"],[5,"8"]]],[]]],[13,"enext",[6,[6,[7,"d","arrayOf"],[[7,"d","f32"],[5,"8"]]],[]]],[13,"licInt",[6,[7,"d","i32"],["lic"]]],[12,"result",[6,[7,"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,[7,"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,[7,"std","step"],["thr","val"]]],[2,"result","=",[6,[7,"std","select"],["result","qv",[1,"idx","===","licInt"]]]],[13,"e",[1,[1,"val","-","qv"],"*","spread"]],[13,"dir",[6,[7,"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,[7,"d","f32"],[[5,"0"]]]]]]]]]],[10,"result"]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),UG=b.fn([o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.mix(o.vec3f(t.x,t.y,t.z),o.vec3f(s.x,s.y,s.z),o.vec3f(r)),i=n.mix(t.w,s.w,r);return o.vec4f(a.x,a.y,a.z,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"colorA"},{type:"i",name:"colorB"},{type:"i",name:"ditherResult"}],body:[0,[[13,"rgb",[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[7,"colorA","x"],[7,"colorA","y"],[7,"colorA","z"]]],[6,[7,"d","vec3f"],[[7,"colorB","x"],[7,"colorB","y"],[7,"colorB","z"]]],[6,[7,"d","vec3f"],["ditherResult"]]]]],[13,"a",[6,[7,"std","mix"],[[7,"colorA","w"],[7,"colorB","w"],"ditherResult"]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"a"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),DG=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=o.vec3f(t.x,t.y,t.z),a=r.mul(.3),i=n.min(r.mul(1.3),o.vec3f(1,1,1)),l=n.mix(a,i,o.vec3f(s));return o.vec4f(l.x,l.y,l.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sourceColor"},{type:"i",name:"ditherResult"}],body:[0,[[13,"rgb",[6,[7,"d","vec3f"],[[7,"sourceColor","x"],[7,"sourceColor","y"],[7,"sourceColor","z"]]]],[13,"dark",[6,[7,"rgb","mul"],[[5,"0.3"]]]],[13,"bright",[6,[7,"std","min"],[[6,[7,"rgb","mul"],[[5,"1.3"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]],[13,"out",[6,[7,"std","mix"],["dark","bright",[6,[7,"d","vec3f"],["ditherResult"]]]]],[10,[6,[7,"d","vec4f"],[[7,"out","x"],[7,"out","y"],[7,"out","z"],[7,"sourceColor","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),$C={name:"Dither",category:"Stylize",description:"Dithering effect with multiple pattern options",requiresRTT:!0,requiresChild:!0,blendWithChildren:!1,boundingBoxDeclaration:{aspectRatio:null},props:{pattern:{default:"bayer4",transform:RC,compileTime:!0,description:"Dithering pattern algorithm",ui:{type:"select",options:[{label:"Bayer 2x2",value:"bayer2"},{label:"Bayer 4x4",value:"bayer4"},{label:"Bayer 8x8",value:"bayer8"},{label:"Clustered Dot",value:"clusteredDot"},{label:"Blue Noise",value:"blueNoise"},{label:"White Noise",value:"whiteNoise"},{label:"Floyd-Steinberg",value:"floydSteinberg"}],label:"Pattern",group:"Effect"}},pixelSize:{default:4,description:"Size of dithering pixels",ui:{type:"range",min:1,max:20,step:1,label:"Pixel Size",group:"Effect"}},threshold:{default:.5,description:"Luminance threshold for dithering",ui:{type:["range","map"],min:0,max:1,step:.
24201,label:"Threshold",group:"Effect"}},spread:{default:1,description:"How much of the luminance range participates in dithering (lower = more solid areas)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Spread",group:"Effect"}},colorMode:{default:"custom",transform:xG,compileTime:!0,description:"How colors are determined",ui:{type:"select",options:[{label:"Custom Colors",value:"custom"},{label:"Source Colors",value:"source"}],label:"Color Mode",group:"Colors"}},colorA:{default:"transparent",transform:O,description:"Dark color for dithering",ui:{type:"color",label:"Dark Color",condition:{colorMode:"custom"},group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Light color for dithering",ui:{type:"color",label:"Light Color",condition:{colorMode:"custom"},group:"Colors"}}},fragment:({childNode:e,ctx:t,uniforms:s,propValues:r,convertToTexture:a})=>{if(!e)return me;let i=a(e),l=x=>T(Re,"unpremultiplyAlpha",[i.sample(x)]),c=t.logicalViewportSize,d=s.pixelSize,u=s.threshold,p=s.spread,m=T(TG,"ditherCoord",[t.uv,c,d]),_=l(T(SG,"ditherPixUV",[m,d,c])),v=T(kC,"ditherLuma",[_]),h=bG(r.pattern),y;if(h===6){let x=T(PG,"ditherBlockOrigin",[m]),g=T(kG,"ditherLocalCellIndex",[m,x]),w=[];for(let f=0;f<8;f++)for(let A=0;A<8;A++){let E=T(RG,"ditherCellUV",[x,le(A),le(f),d,c]);w.push(T(kC,"ditherLuma",[l(E)]))}y=T($G,"ditherFloydSteinberg",[oS("f32",w),g,u,p])}else{let x=T(AG,"ditherPeriodic",[m]),g;switch(h){case 0:g=x.member("x");break;case 1:g=x.member("y");break;case 2:g=x.member("z");break;case 3:g=x.member("w");break;case 4:g=T(EG,"ditherBlueNoise",[m]);break;default:g=T(MG,"ditherWhiteNoise",[m])}y=T(CG,"ditherOrderedResult",[g,v,u,p])}return wG(r.colorMode)===0?T(UG,"ditherComposeCustom",[s.colorA,s.colorB,y]):T(DG,"ditherComposeSource",[_,y])}};var UC={name:"DOMTexture",boundingBoxDeclaration:{aspectRatio:null},category:"Textures",description:"Render live HTML/DOM content as a WebGPU texture layer via the html-in-canvas API. Requires Chrome Canary with chrome://flags/#canvas-draw-element enabled.",capturesDOM:!0,experimental:{message:"Requires Chrome Canary with chrome://flags/#canvas-draw-element enabled. Do not use for production use.",docs:"This component is powered by the WICG html-in-canvas proposal, which is currently only available in Chrome Canary behind a feature flag. It is not suitable for production use and may change as the specification evolves.",docsLink:{url:"https://github.com/WICG/html-in-canvas",label:"View the spec"}},props:{},fragment:({ctx:e,gpu:t,domCanvas:s,onCleanup:r,onBeforeRender:a,onResize:i,createMediaTexture:l,registerMediaTexture:c})=>{let d=t.device,u=Math.min(window.devicePixelRatio,2),p=l({width:Math.max(1,Math.round(window.innerWidth*u)),height:Math.max(1,Math.round(window.innerHeight*u)),label:"DOMTexture"}),m=!1,_=null,v=!1,h=!1,y=!1,x=(w,f)=>{let A=Math.max(1,w),E=Math.max(1,f);if(m||p.width===A&&p.height===E)return;let P=l({width:A,height:E,label:"DOMTexture"}),C=p;p=P,C.destroy()};a(()=>{if(!(!s||m)){if(!_&&(_=s.firstElementChild,_)){let w=_.getBoundingClientRect(),f=Math.round(w.width*window.devicePixelRatio),A=Math.round(w.height*window.devicePixelRatio);f>0&&A>0&&x(f,A)}if(_){if(!h){s.getContext("2d"),s.onpaint=()=>{y=!0},s.requestPaint?.(),h=!0;return}if(y&&_){let w=d.queue.copyElementImageToTexture;if(typeof w!="function"){y=!1;return}try{w.call(d.queue,_,{texture:p.unwrap()}),y=!1}catch(f){v||(console.warn(`[DOMTexture] copyElementImageToTexture failed.
243Requires Chrome Canary with chrome://flags/#canvas-draw-element enabled.
244The element must be a direct child of a <canvas layoutsubtree>.`,f),v=!0)}}}}}),i(()=>{let w=Math.min(window.devicePixelRatio,2);x(Math.round(window.innerWidth*w),Math.round(window.innerHeight*w)),_=null,y=!1,s&&s.requestPaint?.()}),r(()=>{m=!0,s&&(s.onpaint=null),p.destroy()});let g=c(()=>p.texture).sample(e.uv);return de(T($1,"srgbToLinear",[g.member("rgb")]),g.member("a"))}};var zG=b.fn([o.vec2f,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_div(s.x,s.y),i=__tsover_mul(t.x,a),l=__tsover_sub(1,t.y),c=__tsover_div(__tsover_add(n.floor(__tsover_mul(i,r)),.5),r),d=__tsover_div(__tsover_add(n.floor(__tsover_mul(l,r)),.5),r);return o.vec2f(__tsover_div(c,a),__tsover_sub(1,d))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"density"}
vendor: 4,320 bytes, line 244
244],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedX",[1,[7,"uv","x"],"*","aspect"]],[13,"correctedY",[1,[5,"1"],"-",[7,"uv","y"]]],[13,"cellCenterCorrectedX",[1,[1,[6,[7,"std","floor"],[[1,"correctedX","*","density"]]],"+",[5,"0.5"]],"/","density"]],[13,"cellCenterCorrectedY",[1,[1,[6,[7,"std","floor"],[[1,"correctedY","*","density"]]],"+",[5,"0.5"]],"/","density"]],[10,[6,[7,"d","vec2f"],[[1,"cellCenterCorrectedX","/","aspect"],[1,[5,"1"],"-","cellCenterCorrectedY"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),IG=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=__tsover_div(s.x,s.y),m=o.vec2f(__tsover_mul(t.x,p),__tsover_sub(1,t.y)),_=m.mul(r),v=n.floor(_.y),h=n.fract(__tsover_mul(n.sin(__tsover_mul(v,127.1)),43758.5453)),y=__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(h,.5),4),l)),x=__tsover_mul(d,y),g=__tsover_mul(i,__tsover_sub(v,__tsover_mul(2,n.floor(__tsover_div(v,2))))),w=o.vec2f(__tsover_sub(__tsover_sub(_.x,g),x),_.y),f=w.sub(n.floor(w)),A=n.length(f.sub(.5)),E=n.length(n.fwidth(m.mul(r))),P=__tsover_sub(1,n.smoothstep(__tsover_sub(__tsover_mul(a,.5),__tsover_mul(E,.5)),__tsover_mul(a,.5),A)),C=n.floor(w),$=n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(C.x,12.9898),__tsover_mul(C.y,78.233))),43758.5453)),U=__tsover_add(__tsover_mul(u,2),__tsover_mul($,6.28318)),k=__tsover_add(__tsover_mul(n.sin(U),.5),.5),R=n.mix(1,k,c);return __tsover_mul(P,R)}),{v:1,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,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[1,[5,"1"],"-",[7,"uv","y"]]]]],[13,"gridUV",[6,[7,"correctedUV","mul"],["density"]]],[13,"rowIndex",[6,[7,"std","floor"],[[7,"gridUV","y"]]]],[13,"rowHash",[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"rowIndex","*",[5,"127.1"]]]],"*",[5,"43758.5453"]]]]],[13,"speedMod",[1,[5,"1"],"+",[1,[1,[1,"rowHash","-",[5,"0.5"]],"*",[5,"4"]],"*","speedVariance"]]],[13,"drift",[1,"animTime","*","speedMod"]],[13,"staticStagger",[1,"offset","*",[1,"rowIndex","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"rowIndex","/",[5,"2"]]]]]]]],[13,"shiftedGrid",[6,[7,"d","vec2f"],[[1,[1,[7,"gridUV","x"],"-","staticStagger"],"-","drift"],[7,"gridUV","y"]]]],[13,"cellUV",[6,[7,"shiftedGrid","sub"],[[6,[7,"std","floor"],["shiftedGrid"]]]]],[13,"centerDistance",[6,[7,"std","length"],[[6,[7,"cellUV","sub"],[[5,"0.5"]]]]]],[13,"pixelSize",[6,[7,"std","length"],[[6,[7,"std","fwidth"],[[6,[7,"correctedUV","mul"],["density"]]]]]]],[13,"coverage",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,[1,"dotSize","*",[5,"0.5"]],"-",[1,"pixelSize","*",[5,"0.5"]]],[1,"dotSize","*",[5,"0.5"]],"centerDistance"]]]],[13,"gridPosition",[6,[7,"std","floor"],["shiftedGrid"]]],[13,"dotPhase",[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,[7,"gridPosition","x"],"*",[5,"12.9898"]],"+",[1,[7,"gridPosition","y"],"*",[5,"78.233"]]]]],"*",[5,"43758.5453"]]]]],[13,"twinkleTime",[1,[1,"time","*",[5,"2"]],"+",[1,"dotPhase","*",[5,"6.28318"]]]],[13,"twinkleValue",[1,[1,[6,[7,"std","sin"],["twinkleTime"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"twinkleModifier",[6,[7,"std","mix"],[[5,"1"],"twinkleValue","twinkle"]]],[10,[1,"coverage","*","twinkleModifier"]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),DC={name:"DotGrid",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Grid of dots with optional twinkling animation",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{color:{default:"#ffffff",description:"The color of the dot",transform:O,ui:{type:"color",label:"Color",group:"Colors"}},density:{default:30,description:"The number of dots on the longest canvas edge",ui:{type:"range",min:1,max:200,step:1,label:"Density",group:"Effect"}},dotSize:{default:.3,description:"The size of each dot, zero (0) being invisible, one (1) filled the grid with no gaps",ui:{type:["range","map"],min:0,max:1,step:.
24401,label:"Dot Size",group:"Effect"}},offset:{default:0,description:"Horizontal stagger of alternating rows (0.5 = classic polka-dot brick offset)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Row Offset",group:"Effect"}},speed:{default:0,description:"Animates the rows drifting horizontally (0 = static)",ui:{type:"range",min:-3,max:3,step:.01,label:"Speed",group:"Animation"}},speedVariance:{default:.3,description:"Per-row random speed variance for irregular drifting motion",ui:{type:"range",min:0,max:1,step:.01,label:"Speed Variance",group:"Animation"}},twinkle:{default:0,description:"Intensity of the twinkle effect (0 = off, 1 = full twinkle)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Twinkle",group:"Animation"}}},mapSampleUVs:({uniforms:e,ctx:t})=>{let s=T(zG,"dotGridCellCenterUV",[t.uv,t.viewportSize,e.density]);return{dotSize:s,twinkle:s}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e),a=T(IG,"dotGridAlpha",[t,s,e.uniforms.density,e.uniforms.dotSize,e.uniforms.offset,e.uniforms.speedVariance,e.uniforms.twinkle,r,e.ctx.time]);return de(e.uniforms.color.member("rgb"),a)}};var zC=.017453292519943295,IC=[.056,.135,.278,.487,.726,.923,1,.923,.726,.487,.278,.135,.056],LC=6.214,LG=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(r,zC),l=__tsover_mul(a,.2),c=__tsover_div(s.x,s.y),d=__tsover_div(__tsover_mul(n.sin(i),l),c),u=__tsover_mul(__tsover_mul(n.cos(i),-1),l);return o.vec2f(__tsover_sub(t.x,d),__tsover_sub(t.y,u))}),{v:1,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,[7,"std","sin"],["angleRad"]],"*","dist"],"/","aspect"]],[13,"oy",[1,[1,[6,[7,"std","cos"],["angleRad"]],"*",[4,"-",[5,"1"]]],"*","dist"]],[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"-","ox"],[1,[7,"uv","y"],"-","oy"]]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:zC,std:n,d:o})})&&e.f)({})),FC=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";return o.vec2f(__tsover_add(t.x,__tsover_div(__tsover_mul(a,r),s.x)),__tsover_add(t.y,__tsover_div(__tsover_mul(i,r),s.y)))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,[1,"ox","*","blurRadius"],"/",[7,"viewport","x"]]],[1,[7,"uv","y"],"+",[1,[1,"oy","*","blurRadius"],"/",[7,"viewport","y"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),FG=b.fn([o.vec4f,o.vec4f,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec3f(s.x,s.y,s.z),l=__tsover_mul(s.w,r),c=n.clamp(__tsover_sub(l,t.w),0,1),d=i.mul(s.w).mul(c),u=i.mul(s.w).mul(r),p=__tsover_sub(1,t.w),m=o.vec3f(t.x,t.y,t.z).add(u.mul(p)),_=n.max(__tsover_add(t.w,__tsover_mul(l,p)),t.w),v=a>.5,h=n.select(m,d,v),y=n.select(_,c,v);return o.vec4f(h.x,h.y,h.z,y)}),{v:1,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,[7,"d","vec3f"],[[7,"shadowColor","x"],[7,"shadowColor","y"],[7,"shadowColor","z"]]]],[13,"shadowA",[1,[7,"shadowColor","w"],"*","shadowAlpha"]],[13,"cutoutA",[6,[7,"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,[7,"d","vec3f"],[[7,"originalColor","x"],[7,"originalColor","y"],[7,"originalColor","z"]]],"add"],[[6,[7,"shadowPremulRgb","mul"],["oneMinusOrigA"]]]]],[13,"normalA",[6,[7,"std","max"],[[1,[7,"originalColor","w"],"+",[1,"shadowA","*","oneMinusOrigA"]],[7,"originalColor","w"]]]],[13,"useCut",[1,"cutout",">",[5,"0.5"]]],[13,"rgb",[6,[7,"std","select"],["normalRgb","cutoutRgb","useCut"]]],[13,"a",[6,[7,"std","select"],["normalA","cutoutA","useCut"]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"a"]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),BC={name:"DropShadow",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Adds a soft shadow behind the child content based on its alpha silhouette",requiresRTT:!0,requiresChild:!0,props:{color:{default:"#000000",transform:O,description:"Shadow color",ui:{type:"color",label:"Color",group:"Colors"}},distance:{default:.1,description:"How far the shadow is offset from the content",ui:{type:["range","map"],min:0,max:1,step:.
244005,label:"Distance",group:"Effect"}},angle:{default:135,description:"Direction the shadow is cast (compass degrees: 0=up, 90=right, 135=lower-right, 180=down)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},blur:{default:5,description:"Shadow softness (blur radius in pixels)",ui:{type:["range","map"],min:0,max:20,step:.5,label:"Blur",group:"Effect"}},intensity:{default:.5,description:"Shadow intensity \u2014 how strong/visible the shadow is",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Effect"}},cutout:{default:!1,transform:Wo,compileTime:!0,description:"Hide the original layer and show only the shadow",ui:{type:"checkbox",label:"Cutout",group:"Effect"}}},fragment:e=>{let{childNode:t,convertToTexture:s,uniforms:r,propValues:a,ctx:i}=e;if(!t)return me;let l=s(t),c=l.sample(i.uv),d=T(LG,"dropShadowUV",[i.uv,i.viewportSize,r.angle,r.distance]),u=x=>l.sample(T(FC,"dropShadowTapUV",[d,i.viewportSize,r.blur,le(x),le(0)])).member("a").mul(IC[x+6]/LC),p=u(-6);for(let x=-5;x<=6;x++)p=p.add(u(x));let m=s(de(p,le(0),le(0),le(1))),_=x=>m.sample(T(FC,"dropShadowTapUV",[i.uv,i.viewportSize,r.blur,le(0),le(x)])).member("r").mul(IC[x+6]/LC),v=_(-6);for(let x=-5;x<=6;x++)v=v.add(_(x));let h=v.mul(r.intensity),y=a.cutout===1;return T(Re,"unpremultiplyAlpha",[T(FG,"dropShadowComposite",[c,r.color,h,le(y?1:0)])])}};var BG=b.fn([o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.dot(t.xyz,o.vec3f(.299,.587,.114));return n.smoothstep(__tsover_sub(s,.5),__tsover_add(s,.5),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"blend"}],body:[0,[[13,"luminance",[6,[7,"std","dot"],[[7,"color","xyz"],[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[10,[6,[7,"std","smoothstep"],[[1,"blend","-",[5,"0.5"]],[1,"blend","+",[5,"0.5"]],"luminance"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),VC={name:"Duotone",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Map colors to two tones based on luminance",requiresChild:!0,props:{colorA:{default:"#ff0000",transform:O,description:"First color (used for darker areas)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#023af4",transform:O,description:"Second color (used for brighter areas)",ui:{type:"color",label:"Color B",group:"Colors"}},blend:{default:.5,description:"Blend point between the two colors",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Blend",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:({uniforms:e,childNode:t,propValues:s})=>{if(!t)return me;let r=T(BG,"duotoneFactor",[t,e.blend]);return de(T(Ye[s.colorSpace??0]??Be,"mixColors",[e.colorA,e.colorB,r]).member("rgb"),t.member("a"))}};var VG=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=to(t,a,d,u);return Is(mm(p.x,p.y,s,r),i,l,c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radiusX"},{type:"i",name:"radiusY"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","ellipseSdf"],[[7,"local","x"],[7,"local","y"],"radiu
244sX","radiusY"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),OC={name:"Ellipse",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radiusX",as:"half-canvas-height"},height:{prop:"radiusY",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Ellipse with independently adjustable horizontal and vertical radii",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the ellipse",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the ellipse",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radiusX:{default:.35,description:"Horizontal semi-axis radius",ui:{type:"range",min:.01,max:1,step:.01,label:"Width",group:"Shape"}},radiusY:{default:.2,description:"Vertical semi-axis radius",ui:{type:"range",min:.01,max:1,step:.01,label:"Height",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
244olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(VG,"ellipseShape",[t.center,t.radiusX,t.radiusY,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var Xc=6.283185307179586,NC=.017453292519943295,GC=e=>e==="spiral"?2:e==="line"?0:1,OG=e=>typeof e=="number"?e:GC(String(e)),jm=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_mul(s,NC),d=n.cos(c),u=n.sin(c),p=__tsover_add(__tsover_mul(t.x,__tsover_mul(u,-1)),__tsover_mul(t.y,d)),m=__tsover_add(__tsover_mul(__tsover_mul(p,r),Xc),a),_=n.cos(m),v=n.mix(-1.15,1.15,n.clamp(i,0,1));return n.smoothstep(__tsover_sub(v,l),__tsover_add(v,l),_)}),{v:1,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","*","DEG_TO_RAD"]],[13,"c",[6,[7,"std","cos"],["angleRad"]]],[13,"s",[6,[7,"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"],"*","TAU"],"+","reliefPhase"]],[13,"v",[6,[7,"std","cos"],["phase"]]],[13,"thr",[6,[7,"std","mix"],[[4,"-",[5,"1.15"]],[5,"1.15"],[6,[7,"std","clamp"],["level",[5,"0"],[5,"1"]]]]]],[10,[6,[7,"std","smoothstep"],[[1,"thr","-","aa"],[1,"thr","+","aa"],"v"]]]]],externalNames:["DEG_TO_RAD","std","TAU"]},externals:()=>({DEG_TO_RAD:NC,std:n,TAU:Xc})})&&e.f)({})),YC=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=t.sub(s),d=n.length(c),u=n.atan2(c.y,c.x),p=__tsover_add(__tsover_mul(__tsover_sub(__tsover_mul(d,r),__tsover_mul(u,__tsover_div(1,Xc))),Xc),a),m=n.cos(p),_=n.mix(-1.15,1.15,n.clamp(i,0,1));return n.smoothstep(__tsover_sub(_,l),__tsover_add(_,l),m)}),{v:1,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,[7,"std","length"],["dv"]]],[13,"theta",[6,[7,"std","atan2"],[[7,"dv","y"],[7,"dv","x"]]]],[13,"phase",[1,[1,[1,[1,"r","*","frequency"],"-",[1,"theta","*",[1,[5,"1"],"/","TAU"]]],"*","TAU"],"+","reliefPhase"]],[13,"v",[6,[7,"std","cos"],["phase"]]],[13,"thr",[6,[7,"std","mix"],[[4,"-",[5,"1.15"]],[5,"1.15"],[6,[7,"std","clamp"],["level",[5,"0"],[5,"1"]]]]]],[10,[6,[7,"std","smoothstep"],[[1,"thr","-","aa"],[1,"thr","+","aa"],"v"]]]]],externalNames:["std","TAU"]},externals:()=>({std:n,TAU:Xc})})&&e.f)({}));function NG(e){return b.fn([o.vec4f,o.vec2f,o.f32,o.vec4f,o.vec4f,o.vec2f,o.vec4f,o.vec4f],o.vec4f)((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r,a,i,l,c,d,u)=>{"use gpu";let p=d.x,m=d.y,_=d.z,v=d.w,h=u.x,y=u.y,x=n.dot(o.vec3f(s.x,s.y,s.z),o.vec3f(.299,.587,.114)),g=n.clamp(__tsover_add(.5,__tsover_mul(__tsover_sub(x,.5),h)),0,1),w=o.vec2f(__tsover_mul(r.x,a),r.y),f=Vt(w.mul(3.1)),A=Vt(w.mul(3.1).add(o.vec2f(7.31,3.77))),E=w.add(o.vec2f(f,A).mul(__tsover_mul(v,.06))),P=n.clamp(__tsover_div(__tsover_mul(m,Xc),n.max(y,1)),.02,1),C=__tsover_mul(__tsover_mul(_,g),9.42),$=o.f32(0);if(e===2)$=YC(E,o.vec2f(__tsover_mul(c.x,a),__tsover_sub(1,c.y)),m,C,g,P);else if(e===1){let R=jm(E,p,m,C,g,P),D=n.clamp(__tsover_div(g,.55),0,1),M=jm(E,__tsover_add(p,72),__tsover_mul(m,.92),__tsover_mul(C,.7),D,P),z=n.clamp(__tsover_div(g,.28),0,1),L=jm(E,__tsover_sub(p,38),__tsover_mul(m,1.13),__tsover_mul(C,.5),z,P);$=n.max(R,n.max(M,L))}else $=jm(E,p,m,C,g,P);let U=n.mix(o.vec3f(i.x,i.y,i.z),o.vec3f(l.x,l.y,l.z),o.vec3f($)),k=__tsover_mul(s.w,n.mix(i.w,l.w,$));return o.vec4f(U.x,U.y,U.z,k)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"childColor"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"paper"},{type:"i",name:"ink"},{type:"i",name:"center"},{type:"i",name:"p0"},{type:"i",name:"p1"}],body:[0,[[13,"angleDeg",[7,"p0","x"]],[13,"frequency",[7,"p0","y"]],[13,"relief",[7,"p0","z"]],[13,"waviness",[7,"p0","w"]],[13,"contrast",[7,"p1","x"]],[13,"viewportY",[7,"p1","y"]],[13,"lum",[6,[7,"std","dot"],[[6,[7,"d","vec3f"],[[7,"childColor","x"],[7,"childColor","y"],[7,"childColor","z"]]],[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"level",[6,[7,"std","clamp"],[[1,[5,"0.5"],"+",[1,[1,"lum","-",[5,"0.5"]],"*","contrast"]],[5,"0"],[5,"1"]]]],[13,"pa",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"nx",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"pa","mul"],[[5,"3.1"]]]]]],[13,"ny",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,[6,[7,"pa","mul"],[[5,"3.1"]]],"add"],[[6,[7,"d","vec2f"],[[5,"7.31"],[5,"3.77"]
vendor: 4,877 bytes, line 244
244]]]]]]],[13,"p",[6,[7,"pa","add"],[[6,[7,[6,[7,"d","vec2f"],["nx","ny"]],"mul"],[[1,"waviness","*",[5,"0.06"]]]]]]],[13,"aa",[6,[7,"std","clamp"],[[1,[1,"frequency","*","TAU"],"/",[6,[7,"std","max"],["viewportY",[5,"1"]]]],[5,"0.02"],[5,"1"]]]],[13,"reliefPhase",[1,[1,"relief","*","level"],"*",[5,"9.42"]]],[12,"cover",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"style","===",[5,"2"]],[0,[[13,"sc",[6,[7,"d","vec2f"],[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[2,"cover","=",[6,"engravingSpiralPlate",["p","sc","frequency","reliefPhase","level","aa"]]]]],[11,[1,"style","===",[5,"1"]],[0,[[13,"ink1",[6,"engravingPlate",["p","angleDeg","frequency","reliefPhase","level","aa"]]],[13,"level2",[6,[7,"std","clamp"],[[1,"level","/",[5,"0.55"]],[5,"0"],[5,"1"]]]],[13,"ink2",[6,"engravingPlate",["p",[1,"angleDeg","+",[5,"72"]],[1,"frequency","*",[5,"0.92"]],[1,"reliefPhase","*",[5,"0.7"]],"level2","aa"]]],[13,"level3",[6,[7,"std","clamp"],[[1,"level","/",[5,"0.28"]],[5,"0"],[5,"1"]]]],[13,"ink3",[6,"engravingPlate",["p",[1,"angleDeg","-",[5,"38"]],[1,"frequency","*",[5,"1.13"]],[1,"reliefPhase","*",[5,"0.5"]],"level3","aa"]]],[2,"cover","=",[6,[7,"std","max"],["ink1",[6,[7,"std","max"],["ink2","ink3"]]]]]]],[0,[[2,"cover","=",[6,"engravingPlate",["p","angleDeg","frequency","reliefPhase","level","aa"]]]]]]],[13,"rgb",[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[7,"paper","x"],[7,"paper","y"],[7,"paper","z"]]],[6,[7,"d","vec3f"],[[7,"ink","x"],[7,"ink","y"],[7,"ink","z"]]],[6,[7,"d","vec3f"],["cover"]]]]],[13,"alpha",[1,[7,"childColor","w"],"*",[6,[7,"std","mix"],[[7,"paper","w"],[7,"ink","w"],"cover"]]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]],externalNames:["std","d","noise","TAU","style","engravingSpiralPlate","engravingPlate"]},externals:()=>({std:n,d:o,noise:mt,TAU:Xc,style:e,engravingSpiralPlate:YC,engravingPlate:jm})})&&t.f)({})).$name(`engravingComposite_${e}`)}var WC={name:"Engraving",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Copper-plate line engraving \u2014 the image is redrawn as flowing line work whose weight swells with darkness, lines displaced by the form like a banknote portrait: a single plate, cross-hatched shadow plates, or one continuous spiral cut",requiresRTT:!0,requiresChild:!0,blendWithChildren:!1,props:{style:{default:"crosshatch",transform:GC,compileTime:!0,description:"The engraving cut: a single line plate, cross-hatched plates building up the shadows, or one continuous spiral",ui:{type:"select",options:[{label:"Line",value:"line"},{label:"Cross-Hatch",value:"crosshatch"},{label:"Spiral",value:"spiral"}],label:"Style",group:"Lines"}},frequency:{default:90,description:"Line density \u2014 how many engraved lines span the height of the canvas",ui:{type:["range","map"],min:20,max:300,step:1,label:"Frequency",group:"Lines"}},angle:{default:8,transform:Jt,description:"Direction of the base line work (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Lines",condition:{style:"line"}}},center:{default:{x:.5,y:.5},transform:we,description:"Center the spiral coils outward from",ui:{type:"position",label:"Center",group:"Lines",condition:{style:"spiral"}}},relief:{default:.6,description:"How strongly the image brightness displaces the lines \u2014 the engraved 'lines climb over the form' effect",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Relief",group:"Lines"}},waviness:{default:.35,description:"Organic meander of the line work, like a hand-pulled burin stroke",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Waviness",group:"Lines"}},contrast:{default:1.15,description:"Tonal contrast applied before the lines are cut \u2014 higher pushes mid-tones toward pure line or pure paper",ui:{type:["range","map"],min:.25,max:3,step:.01,label:"Contrast",group:"Tone"}},inkColor:{default:"#1a1410",transform:O,description:"Color of the engraved ink",ui:{type:"color",label:"Ink",group:"Colors"}},paperColor:{default:"#f4eee2",transform:O,description:"Paper color shown between the lines",ui:{type:"color",label:"Paper",group:"Colors"}}},fragment:({childNode:e,ctx:t,uniforms:s,propValues:r,convertToTexture:a})=>{if(!e)return me;let i=T(Re,"unpremultiplyAlpha",[a(e).sample(t.uv)]),l=OG(r.style),c=NG(l),d=de(s.angle,s.frequency,s.relief,s.waviness),u=de(s.contrast,t.viewportSize.member("y"),le(0),le(0));return T(c,`engravingComposite_${l}`,[i,t.uv,t.aspect,s.paperColor,s.inkColor,s.center,d,u])}};var YG=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_div(s.x,s.y),l=o.vec2f(__tsover_mul(t.x,i),t.y).mul(n.exp(r)).add(a);return __tsover_add(__tsover_mul(Ix(l).x,.5),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"}
244],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[1,[1,[7,[6,[7,"noise","erosion12"],["pos"]],"x"],"*",[5,"0.5"]],"+",[5,"0.5"]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),XC={name:"ErosionNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Branching, hydraulic-erosion ridges carved into noise",acceptsUVContext:!0,props:{..._a(),scale:{default:1.5,description:"Pattern scale (higher = larger patterns)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},...fa()},fragment:e=>Ir(e,T(YG,"erosionNoiseField",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,e.uniforms.scale,e.uniforms.seed]))};var GG=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.xyz.mul(s);return o.vec4f(r,t.w)}),{v:1,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,[7,"d","vec4f"],["rgb",[7,"color","w"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),qC={name:"Exposure",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Multiplicative exposure (gain) on the child. Unlike additive brightness, it scales values around black \u2014 blacks stay black while highlights can be pushed past 1.0 to feed HDR bloom and tone-mapping roll-off. Pointwise, so no extra render pass is needed.",requiresChild:!0,props:{exposure:{default:1,description:"Brightness multiplier (gain). 1 = unchanged, >1 pushes highlights past white for HDR bloom, <1 darkens.",ui:{type:["range","map"],min:0,max:8,step:.1,label:"Exposure",group:"Adjustments"}}},fragment:({uniforms:e,childNode:t})=>t?T(GG,"exposureColor",[t,e.exposure]):(console.error("You must pass a child component into the Exposure shader."),me)};var HC=Math.PI/180,jC=b.fn([o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return o.vec2f(n.fract(__tsover_mul(n.sin(__tsover_mul(t,127.1)),43758.5453123)),n.fract(__tsover_mul(n.sin(__tsover_mul(t,311.7)),38291.3421)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"idx"}],body:[0,[[10,[6,[7,"d","vec2f"],[[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"idx","*",[5,"127.1"]]]],"*",[5,"43758.5453123"]]]],[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"idx","*",[5,"311.7"]]]],"*",[5,"38291.3421"]]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),WG=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_div(s.x,s.y),_=o.vec2f(__tsover_mul(t.x,m),t.y).sub(o.vec2f(__tsover_mul(m,.5),.5)),v=__tsover_mul(r,HC),h=n.cos(v),y=n.sin(v),x=__tsover_sub(__tsover_mul(_.y,h),__tsover_mul(_.x,y)),g=__tsover_add(__tsover_mul(_.x,h),__tsover_mul(_.y,y)),w=__tsover_mul(x,a),f=n.floor(w),A=n.fract(w),E=jC(f),P=__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(E.x,.5),i),2)),C=E.y,$=n.fract(__tsover_mul(p,P)),U=n.fract(__tsover_sub(__tsover_sub(g,$),C)),k=l,R=n.clamp(__tsover_div(U,k),0,1),D=n.clamp(n.fwidth(g),.001,.1),M=n.clamp(__tsover_mul(n.fwidth(x),a),.001,.1),z=__tsover_sub(1,n.smoothstep(__tsover_sub(k,D),__tsover_add(k,D),U)),L=__tsover_mul(c,.5),B=n.abs(__tsover_sub(A,.5)),N=__tsover_sub(1,n.smoothstep(__tsover_sub(L,M),__tsover_add(L,M),B)),G=__tsover_mul(z,N),I=__tsover_mul(L,d),X=__tsover_mul(n.max(__tsover_sub(U,k),0),a),F=n.clamp(__tsover_div(X,n.max(I,1e-4)),0,1),Q=__tsover_mul(L,n.sqrt(n.max(__tsover_sub(1,__tsover_mul(F,F)),0))),ae=__tsover_mul(__tsover_sub(1,n.smoothstep(n.max(__tsover_sub(Q,M),0),n.max(__tsover_add(Q,M),.001),B)),n.smoothstep(0,M,Q)),j=n.max(G,ae),q=__tsover_sub(__tsover_mul(2,u),1),te=n.max(__tsover_mul(2,__tsover_sub(1,u)),.001),ne=n.clamp(__tsover_div(__tsover_add(R,q),te),0,1);return o.vec2f(j,ne)}),{v:1,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"}
vendor: 4,331 bytes, line 244
244],body:[0,[[13,"aspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"corrUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centeredUV",[6,[7,"corrUV","sub"],[[6,[7,"d","vec2f"],[[1,"aspect","*",[5,"0.5"]],[5,"0.5"]]]]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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,[7,"std","floor"],["colF"]]],[13,"colLocalU",[6,[7,"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,[7,"std","fract"],[[1,"animTime","*","speedMod"]]]],[13,"vPeriodic",[6,[7,"std","fract"],[[1,[1,"v","-","animOffset"],"-","phase"]]]],[13,"trailLen","trailLength"],[13,"withinStreak",[6,[7,"std","clamp"],[[1,"vPeriodic","/","trailLen"],[5,"0"],[5,"1"]]]],[13,"fwV",[6,[7,"std","clamp"],[[6,[7,"std","fwidth"],["v"]],[5,"0.001"],[5,"0.1"]]]],[13,"fwU",[6,[7,"std","clamp"],[[1,[6,[7,"std","fwidth"],["u"]],"*","density"],[5,"0.001"],[5,"0.1"]]]],[13,"streakMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"trailLen","-","fwV"],[1,"trailLen","+","fwV"],"vPeriodic"]]]],[13,"hw",[1,"strokeWidth","*",[5,"0.5"]]],[13,"distFromCenter",[6,[7,"std","abs"],[[1,"colLocalU","-",[5,"0.5"]]]]],[13,"widthMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"hw","-","fwU"],[1,"hw","+","fwU"],"distFromCenter"]]]],[13,"rectMask",[1,"streakMask","*","widthMask"]],[13,"maxDepth",[1,"hw","*","rounding"]],[13,"gapDist",[1,[6,[7,"std","max"],[[1,"vPeriodic","-","trailLen"],[5,"0"]]],"*","density"]],[13,"tcap",[6,[7,"std","clamp"],[[1,"gapDist","/",[6,[7,"std","max"],["maxDepth",[5,"0.0001"]]]],[5,"0"],[5,"1"]]]],[13,"capHW",[1,"hw","*",[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,[5,"1"],"-",[1,"tcap","*","tcap"]],[5,"0"]]]]]]],[13,"capAlpha",[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[6,[7,"std","max"],[[1,"capHW","-","fwU"],[5,"0"]]],[6,[7,"std","max"],[[1,"capHW","+","fwU"],[5,"0.001"]]],"distFromCenter"]]],"*",[6,[7,"std","smoothstep"],[[5,"0"],"fwU","capHW"]]]],[13,"finalMask",[6,[7,"std","max"],["rectMask","capAlpha"]]],[13,"balanceNum",[1,[1,[5,"2"],"*","balance"],"-",[5,"1"]]],[13,"balanceDen",[6,[7,"std","max"],[[1,[5,"2"],"*",[1,[5,"1"],"-","balance"]],[5,"0.001"]]]],[13,"balancedT",[6,[7,"std","clamp"],[[1,[1,"withinStreak","+","balanceNum"],"/","balanceDen"],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec2f"],["finalMask","balancedT"]]]]],externalNames:["d","DEG_TO_RAD","std","colHash"]},externals:()=>({d:o,DEG_TO_RAD:HC,std:n,colHash:jC})})&&e.f)({})),ZC={name:"FallingLines",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Directional falling lines with a leading-to-trailing color fade",requiresRTT:!1,acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#ffffff",transform:O,description:"Color at the leading edge of each line",ui:{type:"color",label:"Lead Color",group:"Colors"}},colorB:{default:"#ffffff00",transform:O,description:"Color at the trailing edge (transparent by default)",ui:{type:"color",label:"Trail Color",group:"Colors"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for interpolation between lead and trail colors",ui:{type:"select",options:ze,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:.
24401,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"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=Fe(e),c=T(WG,"fallingLinesField",[a,i,t.angle,t.density,t.speedVariance,t.trailLength,t.strokeWidth,t.rounding,t.balance,l]),d=c.member("x"),u=c.member("y"),p=T(Ye[r.colorSpace??0]??Be,"mixColors",[t.colorB,t.colorA,u]);return de(p.member("rgb"),p.member("a").mul(d))}};var XG=b.fn([o.vec4f,o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=s.mul(r),d=__tsover_add(n.dot(c,o.vec2f(12.9898,78.233)),l),u=n.fract(__tsover_mul(n.sin(d),43758.5453)),p=__tsover_sub(__tsover_mul(u,2),1),m=n.clamp(n.dot(t.xyz,o.vec3f(.2126,.7152,.0722)),0,1),_=__tsover_sub(1,m),v=n.pow(__tsover_add(_,1e-6),i),h=__tsover_mul(__tsover_mul(p,v),__tsover_mul(a,.1)),y=t.xyz.add(h);return o.vec4f(y,t.w)}),{v:1,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,"noiseInput",[1,[6,[7,"std","dot"],["pixelCoord",[6,[7,"d","vec2f"],[[5,"12.9898"],[5,"78.233"]]]]],"+","animTime"]],[13,"noise",[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],["noiseInput"]],"*",[5,"43758.5453"]]]]],[13,"grain",[1,[1,"noise","*",[5,"2"]],"-",[5,"1"]]],[13,"brightness",[6,[7,"std","clamp"],[[6,[7,"std","dot"],[[7,"color","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]],[5,"0"],[5,"1"]]]],[13,"darkness",[1,[5,"1"],"-","brightness"]],[13,"darkFactor",[6,[7,"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,[7,"d","vec4f"],["grainedColor",[7,"color","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),KC={name:"FilmGrain",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Analog film grain texture overlay, weighted toward darker areas",requiresChild:!0,extraFields:{animTime:{schema:o.f32,initial:0}},props:{strength:{default:.5,description:"Intensity of the film grain noise",ui:{type:["range","map"],min:0,max:1,step:.025,label:"Strength",group:"Effect"}},bias:{default:2,description:"Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly.",ui:{type:"range",min:0,max:10,step:.1,label:"Bias",group:"Effect"}},animated:{default:!1,description:"When enabled, the grain pattern changes each frame for a dynamic film effect",ui:{type:"checkbox",label:"Animated",group:"Effect"},transform:e=>e?1:0}},fragment:e=>{let{childNode:t,uniforms:s,ctx:r}=e;if(!t)return me;let a=0;return e.onBeforeRender(({deltaTime:i})=>{let l=e.getCpuValue("animated")>0?1:0;a+=i*l*10,e.setExtraField("animTime",a)}),T(XG,"filmGrainColor",[t,r.uv,r.viewportSize,s.strength,s.bias,s.animTime])}};var JC=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.select(t.x,__tsover_sub(1,t.x),s>0),i=n.select(t.y,__tsover_sub(1,t.y),r>0);return o.vec2f(a,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"flipX"},{type:"i",name:"flipY"}],body:[0,[[13,"x",[6,[7,"std","select"],[[7,"uv","x"],[1,[5,"1"],"-",[7,"uv","x"]],[1,"flipX",">",[5,"0"]]]]],[13,"y",[6,[7,"std","select"],[[7,"uv","y"],[1,[5,"1"],"-",[7,"uv","y"]],[1,"flipY",">
244",[5,"0"]]]]],[10,[6,[7,"d","vec2f"],["x","y"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),QC={name:"Flip",category:"Distortions",description:"Mirror content horizontally, vertically, or both",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{flipX:{default:!1,transform:Wo,description:"Mirror the content horizontally (left \u2194 right)",ui:{type:"checkbox",label:"Flip X",group:"Effect"}},flipY:{default:!1,transform:Wo,description:"Mirror the content vertically (top \u2194 bottom)",ui:{type:"checkbox",label:"Flip Y",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return console.error("You must pass a child component into the Flip shader."),me;let a=r(t),i=T(JC,"flipUV",[s.uv,e.flipX,e.flipY]);return T(Re,"unpremultiplyAlpha",[a.sample(i)])},uvRemap:({uv:e,mask:t,uniforms:s})=>({uv:T(JC,"flipUV",[e,s.flipX,s.flipY]),mask:t})};var Gl=1024,aP="rgba16float",Iv=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({randomness:o.f32,particleSoftness:o.f32,particleSize:o.f32,twinkle:o.f32,count:o.f32,angle:o.f32,speedVariance:o.f32,angleVariance:o.f32,particleDensity:o.f32,color:o.vec3f,animTime:o.f32,frameTime:o.f32,aspect:o.f32}
244),"ParticleParams"),Uv=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({params:{uniform:Iv},outTex:{storageTexture:o.textureStorage2d(aP,"write-only")}}),"particleLayout"),Dv=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.fract(o.vec3f(t.x,t.y,t.x).mul(.1031)),r=n.dot(s,o.vec3f(s.y,s.z,s.x).add(33.33)),a=s.add(r);return n.fract(__tsover_mul(__tsover_add(a.x,a.y),a.z))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"p3",[6,[7,"std","fract"],[[6,[7,[6,[7,"d","vec3f"],[[7,"p","x"],[7,"p","y"],[7,"p","x"]]],"mul"],[[5,"0.1031"]]]]]],[13,"dd",[6,[7,"std","dot"],["p3",[6,[7,[6,[7,"d","vec3f"],[[7,"p3","y"],[7,"p3","z"],[7,"p3","x"]]],"add"],[[5,"33.33"]]]]]],[13,"p3b",[6,[7,"p3","add"],["dd"]]],[10,[6,[7,"std","fract"],[[1,[1,[7,"p3b","x"],"+",[7,"p3b","y"]],"*",[7,"p3b","z"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),zv=b.fn([o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.fract(o.vec3f(t.x,t.y,t.x).mul(o.vec3f(.1031,.103,.0973))),r=n.dot(s,o.vec3f(s.y,s.z,s.x).add(33.33)),a=s.add(r),i=__tsover_add(a.x,a.y);return n.fract(o.vec2f(__tsover_mul(i,a.z),__tsover_mul(i,a.y)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"p3",[6,[7,"std","fract"],[[6,[7,[6,[7,"d","vec3f"],[[7,"p","x"],[7,"p","y"],[7,"p","x"]]],"mul"],[[6,[7,"d","vec3f"],[[5,"0.1031"],[5,"0.103"],[5,"0.0973"]]]]]]]],[13,"dd",[6,[7,"std","dot"],["p3",[6,[7,[6,[7,"d","vec3f"],[[7,"p3","y"],[7,"p3","z"],[7,"p3","x"]]],"add"],[[5,"33.33"]]]]]],[13,"p3b",[6,[7,"p3","add"],["dd"]]],[13,"s",[1,[7,"p3b","x"],"+",[7,"p3b","y"]]],[10,[6,[7,"std","fract"],[[6,[7,"d","vec2f"],[[1,"s","*",[7,"p3b","z"]],[1,"s","*",[7,"p3b","y"]]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),eP=b.fn([o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=zv(t).sub(.5),a=n.sin(s),i=n.cos(s),l=__tsover_mul(__tsover_sub(__tsover_mul(i,r.x),__tsover_mul(a,r.y)),.66),c=__tsover_mul(__tsover_add(__tsover_mul(a,r.x),__tsover_mul(i,r.y)),.66);return o.vec2f(l,c).add(t).add(.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"root"},{type:"i",name:"deg"}],body:[0,[[13,"point",[6,[7,[6,"hash22",["root"]],"sub"],[[5,"0.5"]]]],[13,"s",[6,[7,"std","sin"],["deg"]]],[13,"c",[6,[7,"std","cos"],["deg"]]],[13,"rotatedX",[1,[1,[1,"c","*",[7,"point","x"]],"-",[1,"s","*",[7,"point","y"]]],"*",[5,"0.66"]]],[13,"rotatedY",[1,[1,[1,"s","*",[7,"point","x"]],"+",[1,"c","*",[7,"point","y"]]],"*",[5,"0.66"]]],[10,[6,[7,[6,[7,[6,[7,"d","vec2f"],["rotatedX","rotatedY"]],"add"],["root"]],"add"],[[5,"0.5"]]]]]],externalNames:["hash22","std","d"]},externals:()=>({hash22:zv,std:n,d:o})})&&e.f)({})),tP=b.fn([o.vec2f,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return __tsover_mul(__tsover_mul(__tsover_mul(r,s),__tsover_sub(Dv(t),.5)),2)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"randomness"},{type:"i",name:"frameTime"}],body:[0,[[10,[1,[1,[1,"frameTime","*","randomness"],"*",[1,[6,"hash12",["uv"]],"-",[5,"0.5"]]],"*",[5,"2"]]]]],externalNames:["hash12"]},externals:()=>({hash12:Dv})})&&e.f)({})),bu=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=eP(s,tP(s,r,a));return n.length(t.sub(i))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"cellUV"},{type:"i",name:"randomness"},{type:"i",name:"frameTime"}],body:[0,[[13,"deg",[6,"degFromRoot",["cellUV","randomness","frameTime"]]],[13,"pointUV",[6,"voronoiPoint",["cellUV","deg"]]],[10,[6,[7,"std","length"],[[6,[7,"uv","sub"],["pointUV"]]]]]]],externalNames:["degFromRoot","voronoiPoint","std"]},externals:()=>({degFromRoot:tP,voronoiPoint:eP,std:n})})&&e.f)({})),sP=b.fn([o.vec2f,Iv],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.floor(t),a=bu(t,r,s.randomness,s.frameTime),i=bu(t,r.add(o.vec2f(-1,0)),s.randomness,s.frameTime),l=bu(t,r.add(o.vec2f(1,0)),s.randomness,s.frameTime),c=bu(t,r.add(o.vec2f(0,-1)),s.randomness,s.frameTime),d=bu(t,r.add(o.vec2f(0,1)),s.randomness,s.frameTime),u=n.min(n.min(n.min(n.min(a,i),l),c),d),p=__tsover_mul(s.particleSize,.01),m=__tsover_mul(p,.6),_=__tsover_add(m,__tsover_mul(s.particleSoftness,__tsover_mul(p,2.4))),v=__tsover_sub(1,n.smoothstep(m,_,u)),h=Dv(r),y=__tsover_add(__tsover_mul(s.frameTime,2),__tsover_mul(h,6.28318)),x=__tsover_add(__tsover_mul(n.sin(y),.5),.5),g=n.mix(o.f32(1),x,s.twinkle);return s.color.mul(__tsover_mul(v,g))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"p"}],body:[0,[[13,"rootUV",[6,[7,"std","floor"],["uv"]]],[13,"dCenter",[6,"getParticleDistance",["uv","rootUV",[7,"p","randomness"],[7,"p","frameTime"]]]],[13,"dLeft",[6,"getParticleDistance",["uv",[6,[7,"rootUV","add"],[[6,[7,"d","vec2f"],[[4,"-",[5,"1"]],[5,"0"]]]]],[7,"p","randomness"],[7,"p","frameTime"]]]],[13,"dRight",[6,"getParticleDistance",["uv",[6,[7,"rootUV","add"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"0"]]]]],[7,"p","randomness"],[7,"p","frameTime"]]]],[13,"dTop",[6,"getParticleDistance",["uv",[6,[7,"rootUV","add"],[[6,[7,"d","vec2f"],[[5,"0"],[4,"-",[5,"1"]]]]]],[7,"p","randomness"],[7,"p","frameTime"]]]],[13,"dBottom",[6,"getParticleDistance",["uv",[6,[7,"rootUV","add"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]]]],[7,"p","randomness"],[7,"p","frameTime"]]]],[13,"minDist",[6,[7,"std","min"],[[6,[7,"std","min"],[[6,[7,"std","min"],[[6,[7,"std","min"],["dCenter","dLeft"]],"dRight"]],"dTo
244p"]],"dBottom"]]],[13,"scaledSize",[1,[7,"p","particleSize"],"*",[5,"0.01"]]],[13,"innerRadius",[1,"scaledSize","*",[5,"0.6"]]],[13,"outerRadius",[1,"innerRadius","+",[1,[7,"p","particleSoftness"],"*",[1,"scaledSize","*",[5,"2.4"]]]]],[13,"baseIntensity",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["innerRadius","outerRadius","minDist"]]]],[13,"particlePhase",[6,"hash12",["rootUV"]]],[13,"twinkleTime",[1,[1,[7,"p","frameTime"],"*",[5,"2"]],"+",[1,"particlePhase","*",[5,"6.28318"]]]],[13,"twinkleValue",[1,[1,[6,[7,"std","sin"],["twinkleTime"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"twinkleModifier",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"twinkleValue",[7,"p","twinkle"]]]],[10,[6,[7,[7,"p","color"],"mul"],[[1,"baseIntensity","*","twinkleModifier"]]]]]],externalNames:["std","getParticleDistance","d","hash12"]},externals:()=>({std:n,getParticleDistance:bu,d:o,hash12:Dv})})&&e.f)({})),oP=b.fn([o.vec2f,Iv],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let i=o.vec3f(0,0,0),l=o.f32(1),c=o.f32(1),d=o.vec2f(0,0),u=__tsover_div(__tsover_mul(s.angle,3.14159),180),p=o.vec2f(n.cos(u),n.sin(u)),m=p.mul(s.animTime),_=s.speedVariance,v=__tsover_div(__tsover_mul(s.angleVariance,3.14159),180);for(let h=0;h<5;h++){let y=o.f32(h)<s.count&&c>.02,x=zv(o.vec2f(c,__tsover_mul(o.f32(h),7.919))),g=__tsover_add(1,__tsover_mul(__tsover_sub(x.x,.5),_)),w=__tsover_mul(__tsover_mul(__tsover_sub(x.y,.5),v),2),f=__tsover_add(u,w),A=o.vec2f(n.cos(f),n.sin(f)),E=m.mul(g).add(A.sub(p).mul(s.animTime)),P=sP(t.mul(l).add(E).add(d),s).mul(c);i=i.add(n.select(o.vec3f(0,0,0),P,y)),d=d.add(x.mul(10)),c=__tsover_mul(c,.9),l=__tsover_mul(l,1.05)}return i}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"p"}],body:[0,[[13,"sizeMod",[5,"1.05"]],[13,"alphaMod",[5,"0.9"]],[12,"particles",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]]],[12,"layerScale",[6,[7,"d","f32"],[[5,"1"]]]],[12,"alpha",[6,[7,"d","f32"],[[5,"1"]]]],[12,"offset",[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]]],[13,"angleRad",[1,[1,[7,"p","angle"],"*",[5,"3.14159"]],"/",[5,"180"]]],[13,"baseMovementDir",[6,[7,"d","vec2f"],[[6,[7,"std","cos"],["angleRad"]],[6,[7,"std","sin"],["angleRad"]]]]],[13,"baseMovement",[6,[7,"baseMovementDir","mul"],[[7,"p","animTime"]]]],[13,"speedVar",[7,"p","speedVariance"]],[13,"angleVar",[1,[1,[7,"p","angleVariance"],"*",[5,"3.14159"]],"/",[5,"180"]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"5"]],[102,"++","i"],[0,[[13,"layerActive",[3,[1,[6,[7,"d","f32"],["i"]],"<",[7,"p","count"]],"&&",[1,"alpha",">",[5,"0.02"]]]],[13,"layerHash",[6,"hash22",[[6,[7,"d","vec2f"],["alpha",[1,[6,[7,"d","f32"],["i"]],"*",[5,"7.919"]]]]]]],[13,"speedMod",[1,[5,"1"],"+",[1,[1,[7,"layerHash","x"],"-",[5,"0.5"]],"*","speedVar"]]],[13,"angleDelta",[1,[1,[1,[7,"layerHash","y"],"-",[5,"0.5"]],"*","angleVar"],"*",[5,"2"]]],[13,"variedAngle",[1,"angleRad","+","angleDelta"]],[13,"variedDir",[6,[7,"d","vec2f"],[[6,[7,"std","cos"],["variedAngle"]],[6,[7,"std","sin"],["variedAngle"]]]]],[13,"movement",[6,[7,[6,[7,"baseMovement","mul"],["speedMod"]],"add"],[[6,[7,[6,[7,"variedDir","sub"],["baseMovementDir"]],"mul"],[[7,"p","animTime"]]]]]],[13,"particleUV",[6,[7,[6,[7,[6,[7,"uv","mul"],["layerScale"]],"add"],["movement"]],"add"],["offset"]]],[13,"layerParticles",[6,[7,[6,"renderParticle",["particleUV","p"]],"mul"],["alpha"]]],[2,"particles","=",[6,[7,"particles","add"],[[6,[7,"std","select"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],"layerParticles","layerActive"]]]]],[2,"offset","=",[6,[7,"offset","add"],[[6,[7,"layerHash","mul"],[[5,"10"]]]]]],[2,"alpha","=",[1,"alpha","*","alphaMod"]],[2,"layerScale","=",[1,"layerScale","*","sizeMod"]]]]],[10,"particles"]]],externalNames:["d","std","hash22","renderParticle"]},externals:()=>({d:o,std:n,hash22:zv,renderParticle:sP})})&&e.f)({})),rP=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=Uv.$.params,a=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(Gl)),i=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(Gl)),l=oP(o.vec2f(__tsover_mul(__tsover_sub(__tsover_mul(a,2),1),r.aspect),__tsover_sub(__tsover_mul(i,2),1)).mul(r.particleDensity),r),c=n.clamp(n.length(l),0,1);n.textureStore(Uv.$.outTex,o.vec2u(t,s),o.vec4f(l,c))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"particleLayout","$"],"params"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["PARTICLE_TEX"]]]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["PARTICLE_TEX"]]]],[13,"centered",[6,[7,"d","vec2f"],[[1,[1,[1,"u","*",[5,"2"]],"-",[5,"1"]],"*",[7,"p","aspect"]],[1,[1,"v","*",[5,"2"]],"-",[5,"1"]]]]],[13,"adjustedUV",[6,[7,"centered","mul"],[[7,"p","particleDensity"]]]],[13,"particles",[6,"layeredParticles",["adjustedUV","p"]]],[13,"pa",[6,[7,"std","clamp"],[[6,[7,"std","length"],["particles"]],[5,"0"],[5,"1"]]]],[6,[7,"std","textureStore"],[[7,[7,"particleLayout","$"],"outTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["particles","pa"]]]]]],externalNames:["particleLayout","d","PARTICLE_TEX","layeredParticles","std"]},externals:()=>({particleLayout:Uv,d:o,PARTICLE_TEX:Gl,layeredParticles:oP,std:n})})&&e.f)({})).$name("floatingParticles"),qG=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_add(t.x,s),__tsover_add(t.y,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"ox"},{type:"i",name:"oy"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","ox"],[1,[7,"uv","y"],"+","oy"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),HG=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=t.xyz.mul(.5).add(s.xyz.mul(.125)).add(r.xyz.mul(.125)).add(a.xyz.mul(.125)).add(i.xyz.mul(.125)),c=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(t.w,.5),__tsover_mul(s.w,.125)),__tsover_mul(r.w,.125)),__tsover_mul(a.w,.125)),__tsover_mul(i.w,.125));return o.vec4f(l,c)}),{v:1,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"}],body:[0,[[13,"rgb",[6,[7,[6,[7,[6,[7,[6,[7,[6,[7,[7,"s0","xyz"],"mul"],[[5,"0.5"]]],"add"],[[6,[7,[7,"s1","xyz"],"mul"],[[5,"0.125"]]]]],"add"],[[6,[7,[7,"s2","xyz"],"mul"],[[5,"0.125"]]]]],"add"],[[6,[7,[7,"s3","xyz"],"mul"],[[5,"0.125"]]]]],"add"],[[6,[7,[7,"s4","xyz"],"mul"],[[5,"0.125"]]]]]],[13,"a",[1,[1,[1,[1,[1,[7,"s0","w"],"*",[5,"0.5"]],"+",[1,[7,"s1","w"],"*",[5,"0.125"]]],"+",[1,[7,"s2","w"],"*",[5,"0.125"]]],"+",[1,[7,"s3","w"],"*",[5,"0.125"]]],"+",[1,[7,"s4","w"],"*",[5,"0.125"]]]],[10,[6,[7,"d","vec4f"],["rgb","a"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),jG=b.fn([o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.select(o.f32(0),t.w,t.w>.01),a=n.mix(s.xyz,t.xyz,o.vec3f(r)),i=n.clamp(t.w,0,1),l=__tsover_add(i,__tsover_mul(s.w,__tsover_sub(1,i)));return o.vec4f(a,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"c"}],body:[0,[[13,"gate",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[7,"p","w"],[1,[7,"p","w"],">",[5,"0.01"]]]]],[13,"mixedColor",[6,[7,"std","mix"],[[7,"c","xyz"],[7,"p","xyz"],[6,[7,"d","vec3f"],["gate"]]]]],[13,"pa",[6,[7,"std","clamp"],[[7,"p","w"],[5,"0"],[5,"1"]]]],[13,"finalAlpha",[1,"pa","+",[1,[7,"c","w"],"*",[1,[5,"1"],"-","pa"]]]],[10,[6,[7,"d","vec4f"],["mixedColor","finalAlpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),nP={name:"FloatingParticles",boundingBoxDeclaration:{aspectRatio:null},category:"Textures",description:"Animated floating particles with twinkle effects",requiresRTT:!1,props:{randomness:{default:.25,description:"Randomness of particle animation",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Randomness",group:"Effect"}},speed:{default:.25,description:"Speed of particle movement",ui:{type:"range",min:0,max:1,step:.1,label:"Speed",group:"Animation"}},angle:{default:90,description:"Movement angle in degrees (0=right, 90=down, 180=left, 270=up)",ui:{type:"range",min:0,max:360,step:1,label:"Angle",group:"Animation"}},particleSize:{default:2,description:"Size of particles",ui:{type:["range","map"],min:.1,max:20,step:.1,label:"Particle Size",group:"Effect"}},particleSoftness:{default:0,description:"Edge softness of particles (0 = sharp, 1 = very soft)",ui:{type:["range","map"],min:0,max:5,step:.1,label:"Particle Softness",group:"Effect"}},twinkle:{default:.5,description:"Intensity of the twinkle effect (0 = off, 1 = full twinkle)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Twinkle",group:"Animation"}},count:{default:5,description:"Number of particle layers",ui:{type:"range",min:1,max:5,step:1,label:"Count",group:"Effect"}},particleColor:{default:"#ffffff",transform:O,description:"Color of the particles",ui:{type:"color",label:"Particle Color",group:"Colors"}},speedVariance:{default:.3,description:"Per-layer speed variance (0 = all layers same speed, 1 = high variance)",ui:{type:"range",min:0,max:1,step:.1,label:"Speed Variance",group:"Animation"}},angleVariance:{default:30,description:"Per-layer angle variance in degrees (0 = all layers same angle, 180 = full variance)",ui:{type:"range",min:0,max:180,step:1,label:"Angle Variance",group:"Animation"}},particleDensity:{default:3,description:"Particle density (lower = more spread out, higher = more dense)",ui:{type:"range",min:.5,max:3,step:.1,label:"Particle Density",group:"Effect"}}},compute:e=>{let{gpu:t,registerComputeTexture:s,getCpuValue:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=(globalThis.__TYPEGPU_AUTONAME__??(v=>v))(i.createTexture({size:[Gl,Gl],format:aP}).$usage("storage","sampled"),"outTex");a(()=>l.destroy());let c=s(l),d=(globalThis.__TYPEGPU_AUTONAME__??(v=>v))(i.createUniform(Iv),"paramsU"),u=i.createBindGroup(Uv,{params:d.buffer,outTex:l}),p=pt(i,(v=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(v.f=((h,y)=>{"use gpu";rP(h,y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"particleKernel",["cx","cy"]]]],externalNames:["particleKernel"]},externals:()=>({particleKernel:rP})})&&v.f)({}),{size:[Gl,Gl],bindGroup:u}),m=0,_=0;return{outputs:{particleTexture:c},getComputeNodes:v=>
244{let h=v,y=h.deltaTime??0;m+=y*(r("speed")??.25),_+=y;let x=h.dimensions?.height??0,g=x>0?(h.dimensions?.width??0)/x:16/9,w=r("particleColor");return d.write({randomness:r("randomness")??.25,particleSoftness:r("particleSoftness")??0,particleSize:r("particleSize")??2,twinkle:r("twinkle")??.5,count:r("count")??5,angle:r("angle")??90,speedVariance:r("speedVariance")??.3,angleVariance:r("angleVariance")??30,particleDensity:r("particleDensity")??3,color:o.vec3f(w?.x??1,w?.y??1,w?.z??1),animTime:m,frameTime:_,aspect:g}),[p]}}},fragment:({ctx:e,childNode:t,computeOutputs:s})=>{let r=s?.particleTexture;if(!r)return me;let a=1/Gl,i=(c,d)=>r.sample(T(qG,"particleTapUV",[e.uv,le(c),le(d)]),"linearClamp"),l=T(HG,"particleUpsample",[r.sample(e.uv,"linearClamp"),i(a,0),i(0,a),i(-a,0),i(0,-a)]);return t?T(jG,"particleOverChild",[l,t]):l}};var ZG=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(lm(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"sides"},{type:"i",name:"innerRatio"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","flowerSdf"],[[7,"local","x"],[7,"local","y"],"radiu
244s","sides","innerRatio"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),iP={name:"Flower",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Petal shape with N lobes and adjustable inner-to-outer radius ratio",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the flower",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the flower",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.4,description:"Outer petal tip radius in UV space",ui:{type:"range",min:0,max:1,step:.01,label:"Radius",group:"Shape"}},sides:{default:5,description:"Number of petals",ui:{type:"range",min:3,max:12,step:1,label:"Petals",group:"Shape"}},innerRatio:{default:.4,description:"Inner valley radius as a ratio of outer radius \u2014 lower values make deeper notches",ui:{type:"range",min:.1,max:.95,step:.01,label:"Inner Ratio",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
244olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(ZG,"flowerShape",[t.center,t.radius,t.sides,t.innerRatio,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var Lv=Math.PI*2,lP=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=o.vec2f(__tsover_mul(t.x,s),t.y),d=__tsover_mul(i,.7),u=__tsover_mul(l,.2),p=__tsover_mul(Io(o.vec3f(__tsover_add(__tsover_mul(c.x,r),__tsover_mul(d,.3)),__tsover_add(__tsover_mul(c.y,r),__tsover_mul(d,.5)),u)),Lv),m=o.vec2f(n.cos(p),n.sin(p)),_=__tsover_mul(i,.5),v=__tsover_mul(l,.15),h=__tsover_mul(Io(o.vec3f(__tsover_add(__tsover_add(__tsover_mul(c.x,__tsover_mul(r,2.3)),__tsover_mul(_,-.4)),173.5),__tsover_add(__tsover_add(__tsover_mul(c.y,__tsover_mul(r,2.3)),__tsover_mul(_,.3)),291.7),__tsover_add(v,50))),Lv),y=o.vec2f(n.cos(h),n.sin(h)),x=__tsover_mul(i,.3),g=__tsover_mul(l,.1),w=__tsover_mul(Io(o.vec3f(__tsover_add(__tsover_add(__tsover_mul(c.x,__tsover_mul(r,4.7)),__tsover_mul(x,.2)),527.3),__tsover_add(__tsover_add(__tsover_mul(c.y,__tsover_mul(r,4.7)),__tsover_mul(x,-.6)),839.1),__tsover_add(g,100))),Lv),f=o.vec2f(n.cos(w),n.sin(w)),A=m.add(y.mul(.5)).add(f.mul(.25)),E=n.max(n.length(A),.001),P=A.div(E),C=o.vec2f(__tsover_div(__tsover_mul(P.x,a),s),__tsover_mul(P.y,a));return o.vec2f(__tsover_add(t.x,C.x),__tsover_add(t.y,C.y))}),{v:1,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,[7,"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,[7,"noise","mxNoiseFloat3"],[[6,[7,"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,[7,"d","vec2f"],[[6,[7,"std","cos"],["angle1"]],[6,[7,"std","sin"],["angle1"]]]]],[13,"drift2",[1,"time","*",[5,"0.5"]]],[13,"evolve2",[1,"evolutionTime","*",[5,"0.15"]]],[13,"angle2",[1,[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"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,[7,"d","vec2f"],[[6,[7,"std","cos"],["angle2"]],[6,[7,"std","sin"],["angle2"]]]]],[13,"drift3",[1,"time","*",[5,"0.3"]]],[13,"evolve3",[1,"evolutionTime","*",[5,"0.1"]]],[13,"angle3",[1,[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"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,[7,"d","vec2f"],[[6,[7,"std","cos"],["angle3"]],[6,[7,"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,[7,"std","max"],[[6,[7,"std","length"],["combinedFlow"]],[5,"0.001"]]]],[13,"normalizedFlow",[6,[7,"combinedFlow","div"],["flowLength"]]],[13,"finalFlow",[6,[7,"d","vec2f"],[[1,[1,[7,"normalizedFlow","x"],"*","strength"],"/","aspect"],[1,[7,"normalizedFlow","y"],"*","strength"]]]],[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[7,"finalFlow","x"]],[1,[7,"uv","y"],"+",[7,"finalFlow","y"]
244]]]]]],externalNames:["d","noise","TWO_PI","std"]},externals:()=>({d:o,noise:mt,TWO_PI:Lv,std:n})})&&e.f)({})),cP={name:"FlowField",category:"Distortions",description:"Fluid-like distortion with constant smooth motion",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},animatedTime:{speed:"speed"},extraAnimatedTimes:{evolution:"evolutionSpeed"},props:{strength:{default:.15,description:"Intensity of the flow distortion",ui:{type:["range","map"],min:0,max:.5,step:.01,label:"Strength",group:"Effect"}},detail:{default:2,description:"Scale of the flow patterns",ui:{type:["range","map"],min:.5,max:5,step:.1,label:"Detail",group:"Effect"}},speed:{default:0,description:"Speed of the flow",ui:{type:"range",min:0,max:20,step:.1,label:"Speed",group:"Animation"}},evolutionSpeed:{default:0,description:"How fast the flow field pattern reshapes over time",ui:{type:"range",min:0,max:20,step:.1,label:"Evolution Speed",group:"Animation"}},seed:{default:0,description:"Random seed for flow pattern variation",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}},edges:{default:"mirror",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r,propValues:a,convertToTexture:i}=e;if(!s)return me;let l=i(s),c=a.edges??0,d=Fe(e,"seed").mul(.1),u=Fe(e,"seed","_animTime_evolution").mul(.1);return T(Re,"unpremultiplyAlpha",[Gt(T(lP,"flowFieldUV",[r.uv,r.aspect,t.detail,t.strength,d,u]),p=>l.sample(p),c)])},uvRemap:e=>{let t=e.propValues.edges??0,s=Fe(e,"seed").mul(.1),r=Fe(e,"seed","_animTime_evolution").mul(.1);return zs(T(lP,"flowFieldUV",[e.uv,e.aspect,e.uniforms.detail,e.uniforms.strength,s,r]),e.mask,t)}};var dP=4*Math.PI,KG=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(i,.075),c=__tsover_div(s.x,s.y),d=t.sub(.5),u=__tsover_mul(a,.17),p=Io(o.vec3f(__tsover_add(__tsover_mul(d.x,.8),__tsover_mul(l,.4)),__tsover_sub(__tsover_mul(d.y,.8),__tsover_mul(l,.25)),u)),m=__tsover_mul(__tsover_mul(p,dP),r),_=o.vec2f(d.x,__tsover_div(d.y,c)),v=n.cos(m),h=n.sin(m),y=__tsover_sub(__tsover_mul(_.x,v),__tsover_mul(_.y,h)),x=__tsover_mul(__tsover_add(__tsover_mul(_.x,h),__tsover_mul(_.y,v)),c),g=__tsover_mul(l,2),w=__tsover_add(y,__tsover_mul(__tsover_div(n.sin(__tsover_add(__tsover_mul(x,5),g)),50),r)),f=__tsover_add(x,__tsover_mul(__tsover_div(n.sin(__tsover_add(__tsover_mul(w,7.5),g)),25),r)),A=o.vec3f(__tsover_mul(w,2),__tsover_mul(f,2),__tsover_add(__tsover_mul(l,.5),u)),E=Io(A.add(o.vec3f(5.2,1.3,0))),P=Io(A.add(o.vec3f(1.7,9.2,0))),C=__tsover_add(w,__tsover_mul(__tsover_mul(E,.25),r)),$=__tsover_add(f,__tsover_mul(__tsover_mul(P,.25),r)),U=o.vec3f(__tsover_mul(C,1.5),__tsover_mul($,1.5),__tsover_add(__tsover_mul(l,.3),u)),k=Io(U.add(o.vec3f(8.3,2.8,0))),R=Io(U.add(o.vec3f(3.1,7.4,0))),D=__tsover_add(C,__tsover_mul(__tsover_mul(k,.2),r)),M=__tsover_add($,__tsover_mul(__tsover_mul(R,.2),r)),z=Io(o.vec3f(__tsover_mul(D,1.8),__tsover_mul(M,1.8),__tsover_add(__tsover_mul(l,.3),u))),L=n.pow(__tsover_add(__tsover_mul(E,.5),.5),1.5),B=n.mix(.5,.008,L),N=n.smoothstep(__tsover_mul(B,-1),B,z),G=n.smoothstep(__tsover_mul(B,-1),B,P),I=__tsover_sub(1,n.abs(__tsover_sub(__tsover_mul(N,2),1))),X=__tsover_sub(1,n.abs(__tsover_sub(__tsover_mul(G,2),1))),F=__tsover_mul(n.max(I,X),L),Q=__tsover_add(__tsover_mul(__tsover_add(__tsover_mul(k,.5),.5),.12),.94),ae=__tsover_mul(Q,__tsover_add(1,__tsover_mul(F,.35)));return o.vec3f(N,G,ae)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"baseUV"},{type:"i",name:"viewport"},{type:"i",name:"distortion"},{type:"i",name:"seed"},{type:"i",name:"animTime"}],body:[0,[[13,"t",[1,"animTime","*",[5,"0.075"]]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"uv0",[6,[7,"baseUV","sub"],[[5,"0.5"]]]],[13,"seedOff",[1,"seed","*",[5,"0.17"]]],[13,"noiseVal",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"d","vec3f"],[[1,[1,[7,"uv0","x"],"*",[5,"0.8"]],"+",[1,"t","*",[5,"0.4"]]],[1,[1,[7,"uv0","y"],"*",[5,"0.8"]],"-",[1,"t","*",[5,"0.25"]]],"seedOff"]]]]],[13,"angle",[1,[1,"noiseVal","*","FOUR_PI"],"*","distortion"]],[13,"uvCorr",[6,[7,"d","vec2f"],[[7,"uv0","x"],[1,[7,"uv0","y"],"/","aspect"]]]],[13,"ca",[6,[7,"std","cos"],["angle"]]],[13,"sa",[6,[7,"std","sin"],["angle"]]],[13,"rotX",[1,[1,[7,"uvCorr","x"],"*","ca"],"-",[1,[7,"uvCorr","y"],"*","sa"]]],[13,"rotY",[1,[1,[1,[7,"uvCorr","x"],"*","sa"],"+",[1,[7,"uvCorr","y"],"*","ca"]],"*","aspect"]],[13,"ws",[1,"t","*",[5,"2"]]],[13,"warpX",[1,"rotX","+",[1,[1,[6,[7,"std","sin"],[[1,[1,"rotY","*",[5,"5"]],"+","ws"]]],"/",[5,"50"]],"*","distortion"]]],[13,"warpY",[1,"rotY","+",[1,[1,[6,[7,"std","sin"],[[1,[1,"warpX","*",[5,"7.5"]],"+","ws"]]],"/",[5,"25"]],"*","distortion"]]],[13,"wp1",[6,[7,"d","vec3f"],[[1,"warpX","*",[5,"2"]],[1,"warpY","*",[5,"2"]],[1,[1,"t","*",[5,"0.5"]],"+","seedOff"]]]],[13,"wx1",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"wp1","add"],[[6,[7,"d","vec3f"],[[5,"5.2"],[5,"1.3"],[5,"0"]]]]]]]],[13,"wy1",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"wp1","add"],[[6,[7,"d","vec3f"],[[5,"1.7"],[5,"9.2"],[5,"0"]]]]]]]],[13,"dw1X",[1,"warpX","+",[1,[1,"wx1","*",[5,"0.25"]],"*","distortion"]]],[13,"dw1Y",[1,"warpY","+",[1,[1,"wy1","*",[5,"0.25"]],"*","distortion"]]],[13,"wp2",[6,[7,"d","vec3f"],[[1,"dw1X","*",[5,"1.5"]],[1,"dw1Y","*",[5,"1.5"]],[1,[1,"t","*",[5,"0.3"]],"+","seedOff"]]]],[13,"wx2",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"wp2","add"],[[6,[7,"d","vec3f"],[[5,"8.3"],[5,"2.8"],[5,"0"]]]]]]]],[13,"wy2",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"wp2","add"],[[6,[7,"d","vec3f"],[[5,"3.1"],[5,"7.4"],[5,"0"]]]]]]]],[13,"dw2X",[1,"dw1X","+",[1,[1,"wx2","*",[5,"0.2"]],"*","distortion"]]],[13,"dw2Y",[1,"dw1Y","+",[1,[1,"wy2","*",[5,"0.2"]],"*","distortion"]]],[13,"zoneNoise",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"d","vec3f"],[[1,"dw2X","*",[5,"1.8"]],[1,"dw2Y","*",[5,"1.8"]],[1,[1,"t","*",[5,"0.3"]],"+","seedOff"]]]]]],[13,"edgeHardness",[6,[7,"std","pow"],[[1,[1,"wx1","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"1.5"]]]],[13,"edgeWidth",[6,[7,"std","mix"],[[5,"0.5"],[5,"0.008"],"edgeHardness"]]],[13,"t1",[6,[7,"std","smoothstep"],[[1,"edgeWidth","*",[4,"-",[5,"1"]]],"edgeWidth","zoneNoise"]]],[13,"t2",[6,[7,"std","smoothstep"],[[1,"edgeWidth","*",[4,"-",[5,"1"]]],"edgeWidth","wy1"]]],[13,"foldMask1",[1,[5,"1"],"-",[6,[7,"std","abs"],[[1,[1,"t1","*",[5,"2"]],"-",[5,"1"]]]]]],[13,"foldMask2",[1,[5,"1"],"-",[6,[7,"std","abs"],[[1,[1,"t2","*",[5,"2"]],"-",[5,"1"]]]]]],[13,"foldHighlight",[1,[6,[7,"std","max"],["foldMask1","foldMask2"]],"*","edgeHardness"]],[13,"surfaceLight",[1,[1,[1,[1,"wx2","*",[5,"0.5"]],"+",[5,"0.5"]],"*",[5,"0.12"]],"+",[5,"0.94"]]],[13,"litScale",[1,"surfaceLight","*",[1,[5,"1"],"+",[1,"foldHighlight","*",[5,"0.35"]]]]],[10,[6,[7,"d","vec3f"],["t1","t2","litScale"]]]]],externalNames:["noise","d","FOUR_PI","std"]},externals:()=>({noise:mt,d:o,FOUR_PI:dP,std:n})})&&e.f)({}
vendor: 6,018 bytes, line 244
244)),JG=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.clamp(t.xyz.mul(s),o.vec3f(0),o.vec3f(1));return o.vec4f(r,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"base"},{type:"i",name:"litScale"}],body:[0,[[13,"lit",[6,[7,"std","clamp"],[[6,[7,[7,"base","xyz"],"mul"],["litScale"]],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["lit",[7,"base","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),uP={name:"FlowingGradient",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Liquid silk gradient with organic flowing color bands",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#0a0015",transform:O,description:"Deep background color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#6b17e6",transform:O,description:"Primary accent color",ui:{type:"color",label:"Color B",group:"Colors"}},colorC:{default:"#ff4d6a",transform:O,description:"Secondary accent color",ui:{type:"color",label:"Color C",group:"Colors"}},colorD:{default:"#ff6b35",transform:O,description:"Tertiary accent color",ui:{type:"color",label:"Color D",group:"Colors"}},colorSpace:{default:"oklch",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,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"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=Fe(e),c=T(KG,"flowingFactors",[a,i,t.distortion,t.seed,l]),d=c.member("x"),u=c.member("y"),p=c.member("z"),m=Ye[r.colorSpace??0]??Be;return T(JG,"flowingCompose",[T(m,"mixColors",[T(m,"mixColors",[t.colorA,t.colorB,d]),T(m,"mixColors",[t.colorC,t.colorD,d]),u]),p])}};var Fv=Math.PI,ab=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({refractedUV:o.vec2f,chrOff:o.vec2f,spec:o.f32}),"FlutedGeom"),QG=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec3f],ab)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v,h)=>{"use gpu";let y=h.x,x=h.y,g=h.z,w=__tsover_div(__tsover_mul(a,Fv),180),f=n.cos(w),A=n.sin(w),E=o.vec2f(__tsover_mul(__tsover_sub(t.x,.5),s),__tsover_sub(t.y,.5)),P=__tsover_add(__tsover_mul(E.x,f),__tsover_mul(E.y,A)),C=__tsover_add(__tsover_mul(-E.x,A),__tsover_mul(E.y,f)),$=__tsover_mul(n.sin(__tsover_add(__tsover_mul(__tsover_mul(C,d),__tsover_mul(Fv,2)),__tsover_mul(r,2))),c),U=__tsover_add(P,__tsover_mul(g,$)),k=__tsover_add(__tsover_mul(U,i),r),R=__tsover_mul(__tsover_sub(n.fract(k),.5),2),D=n.max(n.abs(R),1e-4),M=n.mix(y,x,l),z=__tsover_mul(n.sign(R),n.pow(D,M)),L=__tsover_div(.5,n.max(i,.001)),B=-__tsover_mul(__tsover_mul(z,u),L),N=o.vec2f(__tsover_add(t.x,__tsover_div(__tsover_mul(B,f),s)),__tsover_add(t.y,__tsover_mul(B,A))),G=__tsover_mul(__tsover_mul(B,p),.5),I=o.vec2f(__tsover_div(__tsover_mul(G,f),s),__tsover_mul(G,A)),X=n.min(__tsover_mul(z,z),1),F=n.sqrt(__tsover_sub(1,X)),Q=__tsover_div(__tsover_mul(m,Fv),360),ae=n.sin(Q),j=n.cos(Q),q=n.max(__tsover_add(__tsover_mul(z,ae),__tsover_mul(F,j)),0),te=n.exp2(__tsover_sub(8,__tsover_mul(v,7))),ne=n.pow(__tsover_sub(1,F),5),oe=__tsover_add(.04,__tsover_mul(.96,ne));return ab({refractedUV:N,chrOff:I,spec:__tsover_mul(__tsover_mul(n.pow(q,te),oe),_)})}),{v:1,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:"lightAngleDeg"},{type:"i",name:"highlight"},{type:"i",name:"highlightSoftness"},{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,[7,"std","cos"],["r"]]],[13,"sinA",[6,[7,"std","sin"],["r"]]],[13,"aspCorr",[6,[7,"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,[7,"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,[7,"std","fract"],["flutePos"]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"absCell",[6,[7,"std","max"],[[6,[7,"std","abs"],["cellPos"]],[5,"0.0001"]]]],[13,"exponent",[6,[7,"std","mix"],["expHi","expLo","softness"]]],[13,"slope",[1,[6,[7,"std","sign"],["cellPos"]],"*",[6,[7,"std","pow"],["absCell","exponent"]]]],[13,"halfCell",[1,[5,"0.5"],"/",[6,[7,"std","max"],["frequency",[5,"0.001"]]]]],[13,"refrU",[4,"-",[1,[1,"slope","*","refraction"],"*","halfCell"]]],[13,"refractedUV",[6,[7,"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,[7,"d","vec2f"],[[1,[1,"chrU","*","cosA"],"/","aspect"],[1,"chrU","*","sinA"]]]],[13,"slopeSq",[6,[7,"std","min"],[[1,"slope","*","slope"],[5,"1"]]]],[13,"nz",[6,[7,"std","sqrt"],[[1,[5,"1"],"-","slopeSq"]]]],[13,"half",[1,[1,"lightAngleDeg","*","PI"],"/",[5,"360"]]],[13,"hx",[6,[7,"std","sin"],["half"]]],[13,"hy",[6,[7,"std","cos"],["half"]]],[13,"nD
244otH",[6,[7,"std","max"],[[1,[1,"slope","*","hx"],"+",[1,"nz","*","hy"]],[5,"0"]]]],[13,"shininess",[6,[7,"std","exp2"],[[1,[5,"8"],"-",[1,"highlightSoftness","*",[5,"7"]]]]]],[13,"fresnel",[6,[7,"std","pow"],[[1,[5,"1"],"-","nz"],[5,"5"]]]],[13,"fresnelMix",[1,[5,"0.04"],"+",[1,[5,"0.96"],"*","fresnel"]]],[13,"spec",[1,[1,[6,[7,"std","pow"],["nDotH","shininess"]],"*","fresnelMix"],"*","highlight"]],[10,[6,"FlutedGeom",[[104,{refractedUV:"refractedUV",chrOff:"chrOff",spec:"spec"}]]]]]],externalNames:["PI","std","d","FlutedGeom"]},externals:()=>({PI:Fv,std:n,d:o,FlutedGeom:ab})})&&e.f)({})),pP={name:"FlutedGlass",boundingBoxDeclaration:{aspectRatio:null},category:"Distortions",description:"Full-screen fluted glass effect \u2014 refracts content through repeating cylindrical bars",requiresRTT:!0,requiresChild:!0,animatedTime:{speed:"speed"},props:{shape:{default:"bars",description:"Cross-section shape of each flute",compileTime:!0,transform:e=>({bars:0,rounded:1,waves:2})[e]??0,ui:{type:"select",options:[{label:"Bars",value:"bars"},{label:"Rounded",value:"rounded"},{label:"Waves",value:"waves"}],label:"Shape",group:"Effect"}},angle:{default:0,description:"Direction of the flutes in degrees (0 = vertical bars)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},frequency:{default:10,description:"Number of flutes across the longest viewport axis",ui:{type:["range","map"],min:1,max:20,step:1,label:"Frequency",group:"Effect"}},softness:{default:.5,description:"How smoothly distortion fades from each flute centre to its edge (0 = flat middle / sharp seams, 1 = gentle curve)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},waveAmplitude:{default:.06,description:"How far each flute sways horizontally as it travels (Waves shape only)",ui:{type:["range","map"],min:0,max:.5,step:.01,label:"Wave Amplitude",group:"Effect",condition:{shape:"waves"}}},waveFrequency:{default:1.5,description:"How many sways fit along each flute (Waves shape only)",ui:{type:["range","map"],min:.1,max:10,step:.1,label:"Wave Frequency",group:"Effect",condition:{shape:"waves"}}},speed:{default:0,description:"Animation speed \u2014 drifts the flute pattern over time and flows wave perturbations",ui:{type:"range",min:-1,max:1,step:.01,label:"Speed",group:"Animation"}},refraction:{default:1.5,description:"How aggressively each flute bends content beneath it",ui:{type:["range","map"],min:0,max:4,step:.01,label:"Refraction",group:"Effect"}},aberration:{default:.2,description:"Chromatic aberration \u2014 splits RGB along the refraction direction at flute seams",compileTimeWhen:(e,t)=>e>0!=t>0,ui:{type:["range","map"],min:0,max:1,step:.01,label:"Aberration",group:"Effect"}},lightAngle:{default:30,description:"Direction the light source is coming from (0 = head-on, 90 = grazing)",ui:{type:"range",min:-90,max:90,step:1,label:"Light Angle",group:"Highlight"}},highlight:{default:.2,description:"Strength of the specular reflection on each flute",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Highlight",group:"Highlight"}},highlightSoftness:{default:.3,description:"Spread of the specular peak (0 = pin-tight, 1 = broad sheen)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Highlight Softness",group:"Highlight"}},highlightColor:{default:"#ffffff",transform:O,description:"Color of the specular highlight",ui:{type:"color",label:"Highlight Color",group:"Highlight"}},edges:{default:"mirror",description:"How to handle edges when distortion samples beyond the canvas",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r,propValues:a,convertToTexture:i}=e;if(!s)return me;let l=i(s),c=a.shape??0,d=c===0?16:8,u=c===0?4:3,p=c===2?1:0,m=a.edges??2,_=(a.aberration??.2)>0,v=Fe(e).mul(-1),h=T(QG,"flutedGlassGeom",[r.uv,r.aspect,v,t.angle,t.frequency,t.softness,t.waveAmplitude,t.waveFrequency,t.refraction,t.aberration,t.lightAngle,t.highlight,t.highlightSoftness,rr(`vec3f(${Tr(d)}, ${Tr(u)}, ${Tr(p)})`)]),y=A=>m===1?l.sample(A).mul(T(Bc,"edgeTransparentMask",[A])):m===2?l.sample(T(zi,"edgeMirrorUV",[A])):m===3?l.sample(T(Ii,"edgeWrapUV",[A])):l.sample(T(Fc,"edgeClampUV",[A])),x=h.member("refractedUV"),g;if(!_)g=y(x);else{let A=h.member("chrOff"),E=y(x.add(A)),P=y(x),C=y(x.add(A.mul(-1)));g=de(E.member("r"),P.member("g"),C.member("b"),P.member("a"))}let w=T(Re,"unpremultiplyAlpha",[g]),f=h.member("spec").mul(w.member("a"));return de(w.member("rgb").add(t.highlightColor.member("rgb").mul(f)),w.member("a"))}};var lt=256,Da=lt*lt,eW=10,tW=6,sW=50,mP=.8,_P=.15,fP=lt*.6,nb=Math.PI*2,yP="rgba16float",vP=en,gP=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({dt:o.f32,time:o.f32,seed:o.f32,turbulence:o.f32,curlStrength:o.f32,blending:o.f32,cursorX:o.f32,cursorY:o.f32,cursorVelX:o.f32,cursorVelY:o.f32,mouseActive:o.f32,mouseRadSq:o.f32}),"FogParams"),tt=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({velA:{storage:o.arrayOf(o.vec4f,Da),access:"mutable"},velB:{storage:o.arrayOf(o.vec4f,Da),access:"mutable"},densA:{storage:o.arrayOf(o.vec4f,Da),access:"mutable"},densB:{storage:o.arrayOf(o.vec4f,Da),access:"mutable"},pressure:{storage:o.arrayOf(o.f32,Da),access:"mutable"},divergence:{storage:o.arrayOf(o.f32,Da),access:"mutable"},params:{uniform:gP}}),"fluidLayout"),Vv=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({densA:{storage:o.arrayOf(o.vec4f,Da),access:"readonly"},outTex:{storageTexture:o.textureStorage2d(yP,"write-only")}}),"outputLayout"),_o=b.fn([o.i32,o.i32,o.i32,o.i32],o.u32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mod(__tsover_add(__tsover_add(t,r),lt),lt),l=__tsover_mod(__tsover_add(__tsover_add(s,a),lt),lt);return o.u32(__tsover_add(__tsover_mul(i,lt),l))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"ii"},{type:"i",name:"ji"},{type:"i",name:"di"},{type:"i",name:"dj"}],body:[0,[[13,"row",[1,[1,[1,"ii","+","di"],"+","N"],"%","N"]],[13,"col",[1,[1,[1,"ji","+","dj"],"+","N"],"%","N"]],[10,[6,[7,"d","u32"],[[1,[1,"row","*","N"],"+","col"]]]]]],externalNames:["N","d"]},externals:()=>({N:lt,d:o})})&&e.f)({})),Zm=b.fn([o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(t,127.1),__tsover_mul(s,311.7))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"px"},{type:"i",name:"py"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,"px","*",[5,"127.1"]],"+",[1,"py","*",[5,"311.7"]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Bv=b.fn([o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.floor(t),a=n.floor(s),i=n.fract(t),l=n.fract(s),c=__tsover_mul(__tsover_mul(i,i),__tsover_sub(3,__tsover_mul(i,2))),d=__tsover_mul(__tsover_mul(l,l),__tsover_sub(3,__tsover_mul(l,2)));
vendor: 6,052 bytes, line 244
244return n.mix(n.mix(Zm(r,a),Zm(__tsover_add(r,1),a),c),n.mix(Zm(r,__tsover_add(a,1)),Zm(__tsover_add(r,1),__tsover_add(a,1)),c),d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"nx"},{type:"i",name:"ny"}],body:[0,[[13,"ix",[6,[7,"std","floor"],["nx"]]],[13,"iy",[6,[7,"std","floor"],["ny"]]],[13,"sx",[6,[7,"std","fract"],["nx"]]],[13,"sy",[6,[7,"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,[7,"std","mix"],[[6,[7,"std","mix"],[[6,"hashFog",["ix","iy"]],[6,"hashFog",[[1,"ix","+",[5,"1"]],"iy"]],"ux"]],[6,[7,"std","mix"],[[6,"hashFog",["ix",[1,"iy","+",[5,"1"]]]],[6,"hashFog",[[1,"ix","+",[5,"1"]],[1,"iy","+",[5,"1"]]]],"ux"]],"uy"]]]]],externalNames:["std","hashFog"]},externals:()=>({std:n,hashFog:Zm})})&&e.f)({})),Km=b.fn([o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return __tsover_add(__tsover_add(__tsover_mul(Bv(t,s),.5),__tsover_mul(Bv(__tsover_add(__tsover_mul(t,2),5.37),__tsover_add(__tsover_mul(s,2),9.13)),.3)),__tsover_mul(Bv(__tsover_add(__tsover_mul(t,4),1.79),__tsover_add(__tsover_mul(s,4),3.51)),.2))}),{v:1,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"]]]]]],externalNames:["valueNoise2D"]},externals:()=>({valueNoise2D:Bv})})&&e.f)({})),oW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=tt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(lt)),t),i=o.f32(t),l=o.f32(s),c=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(r.seed,37.31)),43758.5453)),97),d=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(r.seed,83.17)),43758.5453)),97),u=__tsover_add(__tsover_mul(__tsover_div(i,o.f32(lt)),3),c),p=__tsover_add(__tsover_mul(__tsover_div(l,o.f32(lt)),3),d),m=n.clamp(__tsover_add(__tsover_mul(Km(__tsover_add(u,31.7),__tsover_add(p,53.3)),.75),.25),.15,.9),_=n.clamp(Km(u,p),0,1);tt.$.densA[a]=o.vec4f(m,_,0,0),tt.$.densB[a]=o.vec4f(m,_,0,0),tt.$.velA[a]=o.vec4f(0,0,0,0),tt.$.velB[a]=o.vec4f(0,0,0,0),tt.$.pressure[a]=0,tt.$.divergence[a]=0}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"jf",[6,[7,"d","f32"],["cx"]]],[13,"iF",[6,[7,"d","f32"],["cy"]]],[13,"sdx",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[7,"p","seed"],"*",[5,"37.31"]]]],"*",[5,"43758.5453"]]]],"*",[5,"97"]]],[13,"sdy",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[7,"p","seed"],"*",[5,"83.17"]]]],"*",[5,"43758.5453"]]]],"*",[5,"97"]]],[13,"nx",[1,[1,[1,"jf","/",[6,[7,"d","f32"],["N"]]],"*",[5,"3"]],"+","sdx"]],[13,"ny",[1,[1,[1,"iF","/",[6,[7,"d","f32"],["N"]]],"*",[5,"3"]],"+","sdy"]],[13,"fogDens",[6,[7,"std","clamp"],[[1,[1,[6,"fbm",[[1,"nx","+",[5,"31.7"]],[1,"ny","+",[5,"53.3"]]]],"*",[5,"0.75"]],"+",[5,"0.25"]],[5,"0.15"],[5,"0.9"]]]],[13,"colorVar",[6,[7,"std","clamp"],[[6,"fbm",["nx","ny"]],[5,"0"],[5,"1"]]]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],["fogDens","colorVar",[5,"0"],[5,"0"]]]],[2,[8,[7,[7,"fluidLayout","$"],"densB"],"idx"],"=",[6,[7,"d","vec4f"],["fogDens","colorVar",[5,"0"],[5,"0"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velB"],"idx"],"=",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[5,"0"]],[2,[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"],"=",[5,"0"]]]],externalNames:["fluidLayout","d","N","std","fbm"]},externals:()=>({fluidLayout:tt,d:o,N:lt,std:n,fbm:Km})})&&e.f)({})).$name("fogInit"),rW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=tt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(lt)),t),i=__tsover_add(o.f32(t),.5),l=__tsover_add(o.f32(s),.5),c=__tsover_mul(__tsover_div(i,o.f32(lt)),nb),d=__tsover_mul(__tsover_div(l,o.f32(lt)),nb),u=r.time,p=tt.$.velA[a],m=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(c,2),__tsover_mul(u,.31))),n.cos(__tsover_add(__tsover_mul(d,1.5),__tsover_mul(u,.23)))),__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(c,.7),__tsover_mul(d,1.3)),__tsover_mul(u,.17))),.4)),r.turbulence),__tsover_mul(lt,.04)),r.dt),_=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(n.cos(__tsover_add(__tsover_mul(c,1.5),__tsover_mul(u,.27))),n.sin(__tsover_add(__tsover_mul(d,2),__tsover_mul(u,.19)))),__tsover_mul(n.cos(__tsover_add(__tsover_add(__tsover_mul(c,1.1),__tsover_mul(d,.9)),__tsover_mul(u,.21))),.4)),r.turbulence),__tsover_mul(lt,.04)),r.dt),v=__tsover_sub(i,r.cursorX),h=__tsover_sub(l,r.cursorY),y=__tsover_add(__tsover_mul(v,v),__tsover_mul(h,h)),x=__tsover_mul(n.exp(__tsover_mul(__tsover_div(y,n.max(r.mouseRadSq,o.f32(1))),-1)),r.mouseActive);tt.$.velA[a]=o.vec4f(__tsover_add(__tsover_add(p.x,m),__tsover_mul(r.cursorVelX,x)),__tsover_add(__tsover_add(p.y,_),__tsover_mul(r.cursorVelY,x)),p.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"jf",[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]]],[13,"iF",[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]]],[13,"x",[1,[1,"jf","/",[6,[7,"d","f32"],["N"]]],"*","TAU"]],[13,"y",[1,[1,"iF","/",[6,[7,"d","f32"],["N"]]],"*","TAU"]],[13,"t",[7,"p","time"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"fx",[1,[1,[1,[1,[1,[6,[7,"std","sin"],[[1,[1,"x","*",[5,"2"]],"+",[1,"t","*",[5,"0.31"]]]]],"*",[6,[7,"std","cos"],[[1,[1,"
244y","*",[5,"1.5"]],"+",[1,"t","*",[5,"0.23"]]]]]],"+",[1,[6,[7,"std","sin"],[[1,[1,[1,"x","*",[5,"0.7"]],"+",[1,"y","*",[5,"1.3"]]],"+",[1,"t","*",[5,"0.17"]]]]],"*",[5,"0.4"]]],"*",[7,"p","turbulence"]],"*",[1,"N","*",[5,"0.04"]]],"*",[7,"p","dt"]]],[13,"fy",[1,[1,[1,[1,[1,[6,[7,"std","cos"],[[1,[1,"x","*",[5,"1.5"]],"+",[1,"t","*",[5,"0.27"]]]]],"*",[6,[7,"std","sin"],[[1,[1,"y","*",[5,"2"]],"+",[1,"t","*",[5,"0.19"]]]]]],"+",[1,[6,[7,"std","cos"],[[1,[1,[1,"x","*",[5,"1.1"]],"+",[1,"y","*",[5,"0.9"]]],"+",[1,"t","*",[5,"0.21"]]]]],"*",[5,"0.4"]]],"*",[7,"p","turbulence"]],"*",[1,"N","*",[5,"0.04"]]],"*",[7,"p","dt"]]],[13,"cdx",[1,"jf","-",[7,"p","cursorX"]]],[13,"cdy",[1,"iF","-",[7,"p","cursorY"]]],[13,"cursorDistSq",[1,[1,"cdx","*","cdx"],"+",[1,"cdy","*","cdy"]]],[13,"cursorInf",[1,[6,[7,"std","exp"],[[1,[1,"cursorDistSq","/",[6,[7,"std","max"],[[7,"p","mouseRadSq"],[6,[7,"d","f32"],[[5,"1"]]]]]],"*",[4,"-",[5,"1"]]]]],"*",[7,"p","mouseActive"]]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[1,[7,"vel","x"],"+","fx"],"+",[1,[7,"p","cursorVelX"],"*","cursorInf"]],[1,[1,[7,"vel","y"],"+","fy"],"+",[1,[7,"p","cursorVelY"],"*","cursorInf"]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","TAU","std"]},externals:()=>({fluidLayout:tt,d:o,N:lt,TAU:nb,std:n})})&&e.f)({})).$name("fogForce"),aW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=o.i32(s),i=o.i32(t),l=tt.$.velA[_o(a,i,0,-1)],c=tt.$.velA[_o(a,i,0,1)],d=tt.$.velA[_o(a,i,-1,0)],u=tt.$.velA[_o(a,i,1,0)],p=__tsover_mul(__tsover_sub(__tsover_sub(c.y,l.y),__tsover_sub(u.x,d.x)),.5),m=tt.$.velA[r];tt.$.velA[r]=o.vec4f(m.x,m.y,p,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"vL",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"vR",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"vU",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"vD",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"curl",[1,[1,[1,[7,"vR","y"],"-",[7,"vL","y"]],"-",[1,[7,"vD","x"],"-",[7,"vU","x"]]],"*",[5,"0.5"]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"vel","x"],[7,"vel","y"],"curl",[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nw"]},externals:()=>({d:o,N:lt,fluidLayout:tt,nw:_o})})&&e.f)({})).$name("fogCurl"),nW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=tt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(lt)),t),i=o.i32(s),l=o.i32(t),c=n.abs(tt.$.velA[_o(i,l,0,-1)].z),d=n.abs(tt.$.velA[_o(i,l,0,1)].z),u=n.abs(tt.$.velA[_o(i,l,-1,0)].z),p=n.abs(tt.$.velA[_o(i,l,1,0)].z),m=tt.$.velA[a].z,_=__tsover_mul(__tsover_sub(d,c),.5),v=__tsover_mul(__tsover_sub(p,u),.5),h=n.max(n.sqrt(__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v))),o.f32(1e-5)),y=tt.$.velA[a];tt.$.velA[a]=o.vec4f(__tsover_add(y.x,__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(v,h),m),r.curlStrength),r.dt)),__tsover_add(y.y,__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(_,h),-1),m),r.curlStrength),r.dt)),y.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"cL",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"z"]]]],[13,"cR",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"0"],[5,"1"]]]],"z"]]]],[13,"cU",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"z"]]]],[13,"cD",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"1"],[5,"0"]]]],"z"]]]],[13,"cc",[7,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"z"]],[13,"gx",[1,[1,"cR","-","cL"],"*",[5,"0.5"]]],[13,"gy",[1,[1,"cD","-","cU"],"*",[5,"0.5"]]],[13,"gl",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx","*","gx"],"+",[1,"gy","*","gy"]]]],[6,[7,"d","f32"],[[5,"0.00001"]]]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"+",[1,[1,[1,[1,"gy","/","gl"],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[1,[7,"vel","y"],"+",[1,[1,[1,[1,[1,"gx","/","gl"],"*",[4,"-",[5,"1"]]],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","nw"]},externals:()=>({fluidLayout:tt,d:o,N:lt,std:n,nw:_o})})&&e.f)({})).$name("fogVorticity"),iW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=o.i32(s),i=o.i32(t),l=tt.$.velA[_o(a,i,0,-1)].x,c=tt.$.velA[_o(a,i,0,1)].x,d=tt.$.velA[_o(a,i,-1,0)].y,u=tt.$.velA[_o(a,i,1,0)].y,p=__tsover_mul(__tsover_add(__tsover_sub(c,l),__tsover_sub(u,d)),.5);tt.$.pressure[r]=__tsover_mul(tt.$.pressure[r],mP),tt.$.divergence[r]=p}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"vL",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"x"]],[13,"vR",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"0"],[5,"1"]]]],"x"]],[13,"vU",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"y"]],[13,"vD",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nw",["ii","ji",[5,"1"],[5,"0"]]]],"y"]],[13,"div",[1,[1,[1,"vR","-","vL"],"+",[1,"vD","-","vU"]],"*",[5,"0.5"]]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"*","PRESSURE_DISSIPATION"]],[2,[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"],"=","div"]]],externalNames:["d","N","fluidLayout","nw","PRESSURE_DISSIPATION"]},externals:()=>({d:o,N:lt,fluidLayout:tt,nw:_o,PRESSURE_DISSIPATION:mP})})&&e.f)({})).$name("fogDivergence"),lW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=o.i32(s),i=o.i32(t),l=tt.$.pressure[_o(a,i,0,-1)],c=tt.$.pressure[_o(a,i,0,1)],d=tt.$.pressure[_o(a,i,-1,0)],u=tt.$.pressure[_o(a,i,1,0)],p=tt.$.divergence[r];tt.$.pressure[r]=__tsover_mul(__tsover_sub(__tsover_add(__tsover_add(__tsover_add(l,c),d),u),p),.25)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"div",[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[1,[1,[1,[1,"pL","+","pR"],"+","pU"],"+","pD"],"-","div"],"*",[5,"0.25"]]]]],externalNames:["d","N","fluidLayout","nw"]},externals:()=>({d:o,N:lt,fluidLayout:tt,nw:_o})})&&e.f)({})).$name("fogJacobi"),cW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=o.i32(s),i=o.i32(t),l=tt.$.pressure[_o(a,i,0,-1)],c=tt.$.pressure[_o(a,i,0,1)],d=tt.$.pressure[_o(a,i,-1,0)],u=tt.$.pressure[_o(a,i,1,0)],p=tt.$.velA[r],m=__tsover_sub(p.x,__tsover_mul(__tsover_sub(c,l),.5)),_=__tsover_sub(p.y,__tsover_mul(__tsover_sub(u,d),.5)),v=o.f32(fP),h=n.max(n.sqrt(__tsover_add(__tsover_mul(m,m),__tsover_mul(_,_))),o.f32(1e-6)),y=__tsover_div(v,n.max(h,v));tt.$.velA[r]=o.vec4f(__tsover_mul(m,y),__tsover_mul(_,y),p.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nw",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"vx",[1,[7,"vel","x"],"-",[1,[1,"pR","-","pL"],"*",[5,"0.5"]]]],[13,"vy",[1,[7,"vel","y"],"-",[1,[1,"pD","-","pU"],"*",[5,"0.5"]]]],[13,"maxVel",[6,[7,"d","f32"],["INTERNAL_MAX_VEL"]]],[13,"vLen",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"vx","*","vx"],"+",[1,"vy","*","vy"]]]],[6,[7,"d","f32"],[[5,"0.000001"]]]]]],[13,"capScale",[1,"maxVel","/",[6,[7,"std","max"],["vLen","maxVel"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,"vx","*","capScale"],[1,"vy","*","capScale"],[7,"vel","z"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nw","INTERNAL_MAX_VEL","std"]},externals:()=>({d:o,N:lt,fluidLayout:tt,nw:_o,INTERNAL_MAX_VEL:fP,std:n})})&&e.f)({})).$name("fogGradSubtract"),dW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=tt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(lt)),t),i=tt.$.velA[a],l=__tsover_mod(__tsover_add(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),o.f32(lt)),o.f32(lt)),c=__tsover_mod(__tsover_add(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),o.f32(lt)),o.f32(lt)),d=n.floor(l),u=n.floor(c),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=__tsover_mod(__tsover_add(_,1),lt),y=__tsover_mod(__tsover_add(v,1),lt),x=tt.$.velA[o.u32(__tsover_add(__tsover_mul(v,lt),_))],g=tt.$.velA[o.u32(__tsover_add(__tsover_mul(v,lt),h))],w=tt.$.velA[o.u32(__tsover_add(__tsover_mul(y,lt),_))],f=tt.$.velA[o.u32(__tsover_add(__tsover_mul(y,lt),h))],A=__tsover_add(1,__tsover_mul(_P,r.dt));tt.$.velB[a]=o.vec4f(__tsover_div(n.mix(n.mix(x.x,g.x,p),n.mix(w.x,f.x,p),m),A),__tsover_div(n.mix(n.mix(x.y,g.y,p),n.mix(w.y,f.y,p),m),A),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[1,[1,[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],"+",[6,[7,"d","f32"],["N"]]],"%",[6,[7,"d","f32"],["N"]]]],[13,"srcY",[1,[1,[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],"+",[6,[7,"d","f32"],["N"]]],"%",[6,[7,"d","f32"],["N"]]]],[13,"x0",[6,[7,"std","floor"],["srcX"]]],[13,"y0",[6,[7,"std","floor"],["srcY"]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"ix1",[1,[1,"ix0","+",[5,"1"]],"%","N"]],[13,"iy1",[1,[1,"iy0","+",[5,"1"]],"%","N"]],[13,"v00",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"v10",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix1"]]]]],[13,"v01",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy1","*","N"],"+","ix0"]]]]],[13,"v11",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy1","*","N"],"+","ix1"]]]]],[13,"decay",[1,[5,"1"],"+",[1,"VELOCITY_DISSIPATION","*",[7,"p","dt"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velB"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","x"],[7,"v10","x"],"sx"]],[6,[7,"std","mix"],[[7,"v01","x"],[7,"v11","x"],"sx"]],"sy"]],"/","decay"],[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","y"],[7,"v10","y"],"sx"]],[6,[7,"std","mix"],[[7,"v01","y"],[7,"v11","y"],"sx"]],"sy"]],"/","decay"],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","VELOCITY_DISSIPATION"]},externals:()=>({fluidLayout:tt,d:o,N:lt,std:n,VELOCITY_DISSIPATION:_P})})&&e.f)({})).$name("fogAdvectVel"),uW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=tt.$.velB[r];tt.$.velA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"v",[8,[7,[7,"fluidLayout","$"],"velB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"v","x"],[7,"v","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:lt,fluidLayout:tt})})&&e.f)({})).$name("fogCopyVel"),pW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=tt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(lt)),t),i=tt.$.velA[a],l=__tsover_mod(__tsover_add(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),o.f32(lt)),o.f32(lt)),c=__tsover_mod(__tsover_add(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),o.f32(lt)),o.f32(lt)),d=n.floor(l),u=n.floor(c),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=__tsover_mod(__tsover_add(_,1),lt),y=__tsover_mod(__tsover_add(v,1),lt),x=tt.$.densA[o.u32(__tsover_add(__tsover_mul(v,lt),_))],g=tt.$.densA[o.u32(__tsover_add(__tsover_mul(v,lt),h))],w=tt.$.densA[o.u32(__tsover_add(__tsover_mul(y,lt),_))],f=tt.$.densA[o.u32(__tsover_add(__tsover_mul(y,lt),h))];tt.$.densB[a]=o.vec4f(n.mix(n.mix(x.x,g.x,p),n.mix(w.x,f.x,p),m),n.mix(n.mix(x.y,g.y,p),n.mix(w.y,f.y,p),m),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[1,[1,[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],"+",[6,[7,"d","f32"],["N"]]],"%",[6,[7,"d","f32"],["N"]]]],[13,"srcY",[1,[1,[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],"+",[6,[7,"d","f32"],["N"]]],"%",[6,[7,"d","f32"],["N"]]]],[13,"x0",[6,[7,"std","floor"],["srcX"]]],[13,"y0",[6,[7,"std","floor"],["srcY"]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"ix1",[1,[1,"ix0","+",[5,"1"]],"%","N"]],[13,"iy1",[1,[1,"iy0","+",[5,"1"]],"%","N"]],[13,"d00",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"d10",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix1"]]]]],[13,"d01",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy1","*","N"],"+","ix0"]]]]],[13,"d11",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy1","*","N"],"+","ix1"]]]]],[2,[8,[7,[7,"fluidLayout","$"],"densB"],"idx"],"=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","x"],[7,"d10","x"],"sx"]],[6,[7,"std","mix"],[[7,"d01","x"],[7,"d11","x"],"sx"]],"sy"]],[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","y"],[7,"d10","y"],"sx"]],[6,[7,"std","mix"],[[7,"d01","y"],[7,"d11","y"],"sx"]],"sy"]],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:tt,d:o,N:lt,std:n})})&&e.f)({})).$name("fogAdvectDens"),mW=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=tt.$.densB[r];tt.$.densA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"fluidLayout","$"],"densB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:lt,fluidLayout:tt})})&&e.f)({})).$name("f
244ogCopyDens"),_W=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=tt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(lt)),t),i=o.f32(t),l=o.f32(s),c=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(r.seed,37.31)),43758.5453)),97),d=__tsover_mul(n.fract(__tsover_mul(n.sin(__tsover_mul(r.seed,83.17)),43758.5453)),97),u=Km(__tsover_add(__tsover_mul(__tsover_div(i,o.f32(lt)),3),c),__tsover_add(__tsover_mul(__tsover_div(l,o.f32(lt)),3),d)),p=__tsover_sub(1,r.blending),m=__tsover_add(1,__tsover_mul(p,5)),_=n.clamp(__tsover_add(__tsover_mul(__tsover_sub(u,.5),m),.5),0,1),v=tt.$.densA[a],h=__tsover_add(1,__tsover_mul(p,2.5)),y=n.min(__tsover_mul(__tsover_mul(r.dt,.5),h),.3);tt.$.densA[a]=o.vec4f(v.x,n.mix(v.y,_,y),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"jf",[6,[7,"d","f32"],["cx"]]],[13,"iF",[6,[7,"d","f32"],["cy"]]],[13,"sdx",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[7,"p","seed"],"*",[5,"37.31"]]]],"*",[5,"43758.5453"]]]],"*",[5,"97"]]],[13,"sdy",[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[7,"p","seed"],"*",[5,"83.17"]]]],"*",[5,"43758.5453"]]]],"*",[5,"97"]]],[13,"nx",[1,[1,[1,"jf","/",[6,[7,"d","f32"],["N"]]],"*",[5,"3"]],"+","sdx"]],[13,"ny",[1,[1,[1,"iF","/",[6,[7,"d","f32"],["N"]]],"*",[5,"3"]],"+","sdy"]],[13,"refRaw",[6,"fbm",["nx","ny"]]],[13,"invBlend",[1,[5,"1"],"-",[7,"p","blending"]]],[13,"contrastBoost",[1,[5,"1"],"+",[1,"invBlend","*",[5,"5"]]]],[13,"refBoosted",[6,[7,"std","clamp"],[[1,[1,[1,"refRaw","-",[5,"0.5"]],"*","contrastBoost"],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"cell",[8,[7,[7,"fluidLayout","$"],"densA"],"idx"]],[13,"rateMult",[1,[5,"1"],"+",[1,"invBlend","*",[5,"2.5"]]]],[13,"blendRate",[6,[7,"std","min"],[[1,[1,[7,"p","dt"],"*",[5,"0.5"]],"*","rateMult"],[5,"0.3"]]]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"cell","x"],[6,[7,"std","mix"],[[7,"cell","y"],"refBoosted","blendRate"]],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","fbm"]},externals:()=>({fluidLayout:tt,d:o,N:lt,std:n,fbm:Km})})&&e.f)({})).$name("fogColorRestore"),hP=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(lt)),t),a=Vv.$.densA[r];n.textureStore(Vv.$.outTex,o.vec2u(t,s),o.vec4f(a.x,a.y,0,0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"outputLayout","$"],"densA"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"outTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]]],externalNames:["d","N","outputLayout","std"]},externals:()=>({d:o,N:lt,outputLayout:Vv,std:n})})&&e.f)({})).$name("fogOutput"),xP={name:"Fog",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Fog that fills the screen and interacts with the mouse",usesPointer:!0,props:{colorA:{default:"#e0e0e0",transform:O,description:"Primary fog color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#888888",transform:O,description:"Secondary fog color \u2014 creates variation across the field",ui:{type:"color",label:"Color B",group:"Colors"}},seed:{default:0,description:"Deterministic starting pattern \u2014 different seeds produce different fog configurations",ui:{type:"range",min:0,max:999,step:1,label:"Seed",group:"Field"}},speed:{default:1,description:"Simulation speed multiplier",ui:{type:"range",min:.1,max:3,step:.1,label:"Speed",group:"Field"}},turbulence:{default:1,description:"Ambient motion strength",ui:{type:"range",min:0,max:3,step:.01,label:"Turbulence",group:"Field"}},detail:{default:15,description:"Fine-scale swirling structure \u2014 higher values produce more intricate wisps and vortices",ui:{type:"range",min:0,max:50,step:1,label:"Detail",group:"Field"}},blending:{default:.3,description:"How much the two colors blend together \u2014 0 behaves like oil & water (colors stay distinct with sharp boundaries), 1 behaves like food coloring (colors fully mix)",ui:{type:"range",min:0,max:1,step:.
24401,label:"Blending",group:"Field"}},mouseInfluence:{default:.1,description:"Strength of cursor influence \u2014 move the cursor to push fog",ui:{type:"range",min:0,max:2,step:.01,label:"Cursor Influence",group:"Interaction"}},mouseRadius:{default:.1,description:"Radius of cursor influence area",ui:{type:"range",min:.02,max:.5,step:.01,label:"Cursor Radius",group:"Interaction"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=Rt(i,o.vec4f,Da),c=Rt(i,o.vec4f,Da),d=Rt(i,o.vec4f,Da),u=Rt(i,o.vec4f,Da),p=Rt(i,o.f32,Da),m=Rt(i,o.f32,Da),_=(globalThis.__TYPEGPU_AUTONAME__??(ae=>ae))(i.createTexture({size:[lt,lt],format:yP}).$usage("storage","sampled"),"outTex");a(()=>_.destroy());let v=r(_),h=(globalThis.__TYPEGPU_AUTONAME__??(ae=>ae))(i.createUniform(gP),"paramsU"),y=[lt,lt],x=i.createBindGroup(tt,{velA:l,velB:c,densA:d,densB:u,pressure:p,divergence:m,params:h.buffer}),g=i.createBindGroup(Vv,{densA:d,outTex:_}),w=ae=>pt(i,(j=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(j.f=((q,te)=>{"use gpu";ae(q,te)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernel",["cx","cy"]]]],externalNames:["kernel"]},externals:()=>({kernel:ae})})&&j.f)({}),{size:y,bindGroup:x}),f=w(oW),A=w(rW),E=w(aW),P=w(nW),C=w(iW),$=w(lW),U=w(cW),k=w(dW),R=w(uW),D=w(pW),M=w(mW),z=w(_W),L=pt(i,(ae=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(ae.f=((j,q)=>{"use gpu";hP(j,q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:hP})})&&ae.f)({}),{size:y,bindGroup:g}),B=(ae,j)=>{ae.push(A,E,P,C);for(let q=0;q<j;q++)ae.push($);ae.push(U,k,R,D,M,z)},N=Date.now(),G=0,I=.5,X=.5,F=-1,Q=!1;return{outputs:{fogTexture:v},getComputeNodes:ae=>{let j=ae,q=Date.now(),te=Math.min(j.deltaTime??(q-N)/1e3,.033);if(N=q,te<.001)return null;let ne=(We,Ve)=>{let Ne=s(We);return typeof Ne=="number"?Ne:Ve},oe=te*ne("speed",1);G+=te;let pe=ne("turbulence",1),_e=ne("detail",15),ge=ne("blending",.3),Me=ne("seed",0),Se=[];if(!Q||Me!==F){Q=!0,F=Me,Se.push(()=>h.write({dt:.1,time:0,seed:Me,turbulence:pe,curlStrength:_e,blending:ge,cursorX:0,cursorY:0,cursorVelX:0,cursorVelY:0,mouseActive:0,mouseRadSq:1})),Se.push(f);let We=Math.random()*60;for(let Ve=0;Ve<sW;Ve++){let Ne=We;We+=.1,Se.push(()=>h.write({dt:.1,time:Ne,seed:Me,turbulence:pe,curlStrength:_e,blending:ge,cursorX:0,cursorY:0,cursorVelX:0,cursorVelY:0,mouseActive:0,mouseRadSq:1})),B(Se,tW)}G=We}let Ae=ne("mouseInfluence",.1),Pe=ne("mouseRadius",.1)*lt,De=j.pointer?.x??I,ke=j.pointer?.y??X,Ge=
244De-I,Oe=ke-X;I=De,X=ke;let qe=Math.sqrt(Ge*Ge+Oe*Oe)>5e-4&&Ae>0;return Se.push(()=>h.write({dt:oe,time:G,seed:Me,turbulence:pe,curlStrength:_e,blending:ge,cursorX:qe?De*lt:0,cursorY:qe?ke*lt:0,cursorVelX:qe?Ge*lt*15*Ae:0,cursorVelY:qe?Oe*lt*15*Ae:0,mouseActive:qe?1:0,mouseRadSq:Pe*Pe})),B(Se,eW),Se.push(L),Se}}},fragment:({ctx:e,computeOutputs:t,propValues:s,uniforms:r})=>{let a=t?.fogTexture;if(!a)return me;let i=a.sample(e.uv,"linearClamp"),l=i.member("x"),c=i.member("y"),d=s.colorSpace??0,u=T(vP.mixColorsVariants[d]??vP.mixColorsLinear,"mixColors",[r.colorA,r.colorB,c]);return de(u.member("rgb"),u.member("a").mul(l))}};var ib=2.39996,fW=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(s.x,s.y),p=__tsover_mul(r,.0174533),m=n.cos(p),_=n.sin(p),v=__tsover_sub(__tsover_mul(t.x,u),__tsover_mul(u,.5)),h=__tsover_sub(t.y,.5),y=__tsover_add(__tsover_mul(v,m),__tsover_mul(h,_)),x=__tsover_add(__tsover_mul(v,-_),__tsover_mul(h,m)),g=o.i32(d),w=o.f32(2),f=o.f32(1),A=o.f32(0),E=o.f32(0);for(let P=0;P<8;P++){let C=o.f32(P),$=n.cos(__tsover_mul(C,ib)),U=n.sin(__tsover_mul(C,ib)),k=o.vec2f(__tsover_add(__tsover_add(__tsover_mul(y,w),__tsover_mul(a,$)),i),__tsover_add(__tsover_add(__tsover_mul(x,w),__tsover_mul(a,U)),__tsover_mul(i,.7))),R=n.select(o.f32(0),o.f32(1),P<g);A=__tsover_add(A,__tsover_mul(__tsover_mul(Vt(k),f),R)),E=__tsover_add(E,__tsover_mul(f,R)),w=__tsover_mul(w,l),f=__tsover_mul(f,c)}return n.clamp(__tsover_add(__tsover_mul(__tsover_div(A,E),.5),.5),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"angle"},{type:"i",name:"animTime"},{type:"i",name:"seed"},{type:"i",name:"detail"},{type:"i",name:"contrast"},{type:"i",name:"octaveCount"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"angleRad",[1,"angle","*",[5,"0.0174533"]]],[13,"cosA",[6,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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"]]],[13,"n",[6,[7,"d","i32"],["octaveCount"]]],[12,"octaveScale",[6,[7,"d","f32"],[[5,"2"]]]],[12,"weight",[6,[7,"d","f32"],[[5,"1"]]]],[12,"accumulated",[6,[7,"d","f32"],[[5,"0"]]]],[12,"totalWeight",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"8"]],[102,"++","i"],[0,[[13,"fi",[6,[7,"d","f32"],["i"]]],[13,"dirX",[6,[7,"std","cos"],[[1,"fi","*","GOLDEN"]]]],[13,"dirY",[6,[7,"std","sin"],[[1,"fi","*","GOLDEN"]]]],[13,"coord",[6,[7,"d","vec2f"],[[1,[1,[1,"ru","*","octaveScale"],"+",[1,"animTime","*","dirX"]],"+","seed"],[1,[1,[1,"rv","*","octaveScale"],"+",[1,"animTime","*","dirY"]],"+",[1,"seed","*",[5,"0.7"]]]]]],[13,"active",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"i","<","n"]]]],[2,"accumulated","=",[1,"accumulated","+",[1,[1,[6,[7,"noise","mxNoiseFloat2"],["coord"]],"*","weight"],"*","active"]]],[2,"totalWeight","=",[1,"totalWeight","+",[1,"weight","*","active"]]],[2,"octaveScale","=",[1,"octaveScale","*","detail"]],[2,"weight","=",[1,"weight","*","contrast"]]]]],[10,[6,[7,"std","clamp"],[[1,[1,[1,"accumulated","/","totalWeight"],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]],externalNames:["std","d","GOLDEN","noise"]},externals:()=>({std:n,d:o,GOLDEN:ib,noise:mt})})&&e.f)({})),bP={name:"FractalNoise",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:O,description:"First color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Second color",ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),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:.
24401,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:Jt,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:Ue,compileTime:!0,description:"Color space for interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Mm(e,T(fW,"fractalNoiseValue",[t,s,e.uniforms.angle,r,e.uniforms.seed,e.uniforms.detail,e.uniforms.contrast,e.uniforms.octaves]))}};var{sdfSpaceUV:vW,offsetUV:wP}=Zs,{createSvgSdfSampler:hW,createAnalyticSdfSampler:yW,driveAnalyticSubProps:gW,ANALYTIC_SDF_EXTRA_FIELDS:xW}=ft,{createVolumetricFieldComputeNode:bW,buildVolumetricFieldSampler:wW,VOLUMETRIC_FIELD_EXTRA_FIELDS:TW,is3dShapeType:SW,isVolumetricShapeType:AW}=ys,lb=.017453292519943295,EW=JSON.stringify({type:"circleSDF",radius:.35});function MW(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var CW=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=c.x,_=c.y,v=c.z,h=c.w,y=d.x,x=d.y,g=d.z,w=d.w,f=u.x,A=u.y,E=u.z,P=u.w,C=p.x,$=p.y,U=p.z,k=p.w,R=n.max(__tsover_mul(_,.5),.001),D=__tsover_div(1,i.y),M=t.x,z=__tsover_div(M,m);if(z>__tsover_mul(D,2))return o.vec4f(0,0,0,0);let L=.01,B=__tsover_div(__tsover_sub(s.x,M),L),N=__tsover_div(__tsover_sub(r.x,M),L),G=n.clamp(__tsover_mul(__tsover_div(__tsover_mul(z,-1),R),32),0,1),I=n.select(__tsover_sub(a.x,.5),t.y,k>.5),X=n.select(__tsover_sub(a.y,.5),t.z,k>.5),F=n.max(o.f32(.3),.01),Q=n.clamp(__tsover_div(__tsover_mul(z,-1),F),0,1),ae=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),L),-4,4),j=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),L),-4,4),q=n.normalize(o.vec3f(ae,j,-1)),te=__tsover_mul(n.sqrt(n.max(__tsover_sub(1,__tsover_mul(Q,Q)),o.f32(0))),1.8),ne=n.normalize(o.vec3f(__tsover_mul(B,te),__tsover_mul(N,te),-1)),oe=n.select(ne,q,k>.5),pe=n.select(o.f32(0),n.clamp(__tsover_add(__tsover_mul(ae,ae),__tsover_mul(j,j)),0,2),k>.5),_e=__tsover_div(1,__tsover_add(1,__tsover_mul(pe,2))),ge=n.clamp(__tsover_mul(__tsover_mul(z,-1),2),0,1.2),Me=__tsover_mul(n.clamp(__tsover_mul(z,-1),0,.5),2),Se=n.select(Me,ge,k>.5),Ae=__tsover_mul(Se,v),Pe=n.clamp(__tsover_mul(Ae,1.2),0,1),De=o.vec3f(1.6,.85,.45).mul(h),ke=o.vec3f(n.exp(__tsover_mul(__tsover_mul(Ae,De.x),-1)),n.exp(__tsover_mul(__tsover_mul(Ae,De.y),-1)),n.exp(__tsover_mul(__tsover_mul(Ae,De.z),-1))),Ge=n.mix(o.vec3f(1,1,1),l,o.vec3f(Pe)).mul(ke),Oe=n.max(__tsover_mul(g,.3),.01),qe=__tsover_sub(1,n.smoothstep(0,Oe,__tsover_mul(z,-1))),We=__tsover_mul(qe,x),Ve=__tsover_mul(w,60),Ne=.004,He=o.f32(0),vt=o.f32(0),_t=o.f32(0);if(We>0){let $s=Vt(o.vec2f(__tsover_mul(I,Ve),__tsover_mul(X,Ve))),Ks=__tsover_div(__tsover_sub(Vt(o.vec2f(__tsover_mul(__tsover_add(I,Ne),Ve),__tsover_mul(X,Ve))),$s),Ne),yo=__tsover_div(__tsover_sub(Vt(o.vec2f(__tsover_mul(I,Ve),__tsover_mul(__tsover_add(X,Ne),Ve))),$s),Ne),Gs=__tsover_mul(__tsover_mul(We,f),_e);He=__tsover_mul(__tsover_mul(Ks,Gs),.03),vt=__tsover_mul(__tsover_mul(yo,Gs),.03);let Js=__tsover_mul(w,40),Ls=Pa(o.vec2f(__tsover_mul(I,Js),__tsover_mul(X,Js)),1);_t=__tsover_mul(n.smoothstep(.25,0,Ls),We)}let Ze=n.normalize(oe.add(o.vec3f(He,vt,0))),it=n.cos(__tsover_mul(C,lb)),Tt=n.sin(__tsover_mul(C,lb)),J=n.normalize(o.vec3f(it,Tt,-.6)),be=n.normalize(J.add(o.vec3f(0,0,-1))),ce=n.dot(Ze,J),xe=n.clamp(n.dot(Ze,be),0,1),ye=__tsover_add(__tsover_mul(ce,.5),.5),Ee=n.pow(ye,o.f32(.7)),Le=n.clamp(__tsover_add(__tsover_mul(n.dot(J,o.vec3f(0,0,1)),.5),.5),0,1),ot=ke.mul(Le).mul(y).mul(__tsover_sub(1,__tsover_mul(Pe,.4))),Ke=Ge.mul(__tsover_add(__tsover_mul(Ee,.6),.5)).add(ot.mul(.5)),rt=o.f32(0);if(We>0){let $s=__tsover_add(__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_mul(I,190),13.7),__tsover_sub(__tsover_mul(X,190),4.3))),.5),.5),Ks=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(U,3),__tsover_mul($s,40))),.5),.5);
vendor: 9,083 bytes, line 244
244rt=__tsover_mul(__tsover_mul(__tsover_mul(n.smoothstep(.72,.96,__tsover_mul($s,Ks)),__tsover_add(__tsover_mul(n.pow(xe,o.f32(6)),.6),.4)),We),A)}let Mt=o.vec3f(.95,.98,1).mul(__tsover_add(__tsover_mul(_t,.4),__tsover_mul(rt,4))),ht=n.clamp(__tsover_mul(Ze.z,-1),0,1),St=__tsover_sub(1,ht),zt=__tsover_mul(n.pow(St,o.f32(3)),P),$t=o.vec3f(.85,.93,1).mul(__tsover_mul(zt,1.5)),Xe=__tsover_mul(__tsover_mul(n.pow(xe,o.f32(16)),.4),E),Qt=o.vec3f(.4,.46,.55).mul($),Xt=Ke.add(Qt).add(o.vec3f(Xe,Xe,Xe)).add($t).add(Mt),Ps=n.smoothstep(0,1,G);return o.vec4f(Xt.x,Xt.y,Xt.z,Ps)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"viewportSize"},{type:"i",name:"iceColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"}],body:[0,[[13,"scale",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"density",[7,"p0","z"]],[13,"absorption",[7,"p0","w"]],[13,"scatter",[7,"p1","x"]],[13,"frostAmount",[7,"p1","y"]],[13,"frostDepth",[7,"p1","z"]],[13,"frostScaleP",[7,"p1","w"]],[13,"frostRoughness",[7,"p2","x"]],[13,"sparkleAmt",[7,"p2","y"]],[13,"gloss",[7,"p2","z"]],[13,"fresnelAmt",[7,"p2","w"]],[13,"lightAngle",[7,"p3","x"]],[13,"ambientAmt",[7,"p3","y"]],[13,"animTime",[7,"p3","z"]],[13,"volumetric",[7,"p3","w"]],[13,"sharp",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scale"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"EPS",[5,"0.01"]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"rb1",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"pdx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"thicknessRange",[6,[7,"std","max"],[[6,[7,"d","f32"],[[5,"0.3"]]],[5,"0.01"]]]],[13,"depthNorm",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","thicknessRange"],[5,"0"],[5,"1"]]]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"4"]],[5,"4"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"4"]],[5,"4"]]]],[13,"nVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"bevelSlope",[1,[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,[5,"1"],"-",[1,"depthNorm","*","depthNorm"]],[6,[7,"d","f32"],[[5,"0"]]]]]]],"*",[5,"1.8"]]],[13,"nFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","bevelSlope"],[1,"gradY","*","bevelSlope"],[4,"-",[5,"1"]]]]]]],[13,"nBase",[6,[7,"std","select"],["nFlat","nVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"steepness",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"std","clamp"],[[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]],[5,"0"],[5,"2"]]],[1,"volumetric",">",[5,"0.5"]]]]],[13,"steepAtten",[1,[5,"1"],"/",[1,[5,"1"],"+",[1,"steepness","*",[5,"2"]]]]],[13,"thickVol",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"*",[5,"2"]],[5,"0"],[5,"1.2"]]]],[13,"thickFlat",[1,[6,[7,"std","clamp"],[[1,"sdf","*",[4,"-",[5,"1"]]],[5,"0"],[5,"0.5"]]],"*",[5,"2"]]],[13,"thicknessRaw",[6,[7,"std","select"],["thickFlat","thickVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"thickness",[1,"thicknessRaw","*","density"]],[13,"depthT",[6,[7,"std","clamp"],[[1,"thickness","*",[5,"1.2"]],[5,"0"],[5,"1"]]]],[13,"absorb",[6,[7,[6,[7,"d","vec3f"],[[5,"1.6"],[5,"0.85"],[5,"0.45"]]],"mul"],["absorption"]]],[13,"transmit",[6,[7,"d","vec3f"],[[6,[7,"std","exp"],[[1,[1,"thickness","*",[7,"absorb","x"]],"*",[4,"-",[5,"1"]]]]],[6,[7,"std","exp"],[[1,[1,"thickness","*",[7,"absorb","y"]],"*",[4,"-",[5,"1"]]]]],[6,[7,"std","exp"],[[1,[1,"thickness","*",[7,"absorb","z"]],"*",[4,"-",[5,"1"]]]]]]]],[13,"scatteredRgb",[6,[7,[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"iceColor",[6,[7,"d","vec3f"],["depthT"]]]],"mul"],["transmit"]]],[13,"frostDepthU",[6,[7,"std","max"],[[1,"frostDepth","*",[5,"0.3"]],[5,"0.01"]]]],[13,"edgeMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"frostDepthU",[1,"sdf","*",[4,"-",[5,"1"]]]]]]],[13,"frostField",[1,"edgeMask","*","frostAmount"]],[13,"frostScale",[1,"frostScaleP","*",[5,"60"]]],[13,"feps",[5,"0.004"]],[12,"frostPerturbX",[6,[7,"d","f32"],[[5,"0"]]]],[12,"frostPerturbY",[6,[7,"d","f32"],[[5,"0"]]]],[12,"crackLines",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"frostField",">",[5,"0"]],[0,[[13,"fn0",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"pdx","*","frostScale"],[1,"pdy","*","frostScale"]]]]]],[13,"fnx",[1,[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"pdx","+","feps"],"*","frostScale"],[1,"pdy","*","frostScale"]]]]],"-","fn0"],"/","feps"]],[13,"fny",[1,[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"pdx","*","frostScale"],[1,[1,"pdy","+","feps"],"*","frostScale"]]]]],"-","fn0"],"/","feps"]],[13,"frostNormalAmp",[1,[1,"frostField","*","frostRoughness"],"*","steepAtten"]],[2,"frostPerturbX","=",[1,[1,"fnx","*","frostNormalAmp"],"*",[5,"0.03"]]],[2,"frostPerturbY","=",[1,[1,"fny","*","frostNormalAmp"],"*",[5,"0.03"]]],[13,"wScale",[1,"frostScaleP","*",[5,"40"]]],[13,"wc",[6,[7,"noise","mxWorleyNoiseFloat2Pub"],[[6,[7,"d","vec2f"],[[1,"pdx","*","wScale"],[1,"pdy","*","wScale"]]],[5,"1"]]]],[2,"crackLines","=",[1,[6,[7,"std","smoothstep"],[[5,"0.25"],[5,"0"],"wc"]],"*","frostField"]]]]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"nBase","add"],[[6,[7,"d","vec3f"],["frostPerturbX","frostPerturbY",[5,"0"]]]]]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.6"]]]]]]],[13,"H",[6,[7,"std","normalize"],[[6,[7,"L","add"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[13,"ndl",[6,[7,"std","dot"],["n","L"]]],[13,"ndh",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","H"]],[5,"0"],[5,"1"]]]],[13,"wrap",[1,[1,"ndl","*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"sssDiffuse",[6,[7,"std","pow"],["wrap",[6,[7,"d","f32"],[[5,"0.7"]]]]]],[13,"backLight",[6,[7,"std","clamp"],[[1,[1,[6,[7,"std","dot"],["L",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"forwardGlow",[6,[7,[6,[7,[6,[7,"transmit","mul"],["backLight"]],"mul"],["scatter"]],"mul"],[[1,[5,"1"],"-",[1,"depthT","*",[5,"0.4"]]]]]],[13,"sssRgb",[6,[7,[6,[7,"scatteredRgb","mul"],[[1,[1,"sssDiffuse","*",[5,"0.6"]],"+",[5,"0.5"]]]],"add"],[[6,[7,"forwardGlow","mul"],[[5,"0.5"]]]]]],[12,"sparkleGlint",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"frostField",">",[5,"0"]],[0,[[13,"glintField",[1,[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"pdx","*",[5,"190"]],"+",[5,"13.7"]],[1,[1,"pdy","*",[5,"190"]],"-",[5,"4.3"]]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"twinkle",[1,[1,[6,[7,"std","sin"],[[1,[1,"animTime","*",[5,"3"]],"+",[1,"glintField","*",[5,"40"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[2,"sparkleGlint","=",[1,[1,[1,[6,[7,"std","smoothstep"],[[5,"0.72"],[5,"0.96"],[1,"glintField","*","twinkle"]]],"*",[1,[1,[6,[7,"std","pow"],["ndh",[6,[7,"d","f32"],[[5,"6"]]]]],"*",[5,"0.6"]],"+",[5,"0.4"]]],"*","frostField"],"*","sparkleAmt"]]]]],[13,"frostRgb",[6,[7,[6,[7,"d","vec3f"],[[5,"0.95"],[5,"0.98"],[5,"1"]]],"mul"],[[1,[1,"crackLines","*",[5,"0.4"]],"+",[1,"sparkleGlint","*",[5,"4"]]]]]],[13,"cosView",[6,[7,"std","clamp"],[[1,[7,"n","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"grazing",[1,[5,"1"],"-","cosView"]],[13,"fres",[1,[6,[7,"std","pow"],["grazing",[6,[7,"d","f32"],[[5,"3"]]]]],"*","fresnelAmt"]],[13,"fresnelRgb",[6,[7,[6,[7,"d","vec3f"],[[5,"0.85"],[5,"0.93"],[5,"1"]]],"mul"],[[1,"fres","*",[5,"1.5"]]]]],[13,"broadSpec",[1,[1,[6,[7,"std","pow"],["ndh",[6,[7,"d","f32"],[[5,"16"]]]]],"*",[5,"0.4"]],"*","gloss"]],[13,"ambient",[6,[7,[6,[7,"d","vec3f"],[[5,"0.4"],[5,"0.46"],[5,"0.55"]]],"mul"],["ambientAmt"]]],[13,"iceRgb",[6,[7,[6,[7,[6,[7,[6,[7,"sssRgb","add"],["ambient"]],"add"],[[6,[7,"d","vec3f"],["broadSpec","broadSpec","broadSpec"]]]],"add"],["fresnelRgb"]],"add"],["frostRgb"]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"rb1"]]],[10,[6,[7,"d","vec4f"],[[7,"iceRgb","x"],[7,"iceRgb","y"],[7,"iceRgb","z"],"transition"]]]]],externalNames:["std","d","noise","DEG_TO_RAD"]},externals:()=>({std:n,d:o,noise:mt,DEG_TO_RAD:lb})})&&e.f)({})),TP={name:"Frost",boundingBoxDeclaration:gs,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"},extraFields:{...TW,...xW},props:{origin:{default:"center",description:"Reference edge the center position is measured from (ce
244nter 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:we,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:O,description:"Ice tint \u2014 the colour 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:EW,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"}},compute:e=>{let t=bW(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let A=wW(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=A.volumetricFieldSampler,c=A.volumetricFieldSamplerFast,d=!0}else{let A=r.shapeSdfUrl||"",E=r.shapeType||"";if(A)l=hW(e,A),c=l,d=AW(E);else{let P=MW(E,i("shape"));l=yW(P,gW(e,()=>i("shape")),"raw"),c=l,d=SW(P)}}let p=T(vW,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),m=l(p),_=c(T(wP,"offsetUV",[p,le(.01),le(0)])),v=c(T(wP,"offsetUV",[p,le(0),le(.01)])),h=Fe(e),y=le(d?1:0),x=de(s.scale,s.edgeSoftness,s.density,s.absorption),g=de(s.scatter,s.frostAmount,s.frostDepth,s.frostScale),w=de(s.frostRoughness,s.sparkle,s.gloss,s.fresnel),f=de(s.lightAngle,s.ambient,h,y);return T(CW,"frostComposite",[m,_,v,p,a.viewportSize,s.iceColor.member("rgb"),x,g,w,f])}};var PW=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_div(s.x,s.y),d=o.vec2f(__tsover_mul(t.x,c),t.y).mul(n.exp(r)).add(a);return __tsover_add(__tsover_mul(Px(d,i,l),.5),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"frequency"},{type:"i",name:"animTime"}
244],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[1,[1,[6,[7,"noise","gabor12"],["pos","frequency","animTime"]],"*",[5,"0.5"]],"+",[5,"0.5"]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),SP={name:"GaborNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Oriented sine-grain noise with a fingerprint-like flow",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{..._a(),scale:{default:1.5,description:"Pattern scale (higher = larger patterns)",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"}},...fa(),...sn()},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Ir(e,T(PW,"gaborNoiseField",[t,s,e.uniforms.scale,e.uniforms.seed,e.uniforms.frequency,r]))}};var{applyGlassEffect:cb}=Zs,{createSvgSdfSamplerWithGradients:kW,createAnalyticSdfSampler:RW,driveAnalyticSubProps:$W,ANALYTIC_SDF_EXTRA_FIELDS:UW}=ft,{createVolumetricFieldComputeNode:DW,buildVolumetricFieldSampler:zW,VOLUMETRIC_FIELD_EXTRA_FIELDS:IW,is3dShapeType:LW,isVolumetricShapeType:FW}=ys,BW=JSON.stringify({type:"circleSDF",radius:.35});function VW(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var AP={name:"Glass",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Optically realistic glass lens driven in a custom shape",requiresRTT:!0,requiresChild:!0,extraFields:{...IW,...UW},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:we,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","map"],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"}},cutout:{default:!1,description:"Cut out the alpha outside the glass shape",transform:Wo,compileTime:!0,ui:{type:"checkbox",label:"Cutout",group:"Glass"}},refraction:{default:1,description:"Lens refraction \u2014 how aggressively the edges warp content beneath (0 = none, 1 = max)",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Refraction",group:"Glass"}},edgeSoftness:{default:.1,description:"Edge softness \u2014 higher values give a wider, softer fade at the glass boundary",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Edge Softness",group:"Glass"}},blur:{default:0,compileTimeWhen:(e,t)=>e>0!=t>0,description:"Frosted blur amount \u2014 0 = clear glass, higher = frosted/diffuse",ui:{type:"range",min:0,max:20,step:.1,label:"Blur",group:"Glass"}},thickness:{default:.2,transform:e=>e*.5,description:"Glass depth \u2014 how far inward from the edge the refraction extends",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Thickness",group:"Glass"}},aberration:{default:.5,compileTimeWhen:(e,t)=>e>0!=t>0,description:"Chromatic aberration \u2014 splits RGB channels along the refraction vector",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Aberration",group:"Glass"}},innerZoom:{default:1,description:"Inner zoom level \u2014 magnifies content seen through the glass",ui:{type:["range","map"],min:.5,max:3,step:.01,label:"Inner Zoom",group:"Glass"}},lightAngle:{default:300,description:"Light angle in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",group:"Highlight"}},highlight:{default:.05,description:"Directional edge highlight \u2014 bright rim on the light-facing boundary",ui:{type:["range","map"],min:0,max:2,step:.01,label:"Highlight",group:"Highlight"}},highlightColor:{default:"#ffffff",transform:O,description:"Color of the directional edge highlight and specular glint",ui:{type:"color",label:"Highlight Color",group:"Highlight"}},highlightSoftness:{default:.5,description:"Specular highlight softness",ui:{type:["range","map"],min:0,max:1,step:.
24401,label:"Highlight Softness",group:"Highlight"}},fresnel:{default:.1,description:"Fresnel rim glow \u2014 a soft luminous halo around the glass boundary",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:O,description:"Color of the fresnel rim glow",ui:{type:"color",label:"Fresnel Color",group:"Fresnel"}},tintColor:{default:"#ffffff",transform:O,description:"Color tint applied to the internal directional gradient",ui:{type:"color",label:"Tint Color",group:"Tint"}},tintIntensity:{default:0,description:"Intensity of the color tint applied to the glass interior",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Tint Intensity",group:"Tint"}},tintPreserveLuminosity:{default:!0,transform:Wo,description:"Preserve original brightness when tinting",ui:{type:"checkbox",label:"Preserve Luminosity",group:"Tint"}},shape:{default:BW,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."}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,onCleanup:l,onResize:c,dimensions:d}=e,u=s?.root,p=DW(e,()=>i("shape"),"none"),m=null,_=i("blur");if(t&&u&&!(typeof _=="number"&&_<=0)){let v=r(t),h=Math.max(1,Math.round(d.width)),y=Math.max(1,Math.round(d.height)),x=su(u,null,h,y,l),g=a(x.outputTexture);c(({width:w,height:f})=>{h=Math.max(1,Math.round(w)),y=Math.max(1,Math.round(f)),x.setInputDimensions(h,y)}),m={outputs:{childTexture:v,blurredTexture:g},bindInputs:w=>{let f=w(v.key);f&&x.setInputTexture(f.texture)},getComputeNodes:()=>{let w=i("blur");return typeof w=="number"&&x.updateRadius(w*2),x.computeSteps}}}return!p&&!m?null:{outputs:{...m?.outputs,...p?.outputs},bindInputs:m?.bindInputs,getComputeNodes:v=>{let h=[...m?.getComputeNodes()??[],...p?.getComputeNodes(v)??[]];return h.length?h:null}}},fragment:e=>{let{childNode:t,computeOutputs:s,convertToTexture:r,uniforms:a,propValues:i,getCpuValue:l}=e;if(!t)return me;let c=s?.childTexture??r(t),d=s?.blurredTexture,u=s?.volumetricFieldTexture;if(u)return cb(e,zW(u,{originX:a._vfOriginX,originY:a._vfOriginY,spanX:a._vfSpanX,spanY:a._vfSpanY,activeResF:a._vfActiveRes,rBound:a._vfRBound}).volumetricFieldSampler,c,d,{volumetric:!0});let p=i.shapeSdfUrl||"",m=i.shapeType||"";if(p)return cb(e,kW(e,p),c,d,{volumetric:FW(m),bakedGradients:!0});let _=VW(m,l("shape"));return cb(e,RW(_,$W(e,()=>l("shape"))),c,d,{volumetric:LW(_)})}};var EP=Math.PI/180,MP=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=s>1,d=o.vec2f(n.select(__tsover_mul(a,s),a,c),n.select(a,__tsover_div(a,s),c)),u=o.vec2f(__tsover_mul(t.x,s),t.y),p=__tsover_mul(i,EP),m=n.cos(p),_=n.sin(p),v=u.sub(o.vec2f(__tsover_mul(.5,s),.5)),h=__tsover_sub(__tsover_mul(v.x,m),__tsover_mul(v.y,_)),y=__tsover_add(__tsover_mul(v.x,_),__tsover_mul(v.y,m)),x=o.vec2f(h,y).add(o.vec2f(__tsover_mul(.5,s),.5)),g=o.vec2f(__tsover_div(x.x,s),x.y),w=n.floor(g.mul(d)).div(d),f=g.sub(w),A=o.vec2f(1,1).div(d),E=f.div(A).sub(o.vec2f(.5,.5)),P=__tsover_add(__tsover_mul(E.x,E.x),__tsover_mul(E.y,E.y)),C=__tsover_sub(1,__tsover_mul(P,__tsover_mul(l,4))),$=n.max(C,0),U=__tsover_mul(r,.025),k=__tsover_mul(U,$),R=o.vec2f(__tsover_div(__tsover_mul(E.x,k),s),__tsover_mul(E.y,k));return t.add(R)}),{v:1,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,[7,"d","vec2f"],[[6,[7,"std","select"],[[1,"baseTileCount","*","aspect"],"baseTileCount","isWide"]],[6,[7,"std","select"],["baseTileCount",[1,"baseTileCount","/","aspect"],"isWide"]]]]],[13,"aspectCorrectedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"rotationRadians",[1,"rotationDegrees","*","DEG_TO_RAD"]],[13,"cosA",[6,[7,"std","cos"],["rotationRadians"]]],[13,"sinA",[6,[7,"std","sin"],["rotationRadians"]]],[13,"centered",[6,[7,"aspectCorrectedUV","sub"],[[6,[7,"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,[7,"d","vec2f"],["rotatedX","rotatedY"]],"add"],[[6,[7,"d","vec2f"],[[1,[5,"0.5"],"*","aspect"],[5,"0.5"]]]]]],[13,"gridUV",[6,[7,"d","vec2f"],[[1,[7,"rotatedUV","x"],"/","aspect"],[7,"rotatedUV","y"]]]],[13,"cellCoord",[6,[7,[6,[7,"std","floor"],[[6,[7,"gridUV","mul"],["tileCount"]]]],"div"],["t
244ileCount"]]],[13,"localUV",[6,[7,"gridUV","sub"],["cellCoord"]]],[13,"oneOverTile",[6,[7,[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]],"div"],["tileCount"]]],[13,"normalizedLocalUV",[6,[7,"localUV","div"],["oneOverTile"]]],[13,"fromCenter",[6,[7,"normalizedLocalUV","sub"],[[6,[7,"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,[7,"std","max"],["roundnessFactor",[5,"0"]]]],[13,"distortionFactor",[1,"intensity","*",[5,"0.025"]]],[13,"scaleFactor",[1,"distortionFactor","*","clampedRoundness"]],[13,"distortion",[6,[7,"d","vec2f"],[[1,[1,[7,"fromCenter","x"],"*","scaleFactor"],"/","aspect"],[1,[7,"fromCenter","y"],"*","scaleFactor"]]]],[10,[6,[7,"uv","add"],["distortion"]]]]],externalNames:["d","std","DEG_TO_RAD"]},externals:()=>({d:o,std:n,DEG_TO_RAD:EP})})&&e.f)({})),CP={name:"GlassTiles",boundingBoxDeclaration:{aspectRatio:null},category:"Distortions",description:"Refraction-like distortion in a tile grid pattern",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:2,description:"The intensity of the glass tiles effect",ui:{type:["range","map"],min:0,max:10,step:.1,label:"Intensity",group:"Effect"}},tileCount:{default:20,description:"Number of tiles across the longest dimension",ui:{type:["range","map"],min:5,max:50,step:1,label:"Tile Count",group:"Effect"}},rotation:{default:0,description:"Rotation angle of the tile grid in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},roundness:{default:0,description:"Makes tiles more circular instead of square",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Roundness",group:"Effect"}}},fragment:({childNode:e,ctx:t,uniforms:s,convertToTexture:r})=>{if(!e)return console.error("You must pass a child component into the Glass Tiles shader."),me;let a=r(e),i=T(MP,"glassTilesUV",[t.uv,t.aspect,s.intensity,s.tileCount,s.rotation,s.roundness]);return T(Re,"unpremultiplyAlpha",[a.sample(i)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r})=>({uv:T(Fc,"edgeClampUV",[T(MP,"glassTilesUV",[e,r,s.intensity,s.tileCount,s.rotation,s.roundness])]),mask:t})};var Ar=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(__tsover_mul(t,78.233)),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"p","*",[5,"78.233"]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Ov=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({redUV:o.vec2f,mirroredUV:o.vec2f,blueUV:o.vec2f,fillColor:o.vec3f,colorBarStrength:o.f32,scanlineEffect:o.f32}),"GlitchGeom"),OW=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],Ov)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_mul(r,i),_=n.floor(__tsover_mul(m,2.5)),v=Ar(_),h=__tsover_mul(__tsover_mul(v,v),v),y=n.floor(__tsover_mul(m,10)),x=Ar(__tsover_add(y,73)),g=__tsover_mul(x,x),w=__tsover_sub(1,a),f=n.step(w,h),A=n.step(__tsover_add(w,.15),g),E=__tsover_mul(n.clamp(__tsover_add(__tsover_mul(f,.8),__tsover_mul(A,.4)),0,1),a),P=n.floor(__tsover_mul(t.y,c)),C=__tsover_add(__tsover_mul(P,.37),__tsover_mul(_,7.13)),$=Ar(C),U=n.step(__tsover_sub(1,__tsover_mul(E,.5)),$),k=__tsover_mul(__tsover_mul(__tsover_sub(Ar(__tsover_add(C,42)),.5),.25),U),R=n.floor(__tsover_mul(t.y,__tsover_mul(c,2))),D=__tsover_add(__tsover_mul(R,.53),__tsover_mul(y,3.37)),M=Ar(D),z=n.step(__tsover_sub(1,__tsover_mul(E,.7)),M),L=__tsover_mul(__tsover_mul(__tsover_sub(Ar(__tsover_add(D,99)),.5),.12),z),B=n.floor(__tsover_mul(t.y,__tsover_mul(c,4))),N=__tsover_add(__tsover_mul(B,.71),__tsover_mul(y,11.71)),G=Ar(N),I=n.step(__tsover_sub(1,__tsover_mul(E,.9)),G),X=__tsover_mul(__tsover_mul(__tsover_sub(Ar(__tsover_add(N,173)),.5),.05),I),F=n.floor(__tsover_mul(t.x,4)),Q=__tsover_add(__tsover_add(__tsover_mul(F,.41),__tsover_mul(P,.67)),__tsover_mul(_,2.31)),ae=Ar(Q),j=n.step(__tsover_sub(1,__tsover_mul(E,.35)),ae),q=__tsover_mul(__tsover_mul(__tsover_sub(Ar(__tsover_add(Q,77)),.5),.18),j),te=__tsover_add(__tsover_add(__tsover_add(k,L),X),q),ne=__tsover_mul(__tsover_mul(U,__tsover_sub(Ar(__tsover_add(C,200)),.5)),.012),oe=o.vec2f(n.clamp(__tsover_add(t.x,__tsover_mul(te,E)),0,1),n.clamp(__tsover_add(t.y,__tsover_mul(ne,E)),0,1)),pe=__ts
244over_add(__tsover_add(__tsover_mul(F,.83),__tsover_mul(P,1.17)),__tsover_mul(_,4.57)),_e=Ar(pe),ge=Ar(__tsover_add(pe,500)),Me=__tsover_mul(n.step(__tsover_sub(1,__tsover_mul(u,E)),_e),U),Se=__tsover_mul(n.step(__tsover_sub(1,__tsover_mul(__tsover_mul(u,E),.4)),ge),U),Ae=o.vec2f(n.mix(oe.x,__tsover_sub(1,oe.x),Me),n.mix(oe.y,__tsover_sub(1,oe.y),Se)),Pe=__tsover_mul(__tsover_mul(l,.003),__tsover_add(E,__tsover_mul(n.abs(te),2))),De=o.vec2f(n.clamp(__tsover_add(Ae.x,Pe),0,1),Ae.y),ke=o.vec2f(n.clamp(__tsover_sub(Ae.x,Pe),0,1),Ae.y),Ge=Ar(__tsover_add(Q,555)),Oe=Ar(__tsover_add(__tsover_add(P,__tsover_mul(_,3.33)),333)),qe=n.fract(__tsover_add(__tsover_mul(t.x,3),__tsover_mul(Oe,7))),We=n.floor(__tsover_mul(qe,7)),Ve=__tsover_add(__tsover_sub(1,n.step(2,We)),__tsover_mul(n.step(4,We),__tsover_sub(1,n.step(6,We)))),Ne=__tsover_sub(1,n.step(4,We)),He=__tsover_sub(1,n.step(.5,n.fract(__tsover_mul(We,.5)))),vt=o.vec3f(Ve,Ne,He),_t=n.fract(__tsover_add(__tsover_mul(Ar(__tsover_add(P,13)),.8),__tsover_mul(_,.07))),Ze=__tsover_mul(_t,6),it=o.vec3f(n.clamp(__tsover_sub(n.abs(__tsover_sub(Ze,3)),1),0,1),n.clamp(__tsover_sub(2,n.abs(__tsover_sub(Ze,2))),0,1),n.clamp(__tsover_sub(2,n.abs(__tsover_sub(Ze,4))),0,1)).mul(1.3),Tt=n.mix(it,vt,o.vec3f(n.step(.5,Ge))),J=__tsover_mul(__tsover_mul(__tsover_mul(U,j),d),E),be=n.clamp(__tsover_add(__tsover_add(U,z),I),0,1),ce=__tsover_mul(t.y,s.y),xe=__tsover_add(__tsover_mul(n.sin(__tsover_mul(ce,3.14159265)),.5),.5);return Ov({redUV:De,mirroredUV:Ae,blueUV:ke,fillColor:Tt,colorBarStrength:J,scanlineEffect:__tsover_sub(1,__tsover_mul(__tsover_mul(__tsover_mul(p,xe),.3),be))})}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"time"},{type:"i",name:"intensity"},{type:"i",name:"speed"},{type:"i",name:"rgbShift"},{type:"i",name:"blockDensity"},{type:"i",name:"colorBarMix"},{type:"i",name:"mirrorChance"},{type:"i",name:"scanlines"}],body:[0,[[13,"t",[1,"time","*","speed"]],[13,"slowFrame",[6,[7,"std","floor"],[[1,"t","*",[5,"2.5"]]]]],[13,"slowHash",[6,"hash11",["slowFrame"]]],[13,"slowPulse",[1,[1,"slowHash","*","slowHash"],"*","slowHash"]],[13,"fastFrame",[6,[7,"std","floor"],[[1,"t","*",[5,"10"]]]]],[13,"fastHash",[6,"hash11",[[1,"fastFrame","+",[5,"73"]]]]],[13,"fastPulse",[1,"fastHash","*","fastHash"]],[13,"threshold",[1,[5,"1"],"-","intensity"]],[13,"majorBurst",[6,[7,"std","step"],["threshold","slowPulse"]]],[13,"minorFlicker",[6,[7,"std","step"],[[1,"threshold","+",[5,"0.15"]],"fastPulse"]]],[13,"glitchStrength",[1,[6,[7,"std","clamp"],[[1,[1,"majorBurst","*",[5,"0.8"]],"+",[1,"minorFlicker","*",[5,"0.4"]]],[5,"0"],[5,"1"]]],"*","intensity"]],[13,"bandY1",[6,[7,"std","floor"],[[1,[7,"uv","y"],"*","blockDensity"]]]],[13,"bandSeed1",[1,[1,"bandY1","*",[5,"0.37"]],"+",[1,"slowFrame","*",[5,"7.13"]]]],[13,"bandHash1",[6,"hash11",["bandSeed1"]]],[13,"bandActive1",[6,[7,"std","step"],[[1,[5,"1"],"-",[1,"glitchStrength","*",[5,"0.5"]]],"bandHash1"]]],[13,"displace1",[1,[1,[1,[6,"hash11",[[1,"bandSeed1","+",[5,"42"]]]],"-",[5,"0.5"]],"*",[5,"0.25"]],"*","bandActive1"]],[13,"bandY2",[6,[7,"std","floor"],[[1,[7,"uv","y"],"*",[1,"blockDensity","*",[5,"2"]]]]]],[13,"bandSeed2",[1,[1,"bandY2","*",[5,"0.53"]],"+",[1,"fastFrame","*",[5,"3.37"]]]],[13,"bandHash2",[6,"hash11",["bandSeed2"]]],[13,"bandActive2",[6,[7,"std","step"],[[1,[5,"1"],"-",[1,"glitchStrength","*",[5,"0.7"]]],"bandHash2"]]],[13,"displace2",[1,[1,[1,[6,"hash11",[[1,"bandSeed2","+",[5,"99"]]]],"-",[5,"0.5"]],"*",[5,"0.12"]],"*","bandActive2"]],[13,"bandY3",[6,[7,"std","floor"],[[1,[7,"uv","y"],"*",[1,"blockDensity","*",[5,"4"]]]]]],[13,"bandSeed3",[1,[1,"bandY3","*",[5,"0.71"]],"+",[1,"fastFrame","*",[5,"11.71"]]]],[13,"bandHash3",[6,"hash11",["bandSeed3"]]],[13,"bandActive3",[6,[7,"std","step"],[[1,[5,"1"],"-",[1,"glitchStrength","*",[5,"0.9"]]],"bandHash3"]]],[13,"displace3",[1,[1,[1,[6,"hash11",[[1,"bandSeed3","+",[5,"173"]]]],"-",[5,"0.5"]],"*",[5,"0.05"]],"*","bandActive3"]],[13,"colX",[6,[7,"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,"blockHash",[6,"hash11",["blockSeed"]]],[13,"blockActive",[6,[7,"std","step"],[[1,[5,"1"],"-",[1,"glitchStrength","*",[5,"0.35"]]],"blockHash"]
vendor: 4,785 bytes, line 244
244]],[13,"blockDisplace",[1,[1,[1,[6,"hash11",[[1,"blockSeed","+",[5,"77"]]]],"-",[5,"0.5"]],"*",[5,"0.18"]],"*","blockActive"]],[13,"totalDisplaceX",[1,[1,[1,"displace1","+","displace2"],"+","displace3"],"+","blockDisplace"]],[13,"vertJitter",[1,[1,"bandActive1","*",[1,[6,"hash11",[[1,"bandSeed1","+",[5,"200"]]]],"-",[5,"0.5"]]],"*",[5,"0.012"]]],[13,"displacedUV",[6,[7,"d","vec2f"],[[6,[7,"std","clamp"],[[1,[7,"uv","x"],"+",[1,"totalDisplaceX","*","glitchStrength"]],[5,"0"],[5,"1"]]],[6,[7,"std","clamp"],[[1,[7,"uv","y"],"+",[1,"vertJitter","*","glitchStrength"]],[5,"0"],[5,"1"]]]]]],[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,[7,"std","step"],[[1,[5,"1"],"-",[1,"mirrorChance","*","glitchStrength"]],"hMirrorHash"]],"*","bandActive1"]],[13,"vMirrorActive",[1,[6,[7,"std","step"],[[1,[5,"1"],"-",[1,[1,"mirrorChance","*","glitchStrength"],"*",[5,"0.4"]]],"vMirrorHash"]],"*","bandActive1"]],[13,"mirroredUV",[6,[7,"d","vec2f"],[[6,[7,"std","mix"],[[7,"displacedUV","x"],[1,[5,"1"],"-",[7,"displacedUV","x"]],"hMirrorActive"]],[6,[7,"std","mix"],[[7,"displacedUV","y"],[1,[5,"1"],"-",[7,"displacedUV","y"]],"vMirrorActive"]]]]],[13,"rgbOffset",[1,[1,"rgbShift","*",[5,"0.003"]],"*",[1,"glitchStrength","+",[1,[6,[7,"std","abs"],["totalDisplaceX"]],"*",[5,"2"]]]]],[13,"redUV",[6,[7,"d","vec2f"],[[6,[7,"std","clamp"],[[1,[7,"mirroredUV","x"],"+","rgbOffset"],[5,"0"],[5,"1"]]],[7,"mirroredUV","y"]]]],[13,"blueUV",[6,[7,"d","vec2f"],[[6,[7,"std","clamp"],[[1,[7,"mirroredUV","x"],"-","rgbOffset"],[5,"0"],[5,"1"]]],[7,"mirroredUV","y"]]]],[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,[7,"std","fract"],[[1,[1,[7,"uv","x"],"*",[5,"3"]],"+",[1,"barOffset","*",[5,"7"]]]]]],[13,"barIndex",[6,[7,"std","floor"],[[1,"barX","*",[5,"7"]]]]],[13,"barR",[1,[1,[5,"1"],"-",[6,[7,"std","step"],[[5,"2"],"barIndex"]]],"+",[1,[6,[7,"std","step"],[[5,"4"],"barIndex"]],"*",[1,[5,"1"],"-",[6,[7,"std","step"],[[5,"6"],"barIndex"]]]]]],[13,"barG",[1,[5,"1"],"-",[6,[7,"std","step"],[[5,"4"],"barIndex"]]]],[13,"barB",[1,[5,"1"],"-",[6,[7,"std","step"],[[5,"0.5"],[6,[7,"std","fract"],[[1,"barIndex","*",[5,"0.5"]]]]]]]],[13,"smpteColor",[6,[7,"d","vec3f"],["barR","barG","barB"]]],[13,"solidHue",[6,[7,"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,[7,"d","vec3f"],[[6,[7,"std","clamp"],[[1,[6,[7,"std","abs"],[[1,"sh6","-",[5,"3"]]]],"-",[5,"1"]],[5,"0"],[5,"1"]]],[6,[7,"std","clamp"],[[1,[5,"2"],"-",[6,[7,"std","abs"],[[1,"sh6","-",[5,"2"]]]]],[5,"0"],[5,"1"]]],[6,[7,"std","clamp"],[[1,[5,"2"],"-",[6,[7,"std","abs"],[[1,"sh6","-",[5,"4"]]]]],[5,"0"],[5,"1"]]]]],"mul"],[[5,"1.3"]]]],[13,"fillColor",[6,[7,"std","mix"],["solidColor","smpteColor",[6,[7,"d","vec3f"],[[6,[7,"std","step"],[[5,"0.5"],"fillStyleHash"]]]]]]],[13,"colorBarStrength",[1,[1,[1,"bandActive1","*","blockActive"],"*","colorBarMix"],"*","glitchStrength"]],[13,"anyDistortion",[6,[7,"std","clamp"],[[1,[1,"bandActive1","+","bandActive2"],"+","bandActive3"],[5,"0"],[5,"1"]]]],[13,"pixelY",[1,[7,"uv","y"],"*",[7,"viewport","y"]]],[13,"scanlineWave",[1,[1,[6,[7,"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"]],"*","anyDistortion"]]],[10,[6,"GlitchGeom",[[104,{redUV:"redUV",mirroredUV:"mirroredUV",blueUV:"blueUV",fillColor:"fillColor",colorBarStrength:"colorBarStrength",scanlineEffect:"scanlineEffect"}]]]]]],externalNames:["std","hash11","d","GlitchGeom"]},externals:()=>({std:n,hash11:Ar,d:o,GlitchGeom:Ov})})&&e.f)({})),NW=b.fn([o.f32,o.f32,o.f32,Ov],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec3f(t,s,r),l=n.mix(i,a.fillColor,o.vec3f(a.colorBarStrength)).mul(a.scanlineEffect);return o.vec4f(l.x,l.y,l.z,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"r"},{type:"i",name:"g"},{type:"i",name:"b"},{type:"i",name:"geom"}],body:[0,[[13,"glitchedColor",[6,[7,"d","vec3f"],["r","g","b"]]],[13,"withBars",[6,[7,"std","mix"],["glitchedColor",[7,"geom","fillColor"],[6,[7,"d","vec3f"],[[7,"geom","colorBarStrength"]]]]]],[13,"finalColor",[6,[7,"withBars","mul"],[[7,"geom","scanlineEffect"]]]],[10,[6,[7,"d","vec4f"],[[7,"finalColor","x"],[7,"finalColor","y"],[7,"finalColor","z"],[5,"1"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({}
244)),PP={name:"Glitch",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Digital glitch that melts pixels and distorts colors",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:.5,description:"Overall glitch strength and frequency of glitch bursts",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Effect"}},speed:{default:1,description:"How fast the glitch pattern evolves",ui:{type:"range",min:.1,max:5,step:.1,label:"Speed",group:"Effect"}},rgbShift:{default:5,description:"Amount of chromatic aberration (RGB channel splitting)",ui:{type:["range","map"],min:0,max:20,step:.5,label:"RGB Shift",group:"Effect"}},blockDensity:{default:10,description:"Base number of horizontal glitch bands",ui:{type:["range","map"],min:2,max:50,step:1,label:"Block Density",group:"Effect"}},colorBarIntensity:{default:.2,description:"Intensity of vivid neon color bar overlay in glitch regions",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Color Bars",group:"Effect"}},mirrorAmount:{default:.3,description:"Chance of glitch blocks showing mirrored/flipped content",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Mirror",group:"Effect"}},scanlineIntensity:{default:.2,description:"Visibility of CRT-style horizontal scanlines in distorted areas",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Scanlines",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i=T(OW,"glitchGeom",[s.uv,s.viewportSize,s.time,e.intensity,e.speed,e.rgbShift,e.blockDensity,e.colorBarIntensity,e.mirrorAmount,e.scanlineIntensity]);return T(Re,"unpremultiplyAlpha",[T(NW,"glitchCombine",[a.sample(i.member("redUV")).member("r"),a.sample(i.member("mirroredUV")).member("g"),a.sample(i.member("blueUV")).member("b"),i])])}};var db="rgba16float",YW=b.fn([o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=t.xyz.add(s.xyz.mul(r)),i=n.clamp(__tsover_mul(s.w,r),0,1),l=__tsover_add(t.w,__tsover_mul(i,__tsover_sub(1,t.w)));return o.vec4f(a,l)}),{v:1,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,[7,"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,[7,"d","vec4f"],["finalColor","finalAlpha"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})).$name("glowCompose");function GW(){return o.struct({threshold:o.f32,size:o.f32,inputWidth:o.f32,inputHeight:o.f32})}function WW(){return o.struct({threshold:o.f32,inputWidth:o.f32,inputHeight:o.f32,inputMin:o.f32,inputMax:o.f32,outputMin:o.f32,outputMax:o.f32,curve:o.f32})}function XW(e,t){let s=GW(),r=(globalThis.__TYPEGPU_AUTONAME__??(a=>a))(b.bindGroupLayout({childTexture:{texture:o.texture2d(o.f32)},brightMap:{storageTexture:o.textureStorage2d(db,"write-only")},blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:s}}),"layout");return{layout:r,kernel:b.fn([o.u32,o.u32])((a=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(a.f=((i,l)=>{"use gpu";let c=r.$.params,d=c.inputWidth,u=c.inputHeight,p=o.i32(__tsover_sub(d,1)),m=o.i32(__tsover_sub(u,1)),_=o.vec4f(0,0,0,0);for(let f=0;f<4;f++)for(let A=0;A<4;A++){let E=__tsover_div(__tsover_add(o.f32(i),__tsover_div(__tsover_add(o.f32(A),.5),4)),e),P=__tsover_div(__tsover_add(o.f32(l),__tsover_div(__tsover_add(o.f32(f),.5),4)),t),C=n.clamp(o.i32(__tsover_mul(E,d)),0,p),$=n.clamp(o.i32(__tsover_mul(P,u)),0,m);_=_.add(n.textureLoad(r.$.childTexture,o.vec2u(o.u32(C),o.u32($)),0))}_=_.mul(.0625);let v=c.threshold,h=__tsover_add(__tsover_mul(v,.5),1e-4),y=n.dot(_.xyz,o.vec3f(.2126,.7152,.0722)),x=n.clamp(__tsover_add(__tsover_sub(y,v),h),0,__tsover_mul(h,2)),g=__tsover_div(__tsover_mul(x,x),__tsover_mul(h,4)),w=__tsover_div(n.max(g,__tsover_sub(y,v)),n.max(y,1e-4));n.textureStore(r.$.brightMap,o.vec2u(i,l),o.vec4f(_.xyz.mul(w),__tsover_mul(_.w,w))),n.textureStore(r.$.blurMap,o.vec2u(i,l),o.vec4f(c.size,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"iw",[7,"p","inputWidth"]],[13,"ih",[7,"p","inputHeight"]],[13,"inputWm1",[6,[7,"d","i32"],[[1,"iw","-",[5,"1"]]]]],[13,"inputHm1",[6,[7,"d","i32"],[[1,"ih","-",[5,"1"]]]]],[12,"sample",[6,[7,"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,[7,"d","f32"],["cx"]],"+",[1,[1,[6,[7,"d","f32"],["tx"]],"+",[5,"0.5"]],"/",[5,"4"]]],"/","computeWidth"]],[13,"sv",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[1,[1,[6,[7,"d","f32"],["ty"]],"+",[5,"0.5"]],"/",[5,"4"]]],"/","computeHeight"]],[13,"sx",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,"su","*","iw"]]],[5,"0"],"inputWm1"]]],[13,"sy",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,"sv","*","ih"]]],[5,"0"],"inputHm1"]]],[2,"sample","=",[6,[7,"sample","add"],[[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"childTexture"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["sx"]],[6,[7,"d","u32"],["sy"]]]],[5,"0"]]]]]]]]]]]],[2,"sample","=",[6,[7,"sample","mul"],[[5,"0.0625"]]]],[13,"threshold",[7,"p","threshold"]],[13,"knee",[1,[1,"threshold","*",[5,"0.5"]],"+",[5,"0.0001"]]],[13,"lum",[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"soft",[6,[7,"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,[7,"std","max"],["softCurve",[1,"lum","-","threshold"]]],"/",[6,[7,"std","max"],["lum",[5,"0.0001"]]]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"brightMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[6,[7,[7,"sample","xyz"],"mul"],["mask"]],[1,[7,"sample","w"],"*","mask"]]]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"p","size"],[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","std"]},externals:()=>({layout:r,d:o,computeWidth:e,computeHeight:t,std:n})})&&a.f)({}
244)).$name("glowExtractAndFill"),Params:s}}function qW(e,t,s){let r=WW(),a=(globalThis.__TYPEGPU_AUTONAME__??(i=>i))(b.bindGroupLayout({childTexture:{texture:o.texture2d(o.f32)},source:{texture:o.texture2d(o.f32)},brightMap:{storageTexture:o.textureStorage2d(db,"write-only")},blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:r}}),"layout");return{layout:a,kernel:b.fn([o.u32,o.u32])((i=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(i.f=((l,c)=>{"use gpu";let d=a.$.params,u=d.inputWidth,p=d.inputHeight,m=o.i32(__tsover_sub(u,1)),_=o.i32(__tsover_sub(p,1)),v=o.vec4f(0,0,0,0);for(let L=0;L<4;L++)for(let B=0;B<4;B++){let N=__tsover_div(__tsover_add(o.f32(l),__tsover_div(__tsover_add(o.f32(B),.5),4)),e),G=__tsover_div(__tsover_add(o.f32(c),__tsover_div(__tsover_add(o.f32(L),.5),4)),t),I=n.clamp(o.i32(__tsover_mul(N,u)),0,m),X=n.clamp(o.i32(__tsover_mul(G,p)),0,_);v=v.add(n.textureLoad(a.$.childTexture,o.vec2u(o.u32(I),o.u32(X)),0))}v=v.mul(.0625);let h=d.threshold,y=__tsover_add(__tsover_mul(h,.5),1e-4),x=n.dot(v.xyz,o.vec3f(.2126,.7152,.0722)),g=n.clamp(__tsover_add(__tsover_sub(x,h),y),0,__tsover_mul(y,2)),w=__tsover_div(__tsover_mul(g,g),__tsover_mul(y,4)),f=__tsover_div(n.max(w,__tsover_sub(x,h)),n.max(x,1e-4));n.textureStore(a.$.brightMap,o.vec2u(l,c),o.vec4f(v.xyz.mul(f),__tsover_mul(v.w,f)));let A=__tsover_div(__tsover_add(o.f32(l),.5),e),E=__tsover_div(__tsover_add(o.f32(c),.5),t),P=n.clamp(o.i32(n.round(__tsover_mul(A,u))),0,m),C=n.clamp(o.i32(n.round(__tsover_mul(E,p))),0,_),$=n.textureLoad(a.$.source,o.vec2u(o.u32(P),o.u32(C)),0),U=s==="alpha"?$.w:s==="alphaInverted"?__tsover_sub(1,$.w):s==="luminanceInverted"?__tsover_sub(1,n.dot($.xyz,o.vec3f(.2126,.7152,.0722))):n.dot($.xyz,o.vec3f(.2126,.7152,.0722)),k=n.max(__tsover_sub(d.inputMax,d.inputMin),1e-4),R=n.clamp(__tsover_div(__tsover_sub(U,d.inputMin),k),0,1),D=n.pow(2,__tsover_mul(-d.curve,2)),M=n.pow(R,D),z=n.mix(d.outputMin,d.outputMax,M);n.textureStore(a.$.blurMap,o.vec2u(l,c),o.vec4f(z,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"iw",[7,"p","inputWidth"]],[13,"ih",[7,"p","inputHeight"]],[13,"inputWm1",[6,[7,"d","i32"],[[1,"iw","-",[5,"1"]]]]],[13,"inputHm1",[6,[7,"d","i32"],[[1,"ih","-",[5,"1"]]]]],[12,"sample",[6,[7,"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,[7,"d","f32"],["cx"]],"+",[1,[1,[6,[7,"d","f32"],["tx"]],"+",[5,"0.5"]],"/",[5,"4"]]],"/","computeWidth"]],[13,"sv",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[1,[1,[6,[7,"d","f32"],["ty"]],"+",[5,"0.5"]],"/",[5,"4"]]],"/","computeHeight"]],[13,"sx",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,"su","*","iw"]]],[5,"0"],"inputWm1"]]],[13,"sy",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,"sv","*","ih"]]],[5,"0"],"inputHm1"]]],[2,"sample","=",[6,[7,"sample","add"],[[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"childTexture"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["sx"]],[6,[7,"d","u32"],["sy"]]]],[5,"0"]]]]]]]]]]]],[2,"sample","=",[6,[7,"sample","mul"],[[5,"0.0625"]]]],[13,"threshold",[7,"p","threshold"]],[13,"knee",[1,[1,"threshold","*",[5,"0.5"]],"+",[5,"0.0001"]]],[13,"lum",[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"soft",[6,[7,"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,[7,"std","max"],["softCurve",[1,"lum","-","threshold"]]],"/",[6,[7,"std","max"],["lum",[5,"0.0001"]]]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"brightMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[6,[7,[7,"sample","xyz"],"mul"],["mask"]],[1,[7,"sample","w"],"*","mask"]]]]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","computeWidth"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"srcX",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"u","*","iw"]]]]],[5,"0"],"inputWm1"]]],[13,"srcY",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"v","*","ih"]]]]],[5,"0"],"inputHm1"]]],[13,"mapSample",[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"source"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["srcX"]],[6,[7,"d","u32"],["srcY"]]]],[5,"0"]]]],[13,"raw",[105,[1,"channel","===",[103,"alpha"]],[7,"mapSample","w"],[105,[1,"channel","===",[103,"alphaInverted"]],[1,[5,"1"],"-",[7,"mapSample","w"]],[105,[1,"channel","===",[103,"luminanceInverted"]],[1,[5,"1"],"-",[6,[7,"std","dot"],[[7,"mapSample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[6,[7,"std","dot"],[[7,"mapSample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]]]]],[13,"inputRange",[6,[7,"std","max"],[[1,[7,"p","inputMa
244x"],"-",[7,"p","inputMin"]],[5,"0.0001"]]]],[13,"normalised",[6,[7,"std","clamp"],[[1,[1,"raw","-",[7,"p","inputMin"]],"/","inputRange"],[5,"0"],[5,"1"]]]],[13,"exponent",[6,[7,"std","pow"],[[5,"2"],[1,[4,"-",[7,"p","curve"]],"*",[5,"2"]]]]],[13,"eased",[6,[7,"std","pow"],["normalised","exponent"]]],[13,"radius",[6,[7,"std","mix"],[[7,"p","outputMin"],[7,"p","outputMax"],"eased"]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","std","channel"]},externals:()=>({layout:a,d:o,computeWidth:e,computeHeight:t,std:n,channel:s})})&&i.f)({})).$name("glowExtractAndFillVariable"),Params:r}}var kP={name:"Glow",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Soft glow effect with adjustable intensity",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:1,description:"Glow intensity (brightness of the glow effect)",ui:{type:["range","map"],min:0,max:50,step:.5,label:"Intensity",group:"Effect"}},threshold:{default:.5,description:"Brightness threshold for glow extraction (lower = more glow)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Threshold",group:"Effect"}},size:{default:25,description:"Glow spread in pixels (clean up to ~72px, mild banding above)",compileTimeWhen:(e,t)=>e===0!=(t===0),ui:{type:["range","map"],min:0,max:100,step:1,label:"Glow Size",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,getMapInfo:l,onCleanup:c,onResize:d,dimensions:u}=e;if(!t)return null;let p=s?.root;if(!p)return null;let m=l("size");if(!m&&(i("size")??0)===0)return null;let _=r(t),v=Math.max(1,Math.round(u.width)),h=Math.max(1,Math.round(u.height)),y=Math.max(N1,640),x=h>0?v/h:1,g=Math.max(8,x>=1?y:Math.round(y*x)),w=Math.max(8,x>=1?Math.round(y/x):y),f=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(p.createTexture({size:[g,w],format:db}).$usage("storage","sampled"),"brightBuffer");c(()=>f.destroy());let A=Zn(p,f,g,w,c,void 0,g,w,{jitterTaps:!0}),E=a(A.outputTexture);if(d(({width:U,height:k})=>{v=Math.max(1,Math.round(U)),h=Math.max(1,Math.round(k))}),m){let U=qW(g,w,m.channel),k=(globalThis.__TYPEGPU_AUTONAME__??(D=>D))(p.createUniform(U.Params),"prepassParams"),R=pt(p,(D=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(D.f=((M,z)=>{"use gpu";U.kernel(M,z)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:U})})&&D.f)({}),{size:[g,w]});return{outputs:{childTexture:_,blurredTexture:E},bindInputs:D=>{let M=D(_.key),z=D(m.sourceTexture.key);if(!M||!z)return;let L=p.createBindGroup(U.layout,{childTexture:M.texture,source:z.texture,brightMap:f,blurMap:A.blurMapTexture,params:k.buffer});R=R.with(L)},getComputeNodes:()=>{let D=i("threshold")??.5,M=m.window();return k.write({threshold:D,inputWidth:v,inputHeight:h,inputMin:M.inputMin,inputMax:M.inputMax,outputMin:M.outputMin,outputMax:M.outputMax,curve:M.curve}),[R,...A.computeSteps]}}}let P=XW(g,w),C=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(p.createUniform(P.Params),"prepassParams"),$=pt(p,(U=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(U.f=((k,R)=>{"use gpu";P.kernel(k,R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:P})})&&U.f)({}),{size:[g,w]});return{outputs:{childTexture:_,blurredTexture:E},bindInputs:U=>{let k=U(_.key);if(!k)return;let R=p.createBindGroup(P.layout,{childTexture:k.texture,brightMap:f,blurMap:A.blurMapTexture,params:C.buffer});$=$.with(R)},getComputeNodes:()=>{let U=i("threshold")??.5,k=i("size")??25;return C.write({threshold:U,size:k,inputWidth:v,inputHeight:h}),[$,...A.computeSteps]}}},fragment:({childNode:e,computeOutputs:t,uniforms:s,ctx:r,convertToTexture:a})=>{if(!e)return me;let i=t?.blurredTexture,l=t?.childTexture;return!i||!l?T(Re,"unpremultiplyAlpha",[a(e).sample(r.uv)]):T(Re,"unpremultiplyAlpha",[T(YW,"glowCompose",[l.sample(r.uv),i.sample(r.uv),s.intensity])])}};var Jm=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(t.x,127.1),__tsover_mul(t.y,311.7))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,[7,"p","x"],"*",[5,"127.1"]],"+",[1,[7,"p","y"],"*",[5,"311.7"]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),ub=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.floor(t),r=n.fract(t),a=Jm(s),i=Jm(o.vec2f(__tsover_add(s.x,1),s.y)),l=Jm
244(o.vec2f(s.x,__tsover_add(s.y,1))),c=Jm(o.vec2f(__tsover_add(s.x,1),__tsover_add(s.y,1))),d=r.mul(r).mul(r.mul(-2).add(3)),u=n.mix(a,i,d.x),p=n.mix(l,c,d.x);return n.mix(u,p,d.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"st"}],body:[0,[[13,"i",[6,[7,"std","floor"],["st"]]],[13,"f",[6,[7,"std","fract"],["st"]]],[13,"a",[6,"godraysHash",["i"]]],[13,"b",[6,"godraysHash",[[6,[7,"d","vec2f"],[[1,[7,"i","x"],"+",[5,"1"]],[7,"i","y"]]]]]],[13,"c",[6,"godraysHash",[[6,[7,"d","vec2f"],[[7,"i","x"],[1,[7,"i","y"],"+",[5,"1"]]]]]]],[13,"e",[6,"godraysHash",[[6,[7,"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,[7,"std","mix"],["a","b",[7,"u","x"]]]],[13,"x2",[6,[7,"std","mix"],["c","e",[7,"u","x"]]]],[10,[6,[7,"std","mix"],["x1","x2",[7,"u","y"]]]]]],externalNames:["std","godraysHash","d"]},externals:()=>({std:n,godraysHash:Jm,d:o})})&&e.f)({})),Qm=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=n.pow(ub(o.vec2f(__tsover_mul(t,i),a)),l),d=n.pow(ub(o.vec2f(__tsover_mul(s,i),a)),l);
244return n.mix(d,c,r)}),{v:1,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,[7,"std","pow"],[[6,"godraysValueNoise",[[6,[7,"d","vec2f"],[[1,"a","*","freq"],"r"]]]],"intensity"]]],[13,"nRight",[6,[7,"std","pow"],[[6,"godraysValueNoise",[[6,[7,"d","vec2f"],[[1,"aWrapped","*","freq"],"r"]]]],"intensity"]]],[10,[6,[7,"std","mix"],["nRight","nLeft","blend"]]]]],externalNames:["std","godraysValueNoise","d"]},externals:()=>({std:n,godraysValueNoise:ub,d:o})})&&e.f)({})),pb=6.283185307179586,HW=b.fn([o.vec2f,o.vec2f,o.f32,o.vec2f,o.f32,o.f32,o.f32,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=__tsover_div(s.x,s.y),m=o.vec2f(a.x,__tsover_sub(1,a.y)),_=t.sub(m),v=o.vec2f(__tsover_mul(_.x,p),_.y),h=__tsover_mul(r,.2),y=n.atan2(v.y,v.x),x=__tsover_sub(y,__tsover_mul(pb,n.floor(__tsover_div(y,pb)))),g=n.smoothstep(-.15,.15,v.x),w=n.length(v),f=__tsover_mul(6.5,n.abs(c)),A=__tsover_sub(4,__tsover_mul(3,n.clamp(l,0,1))),E=__tsover_mul(6,i),P=o.f32(0),C=__tsover_sub(__tsover_mul(w,1),__tsover_mul(h,3)),$=__tsover_sub(__tsover_mul(__tsover_mul(w,.5),__tsover_add(1,f)),__tsover_mul(h,2)),U=__tsover_mul(E,5),k=Qm(y,x,g,C,U,A);k=__tsover_mul(k,Qm(y,x,g,$,__tsover_mul(U,4),A)),P=__tsover_add(P,k);let R=__tsover_sub(__tsover_mul(w,1.4),__tsover_mul(h,2.5)),D=__tsover_sub(__tsover_mul(__tsover_mul(w,.7),__tsover_add(1,f)),__tsover_mul(h,1.8)),M=__tsover_mul(E,4.5),z=Qm(y,x,g,R,M,A);z=__tsover_mul(z,Qm(y,x,g,D,__tsover_mul(M,3.5),A)),P=__tsover_add(P,__tsover_mul(z,.7));let L=n.clamp(P,0,1),B=__tsover_mul(L,d.w),N=__tsover_add(B,__tsover_mul(u.w,__tsover_sub(1,B))),G=n.clamp(N,.001,1),I=d.xyz.mul(B),X=u.xyz.mul(u.w).mul(__tsover_sub(1,B)),F=I.add(X).div(G);return o.vec4f(F,N)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"animTimeRaw"},{type:"i",name:"center"},{type:"i",name:"density"},{type:"i",name:"intensity"},{type:"i",name:"spotty"},{type:"i",name:"rayColor"},{type:"i",name:"bgColor"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"centerPos",[6,[7,"d","vec2f"],[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"uv","sub"],["centerPos"]]],[13,"shapeUV",[6,[7,"d","vec2f"],[[1,[7,"delta","x"],"*","aspect"],[7,"delta","y"]]]],[13,"animTime",[1,"animTimeRaw","*",[5,"0.2"]]],[13,"angle",[6,[7,"std","atan2"],[[7,"shapeUV","y"],[7,"shapeUV","x"]]]],[13,"angleWrapped",[1,"angle","-",[1,"TAU","*",[6,[7,"std","floor"],[[1,"angle","/","TAU"]]]]]],[13,"blendFactor",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.15"]],[5,"0.15"],[7,"shapeUV","x"]]]],[13,"radius",[6,[7,"std","length"],["shapeUV"]]],[13,"spots",[1,[5,"6.5"],"*",[6,[7,"std","abs"],["spotty"]]]],[13,"intensityCalc",[1,[5,"4"],"-",[1,[5,"3"],"*",[6,[7,"std","clamp"],["intensity",[5,"0"],[5,"1"]]]]]],[13,"dens",[1,[5,"6"],"*","density"]],[12,"accumRay",[6,[7,"d","f32"],[[5,"0"]]]],[13,"r1",[1,[1,"radius","*",[5,"1"]],"-",[1,"animTime","*",[5,"3"]]]],[13,"r2",[1,[1,[1,"radius","*",[5,"0.5"]],"*",[1,[5,"1"],"+","spots"]],"-",[1,"animTime","*",[5,"2"]]]],[13,"f1",[1,"dens","*",[5,"5"]]],[12,"ray",[6,"godraysRaysShape",["angle","angleWrapped","blendFactor","r1","f1","intensityCalc"]]],[2,"ray","=",[1,"ray","*",[6,"godraysRaysShape",["angle","angleWrapped","blendFactor","r2",[1,"f1","*",[5,"4"]],"intensityCalc"]]]],[2,"accumRay","=",[1,"accumRay","+","ray"]],[13,"r3",[1,[1,"radius","*",[5,"1.4"]],"-",[1,"animTime","*",[5,"2.5"]]]],[13,"r4",[1,[1,[1,"radius","*",[5,"0.7"]],"*",[1,[5,"1"],"+","spots"]],"-",[1,"animTime","*",[5,"1.8"]]]],[13,"f2",[1,"dens","*",[5,"4.5"]]],[12,"ray2",[6,"godraysRaysShape",["angle","angleWrapped","blendFactor","r3","f2","intensityCalc"]]],[2,"ray2","=",[1,"ray2","*",[6,"godraysRaysShape",["angle","angleWrapped","blendFactor","r4",[1,"f2","*",[5,"3.5"]],"intensityCalc"]]]],[2,"accumRay","=",[1,"accumRay","+",[1,"ray2","*",[5,"0.7"]]]],[13,"rayEffect",[6,[7,"std","clamp"],["accumRay",[5,"0"],[5,"1"]]]],[13,"rayA",[1,"rayEffect","*",[7,"rayColor","w"]]],[13,"finalAlpha",[1,"rayA","+",[1,[7,"bgColor","w"],"*",[1,[5,"1"],"-","rayA"]]]],[13,"safeAlpha",[6,[7,"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,[7,"d","vec4f"],["finalColor","finalAlpha"]]]]],externalNames:["d","std","TAU","godraysRaysShape"]},externals:()=>({d:o,std:n,TAU:pb,godraysRaysShape:Qm})})&&e.f)({}
244)),RP={name:"Godrays",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Volumetric light rays emanating from a point",requiresRTT:!1,acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{center:{default:{x:0,y:0},transform:we,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:O,description:"Color of the light rays",ui:{type:"color",label:"Ray Color",group:"Colors"}},backgroundColor:{default:"transparent",transform:O,description:"Background color",ui:{type:"color",label:"Background Color",group:"Colors"}}},fragment:e=>T(HW,"godraysColor",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,Fe(e),e.uniforms.center,e.uniforms.density,e.uniforms.intensity,e.uniforms.spotty,e.uniforms.rayColor,e.uniforms.backgroundColor])};var{sdfSpaceUV:jW,offsetUV:$P}=Zs,{createSvgSdfSampler:ZW,createAnalyticSdfSampler:KW,driveAnalyticSubProps:JW,ANALYTIC_SDF_EXTRA_FIELDS:QW}=ft,{createVolumetricFieldComputeNode:e9,buildVolumetricFieldSampler:t9,VOLUMETRIC_FIELD_EXTRA_FIELDS:s9,is3dShapeType:I0e,isVolumetricShapeType:L0e}=ys,mb=.017453292519943295,o9=JSON.stringify({type:"circleSDF",radius:.35}),Tu=7,wu=e=>{let t=Math.sin(e*12.9898)*43758.5453;return t-Math.floor(t)},zP=[],IP=[];for(let e=0;e<Tu;e++){let t=e*2.399963,s=Math.sqrt((e+.5)/Tu);zP.push(o.vec4f(s*Math.cos(t),s*Math.sin(t),.5+wu(e+1),.5+wu(e+7))),IP.push(o.vec4f(.5+wu(e+13),wu(e+2)*6.2831853,wu(e+5)*6.2831853,wu(e+9)*6.2831853))}var UP=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.const(o.arrayOf(o.vec4f,Tu),zP),"POS_FREQ"),DP=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.const(o.arrayOf(o.vec4f,Tu),IP),"PHASE");function r9(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var a9=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec4f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_mul(c.x,.45),_=__tsover_mul(c.y,.12),v=c.z,h=c.w,y=d.x,x=d.y,g=d.z,w=d.w,f=u.x,A=u.y,E=u.z,P=u.w,C=p.x,$=p.y,U=p.z,k=p.w,R=__tsover_sub(a.x,.5),D=__tsover_sub(a.y,.5),M=n.sqrt(__tsover_add(__tsover_mul(R,R),__tsover_mul(D,D))),z=__tsover_add(.65,__tsover_mul(h,.7)),L=__tsover_mul(__tsover_mul(y,.38),z);if(M>__tsover_add(__tsover_add(__tsover_add(m,__tsover_mul(L,__tsover_add(1,v))),_),.2))return o.vec4f(0,0,0,0);let B=o.f32(.004),N=o.f32(0),G=o.f32(0),I=o.f32(0);for(let Le=0;Le<Tu;Le++){let ot=UP.$[Le],Ke=DP.$[Le],rt=__tsover_add(__tsover_mul(ot.x,m),__tsover_mul(_,n.sin(__tsover_add(__tsover_mul(k,ot.z),Ke.y)))),Mt=__tsover_add(__tsover_mul(ot.y,m),__tsover_mul(_,n.cos(__tsover_add(__tsover_mul(k,ot.w),Ke.z)))),ht=__tsover_mul(L,__tsover_add(1,__tsover_mul(v,n.sin(__tsover_add(__tsover_mul(k,Ke.x),Ke.w))))),St=__tsover_div(1,n.max(__tsover_mul(ht,ht),o.f32(1e-4))),zt=__tsover_sub(R,rt),$t=__tsover_sub(D,Mt);N=__tsover_add(N,n.exp(__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(zt,zt),__tsover_mul($t,$t)),St),-1)));let Xe=__tsover_sub(__tsover_add(R,B),rt);G=__tsover_add(G,n.exp(__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(Xe,Xe),__tsover_mul($t,$t)),St),-1)));let Qt=__tsover_sub(__tsover_add(D,B),Mt);I=__tsover_add(I,n.exp(__tsover_mul(__tsover_mul(__tsover_add(__tsover_mul(zt,zt),__tsover_mul(Qt,Qt)),St),-1)))}let X=o.f32(.06),F=__tsover_sub(1,n.smoothstep(__tsover_mul(X,-1),X,t.x)),Q=__tsover_sub(1,n.smoothstep(__tsover_mul(X,-1),X,s.x)),ae=__tsover_sub(1,n.smoothstep(__tsover_mul(X,-1),X,r.x)),j=__tsover_add(__tsover_mul(N,n.mix(o.f32(1),F,x)),__tsover_mul(F,x)),q=__tsover_add(__tsover_mul(G,n.mix(o.f32(1),Q,x)),__tsover_mul(Q,x)),te=__tsover_add(__tsover_mul(I,n.mix(o.f32(1),ae,x)),__tsover_mul(ae,x)),ne=n.max(w,o.f32(.001)),oe=n.smoothstep(__tsover_sub(g,ne),__tsover_add(g,ne),j),pe=__ts
vendor: 5,543 bytes, line 244
244over_div(__tsover_sub(q,j),B),_e=__tsover_div(__tsover_sub(te,j),B),ge=__tsover_add(__tsover_mul(f,.12),.03),Me=n.min(n.min(F,Q),ae),Se=__tsover_mul(__tsover_mul(x,1.6),Me),Ae=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),B),-6,6),Pe=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),B),-6,6),De=n.normalize(o.vec3f(__tsover_add(__tsover_mul(__tsover_mul(pe,-1),ge),__tsover_mul(Ae,Se)),__tsover_add(__tsover_mul(__tsover_mul(_e,-1),ge),__tsover_mul(Pe,Se)),-1)),ke=__tsover_mul(n.sqrt(n.max(__tsover_sub(j,g),o.f32(0))),f),Ge=n.max(__tsover_mul(t.x,-1),o.f32(0)),Oe=n.clamp(__tsover_add(ke,__tsover_mul(__tsover_mul(Ge,x),1.2)),0,1),qe=n.cos(__tsover_mul(A,mb)),We=n.sin(__tsover_mul(A,mb)),Ve=n.normalize(o.vec3f(qe,We,-.8)),Ne=n.normalize(Ve.add(o.vec3f(0,0,-1))),He=n.clamp(n.dot(De,Ve),0,1),vt=n.clamp(n.dot(De,Ne),0,1),_t=n.clamp(__tsover_mul(De.z,-1),0,1),Ze=__tsover_mul(n.pow(vt,o.f32(232)),1.7),it=__tsover_mul(n.pow(vt,o.f32(32)),.25),Tt=__tsover_mul(n.smoothstep(.992,.999,vt),1.9),J=__tsover_mul(n.pow(__tsover_sub(1,_t),o.f32(5)),P),be=l.mul(__tsover_mul(__tsover_add(__tsover_add(__tsover_add(Ze,it),Tt),J),E)),ce=n.exp(__tsover_mul(__tsover_mul($,-1),__tsover_sub(1,Oe))),xe=i.xyz,ye=xe.mul(__tsover_mul(U,ce)).mul(__tsover_add(__tsover_mul(He,.5),.5)),Ee=xe.mul(__tsover_add(C,__tsover_mul(He,.7))).add(ye).add(be);return o.vec4f(Ee.x,Ee.y,Ee.z,__tsover_mul(oe,i.w))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"gooColor"},{type:"i",name:"specColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"}],body:[0,[[13,"spread",[1,[7,"p0","x"],"*",[5,"0.45"]]],[13,"driftAmp",[1,[7,"p0","y"],"*",[5,"0.12"]]],[13,"breatheAmp",[7,"p0","z"]],[13,"merge",[7,"p0","w"]],[13,"blobScale",[7,"p1","x"]],[13,"contain",[7,"p1","y"]],[13,"T",[7,"p1","z"]],[13,"edgeSoftness",[7,"p1","w"]],[13,"bulge",[7,"p2","x"]],[13,"lightAngle",[7,"p2","y"]],[13,"wetness",[7,"p2","z"]],[13,"fresnelAmt",[7,"p2","w"]],[13,"ambientAmt",[7,"p3","x"]],[13,"absorbAmt",[7,"p3","y"]],[13,"translucency",[7,"p3","z"]],[13,"animTime",[7,"p3","w"]],[13,"px",[1,[7,"sdfUV","x"],"-",[5,"0.5"]]],[13,"py",[1,[7,"sdfUV","y"],"-",[5,"0.5"]]],[13,"distC",[6,[7,"std","sqrt"],[[1,[1,"px","*","px"],"+",[1,"py","*","py"]]]]],[13,"radiusMul",[1,[5,"0.65"],"+",[1,"merge","*",[5,"0.7"]]]],[13,"baseR",[1,[1,"blobScale","*",[5,"0.38"]],"*","radiusMul"]],[13,"maxReach",[1,[1,[1,"spread","+",[1,"baseR","*",[1,[5,"1"],"+","breatheAmp"]]],"+","driftAmp"],"+",[5,"0.2"]]],[11,[1,"distC",">","maxReach"],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"EPS",[6,[7,"d","f32"],[[5,"0.004"]]]],[12,"potC",[6,[7,"d","f32"],[[5,"0"]]]],[12,"potX",[6,[7,"d","f32"],[[5,"0"]]]],[12,"potY",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","N_CHARGES"],[102,"++","i"],[0,[[13,"pf",[8,[7,"POS_FREQ","$"],"i"]],[13,"ph",[8,[7,"PHASE","$"],"i"]],[13,"cx",[1,[1,[7,"pf","x"],"*","spread"],"+",[1,"driftAmp","*",[6,[7,"std","sin"],[[1,[1,"animTime","*",[7,"pf","z"]],"+",[7,"ph","y"]]]]]]],[13,"cy",[1,[1,[7,"pf","y"],"*","spread"],"+",[1,"driftAmp","*",[6,[7,"std","cos"],[[1,[1,"animTime","*",[7,"pf","w"]],"+",[7,"ph","z"]]]]]]],[13,"rVal",[1,"baseR","*",[1,[5,"1"],"+",[1,"breatheAmp","*",[6,[7,"std","sin"],[[1,[1,"animTime","*",[7,"ph","x"]],"+",[7,"ph","w"]]]]]]]],[13,"invR2",[1,[5,"1"],"/",[6,[7,"std","max"],[[1,"rVal","*","rVal"],[6,[7,"d","f32"],[[5,"0.0001"]]]]]]],[13,"dcx",[1,"px","-","cx"]],[13,"dcy",[1,"py","-","cy"]],[2,"potC","=",[1,"potC","+",[6,[7,"std","exp"],[[1,[1,[1,[1,"dcx","*","dcx"],"+",[1,"dcy","*","dcy"]],"*","invR2"],"*",[4,"-",[5,"1"]]]]]]],[13,"dxx",[1,[1,"px","+","EPS"],"-","cx"]],[2,"potX","=",[1,"potX","+",[6,[7,"std","exp"],[[1,[1,[1,[1,"dxx","*","dxx"],"+",[1,"dcy","*","dcy"]],"*","invR2"],"*",[4,"-",[5,"1"]]]]]]],[13,"dyy",[1,[1,"py","+","EPS"],"-","cy"]],[2,"potY","=",[1,"potY","+",[6,[7,"std","exp"],[[1,[1,[1,[1,"dcx","*","dcx"],"+",[1,"dyy","*","dyy"]],"*","invR2"],"*",[4,"-",[5,"1"]]]]]]]]]],[13,"containerSoft",[6,[7,"d","f32"],[[5,"0.06"]]]],[13,"inside0",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"containerSoft","*",[4,"-",[5,"1"]]],"containerSoft",[7,"surf0","x"]]]]],[13,"insideX",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"containerSoft","*",[4,"-",[5,"1"]]],"containerSoft",[7,"surfX","x"]]]]],[13,"insideY",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"containerSoft","*",[4,"-",[5,"1"]]],"containerSoft",[7,"surfY","x"]]]]],[13,"H0",[1,[1,"potC","*",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"inside0","contain"]]],"+",[1,"inside0","*","contain"]]],[13,"Hx",[1,[1,"potX","*",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"insideX","contain"]]],"+",[1,"insideX","*","contain"]]],[13,"Hy",[1,[1,"potY","*",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"insideY","contain"]]],"+",[1,"insideY","*","contain"]]],[13,"soft",[6,[7,"std","max"],["edgeSoftness",[6,[7,"d","f32"],[[5,"0.001"]]]]]],[13,"coverage",[6,[7,"std","smoothstep"],[[1,"T","-","soft"],[1,"T","+","soft"],"H0"]]],[13,"gradHx",[1,[1,"Hx","-","H0"],"/","EPS"]],[13,"gradHy",[1,[1,"Hy","-","H0"],"/","EPS"]],[13,"metaSlope",[1,[1,"bulge","*",[5,"0.12"]],"+",[5,"0.03"]]],[13,"reliefGate",[6,[7,"std","min"],[[6,[7,"std","min"],["inside0","insideX"]],"insideY"]]],[13,"shapeRelief",[1,[1,"contain","*",[5,"1.6"]],"*","reliefGate"]],[13,"gradAx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"6"]],[5,"6"]]]],[13,"gradAy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","
244w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"6"]],[5,"6"]]]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[1,"gradHx","*",[4,"-",[5,"1"]]],"*","metaSlope"],"+",[1,"gradAx","*","shapeRelief"]],[1,[1,[1,"gradHy","*",[4,"-",[5,"1"]]],"*","metaSlope"],"+",[1,"gradAy","*","shapeRelief"]],[4,"-",[5,"1"]]]]]]],[13,"domeZ",[1,[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,"H0","-","T"],[6,[7,"d","f32"],[[5,"0"]]]]]]],"*","bulge"]],[13,"shapeDepth",[6,[7,"std","max"],[[1,[7,"surf0","x"],"*",[4,"-",[5,"1"]]],[6,[7,"d","f32"],[[5,"0"]]]]]],[13,"thick",[6,[7,"std","clamp"],[[1,"domeZ","+",[1,[1,"shapeDepth","*","contain"],"*",[5,"1.2"]]],[5,"0"],[5,"1"]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.8"]]]]]]],[13,"Hh",[6,[7,"std","normalize"],[[6,[7,"L","add"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[13,"ndl",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","L"]],[5,"0"],[5,"1"]]]],[13,"ndh",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","Hh"]],[5,"0"],[5,"1"]]]],[13,"ndv",[6,[7,"std","clamp"],[[1,[7,"n","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"specCore",[1,[6,[7,"std","pow"],["ndh",[6,[7,"d","f32"],[[5,"232"]]]]],"*",[5,"1.7"]]],[13,"specHalo",[1,[6,[7,"std","pow"],["ndh",[6,[7,"d","f32"],[[5,"32"]]]]],"*",[5,"0.25"]]],[13,"glint",[1,[6,[7,"std","smoothstep"],[[5,"0.992"],[5,"0.999"],"ndh"]],"*",[5,"1.9"]]],[13,"fres",[1,[6,[7,"std","pow"],[[1,[5,"1"],"-","ndv"],[6,[7,"d","f32"],[[5,"5"]]]]],"*","fresnelAmt"]],[13,"specRgb",[6,[7,"specColor","mul"],[[1,[1,[1,[1,"specCore","+","specHalo"],"+","glint"],"+","fres"],"*","wetness"]]]],[13,"transmit",[6,[7,"std","exp"],[[1,[1,"absorbAmt","*",[4,"-",[5,"1"]]],"*",[1,[5,"1"],"-","thick"]]]]],[13,"gooRgb",[7,"gooColor","xyz"]],[13,"sss",[6,[7,[6,[7,"gooRgb","mul"],[[1,"translucency","*","transmit"]]],"mul"],[[1,[1,"ndl","*",[5,"0.5"]],"+",[5,"0.5"]]]]],[13,"body",[6,[7,"gooRgb","mul"],[[1,"ambientAmt","+",[1,"ndl","*",[5,"0.7"]]]]]],[13,"rgb",[6,[7,[6,[7,"body","add"],["sss"]],"add"],["specRgb"]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],[1,"coverage","*",[7,"gooColor","w"]]]]]]],externalNames:["std","d","N_CHARGES","POS_FREQ","PHASE","DEG_TO_RAD"]},externals:()=>({std:n,d:o,N_CHARGES:Tu,POS_FREQ:UP,PHASE:DP,DEG_TO_RAD:mb})})&&e.f)({})),LP={name:"Goo",boundingBoxDeclaration:gs,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"},extraFields:{...s9,...QW},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:we,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:O,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:.
24401,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:O,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:o9,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"}},compute:e=>{let t=e9(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=t?.volumetricFieldTexture;if(d){let w=t9(d,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=w.volumetricFieldSampler,c=w.volumetricFieldSamplerFast}else{let w=r.shapeSdfUrl||"",f=r.shapeType||"";w?(l=ZW(e,w),c=l):(l=KW(r9(f,i("shape")),JW(e,()=>i("shape"))),c=l)}let u=T(jW,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),p=l(u),m=c(T($P,"offsetUV",[u,le(.004),le(0)])),_=c(T($P,"offsetUV",[u,le(0),le(.004)])),v=Fe(e,"seed"),h=de(s.spread,s.wobble,s.breathe,s.merge),y=de(s.blobScale,s.containment,s.threshold,s.edgeSoftness),x=de(s.bulge,s.lightAngle,s.wetness,s.fresnel),g=de(s.ambient,s.absorb,s.translucency,v);return T(a9,"gooComposite",[p,m,_,u,s.gooColor,s.specColor.member("rgb"),h,y,x,g])}};var FP={0:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[0,.333,.667]},1:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[0,.1,.2]},2:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[.3,.2,.2]},3:{a:[.5,.5,.5],b:[.5,.5,.5],c:[1,1,1],d:[.8,.9,.3]},4:{a:[.5,.5,.5],b:[.25,.25,.25],c:[1,1,1],d:[0,.25,.5]},5:{a:[.5,.5,.5],b:[.5,.5,.5],c:[2,1,1],d:[.5,.2,.25]}},n9=e=>({rainbow:0,sunset:1,ocean:2,fire:3,pastel:4,neon:5,custom:6})[e]??0,BP=6.283185307179586,Nv=e=>rr(`vec3f(${Tr(e[0])}, ${Tr(e[1])}, ${Tr(e[2])})`),i9=b.fn([o.vec4f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.dot(t.xyz,o.vec3f(.2126,.7152,.0722)),l=n.max(__tsover_sub(r,s),1e-4),c=n.clamp(__tsover_div(__tsover_sub(i,s),l),0,1);return c=n.clamp(__tsover_add(__tsover_mul(__tsover_sub(c,.5),a),.5),0,1),c}),{v:1,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,[7,"std","dot"],[[7,"color","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"range",[6,[7,"std","max"],[[1,"white","-","black"],[5,"0.0001"]]]],[12,"t",[6,[7,"std","clamp"],[[1,[1,"luma","-","black"],"/","range"],[5,"0"],[5,"1"]]]],[2,"t","=",[6,[7,"std","clamp"],[[1,[1,[1,"t","-",[5,"0.5"]],"*","contrast"],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,"t"]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),l9=b.fn([o.f32,o.f32,o.vec3f,o.vec3f,o.vec3f,o.vec3f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=i.mul(t).add(l).add(o.vec3f(s,s,s)).mul(BP),d=r.add(a.mul(n.cos(c)));return n.clamp(d,o.vec3f(0,0,0),o.vec3f(1,1,1))}),{v:1,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,[7,"d","vec3f"],["phase","phase","phase"]]]],"mul"],["TWO_PI"]]],[13,"mapped",[6,[7,"pa","add"],[[6,[7,"pb","mul"],[[6,[7,"std","cos"],["arg"]]]]]]],[10,[6,[7,"std","clamp"],["mapped",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]]]],externalNames:["d","TWO_PI","std"]},externals:()=>({d:o,TWO_PI:BP,std:n})})&&e.f)({})),c9=b.fn([o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.fract(__tsover_add(t,s)),a=__tsover_mul(r,3);return o.vec2f(n.fract(a),n.floor(a))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"},{type:"i",name:"phase"}],body:[0,[[13,"t01",[6,[7,"std","fract"],[[1,"t","+","phase"]]]],[13,"t3",[1,"t01","*",[5,"3"]]],[10,[6,[7,"d","vec2f"],[[6,[7,"std","fract"],["t3"]],[6,[7,"std","floor"],["t3"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),d9=b.fn([o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.select(r,s,a<2);return n.select(i,t,a<1)}),{v:1,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,[7,"std","select"],["seg2","seg1",[1,"i","<",[5,"2"]]]]],[10,[6,[7,"std","select"],["upper","seg0",[1,"i","<",[5,"1"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),VP=b.fn([o.vec4f,o.vec3f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.mix(t.xyz,s,o.vec3f(r,r,r));return o.vec4f(a,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"mapped"},{type:"i",name:"strength"}],body:[0,[[13,"outRgb",[6,[7,"std","mix"],[[7,"color","xyz"],"mapped",[6,[7,"d","vec3f"],["strength","strength","strength"]]]]],[10,[6,[7,"d","vec4f"],["outRgb",[7,"color","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),OP={name:"GradientMap",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Maps source luminance through an animated color gradient (Photoshop-style gradient map)",requiresChild:!0,props:{palette:{default:"rainbow",compileTime:!0,description:"Built-in cosine palette, or Custom Colors to pick y
244our own stops",ui:{type:"select",options:[{label:"Rainbow",value:"rainbow"},{label:"Sunset",value:"sunset"},{label:"Ocean",value:"ocean"},{label:"Fire",value:"fire"},{label:"Pastel",value:"pastel"},{label:"Neon",value:"neon"},{label:"Custom Colors",value:"custom"}],label:"Palette",group:"Colors"}},colorLow:{default:"#1a0b2e",transform:O,description:"Color for the darkest tones",ui:{type:"color",label:"Shadows",group:"Colors",condition:{palette:"custom"}}},colorMid:{default:"#e94560",transform:O,description:"Color for the midtones",ui:{type:"color",label:"Midtones",group:"Colors",condition:{palette:"custom"}}},colorHigh:{default:"#f9ed69",transform:O,description:"Color for the brightest tones",ui:{type:"color",label:"Highlights",group:"Colors",condition:{palette:"custom"}}},speed:{default:.15,description:"Gradient animation speed (0 = static). The gradient cycles seamlessly.",ui:{type:["range","map"],min:-2,max:2,step:.01,label:"Speed",group:"Animation"}},contrast:{default:1,description:"Steepness of the luminance-to-gradient mapping",ui:{type:["range","map"],min:0,max:3,step:.01,label:"Contrast",group:"Effect"}},blackPoint:{default:0,description:"Input shadow clip \u2014 luminance at/below this maps to the start of the gradient",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Black Point",group:"Effect"}},whitePoint:{default:1,description:"Input highlight clip \u2014 luminance at/above this maps to the end of the gradient",ui:{type:["range","map"],min:0,max:1,step:.01,label:"White Point",group:"Effect"}},strength:{default:1,description:"Blend between the original image (0) and the gradient-mapped result (1)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Strength",group:"Effect"}},colorSpace:{default:"oklch",transform:Ue,compileTime:!0,description:"Color space for interpolating custom colors",ui:{type:"select",options:ze,label:"Color Space",group:"Colors",condition:{palette:"custom"}}}},fragment:({uniforms:e,childNode:t,propValues:s,ctx:r})=>{if(!t)return console.error("You must pass a child component into the GradientMap shader."),me;let a=T(i9,"gradientMapT",[t,e.blackPoint,e.whitePoint,e.contrast]),i=e.speed.mul(r.time),l=n9(s.palette??"rainbow");if(l!==6){let m=FP[l]??FP[0];return T(VP,"gradientMapCompose",[t,T(l9,"gradientMapCosine",[a,i,Nv(m.a),Nv(m.b),Nv(m.c),Nv(m.d)]),e.strength])}let c=Ye[s.colorSpace??0]??Be,d=T(c9,"gradientMapCustomPhase",[a,i]),u=d.member("x"),p=d.member("y");return T(VP,"gradientMapCompose",[t,T(d9,"gradientMapSelect",[T(c,"mixColors",[e.colorLow,e.colorMid,u]),T(c,"mixColors",[e.colorMid,e.colorHigh,u]),T(c,"mixColors",[e.colorHigh,e.colorLow,u]),p]).member("rgb"),e.strength])}};var u9=b.fn([o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.dot(t.xyz,o.vec3f(.2126,.7152,.0722));return o.vec4f(s,s,s,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"luminance",[6,[7,"std","dot"],[[7,"color","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[10,[6,[7,"d","vec4f"],["luminance","luminance","luminance",[7,"color","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),NP={name:"Grayscale",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Convert colors to black and white",requiresChild:!0,props:{},fragment:({childNode:e})=>e?T(u9,"grayscaleColor",[e]):(console.error("You must pass a child component into the Grayscale shader."),me)};var Yv=Math.PI/180,p9=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_div(s.x,s.y),l=__tsover_mul(t.x,i),c=__tsover_sub(1,t.y),d=__tsover_mul(a,Yv),u=n.cos(d),p=n.sin(d),m=__tsover_mul(i,.5),_=.5,v=__tsover_sub(l,m),h=__tsover_sub(c,_),y=__tsover_add(__tsover_sub(__tsover_mul(v,u),__tsover_mul(h,p)),m),x=__tsover_add(__tsover_add(__tsover_mul(v,p),__tsover_mul(h,u)),_),g=__tsover_div(__tsover_add(n.floor(__tsover_mul(y,r)),.5),r),w=__tsover_div(__tsover_add(n.floor(__tsover_mul(x,r)),.5),r),f=__tsover_sub(g,m),A=__tsover_sub(w,_),E=__tsover_add(__tsover_add(__tsover_mul(f,u),__tsover_mul(A,p)),m),P=__tsover_add(__tsover_add(__tsover_mul(f,-p),__tsover_mul(A,u)),_);return o.vec2f(__tsover_div(E,i),__tsover_sub(1,P))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"rotation"}
vendor: 5,609 bytes, line 244
244],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedX",[1,[7,"uv","x"],"*","aspect"]],[13,"correctedY",[1,[5,"1"],"-",[7,"uv","y"]]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[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,[7,"std","floor"],[[1,"rotX","*","cells"]]],"+",[5,"0.5"]],"/","cells"]],[13,"cellRY",[1,[1,[6,[7,"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,[7,"d","vec2f"],[[1,"unrotX","/","aspect"],[1,[5,"1"],"-","unrotY"]]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:Yv,std:n,d:o})})&&e.f)({})),_b=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_add(t,__tsover_mul(s,.5)),i=__tsover_sub(t,__tsover_mul(s,.5));return __tsover_div(__tsover_sub(__tsover_sub(__tsover_add(n.floor(a),n.min(__tsover_mul(n.fract(a),r),1)),n.floor(i)),n.min(__tsover_mul(n.fract(i),r),1)),__tsover_mul(r,s))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"px"},{type:"i",name:"wx"},{type:"i",name:"N"}],body:[0,[[13,"a",[1,"px","+",[1,"wx","*",[5,"0.5"]]]],[13,"b",[1,"px","-",[1,"wx","*",[5,"0.5"]]]],[10,[1,[1,[1,[1,[6,[7,"std","floor"],["a"]],"+",[6,[7,"std","min"],[[1,[6,[7,"std","fract"],["a"]],"*","N"],[5,"1"]]]],"-",[6,[7,"std","floor"],["b"]]],"-",[6,[7,"std","min"],[[1,[6,[7,"std","fract"],["b"]],"*","N"],[5,"1"]]]],"/",[1,"N","*","wx"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),m9=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_div(s.x,s.y),u=__tsover_mul(t.x,d),p=__tsover_sub(1,t.y),m=__tsover_mul(i,Yv),_=n.cos(m),v=n.sin(m),h=__tsover_mul(d,.5),y=.5,x=__tsover_sub(u,h),g=__tsover_sub(p,y),w=__tsover_add(__tsover_sub(__tsover_mul(x,_),__tsover_mul(g,v)),h),f=__tsover_add(__tsover_add(__tsover_mul(x,v),__tsover_mul(g,_)),y),A=o.vec2f(__tsover_mul(w,r),__tsover_mul(f,r)),E=__tsover_mul(a,.01),P=n.max(E,1e-4),C=__tsover_mul(P,2),$=__tsover_div(1,C),U=A.add(P),k=n.dpdx(U),R=n.dpdy(U),D=__tsover_add(n.max(n.max(n.abs(k.x),n.abs(R.x)),1e-5),l),M=__tsover_add(n.max(n.max(n.abs(k.y),n.abs(R.y)),1e-5),l),z=_b(U.x,D,$),L=_b(U.y,M,$),B=__tsover_mul(__tsover_sub(1,z),__tsover_sub(1,L)),N=__tsover_mul(__tsover_sub(1,B),n.step(1e-4,E)),G=n.floor(A),I=n.fract(G.mul(o.vec2f(123.34,345.45))),X=I.add(n.dot(I,I.add(34.345))),F=n.fract(__tsover_mul(X.x,X.y)),Q=n.max(__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(F,.5),2),c)),0);return o.vec2f(N,Q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"thickness"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"variation"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedX",[1,[7,"uv","x"],"*","aspect"]],[13,"correctedY",[1,[5,"1"],"-",[7,"uv","y"]]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[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,"gridUV",[6,[7,"d","vec2f"],[[1,"rotX","*","cells"],[1,"rotY","*","cells"]]]],[13,"lineWidth",[1,"thickness","*",[5,"0.01"]]],[13,"safeLine",[6,[7,"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,[7,"std","dpdx"],["p"]]],[13,"dpy",[6,[7,"std","dpdy"],["p"]]],[13,"wx",[1,[6,[7,"std","max"],[[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"dpx","x"]]],[6,[7,"std","abs"],[[7,"dpy","x"]]]]],[5,"0.00001"]]],"+","softness"]],[13,"wy",[1,[6,[7,"std","max"],[[6,[7,"std","max"],[[6,[7,"std","abs"],[[7,"dpx","y"]]],[6,[7,"std","abs"],[[7,"dpy","y"]]]]],[5,"0.00001"]]],"+","softness"]],[13,"iX",[6,"gridFilterAxis",[[7,"p","x"],"wx","N"]]],[13,"iY",[6,"gridFilterAxis",[[7,"p","y"],"wy","N"]]],[13,"gapBoth",[1,[1,[5,"1"],"-","iX"],"*",[1,[5,"1"],"-","iY"]]],[13,"gridMask",[1,[1,[5,"1"],"-","gapBoth"],"*",[6,[7,"std","step"],[[5,"0.0001"],"lineWidth"]]]],[13,"cellId",[6,[7,"std","floor"],["gridUV"]]],[13,"q0",[6,[7,"std","fract"],[[6,[7,"cellId","mul"],[[6,[7,"d","vec2f"],[[5,"123.34"],[5,"345.45"]]]]]]]],[13,"q1",[6,[7,"q0","add"],[[6,[7,"std","dot"],["q0",[6,[7,"q0","add"],[[5,"34.345"]]]]]]]],[13,"rand",[6,[7,"std","fract"],[[1,[7,"q1","x"],"*",[7,"q1","y"]]]]],[13,"variedFactor",[6,[7,"std","max"],[[1,[5,"1"],"+",[1,[1,[1,"rand","-",[5,"0.5"]],"*",[5,"2"]],"*","variation"]],[5,"0"]]]],[10,[6,[7,"d","vec2f"],["gridMask","variedFactor"]]]]],externalNames:["DEG_TO_RAD","std","d","gridFilterAxis"]},externals:()=>({DEG_TO_RAD:Yv,std:n,d:o,gridFilterAxis:_b})})&&e.f)({}
244)),YP={name:"Grid",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Simple grid lines pattern with adjustable thickness and rotation",acceptsUVContext:!0,props:{color:{default:"#ffffff",transform:O,description:"The color of the grid lines",ui:{type:"color",label:"Line Color",group:"Colors"}},cellColor:{default:"transparent",transform:O,description:"Fill color of the cells (transparent = lines only). Pair with Variation for a tiled look.",ui:{type:"color",label:"Cell Color",group:"Colors"}},cells:{default:10,description:"Number of cells along the shortest canvas edge (creates square cells)",ui:{type:["range","map"],min:1,max:50,step:1,label:"Cells",group:"Effect"}},thickness:{default:1,description:"Thickness of grid lines (normalized, 0.0-1.0)",ui:{type:["range","map"],min:0,max:20,step:.1,label:"Thickness",group:"Effect"}},rotation:{default:0,description:"Rotation of the grid in degrees. At 45\xB0 this produces a crosshatch/diamond pattern.",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},softness:{default:0,description:"Softness of the line edges (0 = crisp, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},variation:{default:0,description:"Per-cell random lightening/darkening of the cell fill color",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variation",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},mapSampleUVs:({uniforms:e,ctx:t})=>{let s=T(p9,"gridCellCenterUV",[t.uv,t.viewportSize,e.cells,e.rotation]);return{thickness:s,cells:s,rotation:s,softness:s}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=T(m9,"gridField",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,t.cells,t.thickness,t.rotation,t.softness,t.variation]),a=r.member("x"),i=r.member("y"),l=de(t.cellColor.member("rgb").mul(i),t.cellColor.member("a"));return T(Ye[s.colorSpace??0]??Be,"mixColors",[l,t.color,a])}};var _9=20,f9=8,vb=128,hb=vb*vb,XP="rgba16float",fb=e=>Math.max(f9,Math.min(vb,Math.floor(e))),e_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({buffer:{storage:o.arrayOf(o.vec4f,hb),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({cursorX:o.f32,cursorY:o.f32,mouseVelX:o.f32,mouseVelY:o.f32,dt:o.f32,decay:o.f32,intensity:o.f32,radius:o.f32,aspect:o.f32}),"uniform")}}),"updateLayout"),Gv=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({buffer:{storage:o.arrayOf(o.vec4f,hb),access:"readonly"},dispTex:{storageTexture:o.textureStorage2d(XP,"write-only")}}),"outputLayout");function v9(e){return b.fn([o.u32,o.u32])((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r)=>{"use gpu";let a=e_.$.params,i=__tsover_add(__tsover_mul(r,o.u32(e)),s),l=e_.$.buffer[i],c=__tsover_mul(l.x,__tsover_sub(1,__tsover_mul(a.decay,a.dt))),d=__tsover_mul(l.y,__tsover_sub(1,__tsover_mul(a.decay,a.dt))),u=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(e)),p=__tsover_div(__tsover_add(o.f32(r),.5),o.f32(e)),m=n.select(__tsover_sub(u,a.cursorX),__tsover_mul(__tsover_sub(u,a.cursorX),a.aspect),a.aspect>=1),_=n.select(__tsover_div(__tsover_sub(p,a.cursorY),a.aspect),__tsover_sub(p,a.cursorY),a.aspect>=1),v=__tsover_add(__tsover_mul(m,m),__tsover_mul(_,_)),h=__tsover_mul(a.radius,2);if(v<__tsover_mul(h,h)&&__tsover_add(n.abs(a.mouseVelX),n.abs(a.mouseVelY))>.01){let y=n.exp(__tsover_mul(__tsover_div(v,__tsover_mul(a.radius,a.radius)),-1));c=__tsover_add(c,__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(a.mouseVelX,y),a.intensity),a.dt),.5)),d=__tsover_add(d,__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(a.mouseVelY,y),a.intensity),a.dt),.5))}c=n.clamp(c,-1,1),d=n.clamp(d,-1,1),e_.$.buffer[i]=o.vec4f(c,d,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"updateLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["gridSize"]]],"+","cx"]],[13,"cell",[8,[7,[7,"updateLayout","$"],"buffer"],"idx"]],[12,"dx",[1,[7,"cell","x"],"*",[1,[5,"1"],"-",[1,[7,"p","decay"],"*",[7,"p","dt"]]]]],[12,"dy",[1,[7,"cell","y"],"*",[1,[5,"1"],"-",[1,[7,"p","decay"],"*",[7,"p","dt"]]]]],[13,"cellX",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["gridSize"]]]],[13,"cellY",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["gridSize"]]]],[13,"ddx",[6,[7,"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,[7,"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,"radius2",[1,[7,"p","radius"],"*",[5,"2"]]],[11,[3,[1,"distSq","<",[1,"radius2","*","radius2"]],"&&",[1,[1,[6,[7,"std","abs"],[[7,"p","mouseVelX"]]],"+",[6,[7,"std","abs"],[[7,"p","mouseVelY"]]]],">",[5,"0.01"]]],[0,[[13,"influence",[6,[7,"std","exp"],[[1,[1,"distSq","/",[1,[7,"p","radius"],"*",[7,"p","radius"]]],"*",[4,"-",[5,"1"]]]]]],[2,"dx","=",[1,"dx","+",[1,[1,[1,[1,[7,"p","mouseVelX"],"*","influence"],"*",[7,"p","intensity"]],"*",[7,"p","dt"]],"*",[5,"0.5"]]]],[2,"dy","=",[1,"dy","+",[1,[1,[1,[1,[7,"p","mouseVelY"],"*","influence"],"*",[7,"p","intensity"]],"*",[7,"p","dt"]],"*",[5,"0.5"]]]]]]],[2,"dx","=",[6,[7,"std","clamp"],["dx",[4,"-",[5,"1"]],[5,"1"]]]],[2,"dy","=",[6,[7,"std","clamp"],["dy",[4,"-",[5,"1"]],[5,"1"]]]],[2,[8,[7,[7,"updateLayout","$"],"buffer"],"idx"],"=",[6,[7,"d","vec4f"],["dx","dy",[5,"0"],[5,"0"]]]]]],externalNames:["updateLayout","d","gridSize","std"]},externals:()=>({updateLayout:e_,d:o,gridSize:e,std:n})})&&t.f)({})).$name("gridDistortionUpdate")}function h9(e){return b.fn([o.u32,o.u32])((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r)=>{"use gpu";let a=__tsover_add(__tsover_mul(r,o.u32(e)),s),i=Gv.$.buffer[a];n.textureStore(Gv.$.dispTex,o.vec2u(s,r),o.vec4f(i.x,i.y,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["gridSize"]]],"+","cx"]],[13,"cell",[8,[7,[7,"outputLayout","$"],"buffer"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"dispTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"cell","x"],[7,"cell","y"],[5,"0"],[5,"1"]]]]]]],externalNames:["d","gridSize","outputLayout","std"]},externals:()=>({d:o,gridSize:e,outputLayout:Gv,std:n})})&&t.f)({})).$name("gridDistortionOutput")}var GP=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=r>
2441,i=n.max(n.select(__tsover_mul(s,r),s,a),1),l=n.max(n.select(s,__tsover_div(s,r),a),1),c=n.floor(__tsover_mul(t.x,i)),d=n.floor(__tsover_mul(t.y,l));return o.vec2f(__tsover_div(__tsover_add(c,.5),i),__tsover_div(__tsover_add(d,.5),l))}),{v:1,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,[7,"std","max"],[[6,[7,"std","select"],[[1,"gridSize","*","aspect"],"gridSize","isWide"]],[5,"1"]]]],[13,"cellsY",[6,[7,"std","max"],[[6,[7,"std","select"],["gridSize",[1,"gridSize","/","aspect"],"isWide"]],[5,"1"]]]],[13,"cellIndexX",[6,[7,"std","floor"],[[1,[7,"uv","x"],"*","cellsX"]]]],[13,"cellIndexY",[6,[7,"std","floor"],[[1,[7,"uv","y"],"*","cellsY"]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"cellIndexX","+",[5,"0.5"]],"/","cellsX"],[1,[1,"cellIndexY","+",[5,"0.5"]],"/","cellsY"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),WP=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let a=n.clamp(s,o.vec2f(-.1,-.1),o.vec2f(.1,.1));return t.sub(a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"disp"}],body:[0,[[13,"maxDisp",[5,"0.1"]],[13,"clamped",[6,[7,"std","clamp"],["disp",[6,[7,"d","vec2f"],[[4,"-","maxDisp"],[4,"-","maxDisp"]]],[6,[7,"d","vec2f"],["maxDisp","maxDisp"]]]]],[10,[6,[7,"uv","sub"],["clamped"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),qP={name:"GridDistortion",category:"Interactive",description:"Interactive grid distortion controlled by mouse position",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},usesPointer:!0,props:{intensity:{default:1,description:"Strength of the distortion effect",ui:{type:"range",min:0,max:5,step:.1,label:"Intensity",group:"Effect"}},decay:{default:3,description:"Rate of distortion decay (higher = faster)",ui:{type:"range",min:0,max:10,step:.1,label:"Decay",group:"Effect"}},radius:{default:1,description:"Radius of the distortion effect",ui:{type:"range",min:0,max:3,step:.1,label:"Radius",group:"Effect"}},gridSize:{default:20,compileTimeWhen:(e,t)=>fb(e)!==fb(t),description:"Resolution of the distortion grid (higher = more detailed)",ui:{type:["range","map"],min:8,max:128,step:1,label:"Grid Size",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a,onResize:i,dimensions:l}=e,c=t?.root;if(!c)return null;let d=fb(s("gridSize")??_9),u=Rt(c,o.vec4f,hb),p=(globalThis.__TYPEGPU_AUTONAME__??(R=>R))(c.createTexture({size:[d,d],format:XP}).$usage("storage","sampled"),"dispTex");a(()=>p.destroy());let m=r(p),_=(globalThis.__TYPEGPU_AUTONAME__??(R=>R))(c.createUniform(o.struct({cursorX:o.f32,cursorY:o.f32,mouseVelX:o.f32,mouseVelY:o.f32,dt:o.f32,decay:o.f32,intensity:o.f32,radius:o.f32,aspect:o.f32})),"updateParams"),v=Math.max(1,Math.round(l.width)),h=Math.max(1,Math.round(l.height));i(({width:R,height:D})=>{v=Math.max(1,Math.round(R)),h=Math.max(1,Math.round(D))});let y=[d,d],x=v9(d),g=h9(d),w=c.createBindGroup(e_,{buffer:u,params:_.buffer}),f=c.createBindGroup(Gv,{buffer:u,dispTex:p}),A=pt(c,(R=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(R.f=((D,M)=>{"use gpu";x(D,M)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"updateKernel",["cx","cy"]]]],externalNames:["updateKernel"]},externals:()=>({updateKernel:x})})&&R.f)({}),{size:y,bindGroup:w}),E=pt(c,(R=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(R.f=((D,M)=>{"use gpu";g(D,M)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:g})})&&R.f)({}),{size:y,bindGroup:f}),P=.5,C=.5,$=Date.now(),U=0,k=0;return{outputs:{displacement:m},getComputeNodes:R=>
244{let D=R,M=Date.now(),z=Math.min(D.deltaTime??0,.016),L=Math.max(1,D.dimensions?.width??v)/Math.max(1,D.dimensions?.height??h),B=D.pointer?.x??.5,N=D.pointer?.y??.5,G=z>0?(B-P)/z:0,I=z>0?(N-C)/z:0;U=U*.85+G*.15,k=k*.85+I*.15,P=B,C=N,Math.abs(G)+Math.abs(I)>.01&&($=M);let X=s("decay")??3,F=X>0?Math.min(3e4,Math.log(1e-4)/Math.log(Math.max(1e-6,1-X*.016))*16.67):3e4;return M-$>F?null:(_.write({cursorX:B,cursorY:N,mouseVelX:U,mouseVelY:k,dt:z,decay:X,intensity:s("intensity")??1,radius:(s("radius")??1)*.05,aspect:L}),[A,E])}}},fragment:({childNode:e,ctx:t,computeOutputs:s,propValues:r,convertToTexture:a,uniforms:i})=>{if(!e)return me;let l=a(e),c=r.edges??0,d=s?.displacement,u=T(GP,"gridCellSnap",[t.uv,i.gridSize,t.aspect]),p=d?d.sample(u,"linearClamp").member("xy"):rr("vec2f(0.0, 0.0)");return T(Re,"unpremultiplyAlpha",[Gt(T(WP,"gridDistortOffsetUV",[t.uv,p]),m=>l.sample(m),c)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a,computeOutputs:i})=>{let l=i?.displacement;if(!l)return{uv:e,mask:t};let c=a.edges??0,d=T(GP,"gridCellSnap",[e,s.gridSize,r]);return zs(T(WP,"gridDistortOffsetUV",[e,l.sample(d,"linearClamp").member("xy")]),t,c)}};var HP={name:"Group",category:"Utilities",description:"Container for organizing and composing child effects",requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null,boxResamplesContent:!0},props:{},fragment:({childNode:e})=>e??me};var qc=.1,Su=Math.PI/180,y9=e=>e==="cmyk"?1:0,g9=e=>typeof e=="number"?e:e==="cmyk"?1:0,x9=b.fn([o.vec4f,o.vec2f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(__tsover_mul(s.x,r),s.y),c=__tsover_mul(a,Su),d=n.cos(c),u=n.sin(c),p=o.vec2f(n.dot(l,o.vec2f(d,__tsover_mul(u,-1))),n.dot(l,o.vec2f(u,d))),m=n.fract(p.mul(i)).sub(o.vec2f(.5,.5)),_=n.dot(o.vec3f(t.x,t.y,t.z),o.vec3f(.299,.587,.114)),v=__tsover_add(__tsover_mul(_,.7),.15),h=n.length(m),y=__tsover_sub(1,n.smoothstep(__tsover_sub(v,qc),__tsover_add(v,qc),h));return o.vec4f(__tsover_mul(t.x,y),__tsover_mul(t.y,y),__tsover_mul(t.z,y),__tsover_mul(t.w,y))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"c",[6,[7,"std","cos"],["angleRad"]]],[13,"s",[6,[7,"std","sin"],["angleRad"]]],[13,"rotatedUV",[6,[7,"d","vec2f"],[[6,[7,"std","dot"],["aspectUV",[6,[7,"d","vec2f"],["c",[1,"s","*",[4,"-",[5,"1"]]]]]]],[6,[7,"std","dot"],["aspectUV",[6,[7,"d","vec2f"],["s","c"]]]]]]],[13,"gridUV",[6,[7,[6,[7,"std","fract"],[[6,[7,"rotatedUV","mul"],["frequency"]]]],"sub"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"brightness",[6,[7,"std","dot"],[[6,[7,"d","vec3f"],[[7,"childColor","x"],[7,"childColor","y"],[7,"childColor","z"]]],[6,[7,"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,[7,"std","length"],["gridUV"]]],[13,"dotPattern",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"dotSize","-","SMOOTHNESS"],[1,"dotSize","+","SMOOTHNESS"],"dist"]]]],[10,[6,[7,"d","vec4f"],[[1,[7,"childColor","x"],"*","dotPattern"],[1,[7,"childColor","y"],"*","dotPattern"],[1,[7,"childColor","z"],"*","dotPattern"],[1,[7,"childColor","w"],"*","dotPattern"]]]]]],externalNames:["d","DEG_TO_RAD","std","SMOOTHNESS"]},externals:()=>({d:o,DEG_TO_RAD:Su,std:n,SMOOTHNESS:qc})})&&e.f)({})),Wv=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(__tsover_add(s,r),Su);return o.vec2f(__tsover_add(t.x,__tsover_mul(n.cos(l),a)),__tsover_add(t.y,__tsover_div(__tsover_mul(n.sin(l),a),i)))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,[6,[7,"std","cos"],["angleRad"]],"*","misprint"]],[1,[7,"uv","y"],"+",[1,[1,[6,[7,"std","sin"],["angleRad"]],"*","misprint"],"/","aspect"]]]]]]],externalNames:["DEG_TO_RAD","d","std"]},externals:()=>({DEG_TO_RAD:Su,d:o,std:n})})&&e.f)({})),Hc=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_sub(1,n.max(n.max(t.x,t.y),t.z))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[10,[1,[5,"1"],"-",[6,[7,"std","max"],[[6,[7,"std","max"],[[7,"s","x"],[7,"s","y"]]],[7,"s","z"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),b9=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Hc(t),r=n.max(__tsover_sub(1,s),1e-4);return __tsover_div(__tsover_sub(__tsover_sub(1,t.x),s),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[13,"k",[6,"halftoneChannelK",["s"]]],[13,"invK",[6,[7,"std","max"],[[1,[5,"1"],"-","k"],[5,"0.0001"]]]],[10,[1,[1,[1,[5,"1"],"-",[7,"s","x"]],"-","k"],"/","invK"]]]],externalNames:["halftoneChannelK","std"]},externals:()=>({halftoneChannelK:Hc,std:n})})&&e.f)({})),w9=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Hc(t),r=n.max(__tsover_sub(1,s),1e-4);return __tsover_div(__tsover_sub(__tsover_sub(1,t.y),s),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[13,"k",[6,"halftoneChannelK",["s"]]],[13,"invK",[6,[7,"std","max"],[[1,[5,"1"],"-","k"],[5,"0.0001"]]]],[10,[1,[1,[1,[5,"1"],"-",[7,"s","y"]],"-","k"],"/","invK"]]]],externalNames:["halftoneChannelK","std"]},externals:()=>({halftoneChannelK:Hc,std:n})})&&e.f)({})),T9=b.fn([o.vec4f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Hc(t),r=n.max(__tsover_sub(1,s),1e-4);return __tsover_div(__tsover_sub(__tsover_sub(1,t.z),s),r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"s"}],body:[0,[[13,"k",[6,"halftoneChannelK",["s"]]],[13,"invK",[6,[7,"std","max"],[[1,[5,"1"],"-","k"],[5,"0.0001"]]]],[10,[1,[1,[1,[5,"1"],"-",[7,"s","z"]],"-","k"],"/","invK"]]]],externalNames:["halftoneChannelK","std"]},externals:()=>({halftoneChannelK:Hc,std:n})})&&e.f)({}
244)),Xv=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(__tsover_mul(t.x,s),t.y),c=__tsover_mul(r,Su),d=n.cos(c),u=n.sin(c),p=o.vec2f(n.dot(l,o.vec2f(d,__tsover_mul(u,-1))),n.dot(l,o.vec2f(u,d))),m=n.fract(p.mul(i)).sub(o.vec2f(.5,.5)),_=n.length(m),v=__tsover_sub(__tsover_mul(a,.75),qc);return __tsover_sub(1,n.smoothstep(__tsover_sub(v,qc),__tsover_add(v,qc),_))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"c",[6,[7,"std","cos"],["angleRad"]]],[13,"s",[6,[7,"std","sin"],["angleRad"]]],[13,"rotatedUV",[6,[7,"d","vec2f"],[[6,[7,"std","dot"],["aspectUV",[6,[7,"d","vec2f"],["c",[1,"s","*",[4,"-",[5,"1"]]]]]]],[6,[7,"std","dot"],["aspectUV",[6,[7,"d","vec2f"],["s","c"]]]]]]],[13,"grid",[6,[7,[6,[7,"std","fract"],[[6,[7,"rotatedUV","mul"],["frequency"]]]],"sub"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"dist",[6,[7,"std","length"],["grid"]]],[13,"size",[1,[1,"intensity","*",[5,"0.75"]],"-","SMOOTHNESS"]],[10,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"size","-","SMOOTHNESS"],[1,"size","+","SMOOTHNESS"],"dist"]]]]]],externalNames:["d","DEG_TO_RAD","std","SMOOTHNESS"]},externals:()=>({d:o,DEG_TO_RAD:Su,std:n,SMOOTHNESS:qc})})&&e.f)({})),qv=b.fn([o.vec4f,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return n.mix(o.vec3f(1,1,1),o.vec3f(t.x,t.y,t.z),o.vec3f(__tsover_mul(s,t.w)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"inkColor"},{type:"i",name:"inkMask"}],body:[0,[[10,[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],[6,[7,"d","vec3f"],[[7,"inkColor","x"],[7,"inkColor","y"],[7,"inkColor","z"]]],[6,[7,"d","vec3f"],[[1,"inkMask","*",[7,"inkColor","w"]]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),jP={name:"Halftone",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Halftone dot pattern effect for printing aesthetics",requiresRTT:!0,requiresChild:!0,blendWithChildren:!1,props:{style:{default:"classic",transform:y9,compileTime:!0,description:"Halftone rendering style",ui:{type:"select",options:[{label:"Simple",value:"classic"},{label:"CMYK Print",value:"cmyk"}],label:"Style",group:"Effect"}},frequency:{default:100,description:"Frequency of the halftone dots",ui:{type:["range","map"],min:10,max:300,step:1,label:"Frequency",group:"Effect"}},angle:{default:45,transform:Jt,description:"Rotation angle of the pattern (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect",condition:{style:"classic"}}},cyanAngle:{default:15,transform:Jt,description:"Screen angle for the cyan plate (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Cyan Angle",group:"Plate Angles",condition:{style:"cmyk"}}},magentaAngle:{default:75,transform:Jt,description:"Screen angle for the magenta plate (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Magenta Angle",group:"Plate Angles",condition:{style:"cmyk"}}},yellowAngle:{default:0,transform:Jt,description:"Screen angle for the yellow plate (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Yellow Angle",group:"Plate Angles",condition:{style:"cmyk"}}},blackAngle:{default:45,transform:Jt,description:"Screen angle for the black plate (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Black Angle",group:"Plate Angles",condition:{style:"cmyk"}}},misprint:{default:0,description:"Simulated mis-registration between plates. Plates are offset around the misprint angle, producing colour fringing at the edges of inked regions.",ui:{type:["range","map"],min:0,max:.01,step:5e-4,label:"Misprint",group:"Effect",condition:{style:"cmyk"}}},misprintAngle:{default:0,transform:Jt,description:"Direction the plates drift apart. Rotating this rotates the colour-fringing pattern.",ui:{type:["range","map"],min:0,max:360,step:1,label:"Misprint Angle",group:"Effect",condition:{style:"cmyk"}}},paperColor:{default:"#ffffff",transform:O,description:"Paper/substrate color shown where no ink lands",ui:{type:"color",label:"Paper",group:"Inks",condition:{style:"cmyk"}}},cyanColor:{default:"#00ffff",transform:O,description:"Cyan ink color",ui:{type:"color",label:"Cyan",group:"Inks",condition:{style:"cmyk"}}},magentaColor:{default:"#ff00ff",transform:O,description:"Magenta ink color",ui:{type:"color",label:"Magenta",group:"Inks",condition:{style:"cmyk"}}},yellowColor:{default:"#ffff00",transform:O,description:"Yellow ink color",ui:{type:"color",label:"Yellow",group:"Inks",condition:{style:"cmyk"}}},blackColor:{default:"#000000",transform:O,description:"Black (key) ink color",ui:{type:"color",label:"Black",group:"Inks",condition:{style:"cmyk"}}}},fragment:({childNode:e,ctx:t,uniforms:s,propValues:r,convertToTexture:a})=>{if(!e)return me;let i=a(e),l=$=>T(Re,"unpremultiplyAlpha",[i.sample($)]);if(g9(r.style)===0)return T(x9,"halftoneClassic",[l(t.uv),t.uv,t.aspect,s.angle,s.frequency]);let c=l(T(Wv,"halftonePlateUV",[t.uv,s.misprintAngle,le(0),s.misprint,t.aspect])),d=l(T(Wv,"halftonePlateUV",[t.uv,s.misprintAngle,le(90),s.misprint,t.aspect])),u=l(T(Wv,"halftonePlateUV",[t.uv,s.misprintAngle,le(180),s.misprint,t.aspect])),p=l(T(Wv,"halftonePlateUV",[t.uv,s.misprintAngle,le(270),s.misprint,t.aspect])),m=l(t.uv),_=T(b9,"halftoneChannelC",[c]),v=T(w9,"halftoneChannelM",[d]),h=T(T9,"halftoneChannelY",[u]),y=T(Hc,"halftoneChannelK",[p]),x=T(Xv,"halftonePlateGrid",[t.uv,t.aspect,s.cyanAngle,_,s.frequency]),g=T(Xv,"halftonePlateGrid",[t.uv,t.aspect,s.magentaAngle,v,s.frequency]),w=T(Xv,"halftonePlateGrid",[t.uv,t.aspect,s.yellowAngle,h,s.frequency]),f=T(Xv,"halftonePlateGrid",[t.uv,t.aspect,s.blackAngle,y,s.frequency]),A=T(qv,"halftoneTransmission",[s.cyanColor,x]),E=T(qv,"halftoneTransmission",[s.magentaColor,g]),P=T(qv,"halftoneTransmission",[s.yellowColor,w]),C=T(qv,"halftoneTransmission",[s.blackColor,f]);return de(s.paperColor.member("rgb").mul(A).mul(E).mul(P).mul(C),m.member("a"))}};var S9=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=to(t,r,c,d);return Is(hm(u.x,u.y,s),a,i,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","heartSdf"],[[7,"local","x"],[7,"local","y"],"radiu
244s"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),ZP={name:"Heart",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Heart shape with adjustable size",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the heart",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the heart",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.32,description:"Size of the heart (fit radius)",ui:{type:"range",min:0,max:1,step:.01,label:"Size",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
244olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(S9,"heartShape",[t.center,t.radius,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var{sdfSpaceUV:A9}=Zs,{createSvgSdfSampler:E9,createAnalyticSdfSampler:M9,driveAnalyticSubProps:C9,ANALYTIC_SDF_EXTRA_FIELDS:P9}=ft,{createVolumetricFieldComputeNode:k9,buildVolumetricFieldSampler:R9,VOLUMETRIC_FIELD_EXTRA_FIELDS:$9}=ys,KP=.017453292519943295,U9=JSON.stringify({type:"circleSDF",radius:.35}),D9=[{color:"#02010f",position:0},{color:"#2a0a8a",position:.2},{color:"#a41c9b",position:.45},{color:"#e8632b",position:.7},{color:"#f9e25f",position:.9},{color:"#ffffff",position:1}];function z9(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var Hv=b.fn([o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.mix(-.6,.6,r),l=__tsover_sub(tn(o.vec2f(__tsover_add(__tsover_mul(s,4),__tsover_mul(a,13.7)),__tsover_add(__tsover_mul(r,3),__tsover_mul(a,7.1)))),.5),c=__tsover_add(__tsover_sub(t,i),__tsover_mul(l,.12)),d=n.exp(__tsover_div(__tsover_mul(__tsover_mul(c,c),-1),__tsover_mul(.16,.16))),u=__tsover_mul(n.smoothstep(0,.15,r),__tsover_sub(1,n.smoothstep(.85,1,r)));return n.clamp(__tsover_mul(d,u),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"a"},{type:"i",name:"b"},{type:"i",name:"tk"},{type:"i",name:"phase"}],body:[0,[[13,"posS",[6,[7,"std","mix"],[[4,"-",[5,"0.6"]],[5,"0.6"],"tk"]]],[13,"wob",[1,[6,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,[1,"b","*",[5,"4"]],"+",[1,"phase","*",[5,"13.7"]]],[1,[1,"tk","*",[5,"3"]],"+",[1,"phase","*",[5,"7.1"]]]]]]],"-",[5,"0.5"]]],[13,"aEff",[1,[1,"a","-","posS"],"+",[1,"wob","*",[5,"0.12"]]]],[13,"band",[6,[7,"std","exp"],[[1,[1,[1,"aEff","*","aEff"],"*",[4,"-",[5,"1"]]],"/",[1,[5,"0.16"],"*",[5,"0.16"]]]]]],[13,"gate",[1,[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.15"],"tk"]],"*",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.85"],[5,"1"],"tk"]]]]],[10,[6,[7,"std","clamp"],[[1,"band","*","gate"],[5,"0"],[5,"1"]]]]]],externalNames:["std","noise","d"]},externals:()=>({std:n,noise:mt,d:o})})&&e.f)({})),I9=b.fn([o.f32,o.vec2f,o.f32,o.vec4f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=a.x,c=a.y,d=a.z,u=a.w,p=n.max(i,.001),m=__tsover_div(t,p),_=__tsover_sub(1,n.smoothstep(-.003,.003,m)),v=__tsover_mul(u,KP),h=n.cos(v),y=n.sin(v),x=__tsover_add(__tsover_mul(h,__tsover_sub(s.x,.5)),__tsover_mul(y,__tsover_sub(s.y,.5))),g=__tsover_sub(__tsover_mul(y,__tsover_sub(s.x,.5)),__tsover_mul(h,__tsover_sub(s.y,.5))),w=__tsover_sub(__tsover_mul(.1,r),.3),f=n.fract(w),A=n.fract(__tsover_add(w,__tsover_div(1,3))),E=n.fract(__tsover_add(w,__tsover_div(2,3))),P=n.exp(__tsover_div(__tsover_mul(n.max(__tsover_mul(m,-1),0),-1),.12)),C=__tsover_add(.8,__tsover_mul(.8,P));C=n.mix(C,0,Hv(x,g,f,1)),C=n.mix(C,0,Hv(x,g,A,2)),C=n.mix(C,0,Hv(x,g,E,3)),C=__tsover_mul(C,__tsover_mul(2,l)),C=__tsover_add(C,__tsover_mul(__tsover_mul(d,2),n.exp(__tsover_div(__tsover_mul(n.abs(m),-1),.03)))),C=__tsover_mul(n.min(C,1),_),C=n.pow(n.max(C,0),1.2);let $=n.exp(__tsover_div(__tsover_mul(n.max(m,0),-1),__tsover_add(.05,__tsover_mul(.15,c)))),U=n.fract(__tsover_sub(__tsover_mul(w,3),.1)),k=n.fract(__tsover_sub(__tsover_mul(x,1.2),U)),R=__tsover_add(.5,__tsover_mul(n.smoothstep(.3,.65,k),__tsover_sub(1,n.smoothstep(.65,1,k)))),D=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(.9,n.pow($,.8)),R),5),c),c),__tsover_sub(1,_)),M=n.clamp(__tsover_add(C,D),0,1),z=__tsover_mul(__tsover_mul(__tsover_mul(n.smoothstep(-.06,.1,s.x),__tsover_sub(1,n.smoothstep(.9,1.06,s.x))),n.smoothstep(-.06,.1,s.y)),__tsover_sub(1,n.smoothstep(.9,1.06,s.y)));return M=__tsover_mul(M,z),M=__tsover_add(M,__tsover_mul(.005,__tsover_sub(Jr(o.vec2f(__tsover_mul(s.x,991.3),__tsover_mul(s.y,787.7))),.5))),n.clamp(M,0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"fieldRaw"},{type:"i",name:"sdfUV"},{type:"i",name:"animTime"},{type:"i",name:"p0"},{type:"i",name:"scale"}],body:[0,[[13,"innerGlow",[7,"p0","x"]],[13,"outerGlow",[7,"p0","y"]],[13,"contour",[7,"p0","z"]],[13,"angleDeg",[7,"p0","w"]],[13,"scl",[6,[7,"std","max"],["scale",[5,"0.001"]]]],[13,"f",[1,"fieldRaw","/","scl"]],[13,"inside",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.003"]],[5,"0.003"],"f"]]]],[13,"angleRad",[1,"angleDeg","*","DEG_TO_RAD"]],[13,"dirX",[6,[7,"std","cos"],["angleRad"]]],[13,"dirY",[6,[7,"std","sin"],["angleRad"]]],[13,"a",[1,[1,"dirX","*",[1,[7,"sdfUV","x"],"-",[5,"0.5"]]],"+",[1,"dirY","*",[1,[7,"sdfUV","y"],"-",[5,"0.5"]]]]],[13,"b",[1,[1,"dirY","*",[1,[7,"sdfUV","x"],"-",[5,"0.5"]]],"-",[1,"dirX","*",[1,[7,"sdfUV","y"],"-",[5,"0.5"]]]]],[13,"tBase",[1,[1,[5,"0.1"],"*","animTime"],"-",[5,"0.3"]]],[13,"t0",[6,[7,"std","fract"],["tBase"]]],[13,"t1",[6,[7,"std","fract"],[[1,"tBase","+",[1,[5,"1"],"/",[5,"3"]]]]]],[13,"t2",[6,[7,"std","fract"],[[1,"tBase","+",[1,[5,"2"],"/",[5,"3"]]]]]],[13,"innerBlur",[6,[7,"std","exp"],[[1,[1,[6,[7,"std","max"],[[1,"f","*",[4,"-",[5,"1"]]],[5,"0"]]],"*",[4,"-",[5,"1"]]],"/",[5,"0.12"]]]]],[12,"inner",[1,[5,"0.8"],"+",[1,[5,"0.8"],"*","innerBlur"]]],[2,"inner","=",[6,[7,"std","mix"],["inner",[5,"0"],[6,"heatmapShadow",["a","b","t0",[5,"1"]]]]]],[2,"inner","=",[6,[7,"std","mix"],["inner",[5,"0"],[6,"heatmapShadow",["a","b","t1",[5,"2"]]]]]],[2,"inner","=",[6,[7,"std","mix"],["inner",[5,"0"],[6,"heatmapShadow",["a","b","t2",[5,"3"]]]]]],[2,"inner","=",[1,"inner","*",[1,[5,"2"],"*","innerGlow"]]],[2,"inner","=",[1,"inner","+",[1,[1,"contour","*",[5,"2"]],"*",[6,[7,"std","exp"],[[1,[1,[6,[7,"std","abs"],["f"]],"*",[4,"-",[5,"1"]]],"/",[5,"0.03"]]]]]]],[2,"inner","=",[1,[6,[7,"std","min"],["inner",[5,"1"]]],"*","inside"]],[2,"inner","=",[6,[7,"std","pow"],[[6,[7,"std","max"],["inner",[5,"0"]]],[5,"1.2"]]]],[13,"outerBlur",[6,[7,"std","exp"],[[1,[1,[6,[7,"std","max"],["f",[5,"0"]]],"*",[4,"-",[5,"1"]]],"/",[1,[5,"0.05"],"+",[1,[5,"0.15"],"*","outerGlow"]]]]]],[13,"t3",[6,[7,"std","fract"],[[1,[1,"tBase","*",[5,"3"]],"-",[5,"0.1"]]]]],[13,"yy",[6,[7,"std","fract"],[[1,[1,"a","*",[5,"1.2"]],"-","t3"]]]],[13,"animatedMask",[1,[5,"0.5"],"+",[1,[6,[7,"std","smoothstep"],[[5,"0.3"],[5,"0.65"],"yy"]],"*",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.65"],[5,"1"],"yy"]]]]]],[13,"outer",[1,[1,[1,[1,[1,[1,[5,"0.9"],"*",[6,[7,"std","pow"],["outerBlur",[5,"0.8"]]]],"*","animatedMask"],"*",[5,"5"]],"*","outerGlow"],"*","outerGlow"],"*",[1,[5,"1"],"-","inside"]]],[12,"heat",[6,[7,"std","clamp"],[[1,"inner","+","outer"],[5,"0"],[5,"1"]]]],[13,"frame",[1,[1,[1,[6,[7,"std","smoothstep"],[[4,"-",[5,"0.06"]],[5,"0.1"],[7,"sdfUV","x"]]],"*",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.9"],[5,"1.06"],[7,"sdfUV","x"]]]]],"*",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.06"]],[5,"0.1"],[7,"sdfUV","y"]
244]]],"*",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.9"],[5,"1.06"],[7,"sdfUV","y"]]]]]],[2,"heat","=",[1,"heat","*","frame"]],[2,"heat","=",[1,"heat","+",[1,[5,"0.005"],"*",[1,[6,[7,"noise","hash12"],[[6,[7,"d","vec2f"],[[1,[7,"sdfUV","x"],"*",[5,"991.3"]],[1,[7,"sdfUV","y"],"*",[5,"787.7"]]]]]],"-",[5,"0.5"]]]]],[10,[6,[7,"std","clamp"],["heat",[5,"0"],[5,"1"]]]]]],externalNames:["std","DEG_TO_RAD","heatmapShadow","noise","d"]},externals:()=>({std:n,DEG_TO_RAD:KP,heatmapShadow:Hv,noise:mt,d:o})})&&e.f)({})),L9=b.fn([o.f32,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.smoothstep(0,.15,t);return o.vec4f(n.clamp(s.xyz,o.vec3f(0),o.vec3f(1)),__tsover_mul(s.w,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"heat"},{type:"i",name:"ramp"}],body:[0,[[13,"shapeA",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.15"],"heat"]]],[10,[6,[7,"d","vec4f"],[[6,[7,"std","clamp"],[[7,"ramp","xyz"],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]],[1,[7,"ramp","w"],"*","shapeA"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),JP={name:"Heatmap",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Thermal-camera heat flowing through any 2D, SVG, or 3D shape. Powered by Paper Shaders.",animatedTime:{speed:"speed"},extraFields:{...$9,...P9},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:we,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:O,description:"Cold color (used when no gradient stops are set)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#f9e25f",transform:O,description:"Hot color (used when no gradient stops are set)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:{...xs(),default:D9},colorSpace:{default:"oklab",transform:Ue,compileTime:!0,description:"Color space for the heat ramp interpolation",ui:{type:"select",options:ze,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:U9,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"}},compute:e=>{let t=k9(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c=t?.volumetricFieldTexture;if(c)l=R9(c,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound}).volumetricFieldSampler;else{let x=r.shapeSdfUrl||"";x?l=E9(e,x):l=M9(z9(r.shapeType||"",i("shape")),C9(e,()=>i("shape")))}let d=T(A9,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),u=l(d),p=Fe(e),m=de(s.innerGlow,s.outerGlow,s.contour,s.angle),_=T(I9,"heatmapHeatField",[u.member("r"),d,p,m,s.scale]),v=r.colorSpace??0,h=r.stopCount??0,y;return h>1?y=js(_,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},v):y=T(Ye[v]??Be,"mixColors",[s.colorA,s.colorB,_]),T(L9,"heatmapCompose",[_,y])}};var QP=Math.PI/180,e4=Math.sqrt(3),t4=2/Math.sqrt(3),s4=Math.sqrt(3)/2,yb=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return o.vec2f(__tsover_sub(t.x,__tsover_mul(s.x,n.floor(__tsover_div(t.x,s.x)))),__tsover_sub(t.y,__tsover_mul(s.y,n.floor(__tsover_div(t.y,s.y)))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"m"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"p","x"],"-",[1,[7,"m","x"],"*",[6,[7,"std","floor"],[[1,[7,"p","x"],"/",[7,"m","x"]]]]]],[1,[7,"p","y"],"-",[1,[7,"m","y"],"*",[6,[7,"std","floor"],[[1,[7,"p","y"],"/",[7,"m","y"]]]]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({}
244)),F9=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_div(s.x,s.y),u=o.vec2f(__tsover_mul(t.x,d),t.y),p=-__tsover_mul(i,QP),m=n.cos(p),_=n.sin(p),v=__tsover_mul(d,.5),h=.5,y=__tsover_sub(u.x,v),x=__tsover_sub(u.y,h),g=o.vec2f(__tsover_add(__tsover_sub(__tsover_mul(y,m),__tsover_mul(x,_)),v),__tsover_add(__tsover_add(__tsover_mul(y,_),__tsover_mul(x,m)),h)).mul(r),w=o.vec2f(e4,1),f=w.mul(.5),A=yb(g,w).sub(f),E=yb(g.sub(f),w).sub(f),P=n.select(E,A,n.dot(A,A)<n.dot(E,E)),C=g.sub(P),$=n.round(__tsover_mul(C.x,t4)),U=n.round(__tsover_mul(C.y,2)),k=n.fract(o.vec2f($,U).mul(o.vec2f(123.34,345.45))),R=k.add(n.dot(k,k.add(34.345))),D=n.fract(__tsover_mul(R.x,R.y)),M=n.max(__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(D,.5),2),c)),0),z=o.vec2f(n.abs(P.x),n.abs(P.y)),L=n.max(n.dot(z,o.vec2f(s4,.5)),z.y),B=__tsover_sub(.5,L),N=__tsover_mul(a,.01),G=__tsover_mul(n.fwidth(g.x),.5),I=__tsover_mul(l,.5),X=n.max(__tsover_sub(N,I),0),F=__tsover_add(__tsover_add(N,G),I),Q=__tsover_mul(__tsover_sub(1,n.smoothstep(X,F,B)),n.step(1e-4,N));return o.vec2f(Q,M)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"thickness"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"variation"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"ang",[4,"-",[1,"rotation","*","DEG_TO_RAD"]]],[13,"cosR",[6,[7,"std","cos"],["ang"]]],[13,"sinR",[6,[7,"std","sin"],["ang"]]],[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,[7,"correctedUV","x"],"-","centerX"]],[13,"cy",[1,[7,"correctedUV","y"],"-","centerY"]],[13,"rotatedUV",[6,[7,"d","vec2f"],[[1,[1,[1,"cx","*","cosR"],"-",[1,"cy","*","sinR"]],"+","centerX"],[1,[1,[1,"cx","*","sinR"],"+",[1,"cy","*","cosR"]],"+","centerY"]]]],[13,"scaledUV",[6,[7,"rotatedUV","mul"],["cells"]]],[13,"s",[6,[7,"d","vec2f"],["SQRT3",[5,"1"]]]],[13,"sh",[6,[7,"s","mul"],[[5,"0.5"]]]],[13,"a",[6,[7,[6,"flooredMod2",["scaledUV","s"]],"sub"],["sh"]]],[13,"b",[6,[7,[6,"flooredMod2",[[6,[7,"scaledUV","sub"],["sh"]],"s"]],"sub"],["sh"]]],[13,"gv",[6,[7,"std","select"],["b","a",[1,[6,[7,"std","dot"],["a","a"]],"<",[6,[7,"std","dot"],["b","b"]]]]]],[13,"cellId",[6,[7,"scaledUV","sub"],["gv"]]],[13,"ix",[6,[7,"std","round"],[[1,[7,"cellId","x"],"*","INV_SQRT3_2"]]]],[13,"iy",[6,[7,"std","round"],[[1,[7,"cellId","y"],"*",[5,"2"]]]]],[13,"q0",[6,[7,"std","fract"],[[6,[7,[6,[7,"d","vec2f"],["ix","iy"]],"mul"],[[6,[7,"d","vec2f"],[[5,"123.34"],[5,"345.45"]]]]]]]],[13,"q1",[6,[7,"q0","add"],[[6,[7,"std","dot"],["q0",[6,[7,"q0","add"],[[5,"34.345"]]]]]]]],[13,"rand",[6,[7,"std","fract"],[[1,[7,"q1","x"],"*",[7,"q1","y"]]]]],[13,"variedFactor",[6,[7,"std","max"],[[1,[5,"1"],"+",[1,[1,[1,"rand","-",[5,"0.5"]],"*",[5,"2"]],"*","variation"]],[5,"0"]]]],[13,"pAbs",[6,[7,"d","vec2f"],[[6,[7,"std","abs"],[[7,"gv","x"]]],[6,[7,"std","abs"],[[7,"gv","y"]]]]]],[13,"hexDist",[6,[7,"std","max"],[[6,[7,"std","dot"],["pAbs",[6,[7,"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,[7,"std","fwidth"],[[7,"scaledUV","x"]]],"*",[5,"0.5"]]],[13,"soft",[1,"softness","*",[5,"0.5"]]],[13,"lo",[6,[7,"std","max"],[[1,"lineWidth","-","soft"],[5,"0"]]]],[13,"hi",[1,[1,"lineWidth","+","pixel"],"+","soft"]],[13,"lineMask",[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["lo","hi","edgeDist"]]],"*",[6,[7,"std","step"],[[5,"0.0001"],"lineWidth"]]]],[10,[6,[7,"d","vec2f"],["lineMask","variedFactor"]]]]],externalNames:["d","DEG_TO_RAD","std","SQRT3","flooredMod2","INV_SQRT3_2","SQRT3_2"]},externals:()=>({d:o,DEG_TO_RAD:QP,std:n,SQRT3:e4,flooredMod2:yb,INV_SQRT3_2:t4,SQRT3_2:s4})})&&e.f)({})),o4={name:"HexGrid",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Honeycomb hexagonal grid pattern",acceptsUVContext:!0,props:{colorA:{default:"#000000",transform:O,description:"Cell fill color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Grid line color",ui:{type:"color",label:"Color B",group:"Colors"}},cells:{default:8,description:"Number of hexagons across the shortest canvas edge",ui:{type:["range","map"],min:1,max:40,step:1,label:"Cells",group:"Effect"}},thickness:{default:1,description:"Thickness of the hex grid lines",ui:{type:["range","map"],min:0,max:10,step:.1,label:"Thickness",group:"Effect"}},rotation:{default:0,transform:Jt,description:"Rotation of the grid in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},softness:{default:0,description:"Softness of the line edges (0 = crisp, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.
24401,label:"Softness",group:"Effect"}},variation:{default:0,description:"Per-cell random lightening/darkening of the cell fill color",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variation",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=T(F9,"hexGridField",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,t.cells,t.thickness,t.rotation,t.softness,t.variation]),a=r.member("x"),i=r.member("y"),l=de(t.colorA.member("rgb").mul(i),t.colorA.member("a"));return T(Ye[s.colorSpace??0]??Be,"mixColors",[l,t.colorB,a])}};var{sdfSpaceUV:B9,offsetUV:jv}=Zs,{createSvgSdfSampler:V9,createAnalyticSdfSampler:O9,driveAnalyticSubProps:N9,ANALYTIC_SDF_EXTRA_FIELDS:Y9}=ft,{createVolumetricFieldComputeNode:G9,buildVolumetricFieldSampler:W9,VOLUMETRIC_FIELD_EXTRA_FIELDS:X9,is3dShapeType:q9,isVolumetricShapeType:H9}=ys,j9=JSON.stringify({type:"circleSDF",radius:.35}),r4=6.283185307179586;function Z9(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var a4=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(n.dot(t,o.vec2f(12.9898,78.233))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"12.9898"],[5,"78.233"]]]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),K9=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(t.y,38),__tsover_mul(r,2.3))),.5),__tsover_mul(n.sin(__tsover_sub(__tsover_mul(t.y,11.5),__tsover_mul(r,1.7))),.5)),i=__tsover_mul(__tsover_mul(a,s),.012);return o.vec2f(__tsover_add(t.x,i),t.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"distortion"},{type:"i",name:"animTime"}],body:[0,[[13,"wob",[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[5,"38"]],"+",[1,"animTime","*",[5,"2.3"]]]]],"*",[5,"0.5"]],"+",[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[5,"11.5"]],"-",[1,"animTime","*",[5,"1.7"]]]]],"*",[5,"0.5"]]]],[13,"dispX",[1,[1,"wob","*","distortion"],"*",[5,"0.012"]]],[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","dispX"],[7,"uv","y"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),J9=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=u.x,h=u.y,y=u.z,x=u.w,g=p.x,w=p.y,f=p.z,A=p.w,E=m.x,P=m.y,C=m.z,$=m.w,U=_.x,k=_.y,R=_.z,D=_.w,M=n.max(__tsover_mul(h,.5),.001),z=__tsover_div(1,c.y),L=__tsover_div(t.x,v);if(L>__tsover_mul(z,2))return o.vec4f(0,0,0,0);let B=.008,N=__tsover_div(__tsover_sub(s.x,r.x),__tsover_mul(B,2)),G=n.max(__tsover_mul(L,-1),0),I=n.exp(__tsover_mul(G,-5.5)),X=n.clamp(__tsover_div(__tsover_sub(s.w,r.w),__tsover_mul(B,2)),-2,2),F=n.clamp(__tsover_div(__tsover_sub(a.w,i.w),__tsover_mul(B,2)),-2,2),Q=n.normalize(o.vec3f(X,F,-1)),ae=n.pow(n.clamp(__tsover_sub(1,n.abs(Q.z)),0,1),o.f32(2.2)),j=n.select(o.f32(0),ae,D>.5),q=n.select(G,t.w,D>.5),te=__tsover_add(__tsover_mul(I,.55),j),ne=n.select(I,te,D>.5),oe=__tsover_mul(ne,g),pe=__tsover_mul(__tsover_sub(1,n.exp(__tsover_mul(G,-5))),x),_e=__tsover_sub(__tsover_mul(q,f),__tsover_mul(R,1.2)),ge=n.fract(_e),Me=n.min(ge,__tsover_sub(1,ge)),Se=__tsover_mul(n.smoothstep(.06,0,Me),w),Ae=__tsover_sub(__tsover_mul(l.y,E),__tsover_mul(R,__tsover_mul(P,3))),Pe=__tsover_add(__tsover_mul(n.sin(__tsover_mul(Ae,r4)),.5),.5),De=n.mix(o.f32(1),Pe,A),ke=n.fract(__tsover_mul(R,.16)),Ge=__tsover_sub(l.y,ke),Oe=__tsover_mul(n.exp(__tsover_mul(__tsover_mul(Ge,Ge),-650)),C),qe=__tsover_add(__tsover_mul(n.sin(__tsover_mul(R,40)),.04),__tsover_mul(n.sin(__tsover_mul(R,23.3)),.03)),We=__tsover_add(__tsover_mul(Vt(o.vec2f(__tsover_mul(R,6),11)),.5),.5),Ve=n.smoothstep(.6,.95,We),Ne=__tsover_mul(__tsover_add(1,qe),__tsover_sub(1,__tsover_mul(__tsover_mul($,Ve),.7))),He=a4(o.vec2f(__tsover_add(__tsover_mul(l.x,c.x),__tsover_mul(R,57.3)),__tsover_mul(l.y,c.y))),vt=__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(He,.5),k),.6)),_t=__tsover_add(__tsover_add(pe,oe),Se),Ze=__ts
vendor: 5,536 bytes, line 244
244over_mul(__tsover_add(__tsover_mul(__tsover_mul(__tsover_mul(_t,De),Ne),vt),__tsover_mul(Oe,De)),y),it=__tsover_add(__tsover_mul(U,.12),.04),Tt=__tsover_mul(__tsover_mul(__tsover_mul(oe,N),it),.1),J=__tsover_add(Ze,Tt),be=__tsover_sub(Ze,Tt),ce=o.vec3f(__tsover_mul(d.x,J),__tsover_mul(d.y,Ze),__tsover_mul(d.z,be)),xe=n.clamp(__tsover_add(__tsover_mul(oe,.5),Oe),0,.8);ce=n.mix(ce,o.vec3f(Ze,Ze,Ze),o.vec3f(xe));let ye=n.clamp(__tsover_mul(__tsover_div(__tsover_mul(L,-1),M),32),0,1),Ee=n.smoothstep(0,1,ye),Le=__tsover_mul(n.clamp(Ze,0,1),Ee);return o.vec4f(ce.x,ce.y,ce.z,Le)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sC"},{type:"i",name:"sR"},{type:"i",name:"sL"},{type:"i",name:"sU"},{type:"i",name:"sD"},{type:"i",name:"uv"},{type:"i",name:"viewportSize"},{type:"i",name:"color"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"}],body:[0,[[13,"scl",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"brightness",[7,"p0","z"]],[13,"fill",[7,"p0","w"]],[13,"edgeGlow",[7,"p1","x"]],[13,"depthLines",[7,"p1","y"]],[13,"depthScale",[7,"p1","z"]],[13,"scanlines",[7,"p1","w"]],[13,"scanlineScale",[7,"p2","x"]],[13,"scanlineSpeed",[7,"p2","y"]],[13,"sweep",[7,"p2","z"]],[13,"flicker",[7,"p2","w"]],[13,"distortion",[7,"p3","x"]],[13,"grain",[7,"p3","y"]],[13,"animTime",[7,"p3","z"]],[13,"volumetric",[7,"p3","w"]],[13,"sharp",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdf",[1,[7,"sC","x"],"/","scl"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"EPS",[5,"0.008"]],[13,"gradX",[1,[1,[7,"sR","x"],"-",[7,"sL","x"]],"/",[1,"EPS","*",[5,"2"]]]],[13,"thickness",[6,[7,"std","max"],[[1,"sdf","*",[4,"-",[5,"1"]]],[5,"0"]]]],[13,"thin",[6,[7,"std","exp"],[[1,"thickness","*",[4,"-",[5,"5.5"]]]]]],[13,"nx",[6,[7,"std","clamp"],[[1,[1,[7,"sR","w"],"-",[7,"sL","w"]],"/",[1,"EPS","*",[5,"2"]]],[4,"-",[5,"2"]],[5,"2"]]]],[13,"ny",[6,[7,"std","clamp"],[[1,[1,[7,"sU","w"],"-",[7,"sD","w"]],"/",[1,"EPS","*",[5,"2"]]],[4,"-",[5,"2"]],[5,"2"]]]],[13,"nrm",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["nx","ny",[4,"-",[5,"1"]]]]]]],[13,"surfFresVol",[6,[7,"std","pow"],[[6,[7,"std","clamp"],[[1,[5,"1"],"-",[6,[7,"std","abs"],[[7,"nrm","z"]]]],[5,"0"],[5,"1"]]],[6,[7,"d","f32"],[[5,"2.2"]]]]]],[13,"surfFres",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"surfFresVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"depthMetric",[6,[7,"std","select"],["thickness",[7,"sC","w"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"rimVol",[1,[1,"thin","*",[5,"0.55"]],"+","surfFres"]],[13,"rimBase",[6,[7,"std","select"],["thin","rimVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"rim",[1,"rimBase","*","edgeGlow"]],[13,"bodyFill",[1,[1,[5,"1"],"-",[6,[7,"std","exp"],[[1,"thickness","*",[4,"-",[5,"5"]]]]]],"*","fill"]],[13,"phase",[1,[1,"depthMetric","*","depthScale"],"-",[1,"animTime","*",[5,"1.2"]]]],[13,"f",[6,[7,"std","fract"],["phase"]]],[13,"distI",[6,[7,"std","min"],["f",[1,[5,"1"],"-","f"]]]],[13,"contour",[1,[6,[7,"std","smoothstep"],[[5,"0.06"],[5,"0"],"distI"]],"*","depthLines"]],[13,"scanPhase",[1,[1,[7,"uv","y"],"*","scanlineScale"],"-",[1,"animTime","*",[1,"scanlineSpeed","*",[5,"3"]]]]],[13,"scan",[1,[1,[6,[7,"std","sin"],[[1,"scanPhase","*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"scanMask",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"scan","scanlines"]]],[13,"sweepPos",[6,[7,"std","fract"],[[1,"animTime","*",[5,"0.16"]]]]],[13,"sweepD",[1,[7,"uv","y"],"-","sweepPos"]],[13,"sweepGlow",[1,[6,[7,"std","exp"],[[1,[1,"sweepD","*","sweepD"],"*",[4,"-",[5,"650"]]]]],"*","sweep"]],[13,"shimmer",[1,[1,[6,[7,"std","sin"],[[1,"animTime","*",[5,"40"]]]],"*",[5,"0.04"]],"+",[1,[6,[7,"std","sin"],[[1,"animTime","*",[5,"23.3"]]]],"*",[5,"0.03"]]]],[13,"dropNoise",[1,[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"animTime","*",[5,"6"]],[5,"11"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"drop",[6,[7,"std","smoothstep"],[[5,"0.6"],[5,"0.95"],"dropNoise"]]],[13,"flick",[1,[1,[5,"1"],"+","shimmer"],"*",[1,[5,"1"],"-",[1,[1,"flicker","*","drop"],"*",[5,"0.7"]]]]],[13,"gn",[6,"hologramHash21",[[6,[7,"d","vec2f"],[[1,[1,[7,"uv","x"],"*",[7,"viewportSize","x"]],"+",[1,"animTime","*",[5,"57.3"]]],[1,[7,"uv","y"],"*",[7,"viewportSize","y"]]]]]]],[13,"grainMul",[1,[5,"1"],"+",[1,[1,[1,"gn","-",[5,"0.5"]],"*","grain"],"*",[5,"0.6"]]]],[13,"glow",[1,[1,"bodyFill","+","rim"],"+","contour"]],[13,"core",[1,[1,[1,[1,[1,"glow","*","scanMask"],"*","flick"],"*","grainMul"],"+",[1,"sweepGlow","*","scanMask"]],"*","brightness"]],[13,"ca",[1,[1,"distortion","*",[5,"0.12"]],"+",[5,"0.04"]]],[13,"fringe",[1,[1,[1,"rim","*","gradX"],"*","ca"],"*",[5,"0.1"]]],[13,"rCore",[1,"core","+","fringe"]],[13,"bCore",[1,"core","-","fringe"]],[12,"rgb",[6,[7,"d","vec3f"],[[1,[7,"color","x"],"*","rCore"],[1,[7,"color","y"],"*","core"],[1,[7,"color","z"],"*","bCore"]]]],[13,"hot",[6,[7,"std","clamp"],[[1,[1,"rim","*",[5,"0.5"]],"+","sweepGlow"],[5,"0"],[5,"0.8"]]]],[2,"rgb","=",[6,[7,"std","mix"],["rgb",[6,[7,"d","vec3f"],["core","core","core"]],[6,[7,"d","vec3f"],["hot"]]]]],[13,"rb1",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"rb1"]]],[13,"alpha",[1,[6,[7,"std","clamp"],["core",[5,"0"],[5,"1"]]],"*","transition"]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]],externalNames:["std","d","TWO_PI","
244noise","hologramHash21"]},externals:()=>({std:n,d:o,TWO_PI:r4,noise:mt,hologramHash21:a4})})&&e.f)({})),n4={name:"Hologram",boundingBoxDeclaration:gs,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"},extraFields:{...X9,...Y9},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:we,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:O,description:"Projection tint \u2014 the colour 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:j9,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."}},compute:e=>{let t=G9(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let C=W9(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=C.volumetricFieldSampler,c=C.volumetricFieldSamplerFast,d=!0}else{let C=r.shapeSdfUrl||"",$=r.shapeType||"";if(C)l=V9(e,C),c=l,d=H9($);else{let U=Z9($,i("shape"));l=O9(U,N9(e,()=>i("shape"))),c=l,d=q9(U)}}let p=Fe(e),m=T(K9,"hologramDisplaceUV",[a.uv,s.distortion,p]),_=T(B9,"sdfSpaceUV",[s.center,s.scale,s.rotation,m,a.aspect]),v=l(_),h=c(T(jv,"offsetUV",[_,le(.008),le(0)])),y=c(T(jv,"offsetUV",[_,le(-.008),le(0)])),x=c(T(jv,"offsetUV",[_,le(0),le(.008)])),g=c(T(jv,"offsetUV",[_,le(0),le(-.008)])),w=le(d?1:0),f=de(s.scale,s.edgeSoftness,s.brightness,s.fill),A=de(s.edgeGlow,s.depthLines,s.depthScale,s.scanlines),E=de(s.scanlineScale,s.scanlineSpeed,s.sweep,s.flicker),P=de(s.distortion,s.grain,p,w);return T(J9,"hologramComposite",[v,h,y,x,g,a.uv,a.viewportSize,s.color.member("rgb"),f,A,E,P])}};var{sdfSpaceUV:Q9,offsetUV:i4}=Zs,{createSvgSdfSampler:eX,createAnalyticSdfSampler:tX,driveAnalyticSubProps:sX,ANALYTIC_SDF_EXTRA_FIELDS:oX}
244=ft,{createVolumetricFieldComputeNode:rX,buildVolumetricFieldSampler:aX,VOLUMETRIC_FIELD_EXTRA_FIELDS:nX,is3dShapeType:iX,isVolumetricShapeType:lX}=ys,cX=JSON.stringify({type:"circleSDF",radius:.35}),Zv=6.283185307179586,l4=1/3,c4=2/3,Au=Math.cos(300*Math.PI/180),Eu=Math.sin(300*Math.PI/180);function dX(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var gb=b.fn([o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_add(__tsover_mul(n.cos(__tsover_mul(t,Zv)),.5),.5),r=__tsover_add(__tsover_mul(n.cos(__tsover_mul(__tsover_add(t,l4),Zv)),.5),.5),a=__tsover_add(__tsover_mul(n.cos(__tsover_mul(__tsover_add(t,c4),Zv)),.5),.5);return o.vec3f(s,r,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"r",[1,[1,[6,[7,"std","cos"],[[1,"t","*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"g",[1,[1,[6,[7,"std","cos"],[[1,[1,"t","+","THIRD"],"*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"b",[1,[1,[6,[7,"std","cos"],[[1,[1,"t","+","TWOTHIRD"],"*","TWO_PI"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[10,[6,[7,"d","vec3f"],["r","g","b"]]]]],externalNames:["std","TWO_PI","THIRD","TWOTHIRD","d"]},externals:()=>({std:n,TWO_PI:Zv,THIRD:l4,TWOTHIRD:c4,d:o})})&&e.f)({})),uX=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=l.x,p=l.y,m=l.z,_=l.w,v=c.x,h=c.y,y=c.z,x=c.w,g=d.x,w=d.y,f=d.z,A=n.max(__tsover_mul(p,.5),.001),E=__tsover_div(1,i.y),P=t.x,C=__tsover_div(P,u);if(C>__tsover_mul(E,2))return o.vec4f(0,0,0,0);let $=.008,U=__tsover_div(__tsover_sub(s.x,t.x),$),k=__tsover_div(__tsover_sub(r.x,t.x),$),R=n.clamp(__tsover_mul(__tsover_div(__tsover_mul(C,-1),A),32),0,1),D=n.select(__tsover_sub(a.x,.5),t.y,f>.5),M=n.select(__tsover_sub(a.y,.5),t.z,f>.5),z=__tsover_sub(a.x,.5),L=__tsover_sub(a.y,.5),B=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),$),-1.5,1.5),N=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),$),-1.5,1.5),G=n.clamp(__tsover_add(__tsover_mul(B,B),__tsover_mul(N,N)),0,2),I=n.clamp(__tsover_div(__tsover_mul(C,-1),.06),0,1),X=__tsover_mul(__tsover_sub(1,I),.35),F=__tsover_mul(U,X),Q=__tsover_mul(k,X),ae=n.select(F,B,f>.5),j=n.select(Q,N,f>.5),q=n.select(o.f32(0),G,f>.5),te=__tsover_mul(m,1.35),ne=__tsover_div(1,__tsover_add(1,__tsover_mul(q,2))),oe=__tsover_mul(__tsover_mul(_,.8),ne),pe=.02,_e=Vt(o.vec2f(__tsover_add(__tsover_mul(D,te),2.7),__tsover_add(__tsover_mul(M,te),11.3))),ge=Vt(o.vec2f(__tsover_add(__tsover_mul(__tsover_add(D,pe),te),2.7),__tsover_add(__tsover_mul(M,te),11.3))),Me=Vt(o.vec2f(__tsover_add(__tsover_mul(D,te),2.7),__tsover_add(__tsover_mul(__tsover_add(M,pe),te),11.3))),Se=__tsover_div(__tsover_sub(ge,_e),pe),Ae=__tsover_div(__tsover_sub(Me,_e),pe),Pe=n.normalize(o.vec3f(__tsover_add(ae,__tsover_mul(__tsover_mul(Se,oe),.4)),__tsover_add(j,__tsover_mul(__tsover_mul(Ae,oe),.4)),-1)),De=__tsover_mul(v,2.2),ke=__tsover_mul(w,.06),Ge=__tsover_add(Vt(o.vec2f(__tsover_add(__tsover_mul(D,De),__tsover_mul(ke,Au)),__tsover_add(__tsover_mul(M,De),__tsover_mul(ke,Eu)))),__tsover_mul(Vt(o.vec2f(__tsover_sub(__tsover_add(__tsover_mul(__tsover_mul(D,De),2.1),5.2),__tsover_mul(__tsover_mul(ke,Au),1.6)),__tsover_sub(__tsover_add(__tsover_mul(__tsover_mul(M,De),2.1),9.4),__tsover_mul(__tsover_mul(ke,Eu),1.6)))),.4)),Oe=__tsover_add(__tsover_mul(Pe.x,Au),__tsover_mul(Pe.y,Eu)),qe=__tsover_mul(__tsover_add(__tsover_mul(D,Au),__tsover_mul(M,Eu)),.8),We=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(Ge,.45),qe),__tsover_mul(Oe,1.4)),__tsover_mul(w,.18)),__tsover_div(h,360)),Ve=n.clamp(y,0,1),Ne=gb(We),He=o.vec3f(.72,.73,.76),vt=n.mix(He,Ne,o.vec3f(__tsover_mul(Ve,.85))),_t=n.clamp(x,0,1),Ze=n.normalize(o.vec3f(Au,Eu,-.9)),it=n.normalize(Ze.add(o.vec3f(0,0,-1))),Tt=n.clamp(__tsover_add(__tsover_mul(n.dot(Pe,Ze),.5),.5),0,1),J=n.clamp(n.dot(Pe,it),0,1),be=__tsover_mul(__tsover_mul(n.pow(J,o.f32(7)),.45),__tsover_sub(1,__tsover_mul(_t,.35))),ce=__tsover_mul(__tsover_mul(n.pow(J,n.mix(o.f32(42),o.f32(12),_t)),.85),__tsover_sub(1,__tsover_mul(_t,.55))),xe=vt.mul(be).add(n.mix(vt,o.vec3f(1,1,1),o.vec3f(.6)).mul(ce)),ye=Vt(o.vec2f(__tsover_mul(D,190),__tsover_mul(M,190))),Ee=Vt(o.vec2f(__tsover_add(__tsover_mul(D,190),47.3),__tsover_sub(__tsover_mul(M,190),31.1))),Le=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(w,2.2),__tsover_mul(Ee,12.6))),.5),.5),ot=__tsover_mul(__tsover_mul(n.smoothstep(.52,.62,__tsover_add(__tsover_mul(ye,.75),__tsover_mul(Le,.3))),n.clamp(g,0,1)),ne),Ke=gb(__tsover_add(__tsover_add(We,.33),__tsover_mul(Ee,.5))).mul(__tsover_add(.85,__tsover_mul(Le,.55))).mul(__tsover_add(__tsover_mul(Tt,.6),.7)),rt=Vt(o.vec2f(__tsover_mul(z,420),__tsover_mul(L,420))),Mt=__tsover_add(1,__tsover_mul(__tsover_mul(rt,_t),.28)),ht=vt.mul(__tsover_add(__tsover_mul(Tt,.5),.62)).add(xe),St=n.mix(ht,Ke,o.vec3f(ot)).mul(Mt),zt=n.smoothstep(0,1,R);return o.vec4f(St.x,St.y,St.z,zt)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sC"},{type:"i",name:"sR"},{type:"i",name:"sU"},{type:"i",name:"sdfUV"},{type:"i",name:"viewportSize"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"}],body:[0,[[13,"scl",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"crinkleScale",[7,"p0","z"]],[13,"crinkle",[7,"p0","w"]],[13,"foilScale",[7,"p1","x"]],[13,"hueShift",[7,"p1","y"]],[13,"saturation",[7,"p1","z"]],[13,"roughness",[7,"p1","w"]],[13,"sparkle",[7,"p2","x"]],[13,"animTime",[7,"p2","y"]],[13,"volumetric",[7,"p2","z"]],[13,"sharp",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"sC","x"]],[13,"sdf",[1,"sdfRaw","/","scl"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"EPS",[5,"0.008"]],[13,"gradX",[1,[1,[7,"sR","x"],"-",[7,"sC","x"]],"/","EPS"]],[13,"gradY",[1,[1,[7,"sU","x"],"-",[7,"sC","x"]],"/","EPS"]],[13,"rb1",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"pdx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"sC","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"sC","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"qdx",[1,[7,"sdfUV","x"],"-",[5,"0.5"]]],[13,"qdy",[1,[7,"sdfUV","y"],"-",[5,"0.5"]]],[13,"baseNxVol",[6,[7,"std","clamp"],[[1,[1,[7,"sR","w"],"-",[7,"sC","w"]],"/","EPS"],[4,"-",[5,"1.5"]],[5,"1.5"]]]],[13,"baseNyVol",[6,[7,"std","clamp"],[[1,[1,[7,"sU","w"],"-",[7,"sC","w"]],"/","EPS"],[4,"-",[5,"1.5"]],[5,"1.5"]]]],[13,"steepne
244ssVol",[6,[7,"std","clamp"],[[1,[1,"baseNxVol","*","baseNxVol"],"+",[1,"baseNyVol","*","baseNyVol"]],[5,"0"],[5,"2"]]]],[13,"edgeT",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.06"]],[5,"0"],[5,"1"]]]],[13,"domeSlope",[1,[1,[5,"1"],"-","edgeT"],"*",[5,"0.35"]]],[13,"baseNxFlat",[1,"gradX","*","domeSlope"]],[13,"baseNyFlat",[1,"gradY","*","domeSlope"]],[13,"baseNx",[6,[7,"std","select"],["baseNxFlat","baseNxVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"baseNy",[6,[7,"std","select"],["baseNyFlat","baseNyVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"steepness",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],"steepnessVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"crScale",[1,"crinkleScale","*",[5,"1.35"]]],[13,"steepAtten",[1,[5,"1"],"/",[1,[5,"1"],"+",[1,"steepness","*",[5,"2"]]]]],[13,"crAmp",[1,[1,"crinkle","*",[5,"0.8"]],"*","steepAtten"]],[13,"neps",[5,"0.02"]],[13,"w0",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"pdx","*","crScale"],"+",[5,"2.7"]],[1,[1,"pdy","*","crScale"],"+",[5,"11.3"]]]]]]],[13,"wxTap",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"pdx","+","neps"],"*","crScale"],"+",[5,"2.7"]],[1,[1,"pdy","*","crScale"],"+",[5,"11.3"]]]]]]],[13,"wyTap",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"pdx","*","crScale"],"+",[5,"2.7"]],[1,[1,[1,"pdy","+","neps"],"*","crScale"],"+",[5,"11.3"]]]]]]],[13,"wx",[1,[1,"wxTap","-","w0"],"/","neps"]],[13,"wy",[1,[1,"wyTap","-","w0"],"/","neps"]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"baseNx","+",[1,[1,"wx","*","crAmp"],"*",[5,"0.4"]]],[1,"baseNy","+",[1,[1,"wy","*","crAmp"],"*",[5,"0.4"]]],[4,"-",[5,"1"]]]]]]],[13,"fScale",[1,"foilScale","*",[5,"2.2"]]],[13,"drift",[1,"animTime","*",[5,"0.06"]]],[13,"blotch",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"pdx","*","fScale"],"+",[1,"drift","*","LIGHT_X"]],[1,[1,"pdy","*","fScale"],"+",[1,"drift","*","LIGHT_Y"]]]]]],"+",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,[1,"pdx","*","fScale"],"*",[5,"2.1"]],"+",[5,"5.2"]],"-",[1,[1,"drift","*","LIGHT_X"],"*",[5,"1.6"]]],[1,[1,[1,[1,"pdy","*","fScale"],"*",[5,"2.1"]],"+",[5,"9.4"]],"-",[1,[1,"drift","*","LIGHT_Y"],"*",[5,"1.6"]]]]]]],"*",[5,"0.4"]]]],[13,"normalTilt",[1,[1,[7,"n","x"],"*","LIGHT_X"],"+",[1,[7,"n","y"],"*","LIGHT_Y"]]],[13,"ramp",[1,[1,[1,"pdx","*","LIGHT_X"],"+",[1,"pdy","*","LIGHT_Y"]],"*",[5,"0.8"]]],[13,"hue",[1,[1,[1,[1,[1,"blotch","*",[5,"0.45"]],"+","ramp"],"+",[1,"normalTilt","*",[5,"1.4"]]],"+",[1,"animTime","*",[5,"0.18"]]],"+",[1,"hueShift","/",[5,"360"]]]],[13,"saturationC",[6,[7,"std","clamp"],["saturation",[5,"0"],[5,"1"]]]],[13,"spectral",[6,"holoRainbow",["hue"]]],[13,"silver",[6,[7,"d","vec3f"],[[5,"0.72"],[5,"0.73"],[5,"0.76"]]]],[13,"foilTint",[6,[7,"std","mix"],["silver","spectral",[6,[7,"d","vec3f"],[[1,"saturationC","*",[5,"0.85"]]]]]]],[13,"roughnessC",[6,[7,"std","clamp"],["roughness",[5,"0"],[5,"1"]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["LIGHT_X","LIGHT_Y",[4,"-",[5,"0.9"]]]]]]],[13,"H",[6,[7,"std","normalize"],[[6,[7,"L","add"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[13,"ndl",[6,[7,"std","clamp"],[[1,[1,[6,[7,"std","dot"],["n","L"]],"*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"ndh",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","H"]],[5,"0"],[5,"1"]]]],[13,"sheen",[1,[1,[6,[7,"std","pow"],["ndh",[6,[7,"d","f32"],[[5,"7"]]]]],"*",[5,"0.45"]],"*",[1,[5,"1"],"-",[1,"roughnessC","*",[5,"0.35"]]]]],[13,"specCore",[1,[1,[6,[7,"std","pow"],["ndh",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"42"]]],[6,[7,"d","f32"],[[5,"12"]]],"roughnessC"]]]],"*",[5,"0.85"]],"*",[1,[5,"1"],"-",[1,"roughnessC","*",[5,"0.55"]]]]],[13,"specRgb",[6,[7,[6,[7,"foilTint","mul"],["sheen"]],"add"],[[6,[7,[6,[7,"std","mix"],["foilTint",[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],[6,[7,"d","vec3f"],[[5,"0.6"]]]]],"mul"],["specCore"]]]]],[13,"flakeN",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"pdx","*",[5,"190"]],[1,"pdy","*",[5,"190"]]]]]]],[13,"flakePhase",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"pdx","*",[5,"190"]],"+",[5,"47.3"]],[1,[1,"pdy","*",[5,"190"]],"-",[5,"31.1"]]]]]]],[13,"twinkle",[1,[1,[6,[7,"std","sin"],[[1,[1,"animTime","*",[5,"2.2"]],"+",[1,"flakePhase","*",[5,"12.6"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"flakeMask",[1,[1,[6,[7,"std","smoothstep"],[[5,"0.52"],[5,"0.62"],[1,[1,"flakeN","*",[5,"0.75"]],"+",[1,"twinkle","*",[5,"0.3"]]]]],"*",[6,[7,"std","clamp"],["sparkle",[5,"0"],[5,"1"]]]],"*","steepAtten"]],[13,"flakeRgb",[6,[7,[6,[7,[6,"holoRainbow",[[1,[1,"hue","+",[5,"0.33"]],"+",[1,"flakePhase","*",[5,"0.5"]]]]],"mul"],[[1,[5,"0.85"],"+",[1,"twinkle","*",[5,"0.55"]]]]],"mul"],[[1,[1,"ndl","*",[5,"0.6"]],"+",[5,"0.7"]]]]],[13,"grain",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"qdx","*",[5,"420"]],[1,"qdy","*",[5,"420"]]]]]]],[13,"grainMul",[1,[5,"1"],"+",[1,[1,"grain","*","roughnessC"],"*",[5,"0.28"]]]],[13,"foilBase",[6,[7,[6,[7,"foilTint","mul"],[[1,[1,"ndl","*",[5,"0.5"]],"+",[5,"0.62"]]]],"add"],["specRgb"]]],[13,"foilRgb",[6,[7,[6,[7,"std","mix"],["foilBase","flakeRgb",[6,[7,"d","vec3f"],["flakeMask"]]]],"mul"],["grainMul"]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"rb1"]]],[10,[6,[7,"d","vec4f"],[[7,"foilRgb","x"],[7,"foilRgb","y"],[7,"foilRgb","z"],"transition"]]]]],externalNames:["std","d","noise","LIGHT_X","LIGHT_Y","holoRainbow"]},externals:()=>({std:n,d:o,noise:mt,LIGHT_X:Au,LIGHT_Y:Eu,holoRainbow:gb})})&&e.f)({})),d4={name:"Holographic",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Iridescent holographic foil sticker with animated rainbow sheen and glitter flakes",animatedTime:{speed:"speed"},extraFields:{...nX,...oX},props:{origin:{default:"center",description:"Reference edge the center position is measured from (ce
244nter 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:we,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:cX,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"}},compute:e=>{let t=rX(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let f=aX(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=f.volumetricFieldSampler,c=f.volumetricFieldSamplerFast,d=!0}else{let f=r.shapeSdfUrl||"",A=r.shapeType||"";if(f)l=eX(e,f),c=l,d=lX(A);else{let E=dX(A,i("shape"));l=tX(E,sX(e,()=>i("shape")),"raw"),c=l,d=iX(E)}}let p=T(Q9,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),m=l(p),_=c(T(i4,"offsetUV",[p,le(.008),le(0)])),v=c(T(i4,"offsetUV",[p,le(0),le(.008)])),h=Fe(e),y=le(d?1:0),x=de(s.scale,s.edgeSoftness,s.crinkleScale,s.crinkle),g=de(s.foilScale,s.hueShift,s.saturation,s.roughness),w=de(s.sparkle,h,y,le(0));return T(uX,"holographicComposite",[m,_,v,p,a.viewportSize,x,g,w])}};var u4=Math.PI/180,p4=1.7320508075688772,pX=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(s,u4),a=n.cos(r),i=n.sin(r),l=__tsover_div(1,3),c=__tsover_sub(1,a),d=__tsover_mul(c,l),u=__tsover_div(i,p4),p=__tsover_add(a,d),m=__tsover_sub(d,u),_=__tsover_add(d,u),v=__tsover_add(d,u),h=__tsover_add(a,d),y=__tsover_sub(d,u),x=__tsover_sub(d,u),g=__tsover_add(d,u),w=__tsover_add(a,d),f=t.x,A=t.y,E=t.z,P=__ts
244over_add(__tsover_add(__tsover_mul(f,p),__tsover_mul(A,m)),__tsover_mul(E,_)),C=__tsover_add(__tsover_add(__tsover_mul(f,v),__tsover_mul(A,h)),__tsover_mul(E,y)),$=__tsover_add(__tsover_add(__tsover_mul(f,x),__tsover_mul(A,g)),__tsover_mul(E,w));return o.vec4f(P,C,$,t.w)}),{v:1,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,[7,"std","cos"],["angle"]]],[13,"sinA",[6,[7,"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,[7,"d","vec4f"],["newR","newG","newB",[7,"color","w"]]]]]],externalNames:["DEG_TO_RAD","std","SQRT3","d"]},externals:()=>({DEG_TO_RAD:u4,std:n,SQRT3:p4,d:o})})&&e.f)({})),m4={name:"HueShift",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Rotate hue around the color wheel",requiresChild:!0,props:{shift:{default:0,description:"The amount to shift the hue by",compileTimeWhen:(e,t)=>e===0!=(t===0),ui:{type:["range","map"],min:-180,max:180,step:1,label:"Shift",group:"Adjustments"}}},fragment:({uniforms:e,childNode:t,propValues:s})=>t?(s.shift??0)===0?t:T(pX,"hueShiftColor",[t,e.shift]):(console.error("You must pass a child component into the Hue Shift shader."),me)};var mX={cover:0,contain:1,fill:2,"scale-down":3,none:2},Mu=2048;function _X(e){return/\.svg($|\?|#)/i.test(e)}function fX(e){return new Promise((t,s)=>{let r=new Image;r.crossOrigin="anonymous",r.onload=()=>{let a=(r.naturalWidth||Mu)/(r.naturalHeight||Mu),i=a>=1?Mu:Math.round(Mu*a),l=a>=1?Math.round(Mu/a):Mu,c=document.createElement("canvas");c.width=i,c.height=l;let d=c.getContext("2d");if(!d){s(new Error("Could not get 2D context"));return}d.drawImage(r,0,0,i,l),t({source:c,width:i,height:l})},r.onerror=s,r.src=e})}var _4={name:"ImageTexture",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Display an image with customizable object-fit modes",acceptsUVContext:!0,props:{url:{default:"https://shaders.com/sample.jpg",description:"Upload an image or provide a URL",ui:{type:"image-upload",label:"Image",group:"Media"}},objectFit:{default:"fill",description:"How the image should be sized within the viewport",transform:e=>({cover:0,contain:1,fill:2,"scale-down":3,none:2})[e]??2,compileTime:!0,ui:{type:"select",options:[{label:"Cover",value:"cover"},{label:"Contain",value:"contain"},{label:"Fill",value:"fill"},{label:"Scale Down",value:"scale-down"}],label:"Object Fit",group:"Sizing"}}},fragment:({ctx:e,propValues:t,uvContext:s,effectiveViewportSize:r,getCpuValue:a,onBeforeRender:i,onCleanup:l,createMediaTexture:c,registerMediaTexture:d})=>{let u=c({width:1,height:1,label:"ImageTexture:placeholder"}),p="",m=!1,_=!1,v=(C,$,U)=>{if(_)return;let k=c({width:Math.max(1,$),height:Math.max(1,U),label:"ImageTexture"});k.write(C);let R=u;u=k,R.destroy()},h=async C=>{if(!(!C||C.trim()===""||m||_)){m=!0;try{if(_X(C)){let{source:$,width:U,height:k}=await fX(C);if(_)return;p=C,v($,U,k)}else{let $=await fetch(C,{mode:"cors"});if(!$.ok)throw new Error(`HTTP ${$.status}`);let U=await $.blob(),k=await createImageBitmap(U);if(_){k.close();return}p=C,v(k,k.width,k.height),k.close()}}catch($){let U=!C.startsWith("http://")&&!C.startsWith("https://")&&!C.startsWith("data:");console.error(`[ImageTexture] Failed to load image
245  Requested URL: ${C}
246  Path type: ${U?"relative":"absolute"}
247  Error:`,$)}finally{m=!1}}};setTimeout(()=>{let C=a("url")??"";C&&C.trim()!==""&&h(C)},0),i(()=>{let C=a("url")??"";C!==p&&!m&&h(C)}),l(()=>{_=!0,u.destroy()});let y=d(()=>u.texture),x=s??e.uv,g=r??e.viewportSize,w=y.dimensions(),f=t.objectFit,A=typeof f=="number"?f:mX[f]??2,E;A===1?E=T(H1,"scaleContain",[w,g]):A===2?E=T(j1,"scaleFill",[]):A===3?E=T(Z1,"scaleScaleDown",[w,g]):E=T(q1,"scaleCover",[w,g]);let P=T(K1,"mediaSampleUV",[x,E]);return T(J1,"mediaAlphaCut",[y.sample(P),P])}};var vX=b.fn([o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return o.vec4f(__tsover_sub(1,t.x),__tsover_sub(1,t.y),__tsover_sub(1,t.z),t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[10,[6,[7,"d","vec4f"],[[1,[5,"1"],"-",[7,"color","x"]],[1,[5,"1"],"-",[7,"color","y"]],[1,[5,"1"],"-",[7,"color","z"]],[7,"color","w"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),f4={name:"Invert",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Invert RGB colors while preserving alph
247a",requiresChild:!0,props:{},fragment:({childNode:e})=>e?T(vX,"invertColor",[e]):(console.error("You must pass a child component into the Invert shader."),me)};var v4=Math.PI/180,h4=Math.sqrt(3),Kv=Math.sqrt(3)/2,y4=2/Math.sqrt(3),xb=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return o.vec2f(__tsover_sub(t.x,__tsover_mul(s.x,n.floor(__tsover_div(t.x,s.x)))),__tsover_sub(t.y,__tsover_mul(s.y,n.floor(__tsover_div(t.y,s.y)))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"m"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"p","x"],"-",[1,[7,"m","x"],"*",[6,[7,"std","floor"],[[1,[7,"p","x"],"/",[7,"m","x"]]]]]],[1,[7,"p","y"],"-",[1,[7,"m","y"],"*",[6,[7,"std","floor"],[[1,[7,"p","y"],"/",[7,"m","y"]]]]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),hX=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_div(s.x,s.y),d=o.vec2f(__tsover_mul(t.x,c),t.y),u=-__tsover_mul(i,v4),p=n.cos(u),m=n.sin(u),_=__tsover_mul(c,.5),v=.5,h=__tsover_sub(d.x,_),y=__tsover_sub(d.y,v),x=o.vec2f(__tsover_add(__tsover_sub(__tsover_mul(h,p),__tsover_mul(y,m)),_),__tsover_add(__tsover_add(__tsover_mul(h,m),__tsover_mul(y,p)),v)).mul(r),g=o.vec2f(1,h4),w=g.mul(.5),f=xb(x,g).sub(w),A=xb(x.sub(w),g).sub(w),E=n.select(A,f,n.dot(f,f)<n.dot(A,A)),P=x.sub(E),C=n.dot(E,o.vec2f(0,1)),$=n.dot(E,o.vec2f(-Kv,-.5)),U=n.dot(E,o.vec2f(Kv,-.5)),k=C>=n.max($,U),R=$>=U,D=n.select(n.select(.74,.5,R),1,k),M=n.round(__tsover_mul(P.x,2)),z=n.round(__tsover_mul(P.y,y4)),L=n.fract(o.vec2f(M,z).mul(o.vec2f(123.34,345.45))),B=L.add(n.dot(L,L.add(34.345))),N=n.fract(__tsover_mul(B.x,B.y)),G=n.max(C,n.max($,U)),I=n.min(C,n.min($,U)),X=__tsover_sub(__tsover_sub(__tsover_add(__tsover_add(C,$),U),G),I),F=__tsover_sub(G,X),Q=o.vec2f(n.abs(E.x),n.abs(E.y)),ae=n.max(n.dot(Q,o.vec2f(.5,Kv)),Q.x),j=__tsover_sub(.5,ae),q=n.min(F,j),te=__tsover_mul(a,.02),ne=__tsover_add(__tsover_mul(n.fwidth(x.x),.5),__tsover_mul(l,.5)),oe=__tsover_mul(__tsover_sub(1,n.smoothstep(__tsover_sub(te,ne),__tsover_add(te,ne),q)),n.step(1e-4,te));return o.vec3f(N,D,oe)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"thickness"},{type:"i",name:"rotation"},{type:"i",name:"softness"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"ang",[4,"-",[1,"rotation","*","DEG_TO_RAD"]]],[13,"cosR",[6,[7,"std","cos"],["ang"]]],[13,"sinR",[6,[7,"std","sin"],["ang"]]],[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,[7,"correctedUV","x"],"-","centerX"]],[13,"cy",[1,[7,"correctedUV","y"],"-","centerY"]],[13,"rotatedUV",[6,[7,"d","vec2f"],[[1,[1,[1,"cx","*","cosR"],"-",[1,"cy","*","sinR"]],"+","centerX"],[1,[1,[1,"cx","*","sinR"],"+",[1,"cy","*","cosR"]],"+","centerY"]]]],[13,"scaledUV",[6,[7,"rotatedUV","mul"],["cells"]]],[13,"s",[6,[7,"d","vec2f"],[[5,"1"],"SQRT3"]]],[13,"sh",[6,[7,"s","mul"],[[5,"0.5"]]]],[13,"a",[6,[7,[6,"flooredMod2",["scaledUV","s"]],"sub"],["sh"]]],[13,"b",[6,[7,[6,"flooredMod2",[[6,[7,"scaledUV","sub"],["sh"]],"s"]],"sub"],["sh"]]],[13,"gv",[6,[7,"std","select"],["b","a",[1,[6,[7,"std","dot"],["a","a"]],"<",[6,[7,"std","dot"],["b","b"]]]]]],[13,"id",[6,[7,"scaledUV","sub"],["gv"]]],[13,"s0",[6,[7,"std","dot"],["gv",[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]]]]],[13,"s1",[6,[7,"std","dot"],["gv",[6,[7,"d","vec2f"],[[4,"-","SQRT3_2"],[4,"-",[5,"0.5"]]]]]]],[13,"s2",[6,[7,"std","dot"],["gv",[6,[7,"d","vec2f"],["SQRT3_2",[4,"-",[5,"0.5"]]]]]]],[13,"isTop",[1,"s0",">=",[6,[7,"std","max"],["s1","s2"]]]],[13,"isLeft",[1,"s1",">=","s2"]],[13,"tone",[6,[7,"std","select"],[[6,[7,"std","select"],[[5,"0.74"],[5,"0.5"],"isLeft"]],[5,"1"],"isTop"]]],[13,"ix",[6,[7,"std","round"],[[1,[7,"id","x"],"*",[5,"2"]]]]],[13,"iy",[6,[7,"std","round"],[[1,[7,"id","y"],"*","INV_2_SQRT3"]]]],[13,"q0",[6,[7,"std","fract"],[[6,[7,[6,[7,"d","vec2f"],["ix","iy"]],"mul"],[[6,[7,"d","vec2f"],[[5,"123.34"],[5,"345.45"]]]]]]]],[13,"q1",[6,[7,"q0","add"],[[6,[7,"std","dot"],["q0",[6,[7,"q0","add"],[[5,"34.345"]]]]]]]],[13,"rand",[6,[7,"std","fract"],[[1,[7,"q1","x"],"*",[7,"q1","y"]]]]],[13,"mx",[6,[7,"std","max"],["s0",[6,[7,"std","max"],["s1","s2"]]]]],[13,"mn",[6,[7,"std","min"],["s0",[6,[7,"std","min"],["s1","s2"]]]]],[13,"midScore",[1,[1,[1,[1,"s0","+","s1"],"+","s2"],"-","mx"],"-","mn"]],[13,"internal",[1,"mx","-","midScore"]],[13,"pAbs",[6,[7,"d","vec2f"],[[6,[7,"std","abs"],[[7,"gv","x"]]],[6,[7,"std","abs"],[[7,"gv","y"]]]]]],[13,"hexDist",[6,[7,"std","max"],[[6,[7,"std","dot"],["pAbs",[6,[7,"d","vec2f"],[[5,"0.5"],"SQRT3_2"]]]],[7,"pAbs","x"]]]],[13,"rimDist",[1,[5,"0.5"],"-","hexDist"]],[13,"edgeField",[6,[7,"std","min"],["internal","rimDist"]]],[13,"lineWidth",[1,"thickness","*",[5,"0.02"]]],[13,"aa",[1,[1,[6,[7,"std","fwidth"],[[7,"scaledUV","x"]]],"*",[5,"0.5"]],"+",[1,"softness","*",[5,"0.5"]]]],[13,"wire",[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"lineWidth","-","aa"],[1,"lineWidth","+","aa"],"edgeField"]]],"*",[6,[7,"std","step"],[[5,"0.0001"],"lineWidth"]]]],[10,[6,[7,"d","vec3f"],["rand","tone","wire"]]]]],externalNames:["d","DEG_TO_RAD","std","SQRT3","flooredMod2","SQRT3_2","INV_2_SQRT3"]},externals:()=>({d:o,DEG_TO_RAD:v4,std:n,SQRT3:h4,flooredMod2:xb,SQRT3_2:Kv,INV_2_SQRT3:y4})})&&e.f)({})),g4={name:"IsometricCubes",boundingBoxDeclaration:{aspectRatio:null,
247supportsResizeFit:!0},category:"Textures",description:"Isometric tumbling-blocks tiling \u2014 a 3D cube illusion (rhombille pattern)",acceptsUVContext:!0,props:{colorA:{default:"#7c5cff",transform:O,description:"Base cube color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ff5c9d",transform:O,description:"Second cube color, mixed in per-cube for variation",ui:{type:"color",label:"Color B",group:"Colors"}},lineColor:{default:"#000000",transform:O,description:"Color of the cube edge lines",ui:{type:"color",label:"Edges",group:"Colors"}},cells:{default:6,description:"Number of cubes across the shortest canvas edge",ui:{type:["range","map"],min:1,max:30,step:1,label:"Cells",group:"Effect"}},thickness:{default:1,description:"Thickness of the cube edge lines (0 = no edges)",ui:{type:["range","map"],min:0,max:10,step:.1,label:"Thickness",group:"Effect"}},rotation:{default:0,transform:Jt,description:"Rotation of the tiling in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},softness:{default:0,description:"Softness of the edge lines (0 = crisp, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},colorVariation:{default:1,description:"Per-cube random blend between the two colors (0 = uniform cubes, the clean 3D look)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variation",group:"Colors"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=T(hX,"isoCubeField",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,t.cells,t.thickness,t.rotation,t.softness]),a=r.member("x"),i=r.member("y"),l=r.member("z");return de(Ns(T(Ye[s.colorSpace??0]??Be,"mixColors",[t.colorA,t.colorB,a.mul(t.colorVariation)]).member("rgb").mul(i),t.lineColor.member("rgb"),l),1)}};var x4=Math.PI/180,b4=Math.PI*2,w4=b.fn([o.vec2f,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(__tsover_mul(a.x,i),a.y),c=o.vec2f(__tsover_mul(t.x,i),__tsover_sub(1,t.y)),d=l.sub(c),u=n.length(d),p=n.atan2(d.y,d.x),m=__tsover_add(p,__tsover_mul(r,x4)),_=__tsover_div(b4,s),v=__tsover_mul(_,2),h=__tsover_sub(m,__tsover_mul(v,n.floor(__tsover_div(m,v)))),y=n.select(h,__tsover_sub(v,h),h>_),x=__tsover_mul(n.cos(y),u),g=__tsover_mul(n.sin(y),u),w=c.add(o.vec2f(x,g));return o.vec2f(__tsover_div(w.x,i),w.y)}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"radius",[6,[7,"std","length"],["delta"]]],[13,"currentAngle",[6,[7,"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,[7,"std","floor"],[[1,"rotatedAngle","/","segTwo"]]]]]],[13,"finalAngle",[6,[7,"std","select"],["wrappedAngle",[1,"segTwo","-","wrappedAngle"],[1,"wrappedAngle",">","segmentAngle"]]]],[13,"kaleidoscopeX",[1,[6,[7,"std","cos"],["finalAngle"]],"*","radius"]],[13,"kaleidoscopeY",[1,[6,[7,"std","sin"],["finalAngle"]],"*","radius"]],[13,"kaleidoscopePos",[6,[7,"centerPos","add"],[[6,[7,"d","vec2f"],["kaleidoscopeX","kaleidoscopeY"]]]]],[10,[6,[7,"d","vec2f"],[[1,[7,"kaleidoscopePos","x"],"/","aspect"],[7,"kaleidoscopePos","y"]]]]]],externalNames:["d","std","DEG_TO_RAD","TAU"]},externals:()=>({d:o,std:n,DEG_TO_RAD:x4,TAU:b4})})&&e.f)({})),T4={name:"Kaleidoscope",category:"Distortions",description:"Create a kaleidoscope effect with radial mirrored segments",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The center point of the kaleidoscope effect",ui:{type:"position",label:"Center",group:"Position"}},segments:{default:6,description:"Number of radial segments in the kaleidoscope",ui:{type:["range","map"],min:2,max:24,step:1,label:"Segments",group:"Effect"}},angle:{default:0,description:"Rotation offset for the entire kaleidoscope pattern",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},edges:{default:"mirror",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"}
247,{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the Kaleidoscope shader."),me;let i=a(t),l=r.edges??0;return T(Re,"unpremultiplyAlpha",[Gt(T(w4,"kaleidoscopeUV",[e.center,e.segments,e.angle,s.uv,s.aspect]),c=>i.sample(c),l)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0;return zs(T(w4,"kaleidoscopeUV",[s.center,s.segments,s.angle,e,r]),t,i)}};var t_=64,Zc=12,o_=8,r_=2+Zc,bb=r_+1,jc="rgba32float",oi=96,yX=1080,wb=6.283185307179586,Tb=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({dt:o.f32,trackersF:o.f32,agility:o.f32,threshold:o.f32,variance:o.f32,lifespan:o.f32}),"TrackParams"),s_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({src:{texture:o.texture2d(o.f32)},grid:{storageTexture:o.textureStorage2d(jc,"write-only")},params:{uniform:Tb}}),"featureLayout"),nr=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({src:{texture:o.texture2d(o.f32)},featGrid:{texture:o.texture2d(o.f32),sampleType:"unfilterable-float"},prev:{texture:o.texture2d(o.f32),sampleType:"unfilterable-float"},next:{storageTexture:o.textureStorage2d(jc,"write-only")},present:{storageTexture:o.textureStorage2d(jc,"write-only")},params:{uniform:Tb}}),"trackLayout"),za=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(t),43758.5453123))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],["x"]],"*",[5,"43758.5453123"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({}));function Sb(e){return b.fn([o.vec4f],o.f32)((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=(s=>{"use gpu";let r=n.max(s.w,1e-4),a=n.clamp(__tsover_div(__tsover_add(__tsover_add(__tsover_mul(s.x,.299),__tsover_mul(s.y,.587)),__tsover_mul(s.z,.114)),r),0,1),i=o.f32(0);return e==="alpha"?i=s.w:e==="dark"?i=__tsover_mul(__tsover_sub(1,a),n.select(o.f32(0),o.f32(1),s.w>.5)):e==="red"?i=__tsover_mul(__tsover_mul(__tsover_mul(n.clamp(__tsover_div(s.x,r),0,1),n.select(o.f32(0),o.f32(1),s.x>=s.y)),n.select(o.f32(0),o.f32(1),s.x>=s.z)),n.select(o.f32(0),o.f32(1),s.w>.02)):e==="green"?i=__tsover_mul(__tsover_mul(__tsover_mul(n.clamp(__tsover_div(s.y,r),0,1),n.select(o.f32(0),o.f32(1),s.y>=s.x)),n.select(o.f32(0),o.f32(1),s.y>=s.z)),n.select(o.f32(0),o.f32(1),s.w>.02)):e==="blue"?i=__tsover_mul(__tsover_mul(__tsover_mul(n.clamp(__tsover_div(s.z,r),0,1),n.select(o.f32(0),o.f32(1),s.z>=s.x)),n.select(o.f32(0),o.f32(1),s.z>=s.y)),n.select(o.f32(0),o.f32(1),s.w>.02)):i=__tsover_mul(a,n.select(o.f32(0),o.f32(1),s.w>.02)),i}),{v:1,name:void 0,ast:{params:[{type:"i",name:"c"}],body:[0,[[13,"a",[6,[7,"std","max"],[[7,"c","w"],[5,"0.0001"]]]],[13,"lumaU",[6,[7,"std","clamp"],[[1,[1,[1,[1,[7,"c","x"],"*",[5,"0.299"]],"+",[1,[7,"c","y"],"*",[5,"0.587"]]],"+",[1,[7,"c","z"],"*",[5,"0.114"]]],"/","a"],[5,"0"],[5,"1"]]]],[12,"score",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"mode","===",[103,"alpha"]],[2,"score","=",[7,"c","w"]],[11,[1,"mode","===",[103,"dark"]],[2,"score","=",[1,[1,[5,"1"],"-","lumaU"],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","w"],">",[5,"0.5"]]]]]],[11,[1,"mode","===",[103,"red"]],[2,"score","=",[1,[1,[1,[6,[7,"std","clamp"],[[1,[7,"c","x"],"/","a"],[5,"0"],[5,"1"]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","x"],">=",[7,"c","y"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","x"],">=",[7,"c","z"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","w"],">",[5,"0.02"]]]]]],[11,[1,"mode","===",[103,"green"]],[2,"score","=",[1,[1,[1,[6,[7,"std","clamp"],[[1,[7,"c","y"],"/","a"],[5,"0"],[5,"1"]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","y"],">=",[7,"c","x"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","y"],">=",[7,"c","z"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","w"],">",[5,"0.02"]]]]]],[11,[1,"mode","===",[103,"blue"]],[2,"score","=",[1,[1,[1,[6,[7,"std","clamp"],[[1,[7,"c","z"],"/","a"],[5,"0"],[5,"1"]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","z"],">=",[7,"c","x"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","z"],">=",[7,"c","y"]]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","w"],">",[5,"0.02"]]]]]],[2,"score","=",[1,"lumaU","*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"c","w"],">",[5,"0.02"]]]]]]]]]]],[10,"score"]]],externalNames:["std","d","mode"]},externals:()=>({std:n,d:o,mode:e})})&&t.f)({})).$name(`keyframesScore_${e}`)}function S4(e){return b.fn([o.u32,o.u32])((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r)=>{"use gpu";let a=n.textureDimensions(s_.$.src),i=o.f32(a.x),l=o.f32(a.y),c=o.f32(oi),d=__tsover_div(__tsover_add(o.f32(s),.5),c),u=__tsover_div(__tsover_add(o.f32(r),.5),c),p=__tsover_div(.25,c),m=o.f32(0);for(let _=0;_<2;_++)for(let v=0;v<2;v++){let h=__tsover_add(d,__tsover_mul(__tsover_mul(__tsover_sub(o.f32(v),.5),2),p)),y=__tsover_add(u,__tsover_mul(__tsover_mul(__tsover_sub(o.f32(_),.5),2),p)),x=o.u32(n.clamp(__tsover_mul(h,i),o.f32(0),__tsover_sub(i,1))),g=o.u32(n.clamp(__tsover_mul(y,l),o.f32(0),__tsover_sub(l,1)));m=n.max(m,e(n.textureLoad(s_.$.src,o.vec2u(x,g),0)))}n.textureStore(s_.$.grid,o.vec2u(s,r),o.vec4f(m,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"gx"},{type:"i",name:"gy"}],body:[0,[[13,"srcDims",[6,[7,"std","textureDimensions"],[[7,[7,"featureLayout","$"],"src"]]]],[13,"srcW",[6,[7,"d","f32"],[[7,"srcDims","x"]]]],[13,"srcH",[6,[7,"d","f32"],[[7,"srcDims","y"]]]],[13,"g",[6,[7,"d","f32"],["FEAT_GRID"]]],[13,"cu",[1,[1,[6,[7,"d","f32"],["gx"]],"+",[5,"0.5"]],"/","g"]],[13,"cv",[1,[1,[6,[7,"d","f32"],["gy"]],"+",[5,"0.5"]],"/","g"]],[13,"q",[1,[5,"0.25"],"/","g"]],[12,"score",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"sy",[5,"0"]],[1,"sy","<",[5,"2"]],[102,"++","sy"],[0,[[14,[12,"sx",[5,"0"]],[1,"sx","<",[5,"2"]],[102,"++","sx"],[0,[[13,"u",[1,"cu","+",[1,[1,[1,[6,[7,"d","f32"],["sx"]],"-",[5,"0.5"]],"*",[5,"2"]],"*","q"]]],[13,"v",[1,"cv","+",[1,[1,[1,[6,[7,"d","f32"],["sy"]],"-",[5,"0.5"]],"*",[5,"2"]],"*","q"]]],[13,"tx",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"u","*","srcW"],[6,[7,"d","f32"],[[5,"0"]]],[1,"srcW","-",[5,"1"]]]]]]],[13,"ty",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"v","*","srcH"],[6,[7,"d","f32"],[[5,"0"]]],[1,"srcH","-",[5,"1"]]]]]]],[2,"score","=",[6,[7,"std","max"],["score",[6,"scoreFn",[[6,[7,"std","textureLoad"],[[7,[7,"featureLayout","$"],"src"],[6,[7,"d","vec2u"],["tx","ty"]],[5,"0"]]]]]]]]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"featureLayout","$"],"grid"],[6,[7,"d","vec2u"],["gx","gy"]],[6,[7,"d","vec4f"],["score",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["std","featureLayout","d","FEAT_GRID","scoreFn"]},externals:()=>({std:n,featureLayout:s_,d:o,FEAT_GRID:oi,scoreFn:e})})&&t.f)({})).$name("keyframesFeatureGrid")}function gX(e,t){let s=t??Sb(e);return b.fn([o.u32])((r=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(r.f=(a=>{"use gpu";let i=nr.$.params,l=o.f32(a),c=n.textureLoad(nr.$.prev,o.vec2u(o.u32(0),a),0),d=n.textureLoad(nr.$.prev,o.vec2u(o.u32(1),a),0),u=c.x,p=c.y,m=c.z,_=__tsover_sub(c.w,1),v=d.x,h=d.z,y=d.w;c.w<.5&&(u=__tsover_add(.15,__tsover_mul(.7,za(__tsover_add(__tsover_mul(l,7.31),1.3)))),p=__tsover_add(.15,__tsover_mul(.7,za(__tsover_add(__tsover_mul(l,11.93),4.7)))),m=o.f32(0),_=o.f32(0),v=o.f32(0),h=o.f32(1)),m=__tsover_add(m,1);let x=n.max(i.threshold,.02),g=n.max(__tsover_sub(1,__tsover_mul(i.variance,za(__tsover_add(__tsover_add(__tsover_mul(l,6.13),__tsover_mul(h,.37)),2.9)))),x),w=n.textureDimensions(nr.$.src),f=o.f32(w.x),A=o.f32(w.y),E=__tsover_add(.035,__tsover_mul(.11,i.agility)),P=o.f32(0),C=o.f32(0),$=o.f32(0);for(let ge=-3;ge<=3;ge++)for(let Me=-3;Me<=3;Me++){let Se=__tsover_mul(__tsover_div(o.f32(Me),3),E),Ae=__tsover_mul(__tsover_div(o.f32(ge),3),E),Pe=n.clamp(__tsover_add(u,Se),.02,.98),De=n.clamp(__tsover_add(p,Ae),.02,.98),ke=o.u32(n.clamp(__tsover_mul(Pe,f),o.f32(0),__tsover_sub(f,1))),Ge=o.u32(n.clamp(__tsover_mul(De,A),o.f32(0),__tsover_sub(A,1))),Oe=s(n.textureLoad(nr.$.src,o.vec2u(ke,Ge),0)),qe=n.select(o.f32(0),o.f32(1),Oe>x),We=__tsover_sub(Oe,g),Ve=__tsover_mul(n.exp(__tsover_mul(__tsover_mul(We,We),-24)),qe),Ne=__tsover_div(n.sqrt(__tsover_add(__tsover_mul(Se,Se),__tsover_mul(Ae,Ae))),n.max(E,.001)),He=__ts
vendor: 10,466 bytes, line 247
247over_mul(Ve,__tsover_sub(1,__tsover_mul(.3,Ne)));P=__tsover_add(P,He),C=__tsover_add(C,__tsover_mul(Pe,He)),$=__tsover_add($,__tsover_mul(De,He))}let U=P>.8,k=u,R=p;if(U&&(k=__tsover_div(C,P),R=__tsover_div($,P)),v=n.select(__tsover_add(v,1),o.f32(0),U),!U){let ge=o.f32(oi),Me=o.f32(0),Se=u,Ae=p;for(let Pe=0;Pe<oi;Pe++)for(let De=0;De<oi;De++){let ke=n.textureLoad(nr.$.featGrid,o.vec2u(o.u32(De),o.u32(Pe)),0).x,Ge=n.select(o.f32(0),o.f32(1),ke>x),Oe=__tsover_sub(ke,g),qe=__tsover_mul(n.exp(__tsover_mul(__tsover_mul(Oe,Oe),-14)),Ge),We=__tsover_div(__tsover_add(o.f32(De),.5),ge),Ve=__tsover_div(__tsover_add(o.f32(Pe),.5),ge),Ne=__tsover_sub(We,u),He=__tsover_sub(Ve,p),vt=__tsover_add(.6,__tsover_mul(.8,za(__tsover_add(__tsover_add(__tsover_mul(l,3.17),__tsover_mul(o.f32(De),13.71)),__tsover_mul(o.f32(Pe),29.37))))),_t=__tsover_div(__tsover_mul(qe,vt),__tsover_add(1,__tsover_mul(5,__tsover_add(__tsover_mul(Ne,Ne),__tsover_mul(He,He)))));_t>Me&&(Me=_t,Se=We,Ae=Ve)}if(Me>.02)k=n.clamp(__tsover_add(Se,__tsover_div(__tsover_sub(za(__tsover_add(__tsover_mul(l,5.77),__tsover_mul(h,2.13))),.5),ge)),.02,.98),R=n.clamp(__tsover_add(Ae,__tsover_div(__tsover_sub(za(__tsover_add(__tsover_mul(l,8.31),__tsover_mul(h,4.97))),.5),ge)),.02,.98);else{let Pe=__tsover_add(__tsover_mul(za(__tsover_add(__tsover_mul(l,13.77),__tsover_mul(h,3.19))),wb),__tsover_mul(n.sin(__tsover_add(__tsover_mul(m,.02),l)),1.4));k=n.clamp(__tsover_add(u,__tsover_mul(n.cos(Pe),.08)),.03,.97),R=n.clamp(__tsover_add(p,__tsover_mul(n.sin(Pe),.08)),.03,.97)}}let D=__tsover_mul(i.dt,__tsover_add(.15,__tsover_mul(1.4,i.agility))),M=__tsover_sub(k,u),z=__tsover_sub(R,p),L=n.sqrt(__tsover_add(__tsover_mul(M,M),__tsover_mul(z,z))),B=n.min(o.f32(1),__tsover_div(D,n.max(L,1e-5)));u=__tsover_add(u,__tsover_mul(M,B)),p=__tsover_add(p,__tsover_mul(z,B));let N=o.f32(0),G=o.i32(a);for(let ge=0;ge<G;ge++){let Me=o.f32(ge),Se=n.textureLoad(nr.$.prev,o.vec2u(o.u32(0),o.u32(ge)),0),Ae=__tsover_sub(Se.x,u),Pe=__tsover_sub(Se.y,p),De=n.select(o.f32(0),o.f32(1),n.sqrt(__tsover_add(__tsover_mul(Ae,Ae),__tsover_mul(Pe,Pe)))<.022);N=n.max(N,__tsover_mul(__tsover_mul(De,Se.w),n.select(o.f32(0),o.f32(1),Me<i.trackersF)))}if(y=n.select(o.f32(0),__tsover_add(y,1),N>.5),y>30){let ge=__tsover_mul(za(__tsover_add(__tsover_add(__tsover_mul(l,9.13),__tsover_mul(h,5.77)),2.3)),wb),Me=__tsover_add(.05,__tsover_mul(.08,za(__tsover_add(__tsover_mul(l,4.71),__tsover_mul(h,8.11)))));u=n.clamp(__tsover_add(u,__tsover_mul(n.cos(ge),Me)),.03,.97),p=n.clamp(__tsover_add(p,__tsover_mul(n.sin(ge),Me)),.03,.97),h=__tsover_add(h,1),_=m,v=o.f32(0),y=o.f32(0)}let I=__tsover_mul(__tsover_mul(i.lifespan,60),__tsover_add(.7,__tsover_mul(.6,za(__tsover_add(__tsover_mul(l,4.77),__tsover_mul(h,1.31)))))),X=__tsover_mul(n.select(o.f32(0),o.f32(1),__tsover_sub(m,_)>I),n.select(o.f32(0),o.f32(1),i.lifespan>.01)),F=n.select(o.f32(0),o.f32(1),v>90);__tsover_add(X,F)>.5&&(u=__tsover_add(.1,__tsover_mul(.8,za(__tsover_add(__tsover_add(__tsover_mul(l,7.31),__tsover_mul(h,13.7)),__tsover_mul(m,.013))))),p=__tsover_add(.1,__tsover_mul(.8,za(__tsover_add(__tsover_add(__tsover_mul(l,11.93),__tsover_mul(h,17.3)),__tsover_mul(m,.019))))),h=__tsover_add(h,1),_=m,v=o.f32(0),y=o.f32(0));let Q=__tsover_mod(n.floor(__tsover_div(m,o.f32(o_))),o.f32(Zc)),ae=n.select(o.f32(0),o.f32(1),__tsover_mod(m,o.f32(o_))<.5),j=u,q=p,te=u,ne=p;for(let ge=0;ge<Zc;ge++){let Me=o.f32(ge),Se=n.textureLoad(nr.$.prev,o.vec2u(o.u32(__tsover_add(2,ge)),a),0),Ae=n.select(o.f32(0),o.f32(1),n.abs(__tsover_sub(Me,Q))<.5),Pe=__tsover_mul(Ae,ae);Se=n.mix(Se,o.vec4f(u,p,m,h),Pe),n.textureStore(nr.$.next,o.vec2u(o.u32(__tsover_add(2,ge)),a),Se),n.textureStore(nr.$.present,o.vec2u(o.u32(__tsover_add(2,ge)),a),Se);let De=__tsover_mul(n.select(o.f32(0),o.f32(1),n.abs(__tsover_sub(Se.w,h))<.5),n.select(o.f32(0),o.f32(1),Se.z>.5));j=n.min(j,n.mix(u,Se.x,De)),q=n.min(q,n.mix(p,Se.y,De)),te=n.max(te,n.mix(u,Se.x,De)),ne=n.max(ne,n.mix(p,Se.y,De))}let oe=o.vec4f(j,q,te,ne);n.textureStore(nr.$.next,o.vec2u(o.u32(r_),a),oe),n.textureStore(nr.$.present,o.vec2u(o.u32(r_),a),oe);let pe=o.vec4f(u,p,m,__tsover_add(_,1)),_e=o.vec4f(v,P,h,y);n.textureStore(nr.$.next,o.vec2u(o.u32(0),a),pe),n.textureStore(nr.$.present,o.vec2u(o.u32(0),a),pe),n.textureStore(nr.$.next,o.vec2u(o.u32(1),a),_e),n.textureStore(nr.$.present,o.vec2u(o.u32(1),a),_e)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"ti"}],body:[0,[[13,"P",[7,[7,"trackLayout","$"],"params"]],[13,"iF",[6,[7,"d","f32"],["ti"]]],[13,"head",[6,[7,"std","textureLoad"],[[7,[7,"trackLayout","$"],"prev"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"0"]]],"ti"]],[5,"0"]]]],[13,"meta",[6,[7,"std","textureLoad"],[[7,[7,"trackLayout","$"],"prev"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"1"]]],"ti"]],[5,"0"]]]],[12,"posX",[7,"head","x"]],[12,"posY",[7,"head","y"]],[12,"frame",[7,"head","z"]],[12,"genStart",[1,[7,"head","w"],"-",[5,"1"]]],[12,"missStreak",[7,"meta","x"]],[12,"gen",[7,"meta","z"]],[12,"crowdStreak",[7,"meta","w"]],[11,[1,[7,"head","w"],"<",[5,"0.5"]],[0,[[2,"posX","=",[1,[5,"0.15"],"+",[1,[5,"0.7"],"*",[6,"trackHash",[[1,[1,"iF","*",[5,"7.31"]],"+",[5,"1.3"]]]]]]],[2,"posY","=",[1,[5,"0.15"],"+",[1,[5,"0.7"],"*",[6,"trackHash",[[1,[1,"iF","*",[5,"11.93"]],"+",[5,"4.7"]]]]]]],[2,"frame","=",[6,[7,"d","f32"],[[5,"0"]]]],[2,"genStart","=",[6,[7,"d","f32"],[[5,"0"]]]],[2,"missStreak","=",[6,[7,"d","f32"],[[5,"0"]]]],[2,"gen","=",[6,[7,"d","f32"],[[5,"1"]]]]]]],[2,"frame","=",[1,"frame","+",[5,"1"]]],[13,"minFeat",[6,[7,"std","max"],[[7,"P","threshold"],[5,"0.02"]]]],[13,"Lpref",[6,[7,"std","max"],[[1,[5,"1"],"-",[1,[7,"P","variance"],"*",[6,"trackHash",[[1,[1,[1,"iF","*",[5,"6.13"]],"+",[1,"gen","*",[5,"0.37"]]],"+",[5,"2.9"]]]]]],"minFeat"]]],[13,"srcDims",[6,[7,"std","textureDimensions"],[[7,[7,"trackLayout","$"],"src"]]]],[13,"srcW",[6,[7,"d","f32"],[[7,"srcDims","x"]]]],[13,"srcH",[6,[7,"d","f32"],[[7,"srcDims","y"]]]],[13,"radius",[1,[5,"0.035"],"+",[1,[5,"0.11"],"*",[7,"P","agility"]]]],[12,"sumW",[6,[7,"d","f32"],[[5,"0"]]]],[12,"sumX",[6,[7,"d","f32"],[[5,"0"]]]],[12,"sumY",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"dy",[4,"-",[5,"3"]]],[1,"dy","<=",[5,"3"]],[102,"++","dy"],[0,[[14,[12,"dx",[4,"-",[5,"3"]]],[1,"dx","<=",[5,"3"]],[102,"++","dx"],[0,[[13,"ox",[1,[1,[6,[7,"d","f32"],["dx"]],"/",[5,"3"]],"*","radius"]],[13,"oy",[1,[1,[6,[7,"d","f32"],["dy"]],"/",[5,"3"]],"*","radius"]],[13,"cx01",[6,[7,"std","clamp"],[[1,"posX","+","ox"],[5,"0.02"],[5,"0.98"]]]],[13,"cy01",[6,[7,"std","clamp"],[[1,"posY","+","oy"],[5,"0.02"],[5,"0.98"]]]],[13,"tx",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"cx01","*","srcW"],[6,[7,"d","f32"],[[5,"0"]]],[1,"srcW","-",[5,"1"]]]]]]],[13,"ty",[6,[7,"d","u32"],[[6,[7,"std","clamp"],[[1,"cy01","*","srcH"],[6,[7,"d","f32"],[[5,"0"]]],[1,"srcH","-",[5,"1"]]]]]]],[13,"s",[6,"score",[[6,[7,"std","textureLoad"],[[7,[7,"trackLayout","$"],"src"],[6,[7,"d","vec2u"],["tx","ty"]],[5,"0"]]]]]],[13,"gate",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"s",">","minFeat"]]]],[13,"dBand",[1,"s","-","Lpref"]],[13,"aff",[1,[6,[7,"std","exp"],[[1,[1,"dBand","*","dBand"],"*",[4,"-",[5,"24"]]]]],"*","gate"]],[13,"off",[1,[6,[7,"std","sqrt"],[[1,[1,"ox","*","ox"],"+",[1,"oy","*","oy"]]]],"/",[6,[7,"std","max"],["radius",[5,"0.001"]]]]],[13,"w",[1,"aff","*",[1,[5,"1"],"-",[1,[5,"0.3"],"*","off"]]]],[2,"sumW","=",[1,"sumW","+","w"]],[2,"sumX","=",[1,"sumX","+",[1,"cx01","*","w"]]],[2,"sumY","=",[1,"sumY","+",[1,"cy01","*","w"]]]]]]]]],[13,"locked",[1,"sumW",">",[5,"0.8"]]],[12,"bestX","posX"],[12,"bestY","posY"],[11,"locked",[0,[[2,"bestX","=",[1,"sumX","/","sumW"]],[2,"bestY","=",[1,"sumY","/","sumW"]]]]],[2,"missStreak","=",[6,[7,"std","select"],[[1,"missStreak","+",[5,"1"]],[6,[7,"d","f32"],[[5,"0"]]],"locked"]]],[11,[4,"!","locked"],[0,[[13,"g",[6,[7,"d","f32"],["FEAT_GRID"]]],[12,"bestW",[6,[7,"d","f32"],[[5,"0"]]]],[12,"tgtX","posX"],[12,"tgtY","posY"],[14,[12,"gy",[5,"0"]],[1,"gy","<","FEAT_GRID"],[102,"++","gy"],[0,[[14,[12,"gx",[5,"0"]],[1,"gx","<","FEAT_GRID"],[102,"++","gx"],[0,[[13,"cs",[7,[6,[7,"std","textureLoad"],[[7,[7,"trackLayout","$"],"featGrid"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["gx"]],[6,[7,"d","u32"],["gy"]]]],[5,"0"]]],"x"]],[13,"cGate",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"cs",">","minFeat"]]]],[13,"dB",[1,"cs","-","Lpref"]],[13,"aff",[1,[6,[7,"std","exp"],[[1,[1,"dB","*","dB"],"*",[4,"-",[5,"14"]]]]],"*","cGate"]],[13,"cx",[1,[1,[6,[7,"d","f32"],["gx"]],"+",[5,"0.5"]],"/","g"]],[13,"cy",[1,[1,[6,[7,"d","f32"],["gy"]],"+",[5,"0.5"]],"/","g"]],[13,"ddx",[1,"cx","-","posX"]],[13,"ddy",[1,"cy","-","posY"]],[13,"pref",[1,[5,"0.6"],"+",[1,[5,"0.8"],"*",[6,"trackHash",[[1,[1,[1,"iF","*",[5,"3.17"]],"+",[1,[6,[7,"d","f32"],["gx"]],"*",[5,"13.71"]]],"+",[1,[6,[7,"d","f32"],["gy"]],"*",[5,"29.37"]]]]]]]],[13,"wgt",[1,[1,"aff","*","pref"],"/",[1,[5,"1"],"+",[1,[5,"5"],"*",[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]]]]]],[11,[1,"wgt",">","bestW"],[0,[[2,"bestW","=","wgt"],[2,"tgtX","=","cx"],[2,"tgtY","=","cy"]]]]]]]]]],[11,[1,"bestW",">",[5,"0.02"]],[0,[[2,"bestX","=",[6,[7,"std","clamp"],[[1,"tgtX","+",[1,[1,[6,"trackHash",[[1,[1,"iF","*",[5,"5.77"]],"+",[1,"gen","*",[5,"2.13"]]]]],"-",[5,"0.5"]],"/","g"]],[5,"0.02"],[5,"0.98"]]]],[2,"bestY","=",[6,[7,"std","clamp"],[[1,"tgtY","+",[1,[1,[6,"trackHash",[[1,[1,"iF","*",[5,"8.31"]],"+",[1,"gen","*",[5,"4.97"]]]]],"-",[5,"0.5"]],"/","g"]],[5,"0.02"],[5,"0.98"]]]]]],[0,[[13,"ang",[1,[1,[6,"trackHash",[[1,[1,"iF","*",[5,"13.77"]],"+",[1,"gen","*",[5,"3.19"]]]]],"*","TWO_PI"],"+",[1,[6,[7,"std","sin"],[[1,[1,"frame","*",[5,"0.02"]],"+","iF"]]],"*",[5,"1.4"]]]],[2,"bestX","=",[6,[7,"std","clamp"],[[1,"posX","+",[1,[6,[7,"std","cos"],["ang"]],"*",[5,"0.08"]]],[5,"0.03"],[5,"0.97"]]]],[2,"bestY","=",[6,[7,"std","clamp"],[[1,"posY","+",[1,[6,[7,"std","sin"],["ang"]],"*",[5,"0.08"]]],[5,"0.03"],[5,"0.97"]]]]]]]]]],[13,"maxStep",[1,[7,"P","dt"],"*",[1,[5,"0.15"],"+",[1,[5,"1.4"],"*",[7,"P","agility"]]]]],[13,"dX",[1,"bestX","-","posX"]],[13,"dY",[1,"bestY","-","posY"]],[13,"dist",[6,[7,"std","sqrt"],[[1,[1,"dX","*","dX"],"+",[1,"dY","*","dY"]]]]],[13,"stepK",[6,[7,"std","min"],[[6,[7,"d","f32"],[[5,"1"]]],[1,"maxStep","/",[6,[7,"std","max"],["dist",[5,"0.00001"]]]]]]],[2,"posX","=",[1,"posX","+",[1,"dX","*","stepK"]]],[2,"posY","=",[1,"posY","+",[1,"dY","*","stepK"]]],[12,"crowded",[6,[7,"d","f32"],[[5,"0"]]]],[13,"iN",[6,[7,"d","i32"],["t
247i"]]],[14,[12,"k",[5,"0"]],[1,"k","<","iN"],[102,"++","k"],[0,[[13,"kF",[6,[7,"d","f32"],["k"]]],[13,"other",[6,[7,"std","textureLoad"],[[7,[7,"trackLayout","$"],"prev"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"0"]]],[6,[7,"d","u32"],["k"]]]],[5,"0"]]]],[13,"odx",[1,[7,"other","x"],"-","posX"]],[13,"ody",[1,[7,"other","y"],"-","posY"]],[13,"near",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[6,[7,"std","sqrt"],[[1,[1,"odx","*","odx"],"+",[1,"ody","*","ody"]]]],"<",[5,"0.022"]]]]],[2,"crowded","=",[6,[7,"std","max"],["crowded",[1,[1,"near","*",[7,"other","w"]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"kF","<",[7,"P","trackersF"]]]]]]]]]]],[2,"crowdStreak","=",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[1,"crowdStreak","+",[5,"1"]],[1,"crowded",">",[5,"0.5"]]]]],[11,[1,"crowdStreak",">",[5,"30"]],[0,[[13,"hopAng",[1,[6,"trackHash",[[1,[1,[1,"iF","*",[5,"9.13"]],"+",[1,"gen","*",[5,"5.77"]]],"+",[5,"2.3"]]]],"*","TWO_PI"]],[13,"hopDist",[1,[5,"0.05"],"+",[1,[5,"0.08"],"*",[6,"trackHash",[[1,[1,"iF","*",[5,"4.71"]],"+",[1,"gen","*",[5,"8.11"]]]]]]]],[2,"posX","=",[6,[7,"std","clamp"],[[1,"posX","+",[1,[6,[7,"std","cos"],["hopAng"]],"*","hopDist"]],[5,"0.03"],[5,"0.97"]]]],[2,"posY","=",[6,[7,"std","clamp"],[[1,"posY","+",[1,[6,[7,"std","sin"],["hopAng"]],"*","hopDist"]],[5,"0.03"],[5,"0.97"]]]],[2,"gen","=",[1,"gen","+",[5,"1"]]],[2,"genStart","=","frame"],[2,"missStreak","=",[6,[7,"d","f32"],[[5,"0"]]]],[2,"crowdStreak","=",[6,[7,"d","f32"],[[5,"0"]]]]]]],[13,"lifeFrames",[1,[1,[7,"P","lifespan"],"*",[5,"60"]],"*",[1,[5,"0.7"],"+",[1,[5,"0.6"],"*",[6,"trackHash",[[1,[1,"iF","*",[5,"4.77"]],"+",[1,"gen","*",[5,"1.31"]]]]]]]]],[13,"expired",[1,[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[1,"frame","-","genStart"],">","lifeFrames"]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"P","lifespan"],">",[5,"0.01"]]]]]],[13,"lost",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"missStreak",">",[5,"90"]]]]],[11,[1,[1,"expired","+","lost"],">",[5,"0.5"]],[0,[[2,"posX","=",[1,[5,"0.1"],"+",[1,[5,"0.8"],"*",[6,"trackHash",[[1,[1,[1,"iF","*",[5,"7.31"]],"+",[1,"gen","*",[5,"13.7"]]],"+",[1,"frame","*",[5,"0.013"]]]]]]]],[2,"posY","=",[1,[5,"0.1"],"+",[1,[5,"0.8"],"*",[6,"trackHash",[[1,[1,[1,"iF","*",[5,"11.93"]],"+",[1,"gen","*",[5,"17.3"]]],"+",[1,"frame","*",[5,"0.019"]]]]]]]],[2,"gen","=",[1,"gen","+",[5,"1"]]],[2,"genStart","=","frame"],[2,"missStreak","=",[6,[7,"d","f32"],[[5,"0"]]]],[2,"crowdStreak","=",[6,[7,"d","f32"],[[5,"0"]]]]]]],[13,"writeIdx",[1,[6,[7,"std","floor"],[[1,"frame","/",[6,[7,"d","f32"],["TRAIL_EVERY"]]]]],"%",[6,[7,"d","f32"],["TRAIL_LEN"]]]],[13,"shouldWrite",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[1,"frame","%",[6,[7,"d","f32"],["TRAIL_EVERY"]]],"<",[5,"0.5"]]]]],[12,"bbMinX","posX"],[12,"bbMinY","posY"],[12,"bbMaxX","posX"],[12,"bbMaxY","posY"],[14,[12,"j",[5,"0"]],[1,"j","<","TRAIL_LEN"],[102,"++","j"],[0,[[13,"jF",[6,[7,"d","f32"],["j"]]],[12,"e",[6,[7,"std","textureLoad"],[[7,[7,"trackLayout","$"],"prev"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[1,[5,"2"],"+","j"]]],"ti"]],[5,"0"]]]],[13,"isSlot",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[6,[7,"std","abs"],[[1,"jF","-","writeIdx"]]],"<",[5,"0.5"]]]]],[13,"doWrite",[1,"isSlot","*","shouldWrite"]],[2,"e","=",[6,[7,"std","mix"],["e",[6,[7,"d","vec4f"],["posX","posY","frame","gen"]],"doWrite"]]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"next"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[1,[5,"2"],"+","j"]]],"ti"]],"e"]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"present"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[1,[5,"2"],"+","j"]]],"ti"]],"e"]],[13,"live",[1,[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[6,[7,"std","abs"],[[1,[7,"e","w"],"-","gen"]]],"<",[5,"0.5"]]]],"*",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"e","z"],">",[5,"0.5"]]]]]],[2,"bbMinX","=",[6,[7,"std","min"],["bbMinX",[6,[7,"std","mix"],["posX",[7,"e","x"],"live"]]]]],[2,"bbMinY","=",[6,[7,"std","min"],["bbMinY",[6,[7,"std","mix"],["posY",[7,"e","y"],"live"]]]]],[2,"bbMa
247xX","=",[6,[7,"std","max"],["bbMaxX",[6,[7,"std","mix"],["posX",[7,"e","x"],"live"]]]]],[2,"bbMaxY","=",[6,[7,"std","max"],["bbMaxY",[6,[7,"std","mix"],["posY",[7,"e","y"],"live"]]]]]]]],[13,"bbOut",[6,[7,"d","vec4f"],["bbMinX","bbMinY","bbMaxX","bbMaxY"]]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"next"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["AABB_COL"]],"ti"]],"bbOut"]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"present"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["AABB_COL"]],"ti"]],"bbOut"]],[13,"headOut",[6,[7,"d","vec4f"],["posX","posY","frame",[1,"genStart","+",[5,"1"]]]]],[13,"metaOut",[6,[7,"d","vec4f"],["missStreak","sumW","gen","crowdStreak"]]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"next"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"0"]]],"ti"]],"headOut"]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"present"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"0"]]],"ti"]],"headOut"]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"next"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"1"]]],"ti"]],"metaOut"]],[6,[7,"std","textureStore"],[[7,[7,"trackLayout","$"],"present"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],[[5,"1"]]],"ti"]],"metaOut"]]]],externalNames:["trackLayout","d","std","trackHash","score","FEAT_GRID","TWO_PI","TRAIL_EVERY","TRAIL_LEN","AABB_COL"]},externals:()=>({trackLayout:nr,d:o,std:n,trackHash:za,score:s,FEAT_GRID:oi,TWO_PI:wb,TRAIL_EVERY:o_,TRAIL_LEN:Zc,AABB_COL:r_})})&&r.f)({})).$name("keyframesTrack")}var B3e=S4(Sb("bright")),A4={name:"KeyFrames",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Motion-tracking overlay \u2014 trackers hunt and follow features in the content, dropping keyframe diamonds behind them along their motion paths, like a compositor mid-track",requiresRTT:!0,requiresChild:!0,props:{trackers:{default:12,description:"Number of simultaneous trackers.",ui:{type:["range","map"],min:1,max:64,step:1,label:"Trackers",group:"Tracking"}},detect:{default:"bright",compileTime:!0,description:"What the trackers hunt for.",ui:{type:"select",options:[{label:"Brightness",value:"bright"},{label:"Darkness",value:"dark"},{label:"Transparency",value:"alpha"},{label:"Red",value:"red"},{label:"Green",value:"green"},{label:"Blue",value:"blue"}],label:"Detect",group:"Tracking"}},threshold:{default:.15,description:"Feature floor \u2014 content scoring below this doesn't count as trackable at all.",ui:{type:"range",min:0,max:.9,step:.01,label:"Threshold",group:"Tracking"}},variance:{default:.8,description:"Spread of tracker preferences \u2014 0 hunts only the strongest features, 1 distributes trackers across the whole brightness range.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variance",group:"Tracking"}},agility:{default:.5,description:"How fast trackers travel and how wide they search.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Agility",group:"Tracking"}},lifespan:{default:6,description:"Seconds a tracker follows its target before retiring and reacquiring elsewhere. 0 = track forever.",ui:{type:["range","map"],min:0,max:20,step:.5,label:"Lifespan",group:"Tracking"}},trail:{default:1,description:"Visibility of the keyframe trail each tracker leaves behind.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Trail",group:"Style"}},markerSize:{default:28,description:"Tracker gizmo size in pixels.",ui:{type:"range",min:8,max:80,step:1,label:"Marker Size",group:"Style"}},lineWidth:{default:1.5,description:"Stroke width in pixels.",ui:{type:"range",min:.5,max:6,step:.25,label:"Line Width",group:"Style"}},markerColor:{default:"#54d66b",transform:O,description:"Tracker gizmo color.",ui:{type:"color",label:"Tracker",group:"Colors"}},keyframeColor:{default:"#ffcf33",transform:O,description:"Keyframe diamond color.",ui:{type:"color",label:"Keyframes",group:"Colors"}},pathColor:{default:"#ffffffb8",transform:O,description:"Motion path color.",ui:{type:"color",label:"Path",group:"Colors"}}},compute:e=>{let{childNode:t,gpu:s,registerComputeTexture:r,convertToTexture:a,getCpuValue:i,onCleanup:l,propValues:c}=e;if(!t)return null;let d=s?.root;if(!d)return null;let u=a(t),p=typeof c.detect=="string"?c.detect:"bright",m=Sb(p),_=S4(m),v=gX(p,m),h=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(d.createTexture({size:[bb,t_],format:jc}).$usage("storage","sampled"),"stateA"),y=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(d.createTexture({size:[bb,t_],format:jc}).$usage("storage","sampled"),"stateB"),x=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(d.createTexture({size:[bb,t_],format:jc}).$usage("storage","sampled"),"presentTex"),g=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(d.createTexture({size:[oi,oi],format:jc}).$usage("storage","sampled"),"gridTex");l(()=>{h.destroy(),y.destroy(),x.destroy(),g.destroy()});let w=r(x),f=(globalThis.__TYPEGPU_AUTONAME__??(k=>k))(d.createUniform(Tb),"paramsBuf"),A=pt(d,(k=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(k.f=((R,D)=>{"use gpu";_(R,D)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"gx"},{type:"i",name:"gy"}],body:[0,[[6,"featureKernel",["gx","gy"]]]],externalNames:["featureKernel"]},externals:()=>({featureKernel:_})})&&k.f)({}),{size:[oi,oi]}),E=pt(d,(k=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(k.f=(R=>{"use gpu";v(R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"ti"}],body:[0,[[6,"trackKernel",["ti"]]]],externalNames:["trackKernel"]},externals:()=>({trackKernel:v})})&&k.f)({}),{size:[t_]}),P=null,C=null,$=null,U=0;return{outputs:{childTexture:u,trackState:w},bindInputs:k=>{let R=k(u.key);R&&(P=d.createBindGroup(s_,{src:R.texture,grid:g,params:f.buffer}),C=d.createBindGroup(nr,{src:R.texture,featGrid:g,prev:h,next:y,present:x,params:f.buffer}),$=d.createBindGroup(nr,{src:R.texture,featGrid:g,prev:y,next:h,present:x,params:f.buffer}))},getComputeNodes:k=>{if(!P||!C||!$)return null;let R=k;
247f.write({dt:Math.min(R.deltaTime??.016,.05),trackersF:i("trackers")??4,agility:i("agility")??.5,threshold:i("threshold")??.15,variance:i("variance")??.5,lifespan:i("lifespan")??6});let D=[A.with(P),E.with(U===0?C:$)];return U=1-U,D}}},fragment:e=>{let{uniforms:t,ctx:s,childNode:r,convertToTexture:a,computeOutputs:i}=e;if(!r)return me;let l=(i?.childTexture??a(r)).key,c=i?.trackState;return new mo(d=>{let u=y=>t[y]._emit(d),p=y=>Tr(y),m=d.freshLocal("kft"),_=[],v=s.uv._emit(d);_.push(`let ${m}_res = ${s.logicalViewportSize._emit(d)};`),_.push(`let ${m}_sf = ${m}_res.y / ${p(yX)};`),_.push(`let ${m}_px = vec2f((${v}).x * ${m}_res.x, (${v}).y * ${m}_res.y);`),_.push(`let ${m}_aa = max(max(fwidth(${m}_px.x), fwidth(${m}_px.y)), ${p(1e-4)});`),_.push(`let ${m}_lw = max(${u("lineWidth")} * ${m}_sf, ${p(.5)});`),_.push(`let ${m}_ms = max(${u("markerSize")} * ${m}_sf, ${p(4)});`),_.push(`var ${m}_dst = textureSampleLevel(tex.$.${l}, samp.$.linearClamp, (${v}), 0.0);`);let h=(y,x)=>{_.push(`{ let av = clamp(${x}, 0.0, 1.0); ${m}_dst = vec4f((${y}) * av + ${m}_dst.rgb * (1.0 - av), av + ${m}_dst.a * (1.0 - av)); }`)};if(c){let y=c.key,x=w=>`textureLoad(tex.$.${y}, vec2u(${w}, ti), 0)`,g=Zc*o_;_.push(`let ${m}_n = u32(clamp(${u("trackers")}, ${p(1)}, ${p(t_)}));`),_.push(`for (var ti = 0u; ti < ${m}_n; ti = ti + 1u) {`),_.push(`let head = ${x("0u")};`),_.push("if (head.w < 0.5) { continue; }"),_.push(`let bb = ${x(`${r_}u`)};`),_.push(`let pad = ${m}_ms + ${m}_lw * ${p(4)} + ${m}_aa * ${p(2)};`),_.push(`let bbMin = vec2f(bb.x * ${m}_res.x, bb.y * ${m}_res.y) - vec2f(pad);`),_.push(`let bbMax = vec2f(bb.z * ${m}_res.x, bb.w * ${m}_res.y) + vec2f(pad);`),_.push(`if (all(${m}_px >= bbMin) && all(${m}_px <= bbMax)) {`),_.push(`let mta = ${x("1u")};`),_.push(`let tp = vec2f(head.x * ${m}_res.x, head.y * ${m}_res.y);`),_.push(`let searching = select(${p(1)}, ${p(.45)}, mta.x > ${p(4)});`),_.push(`if (${u("trail")} > ${p(.001)}) {`),_.push(`var ePrev = ${x(`${2+Zc-1}u`)};`),_.push(`for (var j = 0u; j < ${Zc}u; j = j + 1u) {`),_.push(`let e = ${x("2u + j")};`),_.push(`let valid = select(${p(0)}, ${p(1)}, abs(e.w - mta.z) < ${p(.5)}) * select(${p(0)}, ${p(1)}, e.z > ${p(.5)});`),_.push("let age = head.z - e.z;"),_.push(`let fade = clamp(${p(1)} - age / ${p(g)}, ${p(0)}, ${p(1)}) * valid;`),_.push(`let ep = vec2f(e.x * ${m}_res.x, e.y * ${m}_res.y);`),_.push(`let dp = ${m}_px - ep;`),_.push(`let dsz = ${m}_ms * ${p(.16)};`),_.push(`let dSd = (abs(dp.x) + abs(dp.y)) * ${p(.7071)} - dsz;`),h(`${u("keyframeColor")}.rgb`,`(${p(1)} - smoothstep(${p(0)}, ${m}_aa, dSd)) * ${u("keyframeColor")}.a * fade * ${u("trail")}`),_.push(`let validP = select(${p(0)}, ${p(1)}, abs(ePrev.w - mta.z) < ${p(.5)}) * select(${p(0)}, ${p(1)}, ePrev.z > ${p(.5)});`),_.push("let stampGap = abs(e.z - ePrev.z);"),_.push(`let contiguous = select(${p(0)}, ${p(1)}, stampGap < ${p(o_*1.5)});`),_.push(`let epp = vec2f(ePrev.x * ${m}_res.x, ePrev.y * ${m}_res.y);`),_.push(`let pa = ${m}_px - epp; let ba = ep - epp;`),_.push(`let h = clamp(dot(pa, ba) / max(dot(ba, ba), ${p(1e-4)}), ${p(0)}, ${p(1)});`),_.push("let segD = length(pa - ba * h);"),h(`${u("pathColor")}.rgb`,`(${p(1)} - smoothstep(${m}_lw * ${p(.4)}, ${m}_lw * ${p(.4)} + ${m}_aa, segD)) * ${u("pathColor")}.a * fade * validP * contiguous * ${u("trail")} * ${p(.8)}`),_.push("ePrev = e;"),_.push("}"),_.push("}"),_.push(`let gp = ${m}_px - tp;`),_.push(`let hlf = ${m}_ms * ${p(.5)};`),_.push("let q = abs(gp) - vec2f(hlf);"),_.push(`let boxSd = length(max(q, vec2f(0.0))) + min(max(q.x, q.y), ${p(0)});`),_.push(`var strokeA = ${p(1)} - smoothstep(${p(0)}, ${m}_aa, abs(boxSd) - ${m}_lw * ${p(.5)});`),_.push(`let bl = hlf * ${p(.45)};`),_.push("let inCorner = abs(gp.x) > hlf - bl && abs(gp.y) > hlf - bl;"),_.push(`strokeA = strokeA * select(${p(0)}, ${p(1)}, inCorner);`),h(`${u("markerColor")}.rgb`,`strokeA * ${u("markerColor")}.a * searching`),_.push(`let tick = hlf * ${p(.55)};`),_.push(`let chH = ${p(1)} - smoothstep(${p(0)}, ${m}_aa, max(abs(gp.y) - ${m}_lw * ${p(.5)}, abs(gp.x) - tick));`),_.push(`let chV = ${p(1)} - smoothstep(${p(0)}, ${m}_aa, max(abs(gp.x) - ${m}_lw * ${p(.5)}, abs(gp.y) - tick));`),h(`${u("markerColor")}.rgb`,`max(chH, chV) * ${p(.55)} * ${u("markerColor")}.a * searching`),h("vec3f(1.0, 1.0, 1.0)",`(${p(1)} - smoothstep(${m}_lw, ${m}_lw + ${m}_aa, length(gp))) * searching`),_.push("}"),_.push("}")}
vendor: 4,797 bytes, line 247
247for(let y of _)d.statement(y);return`vec4f(${m}_dst.rgb / max(${m}_dst.a, ${p(1e-4)}), ${m}_dst.a)`})}};var Cu=6.2831853,E4=b.fn([o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return o.vec3f(__tsover_add(__tsover_mul(n.cos(__tsover_mul(Cu,t)),.5),.5),__tsover_add(__tsover_mul(n.cos(__tsover_mul(Cu,__tsover_sub(t,.333))),.5),.5),__tsover_add(__tsover_mul(n.cos(__tsover_mul(Cu,__tsover_sub(t,.666))),.5),.5))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,[7,"d","vec3f"],[[1,[1,[6,[7,"std","cos"],[[1,"TAU","*","t"]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[6,[7,"std","cos"],[[1,"TAU","*",[1,"t","-",[5,"0.333"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[6,[7,"std","cos"],[[1,"TAU","*",[1,"t","-",[5,"0.666"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]],externalNames:["d","std","TAU"]},externals:()=>({d:o,std:n,TAU:Cu})})&&e.f)({})),Wl=b.fn([o.vec2f,o.f32,o.vec2f,o.vec2f,o.f32,o.vec3f,o.vec4f,o.vec4f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=l.x,p=l.y,m=l.z,_=c.x,v=c.y,h=c.z,y=c.w,x=d.x,g=d.y,w=d.z,f=d.w,A=r.add(a.mul(__tsover_mul(__tsover_mul(_,u),2))),E=o.vec2f(__tsover_mul(__tsover_sub(t.x,A.x),s),__tsover_sub(t.y,A.y)),P=n.length(E),C=v,$=__tsover_sub(1,n.smoothstep(__tsover_mul(C,.12),C,P)),U=__tsover_sub(1,n.smoothstep(__tsover_mul(C,.05),__tsover_mul(C,.45),P)),k=__tsover_mul($,__tsover_sub(1,__tsover_mul(U,y))),R=__tsover_add(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(i,4.3),f)),.08),__tsover_mul(n.sin(__tsover_add(__tsover_mul(i,9.1),__tsover_mul(f,1.7))),.05)),.95),D=__tsover_mul(C,.78),M=__tsover_mul(__tsover_mul(C,p),.14),z=__tsover_mul(C,.1),L=__tsover_sub(1,n.smoothstep(0,z,n.abs(__tsover_sub(P,__tsover_add(D,M))))),B=__tsover_sub(1,n.smoothstep(0,z,n.abs(__tsover_sub(P,D)))),N=__tsover_sub(1,n.smoothstep(0,z,n.abs(__tsover_sub(P,__tsover_sub(D,M))))),G=__tsover_mul(__tsover_mul(h,m),R);return o.vec3f(__tsover_mul(__tsover_add(__tsover_mul(k,x),__tsover_mul(L,p)),G),__tsover_mul(__tsover_add(__tsover_mul(k,g),__tsover_mul(B,p)),G),__tsover_mul(__tsover_add(__tsover_mul(k,w),__tsover_mul(N,p)),G))}),{v:1,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:"shared"},{type:"i",name:"disc"},{type:"i",name:"tint"}],body:[0,[[13,"ghostSpread",[7,"shared","x"]],[13,"ghostChroma",[7,"shared","y"]],[13,"ghostInt",[7,"shared","z"]],[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,[7,"d","vec2f"],[[1,[1,[7,"uv","x"],"-",[7,"ghostPos","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[7,"ghostPos","y"]]]]],[13,"dist",[6,[7,"std","length"],["toGhost"]]],[13,"sz","size"],[13,"discShape",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"sz","*",[5,"0.12"]],"sz","dist"]]]],[13,"innerFade",[1,[5,"1"],"-",[6,[7,"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,[7,"std","sin"],[[1,[1,"t","*",[5,"4.3"]],"+","gPhase"]]],"*",[5,"0.08"]],"+",[1,[6,[7,"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,"rRing",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"ringWidth",[6,[7,"std","abs"],[[1,"dist","-",[1,"ringCenter","+","chromaSpread"]]]]]]]],[13,"gRing",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"ringWidth",[6,[7,"std","abs"],[[1,"dist","-","ringCenter"]]]]]]],[13,"bRing",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"ringWidth",[6,[7,"std","abs"],[[1,"dist","-",[1,"ringCenter","-","chromaSpread"]]]]]]]],[13,"brightness",[1,[1,"bright","*","ghostInt"],"*","gShimmer"]],[10,[6,[7,"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"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),xX=b.fn([o.vec2f,o.vec2f,o.f32,o.vec2f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=i.x,p=i.y,m=i.z,_=i.w,v=l.x,h=l.y,y=l.z,x=l.w,g=c.x,w=c.y,f=c.z,A=c.w,E=d.x,P=d.y,C=d.z,$=__ts
247over_div(s.x,s.y),U=o.vec2f(a.x,__tsover_sub(1,a.y)),k=o.vec2f(__tsover_sub(.5,U.x),__tsover_sub(.5,U.y)),R=r,D=__tsover_add(__tsover_add(__tsover_add(__tsover_mul(n.sin(__tsover_mul(R,3.7)),.04),__tsover_mul(n.sin(__tsover_mul(R,7.3)),.03)),__tsover_mul(n.sin(__tsover_mul(R,13.1)),.02)),.97),M=n.max(__tsover_mul(n.abs(__tsover_sub(U.x,.5)),2),__tsover_mul(n.abs(__tsover_sub(U.y,.5)),2)),z=__tsover_sub(1,__tsover_mul(C,.5)),L=n.mix(1,__tsover_sub(1,n.smoothstep(z,1,M)),C),B=__tsover_mul(__tsover_mul(u,L),D),N=o.vec2f(__tsover_mul(__tsover_sub(t.x,U.x),$),__tsover_sub(t.y,U.y)),G=n.length(N),I=o.vec3f(m,_,p),X=o.vec3f(0,0,0);X=X.add(Wl(t,$,U,k,R,I,o.vec4f(.15,.2,.3,.1),o.vec4f(1,.95,.9,0))),X=X.add(Wl(t,$,U,k,R,I,o.vec4f(.3,.12,.25,.65),o.vec4f(1,.85,.55,2.17))),X=X.add(Wl(t,$,U,k,R,I,o.vec4f(.5,.08,.35,.15),o.vec4f(.62,.82,1,4.34))),X=X.add(Wl(t,$,U,k,R,I,o.vec4f(.72,.14,.18,.75),o.vec4f(.75,1,.7,6.51))),X=X.add(Wl(t,$,U,k,R,I,o.vec4f(.95,.06,.3,0),o.vec4f(1,.6,.85,8.68))),X=X.add(Wl(t,$,U,k,R,I,o.vec4f(1.25,.1,.15,.8),o.vec4f(.55,.88,1,10.85))),X=X.add(Wl(t,$,U,k,R,I,o.vec4f(1.55,.07,.2,.25),o.vec4f(1,.92,.6,13.02)));let F=o.vec2f(__tsover_sub(1,U.x),__tsover_sub(1,U.y)),Q=o.vec2f(__tsover_mul(__tsover_sub(t.x,F.x),$),__tsover_sub(t.y,F.y)),ae=n.length(Q),j=__tsover_mul(__tsover_mul(h,y),.06),q=__tsover_add(__tsover_mul(x,.12),.005),te=__tsover_sub(1,n.smoothstep(0,q,n.abs(__tsover_sub(ae,__tsover_add(h,j))))),ne=__tsover_sub(1,n.smoothstep(0,q,n.abs(__tsover_sub(ae,h)))),oe=__tsover_sub(1,n.smoothstep(0,q,n.abs(__tsover_sub(ae,__tsover_sub(h,j))))),pe=n.atan2(Q.y,Q.x),_e=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(pe,3),__tsover_mul(R,.5))),.12),.88),ge=o.vec3f(te,ne,oe).mul(v).mul(_e),Me=n.atan2(N.y,N.x),Se=n.atan2(k.y,__tsover_mul(k.x,$)),Ae=__tsover_add(__tsover_mul(Se,.5),__tsover_mul(R,.06)),Pe=__tsover_add(Me,Ae),De=n.pow(n.abs(n.cos(__tsover_mul(Pe,__tsover_div(w,2)))),3.5),ke=__tsover_mul(n.pow(n.abs(n.cos(__tsover_mul(__tsover_add(Pe,.25),__tsover_div(w,2)))),7),.4),Ge=__tsover_div(1,__tsover_add(1,__tsover_mul(__tsover_mul(G,G),60))),Oe=E4(__tsover_add(__tsover_div(Pe,Cu),.5)),qe=n.mix(o.vec3f(1,.97,.92),Oe,.12).mul(__tsover_mul(__tsover_mul(__tsover_add(De,ke),Ge),g)),We=n.abs(__tsover_sub(t.y,U.y)),Ve=n.abs(__tsover_sub(t.x,U.x)),Ne=n.exp(__tsover_mul(__tsover_mul(-800,We),We)),He=__tsover_add(__tsover_mul(__tsover_mul(A,A),.25),.001),vt=n.exp(__tsover_div(__tsover_mul(__tsover_mul(-1,Ve),Ve),__tsover_mul(He,.7))),_t=n.exp(__tsover_div(__tsover_mul(__tsover_mul(-1,Ve),Ve),He)),Ze=n.exp(__tsover_div(__tsover_mul(__tsover_mul(-1,Ve),Ve),__tsover_mul(He,1.4))),it=o.vec3f(__tsover_mul(__tsover_mul(Ne,vt),.5),__tsover_mul(__tsover_mul(Ne,_t),.65),__tsover_mul(__tsover_mul(Ne,Ze),.9)).mul(f),Tt=__tsover_div(1,__tsover_add(__tsover_mul(P,P),.01)),J=n.exp(__tsover_mul(__tsover_mul(__tsover_mul(-1,G),G),Tt)),be=o.vec3f(1,.98,.95).mul(__tsover_mul(J,E)),ce=n.exp(__tsover_mul(__tsover_mul(-500,G),G)),xe=__tsover_sub(1,n.smoothstep(0,.025,G)),ye=o.vec3f(1,.98,.96).mul(__tsover_mul(__tsover_add(ce,__tsover_mul(xe,1.5)),u)),Ee=X.add(ge).add(qe).add(it).add(be).add(ye).mul(B),Le=n.clamp(__tsover_mul(n.dot(Ee,o.vec3f(.299,.587,.114)),2),0,1);return o.vec4f(Ee,Le)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"animTime"},{type:"i",name:"lightPosRaw"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"},{type:"i",name:"p4"}],body:[0,[[13,"intensity",[7,"p1","x"]],[13,"ghostInt",[7,"p1","y"]],[13,"ghostSpread",[7,"p1","z"]],[13,"ghostChroma",[7,"p1","w"]],[13,"haloInt",[7,"p2","x"]],[13,"haloRad",[7,"p2","y"]],[13,"haloChroma",[7,"p2","z"]],[13,"haloSoft",[7,"p2","w"]],[13,"starburstInt",[7,"p3","x"]],[13,"starburstPts",[7,"p3","y"]],[13,"streakInt",[7,"p3","z"]],[13,"streakLen",[7,"p3","w"]],[13,"glareInt",[7,"p4","x"]],[13,"glareSz",[7,"p4","y"]],[13,"edgeFade",[7,"p4","z"]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"lightPos",[6,[7,"d","vec2f"],[[7,"lightPosRaw","x"],[1,[5,"1"],"-",[7,"lightPosRaw","y"]]]]],[13,"flareAxis",[6,[7,"d","vec2f"],[[1,[5,"0.5"],"-",[7,"lightPos","x"]],[1,[5,"0.5"],"-",[7,"lightPos","y"]
vendor: 9,528 bytes, line 247
247]]]],[13,"t","animTime"],[13,"shimmer",[1,[1,[1,[1,[6,[7,"std","sin"],[[1,"t","*",[5,"3.7"]]]],"*",[5,"0.04"]],"+",[1,[6,[7,"std","sin"],[[1,"t","*",[5,"7.3"]]]],"*",[5,"0.03"]]],"+",[1,[6,[7,"std","sin"],[[1,"t","*",[5,"13.1"]]]],"*",[5,"0.02"]]],"+",[5,"0.97"]]],[13,"edgeDist",[6,[7,"std","max"],[[1,[6,[7,"std","abs"],[[1,[7,"lightPos","x"],"-",[5,"0.5"]]]],"*",[5,"2"]],[1,[6,[7,"std","abs"],[[1,[7,"lightPos","y"],"-",[5,"0.5"]]]],"*",[5,"2"]]]]],[13,"fadeStart",[1,[5,"1"],"-",[1,"edgeFade","*",[5,"0.5"]]]],[13,"edgeFadeV",[6,[7,"std","mix"],[[5,"1"],[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["fadeStart",[5,"1"],"edgeDist"]]],"edgeFade"]]],[13,"masterFade",[1,[1,"intensity","*","edgeFadeV"],"*","shimmer"]],[13,"toLightAR",[6,[7,"d","vec2f"],[[1,[1,[7,"uv","x"],"-",[7,"lightPos","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[7,"lightPos","y"]]]]],[13,"lightDist",[6,[7,"std","length"],["toLightAR"]]],[13,"gShared",[6,[7,"d","vec3f"],["ghostSpread","ghostChroma","ghostInt"]]],[12,"ghostAccum",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"0.15"],[5,"0.2"],[5,"0.3"],[5,"0.1"]]],[6,[7,"d","vec4f"],[[5,"1"],[5,"0.95"],[5,"0.9"],[5,"0"]]]]]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"0.3"],[5,"0.12"],[5,"0.25"],[5,"0.65"]]],[6,[7,"d","vec4f"],[[5,"1"],[5,"0.85"],[5,"0.55"],[5,"2.17"]]]]]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"0.5"],[5,"0.08"],[5,"0.35"],[5,"0.15"]]],[6,[7,"d","vec4f"],[[5,"0.62"],[5,"0.82"],[5,"1"],[5,"4.34"]]]]]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"0.72"],[5,"0.14"],[5,"0.18"],[5,"0.75"]]],[6,[7,"d","vec4f"],[[5,"0.75"],[5,"1"],[5,"0.7"],[5,"6.51"]]]]]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"0.95"],[5,"0.06"],[5,"0.3"],[5,"0"]]],[6,[7,"d","vec4f"],[[5,"1"],[5,"0.6"],[5,"0.85"],[5,"8.68"]]]]]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"1.25"],[5,"0.1"],[5,"0.15"],[5,"0.8"]]],[6,[7,"d","vec4f"],[[5,"0.55"],[5,"0.88"],[5,"1"],[5,"10.85"]]]]]]]],[2,"ghostAccum","=",[6,[7,"ghostAccum","add"],[[6,"lensFlareGhost",["uv","aspect","lightPos","flareAxis","t","gShared",[6,[7,"d","vec4f"],[[5,"1.55"],[5,"0.07"],[5,"0.2"],[5,"0.25"]]],[6,[7,"d","vec4f"],[[5,"1"],[5,"0.92"],[5,"0.6"],[5,"13.02"]]]]]]]],[13,"antiLight",[6,[7,"d","vec2f"],[[1,[5,"1"],"-",[7,"lightPos","x"]],[1,[5,"1"],"-",[7,"lightPos","y"]]]]],[13,"toAntiLight",[6,[7,"d","vec2f"],[[1,[1,[7,"uv","x"],"-",[7,"antiLight","x"]],"*","aspect"],[1,[7,"uv","y"],"-",[7,"antiLight","y"]]]]],[13,"antiLightDist",[6,[7,"std","length"],["toAntiLight"]]],[13,"haloChromaSpread",[1,[1,"haloRad","*","haloChroma"],"*",[5,"0.06"]]],[13,"haloWidth",[1,[1,"haloSoft","*",[5,"0.12"]],"+",[5,"0.005"]]],[13,"rHalo",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"haloWidth",[6,[7,"std","abs"],[[1,"antiLightDist","-",[1,"haloRad","+","haloChromaSpread"]]]]]]]],[13,"gHalo",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"haloWidth",[6,[7,"std","abs"],[[1,"antiLightDist","-","haloRad"]]]]]]],[13,"bHalo",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"haloWidth",[6,[7,"std","abs"],[[1,"antiLightDist","-",[1,"haloRad","-","haloChromaSpread"]]]]]]]],[13,"haloAngle",[6,[7,"std","atan2"],[[7,"toAntiLight","y"],[7,"toAntiLight","x"]]]],[13,"haloAngVar",[1,[1,[6,[7,"std","sin"],[[1,[1,"haloAngle","*",[5,"3"]],"+",[1,"t","*",[5,"0.5"]]]]],"*",[5,"0.12"]],"+",[5,"0.88"]]],[13,"haloColor",[6,[7,[6,[7,[6,[7,"d","vec3f"],["rHalo","gHalo","bHalo"]],"mul"],["haloInt"]],"mul"],["haloAngVar"]]],[13,"lightAngle",[6,[7,"std","atan2"],[[7,"toLightAR","y"],[7,"toLightAR","x"]]]],[13,"axisAng",[6,[7,"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,[7,"std","pow"],[[6,[7,"std","abs"],[[6,[7,"std","cos"],[[1,"spikeAngle","*",[1,"starburstPts","/",[5,"2"]]]]]]],[5,"3.5"]]]],[13,"secondarySpikes",[1,[6,[7,"std","pow"],[[6,[7,"std","abs"],[[6,[7,"std","cos"],[[1,[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"],"+",[5,"0.5"]]]]],[13,"starTint",[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[5,"1"],[5,"0.97"],[5,"0.92"]]],"starSpectral",[5,"0.12"]]]],[13,"starburstColor",[6,[7,"starTint","mul"],[[1,[1,[1,"primarySpikes","+","secondarySpikes"],"*","radialFall"],"*","starburstInt"]]]],[13,"dy",[6,[7,"std","abs"],[[1,[7,"uv","y"],"-",[7,"lightPos","y"]]]]],[13,"dx",[6,[7,"std","abs"],[[1,[7,"uv","x"],"-",[7,"lightPos","x"]]]]],[13,"vertFall",[6,[7,"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,[7,"std","exp"],[[1,[1,[1,[4,"-",[5,"1"]],"*","dx"],"*","dx"],"/",[1,"lenSq","*",[5,"0.7"]]]]]],[13,"gStreak",[6,[7,"std","exp"],[[1,[1,[1,[4,"-",[5,"1"]],"*","dx"],"*","dx"],"/","lenSq"]]]],[13,"bStreak",[6,[7,"std","exp"],[[1,[1,[1,[4,"-",[5,"1"]],"*","dx"],"*","dx"],"/",[1,"lenSq","*",[5,"1.4"]]]]]],[13,"streakColor",[6,[7,[6,[7,"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"]]],[13,"glareSharpness",[1,[5,"1"],"/",[1,[1,"glareSz","*","glareSz"],"+",[5,"0.01"]]]],[13,"glareFalloff",[6,[7,"std","exp"],[[1,[1,[1,[4,"-",[5,"1"]],"*","lightDist"],"*","lightDist"],"*","glareSharpness"]]]],[13,"glareColor",[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"0.98"],[5,"0.95"]]],"mul"],[[1,"glareFalloff","*","glareInt"]]]],[13,"coreSoft",[6,[7,"std","exp"],[[1,[1,[4,"-",[5,"500"]],"*","lightDist"],"*","lightDist"]]]],[13,"coreSharp",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.025"],"lightDist"]]]],[13,"coreColor",[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"0.98"],[5,"0.96"]]],"mul"],[[1,[1,"coreSoft","+",[1,"coreSharp","*",[5,"1.5"]]],"*","intensity"]]]],[13,"flareTotal",[6,[7,[6,[7,[6,[7,[6,[7,[6,[7,"ghostAccum","add"],["haloColor"]],"add"],["starburstColor"]],"add"],["streakColor"]],"add"],["glareColor"]],"add"],["coreColor"]]],[13,"finalColor",[6,[7,"flareTotal","mul"],["masterFade"]]],[13,"flareAlpha",[6,[7,"std","clamp"],[[1,[6,[7,"std","dot"],["finalColor",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]],"*",[5,"2"]],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],["finalColor","flareAlpha"]]]]],externalNames:["d","std","lensFlareGhost","lensFlareSpectral","TAU"]},externals:()=>({d:o,std:n,lensFlareGhost:Wl,lensFlareSpectral:E4,TAU:Cu})})&&e.f)({})),M4={name:"LensFlare",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:we,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:.
24701,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"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e),a=e.uniforms;return T(xX,"lensFlareColor",[t,s,r,a.lightPosition,de(a.intensity,a.ghostIntensity,a.ghostSpread,a.ghostChroma),de(a.haloIntensity,a.haloRadius,a.haloChroma,a.haloSoftness),de(a.starburstIntensity,a.starburstPoints,a.streakIntensity,a.streakLength),de(a.glareIntensity,a.glareSize,a.edgeFade,0)])}};var{sdfSpaceUV:bX}=Zs,{createSvgSdfSampler:wX,createAnalyticSdfSampler:TX,driveAnalyticSubProps:SX,ANALYTIC_SDF_EXTRA_FIELDS:AX}=ft,{createVolumetricFieldComputeNode:EX,buildVolumetricFieldSampler:MX}=ys,CX=Gx,a_=6.283185307179586,PX=JSON.stringify({type:"circleSDF",radius:.35}),C4=.35;function kX(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var RX=[{color:"#7b2ff7",position:0},{color:"#00e0ff",position:.5},{color:"#ff3d81",position:1}],Jv=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(.18,t),r=n.pow(n.abs(n.sin(__tsover_mul(s,a_))),10),a=n.pow(n.abs(n.sin(__tsover_mul(__tsover_sub(s,.15),a_))),10);return n.clamp(__tsover_add(r,__tsover_mul(.6,a)),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"animTime"}],body:[0,[[13,"time",[1,[5,"0.18"],"*","animTime"]],[13,"first",[6,[7,"std","pow"],[[6,[7,"std","abs"],[[6,[7,"std","sin"],[[1,"time","*","TWO_PI"]]]]],[5,"10"]]]],[13,"second",[6,[7,"std","pow"],[[6,[7,"std","abs"],[[6,[7,"std","sin"],[[1,[1,"time","-",[5,"0.15"]],"*","TWO_PI"]]]]],[5,"10"]]]],[10,[6,[7,"std","clamp"],[[1,"first","+",[1,[5,"0.6"],"*","second"]],[5,"0"],[5,"1"]]]]]],externalNames:["std","TWO_PI"]},externals:()=>({std:n,TWO_PI:a_})})&&e.f)({})),$X=b.fn([o.f32,o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_add(__tsover_mul(u,1.2),131),_=n.max(__tsover_mul(__tsover_mul(.5,i),C4),.002),v=__tsover_add(__tsover_div(t,n.max(a,.001)),n.mix(_,0,l)),h=n.abs(v),y=n.mix(_,__tsover_mul(3,_),l),x=__tsover_div(2,__tsover_mul(r.y,n.max(a,.001))),g=n.min(n.mix(y,__tsover_mul(y,-1),l),__tsover_add(y,x)),w=n.max(n.mix(y,__tsover_mul(y,-1),l),__tsover_add(y,x)),f=__tsover_sub(1,n.smoothstep(g,w,h));f=n.pow(n.clamp(f,0,1),__tsover_add(1,l));let A=o.vec2f(__tsover_sub(s.x,.5),__tsover_sub(s.y,.5)).mul(__tsover_add(.5,__tsover_mul(2.5,c))),E=__tsover_mul(.5,m),P=tn(o.vec2f(__tsover_add(__tsover_mul(A.x,2.7),E),__tsover_add(__tsover_mul(A.y,2.7),E))),C=tn(o.vec2f(__tsover_sub(__tsover_mul(A.x,3.4),E),__tsover_sub(__tsover_mul(A.y,3.4),E))),$=__tsover_sub(n.clamp(__tsover_mul(3,P),0,1),C),U=n.clamp(__tsover_add(_,.2),.1,.4),k=n.pow(n.clamp(__tsover_sub(1,n.smoothstep(__tsover_mul(U,-1),__tsover_add(U,x),h)),0,1),2);$=__tsover_mul($,k),$=__tsover_mul(__tsover_mul(__tsover_mul(30,$),$),__tsover_mul(__tsover_mul(.5,d),d)),$=__tsover_mul($,n.mix(1,Jv(u),p)),f=n.clamp(__tsover_add(f,n.clamp($,0,1)),0,1);let R=__tsover_div(n.atan2(__tsover_sub(s.y,.5),__tsover_sub(s.x,.5)),a_);return o.vec2f(f,R)}),{v:1,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"}],body:[0,[[13,"t",[1,[1,"animTime","*",[5,"1.2"]],"+",[5,"131"]]],[13,"th",[6,[7,"std","max"],[[1,[1,[5,"0.5"],"*","thickness"],"*","THICKNESS_REF"],[5,"0.002"]]]],[13,"f",[1,[1,"fieldRaw","/",[6,[7,"std","max"],["scale",[5,"0.001"]]]],"+",[6,[7,"std","mix"],["th",[5,"0"],"softness"]]]],[13,"bd",[6,[7,"std","abs"],["f"]]],[13,"borderTh",[6,[7,"std","mix"],["th",[1,[5,"3"],"*","th"],"softness"]]],[13,"aa",[1,[5,"2"],"/",[1,[7,"viewport","y"],"*",[6,[7,"std","max"],["scale",[5,"0.001"]]]]]],[13,"e0",[6,[7,"std","min"],[[6,[7,"std","mix"],["borderTh",[1,"borderTh","*",[4,"-",[5,"1"]]],"softness"]],[1,"borderTh","+","aa"]]]],[13,"e1",[6,[7,"std","max"],[[6,[7,"std","mix"],["borderTh",[1,"borderTh","*",[4,"-",[5,"1"]]],"softness"]],[1,"borderTh","+","aa"]]]],[12,"border",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["e0","e1","bd"]]]],[2,"border","=",[6,[7,"std","pow"],[[6,[7,"std","clamp"],["border",[5,"0"],[5,"1"]]],[1,[5,"1"],"+","softness"]]]],[13,"suv",[6,[7,[6,[7,"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,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,[1,[7,"suv","x"],"*",[5,"2.7"]],"+","drift"],[1,[1,[7,"suv","y"],"*",[5,"2.7"]],"+","drift"]]]]]],[13,"n2",[6,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,[1,[7,"suv","x"],"*",[5,"3.4"]],"-","drift"],[1,[1,[7,"suv","y"],"*",[5,"3.4"]],"-","drift"]]]]]],[12,"smoke",[1,[6,[7,"std","clamp"],[[1,[5,"3"],"*","
247n1"],[5,"0"],[5,"1"]]],"-","n2"]],[13,"smokeTh",[6,[7,"std","clamp"],[[1,"th","+",[5,"0.2"]],[5,"0.1"],[5,"0.4"]]]],[13,"smokeBand",[6,[7,"std","pow"],[[6,[7,"std","clamp"],[[1,[5,"1"],"-",[6,[7,"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,[7,"std","mix"],[[5,"1"],[6,"lightEdgeBeat",["animTime"]],"pulse"]]]],[2,"border","=",[6,[7,"std","clamp"],[[1,"border","+",[6,[7,"std","clamp"],["smoke",[5,"0"],[5,"1"]]]],[5,"0"],[5,"1"]]]],[13,"angle01",[1,[6,[7,"std","atan2"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[1,[7,"sdfUV","x"],"-",[5,"0.5"]]]],"/","TWO_PI"]],[10,[6,[7,"d","vec2f"],["border","angle01"]]]]],externalNames:["std","THICKNESS_REF","d","noise","lightEdgeBeat","TWO_PI"]},externals:()=>({std:n,THICKNESS_REF:C4,d:o,noise:mt,lightEdgeBeat:Jv,TWO_PI:a_})})&&e.f)({})),UX=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=__tsover_add(__tsover_mul(r,1.2),131),_=Jv(r),v=__tsover_add(1,__tsover_mul(__tsover_add(1,__tsover_mul(4,d)),c)),h=o.f32(0),y=o.f32(0);for(let x=0;x<5;x++){let g=o.f32(x),w=n.select(o.f32(0),o.f32(1),g<a),f=ca(o.vec2f(__tsover_add(__tsover_add(__tsover_mul(g,10),2),__tsover_mul(u,7.31)),__tsover_add(__tsover_add(40,p),__tsover_mul(u,3.17)))),A=__tsover_add(.1,__tsover_mul(.15,n.abs(__tsover_mul(n.sin(__tsover_mul(g,__tsover_add(2,p))),n.cos(__tsover_mul(g,__tsover_add(2,__tsover_mul(2.5,p)))))))),E=n.select(o.f32(1),o.f32(-1),f.y<.5),P=__tsover_mul(__tsover_add(__tsover_mul(A,m),__tsover_mul(f.x,3)),E),C=n.abs(__tsover_sub(p,__tsover_mul(2,n.floor(__tsover_mul(p,.5)))))<.5,$=n.sin(__tsover_add(m,__tsover_mul(g,__tsover_sub(5,__tsover_mul(1.5,p))))),U=n.cos(__tsover_add(m,__tsover_mul(g,__tsover_add(3,__tsover_mul(1.3,p))))),k=__tsover_add(.5,__tsover_mul(.5,n.select(U,$,C))),R=n.clamp(__tsover_sub(__tsover_mul(2,l),f.x),0,1);k=n.mix(k,_,R);let D=n.fract(__tsover_add(t,P)),M=__tsover_add(__tsover_add(.05,__tsover_mul(__tsover_mul(.6,i),i)),__tsover_mul(.05,f.x));M=n.mix(M,.1,R);let z=__tsover_mul(n.smoothstep(__tsover_sub(.5,M),.5,D),__tsover_sub(1,n.smoothstep(.5,__tsover_add(.5,M),D)));z=__tsover_mul(n.clamp(__tsover_mul(__tsover_mul(__tsover_mul(z,k),s),v),0,1),w),h=__tsover_add(h,__tsover_mul(__tsover_sub(1,h),z)),y=__tsover_add(y,z)}return o.vec2f(h,y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"angle01"},{type:"i",name:"border"},{type:"i",name:"animTime"},{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,"beat",[6,"lightEdgeBeat",["animTime"]]],[13,"intensityEff",[1,[5,"1"],"+",[1,[1,[5,"1"],"+",[1,[5,"4"],"*","softness"]],"*","intensity"]]],[12,"overAcc",[6,[7,"d","f32"],[[5,"0"]]]],[12,"addAcc",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"s",[5,"0"]],[1,"s","<",[5,"5"]],[102,"++","s"],[0,[[13,"sF",[6,[7,"d","f32"],["s"]]],[13,"gate",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"sF","<","spotsF"]]]],[13,"randVal",[6,[7,"noise","hash22"],[[6,[7,"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,[7,"std","abs"],[[1,[6,[7,"std","sin"],[[1,"sF","*",[1,[5,"2"],"+","colorIdxF"]]]],"*",[6,[7,"std","cos"],[[1,"sF","*",[1,[5,"2"],"+",[1,[5,"2.5"],"*","colorIdxF"]]]]]]]]]]],[13,"dir",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],[6,[7,"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,[7,"std","abs"],[[1,"colorIdxF","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"colorIdxF","*",[5,"0.5"]]]]]]]],"<",[5,"0.5"]]],[13,"sinVal",[6,[7,"std","sin"],[[1,"t","+",[1,"sF","*",[1,[5,"5"],"-",[1,[5,"1.5"],"*","colorIdxF"]]]]]]],[13,"cosVal",[6,[7,"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,[7,"std","select"],["cosVal","sinVal","evenCond"]]]]],[13,"pWeight",[6,[7,"std","clamp"],[[1,[1,[5,"2"],"*","pulse"],"-",[7,"randVal","x"]],[5,"0"],[5,"1"]]]],[2,"mask","=",[6,[7,"std","mix"],["mask","beat","pWeight"]]],[13,"atg",[6,[7,"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,[7,"std","mix"],["ss",[5,"0.1"],"pWeight"]]],[12,"sector",[1,[6,[7,"std","smoothstep"],[[1,[5,"0.5"],"-","ss"],[5,"0.5"],"atg"]],"*",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.5"],[1,[5,"0.5"],"+","ss"],"atg"]]]]],[2,"sector","=",[1,[6,[7,"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,[7,"d","vec2f"],["overAcc","addAcc"]]]]],externalNames:["lightEdgeBeat","d","std","noise"]},externals:()=>({lightEdgeBeat:Jv,d:o,std:n,noise:mt})})&&e.f)({})),Xl=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({rgb:o.vec3f,w:o.f32,ba:o.f32,ac:o.vec3f,aa:o.f32}),"LightEdgeAccum"),DX=b.fn([],Xl)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(()=>{"use gpu";return Xl({rgb:o.vec3f(0,0,0),w:o.f32(0),ba:o.f32(0),ac:o.vec3f(0,0,0),aa:o.f32(0)})}),{v:1,name:void 0,ast:{params:[],body:[0,[[10,[6,"LightEdgeAccum",[[104,{rgb:[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],w:[6,[7,"d","f32"],[[5,"0"]]],ba:[6,[7,"d","f32"],[[5,"0"]]],ac:[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],aa:[6,[7,"d","f32"],[[5,"0"]]]}]]]]]],externalNames:["LightEdgeAccum","d"]},externals:()=>({LightEdgeAccum:Xl,d:o})})&&e.f)({})),P4=new Map;function zX(e){let t=Ye[e]??Be;return b.fn([Xl,o.vec4f,o.vec2f],Xl)((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,a,i)=>{"use gpu";let l=__tsover_mul(a.w,i.x),c=__tsover_div(l,n.max(__tsover_add(r.w,l),1e-5)),d=t(o.vec4f(r.rgb,1),o.vec4f(a.xyz,1),c),u=__tsover_add(r.ba,__tsover_mul(__tsover_sub(1,r.ba),l)),p=r.ac.add(a.xyz.mul(__tsover_mul(a.w,i.y))),m=__tsover_add(r.aa,__tsover_mul(a.w,i.y));return Xl({rgb:d.xyz,w:__tsover_add(r.w,l),ba:u,ac:p,aa:m})}),{v:1,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,[7,"std","max"],[[1,[7,"st","w"],"+","wNew"],[5,"0.00001"]]]]],[13,"mixed",[6,"variant",[[6,[7,"d","vec4f"],[[7,"st","rgb"],[5,"1"]]],[6,[7,"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,"LightEdgeAccum",[[104,{rgb:[7,"mixed","xyz"],w:[1,[7,"st","w"],"+","wNew"],ba:"ba",ac:"ac",aa:"aa"}]]]]]],externalNames:["std","variant","d","LightEdgeAccum"]},externals:()=>({std:n,variant:t,d:o,LightEdgeAccum:Xl})})&&s.f)({})).$name(`lightEdgeAccumColor_${e}`)}function IX(e){let t=P4.get(e);return t||(t=zX(e),P4.set(e,t)),t}var LX=b.fn([o.arrayOf(o.vec4f,8),o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t[o.i32(s)];return o.vec4f(r.x,r.y,r.z,r.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"colors"},{type:"i",name:"idx"}
247],body:[0,[[13,"c",[8,"colors",[6,[7,"d","i32"],["idx"]]]],[10,[6,[7,"d","vec4f"],[[7,"c","x"],[7,"c","y"],[7,"c","z"],[7,"c","w"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),FX=b.fn([Xl,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(s,4),a=t.rgb.mul(t.ba),i=n.mix(a,t.ac,o.vec3f(r)),l=n.clamp(n.mix(t.ba,t.aa,r),0,1),c=n.clamp(i.div(n.max(l,1e-4)),o.vec3f(0),o.vec3f(1));return o.vec4f(c,l)}),{v:1,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,[7,"std","mix"],["blendPremult",[7,"st","ac"],[6,[7,"d","vec3f"],["k"]]]]],[13,"accumA",[6,[7,"std","clamp"],[[6,[7,"std","mix"],[[7,"st","ba"],[7,"st","aa"],"k"]],[5,"0"],[5,"1"]]]],[13,"straight",[6,[7,"std","clamp"],[[6,[7,"accumC","div"],[[6,[7,"std","max"],["accumA",[5,"0.0001"]]]]],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["straight","accumA"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),k4={name:"LightEdge",boundingBoxDeclaration:gs,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"},extraFields:{...CX,...AX},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:we,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:O,description:"First border light color (used when no gradient stops are set)",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#00e0ff",transform:O,description:"Second border light color (used when no gradient stops are set)",ui:{type:"color",label:"Color B",group:"Colors"}},stops:{...xs(),default:RX},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space overlapping lights blend in",ui:{type:"select",options:ze,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:PX,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"}},compute:e=>{let t=EX(e,()=>e.getCpuValue("shape"),"none");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c=t?.volumetricFieldTexture;if(c)l=MX(c,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound}).volumetricFieldSampler;else{let A=r.shapeSdfUrl||"";A?l=wX(e,A):l=TX(kX(r.shapeType||"",i("shape")),SX(e,()=>i("shape")))}let d=T(bX,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),u=l(d),p=Fe(e),m=T($X,"lightEdgeBorder",[u.member("r"),d,a.viewportSize,s.scale,s.thickness,s.softness,s.smokeSize,s.smoke,p,s.pulse]),_=m.member("x"),v=m.member("y"),h=r.stopCount??0,y=h>1?Math.min(h,8):2,x=IX(r.colorSpace??0),g=A=>T(UX,"lightEdgeColorAccum",[v,_,p,s.spots,s.spotSize,s.pulse,s.intensity,s.softness,s.seed,le(A)]),w=A=>h>1?T(LX,"lightEdgePickColor",[s.colorsArray,le(A)]):A===0?s.colorA:s.colorB,f=T(DX,"lightEdgeAccumZero",[]);for(let A=0;A<y;A++)f=T(x,"lightEdgeAccumColor",[f,w(A),g(A)]);return T(FX,"lightEdgeCompose",[f,s.bloom])}};var Qv=b.fn([o.f32,o.vec3f,o.vec3f,o.vec3f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.smoothstep(0,.5,t),l=n.smoothstep(.55,1.15,t);
vendor: 10,991 bytes, line 247
247return n.mix(n.mix(a,r,o.vec3f(i)),s,o.vec3f(l)).mul(n.clamp(t,0,1.6))}),{v:1,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,[7,"std","smoothstep"],[[5,"0"],[5,"0.5"],"heat"]]],[13,"toHot",[6,[7,"std","smoothstep"],[[5,"0.55"],[5,"1.15"],"heat"]]],[13,"rgb",[6,[7,"std","mix"],[[6,[7,"std","mix"],["fringe","mid",[6,[7,"d","vec3f"],["toMid"]]]],"hot",[6,[7,"d","vec3f"],["toHot"]]]]],[10,[6,[7,"rgb","mul"],[[6,[7,"std","clamp"],["heat",[5,"0"],[5,"1.6"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),BX=b.fn([o.vec4f,o.vec2f,o.f32,o.f32,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec3f,o.vec3f,o.vec3f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v)=>{"use gpu";let h=__tsover_add(__tsover_mul(a,.6),__tsover_mul(p,7.9)),y=o.vec2f(__tsover_mul(s.x,r),s.y),x=o.vec2f(__tsover_mul(i.x,r),__tsover_sub(1,i.y)),g=o.vec2f(__tsover_mul(r,.5),.5).sub(x),w=n.length(g),f=n.select(__tsover_div(g.x,n.max(w,.001)),o.f32(1),w<.02),A=n.select(__tsover_div(g.y,n.max(w,.001)),o.f32(0),w<.02),E=__tsover_sub(y.x,x.x),P=__tsover_sub(y.y,x.y),C=__tsover_add(__tsover_mul(E,f),__tsover_mul(P,A)),$=__tsover_sub(__tsover_mul(P,f),__tsover_mul(E,A)),U=tn(o.vec2f(__tsover_mul(h,.9),__tsover_add(__tsover_mul(p,.53),11.7))),k=tn(o.vec2f(__tsover_add(__tsover_mul(h,2.7),41.3),__tsover_add(__tsover_mul(p,.29),5.1))),R=__tsover_add(__tsover_mul(U,.65),__tsover_mul(k,.35)),D=n.mix(1,__tsover_add(.25,__tsover_mul(1.5,R)),u),M=tn(o.vec2f(__tsover_add(__tsover_mul(h,.13),3.1),__tsover_add(__tsover_mul(p,.41),27))),z=tn(o.vec2f(__tsover_add(__tsover_mul(h,.09),17.7),__tsover_add(__tsover_mul(p,.61),8.4))),L=tn(o.vec2f(__tsover_add(__tsover_mul(h,.17),51.2),__tsover_add(__tsover_mul(p,.23),2.9))),B=n.max(l,.05),N=__tsover_mul(B,__tsover_add(1.5,__tsover_mul(.7,z))),G=__tsover_div(C,B),I=__tsover_div($,N),X=n.exp(__tsover_mul(__tsover_add(__tsover_mul(G,G),__tsover_mul(I,I)),-1.9)),F=n.exp(__tsover_mul(__tsover_mul(I,I),-.55)),Q=__tsover_mul(B,__tsover_add(.42,__tsover_mul(.22,M))),ae=n.max(__tsover_mul(B,__tsover_add(.07,__tsover_mul(.07,L))),.008),j=__tsover_mul(n.exp(__tsover_div(__tsover_mul(__tsover_mul(__tsover_sub(C,Q),__tsover_sub(C,Q)),-1),__tsover_mul(ae,ae))),F),q=__tsover_mul(B,__tsover_add(.8,__tsover_mul(.3,M))),te=n.max(__tsover_mul(B,__tsover_add(.16,__tsover_mul(.12,L))),.015),ne=__tsover_mul(__tsover_mul(n.exp(__tsover_div(__tsover_mul(__tsover_mul(__tsover_sub(C,q),__tsover_sub(C,q)),-1),__tsover_mul(te,te))),F),.45),oe=__tsover_mul(__tsover_add(j,ne),d),pe=__tsover_mul(n.exp(__tsover_mul(__tsover_add(__tsover_mul(G,G),__tsover_mul(I,I)),-.45)),.22),_e=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_add(__tsover_add(__tsover_mul(X,1.25),pe),__tsover_mul(oe,.85)),c),2.2),D);_e=__tsover_add(_e,__tsover_mul(__tsover_sub(Jr(s.mul(1024).add(o.vec2f(h,__tsover_mul(h,1.7)))),.5),.012)),_e=n.max(_e,0);let ge=Qv(__tsover_mul(_e,1.08),m,_,v),Me=Qv(_e,m,_,v),Se=Qv(__tsover_mul(_e,.88),m,_,v),Ae=o.vec3f(ge.x,Me.y,Se.z),Pe=t.xyz,De=o.vec3f(1,1,1).sub(o.vec3f(1,1,1).sub(n.clamp(Pe,o.vec3f(0),o.vec3f(1))).mul(o.vec3f(1,1,1).sub(n.clamp(Ae,o.vec3f(0),o.vec3f(1))))).add(Ae.mul(.16)),ke=n.clamp(De,o.vec3f(0),o.vec3f(1)),Ge=n.clamp(n.dot(Ae,o.vec3f(.299,.587,.114)),0,1),Oe=n.clamp(__tsover_add(t.w,__tsover_mul(Ge,.85)),0,1);return o.vec4f(ke,Oe)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"animTime"},{type:"i",name:"position"},{type:"i",name:"spread"},{type:"i",name:"intensity"},{type:"i",name:"streaks"},{type:"i",name:"flicker"},{type:"i",name:"seed"},{type:"i",name:"hot"},{type:"i",name:"mid"},{type:"i",name:"fringe"}],body:[0,[[13,"t",[1,[1,"animTime","*",[5,"0.6"]],"+",[1,"seed","*",[5,"7.9"]]]],[13,"pA",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"anchor",[6,[7,"d","vec2f"],[[1,[7,"position","x"],"*","aspect"],[1,[5,"1"],"-",[7,"position","y"]]]]],[13,"toCenter",[6,[7,[6,[7,"d","vec2f"],[[1,"aspect","*",[5,"0.5"]],[5,"0.5"]]],"sub"],["anchor"]]],[13,"cLen",[6,[7,"std","length"],["toCenter"]]],[13,"dirX",[6,[7,"std","select"],[[1,[7,"toCenter","x"],"/",[6,[7,"std","max"],["cLen",[5,"0.001"]]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"cLen","<",[5,"0.02"]]]]],[13,"dirY",[6,[7,"std","select"],[[1,[7,"toCenter","y"],"/",[6,[7,"std","max"],["cLen",[5,"0.001"]]]],[6,[7,"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"]]],[13,"u",[1,[1,"relX","*","dirX"],"+",[1,"relY","*","dirY"]]],[13,"v",[1,[1,"relY","*","dirX"],"-",[1,"relX","*","dirY"]]],[13,"nA",[6,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,"t","*",[5,"0.9"]],[1,[1,"seed","*",[5,"0.53"]],"+",[5,"11.7"]]]]]]],[13,"nB",[6,[7,"noise","value12"],[[6,[7,"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,[7,"std","mix"],[[5,"1"],[1,[5,"0.25"],"+",[1,[5,"1.5"],"*","breathe"]],"flicker"]]],[13,"evo1",[6,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,[1,"t","*",[5,"0.13"]],"+",[5,"3.1"]],[1,[1,"seed","*",[5,"0.41"]],"+",[5,"27"]]]]]]],[13,"evo2",[6,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,[1,"t","*",[5,"0.09"]],"+",[5,"17.7"]],[1,[1,"seed","*",[5,"0.61"]],"+",[5,"8.4"]]]]]]],[13,"evo3",[6,[7,"noise","value12"],[[6,[7,"d","vec2f"],[[1,[1,"t","*",[5,"0.17"]],"+",[5,"51.2"]],[1,[1,"seed","*",[5,"0.23"]],"+",[5,"2.9"]]]]]]],[13,"sp",[6,[7,"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,[7,"std","exp"],[[1,[1,[1,"du","*","du"],"+",[1,"dv","*","dv"]],"*",[4,"-",[5,"1.9"]]]]]],[13,"alongFade",[6,[7,"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,[7,"std","max"],[[1,"sp","*",[1,[5,"0.07"],"+",[1,[5,"0.07"],"*","evo3"]]],[5,"0.008"]]]],[13,"streak1",[1,[6,[7,"std","exp"],[[1,[1,[1,[1,"u","-","s1c"],"*",[1,"u","-","s1c"]],"*",[4,"-",[5,"1"]]],"/",[1,"s1w","*","s1w"]]]],"*","alongFade"]],[13,"s2c",[1,"sp","*",[1,[5,"0.8"],"+",[1,[5,"0.3"],"*","evo1"]]]],[13,"s2w",[6,[7,"std","max"],[[1,"sp","*",[1,[5,"0.16"],"+",[1,[5,"0.12"],"*","evo3"]]],[5,"0.015"]]]],[13,"streak2",[1,[1,[6,[7,"std","exp"],[[1,[1,[1,[1,"u","-","s2c"],"*",[1,"u","-","s2c"]],"*",[4,"-",[5,"1"]]],"/",[1,"s2w","*","s2w"]]]],"*","alongFade"],"*",[5,"0.45"]]],[13,"streakSum",[1,[1,"streak1","+","streak2"],"*","streaks"]],[13,"shoulder",[1,[6,[7,"std","exp"],[[1,[1,[1,"du","*","du"],"+",[1,"dv","*","dv"]],"*",[4,"-",[5,"0.45"]]]]],"*",[5,"0.22"]]],[12,"heat",[1,[1,[1,[1,[1,[1,"main","*",[5,"1.25"]],"+","shoulder"],"+",[1,"streakSum","*",[5,"0.85"]]],"*","intensity"],"*",[5,"2.2"]],"*","flickerMod"]],[2,"heat","=",[1,"heat","+",[1,[1,[6,[7,"noise","hash12"],[[6,[7,[6,[7,"uv","mul"],[[5,"1024"]]],"add"],[[6,[7,"d","vec2f"],["t",[1,"t","*",[5,"1.7"]]]]]]]],"-",[5,"0.5"]],"*",[5,"0.012"]]]],[2,"heat","=",[6,[7,"std","max"],["heat",[5,"0"]]]],[13,"rampR",[6,"lightLeakRamp",[[1,"heat","*",[5,"1.08"]],"hot","mid","fringe"]]],[13,"rampG",[6,"lightLeakRamp",["heat","hot","mid","fringe"]]],[13,"rampB",[6,"lightLeakRamp",[[1,"heat","*",[5,"0.88"]],"hot","mid","fringe"]]],[13,"leakRgb",[6,[7,"d","vec3f"],[[7,"rampR","x"],[7,"rampG","y"],[7,"rampB","z"]]]],[13,"base",[7,"color","xyz"]],[13,"screened",[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"sub"],[[6,[7,[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"sub"],[[6,[7,"std","clamp"],["base",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]]],"mul"],[[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"sub"],[[6,[7,"std","clamp"],["leakRgb",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]]]]]]]],[13,"lifted",[6,[7,"screened","add"],[[6,[7,"leakRgb","mul"],[[5,"0.16"]]]]]],[13,"outRgb",[6,[7,"std","clamp"],["lifted",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[13,"leakLuma",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["leakRgb",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]],[5,"0"],[5,"1"]]]],[13,"outA",[6,[7,"std","clamp"],[[1,[7,"color","w"],"+",[1,"leakLuma","*",[5,"0.85"]]],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],["outRgb","outA"]]]]],externalNames:["d","std","noise","lightLeakRamp"]},externals:()=>({d:o,std:n,noise:mt,lightLeakRamp:Qv})})&&e.f)({})),R4={name:"LightLeak",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Photorealistic film light leak \u2014 warm overexposed light bleeding in from a draggable anchor point, with streak bands, chromatic fringing, and slow breathing that evolves over time",requiresChild:!0,usesPointer:!1,animatedTime:{speed:"speed"},props:{position:{default:{x:.95,y:.4},transform:we,description:"Anchor point of the leak \u2014 the light beams from here toward the canvas centre",ui:{type:"position",label:"Position",group:"Leak",units:["%","px"]}},spread:{default:.55,description:"How far the light bleeds into the frame",ui:{type:["range","map"],min:.1,max:1.5,step:.01,label:"Spread",group:"Leak"}},intensity:{default:.15,description:"Exposure strength of the leak",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Leak"}},streaks:{default:.6,description:"Strength of the parallel streak bands further into the frame",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Streaks",group:"Leak"}},colorHot:{default:"#fff3c4",transform:O,description:"Core color where the leak is fully overexposed",ui:{type:"color",label:"Hot Core",group:"Colors"}},colorMid:{default:"#ff7a2f",transform:O,description:"Main body color of the leak",ui:{type:"color",label:"Midtone",group:"Colors"}},colorFringe:{default:"#a63d8f",transform:O,description:"Outer fringe color where the light fades out",ui:{type:"color",label:"Fringe",group:"Colors"}},flicker:{default:.35,description:"Breathing of the leak intensity",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Flicker",group:"Animation"}},speed:{default:1,description:"Speed of the breathing, drift and evolution. 0 freezes the leak.",ui:{type:"range",min:0,max:4,step:.1,label:"Speed",group:"Animation"}},seed:{default:0,description:"Random seed \u2014 re-rolls the drift and breathing pattern",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Animation"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r}=e;if(!s)return console.error("You must pass a child component into the Light Leak shader."),me;let a=Fe(e);return T(BX,"lightLeakComposite",[s,r.uv,r.aspect,a,t.position,t.spread,t.intensity,t.streaks,t.flicker,t.seed,t.colorHot.member("rgb"),t.colorMid.member("rgb"),t.colorFringe.member("rgb")])}};var U4=Array.from({length:32},(e,t)=>{let s=(t/31-.5)*2;return Math.exp(-.5*s*s/.64)}),VX=U4.reduce((e,t)=>
247e+t),OX=U4.map(e=>e/VX);var $4=Math.PI/180,NX=b.fn([o.vec2f,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(s,$4),c=__tsover_div(a.x,a.y),d=__tsover_div(n.cos(l),c),u=n.sin(l),p=__tsover_mul(__tsover_div(__tsover_mul(d,r),a.x),2),m=__tsover_mul(__tsover_div(__tsover_mul(u,r),a.y),2);return o.vec2f(__tsover_add(t.x,__tsover_mul(p,i)),__tsover_add(t.y,__tsover_mul(m,i)))}),{v:1,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,[7,"std","cos"],["angleRad"]],"/","aspect"]],[13,"dirY",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,"bvX","*","tapT"]],[1,[7,"uv","y"],"+",[1,"bvY","*","tapT"]]]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:$4,std:n,d:o})})&&e.f)({})),D4={name:"LinearBlur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Directional motion blur in a specific angle",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:30,description:"Intensity of the linear blur effect",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Effect"}},angle:{default:0,transform:Jt,description:"Direction of the linear blur (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i;for(let l=0;l<32;l++){let c=l/31-.5,d=T(NX,"linearBlurTapCoord",[s.uv,e.angle,e.intensity,s.viewportSize,le(c)]),u=a.sample(d).mul(OX[l]);i=i?i.add(u):u}return T(Re,"unpremultiplyAlpha",[i])}};var z4=.017453292519943295,I4=1,YX=2,GX=3,WX=b.fn([o.vec2f,o.vec2f,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(t.x,__tsover_sub(1,t.y)),c=o.vec2f(s.x,__tsover_sub(1,s.y)),d=c.sub(l),u=n.length(d),p=n.normalize(d),m=n.max(i.y,1e-6),_=__tsover_div(i.x,m),v=__tsover_mul(__tsover_mul(r,z4),-1),h=n.cos(v),y=n.sin(v),x=l.add(c).mul(.5),g=a.sub(x),w=__tsover_mul(g.x,_),f=g.y,A=__tsover_sub(__tsover_mul(w,h),__tsover_mul(f,y)),E=__tsover_add(__tsover_mul(w,y),__tsover_mul(f,h)),P=o.vec2f(__tsover_div(A,_),E).add(x).sub(l),C=n.dot(P,p);return __tsover_div(C,n.max(u,1e-6))}),{v:1,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,[7,"d","vec2f"],[[7,"start","x"],[1,[5,"1"],"-",[7,"start","y"]]]]],[13,"endPos",[6,[7,"d","vec2f"],[[7,"end","x"],[1,[5,"1"],"-",[7,"end","y"]]]]],[13,"gradientVector",[6,[7,"endPos","sub"],["startPos"]]],[13,"gradientLength",[6,[7,"std","length"],["gradientVector"]]],[13,"gradientDir",[6,[7,"std","normalize"],["gradientVector"]]],[13,"safeViewportY",[6,[7,"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,[7,"std","cos"],["angleRad"]]],[13,"sinAngle",[6,[7,"std","sin"],["angleRad"]]],[13,"midpoint",[6,[7,[6,[7,"startPos","add"],["endPos"]],"mul"],[[5,"0.5"]]]],[13,"centeredUV",[6,[7,"uv","sub"],["midpoint"]]],[13,"acX",[1,[7,"centeredUV","x"],"*","aspect"]],[13,"acY",[7,"centeredUV","y"]],[13,"rotX",[1,[1,"acX","*","cosAngle"],"-",[1,"acY","*","sinAngle"]]],[13,"rotY",[1,[1,"acX","*","sinAngle"],"+",[1,"acY","*","cosAngle"]]],[13,"rotatedUV",[6,[7,[6,[7,"d","vec2f"],[[1,"rotX","/","aspect"],"rotY"]],"add"],["midpoint"]]],[13,"relativePos",[6,[7,"rotatedUV","sub"],["startPos"]]],[13,"projection",[6,[7,"std","dot"],["relativePos","gradientDir"]]],[10,[1,"projection","/",[6,[7,"std","max"],["gradientLength",[5,"0.000001"]]]]]]],externalNames:["d","std","DEG_TO_RAD"]},externals:()=>({d:o,std:n,DEG_TO_RAD:z4})})&&e.f)({})),XX=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.mod(n.abs(t),2);return n.select(s,__tsover_sub(2,s),s>1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"m",[6,[7,"std","mod"],[[6,[7,"std","abs"],["t"]],[5,"2"]]]],[10,[6,[7,"std","select"],["m",[1,[5,"2"],"-","m"],[1,"m",">",[5,"1"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),qX=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(t)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,[7,"std","fract"],["t"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),L4=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.clamp(t,0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[10,[6,[7,"std","clamp"],["t",[5,"0"],[5,"1"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),HX=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.select(o.f32(0),o.f32(1),t>=0),r=n.select(o.f32(0),o.f32(1),t<=1);return __tsover_mul(s,r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"t"}],body:[0,[[13,"inLow",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"t",">=",[5,"0"]]]]],[13,"inHigh",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"t","<=",[5,"1"]]]]],[10,[1,"inLow","*","inHigh"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),F4=en;function jX(e,t,s){let{uniforms:r,propValues:a}=e,i=a.edges??0,l=a.colorSpace??0,c=a.stopCount??0,d=T(WX,"gradientRawT",[r.start,r.end,r.angle,t,s]),u;i===YX?u=T(XX,"gradientEdgeMirror",[d]):i===GX?u=T(qX,"gradientEdgeWrap",[d]):i===I4?u=d:u=T(L4,"gradientClamp01",[d]);let p=T(L4,"gradientClamp01",[u]),m;if(c>1?m=js(p,{colorsArray:r.colorsArray,positionsArray:r.positionsArray,convertedColorsArray:r.convertedColorsArray,stopCount:r.stopCount},l):m=T(F4.mixColorsVariants[l]??F4.mixColorsLinear,"mixColors",[r.colorA,r.colorB,p]),i===I4){let _=T(HX,"gradientTrans
247parentAlpha",[d]);return de(m.member("rgb"),m.member("a").mul(_))}return m}var B4={name:"LinearGradient",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Create smooth linear color gradients",acceptsUVContext:!0,props:{colorA:{default:"#1aff00",transform:O,description:"The starting color of the gradient",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#0000ff",transform:O,description:"The ending color of the gradient",ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),start:{default:{x:0,y:.5},transform:we,description:"The starting point of the gradient",ui:{type:"position",label:"Start",group:"Position"}},end:{default:{x:1,y:.5},transform:we,description:"The ending point of the gradient",ui:{type:"position",label:"End",group:"Position"}},angle:{default:0,transform:Jt,description:"Additional rotation angle of the gradient (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},edges:{default:"stretch",transform:Ot,compileTime:!0,description:"How to handle areas beyond the gradient endpoints",ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>jX(e,e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize)};var{sdfSpaceUV:ZX,offsetUV:V4}=Zs,{createSvgSdfSampler:KX,createAnalyticSdfSampler:JX,driveAnalyticSubProps:QX,ANALYTIC_SDF_EXTRA_FIELDS:eq}=ft,{createVolumetricFieldComputeNode:tq,buildVolumetricFieldSampler:sq,VOLUMETRIC_FIELD_EXTRA_FIELDS:oq,is3dShapeType:rq,isVolumetricShapeType:aq,isMobileGpuViewport:nq}=ys,n_=.017453292519943295,iq=JSON.stringify({type:"circleSDF",radius:.35});function lq(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var Ab=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_sub(__tsover_mul(t,r),__tsover_mul(s,a)),u=__tsover_add(__tsover_mul(t,a),__tsover_mul(s,r)),p=o.vec2f(d,u),m=n.smoothstep(-.7,.85,u),_=__tsover_mul(__tsover_mul(m,m),.4),v=__tsover_mul(i,1.05),h=n.smoothstep(v,__tsover_mul(v,.2),n.length(p.sub(o.vec2f(__tsover_add(0,l),.55))));_=__tsover_add(_,__tsover_mul(__tsover_mul(h,1.75),c));let y=__tsover_mul(i,1.25),x=n.smoothstep(y,__tsover_mul(y,.2),n.length(p.sub(o.vec2f(__tsover_add(-.45,l),-.4))));_=__tsover_add(_,__tsover_mul(__tsover_mul(x,1.15),c));let g=__tsover_mul(i,1.15),w=n.smoothstep(g,__tsover_mul(g,.2),n.length(p.sub(o.vec2f(__tsover_add(.55,l),.1))));return _=__tsover_add(_,__tsover_mul(__tsover_mul(w,1.1),c)),_}),{v:1,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"}],body:[0,[[13,"ex",[1,[1,"rx","*","envC"],"-",[1,"ry","*","envS"]]],[13,"ey",[1,[1,"rx","*","envS"],"+",[1,"ry","*","envC"]]],[13,"p",[6,[7,"d","vec2f"],["ex","ey"]]],[13,"sky",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.7"]],[5,"0.85"],"ey"]]],[12,"lum",[1,[1,"sky","*","sky"],"*",[5,"0.4"]]],[13,"r0",[1,"keyRad","*",[5,"1.05"]]],[13,"box0",[6,[7,"std","smoothstep"],["r0",[1,"r0","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[1,[5,"0"],"+","drift"],[5,"0.55"]]]]]]]]]],[2,"lum","=",[1,"lum","+",[1,[1,"box0","*",[5,"1.75"]],"*","envStr"]]],[13,"r1",[1,"keyRad","*",[5,"1.25"]]],[13,"box1",[6,[7,"std","smoothstep"],["r1",[1,"r1","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[1,[4,"-",[5,"0.45"]],"+","drift"],[4,"-",[5,"0.4"]]]]]]]]]]],[2,"lum","=",[1,"lum","+",[1,[1,"box1","*",[5,"1.15"]],"*","envStr"]]],[13,"r2",[1,"keyRad","*",[5,"1.15"]]],[13,"box2",[6,[7,"std","smoothstep"],["r2",[1,"r2","*",[5,"0.2"]],[6,[7,"std","length"],[[6,[7,"p","sub"],[[6,[7,"d","vec2f"],[[1,[5,"0.55"],"+","drift"],[5,"0.1"]]]]]]]]]],[2,"lum","=",[1,"lum","+",[1,[1,"box2","*",[5,"1.1"]],"*","envStr"]]],[10,"lum"]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),cq=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=d.x,v=d.y,h=d.z,y=d.w,x=u.x,g=u.y,w=u.z,f=u.w,A=p.x,E=p.y,P=p.z,C=p.w,$=m.x,U=n.max(__tsover_mul(v,.5),.001),k=__tsover_div(1,i.y),R=t.x,D=__tsover_div(R,_);if(D>__tsover_mul(k,2))return o.vec4f(0,0,0,0);let M=.01,z=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),M),-5,5),L=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),M),-5,5),B=n.normalize(o.vec3f(z,L,-1)),N=__tsover_div(__tsover_sub(s.x,R),M),G=__tsover_div(__tsover_sub(r.x,R),M),I=n.clamp(__tsover_div(__tsover_mul(D,-1),.05),0,1),X=__tsover_mul(__tsover_sub(1,I),1.6),F=n.normalize(o.vec3f(__tsover_mul(N,X),__tsover_mul(G,X),-1)),Q=n.select(F,B,C>.5),ae=n.select(__tsover_sub(a.x,.5),t.y,C>.5),j=n.select(__tsover_sub(a.y,.5),t.z,C>.5),q=__tsover_mul(h,2.6),te=__tsover_mul(P,.12),ne=o.vec2f(__tsover_mul(ae,q),__tsover_mul(j,q)),oe=__tsover_mul(y,.9),pe=ne.mul(.6),_e=__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(pe.x,1.7),__tsover_mul(te,.7)),1.7)),n.cos(__tsover_add(__tsover_add(__tsover_mul(pe.y,1.3),__tsover_mul(te,.5)),2.3))),ge=__tsover_mul(n.cos(__tsover_add(__tsover_add(__tsover_mul(pe.x,1.4),__tsover_mul(te,.9)),8.7)),n.sin(__tsover_add(__tsover_add(__tsover_mul(pe.y,1.6),__tsover_mul(te,.6)),5.
vendor: 7,895 bytes, line 247
2471))),Me=ne.add(o.vec2f(_e,ge).mul(oe)),Se=o.f32(4),Ae=Di(Me),Pe=.62,De=n.clamp(__tsover_mul(Ae.y,Pe),__tsover_mul(Se,-1),Se),ke=n.clamp(__tsover_mul(Ae.z,Pe),__tsover_mul(Se,-1),Se),Ge=__tsover_mul(x,.5),Oe=n.normalize(o.vec3f(__tsover_sub(Q.x,__tsover_mul(De,Ge)),__tsover_sub(Q.y,__tsover_mul(ke,Ge)),Q.z)),qe=n.reflect(o.vec3f(0,0,1),Oe),We=g,Ve=n.clamp(f,0,1),Ne=n.mix(.5,.18,Ve),He=__tsover_mul(n.sin(__tsover_mul(P,.07)),.05),vt=n.cos(__tsover_mul(E,n_)),_t=n.sin(__tsover_mul(E,n_)),Ze=n.cos(__tsover_mul(w,n_)),it=n.sin(__tsover_mul(w,n_)),Tt=n.normalize(o.vec3f(vt,_t,-.7)),J=n.normalize(Tt.add(o.vec3f(0,0,-1))),be=n.clamp(__tsover_add(__tsover_add(__tsover_mul(Oe.x,J.x),__tsover_mul(Oe.y,J.y)),__tsover_mul(Oe.z,J.z)),0,1),ce=__tsover_mul(n.pow(be,n.mix(o.f32(60),o.f32(900),Ve)),n.mix(.4,1.4,Ve)),xe=__tsover_add(Ab(qe.x,qe.y,Ze,it,Ne,He,We),ce),ye=__tsover_sub(1,n.clamp(__tsover_mul(Oe.z,-1),0,1)),Ee=__tsover_mul(__tsover_mul(A,.09),__tsover_add(.4,__tsover_mul(ye,1.3))),Le=__tsover_add(Ab(__tsover_add(qe.x,__tsover_mul(qe.y,Ee)),__tsover_sub(qe.y,__tsover_mul(qe.x,Ee)),Ze,it,Ne,He,We),ce),ot=n.select(Le,xe,$>.5),Ke=__tsover_sub(__tsover_mul(xe,2),Le),rt=n.select(Ke,xe,$>.5),Mt=o.vec3f(n.mix(c.x,l.x,n.clamp(rt,0,1.8)),n.mix(c.y,l.y,n.clamp(xe,0,1.8)),n.mix(c.z,l.z,n.clamp(ot,0,1.8))),ht=n.smoothstep(0,1,n.clamp(__tsover_mul(__tsover_div(__tsover_mul(D,-1),U),32),0,1));return o.vec4f(Mt.x,Mt.y,Mt.z,ht)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"viewportSize"},{type:"i",name:"lightColor"},{type:"i",name:"darkColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"}],body:[0,[[13,"scl",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"ripple",[7,"p0","z"]],[13,"warp",[7,"p0","w"]],[13,"turbulence",[7,"p1","x"]],[13,"environment",[7,"p1","y"]],[13,"envRotation",[7,"p1","z"]],[13,"sharpness",[7,"p1","w"]],[13,"dispersion",[7,"p2","x"]],[13,"lightAngle",[7,"p2","y"]],[13,"animTime",[7,"p2","z"]],[13,"volumetric",[7,"p2","w"]],[13,"mobile",[7,"p3","x"]],[13,"sharpEdge",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scl"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"EPS",[5,"0.01"]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"nVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"rimT",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.05"]],[5,"0"],[5,"1"]]]],[13,"rimBevel",[1,[1,[5,"1"],"-","rimT"],"*",[5,"1.6"]]],[13,"nFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","rimBevel"],[1,"gradY","*","rimBevel"],[4,"-",[5,"1"]]]]]]],[13,"nGeo",[6,[7,"std","select"],["nFlat","nVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"fx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"fy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"freq",[1,"ripple","*",[5,"2.6"]]],[13,"flowT",[1,"animTime","*",[5,"0.12"]]],[13,"q",[6,[7,"d","vec2f"],[[1,"fx","*","freq"],[1,"fy","*","freq"]]]],[13,"wAmt",[1,"warp","*",[5,"0.9"]]],[13,"warpInput",[6,[7,"q","mul"],[[5,"0.6"]]]],[13,"wx",[1,[6,[7,"std","sin"],[[1,[1,[1,[7,"warpInput","x"],"*",[5,"1.7"]],"+",[1,"flowT","*",[5,"0.7"]]],"+",[5,"1.7"]]]],"*",[6,[7,"std","cos"],[[1,[1,[1,[7,"warpInput","y"],"*",[5,"1.3"]],"+",[1,"flowT","*",[5,"0.5"]]],"+",[5,"2.3"]]]]]],[13,"wy",[1,[6,[7,"std","cos"],[[1,[1,[1,[7,"warpInput","x"],"*",[5,"1.4"]],"+",[1,"flowT","*",[5,"0.9"]]],"+",[5,"8.7"]]]],"*",[6,[7,"std","sin"],[[1,[1,[1,[7,"warpInput","y"],"*",[5,"1.6"]],"+",[1,"flowT","*",[5,"0.6"]]],"+",[5,"5.1"]]]]]],[13,"qw",[6,[7,"q","add"],[[6,[7,[6,[7,"d","vec2f"],["wx","wy"]],"mul"],["wAmt"]]]]],[13,"gMax",[6,[7,"d","f32"],[[5,"4"]]]],[13,"nd",[6,[7,"noise","perlin12d"],["qw"]]],[13,"reliefGrad",[5,"0.62"]],[13,"hx",[6,[7,"std","clamp"],[[1,[7,"nd","y"],"*","reliefGrad"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]],[13,"hy",[6,[7,"std","clamp"],[[1,[7,"nd","z"],"*","reliefGrad"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]],[13,"relief",[1,"turbulence","*",[5,"0.5"]]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[7,"nGeo","x"],"-",[1,"hx","*","relief"]],[1,[7,"nGeo","y"],"-",[1,"hy","*","relief"]],[7,"nGeo","z"]]]]]],[13,"R",[6,[7,"std","reflect"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]],"n"]]],[13,"envStr","environment"],[13,"sharp",[6,[7,"std","clamp"],["sharpness",[5,"0"],[5,"1"]]]],[13,"keyRad",[6,[7,"std","mix"],[[5,"0.5"],[5,"0.18"],"sharp"]]],[13,"drift",[1,[6,[7,"std","sin"],[[1,"animTime","*",[5,"0.07"]]]],"*",[5,"0.05"]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"envC",[6,[7,"std","cos"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"envS",[6,[7,"std","sin"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.7"]]]]]]],[13,"Hh",[6,[7,"std","normalize"],[[6,[7,"L","add"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[13,"ndh",[6,[7,"std","clamp"],[[1,[1,[1,[7,"n","x"],"*",[7,"Hh","x"]],"+",[1,[7,"n","y"],"*",[7,"Hh","y"]]],"+",[1,[7,"n","z"],"*",[7,"Hh","z"]]],[5,"0"],[5,"1"]]]],[13,"spec",[1,[6,[7,"std","pow"],["ndh",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"60"]]],[6,[7,"d","f32"],[[5,"900"]]],"sharp"]]]],"*",[6,[7,"std","mix"],[[5,"0.4"],[5,"1.4"],"sharp"]]]],[13,"lumG",[1,[6,"liquidStudio",[[7,"R","x"],[7,"R","y"],"envC","envS","keyRad","drift","envStr"]],"+","spec"]],[13,"grazeD",[1,[5,"1"],"-",[6,[7,"std","clamp"],[[1,[7,"n","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]]],[13,"dth",[1,[1,"dispersion","*",[5,"0.09"]],"*",[1,[5,"0.4"],"+",[1,"grazeD","*",[5,"1.3"]]]]],[13,"lumBoffset",[1,[6,"liquidStudio",[[1,[7,"R","x"],"+",[1,[7,"R","y"],"*","dth"]],[1,[7,"R","y"],"-",[1,[7,"R","x"],"*","dth"]],"envC","envS","keyRad","drift","envStr"]],"+","spec"]],[13,"lumB",[6,[7,"std","select"],["lumBoffset","lumG",[1,"mobile",">",[5,"0.5"]]]]],[13,"lumRdesktop",[1,[1,"lumG","*",[5,"2"]],"-","lumBoffset"]],[13,"lumR",[6,[7,"std","select"],["lumRdesktop","lumG",[1,"mobile",">",[5,"0.5"]]]]],[13,"rgb",[6,[7,"d","vec3f"],[[6,[7,"std","mix"],[[7,"darkColor","x"],[7,"lightColor","x"],[6,[7,"std","clamp"],["lumR",[5,"0"],[5,"1.8"]]]]],[6,[7,"std","mix"],[[7,"darkColor","y"],[7,"lightColor","y"],[6,[7,"std","clamp"],["lumG",[5,"0"],[5,"1.8"]]]]],[6,[7,"std","mix"],[[7,"darkColor","z"],[7,"lightColor","z"],[6,[7,"std","clamp"],["lumB",[5,"0"],[5,"1.8"]]]]]]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharpEdge"],"*",[5,"32"]],[5,"0"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"transition"]]]]],externalNames:["std","d","noise","DEG_TO_RAD","liquidStudio"]},externals:()=>({std:n,d:o,noise:mt,DEG_TO_RAD:n_,liquidStudio:Ab})})&&e.f)({})),O4={name:"LiquidMetal",boundingBoxDeclaration:gs,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"},extraFields:{...oq,...eq},props:{origin:{default:"center",description:"Reference edge the center position is measured from (ce
247nter 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:we,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:O,description:"The bright tone of the chrome highlights",ui:{type:"color",label:"Light Color",group:"Metal"}},darkColor:{default:"#141414",transform:O,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"}},environment:{default:1.5,description:"Strength of the reflected studio lighting \u2014 the softboxes seen across the metal",ui:{type:"range",min:0,max:2,step:.01,label:"Environment",group:"Surface"}},envRotation:{default:0,description:"Rotates the whole reflected studio \u2014 spins where the bright reflections fall",ui:{type:"range",min:0,max:360,step:1,label:"Env Rotation",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"}},dispersion:{default:.25,description:"Prismatic color fringing along the reflection edges",ui:{type:"range",min:0,max:1,step:.01,label:"Dispersion",group:"Surface"}},lightAngle:{default:265,description:"Direction of the key light for the specular glints, in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Light Angle",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:iq,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"}},compute:e=>{let t=tq(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let E=sq(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=E.volumetricFieldSampler,c=E.volumetricFieldSamplerFast,d=!0}else{let E=r.shapeSdfUrl||"",P=r.shapeType||"";if(E)l=KX(e,E),c=l,d=aq(P);else{let C=lq(P,i("shape"));l=JX(C,QX(e,()=>i("shape")),"raw"),c=l,d=rq(C)}}let p=T(ZX,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),m=l(p),_=c(T(V4,"offsetUV",[p,le(.01),le(0)])),v=c(T(V4,"offsetUV",[p,le(0),le(.01)])),h=Fe(e),y=le(d?1:0),x=le(nq()?1:0),g=de(s.scale,s.edgeSoftness,s.ripple,s.warp),w=de(s.turbulence,s.environment,s.envRotation,s.sharpness),f=de(s.dispersion,s.lightAngle,h,y),A=de(x,le(0),le(0),le(0));return T(cq,"liquidMetalComposite",[m,_,v,p,a.viewportSize,s.lightColor.member("rgb"),s.darkColor.member("rgb"),g,w,f,A])}};var Ia=64,i_=Ia*Ia,Eb=Ia-1,W4="rgba16float",va=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({readBuf:{storage:o.arrayOf(o.vec4f,i_),access:"readonly"},writeBuf:{storage:o.arrayOf(o.vec4f,i_),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({cursorX:o.f32,cursorY:o.f32,dirX:o.f32,dirY:o.f32,clampedSpeed:o.f32,dt:o.f32,subDt:o.f32,stiffness:o.f32,dampFactor:o.f32,radius:o.f32,aspect:o.f32}),"uniform")}}),"springLayout"),eh=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({srcBuf:{storage:o.arrayOf(o.vec4f,i_),access:"readonly"},dispTex:{storageTexture:o.textureStorage2d(W4,"write-only")}}),"outputLayout"),N4=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";if(t>o.u32(0)&&t<o.u32(Eb)&&s>o.u32(0)&&s<o.u32(Eb)){let r=va.$.params,a=o.u32(Ia),i=__tsover_add(__tsover_mul(s,a),t),l=va.$.readBuf[i],c=l.x,d=l.y,u=l.z,p=l.w,m=va.$.readBuf[__tsover_sub(i,o.u32(1))],_=va.$.readBuf[__tsover_add(i,o.u32(1))],v=va.$.readBuf[__tsover_sub(i,a)],h=va.$.readBuf[__tsover_add(i,a)],y=va.$.readBuf[__tsover_sub(__tsover_sub(i,a),o.u32(1))],x=va.$.readBuf[__tsover_add(__tsover_sub(i,a),o.u32(1))],g=va.$.readBuf[__tsover_sub(__tsover_add(i,a),o.u32(1))],w=va.$.readBuf[__tsover_add(__tsover_add(i,a),o.u32(1))],f=__tsover_mul(r.stiffness,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(m.x,c),__tsover_sub(_.x,c)),__tsover_sub(v.x,c)),__tsover_sub(h.x,c))),A=__tsover_mul(r.stiffness,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(m.y,d),__tsover_sub(_.y,d)),__tsover_sub(v.y,d)),__tsover_sub(h.y,d))),E=__tsover_mul(r.stiffness,.35);f=__tsover_add(f,__tsover_mul(E,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(y.x,c),__tsover_sub(x.x,c)),__tsover_sub(g.x,c)),__tsover_sub(w.x,c)))),A=__tsover_add(A,__tsover_mul(E,__tsover_add(__tsover_add(__tsover_add(__tsover_sub(y.y,d),__tsover_sub(x.y,d)),__tsover_sub(g.y,d)),__tsover_sub(w.y,d)))),f=__tsover_sub(f,__tsover_mul(__tsover_mul(r.stiffness,.1),c)),A=__tsover_sub(A,__tsover_mul(__tsover_mul(r.stiffness,.1),d));let P=__tsover_add(__tsover_mul(u,r.dampFactor),__tsover_mul(f,r.subDt)),C=__tsover_add(__tsover_mul(p,r.dampFactor),__tsover_mul(A,r.subDt));if(r.clampedSpeed>.01){let k=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(Ia)),R=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(Ia)),D=n.select(__tsover_sub(k,r.cursorX),__tsover_mul(__tsover_sub(k,r.cursorX),r.aspect),r.aspect>
vendor: 7,124 bytes, line 247
247=1),M=n.select(__tsover_div(__tsover_sub(R,r.cursorY),r.aspect),__tsover_sub(R,r.cursorY),r.aspect>=1),z=__tsover_add(__tsover_mul(D,D),__tsover_mul(M,M)),L=__tsover_mul(r.radius,3);if(z<__tsover_mul(L,L)){let B=n.exp(__tsover_mul(__tsover_div(z,__tsover_mul(r.radius,r.radius)),-1)),N=__tsover_mul(__tsover_mul(__tsover_mul(B,r.clampedSpeed),r.dt),2);P=__tsover_add(P,__tsover_mul(r.dirX,N)),C=__tsover_add(C,__tsover_mul(r.dirY,N))}}let $=n.clamp(__tsover_add(c,__tsover_mul(P,r.subDt)),-.5,.5),U=n.clamp(__tsover_add(d,__tsover_mul(C,r.subDt)),-.5,.5);va.$.writeBuf[i]=o.vec4f($,U,P,C)}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,[7,"d","u32"],[[5,"0"]]]],"&&",[1,"cx","<",[6,[7,"d","u32"],["GRID_MAX"]]]],"&&",[1,"cy",">",[6,[7,"d","u32"],[[5,"0"]]]]],"&&",[1,"cy","<",[6,[7,"d","u32"],["GRID_MAX"]]]],[0,[[13,"p",[7,[7,"springLayout","$"],"params"]],[13,"gs",[6,[7,"d","u32"],["GRID_SIZE"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"current",[8,[7,[7,"springLayout","$"],"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,"springLayout","$"],"readBuf"],[1,"idx","-",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"nR",[8,[7,[7,"springLayout","$"],"readBuf"],[1,"idx","+",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"nU",[8,[7,[7,"springLayout","$"],"readBuf"],[1,"idx","-","gs"]]],[13,"nD",[8,[7,[7,"springLayout","$"],"readBuf"],[1,"idx","+","gs"]]],[13,"nUL",[8,[7,[7,"springLayout","$"],"readBuf"],[1,[1,"idx","-","gs"],"-",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"nUR",[8,[7,[7,"springLayout","$"],"readBuf"],[1,[1,"idx","-","gs"],"+",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"nDL",[8,[7,[7,"springLayout","$"],"readBuf"],[1,[1,"idx","+","gs"],"-",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"nDR",[8,[7,[7,"springLayout","$"],"readBuf"],[1,[1,"idx","+","gs"],"+",[6,[7,"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,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["GRID_SIZE"]]]],[13,"cellY",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["GRID_SIZE"]]]],[13,"ddx",[6,[7,"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,[7,"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,[7,"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,[7,"std","clamp"],[[1,"dispX","+",[1,"newVelX","*",[7,"p","subDt"]]],[4,"-",[5,"0.5"]],[5,"0.5"]]]],[13,"newDispY",[6,[7,"std","clamp"],[[1,"dispY","+",[1,"newVelY","*",[7,"p","subDt"]]],[4,"-",[5,"0.5"]],[5,"0.5"]]]],[2,[8,[7,[7,"springLayout","$"],"writeBuf"],"idx"],"=",[6,[7,"d","vec4f"],["newDispX","newDispY","newVelX","newVelY"]]]]]]]],externalNames:["d","GRID_MAX","springLayout","GRID_SIZE","std"]},externals:()=>({d:o,GRID_MAX:Eb,springLayout:va,GRID_SIZE:Ia,std:n})})&&e.f)({})).$name("liquifySpring"),Y4=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(Ia)),t),a=eh.$.srcBuf[r];n.textureStore(eh.$.dispTex,o.vec2u(t,s),o.vec4f(a.x,a.y,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["GRID_SIZE"]]],"+","cx"]],[13,"cell",[8,[7,[7,"outputLayout","$"],"srcBuf"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"dispTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"cell","x"],[7,"cell","y"],[5,"0"],[5,"1"]]]]]]],externalNames:["d","GRID_SIZE","outputLayout","std"]},externals:()=>({d:o,GRID_SIZE:Ia,outputLayout:eh,std:n})})&&e.f)({})).$name("liquifyOutput"),G4=b.fn([o.vec2f,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=s.mul(__tsover_mul(r,.1)),i=.15,l=n.clamp(a,o.vec2f(-i,-i),o.vec2f(i,i));return t.sub(l)}),{v:1,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,[7,"std","clamp"],["scaled",[6,[7,"d","vec2f"],[[4,"-","maxDisp"],[4,"-","maxDisp"]]],[6,[7,"d","vec2f"],["maxDisp","maxDisp"]]]]],[10,[6,[7,"uv","sub"],["clamped"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),X4={name:"Liquify",category:"Interactive",description:"Liquid-like interactive deformation effect",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},usesPointer:!0,props:{intensity:{default:10,description:"Scale of the fabric displacement effect",ui:{type:["range","map"],min:0,max:20,step:.1,label:"Intensity",group:"Effect"}},stiffness:{default:3,description:"Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)",ui:{type:"range",min:1,max:30,step:.5,label:"Stiffness",group:"Effect"}},damping:{default:3,description:"How quickly fabric motion settles",ui:{type:"range",min:0,max:10,step:.1,label:"Damping",group:"Effect"}},radius:{default:1,description:"Cursor influence area",ui:{type:"range",min:.1,max:1.5,step:.1,label:"Radius",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"}
247,{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},compute:e=>{let{gpu:t,registerComputeTexture:s,getCpuValue:r,onCleanup:a,onResize:i,dimensions:l}=e,c=t?.root;if(!c)return null;let d=Rt(c,o.vec4f,i_),u=Rt(c,o.vec4f,i_),p=(globalThis.__TYPEGPU_AUTONAME__??($=>$))(c.createTexture({size:[Ia,Ia],format:W4}).$usage("storage","sampled"),"dispTex");a(()=>p.destroy());let m=s(p),_=(globalThis.__TYPEGPU_AUTONAME__??($=>$))(c.createUniform(o.struct({cursorX:o.f32,cursorY:o.f32,dirX:o.f32,dirY:o.f32,clampedSpeed:o.f32,dt:o.f32,subDt:o.f32,stiffness:o.f32,dampFactor:o.f32,radius:o.f32,aspect:o.f32})),"springParams"),v=Math.max(1,Math.round(l.width)),h=Math.max(1,Math.round(l.height));i(({width:$,height:U})=>{v=Math.max(1,Math.round($)),h=Math.max(1,Math.round(U))});let y=[Ia,Ia],x=c.createBindGroup(va,{readBuf:d,writeBuf:u,params:_.buffer}),g=c.createBindGroup(va,{readBuf:u,writeBuf:d,params:_.buffer}),w=pt(c,($=>(globalThis.__TYPEGPU_META__??=new WeakMap).set($.f=((U,k)=>{"use gpu";N4(U,k)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"springKernel",["cx","cy"]]]],externalNames:["springKernel"]},externals:()=>({springKernel:N4})})&&$.f)({}),{size:y}),f=c.createBindGroup(eh,{srcBuf:d,dispTex:p}),A=pt(c,($=>(globalThis.__TYPEGPU_META__??=new WeakMap).set($.f=((U,k)=>{"use gpu";Y4(U,k)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:Y4})})&&$.f)({}),{size:y,bindGroup:f}),E=.5,P=.5,C=Date.now();return{outputs:{displacement:m},getComputeNodes:$=>{let U=$,k=Date.now(),R=Math.min(U.deltaTime??0,.016);if(R<=0)return null;let D=Math.max(1,U.dimensions?.width??v)/Math.max(1,U.dimensions?.height??h),M=r("stiffness")??3,z=r("damping")??3,L=(r("radius")??1)*.08,B=U.pointer?.x??.5,N=U.pointer?.y??.5,G=(B-E)/R,I=(N-P)/R,X=Math.sqrt(G*G+I*I),F=Math.min(X,3);E=B,P=N,F>.01&&(C=k);let Q=z>0?Math.min(3e4,5e3/z):3e4;if(k-C>Q)return null;let ae=R/2;return _.write({cursorX:B,cursorY:N,dirX:X>.01?G/X:0,dirY:X>.01?I/X:0,clampedSpeed:F,dt:R,subDt:ae,stiffness:M,dampFactor:Math.max(0,Math.min(1,1-z*ae)),radius:L,aspect:D}),[w.with(x),w.with(g),A]}}},fragment:({childNode:e,ctx:t,computeOutputs:s,propValues:r,convertToTexture:a,uniforms:i})=>{if(!e)return me;let l=a(e),c=r.edges??0,d=s?.displacement,u=d?d.sample(t.uv,"linearClamp").member("xy"):rr("vec2f(0.0, 0.0)");return T(Re,"unpremultiplyAlpha",[Gt(T(G4,"liquifyOffsetUV",[t.uv,u,i.intensity]),p=>l.sample(p),c)])},uvRemap:({uv:e,mask:t,uniforms:s,propValues:r,computeOutputs:a})=>{let i=a?.displacement;if(!i)return{uv:e,mask:t};let l=r.edges??0;return zs(T(G4,"liquifyOffsetUV",[e,i.sample(e,"linearClamp").member("xy"),s.intensity]),t,l)}};var q4=Math.PI,dq=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_div(s.x,s.y),d=__tsover_mul(t.x,c),u=t.y,p=Vt(o.vec2f(__tsover_add(__tsover_mul(d,r),i),__tsover_add(__tsover_mul(u,r),l))),m=__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_mul(__tsover_mul(d,r),2),__tsover_mul(i,1.7)),__tsover_add(__tsover_mul(__tsover_mul(u,r),2),__tsover_mul(l,.7)))),.5),_=__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_mul(__tsover_mul(d,r),4),__tsover_mul(i,3.1)),__tsover_add(__tsover_mul(__tsover_mul(u,r),4),__tsover_mul(l,1.3)))),.25),v=__tsover_add(__tsover_add(p,m),_),h=__tsover_add(__tsover_mul(__tsover_mul(d,r),q4),__tsover_mul(v,a)),y=__tsover_add(__tsover_mul(n.sin(h),.5),.5),x=__tsover_add(__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_mul(__tsover_mul(u,r),1.5),__tsover_mul(i,2)),__tsover_mul(__tsover_mul(d,r),1.2))),.3),.5),g=n.smoothstep(.3,.6,y),w=n.smoothstep(.6,.9,y);return o.vec2f(g,__tsover_mul(w,x))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"turbulence"},{type:"i",name:"seed"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"au",[1,[7,"uv","x"],"*","aspect"]],[13,"av",[7,"uv","y"]],[13,"n1",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,"au","*","scale"],"+","seed"],[1,[1,"av","*","scale"],"+","animTime"]]]]]],[13,"n2",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"au","*","scale"],"*",[5,"2"]],"+",[1,"seed","*",[5,"1.7"]]],[1,[1,[1,"av","*","scale"],"*",[5,"2"]],"+",[1,"animTime","*",[5,"0.7"]]]]]]],"*",[5,"0.5"]]],[13,"n3",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"au","*","scale"],"*",[5,"4"]],"+",[1,"seed","*",[5,"3.1"]]],[1,[1,[1,"av","*","scale"],"*",[5,"4"]],"+",[1,"animTime","*",[5,"1.3"]]]]]]],"*",[5,"0.25"]]],[13,"totalNoise",[1,[1,"n1","+","n2"],"+","n3"]],[13,"marbleCoord",[1,[1,[1,"au","*","scale"],"*","PI"],"+",[1,"totalNoise","*","turbulence"]]],[13,"marbleT",[1,[1,[6,[7,"std","sin"],["marbleCoord"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"n4",[1,[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"av","*","scale"],"*",[5,"1.5"]],"+",[1,"seed","*",[5,"2"]]],[1,[1,"au","*","scale"],"*",[5,"1.2"]]]]]],"*",[5,"0.3"]],"+",[5,"0.5"]]],[13,"t1",[6,[7,"std","smoothstep"],[[5,"0.3"],[5,"0.6"],"marbleT"]]],[13,"t2",[6,[7,"std","smoothstep"],[[5,"0.6"],[5,"0.9"],"marbleT"]]],[10,[6,[7,"d","vec2f"],["t1",[1,"t2","*","n4"]]]]]],externalNames:["noise","d","PI","std"]},externals:()=>({noise:mt,d:o,PI:q4,std:n})})&&e.f)({}
247)),H4={name:"Marble",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:O,description:"Base background color of the marble",ui:{type:"color",label:"Base",group:"Colors"}},colorB:{default:"#3a2d54",transform:O,description:"Secondary marble tone",ui:{type:"color",label:"Tone",group:"Colors"}},colorC:{default:"#0f0f0f",transform:O,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:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=Fe(e),c=T(dq,"marbleFactors",[a,i,t.scale,t.turbulence,t.seed,l]),d=c.member("x"),u=c.member("y"),p=Ye[r.colorSpace??0]??Be;return T(p,"mixColors",[T(p,"mixColors",[t.colorA,t.colorB,d]),t.colorC,u])}};var j4=Math.PI/180,Z4=b.fn([o.vec2f,o.f32,o.vec2f,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec2f(__tsover_mul(r.x,a),r.y),l=o.vec2f(__tsover_mul(t.x,a),__tsover_sub(1,t.y)),c=i.sub(l),d=__tsover_mul(s,j4),u=o.vec2f(n.cos(d),n.sin(d)),p=o.vec2f(__tsover_mul(u.y,-1),u.x),m=n.dot(c,p),_=c.sub(p.mul(__tsover_mul(m,2))),v=l.add(_),h=o.vec2f(__tsover_div(v.x,a),v.y),y=n.step(0,m);return o.vec3f(h.x,h.y,y)}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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,[7,"d","vec2f"],[[6,[7,"std","cos"],["angleRad"]],[6,[7,"std","sin"],["angleRad"]]]]],[13,"lineNormal",[6,[7,"d","vec2f"],[[1,[7,"lineDirection","y"],"*",[4,"-",[5,"1"]]],[7,"lineDirection","x"]]]],[13,"signedDistance",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"mirroredUV","x"],"/","aspect"],[7,"mirroredUV","y"]]]],[13,"shouldMirror",[6,[7,"std","step"],[[5,"0"],"signedDistance"]]],[10,[6,[7,"d","vec3f"],[[7,"finalMirroredUV","x"],[7,"finalMirroredUV","y"],"shouldMirror"]]]]],externalNames:["d","DEG_TO_RAD","std"]},externals:()=>({d:o,DEG_TO_RAD:j4,std:n})})&&e.f)({})),K4={name:"Mirror",category:"Distortions",description:"Mirror content across a line defined by center point and angle",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The point the mirror line passes through",ui:{type:"position",label:"Center",group:"Position"}},angle:{default:0,description:"The angle of the mirror line in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},edges:{default:"mirror",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"}
247,{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the Mirror shader."),me;let i=a(t),l=r.edges??0,c=T(Z4,"mirrorReflect",[e.center,e.angle,s.uv,s.aspect]),d=c.member("xy"),u=c.member("z");return T(Re,"unpremultiplyAlpha",[Ns(i.sample(s.uv),Gt(d,p=>i.sample(p),l),u)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0,l=T(Z4,"mirrorReflect",[s.center,s.angle,e,r]);return zs(Ns(e,l.member("xy"),l.member("z")),t,i)}};var Pu=b.fn([o.vec2f,o.vec2f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_sub(t.x,s.x),i=__tsover_sub(t.y,s.y),l=__tsover_add(n.sqrt(__tsover_add(__tsover_mul(a,a),__tsover_mul(i,i))),.001);return __tsover_div(1,n.pow(l,r))}),{v:1,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,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]],"+",[5,"0.001"]]],[10,[1,[5,"1"],"/",[6,[7,"std","pow"],["dist","effPower"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),uq=b.fn([o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(s.x,s.y),p=o.vec2f(__tsover_mul(t.x,u),t.y),m=o.vec2f(__tsover_mul(r.x,u),__tsover_sub(1,r.y)),_=o.vec2f(__tsover_mul(a.x,u),__tsover_sub(1,a.y)),v=o.vec2f(__tsover_mul(i.x,u),__tsover_sub(1,i.y)),h=o.vec2f(__tsover_mul(l.x,u),__tsover_sub(1,l.y)),y=o.vec2f(__tsover_mul(c.x,u),__tsover_sub(1,c.y)),x=n.min(__tsover_div(8,__tsover_add(d,.5)),8),g=Pu(p,m,x),w=Pu(p,_,x),f=Pu(p,v,x),A=Pu(p,h,x),E=Pu(p,y,x),P=g,C=__tsover_div(w,__tsover_add(P,w)),$=__tsover_add(P,w),U=__tsover_div(f,__tsover_add($,f)),k=__tsover_add($,f),R=__tsover_div(A,__tsover_add(k,A)),D=__tsover_add(k,A),M=__tsover_div(E,__tsover_add(D,E));return o.vec4f(C,U,R,M)}),{v:1,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",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"uvAspect",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pA",[6,[7,"d","vec2f"],[[1,[7,"posA","x"],"*","aspect"],[1,[5,"1"],"-",[7,"posA","y"]]]]],[13,"pB",[6,[7,"d","vec2f"],[[1,[7,"posB","x"],"*","aspect"],[1,[5,"1"],"-",[7,"posB","y"]]]]],[13,"pC",[6,[7,"d","vec2f"],[[1,[7,"posC","x"],"*","aspect"],[1,[5,"1"],"-",[7,"posC","y"]]]]],[13,"pD",[6,[7,"d","vec2f"],[[1,[7,"posD","x"],"*","aspect"],[1,[5,"1"],"-",[7,"posD","y"]]]]],[13,"pE",[6,[7,"d","vec2f"],[[1,[7,"posE","x"],"*","aspect"],[1,[5,"1"],"-",[7,"posE","y"]]]]],[13,"effPower",[6,[7,"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,[7,"d","vec4f"],["t1","t2","t3","t4"]]]]],externalNames:["d","std","mpgWeight"]},externals:()=>({d:o,std:n,mpgWeight:Pu})})&&e.f)({})),J4={name:"MultiPointGradient",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Five individually placed color points blended together by proximity \u2014 drag each point to shape the gradient",acceptsUVContext:!0,props:{colorA:{default:"#4776E6",transform:O,description:"Color of control point A",ui:{type:"color",label:"Color A",group:"Colors"}},positionA:{default:{x:.2,y:.2},transform:we,description:"Position of control point A",ui:{type:"position",label:"Position A",group:"Position"}},colorB:{default:"#C44DFF",transform:O,description:"Color of control point B",ui:{type:"color",label:"Color B",group:"Colors"}},positionB:{default:{x:.8,y:.2},transform:we,description:"Position of control point B",ui:{type:"position",label:"Position B",group:"Position"}},colorC:{default:"#1ABC9C",transform:O,description:"Color of control point C",ui:{type:"color",label:"Color C",group:"Colors"}},positionC:{default:{x:.2,y:.8},transform:we,description:"Position of control point C",ui:{type:"position",label:"Position C",group:"Position"}},colorD:{default:"#F8BBD9",transform:O,description:"Color of control point D",ui:{type:"color",label:"Color D",group:"Colors"}},positionD:{default:{x:.8,y:.8},transform:we,description:"Position of control point D",ui:{type:"position",label:"Position D",group:"Position"}},colorE:{default:"#FF8C42",transform:O,description:"Color of control point E",ui:{type:"color",label:"Color E",group:"Colors"}},positionE:{default:{x:.5,y:.5},transform:we,description:"Position of control point E",ui:{type:"position",label:"Position E",group:"Position"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}},smoothness:{default:2,description:"Controls how smoothly colors blend.",ui:{type:["range","map"],min:0,max:5,step:.01,label:"Smoothness",group:"Effect"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=r.colorSpace??0,c=T(uq,"mpgFactors",[a,i,t.positionA,t.positionB,t.positionC,t.positionD,t.positionE,t.smoothness]),d=Ye[l]??Be,u=t.colorA;return u=T(d,"mixColors",[u,t.colorB,c.member("x")]),u=T(d,"mixColors",[u,t.colorC,c.member("y")]),u=T(d,"mixColors",[u,t.colorD,
vendor: 5,695 bytes, line 247
247c.member("z")]),u=T(d,"mixColors",[u,t.colorE,c.member("w")]),u}};function pq(e,t=400,s=!1,r){let a=`https://fonts.googleapis.com/css2?family=${e.trim().replace(/ /g,"+")}:ital,wght@${s?1:0},${t}&display=swap`;return r&&(a+=`&text=${encodeURIComponent(r)}`),a}var Q4=new Set,Mb=new Map;function ku(e,t=400,s=!1){if(typeof document>"u"||!e)return Promise.resolve();let r=`${e}|${t}|${s}`;if(Q4.has(r))return Promise.resolve();let a=Mb.get(r);if(a)return a;let i=mq(e,t,s).catch(()=>{if(t!==400||s)return ku(e,400,!1)}).then(()=>{Q4.add(r),Mb.delete(r)});return Mb.set(r,i),i}function mq(e,t,s){let r=pq(e,t,s);return new Promise((a,i)=>{if(document.querySelector(`link[href="${r}"]`)){a();return}let l=document.createElement("link");l.rel="stylesheet",l.href=r,l.onload=()=>a(),l.onerror=()=>{l.remove(),i(new Error(`Failed to load font stylesheet: ${e}`))},document.head.appendChild(l)}).then(async()=>{if(document.fonts?.load){let a=`${s?"italic ":""}${t} 12px "${e}"`;try{if(!(await document.fonts.load(a)).length)throw new Error(`No font faces loaded for ${a}`)}catch(i){if(!(await document.fonts.load(`12px "${e}"`)).length)throw i}await new Promise(i=>setTimeout(i,300))}else await new Promise(a=>setTimeout(a,1e3))})}function ek(e,t=400,s=!1){if(typeof document>"u"||!document.fonts?.check)return!1;try{return document.fonts.check(`${s?"italic ":""}${t} 12px "${e}"`)}catch{return!1}}var _q="0123456789x%",rk=16,th=64,sh=96,Cb=rk*th,Pb=sh,fq=3,tk=4,vq=1080,sk="vec3f(0.299, 0.587, 0.114)",ok=(e,t)=>typeof e=="number"?e:t,ak={name:"ObjectTracker",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Computer-vision style object detection overlay \u2014 draws bounding boxes and labels around detected regions of the content below, with grid, quadtree and mosaic layouts.",requiresRTT:!0,requiresChild:!0,props:{detectionMode:{default:"bright",compileTime:!0,description:"What counts as a detectable object.",ui:{type:"select",options:[{label:"Transparency",value:"alpha"},{label:"Brightness",value:"bright"},{label:"Darkness",value:"dark"},{label:"Red",value:"red"},{label:"Green",value:"green"},{label:"Blue",value:"blue"}],label:"Detect",group:"Detection"}},threshold:{default:.25,description:"Detection cut-off.",ui:{type:"range",min:0,max:1,step:.01,label:"Threshold",group:"Detection"}},layout:{default:"mosaic",compileTime:!0,description:"How the canvas is partitioned into detection cells.",ui:{type:"select",options:[{label:"Grid",value:"grid"},{label:"Quadtree",value:"quadtree"},{label:"Mosaic",value:"mosaic"}],label:"Layout",group:"Detection"}},cellSize:{default:400,description:"Base cell size in pixels",ui:{type:"range",min:24,max:800,step:1,label:"Base Cell Size",group:"Detection"}},maxDepth:{default:2,compileTime:!0,description:"Maximum subdivision levels for Quadtree/Mosaic layouts (each level can quarter a cell).",ui:{type:"range",min:1,max:5,step:1,label:"Subdivision",group:"Detection",condition:{layout:["quadtree","mosaic"]}}},boxStyle:{default:"corners",compileTime:!0,description:"Bounding box outline style",ui:{type:"select",options:[{label:"Full",value:"full"},{label:"Corners",value:"corners"}],label:"Box Style",group:"Boxes"}},lineWidth:{default:1.5,description:"Thickness of the box outline in pixels.",ui:{type:"range",min:.5,max:12,step:.5,label:"Line Width",group:"Boxes"}},cornerRadius:{default:0,description:"Corner radius of the box outline in pixels",ui:{type:"range",min:0,max:40,step:1,label:"Corner Radius",group:"Boxes",condition:{boxStyle:"full"}}},strokeColor:{default:"#ffffff",transform:O,description:"Bounding box outline colour.",ui:{type:"color",label:"Stroke",group:"Colors"}},fillColor:{default:"#5a79911a",transform:O,description:"Bounding box fill color.",ui:{type:"color",label:"Fill",group:"Colors"}},labelColor:{default:"#000000",transform:O,description:"Label text color.",ui:{type:"color",label:"Label",group:"Colors",condition:{labelMode:["dimensions","percentage"]}}},labelBackgroundColor:{default:"#ffffff",transform:O,description:"Label pill background color.",ui:{type:"color",label:"Label Background",group:"Colors",condition:{labelMode:["dimensions","percentage"]}}},labelMode:{default:"none",compileTime:!0,description:"What each label shows.",ui:{type:"select",options:[{label:"None",value:"none"},{label:"Dimensions",value:"dimensions"},{label:"Percentage",value:"percentage"}],label:"Label",group:"Labels"}},labelPosition:{default:"bottom-right",compileTime:!0,description:"Which corner of the box the label anchors to.",ui:{type:"select",options:[{label:"Bottom Left",value:"bottom-left"},{label:"Bottom Right",value:"bottom-right"},{label:"Top Left",value:"top-left"},{label:"Top Right",value:"top-right"}],label:"Label Position",group:"Labels",condition:{labelMode:["dimensions","percentage"]}}},labelRadius:{default:0,description:"Corner radius of the label pill in pixels.",ui:{type:"range",min:0,max:30,step:1,label:"Border Radius",group:"Labels",condition:{labelMode:["dimensions","percentage"]}}},labelInset:{default:!0,transform:Wo,description:"Place the label inside or outside the box.",ui:{type:"checkbox",label:"Label Inset",group:"Labels",condition:{labelMode:["dimensions","percentage"]}}},fontFamily:{default:"Inter",description:"Google Fonts family used for label text.",ui:{type:"font-family",label:"Font",group:"Typography",condition:{labelMode:["dimensions","percentage"]}}},fontWeight:{default:500,description:"Font weight for label text.",ui:{type:"font-weight",label:"Weight",group:"Typography",condition:{labelMode:["dimensions","percentage"]}}},fontSize:{default:.015,description:"Label text size as a fraction of canvas height.",ui:{type:"range",min:.01,max:.5,step:.
247005,label:"Size",group:"Typography",dimensional:"canvas-height",condition:{labelMode:["dimensions","percentage"]}}},letterSpacing:{default:0,description:"Letter spacing for label text, in em units.",ui:{type:"range",min:-.1,max:.5,step:.005,label:"Letter Spacing",group:"Typography",condition:{labelMode:["dimensions","percentage"]}}}},fragment:e=>{let{uniforms:t,ctx:s,childNode:r,convertToTexture:a,propValues:i,onCleanup:l,onBeforeRender:c,getCpuValue:d,createMediaTexture:u,registerMediaTexture:p}=e;if(!r)return me;let m=a(r).key,_={alpha:0,bright:1,dark:2,red:3,green:4,blue:5},v={grid:0,quadtree:1,mosaic:2},h={none:0,dimensions:1,percentage:2},y={"bottom-left":0,"bottom-right":1,"top-left":2,"top-right":3},x=["alpha","bright","dark","red","green","blue"][typeof i.detectionMode=="number"?i.detectionMode:_[i.detectionMode]??1],g=["grid","quadtree","mosaic"][typeof i.layout=="number"?i.layout:v[i.layout]??2],w=Math.round(ok(i.maxDepth,2));Number.isFinite(w)||(w=2),w=Math.max(0,Math.min(5,w)),g==="grid"&&(w=0);let f=(typeof i.boxStyle=="string"?i.boxStyle:"corners")==="corners",A=["none","dimensions","percentage"][typeof i.labelMode=="number"?i.labelMode:h[i.labelMode]??0],E=A!=="none",P=typeof i.labelPosition=="number"?i.labelPosition:y[i.labelPosition]??1,C=null;if(E){let U=u({width:Cb,height:Pb,label:"ObjectTracker:atlas"});l(()=>U.destroy()),C=p(()=>U.texture);let k=null,R=null,D=!1,M=()=>({family:String(d("fontFamily")??"Inter"),weight:ok(d("fontWeight"),500)}),z=(G,I)=>{if(D)return;k||(k=document.createElement("canvas"),k.width=Cb,k.height=Pb,R=k.getContext("2d",{willReadFrequently:!0}));let X=R;if(X){X.clearRect(0,0,Cb,Pb),X.fillStyle="#ffffff",X.font=`${I} ${Math.round(sh*.62)}px "${G}", ui-monospace, monospace`,X.textAlign="center",X.textBaseline="middle";for(let F=0;F<12;F++)X.fillText(_q[F],F*th+th/2,sh/2+1);U.write(k)}},L=M();z(L.family,L.weight);let B=`${L.family}|${L.weight}`;setTimeout(()=>{let G=M();ku(G.family,G.weight).then(()=>{let I=M();z(I.family,I.weight)}).catch(()=>{})},0);let N=0;c(()=>{let G=Date.now();if(G-N<100)return;N=G;let I=M(),X=`${I.family}|${I.weight}`;X!==B&&(B=X,z(I.family,I.weight),ku(I.family,I.weight).then(()=>{let F=M();z(F.family,F.weight)}).catch(()=>{}))}),l(()=>{D=!0,k&&(k.width=0,k.height=0,k=null,R=null)})}let $=C?.key;return new mo(U=>{let k=F=>t[F]._emit(U),R=F=>Tr(F),D=U.external(Re,"unpremultiplyAlpha"),M=U.freshLocal("ot"),z=[],L=F=>`textureSampleLevel(tex.$.${m}, samp.$.linearClamp, ${F}, 0.0)`;z.push(`let ${M}_res = ${s.logicalViewportSize._emit(U)};`),z.push(`let ${M}_scaleFactor = ${M}_res.y / ${R(vq)};`);let B=s.uv._emit(U);z.push(`let ${M}_fragPx = vec2f((${B}).x * ${M}_res.x, (${B}).y * ${M}_res.y);`),z.push(`let ${M}_aa = max(max(fwidth(${M}_fragPx.x), fwidth(${M}_fragPx.y)), ${R(1e-4)});`),z.push(`let ${M}_cellPx = max(${k("cellSize")} * ${M}_scaleFactor, ${R(4)});`),z.push(`let ${M}_minSize = ${R(3)} * ${M}_scaleFactor;`),z.push(`let ${M}_lineHalf = max(${k("lineWidth")} * ${M}_scaleFactor * ${R(.5)}, ${R(.5)});`),z.push(`let ${M}_cornerRadiusPx = ${k("cornerRadius")} * ${M}_scaleFactor;`),z.push(`let ${M}_boxInset = ${M}_lineHalf + ${M}_scaleFactor * ${R(1.5)};`),z.push(`let ${M}_thr = ${k("threshold")};`);let N=(F,Q)=>x==="alpha"?`${F}.a > ${M}_thr`:x==="bright"?`dot(${Q}.rgb, ${sk}) > ${M}_thr && ${F}.a > ${R(.02)}`:x==="dark"?`dot(${Q}.rgb, ${sk}) < ${M}
247_thr && ${F}.a > ${R(.5)}`:x==="red"?`${Q}.r > ${M}_thr && ${Q}.r >= ${Q}.g && ${Q}.r >= ${Q}.b && ${F}.a > ${R(.02)}`:x==="green"?`${Q}.g > ${M}_thr && ${Q}.g >= ${Q}.r && ${Q}.g >= ${Q}.b && ${F}.a > ${R(.02)}`:`${Q}.b > ${M}_thr && ${Q}.b >= ${Q}.r && ${Q}.b >= ${Q}.g && ${F}.a > ${R(.02)}`,G=(F,Q,ae,j,q,te)=>{z.push(`var ${F}_cnt = ${R(0)};`),te&&z.push(`var ${F}_minX = ${R(1e9)}; var ${F}_maxX = ${R(-1e9)}; var ${F}_minY = ${R(1e9)}; var ${F}_maxY = ${R(-1e9)};`);let ne=1/q,oe=0;for(let pe=0;pe<q;pe++)for(let _e=0;_e<q;_e++){let ge=`${F}_px${oe}x`,Me=`${F}_px${oe}y`;z.push(`let ${ge} = ${Q} + ${j} * ${R((_e+.5)*ne)};`),z.push(`let ${Me} = ${ae} + ${j} * ${R((pe+.5)*ne)};`),z.push(`let ${F}_s${oe} = ${L(`vec2f(${ge}, ${Me}) / ${M}_res`)};`),x!=="alpha"&&z.push(`let ${F}_u${oe} = ${D}(${F}_s${oe});`),z.push(`let ${F}_c${oe} = ${N(`${F}_s${oe}`,`${F}_u${oe}`)};`),z.push(`${F}_cnt = ${F}_cnt + select(${R(0)}, ${R(1)}, ${F}_c${oe});`),te&&(z.push(`${F}_minX = select(${F}_minX, min(${F}_minX, ${ge}), ${F}_c${oe});`),z.push(`${F}_maxX = select(${F}_maxX, max(${F}_maxX, ${ge}), ${F}_c${oe});`),z.push(`${F}_minY = select(${F}_minY, min(${F}_minY, ${Me}), ${F}_c${oe});`),z.push(`${F}_maxY = select(${F}_maxY, max(${F}_maxY, ${Me}), ${F}_c${oe});`)),oe++}z.push(`let ${F}_coverage = ${F}_cnt / ${R(q*q)};`)};z.push(`var ${M}_origin = floor(${M}_fragPx / ${M}_cellPx) * ${M}_cellPx;`),z.push(`var ${M}_size = ${M}_cellPx;`);for(let F=0;F<w;F++){let Q=`${M}_w${F}`;g==="mosaic"?(z.push(`let ${Q}_cellIx = ${M}_origin / ${M}_size;`),z.push(`let ${Q}_doSplit = fract(sin(dot(${Q}_cellIx, vec2f(${R(127.1)}, ${R(311.7)})) + ${R(F*53.13)}) * ${R(43758.5453)}) > ${R(.5)};`)):(G(Q,`${M}_origin.x`,`${M}_origin.y`,`${M}_size`,fq,!1),z.push(`let ${Q}_doSplit = ${Q}_coverage > ${R(.02)} && ${Q}_coverage < ${R(.98)};`)),z.push(`let ${Q}_half = ${M}_size * ${R(.5)};`),z.push(`let ${Q}_qx = step(${M}_origin.x + ${Q}_half, ${M}_fragPx.x);`),z.push(`let ${Q}_qy = step(${M}_origin.y + ${Q}_half, ${M}_fragPx.y);`),z.push(`let ${Q}_childOrigin = vec2f(${M}_origin.x + ${Q}_qx * ${Q}_half, ${M}_origin.y + ${Q}_qy * ${Q}_half);`),z.push(`${M}_origin = select(${M}_origin, ${Q}_childOrigin, ${Q}_doSplit);`),z.push(`${M}_size = select(${M}_size, ${Q}_half, ${Q}_doSplit);`)}G(`${M}_leaf`,`${M}_origin.x`,`${M}_origin.y`,`${M}_size`,tk,!0),z.push(`let ${M}_halfStep = ${M}_size / ${R(tk)} * ${R(.5)};`),z.push(`let ${M}_innerMinX = ${M}_origin.x + ${M}_boxInset;`),z.push(`let ${M}_innerMaxX = max(${M}_origin.x + ${M}_size - ${M}_boxInset, ${M}_innerMinX);`),z.push(`let ${M}_innerMinY = ${M}_origin.y + ${M}_boxInset;`),z.push(`let ${M}_innerMaxY = max(${M}_origin.y + ${M}_size - ${M}_boxInset, ${M}_innerMinY);`),z.push(`let ${M}_bMinX = clamp(${M}_leaf_minX - ${M}_halfStep, ${M}_innerMinX, ${M}_innerMaxX);`),z.push(`let ${M}_bMaxX = clamp(${M}_leaf_maxX + ${M}_halfStep, ${M}_innerMinX, ${M}_innerMaxX);`),z.push(`let ${M}_bMinY = clamp(${M}_leaf_minY - ${M}_halfStep, ${M}_innerMinY, ${M}_innerMaxY);`),z.push(`let ${M}_bMaxY = clamp(${M}_leaf_maxY + ${M}_halfStep, ${M}_innerMinY, ${M}_innerMaxY);`),z.push(`let ${M}_boxW = ${M}_bMaxX - ${M}_bMinX;`),z.push(`let ${M}_boxH = ${M}_bMaxY - ${M}_bMinY;`),z.push(`let ${M}_detected = ${M}_leaf_coverage > ${R(.02)} && ${M}_boxW > ${M}_minSize && ${M}_boxH > ${M}_minSize;`),z.push(`let ${M}_detF = select(${R(0)}, ${R(1)}, ${M}_detected);`),z.push(`var ${M}_dst = ${L(`(${B})`)};`),z.push(`let ${M}_center = vec2f((${M}_bMinX + ${M}_bMaxX) * ${R(.5)}, (${M}_bMinY + ${M}_bMaxY) * ${R(.5)});`),z.push(`let ${M}_halfB = vec2f(${M}_boxW * ${R(.5)}, ${M}_boxH * ${R(.5)});`);let I=f?R(0):`${M}_cornerRadiusPx`;z.push(`let ${M}_cR = max(min(min(${I}, ${M}_halfB.x), ${M}_halfB.y), ${R(0)});`),z.push(`let ${M}_pp = ${M}_fragPx - ${M}_center;`),z.push(`let ${M}_q = abs(${M}_pp) - ${M}_halfB + ${M}_cR;`),z.push(`let ${M}_sd = length(max(${M}_q, vec2f(0.0))) + min(max(${M}_q.x, ${M}_q.y), ${R(0)}) - ${M}_cR;`),z.push(`let ${M}_fillA = (${R(1)} - smoothstep(${R(0)}, ${M}_aa, ${M}_sd)) * ${k("fillColor")}.a * ${M}_detF;`),z.push(`var ${M}_strokeA = ${R(1)} - smoothstep(${R(0)}, ${M}_aa, abs(${M}_sd) - ${M}_lineHalf);`),f&&(z.push(`let ${M}_bl = min(${M}_halfB.x, ${M}_halfB.y) * ${R(.35)};`),z.push(`let ${M}_inCorner = abs(${M}_pp.x) > ${M}_halfB.x - ${M}_bl && abs(${M}_pp.y) > ${M}_halfB.y - ${M}_bl;`),z.push(`${M}_strokeA = ${M}_strokeA * select(${R(0)}, ${R(1)}, ${M}_inCorner);`)),z.push(`${M}_strokeA = ${M}_strokeA * ${k("strokeColor")}.a * ${M}_detF;`);let X=(F,Q)=>{z.push(`{ let av = clamp(${Q}, 0.0, 1.0); ${M}_dst = vec4f((${F}) * av + ${M}_dst.rgb * (1.0 - av), av + ${M}_dst.a * (1.0 - av)); }`)};if(X(`${k("fillColor")}.rgb`,`${M}_fillA`),X(`${k("strokeColor")}.rgb`,`${M}_strokeA`),E&&$){z.push(`let ${M}_textH = max(${k("fontSize")} * ${M}_res.y, ${R(1)});`),z.push(`let ${M}_glyphW = ${M}_textH * ${R(th/sh)};`),z.push(`let ${M}_advance = ${M}_glyphW + ${M}_textH * ${k("letterSpacing")};`),z.push(`let ${M}_padX = ${M}_textH * ${R(.38)};`),z.push(`let ${M}_padY = ${M}_textH * ${R(.24)};`),z.push(`let ${M}_gap = ${M}_textH * ${R(.28)};`);let F=pe=>`(${R(1)} + step(${R(10)}, ${pe}) + step(${R(100)}, ${pe}) + step(${R(1e3)}, ${pe}) + step(${R(1e4)}, ${pe}))`,Q=(pe,_e)=>{let ge=`floor(${pe} / pow(${R(10)}, ${_e}))`;return`(${ge} - ${R(10)} * floor((${ge}) / ${R(10)}))`};A==="dimensions"?(z.push(`let ${M}_w = clamp(floor(${M}_boxW + ${R(.5)}), ${R(1)}, ${R(99999)});`),z.push(`let ${M}_h = clamp(floor(${M}_boxH + ${R(.5)}), ${R(1)}, ${R(99999)});`),z.push(`let ${M}_dw = ${F(`${M}_w`)};`),z.push(`let ${M}_dh = ${F(`${M}_h`)};`),z.push(`let ${M}_total = ${M}_dw + ${R(1)} + ${M}_dh;`)):(z.push(`let ${M}_pc = clamp(floor(${M}_leaf_coverage * ${R(100)} + ${R(.5)}), ${R(0)}, ${R(100)});`),z.push(`let ${M}_dp = ${F(`${M}_pc`)};`),z.push(`let ${M}_total = ${M}_dp + ${R(1)};`)),z.push(`let ${M}_labelW = ${M}
247_total * ${M}_advance + ${M}_padX * ${R(2)};`),z.push(`let ${M}_labelH = ${M}_textH + ${M}_padY * ${R(2)};`);let ae=P===1||P===3,j=P===2||P===3;z.push(`let ${M}_inset = ${k("labelInset")} > ${R(.5)};`);let q=ae?`${M}_bMaxX - ${M}_labelW - ${M}_gap`:`${M}_bMinX + ${M}_gap`,te=ae?`${M}_bMaxX - ${M}_labelW`:`${M}_bMinX`;z.push(`var ${M}_labelLeft = select(${te}, ${q}, ${M}_inset);`);let ne=j?`${M}_bMinY + ${M}_gap`:`${M}_bMaxY - ${M}_labelH - ${M}_gap`,oe=j?`${M}_bMinY - ${M}_labelH - ${M}_gap`:`${M}_bMaxY + ${M}_gap`;z.push(`var ${M}_labelTop = select(${oe}, ${ne}, ${M}_inset);`),z.push(`let ${M}_cellMaxX = ${M}_origin.x + ${M}_size;`),z.push(`let ${M}_cellMaxY = ${M}_origin.y + ${M}_size;`),z.push(`${M}_labelLeft = clamp(${M}_labelLeft, ${M}_origin.x, max(${M}_cellMaxX - ${M}_labelW, ${M}_origin.x));`),z.push(`${M}_labelTop = clamp(${M}_labelTop, ${M}_origin.y, max(${M}_cellMaxY - ${M}_labelH, ${M}_origin.y));`),z.push(`let ${M}_labelCenter = vec2f(${M}_labelLeft + ${M}_labelW * ${R(.5)}, ${M}_labelTop + ${M}_labelH * ${R(.5)});`),z.push(`let ${M}_pillHalf = vec2f(${M}_labelW * ${R(.5)}, ${M}_labelH * ${R(.5)});`),z.push(`let ${M}_pillR = max(min(min(${k("labelRadius")} * ${M}_scaleFactor, ${M}_pillHalf.x), ${M}_pillHalf.y), ${R(0)});`),z.push(`let ${M}_pillP = ${M}_fragPx - ${M}_labelCenter;`),z.push(`let ${M}_pillQ = abs(${M}_pillP) - ${M}_pillHalf + ${M}_pillR;`),z.push(`let ${M}_pillSD = length(max(${M}_pillQ, vec2f(0.0))) + min(max(${M}_pillQ.x, ${M}_pillQ.y), ${R(0)}) - ${M}_pillR;`),z.push(`let ${M}_pillA = (${R(1)} - smoothstep(${R(0)}, ${M}_aa, ${M}_pillSD)) * ${k("labelBackgroundColor")}.a * ${M}_detF;`),X(`${k("labelBackgroundColor")}.rgb`,`${M}_pillA`),z.push(`let ${M}_rel = ${M}_fragPx.x - ${M}_labelLeft - ${M}_padX;`),z.push(`let ${M}_slot = floor(${M}_rel / ${M}_advance);`),z.push(`let ${M}_within = fract(${M}_rel / ${M}_advance);`),z.push(`let ${M}_uInChar = ${M}_within * (${M}_advance / ${M}_glyphW);`),z.push(`let ${M}_vInChar = (${M}_fragPx.y - ${M}_labelTop - ${M}_padY) / ${M}_textH;`),A==="dimensions"?(z.push(`let ${M}_wDigit = ${Q(`${M}_w`,`${M}_dw - ${R(1)} - ${M}_slot`)};`),z.push(`let ${M}_hDigit = ${Q(`${M}_h`,`${M}_dh + ${M}_dw - ${M}_slot`)};`),z.push(`var ${M}_g = ${M}_hDigit;`),z.push(`${M}_g = select(${M}_g, ${R(10)}, ${M}_slot == ${M}_dw);`),z.push(`${M}_g = select(${M}_g, ${M}_wDigit, ${M}_slot < ${M}_dw);`)):z.push(`var ${M}_g = select(${R(11)}, ${Q(`${M}_pc`,`${M}_dp - ${R(1)} - ${M}_slot`)}, ${M}_slot < ${M}_dp);`),z.push(`let ${M}_atlasU = (${M}_g + clamp(${M}_uInChar, ${R(0)}, ${R(1)})) / ${R(rk)};`),z.push(`let ${M}_glyphCov = textureSampleLevel(tex.$.${$}, samp.$.linearClamp, vec2f(${M}_atlasU, ${M}_vInChar), 0.0).a;`),z.push(`let ${M}_inText = ${M}_rel >= ${R(0)} && ${M}_slot >= ${R(0)} && ${M}_slot < ${M}_total && ${M}_uInChar <= ${R(1)} && ${M}_vInChar >= ${R(0)} && ${M}_vInChar <= ${R(1)};`),z.push(`let ${M}_textA = ${M}_glyphCov * select(${R(0)}, ${R(1)}, ${M}_inText) * ${k("labelColor")}.a * ${M}_detF;`),X(`${k("labelColor")}.rgb`,`${M}_textA`)}for(let F of z)U.statement(F);return`vec4f(${M}_dst.rgb / max(${M}_dst.a, ${R(1e-4)}), ${M}_dst.a)`})}};var hq=e=>{switch(e){case"top-left":return 0;case"top-right":return 1;case"bottom-left":return 2;case"bottom-right":return 3;default:return 3}},nk={0:{corner:[0,0],opposite:[1,1]},1:{corner:[1,0],opposite:[0,1]},2:{corner:[0,1],opposite:[1,0]},3:{corner:[1,1],opposite:[0,0]}},kb=Math.PI/2,oh=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({curlUV:o.vec2f,curlBright:o.f32,spec:o.f32,flatShade:o.f32,peelAlpha:o.f32,foldBlend:o.f32,showCurl:o.f32}),"PagePeelGeom"),yq=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],oh)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=o.vec2f(__tsover_mul(t.x,s),t.y),h=o.vec2f(__tsover_mul(r,s),a),y=o.vec2f(__tsover_mul(i,s),l).sub(h),x=n.length(y),g=y.mul(__tsover_div(1,x)),w=n.dot(v.sub(h),g),f=__tsover_mul(c,x),A=f,E=n.max(__tsover_mul(d,x),1e-4),P=__tsover_div(f,E),C=__tsover_div(__tsover_sub(w,A),E),$=n.clamp(C,0,1),U=n.asin($),k=__tsover_mul(n.step(0,C),n.step(C,
2471)),R=n.step(U,P),D=__tsover_sub(f,__tsover_mul(E,U)),M=v.add(g.mul(__tsover_sub(D,w))),z=o.vec2f(__tsover_div(M.x,s),M.y),L=__tsover_mul(__tsover_mul(__tsover_mul(n.step(0,z.x),n.step(z.x,1)),n.step(0,z.y)),n.step(z.y,1)),B=n.cos(U),N=__tsover_sub(1,__tsover_mul(u,B)),G=__tsover_div(U,kb),I=n.mix(.05,.4,m),X=__tsover_div(__tsover_sub(G,.65),I),F=__tsover_mul(n.exp(__tsover_mul(__tsover_mul(X,X),-.5)),p),Q=__tsover_sub(1,n.cos(n.clamp(P,0,kb))),ae=__tsover_mul(E,Q),j=__tsover_mul(n.smoothstep(0,.04,c),n.pow(__tsover_sub(1,c),.7)),q=n.max(__tsover_add(E,__tsover_mul(ae,.5)),1e-4),te=__tsover_sub(w,A),ne=__tsover_mul(__tsover_mul(n.pow(__tsover_sub(1,n.smoothstep(0,q,te)),2),n.step(0,te)),j),oe=__tsover_sub(1,__tsover_mul(__tsover_mul(_,ne),.5)),pe=n.max(__tsover_mul(ae,2.5),1e-4),_e=__tsover_sub(A,w),ge=__tsover_mul(__tsover_mul(__tsover_mul(n.pow(__tsover_sub(1,n.smoothstep(0,pe,_e)),1.5),n.step(0,_e)),j),_);return oh({curlUV:z,curlBright:N,spec:F,flatShade:oe,peelAlpha:__tsover_mul(ge,.6),foldBlend:n.smoothstep(__tsover_sub(A,.0015),__tsover_add(A,.0015),w),showCurl:__tsover_mul(__tsover_mul(k,R),L)})}),{v:1,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"},{type:"i",name:"shading"},{type:"i",name:"highlight"},{type:"i",name:"highlightSoftness"},{type:"i",name:"shadow"}],body:[0,[[13,"pA",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"cornerA",[6,[7,"d","vec2f"],[[1,"cornerX","*","aspect"],"cornerY"]]],[13,"oppA",[6,[7,"d","vec2f"],[[1,"oppX","*","aspect"],"oppY"]]],[13,"axisVec",[6,[7,"oppA","sub"],["cornerA"]]],[13,"L",[6,[7,"std","length"],["axisVec"]]],[13,"axis",[6,[7,"axisVec","mul"],[[1,[5,"1"],"/","L"]]]],[13,"t",[6,[7,"std","dot"],[[6,[7,"pA","sub"],["cornerA"]],"axis"]]],[13,"peel",[1,"amount","*","L"]],[13,"cFold","peel"],[13,"R",[6,[7,"std","max"],[[1,"radius","*","L"],[5,"0.0001"]]]],[13,"thetaMax",[1,"peel","/","R"]],[13,"X",[1,[1,"t","-","cFold"],"/","R"]],[13,"Xc",[6,[7,"std","clamp"],["X",[5,"0"],[5,"1"]]]],[13,"theta",[6,[7,"std","asin"],["Xc"]]],[13,"inBand",[1,[6,[7,"std","step"],[[5,"0"],"X"]],"*",[6,[7,"std","step"],["X",[5,"1"]]]]],[13,"paper",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"sourceA","x"],"/","aspect"],[7,"sourceA","y"]]]],[13,"curlInBounds",[1,[1,[1,[6,[7,"std","step"],[[5,"0"],[7,"curlUV","x"]]],"*",[6,[7,"std","step"],[[7,"curlUV","x"],[5,"1"]]]],"*",[6,[7,"std","step"],[[5,"0"],[7,"curlUV","y"]]]],"*",[6,[7,"std","step"],[[7,"curlUV","y"],[5,"1"]]]]],[13,"facing",[6,[7,"std","cos"],["theta"]]],[13,"curlBright",[1,[5,"1"],"-",[1,"shading","*","facing"]]],[13,"thetaN",[1,"theta","/","HALF_PI"]],[13,"specSigma",[6,[7,"std","mix"],[[5,"0.05"],[5,"0.4"],"highlightSoftness"]]],[13,"specDelta",[1,[1,"thetaN","-",[5,"0.65"]],"/","specSigma"]],[13,"spec",[1,[6,[7,"std","exp"],[[1,[1,"specDelta","*","specDelta"],"*",[4,"-",[5,"0.5"]]]]],"*","highlight"]],[13,"liftFrac",[1,[5,"1"],"-",[6,[7,"std","cos"],[[6,[7,"std","clamp"],["thetaMax",[5,"0"],"HALF_PI"]]]]]],[13,"lipHeight",[1,"R","*","liftFrac"]],[13,"shadowStrength",[1,[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.04"],"amount"]],"*",[6,[7,"std","pow"],[[1,[5,"1"],"-","amount"],[5,"0.7"]]]]],[13,"flatReach",[6,[7,"std","max"],[[1,"R","+",[1,"lipHeight","*",[5,"0.5"]]],[5,"0.0001"]]]],[13,"distPastCrease",[1,"t","-","cFold"]],[13,"flatFall",[1,[1,[6,[7,"std","pow"],[[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"flatReach","distPastCrease"]]],[5,"2"]]],"*",[6,[7,"std","step"],[[5,"0"],"distPastCrease"]]],"*","shadowStrength"]],[13,"flatShade",[1,[5,"1"],"-",[1,[1,"shadow","*","flatFall"],"*",[5,"0.5"]]]],[13,"peelReach",[6,[7,"std","max"],[[1,"lipHeight","*",[5,"2.5"]],[5,"0.0001"]]]],[13,"distIntoPeel",[1,"cFold","-","t"]],[13,"peelFall",[1,[1,[1,[6,[7,"std","pow"],[[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"peelReach","distIntoPeel"]]],[5,"1.5"]]],"*",[6,[7,"std","step"],[[5,"0"],"distIntoPeel"]]],"*","shadowStrength"],"*","shadow"]],[13,"peelAlpha",[1,"peelFall","*",[5,"0.6"]]],[13,"foldBlend",[6,[7,"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",curlBright:"curlBright",spec:"spec",flatShade:"flatShade",peelAlpha:"peelAlpha",foldBlend:"foldBlend",showCurl:"showCurl"}]]]]]],externalNames:["d","std","HALF_PI","PagePeelGeom"]},externals:()=>({d:o,std:n,HALF_PI:kb,PagePeelGeom:oh})})&&e.f)({})),gq=b.fn([o.vec4f,o.vec4f,oh],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=t.xyz.mul(r.curlBright).add(__tsover_mul(r.spec,t.w)),i=o.vec4f(a,t.w),l=o.vec4f(s.xyz.mul(r.flatShade),s.w),c=o.vec4f(0,0,0,r.peelAlpha),d=n.mix(c,l,o.vec4f(r.foldBlend));return n.select(d,i,r.showCurl>.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"curlSample"},{type:"i",name:"flatSample"},{type:"i",name:"g"}],body:[0,[[13,"litRgb",[6,[7,[6,[7,[7,"curlSample","xyz"],"mul"],[[7,"g","curlBright"]]],"add"],[[1,[7,"g","spec"],"*",[7,"curlSample","w"]]]]],[13,"curlColor",[6,[7,"d","vec4f"],["litRgb",[7,"curlSample","w"]]]],[13,"flatColor",[6,[7,"d","vec4f"],[[6,[7,[7,"flatSample","xyz"],"mul"],[[7,"g","flatShade"]]],[7,"flatSample","w"]]]],[13,"peeledColor",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[7,"g","peelAlpha"]]]],[13,"base",[6,[7,"std","mix"],["peeledColor","flatColor",[6,[7,"d","vec4f"],[[7,"g","foldBlend"]
247]]]]],[10,[6,[7,"std","select"],["base","curlColor",[1,[7,"g","showCurl"],">",[5,"0.5"]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),ik={name:"PagePeel",category:"Distortions",description:"Curl the content up from a corner like a peeling page",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{corner:{default:"bottom-right",description:"Which corner the page peels from",compileTime:!0,ui:{type:"select",options:[{label:"Top Left",value:"top-left"},{label:"Top Right",value:"top-right"},{label:"Bottom Left",value:"bottom-left"},{label:"Bottom Right",value:"bottom-right"}],label:"Corner",group:"Effect"}},amount:{default:.2,description:"How far the peel has progressed across the page (0 = flat, 1 = fully peeled)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Amount",group:"Effect"}},radius:{default:.2,description:"Tightness of the curl (fraction of the page diagonal)",ui:{type:["range","map"],min:.02,max:.4,step:.01,label:"Curl Radius",group:"Effect"}},shading:{default:.55,description:"How much the underside of the curl is shaded for depth",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Shading",group:"Effect"}},highlight:{default:.4,description:"Strength of the specular sheen running along the curl",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Highlight",group:"Effect"}},highlightSoftness:{default:.2,description:"Width of the specular highlight band (low = tight gloss, high = broad satin)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Highlight Softness",group:"Effect"}},shadow:{default:1,description:"Strength of the contact shadow the curl casts on the page",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Shadow",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return me;let i=a(t),l=nk[hq(r.corner??"bottom-right")]??nk[3],c=T(yq,"pagePeelGeom",[s.uv,s.aspect,le(l.corner[0]),le(l.corner[1]),le(l.opposite[0]),le(l.opposite[1]),e.amount,e.radius,e.shading,e.highlight,e.highlightSoftness,e.shadow]);return T(Re,"unpremultiplyAlpha",[T(gq,"pagePeelCompose",[i.sample(c.member("curlUV")),i.sample(s.uv),c])])}};var xq=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=o.vec2f(__tsover_mul(t.x,s),t.y),d=__tsover_mul(r,6),u=c.mul(d).add(a),p=Lc(u).mul(i).mul(.0025),m=t.add(p),_=Lx(u,o.i32(6)),v=n.clamp(__tsover_add(1,__tsover_mul(__tsover_sub(_,.7),__tsover_mul(l,1.2))),0,1.5);return o.vec3f(m.x,m.y,v)}),{v:1,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,[7,"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,[7,"noise","curl22"],["grainUV"]],"mul"],["displacement"]],"mul"],[[5,"0.0025"]]]],[13,"displacedUV",[6,[7,"uv","add"],["disp"]]],[13,"grain",[6,[7,"noise","paper12"],["grainUV",[6,[7,"d","i32"],[[5,"6"]]]]]],[13,"brightness",[6,[7,"std","clamp"],[[1,[5,"1"],"+",[1,[1,"grain","-",[5,"0.7"]],"*",[1,"roughness","*",[5,"1.2"]]]],[5,"0"],[5,"1.5"]]]],[10,[6,[7,"d","vec3f"],[[7,"displacedUV","x"],[7,"displacedUV","y"],"brightness"]]]]],externalNames:["d","noise","std"]},externals:()=>({d:o,noise:mt,std:n})})&&e.f)({})),lk={name:"Paper",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Applies realistic paper grain and surface roughness to child content",requiresRTT:!0,requiresChild:!0,props:{roughness:{default:.3,description:"Surface roughness \u2014 higher values create more pronounced brightness variation",ui:{type:"range",min:0,max:1,step:.01,label:"Roughness",group:"Texture"}},grainScale:{default:1,description:"Scale of the paper grain \u2014 lower = coarser, higher = finer",ui:{type:"range",min:.1,max:3,step:.01,label:"Grain Scale",group:"Texture"}},displacement:{default:.15,description:"Surface micro-roughness \u2014 shifts pixels at grain scale like real paper fiber bumps",ui:{type:"range",min:0,max:1,step:.
24701,label:"Displacement",group:"Texture"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Texture"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return console.error("You must pass a child component into the Paper shader."),me;let a=r(t),i=T(xq,"paperSurface",[s.uv,s.aspect,e.grainScale,e.seed,e.displacement,e.roughness]),l=T(Re,"unpremultiplyAlpha",[a.sample(i.member("xy"))]),c=i.member("z");return de(l.member("rgb").mul(c),l.member("a"))}};var bq=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(xm(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"width"},{type:"i",name:"height"},{type:"i",name:"skew"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","parallelogramSdf"],[[7,"local","x"],[7,"local","y"],"width","height","skew"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),ck={name:"Parallelogram",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"width",as:"half-canvas-height"},height:{prop:"height",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Parallelogram with adjustable width, height and skew",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the parallelogram",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the parallelogram",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},width:{default:.32,description:"Half-width of the parallelogram",ui:{type:"range",min:.02,max:1,step:.01,label:"Width",group:"Shape"}},height:{default:.22,description:"Half-height of the parallelogram",ui:{type:"range",min:.02,max:1,step:.01,label:"Height",group:"Shape"}},skew:{default:.15,description:"Horizontal skew of the top edge",ui:{type:"range",min:-.4,max:.4,step:.01,label:"Skew",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(bq,"parallelogramShape",[t.center,t.width,t.height,t.skew,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var{buildAnalyticSdfFn:wq,createSdfDataTexture:Tq,SVG_SDF_SIZE:rh}=ft,{createAnalytic3dSdfSetup:Sq,createSvg3dSdfSetup:Aq,rotateVec3:ah,rotateVecCpu:Rb,is3dShapeType:Eq,isSvg3dShapeType:$b,isMobileGpuViewport:Mq,resolveShapeSubProp:Cq,SHAPE3D_DEFAULTS:Pq,SVG3D_DEFAULTS:dk,VOLUMETRIC_FIELD_FORMAT:uk}=ys,l_=.017453292519943295,kq=JSON.stringify({type:"circleSDF",radius:.35});function Rq(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}function pk(e){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return JSON.parse(e)}catch{return{}}return{}}var Kc=16e3,La=32,zb=La*La*La,ir=1,Ro=Mq()?768:1024,nh=6,Ub=13,Ib=3,vk="rgba16float",hk=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({colA:o.vec4f,colB:o.vec4f,dt:o.f32,time:o.f32,spread:o.f32,agitation:o.f32,dragMul:o.f32,gravX:o.f32,gravY:o.f32,halfDepth:o.f32,mouseX:o.f32,mouseY:o.f32,mouseForce:o.f32,mouseRadSq:o.f32,saRadius:o.f32,saSides:o.f32,saRounding:o.f32,saInnerRatio:o.f32,saRotation:o.f32,saHeight:o.f32,saOffset:o.f32,saAperture:o.f32,centerX:o.f32,centerYv:o.f32,scale:o.f32,rotC:o.f32,rotS:o.f32,aspect:o.f32,size:o.f32,exposure:o.f32,softness:o.f32,speedColorK:o.f32,omegaX:o.f32,omegaY:o.f32,omegaZ:o.f32,entrain:o.f32,gridOffX:o.f32,gridOffY:o.f32,gridOffZ:o.f32}),"SimParams"),us=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({pos:{storage:o.arrayOf(o.vec4f,Kc),access:"mutable"},vel:{storage:o.arrayOf(o.vec4f,Kc),access:"mutable"},dens:{storage:o.arrayOf(o.atomic(o.u32),zb),access:"mutable"},accumE:{storage:o.arrayOf(o.atomic(o.u32),Ro*Ro),access:"mutable"},accumS:{storage:o.arrayOf(o.atomic(o.u32),Ro*Ro),access:"mutable"},params:{uniform:hk},outTex:{storageTexture:o.textureStorage2d(vk,"write-only")}}),"simLayout"),Db=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({sdfSource:{texture:o.texture2d(o.f32)}}),"svgSdfLayout"),mk=b.fn([o.i32,o.i32,o.i32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=o.i32(La),i=n.clamp(t,0,__tsover_sub(a,1)),l=n.clamp(s,0,__tsover_sub(a,1)),c=n.clamp(r,0,__tsover_sub(a,1)),d=o.u32(__tsover_add(__tsover_mul(__tsover_add(__tsover_mul(c,a),l),a),i));return __tsover_mul(o.f32(n.atomicLoad(us.$.dens[d])),__tsover_div(1,64))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"},{type:"i",name:"cz"}],body:[0,[[13,"g",[6,[7,"d","i32"],["DGRID"]]],[13,"x",[6,[7,"std","clamp"],["cx",[5,"0"],[1,"g","-",[5,"1"]]]]],[13,"y",[6,[7,"std","clamp"],["cy",[5,"0"],[1,"g","-",[5,"1"]]]]],[13,"z",[6,[7,"std","clamp"],["cz",[5,"0"],[1,"g","-",[5,"1"]]]]],[13,"idx",[6,[7,"d","u32"],[[1,[1,[1,[1,"z","*","g"],"+","y"],"*","g"],"+","x"]]]],[10,[1,[6,[7,"d","f32"],[[6,[7,"std","atomicLoad"],[[8,[7,[7,"simLayout","$"],"dens"],"idx"]]]]],"*",[1,[5,"1"],"/",[5,"64"]]]]]],externalNames:["d","DGRID","std","simLayout"]},externals:()=>({d:o,DGRID:La,std:n,simLayout:us})})&&e.f)({})),ql=b.fn([o.vec3f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=us.$.params,r=o.f32(La),a=o.vec3f(__tsover_sub(__tsover_mul(__tsover_div(__tsover_add(__tsover_add(t.x,s.gridOffX),ir),__tsover_mul(2,ir)),r),.5),__tsover_sub(__tsover_mul(__tsover_div(__tsover_add(__tsover_add(t.y,s.gridOffY),ir),__tsover_mul(2,ir)),r),.5),__tsover_sub(__tsover_mul(__tsover_div(__tsover_add(__tsover_add(t.z,s.gridOffZ),ir),__tsover_mul(2,ir)),r),.5)),i=n.clamp(n.floor(a),o.vec3f(0,0,0),o.vec3f(__tsover_sub(r,2),__tsover_sub(r,2),__tsover_sub(r,2))),l=n.clamp(a.sub(i),o.vec3f(0,0,0),o.vec3f(1,1,1)),c=o.i32(i.x),d=o.i32(i.y),u=o.i32(i.z),p=o.f32(0);for(let m=0;m<2;m++)for(let _=0;_<2;_++)for(let v=0;v<2;v++){let h=__tsover_mul(__tsover_mul(n.mix(__tsover_sub(1,l.x),l.x,o.f32(v)),n.mix(__tsover_sub(1,l.y),l.y,o.f32(_))),n.mix(__tsover_sub(1,l.z),l.z,o.f32(m)));p=__tsover_add(p,__tsover_mul(mk(__tsover_add(c,v),__tsover_add(d,_),__tsover_add(u,m)),h))}return p}),{v:1,name:void 0,ast:{params:[{type:"i",name:"pos"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"g",[6,[7,"d","f32"],["DGRID"]]],[13,"c",[6,[7,"d","vec3f"],[[1,[1,[1,[1,[1,[7,"pos","x"],"+",[7,"prm","gridOffX"]],"+","DOMAIN"],"/",[1,[5,"2"],"*","DOMAIN"]],"*","g"],"-",[5,"0.5"]],[1,[1,[1,[1,[1,[7,"pos","y"],"+",[7,"prm","gridOffY"]],"+","DOMAIN"],"/",[1,[5,"2"],"*","DOMAIN"]],"*","g"],"-",[5,"0.5"]],[1,[1,[1,[1,[1,[7,"pos","z"],"+",[7,"prm","gridOffZ"]],"+","DOMAIN"],"/",[1,[5,"2"],"*","DOMAIN"]],"*","g"],"-",[5,"0.5"]]]]],[13,"base",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["c"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[1,"g","-",[5,"2"]],[1,"g","-",[5,"2"]],[1,"g","-",[5,"2"]]]]]]],[13,"f",[6,[7,"std","clamp"],[[6,[7,"c","sub"],["base"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]],[13,"bi",[6,[7,"d","i32"],[[7,"base","x"]]]],[13,"bj",[6,[7,"d","i32"],[[7,"base","y"]]]],[13,"bk",[6,[7,"d","i32"],[[7,"base","z"]]]],[12,"acc",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"dz",[5,"0"]],[1,"dz","<",[5,"2"]],[102,"++","dz"],[0,[[14,[12,"dy",[5,"0"]],[1,"dy","<",[5,"2"]],[102,"++","dy"],[0,[[14,[12,"dx",[5,"0"]],[1,"dx","<",[5,"2"]],[102,"++","dx"],[0,[[13,"w",[1,[1,[6,[7,"std","mix"],[[1,[5,"1"],"-",[7,"f","x"]],[7,"f","x"],[6,[7,"d","f32"],["dx"]]]],"*",[6,[7,"std","mix"],[[1,[5,"1"],"-",[7,"f","y"]],[7,"f","y"],[6,[7,"d","f32"],["dy"]]]]],"*",[6,[7,"std","mix"],[[1,[5,"1"],"-",[7,"f","z"]],[7,"f","z"],[6,[7,"d","f32"],["dz"]]]]]],[2,"acc","
247=",[1,"acc","+",[1,[6,"densAt",[[1,"bi","+","dx"],[1,"bj","+","dy"],[1,"bk","+","dz"]]],"*","w"]]]]]]]]]]]],[10,"acc"]]],externalNames:["simLayout","d","DGRID","DOMAIN","std","densAt"]},externals:()=>({simLayout:us,d:o,DGRID:La,DOMAIN:ir,std:n,densAt:mk})})&&e.f)({})),ih=b.fn([o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.max(t,0),a=n.max(s,0);return __tsover_add(n.min(n.max(t,s),0),n.sqrt(__tsover_add(__tsover_mul(r,r),__tsover_mul(a,a))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"d2"},{type:"i",name:"wz"}],body:[0,[[13,"ox",[6,[7,"std","max"],["d2",[5,"0"]]]],[13,"oz",[6,[7,"std","max"],["wz",[5,"0"]]]],[10,[1,[6,[7,"std","min"],[[6,[7,"std","max"],["d2","wz"]],[5,"0"]]],"+",[6,[7,"std","sqrt"],[[1,[1,"ox","*","ox"],"+",[1,"oz","*","oz"]]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),$q=b.fn([o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=o.f32(t),r=Kd(o.vec3f(__tsover_add(__tsover_mul(s,1.6180339),.71),__tsover_add(__tsover_mul(s,2.7182818),4.17),__tsover_add(__tsover_mul(s,3.1415926),9.03))),a=n.normalize(r.sub(o.vec3f(.5,.5,.5)).add(o.vec3f(1e-4,2e-4,3e-4))),i=__tsover_mul(n.pow(V1(__tsover_add(__tsover_mul(s,2.2360679),1.7)),o.f32(.3333)),.55),l=V1(__tsover_add(__tsover_mul(s,1.7320508),.37));us.$.pos[t]=o.vec4f(__tsover_mul(a.x,i),__tsover_mul(a.y,i),__tsover_mul(__tsover_mul(a.z,i),.8),l),us.$.vel[t]=o.vec4f(0,0,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[13,"fi",[6,[7,"d","f32"],["i"]]],[13,"h3",[6,[7,"noise","hash33"],[[6,[7,"d","vec3f"],[[1,[1,"fi","*",[5,"1.6180339"]],"+",[5,"0.71"]],[1,[1,"fi","*",[5,"2.7182818"]],"+",[5,"4.17"]],[1,[1,"fi","*",[5,"3.1415926"]],"+",[5,"9.03"]]]]]]],[13,"dir",[6,[7,"std","normalize"],[[6,[7,[6,[7,"h3","sub"],[[6,[7,"d","vec3f"],[[5,"0.5"],[5,"0.5"],[5,"0.5"]]]]],"add"],[[6,[7,"d","vec3f"],[[5,"0.0001"],[5,"0.0002"],[5,"0.0003"]]]]]]]],[13,"rad",[1,[6,[7,"std","pow"],[[6,[7,"noise","hash11"],[[1,[1,"fi","*",[5,"2.2360679"]],"+",[5,"1.7"]]]],[6,[7,"d","f32"],[[5,"0.3333"]]]]],"*",[5,"0.55"]]],[13,"seed",[6,[7,"noise","hash11"],[[1,[1,"fi","*",[5,"1.7320508"]],"+",[5,"0.37"]]]]],[2,[8,[7,[7,"simLayout","$"],"pos"],"i"],"=",[6,[7,"d","vec4f"],[[1,[7,"dir","x"],"*","rad"],[1,[7,"dir","y"],"*","rad"],[1,[1,[7,"dir","z"],"*","rad"],"*",[5,"0.8"]],"seed"]]],[2,[8,[7,[7,"simLayout","$"],"vel"],"i"],"=",[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]]],externalNames:["d","noise","std","simLayout"]},externals:()=>({d:o,noise:mt,std:n,simLayout:us})})&&e.f)({})).$name("particlesInit"),_k=b.fn([o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";n.atomicStore(us.$.dens[t],o.u32(0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[6,[7,"std","atomicStore"],[[8,[7,[7,"simLayout","$"],"dens"],"i"],[6,[7,"d","u32"],[[5,"0"]]]]]]],externalNames:["std","simLayout","d"]},externals:()=>({std:n,simLayout:us,d:o})})&&e.f)({})).$name("particlesClearDensity"),Uq=b.fn([o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=us.$.params,r=us.$.pos[t],a=o.f32(La),i=o.vec3f(__tsover_sub(__tsover_mul(__tsover_div(__tsover_add(__tsover_add(r.x,s.gridOffX),ir),__tsover_mul(2,ir)),a),.5),__tsover_sub(__tsover_mul(__tsover_div(__tsover_add(__tsover_add(r.y,s.gridOffY),ir),__tsover_mul(2,ir)),a),.5),__tsover_sub(__tsover_mul(__tsover_div(__tsover_add(__tsover_add(r.z,s.gridOffZ),ir),__tsover_mul(2,ir)),a),.5)),l=n.clamp(n.floor(i),o.vec3f(0,0,0),o.vec3f(__tsover_sub(a,2),__tsover_sub(a,2),__tsover_sub(a,2))),c=n.clamp(i.sub(l),o.vec3f(0,0,0),o.vec3f(1,1,1)),d=o.i32(l.x),u=o.i32(l.y),p=o.i32(l.z),m=o.i32(La);for(let _=0;_<2;_++)for(let v=0;v<2;v++)for(let h=0;h<2;h++){let y=n.mix(__tsover_sub(1,c.x),c.x,o.f32(h)),x=n.mix(__tsover_sub(1,c.y),c.y,o.f32(v)),g=n.mix(__tsover_sub(1,c.z),c.z,o.f32(_)),w=__tsover_mul(__tsover_mul(y,x),g),f=o.u32(__tsover_add(__tsover_mul(__tsover_add(__tsover_mul(__tsover_add(p,_),m),__tsover_add(u,v)),m),__tsover_add(d,h)));n.atomicAdd(us.$.dens[f],o.u32(__tsover_add(__tsover_mul(w,64),.5)))}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"pos",[8,[7,[7,"simLayout","$"],"pos"],"i"]],[13,"g",[6,[7,"d","f32"],["DGRID"]]],[13,"c",[6,[7,"d","vec3f"],[[1,[1,[1,[1,[1,[7,"pos","x"],"+",[7,"prm","gridOffX"]],"+","DOMAIN"],"/",[1,[5,"2"],"*","DOMAIN"]],"*","g"],"-",[5,"0.5"]],[1,[1,[1,[1,[1,[7,"pos","y"],"+",[7,"prm","gridOffY"]],"+","DOMAIN"],"/",[1,[5,"2"],"*","DOMAIN"]],"*","g"],"-",[5,"0.5"]],[1,[1,[1,[1,[1,[7,"pos","z"],"+",[7,"prm","gridOffZ"]],"+","DOMAIN"],"/",[1,[5,"2"],"*","DOMAIN"]],"*","g"],"-",[5,"0.5"]]]]],[13,"base",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["c"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[1,"g","-",[5,"2"]],[1,"g","-",[5,"2"]],[1,"g","-",[5,"2"]]]]]]],[13,"f",[6,[7,"std","clamp"],[[6,[7,"c","sub"],["base"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]],[13,"bi",[6,[7,"d","i32"],[[7,"base","x"]]]],[13,"bj",[6,[7,"d","i32"],[[7,"base","y"]]]],[13,"bk",[6,[7,"d","i32"],[[7,"base","z"]]]],[13,"gi",[6,[7,"d","i32"],["DGRID"]]],[14,[12,"dz",[5,"0"]],[1,"dz","<",[5,"2"]],[102,"++","dz"],[0,[[14,[12,"dy",[5,"0"]],[1,"dy","<",[5,"2"]],[102,"++","dy"],[0,[[14,[12,"dx",[5,"0"]],[1,"dx","<",[5,"2"]],[102,"++","dx"],[0,[[13,"wx",[6,[7,"std","mix"],[[1,[5,"1"],"-",[7,"f","x"]],[7,"f","x"],[6,[7,"d","f32"],["dx"]]]]],[13,"wy",[6,[7,"std","mix"],[[1,[5,"1"],"-",[7,"f","y"]],[7,"f","y"],[6,[7,"d","f32"],["dy"]]]]],[13,"wz",[6,[7,"std","mix"],[[1,[5,"1"],"-",[7,"f","z"]],[7,"f","z"],[6,[7,"d","f32"],["dz"]]]]],[13,"w",[1,[1,"wx","*","wy"],"*","wz"]],[13,"idx",[6,[7,"d","u32"],[[1,[1,[1,[1,[1,"bk","+","dz"],"*","gi"],"+",[1,"bj","+","dy"]],"*","gi"],"+",[1,"bi","+","dx"]]]]],[6,[7,"std","atomicAdd"],[[8,[7,[7,"simLayout","$"],"dens"],"idx"],[6,[7,"d","u32"],[[1,[1,"w","*",[5,"64"]],"+",[5,"0.5"]]]]]]]]]]]]]]]]],externalNames:["simLayout","d","DGRID","DOMAIN","std"]},externals:()=>({simLayout:us,d:o,DGRID:La,DOMAIN:ir,std:n})})&&e.f)({})).$name("particlesDensity"),fk=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(Ro)),t);n.atomicStore(us.$.accumE[r],o.u32(0)),n.atomicStore(us.$.accumS[r],o.u32(0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"}
247],body:[0,[[13,"idx",[1,[1,"y","*",[6,[7,"d","u32"],["OUT_RES"]]],"+","x"]],[6,[7,"std","atomicStore"],[[8,[7,[7,"simLayout","$"],"accumE"],"idx"],[6,[7,"d","u32"],[[5,"0"]]]]],[6,[7,"std","atomicStore"],[[8,[7,[7,"simLayout","$"],"accumS"],"idx"],[6,[7,"d","u32"],[[5,"0"]]]]]]],externalNames:["d","OUT_RES","std","simLayout"]},externals:()=>({d:o,OUT_RES:Ro,std:n,simLayout:us})})&&e.f)({})).$name("particlesClearAccum"),Dq=b.fn([o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=us.$.params,r=us.$.pos[t],a=us.$.vel[t],i=__tsover_div(1,n.clamp(__tsover_sub(1,__tsover_mul(r.z,.35)),.45,2)),l=__tsover_mul(r.x,i),c=__tsover_mul(__tsover_mul(r.y,i),-1),d=__tsover_sub(__tsover_mul(l,s.rotC),__tsover_mul(c,s.rotS)),u=__tsover_add(__tsover_mul(c,s.rotC),__tsover_mul(l,s.rotS)),p=__tsover_add(s.centerX,__tsover_div(__tsover_mul(d,s.scale),s.aspect)),m=__tsover_add(s.centerYv,__tsover_mul(u,s.scale)),_=o.f32(Ro),v=__tsover_mul(p,_),h=__tsover_mul(m,_),y=n.clamp(__tsover_mul(__tsover_mul(__tsover_mul(s.size,__tsover_add(.65,__tsover_mul(.7,r.w))),i),s.scale),.6,o.f32(nh)),x=__tsover_mul(__tsover_mul(__tsover_add(.7,__tsover_mul(.6,r.w)),i),i),g=n.clamp(__tsover_mul(a.w,s.speedColorK),0,1),w=o.i32(n.floor(v)),f=o.i32(n.floor(h));for(let A=0;A<Ub;A++)for(let E=0;E<Ub;E++){let P=__tsover_sub(__tsover_add(w,E),nh),C=__tsover_sub(__tsover_add(f,A),nh);if(P>=0&&P<Ro&&C>=0&&C<Ro){let $=__tsover_sub(__tsover_add(o.f32(P),.5),v),U=__tsover_sub(__tsover_add(o.f32(C),.5),h),k=__tsover_div(__tsover_add(__tsover_mul($,$),__tsover_mul(U,U)),n.max(__tsover_mul(y,y),.01));if(k<2.6){let R=n.sqrt(k),D=__tsover_sub(1,n.smoothstep(.72,1,R)),M=n.exp(__tsover_mul(k,-2.5)),z=n.mix(D,M,s.softness),L=o.u32(__tsover_mul(__tsover_mul(z,x),256));if(L>o.u32(0)){let B=o.u32(__tsover_add(__tsover_mul(C,Ro),P));n.atomicAdd(us.$.accumE[B],L),n.atomicAdd(us.$.accumS[B],o.u32(__tsover_mul(__tsover_mul(__tsover_mul(z,x),g),256)))}}}}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"pos",[8,[7,[7,"simLayout","$"],"pos"],"i"]],[13,"vel",[8,[7,[7,"simLayout","$"],"vel"],"i"]],[13,"persp",[1,[5,"1"],"/",[6,[7,"std","clamp"],[[1,[5,"1"],"-",[1,[7,"pos","z"],"*",[5,"0.35"]]],[5,"0.45"],[5,"2"]]]]],[13,"xs",[1,[7,"pos","x"],"*","persp"]],[13,"ys",[1,[1,[7,"pos","y"],"*","persp"],"*",[4,"-",[5,"1"]]]],[13,"rx",[1,[1,"xs","*",[7,"prm","rotC"]],"-",[1,"ys","*",[7,"prm","rotS"]]]],[13,"ry",[1,[1,"ys","*",[7,"prm","rotC"]],"+",[1,"xs","*",[7,"prm","rotS"]]]],[13,"u",[1,[7,"prm","centerX"],"+",[1,[1,"rx","*",[7,"prm","scale"]],"/",[7,"prm","aspect"]]]],[13,"v",[1,[7,"prm","centerYv"],"+",[1,"ry","*",[7,"prm","scale"]]]],[13,"outF",[6,[7,"d","f32"],["OUT_RES"]]],[13,"tx",[1,"u","*","outF"]],[13,"ty",[1,"v","*","outF"]],[13,"size",[6,[7,"std","clamp"],[[1,[1,[1,[7,"prm","size"],"*",[1,[5,"0.65"],"+",[1,[5,"0.7"],"*",[7,"pos","w"]]]],"*","persp"],"*",[7,"prm","scale"]],[5,"0.6"],[6,[7,"d","f32"],["SPLAT_R"]]]]],[13,"bright",[1,[1,[1,[5,"0.7"],"+",[1,[5,"0.6"],"*",[7,"pos","w"]]],"*","persp"],"*","persp"]],[13,"speedNorm",[6,[7,"std","clamp"],[[1,[7,"vel","w"],"*",[7,"prm","speedColorK"]],[5,"0"],[5,"1"]]]],[13,"cxi",[6,[7,"d","i32"],[[6,[7,"std","floor"],["tx"]]]]],[13,"cyi",[6,[7,"d","i32"],[[6,[7,"std","floor"],["ty"]]]]],[14,[12,"ky",[5,"0"]],[1,"ky","<","SPLAT_WIN"],[102,"++","ky"],[0,[[14,[12,"kx",[5,"0"]],[1,"kx","<","SPLAT_WIN"],[102,"++","kx"],[0,[[13,"px",[1,[1,"cxi","+","kx"],"-","SPLAT_R"]],[13,"py",[1,[1,"cyi","+","ky"],"-","SPLAT_R"]],[11,[3,[3,[3,[1,"px",">=",[5,"0"]],"&&",[1,"px","<","OUT_RES"]],"&&",[1,"py",">=",[5,"0"]]],"&&",[1,"py","<","OUT_RES"]],[0,[[13,"ddx",[1,[1,[6,[7,"d","f32"],["px"]],"+",[5,"0.5"]],"-","tx"]],[13,"ddy",[1,[1,[6,[7,"d","f32"],["py"]],"+",[5,"0.5"]],"-","ty"]],[13,"q",[1,[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]],"/",[6,[7,"std","max"],[[1,"size","*","size"],[5,"0.01"]]]]],[11,[1,"q","<",[5,"2.6"]],[0,[[13,"nd",[6,[7,"std","sqrt"],["q"]]],[13,"wHard",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.72"],[5,"1"],"nd"]]]],[13,"wSoft",[6,[7,"std","exp"],[[1,"q","*",[4,"-",[5,"2.5"]]]]]],[13,"w",[6,[7,"std","mix"],["wHard","wSoft",[7,"prm","softness"]]]],[13,"e",[6,[7,"d","u32"],[[1,[1,"w","*","bright"],"*",[5,"256"]]]]],[11,[1,"e",">",[6,[7,"d","u32"],[[5,"0"]]]],[0,[[13,"idx",[6,[7,"d","u32"],[[1,[1,"py","*","OUT_RES"],"+","px"]]]],[6,[7,"std","atomicAdd"],[[8,[7,[7,"simLayout","$"],"accumE"],"idx"],"e"]],[6,[7,"std","atomicAdd"],[[8,[7,[7,"simLayout","$"],"accumS"],"idx"],[6,[7,"d","u32"],[[1,[1,[1,"w","*","bright"],"*","speedNorm"],"*",[5,"256"]]]]]]]]]]]]]]]]]]]]]]],externalNames:["simLayout","std","d","OUT_RES","SPLAT_R","SPLAT_WIN"]},externals:()=>({simLayout:us,std:n,d:o,OUT_RES:Ro,SPLAT_R:nh,SPLAT_WIN:Ub})})&&e.f)({})).$name("particlesSplat");function zq(e){let t=Ye[e]??Be;return b.fn([o.u32,o.u32])((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,a)=>{"use gpu";let i=us.$.params,l=__tsover_add(__tsover_mul(a,o.u32(Ro)),r),c=o.f32(n.atomicLoad(us.$.accumE[l])),d=o.f32(n.atomicLoad(us.$.accumS[l])),u=__tsover_mul(__tsover_mul(c,__tsover_div(1,256)),i.exposure),p=__tsover_div(d,n.max(c,1)),m=t(i.colA,i.colB,n.clamp(p,0,1)),_=__tsover_sub(1,n.exp(__tsover_mul(u,-1.6)));n.textureStore(us.$.outTex,o.vec2u(r,a),o.vec4f(m.x,m.y,m.z,__tsover_mul(_,m.w)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"idx",[1,[1,"
247y","*",[6,[7,"d","u32"],["OUT_RES"]]],"+","x"]],[13,"eRaw",[6,[7,"d","f32"],[[6,[7,"std","atomicLoad"],[[8,[7,[7,"simLayout","$"],"accumE"],"idx"]]]]]],[13,"sRaw",[6,[7,"d","f32"],[[6,[7,"std","atomicLoad"],[[8,[7,[7,"simLayout","$"],"accumS"],"idx"]]]]]],[13,"energy",[1,[1,"eRaw","*",[1,[5,"1"],"/",[5,"256"]]],"*",[7,"prm","exposure"]]],[13,"speedAvg",[1,"sRaw","/",[6,[7,"std","max"],["eRaw",[5,"1"]]]]],[13,"col",[6,"mixFn",[[7,"prm","colA"],[7,"prm","colB"],[6,[7,"std","clamp"],["speedAvg",[5,"0"],[5,"1"]]]]]],[13,"alpha",[1,[5,"1"],"-",[6,[7,"std","exp"],[[1,"energy","*",[4,"-",[5,"1.6"]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"simLayout","$"],"outTex"],[6,[7,"d","vec2u"],["x","y"]],[6,[7,"d","vec4f"],[[7,"col","x"],[7,"col","y"],[7,"col","z"],[1,"alpha","*",[7,"col","w"]]]]]]]],externalNames:["simLayout","d","OUT_RES","std","mixFn"]},externals:()=>({simLayout:us,d:o,OUT_RES:Ro,std:n,mixFn:t})})&&s.f)({})).$name("particlesResolve")}function Iq(e){return b.fn([o.u32])((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=(s=>{"use gpu";let r=us.$.params,a=us.$.pos[s],i=us.$.vel[s],l=o.vec3f(a.x,a.y,a.z),c=r.dt,d=e(l),u=o.f32(.02),p=__tsover_sub(e(o.vec3f(__tsover_add(l.x,u),l.y,l.z)),e(o.vec3f(__tsover_sub(l.x,u),l.y,l.z))),m=__tsover_sub(e(o.vec3f(l.x,__tsover_add(l.y,u),l.z)),e(o.vec3f(l.x,__tsover_sub(l.y,u),l.z))),_=__tsover_sub(e(o.vec3f(l.x,l.y,__tsover_add(l.z,u))),e(o.vec3f(l.x,l.y,__tsover_sub(l.z,u)))),v=o.vec3f(p,m,_),h=v.div(n.max(n.length(v),1e-4)),y=o.f32(__tsover_div(ir,La)),x=ql(l),g=__tsover_sub(ql(o.vec3f(__tsover_add(l.x,y),l.y,l.z)),ql(o.vec3f(__tsover_sub(l.x,y),l.y,l.z))),w=__tsover_sub(ql(o.vec3f(l.x,__tsover_add(l.y,y),l.z)),ql(o.vec3f(l.x,__tsover_sub(l.y,y),l.z))),f=__tsover_sub(ql(o.vec3f(l.x,l.y,__tsover_add(l.z,y))),ql(o.vec3f(l.x,l.y,__tsover_sub(l.z,y)))),A=__tsover_div(__tsover_mul(r.spread,4.4),n.max(__tsover_add(__tsover_mul(x,2),6),6)),E=o.vec3f(__tsover_mul(__tsover_mul(g,-1),A),__tsover_mul(__tsover_mul(w,-1),A),__tsover_mul(__tsover_mul(f,-1),A)),P=n.max(d,0),C=__tsover_add(__tsover_mul(n.smoothstep(-.1,.01,d),1.1),__tsover_mul(P,22));E=E.sub(h.mul(C));let $=n.length(l),U=__tsover_mul(n.smoothstep(__tsover_mul(ir,.85),__tsover_mul(ir,1.1),$),9);E=E.sub(l.mul(__tsover_div(U,n.max($,1e-4))));let k=__tsover_mul(n.smoothstep(.12,.45,d),5);E=E.sub(l.mul(__tsover_div(k,n.max($,1e-4))));let R=o.vec3f(i.x,i.y,i.z),D=n.cross(o.vec3f(r.omegaX,r.omegaY,r.omegaZ),l),M=__tsover_sub(1,n.smoothstep(-.05,.05,d));E=E.add(D.sub(R).mul(__tsover_mul(r.entrain,M)));let z=__tsover_sub(l.x,r.mouseX),L=__tsover_sub(l.y,r.mouseY),B=n.sqrt(__tsover_add(__tsover_mul(z,z),__tsover_mul(L,L))),N=__tsover_mul(n.exp(__tsover_mul(__tsover_div(__tsover_mul(B,B),n.max(r.mouseRadSq,1e-5)),-1)),r.mouseForce);E=E.add(o.vec3f(__tsover_mul(__tsover_div(z,n.max(B,1e-4)),N),__tsover_mul(__tsover_div(L,n.max(B,1e-4)),N),0)),E=E.add(o.vec3f(r.gravX,r.gravY,0));let G=Kd(l.mul(193).add(o.vec3f(__tsover_mul(r.time,31.7),__tsover_mul(r.time,27.3),__tsover_mul(a.w,997)))).sub(o.vec3f(.5,.5,.5));E=E.add(G.mul(__tsover_mul(r.agitation,5)));let I=R.add(E.mul(c)).mul(r.dragMul),X=n.length(I);I=I.mul(__tsover_div(n.min(X,o.f32(Ib)),n.max(X,1e-5))),l=n.clamp(l.add(I.mul(c)),o.vec3f(-1.9,-1.9,-1.9),o.vec3f(1.9,1.9,1.9)),us.$.pos[s]=o.vec4f(l.x,l.y,l.z,a.w),us.$.vel[s]=o.vec4f(I.x,I.y,I.z,n.length(I))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"p4",[8,[7,[7,"simLayout","$"],"pos"],"i"]],[13,"v4",[8,[7,[7,"simLayout","$"],"vel"],"i"]],[12,"pos",[6,[7,"d","vec3f"],[[7,"p4","x"],[7,"p4","y"],[7,"p4","z"]]]],[13,"dt",[7,"prm","dt"]],[13,"sd",[6,"evalSdf",["pos"]]],[13,"e",[6,[7,"d","f32"],[[5,"0.02"]]]],[13,"gx",[1,[6,"evalSdf",[[6,[7,"d","vec3f"],[[1,[7,"pos","x"],"+","e"],[7,"pos","y"],[7,"pos","z"]]]]],"-",[6,"evalSdf",[[6,[7,"d","vec3f"],[[1,[7,"pos","x"],"-","e"],[7,"pos","y"],[7,"pos","z"]]]]]]],[13,"gy",[1,[6,"evalSdf",[[6,[7,"d","vec3f"],[[7,"pos","x"],[1,[7,"pos","y"],"+","e"],[7,"pos","z"]]]]],"-",[6,"evalSdf",[[6,[7,"d","vec3f"],[[7,"pos","x"],[1,[7,"pos","y"],"-","e"],[7,"pos","z"]]]]]]],[13,"gz",[1,[6,"evalSdf",[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,[7,"pos","z"],"+","e"]]]]],"-",[6,"evalSdf",[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,[7,"pos","z"],"-","e"]]]]]]],[13,"gv",[6,[7,"d","vec3f"],["gx","gy","gz"]]],[13,"gn",[6,[7,"gv","div"],[[6,[7,"std","max"],[[6,[7,"std","length"],["gv"]],[5,"0.0001"]]]]]],[13,"he",[6,[7,"d","f32"],[[1,"DOMAIN","/","DGRID"]]]],[13,"c0",[6,"densTrilinear",["pos"]]],[13,"dgx",[1,[6,"densTrilinear",[[6,[7,"d","vec3f"],[[1,[7,"pos","x"],"+","he"],[7,"pos","y"],[7,"pos","z"]]]]],"-",[6,"densTrilinear",[[6,[7,"d","vec3f"],[[1,[7,"pos","x"],"-","he"],[7,"pos","y"],[7,"pos","z"]]]]]]],[13,"dgy",[1,[6,"densTrilinear",[[6,[7,"d","vec3f"],[[7,"pos","x"],[1,[7,"pos","y"],"+","he"],[7,"pos","z"]]]]],"-",[6,"densTrilinear",[[6,[7,"d","vec3f"],[[7,"pos","x"],[1,[7,"pos","y"],"-","he"],[7,"pos","z"]]]]]]],[13,"dgz",[1,[6,"densTrilinear",[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,[7,"pos","z"],"+","he"]]]]],"-",[6,"densTrilinear",[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,[7,"pos","z"],"-","he"]]]]]]],[13,"pressNorm",[1,[1,[7,"prm","spread"],"*",[5,"4.4"]],"/",[6,[7,"std","max"],[[1,[1,"c0","*",[5,"2"]],"+",[5,"6"]],[5,"6"]]]]],[12,"F",[6,[7,"d","vec3f"],[[1,[1,"dgx","*",[4,"-",[5,"1"]]],"*","pressNorm"],[1,[1,"dgy","*",[4,"-",[5,"1"]]],"*","pressNorm"],[1,[1,"dgz","*",[4,"-",[5,"1"]]],"*","pressNorm"]]]],[13,"out",[6,[7,"std","max"],["sd",[5,"0"]]]],[13,"wall",[1,[1,[6,[7,"std","smoothstep"],[[4,"-",[5,"0.1"]],[5,"0.01"],"sd"]],"*",[5,"1.1"]],"+",[1,"out","*",[5,"22"]]]],[2,"F","=",[6,[7,"F","
247sub"],[[6,[7,"gn","mul"],["wall"]]]]],[13,"rl",[6,[7,"std","length"],["pos"]]],[13,"recall",[1,[6,[7,"std","smoothstep"],[[1,"DOMAIN","*",[5,"0.85"]],[1,"DOMAIN","*",[5,"1.1"]],"rl"]],"*",[5,"9"]]],[2,"F","=",[6,[7,"F","sub"],[[6,[7,"pos","mul"],[[1,"recall","/",[6,[7,"std","max"],["rl",[5,"0.0001"]]]]]]]]],[13,"homing",[1,[6,[7,"std","smoothstep"],[[5,"0.12"],[5,"0.45"],"sd"]],"*",[5,"5"]]],[2,"F","=",[6,[7,"F","sub"],[[6,[7,"pos","mul"],[[1,"homing","/",[6,[7,"std","max"],["rl",[5,"0.0001"]]]]]]]]],[13,"vPrev",[6,[7,"d","vec3f"],[[7,"v4","x"],[7,"v4","y"],[7,"v4","z"]]]],[13,"featureVel",[6,[7,"std","cross"],[[6,[7,"d","vec3f"],[[7,"prm","omegaX"],[7,"prm","omegaY"],[7,"prm","omegaZ"]]],"pos"]]],[13,"insideM",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[4,"-",[5,"0.05"]],[5,"0.05"],"sd"]]]],[2,"F","=",[6,[7,"F","add"],[[6,[7,[6,[7,"featureVel","sub"],["vPrev"]],"mul"],[[1,[7,"prm","entrain"],"*","insideM"]]]]]],[13,"dmx",[1,[7,"pos","x"],"-",[7,"prm","mouseX"]]],[13,"dmy",[1,[7,"pos","y"],"-",[7,"prm","mouseY"]]],[13,"dl",[6,[7,"std","sqrt"],[[1,[1,"dmx","*","dmx"],"+",[1,"dmy","*","dmy"]]]]],[13,"mg",[1,[6,[7,"std","exp"],[[1,[1,[1,"dl","*","dl"],"/",[6,[7,"std","max"],[[7,"prm","mouseRadSq"],[5,"0.00001"]]]],"*",[4,"-",[5,"1"]]]]],"*",[7,"prm","mouseForce"]]],[2,"F","=",[6,[7,"F","add"],[[6,[7,"d","vec3f"],[[1,[1,"dmx","/",[6,[7,"std","max"],["dl",[5,"0.0001"]]]],"*","mg"],[1,[1,"dmy","/",[6,[7,"std","max"],["dl",[5,"0.0001"]]]],"*","mg"],[5,"0"]]]]]],[2,"F","=",[6,[7,"F","add"],[[6,[7,"d","vec3f"],[[7,"prm","gravX"],[7,"prm","gravY"],[5,"0"]]]]]],[13,"rnd",[6,[7,[6,[7,"noise","hash33"],[[6,[7,[6,[7,"pos","mul"],[[5,"193"]]],"add"],[[6,[7,"d","vec3f"],[[1,[7,"prm","time"],"*",[5,"31.7"]],[1,[7,"prm","time"],"*",[5,"27.3"]],[1,[7,"p4","w"],"*",[5,"997"]]]]]]]],"sub"],[[6,[7,"d","vec3f"],[[5,"0.5"],[5,"0.5"],[5,"0.5"]]]]]],[2,"F","=",[6,[7,"F","add"],[[6,[7,"rnd","mul"],[[1,[7,"prm","agitation"],"*",[5,"5"]]]]]]],[12,"v3",[6,[7,[6,[7,"vPrev","add"],[[6,[7,"F","mul"],["dt"]]]],"mul"],[[7,"prm","dragMul"]]]],[13,"spd",[6,[7,"std","length"],["v3"]]],[2,"v3","=",[6,[7,"v3","mul"],[[1,[6,[7,"std","min"],["spd",[6,[7,"d","f32"],["MAX_SPEED"]]]],"/",[6,[7,"std","max"],["spd",[5,"0.00001"]]]]]]],[2,"pos","=",[6,[7,"std","clamp"],[[6,[7,"pos","add"],[[6,[7,"v3","mul"],["dt"]]]],[6,[7,"d","vec3f"],[[4,"-",[5,"1.9"]],[4,"-",[5,"1.9"]],[4,"-",[5,"1.9"]]]],[6,[7,"d","vec3f"],[[5,"1.9"],[5,"1.9"],[5,"1.9"]]]]]],[2,[8,[7,[7,"simLayout","$"],"pos"],"i"],"=",[6,[7,"d","vec4f"],[[7,"pos","x"],[7,"pos","y"],[7,"pos","z"],[7,"p4","w"]]]],[2,[8,[7,[7,"simLayout","$"],"vel"],"i"],"=",[6,[7,"d","vec4f"],[[7,"v3","x"],[7,"v3","y"],[7,"v3","z"],[6,[7,"std","length"],["v3"]]]]]]],externalNames:["simLayout","d","evalSdf","std","DOMAIN","DGRID","densTrilinear","noise","MAX_SPEED"]},externals:()=>({simLayout:us,d:o,evalSdf:e,std:n,DOMAIN:ir,DGRID:La,densTrilinear:ql,noise:mt,MAX_SPEED:Ib})})&&t.f)({})).$name("particlesUpdate")}var yk={name:"Particles",boundingBoxDeclaration:gs,category:"Shape Effects",description:"A swarm of simulated particles that settles into the shape, filling it evenly \u2014 flat, SVG or true 3D volumes \u2014 scattering from the cursor (or chasing it), tumbling when the shape moves, and always drifting back home",requiresRTT:!1,requiresChild:!1,usesPointer:!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:we,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:"#8ec5ff",transform:O,description:"Color of particles at rest",ui:{type:"color",label:"Rest Color",group:"Colors"}},colorB:{default:"#ff7ad9",transform:O,description:"Color particles shift toward when agitated \u2014 scattering from the cursor or catching up to a moving shape",ui:{type:"color",label:"Excited Color",group:"Colors"}},count:{default:4e3,description:"Number of simulated particles",ui:{type:"range",min:1e3,max:Kc,step:1e3,label:"Count",group:"Particles"}},size:{default:1.5,description:"Base particle size (each particle also varies slightly, and grows as it drifts toward the viewer)",ui:{type:"range",min:.6,max:6,step:.1,label:"Size",group:"Particles"}},spread:{default:1,description:"The pressure pushing particles apart \u2014 how strongly they insist on even spacing inside the shape",ui:{type:"range",min:.1,max:3,step:.01,label:"Spread",group:"Physics"}},agitation:{default:.12,description:"Idle thermal motion of the swarm \u2014 0 freezes it crystal-still once settled",ui:{type:"range",min:0,max:1,step:.
24701,label:"Agitation",group:"Physics"}},damping:{default:.4,description:"How quickly disturbed particles calm back down and settle into place",ui:{type:"range",min:0,max:1,step:.01,label:"Damping",group:"Physics"}},gravity:{default:0,description:"Downward pull on the swarm \u2014 negative floats the particles upward",ui:{type:"range",min:-2,max:2,step:.01,label:"Gravity",group:"Physics"}},mouseInfluence:{default:2,description:"Strength of the cursor field. Positive scatters particles away; negative pulls the swarm toward the cursor",ui:{type:"range",min:-5,max:5,step:.01,label:"Cursor Force",group:"Interaction"}},mouseRadius:{default:.2,description:"Reach of the cursor field, in shape-local units",ui:{type:"range",min:.05,max:.8,step:.01,label:"Cursor Radius",group:"Interaction"}},exposure:{default:1,description:"Brightness of the additive particle glow",ui:{type:"range",min:.2,max:3,step:.01,label:"Exposure",group:"Particles"}},softness:{default:.1,description:"Edge softness of each particle \u2014 0 is a crisp disc, 1 a soft glow puff",ui:{type:"range",min:0,max:1,step:.01,label:"Softness",group:"Particles"}},depth:{default:.18,description:"Thickness of the particle volume behind flat shapes (3D shapes use their own true depth)",ui:{type:"range",min:.02,max:.6,step:.01,label:"Depth",group:"Particles"}},colorSpace:{default:"oklab",transform:Ue,compileTime:!0,description:"Color space for the rest\u2192excited color ramp",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}},shape:{default:kq,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"}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=s("shapeSdfUrl")||"",c=Rq(s("shapeType")||"",s("shape")),d=Rt(i,o.vec4f,Kc),u=Rt(i,o.vec4f,Kc),p=Rt(i,o.atomic(o.u32),zb),m=Rt(i,o.atomic(o.u32),Ro*Ro),_=Rt(i,o.atomic(o.u32),Ro*Ro),v=(globalThis.__TYPEGPU_AUTONAME__??(q=>q))(i.createTexture({size:[Ro,Ro],format:vk}).$usage("storage","sampled"),"outTex");a(()=>v.destroy());let h=r(v),y=(globalThis.__TYPEGPU_AUTONAME__??(q=>q))(i.createUniform(hk),"paramsU"),x=i.createBindGroup(us,{pos:d,vel:u,dens:p,accumE:m,accumS:_,params:y.buffer,outTex:v}),g=null,w=null,f;if(l&&$b(c)){w=Aq(e,l,()=>s("shape"));let q=(globalThis.__TYPEGPU_AUTONAME__??(oe=>oe))(i.createTexture({size:[1,1],format:uk}).$usage("storage"),"dummyField");a(()=>q.destroy()),g=i.createBindGroup(w.layout,{field:q,params:w.marchParamsBuffer.buffer,sdfSource:w.sdfSourceTexture});let te=w.sdfFn,ne=w.layout;f=b.fn([o.vec3f],o.f32)((oe=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(oe.f=(pe=>{"use gpu";let _e=ah(pe,ne.$.params.rot),ge=n.max(__tsover_sub(n.abs(_e.x),.5),0),Me=n.max(__tsover_sub(n.abs(_e.y),.5),0);return __tsover_add(te(_e),n.sqrt(__tsover_add(__tsover_mul(ge,ge),__tsover_mul(Me,Me))))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p3"}],body:[0,[[13,"ps",[6,"rotateVec3",["p3",[7,[7,[7,"layoutSvg","$"],"params"],"rot"]]]],[13,"exX",[6,[7,"std","max"],[[1,[6,[7,"std","abs"],[[7,"ps","x"]]],"-",[5,"0.5"]],[5,"0"]]]],[13,"exY",[6,[7,"std","max"],[[1,[6,[7,"std","abs"],[[7,"ps","y"]]],"-",[5,"0.5"]],[5,"0"]]]],[10,[1,[6,"baked",["ps"]],"+",[6,[7,"std","sqrt"],[[1,[1,"exX","*","exX"],"+",[1,"exY","*","exY"]]]]]]]],externalNames:["rotateVec3","layoutSvg","std","baked"]},externals:()=>({rotateVec3:ah,layoutSvg:ne,std:n,baked:te})})&&oe.f)({}))}else if(l){let q=Tq(e,l);g=i.createBindGroup(Db,{sdfSource:q.texture.texture}),f=b.fn([o.vec3f],o.f32)((te=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(te.f=(ne=>{"use gpu";let oe=us.$.params,pe=__tsover_sub(rh,1),_e=n.clamp(o.i32(__tsover_mul(__tsover_add(ne.x,.5),rh)),0,pe),ge=n.clamp(o.i32(__tsover_mul(__tsover_sub(.5,ne.y),rh)),0,pe),Me=n.textureLoad(Db.$.sdfSource,o.vec2u(o.u32(_e),o.u32(ge)),0).x,Se=n.max(__tsover_sub(n.abs(ne.x),.5),0),Ae=n.max(__tsover_sub(n.abs(ne.y),.5),0);return ih(__tsover_add(Me,n.sqrt(__tsover_add(__tsover_mul(Se,Se),__tsover_mul(Ae,Ae)))),__tsover_sub(n.abs(ne.z),oe.halfDepth))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p3"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"sizeM1",[1,"SVG_SDF_SIZE","-",[5,"1"]]],[13,"tx",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,[1,[7,"p3","x"],"+",[5,"0.5"]],"*","SVG_SDF_SIZE"]]],[5,"0"],"sizeM1"]]],[13,"ty",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,[1,[5,"0.5"],"-",[7,"p3","y"]],"*","SVG_SDF_SIZE"]]],[5,"0"],"sizeM1"]]],[13,"d2",[7,[6,[7,"std","textureLoad"],[[7,[7,"svgSdfLayout","$"],"sdfSource"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["tx"]],[6,[7,"d","u32"],["ty"]]]],[5,"0"]]],"x"]],[13,"exX",[6,[7,"std","max"],[[1,[6,[7,"std","abs"],[[7,"p3","x"]]],"-",[5,"0.5"]],[5,"0"]]]],[13,"exY",[6,[7,"std","max"],[[1,[6,[7,"std","abs"],[[7,"p3","y"]]],"-",[5,"0.5"]],[5,"0"]]]],[13,"d2e",[1,"d2","+",[6,[7,"std","sqrt"],[[1,[1,"exX","*","exX"],"+",[1,"exY","*","exY"]]]]]],[10,[6,"extrudeSdf",["d2e",[1,[6,[7,"std","abs"],[[7,"p3","z"]]],"-",[7,"prm","halfDepth"]]]]]]],externalNames:["simLayout","SVG_SDF_SIZE","std","d","svgSdfLayout","extrudeSdf"]},externals:()=>({simLayout:us,SVG_SDF_SIZE:rh,std:n,d:o,svgSdfLayout:Db,extrudeSdf:ih})})&&te.f)({}))}else if(Eq(c)){w=Sq(i,c,pk(s("shape")),()=>s("shape"));let q=(globalThis.__TYPEGPU_AUTONAME__??(oe=>oe))(i.createTexture({size:[1,1],format:uk}).$usage("storage"),"dummyField");a(()=>q.destroy()),g=i.createBindGroup(w.layout,{field:q,params:w.marchParamsBuffer.buffer});let te=w.sdfFn,ne=w.layout;f=b.fn([o.vec3f],o.f32)((oe=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(oe.f=(pe=>{"use gpu";return te(ah(pe,ne.$.params.rot))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p3"}],body:[0,[[10,[6,"baked",[[6,"rotateVec3",["p3",[7,[7,[7,"layout3d","$"],"params"],"rot"]]]]]]]],externalNames:["baked","rotateVec3","layout3d"]},externals:()=>({baked:te,rotateVec3:ah,layout3d:ne})})&&oe.f)({}))}else{let q=wq(c);f=b.fn([o.vec3f],o.f32)((te=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(te.f=(ne=>{"use gpu";let oe=us.$.params,pe=q(o.vec2f(__tsover_add(ne.x,.5),__tsover_sub(.5,ne.y)),oe.saRadius,oe.saSides,oe.saRounding,oe.saInnerRatio,oe.saRotation,oe.saHeight,oe.saOffset,oe.saAperture).x;return ih(pe,__tsover_sub(n.abs(ne.z),oe.halfDepth))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p3"}],body:[0,[[13,"prm",[7,[7,"simLayout","$"],"params"]],[13,"uv2",[6,[7,"d","vec2f"],[[1,[7,"p3","x"],"+",[5,"0.5"]],[1,[5,"0.5"],"-",[7,"p3","y"]]]]],[13,"d2",[7,[6,"sdf2d",["uv2",[7,"prm","sa
247Radius"],[7,"prm","saSides"],[7,"prm","saRounding"],[7,"prm","saInnerRatio"],[7,"prm","saRotation"],[7,"prm","saHeight"],[7,"prm","saOffset"],[7,"prm","saAperture"]]],"x"]],[10,[6,"extrudeSdf",["d2",[1,[6,[7,"std","abs"],[[7,"p3","z"]]],"-",[7,"prm","halfDepth"]]]]]]],externalNames:["simLayout","d","sdf2d","extrudeSdf","std"]},externals:()=>({simLayout:us,d:o,sdf2d:q,extrudeSdf:ih,std:n})})&&te.f)({}))}let A=Iq(f),E=zq(s("colorSpace")??0),P=q=>{let te=pt(i,(ne=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(ne.f=(oe=>{"use gpu";q(oe)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[6,"kernel",["i"]]]],externalNames:["kernel"]},externals:()=>({kernel:q})})&&ne.f)({})).with(x);return g&&(te=te.with(g)),te},C=P($q),$=pt(i,(q=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(q.f=(te=>{"use gpu";_k(te)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"i"}],body:[0,[[6,"particleClearDensityKernel",["i"]]]],externalNames:["particleClearDensityKernel"]},externals:()=>({particleClearDensityKernel:_k})})&&q.f)({}),{size:[zb]}).with(x),U=P(Uq),k=P(A),R=pt(i,(q=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(q.f=((te,ne)=>{"use gpu";fk(te,ne)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[6,"particleClearAccumKernel",["x","y"]]]],externalNames:["particleClearAccumKernel"]},externals:()=>({particleClearAccumKernel:fk})})&&q.f)({}),{size:[Ro,Ro]}).with(x),D=P(Dq),M=pt(i,(q=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(q.f=((te,ne)=>{"use gpu";E(te,ne)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"y"}],body:[0,[[6,"resolveKernel",["x","y"]]]],externalNames:["resolveKernel"]},externals:()=>({resolveKernel:E})})&&q.f)({}),{size:[Ro,Ro]}).with(x),z=0,L=new Map,B=(q,te,ne,oe)=>Cq(q,te,ne,oe),N=0,G=!1,I=0,X=null,F=2*ir/La,Q=.8191725133961645,ae=.6710436067037893,j=.5497004779019703;return{outputs:{particleTexture:h},getComputeNodes:q=>{let te=q,ne=Math.min(Math.max(te.deltaTime??.016,.001),.033);z+=ne,N+=ne;let oe={elapsed:z,deltaTime:ne,pointerX:te.pointer?.x??.5,pointerY:te.pointer?.y??.5,springs:L},pe=($t,Xe)=>{let Qt=s($t);return typeof Qt=="number"?Qt:Xe},_e=te.dimensions?.height??0,ge=_e>0?(te.dimensions?.width??0)/_e:1,Me=s("center"),Se=Me?.x??.5,Ae=1-(Me?.y??.5),Pe=Math.max(pe("scale",1),.01),De=pe("rotation",0)*l_,ke=Math.cos(De),Ge=Math.sin(De),Oe=te.pointer?.x??.5,qe=te.pointer?.y??.5,We=(Oe-Se)*ge,Ve=qe-Ae,Ne=(We*ke+Ve*Ge)/Pe,He=-((Ve*ke-We*Ge)/Pe),vt=pe("gravity",0)*1.2,_t=Ge*vt,Ze=-(ke*vt),it=pk(s("shape")),Tt=$b(c),J=l&&Tt?B(it.depth,dk.depth??.25,oe,"depth")*.5:Math.max(pe("depth",.18),.01)*.5,be=B(it.rotation,0,oe,"shapeRotation"),ce=0,xe=0,ye=0;if(w){let $t=$b(c)?dk:Pq[c]??{},Xe=B(it.rotX,$t.rotX??0,oe,"rotX")*l_,Qt=B(it.rotY,$t.rotY??0,oe,"rotY")*l_,Xt=B(it.rotZ,$t.rotZ??0,oe,"rotZ")*l_;if(X){let Ps=(Xe-X.x)/ne,$s=(Qt-X.y)/ne,Ks=(Xt-X.z)/ne,yo={cx:Math.cos(Xe),sx:Math.sin(Xe),cy:Math.cos(Qt),sy:Math.sin(Qt),cz:Math.cos(Xt),sz:Math.sin(Xt)},Gs=Rb(1,0,0,yo),Js=Rb(0,1,0,yo),Ls=Rb(0,0,1,yo);ce=-(Gs.x*Ps+Gs.y*$s+Gs.z*Ks),xe=-(Js.x*Ps+Js.y*$s+Js.z*Ks),ye=-(Ls.x*Ps+Ls.y*$s+Ls.z*Ks)}X={x:Xe,y:Qt,z:Xt}}else if(!l){let $t=be*l_;X&&(ye=-(($t-X.x)/ne)),X={x:$t,y:0,z:0}}let Ee=Math.hypot(ce,xe,ye),Le=Ee>10?10/Ee:1,ot=Math.min(1,Ee*2.5)*5,Ke=pe("damping",.4),rt=pe("mouseRadius",.22),Mt=s("colorA"),ht=s("colorB");y.write({colA:o.vec4f(Mt?.x??1,Mt?.y??1,Mt?.z??1,Mt?.w??1),colB:o.vec4f(ht?.x??1,ht?.y??1,ht?.z??1,ht?.w??1),dt:ne,time:N,spread:pe("spread",1),agitation:pe("agitation",.12),dragMul:Math.exp(-(2.2+Ke*6)*ne),gravX:_t,gravY:Ze,halfDepth:J,mouseX:Ne,mouseY:He,mouseForce:pe("mouseInfluence",1.2)*3,mouseRadSq:rt*rt,saRadius:B(it.radius??it.width??it.bottomWidth,.35,oe,"radius"),saSides:B(it.sides,6,oe,"sides"),saRounding:B(it.rounding,0,oe,"rounding"),saInnerRatio:B(it.innerRatio??it.thickness??it.spread??it.topWidth??it.topRatio,.4,oe,"innerRatio"),saRotation:be,saHeight:B(it.height,.25,oe,"height"),saOffset:B(it.offset??it.skew,.2,oe,"offset"),saAperture:B(it.aperture,270,oe,"aperture"),centerX:Se,centerYv:Ae,scale:Pe,rotC:ke,rotS:Ge,aspect:ge,size:pe("size",2.2),exposure:pe("exposure",1),softness:Math.min(Math.max(pe("softness",.5),0),1),speedColorK:2/Ib,omegaX:ce*Le,omegaY:xe*Le,omegaZ:ye*Le,entrain:ot,gridOffX:I*Q%1*F,gridOffY:I*ae%1*F,gridOffZ:I
247*j%1*F}),I++,w?.update({deltaTime:ne,pointer:te.pointer});let St=Math.min(Math.max(Math.round(pe("count",4e3)),16),Kc),zt=[];return G||(G=!0,zt.push(()=>C.dispatchThreads(Kc))),zt.push($,()=>U.dispatchThreads(St),()=>k.dispatchThreads(St),R,()=>D.dispatchThreads(St),M),zt}}},fragment:({ctx:e,computeOutputs:t})=>{let s=t?.particleTexture;return s?s.sample(e.uv,"linearClamp"):me}};var Lq=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_div(s.x,s.y),c=o.vec2f(__tsover_mul(t.x,l),t.y).mul(n.exp(r)).add(a);return Sl(o.vec3f(c.x,c.y,__tsover_mul(i,.3)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[6,[7,"noise","perlin13"],[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,"animTime","*",[5,"0.3"]]]]]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),gk={name:"PerlinNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Smooth gradient noise that morphs over time",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{..._a(),scale:{default:2,description:"Pattern scale (higher = larger patterns)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},...fa(),...sn()},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Ir(e,T(Lq,"perlinNoiseField",[t,s,e.uniforms.scale,e.uniforms.seed,r]))}};var lh=Math.PI/180,xk=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=o.vec2f(t.x,__tsover_sub(1,t.y)),u=__tsover_div(__tsover_sub(c.x,d.x),i),p=__tsover_div(__tsover_sub(c.y,d.y),i),m=__tsover_mul(s,lh),_=__tsover_mul(r,lh),v=__tsover_mul(a,lh),h=n.cos(m),y=n.sin(m),x=n.cos(_),g=n.sin(_),w=__tsover_mul(n.tan(__tsover_mul(v,.5)),2),f=__tsover_add(h,__tsover_mul(__tsover_mul(y,u),w)),A=n.max(f,.001),E=__tsover_div(u,A),P=__tsover_div(__tsover_mul(p,h),A),C=__tsover_add(x,__tsover_mul(__tsover_mul(g,P),w)),$=n.max(C,.001),U=__tsover_div(__tsover_mul(E,x),$),k=__tsover_div(P,$),R=o.vec2f(l.x,__tsover_sub(1,l.y));return o.vec2f(U,k).add(d).sub(R).add(o.vec2f(.5,.5))}),{v:1,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,[7,"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"]
247],"/","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,[7,"std","cos"],["panRad"]]],[13,"sinPan",[6,[7,"std","sin"],["panRad"]]],[13,"cosTilt",[6,[7,"std","cos"],["tiltRad"]]],[13,"sinTilt",[6,[7,"std","sin"],["tiltRad"]]],[13,"perspectiveFactor",[1,[6,[7,"std","tan"],[[1,"fovRad","*",[5,"0.5"]]]],"*",[5,"2"]]],[13,"panDivisor",[1,"cosPan","+",[1,[1,"sinPan","*","x"],"*","perspectiveFactor"]]],[13,"safePanDivisor",[6,[7,"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,[7,"std","max"],["tiltDivisor",[5,"0.001"]]]],[13,"finalX",[1,[1,"afterPanX","*","cosTilt"],"/","safeTiltDivisor"]],[13,"finalY",[1,"afterPanY","/","safeTiltDivisor"]],[13,"offsetPos",[6,[7,"d","vec2f"],[[7,"offset","x"],[1,[5,"1"],"-",[7,"offset","y"]]]]],[10,[6,[7,[6,[7,[6,[7,[6,[7,"d","vec2f"],["finalX","finalY"]],"add"],["centerPos"]],"sub"],["offsetPos"]],"add"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]]]],externalNames:["d","DEG_TO_RAD","std"]},externals:()=>({d:o,DEG_TO_RAD:lh,std:n})})&&e.f)({})),bk={name:"Perspective",category:"Distortions",description:"Rotate the plane in 3D space with pan and tilt",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"Center point of rotation",ui:{type:"position",label:"Center",group:"Position"}},pan:{default:0,description:"Horizontal rotation (left/right)",ui:{type:["range","map"],min:-90,max:90,step:.1,label:"Pan",group:"Effect"}},tilt:{default:0,description:"Vertical rotation (up/down)",ui:{type:["range","map"],min:-90,max:90,step:.1,label:"Tilt",group:"Effect"}},fov:{default:60,description:"Field of view - controls perspective intensity",ui:{type:["range","map"],min:30,max:120,step:1,label:"FOV",group:"Effect"}},zoom:{default:1,description:"Zoom in to fill the frame after rotation",ui:{type:["range","map"],min:.5,max:3,step:.1,label:"Zoom",group:"Effect"}},offset:{default:{x:.5,y:.5},transform:we,description:"Shift the result in X/Y",ui:{type:"position",label:"Offset",group:"Position"}},edges:{default:"transparent",description:"How to handle edges",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({childNode:e,ctx:t,uniforms:s,propValues:r,convertToTexture:a})=>{if(!e)return me;let i=a(e),l=r.edges??0;return T(Re,"unpremultiplyAlpha",[Gt(T(xk,"perspectiveUV",[s.center,s.pan,s.tilt,s.fov,s.zoom,s.offset,t.uv]),c=>i.sample(c),l)])},uvRemap:({uv:e,mask:t,uniforms:s,propValues:r})=>{let a=r.edges??0;return zs(T(xk,"perspectiveUV",[s.center,s.pan,s.tilt,s.fov,s.zoom,s.offset,e]),t,a)}};var Fq=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=s>1,c=n.max(n.select(__tsover_mul(r,s),r,l),1),d=n.max(n.select(r,__tsover_div(r,s),l),1),u=o.vec2f(__tsover_div(n.floor(__tsover_mul(t.x,c)),c),__tsover_div(n.floor(__tsover_mul(t.y,d)),d)),p=o.vec2f(__tsover_sub(n.fract(__tsover_mul(t.x,c)),.5),__tsover_sub(n.fract(__tsover_mul(t.y,d)),.5)),m=__tsover_sub(.5,__tsover_mul(a,.5)),_=__tsover_mul(i,m),v=n.max(__tsover_add(__tsover_sub(n.abs(p.x),m),_),0),h=n.max(__tsover_add(__tsover_sub(n.abs(p.y),m),_),0),y=__tsover_sub(n.length(o.vec2f(v,h)),_),x=n.select(o.f32(0),o.f32(1),y<=0);return o.vec3f(u.x,u.y,x)}),{v:1,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,[7,"std","max"],[[6,[7,"std","select"],[[1,"scale","*","aspect"],"scale","isWide"]],[5,"1"]]]],[13,"pixelCountY",[6,[7,"std","max"],[[6,[7,"std","select"],["scale",[1,"scale","/","aspect"],"isWide"]],[5,"1"]]]],[13,"sampleUV",[6,[7,"d","vec2f"],[[1,[6,[7,"std","floor"],[[1,[7,"uv","x"],"*","pixelCountX"]]],"/","pixelCountX"],[1,[6,[7,"std","floor"],[[1,[7,"uv","y"],"*","pixelCountY"]]],"/","pixelCountY"]]]],[13,"localUV",[6,[7,"d","vec2f"],[[1,[6,[7,"std","fract"],[[1,[7,"uv","x"],"*","pixelCountX"]]],"-",[5,"0.5"]],[1,[6,[7,"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,[7,"std","max"],[[1,[1,[6,[7,"std","abs"],[[7,"localUV","x"]]],"-","halfSize"],"+","cornerRadius"],[5,"0"]]]],[13,"qy",[6,[7,"std","max"],[[1,[1,[6,[7,"std","abs"],[[7,"localUV","y"]
247]],"-","halfSize"],"+","cornerRadius"],[5,"0"]]]],[13,"sdf",[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],["qx","qy"]]]],"-","cornerRadius"]],[13,"mask",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"sdf","<=",[5,"0"]]]]],[10,[6,[7,"d","vec3f"],[[7,"sampleUV","x"],[7,"sampleUV","y"],"mask"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),wk={name:"Pixelate",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Pixelation effect with adjustable cell size",requiresRTT:!0,requiresChild:!0,props:{scale:{default:50,description:"Number of pixels along the longest edge (higher = smaller pixels)",ui:{type:["range","map"],min:1,max:200,step:1,label:"Scale",group:"Effect"}},gap:{default:0,description:"Space between pixels as a fraction of cell size (0 = no gap, 1 = fully invisible)",ui:{type:["range","map"],min:0,max:.95,step:.01,label:"Gap",group:"Effect"}},roundness:{default:0,description:"Roundness of each pixel's corners (0 = square, 1 = circle)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Roundness",group:"Effect"}}},fragment:({childNode:e,ctx:t,uniforms:s,convertToTexture:r})=>{if(!e)return me;let a=r(e),i=T(Fq,"pixelateSample",[t.uv,t.aspect,s.scale,s.gap,s.roundness]),l=T(Re,"unpremultiplyAlpha",[a.sample(i.member("xy"))]);return de(l.member("rgb"),l.member("a").mul(i.member("z")))}};var fo=512,Hl=fo*fo,jl=fo,Vi=fo-1,Ek="rgba16float",Lb=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_sub(__tsover_div(t,jl),r),u=__tsover_sub(__tsover_div(s,jl),a),p=n.select(d,__tsover_mul(d,c),c>=1),m=n.select(__tsover_div(u,c),u,c>=1),_=n.sqrt(__tsover_add(__tsover_mul(p,p),__tsover_mul(m,m))),v=__tsover_mul(i,__tsover_sub(1,l));return __tsover_sub(1,n.smoothstep(v,i,_))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cxf"},{type:"i",name:"cyf"},{type:"i",name:"mouseX"},{type:"i",name:"mouseY"},{type:"i",name:"radius"},{type:"i",name:"falloff"},{type:"i",name:"aspect"}],body:[0,[[13,"dx",[1,[1,"cxf","/","WORK_F"],"-","mouseX"]],[13,"dy",[1,[1,"cyf","/","WORK_F"],"-","mouseY"]],[13,"ddx",[6,[7,"std","select"],["dx",[1,"dx","*","aspect"],[1,"aspect",">=",[5,"1"]]]]],[13,"ddy",[6,[7,"std","select"],[[1,"dy","/","aspect"],"dy",[1,"aspect",">=",[5,"1"]]]]],[13,"dist",[6,[7,"std","sqrt"],[[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]]]]],[13,"inner",[1,"radius","*",[1,[5,"1"],"-","falloff"]]],[10,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["inner","radius","dist"]]]]]],externalNames:["WORK_F","std"]},externals:()=>({WORK_F:jl,std:n})})&&e.f)({})),Tk=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(t,12.9898),__tsover_mul(s,78.233)),__tsover_mul(r,.137))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"xf"},{type:"i",name:"yf"},{type:"i",name:"seed"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,[1,"xf","*",[5,"12.9898"]],"+",[1,"yf","*",[5,"78.233"]]],"+",[1,"seed","*",[5,"0.137"]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),c_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({input:{texture:o.texture2d(o.f32)},lumaBuf:{storage:o.arrayOf(o.f32,Hl),access:"mutable"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({inputWidth:o.f32,inputHeight:o.f32}),"uniform")}}),"lumaLayout"),xn=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({readBuf:{storage:o.arrayOf(o.f32,Hl),access:"readonly"},writeBuf:{storage:o.arrayOf(o.f32,Hl),access:"mutable"},lumaBuf:{storage:o.arrayOf(o.f32,Hl),access:"readonly"},params:{uniform:(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({mouseX:o.f32,mouseY:o.f32,radius:o.f32,falloff:o.f32,decay:o.f32,aspect:o.f32,seed:o.f32}),"uniform")}}),"swapLayout"),d_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({srcBuf:{storage:o.arrayOf(o.f32,Hl),access:"readonly"},stateTex:{storageTexture:o.textureStorage2d(Ek,"write-only")}}),"outputLayout"),Sk=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=c_.$.params,a=__tsover_add(__tsover_mul(s,o.u32(fo)),t),i=__tsover_div(__tsover_add(o.f32(t),.5),jl),l=__tsover_div(__tsover_add(o.f32(s),.5),jl),c=n.
247clamp(o.i32(n.round(__tsover_mul(i,r.inputWidth))),0,o.i32(__tsover_sub(r.inputWidth,1))),d=n.clamp(o.i32(n.round(__tsover_mul(l,r.inputHeight))),0,o.i32(__tsover_sub(r.inputHeight,1))),u=Re(n.textureLoad(c_.$.input,o.vec2u(o.u32(c),o.u32(d)),0)).xyz;c_.$.lumaBuf[a]=n.dot(u,o.vec3f(.299,.587,.114))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"lumaLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["WORK"]]],"+","cx"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","WORK_F"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","WORK_F"]],[13,"ix",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"u","*",[7,"p","inputWidth"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]]]],[13,"iy",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"v","*",[7,"p","inputHeight"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]]]],[13,"texel",[6,[7,"std","textureLoad"],[[7,[7,"lumaLayout","$"],"input"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["ix"]],[6,[7,"d","u32"],["iy"]]]],[5,"0"]]]],[13,"rgb",[7,[6,[7,"blend","unpremultiplyAlpha"],["texel"]],"xyz"]],[2,[8,[7,[7,"lumaLayout","$"],"lumaBuf"],"idx"],"=",[6,[7,"std","dot"],["rgb",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]]]],externalNames:["lumaLayout","d","WORK","WORK_F","std","blend"]},externals:()=>({lumaLayout:c_,d:o,WORK:fo,WORK_F:jl,std:n,blend:eu})})&&e.f)({})).$name("pixelSortLuma");function Ak(e,t,s){return b.fn([o.u32,o.u32])((r=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(r.f=((a,i)=>{"use gpu";let l=xn.$.params,c=__tsover_add(__tsover_mul(i,o.u32(fo)),a),d=o.f32(a),u=o.f32(i),p=e?i:a,m=e?a:i,_=o.f32(p),v=o.i32(p),h=xn.$.readBuf[c],y=n.clamp(__tsover_add(_,h),0,Vi),x=__tsover_mod(__tsover_add(p,o.u32(s)),o.u32(2))===o.u32(0),g=n.select(__tsover_sub(v,1),__tsover_add(v,1),x),w=g>=0&&g<fo,f=n.clamp(g,0,__tsover_sub(fo,1)),A=o.u32(f),E=e?m:A,P=e?A:m,C=__tsover_add(__tsover_mul(P,o.u32(fo)),E),$=xn.$.readBuf[C],U=n.clamp(__tsover_add(o.f32(f),$),0,Vi),k=n.clamp(n.floor(y),0,Vi),R=n.min(__tsover_add(k,1),Vi),D=e?__tsover_add(__tsover_mul(o.u32(k),o.u32(fo)),m):__tsover_add(__tsover_mul(m,o.u32(fo)),o.u32(k)),M=e?__tsover_add(__tsover_mul(o.u32(R),o.u32(fo)),m):__tsover_add(__tsover_mul(m,o.u32(fo)),o.u32(R)),z=n.mix(xn.$.lumaBuf[D],xn.$.lumaBuf[M],__tsover_sub(y,k)),L=n.clamp(n.floor(U),0,Vi),B=n.min(__tsover_add(L,1),Vi),N=e?__tsover_add(__tsover_mul(o.u32(L),o.u32(fo)),m):__tsover_add(__tsover_mul(m,o.u32(fo)),o.u32(L)),G=e?__tsover_add(__tsover_mul(o.u32(B),o.u32(fo)),m):__tsover_add(__tsover_mul(m,o.u32(fo)),o.u32(B)),I=n.mix(xn.$.lumaBuf[N],xn.$.lumaBuf[G],__tsover_sub(U,L)),X=Lb(d,u,l.mouseX,l.mouseY,l.radius,l.falloff,l.aspect),F=Lb(o.f32(E),o.f32(P),l.mouseX,l.mouseY,l.radius,l.falloff,l.aspect),Q=Tk(d,u,l.seed),ae=w&&n.min(X,F)>Q,j=__tsover_mul(__tsover_sub(z,I),t),q=n.select(j<0,j>0,x),te=n.select(y,U,ae&&q),ne=n.mix(te,_,l.decay);xn.$.writeBuf[c]=__tsover_sub(ne,_)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"swapLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["WORK"]]],"+","cx"]],[13,"xf",[6,[7,"d","f32"],["cx"]]],[13,"yf",[6,[7,"d","f32"],["cy"]]],[13,"lineC",[105,"vertical","cy","cx"]],[13,"fixedC",[105,"vertical","cx","cy"]],[13,"lineCf",[6,[7,"d","f32"],["lineC"]]],[13,"lineCi",[6,[7,"d","i32"],["lineC"]]],[13,"myOff",[8,[7,[7,"swapLayout","$"],"readBuf"],"idx"]],[13,"myCol",[6,[7,"std","clamp"],[[1,"lineCf","+","myOff"],[5,"0"],"MAX_COL"]]],[13,"isLeft",[1,[1,[1,"lineC","+",[6,[7,"d","u32"],["parity"]]],"%",[6,[7,"d","u32"],[[5,"2"]]]],"===",[6,[7,"d","u32"],[[5,"0"]]]]],[13,"partnerLineI",[6,[7,"std","select"],[[1,"lineCi","-",[5,"1"]],[1,"lineCi","+",[5,"1"]],"isLeft"]]],[13,"valid",[3,[1,"partnerLineI",">=",[5,"0"]],"&&",[1,"partnerLineI","<","WORK"]]],[13,"pClamped",[6,[7,"std","clamp"],["partnerLineI",[5,"0"],[1,"WORK","-",[5,"1"]]]]],[13,"pClampedU",[6,[7,"d","u32"],["pClamped"]]],[13,"partnerX",[105,"vertical","fixedC","pClampedU"]],[13,"partnerY",[105,"vertical","pClampedU","fixedC"]],[13,"partnerIdx",[1,[1,"partnerY","*",[6,[7,"d","u32"],["WORK"]]],"+","partnerX"]],[13,"partnerOff",[8,[7,[7,"swapLayout","$"],"readBuf"],"partnerIdx"]],[13,"partnerCol",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["pClamped"]],"+","partnerOff"],[5,"0"],"MAX_COL"]]],[13,"myC0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["myCol"]],[5,"0"],"MAX_COL"]]],[13,"myC1",[6,[7,"std","min"],[[1,"myC0","+",[5,"1"]],"MAX_COL"]]],[13,"myIdx0",[105,"vertical",[1,[1,[6,[7,"d","u32"],["myC0"]],"*",[6,[7,"d","u32"],["WORK"]]],"+","fixedC"],[1,[1,"fixedC","*",[6,[7,"d","u32"],["WORK"]]],"+",[6,[7,"d","u32"],["myC0"]]]]],[13,"myIdx1",[105,"vertical",[1,[1,[6,[7,"d","u32"],["myC1"]],"*",[6,[7,"d","u32"],["WORK"]]],"+","fixedC"],[1,[1,"fixedC","*",[6,[7,"d","u32"],["WORK"]]],"+",[6,[7,"d","u32"],["myC1"]]]]],[13,"myKey",[6,[7,"std","mix"],[[8,[7,[7,"swapLayout","$"],"lumaBuf"],"myIdx0"],[8,[7,[7,"swapLayout","$"],"lumaBuf"],"myIdx1"],[1,"myCol","-","myC0"]]]],[13,"pC0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["partnerCol"]],[5,"0"],"MAX_COL"]]],[13,"pC1",[6,[7,"std","min"],[[1,"pC0","+",[5,"1"]],"MAX_COL"]]],[13,"pIdx0",[105,"vertical",[1,[1,[6,[7,"d","u32"],["pC0"]],"*",[6,[7,"d","u32"],["WORK"]]],"+","fixedC"],[1,[1,"fixedC","*",[6,[7,"d","u32"],["WORK"]]],"+",[6,[7,"d","u32"],["pC0"]]]]],[13,"pIdx1",[105,"vertical",[1,[1,[6,[7,"d","u32"],["pC1"]],"*",[6,[7,"d","u32"],["WORK"]]],"+","fixedC"],[1,[1,"fixedC","*",[6,[7,"d","u32"],["WORK"]]],"+",[6,[7,"d","u32"],["pC1"]]]]],[13,"partnerKey",[6,[7,"std","mix"],[[8,[7,[7,"swapLayout","$"],"lumaBuf"],"pIdx0"],[8,[7,[7,"swapLayout","$"],"lumaBuf"],"pIdx1"],[1,"partnerCol","-","pC0"]]]],[13,"wMy",[6,"brushWeight",["xf","yf",[7,"p","mouseX"],[7,"p","mouseY"],[7,"p","radius"],[7,"p","falloff"],[7,"p","aspect"]]]],[13,"wP",[6,"brushWeight",[[6,[7,"d","f32"],["partnerX"]],[6,[7,"d","f32"],["partnerY"]],[7,"p","mouseX"],[7,"p","mouseY"],[7,"p","radius"],[7,"p","falloff"],[7,"p","aspect"]]]],[13,"rnd",[6,"cellRand",["xf","yf",[7,"p","seed"]]]],[13,"gate",[3,"valid","&&",[1,[6,[7,"std","min"],["wMy","wP"]],">","rnd"]]],[13,"keyDiff",[1,[1,"myKey","-","partnerKey"],"*","dir"]],[13,"takePartner",[6,[7,"std","select"],[[1,"ke
247yDiff","<",[5,"0"]],[1,"keyDiff",">",[5,"0"]],"isLeft"]]],[13,"newCol",[6,[7,"std","select"],["myCol","partnerCol",[3,"gate","&&","takePartner"]]]],[13,"decayed",[6,[7,"std","mix"],["newCol","lineCf",[7,"p","decay"]]]],[2,[8,[7,[7,"swapLayout","$"],"writeBuf"],"idx"],"=",[1,"decayed","-","lineCf"]]]],externalNames:["swapLayout","d","WORK","vertical","std","MAX_COL","parity","brushWeight","cellRand","dir"]},externals:()=>({swapLayout:xn,d:o,WORK:fo,vertical:e,std:n,MAX_COL:Vi,parity:s,brushWeight:Lb,cellRand:Tk,dir:t})})&&r.f)({})).$name("pixelSortSwap")}function Bq(e){return b.fn([o.u32,o.u32])((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r)=>{"use gpu";let a=__tsover_add(__tsover_mul(r,o.u32(fo)),s),i=e?r:s,l=n.clamp(__tsover_add(o.f32(i),d_.$.srcBuf[a]),0,Vi),c=__tsover_div(__tsover_add(l,.5),jl);n.textureStore(d_.$.stateTex,o.vec2u(s,r),o.vec4f(c,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["WORK"]]],"+","cx"]],[13,"lineC",[105,"vertical","cy","cx"]],[13,"col",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["lineC"]],"+",[8,[7,[7,"outputLayout","$"],"srcBuf"],"idx"]],[5,"0"],"MAX_COL"]]],[13,"u",[1,[1,"col","+",[5,"0.5"]],"/","WORK_F"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"stateTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["u",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["d","WORK","vertical","std","outputLayout","MAX_COL","WORK_F"]},externals:()=>({d:o,WORK:fo,vertical:e,std:n,outputLayout:d_,MAX_COL:Vi,WORK_F:jl})})&&t.f)({})).$name("pixelSortOutput")}var Vq=b.fn([o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return o.vec2f(t.x,s)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"srcCoord"}],body:[0,[[10,[6,[7,"d","vec2f"],[[7,"uv","x"],"srcCoord"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Oq=b.fn([o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return o.vec2f(s,t.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"srcCoord"}],body:[0,[[10,[6,[7,"d","vec2f"],["srcCoord",[7,"uv","y"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),Mk={name:"PixelSort",category:"Interactive",description:"Pixels sort by brightness around the cursor and keep their sorted position, optionally decaying back over time",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},usesPointer:!0,props:{radius:{default:.4,description:"Size of the cursor brush that sorts pixels",ui:{type:["range","map"],min:.03,max:.6,step:.01,label:"Radius",group:"Effect"}},falloff:{default:1,description:"Softness of the brush edge (0 = hard circle, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Falloff",group:"Effect"}},strength:{default:.1,description:"How fast pixels sort \u2014 runs more sorting passes per frame",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Strength",group:"Effect"}},decay:{default:.1,description:"How quickly sorted pixels melt back to their original position (0 = permanent)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Decay",group:"Effect"}},axis:{default:"vertical",compileTime:!0,description:"Axis pixels are sorted along",ui:{type:"select",options:[{label:"Horizontal",value:"horizontal"},{label:"Vertical",value:"vertical"}],label:"Axis",group:"Effect"}},direction:{default:"descending",compileTime:!0,description:"Sort order by brightness",ui:{type:"select",options:[{label:"Dark \u2192 Light",value:"ascending"},{label:"Light \u2192 Dark",value:"descending"}],label:"Direction",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,propValues:l,onCleanup:c,onResize:d,dimensions:u}=e;if(!t)return null;let p=s?.root;if(!p)return null;let m=l.axis==="vertical",_=l.direction==="descending"?-1:1,v=r(t),h=Rt(p,o.f32,Hl),y=Rt(p,o.f32,Hl),x=Rt(p,o.f32,Hl),g=(globalThis.__TYPEGPU_AUTONAME__??(ae=>ae))(p.createTexture({size:[fo,fo],format:Ek}).$usage("storage","sampled"),"stateTex");c(()=>g.destroy());let w=a(g),f=(globalThis.__TYPEGPU_AUTONAME__??(ae=>ae))(p.createUniform(o.struct({inputWidth:o.f32,inputHeight:o.f32})),"lumaParams"),A=(globalThis.__TYPEGPU_AUTONAME__??(ae=>ae))(p.createUniform(o.struct({mouseX:o.f32,mouseY:o.f32,radius:o.f32,falloff:o.f32,decay:o.f32,aspect:o.f32,seed:o.f32})),"swapParams"),E=Math.max(1,Math.round(u.width)),P=Math.max(1,Math.round(u.height));d(({width:ae,height:j})=>{E=Math.max(1,Math.round(ae)),P=Math.max(1,Math.round(j))});let C=Ak(m,_,0),$=Ak(m,_,1),U=Bq(m),k=[fo,fo],R=pt(p,(ae=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(ae.f=((j,q)=>{"use gpu";Sk(j,q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"lumaKernel",["cx","cy"]]]],externalNames:["lumaKernel"]},externals:()=>({lumaKernel:Sk})})&&ae.f)({}),{size:k}),D=!1,M=p.createBindGroup(xn,{readBuf:h,writeBuf:y,lumaBuf:x,params:A.buffer}),z=p.createBindGroup(xn,{readBuf:y,writeBuf:h,lumaBuf:x,params:A.buffer}),L=pt(p,(ae=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(ae.f=((j,q)=>{"use gpu";C(j,q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"swapKernel0",["cx","cy"]]]],externalNames:["swapKernel0"]},externals:()=>({swapKernel0:C})})&&ae.f)({}),{size:k}),B=pt(p,(ae=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(ae.f=((j,q)=>{"use gpu";$(j,q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"swapKernel1",["cx","cy"]]]],externalNames:["swapKernel1"]},externals:()=>({swapKernel1:$})})&&ae.f)({}),{size:k}),N=p.createBindGroup(d_,{srcBuf:h,stateTex:g}),G=p.createBindGroup(d_,{srcBuf:y,stateTex:g}),I=pt(p,(ae=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(ae.f=((j,q)=>{"use gpu";U(j,q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:U})})&&ae.f)({}),{size:k}),X="A",F=0,Q=0;return{outputs:{state:w,childTexture:v},bindInputs:ae=>{let j=ae(v.key);
247if(j){let q=p.createBindGroup(c_,{input:j.texture,lumaBuf:x,params:f.buffer});R=R.with(q),D=!0}},getComputeNodes:ae=>{if(!D)return null;let j=ae,q=Math.min(j.deltaTime??0,.05),te=Math.max(1,j.dimensions?.width??E),ne=Math.max(1,j.dimensions?.height??P),oe=i("strength")??.1,pe=i("decay")??.1,_e=1+Math.round(oe*4);A.write({mouseX:j.pointer?.x??.5,mouseY:j.pointer?.y??.5,radius:i("radius")??.4,falloff:i("falloff")??1,decay:pe*q*2/_e,aspect:te/ne,seed:Q%1024}),f.write({inputWidth:E,inputHeight:P});let ge=[R];for(let Me=0;Me<_e;Me++){let Se=F%2?B:L;ge.push(Se.with(X==="A"?M:z)),X=X==="A"?"B":"A",F++}return ge.push(I.with(X==="A"?N:G)),Q++,ge}}},fragment:({childNode:e,ctx:t,computeOutputs:s,propValues:r,convertToTexture:a})=>{if(!e)return me;let i=s?.state,l=s?.childTexture;if(!i||!l)return T(Re,"unpremultiplyAlpha",[a(e).sample(t.uv)]);let c=r.axis==="vertical",d=i.sample(t.uv,"nearestClamp").member("r"),u=c?T(Vq,"pixelSortUVVertical",[t.uv,d]):T(Oq,"pixelSortUVHorizontal",[t.uv,d]);return T(Re,"unpremultiplyAlpha",[l.sample(u)])}};var Ck=e=>({luminance:0,darkness:1,red:2,green:3,blue:4})[e]??0,Ds=128,ch=(e,t)=>typeof e=="number"?e:t,Pk=b.fn([o.vec2f,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_sub(t.x,__tsover_mul(s.x,r)),__tsover_sub(t.y,__tsover_mul(s.y,r)))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"flowVec"},{type:"i",name:"scale"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"-",[1,[7,"flowVec","x"],"*","scale"]],[1,[7,"uv","y"],"-",[1,[7,"flowVec","y"],"*","scale"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})).$name("pixelThrowOffsetUV");function Nq(e){return b.fn([o.vec3f,o.f32],o.f32)((t=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(t.f=((s,r)=>{"use gpu";let a=o.vec3f(.299,.587,.114),i=o.f32(0);e===1?i=__tsover_sub(1,n.dot(s,a)):e===2?i=s.x:e===3?i=s.y:e===4?i=s.z:i=n.dot(s,a);let l=n.clamp(i,0,1);
247return n.mix(1,l,r)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"rgb"},{type:"i",name:"keyInfluence"}],body:[0,[[13,"lum",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]],[12,"key",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"keyMode","===",[5,"1"]],[2,"key","=",[1,[5,"1"],"-",[6,[7,"std","dot"],["rgb","lum"]]]],[11,[1,"keyMode","===",[5,"2"]],[2,"key","=",[7,"rgb","x"]],[11,[1,"keyMode","===",[5,"3"]],[2,"key","=",[7,"rgb","y"]],[11,[1,"keyMode","===",[5,"4"]],[2,"key","=",[7,"rgb","z"]],[2,"key","=",[6,[7,"std","dot"],["rgb","lum"]]]]]]],[13,"keyClamped",[6,[7,"std","clamp"],["key",[5,"0"],[5,"1"]]]],[10,[6,[7,"std","mix"],[[5,"1"],"keyClamped","keyInfluence"]]]]],externalNames:["d","keyMode","std"]},externals:()=>({d:o,keyMode:e,std:n})})&&t.f)({})).$name(`pixelThrowKeyScale_${e}`)}var kk={name:"PixelThrow",category:"Interactive",description:"Throws pixels along the cursor's path like a fluid \u2014 brighter (or redder/greener/bluer) pixels are flung farther, then settle back with friction",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},usesPointer:!0,props:{throwKey:{default:"luminance",transform:Ck,compileTime:!0,description:"Which pixel value decides how far a pixel is thrown",ui:{type:"select",options:[{label:"Brightness",value:"luminance"},{label:"Darkness",value:"darkness"},{label:"Red",value:"red"},{label:"Green",value:"green"},{label:"Blue",value:"blue"}],label:"Throw By",group:"Effect"}},strength:{default:.25,description:"Maximum distance pixels can be thrown",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Strength",group:"Effect"}},keyInfluence:{default:.8,description:"How much the chosen value modulates throw distance (0 = all pixels thrown equally, 1 = only high-value pixels move)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Key Influence",group:"Effect"}},radius:{default:.2,description:"Size of the cursor's throw brush",ui:{type:["range","map"],min:.02,max:.6,step:.01,label:"Radius",group:"Effect"}},friction:{default:.3,description:"How quickly thrown pixels settle back to their origin (0 = float almost forever, 1 = snap back fast)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Friction",group:"Effect"}},momentum:{default:.5,description:"How much the thrown flow keeps drifting and swirling after the cursor passes (fluidity)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Momentum",group:"Effect"}},edges:{default:"stretch",description:"How to handle pixels thrown beyond the canvas edges",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:e=>{let{uniforms:t,ctx:s,childNode:r,convertToTexture:a,onBeforeRender:i,onCleanup:l,dimensions:c,propValues:d,createDataTexture:u,registerMediaTexture:p,getCpuValue:m}=e;if(!r)return me;let _=a(r),v=d.edges??0,h=d.throwKey,y=typeof h=="number"?h:Ck(String(h??"luminance")),x=new Float32Array(Ds*Ds*2),g=new Float32Array(Ds*Ds*2),w=new Uint16Array(Ds*Ds*4),f=u({width:Ds,height:Ds,format:"rgba16float",data:w,label:"pixelthrow-flow"});l(()=>f.destroy());let A=p(()=>f.texture),E=.5,P=.5,C=0,$=0,U=Date.now(),k=(L,B,N)=>{let G=Math.floor(L),I=Math.floor(B),X=G+1,F=I+1;if(G<0||I<0||X>=Ds||F>=Ds)return 0;let Q=L-G,ae=B-I,j=(I*Ds+G)*2+N,q=(I*Ds+X)*2+N,te=(F*Ds+G)*2+N,ne=(F*Ds+X)*2+N;return x[j]*(1-Q)*(1-ae)+x[q]*Q*(1-ae)+x[te]*(1-Q)*ae+x[ne]*Q*ae};i(L=>{let{pointer:B}=L,N=Date.now(),G=Math.min((N-U)/1e3,.016);if(U=N,G<=0)return;let I=Math.max(1e-4,c.width/Math.max(1,c.height)),X=(B.x-E)/G,F=(B.y-P)/G;
247C=C*.8+X*.2,$=$*.8+F*.2;let Q=Math.sqrt(C*C+$*$),ae=ch(m("strength"),.25),j=ch(m("radius"),.2),q=ch(m("friction"),.3),te=ch(m("momentum"),.5),ne=ae*.5,oe=Math.max(0,1-q*G*4),pe=te*G*12;for(let _e=0;_e<Ds;_e++)for(let ge=0;ge<Ds;ge++){let Me=(_e*Ds+ge)*2,Se=ge-x[Me]*Ds*pe,Ae=_e-x[Me+1]*Ds*pe;g[Me]=k(Se,Ae,0)*oe,g[Me+1]=k(Se,Ae,1)*oe}if(Q>.02){let _e=Math.max(.001,j),ge=_e*_e,Me=Math.max(0,Math.floor((B.y-_e)*Ds)),Se=Math.min(Ds-1,Math.ceil((B.y+_e)*Ds)),Ae=Math.max(0,Math.floor((B.x-_e)*Ds)),Pe=Math.min(Ds-1,Math.ceil((B.x+_e)*Ds));for(let De=Me;De<=Se;De++)for(let ke=Ae;ke<=Pe;ke++){let Ge=(ke+.5)/Ds,Oe=(De+.5)/Ds,qe=I>=1?(Ge-B.x)*I:Ge-B.x,We=I>=1?Oe-B.y:(Oe-B.y)/I,Ve=qe*qe+We*We;if(Ve>ge)continue;let Ne=Math.exp(-Ve/ge),He=(De*Ds+ke)*2;g[He]+=C*Ne*G*4,g[He+1]+=$*Ne*G*4}}for(let _e=0;_e<Ds*Ds*2;_e++)g[_e]=Math.max(-ne,Math.min(ne,g[_e]));x.set(g);for(let _e=0;_e<Ds*Ds;_e++)w[_e*4]=da(x[_e*2]),w[_e*4+1]=da(x[_e*2+1]);f.write(w),E=B.x,P=B.y});let R=s.uv,D=A.sample(R,"linearClamp").member("xy"),M=T(Pk,"pixelThrowOffsetUV",[R,D,le(.5)]),z=T(Re,"unpremultiplyAlpha",[_.sample(M)]);return T(Re,"unpremultiplyAlpha",[Gt(T(Pk,"pixelThrowOffsetUV",[R,D,T(Nq(y),`pixelThrowKeyScale_${y}`,[z.member("rgb"),t.keyInfluence])]),L=>_.sample(L),v)])}};var Rk=b.fn([o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.pow(t,__tsover_div(5,s)),l=n.clamp(__tsover_add(__tsover_mul(__tsover_sub(i,.5),r),.5),0,1),c=__tsover_sub(__tsover_div(a,100),.5),d=n.clamp(__tsover_add(l,c),0,1);return __tsover_sub(1,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"fluid"},{type:"i",name:"intensity"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"plasma",[6,[7,"std","pow"],["fluid",[1,[5,"5"],"/","intensity"]]]],[13,"contrasted",[6,[7,"std","clamp"],[[1,[1,[1,"plasma","-",[5,"0.5"]],"*","contrast"],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"balanceShift",[1,[1,"balance","/",[5,"100"]],"-",[5,"0.5"]]],[13,"balanced",[6,[7,"std","clamp"],[[1,"contrasted","+","balanceShift"],[5,"0"],[5,"1"]]]],[10,[1,[5,"1"],"-","balanced"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Yq=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_mul(d,.125),p=__tsover_div(s.x,s.y),m=o.vec3f(__tsover_mul(t.x,p),t.y,0).mul(n.exp(__tsover_sub(r,1))),_=__tsover_mul(a,4),v=Io(m.add(o.vec3f(__tsover_mul(u,.3),__tsover_mul(u,-.2),0))),h=Io(m.add(o.vec3f(5.2,1.3,__tsover_mul(u,.25)))),y=m.add(o.vec3f(v,h,0).mul(_)),x=Io(y.add(o.vec3f(1.7,9.2,__tsover_mul(u,.15)))),g=Io(y.add(o.vec3f(8.3,2.8,__tsover_mul(u,.13)))),w=m.add(o.vec3f(x,g,0).mul(_));return Rk(__tsover_add(__tsover_mul(Io(w),.5),.5),i,l,c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"density"},{type:"i",name:"warp"},{type:"i",name:"intensity"},{type:"i",name:"contrast"},{type:"i",name:"balance"},{type:"i",name:"animTime"}],body:[0,[[13,"t",[1,"animTime","*",[5,"0.125"]]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"base",[6,[7,"d","vec3f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"],[5,"0"]]]],[13,"pos",[6,[7,"base","mul"],[[6,[7,"std","exp"],[[1,"density","-",[5,"1"]]]]]]],[13,"warpAmount",[1,"warp","*",[5,"4"]]],[13,"qx",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"pos","add"],[[6,[7,"d","vec3f"],[[1,"t","*",[5,"0.3"]],[1,"t","*",[4,"-",[5,"0.2"]]],[5,"0"]]]]]]]],[13,"qy",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"pos","add"],[[6,[7,"d","vec3f"],[[5,"5.2"],[5,"1.3"],[1,"t","*",[5,"0.25"]]]]]]]]],[13,"warped1",[6,[7,"pos","add"],[[6,[7,[6,[7,"d","vec3f"],["qx","qy",[5,"0"]]],"mul"],["warpAmount"]]]]],[13,"rx",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"warped1","add"],[[6,[7,"d","vec3f"],[[5,"1.7"],[5,"9.2"],[1,"t","*",[5,"0.15"]]]]]]]]],[13,"ry",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"warped1","add"],[[6,[7,"d","vec3f"],[[5,"8.3"],[5,"2.8"],[1,"t","*",[5,"0.13"]]]]]]]]],[13,"warped2",[6,[7,"pos","add"],[[6,[7,[6,[7,"d","vec3f"],["rx","ry",[5,"0"]]],"mul"],["warpAmount"]]]]],[13,"fluid",[1,[1,[6,[7,"noise","mxNoiseFloat3"],["warped2"]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[10,[6,"plasmaTone",["fluid","intensity","contrast","balance"]]]]],externalNames:["d","std","noise","plasmaTone"]},externals:()=>({d:o,std:n,noise:mt,plasmaTone:Rk})})&&e.f)({}
247)),$k={name:"Plasma",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:O,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",description:"Secondary color",transform:O,ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=Fe(e),c=T(Yq,"plasmaT",[a,i,t.density,t.warp,t.intensity,t.contrast,t.balance,l]),d=r.colorSpace??0;return(r.stopCount??0)>1?js(c,{colorsArray:t.colorsArray,positionsArray:t.positionsArray,convertedColorsArray:t.convertedColorsArray,stopCount:t.stopCount},d):T(Ye[d]??Be,"mixColors",[t.colorA,t.colorB,c])}};var{sdfSpaceUV:Gq,offsetUV:Uk}=Zs,{createSvgSdfSampler:Wq,createAnalyticSdfSampler:Xq,driveAnalyticSubProps:qq,ANALYTIC_SDF_EXTRA_FIELDS:Hq}=ft,{createVolumetricFieldComputeNode:jq,buildVolumetricFieldSampler:Zq,VOLUMETRIC_FIELD_EXTRA_FIELDS:Kq,is3dShapeType:Jq,isVolumetricShapeType:Qq}=ys,uh=.017453292519943295,eH=JSON.stringify({type:"circleSDF",radius:.35});function tH(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var Zl=b.fn([o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.smoothstep(__tsover_sub(s,a),__tsover_add(s,a),t),l=__tsover_sub(1,n.smoothstep(__tsover_sub(r,a),__tsover_add(r,a),t));return __tsover_mul(i,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"},{type:"i",name:"lo"},{type:"i",name:"hi"},{type:"i",name:"soft"}],body:[0,[[13,"a",[6,[7,"std","smoothstep"],[[1,"lo","-","soft"],[1,"lo","+","soft"],"x"]]],[13,"b",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"hi","-","soft"],[1,"hi","+","soft"],"x"]]]],[10,[1,"a","*","b"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),dh=b.fn([o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec2f(__tsover_add(__tsover_mul(t,r),a),__tsover_add(__tsover_mul(s,r),__tsover_mul(a,.617))),l=o.vec2f(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(t,r),2.3),13.1),a),__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(s,r),2.3),7.7),__tsover_mul(a,.617)));return __tsover_add(n.abs(Vt(i)),__tsover_mul(n.abs(Vt(l)),.45))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"px"},{type:"i",name:"py"},{type:"i",name:"cScale"},{type:"i",name:"seedOff"}],body:[0,[[13,"p1",[6,[7,"d","vec2f"],[[1,[1,"px","*","cScale"],"+","seedOff"],[1,[1,"py","*","cScale"],"+",[1,"seedOff","*",[5,"0.617"]]]]]],[13,"p2",[6,[7,"d","vec2f"],[[1,[1,[1,[1,"px","*","cScale"],"*",[5,"2.3"]],"+",[5,"13.1"]],"+","seedOff"],[1,[1,[1,[1,"py","*","cScale"],"*",[5,"2.3"]],"+",[5,"7.7"]],"+",[1,"seedOff","*",[5,"0.617"]]]]]],[10,[1,[6,[7,"std","abs"],[[6,[7,"noise","mxNoiseFloat2"],["p1"]]]],"+",[1,[6,[7,"std","abs"],[[6,[7,"noise","mxNoiseFloat2"],["p2"]]]],"*",[5,"0.45"]]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),sH=b.fn([o.vec2f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_mul(s,uh),a=n.cos(r),i=n.sin(r),l=__tsover_sub(t.x,.5),c=__tsover_sub(t.y,.5);return n.smoothstep(0,1,n.clamp(__tsover_add(__tsover_div(__tsover_add(__tsover_mul(l,a),__tsover_mul(c,i)),.7),.5),0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sdfUV"},{type:"i",name:"gradientAngle"}],body:[0,[[13,"gr",[1,"gradientAngle","*","DEG_TO_RAD"]],[13,"gx",[6,[7,"std","cos"],["gr"]]],[13,"gy",[6,[7,"std","sin"],["gr"]]],[13,"gdx",[1,[7,"sdfUV","x"],"-",[5,"0.5"]]],[13,"gdy",[1,[7,"sdfUV","y"],"-",[5,"0.5"]]],[10,[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],[6,[7,"std","clamp"],[[1,[1,[1,[1,"gdx","*","gx"],"+",[1,"gdy","*","gy"]],"/",[5,"0.7"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]]]],externalNames:["DEG_TO_RAD","std"]},externals:()=>({DEG_TO_RAD:uh,std:n})})&&e.f)({})),oH=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec3f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=d.x,v=d.y,h=d.z,y=d.w,x=u.x,g=u.y,w=u.z,f=u.w,A=p.x,E=p.y,P=p.z,C=p.w,$=m.x,U=m.y,k=n.max(__tsover_mul(v,.5),.001),R=__tsover_div(1,i.y),D=t.x,M=__tsover_div(D,_);if(M>__tsover_mul(R,2))return o.vec4f(0,0,0,0);let z=__tsover_mul(__tsover_add(E,__tsover_mul($,6)),uh),L=n.cos(z),B=n.sin(z),N=.01,G=__tsover_div(__tsover_sub(s.x,D),N),I=__tsover_div(__tsover_sub(r.x,D),N),X=n.clamp(__tsover_mul(__tsover_div(__tsover_mul(M,-1),k),32),0,1),F=n.select(__tsover_sub(a.x,.5),t.y,U>.5),Q=n.select(__tsover_sub(a.y,.5),t.z,U>.5),ae=n.max(__tsover_mul(h,.3),.01),j=n.clamp(__tsover_div(__tsover_mul(M,-1),ae),0,1),q=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),N),-4,4),te=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),N),-4,4),ne=n.normalize(o.vec3f(q,te,-1)),oe=__tsover_mul(n.sqrt(n.max(__tsover_sub(1,__tsover_mul(j,j)),o.f32(0))),2.4),pe=n.normalize(o.vec3f(__tsover_mul(G,oe),__tsover_mul(I,oe),-1)),_e=n.select(pe,ne,U>.5),ge=__tsover_mul(w,4),Me=__tsover_mul(g,.9),Se=__tsover_mul(A,7.31),Ae=.012,Pe=dh(F,Q,ge,Se),De=__tsover_div(__tsover_sub(dh(__tsover_add(F,Ae),Q,ge,Se),Pe),Ae),ke=__tsover_div(__tsover_sub(dh(F,__tsover_add(Q,Ae),ge,Se),Pe),Ae),Ge=n.clamp(f,0,1),Oe=__tsover_add(__tsover_mul(Vt(o.vec2f(__tsover_add(__tsover_add(__tsover_mul(F,2.6),Se),31.7),__tsover_add(__tsover_add(__tsover_mul(Q,2.6),__tsover_mul(Se,.617)),17.3))),.5),.5),qe=__tsover_sub(1.25,__tsover_mul(Ge,1.75)),We=n.smoothstep(__tsover_sub(qe,.25),__tsover_add(qe,.25),Oe),Ve=__tsover_mul(__tsover_mul(Me,We),__tsover_add(__tsover_mul(n.smoothstep(0,.35,j),.85),.15)),Ne=n.normalize(_e.add(o.vec3f(__tsover_mul(__tsover_mul(De,Ve),.25),__tsover_mul(__tsover_mul(ke,Ve),.25),0))),He=n.clamp(__tsover_mul(Ne.z,-1),0,1),vt=__tsover_sub(1,He),_t=n.reflect(o.vec3f(0,0,1),Ne),Ze=n.clamp(y,0,1),it=Vt(o.vec2f(__tsover_mul(F,140),__tsover_mul(Q,140))),Tt=__tsover_mul(__tsover_mul(Ze,it),.18),J=__tsover_add(__tsover_add(__tsover_mul(_t.x,L),__tsover_mul(_t.y,B)),Tt),be=__tsover_add(__tsover_add(__tsover_mul(_t.x,__tsover_mul(B,-1)),__tsover_mul(_t.y,L)),__tsover_mul(Tt,.6)),ce=n.mix(.02,.45,Ze),xe=__tsover_mul(Zl(J,.18,.95,ce),Zl(be,-.42,.42,ce)),ye=__tsover_mul(__tsover_mul(Zl(be,-.045,.045,__tsover_mul(ce,.6)),.8),__tsover_sub(1,Ze)),Ee=__tsover_mul(xe,__tsover_sub(1,ye)),Le=__tsover_mul(__tsover_mul(Zl(J,-.16,-.05,__tsover_mul(ce,.7)),Zl(be,-.85,.85,ce)),.85),ot=__tsover_mul(__tsover_mul(Zl(J,-.95,-.45,__tsover_mul(ce,1.6)),Zl(be,-.6,.6,__tsover_mul(ce,1.6))),.3),Ke=__tsover_mul(n.clamp(__tsover_add(__tsover_mul(J,.5),.5),0,1),.12),rt=__tsover_mul(__tsover_add(__tsover_add(__tsover_add(Ee,Le),ot),Ke),__tsover_sub(1,__tsover_mul(Ze,.55))),Mt=__tsover_add(.3,__tsover_mul(n.pow(vt,o.f32(3)),.7)),ht=__tsover_mul(x,Mt),St=n.normalize(o.vec3f(L,B,-.8)),zt=n.normalize(St.add(o.vec3f(0,0,-1))),$t=n.clamp(n.dot(Ne,zt),0,1),Xe=n.exp2(n.mix(o.f32(9),o.f32(4),Ze)),Qt=__tsover_mul(__tsover_mul(n.pow($t,Xe),1.6),__tsover_sub(1,__tsover_mul(Ze,.7))),Xt=__tsover_mul(__tsover_add(rt,Qt),ht),Ps=n.clamp(n.dot(Ne,St),-1,1),$s=__tsover_add(__tsover_mul(Ps,.5),.5),Ks=n.mix(__tsover_sub(1,__tsover_mul(P,.75)),__tsover_add(1,__tsover_mul(P,.45)),$s),yo=n.mix(.6,1,n.smoothstep(0,1,n.clamp(__tsover_div(__tsover_mul(M,-1),.025),0,1))),Gs=__tsover_mul(__tsover_mul(__tsover_mul(n.pow(vt,o.f32(3.5)),C),__tsover_add(__tsover_mul($s,.6),.4)),1.6),Js=l.mul(Ks).mul(yo).add(o.vec3f(Xt,Xt,Xt)).add(c.mul(Gs)),Ls=n.smoothstep(0,1,X);return o.vec4f(Js.x,Js.y,Js.z,Ls)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"viewportSize"},{type:"i",name:"baseRgb"},{type:"i",name:"rimColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"}],body:[0,[[13,"scale",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"thickness",[7,"p0","z"]],[13,"roughness",[7,"p0","w"]],[13,"reflectivity",[7,"p1","x"]],[13,"crumple",[7,"p1","y"]],[13,"crumpleScale",[7,"p1","z"]],[13,"crumpleCoverage",[7,"p1","w"]],[13,"seed",[7,"p2","x"]],[13,"lightAngle",[7,"p2","y"]],[13,"shading",[7,"p2","z"]],[13,"rimP",[7,"p2","w"]],[13,"animTime",[7,"p3","x"]],[13,"volumetric",[7,"p3","y"]],[13,"sharp",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scale"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"lr",[1,[1,"lightAngle","+",[1,"animTime","*",[5,"6"]]],"*","DEG_TO_RAD"]],[13,"lx",[6,[7,"std","cos"],["lr"]]],[13,"ly",[6,[7,"std","sin"],["lr"]]],[13,"EPS",[5,"0.01"]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"rb1",[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharp"],"*",[5,"32"]],[5,"0"],[5,"1"]]]],[13,"pdx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"pdy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"thicknessRange",[6,[7,"std","max"],[[1,"thickness","*",[5,"0.3"]],[5,"0.01"]]]],[13,"depthNorm",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","thicknessRange"],[5,"0"],[5,"1"]]]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"4"]],[5,"4"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","
247w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"4"]],[5,"4"]]]],[13,"nVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"bevelSlope",[1,[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[1,[5,"1"],"-",[1,"depthNorm","*","depthNorm"]],[6,[7,"d","f32"],[[5,"0"]]]]]]],"*",[5,"2.4"]]],[13,"nFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","bevelSlope"],[1,"gradY","*","bevelSlope"],[4,"-",[5,"1"]]]]]]],[13,"nBase",[6,[7,"std","select"],["nFlat","nVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"cScale",[1,"crumpleScale","*",[5,"4"]]],[13,"cAmp",[1,"crumple","*",[5,"0.9"]]],[13,"seedOff",[1,"seed","*",[5,"7.31"]]],[13,"neps",[5,"0.012"]],[13,"cr0",[6,"plasticCrumple",["pdx","pdy","cScale","seedOff"]]],[13,"crx",[1,[1,[6,"plasticCrumple",[[1,"pdx","+","neps"],"pdy","cScale","seedOff"]],"-","cr0"],"/","neps"]],[13,"cry",[1,[1,[6,"plasticCrumple",["pdx",[1,"pdy","+","neps"],"cScale","seedOff"]],"-","cr0"],"/","neps"]],[13,"coverage",[6,[7,"std","clamp"],["crumpleCoverage",[5,"0"],[5,"1"]]]],[13,"covNoise",[1,[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"pdx","*",[5,"2.6"]],"+","seedOff"],"+",[5,"31.7"]],[1,[1,[1,"pdy","*",[5,"2.6"]],"+",[1,"seedOff","*",[5,"0.617"]]],"+",[5,"17.3"]]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"covThreshold",[1,[5,"1.25"],"-",[1,"coverage","*",[5,"1.75"]]]],[13,"covMask",[6,[7,"std","smoothstep"],[[1,"covThreshold","-",[5,"0.25"]],[1,"covThreshold","+",[5,"0.25"]],"covNoise"]]],[13,"crumpleW",[1,[1,"cAmp","*","covMask"],"*",[1,[1,[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.35"],"depthNorm"]],"*",[5,"0.85"]],"+",[5,"0.15"]]]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"nBase","add"],[[6,[7,"d","vec3f"],[[1,[1,"crx","*","crumpleW"],"*",[5,"0.25"]],[1,[1,"cry","*","crumpleW"],"*",[5,"0.25"]],[5,"0"]]]]]]]],[13,"cosView",[6,[7,"std","clamp"],[[1,[7,"n","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"grazing",[1,[5,"1"],"-","cosView"]],[13,"R",[6,[7,"std","reflect"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]],"n"]]],[13,"rough",[6,[7,"std","clamp"],["roughness",[5,"0"],[5,"1"]]]],[13,"grain",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,"pdx","*",[5,"140"]],[1,"pdy","*",[5,"140"]]]]]]],[13,"rJit",[1,[1,"rough","*","grain"],"*",[5,"0.18"]]],[13,"eu",[1,[1,[1,[7,"R","x"],"*","lx"],"+",[1,[7,"R","y"],"*","ly"]],"+","rJit"]],[13,"ev",[1,[1,[1,[7,"R","x"],"*",[1,"ly","*",[4,"-",[5,"1"]]]],"+",[1,[7,"R","y"],"*","lx"]],"+",[1,"rJit","*",[5,"0.6"]]]],[13,"soft",[6,[7,"std","mix"],[[5,"0.02"],[5,"0.45"],"rough"]]],[13,"windowBox",[1,[6,"plasticEnvBox",["eu",[5,"0.18"],[5,"0.95"],"soft"]],"*",[6,"plasticEnvBox",["ev",[4,"-",[5,"0.42"]],[5,"0.42"],"soft"]]]],[13,"mullion",[1,[1,[6,"plasticEnvBox",["ev",[4,"-",[5,"0.045"]],[5,"0.045"],[1,"soft","*",[5,"0.6"]]]],"*",[5,"0.8"]],"*",[1,[5,"1"],"-","rough"]]],[13,"keyLight",[1,"windowBox","*",[1,[5,"1"],"-","mullion"]]],[13,"strip",[1,[1,[6,"plasticEnvBox",["eu",[4,"-",[5,"0.16"]],[4,"-",[5,"0.05"]],[1,"soft","*",[5,"0.7"]]]],"*",[6,"plasticEnvBox",["ev",[4,"-",[5,"0.85"]],[5,"0.85"],"soft"]]],"*",[5,"0.85"]]],[13,"fill",[1,[1,[6,"plasticEnvBox",["eu",[4,"-",[5,"0.95"]],[4,"-",[5,"0.45"]],[1,"soft","*",[5,"1.6"]]]],"*",[6,"plasticEnvBox",["ev",[4,"-",[5,"0.6"]],[5,"0.6"],[1,"soft","*",[5,"1.6"]]]]],"*",[5,"0.3"]]],[13,"dome",[1,[6,[7,"std","clamp"],[[1,[1,"eu","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]],"*",[5,"0.12"]]],[13,"env",[1,[1,[1,[1,"keyLight","+","strip"],"+","fill"],"+","dome"],"*",[1,[5,"1"],"-",[1,"rough","*",[5,"0.55"]]]]],[13,"fresnel",[1,[5,"0.3"],"+",[1,[6,[7,"std","pow"],["grazing",[6,[7,"d","f32"],[[5,"3"]]]]],"*",[5,"0.7"]]]],[13,"specW",[1,"reflectivity","*","fresnel"]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.8"]]]]]]],[13,"H",[6,[7,"std","normalize"],[[6,[7,"L","add"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[13,"ndh",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","H"]],[5,"0"],[5,"1"]]]],[13,"shininess",[6,[7,"std","exp2"],[[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"9"]]],[6,[7,"d","f32"],[[5,"4"]]],"rough"]]]]],[13,"glint",[1,[1,[6,[7,"std","pow"],["ndh","shininess"]],"*",[5,"1.6"]],"*",[1,[5,"1"],"-",[1,"rough","*",[5,"0.7"]]]]],[13,"specular",[1,[1,"env","+","glint"],"*","specW"]],[13,"ndl",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","L"]],[4,"-",[5,"1"]],[5,"1"]]]],[13,"lit",[1,[1,"ndl","*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"diffuse",[6,[7,"std","mix"],[[1,[5,"1"],"-",[1,"shading","*",[5,"0.75"]]],[1,[5,"1"],"+",[1,"shading","*",[5,"0.45"]]],"lit"]]],[13,"ao",[6,[7,"std","mix"],[[5,"0.6"],[5,"1"],[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.025"]],[5,"0"],[5,"1"]]]]]]]],[13,"rimGlow",[1,[1,[1,[6,[7,"std","pow"],["grazing",[6,[7,"d","f32"],[[5,"3.5"]]]]],"*","rimP"],"*",[1,[1,"lit","*",[5,"0.6"]],"+",[5,"0.4"]]],"*",[5,"1.6"]]],[13,"plasticRgb",[6,[7,[6,[7,[6,[7,[6,[7,"baseRgb","mul"],["diffuse"]],"mul"],["ao"]],"add"],[[6,[7,"d","vec3f"],["specular","specular","specular"]]]],"add"],[[6,[7,"rimColor","mul"],["rimGlow"]]]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"rb1"]]],[10,[6,[7,"d","vec4f"],[[7,"plasticRgb","x"],[7,"plasticRgb","y"],[7,"plasticRgb","z"],"transition"]]]]],externalNames:["std","d","DEG_TO_RAD","plasticCrumple","noise","plasticEnvBox"]},externals:()=>({std:n,d:o,DEG_TO_RAD:uh,plasticCrumple:dh,noise:mt,plasticEnvBox:Zl})})&&e.f)({}
247)),Dk={name:"Plastic",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Glossy molded plastic with photorealistic studio reflections, driven in a custom shape",animatedTime:{speed:"speed"},extraFields:{...Kq,...Hq},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:we,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:O,description:"Body color at the start of the gradient",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#d9dade",transform:O,description:"Body color at the end of the gradient",ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),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:Ue,compileTime:!0,description:"Color space for gradient color interpolation",ui:{type:"select",options:ze,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:O,description:"Color of the fresnel rim light",ui:{type:"color",label:"Rim Color",group:"Lighting"}},shape:{default:eH,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"}},compute:e=>{let t=jq(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let $=Zq(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=$.volumetricFieldSampler,c=$.volumetricFieldSamplerFast,d=!0}else{let $=r.shapeSdfUrl||"",U=r.shapeType||"";if($)l=Wq(e,$),c=l,d=Qq(U);else{let k=tH(U,i("shape"));l=Xq(k,qq(e,()=>i("shape")),"raw"),c=l,d=Jq(k)}}let p=T(Gq,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),m=l(p),_=c(T(Uk,"offsetUV",[p,le(.01),le(0)])),v=c(T(Uk,"offsetUV",[p,le(0),le(.01)])),h=T(sH,"plasticGradientT",[p,s.gradientAngle]),y=r.colorSpace??0,x=r.stopCount??0,g;x>1?g=js(h,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},y):g=T(Ye[y]??Be,"mixColors",[s.colorA,s.colorB,h]);let w=Fe(e),f=le(d?1:0),A=de(s.scale,s.edgeSoftness,s.thickness,s.roughness),E=de(s.reflectivity,s.crumple,s.crumpleScale,s.crumpleCoverage),P=de(s.seed,s.lightAngle,s.shading,s.rim),C=de(w,f,le(0),le(0));return T(oH,"plasticComposite",[m,_,v,p,a.viewportSize,g.member("rgb"),s.rimColor.member("rgb"),A,E,P,C])}};var zk=Math.PI,Ik=Math.PI*2,Lk=b.fn([o.vec2f,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(__tsover_mul(a.x,i),a.y),c=o.vec2f(__tsover_mul(t.x,i),__tsover_sub(1,t.y)),d=l.sub(c),u=n.atan2(d.y,d.x),p=__tsover_div(__tsover_add(u,zk),Ik),m=n.length(d),_=__tsover_mul(p,s),v=__tsover_mul(m,r);return o.vec2f(_,v)}),{v:1,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"}
247],body:[0,[[13,"aspectCorrectedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"aspectCorrectedUV","sub"],["centerPos"]]],[13,"theta",[6,[7,"std","atan2"],[[7,"delta","y"],[7,"delta","x"]]]],[13,"normalizedAngle",[1,[1,"theta","+","PI"],"/","TAU"]],[13,"r",[6,[7,"std","length"],["delta"]]],[13,"u",[1,"normalizedAngle","*","wrap"]],[13,"v",[1,"r","*","radius"]],[10,[6,[7,"d","vec2f"],["u","v"]]]]],externalNames:["d","std","PI","TAU"]},externals:()=>({d:o,std:n,PI:zk,TAU:Ik})})&&e.f)({})),Fk={name:"PolarCoordinates",category:"Distortions",description:"Convert rectangular coordinates to polar space",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The center point for polar coordinate conversion",ui:{type:"position",label:"Center",group:"Position"}},wrap:{default:1,description:"Controls how much of the angular range to use (1 = full 360\xB0, 0.5 = 180\xB0)",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Wrap",group:"Effect"}},radius:{default:1,description:"Controls how much of the radius range to use (affects the radial mapping)",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Radius",group:"Effect"}},intensity:{default:1,description:"Blends between original UVs (0) and polar coordinates (1)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Intensity",group:"Effect"}},edges:{default:"transparent",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the PolarCoordinates shader."),me;let i=a(t),l=r.edges??0,c=T(Lk,"polarCoordsUV",[e.center,e.wrap,e.radius,s.uv,s.aspect]);return T(Re,"unpremultiplyAlpha",[Gt(Ns(s.uv,c,e.intensity),d=>i.sample(d),l)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0;return zs(Ns(e,T(Lk,"polarCoordsUV",[s.center,s.wrap,s.radius,e,r]),s.intensity),t,i)}};var rH=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p),_=im(m.x,m.y,s,r),v=Pl(m.x,m.y,s);return Is(n.mix(_,v,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"sides"},{type:"i",name:"rounding"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"polyDist",[6,[7,"sdf","polygonSdf"],[[7,"local","x"],[7,"local","y"],"radiu
247s","sides"]]],[13,"circDist",[6,[7,"sdf","circleSdf"],[[7,"local","x"],[7,"local","y"],"radius"]]],[13,"dist",[6,[7,"std","mix"],["polyDist","circDist","rounding"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf","std"]},externals:()=>({sdf:ft,std:n})})&&e.f)({})),Bk={name:"Polygon",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Regular polygon with adjustable sides and corner rounding",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the polygon",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the polygon",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.4,description:"Circumradius \u2014 distance from center to vertices in UV space",ui:{type:"range",min:0,max:1,step:.01,label:"Radius",group:"Shape"}},sides:{default:6,description:"Number of sides (3 = triangle, 4 = square, 6 = hexagon, etc.)",ui:{type:"range",min:3,max:12,step:1,label:"Sides",group:"Shape"}},rounding:{default:0,description:"Corner rounding \u2014 0 is sharp vertices, 1 morphs into a circle",ui:{type:"range",min:0,max:1,step:.01,label:"Rounding",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(rH,"polygonShape",[t.center,t.radius,t.sides,t.rounding,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var aH=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(n.floor(__tsover_mul(t.x,s)),s),a=__tsover_div(n.floor(__tsover_mul(t.y,s)),s),i=__tsover_div(n.floor(__tsover_mul(t.z,s)),s);return o.vec4f(r,a,i,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"steps"}],body:[0,[[13,"r",[1,[6,[7,"std","floor"],[[1,[7,"color","x"],"*","steps"]]],"/","steps"]],[13,"g",[1,[6,[7,"std","floor"],[[1,[7,"color","y"],"*","steps"]]],"/","steps"]],[13,"b",[1,[6,[7,"std","floor"],[[1,[7,"color","z"],"*","steps"]]],"/","steps"]],[10,[6,[7,"d","vec4f"],["r","g","b",[7,"color","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Vk={name:"Posterize",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Reduce color depth to create a poster effect",requiresChild:!0,props:{intensity:{default:5,description:"The intensity of the posterization effect (lower is more posterized)",ui:{type:["range","map"],min:2,max:20,step:1,label:"Intensity",group:"Effect"}}},fragment:({uniforms:e,childNode:t})=>t?T(aH,"posterizeColor",[t,e.intensity]):(console.error("You must pass a child component into the Posterize shader."),me)};var Ok=b.fn([o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=__tsover_mul(n.fract(t),6),r=n.clamp(__tsover_sub(n.abs(__tsover_sub(s,3)),1),0,1),a=n.clamp(__tsover_sub(2,n.abs(__tsover_sub(s,2))),0,1),i=n.clamp(__tsover_sub(2,n.abs(__tsover_sub(s,4))),0,1);return o.vec3f(r,a,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"h"}],body:[0,[[13,"x",[1,[6,[7,"std","fract"],["h"]],"*",[5,"6"]]],[13,"r",[6,[7,"std","clamp"],[[1,[6,[7,"std","abs"],[[1,"x","-",[5,"3"]]]],"-",[5,"1"]],[5,"0"],[5,"1"]]]],[13,"g",[6,[7,"std","clamp"],[[1,[5,"2"],"-",[6,[7,"std","abs"],[[1,"x","-",[5,"2"]]]]],[5,"0"],[5,"1"]]]],[13,"b",[6,[7,"std","clamp"],[[1,[5,"2"],"-",[6,[7,"std","abs"],[[1,"x","-",[5,"4"]]]]],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec3f"],["r","g","b"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),nH=b.fn([o.vec2f,o.vec2f,o.f32,o.vec2f,o.vec2f,o.vec3f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v)=>{"use gpu";let h=__tsover_div(s.x,s.y),y=__tsover_mul(a.x,h),x=__tsover_sub(1,a.y),g=__tsover_sub(__tsover_mul(t.x,h),y),w=__tsover_sub(t.y,x),f=__tsover_sub(__tsover_mul(i.x,h),y),A=__tsover_sub(__tsover_sub(1,i.y),x),E=n.max(n.length(o.vec2f(f,A)),1e-4),P=__tsover_div(f,E),C=__tsover_div(A,E),$=__tsover_mul(C,-1),U=P,k=__tsover_add(__tsover_mul(g,P),__tsover_mul(w,C)),R=__tsover_add(__tsover_mul(g,$),__tsover_mul(w,U)),D=n.max(_,.001),M=__tsover_sub(k,E),z=__tsover_mul(D,.6),L=__tsover_mul(__tsover_add(M,n.sqrt(__tsover_add(__tsover_mul(M,M),__tsover_mul(z,z)))),.5),B=n.smoothstep(0,n.max(u,.001),k),N=n.exp(__tsover_mul(__tsover_div(L,n.max(p,.001)),-1)),G=__tsover_mul(B,N),I=n.max(__tsover_add(c,__tsover_mul(L,m)),.001),X=__tsover_div(R,I),F=n.exp(__tsover_mul(__tsover_mul(X,X),-2.5)),Q=n.smoothstep(E,__tsover_add(E,D),k),ae=__tsover_add(__tsover_mul(X,.42),r),j=n.mix(l,Ok(ae),o.vec3f(__tsover_mul(Q,v))),q=__tsover_mul(F,G),te=j.mul(q).mul(d),ne=n.clamp(q,0,1);return o.vec4f(te.x,te.y,te.z,ne)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"vp"},{type:"i",name:"animTime"},{type:"i",name:"position"},{type:"i",name:"splitPosition"},{type:"i",name:"beamColor"},{type:"i",name:"beamWidth"},{type:"i",name:"intensity"},{type:"i",name:"startFalloff"},{type:"i",name:"endFalloff"},{type:"i",name:"spread"},{type:"i",name:"softness"},{type:"i",name:"saturation"}
vendor: 4,249 bytes, line 247
247],body:[0,[[13,"aspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"cx",[1,[7,"position","x"],"*","aspect"]],[13,"cy",[1,[5,"1"],"-",[7,"position","y"]]],[13,"relX",[1,[1,[7,"uv","x"],"*","aspect"],"-","cx"]],[13,"relY",[1,[7,"uv","y"],"-","cy"]],[13,"splitRelX",[1,[1,[7,"splitPosition","x"],"*","aspect"],"-","cx"]],[13,"splitRelY",[1,[1,[5,"1"],"-",[7,"splitPosition","y"]],"-","cy"]],[13,"splitAlong",[6,[7,"std","max"],[[6,[7,"std","length"],[[6,[7,"d","vec2f"],["splitRelX","splitRelY"]]]],[5,"0.0001"]]]],[13,"dirX",[1,"splitRelX","/","splitAlong"]],[13,"dirY",[1,"splitRelY","/","splitAlong"]],[13,"perpX",[1,"dirY","*",[4,"-",[5,"1"]]]],[13,"perpY","dirX"],[13,"along",[1,[1,"relX","*","dirX"],"+",[1,"relY","*","dirY"]]],[13,"across",[1,[1,"relX","*","perpX"],"+",[1,"relY","*","perpY"]]],[13,"soft",[6,[7,"std","max"],["softness",[5,"0.001"]]]],[13,"raw",[1,"along","-","splitAlong"]],[13,"k",[1,"soft","*",[5,"0.6"]]],[13,"past",[1,[1,"raw","+",[6,[7,"std","sqrt"],[[1,[1,"raw","*","raw"],"+",[1,"k","*","k"]]]]],"*",[5,"0.5"]]],[13,"fadeIn",[6,[7,"std","smoothstep"],[[5,"0"],[6,[7,"std","max"],["startFalloff",[5,"0.001"]]],"along"]]],[13,"fadeOut",[6,[7,"std","exp"],[[1,[1,"past","/",[6,[7,"std","max"],["endFalloff",[5,"0.001"]]]],"*",[4,"-",[5,"1"]]]]]],[13,"longEnv",[1,"fadeIn","*","fadeOut"]],[13,"fanWidth",[6,[7,"std","max"],[[1,"beamWidth","+",[1,"past","*","spread"]],[5,"0.001"]]]],[13,"an",[1,"across","/","fanWidth"]],[13,"profile",[6,[7,"std","exp"],[[1,[1,"an","*","an"],"*",[4,"-",[5,"2.5"]]]]]],[13,"splitSat",[6,[7,"std","smoothstep"],["splitAlong",[1,"splitAlong","+","soft"],"along"]]],[13,"hue",[1,[1,"an","*",[5,"0.42"]],"+","animTime"]],[13,"col",[6,[7,"std","mix"],["beamColor",[6,"prismHue2Rgb",["hue"]],[6,[7,"d","vec3f"],[[1,"splitSat","*","saturation"]]]]]],[13,"amt",[1,"profile","*","longEnv"]],[13,"rgb",[6,[7,[6,[7,"col","mul"],["amt"]],"mul"],["intensity"]]],[13,"alpha",[6,[7,"std","clamp"],["amt",[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],[[7,"rgb","x"],[7,"rgb","y"],[7,"rgb","z"],"alpha"]]]]],externalNames:["std","d","prismHue2Rgb"]},externals:()=>({std:n,d:o,prismHue2Rgb:Ok})})&&e.f)({})),Nk={name:"Prism",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:we,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:O,description:"Colour 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:we,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 colour",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:.
24701,label:"Hue Speed",group:"Spectrum"}}},fragment:e=>{let{uniforms:t,ctx:s,uvContext:r,effectiveViewportSize:a}=e;return T(nH,"prismBeam",[r??s.uv,a??s.viewportSize,Fe(e),t.position,t.splitPosition,t.beamColor.member("rgb"),t.beamWidth,t.intensity,t.startFalloff,t.endFalloff,t.spread,t.softness,t.saturation])}};var Yk=Math.PI/180,iH=.36,lH=e=>e*iH,ph=b.fn([o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_mul(t,Yk),d=o.vec2f(__tsover_div(n.cos(c),l),n.sin(c)),u=o.vec2f(s,__tsover_sub(1,r)),p=i.sub(u),m=n.max(0,n.dot(p,d));return n.smoothstep(0,a,m)}),{v:1,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,[7,"d","vec2f"],[[1,[6,[7,"std","cos"],["angleRad"]],"/","aspect"],[6,[7,"std","sin"],["angleRad"]]]]],[13,"centerPos",[6,[7,"d","vec2f"],["centerX",[1,[5,"1"],"-","centerY"]]]],[13,"centeredUV",[6,[7,"uv","sub"],["centerPos"]]],[13,"directionalDist",[6,[7,"std","max"],[[5,"0"],[6,[7,"std","dot"],["centeredUV","direction"]]]]],[10,[6,[7,"std","smoothstep"],[[5,"0"],"falloff","directionalDist"]]]]],externalNames:["DEG_TO_RAD","d","std"]},externals:()=>({DEG_TO_RAD:Yk,d:o,std:n})})&&e.f)({})).$name("progressiveBlurAmount");function cH(){return o.struct({angle:o.f32,centerX:o.f32,centerY:o.f32,falloff:o.f32,aspect:o.f32,maxRadius:o.f32})}function dH(){return o.struct({angle:o.f32,centerX:o.f32,centerY:o.f32,falloff:o.f32,aspect:o.f32,inputWidth:o.f32,inputHeight:o.f32,inputMin:o.f32,inputMax:o.f32,outputMin:o.f32,outputMax:o.f32,curve:o.f32})}function uH(e,t){let s=cH(),r=(globalThis.__TYPEGPU_AUTONAME__??(a=>a))(b.bindGroupLayout({blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:s}}),"layout");return{layout:r,kernel:b.fn([o.u32,o.u32])((a=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(a.f=((i,l)=>{"use gpu";let c=r.$.params,d=__tsover_div(__tsover_add(o.f32(i),.5),e),u=__tsover_div(__tsover_add(o.f32(l),.5),t),p=ph(c.angle,c.centerX,c.centerY,c.falloff,o.vec2f(d,u),c.aspect),m=__tsover_mul(p,c.maxRadius);n.textureStore(r.$.blurMap,o.vec2u(i,l),o.vec4f(m,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","computeWidth"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"blurAmount",[6,"progressiveBlurAmount",[[7,"p","angle"],[7,"p","centerX"],[7,"p","centerY"],[7,"p","falloff"],[6,[7,"d","vec2f"],["u","v"]],[7,"p","aspect"]]]],[13,"radius",[1,"blurAmount","*",[7,"p","maxRadius"]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","progressiveBlurAmount","std"]},externals:()=>({layout:r,d:o,computeWidth:e,computeHeight:t,progressiveBlurAmount:ph,std:n})})&&a.f)({})).$name("progressiveBlurFillBlurMap"),Params:s}}function pH(e,t,s){let r=dH(),a=(globalThis.__TYPEGPU_AUTONAME__??(i=>i))(b.bindGroupLayout({source:{texture:o.texture2d(o.f32)},blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:r}}),"layout");return{layout:a,kernel:b.fn([o.u32,o.u32])((i=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(i.f=((l,c)=>{"use gpu";let d=a.$.params,u=__tsover_div(__tsover_add(o.f32(l),.5),e),p=__tsover_div(__tsover_add(o.f32(c),.5),t),m=ph(d.angle,d.centerX,d.centerY,d.falloff,o.vec2f(u,p),d.aspect),_=n.clamp(o.i32(n.round(__tsover_mul(u,d.inputWidth))),0,o.i32(__tsover_sub(d.inputWidth,1))),v=n.clamp(o.i32(n.round(__tsover_mul(p,d.inputHeight))),0,o.i32(__tsover_sub(d.inputHeight,1))),h=n.textureLoad(a.$.source,o.vec2u(o.u32(_),o.u32(v)),0),y=s==="alpha"?h.w:s==="alphaInverted"?__tsover_sub(1,h.w):s==="luminanceInverted"?__tsover_sub(1,n.dot(h.xyz,o.vec3f(.2126,.7152,.0722))):n.dot(h.xyz,o.vec3f(.2126,.7152,.0722)),x=n.max(__tsover_sub(d.inputMax,d.inputMin),1e-4),g=n.clamp(__tsover_div(__tsover_sub(y,d.inputMin),x),0,1),w=n.pow(2,__tsover_mul(-d.curve,2)),f=n.pow(g,w),A=__tsover_mul(n.mix(d.outputMin,d.outputMax,f),.36),E=__tsover_mul(m,A);n.textureStore(a.$.blurMap,o.vec2u(l,c),o.vec4f(E,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","computeWidth"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"blurAmount",[6,"progressiveBlurAmount",[[7,"p","angle"],[7,"p","centerX"],[7,"p","centerY"],[7,"p","falloff"],[6,[7,"d","vec2f"],["u","v"]],[7,"p","aspect"]]]],[13,"srcX",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"u","*",[7,"p","inputWidth"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"v","*",[7,"p","inputHeight"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]]]],[13,"sample",[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"source"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["srcX"]],[6,[7,"d","u32"],["srcY"]]]],[5,"0"]]]],[13,"raw",[105,[1,"channel","===",[103,"alpha"]],[7,"s
247ample","w"],[105,[1,"channel","===",[103,"alphaInverted"]],[1,[5,"1"],"-",[7,"sample","w"]],[105,[1,"channel","===",[103,"luminanceInverted"]],[1,[5,"1"],"-",[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]]]]],[13,"inputRange",[6,[7,"std","max"],[[1,[7,"p","inputMax"],"-",[7,"p","inputMin"]],[5,"0.0001"]]]],[13,"normalised",[6,[7,"std","clamp"],[[1,[1,"raw","-",[7,"p","inputMin"]],"/","inputRange"],[5,"0"],[5,"1"]]]],[13,"exponent",[6,[7,"std","pow"],[[5,"2"],[1,[4,"-",[7,"p","curve"]],"*",[5,"2"]]]]],[13,"eased",[6,[7,"std","pow"],["normalised","exponent"]]],[13,"maxRadius",[1,[6,[7,"std","mix"],[[7,"p","outputMin"],[7,"p","outputMax"],"eased"]],"*","INTENSITY_TO_RADIUS"]],[13,"radius",[1,"blurAmount","*","maxRadius"]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","progressiveBlurAmount","std","channel","INTENSITY_TO_RADIUS"]},externals:()=>({layout:a,d:o,computeWidth:e,computeHeight:t,progressiveBlurAmount:ph,std:n,channel:s,INTENSITY_TO_RADIUS:.36})})&&i.f)({}
247)).$name("progressiveBlurFillBlurMapVariable"),Params:r}}var Gk={name:"ProgressiveBlur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Blur that increases progressively in one direction",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:50,description:"Maximum intensity of the blur effect",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Effect"}},angle:{default:0,transform:Jt,description:"Direction of the blur gradient (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},center:{default:{x:0,y:.5},transform:we,description:"Center point where blur begins",ui:{type:"position",label:"Center",group:"Position"}},falloff:{default:1,description:"Distance over which blur transitions to full strength",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Falloff",group:"Effect"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,getMapInfo:l,onCleanup:c,onResize:d,dimensions:u}=e;if(!t)return null;let p=s?.root;if(!p)return null;let m=r(t),_=Math.max(1,Math.round(u.width)),v=Math.max(1,Math.round(u.height)),h=Zn(p,null,_,v,c),y=a(h.outputTexture),x=()=>{let P=i("center");return{angle:i("angle")??0,centerX:typeof P?.x=="number"?P.x:0,centerY:typeof P?.y=="number"?P.y:.5,falloff:i("falloff")??1,aspect:_/v}},g=l("intensity");if(g){let P=pH(h.computeWidth,h.computeHeight,g.channel),C=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(p.createUniform(P.Params),"fillParams"),$=pt(p,(U=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(U.f=((k,R)=>{"use gpu";P.kernel(k,R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:P})})&&U.f)({}),{size:[h.computeWidth,h.computeHeight]});return d(({width:U,height:k})=>{_=Math.max(1,Math.round(U)),v=Math.max(1,Math.round(k)),h.setInputDimensions(_,v)}),{outputs:{childTexture:m,blurredTexture:y},bindInputs:U=>{let k=U(m.key);k&&h.setInputTexture(k.texture);let R=U(g.sourceTexture.key);if(R){let D=p.createBindGroup(P.layout,{source:R.texture,blurMap:h.blurMapTexture,params:C.buffer});$=$.with(D)}},getComputeNodes:()=>{let U=x(),k=g.window();return C.write({...U,inputWidth:_,inputHeight:v,inputMin:k.inputMin,inputMax:k.inputMax,outputMin:k.outputMin,outputMax:k.outputMax,curve:k.curve}),[$,...h.computeSteps]}}}let w=uH(h.computeWidth,h.computeHeight),f=(globalThis.__TYPEGPU_AUTONAME__??(P=>P))(p.createUniform(w.Params),"fillParams"),A=p.createBindGroup(w.layout,{blurMap:h.blurMapTexture,params:f.buffer}),E=pt(p,(P=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(P.f=((C,$)=>{"use gpu";w.kernel(C,$)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:w})})&&P.f)({}),{size:[h.computeWidth,h.computeHeight],bindGroup:A});return d(({width:P,height:C})=>{_=Math.max(1,Math.round(P)),v=Math.max(1,Math.round(C)),h.setInputDimensions(_,v)}),{outputs:{childTexture:m,blurredTexture:y},bindInputs:P=>{let C=P(m.key);C&&h.setInputTexture(C.texture)},getComputeNodes:()=>{let P=x(),C=i("intensity")??0;return f.write({...P,maxRadius:lH(C)}),[E,...h.computeSteps]}}},fragment:({childNode:e,computeOutputs:t,ctx:s,convertToTexture:r})=>{if(!e)return me;let a=t?.blurredTexture,i=t?.childTexture;if(!a||!i)return T(Re,"unpremultiplyAlpha",[r(e).sample(s.uv)]);let l=i.sample(s.uv);return T(Re,"unpremultiplyAlpha",[de(a.sample(s.uv).member("rgb"),l.member("a"))])}};var Wk=.017453292519943295,mH=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=n.max(c.y,1e-6),u=__tsover_div(c.x,d),p=o.vec2f(__tsover_mul(l.x,u),l.y),m=o.vec2f(__tsover_mul(t.x,u),__tsover_sub(1,t.y)),_=__tsover_sub(p.x,m.x),v=__tsover_sub(p.y,m.y),h=__tsover_mul(s,Wk),y=n.cos(h),x=n.sin(h),g=__tsover_add(__tsover_mul(_,y),__tsover_mul(v,x)),w=__tsover_sub(__tsover_mul(v,y),__tsover_mul(_,x)),f=o.vec2f(__tsover_mul(g,r),w),A=n.length(f),E=n.max(a,1e-6),P=__tsover_mul(__tsover_div(A,E),i);return n.select(n.clamp(P,0,1),n.fract(P),i>1.0001)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"skewAngle"},{type:"i",name:"ellipseAspect"},{type:"i",name:"radius"},{type:"i",name:"repeat"},{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[13,"safeViewportY",[6,[7,"std","max"],[[7,"viewport","y"],[5,"0.000001"]]]],[13,"aspectRatio",[1,[7,"viewport","x"],"/","safeViewportY"]],[13,"acUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspectRatio"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[1,[7,"center","x"],"*","aspectRatio"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dx",[1,[7,"acUV","x"],"-",[7,"centerPos","x"]]],[13,"dy",[1,[7,"acUV","y"],"-",[7,"centerPos","y"]
vendor: 3,726 bytes, line 247
247]],[13,"skewRad",[1,"skewAngle","*","DEG_TO_RAD"]],[13,"cosS",[6,[7,"std","cos"],["skewRad"]]],[13,"sinS",[6,[7,"std","sin"],["skewRad"]]],[13,"rdx",[1,[1,"dx","*","cosS"],"+",[1,"dy","*","sinS"]]],[13,"rdy",[1,[1,"dy","*","cosS"],"-",[1,"dx","*","sinS"]]],[13,"stretched",[6,[7,"d","vec2f"],[[1,"rdx","*","ellipseAspect"],"rdy"]]],[13,"dist",[6,[7,"std","length"],["stretched"]]],[13,"safeRadius",[6,[7,"std","max"],["radius",[5,"0.000001"]]]],[13,"t",[1,[1,"dist","/","safeRadius"],"*","repeat"]],[10,[6,[7,"std","select"],[[6,[7,"std","clamp"],["t",[5,"0"],[5,"1"]]],[6,[7,"std","fract"],["t"]],[1,"repeat",">",[5,"1.0001"]]]]]]],externalNames:["std","d","DEG_TO_RAD"]},externals:()=>({std:n,d:o,DEG_TO_RAD:Wk})})&&e.f)({}));function _H(e,t){let{uniforms:s,propValues:r}=e,a=r.colorSpace??0;return(r.stopCount??0)>1?js(t,{colorsArray:s.colorsArray,positionsArray:s.positionsArray,convertedColorsArray:s.convertedColorsArray,stopCount:s.stopCount},a):T(Ye[a]??Be,"mixColors",[s.colorA,s.colorB,t])}var Xk={name:"RadialGradient",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Radial gradient radiating from a center point",acceptsUVContext:!0,props:{colorA:{default:"#ff0000",transform:O,description:"The starting color at the center of the gradient",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#0000ff",transform:O,description:"The ending color at the edge of the gradient",ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),center:{default:{x:.5,y:.5},transform:we,description:"The center point of the radial gradient",ui:{type:"position",label:"Center",group:"Position"}},radius:{default:1,description:"The radius of the gradient (normalized, 0.0-1.0)",ui:{type:["range","map"],min:0,max:2,step:.1,label:"Radius",group:"Effect"}},repeat:{default:1,description:"Number of times the gradient repeats. Values above 1 create concentric rings.",ui:{type:["range","map"],min:1,max:20,step:.5,label:"Repeat",group:"Effect"}},aspect:{default:1,description:"Stretches the gradient into an ellipse. Values below 1 compress vertically, above 1 compress horizontally.",ui:{type:["range","map"],min:.1,max:4,step:.01,label:"Aspect",group:"Effect"}},skewAngle:{default:0,description:"Rotates the ellipse axis in degrees. Only visible when Aspect is not 1.",ui:{type:["range","map"],min:0,max:360,step:1,label:"Skew Angle",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize;return _H(e,T(mH,"radialFinalT",[e.uniforms.center,e.uniforms.skewAngle,e.uniforms.aspect,e.uniforms.radius,e.uniforms.repeat,t,s]))}};var qk=Math.PI,Hk=Math.PI*2,jk=b.fn([o.vec2f,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_sub(__tsover_mul(r.x,Hk),qk),l=__tsover_mul(r.y,s),c=__tsover_mul(l,n.cos(i)),d=__tsover_mul(l,n.sin(i)),u=o.vec2f(t.x,__tsover_sub(1,t.y));return o.vec2f(__tsover_add(__tsover_div(c,a),u.x),__tsover_add(d,u.y))}),{v:1,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,[7,"std","cos"],["theta"]]]],[13,"rectY",[1,"r","*",[6,[7,"std","sin"],["theta"]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"rectX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rectY","+",[7,"centerPos","y"]
247]]]]]],externalNames:["TAU","PI","std","d"]},externals:()=>({TAU:Hk,PI:qk,std:n,d:o})})&&e.f)({})),Zk={name:"RectangularCoordinates",category:"Distortions",description:"Convert polar coordinates back to rectangular space",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The center point for rectangular coordinate conversion",ui:{type:"position",label:"Center",group:"Position"}},scale:{default:1,description:"Scale factor for the rectangular output",ui:{type:["range","map"],min:.1,max:3,step:.1,label:"Scale",group:"Effect"}},intensity:{default:1,description:"Blends between original UVs (0) and rectangular coordinates (1)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Intensity",group:"Effect"}},edges:{default:"transparent",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the RectangularCoordinates shader."),me;let i=a(t),l=r.edges??0,c=T(jk,"rectCoordsUV",[e.center,e.scale,s.uv,s.aspect]);return T(Re,"unpremultiplyAlpha",[Gt(Ns(s.uv,c,e.intensity),d=>i.sample(d),l)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0;return zs(Ns(e,T(jk,"rectCoordsUV",[s.center,s.scale,e,r]),s.intensity),t,i)}};var fH=30,Kk=12,vH=b.fn([o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return o.vec2f(t.x,__tsover_sub(__tsover_mul(s,2),t.y))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"floorY"}],body:[0,[[10,[6,[7,"d","vec2f"],[[7,"uv","x"],[1,[1,"floorY","*",[5,"2"]],"-",[7,"uv","y"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),hH=b.fn([o.vec4f,o.vec4f,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=n.max(__tsover_sub(r,a),0),d=n.max(i,.001),u=n.max(__tsover_mul(d,l),1e-4),p=__tsover_sub(d,u),m=__tsover_sub(1,n.smoothstep(p,d,c)),_=__tsover_mul(s.w,m),v=__tsover_sub(1,_),h=s.xyz.mul(m).add(t.xyz.mul(v)),y=__tsover_add(_,__tsover_mul(t.w,v)),x=o.vec4f(h,y),g=n.step(a,r);
247return n.mix(t,x,o.vec4f(g))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"original"},{type:"i",name:"refl"},{type:"i",name:"uvY"},{type:"i",name:"floorY"},{type:"i",name:"distance"},{type:"i",name:"falloff"}],body:[0,[[13,"distBelow",[6,[7,"std","max"],[[1,"uvY","-","floorY"],[5,"0"]]]],[13,"distanceMax",[6,[7,"std","max"],["distance",[5,"0.001"]]]],[13,"fadeWidth",[6,[7,"std","max"],[[1,"distanceMax","*","falloff"],[5,"0.0001"]]]],[13,"fadeStart",[1,"distanceMax","-","fadeWidth"]],[13,"visibility",[1,[5,"1"],"-",[6,[7,"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,"belowFloor",[6,[7,"d","vec4f"],["belowRgb","belowA"]]],[13,"isBelowFloor",[6,[7,"std","step"],["floorY","uvY"]]],[10,[6,[7,"std","mix"],["original","belowFloor",[6,[7,"d","vec4f"],["isBelowFloor"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({}));function yH(){return o.struct({height:o.f32,blurAmount:o.f32,blurDistance:o.f32})}function gH(e,t){let s=yH(),r=(globalThis.__TYPEGPU_AUTONAME__??(a=>a))(b.bindGroupLayout({blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:s}}),"layout");return{layout:r,kernel:b.fn([o.u32,o.u32])((a=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(a.f=((i,l)=>{"use gpu";let c=r.$.params,d=__tsover_div(__tsover_add(o.f32(l),.5),t),u=n.max(__tsover_sub(c.height,d),0),p=n.smoothstep(0,c.blurDistance,u),m=__tsover_mul(__tsover_mul(c.blurAmount,p),Kk);n.textureStore(r.$.blurMap,o.vec2u(i,l),o.vec4f(m,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"distBelowAtOutput",[6,[7,"std","max"],[[1,[7,"p","height"],"-","v"],[5,"0"]]]],[13,"ramp",[6,[7,"std","smoothstep"],[[5,"0"],[7,"p","blurDistance"],"distBelowAtOutput"]]],[13,"radius",[1,[1,[7,"p","blurAmount"],"*","ramp"],"*","BLUR_TO_RADIUS_PX"]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeHeight","std","BLUR_TO_RADIUS_PX"]},externals:()=>({layout:r,d:o,computeHeight:t,std:n,BLUR_TO_RADIUS_PX:Kk})})&&a.f)({})).$name("reflectivePlaneFillBlurMap"),Params:s}}var Jk={name:"ReflectivePlane",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Reflective floor that mirrors the content above it",requiresRTT:!0,requiresChild:!0,props:{height:{default:.7,description:"Vertical position of the reflective surface",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Floor Height",group:"Plane"}},distance:{default:.5,description:"How far below the floor the reflection remains visible before fully fading to transparent.",ui:{type:["range","map"],min:.01,max:1,step:.01,label:"Reflection Distance",group:"Plane"}},falloff:{default:.5,description:"Width of the fade zone, as a fraction of reflection distance.",ui:{type:["range","map"],min:0,max:3,step:.01,label:"Reflection Falloff",group:"Plane"}},blur:{default:3,description:"Maximum blur applied to the reflection far from the surface.",ui:{type:["range","map"],min:0,max:5,step:.01,label:"Blur",group:"Surface"}},blurDistance:{default:.3,description:"How far below the surface the blur takes to ramp from sharp to maximum.",ui:{type:"range",min:.01,max:1,step:.01,label:"Blur Distance",group:"Surface"}},edges:{default:"stretch",description:"How to handle reflected samples that fall outside the source content.",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Surface"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,onCleanup:l,onResize:c,dimensions:d}=e;if(!t)return null;let u=s?.root;if(!u)return null;let p=r(t),m=Math.max(1,Math.round(d.width)),_=Math.max(1,Math.round(d.height)),v=Zn(u,null,m,_,l,fH),h=a(v.outputTexture),y=gH(v.computeWidth,v.computeHeight),x=(globalThis.__TYPEGPU_AUTONAME__??(f=>
247f))(u.createUniform(y.Params),"fillParams"),g=u.createBindGroup(y.layout,{blurMap:v.blurMapTexture,params:x.buffer}),w=pt(u,(f=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(f.f=((A,E)=>{"use gpu";y.kernel(A,E)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:y})})&&f.f)({}),{size:[v.computeWidth,v.computeHeight],bindGroup:g});return c(({width:f,height:A})=>{m=Math.max(1,Math.round(f)),_=Math.max(1,Math.round(A)),v.setInputDimensions(m,_)}),{outputs:{childTexture:p,blurredTexture:h},bindInputs:f=>{let A=f(p.key);A&&v.setInputTexture(A.texture)},getComputeNodes:()=>{let f=i("height")??.5,A=i("blur")??1,E=Math.max(.01,i("blurDistance")??.5);return x.write({height:f,blurAmount:A,blurDistance:E}),[w,...v.computeSteps]}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,computeOutputs:a,convertToTexture:i})=>{if(!t)return me;let l=r.edges??0,c=e.height,d=T(vH,"reflectedPlaneUV",[s.uv,c]),u=a?.blurredTexture,p=a?.childTexture??i(t),m=u??p;return T(Re,"unpremultiplyAlpha",[T(hH,"reflectivePlaneCompose",[p.sample(s.uv),Gt(d,_=>m.sample(_),l),s.uv.member("y"),c,e.distance,e.falloff])])}};var Qk={name:"Repeater",category:"Distortions",description:"Repeat the child content in grid, radial or linear layouts with per-instance variation",requiresRTT:!0,requiresChild:!0,wantsBoundsParams:!0,boundingBoxDeclaration:{aspectRatio:null},props:{mode:{default:"grid",transform:e=>({grid:0,radial:1,linear:2})[e]??0,compileTime:!0,description:"Layout used to place the repeated instances",ui:{type:"select",options:[{label:"Grid",value:"grid"},{label:"Radial",value:"radial"},{label:"Linear",value:"linear"}],label:"Mode",group:"Layout"}},cropLeft:{default:0,description:"Crop inset from the left edge of the source element (fraction of its width)",ui:{type:["range","map"],min:0,max:.49,step:.005,label:"Crop Left",group:"Source"}},cropRight:{default:0,description:"Crop inset from the right edge of the source element (fraction of its width)",ui:{type:["range","map"],min:0,max:.49,step:.005,label:"Crop Right",group:"Source"}},cropTop:{default:0,description:"Crop inset from the top edge of the source element (fraction of its height)",ui:{type:["range","map"],min:0,max:.49,step:.005,label:"Crop Top",group:"Source"}},cropBottom:{default:0,description:"Crop inset from the bottom edge of the source element (fraction of its height)",ui:{type:["range","map"],min:0,max:.49,step:.005,label:"Crop Bottom",group:"Source"}},columns:{default:3,description:"Number of grid columns",ui:{type:["range","map"],min:1,max:12,step:1,label:"Columns",group:"Layout",condition:{mode:"grid"}}},rows:{default:3,description:"Number of grid rows",ui:{type:["range","map"],min:1,max:12,step:1,label:"Rows",group:"Layout",condition:{mode:"grid"}}},gapX:{default:.05,description:"Horizontal gap between grid cells",ui:{type:["range","map"],min:0,max:.5,step:.005,label:"Gap X",group:"Layout",condition:{mode:"grid"},dimensional:"canvas-width"}},gapY:{default:.05,description:"Vertical gap between grid cells",ui:{type:["range","map"],min:0,max:.5,step:.005,label:"Gap Y",group:"Layout",condition:{mode:"grid"},dimensional:"canvas-height"}},stagger:{default:0,description:"Horizontal offset applied to every other row (brick layout)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Stagger",group:"Layout",condition:{mode:"grid"}}},flip:{default:"none",transform:e=>({none:0,"alternate-flip-x":1,"alternate-flip-y":2,both:3})[e]??0,compileTime:!0,description:"Mirror alternating columns/rows for seamless tiling patterns",ui:{type:"select",options:[{label:"None",value:"none"},{label:"Alternate Flip X",value:"alternate-flip-x"},{label:"Alternate Flip Y",value:"alternate-flip-y"},{label:"Both",value:"both"}],label:"Flip",group:"Layout",condition:{mode:"grid"}}},count:{default:8,description:"Number of repeated instances",ui:{type:["range","map"],min:1,max:64,step:1,label:"Count",group:"Layout",condition:{mode:["radial","linear"]}}},radius:{default:.3,description:"Orbit radius of the radial layout",ui:{type:["range","map"],min:0,max:1,step:.
247005,label:"Radius",group:"Layout",condition:{mode:"radial"},dimensional:"canvas-height"}},startAngle:{default:0,description:"Angle of the first instance on the orbit",ui:{type:["range","map"],min:0,max:360,step:1,label:"Start Angle",group:"Layout",condition:{mode:"radial"}}},sweep:{default:360,description:"Angular span the instances are distributed across",ui:{type:["range","map"],min:0,max:360,step:1,label:"Sweep",group:"Layout",condition:{mode:"radial"}}},faceCenter:{default:!1,transform:Wo,description:"Rotate each instance to face the orbit center",ui:{type:"checkbox",label:"Face Center",group:"Layout",condition:{mode:"radial"}}},direction:{default:0,description:"Direction of the linear layout in degrees (0 = rightward)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Direction",group:"Layout",condition:{mode:"linear"}}},spacing:{default:.2,description:"Distance between consecutive instances",ui:{type:["range","map"],min:0,max:1,step:.005,label:"Spacing",group:"Layout",condition:{mode:"linear"},dimensional:"canvas-height"}},instanceScale:{default:1,description:"Progressive scale multiplier applied per instance (compounds with each copy)",ui:{type:["range","map"],min:.5,max:2,step:.005,label:"Scale",group:"Instances"}},instanceRotation:{default:0,transform:e=>e*Math.PI/180,description:"Additional rotation in degrees applied per instance (accumulates with each copy)",ui:{type:["range","map"],min:-180,max:180,step:1,label:"Rotation",group:"Instances"}},instanceOpacity:{default:1,description:"Progressive opacity falloff applied per instance (compounds with each copy)",ui:{type:["range","map"],min:0,max:1,step:.005,label:"Opacity",group:"Instances"}},hueShift:{default:0,transform:e=>e*Math.PI/180,compileTimeWhen:(e,t)=>e===0!=(t===0),description:"Hue rotation in degrees added per instance",ui:{type:["range","map"],min:0,max:360,step:1,label:"Hue Shift",group:"Instances"}},phase:{default:0,description:"Seamless layout animation phase (0-1 wraps to the identical layout)",ui:{type:["range","map"],min:0,max:1,step:.001,label:"Phase",group:"Instances"}},zOrder:{default:"forward",transform:e=>e==="backward"?1:0,compileTime:!0,description:"Stacking order of overlapping instances",ui:{type:"select",options:[{label:"Forward",value:"forward"},{label:"Backward",value:"backward"}],label:"Z-Order",group:"Instances"}},jitterPosition:{default:0,description:"Random per-instance position offset",ui:{type:["range","map"],min:0,max:1,step:.005,label:"Position",group:"Jitter"}},jitterRotation:{default:0,description:"Random per-instance rotation",ui:{type:["range","map"],min:0,max:1,step:.005,label:"Rotation",group:"Jitter"}},jitterScale:{default:0,description:"Random per-instance scale variation",ui:{type:["range","map"],min:0,max:1,step:.005,label:"Scale",group:"Jitter"}},jitterOpacity:{default:0,description:"Random per-instance opacity variation",ui:{type:["range","map"],min:0,max:1,step:.005,label:"Opacity",group:"Jitter"}},seed:{default:0,description:"Random seed for the jitter values",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Jitter"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r,propValues:a,childBoundsParams:i,ownBoundsParams:l,convertToTexture:c}=e;if(!s)return me;let d=c(s).key,u={grid:0,radial:1,linear:2},p={none:0,"alternate-flip-x":1,"alternate-flip-y":2,both:3},m=typeof a.mode=="number"?a.mode:u[a.mode]??0,_=typeof a.flip=="number"?a.flip:p[a.flip]??0,v=a.zOrder==="backward"||a.zOrder===1,h=(a.hueShift??0)!==0,y=Math.PI;return new mo(x=>{let g=G=>t[G]._emit(x),w=G=>Tr(G),f=x.freshLocal("rep"),A=[],E=`${f}_uv`;A.push(`let ${E} = ${r.uv._emit(x)};`),A.push(`let ${f}_aspect = ${r.aspect._emit(x)};`),A.push(`let ${f}_pix = vec2f(${E}.x * ${f}_aspect, ${E}.y);`);let P=i?i.centerX._emit(x):w(.5),C=i?i.centerY._emit(x):w(.5),$=i?i.halfWidth._emit(x):w(.5),U=i?i.halfHeight._emit(x):w(.5);A.push(`let ${f}_cropL = ${g("cropLeft")};`),A.push(`let ${f}_cropR = ${g("cropRight")};`),A.push(`let ${f}_cropT = ${g("cropTop")};`),A.push(`let ${f}_cropB = ${g("cropBottom")};`),A.push(`let ${f}_srcCx = (${P}) + (${f}_cropL - ${f}_cropR) * (${$});`),A.push(`let ${f}_srcCy = (${C}) + (${f}_cropT - ${f}_cropB) * (${U});`),A.push(`let ${f}_srcHw = max((${$}) * (1.0 - ${f}_cropL - ${f}_cropR), ${w(1e-6)});`),A.push(`let ${f}_srcHh = max((${U}) * (1.0 - ${f}_cropT - ${f}_cropB), ${w(1e-6)});`),A.push(`let ${f}_srcHwSq = ${f}_srcHw * ${f}_aspect;`),A.push(`let ${f}_srcHhSq = ${f}_srcHh;`);let k=l?l.centerX._emit(x):w(.5),R=l?l.centerY._emit(x):w(.5),D=l?l.halfWidth._emit(x):w(.5),M=l?l.halfHeight._emit(x):w(.5);A.push(`let ${f}_fieldCenterSq = vec2f((${k}) * ${f}_aspect, ${R});`),A.push(`let ${f}_fieldHwSq = max((${D}) * ${f}_aspect, ${w(1e-6)});`),A.push(`let ${f}_fieldHh = max(${M}, ${w(1e-6)});`),A.push(`let ${f}_phase = ${g("phase")};`),A.push(`let ${f}_seed = ${g("seed")};`);let z=m===0?`(${g("columns")} * ${g("rows")})`:g("count");A.push(`let ${f}_totalN = min(max(${z}
247, 1.0), 64.0);`),A.push(`var ${f}_accum = vec4f(0.0, 0.0, 0.0, 0.0);`),A.push(`var ${f}_cellFitInv = 1.0;`);let L=[];if(L.push(`let ${f}_fi = f32(${f}_i);`),L.push(v?`let ${f}_j = ${f}_totalN - 1.0 - ${f}_fi;`:`let ${f}_j = ${f}_fi;`),L.push(`var ${f}_pos = vec2f(0.0, 0.0);`),L.push(`var ${f}_layoutRot = 0.0;`),L.push(`var ${f}_flipX = 1.0;`),L.push(`var ${f}_flipY = 1.0;`),m===0)L.push(`let ${f}_cols = ${g("columns")};`),L.push(`let ${f}_rows = ${g("rows")};`),L.push(`let ${f}_col = ${f}_j - ${f}_cols * floor(${f}_j / ${f}_cols);`),L.push(`let ${f}_row = floor(${f}_j / ${f}_cols);`),L.push(`let ${f}_gapXSq = ${g("gapX")} * ${f}_aspect;`),L.push(`let ${f}_gapY = ${g("gapY")};`),L.push(`let ${f}_fieldW = ${f}_fieldHwSq * 2.0;`),L.push(`let ${f}_fieldH = ${f}_fieldHh * 2.0;`),L.push(`let ${f}_pitchX = (${f}_fieldW - ${f}_gapXSq * (${f}_cols - 1.0)) / ${f}_cols;`),L.push(`let ${f}_pitchY = (${f}_fieldH - ${f}_gapY * (${f}_rows - 1.0)) / ${f}_rows;`),L.push(`let ${f}_periodX = ${f}_pitchX + ${f}_gapXSq;`),L.push(`let ${f}_periodY = ${f}_pitchY + ${f}_gapY;`),L.push(`${f}_cellFitInv = max(${f}_srcHwSq * 2.0 / max(${f}_pitchX, ${w(1e-5)}), ${f}_srcHhSq * 2.0 / max(${f}_pitchY, ${w(1e-5)}));`),L.push(`let ${f}_rowMod2 = ${f}_row - 2.0 * floor(${f}_row / 2.0);`),L.push(`let ${f}_staggerOff = ${f}_rowMod2 * ${g("stagger")} * ${f}_periodX;`),L.push(`let ${f}_cxArg = ${f}_col * ${f}_periodX + ${f}_staggerOff + ${f}_phase * ${f}_periodX;`),L.push(`let ${f}_cxMod = ${f}_periodX * ${f}_cols;`),L.push(`let ${f}_cellX = ${f}_cxArg - ${f}_cxMod * floor(${f}_cxArg / ${f}_cxMod);`),L.push(`let ${f}_cyArg = ${f}_row * ${f}_periodY + ${f}_phase * ${f}_periodY;`),L.push(`let ${f}_cyMod = ${f}_periodY * ${f}_rows;`),L.push(`let ${f}_cellY = ${f}_cyArg - ${f}_cyMod * floor(${f}_cyArg / ${f}_cyMod);`),L.push(`${f}_pos = vec2f(${f}_fieldCenterSq.x - ${f}_fieldW * 0.5 + ${f}_pitchX * 0.5 + ${f}_cellX, ${f}_fieldCenterSq.y - ${f}_fieldH * 0.5 + ${f}_pitchY * 0.5 + ${f}_cellY);`),(_===1||_===3)&&L.push(`${f}_flipX = 1.0 - (${f}_col - 2.0 * floor(${f}_col / 2.0)) * 2.0;`),(_===2||_===3)&&L.push(`${f}_flipY = 1.0 - (${f}_row - 2.0 * floor(${f}_row / 2.0)) * 2.0;`);else{let G=i?`vec2f((${i.centerX._emit(x)}) * ${f}_aspect, ${i.centerY._emit(x)})`:`${f}_fieldCenterSq`;L.push(`let ${f}_cSq = ${G};`),m===1?(L.push(`let ${f}_sweep = ${g("sweep")} * ${w(y/180)};`),L.push(`let ${f}_start = ${g("startAngle")} * ${w(y/180)};`),L.push(`let ${f}_ang = ${f}_start + ${f}_sweep * (${f}_j / ${f}_totalN) + ${f}_phase * ${f}_sweep;`),L.push(`${f}_pos = ${f}_cSq + vec2f(cos(${f}_ang), sin(${f}_ang)) * ${g("radius")};`),L.push(`${f}_layoutRot = select(0.0, ${f}_ang + ${w(y/2)}, ${g("faceCenter")} > 0.0);`)):(L.push(`let ${f}_dirRad = ${g("direction")} * ${w(y/180)};`),L.push(`let ${f}_dir = vec2f(cos(${f}_dirRad), sin(${f}_dirRad));`),L.push(`let ${f}_tArg = ${f}_j + ${f}_phase;`),L.push(`let ${f}_t = ${f}_tArg - ${f}_totalN * floor(${f}_tArg / ${f}_totalN);`),L.push(`${f}_pos = ${f}_cSq + ${f}_dir * ${g("spacing")} * ${f}_t;`))}L.push(`let ${f}_hashBase = ${f}_j + ${f}_seed * 7.0;`);let B=G=>`fract(sin((${f}_hashBase + ${w(G)}) * 78.233) * 43758.5453)`;L.push(`let ${f}_h1 = ${B(.123)};`),L.push(`let ${f}_h2 = ${B(5.456)};`),L.push(`let ${f}_h3 = ${B(9.789)};`),L.push(`let ${f}_h4 = ${B(13.21)};`),L.push(`let ${f}_h5 = ${B(17.65)};`),L.push(`let ${f}_scale = max(pow(${g("instanceScale")}, ${f}_j) * (1.0 + ${g("jitterScale")} * (${f}_h3 - 0.5)), ${w(1e-4)});`),L.push(`let ${f}_rot = ${f}_layoutRot + ${g("instanceRotation")} * ${f}_j + ${g("jitterRotation")} * (${f}_h4 - 0.5) * ${w(y*2)};`),L.push(`let ${f}_instOpacity = pow(${g("instanceOpacity")}, ${f}_j) * (1.0 - ${g("jitterOpacity")} * ${f}_h5);`),L.push(`${f}_pos = ${f}_pos + vec2f((${f}_h1 - 0.5) * ${f}_fieldHwSq, (${f}_h2 - 0.5) * ${f}_fieldHh) * ${g("jitterPosition")};`),L.push(`let ${f}_negRot = -${f}_rot;`),L.push(`let ${f}_cosA = cos(${f}_negRot);`),L.push(`let ${f}_sinA = sin(${f}_negRot);`),L.push(`let ${f}_d0 = ${f}_pix - ${f}_pos;`),L.push(`let ${f}_dr = vec2f(${f}_d0.x * ${f}_cosA - ${f}_d0.y * ${f}_sinA, ${f}_d0.x * ${f}_sinA + ${f}_d0.y * ${f}_cosA);`),L.push(`let ${f}_dl = ${f}_dr / ${f}_scale;`),L.push(`let ${f}_localU = ${f}_dl.x * ${f}_flipX * ${f}_cellFitInv / (${f}_srcHwSq * 2.0) + 0.5;`),L.push(`let ${f}_localV = ${f}_dl.y * ${f}_flipY * ${f}_cellFitInv / (${f}_srcHhSq * 2.0) + 0.5;`);let N=[];N.push(`let ${f}_sampleUV = vec2f(${f}_srcCx - ${f}_srcHw + ${f}_localU * ${f}_srcHw * 2.0, ${f}_srcCy - ${f}_srcHh + ${f}_localV * ${f}_srcHh * 2.0);`),N.push(`let ${f}_src = textureSampleLevel(tex.$.${d}, samp.$.linearClamp, ${f}
247_sampleUV, 0.0);`),N.push(`var ${f}_rgb = ${f}_src.rgb;`),h&&(N.push(`let ${f}_hueAngle = ${g("hueShift")} * ${f}_j;`),N.push(`let ${f}_cosH = cos(${f}_hueAngle);`),N.push(`let ${f}_sinH = sin(${f}_hueAngle);`),N.push(`let ${f}_kOMC = (1.0 - ${f}_cosH) * ${w(1/3)};`),N.push(`let ${f}_sOS3 = ${f}_sinH / 1.7320508075688772;`),N.push(`let ${f}_mA = ${f}_cosH + ${f}_kOMC;`),N.push(`let ${f}_mB = ${f}_kOMC - ${f}_sOS3;`),N.push(`let ${f}_mC = ${f}_kOMC + ${f}_sOS3;`),N.push(`${f}_rgb = vec3f(${f}_src.r * ${f}_mA + ${f}_src.g * ${f}_mB + ${f}_src.b * ${f}_mC, ${f}_src.r * ${f}_mC + ${f}_src.g * ${f}_mA + ${f}_src.b * ${f}_mB, ${f}_src.r * ${f}_mB + ${f}_src.g * ${f}_mC + ${f}_src.b * ${f}_mA);`)),N.push(`let ${f}_a = ${f}_src.a * ${f}_instOpacity;`),N.push(`let ${f}_premul = ${f}_rgb * ${f}_a;`),N.push(`${f}_accum = vec4f(${f}_premul + ${f}_accum.rgb * (1.0 - ${f}_a), ${f}_a + ${f}_accum.a * (1.0 - ${f}_a));`),L.push(`if (${f}_localU >= 0.0 && ${f}_localU <= 1.0 && ${f}_localV >= 0.0 && ${f}_localV <= 1.0) {`);for(let G of N)L.push(`  ${G}`);L.push("}"),A.push(`for (var ${f}_i = 0u; ${f}_i < u32(${f}_totalN); ${f}_i++) {`);for(let G of L)A.push(`  ${G}`);A.push("}");for(let G of A)x.statement(G);return T(Re,"unpremultiplyAlpha",[rr(`${f}_accum`)])._emit(x)})}};var xH=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=o.vec2f(__tsover_mul(c.x,d),c.y),p=o.vec2f(__tsover_mul(t.x,d),__tsover_sub(1,t.y));return Is(dm(__tsover_sub(u.x,p.x),__tsover_sub(u.y,p.y),s,r),a,i,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"thickness"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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"]
vendor: 2,140 bytes, line 247
247]],[13,"dist",[6,[7,"sdf","ringSdf"],["dx","dy","radius","thickness"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["d","sdf"]},externals:()=>({d:o,sdf:ft})})&&e.f)({})),eR={name:"Ring",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"}},computeBounds(e,t,s){let r=e.radius??.5,a=e.thickness??0,i=e.center?.x??.5,l=e.center?.y??.5,c=(r+a)*2*s;return{centerXPx:i*t,centerYPx:l*s,widthPx:c,heightPx:c,rotationDeg:0}},writeBounds(e,t,s,r){let a=t.thickness??0,i=Math.max(0,e.widthPx/(2*r));return{center:{...t.center??{x:.5,y:.5},x:e.centerXPx/s,y:e.centerYPx/r},radius:Math.max(0,i-a)}}},category:"Shapes",description:"Annular ring (donut) with adjustable radius and band thickness",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the ring",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the ring",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.3,description:"Distance from center to the ring's midline in UV space",ui:{type:"range",min:0,max:1,step:.01,label:"Radius",group:"Shape"}},thickness:{default:.07,description:"Half-width of the ring band \u2014 total ring width is twice this value",ui:{type:"range",min:.005,max:.3,step:.005,label:"Thickness",group:"Shape"}},softness:{default:0,description:"Edge softness for antialiasing (applied to both inner and outer ring edges)",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:.1,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"Position of the stroke relative to the ring edge",ui:{type:"select",options:[{label:"Outside",value:"outside"},{label:"Center",value:"center"},{label:"Inside",value:"inside"}],label:"Stroke Position",group:"Stroke"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(xH,"ringShape",[t.center,t.radius,t.thickness,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var bH=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(d.x,d.y),p=__tsover_sub(__tsover_mul(c.x,u),__tsover_mul(t.x,u)),m=__tsover_sub(c.y,__tsover_sub(1,t.y)),_=n.length(o.vec2f(p,m)),v=__tsover_add(__tsover_sub(__tsover_mul(_,s),l),i),h=n.sin(v),y=__tsover_sub(__tsover_mul(a,2),1),x=n.smoothstep(__tsover_sub(y,r),__tsover_add(y,r),h);return __tsover_sub(1,x)}),{v:1,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,[7,"std","length"],[[6,[7,"d","vec2f"],["dx","dy"]]]]],[13,"waveInput",[1,[1,[1,"dist","*","frequency"],"-","animTime"],"+","phase"]],[13,"baseWave",[6,[7,"std","sin"],["waveInput"]]],[13,"thicknessThreshold",[1,[1,"thickness","*",[5,"2"]],"-",[5,"1"]]],[13,"banded",[6,[7,"std","smoothstep"],[[1,"thicknessThreshold","-","softness"],[1,"thicknessThreshold","+","softness"],"baseWave"]]],[10,[1,[5,"1"],"-","banded"]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),tR={name:"Ripples",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:we,description:"The center point where ripples emanate from",ui:{type:"position",label:"Center",group:"Position"}},colorA:{default:"#ffffff",transform:O,description:"Color of the ripple waves",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",transform:O,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"}}},fragment:e=>{let{uniforms:t,ctx:s}=e,r=e.uvContext??s.uv,a=e.effectiveViewportSize??s.viewportSize,i=Fe(e),l=T(bH,"ripplesMask",[t.center,t.frequency,t.softness,t.thickness,t.phase,i,r,a]);return T(Be,"mixColors",[t.colorB,t.colorA,l])}};var wH=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(pm(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"width"},{type:"i",name:"height"},{type:"i",name:"rounding"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","roundedRectSdf"],[[7,"local","x"],[7,"local","y"],"width","height","rounding"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),sR={name:"RoundedRect",category:"Shapes",description:"Rounded rectangle with adjustable width, height, and corner rounding",acceptsUVContext:!0,boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"width",as:"half-canvas-height"},height:{prop:"height",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},props:{origin:{default:"center",description:"Reference edge the center position is measured from (ce
247nter default). Lets you pin the shape relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},color:{default:"#ffffff",transform:O,description:"Fill color of the rectangle",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the rectangle",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},width:{default:.35,description:"Half-width of the rectangle",ui:{type:"range",min:.01,max:1,step:.01,label:"Width",group:"Shape"}},height:{default:.25,description:"Half-height of the rectangle",ui:{type:"range",min:.01,max:1,step:.01,label:"Height",group:"Shape"}},rounding:{default:.05,description:"Corner rounding radius \u2014 set to min(width, height) for a pill shape",ui:{type:"range",min:0,max:.5,step:.01,label:"Rounding",group:"Shape",dimensional:"canvas-height"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(wH,"roundedRectShape",[t.center,t.width,t.height,t.rounding,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var TH=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=o.vec3f(t.x,t.y,t.z),a=n.dot(r,o.vec3f(.2126,.7152,.0722)),i=o.vec3f(a,a,a),l=n.mix(i,r,o.vec3f(s));return o.vec4f(l.x,l.y,l.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"intensity"}],body:[0,[[13,"rgb",[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"luminance",[6,[7,"std","dot"],["rgb",[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[13,"gray",[6,[7,"d","vec3f"],["luminance","luminance","luminance"]]],[13,"saturated",[6,[7,"std","mix"],["gray","rgb",[6,[7,"d","vec3f"],["intensity"]]]]],[10,[6,[7,"d","vec4f"],[[7,"saturated","x"],[7,"saturated","y"],[7,"saturated","z"],[7,"color","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),oR={name:"Saturation",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Adjust color saturation intensity",requiresChild:!0,props:{intensity:{default:1,description:"The intensity of the saturation effect (1 being no change)",compileTimeWhen:(e,t)=>e===1!=(t===1),ui:{type:["range","map"],min:0,max:3,step:.1,label:"Intensity",group:"Adjustments"}}},fragment:({uniforms:e,childNode:t,propValues:s})=>t?(s.intensity??1)===1?t:T(TH,"saturationColor",[t,e.intensity]):(console.error("You must pass a child component into the Saturation shader."),me)};var SH=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_div(s.x,s.y);return Ux(o.vec2f(__tsover_mul(t.x,c),t.y).mul(n.exp(r)).add(a),i,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"animTime"},{type:"i",name:"thickness"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[6,[7,"noise","scratches12"],["pos","animTime","thickness"]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),rR={name:"Scratches",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Fine hairline scratches, like a worn film or scratched surface",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{...nM(),scale:{default:2,description:"Pattern scale (higher = more, finer scratches)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},thickness:{default:1,description:"Thickness of the scratches (higher = bolder streaks)",ui:{type:"range",min:.2,max:5,step:.01,label:"Thickness",group:"Effect"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Effect"}},...sn()},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Ir(e,T(SH,"scratchesField",[t,s,e.uniforms.scale,e.uniforms.seed,r,e.uniforms.thickness]))}};var mh=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";return o.vec2f(__tsover_add(t.x,__tsover_div(r,s.x)),__tsover_add(t.y,__tsover_div(a,s.y)))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,"dirX","/",[7,"viewport","x"]]],[1,[7,"uv","y"],"+",[1,"dirY","/",[7,"viewport","y"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),AH=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_add(1,__tsover_mul(l,4)),d=__tsover_mul(l,-1),u=t.xyz.mul(c).add(s.xyz.mul(d)).add(r.xyz.mul(d)).add(a.xyz.mul(d)).add(i.xyz.mul(d)),p=n.clamp(u,o.vec3f(0,0,0),o.vec3f(1,1,1));return o.vec4f(p.x,p.y,p.z,t.w)}),{v:1,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,[7,"std","clamp"],["rgb",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"clamped","x"],[7,"clamped","y"],[7,"clamped","z"],[7,"center","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),aR={name:"Sharpness",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Adjust image sharpness using a convolution kernel",requiresRTT:!0,requiresChild:!0,props:{sharpness:{default:0,description:"How sharp to make the underlying image",compileTimeWhen:(e,t)=>e===0!=(t===0),ui:{type:["range","map"],min:0,max:5,step:.1,label:"Sharpness",group:"Adjustments"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return me;let i=a(t);
247if((r.sharpness??0)===0)return T(Re,"unpremultiplyAlpha",[i.sample(s.uv)]);let l=s.viewportSize;return T(Re,"unpremultiplyAlpha",[T(AH,"sharpnessCompose",[i.sample(s.uv),i.sample(T(mh,"sharpnessTapUV",[s.uv,l,le(0),le(1)])),i.sample(T(mh,"sharpnessTapUV",[s.uv,l,le(0),le(-1)])),i.sample(T(mh,"sharpnessTapUV",[s.uv,l,le(-1),le(0)])),i.sample(T(mh,"sharpnessTapUV",[s.uv,l,le(1),le(0)])),e.sharpness])])}};var Ru=e=>{let t=Math.sin(e)*1e4;return t-Math.floor(t)},on=16,Jc=1024,iR="rgba16float",$u=on*4,u_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({cellPos:{storage:o.arrayOf(o.f32,on*2),access:"readonly"},voronoiTex:{storageTexture:o.textureStorage2d(iR,"write-only")}}),"voronoiLayout"),nR=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(__tsover_add(o.f32(t),.5),Jc),a=__tsover_div(__tsover_add(o.f32(s),.5),Jc),i=o.f32(99999),l=o.f32(99999),c=o.f32(0),d=o.f32(0);for(let u=0;u<on;u++){let p=u_.$.cellPos[__tsover_mul(u,2)],m=u_.$.cellPos[__tsover_add(__tsover_mul(u,2),1)],_=__tsover_sub(r,p),v=__tsover_sub(a,m),h=__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v));h<i?(l=i,d=c,i=h,c=o.f32(u)):h<l&&(l=h,d=o.f32(u))}n.textureStore(u_.$.voronoiTex,o.vec2u(t,s),o.vec4f(c,d,0,0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","VORONOI_SIZE"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","VORONOI_SIZE"]],[12,"d1",[6,[7,"d","f32"],[[5,"99999"]]]],[12,"d2",[6,[7,"d","f32"],[[5,"99999"]]]],[12,"idx1",[6,[7,"d","f32"],[[5,"0"]]]],[12,"idx2",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","SHARD_COUNT"],[102,"++","i"],[0,[[13,"cellX",[8,[7,[7,"voronoiLayout","$"],"cellPos"],[1,"i","*",[5,"2"]]]],[13,"cellY",[8,[7,[7,"voronoiLayout","$"],"cellPos"],[1,[1,"i","*",[5,"2"]],"+",[5,"1"]]]],[13,"ddx",[1,"u","-","cellX"]],[13,"ddy",[1,"v","-","cellY"]],[13,"distSq",[1,[1,"ddx","*","ddx"],"+",[1,"ddy","*","ddy"]]],[11,[1,"distSq","<","d1"],[0,[[2,"d2","=","d1"],[2,"idx2","=","idx1"],[2,"d1","=","distSq"],[2,"idx1","=",[6,[7,"d","f32"],["i"]]]]],[0,[[11,[1,"distSq","<","d2"],[0,[[2,"d2","=","distSq"],[2,"idx2","=",[6,[7,"d","f32"],["i"]]]]]]]]]]]],[6,[7,"std","textureStore"],[[7,[7,"voronoiLayout","$"],"voronoiTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["idx1","idx2",[5,"0"],[5,"0"]]]]]]],externalNames:["d","VORONOI_SIZE","SHARD_COUNT","voronoiLayout","std"]},externals:()=>({d:o,VORONOI_SIZE:Jc,SHARD_COUNT:on,voronoiLayout:u_,std:n})})&&e.f)({})).$name("shatterVoronoi"),EH=b.fn([o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return o.vec2f(__tsover_div(__tsover_add(__tsover_add(__tsover_mul(t,4),s),.5),$u),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"idx"},{type:"i",name:"field"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[1,[1,[1,"idx","*",[5,"4"]],"+","field"],"+",[5,"0.5"]],"/","DATA_WIDTH"],[5,"0.5"]]]]]],externalNames:["d","DATA_WIDTH"]},externals:()=>({d:o,DATA_WIDTH:$u})})&&e.f)({})),Fb=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({crackIntensity:o.f32,edgeNormal:o.vec2f,displacedUV:o.vec2f,disp:o.vec2f}),"ShatterGeom"),MH=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],Fb)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=o.vec2f(s,r),p=o.vec2f(a,i),m=o.vec2f(l,c),_=n.length(t.sub(u)),v=n.length(t.sub(p)),h=n.length(m),y=__tsover_sub(v,_),x=__tsover_mul(d,.005),g=__tsover_sub(1,n.smoothstep(0,x,y)),w=n.smoothstep(0,.01,h),f=__tsover_mul(g,w),A=n.normalize(t.sub(u));return Fb({crackIntensity:f,edgeNormal:o.vec2f(__tsover_mul(A.y,-1),A.x),displacedUV:t.sub(m),disp:m})}),{v:1,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,[7,"d","vec2f"],["nPosX","nPosY"]]],[13,"secondPos",[6,[7,"d","vec2f"],["sPosX","sPosY"]]],[13,"disp",[6,[7,"d","vec2f"],["dispX","dispY"]]],[13,"minDist1",[6,[7,"std","length"],[[6,[7,"uv","sub"],["nearestPos"]]]]],[13,"minDist2",[6,[7,"std","length"],[[6,[7,"uv","sub"],["secondPos"]]]]],[13,"displacementMag",[6,[7,"std","length"],["disp"]]],[13,"edgeDiff",[1,"minDist2","-","minDist1"]],[13,"crackThreshold",[1,"crackWidth","*",[5,"0.005"]]],[13,"baseCrackIntensity",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],"crackThreshold","edgeDiff"]]]],[13,"displacementFactor",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.01"],"displacementMag"]]],[13,"crackIntensity",[1,"baseCrackIntensity","*","displacementFactor"]],[13,"toNearest",[6,[7,"std","normalize"],[[6,[7,"uv","sub"],["nearestPos"]]]]],[13,"edgeNormal",[6,[7,"d","vec2f"],[[1,[7,"toNearest","y"],"*",[4,"-",[5,"1"]]],[7,"toNearest","x"]]]],[13,"displacedUV",[6,[7,"uv","sub"],["disp"]]],[10,[6,"ShatterGeom",[[104,{crackIntensity:"crackIntensity",edgeNormal:"edgeNormal",displacedUV:"displacedUV",disp:"disp"}]]]]]],externalNames:["d","std","ShatterGeom"]},externals:()=>({d:o,std:n,ShatterGeom:Fb})})&&e.f)({})),CH=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=s.mul(__tsover_mul(a,.01)),d=__tsover_mul(i,.005),u=s.mul(__tsover_mul(l,d)),p=c.add(u);return t.add(p.mul(r))}),{v:1,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"]]]]]]],externalNames:[]},externals:()=>({})})&&e.f)({})),PH=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.f32,o.vec2f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=o.vec3f(s.x,r.y,a.z),u=t.xyz.mul(__tsover_sub(1,i)).add(d.mul(i)),p=n.length(l),m=__tsover_div(l.x,__tsover_add(p,.001)),_=__tsover_div(l.y,__tsover_add(p,.001)),v=n.normalize(o.vec2f(.3,.6)),h=__tsover_add(__tsover_mul(m,v.x),__tsover_mul(_,v.y)),y=__tsover_add(1,__tsover_mul(h,c)),x=n.smoothstep(0,.02,p),g=__tsover_add(1,__tsover_mul(__tsover_sub(y,1),x)),w=u.mul(g);return o.vec4f(w,t.w)}),{v:1,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,[7,"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,[7,"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,"lightDir3D",[6,[7,"std","normalize"],[[6,[7,"d","vec2f"],[[5,"0.3"],[5,"0.6"]]]]]],[13,"normalDot",[1,[1,"tiltX","*",[7,"lightDir3D","x"]],"+",[1,"tiltY","*",[7,"lightDir3D","y"]]]],[13,"lightingFactor",[1,[5,"1"],"+",[1,"normalDot","*","shardLighting"]]],[13,"lightingIntensity",[6,[7,"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,[7,"d","vec4f"],["finalRGB",[7,"normalColor","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),lR={name:"Shatter",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Broken glass effect with tectonic plate displacement",requiresRTT:!0,requiresChild:!0,usesPointer:!0,props:{crackWidth:{default:1,description:"Thickness of crack lines",ui:{type:["range","map"],min:.5,max:5,step:.1,label:"Crack Width",group:"Effect"}},intensity:{default:4,description:"How much shards shift",ui:{type:"range",min:0,max:20,step:1,label:"Intensity",group:"Effect"}},radius:{default:.4,description:"Cursor influence radius",ui:{type:"range",min:.1,max:1,step:.1,label:"Radius",group:"Effect"}},decay:{default:1,description:"How fast shards return to rest",ui:{type:"range",min:.1,max:10,step:.1,label:"Decay",group:"Effect"}},seed:{default:2,description:"Random seed for pattern",ui:{type:"range",min:0,max:50,step:1,label:"Seed",group:"Effect"}},chromaticSplit:{default:1,description:"RGB separation for prismatic glass effect",ui:{type:["range","map"],min:0,max:5,step:.1,label:"Chromatic Split",group:"Effect"}},refractionStrength:{default:5,description:"How much cracks bend/distort the underlying image",ui:{type:["range","map"],min:0,max:10,step:.1,label:"Refraction",group:"Effect"}},shardLighting:{default:.1,description:"Subtle lighting on tilted shards for 3D depth",ui:{type:"range",min:0,max:.5,step:.1,label:"Shard Lighting",group:"Effect"}},edges:{default:"mirror",description:"How to handle edges when displacement pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"}
vendor: 8,600 bytes, line 247
247,{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},compute:e=>{let{gpu:t,registerComputeTexture:s,getCpuValue:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=Rt(i,o.f32,on*2),c=(globalThis.__TYPEGPU_AUTONAME__??(h=>h))(i.createTexture({size:[Jc,Jc],format:iR}).$usage("storage","sampled"),"voronoiTex");a(()=>c.destroy());let d=s(c),u=i.createBindGroup(u_,{cellPos:l,voronoiTex:c}),p=pt(i,(h=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(h.f=((y,x)=>{"use gpu";nR(y,x)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"voronoiKernel",["cx","cy"]]]],externalNames:["voronoiKernel"]},externals:()=>({voronoiKernel:nR})})&&h.f)({}),{size:[Jc,Jc],bindGroup:u}),m=h=>{let y=new Float32Array(on*2);for(let x=0;x<on;x++)y[x*2]=Ru(h+x*2),y[x*2+1]=Ru(h+x*2+1);l.write(y)},_=r("seed")??2;m(_);let v=!0;return{outputs:{voronoiField:d},getComputeNodes:()=>{let h=r("seed")??2;return h!==_&&(_=h,m(_),v=!0),v?(v=!1,[p]):null}}},fragment:e=>{let{childNode:t,ctx:s,computeOutputs:r,propValues:a,convertToTexture:i}=e;if(!t)return me;let l=i(t),c=r?.voronoiField;if(!c)return T(Re,"unpremultiplyAlpha",[l.sample(s.uv)]);let{createDataTexture:d,registerMediaTexture:u,onBeforeRender:p,onCleanup:m,getCpuValue:_,dimensions:v}=e,h=a.edges??0,y=new Float32Array($u),x=new Uint16Array($u),g=new Float32Array(on*4),w=new Float32Array(on*4),f=j=>{for(let q=0;q<on;q++)g[q*4]=Ru(j+q*2),g[q*4+1]=Ru(j+q*2+1),g[q*4+2]=Ru(j+q*3),g[q*4+3]=Ru(j+q*3+1)},A=()=>{for(let j=0;j<on;j++)y[j*4]=g[j*4],y[j*4+1]=g[j*4+1],y[j*4+2]=w[j*4],y[j*4+3]=w[j*4+1];for(let j=0;j<$u;j++)x[j]=da(y[j])},E=_("seed")??2;f(E),A();let P=d({width:$u,height:1,format:"r16float",data:x,label:"shatter-cells"});m(()=>P.destroy());let C=u(()=>P.texture),$=1,U=.5,k=.5;p(j=>{let{pointer:q,deltaTime:te}=j,ne=Math.min(te,.016),oe=v.width/Math.max(1,v.height),pe=_("seed")??2;pe!==E&&(E=pe,f(E),w.fill(0));let _e=_("intensity")??4,ge=_("radius")??.4,Me=_("decay")??1,Se=ne>0?(q.x-U)/ne:0,Ae=ne>0?(q.y-k)/ne:0,Pe=Math.sqrt(Se*Se+Ae*Ae),De=5+_e*2;if(Pe>De){let ke=De/Pe;Se*=ke,Ae*=ke,Pe=De}for(let ke=0;ke<on;ke++){let Ge=g[ke*4],Oe=g[ke*4+1],qe=g[ke*4+2]-.5,We=g[ke*4+3]-.5,Ve=oe>=1?(Ge-q.x)*oe:Ge-q.x,Ne=oe>=1?Oe-q.y:(Oe-q.y)/oe,He=Math.sqrt(Ve*Ve+Ne*Ne),vt=w[ke*4],_t=w[ke*4+1],Ze=Math.max(.01,Me),it=Math.exp(-ne/Ze);vt*=it,_t*=it;let Tt=0,J=0;if(He<ge&&Pe>.01){let ce=Math.max(0,1-He/ge),xe=ce*ce,ye=xe*Pe*_e*ne*.5;Tt=Se*ye,J=Ae*ye;let Ee=xe*Pe*_e*ne*.1;Tt+=qe*Ee,J+=We*Ee}let be=Math.min(1,$*ne);w[ke*4]=vt+Tt*be,w[ke*4+1]=_t+J*be}A(),P.write(x),U=q.x,k=q.y});let R=c.sample(s.uv,"nearestClamp"),D=R.member("r"),M=R.member("g"),z="nearestClamp",L=(j,q)=>C.sample(T(EH,"cellDataUV",[j,le(q)]),z).member("r"),B=T(MH,"shatterGeom",[s.uv,L(D,0),L(D,1),L(M,0),L(M,1),L(D,2),L(D,3),e.uniforms.crackWidth]),N=B.member("crackIntensity"),G=B.member("edgeNormal"),I=B.member("displacedUV"),X=B.member("disp"),F=j=>Gt(j,q=>l.sample(q),h),Q=F(I),ae=j=>T(CH,"shatterRefractUV",[I,G,N,e.uniforms.refractionStrength,e.uniforms.chromaticSplit,le(j)]);return T(Re,"unpremultiplyAlpha",[T(PH,"shatterCompose",[Q,F(ae(1)),F(ae(0)),F(ae(-1)),N,X,e.uniforms.shardLighting])])}};var kH=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_div(s.x,s.y),u=o.vec2f(__tsover_mul(t.x,d),t.y).mul(n.exp(r)).add(a),p=Io(o.vec3f(u.x,u.y,__tsover_mul(c,.5))),m=__tsover_add(__tsover_mul(p,__tsover_add(i,1)),l),_=n.clamp(__tsover_add(__tsover_mul(m,.5),.5),0,1);return __tsover_sub(1,_)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"contrast"},{type:"i",name:"balance"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[13,"n",[6,[7,"noise","mxNoiseFloat3"],[[6,[7,"d","vec3f"],[[7,"pos","x"],[7,"pos","y"],[1,"animTime","*",[5,"0.5"]]]]]]],[13,"adjusted",[1,[1,"n","*",[1,"contrast","+",[5,"1"]]],"+","balance"]],[13,"k",[6,[7,"std","clamp"],[[1,[1,"adjusted","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[10,[1,[5,"1"],"-","k"]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),cR={name:"SimplexNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Organic noise with animated movement",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#ffffff",description:"First color",transform:O,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#000000",description:"Second color",transform:O,ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}},scale:{default:2,description:"Pattern scale (higher = larger patterns)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},balance:{default:0,description:"Balance between colors (negative = more colorB, positive = more colorA)",ui:{type:["range","map"],min:-1,max:1,step:.1,label:"Balance",group:"Effect"}},contrast:{default:0,description:"Pattern contrast (higher = sharper transitions)",ui:{type:["range","map"],min:-2,max:5,step:.1,label:"Contrast",group:"Effect"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Effect"}},speed:{default:1,description:"Animation speed",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Mm(e,T(kH,"simplexNoiseField",[t,s,e.uniforms.scale,e.uniforms.seed,e.uniforms.contrast,e.uniforms.balance,r]))}};var dR=Math.PI/180,uR=Math.PI*2,RH=b.fn([o.vec2f,o.vec2f,o.f32,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=__tsover_div(s.x,s.y),m=__tsover_mul(t.x,p),_=__tsover_mul(a.x,p),v=__tsover_sub(1,a.y),h=__tsover_sub(m,_),y=__tsover_sub(t.y,v),x=__tsover_mul(r,dR),g=n.cos(x),w=n.sin(x),f=__tsover_sub(__tsover_mul(h,g),__tsover_mul(y,w)),A=__tsover_add(__tsover_mul(h,w),__tsover_mul(y,g)),E=__tsover_add(__tsover_mul(__tsover_mul(f,i),uR),u),P=__tsover_mul(n.sin(E),l),C=n.abs(__tsover_sub(A,P)),$=__tsover_mul(c,.5),U=__tsover_mul(d,.5);return __tsover_sub(1,n.smoothstep(__tsover_sub($,U),__tsover_add($,U),C))}),{v:1,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,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectCorrectedX",[1,[7,"uv","x"],"*","aspect"]],[13,"centerX",[1,[7,"position","x"],"*","aspect"]],[13,"centerY",[1,[5,"1"],"-",[7,"position","y"]]],[13,"centeredX",[1,"aspectCorrectedX","-","centerX"]],[13,"centeredY",[1,[7,"uv","y"],"-","centerY"]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosAngle",[6,[7,"std","cos"],["angleRad"]]],[13,"sinAngle",[6,[7,"std","sin"],["angleRad"]]],[13,"rotatedX",[1,[1,"centeredX","*","cosAngle"],"-",[1,"centeredY","*","sinAngle"]]],[13,"rotatedY",[1,[1,"centeredX","*","sinAngle"],"+",[1,"centeredY","*","cosAngle"]]],[13,"waveInput",[1,[1,[1,"rotatedX","*","frequency"],"*","TAU"],"+","animTime"]],[13,"sineWave",[1,[6,[7,"std","sin"],["waveInput"]],"*","amplitude"]],[13,"distanceFromWave",[6,[7,"std","abs"],[[1,"rotatedY","-","sineWave"]]]],[13,"halfThickness",[1,"thickness","*",[5,"0.5"]]],[13,"halfSoftness",[1,"softness","*",[5,"0.5"]]],[10,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"halfThickness","-","halfSoftness"],[1,"halfThickness","+","halfSoftness"],"distanceFromWave"]]]]]],externalNames:["DEG_TO_RAD","std","TAU"]},externals:()=>({DEG_TO_RAD:dR,std:n,TAU:uR})})&&e.f)({})),pR={name:"SineWave",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Animated wave with thickness and softness",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{color:{default:"#ffffff",transform:O,description:"The color of the sine wave",ui:{type:"color",label:"Color",group:"Colors"}}
247,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:Jt,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:we,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"}}},fragment:e=>{let{uniforms:t}=e,s=e.uvContext??e.ctx.uv,r=e.effectiveViewportSize??e.ctx.viewportSize,a=Fe(e),i=T(RH,"sineWaveMask",[s,r,t.angle,t.position,t.frequency,t.amplitude,t.thickness,t.softness,a]);return de(t.color.member("rgb"),t.color.member("a").mul(i))}};var wt=256,Fa=wt*wt,$H=10,mR=.8,_R=.2,hR="rgba16float",fR=en,yR=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({dt:o.f32,emitX:o.f32,emitY:o.f32,emitVelX:o.f32,emitVelY:o.f32,perpDirX:o.f32,perpDirY:o.f32,spreadFactor:o.f32,emitRad:o.f32,emitIntensity:o.f32,densDissip:o.f32,curlStrength:o.f32,gravity:o.f32,cursorX:o.f32,cursorY:o.f32,cursorVelX:o.f32,cursorVelY:o.f32,mouseActive:o.f32,mouseRadSq:o.f32,colorDecay:o.f32}),"FluidParams"),dt=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({velA:{storage:o.arrayOf(o.vec4f,Fa),access:"mutable"},velB:{storage:o.arrayOf(o.vec4f,Fa),access:"mutable"},densA:{storage:o.arrayOf(o.vec4f,Fa),access:"mutable"},densB:{storage:o.arrayOf(o.vec4f,Fa),access:"mutable"},pressure:{storage:o.arrayOf(o.f32,Fa),access:"mutable"},divergence:{storage:o.arrayOf(o.f32,Fa),access:"mutable"},params:{uniform:yR}}),"fluidLayout"),_h=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({densA:{storage:o.arrayOf(o.vec4f,Fa),access:"readonly"},outTex:{storageTexture:o.textureStorage2d(hR,"write-only")}}),"outputLayout"),vo=b.fn([o.i32,o.i32,o.i32,o.i32],o.u32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.clamp(__tsover_add(t,r),0,__tsover_sub(wt,1)),l=n.clamp(__tsover_add(s,a),0,__tsover_sub(wt,1));return o.u32(__tsover_add(__tsover_mul(i,wt),l))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"ii"},{type:"i",name:"ji"},{type:"i",name:"di"},{type:"i",name:"dj"}],body:[0,[[13,"row",[6,[7,"std","clamp"],[[1,"ii","+","di"],[5,"0"],[1,"N","-",[5,"1"]]]]],[13,"col",[6,[7,"std","clamp"],[[1,"ji","+","dj"],[5,"0"],[1,"N","-",[5,"1"]]]]],[10,[6,[7,"d","u32"],[[1,[1,"row","*","N"],"+","col"]]]]]],externalNames:["std","N","d"]},externals:()=>({std:n,N:wt,d:o})})&&e.f)({})),UH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=dt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(wt)),t),i=__tsover_add(o.f32(t),.5),l=__tsover_add(o.f32(s),.5),c=__tsover_sub(i,r.emitX),d=__tsover_sub(l,r.emitY),u=__tsover_add(__tsover_mul(c,c),__tsover_mul(d,d)),p=n.max(__tsover_mul(r.emitRad,r.emitRad),o.f32(1)),m=n.exp(__tsover_mul(__tsover_div(u,p),-1)),_=dt.$.densA[a],v=_.x,h=__tsover_mul(__tsover_mul(__tsover_mul(r.emitIntensity,m),r.dt),8),y=n.min(__tsover_add(v,h),1),x=__tsover_div(h,n.max(y,o.f32(.001)));dt.$.densA[a]=o.vec4f(y,__tsover_mul(_.y,__tsover_sub(1,n.min(x,1))),0,0);let g=dt.$.velA[a],w=__tsover_div(__tsover_add(__tsover_mul(c,r.perpDirX),__tsover_mul(d,r.perpDirY)),n.max(r.emitRad,o.f32(1))),f=n.max(__tsover_add(__tsover_mul(r.emitVelX,r.emitVelX),__tsover_mul(r.emitVelY,r.emitVelY)),o.f32(1)),A=__tsover_add(r.emitVelX,__tsover_mul(__tsover_mul(__tsover_mul(r.perpDirX,w),r.spreadFactor),n.sqrt(f))),E=__tsover_add(r.emitVelY,__tsover_mul(__tsover_mul(__tsover_mul(r.perpDirY,w),r.spreadFactor),n.sqrt(f))),P=n.min(__tsover_mul(__tsover_mul(m,r.dt),3),1),C=__tsover_mul(__tsover_mul(__tsover_mul(r.gravity,v),r.dt),__tsover_mul(wt,.08)),$=__tsover_sub(i,r.cursorX),U=__tsover_sub(l,r.cursorY),k=__tsover_add(__tsover_mul($,$),__tsover_mul(U,U)),R=__tsover_mul(n.exp(__tsover_mul(__tsover_div(k,n.max(r.mouseRadSq,o.f32(1))),-1)),r.mouseActive);dt.$.velA[a]=o.vec4f(__tsover_add(n.mix(g.x,A,P),__tsover_mul(r.cursorVelX,R)),__tsover_add(__tsover_add(n.mix(g.y,E,P),C),__tsover_mul(r.cursorVelY,R)),g.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"cellX",[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]]],[13,"cellY",[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]]],[13,"dx",[1,"cellX","-",[7,"p","emitX"]]],[13,"dy",[1,"cellY","-",[7,"p","emitY"]]],[13,"distSq",[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]],[13,"radSq",[6,[7,"std","max"],[[1,[7,"p","emitRad"],"*",[7,"p","emitRad"]
vendor: 16,384 bytes, line 247
247],[6,[7,"d","f32"],[[5,"1"]]]]]],[13,"influence",[6,[7,"std","exp"],[[1,[1,"distSq","/","radSq"],"*",[4,"-",[5,"1"]]]]]],[13,"cell",[8,[7,[7,"fluidLayout","$"],"densA"],"idx"]],[13,"oldDens",[7,"cell","x"]],[13,"addDens",[1,[1,[1,[7,"p","emitIntensity"],"*","influence"],"*",[7,"p","dt"]],"*",[5,"8"]]],[13,"newDens",[6,[7,"std","min"],[[1,"oldDens","+","addDens"],[5,"1"]]]],[13,"rejuvenate",[1,"addDens","/",[6,[7,"std","max"],["newDens",[6,[7,"d","f32"],[[5,"0.001"]]]]]]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],["newDens",[1,[7,"cell","y"],"*",[1,[5,"1"],"-",[6,[7,"std","min"],["rejuvenate",[5,"1"]]]]],[5,"0"],[5,"0"]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"perpOff",[1,[1,[1,"dx","*",[7,"p","perpDirX"]],"+",[1,"dy","*",[7,"p","perpDirY"]]],"/",[6,[7,"std","max"],[[7,"p","emitRad"],[6,[7,"d","f32"],[[5,"1"]]]]]]],[13,"vmSq",[6,[7,"std","max"],[[1,[1,[7,"p","emitVelX"],"*",[7,"p","emitVelX"]],"+",[1,[7,"p","emitVelY"],"*",[7,"p","emitVelY"]]],[6,[7,"d","f32"],[[5,"1"]]]]]],[13,"tvx",[1,[7,"p","emitVelX"],"+",[1,[1,[1,[7,"p","perpDirX"],"*","perpOff"],"*",[7,"p","spreadFactor"]],"*",[6,[7,"std","sqrt"],["vmSq"]]]]],[13,"tvy",[1,[7,"p","emitVelY"],"+",[1,[1,[1,[7,"p","perpDirY"],"*","perpOff"],"*",[7,"p","spreadFactor"]],"*",[6,[7,"std","sqrt"],["vmSq"]]]]],[13,"br",[6,[7,"std","min"],[[1,[1,"influence","*",[7,"p","dt"]],"*",[5,"3"]],[5,"1"]]]],[13,"gravForce",[1,[1,[1,[7,"p","gravity"],"*","oldDens"],"*",[7,"p","dt"]],"*",[1,"N","*",[5,"0.08"]]]],[13,"cursorDX",[1,"cellX","-",[7,"p","cursorX"]]],[13,"cursorDY",[1,"cellY","-",[7,"p","cursorY"]]],[13,"cursorDistSq",[1,[1,"cursorDX","*","cursorDX"],"+",[1,"cursorDY","*","cursorDY"]]],[13,"cursorInf",[1,[6,[7,"std","exp"],[[1,[1,"cursorDistSq","/",[6,[7,"std","max"],[[7,"p","mouseRadSq"],[6,[7,"d","f32"],[[5,"1"]]]]]],"*",[4,"-",[5,"1"]]]]],"*",[7,"p","mouseActive"]]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[6,[7,"std","mix"],[[7,"vel","x"],"tvx","br"]],"+",[1,[7,"p","cursorVelX"],"*","cursorInf"]],[1,[1,[6,[7,"std","mix"],[[7,"vel","y"],"tvy","br"]],"+","gravForce"],"+",[1,[7,"p","cursorVelY"],"*","cursorInf"]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:dt,d:o,N:wt,std:n})})&&e.f)({})).$name("smokeSplat"),DH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=o.i32(s),i=o.i32(t),l=dt.$.velA[vo(a,i,0,-1)],c=dt.$.velA[vo(a,i,0,1)],d=dt.$.velA[vo(a,i,-1,0)],u=dt.$.velA[vo(a,i,1,0)],p=__tsover_mul(__tsover_sub(__tsover_sub(c.y,l.y),__tsover_sub(u.x,d.x)),.5),m=dt.$.velA[r];dt.$.velA[r]=o.vec4f(m.x,m.y,p,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"vL",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"vR",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"vU",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"vD",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"curl",[1,[1,[1,[7,"vR","y"],"-",[7,"vL","y"]],"-",[1,[7,"vD","x"],"-",[7,"vU","x"]]],"*",[5,"0.5"]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"vel","x"],[7,"vel","y"],"curl",[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:wt,fluidLayout:dt,nidx:vo})})&&e.f)({})).$name("smokeCurl"),zH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=dt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(wt)),t),i=o.i32(s),l=o.i32(t),c=n.abs(dt.$.velA[vo(i,l,0,-1)].z),d=n.abs(dt.$.velA[vo(i,l,0,1)].z),u=n.abs(dt.$.velA[vo(i,l,-1,0)].z),p=n.abs(dt.$.velA[vo(i,l,1,0)].z),m=dt.$.velA[a].z,_=__tsover_mul(__tsover_sub(d,c),.5),v=__tsover_mul(__tsover_sub(p,u),.5),h=n.max(n.sqrt(__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v))),o.f32(1e-5)),y=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(v,h),m),r.curlStrength),r.dt),x=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(_,h),-1),m),r.curlStrength),r.dt),g=dt.$.velA[a];dt.$.velA[a]=o.vec4f(__tsover_add(g.x,y),__tsover_add(g.y,x),g.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"cL",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"z"]]]],[13,"cR",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"z"]]]],[13,"cU",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"z"]]]],[13,"cD",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"z"]]]],[13,"cc",[7,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"z"]],[13,"gx",[1,[1,"cR","-","cL"],"*",[5,"0.5"]]],[13,"gy",[1,[1,"cD","-","cU"],"*",[5,"0.5"]]],[13,"gl",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx","*","gx"],"+",[1,"gy","*","gy"]]]],[6,[7,"d","f32"],[[5,"0.00001"]]]]]],[13,"fx",[1,[1,[1,[1,"gy","/","gl"],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[13,"fy",[1,[1,[1,[1,[1,"gx","/","gl"],"*",[4,"-",[5,"1"]]],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"+","fx"],[1,[7,"vel","y"],"+","fy"],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","nidx"]},externals:()=>({fluidLayout:dt,d:o,N:wt,std:n,nidx:vo})})&&e.f)({})).$name("smokeVorticity"),IH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=o.i32(s),i=o.i32(t),l=o.f32(t),c=o.f32(s),d=dt.$.velA[r],u=dt.$.velA[vo(a,i,0,-1)].x,p=dt.$.velA[vo(a,i,0,1)].x,m=dt.$.velA[vo(a,i,-1,0)].y,_=dt.$.velA[vo(a,i,1,0)].y,v=n.select(u,__tsover_mul(d.x,-1),l<.5),h=n.select(p,__tsover_mul(d.x,-1),l>o.f32(__tsover_sub(wt,1.5))),y=n.select(m,__tsover_mul(d.y,-1),c<.5),x=n.select(_,__tsover_mul(d.y,-1),c>o.f32(__tsover_sub(wt,1.5))),g=__tsover_mul(__tsover_add(__tsover_sub(h,v),__tsover_sub(x,y)),.5);dt.$.pressure[r]=__tsover_mul(dt.$.pressure[r],mR),dt.$.divergence[r]=g}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"jf",[6,[7,"d","f32"],["cx"]]],[13,"iF",[6,[7,"d","f32"],["cy"]]],[13,"selfVel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"normalL",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"x"]],[13,"normalR",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"x"]],[13,"normalU",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"y"]],[13,"normalD",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"y"]],[13,"L",[6,[7,"std","select"],["normalL",[1,[7,"selfVel","x"],"*",[4,"-",[5,"1"]]],[1,"jf","<",[5,"0.5"]]]]],[13,"R",[6,[7,"std","select"],["normalR",[1,[7,"selfVel","x"],"*",[4,"-",[5,"1"]]],[1,"jf",">",[6,[7,"d","f32"],[[1,"N","-",[5,"1.5"]]]]]]]],[13,"T",[6,[7,"std","select"],["normalU",[1,[7,"selfVel","y"],"*",[4,"-",[5,"1"]]],[1,"iF","<",[5,"0.5"]]]]],[13,"B",[6,[7,"std","select"],["normalD",[1,[7,"selfVel","y"],"*",[4,"-",[5,"1"]]],[1,"iF",">",[6,[7,"d","f32"],[[1,"N","-",[5,"1.5"]]]]]]]],[13,"div",[1,[1,[1,"R","-","L"],"+",[1,"B","-","T"]],"*",[5,"0.5"]]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"*","PRESSURE_DISSIPATION"]],[2,[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"],"=","div"]]],externalNames:["d","N","fluidLayout","nidx","std","PRESSURE_DISSIPATION"]},externals:()=>({d:o,N:wt,fluidLayout:dt,nidx:vo,std:n,PRESSURE_DISSIPATION:mR})})&&e.f)({})).$name("smokeDivergence"),LH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=o.i32(s),i=o.i32(t),l=dt.$.pressure[vo(a,i,0,-1)],c=dt.$.pressure[vo(a,i,0,1)],d=dt.$.pressure[vo(a,i,-1,0)],u=dt.$.pressure[vo(a,i,1,0)],p=dt.$.divergence[r];dt.$.pressure[r]=__tsover_mul(__tsover_sub(__tsover_add(__tsover_add(__tsover_add(l,c),d),u),p),.25)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"div",[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[1,[1,[1,[1,"pL","+","pR"],"+","pU"],"+","pD"],"-","div"],"*",[5,"0.25"]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:wt,fluidLayout:dt,nidx:vo})})&&e.f)({})).$name("smokeJacobi"),FH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=o.i32(s),i=o.i32(t),l=dt.$.pressure[vo(a,i,0,-1)],c=dt.$.pressure[vo(a,i,0,1)],d=dt.$.pressure[vo(a,i,-1,0)],u=dt.$.pressure[vo(a,i,1,0)],p=dt.$.velA[r];dt.$.velA[r]=o.vec4f(__tsover_sub(p.x,__tsover_mul(__tsover_sub(c,l),.5)),__tsover_sub(p.y,__tsover_mul(__tsover_sub(u,d),.5)),p.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"-",[1,[1,"pR","-","pL"],"*",[5,"0.5"]]],[1,[7,"vel","y"],"-",[1,[1,"pD","-","pU"],"*",[5,"0.5"]]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:wt,fluidLayout:dt,nidx:vo})})&&e.f)({})).$name("smokeGradSubtract"),BH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=dt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(wt)),t),i=dt.$.velA[a],l=n.clamp(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),0,o.f32(__tsover_sub(wt,1))),c=n.clamp(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),0,o.f32(__tsover_sub(wt,1))),d=n.clamp(n.floor(l),0,o.f32(__tsover_sub(wt,2))),u=n.clamp(n.floor(c),0,o.f32(__tsover_sub(wt,2))),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=dt.$.velA[o.u32(__tsover_add(__tsover_mul(v,wt),_))],y=dt.$.velA[o.u32(__tsover_add(__tsover_add(__tsover_mul(v,wt),_),1))],x=dt.$.velA[o.u32(__tsover_add(__tsover_mul(__tsover_add(v,1),wt),_))],g=dt.$.velA[o.u32(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(v,1),wt),_),1))],w=__tsover_add(1,__tsover_mul(_R,r.dt));dt.$.velB[a]=o.vec4f(__tsover_div(n.mix(n.mix(h.x,y.x,p),n.mix(x.x,g.x,p),m),w),__tsover_div(n.mix(n.mix(h.y,y.y,p),n.mix(x.y,g.y,p),m),w),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"x0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcX"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"y0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcY"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"v00",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"v10",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"v01",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"]]]]],[13,"v11",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"decay",[1,[5,"1"],"+",[1,"VELOCITY_DISSIPATION","*",[7,"p","dt"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velB"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","x"],[7,"v10","x"],"sx"]],[6,[7,"std","mix"],[[7,"v01","x"],[7,"v11","x"],"sx"]],"sy"]],"/","decay"],[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","y"],[7,"v10","y"],"sx"]],[6,[7,"std","mix"],[[7,"v01","y"],[7,"v11","y"],"sx"]],"sy"]],"/","decay"],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","VELOCITY_DISSIPATION"]},externals:()=>({fluidLayout:dt,d:o,N:wt,std:n,VELOCITY_DISSIPATION:_R})})&&e.f)({})).$name("smokeAdvectVel"),VH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=dt.$.velB[r];dt.$.velA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"v",[8,[7,[7,"fluidLayout","$"],"velB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"v","x"],[7,"v","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:wt,fluidLayout:dt})})&&e.f)({})).$name("smokeCopyVel"),OH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=dt.$.params,a=__tsover_add(__tsover_mul(s,o.u32(wt)),t),i=dt.$.velA[a],l=n.clamp(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),0,o.f32(__tsover_sub(wt,1))),c=n.clamp(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),0,o.f32(__tsover_sub(wt,1))),d=n.clamp(n.floor(l),0,o.f32(__tsover_sub(wt,2))),u=n.clamp(n.floor(c),0,o.f32(__tsover_sub(wt,2))),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=dt.$.densA[o.u32(__tsover_add(__tsover_mul(v,wt),_))],y=dt.$.densA[o.u32(__tsover_add(__tsover_add(__tsover_mul(v,wt),_),1))],x=dt.$.densA[o.u32(__tsover_add(__tsover_mul(__tsover_add(v,1),wt),_))],g=dt.$.densA[o.u32(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(v,1),wt),_),1))],w=n.mix(n.mix(h.x,y.x,p),n.mix(x.x,g.x,p),m),f=n.mix(n.mix(h.y,y.y,p),n.mix(x.y,g.y,p),m),A=__tsover_add(1,__tsover_mul(r.densDissip,r.dt));dt.$.densB[a]=o.vec4f(n.max(__tsover_div(w,A),o.f32(0)),n.min(__tsover_add(f,__tsover_mul(__tsover_mul(r.dt,.4),r.colorDecay)),1),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32
247"],[[1,"N","-",[5,"1"]]]]]]],[13,"x0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcX"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"y0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcY"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"d00",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"d10",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"d01",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"]]]]],[13,"d11",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"dens",[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","x"],[7,"d10","x"],"sx"]],[6,[7,"std","mix"],[[7,"d01","x"],[7,"d11","x"],"sx"]],"sy"]]],[13,"age",[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","y"],[7,"d10","y"],"sx"]],[6,[7,"std","mix"],[[7,"d01","y"],[7,"d11","y"],"sx"]],"sy"]]],[13,"decay",[1,[5,"1"],"+",[1,[7,"p","densDissip"],"*",[7,"p","dt"]]]],[2,[8,[7,[7,"fluidLayout","$"],"densB"],"idx"],"=",[6,[7,"d","vec4f"],[[6,[7,"std","max"],[[1,"dens","/","decay"],[6,[7,"d","f32"],[[5,"0"]]]]],[6,[7,"std","min"],[[1,"age","+",[1,[1,[7,"p","dt"],"*",[5,"0.4"]],"*",[7,"p","colorDecay"]]],[5,"1"]]],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:dt,d:o,N:wt,std:n})})&&e.f)({})).$name("smokeAdvectDens"),NH=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=dt.$.densB[r];dt.$.densA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"fluidLayout","$"],"densB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:wt,fluidLayout:dt})})&&e.f)({})).$name("smokeCopyDens"),vR=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(wt)),t),a=_h.$.densA[r];n.textureStore(_h.$.outTex,o.vec2u(t,s),o.vec4f(a.x,a.y,0,0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"outputLayout","$"],"densA"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"outTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]]],externalNames:["d","N","outputLayout","std"]},externals:()=>({d:o,N:wt,outputLayout:_h,std:n})})&&e.f)({})).$name("smokeOutput"),gR={name:"Smoke",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Realistic fluid smoke simulation with vorticity dynamics",usesPointer:!0,props:{colorA:{default:"#fc83f9",transform:O,description:"Color of fresh smoke",ui:{type:"color",label:"Start Color",group:"Colors"}},colorB:{default:"#c21c79",transform:O,description:"Color smoke transitions to as it ages",ui:{type:"color",label:"End Color",group:"Colors"}},stops:xs(),emitFrom:{default:{x:.5,y:1},transform:we,description:"The emission source point",ui:{type:"position",label:"Emit From",group:"Emission"}},direction:{default:0,description:"Emission direction (0 = up, 90 = right, 180 = down, 270 = left)",ui:{type:"range",min:0,max:360,step:1,label:"Direction",group:"Emission"}},speed:{default:20,description:"Emission velocity strength",ui:{type:"range",min:.1,max:50,step:.1,label:"Speed",group:"Emission"}},spread:{default:60,description:"Emission cone angle in degrees",ui:{type:"range",min:0,max:180,step:1,label:"Spread",group:"Emission"}},emitRadius:{default:.08,description:"Size of the emission area",ui:{type:"range",min:.01,max:.3,step:.01,label:"Emit Size",group:"Emission"}},intensity:{default:1,description:"Smoke emission density",ui:{type:"range",min:.1,max:1,step:.
vendor: 2,506 bytes, line 247
24701,label:"Intensity",group:"Effect"}},dissipation:{default:.2,description:"How fast smoke fades over time",ui:{type:"range",min:.1,max:3,step:.1,label:"Dissipation",group:"Effect"}},detail:{default:25,description:"Fine-scale swirling detail",ui:{type:"range",min:0,max:50,step:1,label:"Detail",group:"Effect"}},gravity:{default:.5,description:"Downward gravitational pull on smoke",ui:{type:"range",min:-2,max:2,step:.1,label:"Gravity",group:"Effect"}},colorDecay:{default:.4,description:"How quickly smoke shifts from Color A to Color B",ui:{type:"range",min:0,max:3,step:.1,label:"Color Decay",group:"Colors"}},mouseInfluence:{default:.1,description:"Strength of cursor influence",ui:{type:"range",min:0,max:2,step:.01,label:"Cursor Influence",group:"Interaction"}},mouseRadius:{default:.1,description:"Radius of cursor influence area",ui:{type:"range",min:.02,max:.5,step:.01,label:"Cursor Radius",group:"Interaction"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=Rt(i,o.vec4f,Fa),c=Rt(i,o.vec4f,Fa),d=Rt(i,o.vec4f,Fa),u=Rt(i,o.vec4f,Fa),p=Rt(i,o.f32,Fa),m=Rt(i,o.f32,Fa),_=(globalThis.__TYPEGPU_AUTONAME__??(N=>N))(i.createTexture({size:[wt,wt],format:hR}).$usage("storage","sampled"),"outTex");a(()=>_.destroy());let v=r(_),h=(globalThis.__TYPEGPU_AUTONAME__??(N=>N))(i.createUniform(yR),"paramsU"),y=[wt,wt],x=i.createBindGroup(dt,{velA:l,velB:c,densA:d,densB:u,pressure:p,divergence:m,params:h.buffer}),g=i.createBindGroup(_h,{densA:d,outTex:_}),w=N=>pt(i,(G=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(G.f=((I,X)=>{"use gpu";N(I,X)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernel",["cx","cy"]]]],externalNames:["kernel"]},externals:()=>({kernel:N})})&&G.f)({}),{size:y,bindGroup:x}),f=w(UH),A=w(DH),E=w(zH),P=w(IH),C=w(LH),$=w(FH),U=w(BH),k=w(VH),R=w(OH),D=w(NH),M=pt(i,(N=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(N.f=((G,I)=>{"use gpu";vR(G,I)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:vR})})&&N.f)({}),{size:y,bindGroup:g}),z=Date.now(),L=.5,B=.5;return{outputs:{smokeTexture:v},getComputeNodes:N=>{let G=N,I=Date.now(),X=Math.min(G.deltaTime??(I-z)/1e3,.033);
247if(z=I,X<.001)return null;let F=(Oe,qe)=>{let We=s(Oe);return typeof We=="number"?We:qe},Q=F("speed",3),ae=F("direction",0)*Math.PI/180,j=Math.min(89*Math.PI/180,F("spread",45)*Math.PI/360),q=s("emitFrom"),te=q?.x??.5,ne=q?.y??0,oe=Q*wt*.15,pe=F("mouseInfluence",.5),_e=F("mouseRadius",.12),ge=G.pointer?.x??L,Me=G.pointer?.y??B,Se=ge-L,Ae=Me-B;L=ge,B=Me;let Pe=Math.sqrt(Se*Se+Ae*Ae),De=_e*wt,ke=Pe>5e-4&&pe>0;h.write({dt:X,emitX:te*wt,emitY:(1-ne)*wt,emitVelX:Math.sin(ae)*oe,emitVelY:-Math.cos(ae)*oe,perpDirX:Math.cos(ae),perpDirY:Math.sin(ae),spreadFactor:Math.tan(j),emitRad:F("emitRadius",.06)*wt,emitIntensity:F("intensity",.7),densDissip:F("dissipation",1),curlStrength:F("detail",30),gravity:F("gravity",.5),colorDecay:F("colorDecay",1),cursorX:ke?ge*wt:0,cursorY:ke?Me*wt:0,cursorVelX:ke?Se*wt*15*pe:0,cursorVelY:ke?Ae*wt*15*pe:0,mouseActive:ke?1:0,mouseRadSq:De*De});let Ge=[f,A,E,P];for(let Oe=0;Oe<$H;Oe++)Ge.push(C);return Ge.push($,U,k,R,D,M),Ge}}},fragment:({ctx:e,computeOutputs:t,propValues:s,uniforms:r})=>{let a=t?.smokeTexture;if(!a)return me;let i=a.sample(e.uv,"linearClamp"),l=i.member("x"),c=i.member("y"),d=s.colorSpace??0,u=s.stopCount??0,p;return u>1?p=js(c,{colorsArray:r.colorsArray,positionsArray:r.positionsArray,convertedColorsArray:r.convertedColorsArray,stopCount:r.stopCount},d):p=T(fR.mixColorsVariants[d]??fR.mixColorsLinear,"mixColors",[r.colorA,r.colorB,c]),de(p.member("rgb"),p.member("a").mul(l))}};var{sdfSpaceUV:YH}=Zs,{createSvgSdfSampler:GH,createSdfDataTexture:WH,SVG_SDF_SIZE:fh,createAnalyticSdfSampler:XH,driveAnalyticSubProps:qH,ANALYTIC_SDF_EXTRA_FIELDS:HH,buildAnalyticSdfFn:jH}=ft,{createVolumetricFieldComputeNode:ZH,buildVolumetricFieldSampler:KH,VOLUMETRIC_FIELD_EXTRA_FIELDS:JH}=ys,QH=JSON.stringify({type:"circleSDF",radius:.35}),nt=256,_r=nt*nt,ej=10,xR=.8,bR=.2,AR="rgba16float",wR=en;function TR(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var __=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({dt:o.f32,emitX:o.f32,emitY:o.f32,emitVelX:o.f32,emitVelY:o.f32,perpDirX:o.f32,perpDirY:o.f32,spreadFactor:o.f32,emitRad:o.f32,emitIntensity:o.f32,densDissip:o.f32,curlStrength:o.f32,gravity:o.f32,colorDecay:o.f32,centerX:o.f32,centerY:o.f32,scale:o.f32,rotation:o.f32,aspect:o.f32,cursorX:o.f32,cursorY:o.f32,cursorVelX:o.f32,cursorVelY:o.f32,mouseActive:o.f32,mouseRadSq:o.f32,saRadius:o.f32,saSides:o.f32,saRounding:o.f32,saInnerRatio:o.f32,saRotation:o.f32,saHeight:o.f32,saOffset:o.f32,saAperture:o.f32,vfOriginX:o.f32,vfOriginY:o.f32,vfSpanX:o.f32,vfSpanY:o.f32,vfActiveRes:o.f32}
vendor: 28,597 bytes, line 247
247),"FillParams"),st=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({velA:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},velB:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},densA:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},densB:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},pressure:{storage:o.arrayOf(o.f32,_r),access:"mutable"},divergence:{storage:o.arrayOf(o.f32,_r),access:"mutable"},maskBuf:{storage:o.arrayOf(o.vec4f,_r),access:"readonly"},params:{uniform:__}}),"fluidLayout"),vh=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({maskBuf:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},params:{uniform:__}}),"maskLayout"),p_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({maskBuf:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},params:{uniform:__},sdfSource:{texture:o.texture2d(o.f32)}}),"maskSvgLayout"),m_=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({maskBuf:{storage:o.arrayOf(o.vec4f,_r),access:"mutable"},params:{uniform:__},fieldTex:{texture:o.texture2d(o.f32),sampleType:"unfilterable-float"}}),"maskVfLayout"),hh=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({densA:{storage:o.arrayOf(o.vec4f,_r),access:"readonly"},outTex:{storageTexture:o.textureStorage2d(AR,"write-only")}}),"outputLayout"),Ys=b.fn([o.i32,o.i32,o.i32,o.i32],o.u32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.clamp(__tsover_add(t,r),0,__tsover_sub(nt,1)),l=n.clamp(__tsover_add(s,a),0,__tsover_sub(nt,1));return o.u32(__tsover_add(__tsover_mul(i,nt),l))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"ii"},{type:"i",name:"ji"},{type:"i",name:"di"},{type:"i",name:"dj"}],body:[0,[[13,"row",[6,[7,"std","clamp"],[[1,"ii","+","di"],[5,"0"],[1,"N","-",[5,"1"]]]]],[13,"col",[6,[7,"std","clamp"],[[1,"ji","+","dj"],[5,"0"],[1,"N","-",[5,"1"]]]]],[10,[6,[7,"d","u32"],[[1,[1,"row","*","N"],"+","col"]]]]]],externalNames:["std","N","d"]},externals:()=>({std:n,N:nt,d:o})})&&e.f)({}));function tj(e){let t=jH(e);return b.fn([o.u32,o.u32])((s=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(s.f=((r,a)=>{"use gpu";let i=vh.$.params,l=__tsover_add(__tsover_mul(a,o.u32(nt)),r),c=__tsover_div(__tsover_add(o.f32(r),.5),o.f32(nt)),d=__tsover_div(__tsover_add(o.f32(a),.5),o.f32(nt)),u=__tsover_mul(__tsover_sub(c,i.centerX),i.aspect),p=__tsover_sub(d,i.centerY),m=n.cos(i.rotation),_=n.sin(i.rotation),v=__tsover_add(__tsover_mul(u,m),__tsover_mul(p,_)),h=__tsover_sub(__tsover_mul(p,m),__tsover_mul(u,_)),y=t(o.vec2f(__tsover_add(__tsover_div(v,i.scale),.5),__tsover_add(__tsover_div(h,i.scale),.5)),i.saRadius,i.saSides,i.saRounding,i.saInnerRatio,i.saRotation,i.saHeight,i.saOffset,i.saAperture),x=n.select(o.f32(0),o.f32(1),y.x<0);vh.$.maskBuf[l]=o.vec4f(x,y.x,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"maskLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["N"]]]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["N"]]]],[13,"dxAc",[1,[1,"u","-",[7,"p","centerX"]],"*",[7,"p","aspect"]]],[13,"dy",[1,"v","-",[7,"p","centerY"]]],[13,"cosR",[6,[7,"std","cos"],[[7,"p","rotation"]]]],[13,"sinR",[6,[7,"std","sin"],[[7,"p","rotation"]]]],[13,"rdx",[1,[1,"dxAc","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dxAc","*","sinR"]]],[13,"sdfUV",[6,[7,"d","vec2f"],[[1,[1,"rdx","/",[7,"p","scale"]],"+",[5,"0.5"]],[1,[1,"rdy","/",[7,"p","scale"]],"+",[5,"0.5"]]]]],[13,"res",[6,"sdfFn",["sdfUV",[7,"p","saRadius"],[7,"p","saSides"],[7,"p","saRounding"],[7,"p","saInnerRatio"],[7,"p","saRotation"],[7,"p","saHeight"],[7,"p","saOffset"],[7,"p","saAperture"]]]],[13,"inside",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,[7,"res","x"],"<",[5,"0"]]]]],[2,[8,[7,[7,"maskLayout","$"],"maskBuf"],"idx"],"=",[6,[7,"d","vec4f"],["inside",[7,"res","x"],[5,"0"],[5,"0"]]]]]],externalNames:["maskLayout","d","N","std","sdfFn"]},externals:()=>({maskLayout:vh,d:o,N:nt,std:n,sdfFn:t})})&&s.f)({})).$name("smokeFillMask")}var sj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=p_.$.params,a=__tsover_add(__tsover_mul(s,o.u32(nt)),t),i=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(nt)),l=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(nt)),c=__tsover_mul(__tsover_sub(i,r.centerX),r.aspect),d=__tsover_sub(l,r.centerY),u=n.cos(r.rotation),p=n.sin(r.rotation),m=__tsover_add(__tsover_mul(c,u),__tsover_mul(d,p)),_=__tsover_sub(__tsover_mul(d,u),__tsover_mul(c,p)),v=o.vec2f(__tsover_add(__tsover_div(m,r.scale),.5),__tsover_add(__tsover_div(_,r.scale),.5)),h=__tsover_sub(fh,1),y=n.clamp(o.i32(__tsover_mul(v.x,fh)),0,h),x=n.clamp(o.i32(__tsover_mul(v.y,fh)),0,h),g=n.textureLoad(p_.$.sdfSource,o.vec2u(o.u32(y),o.u32(x)),0).x,w=n.select(o.f32(0),o.f32(1),g<0);p_.$.maskBuf[a]=o.vec4f(w,g,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"maskSvgLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["N"]]]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["N"]]]],[13,"dxAc",[1,[1,"u","-",[7,"p","centerX"]],"*",[7,"p","aspect"]]],[13,"dy",[1,"v","-",[7,"p","centerY"]]],[13,"cosR",[6,[7,"std","cos"],[[7,"p","rotation"]]]],[13,"sinR",[6,[7,"std","sin"],[[7,"p","rotation"]]]],[13,"rdx",[1,[1,"dxAc","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dxAc","*","sinR"]]],[13,"sdfUV",[6,[7,"d","vec2f"],[[1,[1,"rdx","/",[7,"p","scale"]],"+",[5,"0.5"]],[1,[1,"rdy","/",[7,"p","scale"]],"+",[5,"0.5"]]]]],[13,"sizeM1",[1,"SVG_SDF_SIZE","-",[5,"1"]]],[13,"tx",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,[7,"sdfUV","x"],"*","SVG_SDF_SIZE"]]],[5,"0"],"sizeM1"]]],[13,"ty",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[1,[7,"sdfUV","y"],"*","SVG_SDF_SIZE"]]],[5,"0"],"sizeM1"]]],[13,"dist",[7,[6,[7,"std","textureLoad"],[[7,[7,"maskSvgLayout","$"],"sdfSource"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["tx"]],[6,[7,"d","u32"],["ty"]]]],[5,"0"]]],"x"]],[13,"inside",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"dist","<",[5,"0"]]]]],[2,[8,[7,[7,"maskSvgLayout","$"],"maskBuf"],"idx"],"=",[6,[7,"d","vec4f"],["inside","dist",[5,"0"],[5,"0"]]]]]],externalNames:["maskSvgLayout","d","N","std","SVG_SDF_SIZE"]},externals:()=>({maskSvgLayout:p_,d:o,N:nt,std:n,SVG_SDF_SIZE:fh})})&&e.f)({})).$name("smokeFillSvgMask"),oj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=m_.$.params,a=__tsover_add(__tsover_mul(s,o.u32(nt)),t),i=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(nt)),l=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(nt)),c=__tsover_mul(__tsover_sub(i,r.centerX),r.aspect),d=__tsover_sub(l,r.centerY),u=n.cos(r.rotation),p=n.sin(r.rotation),m=__tsover_add(__tsover_mul(c,u),__tsover_mul(d,p)),_=__tsover_sub(__tsover_mul(d,u),__tsover_mul(c,p)),v=o.vec2f(__tsover_add(__tsover_div(m,r.scale),.5),__tsover_add(__tsover_div(_,r.scale),.5)),h=n.clamp(v.x,r.vfOriginX,__tsover_add(r.vfOriginX,r.vfSpanX)),y=n.clamp(v.y,r.vfOriginY,__tsover_add(r.vfOriginY,r.vfSpanY)),x=n.length(o.vec2f(__tsover_sub(v.x,h),__tsover_sub(v.y,y))),g=__tsover_sub(r.vfActiveRes,1),w=n.clamp(__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(h,r.vfOriginX),r.vfSpanX),r.vfActiveRes),.5),o.f32(0),g),f=n.clamp(__tsover_sub(__tsover_mul(__tsover_div(__tsover_sub(y,r.vfOriginY),r.vfSpanY),r.vfActiveRes),.5),o.f32(0),g),A=__tsover_add(n.textureLoad(m_.$.fieldTex,o.vec2u(o.u32(w),o.u32(f)),0).x,x),E=n.select(o.f32(0),o.f32(1),A<0);m_.$.maskBuf[a]=o.vec4f(E,A,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"maskVfLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["N"]]]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["N"]]]],[13,"dxAc",[1,[1,"u","-",[7,"p","centerX"]],"*",[7,"p","aspect"]]],[13,"dy",[1,"v","-",[7,"p","centerY"]]],[13,"cosR",[6,[7,"std","cos"],[[7,"p","rotation"]]]],[13,"sinR",[6,[7,"std","sin"],[[7,"p","rotation"]]]],[13,"rdx",[1,[1,"dxAc","*","cosR"],"+",[1,"dy","*","sinR"]]],[13,"rdy",[1,[1,"dy","*","cosR"],"-",[1,"dxAc","*","sinR"]]],[13,"sdfUV",[6,[7,"d","vec2f"],[[1,[1,"rdx","/",[7,"p","scale"]],"+",[5,"0.5"]],[1,[1,"rdy","/",[7,"p","scale"]],"+",[5,"0.5"]]]]],[13,"uxc",[6,[7,"std","clamp"],[[7,"sdfUV","x"],[7,"p","vfOriginX"],[1,[7,"p","vfOriginX"],"+",[7,"p","vfSpanX"]]]]],[13,"uyc",[6,[7,"std","clamp"],[[7,"sdfUV","y"],[7,"p","vfOriginY"],[1,[7,"p","vfOriginY"],"+",[7,"p","vfSpanY"]]]]],[13,"outsideDist",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"sdfUV","x"],"-","uxc"],[1,[7,"sdfUV","y"],"-","uyc"]]]]]],[13,"maxT",[1,[7,"p","vfActiveRes"],"-",[5,"1"]]],[13,"tx",[6,[7,"std","clamp"],[[1,[1,[1,[1,"uxc","-",[7,"p","vfOriginX"]],"/",[7,"p","vfSpanX"]],"*",[7,"p","vfActiveRes"]],"-",[5,"0.5"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]],[13,"ty",[6,[7,"std","clamp"],[[1,[1,[1,[1,"uyc","-",[7,"p","vfOriginY"]],"/",[7,"p","vfSpanY"]],"*",[7,"p","vfActiveRes"]],"-",[5,"0.5"]],[6,[7,"d","f32"],[[5,"0"]]],"maxT"]]],[13,"dist",[1,[7,[6,[7,"std","textureLoad"],[[7,[7,"maskVfLayout","$"],"fieldTex"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["tx"]],[6,[7,"d","u32"],["ty"]]]],[5,"0"]]],"x"],"+","outsideDist"]],[13,"inside",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"dist","<",[5,"0"]]]]],[2,[8,[7,[7,"maskVfLayout","$"],"maskBuf"],"idx"],"=",[6,[7,"d","vec4f"],["inside","dist",[5,"0"],[5,"0"]]]]]],externalNames:["maskVfLayout","d","N","std"]},externals:()=>({maskVfLayout:m_,d:o,N:nt,std:n})})&&e.f)({})).$name("smokeFillVfMask"),rj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=st.$.params,a=__tsover_add(__tsover_mul(s,o.u32(nt)),t),i=st.$.maskBuf[a].x,l=__tsover_add(o.f32(t),.5),c=__tsover_add(o.f32(s),.5),d=__tsover_sub(l,r.emitX),u=__tsover_sub(c,r.emitY),p=__tsover_add(__tsover_mul(d,d),__tsover_mul(u,u)),m=n.max(__tsover_mul(r.emitRad,r.emitRad),o.f32(1)),_=__tsover_mul(n.exp(__tsover_mul(__tsover_div(p,m),-1)),i),v=st.$.densA[a],h=v.x,y=__tsover_mul(__tsover_mul(__tsover_mul(r.emitIntensity,_),r.dt),8),x=n.min(__tsover_add(h,y),1),g=__tsover_div(y,n.max(x,o.f32(.001)));st.$.densA[a]=o.vec4f(x,__tsover_mul(v.y,__tsover_sub(1,n.min(g,1))),0,0);let w=st.$.velA[a],f=__tsover_div(__tsover_add(__tsover_mul(d,r.perpDirX),__tsover_mul(u,r.perpDirY)),n.max(r.emitRad,o.f32(1))),A=n.max(__tsover_add(__tsover_mul(r.emitVelX,r.emitVelX),__tsover_mul(r.emitVelY,r.emitVelY)),o.f32(1)),E=__tsover_add(r.emitVelX,__tsover_mul(__tsover_mul(__tsover_mul(r.perpDirX,f),r.spreadFactor),n.sqrt(A))),P=__tsover_add(r.emitVelY,__tsover_mul(__tsover_mul(__tsover_mul(r.perpDirY,f),r.spreadFactor),n.sqrt(A))),C=n.min(__tsover_mul(__tsover_mul(_,r.dt),3),1),$=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(r.gravity,h),r.dt),__tsover_mul(nt,.08)),i),U=__tsover_sub(l,r.cursorX),k=__tsover_sub(c,r.cursorY),R=__tsover_add(__tsover_mul(U,U),__tsover_mul(k,k)),D=__tsover_mul(__tsover_mul(n.exp(__tsover_mul(__tsover_div(R,n.max(r.mouseRadSq,o.f32(1))),-1)),r.mouseActive),i);st.$.velA[a]=o.vec4f(__tsover_add(n.mix(w.x,E,C),__tsover_mul(r.cursorVelX,D)),__tsover_add(__tsover_add(n.mix(w.y,P,C),$),__tsover_mul(r.cursorVelY,D)),w.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"mask",[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],"idx"],"x"]],[13,"cellX",[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]]],[13,"cellY",[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]]],[13,"dx",[1,"cellX","-",[7,"p","emitX"]]],[13,"dy",[1,"cellY","-",[7,"p","emitY"]]],[13,"distSq",[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]],[13,"radSq",[6,[7,"std","max"],[[1,[7,"p","emitRad"],"*",[7,"p","emitRad"]],[6,[7,"d","f32"],[[5,"1"]]]]]],[13,"influence",[1,[6,[7,"std","exp"],[[1,[1,"distSq","/","radSq"],"*",[4,"-",[5,"1"]]]]],"*","mask"]],[13,"cell",[8,[7,[7,"fluidLayout","$"],"densA"],"idx"]],[13,"oldDens",[7,"cell","x"]],[13,"addDens",[1,[1,[1,[7,"p","emitIntensity"],"*","influence"],"*",[7,"p","dt"]],"*",[5,"8"]]],[13,"newDens",[6,[7,"std","min"],[[1,"oldDens","+","addDens"],[5,"1"]]]],[13,"rejuvenate",[1,"addDens","/",[6,[7,"std","max"],["newDens",[6,[7,"d","f32"],[[5,"0.001"]]]]]]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],["newDens",[1,[7,"cell","y"],"*",[1,[5,"1"],"-",[6,[7,"std","min"],["rejuvenate",[5,"1"]]]]],[5,"0"],[5,"0"]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"perpOff",[1,[1,[1,"dx","*",[7,"p","perpDirX"]],"+",[1,"dy","*",[7,"p","perpDirY"]]],"/",[6,[7,"std","max"],[[7,"p","emitRad"],[6,[7,"d","f32"],[[5,"1"]]]]]]],[13,"vmSq",[6,[7,"std","max"],[[1,[1,[7,"p","emitVelX"],"*",[7,"p","emitVelX"]],"+",[1,[7,"p","emitVelY"],"*",[7,"p","emitVelY"]]],[6,[7,"d","f32"],[[5,"1"]]]]]],[13,"tvx",[1,[7,"p","emitVelX"],"+",[1,[1,[1,[7,"p","perpDirX"],"*","perpOff"],"*",[7,"p","spreadFactor"]],"*",[6,[7,"std","sqrt"],["vmSq"]]]]],[13,"tvy",[1,[7,"p","emitVelY"],"+",[1,[1,[1,[7,"p","perpDirY"],"*","perpOff"],"*",[7,"p","spreadFactor"]],"*",[6,[7,"std","sqrt"],["vmSq"]]]]],[13,"br",[6,[7,"std","min"],[[1,[1,"influence","*",[7,"p","dt"]],"*",[5,"3"]],[5,"1"]]]],[13,"gravForce",[1,[1,[1,[1,[7,"p","gravity"],"*","oldDens"],"*",[7,"p","dt"]],"*",[1,"N","*",[5,"0.08"]]],"*","mask"]],[13,"cursorDX",[1,"cellX","-",[7,"p","cursorX"]]],[13,"cursorDY",[1,"cellY","-",[7,"p","cursorY"]]],[13,"cursorDistSq",[1,[1,"cursorDX","*","cursorDX"],"+",[1,"cursorDY","*","cursorDY"]]],[13,"cursorInf",[1,[1,[6,[7,"std","exp"],[[1,[1,"cursorDistSq","/",[6,[7,"std","max"],[[7,"p","mouseRadSq"],[6,[7,"d","f32"],[[5,"1"]]]]]],"*",[4,"-",[5,"1"]]]]],"*",[7,"p","mouseActive"]],"*","mask"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[6,[7,"std","mix"],[[7,"vel","x"],"tvx","br"]],"+",[1,[7,"p","cursorVelX"],"*","cursorInf"]],[1,[1,[6,[7,"std","mix"],[[7,"vel","y"],"tvy","br"]],"+","gravForce"],"+",[1,[7,"p","cursorVelY"],"*","cursorInf"]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:st,d:o,N:nt,std:n})})&&e.f)({})).$name("smokeFillSplat"),aj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=o.i32(s),i=o.i32(t),l=st.$.velA[Ys(a,i,0,-1)],c=st.$.velA[Ys(a,i,0,1)],d=st.$.velA[Ys(a,i,-1,0)],u=st.$.velA[Ys(a,i,1,0)],p=__tsover_mul(__tsover_sub(__tsover_sub(c.y,l.y),__tsover_sub(u.x,d.x)),.5),m=st.$.velA[r];st.$.velA[r]=o.vec4f(m.x,m.y,p,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"vL",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"vR",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"vU",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"vD",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"curl",[1,[1,[1,[7,"vR","y"],"-",[7,"vL","y"]],"-",[1,[7,"vD","x"],"-",[7,"vU","x"]]],"*",[5,"0.5"]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"vel","x"],[7,"vel","y"],"curl",[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:nt,fluidLayout:st,nidx:Ys})})&&e.f)({})).$name("smokeFillCurl"),nj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=st.$.params,a=__tsover_add(__tsover_mul(s,o.u32(nt)),t),i=o.i32(s),l=o.i32(t),c=n.abs(st.$.velA[Ys(i,l,0,-1)].z),d=n.abs(st.$.velA[Ys(i,l,0,1)].z),u=n.abs(st.$.velA[Ys(i,l,-1,0)].z),p=n.abs(st.$.velA[Ys(i,l,1,0)].z),m=st.$.velA[a].z,_=__tsover_mul(__tsover_sub(d,c),.5),v=__tsover_mul(__tsover_sub(p,u),.5),h=n.max(n.sqrt(__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v))),o.f32(1e-5)),y=st.$.velA[a];st.$.velA[a]=o.vec4f(__tsover_add(y.x,__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(v,h),m),r.curlStrength),r.dt)),__tsover_add(y.y,__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(_,h),-1),m),r.curlStrength),r.dt)),y.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"cL",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"z"]]]],[13,"cR",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"z"]]]],[13,"cU",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"z"]]]],[13,"cD",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"z"]]]],[13,"cc",[7,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"z"]],[13,"gx",[1,[1,"cR","-","cL"],"*",[5,"0.5"]]],[13,"gy",[1,[1,"cD","-","cU"],"*",[5,"0.5"]]],[13,"gl",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx","*","gx"],"+",[1,"gy","*","gy"]]]],[6,[7,"d","f32"],[[5,"0.00001"]]]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"+",[1,[1,[1,[1,"gy","/","gl"],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[1,[7,"vel","y"],"+",[1,[1,[1,[1,[1,"gx","/","gl"],"*",[4,"-",[5,"1"]]],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","nidx"]},externals:()=>({fluidLayout:st,d:o,N:nt,std:n,nidx:Ys})})&&e.f)({})).$name("smokeFillVorticity"),ij=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=o.i32(s),i=o.i32(t),l=o.f32(t),c=o.f32(s),d=st.$.maskBuf[r].x,u=st.$.velA[r],p=l<.5||st.$.maskBuf[Ys(a,i,0,-1)].x<.5,m=l>o.f32(__tsover_sub(nt,1.5))||st.$.maskBuf[Ys(a,i,0,1)].x<.5,_=c<.5||st.$.maskBuf[Ys(a,i,-1,0)].x<.5,v=c>o.f32(__tsover_sub(nt,1.5))||st.$.maskBuf[Ys(a,i,1,0)].x<.5,h=n.select(st.$.velA[Ys(a,i,0,-1)].x,__tsover_mul(u.x,-1),p),y=n.select(st.$.velA[Ys(a,i,0,1)].x,__tsover_mul(u.x,-1),m),x=n.select(st.$.velA[Ys(a,i,-1,0)].y,__tsover_mul(u.y,-1),_),g=n.select(st.$.velA[Ys(a,i,1,0)].y,__tsover_mul(u.y,-1),v),w=__tsover_mul(__tsover_mul(__tsover_add(__tsover_sub(y,h),__tsover_sub(g,x)),.5),d);st.$.pressure[r]=__tsover_mul(__tsover_mul(st.$.pressure[r],xR),d),st.$.divergence[r]=w}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"jf",[6,[7,"d","f32"],["cx"]]],[13,"iF",[6,[7,"d","f32"],["cy"]]],[13,"selfMask",[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],"idx"],"x"]],[13,"selfVel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"isWallL",[3,[1,"jf","<",[5,"0.5"]],"||",[1,[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"x"],"<",[5,"0.5"]]]],[13,"isWallR",[3,[1,"jf",">",[6,[7,"d","f32"],[[1,"N","-",[5,"1.5"]]]]],"||",[1,[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"x"],"<",[5,"0.5"]]]],[13,"isWallT",[3,[1,"iF","<",[5,"0.5"]],"||",[1,[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"x"],"<",[5,"0.5"]]]],[13,"isWallB",[3,[1,"iF",">",[6,[7,"d","f32"],[[1,"N","-",[5,"1.5"]]]]],"||",[1,[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"x"],"<",[5,"0.5"]]]],[13,"L",[6,[7,"std","select"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"x"],[1,[7,"selfVel","x"],"*",[4,"-",[5,"1"]]],"isWallL"]]],[13,"R",[6,[7,"std","select"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"x"],[1,[7,"selfVel","x"],"*",[4,"-",[5,"1"]]],"isWallR"]]],[13,"T",[6,[7,"std","select"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"y"],[1,[7,"selfVel","y"],"*",[4,"-",[5,"1"]]],"isWallT"]]],[13,"B",[6,[7,"std","select"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"y"],[1,[7,"selfVel","y"],"*",[4,"-",[5,"1"]]],"isWallB"]]],[13,"div",[1,[1,[1,[1,"R","-","L"],"+",[1,"B","-","T"]],"*",[5,"0.5"]],"*","selfMask"]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[1,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"*","PRESSURE_DISSIPATION"],"*","selfMask"]],[2,[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"],"=","div"]]],externalNames:["d","N","fluidLayout","nidx","std","PRESSURE_DISSIPATION"]},externals:()=>({d:o,N:nt,fluidLayout:st,nidx:Ys,std:n,PRESSURE_DISSIPATION:xR})})&&e.f)({})).$name("smokeFillDivergence"),lj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=o.i32(s),i=o.i32(t),l=st.$.pressure[Ys(a,i,0,-1)],c=st.$.pressure[Ys(a,i,0,1)],d=st.$.pressure[Ys(a,i,-1,0)],u=st.$.pressure[Ys(a,i,1,0)],p=st.$.divergence[r];st.$.pressure[r]=__tsover_mul(__tsover_sub(__tsover_add(__tsover_add(__tsover_add(l,c),d),u),p),.25)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"div",[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[1,[1,[1,[1,"pL","+","pR"],"+","pU"],"+","pD"],"-","div"],"*",[5,"0.25"]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:nt,fluidLayout:st,nidx:Ys})})&&e.f)({})).$name("smokeFillJacobi"),cj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=o.i32(s),i=o.i32(t),l=st.$.pressure[Ys(a,i,0,-1)],c=st.$.pressure[Ys(a,i,0,1)],d=st.$.pressure[Ys(a,i,-1,0)],u=st.$.pressure[Ys(a,i,1,0)],p=st.$.velA[r];st.$.velA[r]=o.vec4f(__tsover_sub(p.x,__tsover_mul(__tsover_sub(c,l),.5)),__tsover_sub(p.y,__tsover_mul(__tsover_sub(u,d),.5)),p.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"-",[1,[1,"pR","-","pL"],"*",[5,"0.5"]]],[1,[7,"vel","y"],"-",[1,[1,"pD","-","pU"],"*",[5,"0.5"]]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:nt,fluidLayout:st,nidx:Ys})})&&e.f)({})).$name("smokeFillGradSubtract"),dj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=st.$.params,a=__tsover_add(__tsover_mul(s,o.u32(nt)),t),i=st.$.velA[a],l=n.clamp(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),0,o.f32(__tsover_sub(nt,1))),c=n.clamp(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),0,o.f32(__tsover_sub(nt,1))),d=n.clamp(n.floor(l),0,o.f32(__tsover_sub(nt,2))),u=n.clamp(n.floor(c),0,o.f32(__tsover_sub(nt,2))),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=st.$.velA[o.u32(__tsover_add(__tsover_mul(v,nt),_))],y=st.$.velA[o.u32(__tsover_add(__tsover_add(__tsover_mul(v,nt),_),1))],x=st.$.velA[o.u32(__tsover_add(__tsover_mul(__tsover_add(v,1),nt),_))],g=st.$.velA[o.u32(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(v,1),nt),_),1))],w=__tsover_add(1,__tsover_mul(bR,r.dt)),f=st.$.maskBuf[a].x;st.$.velB[a]=o.vec4f(__tsover_mul(__tsover_div(n.mix(n.mix(h.x,y.x,p),n.mix(x.x,g.x,p),m),w),f),__tsover_mul(__tsover_div(n.mix(n.mix(h.y,y.y,p),n.mix(x.y,g.y,p),m),w),f),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"x0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcX"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"y0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcY"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"v00",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"v10",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"v01",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"]]]]],[13,"v11",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"decay",[1,[5,"1"],"+",[1,"VELOCITY_DISSIPATION","*",[7,"p","dt"]]]],[13,"mask",[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],"idx"],"x"]],[2,[8,[7,[7,"fluidLayout","$"],"velB"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","x"],[7,"v10","x"],"sx"]],[6,[7,"std","mix"],[[7,"v01","x"],[7,"v11","x"],"sx"]],"sy"]],"/","decay"],"*","mask"],[1,[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","y"],[7,"v10","y"],"sx"]],[6,[7,"std","mix"],[[7,"v01","y"],[7,"v11","y"],"sx"]],"sy"]],"/","decay"],"*","mask"],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","VELOCITY_DISSIPATION"]},externals:()=>({fluidLayout:st,d:o,N:nt,std:n,VELOCITY_DISSIPATION:bR})})&&e.f)({})).$name("smokeFillAdvectVel"),uj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=st.$.velB[r];st.$.velA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"v",[8,[7,[7,"fluidLayout","$"],"velB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"v","x"],[7,"v","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:nt,fluidLayout:st})})&&e.f)({})).$name("smokeFillCopyVel"),pj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=st.$.params,a=__tsover_add(__tsover_mul(s,o.u32(nt)),t),i=st.$.velA[a],l=n.clamp(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),0,o.f32(__tsover_sub(nt,1))),c=n.clamp(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),0,o.f32(__tsover_sub(nt,1))),d=n.clamp(n.floor(l),0,o.f32(__tsover_sub(nt,2))),u=n.clamp(n.floor(c),0,o.f32(__tsover_sub(nt,2))),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=st.$.densA[o.u32(__tsover_add(__tsover_mul(v,nt),_))],y=st.$.densA[o.u32(__tsover_add(__tsover_add(__tsover_mul(v,nt),_),1))],x=st
247.$.densA[o.u32(__tsover_add(__tsover_mul(__tsover_add(v,1),nt),_))],g=st.$.densA[o.u32(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(v,1),nt),_),1))],w=n.mix(n.mix(h.x,y.x,p),n.mix(x.x,g.x,p),m),f=n.mix(n.mix(h.y,y.y,p),n.mix(x.y,g.y,p),m),A=__tsover_add(1,__tsover_mul(r.densDissip,r.dt)),E=st.$.maskBuf[a].x;st.$.densB[a]=o.vec4f(__tsover_mul(n.max(__tsover_div(w,A),o.f32(0)),E),n.min(__tsover_add(f,__tsover_mul(__tsover_mul(r.dt,.4),r.colorDecay)),1),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"x0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcX"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"y0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcY"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"d00",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"d10",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"d01",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"]]]]],[13,"d11",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"dens",[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","x"],[7,"d10","x"],"sx"]],[6,[7,"std","mix"],[[7,"d01","x"],[7,"d11","x"],"sx"]],"sy"]]],[13,"age",[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","y"],[7,"d10","y"],"sx"]],[6,[7,"std","mix"],[[7,"d01","y"],[7,"d11","y"],"sx"]],"sy"]]],[13,"decay",[1,[5,"1"],"+",[1,[7,"p","densDissip"],"*",[7,"p","dt"]]]],[13,"mask",[7,[8,[7,[7,"fluidLayout","$"],"maskBuf"],"idx"],"x"]],[2,[8,[7,[7,"fluidLayout","$"],"densB"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[6,[7,"std","max"],[[1,"dens","/","decay"],[6,[7,"d","f32"],[[5,"0"]]]]],"*","mask"],[6,[7,"std","min"],[[1,"age","+",[1,[1,[7,"p","dt"],"*",[5,"0.4"]],"*",[7,"p","colorDecay"]]],[5,"1"]]],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:st,d:o,N:nt,std:n})})&&e.f)({})).$name("smokeFillAdvectDens"),mj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=st.$.densB[r];st.$.densA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"fluidLayout","$"],"densB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:nt,fluidLayout:st})})&&e.f)({})).$name("smokeFillCopyDens"),SR=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(nt)),t),a=hh.$.densA[r];n.textureStore(hh.$.outTex,o.vec2u(t,s),o.vec4f(a.x,a.y,0,0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"outputLayout","$"],"densA"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"outTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]]],externalNames:["d","N","outputLayout","std"]},externals:()=>({d:o,N:nt,outputLayout:hh,std:n})})&&e.f)({})).$name("smokeFillOutput"),_j=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.clamp(__tsover_mul(__tsover_mul(t,-1),__tsover_mul(nt,4)),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"dist"}],body:[0,[[10,[6,[7,"std","clamp"],[[1,[1,"dist","*",[4,"-",[5,"1"]]],"*",[1,"N","*",[5,"4"]]],[5,"0"],[5,"1"]]]]]],externalNames:["std","N"]},externals:()=>({std:n,N:nt})})&&e.f)({})),ER={name:"SmokeFill",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Fill a shape with swirling fluid smoke that interacts with the shape boundary",requiresRTT:!1,requiresChild:!1,usesPointer:!0,extraFields:{...JH,...HH},props:{colorA:{default:"#8cf3ff",transform:O,description:"Color of fresh smoke",ui:{type:"color",label:"Start Color",group:"Colors"}},colorB:{default:"#04a0d6",transform:O,description:"Color smoke transitions to as it ages",ui:{type:"color",label:"End Color",group:"Colors"}},origin:{default:"center",description:"Reference edge the center position is measured from (ce
247nter 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:we,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"}},emitFrom:{default:{x:.5,y:.5},transform:we,description:"Emission source point within the shape",ui:{type:"position",label:"Emit From",group:"Emission"}},direction:{default:0,description:"Emission direction (0 = up, 90 = right, 180 = down, 270 = left)",ui:{type:"range",min:0,max:360,step:1,label:"Direction",group:"Emission"}},speed:{default:10,description:"Emission velocity strength",ui:{type:"range",min:.1,max:30,step:.1,label:"Speed",group:"Emission"}},spread:{default:60,description:"Emission cone angle in degrees",ui:{type:"range",min:0,max:180,step:1,label:"Spread",group:"Emission"}},emitRadius:{default:.03,description:"Size of the emission area",ui:{type:"range",min:.01,max:.3,step:.01,label:"Emit Size",group:"Emission"}},intensity:{default:1,description:"Smoke emission density",ui:{type:"range",min:.1,max:1,step:.01,label:"Intensity",group:"Effect"}},dissipation:{default:.3,description:"How fast smoke fades over time",ui:{type:"range",min:.1,max:5,step:.1,label:"Dissipation",group:"Effect"}},detail:{default:25,description:"Fine-scale swirling detail",ui:{type:"range",min:0,max:50,step:1,label:"Detail",group:"Effect"}},gravity:{default:.5,description:"Downward gravitational pull on smoke \u2014 0 = weightless, negative values = smoke rises",ui:{type:"range",min:-2,max:2,step:.1,label:"Gravity",group:"Effect"}},colorDecay:{default:.4,description:"How quickly smoke shifts from Color A to Color B",ui:{type:"range",min:0,max:3,step:.1,label:"Color Decay",group:"Colors"}},mouseInfluence:{default:.1,description:"Strength of cursor influence",ui:{type:"range",min:0,max:2,step:.01,label:"Cursor Influence",group:"Interaction"}},mouseRadius:{default:.1,description:"Radius of cursor influence area",ui:{type:"range",min:.02,max:.5,step:.01,label:"Cursor Radius",group:"Interaction"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}},shape:{default:QH,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"}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=s("shapeSdfUrl")||"",c=TR(s("shapeType")||"",s("shape")),d=ZH(e,()=>s("shape"),"none"),u=Rt(i,o.vec4f,_r),p=Rt(i,o.vec4f,_r),m=Rt(i,o.vec4f,_r),_=Rt(i,o.vec4f,_r),v=Rt(i,o.f32,_r),h=Rt(i,o.f32,_r),y=Rt(i,o.vec4f,_r),x=(globalThis.__TYPEGPU_AUTONAME__??(j=>j))(i.createTexture({size:[nt,nt],format:AR}).$usage("storage","sampled"),"outTex");a(()=>x.destroy());let g=r(x),w=(globalThis.__TYPEGPU_AUTONAME__??(j=>j))(i.createUniform(__),"paramsU"),f=[nt,nt],A=i.createBindGroup(st,{velA:u,velB:p,densA:m,densB:_,pressure:v,divergence:h,maskBuf:y,params:w.buffer}),E=i.createBindGroup(hh,{densA:m,outTex:x}),P=(j,q=A)=>pt(i,(te=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(te.f=((ne,oe)=>{"use gpu";j(ne,oe)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernel",["cx","cy"]]]],externalNames:["kernel"]},externals:()=>({kernel:j})})&&te.f)({}),{size:f,bindGroup:q}),C;if(d)C=P(oj,i.createBindGroup(m_,{maskBuf:y,params:w.buffer,fieldTex:d.fieldTexture}));else if(l){let j=WH(e,l);C=P(sj,i.createBindGroup(p_,{maskBuf:y,params:w.buffer,sdfSource:j.texture.texture}))}else{let j=i.createBindGroup(vh,{maskBuf:y,params:w.buffer});C=P(tj(c),j)}let $=P(rj),U=P(aj),k=P(nj),R=P(ij),D=P(lj),M=P(cj),z=P(dj),L=P(uj),B=P(pj),N=P(mj),G=pt(i,(j=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(j.f=((q,te)=>{"use gpu";SR(q,te)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:SR})})&&j.f)({}),{size:f,bindGroup:E}),I=(j,q)=>typeof j=="number"?j:q,X=()=>{let j=s("shape"),q={};if(j&&typeof j=="object")q=j;else if(typeof j=="string")try{q=JSON.parse(j)}catch{q={}}
247return{saRadius:I(q.radius,I(q.width,I(q.bottomWidth,.35))),saSides:I(q.sides,6),saRounding:I(q.rounding,0),saInnerRatio:I(q.innerRatio,I(q.thickness,I(q.spread,I(q.topWidth,I(q.topRatio,.4))))),saRotation:I(q.rotation,0),saHeight:I(q.height,.25),saOffset:I(q.offset,I(q.skew,.2)),saAperture:I(q.aperture,270)}},F=Date.now(),Q=.5,ae=.5;return{outputs:{smokeTexture:g,...d?d.outputs:{}},getComputeNodes:j=>{let q=j,te=d?.getComputeNodes(q)??null,ne=Date.now(),oe=Math.min(q.deltaTime??(ne-F)/1e3,.033);if(F=ne,oe<.001)return te;let pe=(Tt,J)=>{let be=s(Tt);return typeof be=="number"?be:J},_e=pe("speed",2),ge=pe("direction",0)*Math.PI/180,Me=Math.min(89*Math.PI/180,pe("spread",60)*Math.PI/360),Se=s("center"),Ae=s("emitFrom"),Pe=q.dimensions?.height??0,De=Pe>0?(q.dimensions?.width??0)/Pe:1,ke=_e*nt*.15,Ge=X(),Oe=pe("mouseInfluence",.5),qe=pe("mouseRadius",.12),We=q.pointer?.x??Q,Ve=q.pointer?.y??ae,Ne=We-Q,He=Ve-ae;Q=We,ae=Ve;let vt=Math.sqrt(Ne*Ne+He*He)>5e-4&&Oe>0,_t=qe*nt,Ze=d?.getFieldDomain();w.write({dt:oe,emitX:(Ae?.x??.5)*nt,emitY:(1-(Ae?.y??.5))*nt,emitVelX:Math.sin(ge)*ke,emitVelY:-Math.cos(ge)*ke,perpDirX:Math.cos(ge),perpDirY:Math.sin(ge),spreadFactor:Math.tan(Me),emitRad:pe("emitRadius",.03)*nt,emitIntensity:pe("intensity",.8),densDissip:pe("dissipation",.5),curlStrength:pe("detail",30),gravity:pe("gravity",.5),colorDecay:pe("colorDecay",1),centerX:Se?.x??.5,centerY:1-(Se?.y??.5),scale:pe("scale",1),rotation:pe("rotation",0)*Math.PI/180,aspect:De,cursorX:vt?We*nt:0,cursorY:vt?Ve*nt:0,cursorVelX:vt?Ne*nt*15*Oe:0,cursorVelY:vt?He*nt*15*Oe:0,mouseActive:vt?1:0,mouseRadSq:_t*_t,...Ge,vfOriginX:Ze?.originX??0,vfOriginY:Ze?.originY??0,vfSpanX:Ze?.spanX??1,vfSpanY:Ze?.spanY??1,vfActiveRes:Ze?.activeRes??1});let it=[...te??[],C,$,U,k,R];for(let Tt=0;Tt<ej;Tt++)it.push(D);return it.push(M,z,L,B,N,G),it}}},fragment:e=>{let{ctx:t,computeOutputs:s,propValues:r,uniforms:a,getCpuValue:i}=e,l=s?.smokeTexture;if(!l)return me;let c,d=s?.volumetricFieldTexture;if(d)c=KH(d,{originX:a._vfOriginX,originY:a._vfOriginY,spanX:a._vfSpanX,spanY:a._vfSpanY,activeResF:a._vfActiveRes,rBound:a._vfRBound}).volumetricFieldSampler;else{let x=r.shapeSdfUrl||"";x?c=GH(e,x):c=XH(TR(r.shapeType||"",i("shape")),qH(e,()=>i("shape")))}let u=T(YH,"sdfSpaceUV",[a.center,a.scale,a.rotation,t.uv,t.aspect]),p=T(_j,"smokeFillShapeMask",[c(u).member("x")]),m=l.sample(t.uv,"linearClamp"),_=m.member("x"),v=m.member("y"),h=r.colorSpace??0,y=T(wR.mixColorsVariants[h]??wR.mixColorsLinear,"mixColors",[a.colorA,a.colorB,v]);return de(y.member("rgb"),y.member("a").mul(_).mul(p))}};var kt=256,Ba=kt*kt,fj=10,MR=.8,CR=.2,RR="rgba16float",PR=en,$R=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({dt:o.f32,cursorX:o.f32,cursorY:o.f32,cursorVelX:o.f32,cursorVelY:o.f32,cursorActive:o.f32,emitRad:o.f32,emitIntensity:o.f32,densDissip:o.f32,curlStrength:o.f32,gravity:o.f32,colorDecay:o.f32}),"FlowParams"),ut=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({velA:{storage:o.arrayOf(o.vec4f,Ba),access:"mutable"},velB:{storage:o.arrayOf(o.vec4f,Ba),access:"mutable"},densA:{storage:o.arrayOf(o.vec4f,Ba),access:"mutable"},densB:{storage:o.arrayOf(o.vec4f,Ba),access:"mutable"},pressure:{storage:o.arrayOf(o.f32,Ba),access:"mutable"},divergence:{storage:o.arrayOf(o.f32,Ba),access:"mutable"},params:{uniform:$R}}),"fluidLayout"),yh=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({densA:{storage:o.arrayOf(o.vec4f,Ba),access:"readonly"},outTex:{storageTexture:o.textureStorage2d(RR,"write-only")}}),"outputLayout"),ho=b.fn([o.i32,o.i32,o.i32,o.i32],o.u32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=n.clamp(__tsover_add(t,r),0,__tsover_sub(kt,1)),l=n.clamp(__tsover_add(s,a),0,__tsover_sub(kt,1));return o.u32(__tsover_add(__tsover_mul(i,kt),l))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"ii"},{type:"i",name:"ji"},{type:"i",name:"di"},{type:"i",name:"dj"}],body:[0,[[13,"row",[6,[7,"std","clamp"],[[1,"ii","+","di"],[5,"0"],[1,"N","-",[5,"1"]]]]],[13,"col",[6,[7,"std","clamp"],[[1,"ji","+","dj"],[5,"0"],[1,"N","-",[5,"1"]]]]],[10,[6,[7,"d","u32"],[[1,[1,"row","*","N"],"+","col"]]]]]],externalNames:["std","N","d"]},externals:()=>({std:n,N:kt,d:o})})&&e.f)({})),vj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=ut.$.params,a=__tsover_add(__tsover_mul(s,o.u32(kt)),t),i=__tsover_add(o.f32(t),.5),l=__tsover_add(o.f32(s),.5),c=__tsover_sub(i,r.cursorX),d=__tsover_sub(l,r.cursorY),u=__tsover_add(__tsover_mul(c,c),__tsover_mul(d,d)),p=n.max(__tsover_mul(r.emitRad,r.emitRad),o.f32(1)),m=__tsover_mul(n.exp(__tsover_mul(__tsover_div(u,p),-1)),r.curs
vendor: 16,384 bytes, line 247
247orActive),_=ut.$.densA[a],v=_.x,h=__tsover_mul(__tsover_mul(__tsover_mul(r.emitIntensity,m),r.dt),10),y=n.min(__tsover_add(v,h),1),x=__tsover_div(h,n.max(y,o.f32(.001)));ut.$.densA[a]=o.vec4f(y,__tsover_mul(_.y,__tsover_sub(1,n.min(x,1))),0,0);let g=ut.$.velA[a],w=n.min(__tsover_mul(__tsover_mul(m,r.dt),4),1),f=__tsover_mul(__tsover_mul(__tsover_mul(r.gravity,v),r.dt),__tsover_mul(kt,.08));ut.$.velA[a]=o.vec4f(n.mix(g.x,r.cursorVelX,w),__tsover_add(n.mix(g.y,r.cursorVelY,w),f),g.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"cellX",[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]]],[13,"cellY",[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]]],[13,"dx",[1,"cellX","-",[7,"p","cursorX"]]],[13,"dy",[1,"cellY","-",[7,"p","cursorY"]]],[13,"distSq",[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]],[13,"radSq",[6,[7,"std","max"],[[1,[7,"p","emitRad"],"*",[7,"p","emitRad"]],[6,[7,"d","f32"],[[5,"1"]]]]]],[13,"influence",[1,[6,[7,"std","exp"],[[1,[1,"distSq","/","radSq"],"*",[4,"-",[5,"1"]]]]],"*",[7,"p","cursorActive"]]],[13,"cell",[8,[7,[7,"fluidLayout","$"],"densA"],"idx"]],[13,"oldDens",[7,"cell","x"]],[13,"addDens",[1,[1,[1,[7,"p","emitIntensity"],"*","influence"],"*",[7,"p","dt"]],"*",[5,"10"]]],[13,"newDens",[6,[7,"std","min"],[[1,"oldDens","+","addDens"],[5,"1"]]]],[13,"rejuvenate",[1,"addDens","/",[6,[7,"std","max"],["newDens",[6,[7,"d","f32"],[[5,"0.001"]]]]]]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],["newDens",[1,[7,"cell","y"],"*",[1,[5,"1"],"-",[6,[7,"std","min"],["rejuvenate",[5,"1"]]]]],[5,"0"],[5,"0"]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"br",[6,[7,"std","min"],[[1,[1,"influence","*",[7,"p","dt"]],"*",[5,"4"]],[5,"1"]]]],[13,"gravForce",[1,[1,[1,[7,"p","gravity"],"*","oldDens"],"*",[7,"p","dt"]],"*",[1,"N","*",[5,"0.08"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"vel","x"],[7,"p","cursorVelX"],"br"]],[1,[6,[7,"std","mix"],[[7,"vel","y"],[7,"p","cursorVelY"],"br"]],"+","gravForce"],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:ut,d:o,N:kt,std:n})})&&e.f)({})).$name("smokeFlowSplat"),hj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=o.i32(s),i=o.i32(t),l=ut.$.velA[ho(a,i,0,-1)],c=ut.$.velA[ho(a,i,0,1)],d=ut.$.velA[ho(a,i,-1,0)],u=ut.$.velA[ho(a,i,1,0)],p=__tsover_mul(__tsover_sub(__tsover_sub(c.y,l.y),__tsover_sub(u.x,d.x)),.5),m=ut.$.velA[r];ut.$.velA[r]=o.vec4f(m.x,m.y,p,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"vL",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"vR",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"vU",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"vD",[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"curl",[1,[1,[1,[7,"vR","y"],"-",[7,"vL","y"]],"-",[1,[7,"vD","x"],"-",[7,"vU","x"]]],"*",[5,"0.5"]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"vel","x"],[7,"vel","y"],"curl",[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:kt,fluidLayout:ut,nidx:ho})})&&e.f)({})).$name("smokeFlowCurl"),yj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=ut.$.params,a=__tsover_add(__tsover_mul(s,o.u32(kt)),t),i=o.i32(s),l=o.i32(t),c=n.abs(ut.$.velA[ho(i,l,0,-1)].z),d=n.abs(ut.$.velA[ho(i,l,0,1)].z),u=n.abs(ut.$.velA[ho(i,l,-1,0)].z),p=n.abs(ut.$.velA[ho(i,l,1,0)].z),m=ut.$.velA[a].z,_=__tsover_mul(__tsover_sub(d,c),.5),v=__tsover_mul(__tsover_sub(p,u),.5),h=n.max(n.sqrt(__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v))),o.f32(1e-5)),y=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(v,h),m),r.curlStrength),r.dt),x=__tsover_mul(__tsover_mul(__tsover_mul(__tsover_mul(__tsover_div(_,h),-1),m),r.curlStrength),r.dt),g=ut.$.velA[a];ut.$.velA[a]=o.vec4f(__tsover_add(g.x,y),__tsover_add(g.y,x),g.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"cL",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"z"]]]],[13,"cR",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"z"]]]],[13,"cU",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"z"]]]],[13,"cD",[6,[7,"std","abs"],[[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"z"]]]],[13,"cc",[7,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"z"]],[13,"gx",[1,[1,"cR","-","cL"],"*",[5,"0.5"]]],[13,"gy",[1,[1,"cD","-","cU"],"*",[5,"0.5"]]],[13,"gl",[6,[7,"std","max"],[[6,[7,"std","sqrt"],[[1,[1,"gx","*","gx"],"+",[1,"gy","*","gy"]]]],[6,[7,"d","f32"],[[5,"0.00001"]]]]]],[13,"fx",[1,[1,[1,[1,"gy","/","gl"],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[13,"fy",[1,[1,[1,[1,[1,"gx","/","gl"],"*",[4,"-",[5,"1"]]],"*","cc"],"*",[7,"p","curlStrength"]],"*",[7,"p","dt"]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"+","fx"],[1,[7,"vel","y"],"+","fy"],[7,"vel","z"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","nidx"]},externals:()=>({fluidLayout:ut,d:o,N:kt,std:n,nidx:ho})})&&e.f)({})).$name("smokeFlowVorticity"),gj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=o.i32(s),i=o.i32(t),l=o.f32(t),c=o.f32(s),d=ut.$.velA[r],u=ut.$.velA[ho(a,i,0,-1)].x,p=ut.$.velA[ho(a,i,0,1)].x,m=ut.$.velA[ho(a,i,-1,0)].y,_=ut.$.velA[ho(a,i,1,0)].y,v=n.select(u,__tsover_mul(d.x,-1),l<.5),h=n.select(p,__tsover_mul(d.x,-1),l>o.f32(__tsover_sub(kt,1.5))),y=n.select(m,__tsover_mul(d.y,-1),c<.5),x=n.select(_,__tsover_mul(d.y,-1),c>o.f32(__tsover_sub(kt,1.5))),g=__tsover_mul(__tsover_add(__tsover_sub(h,v),__tsover_sub(x,y)),.5);ut.$.pressure[r]=__tsover_mul(ut.$.pressure[r],MR),ut.$.divergence[r]=g}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"jf",[6,[7,"d","f32"],["cx"]]],[13,"iF",[6,[7,"d","f32"],["cy"]]],[13,"selfVel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"normalL",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]],"x"]],[13,"normalR",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]],"x"]],[13,"normalU",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]],"y"]],[13,"normalD",[7,[8,[7,[7,"fluidLayout","$"],"velA"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]],"y"]],[13,"L",[6,[7,"std","select"],["normalL",[1,[7,"selfVel","x"],"*",[4,"-",[5,"1"]]],[1,"jf","<",[5,"0.5"]]]]],[13,"R",[6,[7,"std","select"],["normalR",[1,[7,"selfVel","x"],"*",[4,"-",[5,"1"]]],[1,"jf",">",[6,[7,"d","f32"],[[1,"N","-",[5,"1.5"]]]]]]]],[13,"T",[6,[7,"std","select"],["normalU",[1,[7,"selfVel","y"],"*",[4,"-",[5,"1"]]],[1,"iF","<",[5,"0.5"]]]]],[13,"B",[6,[7,"std","select"],["normalD",[1,[7,"selfVel","y"],"*",[4,"-",[5,"1"]]],[1,"iF",">",[6,[7,"d","f32"],[[1,"N","-",[5,"1.5"]]]]]]]],[13,"div",[1,[1,[1,"R","-","L"],"+",[1,"B","-","T"]],"*",[5,"0.5"]]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"*","PRESSURE_DISSIPATION"]],[2,[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"],"=","div"]]],externalNames:["d","N","fluidLayout","nidx","std","PRESSURE_DISSIPATION"]},externals:()=>({d:o,N:kt,fluidLayout:ut,nidx:ho,std:n,PRESSURE_DISSIPATION:MR})})&&e.f)({})).$name("smokeFlowDivergence"),xj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=o.i32(s),i=o.i32(t),l=ut.$.pressure[ho(a,i,0,-1)],c=ut.$.pressure[ho(a,i,0,1)],d=ut.$.pressure[ho(a,i,-1,0)],u=ut.$.pressure[ho(a,i,1,0)],p=ut.$.divergence[r];ut.$.pressure[r]=__tsover_mul(__tsover_sub(__tsover_add(__tsover_add(__tsover_add(l,c),d),u),p),.25)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"div",[8,[7,[7,"fluidLayout","$"],"divergence"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"pressure"],"idx"],"=",[1,[1,[1,[1,[1,"pL","+","pR"],"+","pU"],"+","pD"],"-","div"],"*",[5,"0.25"]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:kt,fluidLayout:ut,nidx:ho})})&&e.f)({})).$name("smokeFlowJacobi"),bj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=o.i32(s),i=o.i32(t),l=ut.$.pressure[ho(a,i,0,-1)],c=ut.$.pressure[ho(a,i,0,1)],d=ut.$.pressure[ho(a,i,-1,0)],u=ut.$.pressure[ho(a,i,1,0)],p=ut.$.velA[r];ut.$.velA[r]=o.vec4f(__tsover_sub(p.x,__tsover_mul(__tsover_sub(c,l),.5)),__tsover_sub(p.y,__tsover_mul(__tsover_sub(u,d),.5)),p.z,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"ii",[6,[7,"d","i32"],["cy"]]],[13,"ji",[6,[7,"d","i32"],["cx"]]],[13,"pL",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[4,"-",[5,"1"]]]]]],[13,"pR",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"0"],[5,"1"]]]]],[13,"pU",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[4,"-",[5,"1"]],[5,"0"]]]]],[13,"pD",[8,[7,[7,"fluidLayout","$"],"pressure"],[6,"nidx",["ii","ji",[5,"1"],[5,"0"]]]]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[7,"vel","x"],"-",[1,[1,"pR","-","pL"],"*",[5,"0.5"]]],[1,[7,"vel","y"],"-",[1,[1,"pD","-","pU"],"*",[5,"0.5"]]],[7,"vel","z"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout","nidx"]},externals:()=>({d:o,N:kt,fluidLayout:ut,nidx:ho})})&&e.f)({})).$name("smokeFlowGradSubtract"),wj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=ut.$.params,a=__tsover_add(__tsover_mul(s,o.u32(kt)),t),i=ut.$.velA[a],l=n.clamp(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),0,o.f32(__tsover_sub(kt,1))),c=n.clamp(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),0,o.f32(__tsover_sub(kt,1))),d=n.clamp(n.floor(l),0,o.f32(__tsover_sub(kt,2))),u=n.clamp(n.floor(c),0,o.f32(__tsover_sub(kt,2))),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=ut.$.velA[o.u32(__tsover_add(__tsover_mul(v,kt),_))],y=ut.$.velA[o.u32(__tsover_add(__tsover_add(__tsover_mul(v,kt),_),1))],x=ut.$.velA[o.u32(__tsover_add(__tsover_mul(__tsover_add(v,1),kt),_))],g=ut.$.velA[o.u32(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(v,1),kt),_),1))],w=__tsover_add(1,__tsover_mul(CR,r.dt));ut.$.velB[a]=o.vec4f(__tsover_div(n.mix(n.mix(h.x,y.x,p),n.mix(x.x,g.x,p),m),w),__tsover_div(n.mix(n.mix(h.y,y.y,p),n.mix(x.y,g.y,p),m),w),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"x0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcX"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"y0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcY"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"v00",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"v10",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"v01",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"]]]]],[13,"v11",[8,[7,[7,"fluidLayout","$"],"velA"],[6,[7,"d","u32"],[[1,[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"decay",[1,[5,"1"],"+",[1,"VELOCITY_DISSIPATION","*",[7,"p","dt"]]]],[2,[8,[7,[7,"fluidLayout","$"],"velB"],"idx"],"=",[6,[7,"d","vec4f"],[[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","x"],[7,"v10","x"],"sx"]],[6,[7,"std","mix"],[[7,"v01","x"],[7,"v11","x"],"sx"]],"sy"]],"/","decay"],[1,[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"v00","y"],[7,"v10","y"],"sx"]],[6,[7,"std","mix"],[[7,"v01","y"],[7,"v11","y"],"sx"]],"sy"]],"/","decay"],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std","VELOCITY_DISSIPATION"]},externals:()=>({fluidLayout:ut,d:o,N:kt,std:n,VELOCITY_DISSIPATION:CR})})&&e.f)({})).$name("smokeFlowAdvectVel"),Tj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=ut.$.velB[r];ut.$.velA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"v",[8,[7,[7,"fluidLayout","$"],"velB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"velA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"v","x"],[7,"v","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:kt,fluidLayout:ut})})&&e.f)({})).$name("smokeFlowCopyVel"),Sj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=ut.$.params,a=__tsover_add(__tsover_mul(s,o.u32(kt)),t),i=ut.$.velA[a],l=n.clamp(__tsover_sub(o.f32(t),__tsover_mul(i.x,r.dt)),0,o.f32(__tsover_sub(kt,1))),c=n.clamp(__tsover_sub(o.f32(s),__tsover_mul(i.y,r.dt)),0,o.f32(__tsover_sub(kt,1))),d=n.clamp(n.floor(l),0,o.f32(__tsover_sub(kt,2))),u=n.clamp(n.floor(c),0,o.f32(__tsover_sub(kt,2))),p=__tsover_sub(l,d),m=__tsover_sub(c,u),_=o.i32(d),v=o.i32(u),h=ut.$.densA[o.u32(__tsover_add(__tsover_mul(v,kt),_))],y=ut.$.densA[o.u32(__tsover_add(__tsover_add(__tsover_mul(v,kt),_),1))],x=ut.$.densA[o.u32(__tsover_add(__tsover_mul(__tsover_add(v,1),kt),_))],g=ut.$.densA[o.u32(__tsover_add(__tsover_add(__tsover_mul(__tsover_add(v,1),kt),_),1))],w=n.mix(n.mix(h.x,y.x,p),n.mix(x.x,g.x,p),m),f=n.mix(n.mix(h.y,y.y,p),n.mix(x.y,g.y,p),m),A=__tsover_add(1,__tsover_mul(r.densDissip,r.dt));ut.$.densB[a]=o.vec4f(n.max(__tsover_div(w,A),o.f32(0)),n.min(__tsover_add(f,__tsover_mul(__tsover_mul(r.dt,.4),r.colorDecay)),1),0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"fluidLayout","$"],"params"]],[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"vel",[8,[7,[7,"fluidLayout","$"],"velA"],"idx"]],[13,"srcX",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cx"]],"-",[1,[7,"vel","x"],"*",[7,"p","dt"]]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[1,[6,[7,"d","f32"],["cy"]],"-",[1,[7,"vel","y"],"*",[7,"p","dt"]]],[5,"
2470"],[6,[7,"d","f32"],[[1,"N","-",[5,"1"]]]]]]],[13,"x0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcX"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"y0",[6,[7,"std","clamp"],[[6,[7,"std","floor"],["srcY"]],[5,"0"],[6,[7,"d","f32"],[[1,"N","-",[5,"2"]]]]]]],[13,"sx",[1,"srcX","-","x0"]],[13,"sy",[1,"srcY","-","y0"]],[13,"ix0",[6,[7,"d","i32"],["x0"]]],[13,"iy0",[6,[7,"d","i32"],["y0"]]],[13,"d00",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,"iy0","*","N"],"+","ix0"]]]]],[13,"d10",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"d01",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"]]]]],[13,"d11",[8,[7,[7,"fluidLayout","$"],"densA"],[6,[7,"d","u32"],[[1,[1,[1,[1,"iy0","+",[5,"1"]],"*","N"],"+","ix0"],"+",[5,"1"]]]]]],[13,"dens",[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","x"],[7,"d10","x"],"sx"]],[6,[7,"std","mix"],[[7,"d01","x"],[7,"d11","x"],"sx"]],"sy"]]],[13,"age",[6,[7,"std","mix"],[[6,[7,"std","mix"],[[7,"d00","y"],[7,"d10","y"],"sx"]],[6,[7,"std","mix"],[[7,"d01","y"],[7,"d11","y"],"sx"]],"sy"]]],[13,"decay",[1,[5,"1"],"+",[1,[7,"p","densDissip"],"*",[7,"p","dt"]]]],[2,[8,[7,[7,"fluidLayout","$"],"densB"],"idx"],"=",[6,[7,"d","vec4f"],[[6,[7,"std","max"],[[1,"dens","/","decay"],[6,[7,"d","f32"],[[5,"0"]]]]],[6,[7,"std","min"],[[1,"age","+",[1,[1,[7,"p","dt"],"*",[5,"0.4"]],"*",[7,"p","colorDecay"]]],[5,"1"]]],[5,"0"],[5,"0"]]]]]],externalNames:["fluidLayout","d","N","std"]},externals:()=>({fluidLayout:ut,d:o,N:kt,std:n})})&&e.f)({})).$name("smokeFlowAdvectDens"),Aj=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=ut.$.densB[r];ut.$.densA[r]=o.vec4f(a.x,a.y,0,0)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"fluidLayout","$"],"densB"],"idx"]],[2,[8,[7,[7,"fluidLayout","$"],"densA"],"idx"],"=",[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]],externalNames:["d","N","fluidLayout"]},externals:()=>({d:o,N:kt,fluidLayout:ut})})&&e.f)({})).$name("smokeFlowCopyDens"),kR=b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_add(__tsover_mul(s,o.u32(kt)),t),a=yh.$.densA[r];n.textureStore(yh.$.outTex,o.vec2u(t,s),o.vec4f(a.x,a.y,0,0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"idx",[1,[1,"cy","*",[6,[7,"d","u32"],["N"]]],"+","cx"]],[13,"dd",[8,[7,[7,"outputLayout","$"],"densA"],"idx"]],[6,[7,"std","textureStore"],[[7,[7,"outputLayout","$"],"outTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"dd","x"],[7,"dd","y"],[5,"0"],[5,"0"]]]]]]],externalNames:["d","N","outputLayout","std"]},externals:()=>({d:o,N:kt,outputLayout:yh,std:n})})&&e.f)({})).$name("smokeFlowOutput"),UR={name:"SmokeFlow",boundingBoxDeclaration:{aspectRatio:null},category:"Interactive",description:"Cursor-driven smoke that lingers, swirls, and dissipates with fluid dynamics",usesPointer:!0,props:{colorA:{default:"#e29c8b",transform:O,description:"Color of fresh smoke",ui:{type:"color",label:"Fresh Color",group:"Colors"}},colorB:{default:"#d517f9",transform:O,description:"Color smoke transitions to as it ages",ui:{type:"color",label:"Aged Color",group:"Colors"}},stops:xs(),intensity:{default:1,description:"How much smoke is emitted as you move the cursor",ui:{type:"range",min:.1,max:2,step:.05,label:"Intensity",group:"Emission"}},emitRadius:{default:.07,description:"Size of smoke puff emitted at cursor",ui:{type:"range",min:.01,max:.3,step:.01,label:"Puff Size",group:"Emission"}},momentum:{default:20,description:"How much cursor velocity is transferred into the smoke (higher = more directed flow)",ui:{type:"range",min:0,max:50,step:1,label:"Momentum",group:"Emission"}},dissipation:{default:.5,description:"How fast smoke fades over time",ui:{type:"range",min:.05,max:3,step:.05,label:"Dissipation",group:"Effect"}},detail:{default:10,description:"Fine-scale swirling detail driven by vorticity confinement",ui:{type:"range",min:0,max:60,step:1,label:"Swirl Detail",group:"Effect"}},gravity:{default:2,description:"Vertical drift \u2014 negative floats up, positive sinks down",ui:{type:"range",min:-5,max:5,step:.05,label:"Gravity",group:"Effect"}},colorDecay:{default:.5,description:"How quickly smoke shifts from fresh to aged color",ui:{type:"range",min:0,max:3,step:.1,label:"Color Decay",group:"Colors"}},colorSpace:{default:"OKLAB",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a}=e,i=t?.root;if(!i)return null;let l=Rt(i,o.vec4f,Ba),c=Rt(i,o.vec4f,Ba),d=Rt(i,o.vec4f,Ba),u=Rt(i,o.vec4f,Ba),p=Rt(i,o.f32,Ba),m=Rt(i,o.f32,Ba),_=(globalThis.__TYPEGPU_AUTONAME__??(X=>X))(i.createTexture({size:[kt,kt],format:RR}).$usage("storage","sampled"),"outTex");a(()=>_.destroy());let v=r(_),h=(globalThis.__TYPEGPU_AUTONAME__??(X=>X))(i.createUniform($R),"paramsU"),y=[kt,kt],x=i.createBindGroup(ut,{velA:l,velB:c,densA:d,densB:u,pressure:p,divergence:m,params:h.buffer}),g=i.createBindGroup(yh,{densA:d,outTex:_}),w=X=>pt(i,(F=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(F.f=((Q,ae)=>{"use gpu";X(Q,ae)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"kernel",["cx","cy"]]]],externalNames:["kernel"]},externals:()=>({kernel:X})})&&F.f)({}),{size:y,bindGroup:x}),f=w(vj),A=w(hj),E=w(yj),P=w(gj),C=w(xj),$=w(bj),U=w(wj),k=w(Tj),R=w(Sj),D=w(Aj),M=pt(i,(X=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(X.f=((F,Q)=>{"use gpu";kR(F,Q)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"outputKernel",["cx","cy"]]]],externalNames:["outputKernel"]},externals:()=>({outputKernel:kR})})&&X.f)({}),{size:y,bindGroup:g}),z=Date.now(),L=.5,B=.5,N=0,G=0,I=0;return{outputs:{smokeTexture:v},getComputeNodes:X=>
247{let F=X,Q=Date.now(),ae=Math.min(F.deltaTime??(Q-z)/1e3,.033);if(z=Q,ae<.001)return null;let j=(ke,Ge)=>{let Oe=s(ke);return typeof Oe=="number"?Oe:Ge},q=F.pointer?.x??L,te=F.pointer?.y??B,ne=(q-L)/Math.max(ae,.001),oe=(te-B)/Math.max(ae,.001);L=q,B=te;let pe=.2;N=N*(1-pe)+ne*pe,G=G*(1-pe)+oe*pe;let _e=Math.sqrt(N*N+G*G),ge=j("momentum",1.2),Me=Math.min(_e*_e*60,1),Se=Me>.005,Ae=j("dissipation",.4);Se&&(I=Q);let Pe=Math.log(255)/Math.max(Ae,.05);if(I===0||(Q-I)/1e3>Pe)return null;h.write({dt:ae,cursorX:q*kt,cursorY:te*kt,cursorActive:Se?Me:0,cursorVelX:N*kt*ge*.12,cursorVelY:G*kt*ge*.12,emitRad:j("emitRadius",.07)*kt,emitIntensity:j("intensity",1.2),densDissip:Ae,curlStrength:j("detail",28),gravity:j("gravity",-.3),colorDecay:j("colorDecay",.5)});let De=[f,A,E,P];for(let ke=0;ke<fj;ke++)De.push(C);return De.push($,U,k,R,D,M),De}}},fragment:({ctx:e,computeOutputs:t,propValues:s,uniforms:r})=>{let a=t?.smokeTexture;if(!a)return me;let i=a.sample(e.uv,"linearClamp"),l=i.member("x"),c=i.member("y"),d=s.colorSpace??0,u=s.stopCount??0,p;return u>1?p=js(c,{colorsArray:r.colorsArray,positionsArray:r.positionsArray,convertedColorsArray:r.convertedColorsArray,stopCount:r.stopCount},d):p=T(PR.mixColorsVariants[d]??PR.mixColorsLinear,"mixColors",[r.colorA,r.colorB,c]),de(p.member("rgb"),p.member("a").mul(l))}};var Ej=b.fn([o.vec4f,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=o.vec3f(t.x,t.y,t.z),i=n.dot(a,o.vec3f(.299,.587,.114)),l=o.vec3f(__tsover_sub(1,t.x),__tsover_sub(1,t.y),__tsover_sub(1,t.z)),c=n.select(a,l,i>s),d=n.mix(a,c,o.vec3f(r));return o.vec4f(d.x,d.y,d.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"threshold"},{type:"i",name:"strength"}],body:[0,[[13,"rgb",[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"luminance",[6,[7,"std","dot"],["rgb",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"inverted",[6,[7,"d","vec3f"],[[1,[5,"1"],"-",[7,"color","x"]],[1,[5,"1"],"-",[7,"color","y"]],[1,[5,"1"],"-",[7,"color","z"]]]]],[13,"solarized",[6,[7,"std","select"],["rgb","inverted",[1,"luminance",">","threshold"]]]],[13,"result",[6,[7,"std","mix"],["rgb","solarized",[6,[7,"d","vec3f"],["strength"]]]]],[10,[6,[7,"d","vec4f"],[[7,"result","x"],[7,"result","y"],[7,"result","z"],[7,"color","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),DR={name:"Solarize",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Inverts tones above a luminance threshold \u2014 a classic darkroom and photo effect",requiresChild:!0,props:{threshold:{default:.5,description:"Luminance level above which colors are inverted. Pixels brighter than this threshold get flipped.",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Threshold",group:"Effect"}},strength:{default:1,description:"Blend between original (0) and fully solarized (1)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Strength",group:"Effect"}}},fragment:({uniforms:e,childNode:t})=>t?T(Ej,"solarizeColor",[t,e.threshold,e.strength]):(console.error("You must pass a child component into the Solarize shader."),me)};var zR={name:"SolidColor",boundingBoxDeclaration:{aspectRatio:null},category:"Textures",description:"Fill the canvas with a single solid color",acceptsUVContext:!0,props:{color:{default:"#5b18ca",transform:O,description:"The solid color to display",ui:{type:"color",label:"Color",group:"Colors"}}},fragment:({uniforms:e})=>e.color};var Mj=b.fn([o.vec2f,o.vec2f,o.vec2f,o.f32,o.f32,o.vec2f,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(s.x,s.y),p=r.x,m=__tsover_sub(1,r.y),_=__tsover_mul(__tsover_sub(t.x,p),u),v=__tsover_sub(t.y,m),h=__tsover_div(__tsover_mul(_,2),a),y=__tsover_div(__tsover_mul(v,2),a),x=__tsover_add(__tsover_mul(h,h),__tsover_mul(y,y)),g=__tsover_sub(1,n.smoothstep(.98,1,x)),w=n.sqrt(n.max(o.f32(0),__tsover_sub(1,x))),f=__tsover_add(1,__tsover_mul(w,i)),A=__tsover_div(__tsover_mul(__tsover_div(h,f),a),2),E=__tsover_div(__tsover_mul(__tsover_div(y,f),a),2),P=__tsover_add(__tsover_div(A,u),p),C=__tsover_add(E,m),$=n.normalize(o.vec3f(h,y,w)),U=o.vec3f(0,0,1),k=__tsover_add(1,__tsover_mul(4,__tsover_sub(1,d))),R=n.pow(__tsover_sub(1,n.max(n.dot($,U),o.f32(0))),k),D=__tsover_mul(__tsover_sub(l.x,.5),2),M=__tsover_mul(__tsover_sub(__tsover_sub(1,l.y),.5),2),z=n.normalize(o.vec2f(__tsover_add($.x,1e-4),__tsover_add($.y,1e-4))),L=n.normalize(o.vec2f(__tsover_add(D,1e-4),__tsover_add(M,1e-4))),B=n.max(o.f32(0),n.dot(z,L)),N=n.pow(B,o.f32(2)),G=__tsover_mul(__tsover_mul(__tsover_mul(R,N),c),2);return o.vec4f(P,C,g,G)}),{v:1,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"},{type:"i",name:"lightPos"},{type:"i",name:"lightIntensity"},{type:"i",name:"lightSoftness"}
vendor: 4,165 bytes, line 247
247],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,[7,"std","smoothstep"],[[5,"0.98"],[5,"1"],"radiusSq"]]]],[13,"z",[6,[7,"std","sqrt"],[[6,[7,"std","max"],[[6,[7,"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,[7,"std","normalize"],[[6,[7,"d","vec3f"],["sphereX","sphereY","z"]]]]],[13,"viewDir",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]]],[13,"fresnelPower",[1,[5,"1"],"+",[1,[5,"4"],"*",[1,[5,"1"],"-","lightSoftness"]]]],[13,"fresnel",[6,[7,"std","pow"],[[1,[5,"1"],"-",[6,[7,"std","max"],[[6,[7,"std","dot"],["normal","viewDir"]],[6,[7,"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,[7,"std","normalize"],[[6,[7,"d","vec2f"],[[1,[7,"normal","x"],"+",[5,"0.0001"]],[1,[7,"normal","y"],"+",[5,"0.0001"]]]]]]],[13,"lightDirNorm",[6,[7,"std","normalize"],[[6,[7,"d","vec2f"],[[1,"lightDir2Dx","+",[5,"0.0001"]],[1,"lightDir2Dy","+",[5,"0.0001"]]]]]]],[13,"directionality",[6,[7,"std","max"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"std","dot"],["normalDir","lightDirNorm"]]]]],[13,"directionalBias",[6,[7,"std","pow"],["directionality",[6,[7,"d","f32"],[[5,"2"]]]]]],[13,"rimLight",[1,[1,[1,"fresnel","*","directionalBias"],"*","lightIntensity"],"*",[5,"2"]]],[10,[6,[7,"d","vec4f"],["transformedX","transformedY","sphereAlpha","rimLight"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Cj=b.fn([o.vec4f,o.vec3f,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_add(t.x,__tsover_mul(s.x,r)),l=__tsover_add(t.y,__tsover_mul(s.y,r)),c=__tsover_add(t.z,__tsover_mul(s.z,r)),d=__tsover_mul(t.w,a);return o.vec4f(i,l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"straight"},{type:"i",name:"lightColor"},{type:"i",name:"rimLight"},{type:"i",name:"sphereAlpha"}],body:[0,[[13,"r",[1,[7,"straight","x"],"+",[1,[7,"lightColor","x"],"*","rimLight"]]],[13,"g",[1,[7,"straight","y"],"+",[1,[7,"lightColor","y"],"*","rimLight"]]],[13,"b",[1,[7,"straight","z"],"+",[1,[7,"lightColor","z"],"*","rimLight"]]],[13,"a",[1,[7,"straight","w"],"*","sphereAlpha"]],[10,[6,[7,"d","vec4f"],["r","g","b","a"]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),IR={name:"Spherize",category:"Distortions",description:"Map content onto a 3D sphere surface with depth distortion",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{radius:{default:1,description:"Radius of the sphere (1 = half viewport height)",ui:{type:["range","map"],min:.1,max:3,step:.1,label:"Radius",group:"Effect"}},depth:{default:1,description:"How much the sphere bulges toward viewer (0 = flat, higher = more bulge)",ui:{type:["range","map"],min:0,max:3,step:.1,label:"Depth",group:"Effect"}},center:{default:{x:.5,y:.5},transform:we,description:"The center point of the sphere",ui:{type:"position",label:"Center",group:"Position"}},lightPosition:{default:{x:.3,y:.3},transform:we,description:"Position of the specular light source",ui:{type:"position",label:"Light Position",group:"Position"}},lightIntensity:{default:.5,description:"Intensity of the rim light (0 = off)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Light Intensity",group:"Effect"}},lightSoftness:{default:.5,description:"Softness of the rim light falloff (0 
247= hard edge, 1 = soft glow)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Light Softness",group:"Effect"}},lightColor:{default:"#ffffff",transform:O,description:"Color of the specular highlight",ui:{type:"color",label:"Light Color",group:"Effect"}}},fragment:e=>{let{childNode:t,convertToTexture:s,uniforms:r,ctx:a}=e;if(!t)return me;let i=s(t),l=T(Mj,"spherizeGeom",[a.uv,a.viewportSize,r.center,r.radius,r.depth,r.lightPosition,r.lightIntensity,r.lightSoftness]);return T(Cj,"spherizeCompose",[T(Re,"unpremultiplyAlpha",[i.sample(l.member("xy"))]),r.lightColor.member("rgb"),l.member("w"),l.member("z")])}};var gh=6.283185307,Vbe=b.fn([o.vec2f,o.f32,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_div(i.x,i.y),c=__tsover_sub(__tsover_mul(a.x,l),__tsover_mul(t.x,l)),d=__tsover_sub(a.y,__tsover_sub(1,t.y)),u=n.length(o.vec2f(c,d)),p=__tsover_sub(n.atan2(d,c),r);return __tsover_add(__tsover_mul(u,s),__tsover_div(p,gh))}),{v:1,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,[7,"std","length"],[[6,[7,"d","vec2f"],["dx","dy"]]]]],[13,"angle",[1,[6,[7,"std","atan2"],["dy","dx"]],"-","animTime"]],[10,[1,[1,"l","*","scale"],"+",[1,"angle","/","TWO_PI"]]]]],externalNames:["std","d","TWO_PI"]},externals:()=>({std:n,d:o,TWO_PI:gh})})&&e.f)({})),Pj=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(d.x,d.y),p=__tsover_sub(__tsover_mul(c.x,u),__tsover_mul(t.x,u)),m=__tsover_sub(c.y,__tsover_sub(1,t.y)),_=n.length(o.vec2f(p,m)),v=__tsover_sub(n.atan2(m,p),l),h=__tsover_add(__tsover_mul(_,s),__tsover_div(v,gh)),y=n.fract(h),x=__tsover_mul(n.abs(__tsover_sub(y,.5)),2),g=n.clamp(r,__tsover_mul(a,.005),1),w=__tsover_sub(1,__tsover_mul(n.clamp(a,0,1),_)),f=__tsover_mul(g,w),A=n.fwidth(h),E=__tsover_sub(4,__tsover_mul(__tsover_mul(n.smoothstep(.05,.4,__tsover_mul(r,2)),n.smoothstep(.05,.4,__tsover_mul(__tsover_sub(1,r),2))),3)),P=n.mix(__tsover_mul(E,A),n.fwidth(x),n.clamp(A,0,1));return n.smoothstep(__tsover_sub(__tsover_sub(f,P),i),__tsover_add(__tsover_add(f,P),i),x)}),{v:1,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,[7,"std","length"],[[6,[7,"d","vec2f"],["dx","dy"]]]]],[13,"angle",[1,[6,[7,"std","atan2"],["dy","dx"]],"-","animTime"]],[13,"offset",[1,[1,"l","*","scale"],"+",[1,"angle","/","TWO_PI"]]],[13,"stripe",[6,[7,"std","fract"],["offset"]]],[13,"shape",[1,[6,[7,"std","abs"],[[1,"stripe","-",[5,"0.5"]]]],"*",[5,"2"]]],[13,"baseWidth",[6,[7,"std","clamp"],["strokeWidth",[1,"strokeFalloff","*",[5,"0.005"]],[5,"1"]]]],[13,"falloffAmount",[1,[5,"1"],"-",[1,[6,[7,"std","clamp"],["strokeFalloff",[5,"0"],[5,"1"]]],"*","l"]]],[13,"width",[1,"baseWidth","*","falloffAmount"]],[13,"fw",[6,[7,"std","fwidth"],["offset"]]],[13,"fwMult",[1,[5,"4"],"-",[1,[1,[6,[7,"std","smoothstep"],[[5,"0.05"],[5,"0.4"],[1,"strokeWidth","*",[5,"2"]]]],"*",[6,[7,"std","smoothstep"],[[5,"0.05"],[5,"0.4"],[1,[1,[5,"1"],"-","strokeWidth"],"*",[5,"2"]]]]],"*",[5,"3"]]]],[13,"pixelSize",[6,[7,"std","mix"],[[1,"fwMult","*","fw"],[6,[7,"std","fwidth"],["shape"]],[6,[7,"std","clamp"],["fw",[5,"0"],[5,"1"]]]]]],[10,[6,[7,"std","smoothstep"],[[1,[1,"width","-","pixelSize"],"-","softness"],[1,[1,"width","+","pixelSize"],"+","softness"],"shape"]]]]],externalNames:["std","d","TWO_PI"]},externals:()=>({std:n,d:o,TWO_PI:gh})})&&e.f)({}
247)),LR={name:"Spiral",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Rotating spiral pattern with animated movement",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#000000",transform:O,description:"Background color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:O,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:we,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:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=e.effectiveViewportSize??s.viewportSize,l=Fe(e),c=T(Pj,"spiralMask",[t.center,t.scale,t.strokeWidth,t.strokeFalloff,t.softness,l,a,i]);return T(Ye[r.colorSpace??0]??Be,"mixColors",[t.colorA,t.colorB,c])}};var kj=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(cm(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"sides"},{type:"i",name:"innerRatio"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","starSdf"],[[7,"local","x"],[7,"local","y"],"radiu
247s","sides","innerRatio"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),FR={name:"Star",category:"Shapes",description:"Classic star polygon with straight sides and sharp pointed tips",acceptsUVContext:!0,boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the star",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the star",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.4,description:"Outer tip radius \u2014 distance from center to the pointed tips",ui:{type:"range",min:0,max:1,step:.01,label:"Radius",group:"Shape"}},sides:{default:5,description:"Number of points on the star",ui:{type:"range",min:3,max:12,step:1,label:"Points",group:"Shape"}},innerRatio:{default:.4,description:"Inner vertex radius as a ratio of outer radius (0.382 = golden-ratio 5-star)",ui:{type:"range",min:.1,max:.9,step:.01,label:"Inner Ratio",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(kj,"starShape",[t.center,t.radius,t.sides,t.innerRatio,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};function xh(e){return{intensity:{default:e.intensity,description:"Strength of the relief shading applied to the child content",ui:{type:"range",min:0,max:1,step:.01,label:"Intensity",group:"Texture"}},scale:{default:e.scale,description:"Scale of the pattern \u2014 lower = larger features, higher = finer grain",ui:{type:"range",min:.1,max:8,step:.05,label:"Scale",group:"Texture"}},contrast:{default:e.contrast,description:"Contrast of the texture \u2014 negative flattens it into a subtle overlay",ui:{type:"range",min:-1,max:2,step:.05,label:"Contrast",group:"Texture"}},distortion:{default:e.distortion,description:"Surface distortion \u2014 warps the child along the texture like carved relief",ui:{type:"range",min:0,max:1,step:.01,label:"Distortion",group:"Texture"}},seed:{default:0,description:"Random seed for pattern variation",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Texture"}}}}var BR={name:"Stone",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Applies a marbled stone relief and surface distortion to child content",requiresRTT:!0,requiresChild:!0,props:xh({intensity:.5,scale:1,contrast:0,distortion:.15}),fragment:e=>O1(e,Dx,"stone12")};var VR=Math.PI*2,OR=Math.PI,Bb=8,Rj=16,$j=b.fn([o.vec3f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.pow(t,o.vec3f(.85,.85,.85))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"rgb"}],body:[0,[[10,[6,[7,"std","pow"],["rgb",[6,[7,"d","vec3f"],[[5,"0.85"],[5,"0.85"],[5,"0.85"]]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Uj=b.fn([o.vec2f,o.vec2f,o.vec2f,o.vec2f,o.vec4f,o.vec4f,o.vec4f,o.arrayOf(o.vec4f,Bb),o.arrayOf(o.vec4f,Bb/4),o.arrayOf(o.vec3f,Bb)],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=i.x,_=i.y,v=i.z,h=i.w,y=l.x,x=l.y,g=l.z,w=l.w,f=c.x>0,A=c.y,E=c.z,P=c.w,C=__tsover_div(s.x,n.max(s.y,1e-6)),$=o.vec2f(__tsover_mul(r.x,C),__tsover_sub(1,r.y)),U=o.vec2f(__tsover_mul(a.x,C),__tsover_sub(1,a.y)),k=o.vec2f(__tsover_mul(t.x,C),t.y),R=o.vec2f(__tsover_sub(U.x,$.x),__tsover_sub(U.y,$.y)),D=n.max(n.length(R),1e-6),M=o.vec2f(__tsover_div(R.x,D),__tsover_div(R.y,D)),z=o.vec2f(-M.y,M.x),L=o.vec2f(__tsover_sub(k.x,$.x),__tsover_sub(k.y,$.y)),B=__tsover_div(n.dot(L,M),D),N=n.dot(L,z),G=n.clamp(B,0,1),I=n.select(o.f32(1),n.sin(__tsover_mul(G,OR)),f),X=__tsover_mul(n.smoothstep(0,.06,B),__tsover_sub(1,n.smoothstep(.94,1,B))),F=n.select(o.f32(1),X,f),Q=__tsover_mul(h,.07),ae=__tsover_add(__tsover_mul(y,.08),8e-4),j=n.max(__tsover_sub(v,1),1),q=o.vec3f(0,0,0),te=o.f32(0),ne=__tsover_mul(__tsover_mul(B,VR),_),oe=__tsover_add(__tsover_mul(B,8),__tsover_mul(A,2)),pe=__ts
vendor: 5,751 bytes, line 247
247over_add(__tsover_mul(B,g),E),_e=o.i32(n.round(v));for(let Se=0;Se<_e;Se++){let Ae=o.f32(Se),Pe=__tsover_div(Ae,j),De=__tsover_mul(Ae,.9),ke=__tsover_mul(A,__tsover_add(__tsover_mul(Pe,.6),.7)),Ge=__tsover_add(n.sin(__tsover_add(__tsover_add(ne,ke),De)),__tsover_mul(n.sin(__tsover_add(__tsover_sub(__tsover_mul(ne,2.1),__tsover_mul(ke,.7)),De)),.5)),Oe=__tsover_mul(__tsover_mul(Ge,m),.06),qe=__tsover_mul(__tsover_sub(Pe,.5),x),We=__tsover_mul(__tsover_add(qe,Oe),I),Ve=n.abs(__tsover_sub(N,We)),Ne=__tsover_sub(1,n.smoothstep(Q,__tsover_add(Q,ae),Ve)),He=__tsover_add(__tsover_mul(n.sin(__tsover_add(oe,Ae)),.15),.85),vt=__tsover_add(pe,__tsover_mul(Pe,w)),_t=Em(__tsover_sub(1,n.abs(__tsover_sub(__tsover_mul(n.fract(__tsover_mul(vt,.5)),2),1))),d,u,p,P).conv,Ze=__tsover_mul(Ne,He);q=q.add(_t.mul(Ze)),te=__tsover_add(te,Ze)}let ge=q.div(n.max(te,1e-4)),Me=n.clamp(__tsover_mul(te,F),0,1);return o.vec4f(ge,Me)}),{v:1,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,"pinOn",[1,[7,"packed3","x"],">",[5,"0"]]],[13,"waveT",[7,"packed3","y"]],[13,"colorT",[7,"packed3","z"]],[13,"stopCount",[7,"packed3","w"]],[13,"aspectRatio",[1,[7,"viewport","x"],"/",[6,[7,"std","max"],[[7,"viewport","y"],[5,"0.000001"]]]]],[13,"startPos",[6,[7,"d","vec2f"],[[1,[7,"start","x"],"*","aspectRatio"],[1,[5,"1"],"-",[7,"start","y"]]]]],[13,"endPos",[6,[7,"d","vec2f"],[[1,[7,"end","x"],"*","aspectRatio"],[1,[5,"1"],"-",[7,"end","y"]]]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspectRatio"],[7,"uv","y"]]]],[13,"direction",[6,[7,"d","vec2f"],[[1,[7,"endPos","x"],"-",[7,"startPos","x"]],[1,[7,"endPos","y"],"-",[7,"startPos","y"]]]]],[13,"len",[6,[7,"std","max"],[[6,[7,"std","length"],["direction"]],[5,"0.000001"]]]],[13,"normalizedDir",[6,[7,"d","vec2f"],[[1,[7,"direction","x"],"/","len"],[1,[7,"direction","y"],"/","len"]]]],[13,"perpDir",[6,[7,"d","vec2f"],[[4,"-",[7,"normalizedDir","y"]],[7,"normalizedDir","x"]]]],[13,"relativePos",[6,[7,"d","vec2f"],[[1,[7,"aspectUV","x"],"-",[7,"startPos","x"]],[1,[7,"aspectUV","y"],"-",[7,"startPos","y"]]]]],[13,"progress",[1,[6,[7,"std","dot"],["relativePos","normalizedDir"]],"/","len"]],[13,"perpDist",[6,[7,"std","dot"],["relativePos","perpDir"]]],[13,"clampedProg",[6,[7,"std","clamp"],["progress",[5,"0"],[5,"1"]]]],[13,"pinch",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],[6,[7,"std","sin"],[[1,"clampedProg","*","PI"]]],"pinOn"]]],[13,"fade",[1,[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.06"],"progress"]],"*",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0.94"],[5,"1"],"progress"]]]]],[13,"edgeFade",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],"fade","pinOn"]]],[13,"thickness",[1,"lineWidth","*",[5,"0.07"]]],[13,"softness",[1,[1,"softnessP","*",[5,"0.08"]],"+",[5,"0.0008"]]],[13,"denom",[6,[7,"std","max"],[[1,"lineCount","-",[5,"1"]],[5,"1"]]]],[12,"accumColor",[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]]],[12,"accumWeight",[6,[7,"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,[7,"d","i32"],[[6,[7,"std","round"],["lineCount"]]]]],[14,[12,"idx",[5,"0"]],[1,"idx","<","n"],[102,"++","idx"],[0,[[13,"fi",[6,[7,"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,[7,"std","sin"],[[1,[1,"waveBase","+","strandT"],"+","phase"]]],"+",[1,[6,[7,"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,[7,"std","abs"],[[1,"perpDist","-","centre"]]]],[13,"line",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["thickness",[1,"thickness","+","softness"],"dd"]]]],[13,"shimmer",[1,[1,[6,[7,"std","sin"],[[1,"shimmerBase","+","fi"]]],"*",[5,"0.15"]],"+",[5,"0.85"]]],[13,"cc",[1,"colorBase","+",[1,"norm","*","colorVariance"]]],[13,"colorCoord",[1,[5,"1"],"-",[6,[7,"std","abs"],[[1,[1,[6,[7,"std","fract"],[[1,"cc","*",[5,"0.5"]]]],"*",[5,"2"]],"-",[5,"1"]]]]]],[13,"stepRes",[6,[7,"kitColorStops","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,[7,"std","max"],["accumWeight",[5,"0.0001"]]]]]],[13,"alpha",[6,[7,"std","clamp"],[[1,"accumWeight","*","edgeFade"],[5,"0"],[5,"1"]]]],[10,[6,[7,"d","vec4f"],["workingColor","alpha"]]]]],externalNames:["std","d","PI","TAU","kitColorStops"]},externals:()=>({std:n,d:o,PI:OR,TAU:VR,kitColorStops:dS})})&&e.f)({}));function Dj(e,t){switch(t){case 1:return T(Zt,"sRGBToP3",[T(Zo,"oklabToRgb",[T(yn,"oklchToOklab",[e])])]);case 2:return T(Zt,"sRGBToP3",[T(Zo,"oklabToRgb",[e])]);case 3:return T(Zt,"sRGBToP3",[T(ki,"hslToRgb",[e])]);
247case 4:return T(Zt,"sRGBToP3",[T(Ri,"hsvToRgb",[e])]);case 5:return T(Zt,"sRGBToP3",[T($i,"labToRgb",[T(Ui,"lchToLab",[e])])]);default:return e}}var NR={name:"Strands",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Flowing ribbons of light with a multi-color gradient",requiresRTT:!1,requiresChild:!1,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:Rj,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:Wo,description:"Pin the strands so they converge to the start and end points",ui:{type:"checkbox",label:"Pin Edges",group:"Effect"}},stops:{...xs(),default:[{color:"#00e5ff",position:0},{color:"#5b8cff",position:.34},{color:"#b06bff",position:.67},{color:"#ff5fa2",position:1}]},colorSpace:{default:"oklab",transform:Ue,compileTime:!0,description:"Color space used to blend the gradient",ui:{type:"select",options:ze,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:we,description:"Starting point of the strands",ui:{type:"position",label:"Start",group:"Position"}},end:{default:{x:1,y:.5},transform:we,description:"Ending point of the strands",ui:{type:"position",label:"End",group:"Position"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=Fe(e,void 0,"_animTime_color"),c=de(t.amplitude,t.frequency,t.lineCount,t.lineWidth),d=de(t.softness,t.spread,t.colorScale,t.colorVariance),u=de(t.pinEdges,i,l,t.stopCount),p=T(Uj,"strandsField",[r,a,t.start,t.end,c,d,u,t.colorsArray,t.positionsArray,t.convertedColorsArray]),m=s.colorSpace??0;return de(T($j,"strandsTonePow",[Dj(p.member("rgb"),m)]),p.member("a"))}};var YR=Math.PI/180,GR=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=o.vec2f(__tsover_mul(i.x,l),i.y),d=o.vec2f(__tsover_mul(t.x,l),__tsover_sub(1,t.y)),u=c.sub(d),p=__tsover_mul(r,YR),m=o.vec2f(n.cos(p),n.sin(p)),_=n.dot(u,m),v=m.mul(_),h=u.sub(v),y=n.mix(.001,75,a),x=n.clamp(__tsover_div(_,y),0,1),g=__tsover_mul(s,100),w=__tsover_add(1,__tsover_mul(g,x)),f=__tsover_div(_,w),A=m.mul(f).add(h),E=d.add(A);return o.vec2f(__tsover_div(E.x,l),E.y)}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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,[7,"d","vec2f"],[[6,[7,"std","cos"],["angleRad"]],[6,[7,"std","sin"],["angleRad"]]]]],[13,"projection",[6,[7,"std","dot"],["delta","directionVector"]]],[13,"parallel",[6,[7,"directionVector","mul"],["projection"]]],[13,"perpendicular",[6,[7,"delta","sub"],["parallel"]]],[13,"transitionWidth",[6,[7,"std","mix"],[[5,"0.001"],[5,"75"],"falloff"]]],[13,"effectMask",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"stretchedUV","x"],"/","aspect"],[7,"stretchedUV","y"]]]]]],externalNames:["d","DEG_TO_RAD","std"]},externals:()=>({d:o,DEG_TO_RAD:YR,std:n})})&&e.f)({})),WR={name:"Stretch",category:"Distortions",description:"Stretch content towards a direction from a center point",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The center point of the stretch effect",ui:{type:"position",label:"Center",group:"Position"}},strength:{default:1,description:"The intensity of the stretch effect",ui:{type:["range","map"],min:0,max:1,step:.
24701,label:"Strength",group:"Effect"}},angle:{default:0,description:"The direction of the stretch in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},falloff:{default:0,description:"Controls the sharpness of the transition (0 = sharp edge, 1 = gradual transition)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Falloff",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the Stretch shader."),me;let i=a(t),l=r.edges??0;return T(Re,"unpremultiplyAlpha",[Gt(T(GR,"stretchUV",[e.center,e.strength,e.angle,e.falloff,s.uv,s.aspect]),c=>i.sample(c),l)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0;return zs(T(GR,"stretchUV",[s.center,s.strength,s.angle,s.falloff,e,r]),t,i)}};var XR=.0174533,qR=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_div(s.x,n.max(s.y,1e-6)),d=__tsover_mul(t.x,c),u=t.y,p=__tsover_mul(r,XR),m=n.cos(p),_=n.sin(p),v=__tsover_add(__tsover_mul(d,m),__tsover_mul(u,_));return __tsover_add(__tsover_add(__tsover_mul(v,a),i),l)}),{v:1,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,"aspect",[1,[7,"viewport","x"],"/",[6,[7,"std","max"],[[7,"viewport","y"],[5,"0.000001"]]]]],[13,"acx",[1,[7,"uv","x"],"*","aspect"]],[13,"acy",[7,"uv","y"]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"std","sin"],["angleRad"]]],[13,"rotatedCoord",[1,[1,"acx","*","cosA"],"+",[1,"acy","*","sinA"]]],[10,[1,[1,[1,"rotatedCoord","*","density"],"+","animTime"],"+","offset"]]]],externalNames:["std","DEG_TO_RAD"]},externals:()=>({std:n,DEG_TO_RAD:XR})})&&e.f)({})),HR=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_add(t,__tsover_mul(s,.5)),i=__tsover_sub(t,__tsover_mul(s,.5)),l=__tsover_sub(1,r),c=__tsover_add(__tsover_mul(n.floor(a),l),n.max(__tsover_sub(n.fract(a),r),0)),d=__tsover_add(__tsover_mul(n.floor(i),l),n.max(__tsover_sub(n.fract(i),r),0));return n.clamp(__tsover_div(__tsover_sub(c,d),s),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"},{type:"i",name:"w"},{type:"i",name:"balance"}],body:[0,[[13,"a",[1,"p","+",[1,"w","*",[5,"0.5"]]]],[13,"b",[1,"p","-",[1,"w","*",[5,"0.5"]]]],[13,"oneMinusBalance",[1,[5,"1"],"-","balance"]],[13,"Fa",[1,[1,[6,[7,"std","floor"],["a"]],"*","oneMinusBalance"],"+",[6,[7,"std","max"],[[1,[6,[7,"std","fract"],["a"]],"-","balance"],[5,"0"]]]]],[13,"Fb",[1,[1,[6,[7,"std","floor"],["b"]],"*","oneMinusBalance"],"+",[6,[7,"std","max"],[[1,[6,[7,"std","fract"],["b"]],"-","balance"],[5,"0"]]]]],[10,[6,[7,"std","clamp"],[[1,[1,"Fa","-","Fb"],"/","w"],[5,"0"],[5,"1"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),zj=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=qR(t,s,r,a,i,l),p=n.dpdx(u),m=n.dpdy(u),_=n.max(n.abs(p),n.abs(m));return HR(u,n.max(__tsover_add(_,d),1e-5),c)}),{v:1,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"]]],[13,"dpx",[6,[7,"std","dpdx"],["p"]]],[13,"dpy",[6,[7,"std","dpdy"],["p"]]],[13,"baseW",[6,[7,"std","max"],[[6,[7,"std","abs"],["dpx"]
247],[6,[7,"std","abs"],["dpy"]]]]],[13,"w",[6,[7,"std","max"],[[1,"baseW","+","softness"],[5,"0.00001"]]]],[10,[6,"stripeMaskValue",["p","w","balance"]]]]],externalNames:["stripeCoordP","std","stripeMaskValue"]},externals:()=>({stripeCoordP:qR,std:n,stripeMaskValue:HR})})&&e.f)({})),jR={name:"Stripes",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Alternating colored stripes with animation",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#000000",transform:O,description:"First stripe color",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Second stripe color",ui:{type:"color",label:"Color B",group:"Colors"}},angle:{default:45,transform:Jt,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:Ue,compileTime:!0,description:"Color space for interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e),a=T(zj,"stripesMask",[t,s,e.uniforms.angle,e.uniforms.density,r,e.uniforms.offset,e.uniforms.balance,e.uniforms.softness]);return T(Ye[e.propValues.colorSpace??0]??Be,"mixColors",[e.uniforms.colorA,e.uniforms.colorB,a])}};var Vb=Math.PI*2,Kl=b.fn([o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(__tsover_mul(t,12.9898)),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"x"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"x","*",[5,"12.9898"]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),bh=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v)=>{"use gpu";let h=n.mix(t,i,l),y=__tsover_div(__tsover_mul(__tsover_sub(r,h),a),c),x=__tsover_add(__tsover_mul(y,y),u),g=__tsover_mul(__tsover_mul(n.exp(__tsover_mul(-x,s)),d),p),w=n.mix(i,t,.25),f=__tsover_mul(__tsover_mul(__tsover_sub(r,w),a),1.4),A=__tsover_add(__tsover_mul(f,f),m),E=__tsover_mul(__tsover_mul(n.exp(__tsover_mul(-A,__tsover_mul(s,1.5))),_),v);return __tsover_add(g,E)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"sourceX"},{type:"i",name:"decay"},{type:"i",name:"uvx"},{type:"i",name:"aspect"},{type:"i",name:"centerX"},{type:"i",name:"wallNormY2"},{type:"i",name:"coneWidth"},{type:"i",name:"notFloor"},{type:"i",name:"wallFallY2"},{type:"i",name:"wallBias"},{type:"i",name:"floorDy2"},{type:"i",name:"isFloor"},{type:"i",name:"floorBias"}],body:[0,[[13,"beamX",[6,[7,"std","mix"],["sourceX","centerX","wallNormY2"]]],[13,"wDx",[1,[1,[1,"uvx","-","beamX"],"*","aspect"],"/","coneWidth"]],[13,"wD2",[1,[1,"wDx","*","wDx"],"+","wallFallY2"]],[13,"wall",[1,[1,[6,[7,"std","exp"],[[1,[4,"-","wD2"],"*","decay"]]],"*","notFloor"],"*","wallBias"]],[13,"poolX",[6,[7,"std","mix"],["centerX","sourceX",[5,"0.25"]]]],[13,"fDx",[1,[1,[1,"uvx","-","poolX"],"*","aspect"],"*",[5,"1.4"]]],[13,"fD2",[1,[1,"fDx","*","fDx"],"+","floorDy2"]],[13,"floorV",[1,[1,[6,[7,"std","exp"],[[1,[4,"-","fD2"],"*",[1,"decay","*",[5,"1.5"]]]]],"*","isFloor"],"*","floorBias"]],[10,[1,"wall","+","floorV"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),Ij=b.fn([o.vec2f,o.vec2f,o.vec2f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=__tsover_mul(d.x,.02),v=__tsover_mul(d.y,.015),h=__tsover_mul(d.z,.01),y=__tsover_mul(d.w,.015),x=__tsover_mul(u.x,.01),g=__tsover_mul(u.y,.005),w=__tsover_mul(u.z,.015),f=__tsover_mul(u.w,.01),A=__tsover_mul(p.x,.01),E=__tsover_mul(p.y,.01),P=__tsover_mul(p.z,.025),C=__tsover_mul(p.w,.012),$=m.x,U=m.y,k=__tsover_div(s.x,s.y),R=r.x,D=__tsover_sub(1,r.y),M=n.mix(o.f32(5),.8,h),z=n.mix(o.f32(5),.8,x),L=n.mix(o.f32(5),.8,f),B=n.mix(.015,.15,E),N=n.smoothstep(__tsover_sub(D,B),__tsover_add(D,B),t.y),G=__tsover_sub(1,N),I=n.clamp(__tsover_div(t.y,D),0,1),X=__tsover_mul(I,I),F=n.clamp(__tsover_div(__tsover_sub(t.y,D),__tsover_sub(1,D)),0,1),Q=__tsover_mul(__tsover_sub(t.x,R),k),ae=n.mix(.05,.45,X),j=__tsover_mul(__tsover_sub(1,I),1.2),q=__tsover_mul(j,j),te=__tsover_add(D,__tsover_mul(__tsover_sub(1,D),.3)),ne=__tsover_mul(__tsover_sub(t.y,te),4),oe=__tsover_mul(ne,ne),pe=n.mix(.2,.4,I),_e=n.mix(.38,.18,F),ge=__tsover_mul(n.mix(
vendor: 5,091 bytes, line 247
247pe,_e,N),_),Me=__tsover_div(__tsover_sub(t.y,D),__tsover_add(B,.001)),Se=__tsover_mul(__tsover_mul(__tsover_mul(n.exp(__tsover_mul(__tsover_mul(-.5,Me),Me)),E),_),.1),Ae=__tsover_add(ge,Se),Pe=o.vec3f(Ae,Ae,Ae),De=__tsover_add(__tsover_mul(__tsover_sub(1,A),1.4),.3),ke=__tsover_add(__tsover_mul(A,1.4),.3),Ge=__tsover_mul(bh(R,M,t.x,k,R,X,ae,G,q,De,oe,N,ke),v);Pe=Pe.add(i.xyz.mul(Ge));let Oe=__tsover_mul(bh(__tsover_sub(R,g),z,t.x,k,R,X,ae,G,q,De,oe,N,ke),y),qe=__tsover_mul(bh(__tsover_add(R,g),z,t.x,k,R,X,ae,G,q,De,oe,N,ke),y);Pe=Pe.add(l.xyz.mul(__tsover_add(Oe,qe)));let We=n.mix(o.f32(1),D,.15),Ve=__tsover_mul(Q,.5),Ne=__tsover_mul(__tsover_sub(t.y,We),4),He=__tsover_add(__tsover_mul(Ve,Ve),__tsover_mul(Ne,Ne)),vt=__tsover_mul(n.exp(__tsover_mul(-L,He)),N),_t=__tsover_mul(Q,.6),Ze=__tsover_mul(__tsover_sub(D,t.y),3),it=__tsover_add(__tsover_mul(_t,_t),__tsover_mul(Ze,Ze)),Tt=__tsover_mul(__tsover_mul(n.exp(__tsover_mul(-__tsover_mul(L,.8),it)),G),X),J=__tsover_mul(__tsover_add(vt,Tt),w);Pe=Pe.add(c.xyz.mul(J));let be=__tsover_mul(Q,.7),ce=__tsover_mul(__tsover_add(__tsover_sub(t.y,D),.02),10),xe=__tsover_add(__tsover_mul(be,be),__tsover_mul(ce,ce)),ye=__tsover_mul(__tsover_mul(n.exp(__tsover_mul(-2.5,xe)),__tsover_mul(v,.12)),G);Pe=Pe.add(o.vec3f(ye,ye,ye));let Ee=__tsover_mul(C,.25);for(let St=0;St<4;St++){let zt=__tsover_add($,__tsover_mul(o.f32(St),73.1)),$t=__tsover_add(__tsover_mul(Kl(__tsover_add(zt,311)),.12),.1),Xe=__tsover_add(__tsover_mul(Kl(zt),.5),.2),Qt=__tsover_add(__tsover_mul(Kl(__tsover_add(zt,37)),.25),.1),Xt=__tsover_add(__tsover_mul(Kl(__tsover_add(zt,91)),.3),.1),Ps=__tsover_add(__tsover_mul(Kl(__tsover_add(zt,143)),.25),.08),$s=__tsover_mul(Kl(__tsover_add(zt,200)),Vb),Ks=__tsover_mul(Kl(__tsover_add(zt,257)),Vb),yo=__tsover_mul($t,$t),Gs=__tsover_add(R,__tsover_mul(n.sin(__tsover_add(__tsover_mul(U,Xt),$s)),Xe)),Js=__tsover_add(__tsover_sub(D,.2),__tsover_mul(n.cos(__tsover_add(__tsover_mul(U,Ps),Ks)),Qt)),Ls=__tsover_mul(__tsover_sub(t.x,Gs),k),Fr=__tsover_sub(t.y,Js),Er=__tsover_add(__tsover_mul(Ls,Ls),__tsover_mul(Fr,Fr)),so=__tsover_mul(n.exp(__tsover_div(__tsover_mul(-.5,Er),yo)),Ee);Pe=Pe.add(o.vec3f(so,so,so))}let Le=__tsover_mul(__tsover_sub(t.x,.5),k),ot=__tsover_sub(t.y,.5),Ke=__tsover_add(__tsover_mul(Le,Le),__tsover_mul(ot,ot)),rt=n.clamp(__tsover_sub(1,__tsover_mul(Ke,P)),0,1),Mt=n.clamp(Pe,o.vec3f(0),o.vec3f(3)),ht=n.clamp(a.xyz.mul(Mt).mul(rt),o.vec3f(0),o.vec3f(1));return o.vec4f(ht,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"center"},{type:"i",name:"surfaceColor"},{type:"i",name:"keyColor"},{type:"i",name:"fillColor"},{type:"i",name:"backColor"},{type:"i",name:"lights1"},{type:"i",name:"lights2"},{type:"i",name:"scene"},{type:"i",name:"misc"}],body:[0,[[13,"brightness",[1,[7,"lights1","x"],"*",[5,"0.02"]]],[13,"keyInt",[1,[7,"lights1","y"],"*",[5,"0.015"]]],[13,"keySoft01",[1,[7,"lights1","z"],"*",[5,"0.01"]]],[13,"fillInt",[1,[7,"lights1","w"],"*",[5,"0.015"]]],[13,"fillSoft01",[1,[7,"lights2","x"],"*",[5,"0.01"]]],[13,"fillOffset",[1,[7,"lights2","y"],"*",[5,"0.005"]]],[13,"backInt",[1,[7,"lights2","z"],"*",[5,"0.015"]]],[13,"backSoft01",[1,[7,"lights2","w"],"*",[5,"0.01"]]],[13,"lightTarget",[1,[7,"scene","x"],"*",[5,"0.01"]]],[13,"curvature",[1,[7,"scene","y"],"*",[5,"0.01"]]],[13,"vignetteStrength",[1,[7,"scene","z"],"*",[5,"0.025"]]],[13,"ambIntensity",[1,[7,"scene","w"],"*",[5,"0.012"]]],[13,"seed",[7,"misc","x"]],[13,"animTime",[7,"misc","y"]],[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"centerX",[7,"center","x"]],[13,"centerY",[1,[5,"1"],"-",[7,"center","y"]]],[13,"keyDecay",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"5"]]],[5,"0.8"],"keySoft01"]]],[13,"fillDecay",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"5"]]],[5,"0.8"],"fillSoft01"]]],[13,"backDecay",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"5"]]],[5,"0.8"],"backSoft01"]]],[13,"transitionWidth",[6,[7,"std","mix"],[[5,"0.015"],[5,"0.15"],"curvature"]]],[13,"isFloor",[6,[7,"std","smoothstep"],[[1,"centerY","-","transitionWidth"],[1,"centerY","+","transitionWidth"],[7,"uv","y"]]]],[13,"notFloor",[1,[5,"1"],"-","isFloor"]],[13,"wallNormY",[6,[7,"std","clamp"],[[1,[7,"uv","y"],"/","centerY"],[5,"0"],[5,"1"]]]],[13,"wallNormY2",[1,"wallNormY","*","wallNormY"]],[13,"floorNormY",[6,[7,"std","clamp"],[[1,[1,[7,"uv","y"],"-","centerY"],"/",[1,[5,"1"],"-","centerY"]],[5,"0"],[5,"1"]]]],[13,"uvXCentered",[1,[1,[7,"uv","x"],"-","centerX"],"*","aspect"]],[13,"coneWidth",[6,[7,"std","mix"],[[5,"0.05"],[5,"0.45"],"wallNormY2"]]],[13,"wallFallY",[1,[1,[5,"1"],"-","wallNormY"],"*",[5,"1.2"]]],[13,"wallFallY2",[1,"wallFallY","*","wallFallY"]],[13,"floorPoolY",[1,"centerY","+",[1,[1,[5,"1"],"-","centerY"],"*",[5,"0.3"]]]],[13,"floorDy",[1,[1,[7,"uv","y"],"-","floorPoolY"],"*",[5,"4"]]],[13,"floorDy2",[1,"floorDy","*","floorDy"]],[13,"wallAmbient",[6,[7,"std","mix"],[[5,"0.2"],[5,"0.4"],"wallNormY"]]],[13,"floorAmbient",[6,[7,"std","mix"],[[5,"0.38"],[5,"0.18"],"floorNormY"]]],[13,"ambient",[1,[6,[7,"std","mix"],["wallAmbient","floorAmbient","
247isFloor"]],"*","brightness"]],[13,"curveDist",[1,[1,[7,"uv","y"],"-","centerY"],"/",[1,"transitionWidth","+",[5,"0.001"]]]],[13,"curveGlow",[1,[1,[1,[6,[7,"std","exp"],[[1,[1,[4,"-",[5,"0.5"]],"*","curveDist"],"*","curveDist"]]],"*","curvature"],"*","brightness"],"*",[5,"0.1"]]],[13,"neutralBase",[1,"ambient","+","curveGlow"]],[12,"lightAccum",[6,[7,"d","vec3f"],["neutralBase","neutralBase","neutralBase"]]],[13,"wallBias",[1,[1,[1,[5,"1"],"-","lightTarget"],"*",[5,"1.4"]],"+",[5,"0.3"]]],[13,"floorBias",[1,[1,"lightTarget","*",[5,"1.4"]],"+",[5,"0.3"]]],[13,"keyPat",[1,[6,"studioDownSpot",["centerX","keyDecay",[7,"uv","x"],"aspect","centerX","wallNormY2","coneWidth","notFloor","wallFallY2","wallBias","floorDy2","isFloor","floorBias"]],"*","keyInt"]],[2,"lightAccum","=",[6,[7,"lightAccum","add"],[[6,[7,[7,"keyColor","xyz"],"mul"],["keyPat"]]]]],[13,"leftPat",[1,[6,"studioDownSpot",[[1,"centerX","-","fillOffset"],"fillDecay",[7,"uv","x"],"aspect","centerX","wallNormY2","coneWidth","notFloor","wallFallY2","wallBias","floorDy2","isFloor","floorBias"]],"*","fillInt"]],[13,"rightPat",[1,[6,"studioDownSpot",[[1,"centerX","+","fillOffset"],"fillDecay",[7,"uv","x"],"aspect","centerX","wallNormY2","coneWidth","notFloor","wallFallY2","wallBias","floorDy2","isFloor","floorBias"]],"*","fillInt"]],[2,"lightAccum","=",[6,[7,"lightAccum","add"],[[6,[7,[7,"fillColor","xyz"],"mul"],[[1,"leftPat","+","rightPat"]]]]]],[13,"backBottomY",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],"centerY",[5,"0.15"]]]],[13,"bfDx",[1,"uvXCentered","*",[5,"0.5"]]],[13,"bfDy",[1,[1,[7,"uv","y"],"-","backBottomY"],"*",[5,"4"]]],[13,"bfD2",[1,[1,"bfDx","*","bfDx"],"+",[1,"bfDy","*","bfDy"]]],[13,"backFloor",[1,[6,[7,"std","exp"],[[1,[4,"-","backDecay"],"*","bfD2"]]],"*","isFloor"]],[13,"bwDx",[1,"uvXCentered","*",[5,"0.6"]]],[13,"bwDy",[1,[1,"centerY","-",[7,"uv","y"]],"*",[5,"3"]]],[13,"bwD2",[1,[1,"bwDx","*","bwDx"],"+",[1,"bwDy","*","bwDy"]]],[13,"backWall",[1,[1,[6,[7,"std","exp"],[[1,[4,"-",[1,"backDecay","*",[5,"0.8"]]],"*","bwD2"]]],"*","notFloor"],"*","wallNormY2"]],[13,"backPat",[1,[1,"backFloor","+","backWall"],"*","backInt"]],[2,"lightAccum","=",[6,[7,"lightAccum","add"],[[6,[7,[7,"backColor","xyz"],"mul"],["backPat"]]]]],[13,"bnDx",[1,"uvXCentered","*",[5,"0.7"]]],[13,"bnDy",[1,[1,[1,[7,"uv","y"],"-","centerY"],"+",[5,"0.02"]],"*",[5,"10"]]],[13,"bnD2",[1,[1,"bnDx","*","bnDx"],"+",[1,"bnDy","*","bnDy"]]],[13,"bounce",[1,[1,[6,[7,"std","exp"],[[1,[4,"-",[5,"2.5"]],"*","bnD2"]]],"*",[1,"keyInt","*",[5,"0.12"]]],"*","notFloor"]],[2,"lightAccum","=",[6,[7,"lightAccum","add"],[[6,[7,"d","vec3f"],["bounce","bounce","bounce"]]]]],[13,"ambGlowScale",[1,"ambIntensity","*",[5,"0.25"]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"4"]],[102,"++","i"],[0,[[13,"s",[1,"seed","+",[1,[6,[7,"d","f32"],["i"]],"*",[5,"73.1"]]]],[13,"sizeVal",[1,[1,[6,"hash01",[[1,"s","+",[5,"311"]]]],"*",[5,"0.12"]],"+",[5,"0.1"]]],[13,"radiusX",[1,[1,[6,"hash01",["s"]],"*",[5,"0.5"]],"+",[5,"0.2"]]],[13,"radiusY",[1,[1,[6,"hash01",[[1,"s","+",[5,"37"]]]],"*",[5,"0.25"]],"+",[5,"0.1"]]],[13,"freqX",[1,[1,[6,"hash01",[[1,"s","+",[5,"91"]]]],"*",[5,"0.3"]],"+",[5,"0.1"]]],[13,"freqY",[1,[1,[6,"hash01",[[1,"s","+",[5,"143"]]]],"*",[5,"0.25"]],"+",[5,"0.08"]]],[13,"phaseX",[1,[6,"hash01",[[1,"s","+",[5,"200"]]]],"*","TAU"]],[13,"phaseY",[1,[6,"hash01",[[1,"s","+",[5,"257"]]]],"*","TAU"]],[13,"sizeSq",[1,"sizeVal","*","sizeVal"]],[13,"lx",[1,"centerX","+",[1,[6,[7,"std","sin"],[[1,[1,"animTime","*","freqX"],"+","phaseX"]]],"*","radiusX"]]],[13,"ly",[1,[1,"centerY","-",[5,"0.2"]],"+",[1,[6,[7,"std","cos"],[[1,[1,"animTime","*","freqY"],"+","phaseY"]]],"*","radiusY"]]],[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"]]],[13,"glow",[1,[6,[7,"std","exp"],[[1,[1,[4,"-",[5,"0.5"]],"*","dd2"],"/","sizeSq"]]],"*","ambGlowScale"]],[2,"lightAccum","=",[6,[7,"lightAccum","add"],[[6,[7,"d","vec3f"],["glow","glow","glow"]]]]]]]],[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"]]],[13,"vig",[6,[7,"std","clamp"],[[1,[5,"1"],"-",[1,"vigD2","*","vignetteStrength"]],[5,"0"],[5,"1"]]]],[13,"clamped",[6,[7,"std","clamp"],["lightAccum",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"3"]]]]]],[13,"lit",[6,[7,"std","clamp"],[[6,[7,[6,[7,[7,"surfaceColor","xyz"],"mul"],["clamped"]],"mul"],["vig"]],[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["lit",[5,"1"]]]]]],externalNames:["std","d","studioDownSpot","hash01","TAU"]},externals:()=>({std:n,d:o,studioDownSpot:bh,hash01:Kl,TAU:Vb})})&&e.f)({}
247)),ZR={name:"StudioBackground",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Multi-light studio background with ambient motion.",animatedTime:{speed:"ambientSpeed"},props:{color:{default:"#d8dbec",transform:O,description:"Base studio surface color",ui:{type:"color",label:"Surface Color",group:"Colors"}},keyColor:{default:"#d5e4ea",transform:O,description:"Color of the overhead key light",ui:{type:"color",label:"Key Color",group:"Key Light"}},keyIntensity:{default:40,description:"Intensity of the key light",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Key Light"}},keySoftness:{default:50,description:"How diffuse the key light is",ui:{type:["range","map"],min:0,max:100,step:1,label:"Softness",group:"Key Light"}},fillColor:{default:"#d5e4ea",transform:O,description:"Color of the side fill lights",ui:{type:"color",label:"Fill Color",group:"Fill Lights"}},fillIntensity:{default:10,description:"Intensity of the fill lights",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Fill Lights"}},fillSoftness:{default:70,description:"How diffuse the fill lights are",ui:{type:["range","map"],min:0,max:100,step:1,label:"Softness",group:"Fill Lights"}},fillAngle:{default:70,description:"How far apart the fill lights are from center",ui:{type:["range","map"],min:0,max:100,step:1,label:"Spread",group:"Fill Lights"}},backColor:{default:"#c8d4e8",transform:O,description:"Color of the upward back wash",ui:{type:"color",label:"Back Color",group:"Back Light"}},backIntensity:{default:20,description:"Intensity of the back wash",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Back Light"}},backSoftness:{default:80,description:"How diffuse the back wash is",ui:{type:["range","map"],min:0,max:100,step:1,label:"Softness",group:"Back Light"}},brightness:{default:20,description:"Overall ambient light level",ui:{type:["range","map"],min:0,max:100,step:1,label:"Ambient",group:"Lighting"}},vignette:{default:0,description:"Edge darkening",ui:{type:["range","map"],min:0,max:100,step:1,label:"Vignette",group:"Lighting"}},center:{default:{x:.5,y:.8},transform:we,description:"Where the spotlight meets the floor",ui:{type:"position",label:"Stage Center",group:"Scene"}},lightTarget:{default:100,description:"How far toward the floor vs wall the spotlights aim",ui:{type:["range","map"],min:0,max:100,step:1,label:"Light Depth",group:"Scene"}},wallCurvature:{default:10,description:"How rounded the cove is",ui:{type:["range","map"],min:0,max:100,step:1,label:"Wall Curvature",group:"Scene"}},ambientIntensity:{default:50,description:"Intensity of drifting ambient lights",ui:{type:["range","map"],min:0,max:100,step:1,label:"Ambient Detail",group:"Environment"}},ambientSpeed:{default:2,description:"Drift speed",ui:{type:"range",min:-5,max:5,step:.1,label:"Speed",group:"Environment"}},seed:{default:0,description:"Seed for ambient pattern",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Environment"}}},fragment:e=>{let{uniforms:t}=e,s=e.uvContext??e.ctx.uv,r=e.effectiveViewportSize??e.ctx.viewportSize,a=Fe(e),i=de(t.brightness,t.keyIntensity,t.keySoftness,t.fillIntensity),l=de(t.fillSoftness,t.fillAngle,t.backIntensity,t.backSoftness),c=de(t.lightTarget,t.wallCurvature,t.vignette,t.ambientIntensity),d=de(t.seed,a,0,0);return T(Ij,"studioBackgroundColor",[s,r,t.center,t.color,t.keyColor,t.fillColor,t.backColor,i,l,c,d])}};var Lj=b.fn([o.vec2f,o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=__tsover_div(s.x,s.y),p=r.x,m=__tsover_sub(1,r.y),_=__tsover_sub(__tsover_mul(t.x,u),__tsover_mul(p,u)),v=__tsover_sub(t.y,m),h=n.sqrt(__tsover_add(__tsover_mul(_,_),__tsover_mul(v,v))),y=n.atan2(v,_),x=__tsover_add(__tsover_mul(n.sin(__tsover_sub(__tsover_mul(y,a),d)),.5),.5),g=__tsover_mul(__tsover_div(1,__tsover_add(i,.05)),.3),w=n.pow(x,g),f=__tsover_mul(l,__tsover_sub(1,c)),A=__tsover_sub(1,n.smoothstep(f,l,h));return __tsover_mul(w,A)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"center"},{type:"i",name:"rayCount"},{type:"i",name:"softness"},{type:"i",name:"radius"},{type:"i",name:"feather"},{type:"i",name:"animTime"}
vendor: 12,697 bytes, line 247
247],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[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,[7,"std","sqrt"],[[1,[1,"dx","*","dx"],"+",[1,"dy","*","dy"]]]]],[13,"angle",[6,[7,"std","atan2"],["dy","dx"]]],[13,"t",[1,[1,[6,[7,"std","sin"],[[1,[1,"angle","*","rayCount"],"-","animTime"]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"sharpness",[1,[1,[5,"1"],"/",[1,"softness","+",[5,"0.05"]]],"*",[5,"0.3"]]],[13,"rayMask",[6,[7,"std","pow"],["t","sharpness"]]],[13,"falloffStart",[1,"radius","*",[1,[5,"1"],"-","feather"]]],[13,"outerMask",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["falloffStart","radius","dist"]]]],[10,[1,"rayMask","*","outerMask"]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),KR={name:"SunBurst",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:O,description:"Ray color",ui:{type:"color",label:"Color",group:"Colors"}},background:{default:"#000000",transform:O,description:"Background color",ui:{type:"color",label:"Background",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,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"}}},fragment:e=>{let{uniforms:t}=e,s=e.uvContext??e.ctx.uv,r=e.effectiveViewportSize??e.ctx.viewportSize,a=Fe(e),i=T(Lj,"sunBurstAlpha",[s,r,t.center,t.rayCount,t.softness,t.radius,t.feather,a]),l=t.color,c=t.background;return de(Ns(c.member("rgb"),l.member("rgb"),i),Ns(c.member("a"),l.member("a"),i))}};var wn=256,ed=wn*wn,Qc=wn-1,wh=3,f_=1600,v_=900,Th="rgba16float",JR=Math.PI/180,QR=Math.PI*2,Nb=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(o.struct({amp:o.f32,freq:o.f32,seed:o.f32,edgePin:o.f32,cursorIntensity:o.f32,t:o.f32,aspect:o.f32,focal:o.f32,camPos:o.vec3f,camForward:o.vec3f,camRight:o.vec3f,camUp:o.vec3f,lighting:o.f32,glossiness:o.f32,highlights:o.f32,lightX:o.f32,lightY:o.f32,lightZ:o.f32,lightColor:o.vec3f,nearCutoff:o.f32,farCutoff:o.f32,cursorWaveX:o.f32,cursorWaveY:o.f32,mouseSpeed:o.f32,dt:o.f32,decay:o.f32,radius:o.f32,waveSpeed:o.f32}),"S3Params"),rn=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({readSrc:{storage:o.arrayOf(o.f32,ed),access:"readonly"},writeBuf:{storage:o.arrayOf(o.f32,ed),access:"mutable"},readBuf:{storage:o.arrayOf(o.f32,ed),access:"mutable"},params:{uniform:Nb}}),"propagateLayout"),bn=(globalThis.__TYPEGPU_AUTONAME__??(e=>e))(b.bindGroupLayout({readBuf:{storage:o.arrayOf(o.f32,ed),access:"readonly"},params:{uniform:Nb},uvMaskTex:{storageTexture:o.textureStorage2d(Th,"write-only")},litTex:{storageTexture:o.textureStorage2d(Th,"write-only")}}),"computeLayout");function Fj(e,t,s){let r=1/(2-Math.pow(.5,Math.max(t,1)-1));return b.fn([o.vec2f],o.f32)((a=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(a.f=(i=>{"use gpu";let l=bn.$.params,c=i.x,d=i.y,u=l.amp,p=l.freq,m=l.seed,_=o.f32(0);if(e===1){let f=o.f32(0);for(let A=0;A<t;A++){let E=o.f32(A),P=n.exp2(E),C=n.exp2(__tsover_mul(E,-1)),$=n.cos(__tsover_mul(E,1.111)),U=n.sin(__tsover_mul(E,1.111)),k=__tsover_sub(__tsover_mul(c,$),__tsover_mul(d,U)),R=__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(__tsover_mul(k,p),P),QR),__tsover_mul(l.t,__tsover_add(1,__tsover_mul(E,.2)))),__tsover_mul(m,__tsover_add(1,__tsover_mul(E,.5))));f=__tsover_add(f,__tsover_mul(n.sin(R),C))}_=__tsover_mul(f,r)}else if(e===2){let f=o.f32(0);for(let E=0;E<t;E++){let P=o.f32(E),C=n.exp2(P),$=n.exp2(__tsover_mul(P,-1)),U=n.cos(__tsover_mul(P,2.39996)),k=n.sin(__tsover_mul(P,2.39996)),R=o.vec2f(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(c,p),C),__tsover_mul(l.t,__tsover_mul(U,.3))),m),__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(d,p),C),__tsover_mul(l.t,__tsover_mul(k,.3))),__tsover_mul(m,.7)));f=__tsover_add(f,__tsover_mul(Vt(R),$))}let A=__tsover_mul(f,r);_=__tsover_sub(__tsover_mul(__tsover_sub(1,n.abs(A)),2),1)}else{let f=__tsover_mul(p,.5),A=Vt(o.vec2f(__tsover_add(__tsover_add(__tsover_mul(c,f),__tsover_mul(l.t,.1)),m),__tsover_add(__tsover_mul(d,f),__tsover_mul(m,1.3)))),E=Vt(o.vec2f(__tsover_add(__tsover_add(__tsover_mul(c,f),m),17.3),__tsover_add(__tsover_add(__tsover_add(__tsover_mul(d,f),__tsover_mul(l.t,.07)),m),31.1))),P=__tsover_add(c,__tsover_mul(A,.4)),C=__tsover_add(d,__tsover_mul(E,.4)),$=o.f32(0);for(let U=0;U<t;U++){let k=o.f32(U),R=n.exp2(k),D=n.exp2(__tsover_mul(k,-1)),M=n.cos(__tsover_mul(k,2.39996)),z=n.sin(__tsover_mul(k,2.39996)),L=o.vec2f(__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(P,p),R),__tsover_mul(l.t,__tsover_mul(M,.3))),m),__tsover_add(__tsover_add(__tsover_mul(__tsover_mul(C,p),R),__tsover_mul(l.t,__tsover_mul(z,.3))),__tsover_mul(m,.7)));$=__tsover_add($,__tsover_mul(Vt(L),D))}_=__tsover_mul($,r)}let v=__tsover_mul(__tsover_sub(c,.5),2),h=__tsover_mul(__tsover_sub(d,.5),2),y=n.max(n.abs(v),n.abs(h)),x=n.smoothstep(.6,1,y),g=n.mix(o.f32(1),__tsover_sub(1,x),l.edgePin),w=__tsover_mul(__tsover_mul(_,u),g);if(s){let f=o.f32(wh),A=__tsover_add(__tsover_div(__tsover_sub(i.x,.5),f),.5),E=__tsover_add(__tsover_div(__tsover_sub(i.y,.5),f),.5),P=o.f32(Qc),C=__tsover_mul(n.clamp(A,0,1),P),$=__tsover_mul(n.clamp(E,0,1),P),U=o.u32(n.clamp(C,0,P)),k=o.u32(n.clamp($,0,P)),R=n.min(__tsover_add(U,o.u32(1)),o.u32(Qc)),D=n.min(__tsover_add(k,o.u32(1)),o.u32(Qc)),M=__tsover_sub(C,n.floor(C)),z=__tsover_sub($,n.floor($)),L=o.u32(wn),B=bn.$.readBuf[__tsover_add(__tsover_mul(k,L),U)],N=bn.$.readBuf[__tsover_add(__tsover_mul(k,L),R)],G=bn.$.readBuf[__tsover_add(__tsover_mul(D,L),U)],I=bn.$.readBuf[__tsover_add(__tsover_mul(D,L),R)],X=n.mix(n.mix(B,N,M),n.mix(G,I,M),z);return __tsover_add(w,__tsover_mul(X,__tsover_mul(l.cursorIntensity,.05)))}else return w}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"p",[7,[7,"computeLayout","$"],"params"]],[13,"u",[7,"uv","x"]],[13,"v",[7,"uv","y"]],[13,"amp",[7,"p","amp"]],[13,"freq",[7,"p","freq"]],[13,"seedU",[7,"p","seed"]],[12,"waveVal",[6,[7,"d","f32"],[[5,"0"]]]],[11,[1,"waveType","===",[5,"1"]],[0,[[12,"accSin",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","octaveCount"],[102,"++","i"],[0,[[13,"iF",[6,[7,"d","f32"],["i"]]],[13,"scale",[6,[7,"std","exp2"],["iF"]]],[13,"weight",[6,[7,"std","exp2"],[[1,"iF","*",[4,"-",[5,"1"]]]]]],[13,"cu",[6,[7,"std","cos"],[[1,"iF","*",[5,"1.111"]]]]],[13,"su",[6,[7,"std","sin"],[[1,"iF","*",[5,"1.111"]]]]],[13,"ru",[1,[1,"u","*","cu"],"-",[1,"v","*","su"]]],[13,"phase",[1,[1,[1,[1,[1,"ru","*","freq"],"*","scale"],"*","TWO_PI"],"+",[1,[7,"p","t"],"*",[1,[5,"1"],"+",[1,"iF","*",[5,"0.2"]]]]],"+",[1,"seedU","*",[1,[5,"1"],"+",[1,"iF","*",[5,"0.5"]]]]]],[2,"accSin","=",[1,"accSin","+",[1,[6,[7,"std","sin"],["phase"]],"*","weight"]]]]]],[2,"waveVal","=",[1,"accSin","*","invTotalWeight"]]]],[11,[1,"waveType","===",[5,"2"]],[0,[[12,"accR",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","octaveCount"],[102,"++","i"],[0,[[13,"iF",[6,[7,"d","f32"],["i"]]],[13,"scale",[6,[7,"std","exp2"],["iF"]]],[13,"weight",[6,[7,"std","exp2"],[[1,"iF","*",[4,"-",[5,"1"]]]]]],[13,"driftX",[6,[7,"std","cos"],[[1,"iF","*",[5,"2.39996"]]]]],[13,"driftY",[6,[7,"std","sin"],[[1,"iF","*",[5,"2.39996"]]]]],[13,"coord",[6,[7,"d","vec2f"],[[1,[1,[1,[1,"u","*","freq"],"*","scale"],"+",[1,[7,"p","t"],"*",[1,"driftX","*",[5,"0.3"]]]],"+","seedU"],[1,[1,[1,[1,"v","*","freq"],"*","scale"],"+",[1,[7,"p","t"],"*",[1,"driftY","*",[5,"0.3"]]]],"+",[1,"seedU","*",[5,"0.7"]]]]]],[2,"accR","=",[1,"accR","+",[1,[6,[7,"noise","mxNoiseFloat2"],["coord"]],"*","weight"]]]]]],[13,"n",[1,"accR","*","invTotalWeight"]],[2,"waveVal","=",[1,[1,[1,[5,"1"],"-",[6,[7,"std","abs"],["n"]]],"*",[5,"2"]],"-",[5,"1"]]]]],[0,[[13,"warpFreq",[1,"freq","*",[5,"0.5"]]],[13,"wx",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"u","*","warpFreq"],"+",[1,[7,"p","t"],"*",[5,"0.1"]]],"+","seedU"],[1,[1,"v","*","warpFreq"],"+",[1,"seedU","*",[5,"1.3"]]]]]]]],[13,"wy",[6,[7,"noise","mxNoiseFloat2"],[[6,[7,"d","vec2f"],[[1,[1,[1,"u","*","warpFreq"],"+","seedU"],"+",[5,"17.3"]],[1,[1,[1,[1,"v","*","warpFreq"],"+",[1,[7,"p","t"],"*",[5,"0.07"]]],"+","seedU"],"+",[5,"31.1"]]]]]]],[13,"wu",[1,"u","+",[1,"wx","*",[5,"0.4"]]]],[13,"wv",[1,"v","+",[1,"wy","*",[5,"0.4"]]]],[12,"accW",[6,[7,"d","f32"],[[5,"0"]]]],[14,[12,"i",[5,"0"]],[1,"i","<","octaveCount"],[102,"++","i"],[0,[[13,"iF",[6,[7,"d","f32"],["i"]]],[13,"scale",[6,[7,"std","exp2"],["iF"]]],[13,"weight",[6,[7,"std","exp2"],[[1,"iF","*",[4,"-",[5,"1"]]]]]],[13,"driftX",[6,[7,"std","cos"],[[1,"iF","*",[5,"2.39996"]]]]],[13,"driftY",[6,[7,"std","sin"],[[1,"iF","*",[5,"2.39996"]]]]],[13,"coord",[6,[7,"d","vec2f"],[[1,[1,[1,[1,"wu","*","freq"],"*","scale"],"+",[1,[7,"p","t"],"*",[1,"driftX","*",[5,"0.3"]]]],"+","seedU"],[1,[1,[1,[1,"wv","*","freq"],"*","scale"],"+",[1,[7,"p","t"],"*",[1,"driftY","*",[5,"0.3"]]]],"+",[1,"seedU","*",[5,"0.7"]]]]]],[2,"accW","=",[1,"accW","+",[1,[6,[7,"noise","mxNoiseFloat2"],["coord"]],"*","weight"]]]]]],[2,"waveVal","=",[1,"accW","*","invTotalWeight"]]]]]],[13,"cu",[1,[1,"u","-",[5,"0.5"]],"*",[5,"2"]]],[13,"cv",[1,[1,"v","-",[5,"0.5"]],"*",[5,"2"]]],[13,"inner",[6,[7,"std","max"],[[6,[7,"std","abs"],["cu"]],[6,[7,"std","abs"],["cv"]]]]],[13,"pinFalloff",[6,[7,"std","smoothstep"],[[5,"0.6"],[5,"1"],"inner"]]],[13,"pinMask",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"1"]]],[1,[5,"1"],"-","pinFalloff"],[7,"p","edgePin"]]]],[13,"baseHeight",[1,[1,"waveVal","*","amp"],"*","pinMask"]],[11,"cursorEnabled",[0,[[13,"H",[6,[7,"d","f32"],["WAVE_HALFEXTENT"]]],[13,"waveU",[1,[1,[1,[7,"uv","x"],"-",[5,"0.5"]],"/","H"],"+",[5,"0.5"]]],[13,"waveV",[1,[1,[1,[7,"uv","y"],"-",[5,"0.5"]],"/","H"],"+",[5,"0.5"]]],[13,"Nm1",[6,[7,"d","f32"],["WAVE_MAX"]]],[13,"gx",[1,[6,[7,"std","clamp"],["waveU",[5,"0"],[5,"1"]]],"*","Nm1"]],[13,"gy",[1,[6,[7,"std","clamp"],["waveV",[5,"0"],[5,"1"]]],"*","Nm1"]],[13,"ix",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["gx",[5,"0"],"Nm1"]]]]],[13,"iy",[6,[7,"d","u32"],[[6,[7,"std","clamp"],["gy",[5,"0"],"Nm1"]]]]],[13,"ix1",[6,[7,"std","min"],[[1,"ix","+",[6,[7,"d","u32"],[[5,"1"]]]],[6,[7,"d","u32"],["WAVE_MAX"]]]]],[13,"iy1",[6,[7,"std","min"],[[1,"iy","+",[6,[7,"d","u32"],[[5,"1"]]]],[6,[7,"d","u32"],["WAVE_MAX"]]]]],[13,"fx",[1,"gx","-",[6,[7,"std","floor"],["gx"]]]],[13,"fy",[1,"gy","-",[6,[7,"std","floor"],["gy"]]]],[13,"W",[6,[7,"d","u32"],["WAVE_GRID"]]],[13,"v00",[8,[7,[7,"computeLayout","$"],"readBuf"],[1,[1,"iy","*","W"],"+","ix"]]],[13,"v10",[8,[7,[7,"computeLayout","$"],"readBuf"],[1,[1,"iy","*","W"],"+","ix1"]]],[13,"v01",[8,[7,[7,"computeLayout","$"],"readBuf"],[1,[1,"iy1","*","W"],"+","ix"]]],[13,"v11",[8,[7,[7,"computeLayout","$"],"readBuf"],[1,[1,"iy1","*","W"],"+","ix1"]]],[13,"waveSample",[6,[7,"std","mix"],[[6,[7,"std","mix"],["v00","v10","fx"]],[6,[7,"std","mix"],["v01","v11","fx"]],"fy"]]],[10,[1,"baseHeight","+",[1,"waveSample","*",[1,[7,"p","cursorIntensity"],"*",[5,"0.05"]]]]]]],[0,[[10,"baseHeight"]]]]]],externalNames:["computeLayout","d","waveType","octaveCount","std","TWO_PI","invTotalWeight","noise","cursorEnabled","WAVE_HALFEXTENT","WAVE_MAX","WAVE_GRID"]},externals:()=>({computeLayout:bn,d:o,waveType:e,octaveCount:t,std:n,TWO_PI:QR,invTotalWeight:r,noise:mt,cursorEnabled:s,WAVE_HALFEXTENT:wh,WAVE_MAX:Qc,WAVE_GRID:wn})})&&a.f)({})).$name("surface3dHeight")}function Bj(){return b.fn([o.u32,o.u32])((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";if(t>o.u32(0)&&t<o.u32(Qc)&&s>o.u32(0)&&s<o.u32(Qc)){let r=rn.$.params,a=o.u32(wn),i=__tsover_add(__tsover_mul(s,a),t),l=rn.$.readSrc[__tsover_sub(i,o.u32(1))],c=rn.$.readSrc[__tsover_add(i,o.u32(1))],d=rn.$.readSrc[__tsover_sub(i,a)],u=rn.$.readSrc[__tsover_add(i,a)],p=rn.$.readSrc[i],m=__tsover_add(__tsover_add(__tsover_add(l,c),d),u),_=rn.$.writeBuf[
247i],v=__tsover_sub(1,__tsover_mul(r.decay,.004)),h=__tsover_mul(.5,__tsover_mul(r.waveSpeed,r.waveSpeed)),y=__tsover_sub(m,__tsover_mul(p,4)),x=__tsover_mul(__tsover_sub(__tsover_add(__tsover_mul(p,2),__tsover_mul(y,h)),_),v),g=__tsover_div(__tsover_add(o.f32(t),.5),o.f32(wn)),w=__tsover_div(__tsover_add(o.f32(s),.5),o.f32(wn)),f=__tsover_sub(g,r.cursorWaveX),A=__tsover_sub(w,r.cursorWaveY),E=__tsover_add(__tsover_mul(f,f),__tsover_mul(A,A)),P=__tsover_mul(r.radius,3);if(E<__tsover_mul(P,P)&&r.mouseSpeed>.01){let C=n.exp(__tsover_mul(__tsover_div(E,n.max(__tsover_mul(r.radius,r.radius),o.f32(1e-4))),-1));x=__tsover_sub(x,__tsover_mul(__tsover_mul(__tsover_mul(C,r.mouseSpeed),r.dt),3))}rn.$.writeBuf[i]=x,rn.$.readBuf[i]=x}}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[11,[3,[3,[3,[1,"cx",">",[6,[7,"d","u32"],[[5,"0"]]]],"&&",[1,"cx","<",[6,[7,"d","u32"],["WAVE_MAX"]]]],"&&",[1,"cy",">",[6,[7,"d","u32"],[[5,"0"]]]]],"&&",[1,"cy","<",[6,[7,"d","u32"],["WAVE_MAX"]]]],[0,[[13,"p",[7,[7,"propagateLayout","$"],"params"]],[13,"gs",[6,[7,"d","u32"],["WAVE_GRID"]]],[13,"idx",[1,[1,"cy","*","gs"],"+","cx"]],[13,"left",[8,[7,[7,"propagateLayout","$"],"readSrc"],[1,"idx","-",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"right",[8,[7,[7,"propagateLayout","$"],"readSrc"],[1,"idx","+",[6,[7,"d","u32"],[[5,"1"]]]]]],[13,"up",[8,[7,[7,"propagateLayout","$"],"readSrc"],[1,"idx","-","gs"]]],[13,"down",[8,[7,[7,"propagateLayout","$"],"readSrc"],[1,"idx","+","gs"]]],[13,"center",[8,[7,[7,"propagateLayout","$"],"readSrc"],"idx"]],[13,"sum",[1,[1,[1,"left","+","right"],"+","up"],"+","down"]],[13,"prev",[8,[7,[7,"propagateLayout","$"],"writeBuf"],"idx"]],[13,"dampFactor",[1,[5,"1"],"-",[1,[7,"p","decay"],"*",[5,"0.004"]]]],[13,"k2",[1,[5,"0.5"],"*",[1,[7,"p","waveSpeed"],"*",[7,"p","waveSpeed"]]]],[13,"lap",[1,"sum","-",[1,"center","*",[5,"4"]]]],[12,"next",[1,[1,[1,[1,"center","*",[5,"2"]],"+",[1,"lap","*","k2"]],"-","prev"],"*","dampFactor"]],[13,"cellU",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["WAVE_GRID"]]]],[13,"cellV",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["WAVE_GRID"]]]],[13,"ddx",[1,"cellU","-",[7,"p","cursorWaveX"]]],[13,"ddy",[1,"cellV","-",[7,"p","cursorWaveY"]]],[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","mouseSpeed"],">",[5,"0.01"]]],[0,[[13,"influence",[6,[7,"std","exp"],[[1,[1,"distSq","/",[6,[7,"std","max"],[[1,[7,"p","radius"],"*",[7,"p","radius"]],[6,[7,"d","f32"],[[5,"0.0001"]]]]]],"*",[4,"-",[5,"1"]]]]]],[2,"next","=",[1,"next","-",[1,[1,[1,"influence","*",[7,"p","mouseSpeed"]],"*",[7,"p","dt"]],"*",[5,"3"]]]]]]],[2,[8,[7,[7,"propagateLayout","$"],"writeBuf"],"idx"],"=","next"],[2,[8,[7,[7,"propagateLayout","$"],"readBuf"],"idx"],"=","next"]]]]]],externalNames:["d","WAVE_MAX","propagateLayout","WAVE_GRID","std"]},externals:()=>({d:o,WAVE_MAX:Qc,propagateLayout:rn,WAVE_GRID:wn,std:n})})&&e.f)({})).$name("surface3dPropagate")}function Vj(e,t,s,r,a){let i=Fj(e,t,a);return b.fn([o.u32,o.u32])((l=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(l.f=((c,d)=>{"use gpu";let u=bn.$.params,p=__tsover_div(__tsover_add(o.f32(c),.5),o.f32(f_)),m=__tsover_div(__tsover_add(o.f32(d),.5),o.f32(v_)),_=__tsover_mul(__tsover_mul(__tsover_sub(p,.5),2),u.aspect),v=__tsover_mul(__tsover_mul(__tsover_sub(m,.5),2),-1),h=n.normalize(u.camForward.mul(u.focal).add(u.camRight.mul(_)).add(u.camUp.mul(v))),y=32,x=6,g=n.max(__tsover_mul(h.z,-1),o.f32(.05)),w=__tsover_div(u.camPos.z,g),f=n.min(__tsover_add(w,1.5),15),A=__tsover_div(f,o.f32(y)),E=o.f32(0),P=o.f32(0),C=__tsover_add(__tsover_mul(u.camPos.x,.5),.5),$=__tsover_add(__tsover_mul(u.camPos.y,.5),.5),U=__tsover_sub(u.camPos.z,i(o.vec2f(C,$)));for(let ne=0;ne<y;ne++){E=__tsover_add(E,A);let oe=u.camPos.add(h.mul(E)),pe=i(o.vec2f(__tsover_add(__tsover_mul(oe.x,.5),.5),__tsover_add(__tsover_mul(oe.y,.5),.5))),_e=__tsover_sub(oe.z,pe);if(_e<0&&U>0){P=1;break}U=_e}let k=__tsover_sub(E,A),R=E;for(let ne=0;ne<x;ne++){let oe=__tsover_mul(__tsover_add(k,R),.5),pe=u.camPos.add(h.mul(oe));__tsover_sub(pe.z,i(o.vec2f(__tsover_add(__tsover_mul(pe.x,.5),.5),__tsover_add(__tsover_mul(pe.y,.5),.5))))>0?k=oe:R=oe}let D=__tsover_mul(__tsover_add(k,R),.5),M=u.camPos.add(h.mul(D)),z=__tsover_add(__tsover_mul(M.x,.5),.5),L=__tsover_add(__tsover_mul(M.y,.5),.5),B=o.vec2f(z,__tsover_sub(1,L)),N=o.vec2f(B.x,B.y),G=o.f32(1);if(s===2)N=zi(B);else if(s===3)N=Ii(B);else if(s===1){let ne=B.x>=0&&B.x<=1&&B.y>=0&&B.y<=1;G=n.select(o.f32(0),o.f32(1),ne)}else N=n.clamp(B,o.vec2f(0,0),o.vec2f(1,1));let I=o.vec3f(1,1,1);if(r){let oe=i(o.vec2f(z,L)),pe=i(o.vec2f(__tsover_add(z,.01),L)),_e=i(o.vec2f(z,__tsover_add(L,.01))),ge=__tsover_div(__tsover_sub(pe,oe),.01),Me=__tsover_div(__tsover_sub(_e,oe),.01),Se=n.normalize(o.vec3f(__tsover_mul(ge,-.5),__tsover_mul(Me,-.5),1)),Ae=n.normalize(o.vec3f(u.lightX,u.lightY,u.lightZ)),Pe=h.mul(-1),De=n.clamp(n.dot(Se,Ae),0,1),ke=n.normalize(Ae.add(Pe)),Ge=__tsover_add(__tsover_mul(u.glossiness,128),4),Oe=__tsover_mul(n.pow(n.clamp(n.dot(Se,ke),0,1),Ge),u.highlights),qe=o.vec3f(.4,.4,.4),We=u.lightColor.mul(__tsover_mul(De,.6)),Ve=u.lightColor.mul(Oe),Ne=qe.add(We).add(Ve);I=n.clamp(n.mix(o.vec3f(1,1,1),Ne,u.lighting),o.vec3f(0,0,0),o.vec3f(3,3,3))}
vendor: 7,682 bytes, line 247
247let X=o.f32(15),F=.05,Q=__tsover_mul(u.nearCutoff,X),ae=__tsover_mul(u.farCutoff,X),j=n.smoothstep(__tsover_sub(Q,F),__tsover_add(Q,F),D),q=n.smoothstep(__tsover_add(ae,F),__tsover_sub(ae,F),D),te=__tsover_mul(__tsover_mul(P,G),__tsover_mul(j,q));n.textureStore(bn.$.uvMaskTex,o.vec2u(c,d),o.vec4f(N.x,N.y,te,0)),n.textureStore(bn.$.litTex,o.vec2u(c,d),o.vec4f(I,0))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"computeLayout","$"],"params"]],[13,"screenU",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["COMPUTE_W"]]]],[13,"screenV",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/",[6,[7,"d","f32"],["COMPUTE_H"]]]],[13,"ndcX",[1,[1,[1,"screenU","-",[5,"0.5"]],"*",[5,"2"]],"*",[7,"p","aspect"]]],[13,"ndcY",[1,[1,[1,"screenV","-",[5,"0.5"]],"*",[5,"2"]],"*",[4,"-",[5,"1"]]]],[13,"rayDir",[6,[7,"std","normalize"],[[6,[7,[6,[7,[6,[7,[7,"p","camForward"],"mul"],[[7,"p","focal"]]],"add"],[[6,[7,[7,"p","camRight"],"mul"],["ndcX"]]]],"add"],[[6,[7,[7,"p","camUp"],"mul"],["ndcY"]]]]]]],[13,"STEPS",[5,"32"]],[13,"REFINE",[5,"6"]],[13,"rayDownComp",[6,[7,"std","max"],[[1,[7,"rayDir","z"],"*",[4,"-",[5,"1"]]],[6,[7,"d","f32"],[[5,"0.05"]]]]]],[13,"tToBase",[1,[7,[7,"p","camPos"],"z"],"/","rayDownComp"]],[13,"marchTotal",[6,[7,"std","min"],[[1,"tToBase","+",[5,"1.5"]],[5,"15"]]]],[13,"stepSize",[1,"marchTotal","/",[6,[7,"d","f32"],["STEPS"]]]],[12,"tMarch",[6,[7,"d","f32"],[[5,"0"]]]],[12,"hit",[6,[7,"d","f32"],[[5,"0"]]]],[13,"u0",[1,[1,[7,[7,"p","camPos"],"x"],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"v0",[1,[1,[7,[7,"p","camPos"],"y"],"*",[5,"0.5"]],"+",[5,"0.5"]]],[12,"prevDiff",[1,[7,[7,"p","camPos"],"z"],"-",[6,"heightFn",[[6,[7,"d","vec2f"],["u0","v0"]]]]]],[14,[12,"s",[5,"0"]],[1,"s","<","STEPS"],[102,"++","s"],[0,[[2,"tMarch","=",[1,"tMarch","+","stepSize"]],[13,"pos",[6,[7,[7,"p","camPos"],"add"],[[6,[7,"rayDir","mul"],["tMarch"]]]]],[13,"h",[6,"heightFn",[[6,[7,"d","vec2f"],[[1,[1,[7,"pos","x"],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[7,"pos","y"],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]],[13,"diff",[1,[7,"pos","z"],"-","h"]],[11,[3,[1,"diff","<",[5,"0"]],"&&",[1,"prevDiff",">",[5,"0"]]],[0,[[2,"hit","=",[5,"1"]],[17]]]],[2,"prevDiff","=","diff"]]]],[12,"tLow",[1,"tMarch","-","stepSize"]],[12,"tHigh","tMarch"],[14,[12,"r",[5,"0"]],[1,"r","<","REFINE"],[102,"++","r"],[0,[[13,"tMid",[1,[1,"tLow","+","tHigh"],"*",[5,"0.5"]]],[13,"pMid",[6,[7,[7,"p","camPos"],"add"],[[6,[7,"rayDir","mul"],["tMid"]]]]],[13,"dMid",[1,[7,"pMid","z"],"-",[6,"heightFn",[[6,[7,"d","vec2f"],[[1,[1,[7,"pMid","x"],"*",[5,"0.5"]],"+",[5,"0.5"]],[1,[1,[7,"pMid","y"],"*",[5,"0.5"]],"+",[5,"0.5"]]]]]]]],[11,[1,"dMid",">",[5,"0"]],[0,[[2,"tLow","=","tMid"]]],[0,[[2,"tHigh","=","tMid"]]]]]]],[13,"finalT",[1,[1,"tLow","+","tHigh"],"*",[5,"0.5"]]],[13,"hitPos",[6,[7,[7,"p","camPos"],"add"],[[6,[7,"rayDir","mul"],["finalT"]]]]],[13,"hitU",[1,[1,[7,"hitPos","x"],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"hitV",[1,[1,[7,"hitPos","y"],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"rawSampleUV",[6,[7,"d","vec2f"],["hitU",[1,[5,"1"],"-","hitV"]]]],[12,"finalUV",[6,[7,"d","vec2f"],[[7,"rawSampleUV","x"],[7,"rawSampleUV","y"]]]],[12,"outOfBoundsMask",[6,[7,"d","f32"],[[5,"1"]]]],[11,[1,"edgeMode","===",[5,"2"]],[0,[[2,"finalUV","=",[6,[7,"edges","edgeMirrorUV"],["rawSampleUV"]]]]],[11,[1,"edgeMode","===",[5,"3"]],[0,[[2,"finalUV","=",[6,[7,"edges","edgeWrapUV"],["rawSampleUV"]]]]],[11,[1,"edgeMode","===",[5,"1"]],[0,[[13,"inside",[3,[3,[3,[1,[7,"rawSampleUV","x"],">=",[5,"0"]],"&&",[1,[7,"rawSampleUV","x"],"<=",[5,"1"]]],"&&",[1,[7,"rawSampleUV","y"],">=",[5,"0"]]],"&&",[1,[7,"rawSampleUV","y"],"<=",[5,"1"]]]],[2,"outOfBoundsMask","=",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],"inside"]]]]],[0,[[2,"finalUV","=",[6,[7,"std","clamp"],["rawSampleUV",[6,[7,"d","vec2f"],[[5,"0"],[5,"0"]]],[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]]]]]]],[12,"lit",[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]],[11,"lightingEnabled",[0,[[13,"normalEps",[5,"0.01"]],[13,"hC",[6,"heightFn",[[6,[7,"d","vec2f"],["hitU","hitV"]]]]],[13,"hR",[6,"heightFn",[[6,[7,"d","vec2f"],[[1,"hitU","+","normalEps"],"hitV"]]]]],[13,"hUp",[6,"heightFn",[[6,[7,"d","vec2f"],["hitU",[1,"hitV","+","normalEps"]]]]]],[13,"dhdu",[1,[1,"hR","-","hC"],"/","normalEps"]],[13,"dhdv",[1,[1,"hUp","-","hC"],"/","normalEps"]],[13,"nrm",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"dhdu","*",[4,"-",[5,"0.5"]]],[1,"dhdv","*",[4,"-",[5,"0.5"]]],[5,"1"]]]]]],[13,"lightDir",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[7,"p","lightX"],[7,"p","lightY"],[7,"p","lightZ"]]]]]],[13,"viewDir",[6,[7,"rayDir","mul"],[[4,"-",[5,"1"]]]]],[13,"diffuse",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["nrm","lightDir"]],[5,"0"],[5,"1"]]]],[13,"halfVec",[6,[7,"std","normalize"],[[6,[7,"lightDir","add"],["viewDir"]]]]],[13,"specPow",[1,[1,[7,"p","glossiness"],"*",[5,"128"]],"+",[5,"4"]]],[13,"specular",[1,[6,[7,"std","pow"],[[6,[7,"std","clamp"],[[6,[7,"std","dot"],["nrm","halfVec"]],[5,"0"],[5,"1"]]],"specPow"]],"*",[7,"p","highlights"]]],[13,"ambient",[6,[7,"d","vec3f"],[[5,"0.4"],[5,"0.4"],[5,"0.4"]]]],[13,"tintedDiffuse",[6,[7,[7,"p","lightColor"],"mul"],[[1,"diffuse","*",[5,"0.6"]]]]],[13,"tintedSpec",[6,[7,[7,"p","lightColor"],"mul"],["specular"]]],[13,"totalLight",[6,[7,[6,[7,"ambient","add"],["tintedDiffuse"]],"add"],["tintedSpec"]]],[2,"lit","=",[6,[7,"std","clamp"],[[6,[7,"std","mix"],[[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"totalLight",[7,"p","lighting"]]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"3"],[5,"3"],[5,"3"]]]]]]]]],[13,"CUTOFF_RANGE",[6,[7,"d","f32"],[[5,"15"]]]],[13,"edgeAA",[5,"0.05"]],[13,"nearT",[1,[7,"p","nearCutoff"],"*","CUTOFF_RANGE"]],[13,"farT",[1,[7,"p","farCutoff"],"*","CUTOFF_RANGE"]],[13,"nearMask",[6,[7,"std","smoothstep"],[[1,"nearT","-","edgeAA"],[1,"nearT","+","edgeAA"],"finalT"]]],[13,"farMask",[6,[7,"std","smoothstep"],[[1,"farT","+","edgeAA"],[1,"farT","-","edgeAA"],"finalT"]]],[13,"finalMask",[1,[1,"hit","*","outOfBoundsMask"],"*",[1,"nearMask","*","farMask"]]],[6,[7,"std","textureStore"],[[7,[7,"computeLayout","$"],"uvMaskTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],[[7,"finalUV","x"],[7,"finalUV","y"],"finalMask",[5,"0"]]]]],[6,[7,"std","textureStore"],[[7,[7,"computeLayout","$"],"litTex"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["lit",[5,"0"]]]]]]],externalNames:["computeLayout","d","COMPUTE_W","COMPUTE_H","std","heightFn","edgeMode","edges","lightingEnabled"]},externals:()=>({computeLayout:bn,d:o,COMPUTE_W:f_,COMPUTE_H:v_,std:n,heightFn:i,edgeMode:s,edges:iS,lightingEnabled:r})})&&l.f)({})).$name("surface3dRaymarch")}var Oj=b.fn([o.vec4f,o.vec3f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=n.clamp(t.xyz.mul(s),o.vec3f(0,0,0),o.vec3f(1,1,1));return o.vec4f(a,__tsover_mul(t.w,r))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"childColor"},{type:"i",name:"lit"},{type:"i",name:"mask"}],body:[0,[[13,"finalRgb",[6,[7,"std","clamp"],[[6,[7,[7,"childColor","xyz"],"mul"],["lit"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["finalRgb",[1,[7,"childColor","w"],"*","mask"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),e$={name:"Surface3D",boundingBoxDeclaration:{aspectRatio:null},category:"Distortions",description:"Drapes child content over a 3D wave surface with perspective and lighting",requiresRTT:!0,requiresChild:!0,usesPointer:!0,providesUVContextViaCompute:!0,props:{amplitude:{default:.3,description:"Wave height",ui:{type:"range",min:0,max:1,step:.
24701,label:"Amplitude",group:"Waves"}},waveType:{default:"fractal",compileTime:!0,description:"Wave pattern type",ui:{type:"select",options:[{label:"Fractal",value:"fractal"},{label:"Sine",value:"sine"},{label:"Ridge",value:"ridge"}],label:"Wave Type",group:"Waves"}},frequency:{default:1.5,description:"Wave frequency",ui:{type:"range",min:.1,max:5,step:.1,label:"Frequency",group:"Waves"}},octaves:{default:2,compileTime:!0,description:"Detail octaves",ui:{type:"range",min:1,max:5,step:1,label:"Octaves",group:"Waves"}},seed:{default:0,description:"Random seed offset",ui:{type:"range",min:0,max:100,step:1,label:"Seed",group:"Waves"}},speed:{default:.5,description:"Animation speed",ui:{type:"range",min:0,max:3,step:.1,label:"Speed",group:"Waves"}},tilt:{default:35,description:"Camera tilt in degrees",ui:{type:"range",min:0,max:85,step:1,label:"Tilt",group:"Camera"}},roll:{default:0,description:"Camera roll in degrees",ui:{type:"range",min:-45,max:45,step:1,label:"Roll",group:"Camera"}},height:{default:0,description:"Camera height",ui:{type:"range",min:-1,max:2,step:.01,label:"Height",group:"Camera"}},zoom:{default:1,description:"Camera zoom",ui:{type:"range",min:.3,max:3,step:.01,label:"Zoom",group:"Camera"}},nearCutoff:{default:0,description:"Near fade distance",ui:{type:"range",min:0,max:1,step:.01,label:"Near Cutoff",group:"Camera"}},farCutoff:{default:1,description:"Far fade distance",ui:{type:"range",min:0,max:1,step:.01,label:"Far Cutoff",group:"Camera"}},edgePinning:{default:0,description:"Smoothly flatten the surface at its edges (orthogonal to edge mode)",ui:{type:"range",min:0,max:1,step:.01,label:"Edge Pinning",group:"Waves"}},edges:{default:"mirror",transform:Ot,compileTime:!0,description:"How to handle content beyond the surface bounds",ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Waves"}},lighting:{default:30,compileTimeWhen:(e,t)=>e<.01!=t<.01,description:"Intensity of lighting and shading",ui:{type:"range",min:0,max:100,step:1,label:"Lighting",group:"Lighting"}},glossiness:{default:0,description:"Surface glossiness",ui:{type:"range",min:0,max:100,step:1,label:"Glossiness",group:"Lighting"}},highlights:{default:15,description:"Specular highlight intensity",ui:{type:"range",min:0,max:100,step:1,label:"Highlights",group:"Lighting"}},lightX:{default:.4,description:"Light direction X",ui:{type:"range",min:-1,max:1,step:.01,label:"Light X",group:"Lighting"}},lightY:{default:-.6,description:"Light direction Y",ui:{type:"range",min:-1,max:1,step:.01,label:"Light Y",group:"Lighting"}},lightZ:{default:.7,description:"Light direction Z",ui:{type:"range",min:-1,max:1,step:.01,label:"Light Z",group:"Lighting"}},lightColor:{default:"#ffffff",transform:O,description:"Light color",ui:{type:"color",label:"Light Color",group:"Lighting"}},cursorIntensity:{default:1,compileTimeWhen:(e,t)=>e<.01!=t<.01,description:"Strength of cursor ripples",ui:{type:"range",min:0,max:2,step:.01,label:"Cursor Ripples",group:"Interaction"}},cursorSpeed:{default:.5,description:"Speed of cursor ripple propagation",ui:{type:"range",min:0,max:1,step:.01,label:"Ripple Speed",group:"Interaction"}}},compute:e=>{let{gpu:t,getCpuValue:s,registerComputeTexture:r,onCleanup:a,onResize:i,dimensions:l}=e,c=t?.root;if(!c)return null;let d=s("waveType")==="sine"?1:s("waveType")==="ridge"?2:0,u=Math.max(1,Math.floor(s("octaves")??2)),p=s("edges")??2,m=(s("lighting")??30)>=.01,_=(s("cursorIntensity")??1)>=.01,v=(globalThis.__TYPEGPU_AUTONAME__??(F=>F))(c.createTexture({size:[f_,v_],format:Th}).$usage("storage","sampled"),"uvMaskTex"),h=(globalThis.__TYPEGPU_AUTONAME__??(F=>F))(c.createTexture({size:[f_,v_],format:Th}).$usage("storage","sampled"),"litTex");a(()=>{v.destroy(),h.destroy()});let y=r(v),x=r(h),g=Rt(c,o.f32,ed),w=Rt(c,o.f32,ed),f=Rt(c,o.f32,ed),A=(globalThis.__TYPEGPU_AUTONAME__??(F=>F))(c.createUniform(Nb),"paramsU"),E=Math.max(1,Math.round(l.width)),P=Math.max(1,Math.round(l.height));i(({width:F,height:Q})=>{E=Math.max(1,Math.round(F)),P=Math.max(1,Math.round(Q))});let C=Vj(d,u,p,m,_),$=c.createBindGroup(bn,{readBuf:f,params:A.buffer,uvMaskTex:v,litTex:h}),U=pt(c,(F=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(F.f=((Q,ae)=>{"use gpu";C(Q,ae)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"computeKernel",["cx","cy"]]]],externalNames:["computeKernel"]},externals:()=>({computeKernel:C})})&&F.f)({}),{size:[f_,v_],bindGroup:$}),k=_?Bj():null,R=_?c.createBindGroup(rn,{readSrc:g,writeBuf:w,readBuf:f,params:A.buffer}):null,D=_?c.createBindGroup(rn,{readSrc:w,writeBuf:g,readBuf:f,params:A.buffer}):null,M=_&&k?pt(c,(F=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(F.f=((Q,ae)=>{"use gpu";k(Q,ae)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,"propagate",["cx","cy"]]]],externalNames:["propagate"]},externals:()=>({propagate:k})})&&F.f)({}),{size:[wn,wn]}):null,z=0,L=.5,B=.5,N=Date.now(),G=Date.now(),I=0,X=(F,Q)=>{let ae=Math.max(1,E)/Math.max(1,P),j=(s("tilt")??35)*JR,q=(s("roll")??0)*JR,te=s("height")??0,ne=s("zoom")??1,oe=.85/Math.max(1e-4,ne),pe=-Math.sin(j)*oe,_e=Math.cos(j)*oe,ge=[0,pe,_e+te],Me=Ob([0,-pe,-_e]),Se=[1,0,0],Ae=Ob(Nj(Se,Me)),Pe=Math.cos(q),De=Math.sin(q),ke=[Se[0]*Pe+Ae[0]*De,Se[1]*Pe+Ae[1]*De,Se[2]*Pe+Ae[2]*De],Ge=[Ae[0]*Pe-Se[0]*De,Ae[1]*Pe-Se[1]*De,Ae[2]*Pe-Se[2]*De],Oe=1.5,qe=F.pointer?.x??.5,We=F.pointer?.y??.5,Ve=(qe-.5)*2*ae,Ne=-(We-.5)*2,He=Ob([Me[0]*Oe+ke[0]*Ve+Ge[0]*Ne,Me[1]*Oe+ke[1]*Ve+Ge[1]*Ne,Me[2]*Oe+ke[2]*Ve+Ge[2]*Ne]),vt=Math.max(-He[2],.001),_t=ge[2]/vt,Ze=ge[0]+He[0]*_t,it=ge[1]+He[1]*_t,Tt=Ze*.5+.5,J=it*.5+.5,be=s("lightColor");A.write({amp:s("amplitude")??.3,freq:s("frequency")??1.5,seed:s("seed")??0,edgePin:s("edgePinning")??0,cursorIntensity:s("cursorIntensity")??1,t:I,aspect:ae,focal:Oe,camPos:o.vec3f(ge[0],ge[1],ge[2]),camForward:o.vec3f(Me[0],Me[1],Me[2]),camRight:o.vec3f(ke[0],ke[1],ke[2]),camUp:o.vec3f(Ge[0],Ge[1],Ge[2]),lighting:(s("lighting")??30)*.035,glossiness:(s("glossiness")??0)*.01,highlights:(s("highlights")??15)*.04,lightX:s("lightX")??.4,lightY:s("lightY")??-.6,lightZ:s("lightZ")??.7,lightColor:o.vec3f(be?.x??1,be?.y??1,be?.z??1),nearCutoff:s("nearCutoff")??0,farCutoff:s("farCutoff")??1,cursorWaveX:(Tt-.5)/wh+.5,cursorWaveY:(J-.5)/wh+.5,mouseSpeed:Q,dt:.016,decay:10,radius:.025,waveSpeed:s("cursorSpeed")??.5})};return{outputs:{uvMaskMap:y,litMap:x},getComputeNodes:F=>
vendor: 6,814 bytes, line 247
247{let Q=F,ae=Date.now(),j=Math.min(Q.deltaTime??(ae-N)/1e3,.016);N=ae;let q=Q.pointer?.x??L,te=Q.pointer?.y??B,ne=j>0?(q-L)/j:0,oe=j>0?(te-B)/j:0,pe=Math.min(Math.sqrt(ne*ne+oe*oe),2);if(L=q,B=te,pe>.01&&(G=ae),I+=j*(s("speed")??.5),X(Q,pe),!_||!M)return[U];let _e=1-10*.004,ge=_e>=1?1/0:Math.min(3e4,Math.log(1e-6)/Math.log(Math.max(_e,.001))*16.67);if(ae-G>ge&&pe<.01)return[U];let Me=z===0?M.with(R):M.with(D);return z=1-z,[Me,U]}}},fragment:e=>{let{childNode:t,ctx:s,computeOutputs:r,convertToTexture:a}=e;if(!t)return me;let i=r?.uvMaskMap,l=r?.litMap;if(!i||!l)return me;let c=i.sample(s.uv,"linearClamp"),d=l.sample(s.uv,"linearClamp"),u=de(c.member("r"),c.member("g"),0,0).member("xy"),p=c.member("b"),m=d.member("rgb");return T(Re,"unpremultiplyAlpha",[T(Oj,"surface3dCompose",[e.uvPropagationActive?t:a(t).sample(u),m,p])])}};function Nj(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function Ob(e){let t=Math.max(1e-6,Math.hypot(e[0],e[1],e[2]));return[e[0]/t,e[1]/t,e[2]/t]}var Yj=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=a,l=s,c=o.vec2f(__tsover_add(t.x,__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(t.y,__tsover_mul(l,1.7)),__tsover_mul(i,.8))),.12),__tsover_mul(n.cos(__tsover_sub(__tsover_mul(t.x,__tsover_mul(l,.9)),__tsover_mul(i,.5))),.05))),__tsover_add(t.y,__tsover_add(__tsover_mul(n.cos(__tsover_sub(__tsover_mul(t.x,__tsover_mul(l,1.3)),__tsover_mul(i,.6))),.12),__tsover_mul(n.sin(__tsover_add(__tsover_mul(t.y,__tsover_mul(l,1.1)),__tsover_mul(i,.7))),.05)))),d=n.sin(__tsover_add(__tsover_add(__tsover_mul(c.x,__tsover_mul(l,2.1)),__tsover_mul(c.y,__tsover_mul(l,1.8))),__tsover_mul(i,.4))),u=__tsover_mul(s,2.1),p=o.vec2f(__tsover_add(c.x,__tsover_add(__tsover_mul(n.cos(__tsover_sub(__tsover_mul(c.y,__tsover_mul(u,2.7)),__tsover_mul(i,.45))),.07),__tsover_mul(n.sin(__tsover_add(__tsover_mul(c.x,__tsover_mul(u,1.9)),__tsover_mul(i,.6))),.04))),__tsover_add(c.y,__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(c.x,__tsover_mul(u,2.3)),__tsover_mul(i,.65))),.07),__tsover_mul(n.cos(__tsover_sub(__tsover_mul(c.y,__tsover_mul(u,1.6)),__tsover_mul(i,.4))),.04)))),m=n.cos(__tsover_add(__tsover_sub(__tsover_mul(p.x,__tsover_mul(u,1.4)),__tsover_mul(p.y,__tsover_mul(u,1.9))),__tsover_mul(i,.35))),_=__tsover_mul(s,3.7),v=o.vec2f(__tsover_add(p.x,__tsover_add(__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(p.y,__tsover_mul(_,1.8)),__tsover_mul(i,.85))),.04),__tsover_mul(n.cos(__tsover_sub(__tsover_mul(p.x,__tsover_mul(_,1.3)),__tsover_mul(i,.55))),.025)),__tsover_mul(n.sin(__tsover_add(__tsover_mul(__tsover_add(p.x,p.y),__tsover_mul(_,.7)),__tsover_mul(i,.9))),.02))),__tsover_add(p.y,__tsover_add(__tsover_add(__tsover_mul(n.cos(__tsover_sub(__tsover_mul(p.x,__tsover_mul(_,1.6)),__tsover_mul(i,.75))),.04),__tsover_mul(n.sin(__tsover_add(__tsover_mul(p.y,__tsover_mul(_,1.1)),__tsover_mul(i,.5))),.025)),__tsover_mul(n.cos(__tsover_sub(__tsover_mul(__tsover_add(p.x,p.y),__tsover_mul(_,.8)),__tsover_mul(i,.95))),.02)))),h=n.sin(__tsover_sub(__tsover_add(__tsover_mul(v.x,__tsover_mul(_,1.1)),__tsover_mul(v.y,__tsover_mul(_,1.5))),__tsover_mul(i,.55))),y=__tsover_add(__tsover_add(__tsover_mul(d,.45),__tsover_mul(m,.35)),__tsover_mul(h,.2)),x=__tsover_mul(__tsover_sub(r,50),.006),g=__tsover_add(__tsover_add(__tsover_mul(y,.5),.5),x),w=n.smoothstep(.3,.7,g),f=__tsover_add(__tsover_mul(n.sin(__tsover_add(__tsover_mul(i,2.5),__tsover_mul(y,8))),.015),1);return o.vec2f(w,f)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"detail"},{type:"i",name:"blend"},{type:"i",name:"animTime"}],body:[0,[[13,"t","animTime"],[13,"freq1","detail"],[13,"d1",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"+",[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[1,"freq1","*",[5,"1.7"]]],"+",[1,"t","*",[5,"0.8"]]]]],"*",[5,"0.12"]],"+",[1,[6,[7,"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,[7,"std","cos"],[[1,[1,[7,"uv","x"],"*",[1,"freq1","*",[5,"1.3"]]],"-",[1,"t","*",[5,"0.6"]]]]],"*",[5,"0.12"]],"+",[1,[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[1,"freq1","*",[5,"1.1"]]],"+",[1,"t","*",[5,"0.7"]]]]],"*",[5,"0.05"]]]]]]],[13,"pattern1",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"d1","x"],"+",[1,[1,[6,[7,"std","cos"],[[1,[1,[7,"d1","y"],"*",[1,"freq2","*",[5,"2.7"]]],"-",[1,"t","*",[5,"0.45"]]]]],"*",[5,"0.07"]],"+",[1,[6,[7,"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,[7,"std","sin"],[[1,[1,[7,"d1","x"],"*",[1,"freq2","*",[5,"2.3"]]],"+",[1,"t","*",[5,"0.65"]]]]],"*",[5,"0.07"]],"+",[1,[6,[7,"std","cos"],[[1,[1,[7,"d1","y"],"*",[1,"freq2","*",[5,"1.6"]]],"-",[1,"t","*",[5,"0.4"]]]]],"*",[5,"0.04"]]]]]]],[13,"pattern2",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"d2","x"],"+",[1,[1,[1,[6,[7,"std","sin"],[[1,[1,[7,"d2","y"],"*",[1,"freq3","*",[5,"1.8"]]],"+",[1,"t","*",[5,"0.85"]]]]],"*",[5,"0.04"]],"+",[1,[6,[7,"std","cos"],[[1,[1,[7,"d2","x"],"*",[1,"freq3","*",[5,"1.3"]]],"-",[1,"t","*",[5,"0.55"]]]]],"*",[5,"0.025"]]],"+",[1,[6,[7,"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,[7,"std","cos"],[[1,[1,[7,"d2","x"],"*",[1,"freq3","*",[5,"1.6"]]],"-",[1,"t","*",[5,"0.75"]]]]],"*",[5,"0.04"]],"+",[1,[6,[7,"std","sin"],[[1,[1,[7,"d2","y"],"*",[1,"freq3","*",[5,"1.1"]]],"+",[1,"t","*",[5,"0.5"]]]]],"*",[5,"0.025"]]],"+",[1,[6,[7,"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,[7,"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"]]]]]],[13,"combinedPattern",[1,[1,[1,"pattern1","*",[5,"0.45"]],"+",[1,"pattern2","*",[5,"0.35"]]],"+",[1,"pattern3","*",[5,"0.2"]]]],[13,"blendBias",[1,[1,"blend","-",[5,"50"]],"*",[5,"0.006"]]],[13,"normalizedPattern",[1,[1,[1,"combinedPattern","*",[5,"0.5"]],"+",[5,"0.5"]],"+","blendBias"]],[13,"blendFactor",[6,[7,"std","smoothstep"],[[5,"0.3"],[5,"0.7"],"normalizedPattern"]]],[13,"shimmer",[1,[1,[6,[7,"std","sin"],[[1,[1,"t","*",[5,"2.5"]],"+",[1,"combinedPattern","*",[5,"8"]]]]],"*",[5,"0.015"]
247],"+",[5,"1"]]],[10,[6,[7,"d","vec2f"],["blendFactor","shimmer"]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),t$={name:"Swirl",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:O,ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#e19136",description:"Secondary gradient color",transform:O,ui:{type:"color",label:"Color B",group:"Colors"}},stops:xs(),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:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=Fe(e),i=T(Yj,"swirlField",[s.uv,t.detail,t.blend,a]),l=i.member("x"),c=i.member("y"),d=r.colorSpace??0,u=r.stopCount??0,p;return u>1?p=js(l,{colorsArray:t.colorsArray,positionsArray:t.positionsArray,convertedColorsArray:t.convertedColorsArray,stopCount:t.stopCount},d):p=T(Ye[d]??Be,"mixColors",[t.colorA,t.colorB,l]),p.mul(c)}};var Gj=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=to(t,a,d,u);return Is(gm(p.x,p.y,s,r),i,l,c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"height"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","teardropSdf"],[[7,"local","x"],[7,"local","y"],"radiu
247s","height"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),s$={name:"Teardrop",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"height",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Teardrop \u2014 a rounded bulb tapering to a sharp point",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the teardrop",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the teardrop",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.22,description:"Radius of the rounded bulb",ui:{type:"range",min:.02,max:.6,step:.01,label:"Width",group:"Shape"}},height:{default:.4,description:"Length from the bulb to the point",ui:{type:"range",min:.1,max:.7,step:.01,label:"Length",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(Gj,"teardropShape",[t.center,t.radius,t.height,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};function n$(e,t){switch(t){case"uppercase":return e.toUpperCase();case"lowercase":return e.toLowerCase();case"capitalize":return e.replace(/(^|\s)(\S)/g,(s,r,a)=>r+a.toUpperCase());default:return e}}var i$=0;function Wj(){i$++}var Uu=null,Ah=!1;function l$(){if(Uu)return Uu;if(typeof document>"u")return null;let e=document.createElement("canvas");return e.width=1,e.height=1,Uu=e.getContext("2d",{willReadFrequently:!1}),Uu&&(Ah="letterSpacing"in Uu),Uu}function Xj(){return l$(),Ah}var qj=500,Sh=new Map;function o$(e){let t=n$(e.text,e.textTransform),s=l$();if(!s)return{widthPer100:t.length*55,ascentPer100:80,descentPer100:20};let r=ek(e.fontFamily,e.fontWeight,e.italic),a=`${i$}|${r?1:0}|${e.fontFamily}|${e.fontWeight}|${e.italic?1:0}|${e.letterSpacingEm}|${t}`,i=Sh.get(a);if(i)return i;s.font=`${e.italic?"italic ":""}${e.fontWeight} 100px "${e.fontFamily}", sans-serif`,Ah&&(s.letterSpacing=`${e.letterSpacingEm*100}px`);let l=s.measureText(t),c=l.width;Ah&&t.length>0&&(c=Math.max(0,c-e.letterSpacingEm*100));let d=l.fontBoundingBoxAscent??l.actualBoundingBoxAscent??80,u=l.fontBoundingBoxDescent??l.actualBoundingBoxDescent??20,p={widthPer100:c,ascentPer100:d,descentPer100:u};return Sh.size>=qj&&Sh.clear(),Sh.set(a,p),p}var r$=4096,a$=Math.PI/180,Yb=1.2,Hj=(e,t)=>e&&typeof e=="object"&&typeof e.value=="number"?e.unit==="px"?e.value:e.value*t:(typeof e=="number"?e:.1)*t,jj=b.fn([o.vec2f,o.f32,o.vec2f,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=o.vec2f(__tsover_mul(t.x,s),t.y),d=o.vec2f(__tsover_mul(r.x,s),__tsover_sub(1,r.y)),u=__tsover_sub(c.x,d.x),p=__tsover_sub(c.y,d.y),m=__tsover_mul(a,a$),_=n.cos(m),v=n.sin(m),h=__tsover_add(__tsover_mul(u,_),__tsover_mul(p,v)),y=__tsover_sub(__tsover_mul(p,_),__tsover_mul(u,v)),x=__tsover_add(__tsover_div(h,__tsover_mul(i,2)),.5),g=__tsover_add(__tsover_div(y,__tsover_mul(l,2)),.5),w=__tsover_mul(__tsover_mul(__tsover_mul(n.step(0,x),n.step(x,1)),n.step(0,g)),n.step(g,1));return o.vec3f(x,g,w)}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"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"]
247]],[13,"rotRad",[1,"rotationDeg","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"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,[7,"std","step"],[[5,"0"],"localU"]],"*",[6,[7,"std","step"],["localU",[5,"1"]]]],"*",[6,[7,"std","step"],[[5,"0"],"localV"]]],"*",[6,[7,"std","step"],["localV",[5,"1"]]]]],[10,[6,[7,"d","vec3f"],["localU","localV","insideMask"]]]]],externalNames:["d","DEG_TO_RAD","std"]},externals:()=>({d:o,DEG_TO_RAD:a$,std:n})})&&e.f)({})),Gb={name:"Text",category:"Textures",description:"Single-line text with any Google font, rendered crisp via a glyph texture",acceptsUVContext:!0,extraFields:{halfW:{schema:o.f32,initial:.001},halfH:{schema:o.f32,initial:.001}},boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},rotation:{prop:"rotation",as:"degrees"}},computeBounds(e,t,s){let r=Hj(e.fontSize,s),a=o$({text:String(e.text??"").replace(/[\r\n]+/g," "),fontFamily:String(e.fontFamily??"Inter"),fontWeight:Number(e.fontWeight??400),italic:!!e.italic,letterSpacingEm:Number(e.letterSpacing??0),textTransform:e.textTransform??"none"}),i=typeof e.center?.x=="number"?e.center.x:.5,l=typeof e.center?.y=="number"?e.center.y:.5;return{centerXPx:i*t,centerYPx:l*s,widthPx:Math.max(0,a.widthPer100*r/100),heightPx:Math.max(0,r*Yb),rotationDeg:e.rotation??0}},writeBounds(e,t,s,r){let a=e.heightPx/Yb,i=t.fontSize,l=i&&typeof i=="object"&&i.unit==="px"?{value:Math.max(1,Math.round(a)),unit:"px"}:Math.max(.001,r>0?a/r:.001);return{center:{...t.center??{x:.5,y:.5},x:e.centerXPx/s,y:e.centerYPx/r},fontSize:l,rotation:e.rotationDeg}}},props:{text:{default:"Hello World",description:"The text to display (single line)",ui:{type:"text",label:"Text",group:"Text",hidden:!0}},fontFamily:{default:"Inter",description:"Google Fonts family name",ui:{type:"font-family",label:"Font",group:"Text"}},fontWeight:{default:400,description:"Font weight (only weights published for the family render true; others are synthesized)",ui:{type:"font-weight",label:"Weight",group:"Text"}},italic:{default:!1,description:"Italic style",ui:{type:"checkbox",label:"Italic",group:"Text"},transform:e=>e?1:0},textTransform:{default:"none",description:"Case transformation applied to the text",ui:{type:"select",options:[{label:"None",value:"none"},{label:"Uppercase",value:"uppercase"},{label:"Lowercase",value:"lowercase"},{label:"Capitalize",value:"capitalize"}],label:"Transform",group:"Text"}},fontSize:{default:.07,description:"Font size as a fraction of canvas height",ui:{type:"range",min:.01,max:.5,step:.005,label:"Size",group:"Typography",dimensional:"canvas-height"}},letterSpacing:{default:0,description:"Letter spacing in em units",ui:{type:"range",min:-.1,max:.5,step:.005,label:"Letter Spacing",group:"Typography"}},color:{default:"#ffffff",transform:O,description:"Text color",ui:{type:"color",label:"Color",group:"Colors"}},origin:{default:"center",description:"Reference edge the center position is measured from (center default). Lets you pin the text relative to a corner or the canvas centre.",ui:{type:"origin",label:"Origin",group:"Position"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the text",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Position"}}},fragment:({uniforms:e,ctx:t,uvContext:s,onCleanup:r,onBeforeRender:a,canvas:i,dimensions:l,getCpuValue:c,setExtraField:d,createMediaTexture:u,registerMediaTexture:p})=>{let m=document.createElement("canvas");m.width=2,m.height=2;let _=m.getContext("2d"),v=u({width:2,height:2,label:"Text:glyph"}),h=!1,y=(D,M)=>{if(h||v.width===D&&v.height===M)return;let z=u({width:D,height:M,label:"Text:glyph"}),L=v;v=z,L.destroy()},x=Gb.props,g=()=>({text:String(c("text")??x.text.default),fontFamily:String(c("fontFamily")??x.fontFamily.default),fontWeight:Number(c("fontWeight")??x.fontWeight.default),italic:Number(c("italic")??0)>.5,fontSizeUV:Number(c("fontSize")??x.fontSize.default),letterSpacing:Number(c("letterSpacing")??x.letterSpacing.default),textTransform:String(c("textTransform")??x.textTransform.default)}),w=()=>
247{if(!_||h)return;let D=g(),M=l.width||1,z=l.height||1,L=Math.max(.1,(i.width||M)/M),B=D.text.replace(/[\r\n]+/g," "),N=n$(B,D.textTransform),G=D.fontSizeUV*z;if(!N.trim()||G<=0){m.width=2,m.height=2,_.clearRect(0,0,2,2),y(2,2),v.write(m),d("halfW",.001),d("halfH",.001);return}let I=o$({text:B,fontFamily:D.fontFamily,fontWeight:D.fontWeight,italic:D.italic,letterSpacingEm:D.letterSpacing,textTransform:D.textTransform}),X=Math.max(1,I.widthPer100*G/100),F=Math.max(1,G*Yb),Q=I.ascentPer100*G/100,ae=I.descentPer100*G/100,j=Math.max(.25*G,(Q+ae-F)/2+.25*G),q=X+j*2,te=F+j*2,ne=L*2;ne=Math.min(ne,r$/q,r$/te);let oe=Math.max(2,Math.round(q*ne)),pe=Math.max(2,Math.round(te*ne));m.width=oe,m.height=pe,_.clearRect(0,0,oe,pe),_.fillStyle="#ffffff",_.font=`${D.italic?"italic ":""}${D.fontWeight} ${G*ne}px "${D.fontFamily}", sans-serif`,Xj()&&(_.letterSpacing=`${D.letterSpacing*G*ne}px`),_.textAlign="left",_.textBaseline="alphabetic";let _e=(oe-X*ne)/2,ge=pe/2+(Q-ae)/2*ne;_.fillText(N,_e,ge),y(oe,pe),v.write(m),d("halfW",Math.max(1e-4,q/2/z)),d("halfH",Math.max(1e-4,te/2/z))},f="",A=()=>{let D=g(),M=`${D.fontFamily}|${D.fontWeight}|${D.italic}`;M!==f&&(f=M,ku(D.fontFamily,D.fontWeight,D.italic).then(()=>{Wj(),w()}).catch(()=>{}))};setTimeout(()=>{w(),A()},0);let E="",P=0;a(()=>{let D=Date.now();if(D-P<16)return;P=D;let M=g(),z=`${M.text}|${M.fontFamily}|${M.fontWeight}|${M.italic}|${M.fontSizeUV}|${M.letterSpacing}|${M.textTransform}
247|${l.width}x${l.height}|${i.width}`;z!==E&&(E=z,w(),A())}),r(()=>{h=!0,v.destroy(),m.width=0,m.height=0});let C=p(()=>v.texture),$=T(jj,"textField",[s??t.uv,t.aspect,e.center,e.rotation,e.halfW,e.halfH]),U=C.sample($.member("xy")),k=e.color,R=U.member("a").mul(k.member("a")).mul($.member("z"));return de(k.member("rgb"),R)}};var c$=Math.PI/180,Zj=.36,Kj=e=>e*Zj,h_=b.fn([o.f32,o.vec2f,o.f32,o.f32,o.vec2f,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_mul(t,c$),d=o.vec2f(__tsover_mul(n.sin(c),-1),n.cos(c)),u=o.vec2f(s.x,__tsover_sub(1,s.y)),p=i.sub(u),m=o.vec2f(__tsover_mul(p.x,l),p.y),_=n.abs(n.dot(m,d)),v=__tsover_mul(r,.5);return n.smoothstep(v,__tsover_add(v,a),_)}),{v:1,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,[7,"d","vec2f"],[[1,[6,[7,"std","sin"],["angleRad"]],"*",[4,"-",[5,"1"]]],[6,[7,"std","cos"],["angleRad"]]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"centeredUV",[6,[7,"uv","sub"],["centerPos"]]],[13,"aspectCorrectedUV",[6,[7,"d","vec2f"],[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]]],[13,"distFromLine",[6,[7,"std","abs"],[[6,[7,"std","dot"],["aspectCorrectedUV","perpVector"]]]]],[13,"focusWidth",[1,"width","*",[5,"0.5"]]],[10,[6,[7,"std","smoothstep"],["focusWidth",[1,"focusWidth","+","falloff"],"distFromLine"]]]]],externalNames:["DEG_TO_RAD","d","std"]},externals:()=>({DEG_TO_RAD:c$,d:o,std:n})})&&e.f)({})).$name("tiltShiftBlurAmount");function Jj(){return o.struct({angle:o.f32,centerX:o.f32,centerY:o.f32,width:o.f32,falloff:o.f32,aspect:o.f32,maxRadius:o.f32})}function Qj(){return o.struct({angle:o.f32,centerX:o.f32,centerY:o.f32,width:o.f32,falloff:o.f32,aspect:o.f32,inputWidth:o.f32,inputHeight:o.f32,inputMin:o.f32,inputMax:o.f32,outputMin:o.f32,outputMax:o.f32,curve:o.f32})}function eZ(e,t){let s=Jj(),r=(globalThis.__TYPEGPU_AUTONAME__??(a=>a))(b.bindGroupLayout({blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:s}}),"layout");return{layout:r,kernel:b.fn([o.u32,o.u32])((a=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(a.f=((i,l)=>{"use gpu";let c=r.$.params,d=__tsover_div(__tsover_add(o.f32(i),.5),e),u=__tsover_div(__tsover_add(o.f32(l),.5),t),p=h_(c.angle,o.vec2f(c.centerX,c.centerY),c.width,c.falloff,o.vec2f(d,u),c.aspect),m=__tsover_mul(p,c.maxRadius);n.textureStore(r.$.blurMap,o.vec2u(i,l),o.vec4f(m,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","computeWidth"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"blurAmount",[6,"tiltShiftBlurAmount",[[7,"p","angle"],[6,[7,"d","vec2f"],[[7,"p","centerX"],[7,"p","centerY"]]],[7,"p","width"],[7,"p","falloff"],[6,[7,"d","vec2f"],["u","v"]],[7,"p","aspect"]]]],[13,"radius",[1,"blurAmount","*",[7,"p","maxRadius"]]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","tiltShiftBlurAmount","std"]},externals:()=>({layout:r,d:o,computeWidth:e,computeHeight:t,tiltShiftBlurAmount:h_,std:n})})&&a.f)({})).$name("tiltShiftFillBlurMap"),Params:s}}function tZ(e,t,s){let r=Qj(),a=(globalThis.__TYPEGPU_AUTONAME__??(i=>i))(b.bindGroupLayout({source:{texture:o.texture2d(o.f32)},blurMap:{storageTexture:o.textureStorage2d(zr,"write-only")},params:{uniform:r}}),"layout");return{layout:a,kernel:b.fn([o.u32,o.u32])((i=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(i.f=((l,c)=>{"use gpu";let d=a.$.params,u=__tsover_div(__tsover_add(o.f32(l),.5),e),p=__tsover_div(__tsover_add(o.f32(c),.5),t),m=h_(d.angle,o.vec2f(d.centerX,d.centerY),d.width,d.falloff,o.vec2f(u,p),d.aspect),_=n.clamp(o.i32(n.round(__tsover_mul(u,d.inputWi
247dth))),0,o.i32(__tsover_sub(d.inputWidth,1))),v=n.clamp(o.i32(n.round(__tsover_mul(p,d.inputHeight))),0,o.i32(__tsover_sub(d.inputHeight,1))),h=n.textureLoad(a.$.source,o.vec2u(o.u32(_),o.u32(v)),0),y=s==="alpha"?h.w:s==="alphaInverted"?__tsover_sub(1,h.w):s==="luminanceInverted"?__tsover_sub(1,n.dot(h.xyz,o.vec3f(.2126,.7152,.0722))):n.dot(h.xyz,o.vec3f(.2126,.7152,.0722)),x=n.max(__tsover_sub(d.inputMax,d.inputMin),1e-4),g=n.clamp(__tsover_div(__tsover_sub(y,d.inputMin),x),0,1),w=n.pow(2,__tsover_mul(-d.curve,2)),f=n.pow(g,w),A=__tsover_mul(n.mix(d.outputMin,d.outputMax,f),.36),E=__tsover_mul(m,A);n.textureStore(a.$.blurMap,o.vec2u(l,c),o.vec4f(E,0,0,1))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[13,"p",[7,[7,"layout","$"],"params"]],[13,"u",[1,[1,[6,[7,"d","f32"],["cx"]],"+",[5,"0.5"]],"/","computeWidth"]],[13,"v",[1,[1,[6,[7,"d","f32"],["cy"]],"+",[5,"0.5"]],"/","computeHeight"]],[13,"blurAmount",[6,"tiltShiftBlurAmount",[[7,"p","angle"],[6,[7,"d","vec2f"],[[7,"p","centerX"],[7,"p","centerY"]]],[7,"p","width"],[7,"p","falloff"],[6,[7,"d","vec2f"],["u","v"]],[7,"p","aspect"]]]],[13,"srcX",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"u","*",[7,"p","inputWidth"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputWidth"],"-",[5,"1"]]]]]]],[13,"srcY",[6,[7,"std","clamp"],[[6,[7,"d","i32"],[[6,[7,"std","round"],[[1,"v","*",[7,"p","inputHeight"]]]]]],[5,"0"],[6,[7,"d","i32"],[[1,[7,"p","inputHeight"],"-",[5,"1"]]]]]]],[13,"sample",[6,[7,"std","textureLoad"],[[7,[7,"layout","$"],"source"],[6,[7,"d","vec2u"],[[6,[7,"d","u32"],["srcX"]],[6,[7,"d","u32"],["srcY"]]]],[5,"0"]]]],[13,"raw",[105,[1,"channel","===",[103,"alpha"]],[7,"sample","w"],[105,[1,"channel","===",[103,"alphaInverted"]],[1,[5,"1"],"-",[7,"sample","w"]],[105,[1,"channel","===",[103,"luminanceInverted"]],[1,[5,"1"],"-",[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]],[6,[7,"std","dot"],[[7,"sample","xyz"],[6,[7,"d","vec3f"],[[5,"0.2126"],[5,"0.7152"],[5,"0.0722"]]]]]]]]],[13,"inputRange",[6,[7,"std","max"],[[1,[7,"p","inputMax"],"-",[7,"p","inputMin"]],[5,"0.0001"]]]],[13,"normalised",[6,[7,"std","clamp"],[[1,[1,"raw","-",[7,"p","inputMin"]],"/","inputRange"],[5,"0"],[5,"1"]]]],[13,"exponent",[6,[7,"std","pow"],[[5,"2"],[1,[4,"-",[7,"p","curve"]],"*",[5,"2"]]]]],[13,"eased",[6,[7,"std","pow"],["normalised","exponent"]]],[13,"maxRadius",[1,[6,[7,"std","mix"],[[7,"p","outputMin"],[7,"p","outputMax"],"eased"]],"*","INTENSITY_TO_RADIUS"]],[13,"radius",[1,"blurAmount","*","maxRadius"]],[6,[7,"std","textureStore"],[[7,[7,"layout","$"],"blurMap"],[6,[7,"d","vec2u"],["cx","cy"]],[6,[7,"d","vec4f"],["radius",[5,"0"],[5,"0"],[5,"1"]]]]]]],externalNames:["layout","d","computeWidth","computeHeight","tiltShiftBlurAmount","std","channel","INTENSITY_TO_RADIUS"]},externals:()=>({layout:a,d:o,computeWidth:e,computeHeight:t,tiltShiftBlurAmount:h_,std:n,channel:s,INTENSITY_TO_RADIUS:.36})})&&i.f)({}
247)).$name("tiltShiftFillBlurMapVariable"),Params:r}}var d$={name:"TiltShift",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Selective focus blur mimicking tilt-shift photography",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:50,description:"Maximum blur intensity at edges",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Effect"}},width:{default:.3,description:"Width of the sharp focus area",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Width",group:"Effect"}},falloff:{default:.3,description:"Distance over which blur transitions to full strength",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Falloff",group:"Effect"}},angle:{default:0,transform:Jt,description:"Rotation angle of the focus line (in degrees)",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},center:{default:{x:.5,y:.5},transform:we,description:"Center point of the focus line",ui:{type:"position",label:"Center",group:"Position"}}},compute:e=>{let{childNode:t,gpu:s,convertToTexture:r,registerComputeTexture:a,getCpuValue:i,getMapInfo:l,onCleanup:c,onResize:d,dimensions:u}=e;if(!t)return null;let p=s?.root;if(!p)return null;let m=r(t),_=Math.max(1,Math.round(u.width)),v=Math.max(1,Math.round(u.height)),h=Zn(p,null,_,v,c,14),y=a(h.outputTexture),x=()=>{let P=i("center");return{angle:i("angle")??0,centerX:typeof P?.x=="number"?P.x:.5,centerY:typeof P?.y=="number"?P.y:.5,width:i("width")??.3,falloff:i("falloff")??.3,aspect:_/v}},g=l("intensity");if(g){let P=tZ(h.computeWidth,h.computeHeight,g.channel),C=(globalThis.__TYPEGPU_AUTONAME__??(U=>U))(p.createUniform(P.Params),"fillParams"),$=pt(p,(U=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(U.f=((k,R)=>{"use gpu";P.kernel(k,R)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:P})})&&U.f)({}),{size:[h.computeWidth,h.computeHeight]});return d(({width:U,height:k})=>{_=Math.max(1,Math.round(U)),v=Math.max(1,Math.round(k)),h.setInputDimensions(_,v)}),{outputs:{childTexture:m,blurredTexture:y},bindInputs:U=>{let k=U(m.key);k&&h.setInputTexture(k.texture);let R=U(g.sourceTexture.key);if(R){let D=p.createBindGroup(P.layout,{source:R.texture,blurMap:h.blurMapTexture,params:C.buffer});$=$.with(D)}},getComputeNodes:()=>{let U=x(),k=g.window();return C.write({...U,inputWidth:_,inputHeight:v,inputMin:k.inputMin,inputMax:k.inputMax,outputMin:k.outputMin,outputMax:k.outputMax,curve:k.curve}),[$,...h.computeSteps]}}}let w=eZ(h.computeWidth,h.computeHeight),f=(globalThis.__TYPEGPU_AUTONAME__??(P=>P))(p.createUniform(w.Params),"fillParams"),A=p.createBindGroup(w.layout,{blurMap:h.blurMapTexture,params:f.buffer}),E=pt(p,(P=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(P.f=((C,$)=>{"use gpu";w.kernel(C,$)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"cx"},{type:"i",name:"cy"}],body:[0,[[6,[7,"graph","kernel"],["cx","cy"]]]],externalNames:["graph"]},externals:()=>({graph:w})})&&P.f)({}),{size:[h.computeWidth,h.computeHeight],bindGroup:A});return d(({width:P,height:C})=>{_=Math.max(1,Math.round(P)),v=Math.max(1,Math.round(C)),h.setInputDimensions(_,v)}),{outputs:{childTexture:m,blurredTexture:y},bindInputs:P=>{let C=P(m.key);C&&h.setInputTexture(C.texture)},getComputeNodes:()=>{let P=x(),C=i("intensity")??0;return f.write({...P,maxRadius:Kj(C)}),[E,...h.computeSteps]}}},fragment:({childNode:e,computeOutputs:t,uniforms:s,ctx:r,convertToTexture:a})=>{if(!e)return me;let i=t?.blurredTexture,l=t?.childTexture;return!i||!l?T(Re,"unpremultiplyAlpha",[a(e).sample(r.uv)]):T(Re,"unpremultiplyAlpha",[Ns(l.sample(r.uv),i.sample(r.uv),T(h_,"tiltShiftBlurAmount",[s.angle,s.center,s.width,s.falloff,r.uv,r.aspect]))])}};var sZ=b.fn([o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=o.vec3f(t.x,t.y,t.z),i=n.mix(a,o.vec3f(s.x,s.y,s.z),o.vec3f(r));return o.vec4f(i.x,i.y,i.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"tintColor"},{type:"i",name:"amount"}],body:[0,[[13,"rgb",[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"tinted",[6,[7,"std","mix"],["rgb",[6,[7,"d","vec3f"],[[7,"tintColor","x"],[7,"tintColor","y"],[7,"tintColor","z"]]],[6,[7,"d","vec3f"],["amount"]]]]],[10,[6,[7,"d","vec4f"],[[7,"tinted","x"],[7,"tinted","y"],[7,"tinted","z"],[7,"color","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),oZ=b.fn([o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=o.vec3f(t.x,t.y,t.z),i=n.mix(a,o.vec3f(s.x,s.y,s.z),o.vec3f(r)),l=o.vec3f(.299,.587,.114),c=n.dot(a,l),d=n.dot(i,l),u=i.mul(__tsover_div(c,n.max(d,1e
247-4)));return o.vec4f(u.x,u.y,u.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"tintColor"},{type:"i",name:"amount"}],body:[0,[[13,"rgb",[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"tinted",[6,[7,"std","mix"],["rgb",[6,[7,"d","vec3f"],[[7,"tintColor","x"],[7,"tintColor","y"],[7,"tintColor","z"]]],[6,[7,"d","vec3f"],["amount"]]]]],[13,"luminanceWeights",[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]],[13,"originalLum",[6,[7,"std","dot"],["rgb","luminanceWeights"]]],[13,"tintedLum",[6,[7,"std","dot"],["tinted","luminanceWeights"]]],[13,"result",[6,[7,"tinted","mul"],[[1,"originalLum","/",[6,[7,"std","max"],["tintedLum",[5,"0.0001"]]]]]]],[10,[6,[7,"d","vec4f"],[[7,"result","x"],[7,"result","y"],[7,"result","z"],[7,"color","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),u$={name:"Tint",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Apply a color tint to the image",requiresChild:!0,props:{color:{default:"#ff8800",transform:O,description:"Tint color",ui:{type:"color",label:"Tint Color",group:"Colors"}},amount:{default:.5,description:"Tint amount (0 = no tint, 1 = full tint)",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Amount",group:"Effect"}},preserveLuminosity:{default:!0,compileTime:!0,description:"Preserve original brightness",transform:e=>e?1:0,ui:{type:"checkbox",label:"Preserve Luminosity",group:"Effect"}}},fragment:({uniforms:e,childNode:t,propValues:s})=>t?Number(s.preserveLuminosity)>0?T(oZ,"tintColorPreserve",[t,e.color,e.amount]):T(sZ,"tintColorPlain",[t,e.color,e.amount]):(console.error("You must pass a child component into the Tint shader."),me)};var rZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p)=>{"use gpu";let m=to(t,i,u,p);return Is(vm(m.x,m.y,s,r,a),l,c,d)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"topWidth"},{type:"i",name:"bottomWidth"},{type:"i",name:"height"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","trapezoidSdf"],[[7,"local","x"],[7,"local","y"],"topWidth","bottomWidth","height"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),p$={name:"Trapezoid",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"bottomWidth",as:"half-canvas-height"},height:{prop:"height",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Trapezoid with adjustable top and bottom widths and height",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the trapezoid",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the trapezoid",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},bottomWidth:{default:.35,description:"Half-width of the bottom edge",ui:{type:"range",min:.01,max:1,step:.01,label:"Bottom Width",group:"Shape"}},topWidth:{default:.2,description:"Half-width of the top edge",ui:{type:"range",min:.01,max:1,step:.01,label:"Top Width",group:"Shape"}},height:{default:.25,description:"Half-height of the trapezoid",ui:{type:"range",min:.01,max:1,step:.01,label:"Height",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(rZ,"trapezoidShape",[t.center,t.topWidth,t.bottomWidth,t.height,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var m$=Math.PI/180,_$=Math.sqrt(3),f$=2/Math.sqrt(3),aZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=__tsover_div(s.x,s.y),m=o.vec2f(__tsover_mul(t.x,p),__tsover_sub(1,t.y)),_=__tsover_mul(i,m$),v=n.cos(_),h=n.sin(_),y=__tsover_mul(p,.5),x=.5,g=__tsover_sub(m.x,y),w=__tsover_sub(m.y,x),f=o.vec2f(__tsover_add(__tsover_sub(__tsover_mul(g,v),__tsover_mul(w,h)),y),__tsover_add(__tsover_add(__tsover_mul(g,h),__tsover_mul(w,v)),x)).mul(r),A=o.vec2f(__tsover_sub(f.x,__tsover_div(f.y,_$)),__tsover_mul(f.y,f$)),E=n.floor(A.y),P=n.fract(__tsover_mul(n.sin(__tsover_mul(E,127.1)),43758.5453)),C=__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(P,.5),4),d)),$=__tsover_mul(u,C),U=o.vec2f(__tsover_sub(A.x,$),A.y),k=n.floor(U),R=n.fract(U),D=n.step(1,__tsover_add(R.x,R.y)),M=o.vec2f(__tsover_add(__tsover_mul(k.x,2),D),k.y),z=n.fract(M.mul(o.vec2f(123.34,345.45))),L=z.add(n.dot(z,z.add(34.345))),B=n.fract(__tsover_mul(L.x,L.y)),N=n.max(__tsover_add(1,__tsover_mul(__tsover_mul(__tsover_sub(B,.5),2),c)),0),G=n.min(n.min(n.min(R.x,__tsover_sub(1,R.x)),n.min(R.y,__tsover_sub(1,R.y))),n.abs(__tsover_sub(__tsover_add(R.x,R.y),1))),I=__tsover_mul(a,.02),X=__tsover_add(n.max(n.fwidth(A.x),n.fwidth(A.y)),__tsover_mul(l,.5)),F=__tsover_mul(__tsover_sub(1,n.smoothstep(__tsover_sub(I,X),__tsover_add(I,X),G)),n.step(1e-4,I));return o.vec2f(F,N)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"thickness"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"variation"},{type:"i",name:"speedVariance"},{type:"i",name:"animTime"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[1,[5,"1"],"-",[7,"uv","y"]]]]],[13,"ang",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["ang"]]],[13,"sinR",[6,[7,"std","sin"],["ang"]]],[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,[7,"correctedUV","x"],"-","centerX"]],[13,"cy",[1,[7,"correctedUV","y"],"-","centerY"]],[13,"rotatedUV",[6,[7,"d","vec2f"],[[1,[1,[1,"cx","*","cosR"],"-",[1,"cy","*","sinR"]],"+","centerX"],[1,[1,[1,"cx","*","sinR"],"+",[1,"cy","*","cosR"]],"+","centerY"]]]],[13,"p",[6,[7,"rotatedUV","mul"],["cells"]]],[13,"ps",[6,[7,"d","vec2f"],[[1,[7,"p","x"],"-",[1,[7,"p","y"],"/","SQRT3"]],[1,[7,"p","y"],"*","TWO_OVER_SQRT3"]]]],[13,"rowIndex",[6,[7,"std","floor"],[[7,"ps","y"]]]],[13,"rowHash",[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,"rowIndex","*",[5,"127.1"]]]],"*",[5,"43758.5453"]]]]],[13,"speedMod",[1,[5,"1"],"+",[1,[1,[1,"rowHash","-",[5,"0.5"]],"*",[5,"4"]],"*","speedVariance"]]],[13,"drift",[1,"animTime","*","speedMod"]],[13,"psShifted",[6,[7,"d","vec2f"],[[1,[7,"ps","x"],"-","drift"],[7,"ps","y"]]]],[13,"cell",[6,[7,"std","floor"],["psShifted"]]],[13,"f",[6,[7,"std","fract"],["psShifted"]]],[13,"upper",[6,[7,"std","step"],[[5,"1"],[1,[7,"f","x"],"+",[7,"f","y"]]]]],[13,"triId",[6,[7,"d","vec2f"],[[1,[1,[7,"cell","x"],"*",[5,"2"]],"+","upper"],[7,"cell","y"]]]],[13,"q0",[6,[7,"std","fract"],[[6,[7,"triId","mul"],[[6,[7,"d","vec2f"],[[5,"123.34"],[5,"345.45"]]]]]]]],[13,"q1",[6,[7,"q0","add"],[[6,[7,"std","dot"],["q0",[6,[7,"q0","add"],[[5,"34.345"]]]]]]]],[13,"rand",[6,[7,"std","fract"],[[1,[7,"q1","x"],"*",[7,"q1","y"]]]]],[13,"variedFactor",[6,[7,"std","max"],[[1,[5,"1"],"+",[1,[1,[1,"rand","-",[5,"0.5"]],"*",[5,"2"]],"*","variation"]],[5,"0"]]]],[13,"dEdge",[6,[7,"std","min"],[[6,[7,"std","min"],[[6,[7,"std","min"],[[7,"f","x"],[1,[5,"1"],"-",[7,"f","x"]]]],[6,[7,"std","min"],[[7,"f","y"],[1,[5,"1"],"-",[7,"f","y"]]]]]],[6,[7,"std","abs"],[[1,[1,[7,"f","x"],"+",[7,"f","y"]],"-",[5,"1"]]]]]]],[13,"lineWidth",[1,"thickness","*",[5,"0.02"]]],[13,"aa",[1,[6,[7,"std","max"],[[6,[7,"std","fwidth"],[[7,"ps","x"]]],[6,[7,"std","fwidth"],[[7,"ps","y"]
247]]]],"+",[1,"softness","*",[5,"0.5"]]]],[13,"lineMask",[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[1,"lineWidth","-","aa"],[1,"lineWidth","+","aa"],"dEdge"]]],"*",[6,[7,"std","step"],[[5,"0.0001"],"lineWidth"]]]],[10,[6,[7,"d","vec2f"],["lineMask","variedFactor"]]]]],externalNames:["d","DEG_TO_RAD","std","SQRT3","TWO_OVER_SQRT3"]},externals:()=>({d:o,DEG_TO_RAD:m$,std:n,SQRT3:_$,TWO_OVER_SQRT3:f$})})&&e.f)({})),v$={name:"TriangularGrid",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Tiling grid of equilateral triangles with optional animated row offsets",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{colorA:{default:"#1a1a1a",transform:O,description:"Triangle fill color",ui:{type:"color",label:"Fill",group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Grid line color",ui:{type:"color",label:"Lines",group:"Colors"}},cells:{default:8,description:"Number of triangle rows down the shortest canvas edge",ui:{type:["range","map"],min:1,max:40,step:1,label:"Cells",group:"Effect"}},thickness:{default:1,description:"Thickness of the grid lines (0 = no lines)",ui:{type:["range","map"],min:0,max:10,step:.1,label:"Thickness",group:"Effect"}},rotation:{default:0,transform:Jt,description:"Rotation of the grid in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},softness:{default:0,description:"Softness of the line edges (0 = crisp, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},variation:{default:0,description:"Per-triangle random lightening/darkening of the fill color",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Variation",group:"Effect"}},speed:{default:0,description:"Animates the triangle rows drifting horizontally (0 = static)",ui:{type:"range",min:-3,max:3,step:.01,label:"Speed",group:"Animation"}},speedVariance:{default:.3,description:"Per-row random speed variance for irregular drifting motion",ui:{type:"range",min:0,max:1,step:.01,label:"Speed Variance",group:"Animation"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=T(aZ,"triangularGridField",[r,a,t.cells,t.thickness,t.rotation,t.softness,t.variation,t.speedVariance,i]),c=l.member("x"),d=l.member("y"),u=de(t.colorA.member("rgb").mul(d),t.colorA.member("a"));return T(Ye[s.colorSpace??0]??Be,"mixColors",[u,t.colorB,c])}};var nZ=b.fn([o.vec4f,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.dot(t.xyz,o.vec3f(.299,.587,.114)),a=n.smoothstep(__tsover_sub(s,.25),s,r),i=n.smoothstep(s,__tsover_add(s,.25),r),l=n.smoothstep(__tsover_sub(s,.1),__tsover_add(s,.1),r);return o.vec3f(a,i,l)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"blendMid"}],body:[0,[[13,"luminance",[6,[7,"std","dot"],[[7,"color","xyz"],[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"shadowToMid",[6,[7,"std","smoothstep"],[[1,"blendMid","-",[5,"0.25"]],"blendMid","luminance"]]],[13,"midToHighlight",[6,[7,"std","smoothstep"],["blendMid",[1,"blendMid","+",[5,"0.25"]],"luminance"]]],[13,"finalT",[6,[7,"std","smoothstep"],[[1,"blendMid","-",[5,"0.1"]],[1,"blendMid","+",[5,"0.1"]],"luminance"]]],[10,[6,[7,"d","vec3f"],["shadowToMid","midToHighlight","finalT"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),h$={name:"Tritone",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Map colors to three tones: shadows, midtones, highlights",requiresChild:!0,props:{colorA:{default:"#ce1bea",transform:O,description:"First color (used for shadows/darkest areas)",ui:{type:"color",label:"Color A (Shadows)",group:"Colors"}},colorB:{default:"#2fff00",transform:O,description:"Second color (used for midtones)",ui:{type:"color",label:"Color B (Midtones)",group:"Colors"}},colorC:{default:"#ffff00",transform:O,description:"Third color (used for highlights/brightest areas)",ui:{type:"color",label:"Color C (Highlights)",group:"Colors"}},blendMid:{default:.5,description:"Midpoint position between the three colors",ui:{type:["range","map"],min:0,max:1,step:.1,label:"Midpoint",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:({uniforms:e,childNode:t,propValues:s})=>{if(!t)return me;let r=T(nZ,"tritoneFactors",[t,e.blendMid]),a=r.member("x"),i=r.member("y"),l=r.member("z"),c=Ye[s.colorSpace??0]??Be;return de(T(c,"mixColors",[T(c,"mixColors",[e.colorA,e.colorB,a]),T(c,"mixColors",[e.colorB,e.colorC,i]),l]).member("rgb"),t.member("a"))}};var y$=Math.PI/180,g$=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.dot(t,o.vec2f(127.1,311.7));return n.fract(__tsover_mul(n.sin(s),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"h",[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"127.1"],[5,"311.7"]]]]]],[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],["h"]],"*",[5,"43758.5453"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),iZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_div(s.x,s.y),u=o.vec2f(__tsover_mul(t.x,d),t.y),p=-__tsover_mul(i,y$),m=n.cos(p),_=n.sin(p),v=__tsover_mul(d,.5),h=.5,y=__tsover_sub(u.x,v),x=__tsover_sub(u.y,h),g=o.vec2f(__tsover_add(__tsover_sub(__tsover_mul(y,m),__tsover_mul(x,_)),v),__tsover_add(__tsover_add(__tsover_mul(y,_),__tsover_mul(x,m)),h)).mul(r),w=n.floor(g),f=n.fract(g),A=g$(o.vec2f(__tsover_add(w.x,c),__tsover_add(w.y,c)))>.5,E=n.select(o.f32(0),o.f32(1),A),P=n.select(o.f32(1),o.f32(0),A),C=n.abs(__tsover_sub(n.length(o.vec2f(__tsover_sub(f.x,E),f.y)),.5)),$=n.abs(__tsover_sub(n.length(o.vec2f(__tsover_sub(f.x,P),__tsover_sub(f.y,1))),.5)),U=n.min(C,$),k=__tsover_mul(a,.005),R=__tsover_mul(n.fwidth(g.x),.5),D=__tsover_mul(l,.5),M=n.max(__tsover_sub(k,D),0),z=__tsover_add(__tsover_add(k,R),D);return __tsover_mul(__tsover_sub(1,n.smoothstep(M,z,U)),n.step(1e-4,k))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"thickness"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"seed"}
vendor: 4,532 bytes, line 247
247],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"ang",[4,"-",[1,"rotation","*","DEG_TO_RAD"]]],[13,"cosR",[6,[7,"std","cos"],["ang"]]],[13,"sinR",[6,[7,"std","sin"],["ang"]]],[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,[7,"correctedUV","x"],"-","centerX"]],[13,"cy",[1,[7,"correctedUV","y"],"-","centerY"]],[13,"rotatedUV",[6,[7,"d","vec2f"],[[1,[1,[1,"cx","*","cosR"],"-",[1,"cy","*","sinR"]],"+","centerX"],[1,[1,[1,"cx","*","sinR"],"+",[1,"cy","*","cosR"]],"+","centerY"]]]],[13,"scaledUV",[6,[7,"rotatedUV","mul"],["cells"]]],[13,"cell",[6,[7,"std","floor"],["scaledUV"]]],[13,"localUV",[6,[7,"std","fract"],["scaledUV"]]],[13,"h",[6,"truchetHash",[[6,[7,"d","vec2f"],[[1,[7,"cell","x"],"+","seed"],[1,[7,"cell","y"],"+","seed"]]]]]],[13,"flip",[1,"h",">",[5,"0.5"]]],[13,"c1x",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],"flip"]]],[13,"c2x",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"1"]]],[6,[7,"d","f32"],[[5,"0"]]],"flip"]]],[13,"d1",[6,[7,"std","abs"],[[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"localUV","x"],"-","c1x"],[7,"localUV","y"]]]]],"-",[5,"0.5"]]]]],[13,"d2",[6,[7,"std","abs"],[[1,[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"localUV","x"],"-","c2x"],[1,[7,"localUV","y"],"-",[5,"1"]]]]]],"-",[5,"0.5"]]]]],[13,"arcDist",[6,[7,"std","min"],["d1","d2"]]],[13,"lineWidth",[1,"thickness","*",[5,"0.005"]]],[13,"pixel",[1,[6,[7,"std","fwidth"],[[7,"scaledUV","x"]]],"*",[5,"0.5"]]],[13,"soft",[1,"softness","*",[5,"0.5"]]],[13,"lo",[6,[7,"std","max"],[[1,"lineWidth","-","soft"],[5,"0"]]]],[13,"hi",[1,[1,"lineWidth","+","pixel"],"+","soft"]],[10,[1,[1,[5,"1"],"-",[6,[7,"std","smoothstep"],["lo","hi","arcDist"]]],"*",[6,[7,"std","step"],[[5,"0.0001"],"lineWidth"]]]]]],externalNames:["d","DEG_TO_RAD","std","truchetHash"]},externals:()=>({d:o,DEG_TO_RAD:y$,std:n,truchetHash:g$})})&&e.f)({})),x$={name:"Truchet",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Quarter-circle arc tiles that connect to form organic, maze-like flowing curves",acceptsUVContext:!0,props:{colorA:{default:"#000000",transform:O,description:"Background color between the arcs",ui:{type:"color",label:"Color A",group:"Colors"}},colorB:{default:"#ffffff",transform:O,description:"Arc line color",ui:{type:"color",label:"Color B",group:"Colors"}},cells:{default:10,description:"Number of tiles across the shortest canvas edge",ui:{type:["range","map"],min:2,max:40,step:1,label:"Cells",group:"Effect"}},thickness:{default:2,description:"Thickness of the arc lines",ui:{type:["range","map"],min:0,max:20,step:.1,label:"Thickness",group:"Effect"}},rotation:{default:0,transform:Jt,description:"Rotation of the tiling in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}},softness:{default:0,description:"Softness of the arc edges (0 = crisp, 1 = very soft)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Softness",group:"Effect"}},seed:{default:0,description:"Random seed \u2014 changes which tiles flip, producing a different maze pattern",ui:{type:["range","map"],min:0,max:100,step:1,label:"Seed",group:"Effect"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=T(iZ,"truchetField",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,t.cells,t.thickness,t.rotation,t.softness,t.seed]);return T(Ye[s.colorSpace??0]??Be,"mixColors",[t.colorA,t.colorB,r])}};var b$=b.fn([o.vec2f,o.f32,o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=o.vec2f(t.x,__tsover_sub(1,t.y)),l=r.sub(i),c=o.vec2f(__tsover_mul(l.x,a),l.y),d=__tsover_mul(s,n.length(c)),u=n.cos(d),p=n.sin(d),m=__tsover_sub(__tsover_mul(u,c.x),__tsover_mul(p,c.y)),_=__tsover_add(__tsover_mul(p,c.x),__tsover_mul(u,c.y));return o.vec2f(__tsover_add(__tsover_div(m,a),i.x),__tsover_add(_,i.y))}),{v:1,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,[7,"d","vec2f"],[[7,"center","x"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"delta",[6,[7,"uv","sub"],["centerPos"]]],[13,"acd",[6,[7,"d","vec2f"],[[1,[7,"delta","x"],"*","aspect"],[7,"delta","y"]
247]]],[13,"angle",[1,"intensity","*",[6,[7,"std","length"],["acd"]]]],[13,"cosA",[6,[7,"std","cos"],["angle"]]],[13,"sinA",[6,[7,"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,[7,"d","vec2f"],[[1,[1,"rotatedX","/","aspect"],"+",[7,"centerPos","x"]],[1,"rotatedY","+",[7,"centerPos","y"]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),w$={name:"Twirl",category:"Distortions",description:"Rotate and twist content around a center point",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},props:{center:{default:{x:.5,y:.5},transform:we,description:"The center point of the twirl effect",ui:{type:"position",label:"Center",group:"Position"}},intensity:{default:1,description:"The strength of the twirl effect",ui:{type:["range","map"],min:-5,max:5,step:.1,label:"Intensity",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return console.error("You must pass a child component into the Twirl shader."),me;let i=a(t),l=r.edges??0;return T(Re,"unpremultiplyAlpha",[Gt(T(b$,"twirlUV",[e.center,e.intensity,s.uv,s.aspect]),c=>i.sample(c),l)])},uvRemap:({uv:e,mask:t,uniforms:s,aspect:r,propValues:a})=>{let i=a.edges??0;return zs(T(b$,"twirlUV",[s.center,s.intensity,e,r]),t,i)}};var lZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.vec2f,o.f32],Cs)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u)=>{"use gpu";let p=to(t,a,d,u);return Is(_m(p.x,p.y,s,r),i,l,c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"center"},{type:"i",name:"radius"},{type:"i",name:"spread"},{type:"i",name:"rotation"},{type:"i",name:"softness"},{type:"i",name:"strokeThickness"},{type:"i",name:"strokePosition"},{type:"i",name:"uv"},{type:"i",name:"aspect"}],body:[0,[[13,"local",[6,[7,"sdf","shapeLocalCoords"],["center","rotation","uv","aspect"]]],[13,"dist",[6,[7,"sdf","vesicaSdf"],[[7,"local","x"],[7,"local","y"],"radiu
247s","spread"]]],[10,[6,[7,"sdf","strokeMaskFromSdf"],["dist","softness","strokeThickness","strokePosition"]]]]],externalNames:["sdf"]},externals:()=>({sdf:ft})})&&e.f)({})),T$={name:"Vesica",boundingBoxDeclaration:{propBindings:{x:{prop:"center",as:"position-x"},y:{prop:"center",as:"position-y"},width:{prop:"radius",as:"half-canvas-height"},height:{prop:"radius",as:"half-canvas-height"},rotation:{prop:"rotation",as:"degrees"}}},category:"Shapes",description:"Vesica piscis (lens shape) formed by the intersection of two overlapping circles",acceptsUVContext:!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"}},color:{default:"#ffffff",transform:O,description:"Fill color of the vesica",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center position of the vesica",ui:{type:"position",label:"Center",group:"Position",units:["%","px"]}},radius:{default:.35,description:"Radius of the two overlapping circles",ui:{type:"range",min:.05,max:1,step:.01,label:"Size",group:"Shape"}},spread:{default:.5,description:"Circle separation \u2014 0 = full circle overlap, 1 = infinitely thin lens",ui:{type:"range",min:.05,max:.95,step:.01,label:"Spread",group:"Shape"}},rotation:{default:0,description:"Rotation in degrees",ui:{type:"range",min:0,max:360,step:1,label:"Rotation",group:"Shape"}},softness:{default:0,description:"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:.2,step:.005,label:"Stroke Thickness",group:"Stroke"}},strokeColor:{default:"#000000",transform:O,description:"Color of the stroke outline",ui:{type:"color",label:"Stroke C
247olor",group:"Colors"}},strokePosition:{default:"center",transform:Bs,description:"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"}},colorSpace:{default:"linear",transform:Ue,compileTime:!0,description:"Color space for blending fill and stroke colors",ui:{type:"select",options:ze,label:"Color Blending",group:"Colors"}}},fragment:e=>{let{uniforms:t,ctx:s,propValues:r}=e,a=e.uvContext??s.uv,i=r.colorSpace??0,l=T(lZ,"vesicaShape",[t.center,t.radius,t.spread,t.rotation,t.softness,t.strokeThickness,t.strokePosition,a,s.aspect]),c=T(Ye[i]??Be,"mixColors",[t.color,t.strokeColor,l.member("strokeBlend")]);return de(c.member("rgb"),c.member("a").mul(l.member("overallMask")))}};var S$=487,y_=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(n.dot(t,o.vec2f(12.9898,78.233))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"12.9898"],[5,"78.233"]]]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),Du=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.floor(t),r=n.fract(t),a=r.mul(r).mul(o.vec2f(3,3).sub(r.mul(2))),i=y_(s),l=y_(s.add(o.vec2f(1,0))),c=y_(s.add(o.vec2f(0,1))),d=y_(s.add(o.vec2f(1,1)));
vendor: 5,447 bytes, line 247
247return n.mix(n.mix(i,l,a.x),n.mix(c,d,a.x),a.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"std","floor"],["p"]]],[13,"f",[6,[7,"std","fract"],["p"]]],[13,"u",[6,[7,[6,[7,"f","mul"],["f"]],"mul"],[[6,[7,[6,[7,"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,[7,"d","vec2f"],[[5,"1"],[5,"0"]]]]]]]],[13,"c",[6,"hash2D",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]]]]]]],[13,"dd",[6,"hash2D",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]]]],[10,[6,[7,"std","mix"],[[6,[7,"std","mix"],["a","b",[7,"u","x"]]],[6,[7,"std","mix"],["c","dd",[7,"u","x"]]],[7,"u","y"]]]]]],externalNames:["std","d","hash2D"]},externals:()=>({std:n,d:o,hash2D:y_})})&&e.f)({})),cZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(s,r),c=n.smoothstep(.45,.8,Du(o.vec2f(__tsover_mul(l,.4),0))),d=n.floor(__tsover_mul(t.y,S$)),u=__tsover_mul(__tsover_sub(n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(d,12.9898),__tsover_mul(l,78.233))),43758.5453)),.5),2),p=__tsover_mul(__tsover_sub(n.fract(__tsover_mul(n.sin(__tsover_add(__tsover_mul(d,12.9898),__tsover_mul(__tsover_add(l,69.42),78.233))),43758.5453)),.5),2),m=__tsover_add(.25,__tsover_mul(c,.75)),_=__tsover_mul(__tsover_mul(__tsover_mul(u,i),.008),m),v=__tsover_mul(__tsover_mul(__tsover_mul(p,i),.004),m),h=__tsover_sub(Du(o.vec2f(__tsover_mul(t.y,3),__tsover_mul(l,.8))),.5),y=__tsover_sub(Du(o.vec2f(__tsover_mul(t.y,30),__tsover_mul(l,6))),.5),x=__tsover_mul(__tsover_add(__tsover_mul(h,.008),__tsover_mul(y,.002)),a),g=n.smoothstep(.92,.99,n.sin(__tsover_sub(__tsover_mul(t.y,8),__tsover_mul(l,3.77)))),w=n.smoothstep(.3,1,Du(o.vec2f(__tsover_mul(t.y,4.77),l))),f=__tsover_mul(__tsover_mul(__tsover_mul(g,w),a),-.018),A=__tsover_sub(1,n.smoothstep(0,.06,t.y)),E=__tsover_sub(Du(o.vec2f(__tsover_mul(t.y,60),__tsover_mul(l,14))),.5),P=__tsover_mul(__tsover_mul(__tsover_mul(A,E),a),.09),C=__tsover_mul(__tsover_mul(__tsover_mul(A,a),c),.02),$=__tsover_add(__tsover_add(x,f),P),U=__tsover_add(t.y,C);return o.vec4f(__tsover_add(__tsover_add(t.x,$),v),U,__tsover_add(__tsover_add(t.x,$),_),U)}),{v:1,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,[7,"std","smoothstep"],[[5,"0.45"],[5,"0.8"],[6,"smoothNoise2D",[[6,[7,"d","vec2f"],[[1,"t","*",[5,"0.4"]],[5,"0"]]]]]]]],[13,"rowInt",[6,[7,"std","floor"],[[1,[7,"uv","y"],"*","FIELD_LINES"]]]],[13,"h0",[1,[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,"rowInt","*",[5,"12.9898"]],"+",[1,"t","*",[5,"78.233"]]]]],"*",[5,"43758.5453"]]]],"-",[5,"0.5"]],"*",[5,"2"]]],[13,"h1",[1,[1,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[1,[1,"rowInt","*",[5,"12.9898"]],"+",[1,[1,"t","+",[5,"69.42"]],"*",[5,"78.233"]]]]],"*",[5,"43758.5453"]]]],"-",[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"]],[13,"wave1",[1,[6,"smoothNoise2D",[[6,[7,"d","vec2f"],[[1,[7,"uv","y"],"*",[5,"3"]],[1,"t","*",[5,"0.8"]]]]]],"-",[5,"0.5"]]],[13,"wave2",[1,[6,"smoothNoise2D",[[6,[7,"d","vec2f"],[[1,[7,"uv","y"],"*",[5,"30"]],[1,"t","*",[5,"6"]]]]]],"-",[5,"0.5"]]],[13,"tapeWave",[1,[1,[1,"wave1","*",[5,"0.008"]],"+",[1,"wave2","*",[5,"0.002"]]],"*","wobble"]],[13,"creasePhase",[6,[7,"std","smoothstep"],[[5,"0.92"],[5,"0.99"],[6,[7,"std","sin"],[[1,[1,[7,"uv","y"],"*",[5,"8"]],"-",[1,"t","*",[5,"3.77"]]]]]]]],[13,"creaseNoise",[6,[7,"std","smoothstep"],[[5,"0.3"],[5,"1"],[6,"smoothNoise2D",[[6,[7,"d","vec2f"],[[1,[7,"uv","y"],"*",[5,"4.77"]],"t"]]]]]]],[13,"creaseShift",[1,[1,[1,"creasePhase","*","creaseNoise"],"*","wobble"],"*",[4,"-",[5,"0.018"]]]],[13,"switchPhase",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.06"],[7,"uv","y"]]]]],[13,"switchNoise",[1,[6,"smoothNoise2D",[[6,[7,"d","vec2f"],[[1,[7,"uv","y"],"*",[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"]]],[13,"globalX",[1,[1,"tapeWave","+","creaseShift"],"+","switchX"]],[13,"sy",[1,[7,"uv","y"],"+","switchY"]],[10,[6,[7,"d","vec4f"],[[1,[1,[7,"uv","x"],"+","globalX"],"+","lumaRowOffset"],"sy",[1,[1,[7,"uv","x"],"+","globalX"],"+","chromaRowOffset"],"sy"]]]]],externalNames:["std","smoothNoise2D","d","FIELD_LINES"]},externals:()=>({std:n,smoothNoise2D:Du,d:o,FIELD_LINES:S$})})&&e.f)({})),dZ=b.fn([o.vec2f,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(s,r);return __tsover_add(1,__tsover_mul(__tsover_mul(n.cos(__tsover_add(__tsover_mul(n.mod(i,6.2831853),2),__tsover_mul(t.y,.5))),.015),a))}),{v:1,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,[7,"std","cos"],[[1,[1,[6,[7,"std","mod"],["t",[5,"6.2831853"]]],"*",[5,"2"]],"+",[1,[7,"uv","y"],"*",[5,"0.5"]]]]],"*",[5,"0.015"]
247],"*","wobble"]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),g_=b.fn([o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";return o.vec2f(__tsover_add(t.x,__tsover_mul(__tsover_mul(r,-1),s)),t.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"chromaUV"},{type:"i",name:"smearScale"},{type:"i",name:"i"}],body:[0,[[10,[6,[7,"d","vec2f"],[[1,[7,"chromaUV","x"],"+",[1,[1,"i","*",[4,"-",[5,"1"]]],"*","smearScale"]],[7,"chromaUV","y"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),uZ=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=n.dot(t.xyz,o.vec3f(.299,.587,.114)),u=o.vec3f(.596,-.274,-.322),p=o.vec3f(.211,-.523,.312),m=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(n.dot(s.xyz,u),.06666666666666667),__tsover_mul(n.dot(r.xyz,u),.13333333333333333)),__tsover_mul(n.dot(a.xyz,u),.2)),__tsover_mul(n.dot(i.xyz,u),.26666666666666666)),__tsover_mul(n.dot(l.xyz,u),.3333333333333333)),_=__tsover_add(__tsover_add(__tsover_add(__tsover_add(__tsover_mul(n.dot(s.xyz,p),.06666666666666667),__tsover_mul(n.dot(r.xyz,p),.13333333333333333)),__tsover_mul(n.dot(a.xyz,p),.2)),__tsover_mul(n.dot(i.xyz,p),.26666666666666666)),__tsover_mul(n.dot(l.xyz,p),.3333333333333333)),v=o.vec3f(__tsover_add(__tsover_add(d,__tsover_mul(m,.956)),__tsover_mul(_,.621)),__tsover_sub(__tsover_sub(d,__tsover_mul(m,.272)),__tsover_mul(_,.647)),__tsover_add(__tsover_sub(d,__tsover_mul(m,1.106)),__tsover_mul(_,1.703))),h=n.clamp(v.mul(c),o.vec3f(0,0,0),o.vec3f(1,1,1));return o.vec4f(h.x,h.y,h.z,t.w)}),{v:1,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"},{type:"i",name:"acBeat"}],body:[0,[[13,"sharpY",[6,[7,"std","dot"],[[7,"luma","xyz"],[6,[7,"d","vec3f"],[[5,"0.299"],[5,"0.587"],[5,"0.114"]]]]]],[13,"iAxis",[6,[7,"d","vec3f"],[[5,"0.596"],[4,"-",[5,"0.274"]],[4,"-",[5,"0.322"]]]]],[13,"qAxis",[6,[7,"d","vec3f"],[[5,"0.211"],[4,"-",[5,"0.523"]],[5,"0.312"]]]],[13,"accI",[1,[1,[1,[1,[1,[6,[7,"std","dot"],[[7,"c1","xyz"],"iAxis"]],"*",[5,"0.06666666666666667"]],"+",[1,[6,[7,"std","dot"],[[7,"c2","xyz"],"iAxis"]],"*",[5,"0.13333333333333333"]]],"+",[1,[6,[7,"std","dot"],[[7,"c3","xyz"],"iAxis"]],"*",[5,"0.2"]]],"+",[1,[6,[7,"std","dot"],[[7,"c4","xyz"],"iAxis"]],"*",[5,"0.26666666666666666"]]],"+",[1,[6,[7,"std","dot"],[[7,"c5","xyz"],"iAxis"]],"*",[5,"0.3333333333333333"]]]],[13,"accQ",[1,[1,[1,[1,[1,[6,[7,"std","dot"],[[7,"c1","xyz"],"qAxis"]],"*",[5,"0.06666666666666667"]],"+",[1,[6,[7,"std","dot"],[[7,"c2","xyz"],"qAxis"]],"*",[5,"0.13333333333333333"]]],"+",[1,[6,[7,"std","dot"],[[7,"c3","xyz"],"qAxis"]],"*",[5,"0.2"]]],"+",[1,[6,[7,"std","dot"],[[7,"c4","xyz"],"qAxis"]],"*",[5,"0.26666666666666666"]]],"+",[1,[6,[7,"std","dot"],[[7,"c5","xyz"],"qAxis"]],"*",[5,"0.3333333333333333"]]]],[13,"finalRgb",[6,[7,"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"]]]]]],[13,"clamped",[6,[7,"std","clamp"],[[6,[7,"finalRgb","mul"],["acBeat"]],[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"clamped","x"],[7,"clamped","y"],[7,"clamped","z"],[7,"luma","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),A$={name:"VHS",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Analog VHS tape with intermittent tape damage, chroma bleed, and per-scanline noise",requiresRTT:!0,requiresChild:!0,props:{wobble:{default:1,description:"Overall amount of tape damage \u2014 waves, creases, and head-switching noise. Bursts on and off organically over time.",ui:{type:["range","map"],min:0,max:5,step:.01,label:"Wobble",group:"Effect"}},scanlineNoise:{default:.6,description:"Per-scanline fine chroma/luma jitter. Adds the classic horizontal-streak detail.",ui:{type:["range","map"],min:0,max:1,step:.
24701,label:"Scanline Noise",group:"Effect"}},smear:{default:.2,description:"Horizontal chroma smear (color bleed) amount. Positive trails colour to the right (classic VHS), negative trails it to the left.",ui:{type:["range","map"],min:-2,max:2,step:.01,label:"Smear",group:"Effect"}},speed:{default:1,description:"Animation speed of the tape effects.",ui:{type:"range",min:.1,max:3,step:.1,label:"Speed",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i=T(cZ,"vhsSampleUVs",[s.uv,s.time,e.speed,e.wobble,e.scanlineNoise]),l=i.member("xy"),c=i.member("zw"),d=a.sample(l),u=e.smear.mul(.0075);return T(Re,"unpremultiplyAlpha",[T(uZ,"vhsCompose",[d,a.sample(T(g_,"vhsChromaTapUV",[c,u,le(1)])),a.sample(T(g_,"vhsChromaTapUV",[c,u,le(2)])),a.sample(T(g_,"vhsChromaTapUV",[c,u,le(3)])),a.sample(T(g_,"vhsChromaTapUV",[c,u,le(4)])),a.sample(T(g_,"vhsChromaTapUV",[c,u,le(5)])),T(dZ,"vhsAcBeat",[s.uv,s.time,e.speed,e.wobble])])])}};var pZ=b.fn([o.vec4f,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.x,a=t.y,i=t.z,l=__tsover_div(__tsover_add(__tsover_add(r,a),i),3),c=n.max(r,n.max(a,i)),d=__tsover_mul(__tsover_mul(__tsover_sub(c,l),s),-3),u=o.vec3f(r,a,i),p=n.mix(u,o.vec3f(c,c,c),o.vec3f(d));return o.vec4f(p.x,p.y,p.z,t.w)}),{v:1,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,[7,"std","max"],["r",[6,[7,"std","max"],["g","b"]]]]],[13,"amt",[1,[1,[1,"mx","-","average"],"*","adjustment"],"*",[4,"-",[5,"3"]]]],[13,"rgb",[6,[7,"d","vec3f"],["r","g","b"]]],[13,"vibrant",[6,[7,"std","mix"],["rgb",[6,[7,"d","vec3f"],["mx","mx","mx"]],[6,[7,"d","vec3f"],["amt"]]]]],[10,[6,[7,"d","vec4f"],[[7,"vibrant","x"],[7,"vibrant","y"],[7,"vibrant","z"],[7,"color","w"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),E$={name:"Vibrance",boundingBoxDeclaration:{aspectRatio:null},category:"Adjustments",description:"Selective saturation adjustment protecting skin tones",requiresChild:!0,props:{intensity:{default:0,description:"The intensity of the vibrance effect",ui:{type:["range","map"],min:-2,max:2,step:.1,label:"Intensity",group:"Adjustments"}}},fragment:({uniforms:e,childNode:t})=>t?T(pZ,"vibranceColor",[t,e.intensity]):(console.error("You must pass a child component into the Vibrance shader."),me)};var mZ=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=n.max(__tsover_div(a,r),1);return o.vec2f(__tsover_mul(__tsover_div(r,a),i),i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"videoDims"},{type:"i",name:"vp"}],body:[0,[[13,"videoAspect",[1,[7,"videoDims","x"],"/",[7,"videoDims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"coverScale",[6,[7,"std","max"],[[1,"viewportAspect","/","videoAspect"],[5,"1"]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"videoAspect","/","viewportAspect"],"*","coverScale"],"coverScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),_Z=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=n.min(__tsover_div(a,r),1);return o.vec2f(__tsover_mul(__tsover_div(r,a),i),i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"videoDims"},{type:"i",name:"vp"}],body:[0,[[13,"videoAspect",[1,[7,"videoDims","x"],"/",[7,"videoDims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]]],[13,"containScale",[6,[7,"std","min"],[[1,"viewportAspect","/","videoAspect"],[5,"1"]]]],[10,[6,[7,"d","vec2f"],[[1,[1,"videoAspect","/","viewportAspect"],"*","containScale"],"containScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),fZ=b.fn([],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(()=>{"use gpu";return o.vec2f(1,1)}),{v:1,name:void 0,ast:{params:[],body:[0,[[10,[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),vZ=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=__tsover_div(t.x,t.y),a=__tsover_div(s.x,s.y),i=n.min(__tsover_div(a,r),1),l=n.min(__tsover_div(s.x,t.x),__tsover_div(s.y,t.y)),c=n.min(i,l);return o.vec2f(__tsover_mul(__tsover_div(r,a),c),c)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"videoDims"},{type:"i",name:"vp"}],body:[0,[[13,"videoAspect",[1,[7,"videoDims","x"],"/",[7,"videoDims","y"]]],[13,"viewportAspect",[1,[7,"vp","x"],"/",[7,"vp","y"]
247]],[13,"containScale",[6,[7,"std","min"],[[1,"viewportAspect","/","videoAspect"],[5,"1"]]]],[13,"naturalScale",[6,[7,"std","min"],[[1,[7,"vp","x"],"/",[7,"videoDims","x"]],[1,[7,"vp","y"],"/",[7,"videoDims","y"]]]]],[13,"scaleDownScale",[6,[7,"std","min"],["containScale","naturalScale"]]],[10,[6,[7,"d","vec2f"],[[1,[1,"videoAspect","/","viewportAspect"],"*","scaleDownScale"],"scaleDownScale"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),hZ=b.fn([o.vec2f,o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=t.sub(o.vec2f(.5,.5));return o.vec2f(__tsover_div(r.x,s.x),__tsover_div(r.y,s.y)).add(o.vec2f(.5,.5))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"uvScale"}],body:[0,[[13,"centeredUV",[6,[7,"uv","sub"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"scaledUV",[6,[7,"d","vec2f"],[[1,[7,"centeredUV","x"],"/",[7,"uvScale","x"]],[1,[7,"centeredUV","y"],"/",[7,"uvScale","y"]]]]],[10,[6,[7,"scaledUV","add"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),M$=b.fn([o.vec3f],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.pow(t.add(o.vec3f(.055)).div(o.vec3f(1.055)),o.vec3f(2.4)),r=t.div(o.vec3f(12.92)),a=n.le(t,o.vec3f(.04045));return n.select(s,r,a)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"}],body:[0,[[13,"hi",[6,[7,"std","pow"],[[6,[7,[6,[7,"color","add"],[[6,[7,"d","vec3f"],[[5,"0.055"]]]]],"div"],[[6,[7,"d","vec3f"],[[5,"1.055"]]]]],[6,[7,"d","vec3f"],[[5,"2.4"]]]]]],[13,"lo",[6,[7,"color","div"],[[6,[7,"d","vec3f"],[[5,"12.92"]]]]]],[13,"isLow",[6,[7,"std","le"],["color",[6,[7,"d","vec3f"],[[5,"0.04045"]]]]]],[10,[6,[7,"std","select"],["hi","lo","isLow"]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),yZ=b.fn([o.vec4f,o.vec2f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=M$(o.vec3f(t.x,t.y,t.z)),a=s.x<0||s.x>1||s.y<0||s.y>1,i=n.select(t.w,0,a);return o.vec4f(r.x,r.y,r.z,i)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"}],body:[0,[[13,"linear",[6,"srgbToLinear",[[6,[7,"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,[7,"std","select"],[[7,"color","w"],[5,"0"],"outOfBounds"]]],[10,[6,[7,"d","vec4f"],[[7,"linear","x"],[7,"linear","y"],[7,"linear","z"],"alpha"]]]]],externalNames:["srgbToLinear","d","std"]},externals:()=>({srgbToLinear:M$,d:o,std:n})})&&e.f)({})),gZ={cover:0,contain:1,fill:2,"scale-down":3,none:2},C$={name:"VideoTexture",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Display a video with customizable playback and object-fit modes",acceptsUVContext:!0,props:{url:{default:"https://shaders.com/sample.mp4",description:"Upload a video or provide a URL",ui:{type:"video-upload",label:"Video",group:"Media"}},objectFit:{default:"fill",description:"How the video should be sized within the viewport",transform:e=>({cover:0,contain:1,fill:2,"scale-down":3,none:2})[e]??2,compileTime:!0,ui:{type:"select",options:[{label:"Cover",value:"cover"},{label:"Contain",value:"contain"},{label:"Fill",value:"fill"},{label:"Scale Down",value:"scale-down"}],label:"Object Fit",group:"Sizing"}},loop:{default:!0,description:"Loop the video playback",ui:{type:"checkbox",label:"Loop",group:"Playback"}}},fragment:({ctx:e,propValues:t,uvContext:s,effectiveViewportSize:r,getCpuValue:a,onBeforeRender:i,onCleanup:l,registerExternalTexture:c})=>{let d=null,u="",p=!1,m=!1,_=()=>{let P=a("loop");return P===!0||P===void 0||typeof P=="number"&&P>0},v=async P=>{if(!(!P||P.trim()===""||p||m)){p=!0;try{let C=document.createElement("video");if(C.src=P,C.playsInline=!0,C.crossOrigin="anonymous",C.muted=!0,C.loop=_(),await new Promise(($,U)=>{C.onloadedmetadata=()=>$(),C.onerror=()=>U(new Error("Failed to load video")),setTimeout(()=>U(new Error("Video load timeout")),1e4)}),m){C.src="";return}d&&(d.pause(),d.src="",d=null),d=C,u=P;try{await C.play()}catch($){console.warn("[VideoTexture] Autoplay failed (browser policy):",$)}p=!1}catch(C){console.error("[VideoTexture] Failed to load video:",C),p=!1}}};setTimeout(()=>{let P=a("url")??"";P&&P.trim()!==""&&v(P)},0),i(()=>{let P=a("url")??"";if(P!==u&&!p&&v(P),d){let C=_();d.loop!==C&&(d.loop=C)}}),l(()=>{m=!0,d&&(d.pause(),d.src="",d=null),u=""});let h=c(()=>!d||m||d.readyState<2||d.videoWidth===0?null:d),y=s??e.uv,x=r??e.viewportSize,g=h.dimensions(),w=t.objectFit,f=typeof w=="number"?w:gZ[w]??2,A;f===1?A=T(_Z,"videoScaleContain",[g,x]):f===2?A=T(fZ,"videoScaleFill",[]):f===3?A=T(vZ,"videoScaleScaleDown",[g,x]):A=T(mZ,"videoScaleCover",[g,x]);let E=T(hZ,"videoSampleUV",[y,A]);return T(yZ,"videoAlphaCut",[h.sample(E),E])}};var xZ=b.fn([o.vec4f,o.vec2f,o.f32,o.vec2f,o.vec4f,o.f32,o.f32,o.f32],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d)=>{"use gpu";let u=o.vec2f(__tsover_mul(s.x,r),s.y),p=o.vec2f(__tsover_mul(a.x,r),__tsover_sub(1,a.y)),m=n.length(u.sub(p)
247),_=n.smoothstep(l,__tsover_add(l,c),m),v=o.vec3f(t.x,t.y,t.z),h=o.vec3f(i.x,i.y,i.z),y=n.mix(v,h,o.vec3f(__tsover_mul(_,d)));return o.vec4f(y.x,y.y,y.z,t.w)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"color"},{type:"i",name:"uv"},{type:"i",name:"aspect"},{type:"i",name:"center"},{type:"i",name:"vigColor"},{type:"i",name:"radius"},{type:"i",name:"falloff"},{type:"i",name:"intensity"}],body:[0,[[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"centerPos",[6,[7,"d","vec2f"],[[1,[7,"center","x"],"*","aspect"],[1,[5,"1"],"-",[7,"center","y"]]]]],[13,"dist",[6,[7,"std","length"],[[6,[7,"aspectUV","sub"],["centerPos"]]]]],[13,"vignetteMask",[6,[7,"std","smoothstep"],["radius",[1,"radius","+","falloff"],"dist"]]],[13,"rgb",[6,[7,"d","vec3f"],[[7,"color","x"],[7,"color","y"],[7,"color","z"]]]],[13,"vigRgb",[6,[7,"d","vec3f"],[[7,"vigColor","x"],[7,"vigColor","y"],[7,"vigColor","z"]]]],[13,"result",[6,[7,"std","mix"],["rgb","vigRgb",[6,[7,"d","vec3f"],[[1,"vignetteMask","*","intensity"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"result","x"],[7,"result","y"],[7,"result","z"],[7,"color","w"]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),P$={name:"Vignette",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Darkens or tints the edges of the frame, drawing attention toward the center",requiresChild:!0,props:{color:{default:"#000000",transform:O,description:"Color of the vignette at the edges",ui:{type:"color",label:"Color",group:"Colors"}},center:{default:{x:.5,y:.5},transform:we,description:"Center of the clear area where the vignette begins",ui:{type:"position",label:"Center",group:"Position"}},radius:{default:.5,description:"Distance from center where the vignette begins to fade in",ui:{type:["range","map"],min:0,max:1.5,step:.01,label:"Radius",group:"Effect"}},falloff:{default:.5,description:"Width of the transition zone from clear to full vignette",ui:{type:["range","map"],min:.01,max:1.5,step:.01,label:"Falloff",group:"Effect"}},intensity:{default:1,description:"Strength of the vignette effect",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Intensity",group:"Effect"}}},fragment:({uniforms:e,childNode:t,ctx:s})=>t?T(xZ,"vignetteColor",[t,s.uv,s.aspect,e.center,e.color,e.radius,e.falloff,e.intensity]):(console.error("You must pass a child component into the Vignette shader."),me)};var k$=b.fn([o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=o.vec2f(n.dot(t,o.vec2f(127.1,311.7)),n.dot(t,o.vec2f(269.5,183.3)));return n.fract(n.sin(s).mul(43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"h",[6,[7,"d","vec2f"],[[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"127.1"],[5,"311.7"]]]]],[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"269.5"],[5,"183.3"]]]]]]]],[10,[6,[7,"std","fract"],[[6,[7,[6,[7,"std","sin"],["h"]],"mul"],[[5,"43758.5453"]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),bZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_div(s.x,s.y),u=o.vec2f(__tsover_mul(t.x,d),t.y).mul(r),p=n.floor(u),m=n.fract(u),_=o.f32(10),v=o.f32(10);for(let E=-1;E<=1;E++)for(let P=-1;P<=1;P++){let C=o.vec2f(o.f32(P),o.f32(E)),$=k$(o.vec2f(__tsover_add(__tsover_add(p.x,C.x),i),__tsover_add(__tsover_add(p.y,C.y),i))),U=n.clamp(__tsover_add($.x,__tsover_mul(n.sin(__tsover_add(a,__tsover_mul($.x,6.28))),.15)),.05,.95),k=n.clamp(__tsover_add($.y,__tsover_mul(n.cos(__tsover_add(__tsover_mul(a,.7),__tsover_mul($.y,6.28))),.15)),.05,.95),R=n.length(o.vec2f(__tsover_sub(m.x,__tsover_add(C.x,U)),__tsover_sub(m.y,__tsover_add(C.y,k)))),D=R<_;v=n.select(n.select(v,R,R<v),_,D),_=n.select(_,R,D)}let h=n.max(__tsover_add(_,v),1e-4),y=n.clamp(__tsover_div(__tsover_mul(_,2),h),0,1),x=__tsover_sub(4,__tsover_mul(l,3)),g=n.clamp(n.pow(y,x),0,1),w=__tsover_div(__tsover_mul(c,r),6),f=__tsover_div(__tsover_sub(v,_),h),A=n.smoothstep(0,__tsover_add(w,.001),f);return o.vec2f(g,A)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"animT"},{type:"i",name:"seed"},{type:"i",name:"edgeIntensity"},{type:"i",name:"edgeSoftness"}
vendor: 4,761 bytes, line 247
247],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"scaledUV",[6,[7,[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]],"mul"],["scale"]]],[13,"cell",[6,[7,"std","floor"],["scaledUV"]]],[13,"localUV",[6,[7,"std","fract"],["scaledUV"]]],[12,"d1",[6,[7,"d","f32"],[[5,"10"]]]],[12,"d2",[6,[7,"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,[7,"d","vec2f"],[[6,[7,"d","f32"],["nx"]],[6,[7,"d","f32"],["ny"]]]]],[13,"h",[6,"voronoiHash",[[6,[7,"d","vec2f"],[[1,[1,[7,"cell","x"],"+",[7,"offset","x"]],"+","seed"],[1,[1,[7,"cell","y"],"+",[7,"offset","y"]],"+","seed"]]]]]],[13,"pointX",[6,[7,"std","clamp"],[[1,[7,"h","x"],"+",[1,[6,[7,"std","sin"],[[1,"animT","+",[1,[7,"h","x"],"*",[5,"6.28"]]]]],"*",[5,"0.15"]]],[5,"0.05"],[5,"0.95"]]]],[13,"pointY",[6,[7,"std","clamp"],[[1,[7,"h","y"],"+",[1,[6,[7,"std","cos"],[[1,[1,"animT","*",[5,"0.7"]],"+",[1,[7,"h","y"],"*",[5,"6.28"]]]]],"*",[5,"0.15"]]],[5,"0.05"],[5,"0.95"]]]],[13,"dist",[6,[7,"std","length"],[[6,[7,"d","vec2f"],[[1,[7,"localUV","x"],"-",[1,[7,"offset","x"],"+","pointX"]],[1,[7,"localUV","y"],"-",[1,[7,"offset","y"],"+","pointY"]]]]]]],[13,"isCloser",[1,"dist","<","d1"]],[13,"nd2",[6,[7,"std","select"],[[6,[7,"std","select"],["d2","dist",[1,"dist","<","d2"]]],"d1","isCloser"]]],[2,"d2","=","nd2"],[2,"d1","=",[6,[7,"std","select"],["d1","dist","isCloser"]]]]]]]]],[13,"safeSum",[6,[7,"std","max"],[[1,"d1","+","d2"],[5,"0.0001"]]]],[13,"normalizedDist",[6,[7,"std","clamp"],[[1,[1,"d1","*",[5,"2"]],"/","safeSum"],[5,"0"],[5,"1"]]]],[13,"gradientPower",[1,[5,"4"],"-",[1,"edgeIntensity","*",[5,"3"]]]],[13,"tColor",[6,[7,"std","clamp"],[[6,[7,"std","pow"],["normalizedDist","gradientPower"]],[5,"0"],[5,"1"]]]],[13,"scaledEdgeSoftness",[1,[1,"edgeSoftness","*","scale"],"/",[5,"6"]]],[13,"edgeMetric",[1,[1,"d2","-","d1"],"/","safeSum"]],[13,"edgeMask",[6,[7,"std","smoothstep"],[[5,"0"],[1,"scaledEdgeSoftness","+",[5,"0.001"]],"edgeMetric"]]],[10,[6,[7,"d","vec2f"],["tColor","edgeMask"]]]]],externalNames:["d","std","voronoiHash"]},externals:()=>({d:o,std:n,voronoiHash:k$})})&&e.f)({})),R$={name:"Voronoi",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:O,description:"Color near each cell's center point",ui:{type:"color",label:"Color A (Center)",group:"Colors"}},colorB:{default:"#fc02dd",transform:O,description:"Color at cell boundaries, far from any center point",ui:{type:"color",label:"Color B (Edge)",group:"Colors"}},stops:xs(),colorBorder:{default:"#000000",transform:O,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:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,label:"Color Space",group:"Colors"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=T(bZ,"voronoiField",[r,a,t.scale,i,t.seed,t.edgeIntensity,t.edgeSoftness]),c=l.member("x"),d=l.member("y"),u=s.colorSpace??0,p=s.stopCount??0,m;return p>1?m=js(c,{colorsArray:t.colorsArray,positionsArray:t.positionsArray,convertedColorsArray:t.convertedColorsArray,stopCount:t.stopCount},u):m=T(Ye[u]??Be,"mixColors",[t.colorA,t.colorB,c]),de(Ns(t.colorBorder.member("rgb"),m.member("rgb"),d),m.member("a"))}};var{sdfSpaceUV:wZ,offsetUV:$$}=Zs,{createSvgSdfSampler:TZ,createAnalyticSdfSampler:SZ,driveAnalyticSubProps:AZ,ANALYTIC_SDF_EXTRA_FIELDS:EZ}
247=ft,{createVolumetricFieldComputeNode:MZ,buildVolumetricFieldSampler:CZ,VOLUMETRIC_FIELD_EXTRA_FIELDS:PZ,is3dShapeType:kZ,isVolumetricShapeType:RZ}=ys,x_=.017453292519943295,$Z=JSON.stringify({type:"circleSDF",radius:.35});function UZ(e,t){if(e)return e;if(t&&typeof t=="object")return t.type||"circleSDF";if(typeof t=="string")try{return JSON.parse(t).type||"circleSDF"}catch{return"circleSDF"}return"circleSDF"}var Eh=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=Vt(t),r=__tsover_mul(Vt(t.mul(2.07).add(o.vec2f(4.3,9.1))),.5),a=__tsover_mul(Vt(t.mul(4.13).add(o.vec2f(1.7,8.2))),.25);return __tsover_mul(__tsover_add(__tsover_add(s,r),a),.52)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[13,"n0",[6,[7,"noise","mxNoiseFloat2"],["uv"]]],[13,"n1",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,[6,[7,"uv","mul"],[[5,"2.07"]]],"add"],[[6,[7,"d","vec2f"],[[5,"4.3"],[5,"9.1"]]]]]]],"*",[5,"0.5"]]],[13,"n2",[1,[6,[7,"noise","mxNoiseFloat2"],[[6,[7,[6,[7,"uv","mul"],[[5,"4.13"]]],"add"],[[6,[7,"d","vec2f"],[[5,"1.7"],[5,"8.2"]]]]]]],"*",[5,"0.25"]]],[10,[1,[1,[1,"n0","+","n1"],"+","n2"],"*",[5,"0.52"]]]]],externalNames:["noise","d"]},externals:()=>({noise:mt,d:o})})&&e.f)({})),td=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return __tsover_mul(Vt(t),.52)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"}],body:[0,[[10,[1,[6,[7,"noise","mxNoiseFloat2"],["uv"]],"*",[5,"0.52"]]]]],externalNames:["noise"]},externals:()=>({noise:mt})})&&e.f)({})),Wb=b.fn([o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_sub(__tsover_mul(t,i),__tsover_mul(s,l)),u=__tsover_add(__tsover_mul(t,l),__tsover_mul(s,i)),p=n.clamp(__tsover_add(__tsover_mul(u,.5),.5),0,1),m=o.vec3f(.9,.96,1),_=o.vec3f(.2,.46,.85),v=o.vec3f(.04,.1,.16),h=n.mix(m,_,o.vec3f(n.smoothstep(.5,1,p))),y=n.mix(v,h,o.vec3f(n.smoothstep(.4,.55,p))),x=o.vec2f(__tsover_mul(r,.8),__tsover_add(__tsover_mul(a,.8),.12)),g=n.mix(.5,.13,c),w=n.length(o.vec2f(d,u).sub(x)),f=n.smoothstep(g,__tsover_mul(g,.15),w);return y=y.add(o.vec3f(1,.97,.88).mul(__tsover_mul(f,1.5))),y}),{v:1,name:void 0,ast:{params:[{type:"i",name:"rx"},{type:"i",name:"ry"},{type:"i",name:"lx"},{type:"i",name:"ly"},{type:"i",name:"envC"},{type:"i",name:"envS"},{type:"i",name:"sharp"}],body:[0,[[13,"ex",[1,[1,"rx","*","envC"],"-",[1,"ry","*","envS"]]],[13,"ey",[1,[1,"rx","*","envS"],"+",[1,"ry","*","envC"]]],[13,"up",[6,[7,"std","clamp"],[[1,[1,"ey","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"horizon",[6,[7,"d","vec3f"],[[5,"0.9"],[5,"0.96"],[5,"1"]]]],[13,"zenith",[6,[7,"d","vec3f"],[[5,"0.2"],[5,"0.46"],[5,"0.85"]]]],[13,"below",[6,[7,"d","vec3f"],[[5,"0.04"],[5,"0.1"],[5,"0.16"]]]],[13,"aboveCol",[6,[7,"std","mix"],["horizon","zenith",[6,[7,"d","vec3f"],[[6,[7,"std","smoothstep"],[[5,"0.5"],[5,"1"],"up"]]]]]]],[12,"base",[6,[7,"std","mix"],["below","aboveCol",[6,[7,"d","vec3f"],[[6,[7,"std","smoothstep"],[[5,"0.4"],[5,"0.55"],"up"]]]]]]],[13,"sunCenter",[6,[7,"d","vec2f"],[[1,"lx","*",[5,"0.8"]],[1,[1,"ly","*",[5,"0.8"]],"+",[5,"0.12"]]]]],[13,"sunRad",[6,[7,"std","mix"],[[5,"0.5"],[5,"0.13"],"sharp"]]],[13,"sd",[6,[7,"std","length"],[[6,[7,[6,[7,"d","vec2f"],["ex","ey"]],"sub"],["sunCenter"]]]]],[13,"sun",[6,[7,"std","smoothstep"],["sunRad",[1,"sunRad","*",[5,"0.15"]],"sd"]]],[2,"base","=",[6,[7,"base","add"],[[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"0.97"],[5,"0.88"]]],"mul"],[[1,"sun","*",[5,"1.5"]]]]]]],[10,"base"]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),DZ=b.fn([o.vec4f,o.vec4f,o.vec4f,o.vec2f,o.vec2f,o.vec3f,o.vec4f,o.vec4f,o.vec4f,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m)=>{"use gpu";let _=c.x,v=c.y,h=c.z,y=c.w,x=d.x,g=d.y,w=d.z,f=d.w,A=u.x,E=u.y,P=u.z,C=u.w,$=p.x,U=p.y,k=p.z,R=p.w,D=m.x,M=n.max(__tsover_mul(v,.5),.001),z=__tsover_div(1,i.y),L=t.x,B=__tsover_div(L,_);if(B>__tsover_mul(z,2))return o.vec4f(0,0,0,0);let N=n.cos(__tsover_mul(U,x_)),G=n.sin(__tsover_mul(U,x_)),I=n.cos(__tsover_mul(k,x_)),X=n.sin(__tsover_mul(k,x_)),F=.01,Q=__tsover_div(__tsover_sub(s.x,L),F),ae=__tsover_div(__tsover_sub(r.x,L),F),j=n.clamp(__tsover_div(__tsover_sub(s.w,t.w),F),-5,5),q=n.clamp(__tsover_div(__tsover_sub(r.w,t.w),F),-5,5),te=n.normalize(o.vec3f(j,q,-1)),ne=n.clamp(__tsover_div(__tsover_mul(B,-1),.05),0,1),oe=__tsover_mul(__tsover_sub(1,ne),1.6),pe=n.normalize(o.vec3f(__tsover_mul(Q,oe),__tsover_mul(ae,oe),-1)),_e=n.select(pe,te,D>.5),ge=n.select(__tsover_sub(a.x,.5),t.y,D>.5),Me=n.select(__tsover_sub(a.y,.5),t.z,D>.5),Se=__tsover_mul(h,2.4),Ae=__tsover_mul(R,.2),Pe=o.vec2f(__tsover_mul(__tsover_mul(ge,Se),.8),__tsover_mul(__tsover_mul(Me,Se),1.25)),De=__tsover_mul(y,.9),ke=Pe.mul(.6),Ge=__tsover_mul(n.sin(__tsover_add(__tsover_add(__tsover_mul(ke.x,1.7),__tsover_mul(Ae,.7)),1.7)),n.cos(__tsover_add(__tsover_add(__tsover_mul(ke.y,1.3),__tsover_mul(Ae,.5)),2.3))),Oe=__tsover_mul(n.cos(__tsover_add(__tsover_add(__tsover_mul(ke.x,1.4),__tsover_mul(Ae,.9)),8.7)),n.sin(__tsover_add(__tsover_add(__tsover_mul(ke.y,1.6),__tsover_mul(Ae,.6)),5.
2471))),qe=Pe.add(o.vec2f(Ge,Oe).mul(De)).add(o.vec2f(0,__tsover_mul(Ae,-1))),We=.06,Ve=o.f32(4),Ne=Eh(qe),He=td(qe),vt=n.clamp(__tsover_div(__tsover_sub(td(qe.add(o.vec2f(We,0))),He),We),__tsover_mul(Ve,-1),Ve),_t=n.clamp(__tsover_div(__tsover_sub(td(qe.add(o.vec2f(0,We))),He),We),__tsover_mul(Ve,-1),Ve),Ze=.025,it=qe.mul(3.3).add(o.vec2f(__tsover_mul(Ae,1.7),__tsover_mul(Ae,-1.15))).add(o.vec2f(11.3,4.7)),Tt=td(it),J=n.clamp(__tsover_div(__tsover_sub(td(it.add(o.vec2f(Ze,0))),Tt),Ze),__tsover_mul(Ve,-1),Ve),be=n.clamp(__tsover_div(__tsover_sub(td(it.add(o.vec2f(0,Ze))),Tt),Ze),__tsover_mul(Ve,-1),Ve),ce=__tsover_mul(x,.5),xe=__tsover_mul(x,.22),ye=n.normalize(o.vec3f(__tsover_sub(__tsover_sub(_e.x,__tsover_mul(vt,ce)),__tsover_mul(J,xe)),__tsover_sub(__tsover_sub(_e.y,__tsover_mul(_t,ce)),__tsover_mul(be,xe)),_e.z)),Ee=n.clamp(C,0,1),Le=n.reflect(o.vec3f(0,0,1),ye),ot=Wb(Le.x,Le.y,N,G,I,X,Ee).mul(P),Ke=n.clamp(__tsover_mul(__tsover_mul(B,-1),2),0,1.2),rt=__tsover_mul(n.clamp(__tsover_mul(B,-1),0,.5),2),Mt=n.select(rt,Ke,D>.5),ht=__tsover_mul(Mt,g),St=n.clamp(__tsover_mul(ht,1.3),0,1),zt=l,$t=o.vec3f(__tsover_mul(__tsover_sub(1,zt.x),2.2),__tsover_mul(__tsover_sub(1,zt.y),2.2),__tsover_mul(__tsover_sub(1,zt.z),2.2)),Xe=o.vec3f(n.exp(__tsover_mul(__tsover_mul(ht,$t.x),-1)),n.exp(__tsover_mul(__tsover_mul(ht,$t.y),-1)),n.exp(__tsover_mul(__tsover_mul(ht,$t.z),-1))),Qt=n.clamp(w,0,1),Xt=n.mix(zt,o.vec3f(1,1,1),o.vec3f(Qt)),Ps=n.mix(Xt,zt,o.vec3f(St)).mul(Xe).add(zt.mul(__tsover_mul(St,.18))),$s=n.normalize(o.vec3f(N,G,-.7)),Ks=n.dot(ye,$s),yo=__tsover_add(__tsover_mul(n.pow(n.clamp(__tsover_add(__tsover_mul(Ks,.5),.5),0,1),o.f32(.8)),.5),.5),Gs=__tsover_div(1,1.333),Js=n.refract(o.vec3f(0,0,1),ye,Gs),Ls=Wb(Js.x,Js.y,N,G,I,X,Ee).mul(Xe),Fr=__tsover_mul(n.clamp(f,0,1),__tsover_sub(1,__tsover_mul(St,.8))),Er=n.mix(Ps,Ls.mul(.6).add(Ps.mul(.4)),o.vec3f(Fr)).mul(yo),so=E,an=__tsover_mul(R,3),Tn=o.vec2f(ge,Me).mul(so).add(o.vec2f(__tsover_mul(n.sin(__tsover_mul(an,.15)),.4),__tsover_mul(__tsover_mul(an,.3),-1))),Mr=__tsover_sub(1,n.abs(Eh(Tn))),nn=__tsover_sub(1,n.abs(Eh(Tn.mul(1.9).add(o.vec2f(3.7,__tsover_mul(__tsover_mul(an,.18),-1)))))),Br=n.pow(n.clamp(__tsover_add(__tsover_mul(Mr,.6),__tsover_mul(nn,.4)),0,1),o.f32(3)),lr=__tsover_mul(__tsover_add(__tsover_mul(St,.8),.2),A);Er=Er.mul(__tsover_add(1,__tsover_mul(__tsover_mul(Br,lr),.7))),Er=Er.add(o.vec3f(.55,.82,1).mul(__tsover_mul(__tsover_mul(Br,lr),.45)));let ha=n.clamp(__tsover_mul(ye.z,-1),0,1),Oi=n.clamp(__tsover_add(.04,__tsover_mul(.96,n.pow(__tsover_sub(1,ha),o.f32(5)))),0,1),oo=n.mix(Er,ot,o.vec3f(Oi)),ln=n.normalize($s.add(o.vec3f(0,0,-1))),Ni=n.clamp(n.dot(ye,ln),0,1),ni=__tsover_mul(n.pow(Ni,n.mix(o.f32(40),o.f32(600),Ee)),n.mix(.3,1.3,Ee));oo=oo.add(o.vec3f(1,.98,.92).mul(ni));let Sn=n.clamp(__tsover_add(__tsover_mul(Ne,.5),.5),0,1),An=n.smoothstep(.62,.92,Sn),En=__tsover_sub(1,n.smoothstep(0,.045,__tsover_mul(B,-1))),ra=__tsover_mul(n.clamp(__tsover_add(An,__tsover_mul(En,.7)),0,1),$);oo=n.mix(oo,o.vec3f(1,1,1),o.vec3f(__tsover_mul(ra,.85)));let Mn=n.smoothstep(0,1,n.clamp(__tsover_mul(__tsover_div(__tsover_mul(B,-1),M),32),0,1));return o.vec4f(oo.x,oo.y,oo.z,Mn)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"surf0"},{type:"i",name:"surfX"},{type:"i",name:"surfY"},{type:"i",name:"sdfUV"},{type:"i",name:"viewportSize"},{type:"i",name:"waterColor"},{type:"i",name:"p0"},{type:"i",name:"p1"},{type:"i",name:"p2"},{type:"i",name:"p3"},{type:"i",name:"p4"}],body:[0,[[13,"scl",[7,"p0","x"]],[13,"edgeSoftness",[7,"p0","y"]],[13,"waveScale",[7,"p0","z"]],[13,"swirl",[7,"p0","w"]],[13,"choppiness",[7,"p1","x"]],[13,"depth",[7,"p1","y"]],[13,"shallows",[7,"p1","z"]],[13,"clarity",[7,"p1","w"]],[13,"caustics",[7,"p2","x"]],[13,"causticScale",[7,"p2","y"]],[13,"reflection",[7,"p2","z"]],[13,"sharpness",[7,"p2","w"]],[13,"foam",[7,"p3","x"]],[13,"lightAngle",[7,"p3","y"]],[13,"envRotation",[7,"p3","z"]],[13,"animTime",[7,"p3","w"]],[13,"volumetric",[7,"p4","x"]],[13,"sharpEdge",[6,[7,"std","max"],[[1,"edgeSoftness","*",[5,"0.5"]],[5,"0.001"]]]],[13,"pxH",[1,[5,"1"],"/",[7,"viewportSize","y"]]],[13,"sdfRaw",[7,"surf0","x"]],[13,"sdf",[1,"sdfRaw","/","scl"]],[11,[1,"sdf",">",[1,"pxH","*",[5,"2"]]],[10,[6,[7,"d","vec4f"],[[5,"0"],[5,"0"],[5,"0"],[5,"0"]]]]],[13,"lx",[6,[7,"std","cos"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"ly",[6,[7,"std","sin"],[[1,"lightAngle","*","DEG_TO_RAD"]]]],[13,"envC",[6,[7,"std","cos"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"envS",[6,[7,"std","sin"],[[1,"envRotation","*","DEG_TO_RAD"]]]],[13,"EPS",[5,"0.01"]],[13,"gradX",[1,[1,[7,"surfX","x"],"-","sdfRaw"],"/","EPS"]],[13,"gradY",[1,[1,[7,"surfY","x"],"-","sdfRaw"],"/","EPS"]],[13,"ddx",[6,[7,"std","clamp"],[[1,[1,[7,"surfX","w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"ddy",[6,[7,"std","clamp"],[[1,[1,[7,"surfY","
247w"],"-",[7,"surf0","w"]],"/","EPS"],[4,"-",[5,"5"]],[5,"5"]]]],[13,"nVol",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["ddx","ddy",[4,"-",[5,"1"]]]]]]],[13,"rimT",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/",[5,"0.05"]],[5,"0"],[5,"1"]]]],[13,"rimBevel",[1,[1,[5,"1"],"-","rimT"],"*",[5,"1.6"]]],[13,"nFlat",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,"gradX","*","rimBevel"],[1,"gradY","*","rimBevel"],[4,"-",[5,"1"]]]]]]],[13,"nGeo",[6,[7,"std","select"],["nFlat","nVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"fx",[6,[7,"std","select"],[[1,[7,"sdfUV","x"],"-",[5,"0.5"]],[7,"surf0","y"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"fy",[6,[7,"std","select"],[[1,[7,"sdfUV","y"],"-",[5,"0.5"]],[7,"surf0","z"],[1,"volumetric",">",[5,"0.5"]]]]],[13,"freq",[1,"waveScale","*",[5,"2.4"]]],[13,"flowT",[1,"animTime","*",[5,"0.2"]]],[13,"q",[6,[7,"d","vec2f"],[[1,[1,"fx","*","freq"],"*",[5,"0.8"]],[1,[1,"fy","*","freq"],"*",[5,"1.25"]]]]],[13,"wAmt",[1,"swirl","*",[5,"0.9"]]],[13,"warpInput",[6,[7,"q","mul"],[[5,"0.6"]]]],[13,"wx",[1,[6,[7,"std","sin"],[[1,[1,[1,[7,"warpInput","x"],"*",[5,"1.7"]],"+",[1,"flowT","*",[5,"0.7"]]],"+",[5,"1.7"]]]],"*",[6,[7,"std","cos"],[[1,[1,[1,[7,"warpInput","y"],"*",[5,"1.3"]],"+",[1,"flowT","*",[5,"0.5"]]],"+",[5,"2.3"]]]]]],[13,"wy",[1,[6,[7,"std","cos"],[[1,[1,[1,[7,"warpInput","x"],"*",[5,"1.4"]],"+",[1,"flowT","*",[5,"0.9"]]],"+",[5,"8.7"]]]],"*",[6,[7,"std","sin"],[[1,[1,[1,[7,"warpInput","y"],"*",[5,"1.6"]],"+",[1,"flowT","*",[5,"0.6"]]],"+",[5,"5.1"]]]]]],[13,"qw",[6,[7,[6,[7,"q","add"],[[6,[7,[6,[7,"d","vec2f"],["wx","wy"]],"mul"],["wAmt"]]]],"add"],[[6,[7,"d","vec2f"],[[5,"0"],[1,"flowT","*",[4,"-",[5,"1"]]]]]]]],[13,"re",[5,"0.06"]],[13,"gMax",[6,[7,"d","f32"],[[5,"4"]]]],[13,"h0",[6,"waterFbm",["qw"]]],[13,"h0n1",[6,"waterNoise1",["qw"]]],[13,"hx",[6,[7,"std","clamp"],[[1,[1,[6,"waterNoise1",[[6,[7,"qw","add"],[[6,[7,"d","vec2f"],["re",[5,"0"]]]]]]],"-","h0n1"],"/","re"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]],[13,"hy",[6,[7,"std","clamp"],[[1,[1,[6,"waterNoise1",[[6,[7,"qw","add"],[[6,[7,"d","vec2f"],[[5,"0"],"re"]]]]]],"-","h0n1"],"/","re"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]],[13,"fineRe",[5,"0.025"]],[13,"qf",[6,[7,[6,[7,[6,[7,"qw","mul"],[[5,"3.3"]]],"add"],[[6,[7,"d","vec2f"],[[1,"flowT","*",[5,"1.7"]],[1,"flowT","*",[4,"-",[5,"1.15"]]]]]]],"add"],[[6,[7,"d","vec2f"],[[5,"11.3"],[5,"4.7"]]]]]],[13,"f0n1",[6,"waterNoise1",["qf"]]],[13,"fxg",[6,[7,"std","clamp"],[[1,[1,[6,"waterNoise1",[[6,[7,"qf","add"],[[6,[7,"d","vec2f"],["fineRe",[5,"0"]]]]]]],"-","f0n1"],"/","fineRe"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]],[13,"fyg",[6,[7,"std","clamp"],[[1,[1,[6,"waterNoise1",[[6,[7,"qf","add"],[[6,[7,"d","vec2f"],[[5,"0"],"fineRe"]]]]]],"-","f0n1"],"/","fineRe"],[1,"gMax","*",[4,"-",[5,"1"]]],"gMax"]]],[13,"relief",[1,"choppiness","*",[5,"0.5"]]],[13,"reliefFine",[1,"choppiness","*",[5,"0.22"]]],[13,"n",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],[[1,[1,[7,"nGeo","x"],"-",[1,"hx","*","relief"]],"-",[1,"fxg","*","reliefFine"]],[1,[1,[7,"nGeo","y"],"-",[1,"hy","*","relief"]],"-",[1,"fyg","*","reliefFine"]],[7,"nGeo","z"]]]]]],[13,"sharp",[6,[7,"std","clamp"],["sharpness",[5,"0"],[5,"1"]]]],[13,"R",[6,[7,"std","reflect"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]],"n"]]],[13,"reflCol",[6,[7,[6,"waterSky",[[7,"R","x"],[7,"R","y"],"lx","ly","envC","envS","sharp"]],"mul"],["reflection"]]],[13,"thickVol",[6,[7,"std","clamp"],[[1,[1,"sdf","*",[4,"-",[5,"1"]]],"*",[5,"2"]],[5,"0"],[5,"1.2"]]]],[13,"thickFlat",[1,[6,[7,"std","clamp"],[[1,"sdf","*",[4,"-",[5,"1"]]],[5,"0"],[5,"0.5"]]],"*",[5,"2"]]],[13,"thicknessRaw",[6,[7,"std","select"],["thickFlat","thickVol",[1,"volumetric",">",[5,"0.5"]]]]],[13,"thickness",[1,"thicknessRaw","*","depth"]],[13,"depthT",[6,[7,"std","clamp"],[[1,"thickness","*",[5,"1.3"]],[5,"0"],[5,"1"]]]],[13,"wc","waterColor"],[13,"absorb",[6,[7,"d","vec3f"],[[1,[1,[5,"1"],"-",[7,"wc","x"]],"*",[5,"2.2"]],[1,[1,[5,"1"],"-",[7,"wc","y"]],"*",[5,"2.2"]],[1,[1,[5,"1"],"-",[7,"wc","z"]],"*",[5,"2.2"]]]]],[13,"transmit",[6,[7,"d","vec3f"],[[6,[7,"std","exp"],[[1,[1,"thickness","*",[7,"absorb","x"]],"*",[4,"-",[5,"1"]]]]],[6,[7,"std","exp"],[[1,[1,"thickness","*",[7,"absorb","y"]],"*",[4,"-",[5,"1"]]]]],[6,[7,"std","exp"],[[1,[1,"thickness","*",[7,"absorb","z"]],"*",[4,"-",[5,"1"]]]]]]]],[13,"shallowsC",[6,[7,"std","clamp"],["shallows",[5,"0"],[5,"1"]]]],[13,"shallowCol",[6,[7,"std","mix"],["wc",[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],[6,[7,"d","vec3f"],["shallowsC"]]]]],[13,"bodyTint",[6,[7,[6,[7,[6,[7,"std","mix"],["shallowCol","wc",[6,[7,"d","vec3f"],["depthT"]]]],"mul"],["transmit"]],"add"],[[6,[7,"wc","mul"],[[1,"depthT","*",[5,"0.18"]]]]]]],[13,"L",[6,[7,"std","normalize"],[[6,[7,"d","vec3f"],["lx","ly",[4,"-",[5,"0.7"]]]]]]],[13,"ndl",[6,[7,"std","dot"],["n","L"]]],[13,"diffuse",[1,[1,[6,[7,"std","pow"],[[6,[7,"std","clamp"],[[1,[1,"ndl","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]],[6,[7,"d","f32"],[[5,"0.8"]]]]],"*",[5,"0.5"]],"+",[5,"0.5"]]],[13,"eta",[1,[5,"1"],"/",[5,"1.333"]]],[13,"tDir",[6,[7,"std","refract"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[5,"1"]]],"n","eta"]]],[13,"transSky",[6,[7,[6,"waterSky",[[7,"tDir","x"],[7,"tDir","y"],"lx","ly","envC","envS","sharp"]],"mul"],["transmit"]]],[13,"clarityT",[1,[6,[7,"std","clamp"],["clarity",[5,"0"],[5,"1"]]],"*",[1,[5,"1"],"-",[1,"depthT","*",[5,"0.8"]]]]],[12,"body",[6,[7,[6,[7,"std","mix"],["bodyTint",[6,[7,[6,[7,"transSky","mul"],[[5,"0.6"]]],"add"],[[6,[7,"bodyTint","mul"],[[5,"0.4"]]]]],[6,[7,"d","vec3f"],["clarityT"]]]],"mul"],["diffuse"]]],[13,"causFreq","causticScale"],[13,"causT",[1,"animTime","*",[5,"3"]]],[13,"causP",[6,[7,[6,[7,[6,[7,"d","vec2f"],["fx","fy"]
vendor: 4,112 bytes, line 247
247],"mul"],["causFreq"]],"add"],[[6,[7,"d","vec2f"],[[1,[6,[7,"std","sin"],[[1,"causT","*",[5,"0.15"]]]],"*",[5,"0.4"]],[1,[1,"causT","*",[5,"0.3"]],"*",[4,"-",[5,"1"]]]]]]]],[13,"c1",[1,[5,"1"],"-",[6,[7,"std","abs"],[[6,"waterFbm",["causP"]]]]]],[13,"c2",[1,[5,"1"],"-",[6,[7,"std","abs"],[[6,"waterFbm",[[6,[7,[6,[7,"causP","mul"],[[5,"1.9"]]],"add"],[[6,[7,"d","vec2f"],[[5,"3.7"],[1,[1,"causT","*",[5,"0.18"]],"*",[4,"-",[5,"1"]]]]]]]]]]]]],[13,"causV",[6,[7,"std","pow"],[[6,[7,"std","clamp"],[[1,[1,"c1","*",[5,"0.6"]],"+",[1,"c2","*",[5,"0.4"]]],[5,"0"],[5,"1"]]],[6,[7,"d","f32"],[[5,"3"]]]]]],[13,"causMask",[1,[1,[1,"depthT","*",[5,"0.8"]],"+",[5,"0.2"]],"*","caustics"]],[2,"body","=",[6,[7,"body","mul"],[[1,[5,"1"],"+",[1,[1,"causV","*","causMask"],"*",[5,"0.7"]]]]]],[2,"body","=",[6,[7,"body","add"],[[6,[7,[6,[7,"d","vec3f"],[[5,"0.55"],[5,"0.82"],[5,"1"]]],"mul"],[[1,[1,"causV","*","causMask"],"*",[5,"0.45"]]]]]]],[13,"cosView",[6,[7,"std","clamp"],[[1,[7,"n","z"],"*",[4,"-",[5,"1"]]],[5,"0"],[5,"1"]]]],[13,"fresMix",[6,[7,"std","clamp"],[[1,[5,"0.04"],"+",[1,[5,"0.96"],"*",[6,[7,"std","pow"],[[1,[5,"1"],"-","cosView"],[6,[7,"d","f32"],[[5,"5"]]]]]]],[5,"0"],[5,"1"]]]],[12,"surface",[6,[7,"std","mix"],["body","reflCol",[6,[7,"d","vec3f"],["fresMix"]]]]],[13,"H",[6,[7,"std","normalize"],[[6,[7,"L","add"],[[6,[7,"d","vec3f"],[[5,"0"],[5,"0"],[4,"-",[5,"1"]]]]]]]]],[13,"ndh",[6,[7,"std","clamp"],[[6,[7,"std","dot"],["n","H"]],[5,"0"],[5,"1"]]]],[13,"spec",[1,[6,[7,"std","pow"],["ndh",[6,[7,"std","mix"],[[6,[7,"d","f32"],[[5,"40"]]],[6,[7,"d","f32"],[[5,"600"]]],"sharp"]]]],"*",[6,[7,"std","mix"],[[5,"0.3"],[5,"1.3"],"sharp"]]]],[2,"surface","=",[6,[7,"surface","add"],[[6,[7,[6,[7,"d","vec3f"],[[5,"1"],[5,"0.98"],[5,"0.92"]]],"mul"],["spec"]]]]],[13,"crestH",[6,[7,"std","clamp"],[[1,[1,"h0","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]],[13,"crest",[6,[7,"std","smoothstep"],[[5,"0.62"],[5,"0.92"],"crestH"]]],[13,"shore",[1,[5,"1"],"-",[6,[7,"std","smoothstep"],[[5,"0"],[5,"0.045"],[1,"sdf","*",[4,"-",[5,"1"]]]]]]],[13,"foamMask",[1,[6,[7,"std","clamp"],[[1,"crest","+",[1,"shore","*",[5,"0.7"]]],[5,"0"],[5,"1"]]],"*","foam"]],[2,"surface","=",[6,[7,"std","mix"],["surface",[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],[6,[7,"d","vec3f"],[[1,"foamMask","*",[5,"0.85"]]]]]]],[13,"transition",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],[6,[7,"std","clamp"],[[1,[1,[1,"sdf","*",[4,"-",[5,"1"]]],"/","sharpEdge"],"*",[5,"32"]],[5,"0"],[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],[[7,"surface","x"],[7,"surface","y"],[7,"surface","z"],"transition"]]]]],externalNames:["std","d","DEG_TO_RAD","waterFbm","waterNoise1","waterSky"]},externals:()=>({std:n,d:o,DEG_TO_RAD:x_,waterFbm:Eh,waterNoise1:td,waterSky:Wb})})&&e.f)({})),U$={name:"Water",boundingBoxDeclaration:gs,category:"Shape Effects",description:"Translucent water \u2014 a refractive, light-absorbing body that deepens to its colour 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"},extraFields:{...PZ,...EZ},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:we,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:O,description:"The colour 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:.
24701,label:"Clarity",group:"Water"}},depth:{default:5,description:"How quickly the water darkens and saturates toward its colour 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 colour",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:$Z,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"}},compute:e=>{let t=MZ(e,()=>e.getCpuValue("shape"),"raw");return t?{outputs:t.outputs,getComputeNodes:s=>t.getComputeNodes(s)}:null},fragment:e=>{let{computeOutputs:t,uniforms:s,propValues:r,ctx:a,getCpuValue:i}=e,l,c,d=!1,u=t?.volumetricFieldTexture;if(u){let E=CZ(u,{originX:s._vfOriginX,originY:s._vfOriginY,spanX:s._vfSpanX,spanY:s._vfSpanY,activeResF:s._vfActiveRes,rBound:s._vfRBound});l=E.volumetricFieldSampler,c=E.volumetricFieldSamplerFast,d=!0}else{let E=r.shapeSdfUrl||"",P=r.shapeType||"";if(E)l=TZ(e,E),c=l,d=RZ(P);else{let C=UZ(P,i("shape"));l=SZ(C,AZ(e,()=>i("shape")),"raw"),c=l,d=kZ(C)}}let p=T(wZ,"sdfSpaceUV",[s.center,s.scale,s.rotation,a.uv,a.aspect]),m=l(p),_=c(T($$,"offsetUV",[p,le(.01),le(0)])),v=c(T($$,"offsetUV",[p,le(0),le(.01)])),h=Fe(e),y=le(d?1:0),x=de(s.scale,s.edgeSoftness,s.waveScale,s.swirl),g=de(s.choppiness,s.depth,s.shallows,s.clarity),w=de(s.caustics,s.causticScale,s.reflection,s.sharpness),f=de(s.foam,s.lightAngle,s.envRotation,h),A=de(y,le(0),le(0),le(0));return T(DZ,"waterComposite",[m,_,v,p,a.viewportSize,s.waterColor.member("rgb"),x,g,w,f,A])}};var b_=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";return n.fract(__tsover_mul(n.sin(n.dot(t,o.vec2f(12.9898,78.233))),43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[10,[6,[7,"std","fract"],[[1,[6,[7,"std","sin"],[[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"12.9898"],[5,"78.233"]]]]]]],"*",[5,"43758.5453"]]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),w_=b.fn([o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=n.floor(t),r=n.fract(t),a=r.mul(r).mul(o.vec2f(3,3).sub(r.mul(2))),i=b_(s),l=b_(s.add(o.vec2f(1,0))),c=b_(s.add(o.vec2f(0,1))),d=b_(s.add(o.vec2f(1,1)));
247return n.mix(n.mix(i,l,a.x),n.mix(c,d,a.x),a.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"i",[6,[7,"std","floor"],["p"]]],[13,"f",[6,[7,"std","fract"],["p"]]],[13,"u",[6,[7,[6,[7,"f","mul"],["f"]],"mul"],[[6,[7,[6,[7,"d","vec2f"],[[5,"3"],[5,"3"]]],"sub"],[[6,[7,"f","mul"],[[5,"2"]]]]]]]],[13,"a",[6,"hash21",["i"]]],[13,"b",[6,"hash21",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"0"]]]]]]]],[13,"c",[6,"hash21",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"0"],[5,"1"]]]]]]]],[13,"dd",[6,"hash21",[[6,[7,"i","add"],[[6,[7,"d","vec2f"],[[5,"1"],[5,"1"]]]]]]]],[10,[6,[7,"std","mix"],[[6,[7,"std","mix"],["a","b",[7,"u","x"]]],[6,[7,"std","mix"],["c","dd",[7,"u","x"]]],[7,"u","y"]]]]]],externalNames:["std","d","hash21"]},externals:()=>({std:n,d:o,hash21:b_})})&&e.f)({})),zZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";let i=__tsover_mul(a,.03),l=o.vec2f(w_(t.mul(5).add(o.vec2f(i,i))),w_(t.mul(5).add(o.vec2f(31.4,31.4)).add(o.vec2f(i,i)))).sub(o.vec2f(.5,.5)),c=o.vec2f(__tsover_div(1,s.x),__tsover_div(1,s.y));return t.add(l.mul(r).mul(c).mul(8))}),{v:1,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,[7,"d","vec2f"],[[6,"vnoise",[[6,[7,[6,[7,"uv","mul"],[[5,"5"]]],"add"],[[6,[7,"d","vec2f"],["t","t"]]]]]],[6,"vnoise",[[6,[7,[6,[7,[6,[7,"uv","mul"],[[5,"5"]]],"add"],[[6,[7,"d","vec2f"],[[5,"31.4"],[5,"31.4"]]]]],"add"],[[6,[7,"d","vec2f"],["t","t"]]]]]]]],"sub"],[[6,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"texel",[6,[7,"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"]]]]]]]],externalNames:["d","vnoise"]},externals:()=>({d:o,vnoise:w_})})&&e.f)({})),IZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a)=>{"use gpu";return o.vec2f(__tsover_add(t.x,__tsover_div(r,s.x)),__tsover_add(t.y,__tsover_div(a,s.y)))}),{v:1,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,[7,"d","vec2f"],[[1,[7,"uvBase","x"],"+",[1,"ox","/",[7,"viewport","x"]]],[1,[7,"uvBase","y"],"+",[1,"oy","/",[7,"viewport","y"]]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),LZ=b.fn([o.vec2f,o.vec2f],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";return w_(t.mul(s).mul(.5))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"}],body:[0,[[10,[6,"vnoise",[[6,[7,[6,[7,"uv","mul"],["viewport"]],"mul"],[[5,"0.5"]]]]]]]],externalNames:["vnoise"]},externals:()=>({vnoise:w_})})&&e.f)({})),FZ=b.fn([o.vec3f,o.vec3f,o.vec3f,o.vec3f,o.vec3f,o.vec3f,o.vec3f,o.vec3f,o.f32,o.vec4f,o.vec4f,o.f32,o.f32,o.f32],o.vec3f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_,v,h)=>{"use gpu";let y=t.mul(u),x=s.mul(u),g=r.mul(u),w=a.mul(u),f=i.mul(u).sub(y.mul(y)),A=l.mul(u).sub(x.mul(x)),E=c.mul(u).sub(g.mul(g)),P=d.mul(u).sub(w.mul(w)),C=__tsover_add(__tsover_add(f.x,f.y),f.z),$=__tsover_add(__tsover_add(A.x,A.y),A.z),U=__tsover_add(__tsover_add(E.x,E.y),E.z),k=__tsover_add(__tsover_add(P.x,P.y),P.z),R=o.vec3f(y.x,y.y,y.z),D=C;R=n.select(R,x,$<D),D=n.min(D,$),R=n.select(R,g,U<D),D=n.min(D,U),R=n.select(R,w,k<D),D=n.min(D,k);let M=n.mix(1,h,_),z=o.vec3f(m.x,m.y,m.z);R=n.mix(R.mul(M),R.mul(z),o.vec3f(__tsover_mul(_,.4)));let L=o.vec3f(p.x,p.y,p.z);
247return n.mix(L,R,o.vec3f(v))}),{v:1,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,"var0",[6,[7,[6,[7,"sq0","mul"],["invN"]],"sub"],[[6,[7,"mean0","mul"],["mean0"]]]]],[13,"var1",[6,[7,[6,[7,"sq1","mul"],["invN"]],"sub"],[[6,[7,"mean1","mul"],["mean1"]]]]],[13,"var2",[6,[7,[6,[7,"sq2","mul"],["invN"]],"sub"],[[6,[7,"mean2","mul"],["mean2"]]]]],[13,"var3",[6,[7,[6,[7,"sq3","mul"],["invN"]],"sub"],[[6,[7,"mean3","mul"],["mean3"]]]]],[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,"result",[6,[7,"d","vec3f"],[[7,"mean0","x"],[7,"mean0","y"],[7,"mean0","z"]]]],[12,"best","sigma0"],[2,"result","=",[6,[7,"std","select"],["result","mean1",[1,"sigma1","<","best"]]]],[2,"best","=",[6,[7,"std","min"],["best","sigma1"]]],[2,"result","=",[6,[7,"std","select"],["result","mean2",[1,"sigma2","<","best"]]]],[2,"best","=",[6,[7,"std","min"],["best","sigma2"]]],[2,"result","=",[6,[7,"std","select"],["result","mean3",[1,"sigma3","<","best"]]]],[2,"best","=",[6,[7,"std","min"],["best","sigma3"]]],[13,"paperMul",[6,[7,"std","mix"],[[5,"1"],"grain","paper"]]],[13,"paperTint",[6,[7,"d","vec3f"],[[7,"paperColor","x"],[7,"paperColor","y"],[7,"paperColor","z"]]]],[2,"result","=",[6,[7,"std","mix"],[[6,[7,"result","mul"],["paperMul"]],[6,[7,"result","mul"],["paperTint"]],[6,[7,"d","vec3f"],[[1,"paper","*",[5,"0.4"]]]]]]],[13,"origRgb",[6,[7,"d","vec3f"],[[7,"originalBleed","x"],[7,"originalBleed","y"],[7,"originalBleed","z"]]]],[13,"finalRGB",[6,[7,"std","mix"],["origRgb","result",[6,[7,"d","vec3f"],["strength"]]]]],[10,"finalRGB"]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),D$={name:"Watercolor",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Painterly watercolor look \u2014 Kuwahara flattening, pigment edge darkening, paper grain and bleeding",requiresRTT:!0,requiresChild:!0,props:{radius:{default:3,compileTime:!0,description:"Brush size \u2014 radius of the painterly flattening",ui:{type:"range",min:1,max:8,step:1,label:"Brush",group:"Effect",hidden:!0}},bleed:{default:1,description:"Amount the pigment bleeds and wobbles past hard edges",ui:{type:["range","map"],min:0,max:3,step:.01,label:"Bleed",group:"Effect"}},strength:{default:1,description:"Blend between the original image (0) and the full watercolor effect (1)",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Strength",group:"Effect"}},paper:{default:.35,description:"Strength of the paper grain the pigment settles into",ui:{type:["range","map"],min:0,max:1,step:.01,label:"Paper",group:"Effect"}},paperColor:{default:"#fbf7ec",transform:O,description:"Tint of the paper grain",ui:{type:"color",label:"Paper Color",group:"Colors"}}},fragment:({uniforms:e,childNode:t,ctx:s,propValues:r,convertToTexture:a})=>{if(!t)return me;let i=a(t),l=s.viewportSize,c=Math.max(1,Math.min(8,Math.round(r.radius??4))),d=1/((c+1)*(c+1)),u=T(zZ,"watercolorUvBase",[s.uv,l,e.bleed,s.time]),p=w=>T(Re,"unpremultiplyAlpha",[i.sample(w)]).member("rgb"),m=(w,f)=>{let A=rr("vec3f(0.0, 0.0, 0.0)"),E=rr("vec3f(0.0, 0.0, 0.0)");for(let P=0;P<=c;P++)for(let C=0;C<=c;C++){let $=p(T(IZ,"watercolorTapUV",[u,l,le(C*w),le(P*f)]));A=A.add($),E=E.add($.mul($))}return{sum:A,sq:E}},_=m(-1,-1),v=m(1,-1),h=m(-1,1),y=m(1,1),x=T(LZ,"watercolorGrain",[s.uv,l]),g=T(Re,"unpremultiplyAlpha",[i.sample(u)]);return de(T(FZ,"watercolorCompose",[_.sum,v.sum,h.sum,y.sum,_.sq,v.sq,h.sq,y.sq,le(d),g,e.paperColor,e.paper,e.strength,x]),g.member("a"))}};var Mh=Math.PI/180,Jl=Math.PI*2,ri=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=t.sub(o.vec2f(.5,.5)),c=o.vec2f(__tsover_mul(l.x,s),l.y),d=__tsover_mul(r,Mh),u=n.cos(d),p=n.sin(d),m=__tsover_add(__tsover_mul(c.x,p),__tsover_mul(c.y,u));return __tsover_add(__tsover_mul(__tsover_mul(__tsover_add(m,.5),a),Jl),i)}),{v:1,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,[7,"d","vec2f"],[[5,"0.5"],[5,"0.5"]]]]]],[13,"aspectCorrectedUV",[6,[7,"d","vec2f"],[[1,[7,"centeredUV","x"],"*","aspect"],[7,"centeredUV","y"]]]],[13,"angleRad",[1,"angle","*","DEG_TO_RAD"]],[13,"cosA",[6,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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"]]]],externalNames:["d","DEG_TO_RAD","std","TAU"]},externals:()=>({d:o,DEG_TO_RAD:Mh,std:n,TAU:Jl})})&&e.f)({})),ai=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=__tsover_mul(r,Mh),c=n.cos(l),d=n.sin(l),u=__tsover_mul(__tsover_mul(i,a),.5),p=__tsover_div(__tsover_mul(u,c),s),m=__tsover_mul(u,d);return o.vec2f(__tsover_add(t.x,p),__tsover_add(t.y,m))}),{v:1,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,[7,"std","cos"],["angleRad"]]],[13,"sinA",[6,[7,"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,[7,"d","vec2f"],[[1,[7,"uv","x"],"+","displacementX"],[1,[7,"uv","y"],"+","displacementY"]]]]]],externalNames:["DEG_TO_RAD","std","d"]},externals:()=>({DEG_TO_RAD:Mh,std:n,d:o})})&&e.f)({})),BZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=ri(t,s,r,a,l);return ai(t,s,r,i,n.sin(c))}),{v:1,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,"phase",[6,"wavePhase",["uv","aspect","angle","frequency","t"]]],[13,"wave",[6,[7,"std","sin"],["ph
247ase"]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]],externalNames:["wavePhase","std","waveApply"]},externals:()=>({wavePhase:ri,std:n,waveApply:ai})})&&e.f)({})),VZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=ri(t,s,r,a,l),d=n.fract(__tsover_div(c,Jl));return ai(t,s,r,i,__tsover_sub(__tsover_mul(n.abs(__tsover_sub(__tsover_mul(d,2),1)),2),1))}),{v:1,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,"phase",[6,"wavePhase",["uv","aspect","angle","frequency","t"]]],[13,"normalizedPhase",[6,[7,"std","fract"],[[1,"phase","/","TAU"]]]],[13,"wave",[1,[1,[6,[7,"std","abs"],[[1,[1,"normalizedPhase","*",[5,"2"]],"-",[5,"1"]]]],"*",[5,"2"]],"-",[5,"1"]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]],externalNames:["wavePhase","std","TAU","waveApply"]},externals:()=>({wavePhase:ri,std:n,TAU:Jl,waveApply:ai})})&&e.f)({})),OZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=ri(t,s,r,a,l),d=n.fract(__tsover_div(c,Jl));return ai(t,s,r,i,__tsover_sub(__tsover_mul(n.step(.5,d),2),1))}),{v:1,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,"phase",[6,"wavePhase",["uv","aspect","angle","frequency","t"]]],[13,"normalizedPhase",[6,[7,"std","fract"],[[1,"phase","/","TAU"]]]],[13,"wave",[1,[1,[6,[7,"std","step"],[[5,"0.5"],"normalizedPhase"]],"*",[5,"2"]],"-",[5,"1"]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]],externalNames:["wavePhase","std","TAU","waveApply"]},externals:()=>({wavePhase:ri,std:n,TAU:Jl,waveApply:ai})})&&e.f)({})),NZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=ri(t,s,r,a,l),d=n.fract(__tsover_div(c,Jl));return ai(t,s,r,i,__tsover_sub(__tsover_mul(d,2),1))}),{v:1,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,"phase",[6,"wavePhase",["uv","aspect","angle","frequency","t"]]],[13,"normalizedPhase",[6,[7,"std","fract"],[[1,"phase","/","TAU"]]]],[13,"wave",[1,[1,"normalizedPhase","*",[5,"2"]],"-",[5,"1"]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]],externalNames:["wavePhase","std","TAU","waveApply"]},externals:()=>({wavePhase:ri,std:n,TAU:Jl,waveApply:ai})})&&e.f)({})),YZ=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=ri(t,s,r,a,l);return ai(t,s,r,i,n.abs(n.sin(c)))}),{v:1,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,"phase",[6,"wavePhase",["uv","aspect","angle","frequency","t"]]],[13,"wave",[6,[7,"std","abs"],[[6,[7,"std","sin"],["phase"]]]]],[10,[6,"waveApply",["uv","aspect","angle","strength","wave"]]]]],externalNames:["wavePhase","std","waveApply"]},externals:()=>({wavePhase:ri,std:n,waveApply:ai})})&&e.f)({})),GZ={sine:0,triangle:1,square:2,sawtooth:3,bounce:4};function z$(e){return typeof e=="number"?e:GZ[e]??0}function I$(e){switch(e){case 1:return{fn:VZ,hint:"waveDistortTriangle"};case 2:return{fn:OZ,hint:"waveDistortSquare"};case 3:return{fn:NZ,hint:"waveDistortSawtooth"};case 4:return{fn:YZ,hint:"waveDistortBounce"};default:return{fn:BZ,hint:"waveDistortSine"}}}var L$={name:"WaveDistortion",category:"Distortions",description:"Wave-based distortion with multiple waveform types",requiresRTT:!0,requiresChild:!0,boundingBoxDeclaration:{aspectRatio:null},animatedTime:{speed:"speed"},props:{strength:{default:.3,description:"Distortion intensity",ui:{type:["range","map"],min:0,max:1,step:.
24701,label:"Strength",group:"Effect"}},frequency:{default:1,description:"Number of bends/waves",ui:{type:["range","map"],min:.1,max:10,step:.1,label:"Frequency",group:"Effect"}},speed:{default:1,description:"Animation speed",ui:{type:"range",min:0,max:5,step:.1,label:"Speed",group:"Animation"}},angle:{default:0,description:"Direction of wave distortion in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Angle",group:"Effect"}},waveType:{default:"sine",description:"Shape of the distortion wave",compileTime:!0,transform:e=>({sine:0,triangle:1,square:2,sawtooth:3,bounce:4})[e]??0,ui:{type:"select",options:[{label:"Sine",value:"sine"},{label:"Triangle",value:"triangle"},{label:"Square",value:"square"},{label:"Sawtooth",value:"sawtooth"},{label:"Bounce",value:"bounce"}],label:"Wave Type",group:"Effect"}},edges:{default:"stretch",description:"How to handle edges when distortion pushes content out of bounds",transform:Ot,compileTime:!0,ui:{type:"select",options:[{label:"Stretch",value:"stretch"},{label:"Transparent",value:"transparent"},{label:"Mirror",value:"mirror"},{label:"Wrap",value:"wrap"}],label:"Edges",group:"Effect"}}},fragment:e=>{let{uniforms:t,childNode:s,ctx:r,propValues:a,convertToTexture:i}=e;if(!s)return console.error("You must pass a child component into the WaveDistortion shader."),me;let l=i(s),c=a.edges??0,d=z$(a.waveType),u=Fe(e).mul(.5),{fn:p,hint:m}=I$(d);return T(Re,"unpremultiplyAlpha",[Gt(T(p,m,[r.uv,r.aspect,t.angle,t.frequency,t.strength,u]),_=>l.sample(_),c)])},uvRemap:e=>{let t=e.propValues.edges??0,s=z$(e.propValues.waveType),r=Fe(e).mul(.5),{fn:a,hint:i}=I$(s);return zs(T(a,i,[e.uv,e.aspect,e.uniforms.angle,e.uniforms.frequency,e.uniforms.strength,r]),e.mask,t)}};var WZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_div(s.x,s.y),d=o.vec2f(__tsover_mul(t.x,c),t.y).mul(n.exp(r)).add(a);return __tsover_add(__tsover_mul(Rx(d,i,l),.5),.5)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"scale"},{type:"i",name:"seed"},{type:"i",name:"animTime"},{type:"i",name:"detail"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"aspectUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"pos",[6,[7,[6,[7,"aspectUV","mul"],[[6,[7,"std","exp"],["scale"]]]],"add"],["seed"]]],[10,[1,[1,[6,[7,"noise","wavelet12"],["pos","animTime","detail"]],"*",[5,"0.5"]],"+",[5,"0.5"]]]]],externalNames:["d","std","noise"]},externals:()=>({d:o,std:n,noise:mt})})&&e.f)({})),F$={name:"WaveletNoise",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Rotating banded wavelets that ripple as they animate",acceptsUVContext:!0,animatedTime:{speed:"speed"},props:{..._a(),scale:{default:1.5,description:"Pattern scale (higher = larger patterns)",ui:{type:"range",min:-2,max:5,step:.1,label:"Scale",group:"Effect"}},detail:{default:1.24,description:"Per-octave frequency ratio \u2014 higher adds finer wavelet detail",ui:{type:"range",min:1.05,max:2,step:.01,label:"Detail",group:"Effect"}},...fa(),...sn()},fragment:e=>{let t=e.uvContext??e.ctx.uv,s=e.effectiveViewportSize??e.ctx.viewportSize,r=Fe(e);return Ir(e,T(WZ,"waveletNoiseField",[t,s,e.uniforms.scale,e.uniforms.seed,r,e.uniforms.detail]))}};var B$=Math.PI/180,XZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.vec4f,o.vec4f],o.vec4f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c)=>{"use gpu";let d=__tsover_div(s.x,s.y),u=o.vec2f(__tsover_mul(t.x,d),t.y),p=__tsover_mul(i,B$),m=n.cos(p),_=n.sin(p),v=__tsover_mul(d,.5),h=.5,y=__tsover_sub(u.x,v),x=__tsover_sub(u.y,h),g=o.vec2f(__tsover_add(__tsover_sub(__tsover_mul(y,m),__tsover_mul(x,_)),v),__tsover_add(__tsover_add(__tsover_mul(y,_),__tsover_mul(x,m)),h)).mul(r),w=n.floor(g),f=n.fract(g),A=__tsover_mul(n.fwidth(g.x),.5),E=__tsover_mul(n.smoothstep(a,__tsover_add(a,A),f.y),n.smoothstep(a,__tsover_add(a,A),__tsover_sub(1,f.y))),P=__tsover_mul(n.smoothstep(a,__tsover_add(a,A),f.x),n.smoothstep(a,__tsover_add(a,A),__tsover_sub(1,f.x))),C=__tsover_add(w.x,w.y),$=__tsover_sub(C,__tsover_mul(2,n.floor(__tsover_div(C,2)))),U=__tsover_mul(E,P),k=n.clamp(__tsover_sub(E,__tsover_mul(U,$)),0,1),R=n.clamp(__tsover_sub(P,__tsover_mul(U,__tsover_sub(1,$))),0,1),D=__tsover_mul(l.w,k),M=__tsover_mul(c.w,R),z=n.clamp(__tsover_add(D,M),0,1),L=n.max(__tsover_add(D,M),.001),B=__tsover_div(__tsover_add(__tsover_mul(l.x,D),__tsover_mul(c.x,M)),L),N=__tsover_div(__tsover_add(__tsover_mul(l.y,D),__tsover_mul(c.y,M)),L),G=__tsover_div(__tsover_add(__tsover_mul(l.z,D),__tsover_mul(c.z,M)),L);return o.vec4f(B,N,G,z)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{type:"i",name:"cells"},{type:"i",name:"gap"},{type:"i",name:"rotation"},{type:"i",name:"colorA"},{type:"i",name:"colorB"}
vendor: 4,098 bytes, line 247
247],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"correctedUV",[6,[7,"d","vec2f"],[[1,[7,"uv","x"],"*","aspect"],[7,"uv","y"]]]],[13,"rotRad",[1,"rotation","*","DEG_TO_RAD"]],[13,"cosR",[6,[7,"std","cos"],["rotRad"]]],[13,"sinR",[6,[7,"std","sin"],["rotRad"]]],[13,"centerX",[1,"aspect","*",[5,"0.5"]]],[13,"centerY",[5,"0.5"]],[13,"cx",[1,[7,"correctedUV","x"],"-","centerX"]],[13,"cy",[1,[7,"correctedUV","y"],"-","centerY"]],[13,"rotated",[6,[7,"d","vec2f"],[[1,[1,[1,"cx","*","cosR"],"-",[1,"cy","*","sinR"]],"+","centerX"],[1,[1,[1,"cx","*","sinR"],"+",[1,"cy","*","cosR"]],"+","centerY"]]]],[13,"scaledUV",[6,[7,"rotated","mul"],["cells"]]],[13,"cell",[6,[7,"std","floor"],["scaledUV"]]],[13,"localUV",[6,[7,"std","fract"],["scaledUV"]]],[13,"pixel",[1,[6,[7,"std","fwidth"],[[7,"scaledUV","x"]]],"*",[5,"0.5"]]],[13,"hBand",[1,[6,[7,"std","smoothstep"],["gap",[1,"gap","+","pixel"],[7,"localUV","y"]]],"*",[6,[7,"std","smoothstep"],["gap",[1,"gap","+","pixel"],[1,[5,"1"],"-",[7,"localUV","y"]]]]]],[13,"vBand",[1,[6,[7,"std","smoothstep"],["gap",[1,"gap","+","pixel"],[7,"localUV","x"]]],"*",[6,[7,"std","smoothstep"],["gap",[1,"gap","+","pixel"],[1,[5,"1"],"-",[7,"localUV","x"]]]]]],[13,"s",[1,[7,"cell","x"],"+",[7,"cell","y"]]],[13,"isHTopFloat",[1,"s","-",[1,[5,"2"],"*",[6,[7,"std","floor"],[[1,"s","/",[5,"2"]]]]]]],[13,"intersection",[1,"hBand","*","vBand"]],[13,"hVis",[6,[7,"std","clamp"],[[1,"hBand","-",[1,"intersection","*","isHTopFloat"]],[5,"0"],[5,"1"]]]],[13,"vVis",[6,[7,"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,[7,"std","clamp"],[[1,"weightA","+","weightB"],[5,"0"],[5,"1"]]]],[13,"safeWeight",[6,[7,"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,[7,"d","vec4f"],["r","g","b","totalAlpha"]]]]],externalNames:["d","DEG_TO_RAD","std"]},externals:()=>({d:o,DEG_TO_RAD:B$,std:n})})&&e.f)({})),V$={name:"Weave",boundingBoxDeclaration:{aspectRatio:null,supportsResizeFit:!0},category:"Textures",description:"Interlaced textile weave pattern with two thread colors going over and under each other",acceptsUVContext:!0,props:{colorA:{default:"#c4c4c4",transform:O,description:"Horizontal thread color",ui:{type:"color",label:"X Color",group:"Colors"}},colorB:{default:"#4d4d4d",transform:O,description:"Vertical thread color",ui:{type:"color",label:"Y Color",group:"Colors"}},cells:{default:10,description:"Number of threads across the shortest canvas edge",ui:{type:["range","map"],min:2,max:40,step:1,label:"Cells",group:"Effect"}},gap:{default:.25,description:"Gap between threads (0 = no gap, 0.5 = maximum gap)",ui:{type:["range","map"],min:0,max:.45,step:.01,label:"Gap",group:"Effect"}},rotation:{default:0,description:"Rotation of the weave pattern in degrees",ui:{type:["range","map"],min:0,max:360,step:1,label:"Rotation",group:"Effect"}}},fragment:e=>{let{uniforms:t}=e;return T(XZ,"weaveColor",[e.uvContext??e.ctx.uv,e.effectiveViewportSize??e.ctx.viewportSize,t.cells,t.gap,t.rotation,t.colorA,t.colorB])}};var qZ={cover:0,contain:1,fill:2,"scale-down":3,none:4},HZ=b.fn([o.vec2f,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s)=>{"use gpu";let r=n.select(t.x,__tsover_sub(1,t.x),s>0);return o.vec2f(r,t.y)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"mirror"}],body:[0,[[13,"mirroredX",[6,[7,"std","select"],[[7,"uv","x"],[1,[5,"1"],"-",[7,"uv","x"]],[1,"mirror",">",[5,"0"]]]]],[10,[6,[7,"d","vec2f"],["mirroredX",[7,"uv","y"]]]]]],externalNames:["std","d"]},externals:()=>({std:n,d:o})})&&e.f)({})),O$={name:"WebcamTexture",boundingBoxDeclaration:{aspectRatio:null,
247supportsResizeFit:!0},category:"Textures",description:"Display a live webcam feed with customizable object-fit modes",acceptsUVContext:!0,props:{objectFit:{default:"cover",description:"How the webcam feed should be sized within the viewport",transform:e=>({cover:0,contain:1,fill:2,"scale-down":3,none:4})[e]??0,compileTime:!0,ui:{type:"select",options:[{label:"Cover",value:"cover"},{label:"Contain",value:"contain"},{label:"Fill",value:"fill"},{label:"Scale Down",value:"scale-down"},{label:"None",value:"none"}],label:"Object Fit",group:"Sizing"}},mirror:{default:!0,description:"Mirror the webcam feed horizontally (selfie mode)",ui:{type:"checkbox",label:"Mirror",group:"Effect"}}},fragment:({ctx:e,propValues:t,uniforms:s,uvContext:r,effectiveViewportSize:a,onBeforeRender:i,onCleanup:l,registerExternalTexture:c})=>{let d=null,u=null,p=!1,m=!1,_=async()=>{if(!(p||m))try{if(d=await navigator.mediaDevices.getUserMedia({video:{width:{ideal:1280},height:{ideal:720},facingMode:"user"},audio:!1}),m){d.getTracks().forEach(P=>P.stop()),d=null;return}let E=document.createElement("video");if(E.srcObject=d,E.playsInline=!0,E.muted=!0,await new Promise((P,C)=>{E.onloadedmetadata=()=>P(),E.onerror=()=>C(new Error("Failed to load video metadata"))}),m||(await E.play(),m))return;u=E,p=!0,console.log(`[WebcamTexture] Webcam started: ${E.videoWidth}x${E.videoHeight}`)}catch(E){E instanceof DOMException?E.name==="NotAllowedError"?console.error("[WebcamTexture] Camera permission denied by user"):E.name==="NotFoundError"?console.error("[WebcamTexture] No camera found on this device"):E.name==="NotReadableError"?console.error("[WebcamTexture] Camera is already in use by another application"):console.error("[WebcamTexture] Camera error:",E.message):console.error("[WebcamTexture] Failed to start webcam:",E)}};setTimeout(()=>_(),0),i(()=>{}),l(()=>{m=!0,d&&(d.getTracks().forEach(E=>E.stop()),d=null),u&&(u.srcObject=null,u=null),p=!1});let v=c(()=>!u||m||u.readyState<2||u.videoWidth===0?null:u),h=r??e.uv,y=a??e.viewportSize,x=v.dimensions(),g=t.objectFit,w=typeof g=="number"?g:qZ[g]??0,f;w===1?f=T(H1,"scaleContain",[x,y]):w===2?f=T(j1,"scaleFill",[]):w===3?f=T(Z1,"scaleScaleDown",[x,y]):w===4?f=T($S,"scaleNone",[x,y]):f=T(q1,"scaleCover",[x,y]);let A=T(HZ,"applyMirror",[T(K1,"mediaSampleUV",[h,f]),s.mirror]);return T(J1,"mediaAlphaCut",[v.sample(A),A])}};var N$={name:"Wool",boundingBoxDeclaration:{aspectRatio:null},category:"Stylize",description:"Applies an interwoven fibrous fabric texture and distortion to child content",requiresRTT:!0,requiresChild:!0,props:xh({intensity:.5,scale:4,contrast:-.5,distortion:.15}),fragment:e=>O1(e,zx,"wool12")};var Xb=Math.PI*2,Y$=b.fn([o.vec2f],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=(t=>{"use gpu";let s=o.vec2f(n.dot(t,o.vec2f(127.1,311.7)),n.dot(t,o.vec2f(269.5,183.3)));return n.fract(n.sin(s).mul(43758.5453))}),{v:1,name:void 0,ast:{params:[{type:"i",name:"p"}],body:[0,[[13,"h",[6,[7,"d","vec2f"],[[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"127.1"],[5,"311.7"]]]]],[6,[7,"std","dot"],["p",[6,[7,"d","vec2f"],[[5,"269.5"],[5,"183.3"]]]]]]]],[10,[6,[7,"std","fract"],[[6,[7,[6,[7,"std","sin"],["h"]],"mul"],[[5,"43758.5453"]]]]]]]],externalNames:["d","std"]},externals:()=>({d:o,std:n})})&&e.f)({})),W$=e=>({f1:0,f2:1,f2MinusF1:2,f1PlusF2:3,f1TimesF2:4})[e]??0,X$=e=>({euclidean:0,manhattan:1,chebyshev:2})[e]??0;function jZ(e){return typeof e=="number"?e:W$(e)}function ZZ(e){return typeof e=="number"?e:X$(e)}var G$=b.fn([o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l)=>{"use gpu";let c=__tsover_mul(s,.7),d=n.floor(t),u=n.fract(t),p=o.f32(10),m=o.f32(10);for(let x=-1;x<=1;x++)for(let g=-1;g<=1;g++){let w=o.vec2f(o.f32(g),o.f32(x)),f=Y$(o.vec2f(__tsover_add(__tsover_add(d.x,w.x),r),__tsover_add(__tsover_add(d.y,w.y),r))),A=__tsover_add(f.x,__tsover_mul(n.sin(__tsover_add(s,__tsover_mul(f.x,Xb))),.15)),E=__tsover_add(f.y,__tsover_mul(n.cos(__tsover_add(c,__tsover_mul(f.y,Xb))),.15)),P=n.mix(.5,n.clamp(A,.05,.95),a),C=n.mix(.5,n.clamp(E,.05,.95),a),$=__tsover_sub(u.x,__tsover_add(w.x,P)),U=__tsover_sub(u.y,__tsover_add(w.y,C)),k=__tsover_add(__tsover_mul($,$),__tsover_mul(U,U)),R=__tsover_add(n.abs($),n.abs(U)),D=n.max(n.abs($),n.abs(U)),M=k;M=n.select(M,R,i===1),M=n.select(M,D,i===2),m=n.min(m,n.max(M,p)),p=n.min(p,M)}let _=i===0,v=n.select(p,n.sqrt(p),_),h=n.select(m,n.sqrt(m),_),y=v;return y=n.select(y,h,l===1),y=n.select(y,__tsover_sub(h,v),l===2),y=n.select(y,__tsover_add(v,h),l===3),y=n.select(y,__tsover_mul(v,h),l===4),y}),{v:1,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,"animTSlow",[1,"animT","*",[5,"0.7"]]],[13,"cell",[6,[7,"std","floor"],["oUV"]]],[13,"localUV",[6,[7,"std","fract"],["oUV"]]],[12,"d1",[6,[7,"d","f32"],[[5,"10"]]]],[12,"d2",[6,[7,"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,[7,"d","vec2f"],[[6,[7,"d","f32"],["nx"]],[6,[7,"d","f32"],["ny"]]]]],[13,"h",[6,"worleyHash",[[6,[7,"d","vec2f"],[[1,[1,[7,"cell","x"],"+",[7,"offset","x"]],"+","seedOff"],[1,[1,[7,"cell","y"],"+",[7,"offset","y"]],"+","seedOff"]]]]]],[13,"px",[1,[7,"h","x"],"+",[1,[6,[7,"std","sin"],[[1,"animT","+",[1,[7,"h","x"],"*","TAU"]]]],"*",[5,"0.15"]]]],[13,"py",[1,[7,"h","y"],"+",[1,[6,[7,"std","cos"],[[1,"animTSlow","+",[1,[7,"h","y"],"*","TAU"]]]],"*",[5,"0.15"]]]],[13,"jx",[6,[7,"std","mix"],[[5,"0.5"],[6,[7,"std","clamp"],["px",[5,"0.05"],[5,"0.95"]]],"jitter"]]],[13,"jy",[6,[7,"std","mix"],[[5,"0.5"],[6,[7,"std","clamp"],["py",[5,"0.05"],[5,"0.95"]]],"jitter"]]],[13,"deltaX",[1,[7,"localUV","x"],"-",[1,[7,"offset","x"],"+","jx"]
247]],[13,"deltaY",[1,[7,"localUV","y"],"-",[1,[7,"offset","y"],"+","jy"]]],[13,"dEuclid",[1,[1,"deltaX","*","deltaX"],"+",[1,"deltaY","*","deltaY"]]],[13,"dManhattan",[1,[6,[7,"std","abs"],["deltaX"]],"+",[6,[7,"std","abs"],["deltaY"]]]],[13,"dChebyshev",[6,[7,"std","max"],[[6,[7,"std","abs"],["deltaX"]],[6,[7,"std","abs"],["deltaY"]]]]],[12,"dd","dEuclid"],[2,"dd","=",[6,[7,"std","select"],["dd","dManhattan",[1,"distNum","===",[5,"1"]]]]],[2,"dd","=",[6,[7,"std","select"],["dd","dChebyshev",[1,"distNum","===",[5,"2"]]]]],[2,"d2","=",[6,[7,"std","min"],["d2",[6,[7,"std","max"],["dd","d1"]]]]],[2,"d1","=",[6,[7,"std","min"],["d1","dd"]]]]]]]]],[13,"isEuclid",[1,"distNum","===",[5,"0"]]],[13,"sd1",[6,[7,"std","select"],["d1",[6,[7,"std","sqrt"],["d1"]],"isEuclid"]]],[13,"sd2",[6,[7,"std","select"],["d2",[6,[7,"std","sqrt"],["d2"]],"isEuclid"]]],[12,"raw","sd1"],[2,"raw","=",[6,[7,"std","select"],["raw","sd2",[1,"modeNum","===",[5,"1"]]]]],[2,"raw","=",[6,[7,"std","select"],["raw",[1,"sd2","-","sd1"],[1,"modeNum","===",[5,"2"]]]]],[2,"raw","=",[6,[7,"std","select"],["raw",[1,"sd1","+","sd2"],[1,"modeNum","===",[5,"3"]]]]],[2,"raw","=",[6,[7,"std","select"],["raw",[1,"sd1","*","sd2"],[1,"modeNum","===",[5,"4"]]]]],[10,"raw"]]],externalNames:["std","d","worleyHash","TAU"]},externals:()=>({std:n,d:o,worleyHash:Y$,TAU:Xb})})&&e.f)({})),KZ=b.fn([o.vec2f,o.vec2f,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i,l,c,d,u,p,m,_)=>{"use gpu";let v=__tsover_div(s.x,s.y),h=__tsover_mul(t.x,v),y=t.y,x=o.f32(0),g=o.f32(0),w=o.f32(1),f=r;for(let A=0;A<4;A++){let E=o.f32(A),P=n.select(o.f32(0),o.f32(1),E<u),C=G$(o.vec2f(__tsover_mul(h,f),__tsover_mul(y,f)),__tsover_add(d,__tsover_mul(E,17)),__tsover_add(a,__tsover_mul(E,31)),i,p,m);x=__tsover_add(x,__tsover_mul(__tsover_mul(C,w),P)),g=__tsover_add(g,__tsover_mul(w,P)),w=__tsover_mul(w,c),f=__tsover_mul(f,l)}return __tsover_mul(__tsover_div(x,n.max(g,1e-4)),_)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"uv"},{type:"i",name:"viewport"},{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"},{type:"i",name:"modeScale"}],body:[0,[[13,"aspect",[1,[7,"viewport","x"],"/",[7,"viewport","y"]]],[13,"baseUVx",[1,[7,"uv","x"],"*","aspect"]],[13,"baseUVy",[7,"uv","y"]],[12,"acc",[6,[7,"d","f32"],[[5,"0"]]]],[12,"totalAmp",[6,[7,"d","f32"],[[5,"0"]]]],[12,"amp",[6,[7,"d","f32"],[[5,"1"]]]],[12,"freq","scale"],[14,[12,"o",[5,"0"]],[1,"o","<",[5,"4"]],[102,"++","o"],[0,[[13,"fo",[6,[7,"d","f32"],["o"]]],[13,"gate",[6,[7,"std","select"],[[6,[7,"d","f32"],[[5,"0"]]],[6,[7,"d","f32"],[[5,"1"]]],[1,"fo","<","octaves"]]]],[13,"oUV",[6,[7,"d","vec2f"],[[1,"baseUVx","*","freq"],[1,"baseUVy","*","freq"]]]],[13,"animT",[1,"animTime","+",[1,"fo","*",[5,"17"]]]],[13,"seedOff",[1,"seed","+",[1,"fo","*",[5,"31"]]]],[13,"raw",[6,"worleyEvalOctave",["oUV","animT","seedOff","jitter","distNum","modeNum"]]],[2,"acc","=",[1,"acc","+",[1,[1,"raw","*","amp"],"*","gate"]]],[2,"totalAmp","=",[1,"totalAmp","+",[1,"amp","*","gate"]]],[2,"amp","=",[1,"amp","*","persistence"]],[2,"freq","=",[1,"freq","*","lacunarity"]]]]],[10,[1,[1,"acc","/",[6,[7,"std","max"],["totalAmp",[5,"0.0001"]]]],"*","modeScale"]]]],externalNames:["d","std","worleyEvalOctave"]},externals:()=>({d:o,std:n,worleyEvalOctave:G$})})&&e.f)({})),JZ=b.fn([o.f32,o.f32,o.f32],o.f32)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r)=>{"use gpu";let a=__tsover_sub(__tsover_mul(t,2),1),i=__tsover_add(__tsover_mul(a,s),r);return n.clamp(__tsover_add(__tsover_mul(i,.5),.5),0,1)}),{v:1,name:void 0,ast:{params:[{type:"i",name:"normalized"},{type:"i",name:"contrast"},{type:"i",name:"balance"}],body:[0,[[13,"signed",[1,[1,"normalized","*",[5,"2"]],"-",[5,"1"]]],[13,"adjusted",[1,[1,"signed","*","contrast"],"+","balance"]],[10,[6,[7,"std","clamp"],[[1,[1,"adjusted","*",[5,"0.5"]],"+",[5,"0.5"]],[5,"0"],[5,"1"]]]]]],externalNames:["std"]},externals:()=>({std:n})})&&e.f)({})),q$={name:"WorleyNoise",boundingBoxDeclaration:{aspectRatio:null,
247supportsResizeFit:!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:O,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:O,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:Ue,compileTime:!0,description:"Color space for color interpolation",ui:{type:"select",options:ze,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:W$,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:X$,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"}}},fragment:e=>{let{uniforms:t,propValues:s}=e,r=e.uvContext??e.ctx.uv,a=e.effectiveViewportSize??e.ctx.viewportSize,i=Fe(e),l=s.colorSpace??0,c=jZ(s.mode),d=ZZ(s.distance),u=Math.max(1,Math.min(4,Math.round(s.octaves??1))),p=1.5;c===1?p=1:c===2?p=2.5:c===3?p=.6:c===4&&(p=2),d===1?p*=.7:d===2&&(p*=1.4);let m=T(JZ,"worleyTone",[T(KZ,"worleyNoiseField",[r,a,t.scale,t.seed,t.jitter,t.lacunarity,t.persistence,i,le(u),le(d),le(c),le(p)]),t.contrast,t.balance]);return T(Ye[l]??Be,"mixColors",[t.colorA,t.colorB,m])}};var H$=Array.from({length:32},(e,t)=>{let s=(t/31-.5)*2;return Math.exp(-.5*s*s/.64)}),QZ=H$.reduce((e,t)=>e+t),eK=H$.map(e=>e/QZ);var tK=b.fn([o.vec2f,o.f32,o.vec2f,o.f32,o.f32],o.vec2f)((e=>(globalThis.__TYPEGPU_META__??=new WeakMap).set(e.f=((t,s,r,a,i)=>{"use gpu";let l=o.vec2f(t.x,__tsover_sub(1,t.y)),c=__tsover_mul(s,.01),d=__tsover_add(1,__tsover_mul(c,__tsover_div(i,31))),u=__tsover_sub(r.x,l.x),p=__tsover_sub(r.y,l.y),m=__tsover_mul(u,a),_=p,v=__tsover_div(m,d),h=__tsover_div(_,d);return o.vec2f(__tsover_add(__tsover_div(v,a),l.x),__tsover_add(h,l.y))}),{v:1,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,[7,"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"]
247]],[13,"acdX",[1,"deltaX","*","aspect"]],[13,"acdY","deltaY"],[13,"scaledDeltaX",[1,"acdX","/","scale"]],[13,"scaledDeltaY",[1,"acdY","/","scale"]],[10,[6,[7,"d","vec2f"],[[1,[1,"scaledDeltaX","/","aspect"],"+",[7,"centerPos","x"]],[1,"scaledDeltaY","+",[7,"centerPos","y"]]]]]]],externalNames:["d"]},externals:()=>({d:o})})&&e.f)({})),j$={name:"ZoomBlur",boundingBoxDeclaration:{aspectRatio:null},category:"Blurs",description:"Radial zoom blur expanding from a center point",requiresRTT:!0,requiresChild:!0,props:{intensity:{default:30,description:"Intensity of the zoom blur effect",ui:{type:["range","map"],min:0,max:100,step:1,label:"Intensity",group:"Effect"}},center:{default:{x:.5,y:.5},transform:we,description:"Center point of the zoom blur",ui:{type:"position",label:"Center",group:"Position"}}},fragment:({uniforms:e,childNode:t,ctx:s,convertToTexture:r})=>{if(!t)return me;let a=r(t),i;for(let l=0;l<32;l++){let c=T(tK,"zoomBlurTapCoord",[e.center,e.intensity,s.uv,s.aspect,le(l)]),d=a.sample(c).mul(eK[l]);i=i?i.add(d):d}return T(Re,"unpremultiplyAlpha",[i])}};var sK=()=>{let e={};return Object.entries({AngularBlur:XE,Arc:HE,Ascii:Mv,Aurora:QE,BarShift:sM,Beam:oM,Blob:aM,BlockNoise:iM,BlueNoise:lM,Blur:cM,BrickPattern:uM,BrightnessContrast:pM,BrushedMetal:vM,Bulge:yM,CarbonFiber:wM,Chalkboard:CM,ChannelBlur:PM,Checkerboard:$M,Chevron:DM,ChromaFlow:zM,ChromaticAberration:IM,Circle:LM,ColorWheel:BM,CompressionArtifacts:XM,ConcentricSpin:jM,ConicGradient:JM,ContourLines:QM,CornerPin:oC,Crescent:rC,Cross:aC,CRTScreen:iC,Crystal:pC,CurlNoise:mC,CursorRipples:hC,CursorTrail:TC,DataMosh:EC,DiamondGradient:CC,DiffuseBlur:PC,Dither:$C,DOMTexture:UC,DotGrid:DC,DropShadow:BC,Duotone:VC,Ellipse:OC,Emboss:CE,Engraving:WC,ErosionNoise:XC,Exposure:qC,FallingLines:ZC,FilmGrain:KC,Flip:QC,FloatingParticles:nP,Flower:iP,FlowField:cP,FlowingGradient:uP,FlutedGlass:pP,Fog:xP,Form3D:BE,FractalNoise:bP,Frost:TP,GaborNoise:SP,Glass:AP,GlassTiles:CP,Glitch:PP,Glow:kP,Godrays:RP,Goo:LP,GradientMap:OP,Grayscale:NP,Grid:YP,GridDistortion:qP,Group:HP,Halftone:jP,Heart:ZP,Heatmap:JP,HexGrid:o4,Hologram:n4,Holographic:d4,HueShift:m4,ImageTexture:_4,Invert:f4,IsometricCubes:g4,Kaleidoscope:T4,KeyFrames:A4,LensFlare:M4,LightEdge:k4,LightLeak:R4,LinearBlur:D4,LinearGradient:B4,LiquidMetal:O4,Liquify:X4,Marble:H4,Mirror:K4,MultiPointGradient:J4,Neon:SE,ObjectTracker:ak,PagePeel:ik,Paper:lk,Parallelogram:ck,Particles:yk,PerlinNoise:gk,Perspective:bk,Pixelate:wk,PixelSort:Mk,PixelThrow:kk,Plasma:$k,Plastic:Dk,PolarCoordinates:Fk,Polygon:Bk,Posterize:Vk,Prism:Nk,ProgressiveBlur:Gk,RadialGradient:Xk,RectangularCoordinates:Zk,ReflectivePlane:Jk,Repeater:Qk,Ring:eR,Ripples:tR,RoundedRect:sR,Saturation:oR,Scratches:rR,Sharpness:aR,Shatter:lR,SimplexNoise:cR,SineWave:pR,Smoke:gR,SmokeFill:ER,SmokeFlow:UR,Solarize:DR,SolidColor:zR,Spherize:IR,Spiral:LR,Star:FR,Stone:BR,Strands:NR,Stretch:WR,Stripes:jR,StudioBackground:ZR,SunBurst:KR,Surface3D:e$,Swirl:t$,Teardrop:s$,Text:Gb,ThinFilm:GE,TiltShift:d$,Tint:u$,Trapezoid:p$,TriangularGrid:v$,Tritone:h$,Truchet:x$,Twirl:w$,Vesica:T$,VHS:A$,Vibrance:E$,VideoTexture:C$,Vignette:P$,Voronoi:R$,Water:U$,Watercolor:D$,WaveDistortion:L$,WaveletNoise:F$,Weave:V$,WebcamTexture:O$,Wool:N$,WorleyNoise:q$,ZoomBlur:j$}
vendor: 22,029 bytes, line 247
247).forEach(([s,r])=>{let a={};r.props&&Object.entries(r.props).forEach(([i,l])=>{l.ui&&(a[i]={ui:l.ui,default:l.default,description:l.description})}),e[r.name]={name:r.name,fileName:s,category:r.category||"Uncategorized",definition:r,propsMetadata:a}}),e},Z$=sK();function qb(){return Object.values(Z$)}var oK=["float32-filterable","timestamp-query"],Hb=new WeakMap,jb=new WeakMap;async function rK(e={}){if(e.device){let s=e.device,r=Hb.get(s);return r||(r=b.initFromDevice({device:s}),Hb.set(s,r)),K$(r,e.onDeviceLost),{root:r,device:s,adapter:e.adapter,createdDevice:!1}}if(typeof navigator>"u"||!navigator.gpu)throw new Error("[gpu] WebGPU is not available in this environment (navigator.gpu is undefined). This renderer is WebGPU-only.");let t=await b.init({adapter:{powerPreference:"high-performance"},device:{optionalFeatures:oK}});return Hb.set(t.device,t),K$(t,e.onDeviceLost),{root:t,device:t.device,adapter:e.adapter,createdDevice:!0}}function aK(e,t,s={}){return e.configureContext({canvas:t,alphaMode:"premultiplied",...s})}function K$(e,t){let s=e.device,r=jb.get(s);r||(r=new Set,jb.set(s,r),e.device.lost.then(a=>{if(a.reason!=="destroyed")for(let i of jb.get(s)??[])i(a)})),t&&r.add(t)}function nK(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 iK(e={}){let t=e.maxSize??4,s=e.dispose,r=new Map,a=0,i=null,l=null;function c(u){u.lastUsed=++a}function d(){for(;r.size>t;){let u=null;for(let p of r.values())p.hash===i||p.hash===l||(!u||p.lastUsed<u.lastUsed)&&(u=p);if(!u)break;r.delete(u.hash),s?.(u.value,u.hash)}}return{getOrBuild(u,p){let m=r.get(u);if(m)return c(m),u===i?l=null:l=u,m.value;let _=p(),v={hash:u,value:_,lastUsed:++a};return r.set(u,v),i===null?(i=u,l=null):l=u,d(),_},markReady(u){if(u!==l)return;let p=r.get(u);p&&(i=u,l=null,c(p),d())},get renderValue(){let u=i??l;return u?r.get(u)?.value??null:null},get activeHash(){return i},get pendingHash(){return l},release(u){let p=r.get(u);p&&(r.delete(u),s?.(p.value,u),i===u&&(i=null),l===u&&(l=null))},has(u){return r.has(u)},get size(){return r.size},clear(){for(let u of r.values())s?.(u.value,u.hash);r.clear(),i=null,l=null}}}var zu="passManager";function lK(e,t){let{textureManager:s,dispatcher:r}=t,a=t.canvasFormat??cK(),i=t.rttFormat??"rgba16float",l=t.maxSampledTextures??16,c=t.fullScreenTriangle??F3.fullScreenTriangle,d=new Map,u=new Set,p=null;function m(){let C=s.samplers;try{return e.createBindGroup(Ex,{linearClamp:C.linearClamp,nearestClamp:C.nearestClamp,linearRepeat:C.linearRepeat,nearestRepeat:C.nearestRepeat})}catch($){console.error(`[${zu}] failed to build sampler bind group:`,$);return}}function _(C,$){let U=new Set;for(let k of C.textures)if(k.kind==="rtt")if(U.add(k.key),d.has(k.key))d.get(k.key).resize($.width,$.height);else{let R=s.createRenderTexture({width:$.width,height:$.height,format:i,label:`rtt:${k.key}`});d.set(k.key,R),u.add(R)}for(let[k,R]of[...d])U.has(k)||(R.destroy(),u.delete(R),d.delete(k))}function v(C,$){if(!C.textureLayout||C.reads.length===0)return;let U={};for(let k of C.reads){let R=d.get(k),D=$?.[k],M=R??D;if(!M){console.error(`[${zu}] pass "${C.entry}" reads unknown texture "${k}"`);return}U[k]=M.texture}C.reads.length>l&&console.warn(`[${zu}] pass samples ${C.reads.length} textures (> device limit ~${l}); composition may fail on this device.`);try{return e.createBindGroup(C.textureLayout,U)}catch(k){console.error(`[${zu}] failed to build texture bind group:`,k);return}}function h(C,$){return e.createRenderPipeline({vertex:c,fragment:C.entry,targets:{format:$}})}function y(C,$){if(!C.externalLayout||C.externalReads.length===0)return;let U=C.externalReads;if(U.length===1){let R=$.get(U[0]);if(!R){console.error(`[${zu}] external read "${U[0]}" has no registered source`);return}return s.createExternalTextureBinding({layout:C.externalLayout,entryKey:U[0],getSource:R})}let k=null;return{update(){let R={};for(let D of U){let M=$.get(D)?.();if(!M)return k=null,null;try{R[D]=e.device.importExternalTexture({source:M})}catch{return k=null,null}}return k=e.createBindGroup(C.externalLayout,R),k},get current(){return k},destroy(){k=null}}}function x(C,$,U,k){let R=$.kind==="canvas"?a:i,D=C.reads.filter(z=>U?.[z]),M=new Map(D.map(z=>[z,U[z].texture]));return{fragment:C,pipeline:h(C,R),textureBindGroup:v(C,U),externalBinding:y(C,k),target:$,mediaReads:D,mediaSnapshot:M}}function g(C,$,U,k){_(C,U);for(let L of C.computeSteps)L.bindInputs?.(B=>d.get(B)??k?.[B]);let R=m(),D=new Map;for(let L of C.externalTextures)D.set(L.key,L.getSource);let M=C.rttPasses.map(L=>x(L.fragment,{kind:"rtt",key:L.textureKey},k,D)),z=x(C.finalPass,{kind:"canvas"},k,D);p={ir:C,uniformBindGroup:$,samplerBindGroup:R,computeSteps:C.computeSteps,rttPasses:M,finalPass:z,size:U,mediaResources:k}}function w(C,$){let U=C.pipeline;if(p?.uniformBindGroup&&(U=U.with(p.uniformBindGroup)),C.mediaReads&&C.mediaReads.length>0&&p?.mediaResources){let k=!1;for(let R of C.mediaReads)p.mediaResources[R].texture!==C.mediaSnapshot.get(R)&&(k=!0);if(k){C.textureBindGroup=v(C.fragment,p.mediaResources);for(let R of C.mediaReads)C.mediaSnapshot.set(R,p.mediaResources[R].texture)}}if(C.textureBindGroup&&(U=U.with(C.textureBindGroup)),C.fragment.usesSamplers&&p?.samplerBindGroup&&(U=U.with(p.samplerBindGroup)),C.fragment.externalReads.length>0){let k=C.externalBinding?.update()??null;if(!k){C.externalSkipLogged||(console.warn(`[${zu}] external texture not ready \u2014 skipping pass (${C.fragment.externalReads.join(", ")})`),C.externalSkipLogged=!0);return}U=U.with(k)}U.withColorAttachment({view:$}).draw(3)}function f(C,$){if(p){for(let U of p.computeSteps){let k=U.getComputeNodes($);k&&k.length&&r.dispatch(k)}for(let U of p.rttPasses){let k=d.get(U.target.key);k&&w(U,A(k))}w(p.finalPass,C)}}function A(C){return e.unwrap(C.texture).createView()}function E(C){if(!(!C.fragment.textureLayout||C.fragment.reads.length===0)&&(C.textureBindGroup=v(C.fragment,p?.mediaResources),C.mediaReads&&C.mediaSnapshot&&p?.mediaResources))for(let $ of C.mediaReads)C.mediaSnapshot.set($,p.mediaResources[$].texture)}function P(C,$){for(let U of d.values())U.resize(C,$);if(p){p.size={width:C,height:$};for(let U of p.computeSteps)U.bindInputs?.(k=>d.get(k)??p.mediaResources?.[k]);for(let U of p.rttPasses)E(U);E(p.finalPass)}}return{setComposition:g,render:f,resize:P,get textureCount(){return u.size},get passCount(){return p?p.rttPasses.length+1:0},dispose(){for(let C of[...u])C.destroy();u.clear(),d.clear(),p=null}}}function cK(){return typeof navigator<"u"&&navigator.gpu?navigator.gpu.getPreferredCanvasFormat():"bgra8unorm"}function J$(e){return`${e}-srgb`}function dK(e){let t=new Set;function s(v,...h){return e.createTexture.call(e,v).$usage(...h)}let r,a,i,l,c={get linearClamp(){return r??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get nearestClamp(){return a??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})},get linearRepeat(){return i??=e.createSampler({magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"repeat",addressModeV:"repeat"})},get nearestRepeat(){return l??=e.createSampler({magFilter:"nearest",minFilter:"nearest",addressModeU:"repeat",addressModeV:"repeat"})}};function d(v,h,y,x,g){let w={texture:v,width:h,height:y,format:x,write(f){v.write(f)},unwrap(){return e.unwrap(v)},createSrgbView(){if(g)return e.unwrap(v).createView({format:J$(x)})},generateMipmaps(){v.generateMipmaps?.()},destroy(){t.has(w)&&(v.destroy(),t.delete(w))}};return t.add(w),w}function u(v){let{width:h,height:y,srgb:x=!1,mipLevelCount:g}=v,w=v.format??"rgba8unorm";return d(s({size:[h,y],format:w,...x?{viewFormats:[J$(w)]}:{},...g?{mipLevelCount:g}:{}},"sampled","render"),h,y,w,x)}function p(v){let{width:h,height:y,format:x,data:g}=v,w=d(s({size:[h,y],format:x},"sampled"),h,y,x,!1);return g&&w.write(g),w}function m(v){let h=v.format??"rgba16float",{mipLevelCount:y}=v,x=v.width,g=v.height;function w(A,E){return d(s({size:[A,E],format:h,...y?{mipLevelCount:y}:{}},"sampled","render"),A,E,h,!1)}let f=w(x,g);return{get texture(){return f.texture},get width(){return x},get height(){return g},format:h,write(A){f.write(A)},unwrap(){return f.unwrap()},createSrgbView(){return f.createSrgbView()},generateMipmaps(){f.generateMipmaps()},resize(A,E){A===x&&E===g||(f.destroy(),x=A,g=E,f=w(A,E))},destroy(){f.destroy()}}}function _(v){let{layout:h,entryKey:y,getSource:x,staticEntries:g={}}=v,w=null;return{update(){let f=x();if(!f)return w=null,null;let A;try{A=e.device.importExternalTexture({source:f})}catch{return w=null,null}return w=e.createBindGroup(h,{...g,[y]:A}),w},get current(){return w},destroy(){w=null}}}return{samplers:c,createMediaTexture:u,createDataTexture:p,createRenderTexture:m,createExternalTextureBinding:_,get textureCount(){return t.size},destroy(){for(let v of[...t])v.destroy();t.clear()}}}function Zb(e,t,s,r,a,i){if(r===0&&a===0)return[s,0];let l=200*Math.pow(.01,r),c=2*Math.sqrt(l)*(1-a*.85),d=t+(l*(s-e)-c*t)*i;return[e+d*i,d]}function uK(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 Q$(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 uK(e);default:return(1-Math.cos(Math.PI*e))/2}}function pK(e,t,s){let r=s.pixelRatio||1,a=Math.max(1,Math.floor(s.maxTextureDim/r)-1),i=Math.min(e,s.viewportWidth,a),l=Math.min(t,s.viewportHeight,a),c=Math.min(i/e,l/t,1);return{width:Math.max(1,Math.round(e*c)),height:Math.max(1,Math.round(t*c))}}function mK(e,t,s,r){return e!=null?(r-e)/1e3:t+s}function _K(e,t){let{lastRenderTime:s,isVisible:r,forceFullFrameRate:a}=t,i=s>0?(e-s)/1e3:.016;if(s>0){let l=e-s;if(!r&&!a&&l<1e3)return{render:!1,deltaTime:i};if((r||a)&&l<15.666666666666668)return{render:!1,deltaTime:i}}return{render:!0,deltaTime:Math.min(i,.1)}}async function eU(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 fK(e){e.updateDrivers(),e.ensureComposition()&&(e.beforeRender(),e.flush(),e.render(),e.markReady(),e.afterRender())}function vK(e){let t=null,s=i=>typeof requestAnimationFrame=="function"?requestAnimationFrame(i):setTimeout(()=>i(performance.now()),16),r=i=>{typeof cancelAnimationFrame=="function"?cancelAnimationFrame(i):clearTimeout(i)},a=()=>{e(),t!==null&&(t=s(a))};return{start(){t===null&&(t=s(a))},stop(){t!==null&&(r(t),t=null)},get running(){return t!==null}}}var hK=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,a){return e.length<a?(e.push(t),{index:e.length,count:e.length}):(e[s%a]=t,{index:s+1,count:a})}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,a=this.pushToCircularBuffer(this.frameIntervals,r,this.frameIntervalsIndex,this.frameIntervalsCount,this.maxSamples);this.frameIntervalsIndex=a.index,this.frameIntervalsCount=a.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],a=this.memorySnapshots[s],i=(a.time-r.time)/1e3;return i<=0?null:(a.bytes-r.bytes)/(1024*1024)/i}calculateStdDev(e){if(e.length===0)return 0;let t=e.reduce((r,a)=>r+a,0)/e.length,s=0;for(let r=0;r<e.length;r++){let a=e[r]-t;s+=a*a}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 a=this.sortBuffer[r],i=r-1;for(;i>=0&&this.sortBuffer[i]>a;)this.sortBuffer[i+1]=this.sortBuffer[i],i--;this.sortBuffer[i+1]=a}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,m)=>p+m,0)/t,r=Math.min(s/16.67*100,100),a=this.calculateComplexityScore(),i=Math.min(a/100*100,100),l=0;this.lastGpuTime!==null&&(l=Math.min(this.lastGpuTime/16.67*100,100));let c=this.lastGpuTime!==null?{frame:.4,gpu:.4,complexity:.2}:{frame:.7,gpu:0,complexity:.3},d=Math.round(r*c.frame+l*c.gpu+i*c.complexity),u;return d<=20?u="Very Light":d<=40?u="Light":d<=60?u="Medium":d<=80?u="Heavy":u="Very Heavy",{score:Math.min(d,100),label:u}}getStats(e){let t=this.getBufferValues(this.frameTimesMs,this.frameTimesCount),s=this.getBufferValues(this.frameIntervals,this.frameIntervalsCount),r=t.length,a=s.length>0?1e3/(s.reduce((f,A)=>f+A,0)/s.length):0,i=r>0?t.reduce((f,A)=>f+A,0)/r:0,l=r>0?Math.min(...t):0,c=r>0?Math.max(...t):0,d=this.calculateP99(t),u=this.calculateStdDev(t),p=this.totalFrameCount>0?this.jankFrameCount/this.totalFrameCount*100:0,m=performance.memory,_=m?m.usedJSHeapSize/(1024*1024):null,v=this.calculateMemoryGrowthRate(),h=i>0?i/this.targetFrameTime*100:0,y=e?.render?.calls??null,x=e?.programs?.length??null,g=e?.memory?.textures??null,w=this.calculateIntensityScore();return{fps:Math.round(a),avgFrameTime:Math.round(i*100)/100,minFrameTime:Math.round(l*100)/100,maxFrameTime:Math.round(c*100)/100,p99FrameTime:Math.round(d*100)/100,stdDevFrameTime:Math.round(u*100)/100,jankCount:this.jankFrameCount,jankPercent:Math.round(p*10)/10,nodeCount:this.nodeCount,rttNodeCount:this.rttNodeCount,complexityScore:this.calculateComplexityScore(),memoryUsedMB:_!==null?Math.round(_*100)/100:null,memoryGrowthRate:v!==null?Math.round(v*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(h*10)/10,drawCalls:y,shaderPrograms:x,textureCount:g,intensityScore:w.score,intensityLabel:w.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}},yK=(()=>{let e=0,t=new Set,s=(c,d)=>{t.forEach(u=>{try{u[c](d)}catch(p){console.error("[Shaders] Error in pointer handler:",p)}})},r=c=>s("onMouseMove",c),a=c=>s("onTouchMove",c),i=()=>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",a),window.addEventListener("mouseup",i),window.addEventListener("touchend",l)),()=>{t.delete(c),e--,e===0&&typeof window<"u"&&(window.removeEventListener("mousemove",r),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",i),window.removeEventListener("touchend",l))}}}})();function gK(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 tU(){let e=null,t=null,s=null,r=null,a=null,i=null,l=!1,c=!1,d=!1,u=null,p=new Map,m=null,_=new Map,v=[],h=iK({maxSize:4,dispose:V=>Mr(V)}),y=new Set,x=null,g=null,w=!0,f=0,A=0,E=0,P=0,C=1,$=8192,U=0,k=0,R=!1,D=()=>E||f||1,M=()=>P||A||1,z=!0,L=!1,B=!1,N=0,G=0,I=null,X=null,F=.5,Q=.5,ae=!1,j=null,q=!1,te=null,ne=null,oe=null,pe=null,_e=null,ge=null,Me=!1,Se="p3-linear",Ae="linear",Pe=!1,De=null,ke=null,Ge=!1,Oe=!1,qe=null,We=!1,Ve=new hK,Ne={deltaTime:0,pointer:{x:.5,y:.5},pointerActive:!1,dimensions:{width:0,height:0}},He=vK(()=>Yi()),vt=V=>V.replace(/[^a-zA-Z0-9_]/g,"_"),_t=V=>{let Y=_.get(V);if(!Y)return[];let Z=[];for(let ue of Y){let re=p.get(ue);re&&Z.push(re)}return Z},Ze=V=>{let Y=vt(V);for(let[Z,ue]of p)if(ue.metadata.id===Y)return Z;return null},it=(V,Y)=>{if(Y==="center")return;let Z=V.boundingBoxDeclaration;if(!Z)return;let ue={};for(let[re,he]of Object.entries(V.uniforms))ue[re]=he._rawDimensional!==void 0?he._rawDimensional:he.value;return L2(Z,ue,D(),M())},Tt=V=>{let Y=V.boundingBoxDeclaration,Z=V.extraDimProps,ue=fu(Y,Z);if(!ue)return;let re=V.uniforms.origin?.value??"center",he=it(V,re),Ie=[...ue.positionProps,...ue.sizeProps.keys()];for(let ct of Ie){let At=V.uniforms[ct];if(!At||At._rawDimensional===void 0)continue;let ps=Lm(Y,ct,At._rawDimensional,re,D(),M(),Z,he);At.value=ps,$t(V,ct,ps)}},J=(V,Y,Z)=>{if(typeof Z=="number")return Z;let ue=V.uniforms.origin?.value??"center",re=Lm(V.boundingBoxDeclaration,Y,Z,ue,D(),M(),V.extraDimProps);return typeof re=="number"?re:Z?.value??0},be=()=>{let{width:V,height:Y}=so();return V/Math.max(1,Y)},ce=V=>{let Y=V.metadata.transform;return{offsetX:Y?.offsetX??0,offsetY:Y?.offsetY??0,rotation:Y?.rotation??0,scale:Y?.scale??1,anchorX:Y?.anchorX??.5,anchorY:Y?.anchorY??.5,aspectRatio:be()}},xe=V=>{let Y=V.metadata.boundingBox;if(!Y)return null;let Z=Ax(Y,D(),M());return{centerX:Z.centerX,centerY:Z.centerY,halfWidth:Z.halfWidthUV,halfHeight:Z.halfHeightUV,cornerRadius:Z.cornerRadiusUV,rotation:Z.rotation,aspectRatio:be()}},ye=V=>!!V.metadata.boundingBox&&!!V.boundingBoxDeclaration,Ee=V=>{let Y=V.boundingBoxDeclaration;if(!Y||!V.uniforms||!Y.computeBounds&&!Y.propBindings)return null;let Z={};for(let[At,ps]of Object.entries(V.uniforms))Z[At]=ps._rawDimensional!==void 0?ps._rawDimensional:ps.value;let ue=L2(Y,Z,D(),M());if(ue.hwx<=0&&ue.hhy<=0)return null;let re=.5,he=.5,Ie=Y.propBindings?.x?.prop??Y.propBindings?.y?.prop,ct=Ie?V.uniforms[Ie]?.value:void 0;return ct&&typeof ct.x=="number"&&typeof ct.y=="number"&&(re=ct.x,he=ct.y),{centerX:re,centerY:he,halfWidth:ue.hwx,halfHeight:ue.hhy}},Le=V=>{if(!V.definition.wantsBoundsParams)return null;let Y=_t(V.id).sort((Z,ue)=>Z.metadata.renderOrder-ue.metadata.renderOrder);for(let Z of Y){if(Z.metadata.visible===!1)continue;if(ye(Z))return null;let ue=Ee(Z);if(ue)return ue}return null},ot=()=>{for(let V of p.values()){if(!V.definition.wantsBoundsParams)continue;let Y=Le(V);Y&&(Xe(V,"_childBounds_centerX",Y.centerX),Xe(V,"_childBounds_centerY",Y.centerY),Xe(V,"_childBounds_halfWidth",Y.halfWidth),Xe(V,"_childBounds_halfHeight",Y.halfHeight))}},Ke=V=>Cl(V.metadata.transform),rt=(V,Y,Z)=>{let ue=V.mapValues[Y]??{inputMin:0,inputMax:1,outputMin:0,outputMax:1,curve:0};if(Z.type==="map"){let re=Z;ue.inputMin=re.inputMin,ue.inputMax=re.inputMax,ue.outputMin=J(V,Y,re.outputMin),ue.outputMax=J(V,Y,re.outputMax),ue.curve=re.curve??0}else if(Z.type==="mouse"){let re=Z;ue.outputMin=J(V,Y,re.outputMin),ue.outputMax=J(V,Y,re.outputMax),ue.curve=re.curve??0}else if(Z.type==="auto-animate"){let re=Z;ue.outputMin=J(V,Y,re.outputMin),ue.outputMax=J(V,Y,re.outputMax)}return V.mapValues[Y]=ue,ue},Mt=(V,Y,Z)=>{let ue=V.mouseDriverState[Y];if(ue)return ue;if(Z.type==="mouse-position"){let re=Z.x===void 0||Z.x==="mouse",he=Z.y===void 0||Z.y==="mouse";ue={currentX:re?F:Z.x,currentY:he?Q:Z.y,velocityX:0,velocityY:0}}else ue={currentX:Math.max(.001,Z.axis==="x"?F:Q),currentY:0,velocityX:0,velocityY:0};return V.mouseDriverState[Y]=ue,ue},ht=V=>{let Y=V.definition.animatedTime;return(Y?V.uniforms[Y.speed]:void 0)??V},St=(V,Y)=>V.uniforms[Y]??V,zt=V=>{let Y=[];for(let[re,he]of Object.entries(V.uniforms))Y.push({name:re,initial:he.value,transform:he.transform,cpu:he.cpu,schema:he.schema});if(Y.push({name:"_opacity",schema:S,initial:V.metadata.opacity??1}),V.definition.animatedTime&&Y.push({name:"_animTime",schema:S,initial:$l(ht(V)).value}),V.definition.extraAnimatedTimes)for(let[re,he]of Object.entries(V.definition.extraAnimatedTimes))Y.push({name:`_animTime_${re}`,schema:S,initial:$l(St(V,he)).value});let Z=V.definition.extraFields;if(Z)for(let[re,he]of Object.entries(Z))Y.push({name:re,schema:he.schema,initial:he.initial});if(Ke(V)){let re=ce(V);for(let[he,Ie]of Object.entries(re))Y.push({name:`_xform_${he}`,schema:S,initial:Ie})}if(ye(V)){let re=xe(V);if(re)for(let[he,Ie]of Object.entries(re))Y.push({name:`_bbox_${he}`,schema:S,initial:Ie})}if(V.definition.wantsBoundsParams){let re=Le(V)??{centerX:.5,centerY:.5,halfWidth:.5,halfHeight:.5};for(let[he,Ie]of Object.entries(re))Y.push({name:`_childBounds_${he}`,schema:S,initial:Ie})}let ue=V.metadata.maps;if(ue){for(let[re,he]of Object.entries(ue))if(re in V.uniforms){if(he.type==="map"){let Ie=rt(V,re,he);Y.push({name:`_map_${re}_inputMin`,schema:S,initial:Ie.inputMin}),Y.push({name:`_map_${re}
247_inputMax`,schema:S,initial:Ie.inputMax}),Y.push({name:`_map_${re}_outputMin`,schema:S,initial:Ie.outputMin}),Y.push({name:`_map_${re}_outputMax`,schema:S,initial:Ie.outputMax}),Y.push({name:`_map_${re}_curve`,schema:S,initial:Ie.curve})}else if(he.type==="mouse-position"){let Ie=Mt(V,re,he);Y.push({name:`_smoothed_${re}`,schema:H,initial:[Ie.currentX,1-Ie.currentY]})}else if(he.type==="mouse"){Mt(V,re,he);let Ie=rt(V,re,he);Y.push({name:`_smoothed_${re}`,schema:S,initial:Ie.outputMin})}else if(he.type==="auto-animate"){V.autoAnimateState[re]||(V.autoAnimateState[re]={});let Ie=rt(V,re,he);Y.push({name:`_smoothed_${re}`,schema:S,initial:Ie.outputMin})}}}return Y},$t=(V,Y,Z)=>{let ue=V._liveHandles?.[Y];ue&&(De?.(Se),TT(ue,Z))},Xe=(V,Y,Z)=>{let ue=V._liveHandles?.[Y];ue instanceof Hn&&(ue.value=Z)},Qt=(V,Y,Z)=>{let ue=V._liveHandles?.[Y];ue instanceof Hn&&(ue.value=Z)},Xt=V=>{for(let Y of Object.values(V.uniforms))if(Y.transform===Ue){let Z=Y.value;if(typeof Z=="string")return Ue(Z);if(typeof Z=="number")return Z}return 0},Ps=V=>{if(!V.uniforms.convertedColorsArray)return;let Y=null;for(let he of Object.values(V.uniforms))if(he.transform===Vl){Y=he.value??null;break}let Z=Sm(Y,D2),ue=Am(Z.colors,Z.stopCount,Xt(V)),re=(he,Ie)=>{let ct=V.uniforms[he];
vendor: 33,790 bytes, line 247
247ct&&(ct.value=Ie),$t(V,he,Ie)};re("colorsArray",Z.colors),re("positionsArray",Z.positions),re("convertedColorsArray",ue),re("stopCount",Z.stopCount)},$s=V=>{if(Xe(V,"_opacity",V.metadata.opacity??1),V.definition.animatedTime&&Xe(V,"_animTime",$l(ht(V)).value),V.definition.extraAnimatedTimes)for(let[Z,ue]of Object.entries(V.definition.extraAnimatedTimes))Xe(V,`_animTime_${Z}`,$l(St(V,ue)).value);if(Ke(V))for(let[Z,ue]of Object.entries(ce(V)))Xe(V,`_xform_${Z}`,ue);if(ye(V)){let Z=xe(V);if(Z)for(let[ue,re]of Object.entries(Z))Xe(V,`_bbox_${ue}`,re)}let Y=V.metadata.maps;if(Y){for(let[Z,ue]of Object.entries(Y))if(ue.type==="map"&&V.mapValues[Z]){let re=V.mapValues[Z];Xe(V,`_map_${Z}_inputMin`,re.inputMin),Xe(V,`_map_${Z}_inputMax`,re.inputMax),Xe(V,`_map_${Z}_outputMin`,re.outputMin),Xe(V,`_map_${Z}_outputMax`,re.outputMax),Xe(V,`_map_${Z}_curve`,re.curve)}}},Ks=(V,Y)=>{let Z={};for(let ue of Object.keys(V.uniforms)){let re=Y[ue];re&&(Z[ue]=re)}return Z},yo=V=>{let Y={};for(let[Z,ue]of Object.entries(V.uniforms))Y[Z]={accessorPath:"",cpu:!!ue.cpu,value:ue.value};return Y},Gs=(V,Y)=>({id:V.id,customId:V.metadata.id,componentName:V.componentName,parentId:V.parentId,definition:V.definition,metadata:V.metadata,handles:Y,domCanvas:V.domCanvas}),Js=(V,Y)=>{let Z=new Map,ue=he=>Gs(he,V&&Y?Ks(he,Y.get(he.id)??{}):yo(he)),re=he=>{let Ie=Z.get(he);if(Ie)return Ie;let ct=p.get(he);if(!ct)return;let At=ue(ct);return Z.set(he,At),At};return{rootId:m,getNode:re,getChildren:he=>_t(he).map(Ie=>re(Ie.id)),resolveCustomId:he=>Ze(he),store:{gpuAccessor:(he,Ie)=>V?V.gpuAccessor(he,Ie):"",layout:V?.layout}}},Ls=()=>({toneMapping:Ae,flipY:!1,premultiplyAlpha:!0,canvas:i??void 0,dimensions:so(),gpu:t?{device:t.device,root:t}:void 0,writeExtraField:(V,Y,Z)=>{let ue=p.get(V);ue&&Qt(ue,Y,Z)},createMediaTexture:V=>{if(!r)throw new Error("[gpu] createMediaTexture before init");return r.createMediaTexture(V)},createDataTexture:V=>{if(!r)throw new Error("[gpu] createDataTexture before init");return r.createDataTexture(V)},resolveMapWindow:(V,Y)=>{let Z=p.get(V),ue=Z?.metadata.maps?.[Y];if(!Z||!ue||ue.type!=="map")return;let re=rt(Z,Y,ue);return{inputMin:re.inputMin,inputMax:re.inputMax,outputMin:re.outputMin,outputMax:re.outputMax,curve:re.curve}},resolveDriverCpuValue:(V,Y)=>{let Z=p.get(V),ue=Z?.metadata.maps?.[Y];if(!(!Z||!ue)){if(ue.type==="mouse-position"){let re=Z.mouseDriverState[Y];return!re||re.liveX===void 0||re.liveY===void 0?void 0:{x:re.liveX,y:1-re.liveY}}if(ue.type==="mouse"||ue.type==="auto-animate"){let re=Z._liveHandles?.[`_smoothed_${Y}`];return re instanceof Hn?re.value:void 0}}}}),Fr=()=>{let V=[];for(let[Y,Z]of p){let ue=Z.metadata;(Z.hasUvRemap||Z.acceptsUVContext)&&V.push(`aopac:${Y}:${(ue.opacity??1)<1}`);let re=Z.uniforms.stopCount?.value;typeof re=="number"&&V.push(`stops:${Y}:${re>1?re:0}`);for(let[he,Ie]of Object.entries(Z.uniforms)){if(!Ie.compileTimeWhen)continue;let ct=Ie._lastCompiledValue;ct===null||typeof ct=="object"||V.push(`ctw:${Y}:${he}:${String(ct)}`)}if(ue.maps){let he=Object.entries(ue.maps).sort(([Ie],[ct])=>Ie<ct?-1:Ie>ct?1:0).map(([Ie,ct])=>{let At=ct;return`${Ie}=${At.type}:${At.source??""}:${At.channel??""}:${At.axis??""}`}).join(",");V.push(`mapfp:${Y}:${he}`)}}return V},Er=()=>m?nK([...nS(Js(null,null),Ls()),...Fr()]):null,so=()=>({width:Math.max(1,Math.round(f*C)),height:Math.max(1,Math.round(A*C))}),an=V=>{let Y={};for(let Z of V.textures)Z.kind!=="rtt"&&Z.resource&&(Y[Z.key]=Z.resource);return Y},Tn=V=>{if(!t||!r||!a)throw new Error("[gpu] buildComposition before init");let Y=wT(t,{systemSchema:US}),Z=new Map;for(let[Ie,ct]of p)Z.set(Ie,Y.defineNode(Ie,zt(ct)));Y.defineSystem(),Y.finalize();let ue=aS(Js(Y,Z),Ls()),re=lK(t,{textureManager:r,dispatcher:a});re.setComposition(ue,Y.bindGroup,so(),an(ue));let he={hash:V,store:Y,ir:ue,passManager:re,handlesById:Z,fresh:!0};return y.add(he),he},Mr=V=>{try{for(let Y of V.ir.onCleanup)Y()}catch(Y){console.error("[gpu] composition onCleanup error:",Y)}try{V.passManager.dispose()}catch(Y){console.error("[gpu] passManager dispose error:",Y)}try{V.store.destroy()}catch(Y){console.error("[gpu] store destroy error:",Y)}y.delete(V),x===V&&(x=null)},nn=V=>{let Y=!1;for(let[Z,ue]of V.handlesById){let re=p.get(Z);re&&re._liveHandles!==ue&&(re._liveHandles=ue,Y=!0)}if(!(V===x&&!Y)){if(!V.fresh){for(let Z of p.values()){for(let[ue,re]of Object.entries(Z.uniforms))$t(Z,ue,re.value);$s(Z)}V.store.writeAll()}V.fresh=!1,x=V,!Ge&&V.ir.composedNodeIds.size>0&&(Oe=!0)}},Br=()=>{w=!0,lr()},lr=()=>{He.running||X===null&&typeof requestAnimationFrame=="function"&&(X=requestAnimationFrame(()=>{X=null,Yi()}))},ha=(V,Y,Z,ue,re={},he,Ie)=>{if(Y===null){let Es=v.findIndex(cr=>cr.id===V);if(Es!==-1){v.splice(Es,1);return}ln(V);return}if(!he){console.error(`[gpu] registerNode("${V}") requires a componentDefinition`);return}if(!d){let Es=v.findIndex(Vr=>Vr.id===V),cr={id:V,definition:he,parentId:Z,metadata:ue,uniforms:re,domCanvas:Ie};Es!==-1?v[Es]=cr:v.push(cr);return}let ct=0;if(Z!==null){let Es=_.get(Z);if(Es&&Es.size>0){let cr=0;for(let Vr of Es){let Cr=p.get(Vr);Cr&&Cr.metadata.renderOrder>cr&&(cr=Cr.metadata.renderOrder)}ct=cr+1}}let At={blendMode:ue?.blendMode||"normal",opacity:ue?.opacity,visible:ue?.visible!==!1,id:ue?.id?vt(ue.id):ue?.id,mask:ue?.mask,maps:ue?.maps,renderOrder:ue?.renderOrder!==void 0?ue.renderOrder:ct,transform:ue?.transform,boundingBox:ue?.boundingBox},ps=he.boundingBoxDeclaration,co=he.props?I2(he.props):void 0,go={id:V,componentName:he.name||"Unknown",parentId:Z,definition:he,metadata:At,uniforms:re,domCanvas:Ie,requiresRTT:!!he.requiresRTT,requiresChild:!!he.requiresChild,blendWithChildren:!!he.blendWithChildren,acceptsUVContext:!!he.acceptsUVContext,providesUVContextViaCompute:!!he.providesUVContextViaCompute,usesPointer:!!he.usesPointer,hasUvRemap:!!he.uvRemap,boundingBoxDeclaration:ps,wantsBoundsParams:!!he.wantsBoundsParams,extraDimProps:co,mouseDriverState:{},autoAnimateState:{},mapValues:{},_liveHandles:null};if(ps||co){let Es=fu(ps,co);if(Es){let cr=re.origin?.value??"center",Vr=it(go,cr);for(let Cr of[...Es.positionProps,...Es.sizeProps.keys()]){let qo=re[Cr];qo&&(qo._rawDimensional=qo.value,qo.value=Lm(ps,Cr,qo.value,cr,D(),M(),co,Vr))}}}for(let Es of Object.values(re))Es.compileTimeWhen&&Es._lastCompiledValue===void 0&&(Es._lastCompiledValue=Es.value);p.set(V,go),Z===null&&(m=V);let ks=_.get(Z)||new Set;ks.add(V),_.set(Z,ks),ad(),Br()},Oi=(V,Y,Z)=>{let ue=p.get(V);if(!ue)return;let re=ue.uniforms[Y];if(!re)return;let he=ue.boundingBoxDeclaration,Ie=ue.extraDimProps;if((he||Ie)&&F2(he,Y,Ie)){re._rawDimensional=Z;let ct=ue.uniforms.origin?.value??"center",At=it(ue,ct);Z=Lm(he,Y,Z,ct,D(),M(),Ie,At)}if(re.value=Z,$t(ue,Y,Z),(re.transform===Vl||re.transform===Ue)&&Ps(ue),Y==="origin"&&he)Tt(ue);else if(he&&(ue.uniforms.origin?.value??"center")!=="center"){let ct=fu(he,Ie),At=!!he.computeBounds||(ct?.sizeProps.has(Y)??!1),ps=ct?.positionProps.has(Y)??!1;At&&!ps&&Tt(ue)}if(Y==="shape"&&ad(),re.compileTime){Br();return}if(re.compileTimeWhen){let ct=re._lastCompiledValue;if(re.compileTimeWhen(ct,Z)){re._lastCompiledValue=Z,Br();return}}lr()},oo=(V,Y)=>{let Z=p.get(V);if(!Z)return;let ue=!1;if(Y.blendMode!==void 0&&Z.metadata.blendMode!==Y.blendMode&&(Z.metadata.blendMode=Y.blendMode,ue=!0),Y.opacity!==void 0&&Z.metadata.opacity!==Y.opacity){let re=Z.metadata.opacity??1,he=Y.opacity;Z.metadata.opacity=he,Xe(Z,"_opacity",he),(Z.hasUvRemap||Z.acceptsUVContext)&&re>=1!=he>=1&&(ue=!0)}if(Y.renderOrder!==void 0&&Z.metadata.renderOrder!==Y.renderOrder&&(Z.metadata.renderOrder=Y.renderOrder,ue=!0),"visible"in Y){let re=Y.visible!==!1;Z.metadata.visible!==re&&(Z.metadata.visible=re,ue=!0)}if(Y.id!==void 0){let re=vt(Y.id);Z.metadata.id!==re&&(Z.metadata.id=re,ue=!0)}if("mask"in Y&&(Z.metadata.mask?.source!==Y.mask?.source||Z.metadata.mask?.type!==Y.mask?.type)&&(Z.metadata.mask=Y.mask,ue=!0),"maps"in Y&&JSON.stringify(Z.metadata.maps)!==JSON.stringify(Y.maps)){let re=Z.metadata.maps,he=Y.maps;if(Z.metadata.maps=he,ad(),(()=>{if(!re||!he)return!0;let Ie=Object.keys(re),ct=Object.keys(he);if(Ie.length!==ct.length||!Ie.every(At=>At in he))return!0;for(let At of ct){let ps=re[At],co=he[At];if(ps.type!==co.type)return!0;if(co.type==="map"){let go=ps,ks=co;if(go.source!==ks.source||go.channel!==ks.channel)return!0}else if(co.type==="mouse"&&ps.axis!==co.axis)return!0}return!1})()){if(re&&he)for(let Ie of Object.keys(re))Ie in he&&re[Ie].type!==he[Ie].type&&(delete Z.mouseDriverState[Ie],delete Z.autoAnimateState[Ie],delete Z.mapValues[Ie]);ue=!0}else if(he)for(let[Ie,ct]of Object.entries(he)){let At=rt(Z,Ie,ct);ct.type==="map"&&(Xe(Z,`_map_${Ie}_inputMin`,At.inputMin),Xe(Z,`_map_${Ie}_inputMax`,At.inputMax),Xe(Z,`_map_${Ie}_outputMin`,At.outputMin),Xe(Z,`_map_${Ie}_outputMax`,At.outputMax),Xe(Z,`_map_${Ie}_curve`,At.curve))}}if(Y.transform!==void 0){let re=Z.metadata.transform,he={offsetX:Y.transform.offsetX??re?.offsetX??0,offsetY:Y.transform.offsetY??re?.offsetY??0,rotation:Y.transform.rotation??re?.rotation??0,scale:Y.transform.scale??re?.scale??1,anchorX:Y.transform.anchorX??re?.anchorX??.5,anchorY:Y.transform.anchorY??re?.anchorY??.5,edges:Y.transform.edges??re?.edges??"transparent"},Ie=Ke(Z);Z.metadata.transform=he;let ct=Cl(he);if(Ie!==ct||re&&re.edges!==he.edges)ue=!0;else if(ct)for(let[At,ps]of Object.entries(ce(Z)))Xe(Z,`_xform_${At}`,ps)}if(Y.boundingBox!==void 0&&Y.boundingBox!==null&&Z.boundingBoxDeclaration!==void 0){let re=ye(Z);if(Z.metadata.boundingBox=Y.boundingBox,re){let he=xe(Z);if(he)for(let[Ie,ct]of Object.entries(he))Xe(Z,`_bbox_${Ie}`,ct)}else ue=!0}else Y.boundingBox===null&&Z.metadata.boundingBox!==void 0&&(Z.metadata.boundingBox=void 0,ue=!0);ue?Br():lr()},ln=V=>{let Y=p.get(V);if(!Y)return;for(let ue of _t(V))ln(ue.id);m===V&&(m=null);let Z=_.get(Y.parentId);Z&&(Z.delete(V),Z.size===0&&_.delete(Y.parentId)),p.delete(V),ad(),Br()},Ni=()=>{let V=Ne.deltaTime;G=mK(I,G,V,performance.now());for(let Y of p.values()){let Z=Y.metadata.maps;if(Z){for(let ue in Y.mouseDriverState){let re=Y.mouseDriverState[ue],he=Z[ue];if(he){if(he.type==="mouse-position"){let Ie=he.smoothing??0,ct=he.momentum??0,At=he.x===void 0||he.x==="mouse",ps=he.y===void 0||he.y==="mouse",co,go;if(At){let[ya,qi]=Zb(re.currentX,re.velocityX,F,Ie,ct,V);re.currentX=ya,re.velocityX=qi,co=ya}else co=he.x,re.velocityX=0;if(ps){let[ya,qi]=Zb(re.currentY,re.velocityY,Q,Ie,ct,V);re.currentY=ya,re.velocityY=qi,go=ya}else go=he.y,re.velocityY=0;let ks=he.reach??1,Es=he.originX??.5,cr=he.originY??.5,Vr=he.invertX?-1:1,Cr=he.invertY?-1:1,qo=Es+Vr*(co-Es)*ks,Xi=cr+Cr*(go-cr)*ks,tc=qo,sc=Xi,k_=Y.metadata.boundingBox;if(k_&&Y.boundingBoxDeclaration?.supportsResizeFit&&ye(Y)){let ya=Ax(k_,D(),M()),qi=sS(qo,Xi,{centerX:ya.centerX,centerY:ya.centerY,halfWidthUV:ya.halfWidthUV,halfHeightUV:ya.halfHeightUV,rotationDeg:ya.rotation,aspectRatio:be()});tc=qi.x,sc=qi.y}re.liveX=tc,re.liveY=sc;let R_=Y._liveHandles?.[`_smoothed_${ue}`];R_ instanceof Hn&&R_.setComponents(tc,1-sc)}else if(he.type==="mouse"){let Ie=he.smoothing??0,ct=he.momentum??0,At=he.axis==="x"?F:Q,[ps,co]=Zb(re.currentX,re.velocityX,At,Ie,ct,V);re.currentX=ps,re.velocityX=co;let go=Math.max(.001,ps),ks=Y.mapValues[ue],Es=ks?ks.outputMin+(ks.outputMax-ks.outputMin)*Math.pow(go,Math.pow(2,-ks.curve*2)):go;re.liveScalar=Es,Xe(Y,`_smoothed_${ue}`,Es)}}}for(let ue in Y.autoAnimateState){let re=Z[ue];if(!re||re.type!=="auto-animate")continue;let he=G*(re.speed??1)*.2,Ie,ct=re.easing??re.waveform??"sine";if(re.mode==="loop")Ie=Q$((he%1+1)%1,ct);else{let Es=(he%1+1)%1;Ie=Q$(Es<.5?Es*2:(1-Es)*2,ct)}let At=Y.mapValues[ue],ps=At?At.outputMin:J(Y,ue,re.outputMin),co=At?At.outputMax:J(Y,ue,re.outputMax),go=ps+Ie*(co-ps),ks=Y.uniforms[ue];if(ks?.compileTimeWhen){let Es=ks._lastCompiledValue;ks.compileTimeWhen(Es,go)&&(ks._lastCompiledValue=go,Br())}Xe(Y,`_smoothed_${ue}`,go)}}}},ni=()=>{let V=Ne.deltaTime;for(let Y of p.values()){let Z=Y.definition.animatedTime;if(Z){let re=Y.uniforms[Z.speed],he=re&&Number(re.value)||0,Ie=$l(ht(Y));Ie.advance(V,he),Xe(Y,"_animTime",Ie.value)}let ue=Y.definition.extraAnimatedTimes;if(ue)for(let[re,he]of Object.entries(ue)){let Ie=Y.uniforms[he],ct=Ie&&Number(Ie.value)||0,At=$l(St(Y,he));At.advance(V,ct),Xe(Y,`_animTime_${re}`,At.value)}}},Sn=(V,Y)=>pK(V,Y,{maxTextureDim:$,pixelRatio:C,viewportWidth:typeof window<"u"?window.innerWidth:V,viewportHeight:typeof window<"u"?window.innerHeight:Y}),An=()=>{let V=(typeof window<"u"?window.devicePixelRatio:1)||1;return Math.min(V,hS())},En=(V,Y,Z,ue)=>{f=V,A=Y,E=Z,P=ue,z2(Z,ue),R||(R=!0,p.size>0&&Br());let{width:re,height:he}=so();i&&(i.width=re,i.height=he);for(let Ie of y)Ie.passManager.resize(re,he);for(let Ie of y)for(let ct of Ie.ir.onResize)try{ct({width:re,height:he})}catch(At){console.error("[gpu] composition onResize error:",At)}for(let Ie of p.values()){if(Ke(Ie)&&Xe(Ie,"_xform_aspectRatio",be()),ye(Ie)){let ct=xe(Ie);if(ct)for(let[At,ps]of Object.entries(ct))Xe(Ie,`_bbox_${At}`,ps)}Tt(Ie)}N=0,Yi()},ra=(V,Y)=>{V<=0||Y<=0||V===U&&Y===k||(U=V,k=Y,ge={width:V,height:Y},!Me&&typeof requestAnimationFrame=="function"&&(Me=!0,requestAnimationFrame(()=>{if(Me=!1,!ge)return;let Z=ge;ge=null;let{width:ue,height:re}=Sn(Z.width,Z.height);En(ue,re,Z.width,Z.height)})))},Mn=V=>{let Y=V[0];if(!Y)return;let Z,ue;if(Y.contentBoxSize){let re=Array.isArray(Y.contentBoxSize)?Y.contentBoxSize[0]:Y.contentBoxSize;re?(Z=Math.round(re.inlineSize),ue=Math.round(re.blockSize)):(Z=Math.round(Y.contentRect.width),ue=Math.round(Y.contentRect.height))}else Z=Math.round(Y.contentRect.width),ue=Math.round(Y.contentRect.height);Z===0||ue===0||ra(Z,ue)},Ql=V=>{let Y=V[0];Y&&(L=Y.isIntersecting)},Va=()=>l&&!!t&&!!s&&f>0&&A>0,ec=V=>{let Y=V.systemHandles,{width:Z,height:ue}=so(),re=An(),he=(Ie,ct)=>{let At=Y[Ie];At instanceof Hn&&(At.value=ct)};he("time",G),he("viewportSize",[Z,ue]),he("logicalViewportSize",[D()*re,M()*re]),he("aspect",Z/Math.max(1,ue)),he("pointer",[F,Q]),he("pointerActive",ae?1:0)},T_=V=>{for(let Y of V)try{Y(Ne)}catch(Z){console.error("[gpu] render callback error:",Z)}},S_=V=>{if(!Va())return;let Y=performance.now(),Z;if(V!==void 0)Z=V;else{let he=_K(Y,{lastRenderTime:N,isVisible:L,forceFullFrameRate:B});if(!he.render)return;Z=he.deltaTime}N=Y,Pe&&performance.mark("shader-cpu-start"),Ne.deltaTime=Z,Ne.pointer.x=F,Ne.pointer.y=Q,Ne.pointerActive=ae,Ne.dimensions.width=f,Ne.dimensions.height=A;let ue=null,re=null;if(fK({updateDrivers:()=>{Ni(),ni(),ot()},ensureComposition:()=>((w||g===null)&&(g=Er(),w=!1),g===null?!1:(ue=h.getOrBuild(g,()=>Tn(g)),nn(ue),!!x)),beforeRender:()=>T_(x.ir.onBeforeRender),flush:()=>{ec(x.store),x.store.flush()},render:()=>{try{if(Pe&&performance.mark("shader-gpu-start"),re=h.renderValue??ue,re?.passManager.render(s,Ne),Pe){performance.mark("shader-gpu-end");try{performance.measure("shader-gpu-time","shader-gpu-start","shader-gpu-end");let he=performance.getEntriesByName("shader-gpu-time")[0];he&&Ve.recordGpuTime(he.duration),performance.clearMeasures("shader-gpu-time"),performance.clearMarks("shader-gpu-start"),performance.clearMarks("shader-gpu-end")}catch{}}}catch(he){console.error("[gpu] render frame error:",he)}},markReady:()=>{h.markReady(g),Oe&&!Ge&&(Ge=!0,Oe=!1,ke&&queueMicrotask(ke))},afterRender:()=>T_((re??x).ir.onAfterRender)}),Pe){performance.mark("shader-cpu-end");try{performance.measure("shader-cpu-time","shader-cpu-start","shader-cpu-end");let he=performance.getEntriesByName("shader-cpu-time")[0];he&&Ve.recordCpuTime(he.duration),performance.clearMarks("shader-cpu-start"),performance.clearMarks("shader-cpu-end"),performance.clearMeasures("shader-cpu-time")}catch{}}Ve.recordFrame(performance.now()-Y)},Yi=()=>S_(void 0),A_=async()=>{if(!Va())throw new Error("Renderer is not ready");let V=He.running;V&&rd(),N=0,Yi(),t&&await eU(t),V&&od()},E_=async V=>{S_(V),t&&await eU(t)},od=()=>{He.running||!z||(Ve.setRendering(!0),He.start())},rd=()=>{He.running&&(He.stop(),Ve.setRendering(!1))},M_=V=>{if(!i)return;j=i.getBoundingClientRect();let Y,Z;if("touches"in V){if(V.touches.length===0)return;Y=V.touches[0].clientX,Z=V.touches[0].clientY}else Y=V.clientX,Z=V.clientY;F=(Y-j.left)/j.width,Q=(Z-j.top)/j.height},Ph=V=>{!l||!i||(M_(V),lr())},kh=V=>{!l||!i||(M_(V),lr())},Rh=()=>{l&&(ae=!1,lr())},$h=()=>{l&&(ae=!1,lr())},Gi=()=>{ae=!0,lr()},Wi=()=>{ae=!0,lr()},ad=()=>{let V=!1;for(let Y of p.values()){if(Y.usesPointer){V=!0;break}if(gK(Y.uniforms?.shape?.value)){V=!0;break}if(Y.metadata.maps){for(let Z of Object.values(Y.metadata.maps))if(Z&&typeof Z=="object"&&"type"in Z){let ue=Z.type;if(ue==="mouse"||ue==="mouse-position"){V=!0;break}}if(V)break}}V&&!q?(q=!0,!te&&i&&(te=yK.register({onMouseMove:Ph,onTouchMove:kh,onMouseUp:Rh,onTouchEnd:$h}),i.addEventListener("mousedown",Gi),i.addEventListener("touchstart",Wi))):!V&&q&&(q=!1,te&&(te(),te=null),i&&(i.removeEventListener("mousedown",Gi),i.removeEventListener("touchstart",Wi)))},C_=()=>{if(v.length===0)return;let V=[...v];v=[];for(let Y of V)ha(Y.id,Y.definition.fragment,Y.parentId,Y.metadata,Y.uniforms,Y.definition,Y.domCanvas)},Uh=V=>{if(!We){We=!0;try{rd()}catch{}qe&&queueMicrotask(()=>{try{qe?.(V)}catch(Y){console.error("[gpu] onDeviceLost callback threw:",Y)}})}},Dh=async V=>{if(V.context!==void 0)throw new Error("[gpu] initialize({ context }) is not supported \u2014 this renderer is WebGPU-only. Remove the WebGL `context` option.");if(l||c)return;let{canvas:Y,resizeTarget:Z,enablePerformanceTracking:ue=!1,colorSpace:re="p3-linear",toneMapping:he="linear",gpu:Ie,forceFullFrameRate:ct=!1,observeElement:At=!0,timeOrigin:ps}=V;ps!=null&&(I=ps),Pe=ue,B=ct,Se=re,Ae=he,c=!0,u=new AbortController;let co=u;try{if(De=UE,De(re),co.signal.aborted||(i=Y,e=await rK({device:Ie?.device,adapter:Ie?.adapter,onDeviceLost:qo=>Uh(qo.message||qo.reason||"unknown")}),co.signal.aborted))return;t=e.root,C=An();let go=t.device.limits?.maxTextureDimension2D;typeof go=="number"&&go>0&&($=go),r=dK(t),a=mS(t),typeof window<"u"&&(pe=()=>P_(),window.addEventListener("beforeunload",pe),_e=()=>{if(U>0&&k>0){let qo=U,Xi=k;U=0,k=0,ra(qo,Xi)}},window.addEventListener("resize",_e,{passive:!0}));let ks=Y.getBoundingClientRect();j=ks,L=!At||ks.width>0&&ks.height>0&&ks.top<window.innerHeight&&ks.bottom>0&&ks.left<window.innerWidth&&ks.right>0,z=!0;let Es=ks.width>0?ks.width:Y.width,cr=ks.height>0?ks.height:Y.height,Vr=Math.round(Es),Cr=Math.round(cr);if(Vr>0&&Cr>0){U=Vr,k=Cr;let{width:qo,height:Xi}=Sn(Vr,Cr);f=qo,A=Xi,E=Vr,P=Cr,R=!0,z2(Vr,Cr);let{width:tc,height:sc}=so();Y.width=tc,Y.height=sc}else R=!1;if(s=aK(t,Y),At&&typeof ResizeObserver<"u"){let qo=Z??Y.parentElement;qo?(ne=new ResizeObserver(Mn),ne.observe(qo)):console.warn("[gpu] no element available for resize observation \u2014 use resize() manually"),typeof IntersectionObserver<"u"&&(oe=new IntersectionObserver(Ql,{threshold:0,rootMargin:"128px"}),oe.observe(Y))}if(co.signal.aborted)return;l=!0,d=!0,C_(),f>0&&A>0&&Yi(),z&&od()}catch(go){console.error("[gpu] initialization error:",go)}finally{c=!1,u===co&&(u=null)}},P_=()=>{u&&u.abort(),ne&&(ne.disconnect(),ne=null),oe&&(oe.disconnect(),oe=null),te&&(te(),te=null),i&&(i.removeEventListener("mousedown",Gi),i.removeEventListener("touchstart",Wi)),pe&&typeof window<"u"&&(window.removeEventListener("beforeunload",pe),pe=null),_e&&typeof window<"u"&&(window.removeEventListener("resize",_e),_e=null),X!==null&&typeof cancelAnimationFrame=="function"&&(cancelAnimationFrame(X),X=null),rd(),h.clear();for(let V of[...y])Mr(V);x=null;try{r?.destroy()}catch{}try{e?.createdDevice&&t?.destroy()}catch{}p.clear(),m=null,_.clear(),v=[],d=!1,ge=null,Me=!1,i=null,s=null,r=null,a=null,t=null,e=null,l=!1,c=!1,R=!1,u=null,f=0,A=0,E=0,P=0,g=null,w=!0,L=!1,z=!0,F=.5,Q=.5,ae=!1,ke=null,Ge=!1,Oe=!1,qe=null,We=!1};return{initialize:Dh,cleanup:P_,registerNode:ha,removeNode:ln,updateUniformValue:Oi,updateNodeMetadata:oo,isInitialized:()=>l,resize:(V,Y)=>{t&&ra(V,Y)},startAnimation:od,stopAnimation:rd,renderAndWait:A_,renderSyntheticFrame:E_,getPerformanceStats:()=>{let V=Math.max(0,p.size-1),Y=x?x.ir.rttPasses.length:0;Ve.updateNodeCounts(V,Y);let Z={render:{calls:x?x.passManager.passCount:0},programs:{length:h.size},memory:{textures:r?r.textureCount:0}};return Ve.getStats(Z)},getLiveDriverValue:(V,Y)=>{let Z=p.get(V)?.mouseDriverState?.[Y];return!Z||Z.liveX===void 0||Z.liveY===void 0?null:{x:Z.liveX,y:Z.liveY}},getLiveScalarValue:(V,Y)=>{let Z=p.get(V);if(!Z)return null;let ue=Z.metadata.maps?.[Y];if(ue?.type==="auto-animate"){let re=Z._liveHandles?.[`_smoothed_${Y}`],he=re instanceof Hn?re.value:void 0;return typeof he=="number"?he:null}return ue?.type==="mouse"?Z.mouseDriverState[Y]?.liveScalar??null:null},getNodeRegistry:()=>({nodes:new Map(p)}),getRendererType:()=>"webgpu",getInternalRenderer:()=>t?{device:t.device,adapter:e?.adapter,root:t}:null,setForceFullFrameRate:V=>{let Y=B;return B=V,Y},beginRecordingResolution:(V,Y,Z)=>{if(!t||V<=0||Y<=0)return()=>{};let ue=C,re=f,he=A,Ie=E,ct=P,At=U,ps=k;return C=Z,En(V,Y,V,Y),()=>{t&&(C=ue,En(re,he,Ie,ct),U=At,k=ps)}},setResolutionScale:V=>{if(!t)return;let Y=Math.max(.05,Math.min(V,1)),Z=Math.max(.01,An()*Y);if(Math.abs(C-Z)<.001)return;C=Z;let ue=E||f,re=P||A;if(ue<=0||re<=0)return;let{width:he,height:Ie}=Sn(ue,re);En(he,Ie,ue,re)},setTimeOrigin:V=>{I=V},setOnReady:V=>{ke=V,V&&Ge&&queueMicrotask(V)},setOnDeviceLost:V=>{qe=V},__testing:{needsTransformation:Cl,findChildNodes:_t,buildFieldInits:V=>{let Y=p.get(V);return Y?zt(Y):null},stepAnimatedTime:V=>{Ne.deltaTime=V,ni()},getAnimatedTimeValue:V=>{let Y=p.get(V);return Y?.definition.animatedTime?$l(ht(Y)).value:null},writeExtraField:(V,Y,Z)=>{let ue=p.get(V);ue&&Qt(ue,Y,Z)},readExtraField:(V,Y)=>{let Z=p.get(V)?._liveHandles?.[Y];return Z instanceof Hn?Z.value:void 0},getNodeRegistry:()=>({nodes:p,rootId:m,parentToChildren:_}),getParentToChildren:()=>_,getPendingRegistrations:()=>[...v],getFrameDiagnostics:()=>({deltaTime:Ne.deltaTime,pointerX:F,pointerY:Q,pointerActive:ae,globalElapsedTime:G,lastRenderTime:N,isVisible:L,forceFullFrameRate:B,sharedTimeOrigin:I,animating:He.running,mouseListenersNeeded:q}),computeStructuralHash:Er,isStructuralDirty:()=>w,clearStructuralDirty:()=>{w=!1},setTestReady:V=>{l=!0,d=!0,V&&(f=V.width,A=V.height,E=V.width,P=V.height,R=!0),C_()}}}}var Ch={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 Kb(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,Ch.x),y:t(e.y,Ch.y),width:t(e.width,Ch.width),height:t(e.height,Ch.height),origin:e.origin??"top-left",rotation:e.rotation??0,...e.cornerRadius?{cornerRadius:e.cornerRadius}:{},...e.lockAspect!==void 0?{lockAspect:e.lockAspect}:{}}}var sd={samplingRate:.05,collectionDuration:5e3,warmupDuration:500,sampleInterval:500,apiEndpoint:"https://shaders.com/api/telemetry"};function xK(e){return e.includes("Edg/")||e.includes("EdgiOS")?"Edge":e.includes("OPR/")||e.includes("Opera/")?"Opera":e.includes("Chrome/")||e.includes("CriOS")?"Chrome":e.includes("Firefox/")||e.includes("FxiOS")?"Firefox":e.includes("Safari/")&&!e.includes("Chrome")?"Safari":"Other"}function bK(e){return/iPad|Tablet|PlayBook/i.test(e)||/Android/i.test(e)&&!/Mobile/i.test(e)?"tablet":/Mobile|Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)?"mobile":"desktop"}function wK(){if(typeof window>"u"||typeof navigator>"u")return{domain:"unknown",browserFamily:"unknown",deviceType:"unknown"};let e=navigator.userAgent;return{domain:window.location.hostname,browserFamily:xK(e),deviceType:bK(e)}}var TK=class{renderer;version;sourceType;sessionId;frameSamples=[];sampleInterval=null;stopped=!1;constructor(e,t,s){this.renderer=e,this.version=t,this.sourceType=s,this.sessionId=`tel_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}stop(){this.stopped=!0,this.sampleInterval&&(clearInterval(this.sampleInterval),this.sampleInterval=null)}async start(){try{if(await this.sleep(sd.warmupDuration),this.stopped||(this.sampleInterval=setInterval(()=>{if(!this.stopped)try{let e=this.renderer.getPerformanceStats();this.frameSamples.push(e)}catch(e){console.error("Telemetry sampling error:",e)}},sd.sampleInterval),await this.sleep(sd.collectionDuration-sd.warmupDuration),this.stopped))return;if(this.sampleInterval&&(clearInterval(this.sampleInterval),this.sampleInterval=null),!this.stopped&&this.frameSamples.length>=5){let e=this.aggregateData();await this.sendTelemetry(e)}}catch(e){console.error("Telemetry collection error:",e)}}sleep(e){return new Promise(t=>setTimeout(t,e))}aggregateData(){let e=this.aggregatePerformance(),t=this.detectRendererType(),s=this.extractComponents(),r=wK();return{sessionId:this.sessionId,timestamp:Date.now(),collectionDuration:sd.collectionDuration,version:this.version,sourceType:this.sourceType,performance:e,renderer:t,components:s,environment:r}}aggregatePerformance(){if(this.frameSamples.length===0)return{fps:0,frameTime:{avg:0,min:0,max:0,p99:0},jankPercent:0,budgetUsed:0};let e=this.frameSamples.map(m=>m.avgFrameTime),t=this.frameSamples.map(m=>m.jankPercent),s=this.frameSamples.map(m=>m.budgetUsed),r=this.frameSamples.map(m=>m.fps),a=this.calculateMedian(r),i=this.calculateMean(e),l=Math.min(...e),c=Math.max(...e),d=this.calculatePercentile(e,99),u=this.calculateMean(t),p=this.calculateMean(s);return{fps:Math.round(a*10)/10,frameTime:{avg:Math.round(i*10)/10,min:Math.round(l*10)/10,max:Math.round(c*10)/10,p99:Math.round(d*10)/10},jankPercent:Math.round(u*10)/10,budgetUsed:Math.round(p*10)/10}}detectRendererType(){let e=this.frameSamples[this.frameSamples.length-1];return{type:this.renderer.getRendererType?.()||"webgl",drawCalls:e?.drawCalls??null,textureCount:e?.textureCount??null}}extractComponents(){try{let e=this.renderer.getNodeRegistry(),t=[];for(let[s,r]of e.nodes)r.parentId!==null&&t.push({name:r.componentName,requiresRTT:r.requiresRTT,renderOrder:r.metadata.renderOrder});return t.sort((s,r)=>s.renderOrder-r.renderOrder)}catch(e){return console.error("Failed to extract components:",e),[]}}async sendTelemetry(e){try{let t=await fetch(sd.apiEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});t.ok||console.warn("Telemetry send failed:",t.status,t.statusText)}catch(t){console.error("Telemetry send error:",t)}}calculateMean(e){return e.length===0?0:e.reduce((t,s)=>t+s,0)/e.length}calculateMedian(e){if(e.length===0)return 0;let t=[...e].sort((r,a)=>r-a),s=Math.floor(t.length/2);return t.length%2===0?(t[s-1]+t[s])/2:t[s]}calculatePercentile(e,t){if(e.length===0)return 0;let s=[...e].sort((a,i)=>a-i),r=Math.ceil(t/100*s.length)-1;return s[Math.max(0,r)]}};function SK(e=!1,t=!1){return e||typeof navigator<"u"&&navigator.doNotTrack==="1"?!1:t?!0:Math.random()<sd.samplingRate}function sU(e,t,s=!1,r=!1){return SK(s,r)?new TK(e,t,r?"preview":"shader"):null}function oU(){if(typeof window>"u"||!window.location)return!1;let e=window.location.hostname;return!e.includes("shaders.com")&&e!=="localhost"&&e!=="127.0.0.1"}function Jb(e){if(typeof e!="object"||e===null||!("type"in e))return!1;let t=e;return t.type==="map"||t.type==="mouse"||t.type==="mouse-position"||t.type==="auto-animate"}var rU=new Set(["opacity","blendMode","visible","transform","boundingBox","maskSource","maskType"]);async function Qb(e,t,s){let r=new Map;if(qb().forEach(g=>{r.set(g.definition.name,g.definition)}),!e.style.width||!e.style.height){let g=e.getBoundingClientRect(),w=g.width>0?g.width:e.width,f=g.height>0?g.height:e.height;w>0&&!e.style.width&&(e.style.width=`${w}px`),f>0&&!e.style.height&&(e.style.height=`${f}px`)}function a(g){return{...g,props:g.props?{...g.props}:void 0,children:g.children?.map(a)}}let i={...t,components:t.components.map(a)},l=null,c=!1,d=!1;function u(g,w,f,A,E){let P=r.get(f.type);if(!P){console.warn(`[createShader] Unknown component type: ${f.type}`);return}let C=f.id||`${f.type}_${Date.now()}_${Math.random().toString(36).slice(2,9)}`,$={};for(let[R,D]of Object.entries(f.props||{}))!rU.has(R)&&Object.prototype.hasOwnProperty.call(P.props,R)&&Jb(D)&&($[R]=D);let U=B2(P,Object.fromEntries(Object.entries(P.props).map(([R,D])=>{let M=f.props?.[R]!==void 0?f.props[R]:D.default;return[R,Jb(M)?D.default:M]})),C),k={blendMode:f.props?.blendMode||"normal",opacity:f.props?.opacity,visible:f.props?.visible,renderOrder:E,id:f.id,maps:Object.keys($).length>0?{...$}:void 0,mask:f.props?.maskSource?{source:f.props.maskSource,type:f.props.maskType||"alpha"}:void 0,transform:f.props?.transform?{offsetX:0,offsetY:0,rotation:0,scale:1,anchorX:.5,anchorY:.5,edges:"transparent",...f.props.transform}:void 0,boundingBox:Kb(f.props?.boundingBox)};g.registerNode(C,P.fragment,A,k,U,P),w.set(C,{componentDef:P,uniforms:U,nodeId:C,component:f,currentMaps:{...$}}),f.children?.forEach((R,D)=>{u(g,w,R,C,D)})}async function p(){let g=tU(),w=new Map;s?.onReady&&g.setOnReady(s.onReady),await g.initialize({canvas:e,resizeTarget:e,enablePerformanceTracking:s?.enablePerformanceTracking||!1,colorSpace:s?.colorSpace,toneMapping:s?.toneMapping,observeElement:s?.observeElement,gpu:s?.gpu});let f={renderer:g,nodeEntryMap:w,telemetryCollector:null,telemetryStartTimeout:null};g.setOnDeviceLost(E=>{if(!(c||d)&&!(l!==null&&l!==f)){d=!0;try{s?.onError?.(E)}catch(P){console.error("[createShader] onError callback threw:",P)}(async()=>{try{if(m(f),l=null,c)return;let P=await p();if(c){m(P);return}l=P}catch(P){console.error("[createShader] rebuild after device loss failed:",P);try{s?.onError?.("rebuild_failed")}catch{}}finally{d=!1}})()}});let A="shader-root";if(g.registerNode(A,Tv.fragment,null,null,{},Tv),i.components.forEach((E,P)=>{u(g,w,E,A,P)}),oU()){let E=()=>{if(c||l!==f){f.telemetryStartTimeout=null;return}g.getPerformanceStats().fps>0?(f.telemetryCollector=sU(g,"3.0.436",s?.disableTelemetry||!1,!1),f.telemetryCollector&&f.telemetryCollector.start(),f.telemetryStartTimeout=null):f.telemetryStartTimeout=setTimeout(E,500)};f.telemetryStartTimeout=setTimeout(E,500)}return f}function m(g){if(g.telemetryCollector){try{g.telemetryCollector.stop()}catch{}g.telemetryCollector=null}g.telemetryStartTimeout!==null&&(clearTimeout(g.telemetryStartTimeout),g.telemetryStartTimeout=null);try{g.renderer.cleanup()}catch{}}l=await p();function _(g,w){if(!l)return;let{renderer:f,nodeEntryMap:A}=l,E=A.get(g);if(!E){console.warn(`[createShader] Component ID not found: ${g}`);return}E.component.props||(E.component.props={});let P=E.component.props;for(let[C,$]of Object.entries(w))if(rU.has(C))if(C==="maskSource")f.updateNodeMetadata(E.nodeId,{mask:$?{source:$,type:w.maskType||P.maskType||"alpha"}:void 0}),P.maskSource=$,"maskType"in w&&(P.maskType=w.maskType);else{if(C==="maskType")continue;C==="transform"?(f.updateNodeMetadata(E.nodeId,{transform:$}),P.transform=$):C==="boundingBox"?(f.updateNodeMetadata(E.nodeId,{boundingBox:Kb($)}),P.boundingBox=$):(f.updateNodeMetadata(E.nodeId,{[C]:$}),P[C]=$)}else Jb($)?Object.prototype.hasOwnProperty.call(E.componentDef.props,C)?(E.currentMaps[C]=$,f.updateNodeMetadata(E.nodeId,{maps:{...E.currentMaps}}),P[C]=$):console.warn(`[createShader] Ignoring PropDriver for unknown prop "${C}" on ${E.component.type}`):(C in E.currentMaps&&(delete E.currentMaps[C],f.updateNodeMetadata(E.nodeId,{maps:Object.keys(E.currentMaps).length>0?{...E.currentMaps}:void 0})),Object.prototype.hasOwnProperty.call(E.componentDef.props,C)&&(f.updateUniformValue(E.nodeId,C,$),P[C]=$))}function v(g,w){let f=e.getBoundingClientRect(),A=g??(f.width>0?f.width:e.width),E=w??(f.height>0?f.height:e.height);A>0&&E>0&&(e.style.width=`${A}px`,e.style.height=`${E}px`,l&&l.renderer.resize(A,E))}function h(){c=!0,l&&(m(l),l=null)}function y(){l&&l.renderer.stopAnimation()}function x(){l&&l.renderer.startAnimation()}return{update:_,resize:v,pause:y,resume:x,destroy:h}}var AK="shaders-preview-key";function EK(e,t){let s=new TextEncoder().encode(t),r=new Uint8Array(e.length);for(let a=0;a<e.length;a++)r[a]=e[a]^s[a%s.length];return r}function aU(e){try{let t=atob(e),s=new Uint8Array(t.length);for(let l=0;l<t.length;l++)s[l]=t.charCodeAt(l);let r=EK(s,AK),a=new TextDecoder().decode(r),i=JSON.parse(a);if(typeof i!="object"||i===null||Array.isArray(i))throw new Error("unexpected shape");return i}catch{throw new Error("Failed to decode preview definition: invalid data")}}var MK="https://shaders.com",CK="Unlock your Shaders Pro license",PK="https://shaders.com/dashboard?pricing=true",kK=new Set(["break","case","catch","class","const","continue","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield"]);function RK(e,t){let s=e.replace(/[^A-Za-z0-9]+/g," ").trim();if(!s)return t;let r=s.split(/\s+/).map((i,l)=>l===0?i.charAt(0).toLowerCase()+i.slice(1):i.charAt(0).toUpperCase()+i.slice(1)).join(""),a=/^[A-Za-z_$]/.test(r)?r:`_${r}`;return kK.has(a)?`_${a}`:a}function $K(e){let t=new Set(["style"]),s=new Map;return e?.length&&e.forEach((r,a)=>{if(!r.targets?.length)return;let i=RK(r.label,`keyProp${a}`),l=i,c=1;for(;t.has(l);)c++,l=`${i}${c}`;t.add(l),s.set(l,r)}),s}function e7(e,t){for(let s of t){if(s.id===e)return s;let r=s.children;if(r?.length){let a=e7(e,r);if(a)return a}}return null}function UK(e,t,s){if(t)for(let[r,a]of Object.entries(t)){let i=s.get(r);if(i)for(let l of i.targets??[]){let c=e7(l.component_id,e);c?.props&&l.prop in c.props&&(c.props[l.prop]=a)}}}async function DK(e,t){if(!t.shader&&!t.presetId||t.shader&&t.presetId)throw new Error("Exactly one of shader (preview token) or presetId must be provided");let s=t.apiBaseUrl||MK,r=t.presetId&&t.version?`?version=${encodeURIComponent(t.version)}`:"",a=t.shader?`${s}
247/api/preview/shader/${encodeURIComponent(t.shader)}`:`${s}/api/preview/preset/${encodeURIComponent(t.presetId)}${r}`,i=await fetch(a);if(!i.ok)throw new Error(`Failed to fetch preview: ${i.status} ${i.statusText}`);let l=await i.json(),c=l.preset??l.shader;if(!c?.definition||typeof c.definition!="string")throw new Error("Preview response missing encoded definition");let d=aU(c.definition),u=Array.isArray(c.key_props)?c.key_props:null,p=$K(u),m=new Map;for(let w of p.values())for(let f of w.targets??[]){let A=e7(f.component_id,d.components);A?.props&&f.prop in A.props&&m.set(`${f.component_id}:${f.prop}`,A.props[f.prop])}UK(d.components,t.configuration,p);let _=await Qb(e,d,{isPreview:!0,enablePerformanceTracking:!0}),{overlay:v,savedPosition:h,parentEl:y}=zK(e),x=_.destroy.bind(_),g=_;return g.destroy=()=>{y&&h!==void 0&&(y.style.position=h),v.remove(),x()},g.setConfiguration=w=>{if(u?.length)for(let[f,A]of p){let E=Object.prototype.hasOwnProperty.call(w,f)&&w[f]!==void 0;for(let P of A.targets??[]){let C=E?w[f]:m.get(`${P.component_id}:${P.prop}`);C!==void 0&&_.update(P.component_id,{[P.prop]:C})}}},g}function zK(e){let t=e.parentElement,s;t&&getComputedStyle(t).position==="static"&&(s=t.style.position,t.style.position="relative");let r=document.createElement("a");return r.href=PK,r.target="_blank",r.rel="noopener noreferrer",r.textContent=CK,Object.assign(r.style,{position:"absolute",bottom:"8px",right:"12px",fontSize:"11px",fontFamily:"system-ui, -apple-system, sans-serif",color:"rgba(255, 255, 255, 0.5)",textDecoration:"none",zIndex:"10",pointerEvents:"auto",transition:"color 0.2s ease"}),r.addEventListener("mouseenter",()=>{r.style.color="rgba(255, 255, 255, 0.8)"}),r.addEventListener("mouseleave",()=>{r.style.color="rgba(255, 255, 255, 0.5)"}),t&&t.appendChild(r),{overlay:r,savedPosition:s,parentEl:t}}async function IK(e){if(typeof navigator>"u"||!navigator.gpu)return null;try{let t=await navigator.gpu.requestAdapter({powerPreference:e?.powerPreference??"high-performance"});return t?{device:await t.requestDevice({requiredFeatures:[...t.features]}),adapter:t}:null}catch(t){return console.warn("[shaders] createSharedDevice failed; callers should fall back to per-instance device:",t),null}}export{DK as createPreview,Qb as createShader,IK as createSharedDevice};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.