!function(_){var $=_.noise={};function o(_,$,o){this.x=_,this.y=$,this.z=o}o.prototype.dot2=function(_,$){return this.x*_+this.y*$},o.prototype.dot3=function(_,$,o){return this.x*_+this.y*$+this.z*o};var t=[new o(1,1,0),new o(-1,1,0),new o(1,-1,0),new o(-1,-1,0),new o(1,0,1),new o(-1,0,1),new o(1,0,-1),new o(-1,0,-1),new o(0,1,1),new o(0,-1,1),new o(0,1,-1),new o(0,-1,-1)],r=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],n=Array(512),e=Array(512);$.seed=function(_){_>0&&_<1&&(_*=65536),(_=Math.floor(_))<256&&(_|=_<<8);for(var $,o=0;o<256;o++)$=1&o?r[o]^255&_:r[o]^_>>8&255,n[o]=n[o+256]=$,e[o]=e[o+256]=t[$%12]},$.seed(0);var i=.5*(Math.sqrt(3)-1),d=(3-Math.sqrt(3))/6,f=1/3,u=1/6;function a(_){return _*_*_*(_*(6*_-15)+10)}function v(_,$,o){return(1-o)*_+o*$}$.simplex2=function(_,$){var o,t,r,f,u,a=(_+$)*i,v=Math.floor(_+a),s=Math.floor($+a),l=(v+s)*d,w=_-v+l,c=$-s+l;w>c?(f=1,u=0):(f=0,u=1);var h=w-f+d,p=c-u+d,x=w-1+2*d,y=c-1+2*d,m=e[(v&=255)+n[s&=255]],q=e[v+f+n[s+u]],z=e[v+1+n[s+1]],b=.5-w*w-c*c;b<0?o=0:(b*=b,o=b*b*m.dot2(w,c));var g=.5-h*h-p*p;g<0?t=0:(g*=g,t=g*g*q.dot2(h,p));var j=.5-x*x-y*y;return j<0?r=0:(j*=j,r=j*j*z.dot2(x,y)),70*(o+t+r)},$.simplex3=function(_,$,o){var t,r,i,d,a,v,s,l,w,c,h=(_+$+o)*f,p=Math.floor(_+h),x=Math.floor($+h),y=Math.floor(o+h),m=(p+x+y)*u,q=_-p+m,z=$-x+m,b=o-y+m;q>=z?z>=b?(a=1,v=0,s=0,l=1,w=1,c=0):q>=b?(a=1,v=0,s=0,l=1,w=0,c=1):(a=0,v=0,s=1,l=1,w=0,c=1):z{0===e&&0===i&&ctx.clearRect(0,0,canvas.width,canvas.height);let s=t.getLength()*Math.abs(t.x),l=t.getLength()*Math.abs(t.y),n=Math.round(-20*s+80*l+(50-.6*i*heightColorScaling)),c=Math.round(180*s+20*l-60+.4*i*heightColorScaling),a=Math.round(50*s+30*l+(40-.5*i*heightColorScaling)+.5*i*heightColorScaling);ctx.save(),ctx.fillStyle=`rgba(${n}, ${c}, ${a}, 0.8)`,ctx.fillRect(e*ctxScale.x,i*ctxScale.y,ctxScale.x,ctxScale.y),ctx.restore()},ff.manipulateVector=(t,e,i)=>{let s=new Vector(e*ctxScale.x+.5*ctxScale.x,i*ctxScale.y+.5*ctxScale.y),l=new Vector((mouse.x-s.x)/canvas.width,(mouse.y-s.y)/canvas.height);t.addTo(l),t.getLength()>1&&t.setLength(1)};let lastStep=0;function step(t){ff.update(t-lastStep||0),lastStep=t,window.requestAnimationFrame(step)}step();