0xbf65…7fd7

All memos sent from and to 0xbf65…7fd7.

C#<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" > <meta name="description" content="Holos | eclipse.art" > <title>Holos</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> </head> <body> <style>html, body { margin: 0; padding: 0; background-color: #0000; overflow: hidden; } canvas { background-color: #000; display: block; } </style><script>window.METADATA = {}; function onMetadata() { window.top?.postMessage( `genart:metadata:${JSON.stringify(window.METADATA)}`, "*" ); } function onDone(index = 0) { window["RENDERED_INDEX"] = index; window.top?.postMessage(`genart:done:${index}`, "*"); window.onImageRendered && window.onImageRendered(index); } function random_hash() { let chars = "0123456789abcdef"; let result = "0x"; for (let i = 64; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; return result; } function setMetadata(prop, value) { window.METADATA[prop] = value; } function getMetadata(prop) { return window.METADATA[prop]; } class Random { seed; decimals; constructor(hash, decimals = 3) { this.seed = parseInt(hash.slice(0, 16), 16); this.decimals = decimals; } random_dec() { this.seed ^= this.seed << 13; this.seed ^= this.seed >> 17; this.seed ^= this.seed << 5; return ( ((this.seed < 0 ? ~this.seed + 1 : this.seed) % 10 ** this.decimals) / 10 ** this.decimals ); } random_between(a, b) { return a + (b - a) * this.random_dec(); } random_int(a, b) { return Math.floor(this.random_between(a, b + 1)); } random_choice(x) { return x[Math.floor(this.random_between(0, x.length * 0.99))]; } } function createKeyListeners(ls) { const l = {}; const add = (ks, f) => (l[ks.join("_")] = f); const c = (n) => l[n] && l[n](); const d = document.body; let ks = []; d.addEventListener("keydown", (e) => { ks.push(e.key); if (ks.length == 2) c(ks.join("_")); }); d.addEventListener("keyup", () => { if (ks.length == 1) c(ks.join("_")); ks = []; }); ls.forEach((l) => add(l.keys, l.fn)); } </script><script id="genart-options">const options = { hash: random_hash() }</script><script>class T{constructor(e){this.t=new Random(e,4)}r(){return this.t.random_dec()}o(e){return e*this.r()}i(e,t){return e+(t-e)*this.r()}l(e){return Math.floor(this.o(e+1))}h(e,t){return Math.floor(this.i(e,t+1))}p(e){return this.r()<e}u(t){var o=this.r();for(let e=0;e<t.length;++e)if(o<=t[e])return e;return t.length-1}m(e){return e[this.l(e.length-1)]}v(e,t,o,r,i,n,s){return{S:this.h(e,t),s:s?0:this.h(o,r),b:this.h(i,n)}}map(e,t,o,r,i){return(e-t)/(o-t)*(i-r)+r}I(){var t={},e=this.o(Math.PI),o=.8*Math.sin(this.o(Math.PI/2)),e=(t.P=this.m([0,0,.15,.15,.3,.3,.7,.8]),o*=1-t.P,t.W=Math.cos(e)*o,t._=Math.sin(e)*o,t.k=this.p(.05),t.C=this.m([1,2,2,3,3,3,3,4,4,4,5,5]),t.T=this.m([0,0,0,1,1,2,3,4]),t.g=this.u([.01,.05,1]),t.M=this.p(.8),t.L=!t.M||!t.k&&this.p(.3),t.A=t.L&&!t.M,t.D=t.A&&1!=t.Coloring&&this.p(.01),t.O=t.k&&t.M,t.R=t.M&&t.L&&this.p(.1),t.F=t.M&&!t.L&&this.p(.1),t.H=this.m([0,0,1,1,0<t.T?2:1]),t.N=this.m([0,0,0,0,0,0,0,0,0,0,-1,1]),t.B=1==l||l%111==0?6:this.m([0,0,0,0,1,1,2,3,3,3,4,4,5,5,5]),t.G=6==t.B?4:this.m([0,1,2,3,4]),t.Uniform=this.p(.1),t.Clear=this.p(.01),t.Gaps=!t.Clear&&this.p(.05),t.Y=t.Gaps?t.C<3?[1,0]:t.C<5?[0,1]:[0,2]:[0,0],t.Response=t.Clear||t.Gaps?0:this.u([.94,.96,1]),t.X=this.h(20,50),t.q=this.h(this.map(t.C,1,5,50,200),500/t.C),t.Coloring=this.m([0,1,2,3]),t.K=!t.k&&t.Coloring<=1&&this.p(.1),t.Z=t.K?this.i(0,1):0,t.j=this.h(-5,5),[[27,170,45,-170,"Moss"],[300,200,75,160,"Kali"],[60,125,40,45,"Dope"],[161,161,65,180,"Zomp"],[187,217,65,180,"Steel"],[340,184,50,-140,"Amaranth"],[30,316,65,50,"Fandango"],[178,300,50,120,"Hollish"],[300,278,65,90,"Dazed"],[40,268,40,-90,"Orchid"]]),o=(t.U=this.h(1,e.length-1),e[t.U][0]),r=e[t.U][1],i=e[t.U][2]*(t.k?.5:1),n=e[t.U][3],e=(t.J=t.k?"Mono":e[t.U][4],t.V=this.v(o,o,70,90,80,90,t.k),t.$=this.v(r,r,60,80,i-30,10+i,t.k),t.e0=this.v(r,r,100,100,80,90,t.k),36*t.j);let s=t.K?1:r+n,a=t.K?360:r+n+e;a<s&&(o=s,s=a,a=o),t.k&&!t.M?(t.t0=this.v(s,s,0,0,70,90,t.k),t.o0=this.v(a,a,0,0,20,50,t.k)):(t.t0=this.v(s,s,50,80,70,90,t.k),t.o0={...t.t0,S:a}),t.r0=this.v(100,360,0,100,50,100,t.k),t.i0=this.v(100,360,0,70,50,100,t.k),t.n0=this.i(2,3),t.s0=this.i(.1,1),t.a0=t.Uniform?0:this.h(100,300),t.l0=this.i(0,.5),t.h0=this.i(2,3),t.p0=this.m([0,0,1,2,2,3,3]),t.u0=this.m([0,1]);i=t.V.S;t.c0=this.v(i-10,i+10,50,100,50,100,t.k),t.f0=t.k?2:this.u([.1,.4,1]),t.d0=this.i(.1,.5),t.m0=this.h(200,1e3),t.v0=this.map(t.m0,200,1e3,5,3),t.S0=this.h(1e3,5e3),t.I0=this.p(.01)?-1:1,t.P0=this.h(5,10),t.b0=this.h(10,30),t.w0=[];for(let e=0;e<t.w0.length;++e)t.w0.push(this.h(999));return t}}class g{constructor(e,t){this.count=e,this.r=t,this.radius=t*Q.radius}}class W{constructor(e,t){this.angle=e,this.r=t,this.radius=t*Q.radius,this.W0=map(t,X,_,0,1),this._0=this.k0=s(e,t).mult(Q.radius),this.C0=[0,0,0,0,0],this.random=k.r(),this.T0=k.h(0,K.length-1);let o;o=0==V.Coloring?this.W0:1==V.Coloring?abs(map(h0(e+L*HALF_PI),0,TWO_PI,V.K?0:-1,1)):(t=6*(this._0.x/Q.radius+V.Coloring-2),e=6*(this._0.y/Q.radius+V.Coloring-2),map(noise(t,e),.3,.7,0,1)),0!=V.Z&&(o=fract(o+V.Z)),colorMode(HSB),this.c=l0(V.t0,V.o0,o),this.g0=l0(V.t0,V.o0,1-o),colorMode(V.k?HSB:RGB),this.M0=color(red(this.c),green(this.c),blue(this.c),0)}L0(){vertex(this.k0.x,this.k0.y,this.k0.z)}}function M(e,t){return new p5.Vector(sin(t)*cos(e),sin(t)*sin(e),cos(t))}function p(e,t){return M(e,t*$())}function s(o,r){let i=p(o,r);if(0<V.B){let e=new p5.Vector(cos(o),sin(o)),t=1;1==V.B||2==V.B?(2==V.B&&(s=e.x,e.x=e.y,e.y=s),t=1.5*(s=e,a=X,s.x=1.75*abs(s.x),s.y=1.25*abs(s.y),l=sqrt(a*a-1),-1*(s.y-l)>s.x*l?p5.Vector.sub(s,new p5.Vector(0,l)).mag():p5.Vector.sub(s,new p5.Vector(1,0)).mag()-a)):3==V.B?t=1.25*function(e,t){e=function(e){return new p5.Vector(abs(e.x),abs(e.y),abs(e.z))}(e).sub(new p5.Vector(t,t));return function(e,t){return new p5.Vector(max(e.x,t),max(e.y,t),max(e.z,t))}(e,0).mag()+min(max(e.x,e.y),0)}(e,1.3*X):4==V.B?t=1.5*h(e,X,2):5==V.B?t=2*h(e,X,3.55):6==V.B&&(t=1.5*(l=e,a=X,l.x=.78*l.x,l.y=.72*l.y,n=l.y-abs(l.x)*sqrt(1-abs(l.x))+.2,(n=new p5.Vector(l.x,n,l.z)).mag()-a)),e=p(o,X*t),i=e.lerp(i,map(r,X,_,0,1))}var n,s,a,l;return i}function h(e,t,o){e.y=-e.y;var r=new p5.Vector(.809016994375,-.587785252292),i=new p5.Vector(-r.x,r.y),i=(e.x=abs(e.x),e.sub(p5.Vector.mult(r,2*max(r.dot(e),0))),e.sub(p5.Vector.mult(i,2*max(i.dot(e),0))),e.x=abs(e.x),e.y-=t,p5.Vector.mult(new p5.Vector(-r.y,r.x),o).sub(new p5.Vector(0,1))),r=s0(e.dot(i)/i.dot(i),0,t);return p5.Vector.sub(e,p5.Vector.mult(i,r)).mag()*x(e.y*i.x-e.x*i.y)}class a{constructor(){this.width=window.innerWidth,this.height=window.innerHeight,this.diam=min(this.width,this.height)/u,this.radius=this.diam/2,this.scale=parseFloat(options.scale??min(this.diam/800,1))}}const e=[1.1,.65,.57],E=6;let o,O,t=!1,R=0,F=0,H=0,N=R,B=F,G=H,y=void 0,Y=void 0,r=!1,z,r0=void 0,i=0,X,_,i0=e[0],q,u=1,l,L,n0,K=[0,0,0,0,0,0,0,0,0,0],Z,j,U,J,Q,k,V;var GET_HOLOS=()=>({holosId:l,done:t,DIM:Q??{},zoom:H,colorBg:V?.$?.toString("#rrggbb")??"#000",options:options,metadata:window.METADATA??{},autoPilot:Y??!1});function SET_HOLOS(e={}){(r=Boolean(e.mouse)||Boolean(e.mouseProg))&&(y=!0,R=e.mouseProg?e.mouseProg.x*Q.width:e.mouse.x,F=e.mouseProg?e.mouseProg.y*Q.height:e.mouse.y),null!=e.zoom&&(G=s0(e.zoom,0,2)),null!=e.autoPilot&&(Y=e.autoPilot)}function n(){window.parent.postMessage("holos:updated","*")}function setup(){function e(e,t){return t<e.length?e[t]:null}var t;Y=Boolean(options.autoPilot)??!1,u=parseFloat(options.distance??1),l=parseInt((options.tokenId??0).toString().slice(-4)),Q=new a,o=createCanvas(Q.width,Q.height,WEBGL),c(),t=V,t={Id:l,Shot:t.P<.5?"Wide":"Zoom",Globe:e(["Roots","Wire","Wire Deep","Wire Roots","Wire Black"],t.T),Palette:t.J,Family:t.J+(t.O?" Crystal":t.k?" Chrome":t.K?" Spectrum":0==t.j?" Roots":(t.j<0?"-":"+")+abs(t.j)),Reflection:e(["Shiny","Gradient","Wire"],t.H),Pupil:e(["Round","Predator","Prey","Diamond","Pentagon","Star","True Love"],t.B),Lens:e(["No Lens","Flat","Pentagon","Star","Pulse"],t.G),Response:1==t.Response?"Contracted":2==t.Response?"Dilated":void 0,"Iris Size":e(["Mini","Medium","Large"],t.g),"Iris Rings":t.C,"Iris Hues":t.k&&!t.O?1:t.K?7:Math.abs(t.j)+1,Ciliary:t.D?"Haystack":t.R?"Glass":t.A?"Wire":t.L?"Plastic Wire":"Plastic",Coloring:e(["Circular","Concentric","Blot","Chaos"],t.Coloring),Uniform:t.Uniform?"Yes":void 0,Slit:t.F?"Yes":void 0,Clear:t.Clear?"Yes":void 0,Gaps:t.Gaps?"Yes":void 0,Twist:t.N<0?"CW":0<t.N?"CCW":"No Twist",Stars:0<=t.I0?"CW":"CCW"},Object.entries(t).filter(([e,t])=>{null!=t&&setMetadata(e,t)}),onMetadata(),O=document.getElementById("defaultCanvas0").getContext("webgl"),q=color(0),console.log("Holos#"+l,{...options,DIM:Q},window.METADATA,"CLICK+SHIFT: dive, SPACE: lock, A: autopilot")}function draw(){r||void 0===y||0===mouseX&&0===mouseY||(R=mouseX,F=mouseY),Date.now()-r0<3e3?cursor(CROSS):noCursor();var n=r?2:0<touches?.length?touches.length:(keyIsDown(SHIFT)?1:0)+(mouseIsPressed?1:0),s=h0(atan2(V._,V.W)),a=min(new p5.Vector(V._,V.W).mag(),.99999),n=(y&&(Y?(noiseDetail(2,.3),i+=5e-5*deltaTime,R=.5*Q.width+map(noise(z.x,i),.05,.6,-1,1,!0)*Q.radius,F=.5*Q.height+map(noise(z.y,i),.05,.6,-1,1,!0)*Q.radius,G=map(noise(z.z,i),.05,.6,0,2,!0)):r||(G=n),H=lerp(H,G,.01),N=map(R,0,Q.width,-1,1),B=map(F,0,Q.height,-1,1),V.W=lerp(V.W,N,.1),V._=lerp(V._,B,.1)),i0=H<1?lerp(e[0],e[1],sin(HALF_PI*map(H,0,1,0,1))):lerp(e[1],e[2],1-cos(HALF_PI*map(H,1,2,0,1))),map(H,0,2,1,.25,!0)),l=Q.height*i0,h=map(H,1,1.9,1,0,!0),p=map(H,1,2,0,1,!0);camera(map(V.W*n,-1,1,Q.width,0),map(V._*n,-1,1,Q.height,0),l,Q.width/2,Q.height/2,0,0,1,0);for(let e=0;e<K.length;++e)K[e]=sin((TWO_PI+TWO_PI*(e/K.length))*(millis()/15e3));if(colorMode(HSB),q=lerpColor(q,l0(V.t0,V.o0,abs(map(s,0,TWO_PI,V.K?0:-1,1))),.99),noLights(),noStroke(),noFill(),colorMode(RGB),background(V.$),O.disable(O.DEPTH_TEST),translate(Q.width/2,Q.height/2),0!==Q.scale){blendMode(SCREEN),t0(new p5.Vector(0,0,-Q.radius),1.5*Q.radius,36,0,a0(V.V,.3),color(0,0)),t0(new p5.Vector(0,0,.95*Q.radius),.5*Q.radius,36,0,a0(q,.75),color(0,0));n=1.2*map(H,0,2,1,.3,!0)*Q.scale,l=(blendMode(REPLACE),0==V.T?(noStroke(),fill(V.V),sphere(Q.radius,32,32)):(rotateX(HALF_PI),2<=V.T&&(3<=V.T&&O.enable(O.DEPTH_TEST),noStroke(),fill(3==V.T?V.$:color(0)),sphere(.9999*Q.radius)),noFill(),strokeWeight(n),stroke(V.V),sphere(Q.radius),rotateX(-HALF_PI),O.disable(O.DEPTH_TEST)),blendMode(BLEND),noStroke(),fill(0),HALF_PI-$());t0(new p5.Vector(0,0,sin(l)*Q.radius),cos(l)*Q.radius,36,0),noStroke(),beginShape(TRIANGLES);for(let e=0;e<U.length;++e)fill(U[e].c),o0(U[e].k0,map(K[U[e].T0],-1,1,.5,1)*map(U[e].W0,.5,1,1,.5,!0)*V.v0*Q.scale,n0,0);endShape();l=HALF_PI-$()*X;let e=.6+.4*abs(K[0]);var u=e0(q,255*p),c=color(0,0),f=2*Q.radius,p=.5*Q.radius*p;blendMode(ADD),noStroke(),t0(new p5.Vector(0,0,sin(l)*p),cos(l)*f*e,36,0,u,c),blendMode(BLEND),push(),rotate(millis()/5e4*V.I0,new p5.Vector(0,0,1));for(let t=0;t<E;++t){var d,m=t/(E-1),v=0<t?millis()/(4e4*t):0,S=s0(map(H,0,1,.25-t,1,!0),0,1);rotate(v*V.I0,new p5.Vector(0,0,1)),strokeWeight(map(m,0,1,1,3)),stroke(lerpColor(e0(color(255),map(S,0,1,0,200/Q.scale)),e0(V.V,map(S,0,1,0,160/Q.scale)),m)),beginShape(POINTS);for(let e=0;e<J.length;++e)J[e].track==t&&(d=5*K[J[e].T0],vertex(J[e].k0.x,J[e].k0.y,J[e].k0.z-d));endShape()}pop(),blendMode(BLEND);let t,o=1;t=V.A?(noFill(),strokeWeight(map(H,0,1,1.2,.4,!0)*Q.scale),o=16,V.D?TRIANGLES:LINES):(V.Depth&&O.enable(O.DEPTH_TEST),V.L?(strokeWeight(map(H,0,1,.2,.1,!0)),stroke(a0(q,.8))):noStroke(),TRIANGLES);var I=ceil(j.length/o);for(let e=0;!(e<V.Clear)&&o;++e){var P=e*I;if(P>=j.length)break;V.A&&stroke(e0(j[P].c,128)),beginShape(t);for(let e=P;e<P+I&&e<j.length;++e){var b=j[e];if(!(b.random>max(.6,Q.scale))){var w,W,_=1-map(K[b.T0],-1,1,.12,0)*b.W0;for(let e=b.C0.length-1;0<e;--e)0!=floor(b.C0[e])&&(w=j[int(floor(b.C0[e]))],W=j[int(floor(b.C0[V.F?e:e-1]))],V.A?(b.L0(),w.L0(),b.L0()):(fill(b.c),b.L0(),fill(w.M0),w.L0(),fill(W.M0)),vertex(W.k0.x,W.k0.y,W.k0.z*_))}}endShape()}V.Depth&&O.disable(O.DEPTH_TEST),0<V.G&&(p=e0(V.V,255*h),f=e0(p,V.G<3?255*h:0),u=Q.radius,V.G<3&&(e=1),c=2==V.G||3==V.G?5:36,blendMode(ADD),noStroke(),t0(new p5.Vector(0,0,sin(l)*u),cos(l)*u*e,c,radians(-18),p,f)),blendMode(SCREEN);var k=1==V.u0;k?(strokeWeight(2),stroke(V.i0),noFill(),beginShape(POINTS)):(noStroke(),fill(V.i0),beginShape(TRIANGLES));for(let e=0;e<j.length;++e){var C=j[e];C.random>max(.5,Q.scale)||(k||C.random<V.l0)&&(k?C.L0():p0(C.k0,V.h0*Q.scale,s))}endShape(),blendMode(SCREEN),noStroke(),fill(V.r0),beginShape(TRIANGLES);var T=V.n0*Q.scale;for(let e=0;e<j.length;++e){var g,M=j[e];M.random>max(.5,Q.scale)||M.random<V.s0&&M.random>V.l0&&(g=map(K[M.T0],-1,1,0,TWO_PI),0==V.p0?o0(M.k0,T,16,g):1==V.p0?o0(M.k0,T,4,g):2==V.p0?o0(M.k0,T,5,g):p0(M.k0,T,g))}endShape(),blendMode(2==V.H?SCREEN:ADD);h=2==V.H,l=1==V.H,u=map(H,0,1.1,V.k?.8:3,0,!0),c=l?0:u;let r=e0(V.e0,255*u),i=e0(V.e0,255*c);h?(strokeWeight(n),stroke(r),noFill(),r=i=null):(noStroke(),fill(r));var L=max(map(a,.1,1,0,1),0),x=HALF_PI/2;for(let e=0;e<Z.length-1;++e){var A=Z[e].r,D=.8*(Z[e+1].r-A);u0(s-x,s+x,A+D,A+D-D*L,r,i),u0(s-.5*x+PI,s+.5*x+PI,A+.1*D,A+D*(.1+L),r,i)}}t||(onDone(),t=!0)}function mouseMoved(){void 0===y&&(y=!0),r0=Date.now()}function mousePressed(){y=!0,Y=!1,n()}function keyPressed(){var e;16==keyCode&&(y=!0),32==keyCode&&(y=!y),65==keyCode&&(Y=!Y,y=y||!0,n()),83==keyCode&&((e=createGraphics(o.width,o.height)).fill(0,255),e.rect(0,0,e.width,e.height),e.blendMode(BLEND),e.image(o,0,0),saveCanvas(e,"Holos#"+l,"png"))}function windowResized(){Q=new a,resizeCanvas(Q.width,Q.height),c(),n()}function $(){return 3.14159265*[.1,.15,.2][V.g]}function C(e){return color(e.S<0?e.S+360:e.S%360,e.s,e.b)}function c(){k=new T(options.hash),V=k.I(),noiseDetail(4,.5),noiseSeed(k.l(999)),colorMode(HSB,360,100,100),V.V=C(V.V),V.$=C(V.$),V.e0=C(V.e0),V.t0=C(V.t0),V.o0=C(V.o0),V.r0=C(V.r0),V.i0=C(V.i0),V.c0=C(V.c0),background(V.$),X=1==V.Response?.1:2==V.Response?.3:.2,_=1,y=!!Y||void 0,N=V.W,B=V._,R=map(N,-1,1,0,Q.width),F=map(B,-1,1,0,Q.height),B=map(F,0,Q.height,-1,1),H=V.P,G=0;var e=Date.now(),t=(z=new p5.Vector(k.l(e),k.l(e),k.l(e)),Q.scale<=.5&&V.M&&V.L&&(V.L=!1),Z=[],(_-X)/V.C);for(let e=0+V.Y[0];e<=V.C-V.Y[1];++e){var o=int(map(e,0,V.C,V.X,V.q)),r=X+e*t;Z.push(new g(o,r))}let i=1,n=0;for(let e=0;e<Z.length;++e)i=min(i,Z[e].r),n=max(n,Z[e].r);j=[],n0=k.m([5,6,16]),L=k.h(0,3);for(let t=0;t<Z.length;++t){var s=Z[t].r,a=0==V.B?Z[t].r:map(Z[t].r,X+.1,_,0,1);for(let e=0;e<Z[t].count;++e){var l=float(e)/float(Z[t].count)*TWO_PI,h=s+map(k.r(),0,1,-.02,.02)*a;j.push(new W(l,h))}}for(let e=0;e<V.a0;++e){var p=k.o(TWO_PI),u=i+k.o(n-i);j.push(new W(p,u))}(V.A||V.Depth)&&(1==V.Coloring?j.sort(function(e,t){return e.angle-t.angle}):j.sort(function(e,t){return e.W0-t.W0}));for(let o=0;o<j.length;++o){var c=radians(map(j[o].W0,0,1,V.P0,V.b0));for(let t=0;t<j.length;++t)if(j[o].radius<j[t].radius)if(function(e,t){e<0&&(e+=TWO_PI);t<0&&(t+=TWO_PI);t=abs(t-e);return t<PI?t:TWO_PI-t}(j[o].angle,j[t].angle)<=c&&(0==V.N||V.N==x(j[o].angle-j[t].angle))){var f=j[o].k0.dist(j[t].k0)/Q.radius;if(.02<=f&&f<=1&&f<1)for(let e=0;e<j[o].C0.length;++e)if(0==j[o].C0[e]||f<j[o].C0[e]%1){j[o].C0[e]=t+f;break}}}U=[];for(let e=0;e<V.m0*Q.scale;++e){var d=(1-cos(k.o(HALF_PI)))*V.d0,m=_-min(d,.5),v=k.o(TWO_PI),d=1-d/V.d0,m=new W(v,m),v=new W(v,_,d).k0.z;m.k0.z=lerp(v-(m.k0.z-v),m.k0.z,k.r()),m.c=0==V.f0?m.c:1==V.f0?m.g0:lerpColor(color(0),V.c0,d),U.push(m)}J=[];var S=V.S0*Q.scale;for(let e=0;e<S;++e){var I=floor(e/(S/E)),P=map(I,0,E-1,$(),PI),b=k.o(TWO_PI),P=k.i(0,P),w=k.i(.4,.98)*Q.radius,b={k0:M(b,P).mult(w),T0:k.h(0,K.length-1),track:I};J.push(b)}}function x(e){return e<0?-1:1}function s0(e,t,o){return e<t?t:o<e?o:e}function e0(e,t){return color(red(e),green(e),blue(e),t)}function a0(e,t){return color(red(e)*t,green(e)*t,blue(e)*t)}function l0(e,t,o){colorMode(HSB,360,100,100);var r=round(hue(e));let i=round(hue(t));i<r&&(i+=360);r=lerp(r,i,o)%360,e=lerpColor(e,t,o);return color(r,saturation(e),brightness(e),alpha(e))}function h0(e){for(;e<0;)e+=TWO_PI;for(;e>TWO_PI;)e-=TWO_PI;return e}function t0(t,o,r,i,e=null,n=null){var s=TWO_PI/r;beginShape(TRIANGLE_FAN),e&&n&&fill(e),vertex(t.x,t.y,t.z),e&&n&&fill(n);for(let e=0;e<=r;e++)vertex(t.x+cos(i+e*s)*o,t.y+sin(i+e*s)*o,t.z);endShape()}function o0(t,o,r,i){var n=TWO_PI/r;for(let e=0;e<r;e++)vertex(t.x,t.y,t.z),vertex(t.x+cos(i+e*n)*o,t.y+sin(i+e*n)*o,t.z),vertex(t.x+cos(i+(e+1)*n)*o,t.y+sin(i+(e+1)*n)*o,t.z)}function p0(e,t,o){var r=TWO_PI/3;vertex(e.x+cos(o+0*r)*t,e.y+sin(o+0*r)*t,e.z),vertex(e.x+cos(o+r)*t,e.y+sin(o+r)*t,e.z),vertex(e.x+cos(o+2*r)*t,e.y+sin(o+2*r)*t,e.z)}function u0(t,e,o,r,i=null,n=null){var e=e-t,s=int(ceil(e/(TWO_PI/54))),a=e/s;beginShape(TRIANGLE_STRIP);for(let e=0;e<=s;e++){var l=t+a*e,h=p(l,r).mult(Q.radius);i&&fill(i),vertex(h.x,h.y,h.z),h=p(l,o).mult(Q.radius),n&&fill(n),vertex(h.x,h.y,h.z)}endShape()} </script></body> </html>