From fff9746d157a5dcb97bce13d5e4a13f3ead2e993 Mon Sep 17 00:00:00 2001 From: Ryan Barrett Date: Wed, 6 Dec 2023 12:21:34 -0800 Subject: [PATCH] front page redesign: add topology JS animation This is "Topology 1" https://generated.space/sketch/perlin-topology/ by Kjetil Golid (@kgolid), reused under the MIT License. All of his animations there are beautiful. Thank you Kjetil! Vendored JS code: * q5.min.js is from https://github.com/quinton-ashley/q5.js/blob/1.8.7/q5.min.js * topology.js is from https://github.com/kgolid/p5ycho/blob/9fb448de863f0c5255d8b8b8660bc2be77771ad5/topology/sketch.js The animation runs under p5.js https://github.com/processing/p5.js, but the p5.min.js runtime is >1MB. I found https://github.com/LingDong-/q5xjs, which is supposedly a drop-in replacement that's just 33KB, but it didn't work. @quinton-ashley's fork https://github.com/quinton-ashley/q5.js does though, thank you Quinton! for #661 --- static/bridgy_logo_with_alpha.png | Bin 0 -> 121395 bytes static/q5.min.js | 7 ++ static/topology.js | 160 ++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+) create mode 100644 static/bridgy_logo_with_alpha.png create mode 100644 static/q5.min.js create mode 100644 static/topology.js diff --git a/static/bridgy_logo_with_alpha.png b/static/bridgy_logo_with_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..e89bd4f7832d185afcccf9fd0817ab09a4def56d GIT binary patch literal 121395 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 literal 0 HcmV?d00001 diff --git a/static/q5.min.js b/static/q5.min.js new file mode 100644 index 0000000..5e0c4fc --- /dev/null +++ b/static/q5.min.js @@ -0,0 +1,7 @@ +/** + * q5.js + * @version 1.8 + * @author quinton-ashley and LingDong- + * @license GPL-3.0-only + */ +function Q5(e,t){let a=0;if(void 0===e&&(e="global",a++,setTimeout((()=>a--),32)),"auto"==e){if(void 0===window.setup)return;e="global"}1==arguments.length&&"string"!=typeof e&&"function"!=typeof e&&(t=arguments[0],e=null),"global"==e&&(Q5._hasGlobal=!0);let n=this;n.canvas=document.createElement("canvas");let o=n._ctx=n.canvas.getContext("2d");if(n.canvas.classList.add("p5Canvas","q5Canvas"),n.canvas.id="defaultCanvas"+Q5._instanceCount++,n.width=100,n.height=100,n.canvas.width=n.width,n.canvas.height=n.height,n._windowResizedFn=()=>{},"graphics"!=e&&"image"!=e){function i(){t??=document.getElementsByTagName("main")[0],t||(t=document.createElement("main"),document.body.append(t)),n.canvas.parent(t)}n._setupDone=!1,n._resize=()=>{n.frameCount>1&&(n._shouldResize=!0)},n.canvas.parent=e=>{"string"==typeof e&&(e=document.getElementById(e)),e.append(n.canvas),"undefined"!=typeof ResizeObserver?(n._ro&&n._ro.disconnect(),n._ro=new ResizeObserver(n._resize),n._ro.observe(t)):0==n.frameCount&&addEventListener("resize",n._resize)},document.body?i():window.addEventListener("load",i)}M(),n.MAGIC=161533525,n.pixels=[];let r=null;n.createCanvas=function(t,a){if(n.width=t,n.height=a,n.canvas.width=t,n.canvas.height=a,M(),"image"!=e){let t=n.displayDensity();"graphics"==e&&(t=this._pixelDensity),n.pixelDensity(Math.ceil(t))}else this._pixelDensity=1;return n.canvas},n._createCanvas=n.createCanvas,n.loadPixels=()=>{r=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=r.data},n.updatePixels=()=>{null!=r&&o.putImageData(r,0,0)};let s={};function l(e,t){null==p&&(p=document.createElement("canvas").getContext("2d")),t??=e||o.canvas.height,e??=o.canvas.width,p.canvas.width==e&&p.canvas.height==t||(p.canvas.width=e,p.canvas.height=t)}function h(){let e=o.canvas.width*o.canvas.height*4;v&&e==v.length||(v=new Uint8ClampedArray(e))}function c(e){p.clearRect(0,0,p.canvas.width,p.canvas.height),p.filter=e,p.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(p.canvas,0,0),o.restore()}s[n.THRESHOLD]=(e,t)=>{void 0===t?t=127.5:t*=255;for(let a=0;a=t?255:0}},s[n.GRAY]=e=>{for(let t=0;t{for(let t=0;t{for(let t=0;t{let a=t-1;for(let n=0;n>8)/a,e[n+1]=255*(e[n+1]*t>>8)/a,e[n+2]=255*(e[n+2]*t>>8)/a},s[n.DILATE]=e=>{h(),v.set(e);let[t,a]=[o.canvas.width,o.canvas.height];for(let n=0;n{h(),v.set(e);let[t,a]=[o.canvas.width,o.canvas.height];for(let n=0;n{t=t||1,t=Math.floor(t*n._pixelDensity),h(),v.set(e);let a=2*t+1;let i=function(e){let a=new Float32Array(e),n=.3*t+.8,o=n*n*2;for(let t=0;t{if(n.HARDWARE_FILTERS&&null!=o.filter)if(l(),e==n.THRESHOLD){t??=.5,t=Math.max(t,1e-5),c(`saturate(0%) brightness(${Math.floor(.5/t*100)}%) contrast(1000000%)`)}else if(e==n.GRAY)c("saturate(0%)");else if(e==n.OPAQUE)p.fillStyle="black",p.fillRect(0,0,p.canvas.width,p.canvas.height),p.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(p.canvas,0,0),o.restore();else if(e==n.INVERT)c("invert(100%)");else if(e==n.BLUR)c(`blur(${Math.ceil(t*n._pixelDensity/1)||1}px)`);else{let a=o.getImageData(0,0,o.canvas.width,o.canvas.height);s[e](a.data,t),o.putImageData(a,0,0)}else{let a=o.getImageData(0,0,o.canvas.width,o.canvas.height);s[e](a.data,t),o.putImageData(a,0,0)}},n.resize=(e,t)=>{l(),p.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(p.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()},n.get=(e,t,a,i)=>{let r=n._pixelDensity||1;if(void 0!==e&&void 0===a){let a=o.getImageData(e*r,t*r,1,1).data;return new Q5.Color(a[0],a[1],a[2],a[3]/255)}e=(e||0)*r,t=(t||0)*r,a=(a||n.width)*r,i=(i||n.height)*r;let s=n.createImage(a,i),l=o.getImageData(e,t,a,i);return s.canvas.getContext("2d").putImageData(l,0,0),s},n.set=(e,t,a)=>{if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let i=n._pixelDensity||1;for(let r=0;rn._tint=null,n.mask=e=>{o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeOperation=t,o.restore()},n._save=(e,t,a)=>{if(t=t||"untitled","jpg"==(a=a||"png")||"png"==a)e=e.toDataURL();else{let t="text/plain";"json"==a&&("string"!=typeof e&&(e=JSON.stringify(e)),t="text/json"),e=new Blob([e],{type:t}),e=URL.createObjectURL(e)}let n=document.createElement("a");n.href=e,n.download=t+"."+a,document.body.append(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(n.href)},n.save=(e,t,a)=>{if((!e||"string"==typeof e&&(!t||!a&&t.length<5))&&(a=t,t=e,e=o.canvas),a)return n._save(e,t,a);t?(t=t.split("."),n._save(e,t[0],t.at(-1))):n._save(e)},n.canvas.save=n.save,n.saveCanvas=n.save;let d=null,u=!0,_=[],g={},m=0,p=null,f=null,v=null;if("image"==e)return;function x(){let e={};for(let t in o)"function"!=typeof o[t]&&(e[t]=o[t]);return delete e.canvas,e}n.remove=()=>{n.noLoop(),n.canvas.remove()},n.RGB=0,n.HSV=1,n.HSB=1,n.CHORD=0,n.PIE=1,n.OPEN=2,n.RADIUS="radius",n.CORNER="corner",n.CORNERS="corners",n.ROUND="round",n.SQUARE="butt",n.PROJECT="square",n.MITER="miter",n.BEVEL="bevel",n.CLOSE=1,n.BLEND="source-over",n.REMOVE="destination-out",n.ADD="lighter",n.DARKEST="darken",n.LIGHTEST="lighten",n.DIFFERENCE="difference",n.SUBTRACT="subtract",n.EXCLUSION="exclusion",n.MULTIPLY="multiply",n.SCREEN="screen",n.REPLACE="copy",n.OVERLAY="overlay",n.HARD_LIGHT="hard-light",n.SOFT_LIGHT="soft-light",n.DODGE="color-dodge",n.BURN="color-burn",n.NORMAL="normal",n.ITALIC="italic",n.BOLD="bold",n.BOLDITALIC="italic bold",n.CENTER="center",n.LEFT="left",n.RIGHT="right",n.TOP="top",n.BOTTOM="bottom",n.BASELINE="alphabetic",n.LANDSCAPE="landscape",n.PORTRAIT="portrait",n.ALT=18,n.BACKSPACE=8,n.CONTROL=17,n.DELETE=46,n.DOWN_ARROW=40,n.ENTER=13,n.ESCAPE=27,n.LEFT_ARROW=37,n.OPTION=18,n.RETURN=13,n.RIGHT_ARROW=39,n.SHIFT=16,n.TAB=9,n.UP_ARROW=38,n.DEGREES="degrees",n.RADIANS="radians",n.HALF_PI=Math.PI/2,n.PI=Math.PI,n.QUARTER_PI=Math.PI/4,n.TAU=2*Math.PI,n.TWO_PI=2*Math.PI,n.THRESHOLD=1,n.GRAY=2,n.OPAQUE=3,n.INVERT=4,n.POSTERIZE=5,n.DILATE=6,n.ERODE=7,n.BLUR=8,n.ARROW="default",n.CROSS="crosshair",n.HAND="pointer",n.MOVE="move",n.TEXT="text",n.VIDEO={video:!0,audio:!1},n.AUDIO={video:!1,audio:!0},n.SHR3=1,n.LCG=2,n.HARDWARE_FILTERS=!0,n.hint=(e,t)=>{n[e]=t},n.frameCount=0,n.deltaTime=16,n.mouseX=0,n.mouseY=0,n.mouseButton=null,n.keyIsPressed=!1,n.mouseIsPressed=!1,n.key=null,n.keyCode=null,n.accelerationX=0,n.accelerationY=0,n.accelerationZ=0,n.rotationX=0,n.rotationY=0,n.rotationZ=0,n.relRotationX=0,n.relRotationY=0,n.relRotationZ=0,n.pmouseX=0,n.pmouseY=0,n.pAccelerationX=0,n.pAccelerationY=0,n.pAccelerationZ=0,n.pRotationX=0,n.pRotationY=0,n.pRotationZ=0,n.pRelRotationX=0,n.pRelRotationY=0,n.pRelRotationZ=0,n.touches=[],n._colorMode=n.RGB,n._doStroke=!0,n._doFill=!0,n._strokeSet=!1,n._fillSet=!1,n._ellipseMode=n.CENTER,n._rectMode=n.CORNER,n._curveDetail=20,n._curveAlpha=0,n._loop=!0,n._textFont="sans-serif",n._textSize=12,n._textLeading=15,n._textLeadDiff=3,n._textStyle="normal",n._pixelDensity=1,n._lastFrameTime=0,n._targetFrameRate=null,n._frameRate=n._fps=60,n._tint=null,Object.defineProperty(n,"deviceOrientation",{get:()=>window.screen?.orientation?.type}),Object.defineProperty(n,"windowWidth",{get:()=>window.innerWidth}),Object.defineProperty(n,"windowHeight",{get:()=>window.innerHeight}),Object.defineProperty(n,"drawingContext",{get:()=>o}),n.resizeCanvas=(t,a)=>{n.width=t,n.height=a;let i=x();n.canvas.width=t*n._pixelDensity,n.canvas.height=a*n._pixelDensity,o=n._ctx=n.canvas.getContext("2d");for(let e in i)n._ctx[e]=i[e];"image"!=e&&n.pixelDensity(n._pixelDensity)},n.createGraphics=function(e,t){let a=new Q5("graphics");return a._createCanvas.call(n,e,t),a},n.createImage=(e,t)=>new Q5.Image(e,t),n.displayDensity=()=>window.devicePixelRatio,n.pixelDensity=e=>{if(void 0===e)return n._pixelDensity;n._pixelDensity=e;let t=x();n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o=n._ctx=n.canvas.getContext("2d");for(let e in t)n._ctx[e]=t[e];return o.scale(n._pixelDensity,n._pixelDensity),n._pixelDensity},n.map=(e,t,a,n,o,i)=>{let r=n+1*(e-t)/(a-t)*(o-n);return i?ne*(1-a)+t*a,n.constrain=(e,t,a)=>Math.min(Math.max(e,t),a),n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])},n.norm=(e,t,a)=>n.map(e,t,a,0,1),n.sq=e=>e*e,n.fract=e=>e-Math.floor(e),n.angleMode=e=>n._angleMode=e,n._DEGTORAD=Math.PI/180,n._RADTODEG=180/Math.PI,n.degrees=e=>e*n._RADTODEG,n.radians=e=>e*n._DEGTORAD,n.abs=Math.abs,n.ceil=Math.ceil,n.exp=Math.exp,n.floor=Math.floor,n.log=Math.log,n.mag=Math.hypot,n.max=Math.max,n.min=Math.min,n.round=Math.round,n.pow=Math.pow,n.sqrt=Math.sqrt,n.sin=e=>("degrees"==n._angleMode&&(e=n.radians(e)),Math.sin(e)),n.cos=e=>("degrees"==n._angleMode&&(e=n.radians(e)),Math.cos(e)),n.tan=e=>("degrees"==n._angleMode&&(e=n.radians(e)),Math.tan(e)),n.asin=e=>{let t=Math.asin(e);return"degrees"==n._angleMode&&(t=n.degrees(t)),t},n.acos=e=>{let t=Math.acos(e);return"degrees"==n._angleMode&&(t=n.degrees(t)),t},n.atan=e=>{let t=Math.atan(e);return"degrees"==n._angleMode&&(t=n.degrees(t)),t},n.atan2=(e,t)=>{let a=Math.atan2(e,t);return"degrees"==n._angleMode&&(a=n.degrees(a)),a},n.nf=(e,t,a)=>{let n=e<0,o=e.toString();return n&&(o=o.slice(1)),o=o.padStart(t,"0"),a>0&&(-1==o.indexOf(".")&&(o+="."),o=o.padEnd(t+1+a,"0")),n&&(o="-"+o),o},n.createVector=(e,t,a)=>new Q5.Vector(e,t,a,n),n.curvePoint=(e,t,a,n,o)=>{const i=o*o*o,r=o*o;return e*(-.5*i+r-.5*o)+t*(1.5*i-2.5*r+1)+a*(-1.5*i+2*r+.5*o)+n*(.5*i-.5*r)},n.bezierPoint=(e,t,a,n,o)=>{const i=1-o;return Math.pow(i,3)*e+3*Math.pow(i,2)*o*t+3*i*Math.pow(o,2)*a+Math.pow(o,3)*n},n.curveTangent=(e,t,a,n,o)=>{const i=o*o;return e*(-3*i/2+2*o-.5)+t*(9*i/2-5*o)+a*(-9*i/2+4*o+.5)+n*(3*i/2-o)},n.bezierTangent=(e,t,a,n,o)=>{const i=1-o;return 3*n*Math.pow(o,2)-3*a*Math.pow(o,2)+6*a*i*o-6*t*i*o+3*t*Math.pow(i,2)-3*e*Math.pow(i,2)},n.Color=Q5.Color,n.colorMode=e=>{n._colorMode=e};let y={aqua:[0,255,255],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],crimson:[220,20,60],darkviolet:[148,0,211],gold:[255,215,0],green:[0,128,0],gray:[128,128,128],grey:[128,128,128],hotpink:[255,105,180],indigo:[75,0,130],khaki:[240,230,140],lightgreen:[144,238,144],lime:[0,255,0],magenta:[255,0,255],navy:[0,0,128],orange:[255,165,0],olive:[128,128,0],peachpuff:[255,218,185],pink:[255,192,203],purple:[128,0,128],red:[255,0,0],skyblue:[135,206,235],tan:[210,180,140],turquoise:[64,224,208],transparent:[0,0,0,0],white:[255,255,255],violet:[238,130,238],yellow:[255,255,0]};function M(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter",o.textAlign="left"}function w(e){let t=n._angleMode==n.DEGREES?180:Math.PI,a=2*t;if(0<=e&&e<=a)return e;for(;e<0;)e+=a;for(;e>=t;)e-=a;return e}function R(e,t,a,i,r,s,l,h){if(!n._doFill&&!n._doStroke)return;let c=w(r),d=w(s);if(c>d&&([c,d]=[d,c]),0==c){if(0==d)return;if(n._angleMode==n.DEGREES&&360==d||d==n.TAU)return n.ellipse(e,t,a,i)}o.beginPath();for(let r=0;re._r,n.green=e=>e._g,n.blue=e=>e._b,n.alpha=e=>255*e._a,n.hue=e=>(e._inferHSV(),e._h),n.saturation=e=>(e._inferHSV(),e._s),n.brightness=e=>(e._inferHSV(),e._v),n.lightness=e=>100*(.2126*e._r+.7152*e._g+.0722*e._b)/255,n.lerpColor=(e,t,a)=>n._colorMode==n.RGB?new Q5.Color(n.constrain(n.lerp(e._r,t._r,a),0,255),n.constrain(n.lerp(e._g,t._g,a),0,255),n.constrain(n.lerp(e._b,t._b,a),0,255),n.constrain(n.lerp(e._a,t._a,a),0,1)):(e._inferHSV(),t._inferHSV(),new Q5.Color(n.constrain(function(e,t,a){var o=[[Math.abs(t-e),n.map(a,0,1,e,t)],[Math.abs(t+360-e),n.map(a,0,1,e,t+360)],[Math.abs(t-360-e),n.map(a,0,1,e,t-360)]];return o.sort(((e,t)=>e[0]-t[0])),(o[0][1]+720)%360}(e._h,t._h,a),0,360),n.constrain(n.lerp(e._s,t._s,a),0,100),n.constrain(n.lerp(e._v,t._v,a),0,100),n.constrain(n.lerp(e._a,t._a,a),0,1))),n.strokeWeight=e=>{e||(n._doStroke=!1),o.lineWidth=e||1e-4},n.stroke=function(){if(n._doStroke=!0,n._strokeSet=!0,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color(...arguments);e._a<=0?n._doStroke=!1:o.strokeStyle=e},n.noStroke=()=>n._doStroke=!1,n.fill=function(){if(n._doFill=!0,n._fillSet=!0,"string"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color(...arguments);e._a<=0?n._doFill=!1:o.fillStyle=e},n.noFill=()=>n._doFill=!1,n.smooth=()=>n._smooth=!0,n.noSmooth=()=>n._smooth=!1,n.blendMode=e=>o.globalCompositeOperation=e,n.strokeCap=e=>o.lineCap=e,n.strokeJoin=e=>o.lineJoin=e,n.ellipseMode=e=>n._ellipseMode=e,n.rectMode=e=>n._rectMode=e,n.curveDetail=e=>n._curveDetail=e,n.curveAlpha=e=>n._curveAlpha=e,n.curveTightness=e=>n._curveAlpha=e,n.clear=()=>{o.clearRect(0,0,n.canvas.width,n.canvas.height)},n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),o.fillStyle="string"==typeof arguments[0]?arguments[0]:n.color(...Array.from(arguments)),o.fillRect(0,0,n.canvas.width,n.canvas.height),o.restore()},n.line=(e,t,a,i)=>{n._doStroke&&(o.beginPath(),o.moveTo(e,t),o.lineTo(a,i),o.stroke())},n.arc=(e,t,a,o,i,r,s,l)=>{if(i==r)return n.ellipse(e,t,a,o);l??=25,s??=n.PIE,n._ellipseMode==n.CENTER?R(e,t,a,o,i,r,s,l):n._ellipseMode==n.RADIUS?R(e,t,2*a,2*o,i,r,s,l):n._ellipseMode==n.CORNER?R(e+a/2,t+o/2,a,o,i,r,s,l):n._ellipseMode==n.CORNERS&&R((e+a)/2,(t+o)/2,a-e,o-t,i,r,s,l)},n.ellipse=(e,t,a,o)=>{o??=a,n._ellipseMode==n.CENTER?S(e,t,a,o):n._ellipseMode==n.RADIUS?S(e,t,2*a,2*o):n._ellipseMode==n.CORNER?S(e+a/2,t+o/2,a,o):n._ellipseMode==n.CORNERS&&S((e+a)/2,(t+o)/2,a-e,o-t)},n.circle=(e,t,a)=>n.ellipse(e,t,a,a),n.point=(e,t)=>{e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,n.TAU),o.stroke()},n.rect=(e,t,a,o,i,r,s,l)=>{n._rectMode==n.CENTER?C(e-a/2,t-o/2,a,o,i,r,s,l):n._rectMode==n.RADIUS?C(e-a,t-o,2*a,2*o,i,r,s,l):n._rectMode==n.CORNER?C(e,t,a,o,i,r,s,l):n._rectMode==n.CORNERS&&C(e,t,a-e,o-t,i,r,s,l)},n.square=(e,t,a,o,i,r,s)=>n.rect(e,t,a,a,o,i,r,s),n.beginShape=()=>{I(),o.beginPath(),u=!0},n.beginContour=()=>{o.closePath(),I(),u=!0},n.endContour=()=>{I(),u=!0},n.vertex=(e,t)=>{I(),u?o.moveTo(e,t):o.lineTo(e,t),u=!1},n.bezierVertex=(e,t,a,n,i,r)=>{I(),o.bezierCurveTo(e,t,a,n,i,r)},n.quadraticVertex=(e,t,a,n)=>{I(),o.quadraticCurveTo(e,t,a,n)},n.bezier=(e,t,a,o,i,r,s,l)=>{n.beginShape(),n.vertex(e,t),n.bezierVertex(a,o,i,r,s,l),n.endShape()},n.triangle=(e,t,a,o,i,r)=>{n.beginShape(),n.vertex(e,t),n.vertex(a,o),n.vertex(i,r),n.endShape(n.CLOSE)},n.quad=(e,t,a,o,i,r,s,l)=>{n.beginShape(),n.vertex(e,t),n.vertex(a,o),n.vertex(i,r),n.vertex(s,l),n.endShape(n.CLOSE)},n.endShape=e=>{I(),e&&o.closePath(),n._doFill&&o.fill(),n._doStroke&&o.stroke(),n._doFill||n._doStroke||(o.save(),o.fillStyle="none",o.fill(),o.restore())},n.curveVertex=(e,t)=>{if(_.push([e,t]),_.length<4)return;let a=function(e,t,a,n,o,i,r,s,l,h){function c(e,t,a,n,o,i){let r=Math.pow(n-t,2)+Math.pow(o-a,2);return Math.pow(r,.5*i)+e}let d=[],u=c(0,e,t,a,n,h),_=c(u,a,n,o,i,h),g=c(_,o,i,r,s,h);for(let h=0;h0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let p=e*m[0]+a*m[1],f=t*m[0]+n*m[1],v=a*m[2]+o*m[3],x=n*m[2]+i*m[3],y=o*m[4]+r*m[5],M=i*m[4]+s*m[5],w=p*m[6]+v*m[7],R=f*m[6]+x*m[7],S=v*m[8]+y*m[9],C=x*m[8]+M*m[9],I=w*m[2]+S*m[3],E=R*m[2]+C*m[3];d.push([I,E])}return d}(..._[_.length-4],..._[_.length-3],..._[_.length-2],..._[_.length-1],n._curveDetail,n._curveAlpha);for(let e=0;e{n.beginShape(),n.curveVertex(e,t),n.curveVertex(a,o),n.curveVertex(i,r),n.curveVertex(s,l),n.endShape()},n.translate=(e,t)=>o.translate(e,t),n.rotate=e=>{"degrees"==n._angleMode&&(e=n.radians(e)),o.rotate(e)},n.scale=(e,t)=>{t??=e,o.scale(e,t)},n.applyMatrix=(e,t,a,n,i,r)=>{o.transform(e,t,a,n,i,r)},n.shearX=e=>{o.transform(1,0,n.tan(e),1,0,0)},n.shearY=e=>{o.transform(1,n.tan(e),0,1,0,0)},n.resetMatrix=()=>{o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)},n._styleNames=["_doStroke","_doFill","_strokeSet","_fillSet","_tint","_imageMode","_rectMode","_ellipseMode","_textFont","_textLeading","_leadingSet","_textSize","_textAlign","_textBaseline","_textStyle","_textWrap"],n._ctxStyleNames=["strokeStyle","fillStyle","lineWidth","lineCap","lineJoin"],n._styles=[],n._ctxStyles=[],n.pushMatrix=n.push=()=>{o.save();let e={};for(let t of n._styleNames)e[t]=n[t];n._styles.push(e);let t={};for(let e of n._ctxStyleNames)t[e]=o[e];n._ctxStyles.push(t)},n.popMatrix=n.pop=()=>{o.restore();let e=n._styles.pop();for(let t of n._styleNames)n[t]=e[t];let t=n._ctxStyles.pop();for(let e of n._ctxStyleNames)o[e]=t[e]},n.imageMode=e=>n._imageMode=e,n.image=(e,t,a,i,r,s,l,h,c)=>{let d=e.MAGIC==n.MAGIC?e.canvas:e;var u,_;e.MAGIC==n.MAGIC&&null!=n._tint&&(u=e.canvas.width,_=e.canvas.height,null==f&&(f=document.createElement("canvas").getContext("2d")),_??=u||o.canvas.height,u??=o.canvas.width,f.canvas.width==u&&f.canvas.height==_||(f.canvas.width=u,f.canvas.height=_),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),i||(e.MAGIC==n.MAGIC||e.width?(i=e.width,r=e.height):(i=e.videoWidth,r=e.videoHeight)),"center"==n._imageMode&&(t-=.5*i,a-=.5*r);let g=e._pixelDensity;s??=0,l??=0,h?h*=g:h=d.width,c?c*=g:c=d.height,o.drawImage(d,s*g,l*g,h,c,t,a,i,r),function(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let t=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}()},n._incrementPreload=()=>a++,n._decrementPreload=()=>a--,n.loadImage=(e,t)=>{a++;let o=n.createImage(1,1),i=o.canvas.getContext("2d"),r=new window.Image;return r.src=e,r.crossOrigin="Anonymous",r._pixelDensity=1,r.onload=()=>{o.width=i.canvas.width=r.naturalWidth,o.height=i.canvas.height=r.naturalHeight,i.drawImage(r,0,0),a--,t&&t(o)},r.onerror=e=>{throw a--,e},o},n._clearTemporaryBuffers=()=>{p=null,f=null,v=null},n.loadFont=(e,t)=>{a++;let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),i=new FontFace(o,"url("+e+")");return document.fonts.add(i),i.load().then((()=>{a--,t&&t(o)})),o},n.textFont=e=>n._textFont=e,n.textSize=e=>{if(void 0===e)return n._textSize;n._textSize=e,n._leadingSet||(n._textLeading=1.25*e,n._textLeadDiff=n._textLeading-e)},n.textLeading=e=>{if(void 0===e)return n._textLeading;n._textLeading=e,n._textLeadDiff=e-n._textSize,n._leadingSet=!0},n.textStyle=e=>n._textStyle=e,n.textAlign=(e,t)=>{o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)},n.textWidth=e=>(o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width),n.textAscent=e=>(o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent),n.textDescent=e=>(o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent),n._textCache=!0,n._TimedCache=class extends Map{constructor(){super(),this.maxSize=500}set(e,t){t.lastAccessed=Date.now(),super.set(e,t),this.size>this.maxSize&&this.gc()}get(e){const t=super.get(e);return t&&(t.lastAccessed=Date.now()),t}gc(){let e,t=1/0,a=0;for(const[n,o]of this.entries())o.lastAccessed(t&&(n._tic.maxSize=t),void 0!==e&&(n._textCache=e),n._textCache),n.createTextImage=(e,t,a)=>{let o=n._textCache;n._textCache=!0,n._useCache=!0,n.text(e,0,0,t,a),n._useCache=!1;let i=E(e,t,a);return n._textCache=o,n._tic.get(i)},n.text=(e,t,a,i,r)=>{if(void 0===e)return;if(e=e.toString(),!n._doFill&&!n._doStroke)return;let s,l,h,c,d,u,_,g,m=1,p=o.getTransform(),f=n._useCache||n._textCache&&(0!=p.b||0!=p.c);if(f){if(c=E(e,i,r),l=n._tic.get(c),l)return void n.textImage(l,t,a);h=n.createGraphics.call(n,1,1),s=h._ctx,m=n._pixelDensity}else s=o,d=t,u=a;s.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let v=e.split("\n");if(f){d=0,u=n._textLeading*v.length;let t=s.measureText(" ");_=t.fontBoundingBoxAscent,g=t.fontBoundingBoxDescent,r??=u+g,h.resizeCanvas(Math.ceil(s.measureText(e).width),Math.ceil(r)),s.fillStyle=o.fillStyle,s.strokeStyle=o.strokeStyle,s.lineWidth=o.lineWidth}let x=s.fillStyle;n._fillSet||(s.fillStyle="black");for(let e=0;er));e++);n._fillSet||(s.fillStyle=x),f&&(l=h.get(),l._pixelDensity=m,l.width/=m,l.height/=m,l._ascent=_,l._descent=g,n._tic.set(c,l),n.textImage(l,t,a))},n.textImage=(e,t,a)=>{let i=n._imageMode;n._imageMode="corner","center"==o.textAlign?t-=.5*e.width:"right"==o.textAlign&&(t-=e.width),"alphabetic"==o.textBaseline&&(a-=n._textLeading),"middle"==o.textBaseline?a-=e._descent+.5*e._ascent+n._textLeadDiff:"bottom"==o.textBaseline?a-=e._ascent+e._descent+n._textLeadDiff:"top"==o.textBaseline&&(a-=e._descent+n._textLeadDiff),n.image(e,t,a),n._imageMode=i};var b,D=4095,A=4,T=.5,k=e=>.5*(1-Math.cos(e*Math.PI));n.noise=(e,t,a)=>{if(t??=0,a??=0,null==b){b=new Array(4096);for(var n=0;n<4096;n++)b[n]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),a<0&&(a=-a);for(var o,i,r,s,l,h=Math.floor(e),c=Math.floor(t),d=Math.floor(a),u=e-h,_=t-c,g=a-d,m=0,p=.5,f=0;f=1&&(h++,u--),(_*=2)>=1&&(c++,_--),(g*=2)>=1&&(d++,g--)}return m},n.noiseDetail=(e,t)=>{e>0&&(A=e),t>0&&(T=t)};const P=()=>{let e,t,a=4294967295;return{setSeed(n){e=t=(null==n?Math.random()*a:n)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17,e^=e>>13,e^=e<<5,(e>>>0)/a)}};let O=P();O.setSeed(),n.noiseSeed=e=>{let t=void 0===e?4294967295*Math.random():e;b||(b=new Float32Array(4096));for(var a=0;a<4096;a++)t^=t<<17,t^=t>>13,t^=t<<5,b[a]=(t>>>0)/4294967295},n.randomSeed=e=>O.setSeed(e),n.random=(e,t)=>void 0===e?O.rand():"number"==typeof e?void 0!==t?O.rand()*(t-e)+e:O.rand()*e:e[~~(e.length*O.rand())],n.randomGenerator=e=>{e==n.LCG?O=(()=>{const e=4294967296;let t,a;return{setSeed(n){a=t=(null==n?Math.random()*e:n)>>>0},getSeed:()=>t,rand:()=>(a=(1664525*a+1013904223)%e,a/e)}})():e==n.SHR3&&(O=P()),O.setSeed()};var z=new function(){var e,t,a,n=new Array(128),o=new Array(256),i=new Array(128),r=new Array(128),s=new Array(256),l=new Array(256),h=()=>4294967296*O.rand()-2147483648,c=()=>.5+2.328306e-10*(h()<<0),d=()=>{for(var t,o,s,l,d=3.44262;;){if(t=a*i[e],0==e){do{s=c(),l=c(),t=.2904764*-Math.log(s),o=-Math.log(l)}while(o+o0?d+t:-d-t}if(r[e]+c()*(r[e-1]-r[e]){for(var a;;){if(0==e)return 7.69711-Math.log(c());if(a=t*s[e],l[e]+c()*(l[e-1]-l[e])(a=h(),e=127&a,Math.abs(a)(t=h()>>>0){var e,t,a=2147483648,h=4294967296,c=3.442619855899,d=c,u=.00991256303526217,_=7.697117470131487,g=_,m=.003949659822581572;for(e=u/Math.exp(-.5*c*c),n[0]=Math.floor(c/e*a),n[1]=0,i[0]=e/a,i[127]=c/a,r[0]=1,r[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(u/c+Math.exp(-.5*c*c))),n[t+1]=Math.floor(c/d*a),d=c,r[t]=Math.exp(-.5*c*c),i[t]=c/a;for(e=m/Math.exp(-_),o[0]=Math.floor(_/e*h),o[1]=0,s[0]=e/h,s[255]=_/h,l[0]=1,l[255]=Math.exp(-_),t=254;t>=1;t--)_=-Math.log(m/_+Math.exp(-_)),o[t+1]=Math.floor(_/g*h),g=_,l[t]=Math.exp(-_),s[t]=_/h}};function F(){let e=performance.now();if(n._loop)d=n._targetFrameRate?setTimeout(F,1e3/n._targetFrameRate):requestAnimationFrame(F);else if(n.frameCount>0)return;if(d&&0!=n.frameCount){if(e-n._lastFrameTime<1e3/(n._targetFrameRate||60)-5)return}n.deltaTime=e-n._lastFrameTime,n._frameRate=1e3/n.deltaTime,n.frameCount++,n._shouldResize&&(n._windowResizedFn(),n._shouldResize=!1);for(let e of Q5.prototype._methods.pre)e.call(n);I(),u=!0,o.save(),n._drawFn();for(let e of Q5.prototype._methods.post)e.call(n);o.restore(),n.resetMatrix();let t=performance.now();n._fps=Math.round(1e3/(t-e)),n._lastFrameTime=e,n.pmouseX=n.mouseX,n.pmouseY=n.mouseY}function Q(e){const t=n.canvas.getBoundingClientRect(),a=n.canvas.scrollWidth/n.width||1,o=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/a,y:(e.clientY-t.top)/o,id:e.identifier}}function L(){return n._touchStartedFn.isPlaceHolder&&n._touchMovedFn.isPlaceHolder&&n._touchEndedFn.isPlaceHolder}z.hasInit=!1,n.randomGaussian=(e,t)=>(z.hasInit||(z.zigset(),z.hasInit=!0),z.RNOR()*t+e),n.randomExponential=()=>(z.hasInit||(z.zigset(),z.hasInit=!0),z.REXP()),n.print=console.log,n.cursor=(e,t,a)=>{let o="";e.includes(".")&&(e=`url("${e}")`,o=", auto"),void 0!==t&&(e+=" "+t+" "+a),n.canvas.style.cursor=e+o},n.noCursor=()=>{n.canvas.style.cursor="none"},n.createCapture=e=>{var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then((e=>{t.srcObject=e})),t.style.position="absolute",t.style.opacity=1e-5,t.style.zIndex=-1e3,document.body.append(t),t},n.noLoop=()=>{n._loop=!1,d=null},n.loop=()=>{n._loop=!0,null==d&&F()},n.redraw=()=>F(),n.frameRate=e=>(e&&(n._targetFrameRate=e),n._frameRate),n.getFrameRate=()=>n._frameRate,n.getFPS=()=>n._fps,n._updateMouse=function(e){let t=this,a=t.canvas.getBoundingClientRect(),n=t.canvas.scrollWidth/t.width||1,o=t.canvas.scrollHeight/t.height||1;t.mouseX=(e.clientX-a.left)/n,t.mouseY=(e.clientY-a.top)/o}.bind(n),n._onmousemove=function(e){n._updateMouse(e),this.mouseIsPressed?this._mouseDraggedFn(e):this._mouseMovedFn(e)}.bind(n),n._onmousedown=e=>{n._updateMouse(e),n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)},n._onmouseup=e=>{n._updateMouse(e),n.mouseIsPressed=!1,n._mouseReleasedFn(e)},n._onclick=e=>{n._updateMouse(e),n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1},n._onkeydown=e=>{e.repeat||(n.keyIsPressed=!0,n.key=e.key,n.keyCode=e.keyCode,g[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e))},n._onkeyup=e=>{n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,g[n.keyCode]=!1,n._keyReleasedFn(e)},n.canvas.onmousedown=e=>n._onmousedown(e),n.canvas.onmouseup=e=>n._onmouseup(e),n.canvas.onclick=e=>n._onclick(e),n.keyIsDown=e=>!!g[e],n._ontouchstart=e=>{n.touches=[...e.touches].map(Q),L()&&(n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()},n._ontouchmove=e=>{n.touches=[...e.touches].map(Q),L()&&(n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()},n._ontouchend=e=>{n.touches=[...e.touches].map(Q),L()&&!n.touches.length&&(n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()},n.canvas.ontouchstart=e=>n._ontouchstart(e),n.canvas.ontouchmove=e=>n._ontouchmove(e),n.canvas.ontouchcancel=n.canvas.ontouchend=e=>n._ontouchend(e),n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPermission),n.requestSensorPermissions=()=>{DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then((e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then((e=>{"granted"==e&&(n.hasSensorPermission=!0)})).catch(alert)})).catch(alert)};"undefined"!=typeof window&&(window.ondeviceorientation=e=>{n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,n.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ},window.ondevicemotion=e=>{if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let i=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])((o=n.rotationY,t=[n.cos(o),0,n.sin(o),0,0,1,0,0,-n.sin(o),0,n.cos(o),0,0,0,0,1],a=(e=>[1,0,0,0,0,n.cos(e),-n.sin(e),0,0,n.sin(e),n.cos(e),0,0,0,0,1])(n.rotationX),[t[0]*a[0]+t[1]*a[4]+t[2]*a[8]+t[3]*a[12],t[0]*a[1]+t[1]*a[5]+t[2]*a[9]+t[3]*a[13],t[0]*a[2]+t[1]*a[6]+t[2]*a[10]+t[3]*a[14],t[0]*a[3]+t[1]*a[7]+t[2]*a[11]+t[3]*a[15],t[4]*a[0]+t[5]*a[4]+t[6]*a[8]+t[7]*a[12],t[4]*a[1]+t[5]*a[5]+t[6]*a[9]+t[7]*a[13],t[4]*a[2]+t[5]*a[6]+t[6]*a[10]+t[7]*a[14],t[4]*a[3]+t[5]*a[7]+t[6]*a[11]+t[7]*a[15],t[8]*a[0]+t[9]*a[4]+t[10]*a[8]+t[11]*a[12],t[8]*a[1]+t[9]*a[5]+t[10]*a[9]+t[11]*a[13],t[8]*a[2]+t[9]*a[6]+t[10]*a[10]+t[11]*a[14],t[8]*a[3]+t[9]*a[7]+t[10]*a[11]+t[11]*a[15],t[12]*a[0]+t[13]*a[4]+t[14]*a[8]+t[15]*a[12],t[12]*a[1]+t[13]*a[5]+t[14]*a[9]+t[15]*a[13],t[12]*a[2]+t[13]*a[6]+t[14]*a[10]+t[15]*a[14],t[12]*a[3]+t[13]*a[7]+t[14]*a[11]+t[15]*a[15]]),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+i[0],n.accelerationY=e.accelerationIncludingGravity.y+i[1],n.accelerationZ=e.accelerationIncludingGravity.z-i[2]}var t,a,o}),n.year=()=>(new Date).getFullYear(),n.day=()=>(new Date).getDay(),n.hour=()=>(new Date).getHours(),n.minute=()=>(new Date).getMinutes(),n.second=()=>(new Date).getSeconds(),n.millis=()=>performance.now()-m,n.storeItem=localStorage.setItem,n.getItem=localStorage.getItem,n.removeItem=localStorage.removeItem,n.clearStorage=localStorage.clear,n._loadFile=(e,t,n)=>{a++;let o={};return fetch(e).then((e=>"json"==n?e.json():"text"==n?e.text():void 0)).then((e=>{a--,Object.assign(o,e),t&&t(e)})),o},n.loadStrings=(e,t)=>n._loadFile(e,t,"text"),n.loadJSON=(e,t)=>n._loadFile(e,t,"json"),n.loadSound=(e,t)=>{a++;let n=new Audio(e);return n.addEventListener("canplaythrough",(()=>{a--,t&&t(n)})),n.load(),n.setVolume=e=>n.volume=e,n.setLoop=e=>n.loop=e,n},n.Element=function(e){this.elt=e},n._elements=[],"global"==e&&(Object.assign(Q5,n),delete Q5.Q5),Q5.Image??=_Q5Image;for(let G of Q5.prototype._methods.init)G.call(n);for(let[V,q]of Object.entries(Q5.prototype))"_"!=V[0]&&"function"==typeof n[V]&&(n[V]=q.bind(n));if("global"==e){let B=Object.getOwnPropertyNames(n);for(let H of B)"function"==typeof n[H]?window[H]=n[H]:Object.defineProperty(window,H,{get:()=>n[H],set:e=>n[H]=e})}function N(){let t="global"==e?window:n,i=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchMoved","touchEnded","windowResized"];for(let e of i){let a="_"+e+"Fn";n[a]=()=>{},n[a].isPlaceHolder=!0,t[e]?n[a]=t[e]:Object.defineProperty(n,e,{set:e=>{n[a]=e}})}if("graphics"!=e||"image"!=e){n._preloadFn(),m=performance.now(),function e(){if(a>0)return requestAnimationFrame(e);o.save(),n._setupFn(),n._setupDone=!0,o.restore(),n.resetMatrix(),requestAnimationFrame(F)}()}addEventListener("mousemove",(e=>n._onmousemove(e)),!1),addEventListener("keydown",(e=>n._onkeydown(e)),!1),addEventListener("keyup",(e=>n._onkeyup(e)),!1)}"function"==typeof e&&e(n),"global"==e?N():requestAnimationFrame(N)}Q5.Color=class{constructor(e,t,a,n){this.MAGIC=786698,this._r=e,this._g=t,this._b=a,this._a=n,this._h=0,this._s=0,this._v=0,this._hsvInferred=!1}setRed(e){this._r=e,this._hsvInferred=!1}setGreen(e){this._g=e,this._hsvInferred=!1}setBlue(e){this._b=e,this._hsvInferred=!1}setAlpha(e){this._a=e/255,this._hsvInferred=!1}get levels(){return[this._r,this._g,this._b,255*this._a]}_inferHSV(){this._hsvInferred||([this._h,this._s,this._v]=Q5.Color._rgb2hsv(this._r,this._g,this._b),this._hsvInferred=!0)}toString(){return`rgba(${Math.round(this._r)},${Math.round(this._g)},${Math.round(this._b)},${~~(1e3*this._a)/1e3})`}},Q5._instanceCount=0,Q5.Color._rgb2hsv=(e,t,a)=>{let n,o,i,r,s;return n=et?e>a?e:a:t>a?t:a,s=100*o/255,0==s?(i=0,r=0,[i,r,s]):(r=100*(o-n)/o,0==r?(i=0,[i,r,s]):(i=o==e?0+60*(t-a)/(o-n):o==t?120+60*(a-e)/(o-n):240+60*(e-t)/(o-n),[i,r,s]))},Q5.Color._hsv2rgb=(e,t,a)=>{let n,o,i,r,s,l,h,c,d;if(0==t)return n=a,o=a,i=a,[255*n,255*o,255*i];switch(r=e,r>360&&(r=0),r/=60,s=~~r,l=r-s,h=a*(1-t),c=a*(1-t*l),d=a*(1-t*(1-l)),s){case 0:n=a,o=d,i=h;break;case 1:n=c,o=a,i=h;break;case 2:n=h,o=a,i=d;break;case 3:n=h,o=c,i=a;break;case 4:n=d,o=h,i=a;break;default:n=a,o=h,i=c}return[255*n,255*o,255*i]},Q5.Vector=class{constructor(e,t,a,n){this.x=e||0,this.y=t||0,this.z=a||0,this._$=n||window,this._cn=null,this._cnsq=null}set(e,t,a){this.x=e||0,this.y=t||0,this.z=a||0}copy(){return new Q5.Vector(this.x,this.y,this.z)}_arg2v(e,t,a){return void 0!==e.x?e:void 0!==t?{x:e,y:t,z:a||0}:{x:e,y:e,z:e}}_calcNorm(){null==this._cnsq&&(this._cnsq=this.x*this.x+this.y*this.y+this.z*this.z,this._cn=Math.sqrt(this._cnsq))}_deprecNorm(){this._cnsq=null,this._cn=null}add(){let e=this._arg2v(...arguments);return this.x+=e.x,this.y+=e.y,this.z+=e.z,this._deprecNorm(),this}rem(){let e=this._arg2v(...arguments);return this.x%=e.x,this.y%=e.y,this.z%=e.z,this._deprecNorm(),this}sub(){let e=this._arg2v(...arguments);return this.x-=e.x,this.y-=e.y,this.z-=e.z,this._deprecNorm(),this}mult(){let e=this._arg2v(...arguments);return this.x*=e.x,this.y*=e.y,this.z*=e.z,this._deprecNorm(),this}div(){let e=this._arg2v(...arguments);return e.x?this.x/=e.x:this.x=0,e.y?this.y/=e.y:this.y=0,e.z?this.z/=e.z:this.z=0,this._deprecNorm(),this}mag(){return this._calcNorm(),this._cn}magSq(){return this._calcNorm(),this._cnsq}dot(){let e=this._arg2v(...arguments);return this.x*e.x+this.y*e.y+this.z*e.z}dist(){let e=this._arg2v(...arguments),t=this.x-e.x,a=this.y-e.y,n=this.z-e.z;return Math.sqrt(t*t+a*a+n*n)}cross(){let e=this._arg2v(...arguments),t=this.y*e.z-this.z*e.y,a=this.z*e.x-this.x*e.z,n=this.x*e.y-this.y*e.x;return this.x=t,this.y=a,this.z=n,this._deprecNorm(),this}normalize(){this._calcNorm();let e=this._cn;return 0!=e&&(this.x/=e,this.y/=e,this.z/=e),this._cn=1,this._cnsq=1,this}limit(e){this._calcNorm();let t=this._cn;if(t>e){let a=e/t;this.x*=a,this.y*=a,this.z*=a,this._cn=e,this._cnsq=e*e}return this}setMag(e){this._calcNorm();let t=e/this._cn;return this.x*=t,this.y*=t,this.z*=t,this._cn=e,this._cnsq=e*e,this}heading(){return this._$.atan2(this.y,this.x)}rotate(e){let t=this._$.cos(e),a=this._$.sin(e),n=this.x*t-this.y*a,o=this.x*a+this.y*t;return this.x=n,this.y=o,this}angleBetween(){let e=this._arg2v(...arguments),t=Q5.Vector.cross(this,e);return this._$.atan2(t.mag(),this.dot(e))*Math.sign(t.z||1)}lerp(){let e=[...arguments],t=this._arg2v(...e.slice(0,-1)),a=e[e.length-1];return this.x+=(t.x-this.x)*a,this.y+=(t.y-this.y)*a,this.z+=(t.z-this.z)*a,this._deprecNorm(),this}reflect(e){return e.normalize(),this.sub(e.mult(2*this.dot(e)))}array(){return[this.x,this.y,this.z]}equals(e,t){return t??=Number.EPSILON||0,Math.abs(e.x-this.x)e.copy().add(t),Q5.Vector.cross=(e,t)=>e.copy().cross(t),Q5.Vector.dist=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z),Q5.Vector.div=(e,t)=>e.copy().div(t),Q5.Vector.dot=(e,t)=>e.copy().dot(t),Q5.Vector.equals=(e,t,a)=>e.equals(t,a),Q5.Vector.lerp=(e,t,a)=>e.copy().lerp(t,a),Q5.Vector.limit=(e,t)=>e.copy().limit(t),Q5.Vector.heading=e=>this._$.atan2(e.y,e.x),Q5.Vector.magSq=e=>e.x*e.x+e.y*e.y+e.z*e.z,Q5.Vector.mag=e=>Math.sqrt(Q5.Vector.magSq(e)),Q5.Vector.mult=(e,t)=>e.copy().mult(t),Q5.Vector.normalize=e=>e.copy().normalize(),Q5.Vector.rem=(e,t)=>e.copy().rem(t),Q5.Vector.sub=(e,t)=>e.copy().sub(t);for(let e of["fromAngle","fromAngles","random2D","random3D"])Q5.Vector[e]=(t,a,n)=>(new Q5.Vector)[e](t,a,n);class _Q5Image extends Q5{constructor(e,t){super("image"),this.createCanvas(e,t),delete this.createCanvas,this._loop=!1}}Q5._friendlyError=(e,t)=>{throw t+": "+e},Q5.prototype._methods={init:[],pre:[],post:[],remove:[]},Q5.prototype.registerMethod=(e,t)=>Q5.prototype._methods[e].push(t),Q5.prototype.registerPreloadMethod=(e,t)=>Q5.prototype[e]=t[e],Q5._validateParameters=()=>!0,"undefined"!=typeof module?module.exports=Q5:window.p5??=Q5,document.addEventListener("DOMContentLoaded",(()=>{Q5._hasGlobal||new Q5("auto")})); diff --git a/static/topology.js b/static/topology.js new file mode 100644 index 0000000..0593407 --- /dev/null +++ b/static/topology.js @@ -0,0 +1,160 @@ +let sketch = function(p) { + let width = 1400; + let height = 900; + let offset = 100; + + let flow_cell_size = 10; + + let noise_size = 0.003; + let noise_radius = 0.1; + + let flow_width = (width + offset * 2) / flow_cell_size; + let flow_height = (height + offset * 2) / flow_cell_size; + + let noise_grid = []; + let flow_grid = []; + + let number_of_particles = 4500; + let particles = []; + + let tick = 0; + p.setup = function() { + p.createCanvas(width, height); + p.background('#022'); + p.smooth(); + p.noStroke(); + //p.blendMode(p.OVERLAY); + + init_particles(); + init_flow(); + }; + p.draw = function() { + p.translate(-offset, -offset); + //display_flow(); + update_particles(); + display_particles(); + tick += 0.002; + }; + + function init_particles() { + for (var i = 0; i < number_of_particles; i++) { + let r = p.random(p.width + 2 * offset); + let q = p.random(p.height + 2 * offset); + particles.push({ + prev: p.createVector(r, q), + pos: p.createVector(r, q), + vel: p.createVector(0, 0), + acc: p.createVector(0, 0), + col: p.random(255), + seed: i + }); + } + } + + function update_particles() { + for (var i = 0; i < number_of_particles; i++) { + let prt = particles[i]; + let flow = get_flow(prt.pos.x, prt.pos.y); + + prt.prev.x = prt.pos.x; + prt.prev.y = prt.pos.y; + + prt.pos.x = mod(prt.pos.x + prt.vel.x, p.width + 2 * offset); + prt.pos.y = mod(prt.pos.y + prt.vel.y, p.height + 2 * offset); + + prt.vel + .add(prt.acc) + .normalize() + .mult(2.2); + + //prt.acc = p5.Vector.fromAngle(p.noise(prt.seed * 10, tick) * p.TAU).mult(0.01); + prt.acc = p.createVector(0, 0); + prt.acc.add(flow).mult(3); + } + } + + function init_flow() { + for (let i = 0; i < flow_height; i++) { + let row = []; + for (let j = 0; j < flow_width; j++) { + row.push(calculate_flow(j * noise_size, i * noise_size, noise_radius)); + } + flow_grid.push(row); + } + } + + function calculate_flow(x, y, r) { + //console.log(x,y); + let high_val = 0; + let low_val = 1; + let high_pos = p.createVector(0, 0); + let low_pos = p.createVector(0, 0); + + for (var i = 0; i < 100; i++) { + let angle = i / 100 * p.TAU; + let pos = p.createVector(x + p.cos(angle) * r, y + p.sin(angle) * r); + let val = p.noise(pos.x, pos.y); + + if (val > high_val) { + high_val = val; + high_pos.x = pos.x; + high_pos.y = pos.y; + } + if (val < low_val) { + low_val = val; + low_pos.x = pos.x; + low_pos.y = pos.y; + } + } + + let flow_angle = p.createVector(low_pos.x - high_pos.x, low_pos.y - high_pos.y); + flow_angle.normalize().mult(high_val - low_val); + + return flow_angle; + } + + function get_flow(xpos, ypos) { + xpos = p.constrain(xpos, 0, p.width + offset * 2); + ypos = p.constrain(ypos, 0, p.height + offset * 2); + return flow_grid[p.floor(ypos / flow_cell_size)][p.floor(xpos / flow_cell_size)]; + } + + function display_particles() { + p.strokeWeight(2); + p.stroke(255, 240, 220, 5); + for (let i = 0; i < particles.length; i++) { + //p.stroke(particles[i].col); + //p.point(particles[i].pos.x, particles[i].pos.y); + if (p5.Vector.dist(particles[i].prev, particles[i].pos) < 10) + p.line(particles[i].prev.x, particles[i].prev.y, particles[i].pos.x, particles[i].pos.y); + } + } + + function display_flow() { + for (let i = 0; i < flow_grid.length; i++) { + for (let j = 0; j < flow_grid[i].length; j++) { + p.strokeWeight(1); + p.stroke(255, 0, 0); + p.noFill(); + p.ellipse(j * flow_cell_size, i * flow_cell_size, 7, 7); + p.line( + j * flow_cell_size, + i * flow_cell_size, + j * flow_cell_size + flow_grid[i][j].x * 50, + i * flow_cell_size + flow_grid[i][j].y * 50 + ); + } + } + } + + p.keyPressed = function() { + if (p.keyCode === 80) { + p.saveCanvas('landslide', 'jpeg'); + } + }; + + function mod(x, n) { + return (x % n + n) % n; + } +}; +new p5(sketch);