function bloodFieldFnsTSL(s){const z=window.TSL,{float:o,vec3:i,vec4:d,Fn:b,If:y,select:L,mix:f,smoothstep:T,max:v,length:S,dot:A}=z,h=b(([t])=>t.sub(s.uOrigin).div(s.uSize)),c=b(([t])=>s.uDist.sample(h(t)).r.mul(2.5).sub(.5)),F=b(([t])=>s.uInside.sample(h(t)).r),u=b(([t])=>{const l=h(t),r=s.uFlowA.sample(l),m=r.xyz.mul(2).sub(1).mul(r.a).mul(s.uUmaxA).mul(s.uQa).toVar();return y(s.uHasB.greaterThan(.5),()=>{const w=s.uFlowB.sample(l);m.addAssign(w.xyz.mul(2).sub(1).mul(w.a).mul(s.uUmaxB).mul(s.uQb))}),m.mul(s.uVolScale)}),a=b(([t,l,r,m])=>{const w=i(l).toVar();return y(m.w.greaterThan(0),()=>{const V=t.sub(r.xyz),g=A(V,m.xyz);y(g.greaterThanEqual(0).and(g.lessThanEqual(s.uJetLen)),()=>{const B=S(V.sub(m.xyz.mul(g))),J=r.w.mul(g.div(s.uJetLen).mul(.8).add(1));y(B.lessThanEqual(J),()=>{const N=o(1).sub(g.div(s.uJetLen)).mul(o(1).sub(T(J.mul(.6),J,B)));w.assign(f(l,m.xyz.mul(m.w),N))})})}),w}),x=b(([t])=>a(t,a(t,u(t),s.uJetA,s.uJetAN),s.uJetB,s.uJetBN)),e=b(([t])=>{const l=s.uH,r=i(l,0,0),m=i(0,l,0),w=i(0,0,l);return i(c(t.add(r)).sub(c(t.sub(r))),c(t.add(m)).sub(c(t.sub(m))),c(t.add(w)).sub(c(t.sub(w)))).div(l.mul(2))}),n=b(([t])=>{const l=i(0).toVar();return y(s.uSwirl.w.greaterThan(0),()=>{const r=z.cross(s.uSwirl.xyz,t.sub(s.uSwirlC)),m=S(r),w=z.min(s.uSwirl.w.mul(m),s.uSwirlMax);y(m.greaterThan(1e-5),()=>{l.assign(r.mul(w.div(m)))})}),l});return{uvwOf:h,distAt:c,insideAt:F,velAt:u,fieldAt:x,gradDist:e,swirlAt:n}}function bloodNoiseFnsTSL(){const s=window.TSL,{float:z,vec3:o,Fn:i,mix:d,fract:b,floor:y,sin:L,dot:f}=s,T=i(([u])=>{const a=b(u.mul(.3183099).add(o(.1,.2,.3))).mul(17);return b(a.x.mul(a.y).mul(a.z).mul(a.x.add(a.y).add(a.z)))}),v=i(([u])=>{const a=y(u),x=b(u),e=x.mul(x).mul(z(3).sub(x.mul(2))),n=(t,l,r)=>T(a.add(o(t,l,r)));return d(d(d(n(0,0,0),n(1,0,0),e.x),d(n(0,1,0),n(1,1,0),e.x),e.y),d(d(n(0,0,1),n(1,0,1),e.x),d(n(0,1,1),n(1,1,1),e.x),e.y),e.z)}),S=i(([u])=>v(u).mul(.55).add(v(u.mul(2.1).add(7)).mul(.3)).add(v(u.mul(4.3).add(19)).mul(.15))),A=i(([u])=>{const a=o(f(u,o(127.1,311.7,74.7)),f(u,o(269.5,183.3,246.1)),f(u,o(113.5,271.9,124.6)));return b(L(a).mul(43758.5453))}),h=i(([u])=>{const a=y(u),x=b(u),e=x.mul(x).mul(z(3).sub(x.mul(2))),n=(t,l,r)=>A(a.add(o(t,l,r))).x;return d(d(d(n(0,0,0),n(1,0,0),e.x),d(n(0,1,0),n(1,1,0),e.x),e.y),d(d(n(0,0,1),n(1,0,1),e.x),d(n(0,1,1),n(1,1,1),e.x),e.y),e.z)}),c=i(([u])=>o(h(u),h(u.add(o(31.4,17.2,9.1))),h(u.add(o(-12.3,44.1,23.7)))).mul(2).sub(1)),F=i(([u])=>{const x=c(u.add(o(.12,0,0))).sub(c(u.sub(o(.12,0,0)))),e=c(u.add(o(0,.12,0))).sub(c(u.sub(o(0,.12,0)))),n=c(u.add(o(0,0,.12))).sub(c(u.sub(o(0,0,.12))));return o(e.z.sub(n.y),n.x.sub(x.z),x.y.sub(e.x)).div(2*.12)});return{hash3:T,vnoise:v,fbm:S,noise3:c,curlNoise:F}}Object.assign(window,{bloodFieldFnsTSL,bloodNoiseFnsTSL});
