0x18b7…b783

All memos sent from and to 0x18b7…b783.

let BASE_URL = "https://pinata.brightmoments.io/ipfs"; let CID = "QmaHrqnoqGnkyHzkrku6mjS2gpGQorRfzP9HawHgwHtuE6"; let TOTAL_IMAGES = 100; const SEED = 29614578; const fileType=".png"; const pinataGatewayToken= "y2RzmHlL19ONzg0XSiSssf0oiTUA9LEeTyMuds3Jq8KH103TdGHPLW929XibZCrs"; function mulberry32(SEED) { let state = SEED; return function() { state |= 0; state = (state + 0x6D2B79F5) | 0; let t = Math.imul(state ^ (state >>> 15), 1 | state); t ^= t + Math.imul(t ^ (t >>> 7), t | 61); return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; } function fisherYatesShuffle(SEED, array) { let currentIndex = array.length; let temporaryValue, randomIndex; const rng = mulberry32(SEED); while (currentIndex !== 0) { randomIndex = Math.floor(rng() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } function generateIndices(SEED, totalImages) { const array = Array.from({ length: totalImages }, (_, i) => i); return fisherYatesShuffle(SEED, array); } function selectImage(tokenId, totalImages) { const indices = generateIndices(SEED, totalImages); const selection = indices[tokenId % totalImages]; console.log(`tokenId: ${tokenId}`); console.log(`Selection: ${selection}`); return selection; } let tokenId = tokenData.tokenId; const selectedImage = selectImage(tokenId, TOTAL_IMAGES); let img; let imgLoaded = false; function preload() { // Load image and set flag when done let loadingDiv = select('#p5_loading'); if (loadingDiv) { loadingDiv.hide(); } const imageUrl = `${BASE_URL}/${CID}/${selectedImage}.png/?pinataGatewayToken=${pinataGatewayToken}`; console.log(imageUrl); img = loadImage(imageUrl, () => { imgLoaded = true; }); } function setup() { createCanvas(windowWidth, windowHeight); } function draw() { background(255); if (imgLoaded) { let imgAspectRatio = img.width / img.height; let newWidth = width; let newHeight = newWidth / imgAspectRatio; if (newHeight > height) { newHeight = height; newWidth = newHeight * imgAspectRatio; } let x = (width - newWidth) / 2; let y = (height - newHeight) / 2; image(img, x, y, newWidth, newHeight); } } function windowResized() { resizeCanvas(windowWidth, windowHeight); if (imgLoaded) { // Redraw the image when the window is resized loop(); } }
let BASE_URL = "https://pinata.brightmoments.io/ipfs"; let CID = "QmaHrqnoqGnkyHzkrku6mjS2gpGQorRfzP9HawHgwHtuE6"; let TOTAL_IMAGES = 100; const SEED = 29614578; const fileType=".png"; const pinataGatewayToken= "y2RzmHlL19ONzg0XSiSssf0oiTUA9LEeTyMuds3Jq8KH103TdGHPLW929XibZCrs"; function mulberry32(SEED) { let state = SEED; return function() { state |= 0; state = (state + 0x6D2B79F5) | 0; let t = Math.imul(state ^ (state >>> 15), 1 | state); t ^= t + Math.imul(t ^ (t >>> 7), t | 61); return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; } function fisherYatesShuffle(SEED, array) { let currentIndex = array.length; let temporaryValue, randomIndex; const rng = mulberry32(SEED); while (currentIndex !== 0) { randomIndex = Math.floor(rng() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } function generateIndices(SEED, totalImages) { const array = Array.from({ length: totalImages }, (_, i) => i); return fisherYatesShuffle(SEED, array); } function selectImage(tokenId, totalImages) { const indices = generateIndices(SEED, totalImages); const selection = indices[tokenId % totalImages]; console.log(`tokenId: ${tokenId}`); console.log(`Selection: ${selection}`); return selection; } let tokenId = tokenData.tokenId; const selectedImage = selectImage(tokenId, TOTAL_IMAGES); let img; let imgLoaded = false; let loadingSVG = createLoadingSVG(); function preload() { // Load image and set flag when done let loadingDiv = select('#p5_loading'); if (loadingDiv) { loadingDiv.hide(); } const imageUrl = `${BASE_URL}/${CID}/${selectedImage}.png/?pinataGatewayToken=${pinataGatewayToken}`; console.log(imageUrl); img = loadImage(imageUrl, () => { imgLoaded = true; }); } function setup() { createCanvas(windowWidth, windowHeight); } function draw() { background(255); if (imgLoaded) { removeLoadingSVG(loadingSVG); let imgAspectRatio = img.width / img.height; let newWidth = width; let newHeight = newWidth / imgAspectRatio; if (newHeight > height) { newHeight = height; newWidth = newHeight * imgAspectRatio; } let x = (width - newWidth) / 2; let y = (height - newHeight) / 2; image(img, x, y, newWidth, newHeight); } } function createLoadingSVG() { const svgNS = "http://www.w3.org/2000/svg"; const svg = document.createElementNS(svgNS, "svg"); svg.setAttributeNS(null, "viewBox", "0 0 122.14 122.14"); svg.setAttributeNS(null, "id", "Layer_1"); svg.setAttributeNS(null, "data-name", "Layer 1"); const path = document.createElementNS(svgNS, "path"); path.setAttributeNS(null, "d", "m0,122.14c67.46,0,122.14-54.69,122.14-122.14C54.69,0,0,54.69,0,122.14Zm86.37-35.78h-50.59v-50.59s50.59,0,50.59,0v50.59Z"); path.setAttributeNS(null, "style", "fill: #231f20; stroke-width: 0px;"); svg.appendChild(path); svg.style.position = "absolute"; svg.style.top = "50%"; svg.style.left = "50%"; svg.style.transform = "translate(-50%, -50%)"; document.body.appendChild(svg); return svg; } function removeLoadingSVG(svg) { if (svg && svg.parentNode) { svg.parentNode.removeChild(svg); } } function windowResized() { resizeCanvas(windowWidth, windowHeight); if (imgLoaded) { // Redraw the image when the window is resized loop(); } }
let BASE_URL = "https://pinata.brightmoments.io/ipfs"; let CID = "QmaHrqnoqGnkyHzkrku6mjS2gpGQorRfzP9HawHgwHtuE6"; let TOTAL_IMAGES = 100; const SEED = 29614578; const fileType=".png"; const pinataGatewayToken= "y2RzmHlL19ONzg0XSiSssf0oiTUA9LEeTyMuds3Jq8KH103TdGHPLW929XibZCrs"; function mulberry32(SEED) { let state = SEED; return function() { state |= 0; state = (state + 0x6D2B79F5) | 0; let t = Math.imul(state ^ (state >>> 15), 1 | state); t ^= t + Math.imul(t ^ (t >>> 7), t | 61); return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; } function fisherYatesShuffle(SEED, array) { let currentIndex = array.length; let temporaryValue, randomIndex; const rng = mulberry32(SEED); while (currentIndex !== 0) { randomIndex = Math.floor(rng() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } function generateIndices(SEED, TOTAL_IMAGES) { const array = Array.from({ length: TOTAL_IMAGES }, (_, i) => i); return fisherYatesShuffle(SEED, array); } function selectImage(tokenId, TOTAL_IMAGES) { const indices = generateIndices(SEED, TOTAL_IMAGES); const selection = indices[Number(tokenId % parseInt(TOTAL_IMAGES))]; return selection; } let tokenId = parseInt(tokenData.tokenId, 10); const selectedImage = selectImage(tokenId, TOTAL_IMAGES); function createLoadingSVG() { const svgNS = "http://www.w3.org/2000/svg"; const svg = document.createElementNS(svgNS, "svg"); svg.setAttributeNS(null, "viewBox", "0 0 122.14 122.14"); svg.setAttributeNS(null, "id", "Layer_1"); svg.setAttributeNS(null, "data-name", "Layer 1"); const path = document.createElementNS(svgNS, "path"); path.setAttributeNS(null, "d", "m0,122.14c67.46,0,122.14-54.69,122.14-122.14C54.69,0,0,54.69,0,122.14Zm86.37-35.78h-50.59v-50.59s50.59,0,50.59,0v50.59Z"); path.setAttributeNS(null, "style", "fill: #231f20; stroke-width: 0px;"); svg.appendChild(path); svg.style.position = "absolute"; svg.style.top = "50%"; svg.style.left = "50%"; svg.style.transform = "translate(-50%, -50%) scale(0.5)"; // Apply scale transformation svg.style.transformOrigin = "center center"; // Ensure scaling happens from the center document.body.appendChild(svg); return svg; } // Function to remove SVG function removeLoadingSVG(svg) { if (svg && svg.parentNode) { svg.parentNode.removeChild(svg); } } // Canvas setup const canvas = document.createElement('canvas'); document.body.appendChild(canvas); const ctx = canvas.getContext('2d'); // Load image function cropImageTop(img, cropTopPercent, callback) { const tempCanvas = document.createElement('canvas'); const tempCtx = tempCanvas.getContext('2d'); tempCanvas.width = img.width; // Calculate the new height after cropping const cropHeight = img.height * (1 - cropTopPercent); tempCanvas.height = cropHeight; // Draw the original image cropped tempCtx.drawImage(img, 0, -img.height * cropTopPercent, img.width, img.height); // Create a new Image object for the cropped image const croppedImg = new Image(); croppedImg.crossOrigin = "anonymous"; // Ensure CORS is handled for new image as well croppedImg.onload = function() { callback(croppedImg); // Use the cropped image in the callback }; croppedImg.src = tempCanvas.toDataURL(); } let img = new Image(); img.onload = function() { cropImageTop(img, 0.00056, function(croppedImg) { removeLoadingSVG(loadingSVG); // Remove SVG when image is loaded img = croppedImg; // Use the cropped image for further operations resizeAndDrawImage(); }); }; // Add loading SVG before image load let loadingSVG = createLoadingSVG(); img.crossOrigin = "anonymous"; img.src = `${BASE_URL}/${CID}/${selectedImage}${fileType}/?pinataGatewayToken=${pinataGatewayToken}`; console.log(`selectedImage: ${selectedImage}`); console.log(img.src); function resizeAndDrawImage() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; let imgAspectRatio = img.width / img.height; let newWidth = canvas.width; let newHeight = newWidth / imgAspectRatio; if (newHeight > canvas.height) { newHeight = canvas.height; newWidth = newHeight * imgAspectRatio; } let x = (canvas.width - newWidth) / 2; let y = (canvas.height - newHeight) / 2; ctx.drawImage(img, x, y, newWidth, newHeight); } window.addEventListener('resize', resizeAndDrawImage);
const _0x30b6cb=(function(){let _0x1adebb=!![];return function(_0x384834,_0x14fa48){const _0x258731=_0x1adebb?function(){if(_0x14fa48){const _0x31f072=_0x14fa48['apply'](_0x384834,arguments);return _0x14fa48=null,_0x31f072;}}:function(){};return _0x1adebb=![],_0x258731;};}()),_0xf94f24=_0x30b6cb(this,function(){return _0xf94f24['toString']()['search']('(((.+)+)+)+$')['toString']()['constructor'](_0xf94f24)['search']('(((.+)+)+)+$');});_0xf94f24();function mulberry32(_0x442084){let _0x8f8202=_0x442084;return function(){_0x8f8202|=0x0,_0x8f8202=_0x8f8202+0x6d2b79f5|0x0;let _0x58db85=Math['imul'](_0x8f8202^_0x8f8202>>>0xf,0x1|_0x8f8202);return _0x58db85^=_0x58db85+Math['imul'](_0x58db85^_0x58db85>>>0x7,_0x58db85|0x3d),((_0x58db85^_0x58db85>>>0xe)>>>0x0)/0x100000000;};}function fisherYatesShuffle(_0x489c9f,_0x273709){let _0x5675d3=_0x273709['length'],_0x2ccecc,_0x45a4bc;const _0x5abe60=mulberry32(_0x489c9f);while(_0x5675d3!==0x0){_0x45a4bc=Math['floor'](_0x5abe60()*_0x5675d3),_0x5675d3-=0x1,_0x2ccecc=_0x273709[_0x5675d3],_0x273709[_0x5675d3]=_0x273709[_0x45a4bc],_0x273709[_0x45a4bc]=_0x2ccecc;}return _0x273709;}function generateIndices(_0x117dc0,_0x19f72e){const _0x3d87e5=Array['from']({'length':_0x19f72e},(_0x2e72e8,_0x1e9b98)=>_0x1e9b98);return fisherYatesShuffle(_0x117dc0,_0x3d87e5);}function selectImage(_0xb24b15,_0x513cd6=0x64){const _0x3c6f71=0x1c3e1f2,_0x2b123d=generateIndices(_0x3c6f71,_0x513cd6),_0x1ff77e=_0x2b123d[_0xb24b15%_0x513cd6]['toString']();return console['log']('tokenId:\x20'+_0xb24b15),console['log']('Selection:\x20'+_0x1ff77e),_0x1ff77e;}let img;function preload(){const _0x19afba=selectImage(tokenData['tokenId']);let _0x83fd18='QmaHrqnoqGnkyHzkrku6mjS2gpGQorRfzP9HawHgwHtuE6';img=loadImage('https://ipfs.brightmoments.io/ipfs/'+_0x83fd18+'/'+_0x19afba+'.png');}function setup(){createCanvas(windowWidth,windowHeight);}function draw(){background(0xff);let _0x5557b6=img['width']/ img['height'],_0x35b029=width,_0x1bfc4e=_0x35b029/_0x5557b6;_0x1bfc4e>height&&(_0x1bfc4e=height,_0x35b029=_0x1bfc4e*_0x5557b6);let _0x5ea2ae=(width-_0x35b029)/0x2,_0x2ce2a8=(height-_0x1bfc4e)/0x2;image(img,_0x5ea2ae,_0x2ce2a8,_0x35b029,_0x1bfc4e);}function windowResized(){resizeCanvas(windowWidth,windowHeight);}
[1,()=>{console.log("Artist 34. Lolo Armdz -- platform 1"); console.log(" *** PATRIA O MUERTE CARETAS *** ");SEED = R.random_int(0,99999999);let t,e,$,n=0,o=0,r,l,d=[],f={};function _(t,e,$,n,o){t.shadowBlur=e,t.shadowColor=$,t.shadowOffsetX=n,t.shadowOffsetY=o}function a(t){t.shadowBlur=0}function m(t,e,$,n,o){let r=t,d=e,a=random(.01,.09),m=random(-PI,PI),s=f.shadowOffset,x=cos(m)*l.width*a*s,u=sin(m)*l.width*a*s;_(r.drawingContext,l.width*a,n,x,u),r.push(),r.beginShape();for(var c=0;c<2;c++){r.fill(240);for(var h=1;h<d.length-1;h++){var v=d[0==c?h:d.length-1-h],g=0==c?o?v.x1_i:v.x1:o?v.x2_i:v.x2,p=0==c?o?v.y1_i:v.y1:o?v.y2_i:v.y2;r.stroke(f.lineStroke),r.strokeWeight(.003*l.width),r.vertex(g,p)}}r.endShape(CLOSE),r.pop()}function s(t,e,$,n,o,r,l,d){var f=random(-1,1)*PI*.02,_=f,a=R.random_choice([.04,.1,.2,.9]),m=o/128;let s=random(.5,1);random(0,100)>90&&(s*=.1);let x=n,u=$,c=$+PI,h=[],v=t,g=e,p=r,y=[],b=[],w=t,A=e,S=.02*PI;random(0,100)>50&&(S*=2);for(var C=0;C<128;C++){var E=C/127;_+=(f-_)*a,u+=_*p,c-=_*p,random(0,100)>50&&(f=random(-1,1)*PI*S);var k=v+cos(u)*m,D=g+sin(u)*m,M=w+cos(c)*m,P=A+sin(c)*m;y.push(k),y.push(D),b.push(M),b.push(P),v=k,g=D,w=M,A=P,h.push({angle:u,angle_i:c})}let O=[];for(var C=0;C<y.length;C+=2)O.push({x:y[C],y:y[C+1],x_i:b[C],y_i:b[C+1],cx:0,cy:0,x1_i:0,y1_i:0,x2_i:0,y2_i:0,x1:0,x2:0,y1:0,y2:0});for(var C=0;C<O.length-1;C++){var E=C/(O.length-1),T=h[C].angle,U=h[C].angle_i,B=x*lerp(.02*s,s,sin(E*PI));l||(B=x);var I=T-.5*PI,N=T+.5*PI,V=U-.5*PI,z=U+.5*PI;if(void 0!=O[C]){var H=O[C].x+cos(I)*B,L=O[C].y+sin(I)*B,Y=O[C].x+cos(N)*B,j=O[C].y+sin(N)*B;O[C].x1=H,O[C].y1=L,O[C].x2=Y,O[C].y2=j,O[C].x1_i=O[C].x_i+cos(V)*B,O[C].y1_i=O[C].y_i+sin(V)*B,O[C].x2_i=O[C].x_i+cos(z)*B,O[C].y2_i=O[C].y_i+sin(z)*B,O[C].cx=O[C].x,O[C].cy=O[C].y,O[C].angle=T}}return O}setup=function(){$=Math.min(t=(e=window.innerHeight)*0.5625,e),n=t/e,o=$/1920,/Android|webOS|MacOs|iPhone|iPad/i.test(navigator.userAgent)?pixelDensity(2):pixelDensity(1),createCanvas(t,e,WEBGL),l=createGraphics(t,e),randomSeed(SEED),noiseSeed(SEED),noLoop(),r=createShader(` precision highp float; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; attribute vec3 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main() { vTexCoord = aTexCoord; vec4 positionVec4 = vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4; } `,` precision mediump float; varying vec2 vTexCoord; uniform sampler2D textura1; uniform vec2 resolution; uniform float u_black; uniform float u_scale; float hash_1(vec2 n) { return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453); } float luma(vec4 color) { return dot(color.rgb, vec3(0.299, 0.587, 0.114)); } float luma(vec3 color) { return dot(color, vec3(0.299, 0.587, 0.114)); } float dither8x8(vec2 position, float brightness) { int x = int(mod(position.x, 8.0)); int y = int(mod(position.y, 8.0)); int index = x + y * 8; float limit = 0.0; if (x < 8) { if (index == 0) limit = 0.015625; if (index == 1) limit = 0.515625; if (index == 2) limit = 0.140625; if (index == 3) limit = 0.640625; if (index == 4) limit = 0.046875; if (index == 5) limit = 0.546875; if (index == 6) limit = 0.171875; if (index == 7) limit = 0.671875; if (index == 8) limit = 0.765625; if (index == 9) limit = 0.265625; if (index == 10) limit = 0.890625; if (index == 11) limit = 0.390625; if (index == 12) limit = 0.796875; if (index == 13) limit = 0.296875; if (index == 14) limit = 0.921875; if (index == 15) limit = 0.421875; if (index == 16) limit = 0.203125; if (index == 17) limit = 0.703125; if (index == 18) limit = 0.078125; if (index == 19) limit = 0.578125; if (index == 20) limit = 0.234375; if (index == 21) limit = 0.734375; if (index == 22) limit = 0.109375; if (index == 23) limit = 0.609375; if (index == 24) limit = 0.953125; if (index == 25) limit = 0.453125; if (index == 26) limit = 0.828125; if (index == 27) limit = 0.328125; if (index == 28) limit = 0.984375; if (index == 29) limit = 0.484375; if (index == 30) limit = 0.859375; if (index == 31) limit = 0.359375; if (index == 32) limit = 0.0625; if (index == 33) limit = 0.5625; if (index == 34) limit = 0.1875; if (index == 35) limit = 0.6875; if (index == 36) limit = 0.03125; if (index == 37) limit = 0.53125; if (index == 38) limit = 0.15625; if (index == 39) limit = 0.65625; if (index == 40) limit = 0.8125; if (index == 41) limit = 0.3125; if (index == 42) limit = 0.9375; if (index == 43) limit = 0.4375; if (index == 44) limit = 0.78125; if (index == 45) limit = 0.28125; if (index == 46) limit = 0.90625; if (index == 47) limit = 0.40625; if (index == 48) limit = 0.25; if (index == 49) limit = 0.75; if (index == 50) limit = 0.125; if (index == 51) limit = 0.625; if (index == 52) limit = 0.21875; if (index == 53) limit = 0.71875; if (index == 54) limit = 0.09375; if (index == 55) limit = 0.59375; if (index == 56) limit = 1.0; if (index == 57) limit = 0.5; if (index == 58) limit = 0.875; if (index == 59) limit = 0.375; if (index == 60) limit = 0.96875; if (index == 61) limit = 0.46875; if (index == 62) limit = 0.84375; if (index == 63) limit = 0.34375; } return brightness < limit ? 0.0 : 1.0; } vec3 dither8x8(vec2 position, vec3 color) { return color * dither8x8(position, luma(color)); } vec4 dither8x8(vec2 position, vec4 color) { return vec4(color.rgb * dither8x8(position, luma(color)), 1.0); } float dither4x4(vec2 position, float brightness) { int x = int(mod(position.x, 4.0)); int y = int(mod(position.y, 4.0)); int index = x + y * 4; float limit = 0.0; if (x < 8) { if (index == 0) limit = 0.0625; if (index == 1) limit = 0.5625; if (index == 2) limit = 0.1875; if (index == 3) limit = 0.6875; if (index == 4) limit = 0.8125; if (index == 5) limit = 0.3125; if (index == 6) limit = 0.9375; if (index == 7) limit = 0.4375; if (index == 8) limit = 0.25; if (index == 9) limit = 0.75; if (index == 10) limit = 0.125; if (index == 11) limit = 0.625; if (index == 12) limit = 1.0; if (index == 13) limit = 0.5; if (index == 14) limit = 0.875; if (index == 15) limit = 0.375; } return brightness < limit ? 0.0 : 1.0; } vec3 dither4x4(vec2 position, vec3 color) { return color * dither4x4(position, luma(color)); } vec4 dither4x4(vec2 position, vec4 color) { return vec4(color.rgb * dither4x4(position, luma(color)), 1.0); } vec2 screenDistort(vec2 uv) { uv -= vec2(.5,.5); uv = uv*1.2*(1./1.2+2.*uv.x*uv.x*uv.y*uv.y); uv += vec2(.5,.5); return uv; } void main() { vec2 uv = (vTexCoord); float noiseAmount = 0.1; float noiseSeed = 0.0; vec4 noise = vec4( mix(-noiseAmount, noiseAmount, fract(noiseSeed + hash_1(uv * 1234.5678))), mix(-noiseAmount, noiseAmount, fract(noiseSeed + hash_1(uv * 876.54321))), mix(-noiseAmount, noiseAmount, fract(noiseSeed + hash_1(uv * 3214.5678))), 0. ); vec2 bkp_uv = uv; const float BARREL = -1.0; const float PINCUSHION = 0.91; float effect = PINCUSHION; float effect_scale = 2.0; uv=uv*2.0-1.0; float d=length(uv); float z = sqrt(1.0 + d * d * effect); float r = atan(d, z) / 3.14159; r *= effect_scale; float phi = atan(uv.y, uv.x); uv = vec2(r*cos(phi)+.5,r*sin(phi)+.5); float distn = distance(vec2(0.5),uv); vec2 uv_noise = uv+noise.rg*distn*(.5*u_scale); vec4 color_n = texture2D(textura1,uv_noise); vec4 color = texture2D(textura1,uv); color.rgb=mix(color.rgb,dither8x8(uv*resolution,color_n.rgb*1.5),smoothstep(0.1,0.7,distn)); vec3 bc = color.rgb; float lu = luma(color.rgb); vec4 outColor = vec4(color+noise*(.5*u_scale)); outColor.rgb=mix(outColor.rgb,vec3(smoothstep(0.3,.9,luma(outColor.rgb))),u_black); gl_FragColor = outColor+noise*.5; }`),f.steps=R.random_int(80,200),f.scaleY=R.random_num(.05,.2)*l.height,f.centered=R.random_num(0,1)>.7,f.lineStroke=R.random_num(50,140),f.black=R.random_num(0,1)>.8,f.bigLeaf=R.random_num(0,1)>.5,f.giantLeaf=!1,f.gridStep=R.random_int(5,20),f.shadowOffset=R.random_num(0,1)>.5;let _=f.steps,a=R.random_dec(0,100),m=R.random_num(.008,.06),s=f.scaleY,x=0,u=0;for(let c=0;c<=_;c++){let h=c/_,v=.5*l.width+sin(a+20*h)*(l.width*m),g=lerp(s,l.height-s,h),p=atan2(g-u,v-x);x=v,f.centered&&(x=.5*l.width),u=g,0==c&&(p=0),d.push({x:v,y:g,z:0,angle:p,dx:0,dy:c/_})}},draw=function(){l.background(0),random(10,20);var t=l.width/f.gridStep;random(2.5,4);let e=2*width,$=2*height;l.blendMode(BLEND),l.push(),l.translate(.5*l.width,.5*l.height),l.translate(-(.5*e),-(.5*$));for(var n=0;n<e;n+=t)for(var x=0;x<$;x+=t)_(l.drawingContext,.02*l.width,color(50),0,0),l.stroke(10),l.fill(0),l.rect(n,x,t,t),a(l.drawingContext);l.pop(),l.push(),d.forEach(t=>{var e=t.x,$=t.y;l.width,l.blendMode(BLEND),l.height,l.width;let n=random(1,10),o=sin(t.dy*PI*n),r=sin(t.dy*PI*n);random(20,80);let d=.1+.1*sin(t.dy*PI),f=l.height*random(.01,.018);random(0,100)>90?f*=4:random(0,100)>50?f*=.9:(f*=.3,d*=1.2),random(0,100)>80&&(d*=4),random(0,100)>90&&(d*=8),random(.1,2);let _=s(e,$,t.angle+.5*PI,f,l.width*d,o,1),x=color(0);x=color(x);let u=lerpColor(x,color(0),1-r);x=lerpColor(x,color(255),r),l.blendMode(BLEND),m(l,_,x,u,!1),m(l,_,x,u,!0);let c=.02*l.width*sin(t.dy*PI);l.stroke(0,100),l.fill(255),l.ellipse(e,$,.5*c,c),l.fill(255),l.noStroke(),a(l.drawingContext)}),l.pop(),background(0,0,255),push(),image(l,-(.5*l.width),-(.5*l.height)),pop(),shader(r),fill(255),r.setUniform("resolution",[width,height]),r.setUniform("u_black",f.black),r.setUniform("u_scale",o),r.setUniform("textura1",l),rect(-(.5*width),-(.5*height),width,height)}; }],[0,()=>{console.log("Artist 47. zancan🌿 -- platform 0");let J=R.R.bind(R),K=r=>r??.5>J(),SA=(e,a,v)=>(e.setAttribute(a,v),e),E=(t,s,n,e,a)=>{e??=n?D.createElementNS(ns,t):D.createElement(t);if(s)for(a in s)a=='t'?e.innerText=s[a]:a=='to'?s[a].appendChild(e):SA(e,a,s[a]);return e},w3=`http://www.w3.org/`,ns=`${w3}2000/svg`, sh=new URLSearchParams(location.search),k='hash',s=e=>sh.get(e),h=s(k)||tokenData[k], dd=(e,n)=>{let s=new XMLSerializer().serializeToString(e),b=new Blob([`<?xml version="1.0" standalone="no"?>`+s],{type:'image/svg+xml'}),u=URL.createObjectURL(b),a=E("a",{href:u,download:n,to:D.body});a.click();a.remove();URL.revokeObjectURL(u)}, iO=o=>typeof o==="object",U=_=>undefined,Q="round", M=Math,PI=M.PI,P2=2*PI,Hy=M.hypot,co=M.cos,si=M.sin,Z=(n,v)=>(n.fill(v??0),n),An=(n,v)=>Z(Array(n),v), I=(n,f)=>{for(let i=0;i<n;i++)f(i)},IJ=(n,m,f)=>I(m,j=>I(n,i=>f(i,j))),Ai=(n,f)=>An(n,0).map((p,i)=>f(i)), N=(x,y,o=iO(x),t)=>(t={x:o?x.x:x,y:o?x.y:y,s:(x,y)=>(t.x=x,t.y=y,t),l:_=>Hy(t.x,t.y),d:p=>Hy(p.x-t.x,p.y-t.y),dt:a=>t.x*a.x+t.y*a.y,a:p=>(t.x+=p.x,t.y+=p.y,t),m:a=>N(t.x-a.x,t.y-a.y),p:(a,b)=>N(t.x+a,t.y+b),u:p=>{let a=p.x-t.x,b=p.y-t.y,l=Hy(a,b);return l?[l,N(a/l,b/l)]:[0]},},t), P=(x,y,z,w=1,o=iO(x),t)=>(t={x:o?x.x:x,y:o?x.y:y,z:o?x.z:z,w,s:(x,y,z)=>(t.x=x,t.y=y,t.z=z,t),l3:_=>Hy(t.x,t.y,t.z),cr3:(a,b,c)=>iO(a)?P(t.y*a.z-t.z*a.y,t.z*a.x-t.x*a.z,t.x*a.y-t.y*a.x):P(t.y*c-t.z*b,t.z*a-t.x*c,t.x*b-t.y*a),dt3:a=>t.x*a.x+t.y*a.y+t.z*a.z,m:a=>P(t.x-a.x,t.y-a.y,t.z-a.z),p:(a,b,c)=>P(t.x+a,t.y+b,t.z+c),nd:u=>(u=t.l3()||1,t.x/=u,t.y/=u,t.z/=u,t)},t), M4=t=>(t={a:An(16),id:_=>(I(16,i=>t.a[i]=i%5?0:1),t),cpy:m=>(t.a=[...m.a],t),cln:_=>M4().cpy(t), r(r,x,y,z){let c=co(r),s=si(r),l=Hy(x,y,z),u=[x/l,y/l,z/l],a=Z(t.a);a[15]=1;I(3,i=>{a[i*4+(i+1)%3]=u[(i+2)%3]*s;a[i*4+(i+2)%3]=-u[(i+1)%3]*s});IJ(3,3,(j,i)=>a[i*4+j]+=(1-c)*u[i]*u[j]+(i==j?c:0));return t}, rot:(r,x,y,z)=>t.cpy(t.mul(M4().r(r,x,y,z))), mul(m){let r=M4(),b=m.a,a=t.a,j=0;for(;j<13;j+=4)I(4,i=>r.a[j+i]=b[j]*a[i]+b[1+j]*a[4+i]+b[2+j]*a[8+i]+b[3+j]*a[12+i]);return r}, mv:(v,r=[],a=t.a)=>(I(4,i=>r[i]=a[i]*v.x+a[i+4]*v.y+a[i+8]*v.z+a[i+12]*v.w),P(...r)), tr(x,y,z){if(iO(x))z=x.z,y=x.y,x=x.x;I(4,i=>t.a[12+i]+=t.a[i]*x+t.a[i+4]*y+t.a[i+8]*z);return t} },t),W=1080,H=W/9*16,u=s('u')||2,nz=(x,y)=>(((1+x/y)*1e6+t0)%10)/10, G=((s,w=W/s|0,h=H/s|0)=>({k:s,w:w,h:h,s:W/w,t:H/h,v:H/h/2,a:An(w*h)}))(8+J()*8|0),l=255, clp=(a,u,v)=>a<u?u:a>v?v:a,srt=(a,b)=>(a<b?[a,b]:[b,a]).map(a=>clp(a,0,G.w-2)), Y=(t=>{t={a:An(G.h),b:-1,c:0,h:G.h,i:_=>{if(t.b>=0)for(let i=t.b;i<=t.c;i++)t.a[i].p=-1;t.b=-1},r:(y,p,q)=>{t.b<0?t.b=t.c=y:y<t.b?t.b=y:y>t.c?t.c=y:0;let[u,v]=srt(p,q),o=t.a[y],i=o.p<0;if(i||u<o.p)o.p=u;if(i||v>o.q)o.q=v}};I(t.h,i=>t.a[i]={y:i,p:-1,q:0});return t})(), cv=E(0,{style:"height:100vh",width:W*u,height:H*u},0,SA(D.body,'style',"margin:0;padding:0").querySelector("canvas")),X=cv.getContext('2d'), F=c=>X.fillStyle=c,C=c=>X.strokeStyle=c,CF=c=>F(c)|C(c),Lw=s=>X.lineWidth=s,BP=_=>X.beginPath(),Fl=_=>X.fill(),Lt=(x,y)=>X.lineTo(x,y),Sk=_=>X.stroke(),xa=(x,a)=>`rgba(${x},${x},${x},${a??1})`,bl=a=>xa(0,a),wh=a=>xa(l,a),gA=a=>X.globalAlpha=a??1, cr3=(r,n)=>Ai(n+1,i=>P(r*co(i*P2/n),0,r*si(i*P2/n))), cr2=(r,n)=>Ai(n+1,i=>N(r*co(i*P2/n),r*si(i*P2/n))), de=(a,e=0,d=1.1,n=M.ceil(e/d),y=-e/2+.5,o=[])=>e<1.5?a:(Ai(n,(i,b)=>{b=a.map(p=>p.p(0,y+i*e/n));o.push(...(i%2?b.reverse():b))}),o), sv,sg=(s,n)=>s?E('g',{name:n,opacity:1,to:s},1):0,su=(x)=>x.toFixed(2),sp=(x,y)=>`${su(x)},${su(y)}`,sl=(a,s,e)=>E("polyline",{points:de(a,e).map(p=>sp(p.x,p.y)).join(' '),to:s},1), Ln=(a,b,c,d)=>sv?E("line",{x1:a,y1:b,x2:c,y2:d,to:sv},1):BP()|Lt(a,b)|Lt(c,d)|Sk(), svc=(x,y,d)=>sl(cr2(d/2,M.max(8,PI*d|0)).map(p=>p.p(x,y)),sv), spi=(x,y,r,q,e)=>{let L=[],t=r,a=0,i,f=e/P2;while(t>q)L.push({x:x+t*co(a),y:y+t*si(a)}),a+=i=1/t,t-=a<P2?0:i*f;sl(L,sv)}, circ=(x,y,d)=>sv?spi(x,y,d/2,.1,1.2):BP()|X.arc(x,y,d/2,0,P2,0)|Fl(), ring=(x,y,d)=>sv?svc(x,y,d):BP()|X.arc(x,y,d/2,0,P2,0)|X.arc(x,y,d/4,0,P2,1)|Fl(), cross=(x,y,d,o=nz(x,y)<.6,k=4*d/G[o?'s':'t']|0,e=.9*d/k,f=(k-1)*e/2)=>{o?x-=f:y-=f;d/=2;Lw(1);Ai(k,i=>o?Ln(x+i*e,y-d,x+i*e,y+d):Ln(x-d,y+i*e,x+d,y+i*e))}, shp,poly=(a,s,e)=>s?sl(a,s,e):BP()|a.map(p=>Lt(p.x,p.y))|Sk(), Dr,iZ,Gp=(x,y,i)=>N((x+.5)*G.s,y*G.t+(i?0:G.v*co(x/3+y/10))), Zi=(x,y)=>G.a[y*G.w+x],Zf=(x,y)=>x>=0&&y>=0&&x<W&&y<H&&!Zi(x/G.s|0,y/G.t|0),Zb=(x,y)=>iZ&&Zi(x,y)?0:(G.a[y*G.w+x]=1,Gp(x,y)), nL=(l,w=[])=>(l?.push(w),w), DR=(y,x,b,p)=>{for(;x<=b;x++)if(p=Zb(x,y))shp(p.x,p.y,Dr(x,y))}, DL=(y,x,b,r=Dr(x,y,1)*.9)=>{let l=[],v,p,s=G.s/2-r/2;Lw(r);for(;x<=b;x++)(p=Zb(x,y))?(v??=nL(l),v.push(p)):v=U();l.map(v=>poly([v[0].p(-s,0),...v,v[v.length-1].p(s,0)],sv,r))}, sT=s('txt')??"GALAXY/VENICE BEACH/NEW YORK/BERLIN/LONDON/MEXICO CITY/TOKYO/BUENOS AIRES/PARIS/VENEZIA/".replaceAll('/','-------'),nT=sT.length, e=1.1,c='i2803003073i8ii8',o='i3703003073i7ii7i3',T={_:{R:.45,e:e,i:1,E:-.05,V:.07,P:1.05},A:['0i5Eii-1797',1.2],B:['00809193840494i5i99i0i-000i',e],C:c,D:'000i7ii7i37000',E:'i0000iii-0484',F:['i0000i-0474',1],G:[`${c}i555`,e],H:'000i-i0ii-04i4',I:'505i-2080-2i8i',J:'i0i88i2i08-80e0',K:'000i-9005-43ii',H:'000i-04i4-i0ii',L:['000iii'],M:['0i0054i0ii',1],N:['0i0Viii0'],O:o,P:['000i-0080i2i48606',e],Q:[`${o}-77ee`,e],R:['000i-0090i1i39404-64ii',e],S:'91801001042585i6i98i1i09',T:'00i0-505i',U:'00082i8ii8i0',V:['005ii0',e],W:'002i568ii0',X:['00ii-0ii0',e],Y:['i05500-555i',e],Z:['00P00iii',e],'/':'0ii0','-':['07i7',.8],'.':['3iRi',.5],}, cT=(b,q)=>{let o=[],L=nL(o),i=0,l=T[b],a=l&&Array.isArray(l)?l:l?[l]:0,s=a?a[0]:0,n=s?.length|0,k=a?a[1]??.9:0,c=(i)=>T._[s[i]]??s[i]/10;while(i<n)s[i]=='-'?(i++,L=nL(o)):L.push(N(c(i++)*G.s*k*q,c(i++)*G.t*q));return o}, DT=(y,x,b)=>{let p,L,m=M.min(.7,Dr(x,y)/G.t),s=sT;Lw(1);for(;x<=b;x++)if((p=Zb(x,y))&&(L=cT(s[(x+((2+y%10)*t0)%nT+y*y|0)%nT],m)))L.map(l=>poly(l.map(q=>q.a(p)),sv))}, rowf=DR, mk=(ps,o=[],i=0,q,L)=>(ps.map(p=>{if(q){let x=0,[l,u]=q.u(p),a=N(q),b=c=>L.push(c),j;for(;x<l;x++,a.a(u)){if((j=Zf(a.x,a.y))!=i){j?o.push(L=[N(a)]):b(a.m(u));i=j}}if(L&&j)b(p)}q=p}),o), tri=(A,B,C)=>{let[a,b,c]=[A,B,C].sort((a,b)=>a.y<b.y?-1:1),i,y,w,v,k,x,s=(q,r)=>{if(y=r.y-q.y)for(w=(r.x-q.x)/y,v=q.x,x=a.x+(q.y-a.y)*k,i=q.y;i<=r.y;i++,v+=w,x+=k)if(i>0&&i<G.h)Y.r(i,v|0,x|0)};if(c.y>a.y)k=(c.x-a.x)/(c.y-a.y),s(a,b),s(b,c)}, squ=(A,B,C,D)=>tri(A,B,C)|tri(A,C,D), cube=(w,h,d)=>{let v=[],i=0,N=(k,l)=>i&k?l/2:-l/2;for(;i<8;i++)v.push(P(N(1,w),N(2,h),N(4,d)));return {t:0,v:v,h:h,d:d,f:[[0,4,6,2],[1,3,7,5],[0,1,5,4],[2,6,7,3],[0,2,3,1],[4,5,7,6]]}}, rf=requestAnimationFrame,tm0,ni=5,nj=10,wi=W/ni,wj=H/nj,O=N(W/2,H*.7),nr=wi/2,fr=.9e3, p2D=(p,z=p.z/30)=>N(p.x-z/2,H-p.y+z), pj=(p)=>(p.z<nr?N(O.x+fr*(p.x-O.x)/(1+nr-p.z),O.y-fr*(p.y-O.y)/(1+nr-p.z)):p2D(p)), gr=_=>'#64966E',bs=[[gr(),wh,bl,0],['#D66086',wh,bl,0],['#F5F6F3',bl,bl,0],[bl(),wh,K()?gr:wh,l]], Os=[],[bg,ln,cR,bn]=bs[J()*bs.length|0], lt,Lts=P(-1,1,-1).nd(),t0=0, dtf=(r=J())=>r<.7?(x,y,l)=>(1.5+lt*G.t*(1+(l?0:nz(x,y))))*.6:(x,y,l)=>(1.5+lt*G.t*(l?.7:1)) ,py=u<3, petal=(sz,a,r,m,k=.5+J()/2,q=m.mul(M4().r(a,0,1,0)))=>cr3(1,20).map(p=>q.mv(p.s(sz*p.x/3,sz/2*k*si((1+p.z)/2*PI/2),(p.z/2+.5)**.6*sz+r))), stem=(sz,n=20,d=sz/n,x=0,y=0,a=0,b=PI*(J()-.5)/n)=>Ai(n,i=>P(x+=d*si(a),y+=d*co(a+=b),0)), ft=(i,q=J())=>(q<.2&&i)?DT:q<.8?DR:DL console.log(`seed:${h}\n\nPress [s] for plottable SVG\n\n- Z🌿`) X.scale(u,u) X.lineCap=Q cv.onclick=_=>py^=1 IJ(ni,nj,(i,j,p,o,k=j/(nj-1))=>{ Os.push(o={...cube(wi*(.1+J())/3,wj*(1+k*J()*nj),wi*J()), tr:p=P(O.x+(i-ni/2+J())*wi/3,(j/2+6)*wj,-(wj+H*(k**1.3))),clr:cR(),k:{rx:(J()-.5)*PI*.7,ry:0*PI*J()},ks:N(0,J()*PI),iz:K(.9),ctr:J()<.4}) let c=P(0,e*o.h+wj*J(),1),m=M4().id().tr(c).rot(PI/6,1,0,0),r=10,rp=30,np=6+8*J()|0 K()?Os.push({t:1,tr:P(p.x,p.y,p.z-o.d/2),Ls:[[P(0,0,0),c],cr3(r,20).map(p=>m.mv(p)),...Ai(np,i=>petal(rp,i*P2/np,r,m))]}) :(K()||k<.2)?I(5,k=>Os.push({t:1,tr:P(p.x+(J()-.5)/3*wi,p.y,p.z+(J()-.5)*o.d),Ls:[stem((J()+1)*c.y/2)]})):0 o.tr.y+=o.h*.4 }) Os.sort((a,b)=>a.tr.z<b.tr.z?1:-1) let B=_=>{F(bg),X.fillRect(0,0,W,H)},cvi,xi,B2=_=>{ let w=G.w/10*G.s*u|0,h=cv.height,x,y,a,b,e if(!xi){let id=new ImageData(w+1+G.s*u|0,h),p=id.data,t=0,q=K(),r=K();IJ(id.width,h,(i,j)=>{p[t]=p[t+1]=p[t+2]=bn;p[3+t]=J()*(200+(50*co((q*j/u+r*60*i/w|0)*P2/6))|0)*(h-j)/h|0;t+=4});xi=(cvi=E('canvas',{width:cv.width,height:h})).getContext('2d');xi.putImageData(id,0,0),id=null} IJ(G.w,G.h,(i,j)=>{if(e=(2*!Zi(i,j)+!Zi(i-1,j))/3)x=i*G.s|0,y=j*G.t|0,a=((i+1)*G.s|0)-x,b=((j+1)*G.t|0)-y,gA(e),X.drawImage(cvi,(x%(w/u|0))*u,y*u,a*u,b*u,x,y+(e<1?(1-e)*J()*G.t:0),a,b)});gA() }, Ut=(tm,s)=>{ let dt=M.min(.2,(tm-(tm0??tm))/1e3),m4,ol=[] const f=[(c)=>{ m4=M4().id().tr(c.tr).rot(c.k.rx,1,0,0).rot(c.k.ry,0,1,0); c.vt=c.v.map(v=>m4.mv(v)) c.vp=c.vt.map(v=>pj(v)) c.vg=c.vp.map(v=>N(v.x/G.s|0,v.y/G.t|0)) c.f.map(f=>{let p=f.map(i=>c.vp[i]),[u,v,w]=p;if((f.ff=((v.x-u.x)*(w.y-u.y)-(v.y-u.y)*(w.x-u.x))<0)&&c.ctr)ol.push(...mk([...p,p[0]]))}) c.f.map(f=>{if(f.ff){ let[u,v,w]=f.map(i=>c.vt[i]),n=v.m(u).cr3(w.m(u)).nd() lt=(.5-n.dt3(Lts)/2)**2 Dr=(f.r??=dtf());rowf=f.rf??=ft(c.iz);shp=f.rs??=((r)=>r<.6?ring:r<.8?cross:circ)(J()) CF(c.clr);Y.i() squ(...f.map(i=>c.vg[i])) if(Y.b>=0)for(let p,i=Y.b;i<=Y.c&&(p=Y.a[i++]);)if(p.p>=0)rowf(p.y,p.p+1,p.q); }}) c.k.ry+=dt*c.ks.y },(c)=>{if(!c.vt){m4=M4().id().tr(c.tr);c.Ls.map(L=>{L.vt=L.map(v=>m4.mv(v));L.vp=L.vt.map(v=>pj(v))})}c.Ls.map(L=>ol.push(...mk(L.vp)))}] tm0=tm if(py||s||!t0){ s?0:B();Z(G.a); sv=sg(s,'fills') Os.map(c=>{iZ=c.iz;f[c.t]?.call(c,c)}) Lw(1);B2();C(ln()) let g=sg(s,'lines') ol.map(L=>poly(L,g)) } if(!s)t0+=dt;rf(Ut) } rf(Ut) D.addEventListener('keypress',e=>{if(e.key=='s'){let m=20,s=E("svg",{xmlns:ns,version:"1.1",width:`236mm`,height:`420mm`,viewBox:[-m,-m,W+2*m,H+2*m].join(' '),stroke:"black",fill:"none","stroke-width":1,opacity:1,'stroke-linecap':Q,"stroke-linejoin":Q},1);py=0;Ut(tm0,s);dd(s,"z.svg")}}) }],
[1,()=>{console.log("Artist 2. Anna Carreras -- platform 1");var llv,eW,eH,gWH,ma,mo,nn,av,V,G,B,t,aR,bR,cR,dR,aG,bG,cG,dG,aB,bB,cB,dB,munt,m1,m2,m3,m4,m5,desf,pr=0,tt=0;setup=()=>{mF=Math.floor,mC=Math.cos,mS=Math.sin,mN=Math.min,cg=createGraphics,createCanvas(eW=1800,eH=3200),eWm=mF(.5*eW),pixelDensity(1),noCursor(),gW=windowWidth/(pd=pixelDensity())/eW,resizeCanvas(eW*(gWH=mN(gW,gH=windowHeight/pd/eH)),eH*gWH),llv=R.random_num(0,4294967295),pg1=cg(eW,eH),pg2=cg(eW,eH),pg1.clear(),pg1.background(0),pg2.clear(),pg2.background(0),aR=.1*mF(R.random_num(1,8)),bR=.1*mF(R.random_num(4,6)),cR=1,dR=.1*mF(R.random_num(4,6)),aG=.1*mF(R.random_num(1,8)),bG=.1*mF(R.random_num(4,6)),cG=1,dG=.1*mF(R.random_num(4,6)),aB=.1*mF(R.random_num(1,8)),bB=.1*mF(R.random_num(4,6)),cB=1,dB=.1*mF(R.random_num(4,6)),ma=R.random_num(.02,.05),mo=R.random_num(.05,.9),av=2e-4,munt=.02,m1=mF(R.random_num(230,260)),m2=mF(R.random_num(760,790)),m3=mF(R.random_num(390,450)),m4=mF(R.random_num(650,710)),m5=mF(R.random_num(400,440)),desf=mF(R.random_num(-30,0)),pg1.noFill(),pg1.strokeWeight(4),pg1.strokeJoin(ROUND),pg2.strokeJoin(ROUND)},draw=()=>{pg1.push(),pg1.scale(gWH,gWH),pg2.push(),pg2.scale(gWH,gWH),pr+=av,tt+=av,noiseSeed(llv),V=255*(aR+bR*mC(TWO_PI*(cR*(t=noise(100*tt))+dR))),G=255*(aG+bG*mC(TWO_PI*(cG*t+dG))),B=255*(aB+bB*mC(TWO_PI*(cB*t+dB))),pg1.beginShape();let $=map(pr,0,1,-100,eH+100);pg1.stroke(V,G,B);for(let m=-eWm;m<3*eWm;m+=1){let e=muntanya(m,$);pg1.vertex(e.x,e.y)}pg1.endShape(),V=255*(aR+bR*mC(TWO_PI*(cR*t+dR)+.2*PI)),G=255*(aG+bG*mC(TWO_PI*(cG*t+dG)+.2*PI)),B=255*(aB+bB*mC(TWO_PI*(cB*t+dB)+.2*PI)),pg2.noFill(),pg2.strokeWeight(4),pg2.beginShape(),pg2.stroke(V,G,B);for(let n=-eWm;n<3*eWm;n+=1){let r=muntanya(n,$);pg2.vertex(r.x,r.y)}pg2.endShape(),pg2.erase(),pg2.noStroke(),pg2.fill(0),pg2.circle(220,280,m1),pg2.circle(eW-460,480,m2),pg2.circle(eW-900,950,m3),pg2.circle(380,eH-400,m4),pg2.circle(880,eH-900,m5),pg2.noErase(),pg1.pop(),pg2.pop(),image(pg1,0,0),image(pg2,0,desf),pr>1.2&&(pr=0)},muntanya=($,m)=>{let e=ma*(200*noise(.08*m)*sin(.01*m-.01*pr)+100*sin($*munt+.03*pr)),n=mo*(200*noise(.08*m)*sin(.01*m-.01*pr)+100*sin($*munt+.03*pr));return createVector($+mC(e)*n,m+mS(e)*n)}; }],[1,()=>{console.log("Artist 23. Jeff Davis -- platform 1");let w,h,lo,fo,sp,speed,p1,p2,p3,p4,p5,p6,p7,p8,start,run,t;setup=function(){w=window.innerWidth,h=window.innerHeight,lo=R.random_num(.25,.75),fo=R.random_num(.1,.5),sp=R.random_num(3,5),updateColors(),updateColors(),noStroke(),createCanvas(w,h,WEBGL),start=millis()},draw=function(){(run=millis()-start)>1e3*speed&&(updateColors(),start=millis(),run=0),t=run/(1e3*speed),push(),translate(-w/2,-h/2),beginShape(),fill(lerpColor(p1,p5,t)),vertex(0,0),vertex(w,0),fill(lerpColor(p2,p6,t)),vertex(w,h),vertex(0,h),endShape(),beginShape(),fill(lerpColor(color(red(p3),green(p3),blue(p3),127),color(red(p7),green(p7),blue(p7),127),t)),vertex(0,0),vertex(0,h),fill(lerpColor(color(red(p4),green(p4),blue(p4),127),color(red(p8),green(p8),blue(p8),127),t)),vertex(w,h),vertex(w,0),endShape(),pop()},newColor=function(){colorMode(HSB);let p=R.random_num(130,470)%360,$=R.random_num(0,100),n=R.random_num(0,100);R.random_bool(lo)?n=100:$=100,R.random_bool(fo)&&($=n=100);let o=color(p,$,n);return colorMode(RGB),o},updateColors=function(){for(p1=p5,p2=p6,p3=p7,p4=p8,p5=newColor(),p6=newColor();35>Math.abs(hue(p5)-hue(p6))||Math.abs(hue(p5)-hue(p6))>325;)p6=newColor();for(p7=newColor(),p8=newColor();35>Math.abs(hue(p7)-hue(p8))||Math.abs(hue(p7)-hue(p8))>325;)p8=newColor();speed=R.random_num(sp,sp+5)}; }],[1,()=>{console.log("Artist 10. Iskra Velitchkova -- platform 1");const urlSearchParams=new URLSearchParams(window.location.search),params2=Object.fromEntries(urlSearchParams.entries());let pg,fs=params2.fs||1;class YY{constructor(){}rd(){return R.random_dec()}rdb(e){return e*this.rd()}rn(e,t){return R.random_num(e,t)}ri(e,t){return R.random_int(e,t)}}let Y=new YY;var density,blockType,rand,size;t=0;var pgW,pgH,sW,sH,sh,shV,shF,globalAspectRatio=6/9,dP={};let pgScale;shV="varying vec2 vTexCoord;attribute vec3 aPosition;attribute vec2 aTexCoord;void main() { vTexCoord = aTexCoord; vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0 - 1.0; gl_Position = positionVec4;}",shF="precision mediump float;varying vec2 vTexCoord;uniform sampler2D tex0;uniform vec2 tS,u_dir;uniform bool u_aB,u_bw,u_f, u_inv;uniform float u_time,u_pA,u_pB,u_pC,u_g,u_br,u_con,u_rgbr, u_rgbg, u_rgbb;float rd (vec2 st) { return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);}vec3 gB( sampler2D t, vec2 texUV, vec2 sS ){ vec3 colOut = vec3( 0.0 ); const int sC = 9;\tfloat gW[sC]; gW[0] = 0.10855; gW[1] = 0.13135; gW[2] = 0.10406; gW[3] = 0.07216; gW[4] = 0.04380; gW[5] = 0.02328; gW[6] = 0.01083; gW[7] = 0.00441; gW[8] = 0.00157;\tfloat gO[sC]; gO[0] = 0.66293; gO[1] = 2.47904; gO[2] = 4.46232; gO[3] = 6.44568; gO[4] = 8.42917; gO[5] = 10.41281; gO[6] = 12.39664; gO[7] = 14.38070; gO[8] = 16.36501;\tfor( int i = 0; i < sC; i++ ){ vec2 tCO = gO[i] * sS; vec3 col = texture2D( t, texUV + tCO ).xyz + texture2D( t, texUV - tCO ).xyz; col *= gW[i]; colOut += col; }\treturn colOut; } float dc(vec2 c, float r) { return step(length(c), r);}vec3 g(vec3 v, float p){ return vec3(pow(abs(v.r), p),pow(abs(v.g), p),pow(abs(v.b), p));}vec3 bC(vec3 v, float b, float c){ return (v - 0.5) * c + 0.5 + b;}void main() { vec2 uv = vTexCoord;\tfloat rnd = rd( uv*u_time);\tvec3 tN = vec3(0.5,0.5,0.5)*rnd; vec3 tI = texture2D(tex0,vec2(uv.x, 1. - uv.y)).xyz; vec3 cOut; vec3 b1 = gB(tex0, vec2(uv.x, 1. - uv.y), tS * u_dir); vec3 b2 = gB(tex0, vec2(uv.x, 1. - uv.y), tS * vec2(u_dir.x,u_dir.x)); vec3 b3 = gB(tex0, vec2(uv.x, 1. - uv.y), tS * vec2((u_dir.y+u_dir.x)/2.,(u_dir.y+u_dir.x)/2.)); b1 = 0.6*b1+0.2*b2+0.2*b3; cOut = bC(tI*(b1*u_pA+u_pB)+tN*u_pC+0.03*tN*(0.5+b1), u_br, u_con); cOut = cOut.rgb*vec3(u_rgbr,u_rgbg,u_rgbb).rgb;\tif (u_bw) { cOut = vec3(0.51 * cOut.r + 0.41 * cOut.g + 0.17 * cOut.b);\t} cOut = g(cOut,u_g); if (u_inv) { cOut = vec3(1.,1.,1.)-cOut;\t}\tgl_FragColor = vec4(cOut,1.0);\t}",setup=function(){fs=int(fs),sH=windowWidth<windowHeight*globalAspectRatio?windowWidth/globalAspectRatio:windowHeight,sW=sH*globalAspectRatio,pgW=(pgH=1e3)*globalAspectRatio,pgScale=1==fs?windowHeight/pgH:1,density=2,pixelDensity(density),renderer=createCanvas(0==fs?Math.round(sW):windowWidth,0==fs?Math.round(sH):windowHeight,WEBGL),renderer.id("8and1/2"),document.body.style="background-color:white;margin:0;overflow: hidden; display: flex; justify-content: center; align-items: center;",(pg=createGraphics(0==fs?pgW:windowWidth,0==fs?pgH:windowHeight,WEBGL)).pixelDensity(density),setupArt(),art(),sh=createShader(shV,shF),noLoop(),console.log('"At Otto e mezzo by the beach loungers"\n\nI enjoy telling people that one day I dreamed that, during a vacation in Venice years ago, I used to encounter Federico Fellini every afternoon around otto e mezzo. What no one knows is that it wasn\'t a dream. And here are the photos of the beach loungers.\n \nOriginal artwork by Iskra Velitchkova @pointline_, part of the Bright Moments Finale collection. 2024.\nPress 3-9 to obtain gradually higher resolution images. Save image pressing "s".\nFullscreen by default. To obtain the 9:16 thumbnail image, append ?fs=0 to the URL.')},shI=function(){shader(sh),sh.setUniform("tS",[dP.shT/pg.width*dP.shK,dP.shT/pg.height*dP.shK]),sh.setUniform("u_aB",dP.shAB),sh.setUniform("u_dir",[dP.shBx,dP.shBy]),sh.setUniform("u_time",dP.noiseK),sh.setUniform("u_pA",dP.shBlEqA),sh.setUniform("u_pB",dP.shBlEqB),sh.setUniform("u_pC",dP.shBlEqC),sh.setUniform("u_bw",dP.shBW),sh.setUniform("u_g",dP.shG),sh.setUniform("u_br",dP.shBr),sh.setUniform("u_con",dP.shCon),sh.setUniform("u_inv",dP.shInv),sh.setUniform("u_rgbr",dP.r),sh.setUniform("u_rgbg",dP.g),sh.setUniform("u_rgbb",dP.b)},art=function(){if(dP.shAB=!0,dP.shBW=!1,dP.shBx=1.25,dP.shBy=1.25,dP.shK=1.05,dP.shT=1,dP.shBlEqA=.9,dP.shBlEqB=.01,dP.shBlEqC=1.1*(dP.shBW?1.18:.25),dP.shG=1*(dP.shBW?1.65:1.05),dP.shBr=.3,dP.shCon=1.5,dP.r=1,dP.g=1.6,dP.b=1.4,dP.shInv=!0,dP.noiseK=3,pg.background(Y.rdb(250),Y.rdb(79),Y.rdb(79)),pg.fill(Y.rdb(79),Y.rdb(250),Y.rdb(250),90),"sola"==blockType){pg.translate(0,Y.rn(height/10,height/20)),pg.scale(.8*pgScale);let e=Y.rd()<.75;for(let t=0;t<Y.rn(10,40);t+=2)pg.push(),pg.strokeWeight(5*pgScale),pg.stroke(Y.rdb(250),Y.rdb(250),Y.rdb(250)),pg.fill(Y.rdb(250),Y.rdb(250),Y.rdb(250),90),sola(Y.rdb(t)/120,e),pg.pop(),pg.rotateX(Y.rn(7,11))}else if("alargadas"==blockType){pg.translate(0,Y.rdb(height/10,height/20)),pg.scale(pgScale*Y.rn(6,10));for(let e=0;e<Y.rn(10,40);e+=1)pg.push(),pg.strokeWeight(5*pgScale),pg.stroke(Y.rdb(250),Y.rdb(250),Y.rdb(250)),pg.fill(Y.rdb(250),Y.rdb(250),Y.rdb(250),90),alargadas(e*Y.rdb(11)+Y.rdb(200),Y.rdb(e)/120,111*e),pg.pop(),pg.rotateX(Y.rn(7,11))}else if("ordenadas"==blockType){pg.translate(Y.rn(-width,width/10),Y.rn(height/10,height/20)),pg.scale(.6*pgScale);let e=Y.rd(),t=e<.43?1:e<.66?2:3;for(let e=0;e<Y.rn(10,40);e+=1)pg.push(),pg.strokeWeight(5*pgScale),pg.stroke(Y.rdb(250),Y.rdb(250),Y.rdb(250)),pg.fill(Y.rdb(250),Y.rdb(250),Y.rdb(250),90),ordenadas(Y.rdb(e)/120,t),pg.pop(),pg.rotateX(Y.rn(7,11))}},draw=function(){shI(),sh.setUniform("tex0",pg),rect(-sW/2,-sH/2,sW,sH)},changeRes=function(e){pixelDensity(int(e)),(pg=createGraphics(0==fs?pgW:windowWidth,0==fs?pgH:windowHeight,WEBGL)).pixelDensity(int(e)),setupArt(),art(),sh=createShader(shV,shF),redraw()},keyPressed=function(e){83===keyCode&&save("8and1/2_"+blockType+"_"+tokenData.hash+".png"),-1!="123456789".indexOf(e.key)&&changeRes(e.key)},windowResized=function(){if(1!=fs){sH=windowWidth<windowHeight*globalAspectRatio?windowWidth/globalAspectRatio:windowHeight,sW=sH*globalAspectRatio;var e=document.getElementById("8and1/2");e.style.height=sH+"px",e.style.width=sW+"px"}},setupArt=function(){chooseBlock()},chooseBlock=function(){let e=Y.rd();blockType=e<.35?"ordenadas":e<.75?"alargadas":"sola"},ordenadas=function(e,t){for(let r=0;r<400;r+=t<3?t:Y.rn(1,2))pg.box(r,21*e),pg.push(),pg.rect(333*r,112*e,310,Y.rn(300,400)),pg.pop()},sola=function(e,t){for(let r=0;r<400;r+=random(1,3))pg.box(211*r,111*e),pg.rect(3122*r-random(190),1110*e,140,140),pg.push(),t&&pg.rect(11111*r,112*e,310,300),pg.pop()},alargadas=function(e,t,r){for(let e=0;e<400;e+=1)pg.push(),pg.rect(11*e,1*t,10,Y.rn(22,32)),pg.pop(),pg.rotateY(PI*r*1111)}; }],[1,()=>{console.log("Artist 37. Juan Pedro Vallejo -- platform 1"); let t,e,r,a,o,i,n,s,m,l,c,d,_,u=Math.min(window.innerWidth,window.innerHeight);function p(t){noStroke();let r=createVector(R.random_num(-1,1),R.random_num(-1,1));r.mult(w/2).add(createVector(w/2,h/2)),push(),translate(r.x,r.y),rotate(radians(R.random_choice([0,90]))),stroke(0,0);let a=R.random_int(1,20);f(R.random_choice([0,1]),e.fullGamma.slice(a,a+10),255,0);let o=R.random_num(w/15,w/5),i=R.random_num(h/5,h/2.2);rect(0,0,o,i),pop()}function f(t,e,r,a){let o=drawingContext.createLinearGradient(0,0,0==t?w:0,0==t?0:h),i=1/e.length;for(let t=0;t<e.length;t++){let r=e[t];o.addColorStop(i*t,r)}o.addColorStop(1,e[0]),0==a?drawingContext.fillStyle=o:drawingContext.strokeStyle=o}function g(t){drawingContext.setLineDash(t)}setup=function(){[w,h]=function(t,e,r){let a,o;[a,o]=e*r<=t?[e*r,e]:[t,t/r];return[1*a,1*o]}(window.innerWidth,window.innerHeight,9/16),w=Math.round(w),h=Math.round(h),cnv=createCanvas(w,h),t=Math.min(w/1080,h/1920),e=new k(5),pad=50*t,pixelDensity(),function(){fill(247),noStroke(),rect(0,0,w,h),n=!1,o=R.random_choice([10,50]);let u=R.random_int(50,100);i=R.random_choice([0,2]),r=R.random_choice([!1,!0]);let f=[[50,R.random_num(50,70)],[R.random_choice([50,80]),R.random_num(20,40)],[100,R.random_num(5,35)],[R.random_num(100,150),R.random_num(10,20)],[R.random_num(250,300),R.random_num(5,10)]];c=R.random_choice([0,1,2,2]),l=R.random_num(.5,4),a=R.random_choice([1,2,3,3,4,4,4]),_=R.random_num(.2,.5),4==a&&(u=R.random_num(90,200),r=!1,n=!0,s=R.random_num(5,10),m=R.random_num(10,40),l=R.random_num(.1,1.5),i=R.random_choice([0,2]),_=R.random_choice([.1,.4]));1==a&&(r=!0,u=R.random_int(20,50),o=R.random_choice([20,30]),i=2);let g=new C(createVector(w/2,h/2),3*w,f[a][0],t*f[a][1]*R.random_choice([-1,1]),0,u);stroke(245,0),rect(w/2,h/2,w-pad,h-pad),drawingContext.clip(),push(),d=R.random_choice([R.random_int(6,30),R.random_int(4,20)]);for(let t=0;t<d;t++)p();(function(){for(let r=0;r<2e4;r++)strokeWeight(R.random_num(1*t,2*t)),stroke(e.fullGamma[R.random_int(0,20)]),point(R.random_num(0,w),R.random_num(0,h))})(),translate(w/2,h/2),g.gen(1),pop()}()};class k{constructor(t){this.rule=t,this.gamma=[],this.gamma_arrays=[],this.colors_temp=[],this.fullGamma=[],this.gamma_sat=[],this.cc2=[],this.subdivide=40,this.temp_gamma=[color(255,0,0),color(85,208,66),color(34,39,168),color(230,240,15),color(5,170,240),color(230,15,245)],this.generate_gamma(),this.grayScale2(R.random_int(0,19)),this.generateSet()}generate_gamma(){let t=this.temp_gamma,e=[4,2,5,3];for(let r=0;r<4;r++){let a=e[r],o=e[(r+1)%4];this.a=t[a],this.b=t[o],this.generate_steps(this.a,this.b,5*r)}}generateSet(){let t=R.random_int(0,19),e=this.add_different(t,R.random_int(0,19));5==this.rule&&(this.subdivide=40,this.gen_rules8(t),this.gen_rules8(e)),this.composeColors()}composeColors(){let t;this.fullGamma=[];for(let e=0;e<40;e++)t=e%20,this.fullGamma.push(e>=this.subdivide?this.gamma_arrays[0][t]:this.gamma_arrays[1][t])}gen_rules8(t){this.temp=[],this.cc2=[],this.colors_temp=this.gamma;for(let e=0;e<20;e++){let r=e%2;this.cc2[e]=0==r?t:this.colors_temp[e],this.temp.push(0==r?this.gamma_sat[e]:this.colors_temp[e])}this.gamma_arrays.push(this.temp)}generate_steps(t,e,r){let a=0;for(let o=r;o<r+5;o++){let r=lerpColor(t,e,a);this.gamma.push(r),a+=.2}}grayScale2(t){let e=[];for(let r=0;r<20;r++)e.push(lerpColor(this.gamma[t],color(245),r/20));R.random_dec()>.5&&e.reverse(),this.gamma_sat=[];for(let t=0;t<20;t++)this.gamma_sat.push(e[t])}add_different(t,e){return t==e?this.add_different(t,R.random_int(0,39)):e}}class C{constructor(t,e,r,a,o,i){this.diam=e,this.freq=this.diam/i,this.position=t,this.aperture=a,this.freq2=i,this.cuts=r,this.parts_size=this.diam/this.cuts,rectMode(CENTER),strokeCap(SQUARE)}gen(t){let e=0,r=0;push(),noStroke(),fill(255,0),rect(0,0,this.diam,this.parts_size),drawingContext.clip();let a=R.random_int(25,49);this.concentrics(0,0,a,t),pop();for(let o=1;o<this.cuts;o++){push(),noStroke(),fill(255,0);let i=e+=this.aperture;rect(i,0+o*this.parts_size,this.diam,this.parts_size),drawingContext.clip(),this.concentrics(i,1,a,t,o),pop(),push();let n=r-=this.aperture;noStroke(),fill(255,0),rect(n,0-o*this.parts_size,this.diam,this.parts_size),drawingContext.clip(),this.concentrics(n,2,a,t,o+1),pop()}}concentrics(h,d,u,p,w){noFill(),stroke(15);let k=!1;R.random_int(1,500);0==R.random_choice([0,1])?noFill():(fill(247),k=R.random_choice([!0,!1,!1]),4==a&&0==R.random_choice([0,1,1])&&(k=!0)),1==r&&(this.freq2=R.random_num(5,100),this.freq=this.diam/this.freq2),this.freq2<=50?strokeWeight(R.random_num(4*t,t*o)):strokeWeight(R.random_num(2*t,t*R.random_num(3,4)));for(let r=this.freq2;r>0;r--){R.random_choice([random(10,5)]);push();let o=R.random_int(1,20);if(0==i){let r=R.random_choice([0,1]);0==r?f(0,e.fullGamma.slice(o,o+10),0,1):1==r&&(f(1,e.fullGamma.slice(o,o+5),0,1),4==a&&(stroke(15),strokeWeight(2*t)))}else f(0,e.fullGamma.slice(o,o+10),0,1);g(n?[t*s,t*m]:[t*R.random_choice([100,200,50,10,5,25,80,150]),t*R.random_choice([50,100,200,10,25])]),1==k&&R.random_dec()<_&&(0==c?fill(e.gamma_sat[floor(r*l)%20]):1==c?fill(e.fullGamma[R.random_int(0,30)]):2==c&&fill(e.fullGamma[floor(r*l)%40])),push(),translate(h,0),rotate(R.random_num(0,TWO_PI)),ellipse(0,0,r*this.freq),pop(),pop()}fill(e.fullGamma[5]),noStroke(),ellipse(0,0,this.parts_size/2,this.parts_size/2)}}; }],
ata:image/webp;base64,UklGRigbAABXRUJQVlA4TBsbAAAvU4ZOEJWK2jaSopn+ywYi7oMoIiYAEOSzNYnbTSJ/N4YHSI5ZzKpgCgqu4R0xSSL3hf+fIcf//yX7tm3btm19jEP7c2ac2se2bdu2bdvMtV3Pqt29b01nklfnU8/JPGemO48kLee2bWPPVhlVtm3bts0qlW3btu1Uqp0qlZ18Nv/A+wSubW3HnBOzt211TkrbdiqzSjeXMOmMW7CNyrZtZ2by/X//acG2VbeR1oVrhCUF2ZLsZOJ+ZNw/lvf/L7P5mmv+hWf/O7bNsW3btvlgbNu27Xkwx/ZZ3cea2Z6l+k3aO826i6RJmiZtWgnUth1v89a2bdu2bduYbdu2tzh/3b+pYtY2Z9vIKom2bUOSXjrbtm3btt097pHdU49t2zbKtm3bEfEjXnxF9F+S20iSJInZ0ROF8ETcZv+AnxyN7zfoTVGrA9gD1A/YtNzmgwbdIPWucI8wa/I4aoiKfX/PWbW+ODW/Vq8dWtgVBrC07b3BeffIxRSVbj6uD1oHMKvWhhRB1nGz4Xry/v6U90SaOmKodz9Y5f11+vrIlGrt7Ac4pPyPKN5EcQhVPll1j2BaeRxaupZk+ufqbqsIS0JsNtY4YkXCqqT8Ayz+OTOyZo9S/gF62hWRfRfU7oD57IwqG5SVsWI8S+NdhQFgftwxCPUp6q0/ZRc7Yg5gtzNVh1T6Z7EUE4UB1HWODbts4FWq16I/8Jl5zazViS4SSULqZpOMXUBtE8wDVDZAF7T9+WaP41jh06cItEP2ll34J0X50wDMQy60UpDbJInzy5ACb5nA7rL6mJ7VamUGQFSpMADMb+q7cX7KLva0c3pK0S6FKIqUsUMjOwVVeu7m9p2/lMk2ka0Jfd4OljCzM74hsC0F5idlhmz0gK9OLzkA6cqrhJlNmutkW5IYpgWVYnCPCdgwx0+2UoyjqeeEcRyj0E8echGxqCLi7+BaERE3bP+LLLMcJToRW7RKWLWBt/aFjy7QnaGulK77wLMHk1cr4jIP1p8qW2N1/4t8aqcYhagYvE/Wx39Tp6QU7Kme3X6u5qUfYNVYYRNZhrwIbDDcM+4E94w78SgCKx4ajK6kKUSMEYV+sB0R7r1JkuDzSldju63Qf4CxXu+45W2rQm+zGrXhTNjW6erUF97UmaZTuO529VGYRo2URzgRP2lTlYdXp7z/Ag4gTLwfRIix9xMblK8C4OBBUjWzwpJdxECP/QUm9ELXODQI42iMI+JWX7RPo9CP7u4eQfhqsLHo9r/InUlmOWg62VKkTweZfsh63bUo3+UXNe8LHxEh03OlUKzXN+6+148f0qn8DQP3X7BJ//KkgD3W9vZXkhvvLTpFLmxQ3YWj6Go3GJgsahQZ6qlZRhT3Wvn3eDbbqO8zryge+8AwVSSgNxh8W7GDZKoZ4PMgrhZEKcCnLhHB7WdmLkci9aS5mLb/Fljz7MQeXxykO5LOUyMlttDPoOp6sHb8OX6BEzFFpKKICVnC/wk688yRJGGeAuv1Wh2k1TmAjmnVphzOBUTqnn2m556SVxtQ3YOIwnJEu5CpNtpEPy2P7JGhU/F/IeK3CNYTQUNKRKR+9JqFd42Hp+pERNj5mFHmAd1howlzbFQctVFEtu+IkAcm2yKM1lK3GqbOVwpFdNbrNcCvYbFfG1Pgi20PQoYi+mOlC82fLKmVrencafDEoWU25hk7A0WQKSRSjAHxxGzTPIODBFPmnBJjYDzGGMPwRRenwVFE2FkdKfb6KlOaKZ+R6PzYZoWkdR5+g6Vg4XcGSW+n+R5bSb7YRV3sdnZN3sfqqzm8ULM8W/1hu50mqaehk+T5p/4Ef8pT4cS5mY9N0FGXJ0f9E9DfJe1e3cQkGxPTHTHPcwTn63zonGGyoLr3NOUsDOzrKpWDZn47zfftVpIveLFsXSKS15e88y+Sb5fPVn+4vJz6oqJLSitupVqJmFviuYSeJsYxEsd8EoBc+jlIsK0fx/fRawMfn6S7/ZTI7wqT7v4NScHNO88+cyLCA3TbVyyoTApNUHXv1rGd0SUfco4kOVSeAhJWO4UAeKn2hh4oYeuSkOqdlC5TqF95hny1JUH6U8gDPPQlscYS6oHV2UHKuZJqxZvPVRvsYjUmdyl1yCF2oubXxTgVV958bNiOvuSFNfdA6ZXKLtazyRYlh1gg55Q/hYji0e/u5IVjYVT66m+J/xJ5zVsEc5bT4Bu2h1+/nzfApwH9UJa0XyUufzpSc6q0yNRjtrCV5UtHrEz4cWXY1vFbmIoWX0bCOM4sfiIlmv+a/5r/mv+a/5r/mv+a/5r/mv+a/5r/mv+a/26ZVeEP5OQHbSLzYNz9G3nAf/9wxt0gj+GyL04r0gFcEUlbOeSnbcNtOOSNexU2nJJNQR4ONhxS2JpaBzloTA7FL5vmnZ6afig+rdBxHE2/O3XhEQ7+3NpM/8me2BdcWT/kFu4nUqL5r/mv+a/5r/mv+a/5r/mv+a/5r/mv+a/5r/mv+a/5r/mv+e+4yJfI727NfJUj39JmR2l7P80iblFlf0yFEYGJCMwfqg+dfb9Br8ln0Oa/FrKM1mmq8IaV8jVhb9KsCJFvaiOXhI3xX6Cz5UZ51zdTpSlu8zvv/lR5yv2A4Mx88NufB303BklgK8DGNd68Tsz7Wy/qvGEl2eW498VTxDg6Nsgrr9JqRb7TkP4UIiTuhn0UTFME5ucMOlN/lT+YxwjZfafGHfh+2/c23MHtj1jy3gdBTCvDNKSuZ57PZgmrgZX/grOIMP1nyCBLgZ2BuHOQue5dIRQR2P0r5v6165N8K6goVVOEHfunXeDvkSEU+i6BkiKoFtjYg8hQe05ms6nuXpDQ03eMmTEIqzEzrqCWUoQEtSLFFIEVvnKHc0gi79/t1hynVOuefS9xkRrwQXe0IJOoHbiQgrnsmP6pwlPQvuCqX0hTK7QFBcYenNg5ViZSFVZlS38qtBh/B6XgntSyogeMEXkHMsjVKu9ANt+WoB5EbJmCa96UKnHP+vqBpKWNYu8/44j5MPlz4xxiC/ekKK8LnuDsU/L7up6NYvGZw5Nha1bIz2L6gGSWO8w8+aZ+t+sDZoL8xGSaJvbszfoBqNsd/xgcTdAJJAM9UeAJPseiiZxgCdPVrGwBdvlsccTdz0gRB8CRVOeEEckhNpF6dpWDv9i10E9dbB3Hnk7Scna1Irrq3g9uQnKwif/4XBc/cROpdi1TaqSvTi/R/nctVal0Rd+SUHsf0a7y7p5ApiPjBHwKOvRSr7JzULPYKltQ9Hf+1EfKruzbbgV4csuS+zE9meyOdh+KqdKJKmexy2aL1igUVSpd9i6BX7613X3gT6ELcpYU1RJIZm/XEY9Cy0XaF1x7YeJ3wIaEdd9uh5vQjd5jkMLgIuDF+rkbflK06N1/Cia4FdmoFp+O3A6xpG6Npn/h/SDYuDoLmvpWfuUSTCFSTFGpfwYbveDiGK5burr0vuAawkiSJHKCT3g3ewfXCB1l6VK9MQHfC33qTyHPjEdBnuH9DEcezjUKgp5Vljl09+I7szFNFaZ9wdVmHHzDIrPkEzUult1S0qIrXXHIWfzuPwVlFIRHwR5kYoLvhZq/RQHcokpFRMRRI81zZp5rfllfdYNUIanCZ1D2IUTu8Czw62J6VH4txMvT4BdLyH1ys9m4s9i9fcGZa+1UAMVca6emiX3EOVbjheR9KuumH3Pq/KUd7Yrd6dfvoxb87O2ly6WAFzCDLKAuCxfg5RRRsxqPUEmq9NeuLLSOIvjT5qInu1gP+BfQ1oJ/nTG2u2b8FkFdpv/wEpF1Mgrdiy2iWA4/y3J3j6j6my37IG2hbS/9esiM73GryYO7rUz/sQ+Hq0eEHwE5m7wvkrO8Yp7UeoR2M2AjzBdQvfvkoj/weVoqIsDNp3eGinkfCGUtxhRZq3c5y1l+3AxNdkU9zJcIPppBjtggVyuH1urZ/ArOFBHTLa5uwixOLFaOPsZO9AI/JOGzHKspvP+7K1b5PlmnKme53Q7lOLqJcfRxDMrKDHLFHBdFAm6oojhO4+5mkOS5Pk35MoGfpRd2So/ogx3YTHjNeuBeMJweJPzy/RD68v0JPkiP2OCzylIHvsvgWfpin6S3aNlQ571gJoYZTFoemIllA3zs34Td7Mhnqfs6YT/vk/AsS8Y+WbUjyv/XzP5wIiWa/5r/mv+a/5r/mv+a/5r/mv+a/5r/mv+a/5r/WvSO3H/H+ZM8NpuNbzabExHFyUvD6/yJ0LR+aiUsSZr/jvlVukWSSz0wyH+Bu9xL29SP7QuK1D9EnEWSS6pykKMxVrlFe1+1Vp3Vitv8zjhydee7rmBVrgFXCQMrysCKMqpwkGNmrHLzDW6QhoTYpbDLYT9mrWy5EynR/Nf81/zX/DcI8AYVkYLz7XKPKTi/U2pGBvrVBlfRonDNfy1pznLWgH9V7k42HAzsqxEx8QYVUQqqBTZUkOa/5r/mv7a04X5xR4s7WnyYz1nO8qH+r7KfAX+FffJX2c94818j3SC/GO5UMdypYnjz3/9H5YTKrzN2IiWa/5r/mv+a/5r/mv+a/5r/BngOpEeb/46dPbrsdT6Z4oExnxV7qJbwgb7zqtOHwlXTyZP0TXDVNNBP95MS5ydRUtX89Tpvk1fqe3XWd77bNVB01+12w2bz+fncvx4MOtWg2ZzMi+9TTRbczAf/WwWplMx8N0HE8Nsp7LO8a1I/SKmfewRzjwGuj/PpmqZzSgo8PR2wctkFSuw/a5gYLJrnep0n55j/BJJ7qhtz9Q50iRNTI4Zz3gucHON9rH/neXLM90MK1j7sOHvwnxDuDn6YTapUubwvXF4Yl4xQWBIyxiGd18J7AVnmZOaYTJbEGf8JNsgiSakw/kbm+mJ96aZwiVqN9DMGpBIRMYhLpNmaOR8JrPMUXNkDXN5ArNeXKSifmQr5L+BIKSz5EK78HGy33OVH696M5AXdPmfL3he6iioU6AqjvuReoEGcrj4KoM7ZBugjAfZQLdFFh7qSVijOggs6yGGcVH0i1Z64FcOyV1wOafl2+14wuTu4IjTdhG5O4RWXHHeK2zmdYj9QAm69Sz6Ii7ePl8/QF8a4k4kv7tyE73b5B6Ck2iNOpETz30lvHWOIz3zeWjo++8CZjRdfabPx5DbYGE5b2LOajs8/dlk9plPlOD0vv9Jh4+mtGjaG0H6vTEGWLelfQcdF7tCiMXCZX2ZxUYrLUlwE6TLipOurhwldg2jjqI7l9S5o+fAyOq7zBhuvKYuiqRRFvYYddLU52EzXcNqqicWh/QmgAM55XWTxpkllKS5K8R6zk0EGDNl0dd1XScedp9QXF5cphtNqZ+aHVsOAAni5C9DwQRvzXcWMnJK+ewqouPfsR4p1F8Np6xZmh2SRomgMXBao6FOHG0rxHrOT7wBAmqJzYwYAc4NKOSXDd6RQ8ZCF+xTRxXDapiczwqphAGPW2io9p7C6i+syGqsKlMjSyf0W5gaVOkombI2i4rErZym8i+G0bS+nhPUnAC8pJVF/A9J1m90nMTeoNKdkxuYAOp66vrfbrVMMp+16PyEsa2sYYIxpDFz2DgC4Wa7gJc9+OXVRtrBXIDeo9ADLzAQdC9Z/p2s4bd+XsaG8BVDKWquU8urQ03NO5vn6/Hhow0bl7hX9EnHOxXQsX/suwIiQREXBcNrhnyPCeAuQcl7DAGs552TpWoLU9QqkXTKxNqZjzaoXAUaGxFsKhtOOC4eEMRHdkiVJDQPYnwCSJAmsuNh129gnkJ8IUSlOR131Y7+RIfFJkoc3nP41YU6LDQhjIrrlLUBZwlhZlkEfXx/pGnbxOfJKiELs4nNSd1awylpf/gAMD0hAnyNlaMPpX7vyglSfMN4CTES3xDGMxXFM5f/FtNmYAvAO8hgCm4LUjyTVKuoK7pXlIN+UskTn0JtCG067otAjDG+jNYxprYNL69SNOS5gCJSSgl4JMQ04tyrrYV+PDMU5VxynwhpOa3Qk1t5Q7ULM23AOY5zzKhu94DVwUjaLJDth4S8/JzARKCMFP4EJEXBuccqzHk45qQmShjWcdttFB3e0OpLyNs7BmHPOf+TRWddzxq6oW1vyuRGlUwb/zzHXOIhA6E0H2tASqNac2NedbAp4EYSHNZx21BORB3p+Qt7GORhzzlUry0J2h4e//QlobZdM0Jw4ZCgEgWofT4n42MayxMVBXFjR6Z4YuV2DPwWOjLdxDsacc2gTEOIvCwjB++1PCPCIh1pqAt5vi4LXb5iUVzMu+Cupx0mr7HzR6Z6bO5SaGcKJeRvvcxjLsgx7G1FxHIfrBQ9zmROIq/iaYSWBUf4/iDxOWnU2oXPR6V5Z2WBQlCTlbRiDMbjB7xVq6HolxNi/NrMMechQNLMMArEIXkka6f+DwGSz0dHpDj0iabqRry15q5LyNkpZa5VSQ5Nb6ArqeyxDHTIUikC1OrrmEFhedYfA46RVj5y66LI35+2i0x14RPgmprp8WTFmE1Ml422MgTFjzIwfmXTFdHX0yiGweNUDAo+TVj1h5GiaJmeMi063qYsUa0bbkqTYizHIeBulYEwpdVj2P+6MsGG+drVO0uUW3XEXhE1Lvxo63/LMh0l2qkTJRNSaFWCSNS9qkzPChvTqY+vWksO/rh9xlPtfypJALIPXkRn/OvtmpkmQ/gnhYP66JwSe2HL6jL7tcRx5f//klEef6xCg+9Rz2sBmVNuFRUIb8R1jrWFMa33B//ot+wgg5TNDZXhKdZ7KWbULcc1G+iSFTkpsez3xkljnopAy3Rf1qkzloo1ZmHTR54YiXboq9cwcvT5j+ddJdIfc+ZpPojsI6CJ4HZ4b0CUozaZp2i8+KsXZiZVf4nj2phcEnlm/9/yOtdWzGvZWqndMqlbR577tjEkFgLEkSdZT2uJ4cwPZhqekznaLdcROQsCYEOK7rgc4XJLzf4jSQWkVmeHzNh88FL8SMPZvcTrp9RAzd9vBky3bfve6zw87tUKIf4jS60GXmBF1O2KXrU4AzqxiNDtTtyP21BS7PCbgkrqEdWSXI9/8kuUEdBm8jlv1vWt46gtlJc+LYYWBBaZvSvS4Vd+nbX9L5oU1ay9vXO5y3DsnUcfR5z7niAnEkmQziZTlZgIjVkfufLTTVgrGlFKNgcsYuqTvRcfj1s0P3R0fj9sgxP8A2sxP+R+A96I/Pxv45nR+GsfvVgBetPX6mQl3Q/ofjwXoRXl6eoCdG5Dokt6ct46hgN24yCyBMwPy1AgPXidv+9AtJhnKx6z62TcjKkaGFgVKQq8uX3pd9VyX5aCysFhGp9tA5GHUIh0KrWFMa93ou1agxNv/9tiYhoSJAeevtJiOnKe6KHVK/Qdg4bPhcsD5yzuvHZV/xgTKsmT3vK8IVk6/HNx7azJQrIGuG6YO8ORJAUcdHGQnBZyzcW2QbJjhCYEj/exEnxG8Ttj8qWdcPKoYUhxokVG1Pyds/kToLYWTbyse73IxqvYXK6LPvd+UgQoAy7J6sgxjC+paXd9eCBgTQrSYHwAVANZsv68ilbvVJUmVetzOs//4CSffdDXZmD3n7M91htTKzPy57jB74O7+Py73/d7FQpZlv3rc965EdvmbhV7Zoj2Rg3KygPyRTuuOL43cyFqatY8j67r5fi6rALClj81dA6xQk5ots6GfGQL7uXhQoO/lIud2P1fnnEvL+dgNX3slxVqR53ZEzW+BWFLvlDOUwtrR677Z6HPoR6i1iBXGygZffYvL+xzGlFIteqczdMnsl5IBt7V+G9Wid3Je/uHvyvTbsDIxcWl622L2duNFt6zmpMcxO7/LH/eC0E0o1cgfd3eykyqPY3bWlqTMicoH2W3r2sPaVbmpLU2b28rXd3EGpj/FlTNmwac2WWY93TQEdrOMPSxjC9PQOjdaa5NrPWrN9z6pUWixViKW1Ltl9qewIPpc22UBKgCtAPJ8ZT2EsbzRLZyDMedcs9R1UAFoDeB++jUOuFrfHTeVxh2Qnhwn1h41W5znawN3nMctf8MfmmVCNLKG6Ne8oU30/mKHf16DUynY4Z93xrwMmBmNfEGrnEnmC5t5BaA1wPhXZikSIdagTBDYQSV6UxfVejtDV75zw6t/DcgL4YOKAl8oK60AOO+bFYHw0KLPtVuQcQWAoZbVQ1gwJoR49ekLh0u2BuDfe5bzeDY7d68/fNypsfj4yriiOCUxiWOu4KdgXtJ7PyN6cmcPa5cfUCkHCWYOwubWMXTJSctk0lOU8TwyLRfXMUlgU5fBN1DM+g5TBpwbXPZ3YGEgfG8FoNSAvBBEhRZ9rt28Dbw+DNB2WSxqdIYFY0VRPJ+OAl4fBvjOQOt1pqbl04WYI9/G73s/Qus4ji++GcLYwX+Tb+CGYZro3ucPFJPHJ382XHnTApxD50oAl5w8Z5TlPAIt55PpPDIlsL4V2bpmI0kYa0AxkejcgMIA4PWemDWgMICS6HPtZxxlBYCh5jW7w4IxmHsoyMkYgxop7HyTI+MPBTkn5gYdGe0pJef8rqDjZW4ndmJu0PUHPTGNFPbsdm3B47PzLXd7jascwkutS17qhXjTYZecOoGO1NoGs4o+2cHKWyBFyfBZh0kXgPJZLZ6wYMwYc4+eDqD8DGLnz5vFXWbmsbH++9ldnOOcP+x2n6P4Gb94tzfmebN4dLUqZ/Gpscb7VDxHEbw0pjyP4n0qM0twJkCXdKRWIlhFj7RwAOmMjuGzjuMegxZ4pqG+kGBMSnmrO5Oh3/LYPD+HkIeN2q3uzIODA3axu+S5c+45Ii+RncKdu94Tcw/vun1ZMWlybLD5cb28gqFpdmyw2ZuDc8swmPsuuQyDhJbjzCprl4QoiRZ4uiREUTF81nnYC7zQ0w+AhquUDABZSpdc+QgBxUt2iIoFkNS6kwSnYfisy6AfwZ+8A0B4pxsLzpErAf7zU94RILzVDw2E3iXbhCQg+KO/JiHCGz7r2tcegz00HGiswGA/P9FQe1fHULvkN/xSMNhDw/BZN0FHHHokhbY2NLs9SJV0zjFL5yeo+ns6jtYlv+qRhkOPjIDXndfZB3tk6NY/JG43viJ1gFkqP0Gtv0V8KF3yS44ZPtgjI9/14HT16U/rVgGQNGy6aegd9VWZRpilYeM1zY9ZGj5nk+2XSxqGz3qwuvv0oXe3lkbbT6Pec68q0zgabb6pBqHRp83ygkTB68Hs4dOT0YOOvbsYXVuvK8iWa8rmG8rGW+r6O2rDA7Xuobb2gbYKS1bgtWUEbQlBW0TUFpDIPITMRUgInzAqoGvwzAEA";function E(A,g,I,B,Q){let C=[];for(let E=0;E<45;E++){let i=4*((45*g+E)*B+45*A),o=I.subarray(i,i+4),a=0;for(let i=1;i<45;i++){let e=4*((45*g+E)*B+45*A+i),t=I.subarray(e,e+4);t[0]===o[0]&&t[1]===o[1]&&t[2]===o[2]&&t[3]===o[3]||(o[3]>0&&C.push({x:a*Q,y:E*Q,w:(i-a)*Q,rgb:`${o[0]},${o[1]},${o[2]}`}),o=t,a=i)}o[3]>0&&C.push({x:a*Q,y:E*Q,w:(45-a)*Q,rgb:`${o[0]},${o[1]},${o[2]}`})}return C}let i=new class{constructor(A){this.useA=!1;let g=function(A){let g=parseInt(A.substr(0,8),16),I=parseInt(A.substr(8,8),16),B=parseInt(A.substr(16,8),16),Q=parseInt(A.substr(24,8),16);return function(){g|=0,I|=0,B|=0,Q|=0;let A=(g+I|0)+Q|0;return Q=Q+1|0,g=I^I>>>9,I=B+(B<<3)|0,B=B<<21|B>>>11,B=B+A|0,(A>>>0)/4294967296}};this.prngA=new g(A.hash.substr(2,32)),this.prngB=new g(A.hash.substr(34,32));for(let A=0;A<1e6;A+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(A,g){return A+(g-A)*this.random_dec()}random_int(A,g){return Math.floor(this.random_num(A,g+1))}random_bool(A){return this.random_dec()<A}random_choice(A){return A[this.random_int(0,A.length-1)]}shuffle(A){for(let g=A.length-1;g>0;g--){const I=this.random_int(0,g);[A[g],A[I]]=[A[I],A[g]]}return A}weighted_random(A){let g=A.reduce(((A,g)=>A+g),0),I=this.random_dec()*g;for(let g=0;g<A.length;g++){if(I<A[g])return g;I-=A[g]}}}(tokenData),o=document,a=o.body,e=function(A,g){let I=[2,1,0,3][parseInt(g.tokenId)%1e6%4],B=A.weighted_random([1.01,4.04,4.04,4.04,4.04,4.04,3.03,4.04,4.04,4.04,4.04,4.04,4.04,4.04,4.04,4.04,.51,.51,.51,.51,.51,.51,.51,4.04,1.01,2.02,4.04,.51,.51,4.04,4.04,4.04,.51,4.04,3.03,4.04]),Q=A.weighted_random([12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5]),C=A.weighted_random([3.54,3.54,3.54,3.54,3.54,3.54,3.54,3.54,3.54,1.77,3.54,1.77,3.54,3.54,3.54,3.54,3.54,3.54,3.54,2.65,3.54,3.54,3.54,3.54,3.54,3.54,3.54,2.65,3.54,2.65]),E=A.weighted_random([10,10,10,10,10,10,10,10,10,10]);return{background:I,headwear:B,body:A.weighted_random([33.33,33.33,33.33]),footwear:E,bodywear:C,facewear:Q,gear:A.weighted_random([11.94,11.94,8.96,11.94,11.94,1.49,11.94,11.94,11.94,5.97])}}(i,tokenData),t=i.random_int(0,1e9);(async function(A,g=function(){let A=document.createElement("canvas");return A.width=1800,A.height=1800,A.style.imageRendering="pixelated",A}(),I=function(){let A=new Image,g=document.createElement("canvas"),I=g.getContext("2d");return A.src=C,A.decode().then((()=>(g.width=A.width,g.height=A.height,I.drawImage(A,0,0),{width:A.width,data:I.getImageData(0,0,A.width,A.height).data})))}()){let{data:B,width:Q}=await I,i=g.width/1800*40,o=[...E(A.background,6,B,Q,i),...A.gear<=8?E(A.gear,5,B,Q,i):[],...E(A.body,4,B,Q,i),...E(A.footwear,3,B,Q,i),...E(A.bodywear,2,B,Q,i),...E(A.facewear,1,B,Q,i),...E(A.headwear,0,B,Q,i)],a=g.getContext("2d");return{canvas:g,render:function(){a.fillStyle="white",a.fillRect(0,0,g.width,g.height);for(let{x:A,y:g,w:I,rgb:B}of o)a.fillStyle=`rgb(${B})`,a.fillRect(A,g,I,i)}}})(e).then((async({canvas:A,render:g})=>{g(A),a.appendChild(A),A.style.cursor="pointer",a.addEventListener("click",(async()=>{await Q(t),A.style.cursor="default"}),{once:!0})})),[o.documentElement,a].forEach((A=>{A.style.margin=0,A.style.padding=0,A.style.overflow="hidden"}));let D=o.createElement("style");D.innerText="@media (orientation: portrait) {canvas {width: 100vw;display: block;margin: 0 auto;}}@media (orientation: landscape) {canvas {height: 100vh;display: block;margin: 0 auto;}}",o.head.appendChild(D)}();
!function(){"use strict";let A=fetch(`data:application/wasm;base64,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QQhHBEBBACEAA0AgAEEgRgRAIAYoAgAgBEEEdGpBwAsQDiABQSBqIQEgAkEgaiECIARBAWohBAwDBSAAQcALaiAAIAJqKgIAIAYqAgSUIAAgAWoqAgCSOAIAIABBBGohAAwBCwALAAsLQQAhBUHgDSEBA0AgBUEIRwRAQQAhAkMAAAAAIQ8gASEAQwAAAAAhDQNAIAJBCE8EQCAFQQJ0IgBBsCFqIA1DAACAPpQ4AgAgAEGQIWogD0MAAIA+lDgCACABQQRqIQEgBUEBaiEFDAMFIAJBAmohAiAPIAAqAgCSIQ8gDSAAQSBqKgIAkiENIABBQGshAAwBCwALAAsLQQAhAEGgHyoCACEPQewPKgIAIREDQCAAQSBGRQRAQYgfEAUhEkGUHxAFIRAgAEHwH2oqAgAhDhAKIQ1BoB8gDyARkkMAAIA/liIPOAIAIAAgC2oiASAPIANBIGogAGoqAgAgAEGQIWoqAgCSIBC7RAAAAAAAANA/oiASu6AgDruitiIOkiANu0QtQxzr4jY6P6K2Ig2SQwAAQECUEAFDw/WoPpSUOAIAIAFBgARqIAAgA2oqAgAgAEGwIWoqAgCSIA6SIA2SQwAAQECUEAFDw/WoPpQgD5Q4AgAgAEEEaiEADAELCyAMQQhqIQwgC0EgaiELDAMLIApBAWohCgwACwALCyADQeACaiQACwvZGQMAQYAICxQDAAAAAgAAAAIAAAADAAAAAgAAAABBoAgLkAHQEAEAMAAAAP7///8AAAAA9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b////2////9v////b///8AQbAJC6AY${"A".repeat(4139)}=`).then((A=>A.arrayBuffer())),g=new AudioContext({latencyHint:"playback",sampleRate:48e3}),I=g.audioWorklet.addModule(`data:application/javascript;base64,${btoa('registerProcessor("w", class extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{let memory=new WebAssembly.Memory({initial: 1024, maximum: 1024});WebAssembly.instantiate(e.data.w,{env:{memory}}).then((w)=>{this.w=w.instance.exports;this.o=new Float32Array(memory.buffer,this.w.ip(sampleRate, e.data.s),256);});};}process(i,o){if (!this.w)return true;this.w.p();o[0][0].set(this.o.subarray(0, 128));o[0][1].set(this.o.subarray(128, 256));return true;}});')}`);g.suspend();let B=null;async function Q(Q){B&&B.then((A=>A.disconnect())),B=async function(B){g.resume(),await I;let Q=await A,C=new AudioWorkletNode(g,"w",{numberOfInputs:0,numberOfOutputs:1,outputChannelCount:[2]});return C.port.postMessage({w:Q,s:B}),C.connect(g.destination),C}(Q)}const C="d
CryptoVenetians are the original edition in the CryptoCitizens collection, an ongoing generative portrait series based on real people from communities around the world. Holders of CryptoCitizens are members of the Bright Moments DAO.
CryptoVenezians are the tenth and final edition in the CryptoCitizens collection, an ongoing generative portrait series based on real people from communities around the world. Holders of CryptoCitizens are members of the Bright Moments DAO.
[0,()=>{console.log("Artist 55. ertdfgcvb -- platform 0");!function(){class A{constructor(A=1e3){this.X5a=A,this.fps=0,this.X59=0,this.X68=0}tick(A){return A>=this.X68+this.X5a&&(this.fps=this.X59*this.X5a/(A-this.X68),this.X68=A,this.X59=0),this.X59++,this.fps}}class t{constructor(A,t,e=Array){this.type=e,this.resize(A,t)}resize(A,t,e=0){this.width=Math.max(0,A)||0,this.height=Math.max(0,t)||0,this.data=new this.type(A*t),"function"==typeof e?this.fill(e):this.data.fill(e)}X3(A,t,e,n,o){for(let i=0;i<n;i++)for(let n=0;n<e;n++)this.set(A+n,t+i,o);return this}fill(A){let t=0;for(let e=0;e<this.height;e++)for(let n=0;n<this.width;n++)this.set(n,e,A(n,e,t++,this.width,this.height));return this}loop(A){let t=0;for(let e=0;e<this.height;e++)for(let n=0;n<this.width;n++)A(this.data[t],n,e,t++,this.width,this.height);return this}getMaxValue(){let A=0;return this.data.forEach((t=>A=Math.max(t,A))),A}X5b(A){if(A.width!=this.width||A.height!=this.height)return!1;for(let t=0;t<this.data.length;t++)if(this.data[t]!==A.data[t])return!1;return!0}X4(A,t){return A=(A+this.width)%this.width,t=(t+this.height)%this.height,this.data[A+t*this.width]}get(A,t){return A<0||t<0||A>=this.width||t>=this.height?null:this.data[A+t*this.width]}X5(A,t){const e=Math.floor(this.width*A),n=Math.floor(this.height*t);return this.get(e,n)}sample(A,t){const n=A*this.width-.5,o=t*this.height-.5;let i=Math.floor(n),s=Math.floor(o),r=i+1,h=s+1;const a=n-i,c=o-s,l=e(this.get(i,s),this.get(r,s),a),g=e(this.get(i,h),this.get(r,h),a);return e(l,g,c)}X18(A=0,e=0,n=0){let o,i;1==n||2==n?(o=this.height,i=this.width):(o=this.width,i=this.height);const s=new t(o,i,this.type);for(let t=0;t<s.height;t++)for(let o=0;o<s.width;o++){let i,r;0==n?(i=o,r=t):1==n?(i=s.height-t-1,r=o):2==n?(i=s.width-o-1,r=s.height-t-1):3==n&&(i=t,r=s.width-o-1),i=A?s.width-1-i:i,r=e?s.height-1-r:r,s.set(i,r,this.get(o,t))}return s}getRect(A,t,e,n){const o=new Grid(e,n,this.type);for(let e=0;e<o.height;e++)for(let n=0;n<o.width;n++)o.set(n,e,this.get(n+A,e+t));return o}set(A,t,e){A<0||t<0||A>=this.width||t>=this.height||(this.data[A+t*this.width]=e)}X8(A){A.length==this.data.length&&A.forEach(((A,t)=>this.data[t]=A))}X7(A,t,e,n,o){for(let i=0;i<n;i++)for(let n=0;n<e;n++)this.set(A+n,t+i,o[n+e*i])}X6(A,t,e){this.X7(A,t,e.width,e.height,e.data)}toString(){let A="";for(let t=0;t<this.height;t++){for(let e=0;e<this.width;e++)A+=this.get(e,t);A+="\n"}return A}print(){console.log("%c"+this.toString(),"font-family: monospace;")}}function e(A,t,e){return A*(1-e)+t*e}class n{constructor(){this.x=0,this.y=0,this.z=0,this.index=0,this.accent=0,this.fg=[0,0,0]}}const o={makeTranslation:function(A,t){return[1,0,0,0,1,0,A,t,1]},makeRotation:function(A){var t=Math.cos(A),e=Math.sin(A);return[t,-e,0,e,t,0,0,0,1]},makeScaling:function(A,t){return[A,0,0,0,t,0,0,0,1]},mult:function(A,t){const e=A[0],n=A[1],o=A[2],i=A[3],s=A[4],r=A[5],h=A[6],a=A[7],c=A[8],l=t[0],g=t[1],w=t[2],d=t[3],f=t[4],D=t[5],M=t[6],m=t[7],Y=t[8];return[l*e+g*i+w*h,l*n+g*s+w*a,l*o+g*r+w*c,d*e+f*i+D*h,d*n+f*s+D*a,d*o+f*r+D*c,M*e+m*i+Y*h,M*n+m*s+Y*a,M*o+m*r+Y*c]},multVec2:function(A,t){const e=A[0],n=A[1],o=A[3],i=A[4],s=A[6],r=A[7];return{x:e*t.x+n*t.y+s,y:o*t.x+i*t.y+r}}};const i={X2a:"ts8",X23:8,X24:8,X26:["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"],X1:"◆☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂Çüéâäàåçêëèïîì╱╲╳æÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■□",X2:256};function s(A,t,e){return A*(1-e)+t*e}function r(A,t,e){const n=(s=1,(o=(e-A)/(t-A))<(i=0)?i:o>s?s:o);var o,i,s;return n*n*n*(n*(6*n-15)+10)}function h(A,t){const e=function(A){return new Uint8Array(atob(A).split("").map((A=>A.charCodeAt(0))))}(A),n=new Uint8Array(t);for(let A=0;A<t;A++){const t=Math.floor(A%8),o=Math.floor(A/8);n[A]=a(e[o],t)}return n}const a=(A,t)=>(A>>t)%2;function c(){const e="Introspection",a=["Menlo","Consolas","'DejaVu Sans Mono'","'Roboto Mono'","monospace"].join(","),c=new URLSearchParams(location.search),w={fps:parseInt(c.get("fps"))||30,cols:parseInt(c.get("cols"))||0,rows:parseInt(c.get("rows"))||0,fontSize:c.get("fontSize")||"1em",fontFamily:c.get("fontFamily")||a,lineHeight:c.get("lineHeight")||"1.2",fgColor:c.get("fgColor")||null,bgColor:c.get("bgColor")||null,disableRotation:parseInt(c.get("disableRotation"))||0,removeWhitespace:parseInt(c.get("removeWhitespace"))||0};{const A="".padEnd(32,"–")+"\n";let t="";t+=A,t+=e+"\n",t+="by Andreas Gysin\n",t+="2024\n",t+="https://ertdfgcvb.xyz\n",t+=A,t+="tokenId: "+tokenData.tokenId+"\n",t+="hash: "+tokenData.hash+"\n",t+=A,t+="Press ‘i’ to toggle info\n",t+=A,t+="Current settings (URLParams):\n",Object.keys(w).forEach((A=>{t+="\t"+A+"="+w[A]+"\n"})),t+=A,console.clear(),console.log(t)}const d=Array.from(document.querySelectorAll("script")).sort(((A,t)=>t.innerHTML.length-A.innerHTML.length))[0].innerHTML.trim(),f=(0!==w.removeWhitespace?d.replace(/[\t\n\r\v\f]/gm,"").replace(/\s\s+/gm,""):d.replace(/[\s]/gm," ")).split(""),D=i.X2*i.X23*i.X24,M=h(i.X26.join(""),D),m=new Map;i.X1.split("").forEach(((A,t)=>m.set(A,t)));const Y={block:function(A,t,e,n){return 1==n?"█":e},checker:function(A,t,e,n){return 1==n?e:(A+t)%2?" ":"·"}},u=R.random_choice([!0,!1]),B={dir:R.random_choice([-1,1]),inv:u,tex:u?R.random_choice(Object.keys(Y)):Object.keys(Y)[0]},p=["#CCC","#000"];B.inv&&p.reverse();for(let A=document.body.children.length-1;A>=0;A--){const t=document.body.children[A];"SCRIPT"!=t.tagName&&t.remove()}const E=document.querySelector("html").style;E.height="100%",E.backgroundColor=w.bgColor||p[0];const H=document.body.style;H.overscrollBehavior="none",H.margin="0",H.display="flex",H.justifyContent="center",H.alignItems="center",H.overflow="hidden",H.backgroundColor=w.bgColor||p[0];const N=document.createElement("pre"),j=N.style;j.margin="0",j.display="block",j.lineHeight=w.lineHeight,j.fontFamily=w.fontFamily,j.overflow="hidden",j.textAlign="center",j.color=w.fgColor||p[1],document.body.appendChild(N);let P=!1,C=!1,y=!0,z=!1,G=w.fps;const b=new t(0,0,Array),Q=Object.seal({cols:0,rows:0,aspect:1,metrics:null});addEventListener("keydown",(A=>{if("i"==A.key)C=!C;else if("t"==A.key)z=!0;else if("p"==A.key)P=!P;else if("f"==A.key)document.body.requestFullscreen&&document.body.requestFullscreen().catch((A=>console.warn(A)));else if("s"==A.key){const A=new Map;f.forEach((t=>{A.has(t)?A.set(t,A.get(t)+1):A.set(t,1)}));const t=Array.from(A.keys()).sort();let e="";Array.from(A,(([A,t])=>({char:A,count:t}))).sort(((A,t)=>t.count-A.count)).forEach((A=>{const t=i.X1.split("").indexOf(A.char)>0?"*":"";e+=A.char+"\t"+A.count+" "+t+"\n"})),e+="\n* = mapped",console.log("Total characters: "+f.length),console.log("Unique characters: "+t.length),console.log(t.join("")),console.log(e)}}));{let A;addEventListener("resize",(t=>{clearTimeout(A),A=setTimeout((A=>{y=!0}),100)}))}const x=new A(1e3);let k=0,T=-1e3;const O=R.random_int(900,1100),_=R.random_int(400,600);R.random_int(400,600);let v,I,S,F=null,K=1,Z=R.random_choice([1,8]),W=0,L=R.random_choice([0,Math.PI/16,Math.PI/32])*R.random_choice([-1,1]);requestAnimationFrame((function A(t){requestAnimationFrame(A);const h=t-T,a=1e3/G;if(h<a)return;if(T=t-h%a,y){y=!1,N.style.fontSize=w.fontSize;const A=10;Q.metrics=function(A){const t=getComputedStyle(A).getPropertyValue("font-family"),e=100;let n,o,i="".padEnd(e,"X")+"<br>";for(let A=0;A<e-1;A++)i+="X<br>";const s=document.createElement("span");return s.innerHTML=i,A.appendChild(s),n=s.getBoundingClientRect().width/e,o=s.getBoundingClientRect().height/e,A.removeChild(s),{aspect:n/o,cellWidth:n,cellHeight:o,fontFamily:t}}(N),Q.cols=w.cols||2*Math.floor((innerWidth-2*A)/Q.metrics.cellWidth/2),Q.rows=w.rows||2*Math.floor((innerHeight-2*A)/Q.metrics.cellHeight/2),Q.cols=Math.max(Q.cols,8),Q.rows=Math.max(Q.rows,8),Q.aspect=Q.cols/Q.rows,b.resize(Q.cols,Q.rows,((A,t)=>new n(A,t))),I=2*Math.floor(1.1*Q.cols/2),S=2*Math.floor(f.length/I/2),v=I/2,null===F&&(F=R.random_int(100,.9*S))}k%_==0&&(W=L,L=R.random_dec()<.3?R.random_choice([Math.PI/8,Math.PI/16,Math.PI/32]):0,L*=R.random_choice([-1,1]));const c=r(.4,.6,k%_/_),d=0===w.disableRotation?s(W,L,c):0;if(k%O==0)for(K=Z;K==Z;)Z=R.random_choice([1,1,8,8,16,16,24]);const D=r(.4,.6,k%O/O),u=s(K,Z,D),p=o.makeTranslation(v,F),E=o.makeRotation(d),H=o.makeScaling(1/u,1/u),j=o.mult(p,o.mult(H,E)),U=i.X24*i.X23,q=.5*k,V=Y[B.tex];if(b.loop(((A,t,e,n,s,h)=>{const a=o.multVec2(j,{x:t-s/2,y:e-h/2}),c=Math.floor(a.x),l=(Math.floor(a.y)+S)%S,g=c+l*I;if(c<0||c>=I||g>=f.length)A.char="·";else{const t=f[g];if(u>4)if(m.has(t)){const e=.05*(q+c+l),n=r(.2,.8,e%9)*i.X23,o=r(.2,.8,e%11)*i.X24*B.dir,s=Math.floor((a.x-c)*i.X23+n)%i.X23,h=Math.floor((a.y-l)*i.X24+o+i.X24)%i.X24,g=m.get(t),w=M[g*U+h*i.X23+s];A.char=V(c,l,t,w)}else A.char=t;else A.char=t}A.fg=w.fgColor,A.bg=""})),C){const A=Math.round(x.tick(t)),e="~F~",n=16;let o="";o+=e+"\n",o+="tokenId".padEnd(n)+l(tokenData.tokenId,n-1)+"\n",o+="hash".padEnd(n)+l(tokenData.hash,n-1)+"\n",o+=e+"\n",o+="fps".padEnd(n)+A+"←"+G+"\n",o+="frame".padEnd(n)+k+"\n",o+="paused".padEnd(n)+P+"\n",o+=e+"\n",o+="cols".padEnd(n)+Q.cols+"\n",o+="rows".padEnd(n)+Q.rows+"\n",o+="innerWidth".padEnd(n)+innerWidth+"\n",o+="innerHeight".padEnd(n)+innerHeight+"\n",o+="metrics.aspect".padEnd(n)+Q.metrics.aspect.toFixed(4)+"\n",o+=e+"\n";for(const A in B)o+=A.padEnd(n)+l(B[A],n)+"\n";o+=e+"\n",o+="keys".padEnd(n-2)+"i toggle info\n",o+="p".padEnd(2).padStart(n)+"pause\n",o+="t".padEnd(2).padStart(n)+"save TXT\n",o+="f".padEnd(2).padStart(n)+"fullscreen\n",o+="s".padEnd(2).padStart(n)+"print stats\n",o+=e+"\n";const i=2*n;o.trim().replaceAll(e,"".padEnd(i,"─")).split("\n").forEach(((A,t)=>{(A.padEnd(i," ")+" ").split("").forEach(((A,e)=>{const n=b.get(e,t);null!==n&&(n.char=A)}))}))}(function(A,t){const e=t.width,n=t.height;for(;A.childElementCount<n;){const t=document.createElement("span");t.style.display="block",A.appendChild(t)}for(;A.childElementCount>n;)A.removeChild(A.lastChild);for(let o=0;o<n;o++){let n="";for(let A=0;A<e;A++){let i=t.data[A+o*e].char;"<"==i?i="&lt;":">"==i&&(i="&gt;"),n+=i}A.childNodes[o].innerHTML=n}})(N,b),P||(k++,F=(F+B.dir/u+S)%S);if(z){let A="";b.loop(((t,e,n,o,i,s)=>{A+=t.char+(e==i-1?"\n":"")})),g(new Blob([A],{type:"text/plain;charset=utf-8"}),e+"_"+Date.now()+".txt"),z=!1}}))}function l(A,t){const e=String(A);return e.length>t?"..."+e.substring(e.length-t+3):e}addEventListener("load",(A=>{setTimeout(c,100)}));const g=function(){const A=document.createElement("a");return document.body.appendChild(A),A.style.display="none",function(t,e){A.href=URL.createObjectURL(t),A.download=e,A.click()}}()}(); }],
[1,()=>{console.log("Artist 60. Emily Xie -- platform 1"); //emily xie const e="normal",h="lighter",l={Cassie:{clrs:[["#1c1916",e],["#6a6459",e],["#507075",e],["#c6b9a0",h],["#b93a27",e]],bgClrs:[["#7f715f",100]],textureClrs:{rect:[{bg:"#b93a27",stk:"#9f907d"}],pDots:[{bg:"#60848a",stk:"#375156"}],static:[{bg:"#000000",stk:"#444446",lowerFade:0}]},freq:10},"Nighttime Jungle":{clrs:[["#232e35",e],["#7abee2",e],["#72928f",h],["#b5a350",h],["#356c44",e]],bgClrs:[["#000000",100]],textureClrs:{diagonals:[{bg:"#e8bdb8",stk:"#cca5a1"}],pDots:[{bg:"#72928f",stk:"#232e35"}],static:[{bg:"#e8bdb8",stk:"#ffffff",lowerFade:.25}]},freq:15},Elemental:{clrs:[["#d00c05",e],["#000000",e],["#c59502",h],["#92b397",h],["#003255",e]],bgClrs:[["#ccc9aa",100]],textureClrs:{diagonals:[{bg:"#c9952e",stk:"#deb114"}],rect:[{bg:"#d00c05",stk:"#9e0009"}],pDots:[{bg:"#003255",stk:"#004e85"}],static:[{bg:"#000000",stk:"#ffffff",lowerFade:.25}]},freq:10},Chameleon:{clrs:[["#ce5200",e],["#151515",e],["#c5a100",h],["#ce5200",e],["#a10004",e]],bgClrs:[["#62a4b2",100]],textureClrs:{static:[{bg:"#151515",stk:"#ffffff",lowerFade:0}],pDots:[{bg:"#000000",stk:"#3c3c3c"}],rect:[{bg:"#c5a100",stk:"#a10004"}],diagonals:[{bg:"#a10004",stk:"#c12c2c"}]},freq:10},Harlequin:{clrs:[["#ce5200",e],["#af1b1f",e],["#000000",e],["#094865",e],["#3c3c3c",h],["#af090d",e]],bgClrs:[["#500e1d",100]],textureClrs:{static:[{bg:"#ffffff",stk:"#ffffff",lowerFade:.25}],rect:[{bg:"#cd6d2e",stk:"#a24000",lowerFade:.25}],pDots:[{bg:"#000000",stk:"#3c3c3c"}],diagonals:[{bg:"#638fa3",stk:"#c12c2c"}]},freq:10},Autumn:{clrs:[["#151515",e],["#2e514a",h],["#b67900",h],["#a10004",e]],bgClrs:[["#a62b00",100]],textureClrs:{static:[{bg:"#151515",stk:"#ffffff",lowerFade:0}],diagonals:[{bg:"#2e514a",stk:"#1f332f"}],rect:[{bg:"#b88200",stk:"#ab6d00"}],pDots:[{bg:"#151515",stk:"#2d2d2d"}]},freq:10},Wallflower:{clrs:[["#be8c72",h],["#c29b7e",h],["#748d9d",h],["#d08a00",h],["#273a4a",h],["#a86c4c",h]],bgClrs:[["#bfc0b5",100]],textureClrs:{static:[{bg:"#8d8d8d",stk:"#ffffff",lowerFade:0}],pDots:[{bg:"#91a6a1",stk:"#508485"}],rect:[{bg:"#7f9590",stk:"#88a59e"}]},freq:4},Icarus:{clrs:[["#b8b7b2",h],["#112956",e],["#001b40",e],["#a21c1c",e],["#000000",e],["#d0b000",h]],bgClrs:[["#02214d",100]],textureClrs:{diagonals:[{bg:"#d4d5cd",stk:"#ffffff"}],rect:[{bg:"#2a2a2a",stk:"#2a4d8e"}],pDots:[{bg:"#a50b0b",stk:"#232e35"},33],static:[{bg:"#f7cb00",stk:"#ffffff",lowerFade:.25}]},freq:10}},t=Object.keys(l);let c,m,r,a,n;const s={};let f=0,u=0,p,g={stellation:{m:20,a:1,b:1.2,n1:2.3,n2:2,n3:0},square:{m:4,a:1,b:1,n1:1,n2:1.2,n3:1},rectangle:{m:4,a:1,b:1,n1:1,n2:1,n3:1},triangle:{m:3,a:1,b:1,n1:.5,n2:1,n3:1},simpleStar:{m:4,a:1,b:.8,n1:.4,n2:.6,n3:.6}};function i(){this.palette=Y(t.map(e=>[e,l[e].freq]))}function o(){this.fixedWidth=1800,this.fixedHeight=3200,a<1350&&(this.fixedWidth=1350,this.fixedHeight=2400),2250<a&&(this.fixedWidth=a,this.fixedHeight=1600*a/900)}setup=function(){for(let e=0;e<=100;e++)R.random_dec();var e=R.random_int(0,1e4),t=R.random_int(0,1e4),t=(a=windowWidth,n=windowHeight,16*a>9*n&&(a=n*(9/16)),n=a*(16/9),randomSeed(t),noiseSeed(e),c=new i,m=new o,createCanvas(a,n),r=v(),k(this,r),l[c.palette].textureClrs),e=(Object.keys(t).forEach(e=>{s[e]=0}),R.random_choice([.07,.09]));packedShapes=U(numCircles=1e3,circlePadding=.003*width,borderPadding=.003*width,minRadiusMult=.01,maxRadiusMult=e),d()};const d=()=>{var t=["stellation_1","strips_1","stars_1","arcs_1","triangles_1","squares_1","circles_1","strips_2","stars_2","arcs_2","triangles_2","squares_2","circles_2","stellation_2"];let r=[];t.forEach(e=>{r[e]=[]});for(let e=0;e<packedShapes.length;e++){var a=R.random_choice(t);r[a].push(packedShapes[e])}for(const s in r){var e=r[s],n=s.split("_")[0];G(e,n)}},b=(e,t)=>t[e%t.length],_=(e,t)=>{switch(e){case"texturedPaper":bg=pal.textureClrs.texturedPaper0[0].bg,t=k(t,bg);break;case"diagonals":t=T(t);break;case"pDots":t=C(t);break;case"static":t=I(t);break;case"rect":t=E(t);break;default:bg=pal.textureClrs.static[0].bg,t=I(t)}return t},w=(r,e=1300,a=1700,t=4)=>{r.angleMode(DEGREES),r.strokeWeight(8e-4*r.width),r.stroke(255,t);var n=r.height/a,s=r.width/e;for(let t=0;t<e;t+=10)for(let e=0;e<a;e+=10)r.push(),r.translate(t*s,e*n),r.rotate(R.random_int(0,360)),r.line(R.random_num(-r.width,r.width),R.random_num(-r.height,r.height),R.random_num(-r.width,r.width),R.random_num(-r.height,r.height)),r.pop()},v=()=>{var e=l[c.palette].bgClrs;return Y(e)},W=()=>{var e=l[c.palette].clrs.map(e=>e[0]);return e[Math.floor(R.random_num(0,e.length))]},A=()=>{fill(255,170,0,40);for(let e=0;e<=35;e++)ellipse(R.random_num(0,width),R.random_num(0,height),R.random_num(.004*width,.009*width),R.random_num(.004*width,.009*width));angleMode(DEGREES);for(let e=0;e<=200;e++){push();var t=R.random_num(0,width),r=R.random_num(0,height);rotate(R.random_num(0,360)),translate(t,r),ellipse(t,r,R.random_num(.01*width,.01*width),R.random_num(.004*width,.002*width)),pop()}},x=(t=this,r=38e3)=>{t.stroke(255,12),t.noFill();for(let e=0;e<r;e++){var a=R.random_num(8e-4,.001),n=R.random_dec(),s=R.random_dec(),i=R.random_num(.02,.16),o=R.random_num(.02,.16);t.strokeWeight(a*t.width),t.ellipse(t.width*n,t.height*s,t.width*i,t.width*o)}},k=(e,t)=>(e.background(t),O(e,R.random_num(0,100),R.random_num(0,100),160,"#855d2c","#8c5d2c"),O(e,R.random_num(0,100),R.random_num(0,100),160,"#855d2c","#8c5d2c"),P(e),"Nighttime Jungle"===c.palette?x(e,38e3):x(e,5e4),O(e,R.random_num(0,100),R.random_num(0,100),90,"#855d2c","#8c5d2c"),O(e,R.random_num(0,100),R.random_num(0,100),90,"#855d2c","#8c5d2c"),e),C=e=>{var t,r=new S(radiusApart=.006*e.width,maxAttempts=100,e.width,e.height),{bg:a,stk:n}=l[c.palette].textureClrs.pDots[0],a=(e.background(a),createVector(0,0));for(r.frontier.push(a),r.grid[0][0]=a,e.noStroke(),e.fill(n);0<r.frontier.length;)M(r);for(t of r.finalSamples){var s=R.random_num(.002,.0033),i=R.random_num(.002,.0033);e.ellipse(t.x,t.y,e.width*s,e.width*i)}return x(e,1e4),e};class S{constructor(e,t,r,a){this.radiusApart=e,this.maxAttempts=t,this.w=e/Math.sqrt(2),this.finalSamples=[],this.frontier=[],this.rows=Math.floor(a/this.w),this.cols=Math.floor(r/this.w),this.grid=new Array(this.cols).fill(void 0).map(()=>new Array(this.rows).fill(void 0))}}const M=i=>{const o=e=>({cIndex:Math.floor(e.x/i.w),rIndex:Math.floor(e.y/i.w)});let t=!1,r=R.random_int(0,i.frontier.length);var a=i.frontier[r];for(let e=0;e<i.maxAttempts;e++){var n=R.random_num(-1,1),s=R.random_num(-1,1),n=createVector(n,s),s=R.random_num(1,2),{cIndex:s,rIndex:d}=(n.setMag(i.radiusApart*s),n.add(a),o(n));s<i.cols&&d<i.rows&&0<=s&&0<=d&&!i.grid[s][d]&&(t=(e=>{var t,{cIndex:r,rIndex:a}=o(e);for(t of[[r-1,a],[r+1,a],[r,a+1],[r,a-1],[r-1,a-1],[r-1,a+1],[r+1,a-1],[r+1,a+1]]){var[n,s]=t;if(!(n<0||n>i.cols-1)){n=i.grid[n][s];if(n)if(p5.Vector.dist(e,n)<i.radiusApart)return!1}}return!0})(n))&&(i.finalSamples.push(n),i.frontier.push(n),i.grid[s][d]=n)}return t||(i.frontier=i.frontier.filter((e,t)=>t!==r)),i.frontier},y=e=>{e=e.replace("#","");return{r:parseInt(e.slice(0,2),16),g:parseInt(e.slice(2,4),16),b:parseInt(e.slice(4,6),16)}},O=(e,r,a,n,t,s)=>{var i=createGraphics(1200,1600),o=(i.pixelDensity(1),i.loadPixels(),i.pixels),d=.68+.015,h=R.random_num(.007,.008),{r:l,g:c,b:m}=y(t),{r:f,g:u,b:p}=y(s);for(let t=0;t<i.height;t++)for(let e=0;e<i.width;e++){map(e,0,i.width,0,1),map(t,0,i.height,0,1);var g=4*(e+t*i.width),b=noise(e*h+r,t*h+a);.68<=b&&b<d&&(o[g]=l,o[1+g]=c,o[2+g]=m,o[3+g]=map(b,.68,d,10,120)),.01+d<b&&(o[g]=f,o[1+g]=u,o[2+g]=p,o[3+g]=map(b,.68,1,10,n))}i.updatePixels(),e.image(i,0,0,e.width,e.height)},P=(e,r=100,a=0,n=0)=>{var s=createGraphics(3600,6e3),i=(s.pixelDensity(1),s.loadPixels(),s.pixels);for(let t=0;t<s.width;t++)for(let e=0;e<s.height;e++){idx=4*(t+e*s.width);var o=map(t,0,s.width,0,1),d=map(e,0,s.height,0,1),o=noise(5*o+a,5*d+n);R.random_bool(.65)&&(i[idx+3]=map(o,0,1,0,r))}s.updatePixels(),e.image(s,0,0,e.width,e.height)},E=(s=this)=>{var e=Math.ceil(9*s.height/s.width*2),i=s.width/9,{bg:t,stk:r}=l[c.palette].textureClrs.rect[0],o=s.height/e;s.fill(r),s.stroke(t),s.strokeWeight(.005*s.width);for(let n=e;0<=n;n--){let a=0;n%2==0&&(a=i/2);for(let r=0;r<=9;r++){let t=i;for(let e=0;e<=7;e++)s.rectMode(CENTER),s.rect(r*i+a,n*o,t,t),t-=.015*s.width}}return x(s,5e3),s},I=(e=0)=>{var r=createGraphics(1200,1600),{bg:t,lowerFade:a}=l[c.palette].textureClrs.static[0],n=(r.background(t),r.pixelDensity(1),r.loadPixels(),r.pixels),{r:s,g:i,b:o}=y(t);for(let t=0;t<r.width;t++)for(let e=0;e<r.height;e++){R.random_int(0,255);var d=4*(t+e*r.width),h=(map(t,0,width,0,1),map(e,0,height,0,1),R.random_num(a,1));n[d]=s*h,n[1+d]=i*h,n[2+d]=o*h,n[3+d]=255*h}return r.updatePixels(),r},T=r=>{var{bg:e,stk:t}=l[c.palette].textureClrs.diagonals[0],a=r.height/100,{r:e,g:t,b:n}=(r.background(e),r.noStroke(),y(t)),s=(r.fill(e,t,n),.003*r.width);for(let t=0;t<=200;t++){var i=dist(0,t*a,t*a,0)/s;for(let e=0;e<=i;e++){var o=e/i,d=lerp(0,t*a,o),o=lerp(t*a,0,o);r.ellipse(d,o,r.width*R.random_num(.001,.005),r.width*R.random_num(.001,.005))}}e=R.random_num(0,100),t=R.random_num(0,100);return P(r,70,e,t),w(r),r},q=(e,t,r,a,n,s,i)=>{t=Math.pow(Math.abs(1/t*Math.cos(e*i/4)),n),n=Math.pow(Math.abs(1/r*Math.sin(e*i/4)),s),r=Math.pow(t+n,1/a);return 0===r?0:1/r};class X{constructor(e,t=300){this.a=e.a,this.b=e.b,this.n1=e.n1,this.n2=e.n2,this.n3=e.n3,this.totalPoints=t,this.m=e.m,this.vecs=[],this.makeShape()}changeFormSize(e,t){for(var r of this.vecs)r.x=map(r.x,-1,1,-1*e,+e),r.y=map(r.y,-1,1,-1*t,+t)}shift(e=1,t=1){for(var r of this.vecs)r.x+=e,r.y+=t}trimAndCenter(e=0){var t;let r=0,a=width,n=0,s=height;for(t of this.vecs)r=Math.max(r,t.x),n=Math.max(n,t.y),a=Math.min(a,t.x),s=Math.min(s,t.y);var i,o=r-a,d=n-s,h=(r+a)/2,l=(n+s)/2,c=2/Math.max(d,o)*(.95-e);for(i of this.vecs)i.x=(i.x-h)*c,i.y=(i.y-l)*c}warp(t,r=8,a=.3,n=.3,s=0,i=0){for(let e=0;e<t;e++)for(let e=0;e<this.vecs.length;e++){var o=this.vecs[e],o=noise(s+o.x*a,i+o.y*n)*TAU*r,o=p5.Vector.fromAngle(o),d=o.x,o=o.y;this.vecs[e].x+=.001*d,this.vecs[e].y+=.001*o}}rotateShape(t){for(let e=0;e<this.vecs.length;e++){var r=this.vecs[e],a=r.x*Math.cos(radians(t))-r.y*Math.sin(radians(t)),n=r.x*Math.sin(radians(t))+r.y*Math.cos(radians(t));r.x=a,r.y=n}}makeShape(){var t=TWO_PI/this.totalPoints;for(let e=0;e<TWO_PI;e+=t){var r=q(e,this.a,this.b,this.n1,this.n2,this.n3,this.m)*Math.cos(e),a=q(e,this.a,this.b,this.n1,this.n2,this.n3,this.m)*Math.sin(e);this.vecs.push(createVector(r,a))}}mapShapeToCanv(t,r,a){var n=[];for(let e=0;e<this.vecs.length;e++){var s=map(this.vecs[e].x,-1,1,t-a,t+a),i=map(this.vecs[e].y,-1,1,r-a,r+a);n.push(createVector(s,i))}return n}displayOnCanv(t,r){r.beginShape();for(let e=0;e<t.length;e++){var a=t[e];r.vertex(a.x,a.y)}r.endShape(CLOSE)}}const F=(e,t,r,a)=>{var n=randomGaussian(r,a);return n<e||t<n?F(e,t,r,a):n},Y=t=>{var r=[];for(let e=0;e<t.length;e++){var[a,n]=t[e];0==e?r.push([a,n]):r.push([a,n+r[e-1][1]])}var s=R.random_num(0,r[r.length-1][1]);for(let e=0;e<r.length;e++)if(r[e][1]>=s)return r[e][0]},G=(t,r)=>{var a=createGraphics(width,height);for(let e=0;e<t.length;e++){var n=t[e];"circles"==r?J(a,n):"squares"==r?z(a,n):"stars"==r?j(a,n):"strips"==r?V(a,n):"triangles"==r?H(a,n):"arcs"==r?L(a,n):"stellation"==r&&N(a,n)}var e=R.random_choice(["pattern","color"]);let s=createGraphics(m.fixedWidth,m.fixedHeight),i;if("pattern"==e){var e=l[c.palette].textureClrs,e=Object.keys(e);i=b(f,e),s=_(i,s),f++}else{e=l[c.palette].clrs.map(e=>e[0]);let t=b(u,e);s.background(t);var e=R.random_num(0,100),o=R.random_num(0,100),e=(P(s,100,e,o),l[c.palette].clrs.filter(e=>e[0]==t)[0][2]);e==h?(O(s,R.random_num(0,100),R.random_num(0,100),160,"#855d2c","#795127"),w(s,1600,1800,12)):w(s),u++}"static"!==i&&(o=.001*width,(e=createGraphics(width,height)).background(0,120),(d=e.get()).mask(a),image(d,o,o,width+o,height+o),e.clear(),e.remove());var d=s.get();d.mask(a),image(d,0,0,width,height)},H=(e,t)=>{e.fill(255);var r=new X(g.triangle),a=R.random_num(0,360),n=(r.rotateShape(a),r.mapShapeToCanv(t.centerX,t.centerY,t.radius)),r=(r.displayOnCanv(n,e),e.erase(),new X(g.triangle)),n=R.random_bool(.5)?-10:10,a=(r.rotateShape(a+(R.random_bool(.5)?120:240)+n),r.mapShapeToCanv(t.centerX,t.centerY,.5*t.radius));r.displayOnCanv(a,e),e.noErase()},V=(r,a)=>{r.fill(255);var n=[new X(g.rectangle),new X(g.rectangle),new X(g.rectangle)],s=(p=R.random_bool(.2)?90:0,R.random_num(-45,45)+p);for(let t=0;t<n.length;t++){var i=n[t],o=(i.rotateShape(45),i.changeFormSize(.15,1.1),R.random_num(0,100)),d=R.random_num(0,100);i.warp(40,4,.15,.15,o,d),i.trimAndCenter(.12);let e=0;0==t&&(e=-.4),2==t&&(e=.4),i.shift(e,0),i.rotateShape(s);o=i.mapShapeToCanv(a.centerX+e,a.centerY,a.radius);i.displayOnCanv(o,r)}},N=(e,t)=>{e.fill(255);var r=new X(g.stellation,60),a=R.random_num(0,360),n=(r.rotateShape(a),R.random_num(0,100)),s=R.random_num(0,100),n=(r.warp(70,4,.2,.2,n,s),r.trimAndCenter(.015),r.mapShapeToCanv(t.centerX,t.centerY,t.radius)),s=(r.displayOnCanv(n,e),e.erase(),new X(g.stellation,60)),r=R.random_bool(.5)?-10:10,n=(s.rotateShape(a+(R.random_bool(.5)?120:240)+r),s.mapShapeToCanv(t.centerX,t.centerY,.5*t.radius));s.displayOnCanv(n,e),e.noErase()},j=(e,t)=>{e.fill(255);var r=new X(g.simpleStar),a=R.random_num(-15,15)+(R.random_bool(.5)?90:270),a=(r.rotateShape(a),r.mapShapeToCanv(t.centerX,t.centerY,t.radius));r.displayOnCanv(a,e)},z=(e,t)=>{e.fill(255);var r=new X(g.square),a=R.random_num(-5,5)+(R.random_bool(.5)?45:225),a=(r.rotateShape(a),r.mapShapeToCanv(t.centerX,t.centerY,t.radius)),r=(r.displayOnCanv(a,e),e.erase(),R.random_num(0,100)),a=R.random_num(0,100);D(e,t,.65*t.radius,totalPoints=200,r,a),e.noErase()},J=(t,r)=>{let a=r.radius;t.noStroke();for(let e=0;e<=3;e++){e%2!=0&&t.erase(),t.fill(0);var n=R.random_num(0,100),s=R.random_num(0,100);D(t,r,a,200,n,s),e%2!=0&&t.noErase(),a*=R.random_num(.75,.7)}},L=(t,r)=>{var e=R.random_num(0,TWO_PI);let a=r.radius;t.noStroke();for(let e=0;e<=3;e++){e%2!=0&&(3==e?t.noErase():t.erase()),t.fill(0);var n=R.random_num(0,100),s=R.random_num(0,100);D(t,r,a,200,n,s),e%2!=0&&t.noErase(),a*=R.random_num(.75,.7)}t.erase(),t.arc(r.centerX,r.centerY,2*r.radius,2*r.radius,e,PI+e,CHORD),t.noErase()},D=(t,r,a,n,s,i)=>{t.beginShape();for(let e=0;e<=n;e++){var o=map(Math.cos(TWO_PI*e/n),-1,1,0,1),d=map(Math.sin(TWO_PI*e/n),-1,1,0,1),o=map(noise(o+s,d+i),0,1,a/1.5,a),d=r.centerX+o*Math.cos(TWO_PI*e/n),o=r.centerY+o*Math.sin(TWO_PI*e/n);t.curveVertex(d,o)}t.endShape(CLOSE)},U=(e,n,t,r,a,s=0,i=()=>!1,o=7e4)=>{let d=0;for(var h=[];h.length<e;){d++;var l=R.random_dec(),c=R.random_dec(),l={centerX:width*l,centerY:height*c,radius:width*R.random_num(r,a)};let e=!1;if((e=(e=(e=l.centerX-l.radius<0+t||l.centerX+l.radius>width-t||l.centerY-l.radius<0+t||l.centerY+l.radius>height-t?!0:e)||i(l))||((t,r)=>{for(let e=0;e<r.length;e++){var a=r[e];if(Math.sqrt(Math.pow(t.centerX-a.centerX,2)+Math.pow(t.centerY-a.centerY,2))<t.radius+a.radius+n)return!0}return!1})(l,h))||h.push(l),d>o)break}return h};class B{constructor(e,t,r){this.centerX=e,this.centerY=t,this.radius=r;R.random_num(0,100),R.random_num(0,100)}mapToNewCanv(e,t,r,a){this.centerX=map(this.centerX,0,e,0,t),this.centerY=map(this.centerY,0,r,0,a),this.radius=this.radius*t/e}} }],
[0,()=>{console.log("Artist 44. mpkoz -- platform 0");let o,e,t,n,v=!0,f=[],a=[],r=[],c=[],l=[];console.log("Several utility functions used in this script (sdf functions, shadows, poly booleans) were derived from the incredible tutorials and samples created by Inigo Quilez (thank you). The snoise function is partially derived from Ian McEwan, Ashima Arts.");function i(o,e,t){return Math.floor(m(o,e-1e-6,t))}function m(o=0,e=1,t=1){let n=R.random_dec();return Math.pow(n,t)*(e-o)+o}let d=[[2.31,4.96,.63,1.58,3,.3],[2.47,4.96,.97,1.11,3,.38],[2.75,4.67,.98,1.19,3,.32],[2.55,5.13,.96,1.37,3,.4],[2.39,4.73,.52,1.41,3,.24],[2.8,7.68,.61,1.5,4,.34],[2.76,8.07,.68,1.31,3,.32],[2.9,7.64,.54,1.34,3,.31],[2.76,7.61,.65,1.15,3,.36],[2.73,8.06,.55,1.64,4,.28],[3.04,7.89,.52,.51,4,.39],[2.9,7.96,.74,.44,4,.27],[2.94,7.82,.51,.59,4,.35],[3.1,8,.6,.49,4,.25],[3.06,7.77,.72,.44,4,.26],[3.08,7.83,.69,.49,4,.2],[2.91,7.99,.78,.5,4,.24],[3.06,7.65,.56,.58,4,.35],[2.61,7.34,.66,.64,4,.35],[2.71,6.81,.77,.76,4,.35],[2.68,6.51,.53,1.09,3,.37],[2.73,6.88,.47,.84,4,.32],[2.65,7.07,.53,.63,3,.2],[2.76,6.48,.61,.6,4,.22],[2.73,6.82,.45,1.19,4,.3]],x="precision mediump float;uniform vec2 iRR;uniform vec3 nO0;uniform float nSS,nFF,dSS,dAA,fov,bump,cOO;uniform vec3 lP;uniform int nCC,nRR;uniform float unitX,unitY,rrs[20];uniform vec3 shW;\n #define MCO 12\n #define MRO 20\n #define MLX 11*3\n uniform float xLA[MLX];\n #define MLY 19*3\n uniform float yLA[MLY];\n #define MC MCO*MRO\n uniform float isShapes[MC],shRR[MC];mat2 rotate(float v){float f=cos(v),d=sin(v);return mat2(f,d,-d,f);}float lt(float x,float v){return max(sign(v-x),0.);}vec3 hn(vec3 v){return normalize(v);}float hash12(vec2 v){vec3 f=fract(vec3(v.xyx)*.1031);f+=dot(f,f.yzx+33.33);return fract((f.x+f.y)*f.z);}float PI=acos(-1.);float random(vec2 v){return fract(sin(dot(v,vec2(12.9898,78.233)))*43758.5453123);}vec4 mod289(vec4 v){return v-floor(v*(1./289.))*289.;}float mod289(float v){return v-floor(v*(1./289.))*289.;}vec4 prm(vec4 v){return mod289((v*34.+1.)*v);}float prm(float v){return mod289((v*34.+1.)*v);}vec4 tis(vec4 v){return 1.79284291400159-.85373472095314*v;}float tis(float v){return 1.79284291400159-.85373472095314*v;}vec4 grad4(float v,vec4 f){const vec4 d=vec4(1,1,1,-1);vec4 m,u;m.xyz=floor(fract(vec3(v)*f.xyz)*7.)*f.z-1.;m.w=1.5-dot(abs(m.xyz),d.xyz);u=vec4(lessThan(m,vec4(0)));m.xyz=m.xyz+(u.xyz*2.-1.)*u.www;return m;}\n #define F4 0.309016994374947451\n float snoise(vec4 v,out vec4 f){const vec4 d=vec4(.138196601125011,.276393202250021,.414589803375032,-.447213595499958);vec4 m=floor(v+dot(v,vec4(F4))),x=v-m+dot(m,d.xxxx),y;vec3 s=step(x.yzw,x.xxx),c=step(x.zww,x.yyz);y.x=s.x+s.y+s.z;y.yzw=1.-s;y.y+=c.x+c.y;y.zw+=1.-c.xy;y.z+=c.z;y.w+=1.-c.z;vec4 u=clamp(y,0.,1.),z=clamp(y-1.,0.,1.),p=clamp(y-2.,0.,1.),w=x-p+d.xxxx,i=x-z+d.yyyy,l=x-u+d.zzzz,X=x+d.wwww;m=mod289(m);float M=prm(prm(prm(prm(m.w)+m.z)+m.y)+m.x);vec4 n=prm(prm(prm(prm(m.w+vec4(p.w,z.w,u.w,1))+m.z+vec4(p.z,z.z,u.z,1))+m.y+vec4(p.y,z.y,u.y,1))+m.x+vec4(p.x,z.x,u.x,1)),I=vec4(1./294.,1./49.,1./7.,0),r=grad4(M,I),Y=grad4(n.x,I),O=grad4(n.y,I),g=grad4(n.z,I),k=grad4(n.w,I),o=tis(vec4(dot(r,r),dot(Y,Y),dot(O,O),dot(g,g)));r*=o.x;Y*=o.y;O*=o.z;g*=o.w;k*=tis(dot(k,k));vec3 h=max(.5-vec3(dot(x,x),dot(w,w),dot(i,i)),0.);vec2 t=max(.5-vec2(dot(l,l),dot(X,X)),0.);vec3 a=h*h;vec2 F=t*t;vec3 W=a*a;vec2 R=F*F;vec3 P=vec3(dot(r,x),dot(Y,w),dot(O,i));vec2 S=vec2(dot(g,l),dot(k,X));vec3 b=a*h*P;vec2 A=F*t*S;f=-8.*(b.x*x+b.y*w+b.z*i+A.x*l+A.y*X);f+=W.x*r+W.y*Y+W.z*O+R.x*g+R.y*k;f*=109.319;return 109.319*(dot(a*a,vec3(dot(r,x),dot(Y,w),dot(O,i)))+dot(F*F,vec2(dot(g,l),dot(k,X))));}float displ(vec3 v){if(abs(v.x)>.5||abs(v.y)>.8889)return 1e3;vec3 f=vec3(v);vec2 m=vec2(v)+nO0.xy,d=vec2(v.yx)+nO0.yz;vec4 x;float p=snoise(vec4(m*dSS,0,1),x)*2.,y=snoise(vec4(d*dAA,0,1),x)*3.;vec2 s=rotate(p*PI)*vec2(y,0);f*=nSS;f.z+=-nO0.x;f.xy+=s;float u=.03,r=0.,z=1.,i=mix(3.,4.,lt(rrs[11],0.));for(int n=0;n<4;n++){vec4 o=vec4(0);float M=snoise(vec4(f.xyz*.5,1),o);r+=o.w*u;f*=nFF;f+=bump*o.xyz*z;if(n==2)z*=-1.;u*=.5;if(n+1>=int(i))break;}return r;}float sdBox(vec3 v,vec3 f){f*=.5;vec3 m=abs(v)-f;return length(max(m,0.))+min(max(m.x,max(m.y,m.z)),0.);}float bFr(vec3 v,vec3 f,float m){f*=.5;v=abs(v)-f;vec3 d=abs(v+m)-m;return min(min(length(max(vec3(v.x,d.yz),0.))+min(max(v.x,max(d.y,d.z)),0.),length(max(vec3(d.x,v.y,d.z),0.))+min(max(d.x,max(v.y,d.z)),0.)),length(max(vec3(d.xy,v.z),0.))+min(max(d.x,max(d.y,v.z)),0.));}float sdSphere(vec3 v,float f){return length(v)-f;}float opSmoothUnion(float v,float m,float x){float f=clamp(.5+.5*(m-v)/x,0.,1.);return mix(m,v,f)-x*f*(1.-f);}float opUnion(float v,float f){return v<f?v:f;}float opSmoothSubtraction(float v,float m,float x){float f=clamp(.5-.5*(m+v)/x,0.,1.);return mix(m,-v,f)+x*f*(1.-f);}float map(vec3 v){float f=35.55556,d=20.,x=.4,m=1e3,y=1.,z=3.;vec3 n=vec3(0,f*.5-y*.5,0);float u=sdBox(v+n,vec3(d,y,z));vec3 M=vec3(0,-f*.5+y*.5,0);float l=sdBox(v+M,vec3(d,y,z));vec3 s=vec3(-d*.5+y*.5,0,0);float i=sdBox(v+s,vec3(y,f,z));vec3 r=vec3(d*.5-y*.5,0,0);float w=sdBox(v+r,vec3(y,f,z));m=opUnion(m,u);m=opUnion(m,l);m=opUnion(m,i);m=opUnion(m,w);float p=1e3;for(int O=0;O<MLX;O+=3)if(xLA[O+2]>0.){float g=xLA[O],X=xLA[O+1];vec3 A=vec3(g,X,0);float I=sdBox(v+A,vec3(.05,xLA[O+2],3.5));p=opUnion(p,I);}for(int O=0;O<MLY;O+=3)if(yLA[O+2]>0.){float g=yLA[O],X=yLA[O+1];vec3 A=vec3(g,X,0);float I=sdBox(v+A,vec3(yLA[O+2],.05,3.5));p=opUnion(p,I);}m=opSmoothUnion(p,m,.8);for(int O=0;O<MRO;O++){float X=-f*.5+unitY*.5+float(O)*unitY;for(int g=0;g<MCO;g++){float A=-d*.5+unitX*.5+float(g)*unitX;if(isShapes[O*MCO+g]>.1){vec3 I=vec3(A,X,0);float Y=1.,o=3.,c=shRR[O*MCO+g],k=1e3;k=c<shW.x?bFr(v+I,vec3(Y*unitX,unitY*Y,o),.12):c<shW.y?sdSphere(v+I,min(unitX,unitY)*.35):c<shW.z?sdBox(v+I,vec3(.5*unitX,unitY*.5,o)):sdBox(v+I,vec3(Y*unitX,unitY*Y,o));m=opUnion(m,k);}if(g+1>=nCC)break;}if(O+1>=nRR)break;}float X=v.z*.4+displ(v*.05)*10.;X*=.5;float g=sdBox(v+vec3(0,0,-8),vec3(d,f,10)),O=opSmoothSubtraction(g,X,.1);O=opSmoothUnion(m,O,x);return O;}vec3 nrml(vec3 v){vec2 m=vec2(.01,0);return normalize(map(v)-vec3(map(v-m.xyy),map(v-m.yxy),map(v-m.yyx)));}float sha(vec3 v,vec3 m,float f,float x){float d=1.,z=f;for(int O=0;O<16;O++){float y=map(v+m*z);y=max(y*.08,0.);d=min(d,x*y/z);z+=clamp(y,.02,.5);if(y<1e-5)break;}return clamp(d,0.,1.);}float pCl(float v,float m,float f){return pow(clamp(v+m,0.,1.),f);}void main(){float v=hash12(-gl_FragCoord.yx),d=hash12(iRR.xy+random(gl_FragCoord.yx));vec2 f=(gl_FragCoord.xy/iRR.xy-vec2(.5))*vec2(2,16./9.*2.);f.x+=(v-.5)*5e-4;f.y-=(d-.5)*5e-4;float m=hash12(gl_FragCoord.xy);vec3 x=vec3(0,0,fov+1.5),y=hn(vec3(f.x,-f.y,-fov*.1));vec2 n=vec2(1,fov*4.);vec3 O=x+y*.1,z;float p=0.,u=0.;const float s=128.;float M=0.;for(float o=s;o>0.;--o){float g=map(O);g*=.6+.4*m;u+=g;O+=y*g;p=o;if(g<.01||u>n.y)break;}z=nrml(O);vec3 o=x,X=y,g=o+u*X,I=hn(lP);float A=sha(g,I,.01,80.),i=pow(p/s+.04,2.);vec3 r=vec3(i);float k=mix(.95,1.,(fov-15.)*1.1764*.01);r*=vec3(251./255.,245./255.,243./255.)*k;float Y=pow(dot(reflect(y,z),vec3(-1,1,0)),2.),w=pow(dot(z,I),2.),l=dot(z,vec3(1,0,0));vec3 F=cos(O.z+cOO+vec3(1,2,3)+.1*O.y);r+=.2*w;r*=.7+A*.3;float c=.4,P=4.,a=.2;vec3 h=vec3(pCl(r.x,c,P),pCl(r.y,c,P),pCl(r.z,c,P))*a+(1.-a);r*=h;r+=.125*F*l;r+=.03*Y*k;r=clamp(r,0.,1.);gl_FragColor=vec4(r,1);}",s="attribute vec3 aPosition;attribute vec2 aTexCoord;varying vec2 vTexCoord;void main(){vec4 positionVec4=vec4(aPosition,1);positionVec4.xy=positionVec4.xy*2.-1.;gl_Position=positionVec4;}";function y(){let o=i(3,12.999),n=o-1,v=i(4,20.999),x=v-1,s=35.5556,y=20/o,u=s/v;for(let o=0;o<11;o++){let e=0,t=0,a=0;if(o<n){e=y*o-10+y;let n=m(0,100);if(n<25)a=35.5556,t=0;else if(n<30);else{a=2*i(1,floor(.5*v)+.4999)*u,t=.5*s-.5*a-i(0,(s-a)/u+.999)*u}}f.push(e,t,a)}for(let e=0;e<19;e++){let t=-1,n=-1,v=-1;if(e<x){n=u*e-.5*s+u;let f=m(0,100);if(f<25)v=20,t=0;else if(f<30);else{v=2*i(1,floor(.5*o)+.4999)*y,t=10-.5*v-i(0,(20-v)/y+.999)*y}}a.push(t,n,v)}shader(t);let g=i(0,d.length);console.log(g);let z=d[g],O=z[0],w=z[1],b=z[2],A=z[3],C=(z[4],z[5]),X=[m(-1,1),m(-1,-.65),m(.7,1)],S=[0,0,0,0];p(S);let M=S[0],Y=S[1],F=S[2],k=S[3],I=M+Y+F+k,L=.55;M+Y+F==0&&(L=.7);for(let o=0;o<20;o++)for(let o=0;o<12;o++)m(0,1)>L?r.push(1):r.push(0),c.push(m(0,1));M/=I,Y=Y/I+M,F=F/I+Y,k=k/I+F;let P=[M,Y,F],B=i(20,100,1.5);h("xLA",f),h("yLA",a),h("isShapes",r),h("shRR",c),h("lP",X),h("nSS",w),h("nFF",O),h("dSS",b),h("dAA",A),h("shW",P),h("fov",B),h("bump",C),h("cOO",m(0,100)),h("nCC",o),h("nRR",v),h("unitX",y),h("unitY",u),h("rrs",l),h("iRR",[e.x,e.y]);let U=1e3;h("nO0",[m(-U,U),m(-U,U),m(-U,U)])}function u(o,e){let t=-1;return t="x"==e?(o+10)/20*255:(o+17.777778)/35.555556*255,t}function p(o){let e=i(1,3.9999),t=[0,1,2,3];g(t);for(let n=0;n<t.length;n++)o[t[n]]=n<e?1:0}function h(o,e){t.setUniform(o,e)}function g(o){for(var e=o.length-1;e>0;e--){var t=Math.floor(m()*(e+1)),n=o[e];o[e]=o[t],o[t]=n}}function z(o){return.01*round(100*o)}function O(){e=createVector(2160,3840),resizeCanvas(e.x,e.y),document.body.style.margin="0",document.body.style.padding="0";window.innerWidth,window.innerHeight;w(),o.width=e.x,o.height=e.y}function w(){isPortrait=!0,document.body.style.background="#e6e1dc",o.style("transform","rotate(0deg)"),o.style("-webkit-transform","rotate(0deg)"),o.style("-ms-transform","rotate(0deg)"),o.style("-o-transform","rotate(0deg)"),o.style("-moz-transform","rotate(0deg)"),o.style("position","fixed"),o.style("margin","0px"),o.style("width","auto"),o.style("height","100%");let t=windowHeight/e.y*e.x,n=.5*windowWidth-.5*t;o.position(n,0)}setup=function(){e=createVector(2160,3840),pixelDensity(1),setAttributes("antialias",!0),o=createCanvas(e.x,e.y,WEBGL),t=createShader(s,x);for(let o=0;o<20;o++)l.push(i(-1e3,1e3));document.getElementById("defaultCanvas0").getContext("webgl");y(),console.log(tokenData.hash),O()},draw=function(){v&&rect(-width/2,-height/2,width,height),v=!1}; }],
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BgAAAAUAAAAEAAAAAwAAAAIAAAABAAAAAAAAAP////8AAAAAAQAAAAIAAAABAAAAAAAAAP////8AAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAFAAAABAAAAAMAAAACAAAAAQAAAAAAAAD/////AAAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAP////8AAAAAAAAAAAYAAAAFAAAABAAAAAMAAAACAAAAAQAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAD/////AAAAAAAAAAAAAAAAAQAAAAIAAAACAAAAAQAAAAAAAAD/////AAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAGAAAABQAAAAQAAAADAAAAAgAAAAEAAAAAAAAA/////wAAAAACAAAAAQAAAAAAAAAAAAAAAQAAAAIAAAD/////AAAAAAYAAAAFAAAABAAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAA/////wAAAAAAAAAAAwAAAAEAAAACAAAA/////wAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAIAAAADAAAABgAAAAQAAAAFAAAA/////wBBwA0LzAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), A => A.charCodeAt(0)).buffer, p: new Float32Array([...g, ...Q]).buffer }), worklet.port.onmessage = A => { A.data[0], B = A.data }, worklet.connect(A.destination), document.documentElement.addEventListener("click", function () { A.resume(), L() }, { once: !0 }) } }],
vec2 rotate(vec2 uv, float amp, float phase_offset, float speed) { return uv * rot(amp*sin(speed*2.*PI+2.*PI*phase_offset)); } vec2 translate(vec2 uv, float amp, float phase_offset, float speed) { return uv + amp*sin(speed*2.*PI+2.*PI*phase_offset); } vec3 draw(vec2 uv) { vec3 c = vec3(0.); vec4 cOut = vec4(0., 0., 0., 1.); vec2 point5 = vec2(0.5); float aspect = uR.x/uR.y; if (aspect < 1.) { ${w.aspectMult.v[0]} *= aspect; } else { ${w.aspectMult.v[1]} *= 1./aspect; } vec2 uvTemp = uv; float amp = ${R.random_num(.002, .015)}; float phase = ${R.random_dec()}; uv = rotate(uv, amp, phase, -uTS); vec4 cA = getSvg(uv+.5, texA); uv = uvTemp; amp = ${R.random_num(.002, .015)}; phase = ${R.random_dec()}; uv = rotate(uv, amp, phase, -uTS); vec4 cB = getSvg(uv+.5, texB); uv = uvTemp; amp = ${R.random_num(.002, .015)}; phase = ${R.random_dec()}; uv = rotate(uv, amp, phase, -uTS); vec4 cC = getSvg(uv+.5, texC); cOut = mix(cOut, cC, mix(0., cC.a, 1.)); cOut = mix(cOut, cB, mix(0., cB.a, 1.)); cOut = mix(cOut, cA, mix(0., cA.a, 1.)); uv = uvTemp; c = vec3(cOut.r, cOut.g, cOut.b); if (uColorize){ if (${i} > 0.) { if (uv.x > 0.){ c = colorize(uv, vec4(c,1.)); } } else { c = colorize(uv, vec4(c,1.)); } } return c; } void main() { vec2 uv = (gl_FragCoord.xy/uR.xy); uv -= .5; vec3 c = vec3(0.); c = draw(uv); const vec2 H2=vec2(.5698402909980532,.7548776662466927); const float aa=1.5, ns=8.; float ps=1./uR.y; for(float i=0.;i<ns;i+=1.){ vec2 d=fract(H2*i+.5)-.5; c += draw(uv+d*ps*aa); } c/=ns; vec4 col = vec4(c,1.); gl_FragColor = col; } `, A = function (A, g, I, C) { if (shader = g.createShader(g.VERTEX_SHADER), g.shaderSource(shader, I), g.compileShader(shader), g.attachShader(A, shader), shader = g.createShader(g.FRAGMENT_SHADER), g.shaderSource(shader, C), g.compileShader(shader), g.attachShader(A, shader), g.linkProgram(A), !g.getProgramParameter(A, g.LINK_STATUS)) throw new Error(g.getProgramInfoLog(A)); g.useProgram(A); var I = g.getAttribLocation(A, "aPosition"), C = g.getAttribLocation(A, "aTexCoord"), Q = g.createBuffer(), B = (g.bindBuffer(g.ARRAY_BUFFER, Q), g.bufferData(g.ARRAY_BUFFER, Float32Array.of(0, 1, 0, 0, 1, 1, 1, 0), g.STATIC_DRAW), g.createBuffer()); return g.bindBuffer(g.ARRAY_BUFFER, B), g.bufferData(g.ARRAY_BUFFER, Float32Array.of(0, 1, 0, 0, 1, 1, 1, 0), g.STATIC_DRAW), g.useProgram(A), g.enableVertexAttribArray(I), g.bindBuffer(g.ARRAY_BUFFER, Q), g.vertexAttribPointer(I, 2, g.FLOAT, !1, 0, 0), g.enableVertexAttribArray(C), g.bindBuffer(g.ARRAY_BUFFER, B), g.vertexAttribPointer(C, 2, g.FLOAT, !1, 0, 0), A }(gl.createProgram(), gl, ` precision highp float;attribute vec2 aPosition;attribute vec2 aTexCoord;varying vec2 vTC; void main(){vTC=aTexCoord;vec4 p4=vec4(aPosition*2.-1.,0,1.);gl_Position=p4;} `, A); colorMap = V(gl, clamp = !0), gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, palRgb.length / 3, 1, 0, gl.RGB, gl.UNSIGNED_BYTE, new Uint8Array(palRgb)), textures = [colorMap]; for (let A = 0; A < g.length; ++A)svg = V(gl, clamp = !0), gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, g[A]), textures.push(svg); for (let A = 0; A < textures.length; A++)gl.activeTexture(gl.TEXTURE0 + A), gl.bindTexture(gl.TEXTURE_2D, textures[A]); uR = gl.getUniformLocation(A, "uR"), uT = gl.getUniformLocation(A, "uT"), uTCM = gl.getUniformLocation(A, "uTCM"), uFPS = gl.getUniformLocation(A, "uFPS"), uFadeA = gl.getUniformLocation(A, "uFadeA"), uFadeB = gl.getUniformLocation(A, "uFadeB"), uZoomA = gl.getUniformLocation(A, "uZoomA"), uZoomB = gl.getUniformLocation(A, "uZoomB"), uColorize = gl.getUniformLocation(A, "uColorize"), texPal = gl.getUniformLocation(A, "texPal"), texA = gl.getUniformLocation(A, "texA"), texB = gl.getUniformLocation(A, "texB"), texC = gl.getUniformLocation(A, "texC"), gl.uniform1i(texPal, 0), gl.uniform1i(texA, 1), gl.uniform1i(texB, 2), gl.uniform1i(texC, 3), document.body.appendChild(J), addEventListener("keyup", X), addEventListener("resize", Z), Z(), L(), t("dl") && (E = !0, W()) }; function L() { 0 == B[0] && B != A && 0 < B.length && (q && U >= M && R.random_dec() < .7 && (o.fadeA < .5 ? (U = 0, M = f[0] == f[1] ? .8 * p : p * R.random_int(2, 4) * .8, f = [0, 1]) : R.random_dec() < .3 && (U = 0, M = f[0] == f[1] ? .8 * p : p * R.random_int(2, 4) * .8, f = [1, 0])), N && m >= K && R.random_dec() < .7 && (o.fadeB < .5 ? (m = 0, K = P[0] == P[1] ? .8 * p : p * R.random_int(2, 4) * .8, P = [0, 1]) : R.random_dec() < .3 && (m = 0, K = P[0] == P[1] ? .8 * p : p * R.random_int(2, 4) * .8, P = [1, 0])), IA = (y = gA % 2 == 0 ? (d = [1.4, 1.2], [.75, .9]) : (d = [1.2, 1.4], [.9, .75]), [0, 10]), gA++, S = 0), o.zoomA = D(S, d[0], d[1] - d[0], p), o.zoomB = D(S, y[0], y[1] - y[0], p), o.fadeA = D(U, f[0], f[1] - f[0], M), o.fadeB = D(m, P[0], P[1] - P[0], K), E && 0 != h || (gl.uniform2f(uR, c.w, c.h), gl.uniform1f(uT, h), gl.uniform1f(uTCM, o.uTCM), gl.uniform1f(uFPS, g), gl.uniform1f(uFadeA, o.fadeA), gl.uniform1f(uFadeB, o.fadeB), gl.uniform1f(uZoomA, o.zoomA), gl.uniform1f(uZoomB, o.zoomB), gl.uniform1f(uColorize, Y), gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4), [w.pal.v, palRgb] = $(palRand, u, w.cRep.v, o.positive_space_amt), gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, palRgb.length / 3, 1, 0, gl.RGB, gl.UNSIGNED_BYTE, new Uint8Array(palRgb)), gl.bindTexture(gl.TEXTURE_2D, textures[0])), !E && 0 < B.length && (A = B, setTimeout(A => requestAnimationFrame(() => { L(), h < 500 && (C ? (performance.now() != C && (I = (performance.now() - C) / 1e3), C = performance.now(), fpsIdx = h % 500, Q[fpsIdx] = 1 / I, g = _(Q), p = Math.floor(.8 * O * g)) : (C = performance.now(), g = 30)) }), T), S <= p && 0 < B.length && S++, U <= M && 0 < B.length && U++, m <= K && 0 < B.length && m++, h++), 0 == h && (B = [R.random_num(0, 1e3)]) } let BA = [[-24.6, 6.8, -10.4, 128.8946, .2144, .45, 15.574, .1215, .03, -12, 8.8, 12, 0, 0, 6, 22, 10], [-24.7, 8.7, -60, 216.2127, .3022, .6, 33.4396, .4727, .02, -15, 9.2, 3, 5, 14, 0, 17, 40]], oA = [[5, 164.8138, 412.0345, -1, 185.4155, 439.5034, -1, 123.6103, 618.0517, 741.662, 274.6896, 659.2551, 988.8827, 309.0258, 741.662, 1098.7585], [5, 164.8138, 412.0345, -1, 219.7517, 549.3793, -1, 247.2207, 618.0517, 741.662, 164.8138, 412.0345, -1, 164.8138, 618.0517, -1]]; window.onload = async () => { rayCount = 2 * Math.round(R.random_num(8, 20)), num_lines_A = R.random_choice([1, 2, 3, 3, 4, 4, 5, 6, 7]), num_lines_B = R.random_choice([1, 2, 3, 3, 4, 4, 5, 6, 7]), blur_amount_A = R.random_choice([5, 5, 5, .5]), blur_amount_C = R.random_choice([5, 5, 5, .5]), widthMultA = R.random_num(.1, .25), widthMultB = R.random_num(.1, .25), widthMultC = R.random_num(.1, .25), strokeMultA = R.random_num(.01, .05), strokeMultB = R.random_num(.01, .05), strokeMultC = R.random_num(.01, .05), w.perpetua.v && (num_lines_A = 1, num_lines_B = 1), 1 == (num_lines_A = 1 < blur_amount_A ? R.random_choice([1, 2, 3, 4]) : num_lines_A) && (widthMultA = R.random_num(.1, .3)), num_lines_A + num_lines_B == 2 && (rayCount = R.random_choice([20, 24, 28, 32, 36])), z(svgsTxt = [G(rayCount, num_lines = 1, widthMult = R.random_num(.01, .03), strokeMult = .05, opacity = .3, color = "red", blur_amount = .5, cutA = 0, cutB = R.random_num(.03, .3)), G(rayCount *= 2, num_lines = num_lines_A, widthMult = widthMultA, strokeMult = strokeMultA, opacity = .1, color = "white", blur_amount = blur_amount_A), G(rayCount *= 2, num_lines = num_lines_B, widthMult = widthMultB, strokeMult = strokeMultB, opacity = .1, color = "white", blur_amount = .5), F(), F(), F(), F(), F(), F()], QA), console.log("primary color:", w.pal.v[0]), await new Promise(A => setTimeout(A, 200)); let A = new AudioContext({ latencyHint: .2 }); A.suspend(); var g = 128 * Math.round(Math.max(1, A.sampleRate / 48e3)); let I = w.song.v, C = w.chords.v; t("preset") && (I = t("preset")), t("chords") && (C = t("chords")); var Q = oA[C], g = (await A.audioWorklet.addModule("data:application/javascript;base64," + btoa(`registerProcessor("w",class extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{let m=new WebAssembly.Memory({initial:${g},maximum:${g}});WebAssembly.instantiate(e.data.w,{env:{memory:m,evt:(...a)=>this.port.postMessage(a)}}).then(wasm=>{this.w=wasm.instance.exports;this.o=new Float32Array(m.buffer,this.w.i1(sampleRate,${v},${BA[I].length + Q.length}));this.o.set(new Float32Array(e.data.p),256);this.w.i2();});};}process(i,o){if(!this.w)return true;this.w.p();o[0][0].set(this.o.subarray(0,128));o[0][1].set(this.o.subarray(128,256));return true;}})`)), worklet = new AudioWorkletNode(A, "w", { numberOfInputs: 0, numberOfOutputs: 1, outputChannelCount: [2] }), BA[I].map(A => "number" == typeof A ? A : 0 === A[0] ? R.random_num(...A[1]) : R.random_choice(A[1]))); worklet.port.postMessage({ w: Uint8Array.from(atob("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
[0 ,()=>{console.log("Artist 36. Aaron Penne x Boreta -- platform 0 ");let B = [], A = [], g = 20, I = 0, C = 0, O = 23; let q = !0, N = !0; let Q = Array(20).fill(g), v = (t("hash") && (tokenData.hash = t("hash")), R.random_dec()); const o = { rotation_mult: .25, positive_space_amt: 5, uTCM: 0, fadeA: 1, fadeB: 1, zoomA: 1.2, zoomB: .9 }; let T = 15, i = "0.", Y = !0, E = !1; const e = 2; let b = {}; t("skeleton") && (i = "1."); const _ = A => A.reduce((A, g) => A + g) / A.length; function t(A) { if ((urlparams = new URLSearchParams(window.location.search)).get(A)) { var g = urlparams.get(A); g = g.toLowerCase().split(" "); for (let A = 0; A < g.length; A++)g[A] = g[A].charAt(0).toUpperCase() + g[A].slice(1); return g.join(" ") } return "" } function a(A, g, I = !1) { let C = A.filter(({ n: A }) => A == g); return I ? [...C = C.map(({ v: A }) => A)] : C[0] } function x(A, g, I) { var A = +A.replace("#", "0x"), C = A >> 16, Q = A >> 8 & 255, A = 255 & A, g = +g.replace("#", "0x"); return "#" + ((1 << 24) + (C + I * ((g >> 16) - C) << 16) + (Q + I * ((g >> 8 & 255) - Q) << 8) + (A + I * ((255 & g) - A)) | 0).toString(16).slice(1) } function H(A) { return A = 7 <= (A = "#" != A[0] ? "#" + A : A).length ? A : A.split("").map(A => "#" == A ? A : A + A).join("") } function j() { var A = {}; return A.w_scaled_small = window.innerWidth, A.h_scaled_small = window.innerHeight, A.min_scaled_small = Math.min(A.w_scaled_small, A.h_scaled_small), A.w = A.w_scaled_small * e, A.h = A.h_scaled_small * e, t("dl") && (console.log("Rendering in HD..."), A.w = 5700, A.h = 5700), A.min = Math.min(A.w, A.h), A.max = Math.max(A.w, A.h), A } function Z() { c = j(), J.width = c.w, J.height = c.h, J.style.width = c.w_scaled_small + "px", J.style.height = c.h_scaled_small + "px", b = c, gl.viewport(0, 0, c.w, c.h), document.body.style.backgroundColor = "#000000" } function X(A) { "r" == A.key ? location.reload() : "s" == A.key ? W() : "g" == A.key && (E = !1) } function W() { var A = document.createElement("a"); fn = `passages_${(new Date).toISOString().replace(/[^T0-9]/g, "").replace("T", "_")}_${tokenData.hash}.png`, A.download = fn, A.href = J.toDataURL("image/png"), console.log("Downloading " + fn), A.click() } function V(A, g = !1) { var I = A.createTexture(); return A.bindTexture(A.TEXTURE_2D, I), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_MIN_FILTER, A.LINEAR), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_MAG_FILTER, A.LINEAR), g = g ? A.CLAMP_TO_EDGE : A.REPEAT, A.texParameteri(A.TEXTURE_2D, A.TEXTURE_WRAP_S, g), A.texParameteri(A.TEXTURE_2D, A.TEXTURE_WRAP_T, g), A.pixelStorei(A.UNPACK_ALIGNMENT, 1), I } function z(g, A) { let I = [], C = g.length; var Q, B, o = () => { 0 === --C && A(I) }; for (let A = 0; A < C; A++) { i = g[A], Q = o, B = void 0, (B = new Image).src = "data:image/svg+xml, " + encodeURIComponent(i), B.width = c.w, B.height = c.h, B.onload = Q; var i = B; I.push(i) } } function $(I, A, g, C = 50, Q = AA) { let B = [], o = []; for (let g = 0; g < I.length - 1; g++) { numSteps = A[g]; for (let A = 0; A < numSteps; A++)B.push(x(I[g], I[g + 1], A / numSteps)) } B = B.slice(0, 333); for (let A = 0; A < C; A++)B.push(Q); numSteps = 5; for (let A = 0; A < numSteps; A++)B.push(x(B[B.length - 1], B[0], A / numSteps)); return o = [], B.forEach(A => { cRgb = (A = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(A = A)) ? { r: parseInt(A[1], 16), g: parseInt(A[2], 16), b: parseInt(A[3], 16) } : null, o.push(cRgb.r, cRgb.g, cRgb.b) }), [I, o] } function l(A, g) { obj_string = ""; for (var [I, C] of Object.entries(g)) obj_string += ` ${I}="${C}"`; return `<${A} ${obj_string}/>` } function D(A, g, I, C) { return -I / 2 * (Math.cos(Math.PI * A / C) - 1) + g } function r(A, g = 5) { return parseFloat(A.toFixed(g)) } let AA = "#F2F3EE"; var n, s = "#222222", k = { song: [{ w: 5, n: "Pathway", v: 0 }, { w: 5, n: "Plane", v: 1 }], chords: [{ w: 5, n: "I iii IV ii V", v: 0 }, { w: 5, n: "ii IV iii IV i", v: 1 }], cRep: [{ w: 1, n: "Few", v: 4 }, { w: 1, n: "Some", v: 7 }, { w: 1, n: "Many", v: 9 }], aspectMult: [{ w: 0, n: "Firefox", v: ["uv.xy", "uv.xy"] }, { w: 0, n: "Regular", v: ["uv.x", "uv.y"] }], perpetua: [{ w: 1, n: "Perpetua", v: 1 }, { w: 5, n: "Ephemeral", v: 0 }], prophecy: [{ w: 1, n: "Chosen", v: "Untold" }], pal: [{ w: 1, n: "Liquid Dusk", v: ["#F6DAA8", "#B68662", "#230D00", "#B68662", "#BF8C61", "#C88F5A", "#D19559", "#D39959", "#D69B55", "#E8A557", "#EFA953", "#E3A64B", "#E5BA5C", "#EFD171", "#E6C96D", "#E8CE81", "#EBDDAC", "#E9E7CE", "#ECE3E4", "#E4E5E9", "#E6E7E1", "#F5E3BD", "#E7BC6E", "#BD7E1F", "#B36F1C", "#995317", "#7F3B0E", "#7F4017", "#86522A", "#895F35", "#F2F3EE", "#926B40", "#A2774C", "#BF9469", "#9C7347", "#784F31", "#6A4027", "#643A24", "#6C4633", "#5D3C2B", "#2C1609", "#F2F3EE", "#6D452C", "#8E5D35", "#B47F49", "#D09E61", "#DDB67B", "#F6DAA8", "#D7C499", "#E5C384", "#BF9D5E", "#F2F3EE", "#F2F3EE"] }, { w: 8, n: "Darkness", v: ["#111", "#656463", s, "#333", s, "#000", "#454443", s, "#000", "#656463", "#313035"] }, { w: 1, n: "Oracle", v: [s, s, R.random_choice(["#4E6E61", "#365", "#4C3F5D", "#336", "#358", "#CCC", "#45A", "#576", "#5493B6", "#7AC", "#89292D", "#87A", "#8F3935", "#A33", "#B8513B", "#B78", "#C54", "#C95", "#D57C30", "#D94", "#DA9", "#C99", "#DEC254"]), AA, s] }] }; let w = {}; for (n in k) w[n] = function (A) { let I = []; return A.forEach((g, A) => { for (let A = 0; A < g.w; A++)I.push(g) }), R.random_choice(I) }(k[n]); 11 == w.chords.v && (w.song = a(k.song, "Expand")); for (let A = 0; A < w.pal.v.length; A++)w.pal.v[A] = H(w.pal.v[A]); pal = w.pal.v, palRand = []; for (let A = 0; A < w.cRep.v; A++)palRand = palRand.concat(pal); let u = []; palRand.forEach(A => { u.push(2 * R.random_dec() + 1) }), "Oracle" == w.pal.n && (s = (s = a(k.pal, "Oracle")).v[1], w.prophecy.v = s.replace("#", "")); for (let A = 0; A < w.pal.v.length; A++)w.pal.v[A] = H(w.pal.v[A]); console.table(w), -1 != navigator.userAgent.indexOf("Firefox") ? w.aspectMult = a(k.aspectMult, "Firefox") : w.aspectMult = a(k.aspectMult, "Regular"); let c = j(); console.log(tokenData.hash); let J, h = 0; let S = 0, U = 0, m = 0, gA = 0; let p = 900, M = 400, K = 400, d = [1.2, 1.4], y = [.9, .75], f = [1, 1], P = [1, 1], IA = [0, 10]; function CA(A, g = 0) { return zoomView = `viewBox="0 0 ${c.max} ${c.max}"`, blur_base = .003, fix_blur_clip = 'x="-50%" y="-50%" width="200%" height="200%"', ` <svg xmlns="http://www.w3.org/2000/svg" width="${c.max}" height="${c.max}" ${zoomView} stroke="black" fill="black" stroke-width="5" > <filter id="blurMultiple" ${fix_blur_clip}> <feGaussianBlur stdDeviation="${r(c.min * blur_base * g)}"/> </filter> <g filter="url(#blurMultiple)" > ${A} </g> </svg> `} function F() { return CA("") } function G(A = 20, g = 20, I = .1, C = .05, Q = .1, B = "white", o = 1, i = 0, E = 3, e = 360, t = !1) { let a = ` <mask id="donut"> <rect width="100%" height="100%" fill="black" /> <circle r="${r(c.min * E)}" cx="${r(c.max / 2)}" cy="${r(c.max / 2, 5)}" fill="white" /> </mask>`; for (a += '<g mask="url(#donut)">', t && (a += l("rect", { width: "100%", height: "100%", fill: "black", "fill-opacity": 1 })), a += '<g id="ray" >', ray = l("line", { x1: r(c.max / 2, 5), y1: r(c.max / 2 + c.min * i, 5), x2: r(c.max / 2, 5), y2: r(c.max / 2 + c.min * E, 5), "stroke-width": r(c.min * I, 5), "stroke-opacity": Q / 2, stroke: B }), a += ray, idx = 1; idx < g; idx++)x1 = r(c.max / 2 - c.min * I, 5), y1 = r(c.max / 2 + c.min * idx / g, 5), x2 = r(c.max / 2 + c.min * I, 5), y2 = r(c.max / 2 + c.min * idx / g, 5), ray = l("line", { x1: x1, y1: y1, x2: x2, y2: y2, "stroke-width": r(c.min * C, 5), "stroke-opacity": Q, stroke: B }), a += ray; for (a += "</g>", idx = 1; idx < A; idx++)a += `<use href="#ray" transform="rotate(${r(idx / A * e)}, ${r(.5 * c.max)}, ${r(.5 * c.max)})"/>`; return CA(a += "</g>", o) } [w.pal.v, palRgb] = $(palRand, u, w.cRep.v, o.positive_space_amt), (J = document.createElement("canvas")).id = "artwork", (gl = J.getContext("webgl", { antialias: !1, preserveDrawingBuffer: !0 })).getExtension("OES_standard_derivatives"); let QA = g => { var A = ` #define PI 3.1415926538 #ifdef GL_OES_standard_derivatives #extension GL_OES_standard_derivatives : enable #endif precision highp float; uniform vec2 uR; uniform float uT; uniform float uTCM; uniform float uFPS; uniform bool uColorize; uniform float uFadeA; uniform float uFadeB; uniform float uZoomA; uniform float uZoomB; uniform sampler2D texPal; uniform sampler2D texA; uniform sampler2D texB; uniform sampler2D texC; varying vec2 vTC; float uTC = mod(floor(uT * 60./uFPS), 6531.)/6531.+uTCM; float uTS = mod(floor(uT * 60./uFPS), 2000.)/2000.; float map(float val, float start1, float stop1, float start2, float stop2) { return ((val - start1) / (stop1 - start1)) * (stop2 - start2) + start2; } vec4 getSvg(vec2 uv, sampler2D tex) { vec4 tx = texture2D(tex, vec2(uv.x, uv.y)); return tx; } vec3 colorize(vec2 uv, vec4 c) { vec4 cOut = c; float cBrightness = (c.r + c.g + c.b) / 3.; float d = distance(uv, vec2(.0)); vec4 cMapped = texture2D(texPal, vec2(mod(cBrightness+uTC+${R.random_dec() + 1e-4}, 1.))); cOut = mix(cMapped, vec4(.0), (c.r-c.b)*1.5); float colorizeThreshold = 0.12; if (cBrightness < colorizeThreshold) { cOut = vec4(.1,.1,.1,1.); } return vec3(cOut.r, cOut.g, cOut.b); } float quadraticInOut(float t) { float p = 2.0 * t * t; return t < 0.5 ? p : -p + (4.0 * t) - 1.0; } vec2 zoomCos(vec2 uv, float amp, float phase_offset, float speed) { return uv * (amp*cos(speed*2.*PI+2.*PI*phase_offset)+1.); } mat2 rot(float a){ a *= 2.*PI; return mat2(cos(a), -sin(a), sin(a), cos(a)); }
[0 ,()=>{console.log("Artist 57. Spongenuity -- platform 0 ");function e(e,t,n){const r=window.innerWidth/t,a=window.innerHeight/n,i=Math.min(r,a);e.style.width=`${t*i}px`,e.style.height=`${n*i}px`}function t(e){if(null==(E=v.getContext("webgl",e))){if(null==(E=v.getContext("experimental-webgl",e))){return setError("Your browser or device does not seem to support WebGL."),!1}setError("Your browser or device only supports experimental WebGL.\n The simulation may not run as expected.")}return E.disable(E.CULL_FACE),E.disable(E.DEPTH_TEST),E.disable(E.BLEND),E.clearColor(1,1,1,1),!0}function n(){const e=E.canvas;1620===e.width&&2880===e.height||(e.width=1620,e.height=2880)}function r(e,t,n){Array.isArray(n)?e.uniform1fv(t,n):e.uniform1f(t,n)}function a(e,t,n){e.uniform2fv(t,n)}function i(e,t,n){e.uniform4fv(t,n)}function s(e,t,n,r){e.uniform1i(t,n),e.activeTexture(e["TEXTURE"+n]),e.bindTexture(e.TEXTURE_2D,r)}function u(e,t,n){e.uniform1i(t,+n)}function o({vertexSource:e,fragmentSource:t,injected:n},r){const a=e?e.replace(/#INJECT\(([^)]*)\)/gm,(e,t)=>n[t]||e):null,i=t?t.replace(/#INJECT\(([^)]*)\)/gm,(e,t)=>n[t]||e):null;let s=null;a&&i&&(s=new A(E,a,i)),r(s)}function l(e){Object.keys(_),_[e]=!1}function d(e){delete _[e],Object.keys(_)}function c(){try{return new ImageData(new Uint8ClampedArray([0,0,0,0]),1,1)}catch(e){const t=document.createElement("canvas").getContext("2d").createImageData(1,1);for(let e=0;e<t.data.length;e++){t.data[e]=0}return t}}function h(e,t,n){return.21*e+.72*t+.07*n}function f(e){const t=Math.min(1,G/Math.max(e.width,e.height)),n=Math.ceil(t*e.width),r=Math.ceil(t*e.height);O.width=n,O.height=r,V.drawImage(e,0,0,n,r);const a=V.getImageData(0,0,O.width,O.height),i=new Uint8ClampedArray(a.data);let s=0;for(let e=a.height-1;e>=0;e--){for(let t=0;t<a.width;t++){const n=i[4*(t+e*a.width)],r=i[4*(t+e*a.width)+1],u=i[4*(t+e*a.width)+2],o=h(n,r,u);a.data[s++]=n,a.data[s++]=r,a.data[s++]=u,a.data[s++]=o}}return a}function m(){return null===Y&&(Y=new X(z)),Y}function p(){if(!t({alpha:!1,antialias:!1,depth:!1,stencil:!1,preserveDrawingBuffer:!1})){return}E.clearColor(1,1,1,1),E.disable(E.CULL_FACE),E.disable(E.BLEND),E.disable(E.DEPTH_TEST),E.disable(E.STENCIL_TEST);let e=!0;M.push(()=>{e=!0});let r=!0;y.push(()=>{r=!0});let a=!1;U.push(()=>{a=!0});const i=new W;!function t(){a&&(i.drawToCanvas(),download(v),a=!1),e&&(n(!1),i.resize(v.width,v.height),e=!1),r&&(i.reset(),r=!1),i.update(),i.drawToCanvas(),requestAnimationFrame(t)}()}const T={enDe16:"\n float de16(vec2 v) {\n return dot(v, vec2(255.0 / 256.0, 1.0 / 256.0));\n }\n vec2 en16(float f) {\n f = 255.99 * clamp(f, 0.0, 1.0);\n return vec2(floor(f) / 255.0, fract(f));\n }\n ",samT:"\n vec2 de(vec4 encoded) {\n return vec2(de16(encoded.rg), de16(encoded.ba));\n }\n vec4 en(vec2 decoded) {\n return vec4(en16(decoded.x), en16(decoded.y));\n }\n float samT(sampler2D texture, vec2 position) {\n vec4 sTex = texture2D(texture, position);\n return de(sTex).y;\n }\n "},g={disVert:"\n uniform vec2 s;\n uniform float z;\n attribute vec2 co;\n varying vec2 vS;\n void main(void) {\n gl_Position = vec4(co * s * z, 0, 1);\n vS = 0.5 + 0.5 * co;\n }\n ",disColFrag:`\n precision mediump float;\n uniform sampler2D uR, uG, uB;\n varying vec2 vS; \n ${T.enDe16}\n ${T.samT}\n \n void main() {\n float red = samT(uR, vS);\n float green = samT(uG, vS);\n float blue = samT(uB, vS);\n \n float edge0 = 0.21; // Lower limit\n float edge1 = 0.26; // Upper limit \n\n if(#INJECT(uInvert) == 1.0) {\n gl_FragColor = vec4(1.0 - step(edge0, vec3(red, green, blue)), 1);\n } else {\n gl_FragColor = vec4(step(edge0, vec3(red, green, blue)), 1);\n }\n }\n \n `,upVert:"\n attribute vec2 co; // in {-1,+1}^2\n \n varying vec2 vS; // in [0,1]^2 \n void main(void) {\n gl_Position = vec4(co, 0, 1);\n vS = 0.5 + 0.5 * co;\n }\n ",resFrag:` \n \n precision mediump float;\n uniform vec2 uPat;\n \n varying vec2 vS; // in [0,1]^2\n ${T.enDe16}\n ${T.samT}\n void main() {\n \n float margin = 100.0; // 50px margin\n float width = 1620.0;\n float height = 2880.0;\n \n \n float RezX = width - (margin * 2.0);\n float RezY = height - (margin * 2.0);\n float offsetX = margin / width;\n float offsetY = margin / height;\n \n int numberOfDots = #INJECT(PATTERN_SPLIT);\n int uNumDots = (numberOfDots)*2;\n \n \n float aspectRatio = RezX / RezY;\n \n // Dot parameters\n \n float dotRadius = 0.0075; // Radius of dots\n \n // Column parameters\n const int numberOfColumns = 1;\n float columnSpacing = 1.0 / float(numberOfColumns + 1); // Spacing between columns\n \n float dotSpacing = (1.0 - offsetY * 2.0) / (float(uNumDots)-0.005);// Adjust for margin\n \n \n // Calculate vertical position in repeating pattern\n float modY = mod(vS.y * aspectRatio, dotSpacing);\n float isInsideDotVertically = step(modY, dotRadius) + step(dotSpacing - dotRadius, modY);\n \n float starter = 0.0; // Initialize starter as not inside any dot\n\n float adjustedY = vS.y;\n if(adjustedY + dotSpacing > 1.0) { // Adjust last dot\n adjustedY -= dotSpacing * 2.; // Example adjustment, tweak as necessary\n }\n if(adjustedY < dotSpacing) { // Adjust first dot\n adjustedY += dotSpacing * 0.1; // Example adjustment, tweak as necessary\n }\n \n // Loop through columns to check if inside a dot\n for(int i = 1; i <= numberOfColumns; ++i) {\n float columnX = float(i) * columnSpacing; // X position of current column\n float distanceFromColumnX = abs(vS.x - columnX);\n float isInsideDotHorizontally = step(distanceFromColumnX, dotRadius);\n starter += isInsideDotVertically * isInsideDotHorizontally; // Accumulate if inside a dot\n }\n \n // Ensure starter is either 0.0 or 1.0\n starter = step(1.0, starter);\n \n const float A = 1.0;\n float B = dot(uPat, vec2(starter, 0));\n vec2 values = vec2(A, B);\n \n gl_FragColor = en(values);\n }\n \n `,imageMapFrag:`\n precision mediump float;\n \n uniform sampler2D uPI;\n uniform vec2 uTex;\n \n varying vec2 vS; // in [0,1]^2\n ${T.enDe16}\n ${T.samT}\n vec2 kernel(vec2 decodedCenter) {\n return\n de(texture2D(uPI, vS + vec2(-1, -1) * uTex)) * 0.05 +\n de(texture2D(uPI, vS + vec2(+0, -1) * uTex)) * 0.20 +\n de(texture2D(uPI, vS + vec2(+1, -1) * uTex)) * 0.05 +\n \n de(texture2D(uPI, vS + vec2(-1, +0) * uTex)) * 0.20 -\n decodedCenter +\n de(texture2D(uPI, vS + vec2(+1, +0) * uTex)) * 0.20 +\n \n de(texture2D(uPI, vS + vec2(-1, +1) * uTex)) * 0.05 +\n de(texture2D(uPI, vS + vec2(+0, +1) * uTex)) * 0.20 +\n de(texture2D(uPI, vS + vec2(+1, +1) * uTex)) * 0.05;\n }\n \n vec4 computeNewValue(const float feedA, const float killB, const float diffA, const float diffB) {\n vec2 values = de(texture2D(uPI, vS));\n vec2 laplace = kernel(values);\n \n \n float A = values.x;\n float B = values.y;\n float reaction = A * B * B;\n const float dt = 1.0;\n values = vec2(\n values.x + dt * (diffA * laplace.x - reaction + feedA * (1.0 - A)),\n values.y + dt * (diffB * laplace.y + reaction - (killB + feedA) * B)\n );\n \n return en(values);\n }\n uniform sampler2D uImageMapTexture;\n uniform vec4 uSampledChannel;\n uniform float uDiffuseScaling;\n \n void main() {\n float mapValue = dot(uSampledChannel, texture2D(uImageMapTexture, vS));\n mapValue = sqrt(clamp(mapValue - 0.1, 0.0, 1.0));\n \n float feedA = mix(0.02220, 0.04470, mapValue);\n float killB = mix(0.06516, 0.05789, mapValue);\n float diffA = 0.210;\n float diffB = 0.105;\n \n gl_FragColor = computeNewValue(feedA, killB, uDiffuseScaling * diffA, uDiffuseScaling * diffB);\n }`,updateMapFrag:`\n precision mediump float;\n \n uniform sampler2D uPI;\n uniform vec2 uTex;\n \n varying vec2 vS; // in [0,1]^2\n ${T.enDe16}\n ${T.samT}\n vec2 kernel(vec2 decodedCenter) {\n return\n de(texture2D(uPI, vS + vec2(-1, -1) * uTex)) * 0.05 +\n de(texture2D(uPI, vS + vec2(+0, -1) * uTex)) * 0.20 +\n de(texture2D(uPI, vS + vec2(+1, -1) * uTex)) * 0.05 +\n \n de(texture2D(uPI, vS + vec2(-1, +0) * uTex)) * 0.20 -\n decodedCenter +\n de(texture2D(uPI, vS + vec2(+1, +0) * uTex)) * 0.20 +\n \n de(texture2D(uPI, vS + vec2(-1, +1) * uTex)) * 0.05 +\n de(texture2D(uPI, vS + vec2(+0, +1) * uTex)) * 0.20 +\n de(texture2D(uPI, vS + vec2(+1, +1) * uTex)) * 0.05;\n }\n \n vec4 computeNewValue(const float feedA, const float killB, const float diffA, const float diffB) {\n vec2 values = de(texture2D(uPI, vS));\n vec2 laplace = kernel(values);\n \n \n float A = values.x;\n float B = values.y;\n float reaction = A * B * B;\n const float dt = 1.0;\n values = vec2(\n values.x + dt * (diffA * laplace.x - reaction + feedA * (1.0 - A)),\n values.y + dt * (diffB * laplace.y + reaction - (killB + feedA) * B)\n );\n \n return en(values);\n }\n uniform vec2 uRates;\n \n void main() {\n float feedA = mix(#INJECT(FEED_MIN), #INJECT(FEED_MAX), vS.y);\n float killB = mix(#INJECT(KILL_MIN), #INJECT(KILL_MAX), vS.x);\n \n gl_FragColor = computeNewValue(feedA, killB, uRates.x, uRates.y);\n }`};let v=document.createElement("canvas");document.documentElement.appendChild(v),e(v,1620,2880);let E=null;class x{constructor(e){this._gl=e}gl(){return this._gl}}const S={35664:{str:"FLOAT_VEC2",binder:a},35666:{str:"FLOAT_VEC4",binder:i},35670:{str:"BOOL",binder:u},35678:{str:"SAMPLER_2D",binder:s},5126:{str:"FLOAT",binder:r}};class A extends x{constructor(e,t,n){function r(t,n){const r=e.createShader(t);return e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(e.deleteShader(r),null)}super(e),this.id=null,this.uCount=0,this.aCount=0;const a=r(e.VERTEX_SHADER,t),i=r(e.FRAGMENT_SHADER,n),s=e.createProgram();e.attachShader(s,a),e.attachShader(s,i),e.linkProgram(s),e.getProgramParameter(s,e.LINK_STATUS)?(this.id=s,this.introspection()):e.deleteProgram(s)}freeGLResources(){super.gl().deleteProgram(this.id),this.id=null}use(){super.gl().useProgram(this.id)}bindUniforms(){const e=super.gl();let t=0;Object.keys(this.u).forEach(n=>{const r=this.u[n];null!==r.value&&(35678===r.type||35680===r.type?(S[r.type].binder(e,r.loc,t,r.value),t++):S[r.type].binder(e,r.loc,r.value))})}bindAttributes(){Object.keys(this.a).forEach(e=>{const t=this.a[e];null!==t.VBO&&t.VBO.bind(t.loc)})}bindUniformsAndAttributes(){this.bindUniforms(),this.bindAttributes()}introspection(){const e=super.gl();this.uCount=e.getProgramParameter(this.id,e.ACTIVE_UNIFORMS),this.u={};for(let t=0;t<this.uCount;t++){const n=e.getActiveUniform(this.id,t),r=n.name;this.u[r]={loc:e.getUniformLocation(this.id,r),size:n.size,type:n.type,value:null}}this.aCount=e.getProgramParameter(this.id,e.ACTIVE_ATTRIBUTES),this.a={};for(let t=0;t<this.aCount;t++){const n=e.getActiveAttrib(this.id,t),r=n.name;this.a[r]={VBO:null,loc:e.getAttribLocation(this.id,r),size:n.size,type:n.type}}}}class I extends x{static createQuad(e,t,n,r,a){return new I(e,new Float32Array([t,n,r,n,t,a,r,a]),2,e.FLOAT,!0)}constructor(e,t,n,r,a=!0){super(e),this.id=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.id),e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),this.size=n,this.type=r,this.normalize=!1,this.stride=0,this.offset=0}freeGLResources(){this.gl().deleteBuffer(this.id),this.id=null}bind(e){const t=super.gl();t.enableVertexAttribArray(e),t.bindBuffer(t.ARRAY_BUFFER,this.id),t.vertexAttribPointer(e,this.size,this.type,this.normalize,this.stride,this.offset)}setData(e){const t=super.gl();t.bindBuffer(t.ARRAY_BUFFER,this.id),this.usage===Usage.STATIC?t.bufferData(t.ARRAY_BUFFER,e,t.STATIC_DRAW):t.bufferData(t.ARRAY_BUFFER,e,t.DYNAMIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null)}}const _={},b=new URLSearchParams(window.location.search),D=R.random_choice([7,9,11]),F=R.random_choice([0,1]),w=R.random_choice([0,1]),C={randomPatternScale:4,zoom:b.has("z")?parseFloat(b.get("z")):1,interface:"image",initState:"starter",maxResolution:1024,invert:F,speed:60,patternSplit:D,chaos:w};document.body.style.backgroundColor=1===C.invert?"white":"black";const P=[],U=[],M=[],y=[];createGenerativeImage=(()=>{function e(e,t){for(let n=e.length-1;n>0;n--){let r=Math.floor(t()*(n+1));[e[n],e[r]]=[e[r],e[n]]}return e}function t(e,t,n,r,i,s){let u=a.createLinearGradient(e,t,e,t+r);u.addColorStop(0,i),u.addColorStop(1,s),a.fillStyle=u,a.fillRect(e,t,n,r)}let n=C.patternSplit;const r=document.createElement("canvas"),a=r.getContext("2d");let i;r.width=1080,r.height=1920;let s=(i=1===C.invert?R.random_choice([["#673ab7","#ce4257","#ff5400","#ffbd00","#ffffff"],["#182923","#cfb991","#ffffff","#4488ac"],["#e91e63","#ff8198","#4bd3e5","#ffd919","#ff4f19","#ffffff"],["#b42c1a","#0026e6","#00b0e6","#0f9d58","#4285f4","#ffffff"],["#b42c1a","#0026e6","#00b0e6","#ffffff"]]):R.random_choice([["#cfb991","#1a6aff","#0f9d6d","#b22f1e","#459737","#ffffff"],["#16e19c","#007e67","#b42c1a","#0026e6","#00b0e6","#ffffff"],["#00fbcd","#1a6aff","#0026e6","#16e19c","#007e67","#ffffff"],["#c6ff66","#61ffa6","#ff5400","#00abff","#0042ff","#000000"],["#333428","#cfb991","#ffffff","#4488ac"]])).map(function(e){const t=e.slice(1);return"#"+((1<<24)+(255-parseInt(t.substring(0,2),16)<<16)+(255-parseInt(t.substring(2,4),16)<<8)+(255-parseInt(t.substring(4,6),16))).toString(16).slice(1)});e(s,R.random_dec);let u=980/n,o=910;for(let n=50;n<1030;n+=u){let r=s.slice();1===C.chaos&&e(r,R.random_dec);for(let e=50;e<1870;e+=o){r.unshift(r.pop()),t(n,e,u,o,r[1],r[0])}n<540-u?o/=2:o*=2}return r});const L=createGenerativeImage(),B=new Image;B.onload=(()=>{for(const e of P){e(B)}}),B.src=L.toDataURL();const N=c();class X{constructor(e){this._width=-1,this._height=-1,this.id=E.createTexture(),this.uploadToGPU(null!=e?e:N)}loadFromUrl(e){l(e=`${e}?v=${version}`);const t=new Image;t.addEventListener("load",()=>{d(e),this.uploadToGPU(t)}),t.src=e}uploadToGPU(e){this._width=e.width,this._height=e.height,E.bindTexture(E.TEXTURE_2D,this.id),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MIN_FILTER,E.LINEAR),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texImage2D(E.TEXTURE_2D,0,E.RGBA,E.RGBA,E.UNSIGNED_BYTE,e),E.bindTexture(E.TEXTURE_2D,null)}get width(){return this._width}get height(){return this._height}}const G=C.maxResolution,O=document.createElement("canvas"),V=O.getContext("2d");let z,Y=null;P.push(e=>{z=f(e),null!==Y&&Y.uploadToGPU(z)});class k{constructor(){this.texture=E.createTexture(),this.framebuffer=E.createFramebuffer(),this._width=-1,this._height=-1}reserveSpace(e,t){if(e=Math.ceil(e),t=Math.ceil(t),this.width!==e||this.height!==t){E.bindTexture(E.TEXTURE_2D,this.texture);const n=E.RGBA;E.texImage2D(E.TEXTURE_2D,0,n,e,t,0,n,E.UNSIGNED_BYTE,null),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MIN_FILTER,E.LINEAR),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE),E.bindFramebuffer(E.FRAMEBUFFER,this.framebuffer),E.framebufferTexture2D(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.TEXTURE_2D,this.texture,0),E.bindFramebuffer(E.FRAMEBUFFER,null),E.bindTexture(E.TEXTURE_2D,null),this._width=e,this._height=t}}get width(){return this._width}get height(){return this._height}}class j{constructor(){this.previousTexture=new k,this.currentTexture=new k}get previous(){return this.previousTexture.texture}get current(){return this.currentTexture.texture}get currentFramebuffer(){return this.currentTexture.framebuffer}get width(){return this.previousTexture.width}get height(){return this.previousTexture.height}reserveSpace(e,t){this.previousTexture.reserveSpace(e,t),this.currentTexture.reserveSpace(e,t)}swap(){const e=this.currentTexture;this.currentTexture=this.previousTexture,this.previousTexture=e}}class W{constructor(){this.lastUpdateTimestamp=0,this.targetWidth=1,this.targetHeight=1,this.squareVBO=I.createQuad(E,-1,-1,1,1),this.internalTextures=[new j,new j,new j],this.needToReset=!0,this.lastIterationUpdate=performance.now()-5e3,this.iteration=0,this.asyncLoadShader("display-tricolor",g.disVert,g.disColFrag,e=>{this.displayTricolorShader=e},{uInvert:W.uInvert.toFixed(1)}),this.asyncLoadShader("update-map",g.upVert,g.updateMapFrag,e=>{this.updateMapShader=e},{FEED_MIN:W.FEED_MIN.toFixed(5),FEED_MAX:W.FEED_MAX.toFixed(5),KILL_MIN:W.KILL_MIN.toFixed(5),KILL_MAX:W.KILL_MAX.toFixed(5)}),this.asyncLoadShader("update-image",g.upVert,g.imageMapFrag,e=>{this.updateImageMapShader=e}),this.asyncLoadShader("reset",g.upVert,g.resFrag,e=>{this.resetShader=e},{PATTERN_SPLIT:`int(${C.patternSplit})`})}resize(e,t){this.targetWidth=e,this.targetHeight=t}reset(){this.needToReset=!0}drawToCanvas(){let e;E.viewport(0,0,this.targetWidth,this.targetHeight),this.displayTricolorShader&&(this.displayTricolorShader.u.uR.value=this.internalTextures[0].current,this.displayTricolorShader.u.uG.value=this.internalTextures[1].current,this.displayTricolorShader.u.uB.value=this.internalTextures[2].current,e=this.displayTricolorShader),e&&(e.u.s.value=[this.internalTextures[0].width/this.internalTextures[0].height/(this.targetWidth/this.targetHeight),1],e.u.z.value=C.zoom,E.bindFramebuffer(E.FRAMEBUFFER,null),e.use(),e.bindUniformsAndAttributes(),E.drawArrays(E.TRIANGLE_STRIP,0,4))}update(){if(this.adjustInternalTextureSize()&&(this.needToReset=!0),E.viewport(0,0,this.internalTextures[0].width,this.internalTextures[0].height),this.needToReset){if(this.iteration=0,!this.clearInternalTextures()){return}this.needToReset=!1}const e=this.computeNbIterationsForThisFrame();if(!(e<=0)){if("image"===C.interface){if(this.updateImageMapShader){const t=m();this.updateImageMapShader.u.uImageMapTexture.value=t.id,this.updateImageMapShader.u.uDiffuseScaling.value=C.randomPatternScale,this.updateImageMapShader.u.uTex.value=[1/this.internalTextures[0].width,1/this.internalTextures[0].height],this.updateImageMapShader.use(),this.updateImageMapShader.bindAttributes();const n=Math.ceil(e/3);this.updateImageMapShader.u.uSampledChannel.value=[1,0,0,0],this.updateInternal(this.updateImageMapShader,n,this.internalTextures[0]),this.updateImageMapShader.u.uSampledChannel.value=[0,1,0,0],this.updateInternal(this.updateImageMapShader,n,this.internalTextures[1]),this.updateImageMapShader.u.uSampledChannel.value=[0,0,1,0],this.updateInternal(this.updateImageMapShader,n,this.internalTextures[2])}}else{let t;t&&(t.use(),t.bindAttributes(),t.u.uTex.value=[1/this.internalTextures[0].width,1/this.internalTextures[0].height],this.updateInternal(t,e,this.internalTextures[0]))}}}updateInternal(e,t,n){for(let r=t;r>0;r--){n.swap(),E.bindFramebuffer(E.FRAMEBUFFER,n.currentFramebuffer),e.u.uPI.value=n.previous,e.bindUniforms(),E.drawArrays(E.TRIANGLE_STRIP,0,4)}this.iteration=this._iteration+t}clearInternalTextures(){if(this.resetShader){this.resetShader.u.uPat.value=["starter"===C.initState,0],this.resetShader.use(),this.resetShader.bindUniformsAndAttributes();for(const e of this.internalTextures){E.bindFramebuffer(E.FRAMEBUFFER,e.currentFramebuffer),E.drawArrays(E.TRIANGLE_STRIP,0,4)}return!0}return!1}adjustInternalTextureSize(){let e=this.targetWidth,t=this.targetHeight;if("image"===C.interface){const n=this.targetWidth/this.targetHeight,r=m().width/m().height;n>r?e=Math.ceil(r/n*this.targetWidth):n<r&&(t=Math.ceil(n/r*this.targetHeight))}if(this.internalTextures[0].width!==e||this.internalTextures[0].height!==t){for(const n of this.internalTextures){n.reserveSpace(e,t)}return!0}return!1}set iteration(e){this._iteration=e;const t=performance.now();t-this.lastIterationUpdate>200&&(this.lastIterationUpdate=t)}computeNbIterationsForThisFrame(){const e=C.speed,t=performance.now(),n=1e3/(.1+t-this.lastUpdateTimestamp);return this.lastUpdateTimestamp=t,n>60?Math.ceil(60/n*e):n<10?Math.ceil(n/10*e):e}asyncLoadShader(e,t,n,r,a={}){const i=`shader-${e}`;l(i),o({fragmentSource:n,vertexSource:t,injected:a},e=>{d(i),null!==e&&(e.a.co.VBO=this.squareVBO,r(e))})}}W.FEED_MIN=.01,W.FEED_MAX=.1,W.KILL_MIN=.045,W.KILL_MAX=.07,W.uInvert=C.invert,p(); }],
[1 ,()=>{console.log("Artist 49. Shunsuke Takawo -- platform 1 ");let debugMode = false; let exportMode = false; const MAX_HEIGHT = 3840; const MAX_WIDTH = 2160; const EXPORT_HEIGHT = 3840 * 2; const EXPORT_WIDTH = 2160 * 2; let hash; let hashPairs = []; let decPairs = []; let canvasScale; let params, features; let g, gg; let shaderProgram; let graphics, centerPosition, centerAngle, cam; let palette; let saveBoolean = false; let vn = 0; let cameraAngle; let cameraDistancePercent; /* * setup p5.js */ setup = () => { params = setupParams(); setupCanvas(); noLoop(); if (debugMode) { let features = structuredClone(params); print("================================================"); print("features"); print(features); print("================================================"); return features; } } function setupCanvas() { const canvasSize = calculatePortraitAspectRatio(debugMode); canvasScale = canvasSize.scale; createCanvas(canvasSize.width, canvasSize.height, WEBGL); pixelDensity(1); colorMode(HSB, 360, 100, 100, 100); cam = createCamera(); noSmooth(); } function keyPressed() { if (key == "s" || key == "S") { debugMode = true; exportMode = true; setup(); redraw(); } } /* * draw p5.js */ draw = () => { orbitControl(); randomSeed(0); let d = max(width, height); g = createGraphics(d, d, P2D); g.colorMode(HSB, 360, 100, 100, 100); g.angleMode(DEGREES); // g.noStroke(); let cx = cos(cameraAngle) * cameraDistancePercent * 2500 / 2 * canvasScale; let cy = sin(cameraAngle) * cameraDistancePercent * 2500 / 2 * canvasScale; let v = R.random_dec(); let distance = params.Distance; let perspective; switch (distance) { case "Near": perspective = PI / 2.2; break; case "Middle": perspective = PI / 1.7; break; case "Far": perspective = PI / 1.4; break; } cam.setPosition(cx, cy, 0); cam.lookAt(cx, cy, -15000 * canvasScale); cam.perspective( perspective, width / height, 0.001, 15000 * canvasScale ); g.blendMode(BLEND); g.background(0); let gw = g.width * sqrt(2); let patternSizeMin; let patternSizeMax; switch (params.PatternSize) { case "Small": patternSizeMin = gw / 150; patternSizeMax = gw / 100; break; case "Medium": patternSizeMin = gw / 100; patternSizeMax = gw / 75; break; case "Large": patternSizeMin = gw / 75; patternSizeMax = gw / 50; break; case "XLarge": patternSizeMin = gw / 50; patternSizeMax = gw / 25; break; } let patternSize = R.random_dec() * (patternSizeMax - patternSizeMin) + patternSizeMin; for (let i = 0; i < (params.MultipleDraw ? 1 : 2); i++) { g.push(); g.translate(g.width / 2, g.height / 2); if (params.RotatePattern) { g.rotate(45); } g.translate(-gw / 2, -gw / 2); separateGrid(0, 0, gw, patternSize, g) g.pop(); } directionalLight(color(255), 1, 0, 0); directionalLight(color(255), -1, 0, 0); directionalLight(color(255), 0, 0, -1); ambientLight(color(50)); shearX(0); shearY(0); orbitControl(); push(); // scale(20); rotateX(PI / 2); // rotateY(0 + (PI / 3) * v + (vn * PI) / 3); rotateY(params.ObjectAngle); texture(g); noStroke(); let polygonCorners_num; switch (params.PolygonCorners) { case "Triangle": polygonCorners_num = 3; break; case "Square": polygonCorners_num = 4; break; case "Pentagon": polygonCorners_num = 5; break; case "Hexagon": polygonCorners_num = 6; break; case "Heptagon": polygonCorners_num = 7; break; case "Octagon": polygonCorners_num = 8; break; } cylinder(2500 / 2 * canvasScale, 5000 * canvasScale, polygonCorners_num + 1, 1, false, false); pop(); push(); translate(0, 0, -2501 * canvasScale); fill(0, 255); texture(g); rectMode(CENTER); square(0, 0, (2500 / sqrt(2)) * sqrt(3) * canvasScale); pop(); push(); translate(0, 0, 2501 * canvasScale); rotateZ(TWO_PI / 3 + (TWO_PI / 3) * v + (vn * TWO_PI) / 3); fill(0, 255); texture(g); rectMode(CENTER); pop(); if (exportMode) { save(hash + ".png"); } g.remove(); } function setupParams() { hash = tokenData.hash; if (debugMode) { // hash = "0x622fb6114b74ada47abf7a4721f697623f8c33c89adbe098367416c808cd8447"; print("================================================"); print("debugMode", debugMode); print("hash", hash); print("================================================"); } // noiseSeed(R.random_dec() * 1000000); for (let j = 0; j < 32; j++) { hashPairs.push(hash.slice(2 + j * 2, 4 + j * 2)); } decPairs = hashPairs.map((x) => { return parseInt(x, 16); }); let params = getParams(decPairs); if (!debugMode) { print(params); print("================================================"); print("Colors : ", params.Colors); print("PolygonCorners : ", params.PolygonCorners); print("PatternSize : ", params.PatternSize); print("Distance : ", params.Distance); print("MultipleDraw : ", params.MultipleDraw); print("RotatePattern : ", params.RotatePattern); print("ObjectAngle : ", params.ObjectAngle); print("================================================"); } return params; } function getParams(decPairs) { const colorOjbect = colorScheme[decPairs[1] % colorScheme.length]; palette = colorOjbect.colors; let polygonCornersNum = decPairs[2] % 6 + 3; let polygonCorners; let multipleDraw = decPairs[3] % 6 > 4; let distanceNum = decPairs[5] % 7; let distance; let objectAngle = decPairs[10] % 10 > 5 ? 0 : (decPairs[11] % 360); switch (distanceNum) { case 0: distance = "Near"; break; case 1: case 2: case 3: distance = "Middle"; break; case 4: case 5: case 6: distance = "Far"; break; } switch (polygonCornersNum) { case 3: polygonCorners = "Triangle"; break; case 4: polygonCorners = "Square"; break; case 5: polygonCorners = "Pentagon"; break; case 6: polygonCorners = "Hexagon"; break; case 7: polygonCorners = "Heptagon"; break; case 8: polygonCorners = "Octagon"; break; } cameraAngle = radians(decPairs[7] % 360); cameraDistancePercent = decPairs[8] % 8 * 0.1; if (polygonCorners == "Triangle") { cameraDistancePercent = map(cameraDistancePercent, 0, 1, 0.1, 0.6); } let patternSizeNum = decPairs[4] % 4; let patternSize; switch (patternSizeNum) { case 0: patternSize = "Small"; break; case 1: patternSize = "Medium"; break; case 2: patternSize = "Large"; break; case 3: patternSize = "XLarge"; break; } let rotatePatternNum = decPairs[6] % 10; let rotatePattern = rotatePatternNum < 5; return { Colors: colorOjbect.name, //String PolygonCorners: polygonCorners,//String PatternSize: patternSize,//String Distance: distance,//String MultipleDraw: multipleDraw,//Boolean RotatePattern: rotatePattern,//Boolean ObjectAngle: objectAngle, //Number }; } /** * color palette for drawing */ const colorScheme = [ { name: "Golden Thread Butterfly", colors: ["#f19b4e", "#7f6640", "#dc5845", "#e4d6c8", "#929e79", "#472c2a"], }, { name: "Navy Lion Peony", colors: ["#83834f", "#e0c786", "#30363d", "#db2f38", "#66989c", "#e9ded1"], }, { name: "Charcoal Wind", colors: ["#151015", "#511a28", "#8e563a", "#fcfbfa", "#bf9969", "#718282"], }, { name: "Wisteria Spring", colors: ["#e6bc8a", "#da4742", "#202125", "#909062", "#dba380", "#dcc6b9"], }, { name: "Fragrant Ground", colors: ["#73924d", "#eb9f48", "#b19564", "#aabcb2", "#f0e3d7", "#6b4b2b"], }, { name: "Lagenaria Siceraria", colors: ["#f0ebe1", "#d8ccb3", "#cd2a41", "#8bc08f", "#f69fac", "#c4714c"], }, { name: "Tang grass", colors: ["#f9f5ec", "#d8ae6a", "#d4824b", "#588c92", "#89bfb3", "#b55847"], }, { name: "Pearl and Dragon", colors: ["#dad7c3", "#c7895a", "#343530", "#899c63", "#60827d", "#d6b58a"], }, { name: "Red Dragon", colors: ["#e5e9e9", "#da2034", "#8db4bb", "#4f6a31", "#6ab26d", "#e4bc89"], }, { name: "Phoenix Peony", colors: ["#3c3e46", "#ddded7", "#c07552", "#5b6984", "#809c73", "#c3ae98"], }, { name: "Kara Ori", colors: ["#4d4638", "#f77843", "#fbc836", "#d8b85a", "#6c6e47", "#b0e3ee"], }, { name: "Yu-Zen Dyeing", colors: ["#f5da30", "#338ab6", "#8a8740", "#73563f", "#332321", "#e0dfdf"], }, { name: "Bird and Flower", colors: ["#abb163", "#e9e1cb", "#9b7c4a", "#74a7a0", "#e46641", "#5a5925"], }, { name: "Japanese Ink", colors: ["#000000", "#aaaaaa", "#7f7f7f", "#c9c9c9", "#ffffff", "#7f6640"], }, ]; function calculatePortraitAspectRatio(debugMode) { let scale; if (debugMode) { // debugModeがtrueの場合は、MAX_WIDTHとMAX_HEIGHTを使用してキャンバスサイズを設定 scale = 1; // debugModeではスケールは1とする return { width: MAX_WIDTH, height: MAX_HEIGHT, scale: scale }; } else { // アスペクト比9:16の基準値 const aspectRatioWidth = 9; const aspectRatioHeight = 16; // 画面の幅と高さを取得 let screenWidth = window.innerWidth; let screenHeight = window.innerHeight; // 縦長のアスペクト比に基づいて、画面サイズを調整 if (screenWidth / screenHeight > aspectRatioWidth / aspectRatioHeight) { // 幅が比率に対して大きすぎる場合、高さに基づいて幅を調整 screenWidth = screenHeight * (aspectRatioWidth / aspectRatioHeight); } else { // 高さが比率に対して大きすぎる場合、幅に基づいて高さを調整 screenHeight = screenWidth * (aspectRatioHeight / aspectRatioWidth); } // スケールを計算(現在の画面サイズに対するMAX_WIDTHとMAX_HEIGHTの比率) scale = Math.min(screenWidth / MAX_WIDTH, screenHeight / MAX_HEIGHT); // 計算された幅と高さ、およびスケールをオブジェクトとして返す return { width: screenWidth, height: screenHeight, scale: scale }; } } class Easing { static easeInSine(x) { return 1 - Math.cos((x * Math.PI) / 2); } static easeOutSine(x) { return Math.sin((x * Math.PI) / 2); } static easeInOutSine(x) { return -(Math.cos(Math.PI * x) - 1) / 2; } static easeInQuad(x) { return x * x; } static easeOutQuad(x) { return 1 - (1 - x) * (1 - x); } static easeInOutQuad(x) { return x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2; } static easeInCubic(x) { return x * x * x; } static easeOutCubic(x) { return 1 - Math.pow(1 - x, 3); } static easeInOutCubic(x) { return x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2; } static easeInQuart(x) { return x * x * x * x; } static easeOutQuart(x) { return 1 - Math.pow(1 - x, 4); } static easeInOutQuart(x) { return x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2; } static easeInQuint(x) { return x * x * x * x * x; } static easeOutQuint(x) { return 1 - Math.pow(1 - x, 5); } static easeInOutQuint(x) { return x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2; } static easeInExpo(x) { return x === 0 ? 0 : Math.pow(2, 10 * x - 10); } static easeOutExpo(x) { return x === 1 ? 1 : 1 - Math.pow(2, -10 * x); } static easeInOutExpo(x) { return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2; } static easeInCirc(x) { return 1 - Math.sqrt(1 - Math.pow(x, 2)); } static easeOutCirc(x) { return Math.sqrt(1 - Math.pow(x - 1, 2)); } static easeInOutCirc(x) { return x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2; } static easeInBack(x) { const c1 = 1.70158; const c3 = c1 + 1; return c3 * x * x * x - c1 * x * x; } static easeOutBack(x) { const c1 = 1.70158; const c3 = c1 + 1; return 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2); } static easeInOutBack(x) { const c1 = 1.70158; const c2 = c1 * 1.525; return x < 0.5 ? (Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2)) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2; } static easeInElastic(x) { const c4 = (2 * Math.PI) / 3; return x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4); } static easeOutElastic(x) { const c4 = (2 * Math.PI) / 3; return x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1; } static easeInOutElastic(x) { const c5 = (2 * Math.PI) / 4.5; return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : (Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5)) / 2 + 1; } static easeInBounce(x) { return 1 - Easing.easeOutBounce(1 - x); } static easeOutBounce(x) { const n1 = 7.5625; const d1 = 2.75; if (x < 1 / d1) { return n1 * x * x; } else if (x < 2 / d1) { return n1 * (x -= 1.5 / d1) * x + 0.75; } else if (x < 2.5 / d1) { return n1 * (x -= 2.25 / d1) * x + 0.9375; } else { return n1 * (x -= 2.625 / d1) * x + 0.984375; } } static easeInOutBounce(x) { return x < 0.5 ? (1 - Easing.easeOutBounce(1 - 2 * x)) / 2 : (1 + Easing.easeOutBounce(2 * x - 1)) / 2; } } function separateGrid(x, y, d, min_d, target) { let sepNum = int(random(3, 7)); let w = d / sepNum; for (let i = x; i < x + d - 1; i += w) { for (let j = y; j < y + d - 1; j += w) { if (random(100) < 98 && w > min_d) { separateGrid(i, j, w, min_d, target); } else { target.noStroke(); let distance = dist( i + w / 2, j + w / 2, target.width / 2, target.height / 2 ); let v = i + w / 2 > width / 2 ? distance / (sqrt(2) * d) : 1 - distance / (sqrt(2) * d); let t = (v / 3) % 2; let a = constrain(Easing.easeOutSine(t), 0, 1); let b = constrain(Easing.easeOutSine(t), 0, 1); let n = int( noise( (i / target.width) * 2, (w / target.height) * 2, frameCount / 400 ) * 9 ); let z = constrain(Easing.easeOutQuint(abs(t - 1)), 0, 1); let t2 = t; t = pow( Easing.easeOutQuint( noise(x / width, y / height) > 0.5 ? abs(t - 1) : pow(abs(t - 1), 1) ), random(-1, 1) ); target.push(); target.translate(i + w / 2, j + w / 2); target.rectMode(CENTER); target.fill(0); target.rect(0, 0, w * z, w * z); target.drawingContext.clip(); target.fill(random(palette)); target.rotate((n * TWO_PI) / 4); // target.scale(1-t); switch (n) { case 0: target.translate(-w / 2, -w / 2); target.translate(w * t * 3, 0); // target.scale(t); // target.triangle(0, 0, w, 0, 0, w); target.circle(0, 0, w * 2); // * 2, w * 2, 0, PI / 2, PIE); target.circle(-w * 3, 0, w * 2); // 0, w * 2, w * 2, 0, PI / 2, PIE); break; case 1: target.translate(-w / 2, -w / 2); target.translate(w * t * 3, 0); target.circle(w / 2, w / 2, w * (1 - t)); target.circle(-w * 3 + w / 2, w / 2, w * t); break; case 2: target.translate(-w / 2, -w / 2); target.translate(w * t * 3, 0); target.rectMode(CENTER); target.triangle(-w, 0, 0, w, w, 0); target.translate(-w * 2, 0); target.triangle(-w, 0, 0, w, w, 0); break; case 3: target.translate(-w / 2, -w / 2); target.translate(w * t * 3, 0); target.rectMode(CENTER); target.square(w / 2, w / 2, w * (1 - t)); target.square(-w * 3 + w / 2, w / 2, w * t); break; case 4: target.circle(0, 0, w * t * sqrt(2)); break; case 5: target.circle(-w / 2, 0, w * 2 * t); target.circle(+w / 2, 0, w * 2 * (1 - t)); break; case 6: target.push(); target.translate(-w / 2, -w / 2); target.triangle(0, 0, w * t, 0, 0, w * t); target.pop(); target.push(); target.rotate(PI); target.translate(-w / 2, -w / 2); target.triangle(0, 0, w * (1 - t), 0, 0, w * (1 - t)); target.pop(); break; case 7: target.push(); target.translate(-w / 2, -w / 2); target.rectMode(CORNER); target.rect(0, 0, w * a, w * b); target.pop(); break; case 8: target.push(); target.translate(-w / 2, -w / 2); target.arc(0, 0, w * t * 2, w * t * 2, 0, PI / 2); target.pop(); target.push(); target.rotate(PI); target.translate(-w / 2, -w / 2); target.arc(0, 0, w * t * 2, w * t * 2, 0, PI / 2); target.pop(); break; } target.pop(); } } } } }],
[1 ,()=>{console.log("Artist 56. Maya Man -- platform 1 "); const e=["Bergamot","Bitter Orange","Blood Orange","Calamansi","Candied Lemon","Chen Pi","Chinotto","Citron","Citrus Water","Citruses","Clementine","Finger Lime","Grapefruit","Grapefruit Leaf","Grapefruit Peel","Green Tangerine","Hassaku","Hatkora Lemon","Kaffir Lime","Kumquat","Lemon","Lemon Balm","Lemon Tree","Lemon Verbena","Lemon Zest","Lemongrass","Lime","Limetta","Litsea Cubeba","Mandarin Orange","Mandora","Orange","Palestinian Sweet Lime","Petitgrain","Pokan","Pomelo","Shiikuwasha","Tangelo","Tangerine","Tangerine Zest","Yuzu","Acai Berry","Acerola","Acorn","Almond","Apple","Apple Juice","Apple Pulp","Apple Sherbet","Apricot","Arctic Bramble","Argan","Artichoke","Banana","Barberry","Bearberry","Beetroot","Black Cherry","Black Currant","Black Sapote","Black Walnut","Blackberry","Blackthorn","Blueberry","Boysenberry","Brazil Nut","Breadnut","Buriti","Burning Cherry","Candlenut","Cantaloupe","Star Fruit","Carrot","Cashew","Cassowary Fruit","Cauliflower","Cepes","Chayote","Cherry","Chestnut","Chia Seed","Chickpeas","Chinese Magnolia","Cloudberry","Coco De Mer","Coconut","Coconut Water","Conifer","Corn","Corn Silk","Cranberry","Cucumber","Currant Leaf and Bud","Daikon Radish","Dark Plum Wu Mei","Dewberry","Dried Apple Crisp","Dried Apricot","Dried Fruits","Durian","Elderberry","Feijoa Fruit","Fig","Fig Leaf","Forest Fruits","Frosted Berries","Fruit Salad","Gariguette Strawberry","Genipapo","Goji Berries","Gooseberry","Grains","Grape Seed","Grapes","Green Anjou Pears","Green Grape","Green Pear","Green Plum","Greengage","Ground Cherry","Guarana","Guava","Hazelnut","Isabella Grape","Jabuticaba","Jackfruit","Japanese Loquat","Kiwi","Kumbaru","Lingonberry","Litchi","Loganberry","Longan Berries","Macadamia","Mahonia","Malt","Mango","Mangosteen","Maninka","Marian Plum","Medlar","Melon","Mirabelle","Mulberry","Mung Bean","Mushroom","Nashi Pear","Nectarine","Okra Seeds","Olive","Papaya","Passionfruit","Pea","Peach","Peanut","Pear","Pecan","Persimmon","Peruvian Pepper","Pineapple","Pinot Noir Grapes","Pistachio","Pitahaya","Pitanga","Plum","Pomegranate","Potato","Prickly Pear","Pumpkin","Quandong Desert Peach","Quince","Rambutan","Raspberry","Red Apple","Red Berries","Red Currant","Red Fruits","Red Fruits Smoothie","Red Mulberry","Rhubarb","Roasted Nuts","Sapodilla","Sarsaparilla","Sea Buckthorn","Seriguela","Shea Butter","Shea Nuts","Silverberry","Snowberry","Sour Cherry","Soursop","Soybean","Squash","Star Apple","Strawberry","Tayberry","Tomato","Tropical Fruits","Tucumã","Walnut","Walnut Milk","Water Fruit","Watermelon","Wattleseed","White Currant","White Grape","Wild Strawberry","Williams Pear","Winterberry","Wolfberry","Yellow Cherry","Yellow Fruits","Yuca Cassava","Yumberry","Acacia ","Acerola Blossom","Albizia","Almond Blossom","Alpinia","Alstroemeria","Althaea","Alumroot","Alyssum","Amarillys","Amazon Moonflower","Anemone","Angel's Trumpet","Apple Blossom","Apricot Blossom","Ashoka Flower","Astragalus","Azalea","Azteca Lily","Banana Flower","Banksia Australian","Begonia","Belladona","Bellflower","Bergamot Blossom","Bird cherry","Black Currant Blossom","Blackberry Blossom","Blue Lilies","Blue Poppy","Bottlebrush","Bread Flower","Buttercup","Cacao Blossom","Calla Lily","Camellia","Campion Flower","Cannonball Flower","Carambola Blossom","Cardamom Flower","Carnation","Celosia","Chai Hu","Chamomile","Champaca","Cherry Blossom","China Rose","Chinotto blossom","Chocolate Flower","Chrysanthemum","Cistus Incanus","Clematis","Clover","Coconut Blossom","Coffee Blossom","Cosmos Flower","Costus","Cotton Flower","Creamy Flowers","Crinum Lily","Cucumber Flower","Cyclamen","Dahlia","Daisy","Dandelion","Daphne","Daylily","Deadnettle","Delonix","Desert Rose","Dianthus","Dogwood Blossom","Dove Tree","Dried Rose","Edelweiss","Eglantine Rose","Elderflower","Encian","English Marigold","Evergreen","Field Scabious","Fig Blossom","Fire Lily","Flamingo Flower","Flax","Forget Me Not","Fragonia","Freesia","Fringed Pink","Fuchsia","Geranium","Gladiolus","Goldenrod","Gorse","Grapeflower","Green Tea Flower","Grevillea","Guava Blossom","Guayacan","Gustavia Flower","Hawthorn","Hazel Blossom","Heliotrope","Hellabore Flower","Hemlock","Hibiscus","Hoary Stock","Holly Flower","Hollyhock","Honeydew Blossom","Hortensia","Hoya Carnosa Wax Plant","Hyacinth","Hyssop","Impatiens","Inula","Iris","Iris Butter","Iris Pallida","Jacaranda","Jade Flower","Jasmine Orchid","Jujube Blossom","Kadam","Kangaroo Paw","Kanuka","Kiwi blossom","Laburnum","Lady of the Night Flower","Lady Slipper Orchid","Lamduan Flower","Lamprocapnos","Lantana","Larkspur","Laurel Blossom","Lavender","Leatherwood","Liatris","Lilac","Lily-of-the-Valley","Lime Blossom","Litchi Blossom","Lotus","Lydia Broom","Magnolia","Magnolia Brooklynensis","Magnolia Leaf","Mango Blossom","Mariposa Lily","Mayflower","Meadowsweet","Melilotus","Melissa Flower","Michelia","Mignonette","Mimosa","Mirabilis","Monarda","Morning Glory Flower","Moss Flox","Myrtle","Narcissus","Nectarine Blossom","Night Blooming Jasmine","Olive flower","Opium","Orange Cassia Tree","Orange Flower Water","Orange Flower Water","Orchard Blossom","Orchid","Orchid Black Diamond","Orchid Cactus","Orchid Pink Leopard","Osmanthus","Pansy","Papaya Blossom","Paramela","Passion Flower","Pataqueira","Peach Blossom","Pear Blossom","Pelargonium","Peony","Periwinkle","Petunia","Pineapple Blossom","Pink Flamingo Heliconia","Pink Lily","Pittosporum","Plum Blossom","Plumeria","Poinsettia","Pomegranate Blossom","Poppy","Primrose","Princess Tree","Prunella","Purple Coneflower","Rangoon Creeper","Raspberry Blossom","Redwood Flower","Rose","Rose Hip","Rose Japanese","Rose Mallow","Rosebay Willowherb","Rosebud","Roselle","Safflower","Sainfoins","Sand Lily","Sandalwood Flower","Santolina","Saucer Magnolia","Sea Daffodil","Silk Tree Blossom","Skeleton Flower","Smoketree","Snakeroot","Snow Lotus","Snowdrops","Sophora Toromiro Flower","Sour Cherry Blossom","Spanish Broom","Spiraea","Starflower","Strawberry Flower","Strelitzia","Strobilanthes Callosa","Sunflower","Sweet Pea","Taif Rose","Tamarisk","Tobacco Blossom","Transparent Flowers","Trillium","Tulip","Vanilla Bahiana","Viburnum","Violet","Violet Woodsorrel","Wallflower","Waratah","Water Flowers","Water Hyacinth","Water Lily","White Dahlia","White Ginger Lily","White Lace Flower","White Tea Blossom","Wildflowers","Wisteria","Wrightia","Yellow Bells","Yellow Flowers","Ylang-Ylang","Yuzu Flower","Zinnia","Arum Lily","Belanis","Black Locust","Boronia","Carissa","Datura","Frangipani","Gardenia","Grapefruit Blossom","Honeysuckle","Jasmine","Lemon Blossom","Lily","Mandarin Orange Blossom","Melati","Mock Orange","Moon Flower","Night Blooming Cereus","Orange Blossom","Stephanotis","Syringa","Tangerine Blossom","Tiare Flower","Tuberose","White Flowers","White Tobacco","Agave","Algae","Aloe Vera","Angelica","Angelica Root","Apple Mint","Arnica","Asparagus","Assam Tea","Avocado","Banana Leaf","Barley","Basil","Bay Essence","Beachheather","Betel Leaf","Black Currant Leaf","Blackberry Leaf","Borage","Borneol","Bran","Buckwheat","Buckwheat Tea","Bulrush","Burdock","Cactus","Calamus","Calycanthus","Cannabis","Carnation Leaves","Catnip","Cedar Leaves","Celery","Celery Seeds","Centella Asiatica","Cherry Leaf","Chicory","Chive","Cilantro","Citron Leaf","Clary Sage","Coca","Deer Tongue Grass","Dried Fallen Leaves","Earl Grey Tea","Fermented Tea","Fern","Flouve","Fresh Evergreen","Gajumaru Banyan","Garlic","Genmaicha","Ginkgo","Ginseng","Grape Leaves","Grass","Green Branches","Green Forest","Green Pepper","Green Sap","Gromwell","Hay","Henna","Hops","Horseweed","Immortelle","Ivy","Jambu","Juniper","Juniper Berries","Katrafay","Katsura Leaf","Lantana leaf","Lapsang Souchong Tea","Laurissilva Forest","Lesser Calamint","Lettuce","Lily-of-the-Valley Leaves","Limnophila Aromatica","Linaloe Berry","Longjing Tea","Lovage Root","Mandrake","Marigold","Marjoram","Matcha Tea","Mimosa Leaves","Mint","Mistletoe","Mugwort","Naswar","Nettle","Nut Grass","Oak Leaves","Oat","Olive Leaf","Oolong Tea","Orchid Leaf","Oregano","Palm Leaf","Palmarosa","Pandanus","Parsley","Peach Leaf","Pear Leaf","Pesto","Petrichor","Peyote","Physcool","Polygonum","Pu'er Tea","Purslane","Red Algae","Reed","Rice","Rooibos Red Tea","Roots","Rose Leaf","Rose Thorn","Rosemary","Roseroot","Rue","Rye","Sabah Snake Grass","Sage","Sansevieria","Sap","Satureja","Saw Palmetto","Seaweed","Shiso","Sideritis Mountain Tea","Skunk Cabbage","Snake Plant","Spinach","Stems Greens","Strawberry Leaf","Sugandha Kokila","Sundew","Sweet Grass","Tansy","Tarragon","Tea","Thistle","Thyme","Tieguanyin Tea","Tobacco","Tomato Leaf","Trees","Tulsi","Vanilla Leaves","Vine","Violet Leaf","Water Lily Leaf","Wheat","White Meranti","Wild garlic leaf","Willow-Leaved","Wintergreen","Wormwood","Yarrow","Yunnan Red Tea","Allspice","Asafoetida","Bay Leaf","Bengal Pepper","Cacao Pod","Caraway","Cardamom","Carolina Reaper","Cassia","Chutney","Cinnamon","Cinnamon Leaf","Clove Leaf","Cloves","Coffee","Coffee CO2","Coffee Tincture","Coriander","Cumin","Turmeric","Curry","Curry Tree","Dill","Fennel","Fenugreek","Galanga","Ginger","Green Coffee","Guinea Pepper","Indian Spices","Japanese Pepper","Kaempferia Galanga","Kopi Luwak Coffee","Licorice","Mace","Mustard Seed","Nutmeg","Pepper","Peppertree","Pimento","Pimento Leaf","Pimento Seeds","Pink Pepper","Priprioca","Saffron","Safraleine","Sesame","Siam Cardamom","Sichuan Pepper","Star Anise","Sumac","Tamarind","Timur","Tonka Bean","Vanilla","Wan Sao Lhong","Wasabi","Water Pepper","Agave Nectar","Baked Apple","Baklava","Biscuit","Bonbon","Bread","Brioche","Brown Sugar","Bubbaloo","Bubble Gum","Burnt Sugar","Butter","Buttercream","Butterscotch","Cacao Butter","Cake","Calissons d'Aix","Candied Fruits","Candied Ginger","Candied Orange","Candies","Canelé","Caramel","Cassata Siciliana","Cereals","Cheesecake","Cherry Milk","Cherry Syrup","Chocolate Fudge","Chocolate Truffle","Churros","Coconut Pie","Coconut Powder","Condensed Milk","Cone Waffle","Confetti","Cookie","Cookie Dough","Cosmofruit","Cotton Candy","Cream","Creamsicle","Crème Brûlée","Croissant","Cupcake","Custard","Dark Chocolate","Dates","Donut","Dulce de Leche","Eggnog","Fougassette","French Pastries","Frosting","Gelatin","Gingerbread","Griotte Cherries","Halva","Hazelnut Cocoa Spread","Honey","Honeycomb","Horchata","Ice cream","Icing Pink","Jelly","Kulfi","Lemon Pie","Loukhoum","Macarons","Maple Syrup","Maraschino Cherry","Marmalade","Marron Glacé","Marshmallow","Marzipan","Meringues","Milk Cream","Milk Mousse","Milkshake","Molasses","Nougat","Nutella","Oatmilk","Palm Sugar","Pancake","Panettone","Panna Cotta","Pastiera Napoletana","Peach Cream","Pear Ice Cream","Popcorn","Praline","Profiterole","Pudding","Puff Pastry","Rainbow Sorbet","Red Fruits Sorbet","Rice Pudding","Rose Jam","Sacher Torte","Sorbet","Souffle","Sprinkles","Spun Sugar","Strawberry Syrup","Sugar","Sugar Syrup","Tartine","Tiramisu","Toast","Toffee","Tropézienne Tarte","Vanilla Caviar","Waffle","White Chocolate","White Chocolate Truffle","Whoopie Pie","Yogurt","Zefir","Akigalawood","Alder","Almond tree","Amaranth","Amburana Bark","Amburana Wood","Amyris","Apple Tree","Araucaria","Araucaria","Arbutus","Argan Tree","Aspen","Australian Blue Cypress","Bamboo","Baobab","Bark","Beech","Belambra Tree","Birch","Black Hemlock","Black Spruce","Blackwood","Blonde Woods","Brazilian Rosewood","Buddha Wood","Cambodian Oud","Canadian Balsam","Carob Tree","Cascarilla","Cashmir wood","Cedar","Chalood Bark","Cherry Tree","Chinese Oud","Clearwood","Cocobolo","Coffee Tree","Cork","Cypress","Cypriol Oil","Dark Patchouli","Ditax wood","Dreamwood","Driftwood","Dry Wood","Ebony Tree","Elm","Eucalyptus","Fig tree","Fir","Grass Tree","Guaiac Wood","Hiba","Hinoki Wood","Ho Wood","Indian Oud","Indian Woods","Ironwood","Kowhai","Laotian Oud","Larch","Lichen","Liquidambar","Mahogany","Malaysian Oud","Mango Tree","Manuka","Maple","Mesquite Wood","Muhuhu","Mysore Sandalwood","Neem","Nootka","Oak","Oakmoss","Olive Tree","Palisander Rosewood","Palo Santo","Palo Verde Tree","Pamplewood","Paperbark","Papyrus","Patchouli","Peach Tree","Pear Tree","Pine Tree","Pink Ipê Tree","Plum Tree","Ravenala","Ravensara","Red Willow","Redwood","Saman","Sandalwood","Satinwood","Sawdust","Sequoia","Siam","Siam Wood","Spruce","Sycamore","Takamaka","Tamboti Wood","Tatami","Teak Wood","Thailand Oud","Thanaka Wood","Thuja","Transparent Woods","Vetiver","Vietnamese Oud","White Oud","White Willow","Wood barrel","Yohimbe","Amberwood","Andiroba","Bakhoor","Balsamic Vinegar","Birch Tar","Coal Tar","Dragon Blood Resin","Elemi","Incense","Pine Tar","Resins","Rubber","Surf Wax","Tea Tree Oil","Akashic Acord","Aldron","Amber","Amber Xtreme","Bacon","BBQ","Beeswax","Carrot Seeds","Caviar","Cheese","Coral Reef","Exaltolide","Fur","Genet","Goat Hair","Goat's Milk","Hyraceum","Kephalis","Kyphi","Leather","Meat","Milk","Musk","Muskrat","Oysters","Saffiano Leather","Sea Shells","Skatole","Skin","Starfish","Suede","Sylkolide","Tolu Balsam","Truffle","Velvione","Absinthe","Advocaat","Amaretto","Applejack","Baileys Irish Cream","Batida","Beer","Bellini","Blue Margarita","Bourbon Whiskey","Cachaça","Caipirinha","Campari","Cappuccino","Champagne","Champagne Rosé","Cherry Liqueur","Chinotto","Coca-Cola","Cocktail Fruits","Cognac","Cognac","Cosmopolitan Cocktail","Cream Soda","Curaçao","Daiquiri","Eau de Vie","Espresso","Fruit Tea","Gin","Grenadine","Hi-Fi","Jasmine Tea","Kava Drink","Kir Royal","Lemon Soda","Lemonade","Limoncello","Liquor","Macchiato","Madeira","Mai Tai Cocktail","Margarita","Martini","Masala Chai","Mezcal","Midori","Mocha","Mojito","Moscow Mule","Mulled Wine","Orange Soda","Ouzo","Pina Colada","Pisco Sour Cocktail","Plum Wine","Port Wine","Prosecco","Punch","Raki","Red Wine","Rhum Agricole","Rice Water","Rum","Sake","Sangria","Sparkling Water","Sparkling Wine","Syrup","Tequila","Tokaji Wine","Tonic Water","Umeshu","Vermouth","Vinegar","Vodka","Whiskey","White Wine","Aquozone","Ash","Asphalt","Black Diamond","Black Leather","Blood","Boisiris","Bourgeonal","Brick","Brown Scotch Tape","Burnt Match","Calone","Calypsone","Candle Wax","Chalk","Cinnamaldehyde","Clarycet","Clay","CO2 Extracts","Coal","Cobblestone","Cocaine","Concrete","Copper","Coral Limestone","Coranol","Cork","Cosmone","Coumarin","Credit Cards","Crustaceans","Cyclopidene","Damascone","Dew Drop","Dirt","Dust","Earth Tincture","Egg","Ember","Fabric","Fire","Fish","Flint","Flour","Gasoline","Georgywood","Geosmin","Gold","Graphite","Guaiacol","Gunpowder","Hair Pomade","Hand Cream","Head Space Waterfall","Healingwood","Hedione","Helvetolide","Holy Water","Hot Iron","Ice","Indole","Industrial Glue","Ink","Instant Film","Jeans","Lacquered Wood","Lactones","Lava","Lilybelle","Linen","Lip Gloss","Lipstick","Little Doll Strawberry","Mascarpone Cheese","Molasses","Money","Motor Oil","Mountain Air","Mud","Paper","Paradisone","Parchment","Pearadise","Pearls","Peat","Pebbles","Pencil","Petroleum","Pink Crystal","Pink Himalayan Sea Salt","Plastic","Plastic Bag","Play-Doh","Poison","Pollen","Pomarose","Salicylic Acid","Salt","Sand","Satin","Sauna","Scent Trek","Sclarene","Sea Water","Serenolide","Shamama Attar","Silk","Silver","Siren","Slate","Smoke","Snow","Soap","Sodium Silicate","SP3 Carbon","Spiranol","Spray Paint","Steam","Stone","Sulphur","Suntan Lotion","Sweat","Talc","Tennis Ball","Toothpaste","Tulle","Varnish","Velvet","Vinyl","Vitamin C","Water","Wet Plaster","Wet Stone","White Leather","Wool"];let a;const r=["♡","ꔫ","♩","♬","༶","✿","✼","☆","𐐪𐑂","o","✧","❀","✣","+","୭","⋇","✮","𓏲","❅","☽","✥","✤","✣","♪","∞","❃","✫","✩"];let o;const i=9/16,n=800/i,l=window.innerWidth>window.innerHeight*i?window.innerHeight*i:window.innerWidth,t=window.innerWidth>window.innerHeight*i?window.innerHeight:window.innerWidth/i,s=Math.min(l,t)/Math.min(800,n),u=[["#FDDAEF","#E10F8D"],["#050A26","#FDDAEF"],["#CEBFF1","#050A26"],["#8A6050","#CEBFF1"],["#CEDEF2","#8A6050"],["#E10F8D","#CEDEF2"]];function m(e){return R.random_choice(e)}setup=function(){a=m(u),console.log("notes from 𝓝𝓸𝓽𝓮𝓼 (Paris)"),console.log("hello world"),console.log("yes hello to the whole world"),console.log("I heart p5.js 4ever it changed my life"),console.log("Love,"),console.log("maya"),console.log("https://mayaontheinter.net/"),createCanvas(l,t),background(a[0]),fill(a[1]);let i="";for(let a=0;a<420;a++)i=i+m(e)+" "+m(r)+" ";o=150*s,textAlign(LEFT,TOP),textFont("sans-serif"),textSize(18*s),text(i,o/2,o/2,width-o,height-o),frameRate(2)},draw=function(){background(a[0]),fill(a[1]);let i="";for(let a=0;a<420;a++)i=i+m(e)+" "+m(r)+" ";o=150*s,textAlign(LEFT,TOP),textFont("sans-serif"),textSize(18*s),text(i,o/2,o/2,width-o,height-o)}; }],
[0 ,()=>{console.log("Artist 7. Thomas Lin Pedersen -- platform 0 ");let e=2*Math.PI,t=Math.round,r=Math.sin,v=Math.cos,o=Math.floor,f=Math.sqrt,s=Math.cbrt,a=Math.pow,l=Math.max,i=(e,t=0)=>Array(e).fill(0).map(((e,r)=>r+t)),u=e=>e.length,c=(()=>{let e=0;return{s:t=>e=2*(1+o(t))*$,g:()=>e}})(),n=()=>c.g(),x=e=>e.beginPath(),g=e=>e.closePath(),h=(e,t)=>e.strokeStyle=t,b=(e,t)=>e.fillStyle=t,d=(e,t)=>e.lineWidth=t,_=(e,t="source-over")=>e.globalCompositeOperation=t,m=window.location.search,y=new URLSearchParams(m),$=y.get("grid");$=$?parseInt($):1;let A=y.get("pos");A=A?parseInt(A):0;let D=Math.floor(A/$),B=A%$,C=window,z=y.get("width"),k=z?parseInt(z):C.innerHeight,F=z?1:C.devicePixelRatio;z=z?parseInt(z):C.innerWidth;let E=(e=0,t=1)=>e+(t-e)*R.R(),P=o(5*E()),M=o(5*E()),S=e=>{let t=s(.4122214708*e[0]+.5363325363*e[1]+.0514459929*e[2]),r=s(.2119034982*e[0]+.6806995451*e[1]+.1073969566*e[2]),v=s(.0883024619*e[0]+.2817188376*e[1]+.6299787005*e[2]);return[.2104542553*t+.793617785*r-.0040720468*v,1.9779984951*t-2.428592205*r+.4505937099*v,.0259040371*t+.7827717662*r-.808675766*v]},T=e=>[0|"0x"+e[1]+e[2],0|"0x"+e[3]+e[4],0|"0x"+e[5]+e[6]],I=(e,t,r)=>e+(t-e)*r,j=[["#1B191F","#B8AFBF","#DBA3A1","#5E70B0","#65977A","#C87F21"],["#1D1D1D","#E17843","#F1AC34","#86AA9B","#87A4BF"],["#313E3F","#75D2D4","#CA8B8C","#3D8F92","#CDD9CD"],["#112747","#C8BA70","#CDC3A0","#4D3060","#C44C2B","#A4B1B9","#BB9483"],["#250330","#60B145","#CADC96","#E680B9","#EDB4D0"]][M],L=T(j[0]).map((e=>e/255)),U=/\bHeadlessChrome/.test(navigator.userAgent)?1:4,q=e=>e.toFixed(9),H="#version 300 esd ss smoothstepd vv vec2d vw vec3d ww vec4d f floatd re returnd un uniformd tx texture\nprecision highp float;".replace(/d/g,"\n#define"),W=H+"in vv v_t;in vv v_l;out ww v_c;",G="f th=.33333333;vw rtl(vw c){vw x=pow(vw(.4122214708,.2119034982,.0883024619)*c.rrr+vw(.5363325363,.6806995451,.2817188376)*c.ggg+vw(.0514459929,.1073969566,.6299787005)*c.bbb,vw(th,th,th));re vw(.2104542553,1.9779984951,.0259040371)*x.rrr+vw(.7936177850,-2.4285922050,.7827717662)*x.ggg+vw(-.0040720468,.4505937099,-.8086757660)*x.bbb;}",J="vw ltr(vw c){vw x=c.rrr+vw(.3963377774,-.1055613458,-.0894841775)*c.ggg+vw(.2158037573,-.0638541728,-1.2914855480)*c.bbb;x=x*x*x;re vw(4.0767416621,-1.2684380046,-.0041960863)*x.rrr+vw(-3.3077115913,2.6097574011,-.7034186147)*x.ggg+vw(.2309699292,-.3413193965,1.7076147010)*x.bbb;}",O=(e,t=e)=>`f f${u(e)}(vv p, f a,out vv g){f v=.0;g=vv(v);vv gr;f m;`+((e,t)=>e.map(((e,r)=>`m=${q(t[r])};v+=sn(p*${q(e)},a,gr)/m;g+=gr/m;`)).join(""))(e,t)+"re v;}",V=e=>`un sampler2D ${e};`,K=W+V("u_t")+"un vv u_p;void main(){vv l=v_t*(1.-u_p)+.5*u_p;v_c=tx(u_t,l);}";W+=V("u_c")+V("u_b")+"un vv u_off;un f u_sc;f sn(vv x,f a,out vv g){vv uv=vv(x.x+x.y*.5,x.y);vv i0=floor(uv),f0=fract(uv);f cmp=step(f0.y,f0.x);vv o1=vv(cmp,1.-cmp);vv i1=i0+o1,i2=i0+1.;vv v0=vv(i0.x-i0.y*.5,i0.y);vv v1=vv(v0.x+o1.x-o1.y*.5,v0.y+o1.y);vv v2=vv(v0.x+.5,v0.y+1.);vv x0=x-v0,x1=x-v1,x2=x-v2;vw iu=vw(i0.x,i1.x,i2.x);vw iv=vw(i0.y,i1.y,i2.y);vw h=mod(iu,289.);h=mod((h*51.+2.)*h+iv,289.);h=mod((h*34.+10.)*h,289.);vw psi=h*.07482+a;vw gx=cos(psi);vw gy=sin(psi);vv g0=vv(gx.x,gy.x);vv g1=vv(gx.y,gy.y);vv g2=vv(gx.z,gy.z);vw w=max(.8-vw(dot(x0,x0),dot(x1,x1),dot(x2,x2)),.0);vw w2=w*w;vw w4=w2*w2;vw gdx=vw(dot(g0,x0),dot(g1,x1),dot(g2,x2));f n=dot(w4,gdx);vw w3=w2*w;vw dw=-8.*w3*gdx;vv dn0=w4.x*g0+dw.x*x0;vv dn1=w4.y*g1+dw.y*x1;vv dn2=w4.z*g2+dw.z*x2;g=10.9*(dn0+dn1+dn2);re 10.9*n;}";let N,Q,X,Y,Z=e=>`void main(){ww fc=ww(.0);ww xof=ww(1.,3.,-1.,-3.)/8.;ww yof=ww(xof.yzw,xof.x);vv gr;for(int i=0;i<${U};i++){`+e+"}v_c=fc;}",ee=.5*(f(3)-1),te=(3-f(3))/6,re=[1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1],ve=(e,t,r,v,o=!0,f=!0)=>{o&&x(t),e.forEach(((e,o)=>o?t.lineTo(e[0]*r+v,e[1]*r+v):t.moveTo(e[0]*r+v,e[1]*r+v))),f&&g(t)},oe=(t,r,v,o,f,s,a=0,l=e)=>{x(o),o.arc(t*f+s,r*f+s,v*f,a,l),l==e&&g(o)},fe=e=>e.stroke(),se=e=>e.fill(),ae=(e,...t)=>e.createLinearGradient(...t),le=(e,...t)=>e.addColorStop(...t),ie=(e,t,o,f,s)=>{let a=[[e,t]],l=!1;for(;;){let e=a[u(a)-1],t=f(e[0],e[1])*s;if(a.push([e[0]+(l?1:-1)*v(t)*.2,e[1]+(l?1:-1)*r(t)*.2]),!o(a)){if(a.pop(),l)break;l=!0,a.reverse()}}return a},we=(e,t,r,v,f)=>255==r.getImageData(o(e*v+f),o(t*v+f),1,1).data[0],ue=(e,t,r,v,f,s,a,l,w)=>{b(f,"#000"),f.fillRect(0,0,t,r);let c=((e,t=0,r=0)=>{let v=(()=>{let e=(e=>{for(let t,r=u(e)-1;0<r;r--)t=o(E()*(r+1)),[e[r],e[t]]=[e[t],e[r]];return e})(i(256));e=[...e,...e];let t=e.map((e=>e%12));return(r,v)=>{let f,s=0,a=(r+v)*ee,l=o(r+a),i=o(v+a),w=(l+i)*te,u=r-(l-w),c=v-(i-w),n=u>c,x=n?1:0,g=n?0:1,p=u-x+te,h=c-g+te,b=u-1+2*te,d=c-1+2*te,_=255&l,m=255&i,y=.5-u*u-c*c,$=.5-p*p-h*h,A=.5-b*b-d*d;return 0<=y&&(f=3*t[_+e[m]],y*=y,s+=y*y*(re[f]*u+re[f+1]*c)),0<=$&&(f=3*t[_+x+e[m+g]],$*=$,s+=$*$*(re[f]*p+re[f+1]*h)),0<=A&&(f=3*t[_+1+e[m+1]],A*=A,s+=A*A*(re[f]*b+re[f+1]*d)),70*s}})();return(o,f)=>{let s=e,a=1,l=0,i=4;for(o+=t,f+=r;i--;)l+=v(o*s,f*s)*a,s*=2,a*=.5;return l}})(.02/l),n=ie(50,e,(e=>{let t=e[u(e)-1];return-1<t[0]&&142>t[0]}),c,v);n.push([241,-100]),n.push([-100,-100]),ve(n,f,s,a),b(f,"#fff"),se(f),b(f,"#000"),h(f,"#000"),d(f,s*l*2),fe(f);for(let e of w)ve(e.b,f,s,a),se(f),fe(f);d(f,4.5*s),f.strokeRect(0,0,t,r);let x=0,g=[];d(f,s*l*2),f.lineCap="round";for(let e=i(1e6).map((()=>E()));1e3>x;){let[t,r]=[100*e.pop(),178*e.pop()];if(!we(t,r,f,s,a)){x++;continue}let o=ie(t,r,(e=>{let t=e[u(e)-1];return!(u(e)>80*l)&&we(t[0],t[1],f,s,a)}),c,v);u(o)<10*l?x++:(g.push(o),ve(o,f,s,a,!0,!1),fe(f),x=0)}return{b:n,l:g,m:l}},ce=(e,t)=>{let r,v=-1,o=u(e);for(;1+v<o;)r=v+(o-v>>1),e[r][0]>t?o=r:v=r;return e[o][1]},ne=3553,xe=36160,ge=(e,...t)=>N[e](...t),[pe,he,be,de,_e,me,ye,$e,Ae,De]=["getUniformLocation","bindTexture","texParameteri","attachShader","bindFramebuffer","useProgram","drawArrays","texImage2D","uniform1i","activeTexture"],Be=(e,t,r=!0)=>{let v=N.createTexture();return ge(he,ne,v),ge(be,ne,10242,33071),ge(be,ne,10243,33071),ge(be,ne,10241,9729),ge(be,ne,10240,9729),r?(ge($e,ne,0,6408,e,t,0,6408,5121,null),r=N.createFramebuffer(),ge(_e,xe,r),N.framebufferTexture2D(xe,36064,ne,v,0),[v,r]):v},Ce=(e,t)=>{let r=N.createShader(t);return N.shaderSource(r,e),N.compileShader(r),r},ze=(e,t)=>{let r=N.createProgram();ge(de,r,Ce(e,35633)),ge(de,r,Ce(t,35632)),N.linkProgram(r);let v=N.getAttribLocation(r,"a_p");return N.bindBuffer(34962,N.createBuffer()),N.bufferData(34962,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),35044),N.enableVertexAttribArray(v),N.vertexAttribPointer(v,2,5126,!1,0,0),r},ke=(e,t,r,v,o,f,s)=>{ge(me,e),ge(_e,xe,t);let a=ge(pe,e,"u_off"),l=ge(pe,e,"u_sc"),i=ge(pe,e,"u_c"),w=ge(pe,e,"u_b");N.uniform2f(a,f,s),N.uniform1f(l,2),ge(Ae,i,0),ge(Ae,w,1),ge(De,33984),ge(he,ne,r),ge(De,33985),ge(he,ne,v),o&&ge($e,ne,0,6408,6408,5121,o),ge(ye,4,0,6)},Fe=(e,t,r,v,o)=>{ge(me,e),ge(_e,xe,r);let f=ge(pe,e,"u_p");N.uniform2f(f,v,o);let s=ge(pe,e,"u_t");ge(Ae,s,0),ge(De,33984),ge(he,ne,t),ge(ye,4,0,6)},Ee=z/k,Pe=9/16,Re=Ee>=Pe,Me=(Re?k:z)*F,Se=t(Me*(Re?Pe:1)),Te=t(Me/(Re?1:Pe)),Ie=Me/(100*(Ee<Pe?1:1/Pe)),je=document,Le=(e,t="2d",r={})=>e.getContext(t,r);(e=>{c.s(e)})(Ie);let Ue=n();var qe;[Q,X,c3]=i(3).map((()=>je.createElement("canvas"))),qe=Le(Q,"webgl2",{preserveDrawingBuffer:!0}),N=qe,Y=Le(X),mask=Le(c3),mask.willReadFrequently=!0;let[He,We]=[Se+Ue,Te+Ue];X.width=He,c3.width=1e4,Q.width=Se,X.height=We,c3.height=100*t(100/Pe),Q.height=Te,Q.style.width=Se/F+"px",Q.style.height=Te/F+"px",Y.translate(-Se*B,-Te*D),je.body.prepend(Q);let Ge=((e,t,r,v)=>{let o=[];for(let t=0;5>t;t++){let s=1-f(t/6),a=ue(140-100*s,r,v,.2+s,e,100,0,s,o);o.push(a)}return o.push({b:[[0,0],[100,0],[100,178],[0,178]],l:[],m:1}),o})(mask,0,c3.width,c3.height),[Je,Oe]=[Se/$,Te/$],Ve=((e,t,r,v,o,f)=>H+"in vv a_p;out vv v_t;out vv v_l;void main(){gl_Position=ww(a_p*2.-1.,0,1);v_t=a_p;"+`v_l=(((a_p-.5)*vv(${q((Je+Ue/$)/Je)},${q(f)})+.5)*vv(${q(r)},${q(v)})+vv(${q(e)},${q(t)}))/1.41;}`)(Je*B,Oe*D,Je,Oe,0,(Oe+Ue/$)/Oe);((r,v,f,s,c,x,g,m,y,A,D)=>{let B=[],C=[],z=Be(g,m,!1);for(var k=0;4>k;k++){let e=Be(g,m);B.push(e[0]),C.push(e[1])}ge(_e,xe,null),N.viewport(0,0,g,m),N.clearColor(1,1,1,1),N.clear(16384);let F=ze(x,((e,t)=>W+G+J+O([1,2])+O([1,2,64],[1,2,8])+O([1,2,4,8,64],[1,2,4,32,64])+O([1,2,4,8,16,32])+Z(`vv pof=vv(xof[i],yof[i]);vv pos=(v_l+pof)/${q(e)};vv di=vv(f2((pos+u_off)*50.,.0,gr),f2((pos+vv(-1e3,1e3)+u_off)*50.,.0,gr))/1e3;di+=vv(f3((pos+u_off)*5.,.0,gr),f3((pos+vv(-1e3,1e3)+u_off)*5.,.0,gr))/5e2;di+=vv(f2((pos+u_off)*5e2,.0,gr),f2((pos+vv(-1e3,1e3)+u_off)*5e2,.0,gr))/1e4;ww brsh=tx(u_b,v_t+di*${q($)}+pof/vv(${q(e*$)},${q(t*$)}));brsh.xyz=rtl(brsh.xyz*brsh.a+1.-brsh.a);f a=ss(-1.75,1.75,f6((pos+u_off)*2.*u_sc,.0,gr));brsh.x*=1.+a*.075*(1.-brsh.x);brsh.yz*=1.-a*.8;a=ss(ss(.3,.6,f2((pos+u_off)*u_sc,.0,gr))-.5,.51,f5((pos+u_off.yx)*2.*u_sc,.0,gr));brsh.x*=1.+a*.025;brsh.yz*=1.-a*.15;brsh.x*=1.-(1.-ss(-.6,-.3,f5((pos+u_off.yx)*2.*u_sc,.0,gr)))*.01;a=ss(ss(.3,.6,f2((pos+u_off)*u_sc,.0,gr))-.5,.51,f5((pos+u_off.yx)*4.*u_sc,1.,gr));brsh.x*=1.+a*.01;brsh.x*=1.-(1.-ss(-.6,-.3,f5((pos+u_off.yx)*4.*u_sc,1.,gr)))*.005;brsh.xyz=ltr(brsh.xyz);fc+=brsh/${q(U)};`))(y,A)),R=ze(x,((e,t)=>W+G+J+O([1,2])+O([1,2,4,8])+Z(`vv pof=vv(xof[i],yof[i]);vv pos=(v_l+pof)/${q(e)};ww c=tx(u_c,v_t+pof/vv(${q(e)},${q(t)}));c.xyz=rtl(c.rgb*c.a+1.-c.a);f v=.0;f s=.157;f w=ss(-1.,.8,f4((pos+u_off)*20.*u_sc,.0,gr))*.8+.2;for(f j=.0;j<10.;j++){vv o=${q($)}*w*vv(sin(j*s),cos(j*s))*.002/u_sc;for(int k=0;k<4;k++){ww co=tx(u_c,v_t+o+pof/vv(${q(e)},${q(t)}));v+=rtl(co.rgb*co.a+1.0-co.a).x;o=vv(o.y,-o.x);}}v=ss(.001,.015,v/40.-c.x);f a=ss(-.5,-.0,f2((pos+u_off)*10.*u_sc,.0,gr));c.x*=1.-v*.1*c.w*a;c.yz*=1.+v*c.w*a;a=f4((pos+u_off)*75.*u_sc,.0,gr);c.x*=1.-ss(1.,1.5,a)*.1+ss(.0,2.,a)*.01;c.yz*=1.+ss(1.,1.5,pow(a,1.))*2.;c.xyz=ltr(c.xyz);fc+=c/${q(U)};`))(y,A)),M=ze(x,((e,t)=>W+O([1,2])+O([1,2,4,8,16,32])+O([1,2,4,8,16,32,64,128])+`ww col=ww(${q(L[0])},${q(L[1])},${q(L[2])},1);`+Z(`vv pof=vv(xof[i],yof[i]);vv pos=(v_l+pof)/${q(e)};f tex=f8((pos*100.*2.+u_off)*u_sc,.0,gr)+f8((pos+u_off)*u_sc,.0,gr);tex=(tex+1.9)/3.8+.075;f sp=f6((pos*10.+u_off)*u_sc,.0,gr);tex=min(tex,1.-ss(1.2,1.3,sp));tex=max(tex,1.-ss(-1.25,-1.15,sp));vv di=vv(f2((pos+u_off)*50.,.0,gr),f2((pos+vv(.0,1e4)+u_off)*50.,.0,gr))/4e3;ww sc=tx(u_b,v_t+di*${q($)}+pof/vv(${q(e*$)},${q(t*$)}));sc.rgb=sc.rgb*sc.a+1.-sc.a;f g=1.-ss(tex-.15,tex,sc.r);ww bg=tx(u_c,v_t);ww cm=col;cm.rgb=cm.rgb*g+1.-g;cm.rgb*=bg.rgb;fc+=mix(cm,col,ww(g,g,g,1.)*.5)/${q(U)};`))(y,A)),H=ze(x,W+"void main(){ww bg=tx(u_c,v_t);ww pt=tx(u_b,v_t);f a=pt.a;pt.rgb=pt.rgb*pt.a+1.-pt.a;pt.rgb*=bg.rgb*bg.a+1.-bg.a;pt.a=1.;v_c=pt;}"),V=ze(x,K);((e,r,v,o,f,s)=>{let a=n()/2;e.forEach(((i,w)=>{let c=l(...e[w].b.map((e=>e[1]))),x=ae(r,0,(c-10*e[w].m)*f+a,0,(c-110*e[w].m)*f+a);le(x,0,((e,r,v)=>(e=S(T(e)),r=S(T(r)),"#"+(e=>{let t=(e[0]+.3963377774*e[1]+.2158037573*e[2])**3,r=(e[0]-.1055613458*e[1]-.0638541728*e[2])**3,v=(e[0]-.0894841775*e[1]-1.291485548*e[2])**3;return[4.0767416621*t-3.3077115913*r+.2309699292*v,-1.2684380046*t+2.6097574011*r-.3413193965*v,-.0041960863*t-.7034186147*r+1.707614701*v]})([I(e[0],r[0],v),I(e[1],r[1],v),I(e[2],r[2],v)]).map((e=>t(e).toString(16).padStart(2,"0"))).join("")))(j[1],j[2],w/4)),le(x,1,"#0000"),w==u(e)-1&&(x=ae(r,0,178*f+a,0,140*f+a),le(x,0,j[3]),le(x,1,j[4])),((e,t,r,v,o,f,s)=>{let a=n()/2;for(p of(v.clearRect(0,0,f,s),b(v,t),ve(e[r].b,v,o,a),se(v),b(v,"#000"),h(v,"#000"),d(v,o*e[r].m*.5),_(v,"destination-out"),e[r].l))ve(p,v,o,a,!0,!1),fe(v);for(let t=0;t<r;t++)ve(e[t].b,v,o,a),se(v);ve(e[5].b,v,o,a),d(v,3*o),h(v,"#000"),fe(v),_(v)})(e,x,w,r,f,v,o),s()}))})(r,v,y*$,A*$,c*$,(()=>{ke(F,C[0],null,z,s,E(-1e3,1e3),E(-1e3,1e3)),ke(R,C[1],B[0],null,null,E(-1e3,1e3),E(-1e3,1e3)),ke(H,C[2],B[3],B[1],null),Fe(V,B[2],C[3],null,0)})),((t,r,v,f,s,c)=>{let x=n()/2;if(b(r,"#fff"),r.fillRect(0,0,2*s,2*c),4==P){let[t,v]=[90*E()+5,160-40*E()];oe(t,v,10,r,f,x),b(r,j[0]),se(r),h(r,"#fff"),d(r,10*f),fe(r),h(r,j[0]),d(r,.1*f),fe(r),i(75).forEach((o=>{for(let s,l=0,i=E()*e;l<e;)s=E()*e*a((75-o)/75,2)*.5,oe(t,v,11+2*o+E()-.5,r,f,x,i+l,i+l+s),fe(r),l+=s+E()*e*.5*(75-o)/75}))}for(w of t.slice(0,5).toReversed()){if(1==P){let e=90*E()+5;i(20).forEach((()=>{d(r,f*w.m*.5*a(E(),3));let t=E()*w.m*20+e;ve([[t,-10],[t,200]],r,f,x,!0,!1),fe(r)}))}if(2==P){let e=r.getTransform();v.width=s,v.height=c,v.setTransform(e),b(v,"#fff"),v.fillRect(0,0,s,c),v.lineJoin="round",v.lineCap="butt",i(15).forEach((e=>{ve(w.b,v,f,x),d(v,f*w.m*(15-e)*3),h(v,j[0]),fe(v),d(v,f*w.m*(15-e-(e+1)/30)*3),h(v,"#fff"),fe(v);for(let t,r=o(40*E()*w.m);r<u(w.b);)t=o(40*E()*(15-e)/15*w.m),ve(w.b.slice(r,r+t),v,f,x,!0,!1),d(v,f*w.m*(15-e)*3.1),fe(v),r+=t+o(80*E()*(e+1)/15*w.m)})),_(r,"darken"),r.setTransform(1,0,0,1,0,0),r.drawImage(v.canvas,0,0),r.setTransform(e),_(r)}ve(w.b,r,f,x),b(r,"#fff"),se(r),3==P&&(l(...w.b.map((e=>e[1]))),h(r,j[0]),i(5e3).forEach((()=>{let e=100*E(),t=a(E(),.15),v=ce(w.b,e)-110*t*w.m+10*E();oe(e,v,(3*a(E(),2)+1)*w.m,r,f,x),d(r,(E()+.1)*f*w.m),se(r),fe(r)})))}ve(t[5].b,r,f,x),d(r,2.5*f),h(r,"#fff"),fe(r)})(r,v,f,c*$,y*$,A*$),ke(M,C[2],B[3],z,s,E(-1e3,1e3),E(-1e3,1e3)),Fe(V,B[2],C[3],null,0),N.viewport(0,0,y,A),Fe(V,B[3],null,D/g,D/m),N.readPixels(0,0,1,1,6408,5121,new Uint8Array(4))})(Ge,Y,mask,X,Ie,Ve,He,We,Se,Te,Ue); }],
[1 ,()=>{console.log("Artist 44. Obvious -- platform 1 ");function stretchPalette(f,e,a){let t=[],o=e.length-1,n=e.map((e=>{let a=f.color(e);return rgbToHsb(f,f.red(a),f.green(a),f.blue(a))}));for(let e=0;e<a;e++){let i=e/(a-1)*o,r=f.floor(i),l=(r+1)%n.length,s=i-r,c=n[r],d=n[l],g=hsbToRgb((c[0]+s*(d[0]-c[0]))%360,f.lerp(c[1],d[1],s),f.lerp(c[2],d[2],s)),u="#"+f.hex(g[0],2)+f.hex(g[1],2)+f.hex(g[2],2);t.push(u)}return t}function drawInfos(f){console.log("Draw infos...",f.config),drawSeed(f),drawPaletteSquares(f)}function drawSeed(f){const e=10*f.config.scale,a=14*f.config.scale;f.textSize(a);const t=f.textWidth("# "+f.config.seed),o=a,n=f.config.height-e-o-e,i=t+2*e,r=o+2*e;f.fill(255),f.noStroke(),f.rect(0,n,i,r),f.fill(55),f.noStroke(),f.text("# "+f.config.seed,e,f.config.height-e)}function drawPaletteSquares(f){const e=5*f.config.scale,a=25*f.config.scale,t=0*f.config.scale;let o=f.config.palette.length*(a+t)+2*e,n=a+2*e,i=f.config.width-o-0,r=f.config.height-n-0;f.fill(255),f.noStroke(),f.rect(i,r,o,n);let l=f.config.width-o+e,s=f.config.height-n+e;f.config.palette.forEach(((e,o)=>{f.fill(e),f.noStroke(),f.rect(l,s,a,a),l+=a+t}))}function rgbToHsb(f,e,a,t){let o,n,i,r=[],l=f.max(e,a,t),s=f.min(e,a,t),c=l-s;return o=l===s?0:l===e?(a-t)/c%6*60:l===a?60*((t-e)/c+2):60*((e-a)/c+4),n=0===l?0:c/l*255,i=l,r[0]=o,r[1]=n,r[2]=i,r}function hsbToRgb(f,e,a){let t,o,n,i=[],r=a/255*(e/255),l=r*(1-Math.abs(f/60%2-1)),s=a/255-r;f>=0&&f<60?(t=r,o=l,n=0):f>=60&&f<120?(t=l,o=r,n=0):f>=120&&f<180?(t=0,o=r,n=l):f>=180&&f<240?(t=0,o=l,n=r):f>=240&&f<300?(t=l,o=0,n=r):(t=r,o=0,n=l);let c=Math.round(255*(t+s)),d=Math.round(255*(o+s)),g=Math.round(255*(n+s));return i[0]=c,i[1]=d,i[2]=g,i}function opacifyLayer(f){f.loadPixels();for(let e=0;e<f.pixels.length;e+=4)f.pixels[e+3]=255;f.updatePixels()}function drawWaterLayer(f){const e=f.createGraphics(f.finalWorkingSize.width,f.finalWorkingSize.height,{willReadFrequently:!0});let a=[],t=[],o=[];for(let e=0;e<50;e++)a.push(f.createVector(f.random(f.finalWorkingSize.width),f.random(f.finalWorkingSize.height)));for(let e=0;e<a.length;e++){let o=50*f.sin(360+6*a[e].x)+a[e].x,n=50*f.cos(360+6*a[e].y)+a[e].y;t.push(f.createVector(o,n))}for(let e=0;e<f.finalWorkingSize.width;e++)for(let a=0;a<f.finalWorkingSize.height;a++){let n=[];for(let f=0;f<t.length;f++){let o=(e-t[f].x)**2+(a-t[f].y)**2;n[f]=o}let i=f.sort(n),r=Math.sqrt(i[0]),l=4*(e+a*f.finalWorkingSize.width);o[l+0]=waveColor(r,2*f.modifier*14.5,44,2.5),o[l+1]=waveColor(r,2*f.modifier*21,169,2.5),o[l+2]=waveColor(r,2*f.modifier*40,225,3),o[l+3]=255}e.loadPixels();for(let f=0;f<o.length;f+=4)e.pixels[f+0]=o[f+0],e.pixels[f+1]=o[f+1],e.pixels[f+2]=o[f+2],e.pixels[f+3]=o[f+3];return e.updatePixels(),e}function waveColor(f,e,a,t){return f<0?a:Math.pow(f/e,t)+a}function hexToBinary(f){try{let e="";for(let a=0;a<f.length;a++){const t=f[a];e+=parseInt(t,16).toString(2).padStart(4,"0")}return e}catch(f){return console.error("Erreur : La chaîne hexadécimale fournie est invalide."),null}}function drawBorder(f,e,a,t){e.noFill(),e.stroke(255),e.strokeWeight(f.config.externalStrokeSize),e.rect(0,0,a-1,t-1)}function drawSanskritLayer(f){const e=hexToBinary(f.config.letterData);console.log("Binary sanskrit letter : ",e);const a=f.createGraphics(f.workingSquareSize,f.workingSquareSize,{willReadFrequently:!0});f.config.hasStrokeOnBorders&&drawBorder(f,a,f.workingSquareSize,f.workingSquareSize),a.loadPixels();const t=f.color(f.config.letterFill);let o=f.workingSquareSize,n=0,i=f.workingSquareSize,r=0;for(let a=0;a<f.config.letterResolution;a++)for(let t=0;t<f.config.letterResolution;t++){"1"===e[t*f.config.letterResolution+a]||(o=Math.min(o,a*f.config.blockSize),n=Math.max(n,(a+1)*f.config.blockSize),i=Math.min(i,t*f.config.blockSize),r=Math.max(r,(t+1)*f.config.blockSize))}const l=(o+n)/2,s=(i+r)/2,c=f.workingSquareSize/2,d=f.workingSquareSize/2;console.log("minX : ",o),console.log("maxX : ",n),console.log("minY : ",i),console.log("maxY : ",r);let g=0,u=0;if(f.config.isLetterCentered)console.log("Letter is centered"),g=c-l-f.config.letterOffsetX,u=d-s-f.config.letterOffsetY;else{console.log("Letter is not centered");const e=f.random()>.5?f.random()>.5?0:1:f.random()>.5?2:3,a=f.config.externalStrokeSize;switch(e){case 0:console.log("Stick to left border"),g=-(f.workingSquareSize/2-a/2)+(n-o)/2,u=d-s-f.config.letterOffsetY;break;case 1:console.log("Stick to right border"),g=+(f.workingSquareSize/2-a/2)-(n-o)/2,u=d-s-f.config.letterOffsetY;break;case 2:console.log("Stick to top border"),u=-(f.workingSquareSize/2-a/2)+(r-i)/2,g=c-l-f.config.letterOffsetX;break;case 3:console.log("Stick to bot border"),u=+(f.workingSquareSize/2-a/2)-(r-i)/2,g=c-l-f.config.letterOffsetX}}for(let o=0;o<f.config.letterResolution;o++)for(let n=0;n<f.config.letterResolution;n++){if(!("1"===e[n*f.config.letterResolution+o])){const e=o*f.config.blockSize+g,i=n*f.config.blockSize+u;for(let o=e;o<e+f.config.blockSize;o++)for(let e=i;e<i+f.config.blockSize;e++)o>=0&&o<f.workingSquareSize&&e>=0&&e<f.workingSquareSize&&a.set(o,e,t)}}return a.updatePixels(),a.filter(f.BLUR,f.config.letterBlur),f.config.currentStep++,a.get()}function drawOutlinesLayer(f){const e=f.createGraphics(f.workingSquareSize,f.workingSquareSize,{willReadFrequently:!0});e.image(f.sanskritImage,0,0,f.workingSquareSize,f.workingSquareSize),e.filter(f.BLUR,f.config.letterRoundBlur),e.filter(f.THRESHOLD,.5),e.loadPixels();for(let f=0;f<e.pixels.length;f+=4)e.pixels[f+3]>128?e.pixels[f+3]=255:e.pixels[f+3]=0;return e.updatePixels(),f.config.letterOutlines.forEach((a=>{drawOutline(f,e,a)})),f.config.isOutlineBlurred&&e.filter(f.BLUR,f.config.letterBlur),e}function drawOutline(f,e,a){let t=new Set;e.loadPixels();for(let o=0;o<e.height;o++)for(let n=0;n<e.width;n++){let i=4*(n+o*e.width);0===e.pixels[i+3]&&hasNonTransparentNeighbour(f,e,n,o,a.thickness,t)&&(e.pixels[i]=a.color[0],e.pixels[i+1]=a.color[1],e.pixels[i+2]=a.color[2],e.pixels[i+3]=a.opacity,t.add(i))}e.updatePixels()}function hasNonTransparentNeighbour(f,e,a,t,o,n){for(let i=-o;i<=o;i++)for(let r=-o;r<=o;r++)if(0!==r||0!==i){let o=a+r,l=t+i;if(o>=0&&o<f.workingSquareSize&&l>=0&&l<f.workingSquareSize){let a=4*(o+l*f.workingSquareSize);if(0!==e.pixels[a+3]&&!n.has(a))return!0}}return!1}function stretchValues(f,e){e.loadPixels();let a=255,t=0;for(let f=0;f<e.pixels.length;f+=4){let o=e.pixels[f];o<a&&(a=o),o>t&&(t=o)}console.log("minValue : ",a),console.log("maxValue : ",t);for(let o=0;o<e.pixels.length;o+=4)e.pixels[o]=f.map(e.pixels[o],a,t,0,255),e.pixels[o+1]=e.pixels[o],e.pixels[o+2]=e.pixels[o];e.updatePixels()}function drawChladniLayer(f){let e=f.config.chladniParams.a,a=f.config.chladniParams.b,t=f.config.chladniParams.n,o=f.config.chladniParams.m,n=f.createGraphics(f.workingSquareSize,f.workingSquareSize,{willReadFrequently:!0}),i=f.createGraphics(f.workingSquareSize,f.workingSquareSize,{willReadFrequently:!0}),r=t*t+o*o;n.loadPixels();for(let i=0;i<f.workingSquareSize;i++)for(let l=0;l<f.workingSquareSize;l++){let s=f.map(i,0,f.workingSquareSize,-1,1),c=f.map(l,0,f.workingSquareSize,-1,1),d=e*f.sin(f.PI*t*s)*f.sin(f.PI*o*c)+a*f.sin(f.PI*o*s)*f.sin(f.PI*t*c),g=f.map(f.abs(d),0,f.sqrt(r),0,f.config.maxLevel),u=4*(i+l*n.width);n.pixels[u]=g,n.pixels[u+1]=g,n.pixels[u+2]=g,n.pixels[u+3]=255}if(n.updatePixels(),n.image(f.outlinesImage,0,0,f.workingSquareSize,f.workingSquareSize),f.config.isChladniColorsReversed&&reverseLayerColors(f,n),f.config.debug)n.image(n,0,0);else for(let e=0;e<f.workingSquareSize;e++)for(let a=0;a<f.workingSquareSize;a++){drawSandGrainColor2(f,i,e,a,n.get(e,a)[0])}return opacifyLayer(i),console.log("Sanskrit layer done"),i}function reverseLayerColors(f,e){e.loadPixels();for(let f=0;f<e.pixels.length;f+=4)e.pixels[f]=255-e.pixels[f],e.pixels[f+1]=255-e.pixels[f+1],e.pixels[f+2]=255-e.pixels[f+2];e.updatePixels()}function drawSandGrainColor2(f,e,a,t,o){f.colorMode(f.HSB);for(let n=0;n<f.config.numberOfLayers;n++)if(o>=f.config.layerStep*n&&o<=f.config.layerStep*(n+1)){let i,r,l=f.config.palette[n],s=f.hue(l),c=f.saturation(l),d=f.brightness(l);f.config.hasGradientInsideLayers?(r=f.map(o,0,255,1.2,.8),i=f.map(o,0,255,1,1.5)):(r=1,i=1);const g=.2;r+=f.random(-g,g),i+=f.random(-g,g);let u=f.color(s,f.config.hasSandGrain?c*i:c,f.config.hasSandGrain?d*i:d);e.stroke(u),e.point(a,t)}f.colorMode(f.RGB)}let hexData=[{name:"II",data:"ffffffffffffd6be67e67d6bffffffffffff"},{name:"VI",data:"ffffffffffffeafe6fe6feafffffffffffff"},{name:"VII",data:"ffffffffffffdd7defde7dd7ffffffffffff"},{name:"IX",data:"ffffffffffff9b592fb2fab5ffffffffffff"},{name:"IV",data:"ffffffffffffe97e97e97e97ffffffffffff"},{name:"XI",data:"ffffffffffffc2be6fe6fdafffffffffffff"},{name:"XII",data:"ffffffffffffeabdebdebcabffffffffffff"},{name:"XV",data:"fffffffffffff57ef7ef7f57ffffffffffff"},{name:"XX",data:"ffffffffffffdd7dd7dd7defffffffffffff"},{name:"XL",data:"ffffffffffffbb5badbcdbcdffffffffffff"},{name:"LI",data:"ffffffffffffed7ed7ed7ed7ffffffffffff"},{name:"LII",data:"fffffffffffff6ff6ff6ff6fffffffffffff"},{name:"LV",data:"ffffffffffffe97ed7ed7e97ffffffffffff"},{name:"LVI",data:"ffffffffffffcebddfddfcabffffffffffff"},{name:"LX",data:"ffffffffffffd6bdabdabd6bffffffffffff"},{name:"XC",data:"ffffffffffffd5bdabda7d67ffffffffffff"},{name:"CI",data:"ffffffffffff92d92b933ab3ffffffffffff"},{name:"CII",data:"ffffffffffff9b5935a35ab5ffffffffffff"},{name:"CV",data:"ffffffffffffcdbdd7de7ce7ffffffffffff"},{name:"CX",data:"ffffffffffffd6bd27d27c4bffffffffffff"},{name:"CC",data:"ffffffffffffcdbcbbd1bd1bffffffffffff"},{name:"DI",data:"ffffffffffffcd7de7de7cd3ffffffffffff"},{name:"DII",data:"ffffffffffffeb7eafecfecfffffffffffff"},{name:"DV",data:"fffffffffffff57f37f37f57ffffffffffff"},{name:"DX",data:"ffffffffffffd5be6be67d67ffffffffffff"},{name:"MI",data:"ffffffffffffeabe6be6bdabffffffffffff"},{name:"MII",data:"ffffffffffffdabeabe6be6bffffffffffff"},{name:"MV",data:"ffffffffffffeafecfecfeafffffffffffff"},{name:"MC",data:"ffffffffffffed7f57f37f37ffffffffffff"},{name:"III",data:"fffffffffffff6ff6ff6ff6fffffffffffff"}],palettes=[["#434567","#416881","#4C9B9E","#8BC5BE"]];function generateVariationsForPalette(f,e,a){return e.map((e=>{let t=f.color(e),o=rgbToHsl(f.red(t),f.green(t),f.blue(t)),n=hslToRgb((o[0]+f.random(-a,a))%360,o[1],f.constrain(o[2]+f.random(-a,a),0,100));return rgbToHex(n[0],n[1],n[2])}))}function rgbToHsl(f,e,a){f/=255,e/=255,a/=255;let t,o,n=Math.max(f,e,a),i=Math.min(f,e,a),r=(n+i)/2;if(n==i)t=o=0;else{var l=n-i;switch(o=r>.5?l/(2-n-i):l/(n+i),n){case f:t=(e-a)/l+(e<a?6:0);break;case e:t=(a-f)/l+2;break;case a:t=(f-e)/l+4}t/=6}return[360*t,100*o,100*r]}function hslToRgb(f,e,a){let t,o,n;if(0==e)t=o=n=a;else{function i(f,e,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?f+6*(e-f)*a:a<.5?e:a<2/3?f+(e-f)*(2/3-a)*6:f}let r=a<.5?a*(1+e):a+e-a*e,l=2*a-r;e/=100,a/=100,t=i(l,r,(f/=360)+1/3),o=i(l,r,f),n=i(l,r,f-1/3)}return[Math.round(255*t),Math.round(255*o),Math.round(255*n)]}function rgbToHex(f,e,a){return"#"+((1<<24)+(f<<16)+(e<<8)+a).toString(16).slice(1)}function swapLastTwoElements(f){if(f.length>=2){const e=f.length-1,a=f.length-2;[f[e],f[a]]=[f[a],f[e]]}}const getRandomNumber=()=>Math.floor(1e4*Math.random()),genTokenData=f=>{let e={},a="0x";for(var t=0;t<64;t++)a+=Math.floor(16*Math.random()).toString(16);return e.hash=a,e.tokenId=(1e6*f+Math.floor(1e3*Math.random())).toString(),e},getRandomTokenData=()=>(console.log("TokenData is not defined, generating fake one..."),genTokenData(getRandomNumber())),getSeedFromToken=tokenData=>parseInt(tokenData.hash.slice(0,16),16);let TOTAL_IMAGES=hexData.length,SEED=123456789;function mulberry32(f){let e=f;return function(){e|=0,e=e+1831565813|0;let f=Math.imul(e^e>>>15,1|e);return f^=f+Math.imul(f^f>>>7,61|f),((f^f>>>14)>>>0)/4294967296}}function fisherYatesShuffle(f,e){let a,t,o=e.length;const n=mulberry32(f);for(;0!==o;)t=Math.floor(n()*o),o-=1,a=e[o],e[o]=e[t],e[t]=a;return e}function generateIndices(f,e){return fisherYatesShuffle(f,Array.from({length:e},((f,e)=>e)))}function selectImage(f,e){return generateIndices(SEED,e)[f%e]}window.tokenData={hash:"0x44ffc615aaa41c1b8cb3d8a8edaafb5d7f654e3681157b6688cb70e65c021da8",tokenId:"7101000228"};const sketch=function(f){f.keyPressed=function(){if(13===f.keyCode){let e=`bright-moments-sanskrit--${f.config.seed}.png`;f.saveCanvas(e,"png")}},f.setup=function(){let e=getSeedFromToken(tokenData);console.log("Seed : "+e),f.randomSeed(e),f.noiseSeed(e);let a=window.innerWidth,t=window.innerHeight,o=9/16,n=t*o,i=a/o;n>a?(n=a,i=n/o):(i=t,n=i*o);let r=Math.floor(n),l=Math.floor(i);f.finalCanvasSize={width:r,height:l},console.log("s.finalCanvasSize",f.finalCanvasSize);let s=562.5,c=1e3;s>r?(s=r,c=s/o):(c=l,s=c*o),f.finalWorkingSize={width:Math.floor(s),height:Math.floor(c)},console.log("s.finalWorkingSize",f.finalWorkingSize);let d=Math.min(f.finalWorkingSize.width,f.finalWorkingSize.height);f.finalSquareSize=d,f.workingSquareSize=1e3,f.modifier=f.finalSquareSize/f.workingSquareSize,console.log("s.modifier",f.modifier),console.log("s.finalSquareSize",f.finalSquareSize),a=2*Math.floor(a/2),t=2*Math.floor(t/2);const g=f.workingSquareSize,u=f.workingSquareSize,h=f.random(-30,30)*f.modifier,S=f.random(-30,30)*f.modifier;let m=f.modifier/2*7;m=m<5?5:m;let k=f.modifier/2*7;k=k<5?5:k,m=6,k=6,console.log("letterBlur",m),console.log("letterRoundBlur",k);let b=100*f.modifier/2;b=b<100?100:b;const w=f.random()>.8;let p=palettes[f.floor(f.random(0,palettes.length))];f.random()>.8&&swapLastTwoElements(p),generateVariationsForPalette(f,p,10),console.log(p),p=stretchPalette(f,p,4);const x=selectImage(tokenData.tokenId,hexData.length);console.log("chosenLetterIndex",x),f.config={seed:e,currentStep:0,debug:!1,width:g,height:u,modifier:f.modifier,isWebGL:!1,showInfos:!1,pixelDensity:1,hasStrokeOnBorders:!0,letterResolution:12,letterOffsetX:h,letterOffsetY:S,externalStrokeSize:b,isChladniColorsReversed:!0,hasGradientInsideLayers:!0,isLetterCentered:w,backgroundColor:{r:255,g:255,b:255},letterRoundBlur:k,letterBlur:m,letterFill:255,hasToErodeEdges:!1,isOutlineBlurred:!0,blockSize:g>u?u/12:g/12,chladniParams:{a:f.random(-8,-10),b:f.random(-8,-10),n:f.random(-10,10),m:f.random(-10,10)},maxLevel:255,numberOfLayers:4,layerStep:63.75,hasSandGrain:!1,letterOutlines:[{thickness:f.floor(10*f.modifier),color:[0,0,0],opacity:220},{thickness:f.floor(8*f.modifier),color:[0,0,0],opacity:180},{thickness:f.floor(6*f.modifier),color:[0,0,0],opacity:120},{thickness:f.floor(4*f.modifier),color:[0,0,0],opacity:80},{thickness:f.floor(4*f.modifier),color:[0,0,0],opacity:60}],letterData:hexData[x].data,letterName:hexData[x].name,palette:p},console.log("chladniParams",f.config.chladniParams),f.pixelDensity(1),f.createCanvas(f.finalCanvasSize.width,f.finalCanvasSize.height,f.config.isWebGL?f.WEBGL:f.P2D)},f.draw=function(){console.log("Draw start..."),f.sanskritImage=drawSanskritLayer(f),f.outlinesImage=drawOutlinesLayer(f),f.chladniImage=drawChladniLayer(f),f.background(f.config.palette[0]),f.waterImage=drawWaterLayer(f);let e=(f.finalCanvasSize.width-f.finalSquareSize)/2,a=(f.finalCanvasSize.height-f.finalSquareSize)/2,t=f.createGraphics(f.finalSquareSize-4,f.finalSquareSize-4);t.copy(f.chladniImage,2,2,f.workingSquareSize-4,f.workingSquareSize-4,0,0,f.finalSquareSize-4,f.finalSquareSize-4),f.image(t,e,a,f.finalSquareSize,f.finalSquareSize),f.blend(f.waterImage,0,0,f.finalCanvasSize.width,f.finalCanvasSize.height,0,0,f.finalCanvasSize.width,f.finalCanvasSize.height,f.OVERLAY),console.log("Draw end."),f.noLoop()}},sketchInstance=new p5(sketch,document.getElementById("sketch")); }],
[1 ,()=>{console.log("Artist 18. Emi Kusano -- platform 1 ");const mS=_=>{let $,e,o,r,t,a,i,n,c,s,l,f,m,d,u,p,v,g,b,h,k,x,w,S; function y($,e,o,r,t,i){let n=S(((($-t)*(r-i))**2-((o-t)*(e-i))**2)/(($-t)**2-(o-t)**2)),c=n*($-t)/S(n**2-(e-i)**2);c||(c=n*(o-t)/S(n**2-(r-i)**2));let s=_.atan2((e-i)/n,($-t)/c),l=_.atan2((r-i)/n,(o-t)/c);for(let f=0;f<=60;f++){let m=s+(l-s)*f/60;a(t+c*_.cos(m),i+n*_.sin(m))}} function C(_){for(let $=0;$<_.length;$+=2)a(_[$],_[$+1])} function P(a,i,n,c){ e.clear(),e.push(),e.fill(255),e.noStroke(),a(),e.drawingContext.clip(),e.noStroke(),e.fill(0); let s=(a,l,m,d,g)=>{if(!w&&(l>2||m>7)||w&&(l>1.8||m>1.8))return 0; if(a==(w?4:5)||f()>.7&&a>(w?2:3)){let b=f(2*_.PI);$.shader(r),r.setUniform("a",_.color((360+i+f(-u,u))%360,n+f(0,p),c+f(0,v))._array),r.setUniform("b",_.color((360+i+f(-u,u))%360,n+f(-p,0),c+f(-v,0))._array),r.setUniform("c",[d*o+2,g*o+2]),r.setUniform("d",w?o/t:4),r.setUniform("t",b),$.rect(-.5,-.5,d+2/o,g+2/o),e.image($,l-1/o,m-1/o,d+2/o,g+2/o,0,0,d*o+2,g*o+2)}else if(M()){let h=f(.3,.7),k=f(.3,.7);s(a+1,l,m,d*h,g*k),s(a+1,l+d*h,m,d*(1-h),g*k),h=f(.3,.7),s(a+1,l,m+g*k,d*h,g*(1-k)),s(a+1,l+d*h,m+g*k,d*(1-h),g*(1-k))}else{let x=f(.3,.7),S=f(.3,.7);s(a+1,l,m,d*x,g*S),s(a+1,l,m+g*S,d*x,g*(1-S)),S=f(.3,.7),s(a+1,l+d*x,m,d*(1-x),g*S),s(a+1,l+d*x,m+g*S,d*(1-x),g*(1-S))}};s(0,0,0,w?1.8:7,w?1.8:7),e.pop(),w?_.image(e,b,h,k,16*k/9):0==x?_.image(e,b,h,2*k,7*k):(_.push(),_.translate(b+2*k,h),_.scale(-1,1),_.image(e,0,0,2*k,7*k),_.pop()) }_. setup=()=>{ t=9*_.min(_.windowWidth/9,_.windowHeight/16),_.createCanvas(t,16*t/9),o=600,($=_.createGraphics(o,o,_.WEBGL)).noStroke(),$.scale(o),(e=_.createGraphics(t,16*t/9)).noStroke(),e.scale(t),r=$.createShader("precision mediump float;attribute vec3 aPosition;attribute vec2 aTexCoord;varying vec2 uv;uniform mat4 uModelViewMatrix;uniform mat4 uProjectionMatrix;void main(){uv=aTexCoord;gl_Position=uProjectionMatrix*uModelViewMatrix*vec4(aPosition,1.);}","precision mediump float;varying vec2 uv;uniform vec3 a;uniform vec3 b;uniform vec2 c;uniform float d;uniform float t;float rn(vec2 p){return fract(sin(dot(p,vec2(12.9898,78.23352)))*43758.5453123);}void main(){vec2 p=uv-.5;p*=length(c)/c.yx;p=mat2(cos(t),-sin(t),sin(t),cos(t))*p;vec3 o=mix(a,b,smoothstep(.1,.9,p.x+sin((3.125+2.721*cos(t*4.97))*p.y)*(.09+.02*rn(floor(gl_FragCoord.xy/d)+vec2(14.1611,19.4169)))+rn(floor(gl_FragCoord.xy/d))));o=vec3(.5-.53*cos(2.5*o.r+.3),.38-.65*cos(1.8*o.g+.9),.58+.62*asin(1.3*o.b-.75));o=pow(o*.86+.04,vec3(0.98))+.04;o+=.06*rn(floor(gl_FragCoord.xy/d)*.03+vec2(31.415,19.941))-.03;gl_FragColor=vec4(o,1.);}"),_.colorMode(_.HSB),i=e.beginShape,a=e.vertex,n=e.endShape,S=_.sqrt,c=e.rect,s=e.ellipse,l=e.circle,f=(_,$)=>_?$?R.random_num(_,$):R.random_dec(_):R.random_dec(1) },_. draw=()=>{ _.background(100),_.noStroke();let $=M(24),r=[0,1,2,3];for(let a=4;a>1;a--){let s=r[a-1];r[a-1]=r[$%a],r[$%a]=s,$=_.int($/a)}$=M(6);let l=M(2),x=M(4),S=M(4);0==S?(u=f(30,50),p=f(8,16),v=f(8,16)):1==S?(u=f(8,18),p=f(25,40),v=f(5,14)):2==S?(u=f(8,18),p=f(5,14),v=f(24,32)):(u=f(16,20),p=f(12,18),v=f(12,18)),g=f(-.5,.5),b=0,h=0,k=t,w=1;let y,F,G,I,j,B,H;switch(l){case 0:G=f(-_.PI/4,_.PI/4),S=-.5;for(let T=0;T<10;T++)F=f(.05,.2),P($=>{i(),C([0,S-_.sin(G)/2,1,S+_.sin(G)/2,1,S+_.sin(G)/2+F,0,S-_.sin(G)/2+F]),n()},([0,100,220,300][x]+50*_.sin(2*T+G))%360,20+45*_.sin(1.4*T+.3*G),85-25*_.sin(1.4*T+.3*G)),S+=F-.01;P(_=>{for(let $=0;$<1;$+=f(.03,.06))c($,.7-f()**4.8*.15,f(.015,.035),1)},[0,100,220,300][x],4,70),P(_=>{for(let $=0;$<1;$+=f(.02,.04))c($,.75-f()**3.6*.15,f(.02,.04),1)},[0,100,220,300][x],8,45),P(_=>{for(let $=0;$<1;$+=f(.008,.024))c($,.8-f()**2.4*.15,f(.012,.06),1);c(0,.9,1,1)},[0,100,220,300][x],12,16),S=f(1.1,1.3);for(let V=10;V<20;V++)F=f(.05,.2),P($=>{i(),C([0,S-_.sin(G)/2,1,S+_.sin(G)/2,1,S+_.sin(G)/2+F,0,S-_.sin(G)/2+F]),n()},([0,100,220,300][x]+50*_.sin(2*V+G))%360,20+45*_.sin(1.4*V+.3*G),85-25*_.sin(1.4*V+.3*G)),S+=F-.01;break;case 1:G=4+M(3),P(_=>{c(0,0,1,1.8)},[0,247,180,30][x],[-50,40,-4,75][x],[80,50,90,65][x]),m=f(1.35,1.8),d=f(-.1,.1);for(let W=0;W<G;W++)y=.4*_.sin(W*m+d)+.5+f(-.1,.1),S=f(.7,1.1),F=f(.15,.3),P(_=>{c(y-F/2,1.2-S,F,S)},[0,247,180,30][x],[-50,30,2,10][x],[f(20,50),f(10,20),f(35,70),f(10,40)][x]),I=2+M(3),j=6+M(6),B=f(.1,.5)*F/I,H=f(.1,.6)*S/j,P(_=>{for(let $=0;$<I;$++)for(let e=0;e<j;e++)c(y-F/2+F/(I+1)*($+1)-B/2,1.2-S+S/(j+1)*(e+1)-H/2,B,H)},60,60,105);P(_=>{c(0,1.2,1,.6)},[0,247,180,30][x],[-50,10,2,10][x],[20,10,35,10][x])}switch(e.resizeCanvas(2*o,7*o),e.noStroke(),e.scale(o),w=0,l=$,x=M(),l){case 0:k=f(.3*t,.45*t),b=t/2-k,h=-(.05*k),U(r[0]);break;case 1:k=f(.24*t,.3*t),b=t/2-2*k,h=.15*t-.2*k,U(r[0]),b=t/2,U(r[1]);break;case 2:k=f(.18*t,.24*t),b=t/2+(x?-(2*k):0),h=.18*t-.18*k,U(r[0]),k*=1.5,b=t/2-k*(x?.5:1.5),h=-(.1*k),U(r[1]);break;case 3:k=f(.18*t,.21*t),b=t/2-2.5*k,h=1.1*k,U(r[0]),b=t/2+.5*k,U(r[1]),k*=1.3,b=t/2-k,h=.16*t-.4*k,U(r[2]);break;case 4:k=f(.16*t,.18*t),b=t/2+k*(x?-2.8:.8),h=.12*t+k/6,U(r[0]),k*=1.07,b=t/2-k*(x?1.2:.8),U(r[1]),k*=1.5,b=t/2-k*(x?.1:1.9),h=.12*t,U(r[2]);break;case 5:k=f(.16*t,.18*t),b=t/2-k*(x?.3:1.7),h=.275*t-.42*k,U(r[0]),b=t/2+k*(x?-3:1),U(r[1]),k*=1.2,b=t/2-k*(x?1.5:.5),U(r[2]),b=t/2+k*(x?.8:-2.8),U(r[3])}noLoop()};let M=($=2)=>_.int(f($)),U=_=>{x=0==_?1:M();let $,e,o;switch(_){case 0:$=M(),P(()=>{i(),y(1.4,.9,1,.5,1,.9),y(1,.5,.6,.9,1,.9),y(.6,1.3,1,1.4,1,1.3),y(1,1.4,1.4,1.3,1,1.3),n()},$?203:44,$?71:59,$?19:13),P(()=>{i(),y(1.3,.8,1,.4,.7,.8),y(1,.4,.7,.8,1.3,.8),y(.7,.8,1,.6,1.1,.9),y(1,.6,1.3,.8,.9,.9),n()},$?191:55,$?66:78,$?96:95),$=M(3),P(()=>{c(.9,1.4,.2,.5)},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(1.3,1.1,1.4,1.2,1.3,1.2),y(1.4,1.2,1.3,1.3,1.3,1.2),n(),i(),y(.7,1.1,.6,1.2,.7,1.2),y(.6,1.2,.7,1.3,.7,1.2),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(.7,1.3,1,1.5,1.1,1),y(1,1.5,1.3,1.3,.9,1),y(1.3,1,1,.8,1,1),y(1,.8,.7,1,1,1),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),a(.25,3),y(.2,3.9,.3,4.5,.3,4.15),a(1,3),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),e=M(),P(()=>{c(.57,6,.36,.4),c(.97,6,.36,.4)},e?316:90,-2,102),P(()=>{i(),y(.5,6.4,.7,6.2,.7,6.4),y(.7,6.2,.9,6.4,.7,6.4),n(),i(),y(.96,6.4,1.15,6.2,1.15,6.4),y(1.15,6.2,1.35,6.4,1.15,6.4),n()},e?316:90,-2,102),P(()=>{c(.49,6.4,.45,.1),c(.96,6.4,.39,.1)},40,98,74),P(()=>{i(),y(.8,4.8,0,3,1,3),y(0,3,.2,1.8,-1,1.5),a(.5,2.1),n()},e?316:92,e?25:50,e?99:93),P(()=>{i(),C([1.8,2,1.5,2.2,1.5,2.9,.5,3.1,.5,2.1,.2,1.8,.9,1.6,1,1.8,1.1,1.6]),n()},e?316:92,e?25:50,e?99:93),P(()=>{i(),y(1.5,3,2,6,0,6),y(2,6,1,6.2,1,-9),y(1,6.2,0,6,1,-9),y(0,6,.5,3.2,-9,-5),n()},e?316:92,e?25:50,e?99:93),P(()=>{i(),y(1.7,3.9,1.6,4.5,1.6,4.15),y(1.6,4.5,1.5,4.2,1.6,4.15),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(1.8,2,2,3.4,0,4),y(2,3.4,1.5,4.2,1,3),a(1.5,2.2),n()},e?316:92,e?25:50,e?99:93),P(()=>{i(),C([1,1.8,1.1,1.6,1.3,1.71,1.1,2.1]),n()},e?316:92,e?40:65,e?88:82),P(()=>{i(),C([.9,1.6,.7,1.65,.85,2.1,.95,2.1,1.3,3,1.1,2.1,1,1.8]),n()},e?316:92,e?40:65,e?88:82),P(()=>{i(),C([.5,3,1.5,2.8,1.5,3,.5,3.2]),n()},e?316:92,e?58:99,e?95:76),P(()=>{i(),C([1,3,1.2,3.1,1.1,3.2,1,3,.85,3.2,1,3.25]),n()},e?316:92,e?58:99,e?95:76);break;case 1:e=M(),P(()=>{i(),y(1.7,2,1.6,1.5,1.7,1.5),y(1.6,1,1.1,.5,1.1,1),y(1,.5,.6,.9,1,.9),y(.6,1.5,.3,2,.3,1.5),n()},e?51:264,e?85:38,97),$=M(3),P(()=>{c(.9,1.4,.2,.5)},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),a(.7,1),y(.7,1.3,.9,1.5,1.5,1.28),y(.9,1.5,1.3,1.3,.9,1),a(1.3,1),y(1,1,.9,.8,1.1,.8),y(.9,.8,.8,1,.7,.8),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),a(.25,3),y(.2,3.9,.3,4.5,.3,4.15),a(1,3),y(1.8,4.5,1.9,3.9,1.8,4.15),a(1.95,3),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),C([.7,.9,.9,.8,1.3,.9,1.3,.8,1,.7,.9,.45,.85,.7,.7,.8]),n(),i(),C([.7,.8,.7,.7,.55,.6]),n(),i(),C([1.3,.8,1.3,.7,1.4,.6]),n()},e?43:223,e?96:4,e?84:67),P(()=>{c(.52,6,.36,.4),c(1.4,6,.36,.4)},21,72,57),P(()=>{i(),y(.5,6.4,.7,6.2,.7,6.4),y(.7,6.2,.9,6.4,.7,6.4),n(),i(),y(1.5,6.4,1.7,6.2,1.7,6.4),y(1.7,6.2,1.9,6.4,1.7,6.4),n()},21,72,57),P(()=>{c(.5,6.4,.4,.1),c(1.4,6.4,.5,.1)},22,87,35),P(()=>{i(),C([.9,1.6,1,1.9,1.1,1.6]),y(1.7,1.9,2,3,-9,3),y(2,3,1.5,3.5,1,2.5),y(.5,3.5,0,3,1,2.5),y(0,3,.3,1.9,-1,1.5),n()},e?40:227,2,99),P(()=>{i(),C([.9,1.6,1,1.9,1.1,1.6]),y(1.3,1.7,1.1,1.9,1.1,1.7),a(1,2.3),y(.9,1.9,.7,1.7,.9,1.7),n()},e?40:227,9,99),P(()=>{i(),C([1.5,2.9,1.5,1.8,1.6,1.85]),n(),i(),C([.5,2.9,.5,1.8,.4,1.85]),n()},32,79,53),$=M(),P(()=>{i(),y(1.5,3,1.9,5,1,5),y(1.9,5.9,1.2,6,1.5,5.8),y(1.2,5,1,4,0,5),a(1,3),n()},$?33:208,98,$?67:62),P(()=>{i(),a(1.1,3),y(1.1,6,.2,5.9,.75,5),y(.2,5.9,.5,3.1,2,6),n()},$?33:208,98,$?67:62),P(()=>{i(),y(1,2.9,1.5,2.8,1,2.8),y(1.5,3,1,3.1,1,3),C([.5,3.1,.5,2.9]),n()},$?37:201,$?79:67,$?97:90),P(()=>{l(1,3,.4)},e?43:223,e?96:4,e?84:67);break;case 2:e=M(),P(()=>{i(),a(1.5,2),y(1.5,1,1,.5,1,1),y(1,.5,.5,1,1,1),a(.5,2),n()},e?310:192,e?59:74,98),P(()=>{i(),C([.7,1.2,.8,1.2]),y(.8,1,1.15,.7,1.15,1),y(1.15,.7,1.4,.9,1.15,.9),y(1.4,.9,1.15,.6,1.15,.9),y(1.15,.6,.7,1,1.15,1),n()},317,90,10),P(()=>{i(),y(1.12,.35,.9,.51,1.12,.51),y(.9,.51,1.12,.65,1.12,.51),y(1.15,.65,1.35,.52,1.15,.52),y(1.35,.52,1.15,.35,1.15,.52),n()},e?310:192,e?59:74,98),$=M(3),P(()=>{c(1,1.4,.2,.5),c(.5,2,1,1)},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(.8,1.1,.7,1.2,.8,1.2),y(.7,1.2,.8,1.3,.8,1.2),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),a(.8,1),y(.8,1.3,1.2,1.5,1.2,1),y(1.2,1.5,1.4,1.3,.6,1.28),a(1.4,1),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(1.5,4.2,1.4,5,0,3),C([1.4,6.2,1,6.2,1,4.2]),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(1.2,4.1,.9,5,-6,2),C([.6,6.2,.2,6.2,.5,5,.5,4]),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),o=M(),P(()=>{c(.5,2.9,1,.2)},o?223:284,o?43:53,69),P(()=>{i(),C([.6,1.8,.7,1.7,1.2,1.7,1.4,1.8,1.6,2.1]),y(1.6,2.8,1.4,2.7,2,2),y(1.4,2.7,.6,2.9,0,2),n()},o?225:285,0,100),P(()=>{i(),C([1.4,1.8,1.2,1.5,1.2,1.7,1,1.6,1,1.5,.9,1.5,.7,1.7]),y(1.3,2.1,1.2,1.7,0,2.5),y(1.2,1.7,1.4,2,0,2.3),n()},o?225:285,7,100),P(()=>{i(),y(1.5,3.1,1.7,4.2,0,5),y(1.7,4.2,1.2,4.3,1.35,4),a(1,3.1),n()},o?224:284,o?94:96,o?60:49),P(()=>{i(),y(.5,3.1,.2,4.1,2,4.2),y(.2,4.1,1.2,4.3,.9,4),y(1.2,4.3,1.3,3.5,0,3),a(1.3,3.1),n()},o?224:284,o?94:96,o?60:49),P(()=>{i(),y(1.38,2.5,1.48,2.7,.4,2.7),y(1.48,2.7,1.4,2.8,1.4,2.7),y(1.4,2.8,1.3,2.7,1.4,2.7),y(1.3,2.7,1.38,2.5,2.4,2.7),n()},e?318:198,e?96:93,e?97:99),P(()=>{c(1,5.3,.4,1),i(),C([.2,6.2,.6,6.2,.83,5.3,.45,5.2]),n()},e?308:186,e?27:40,e?100:98),P(()=>{i(),y(.6,4,.7,4.25,0,4.25),y(.7,4.25,.55,4.5,.55,4.25),y(.55,4.5,.38,4.1,.55,4.1),C([.4,4,.3,3,.6,3]),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),C([.6,1.8,.3,2]),y(0,2.9,.6,3.2,.6,2),n()},o?225:285,0,100),P(()=>{i(),i(),C([.8,2.9,.7,1.7,.5,1.85]),n()},197,92,7),P(()=>{c(.2,6.2,.4,.2),c(1,6.2,.4,.2)},e?317:190,e?72:90,e?98:90),P(()=>{i(),y(.2,6.4,.4,6.2,.4,6.4),y(.4,6.2,.6,6.4,.4,6.4),n(),i(),y(1.2,6.4,1.4,6.2,1.4,6.4),y(1.4,6.2,1.6,6.4,1.4,6.4),n()},e?317:190,e?72:90,e?98:90),P(()=>{c(.2,6.4,.4,.1),c(1,6.4,.6,.1)},e?317:190,e?97:99,e?69:59);break;case 3:$=M(3),P(()=>{i(),y(1.3,1.1,1.4,1.2,1.3,1.2),y(1.4,1.2,1.3,1.3,1.3,1.2),n(),i(),y(.7,1.1,.6,1.2,.7,1.2),y(.6,1.2,.7,1.3,.7,1.2),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),e=M(),P(()=>{i(),C([.6,1.1,.7,1.2,1.3,1.2,1.4,1.1]),y(1.4,.9,1.35,.7,1.2,.9),C([1.5,.3,1.2,.6,1,.3,.8,.6,.5,.3]),y(.65,.7,.6,.9,.8,.9),n()},e?81:270,78,8),P(()=>{c(.9,1.4,.2,.5)},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(.7,1.3,1,1.5,1.1,1),y(1,1.5,1.3,1.3,.9,1),y(1.3,1,1.2,.8,0,1.1),C([1.07,.93,1.1,1,1.1,1.1,1.08,1,1.05,.95,1,1,.95,.95,.92,1,.9,1.1,.9,1,.93,.93]),y(.8,.8,.7,1,2,1.1),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),y(1.6,3.5,1.9,4.2,1.5,4.2),y(1.9,4.2,1.75,4.4,1.77,4.2),y(2),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),C([.8,1.7,1.2,1.7,1,3]),n()},e?81:270,e?89:29,e?18:95),P(()=>{i(),C([1.05,1.7,1.15,1.8,1.3,1.7,1.1,1.6,1.05,1.7,1,1.8,.7,1.7,.9,1.6,1.05,1.7]),n()},e?81:270,e?94:34,e?18:95),$=M(),P(()=>{i(),y(1.9,3,2,3.95,-9,4.3),C([1.5,4,1.5,1.8,1.8,1.8]),n()},$?241:304,$?96:93,$?48:28),P(()=>{i(),C([1.6,2.8,1.5,3,.5,3,.2,1.9,.4,1.8,1.1,2,1.5,1.7,1.8,1.8]),y(1.7,2.2,1.6,2.8,1,1),n()},$?241:304,$?96:93,$?48:28),P(()=>{i(),C([.2,1.8,1.15,2.7,1.6,1.7,1.3,1.65,1.1,2,.7,1.7]),n()},$?241:304,$?83:65,$?65:37),P(()=>{c(.5,6,.4,.4),c(1.05,6,.4,.4)},$?241:304,$?97:93,$?34:18),P(()=>{i(),y(.45,6.4,.65,6.2,.65,6.4),y(.65,6.2,.85,6.4,.65,6.4),n(),i(),y(1.15,6.4,1.35,6.2,1.35,6.4),y(1.35,6.2,1.55,6.4,1.35,6.4),n()},$?241:304,$?97:93,$?34:18),P(()=>{c(.45,6.4,.45,.1),c(1.05,6.4,.5,.1)},$?240:303,96,$?21:9),P(()=>{i(),y(1.58,3,1.75,4.5,0,5),y(1.75,5.9,1,6,1.3,5.9),a(1,3),n()},$?241:304,$?96:93,$?48:28),P(()=>{i(),y(1.2,3.5,1,6,0,3),y(1,6,.2,5.95,.7,5),C([.5,3,1.2,3]),n()},$?241:304,$?96:93,$?48:28),P(()=>{i(),C([.5,2.9,.5,3.1]),y(1.4,3.1,1.58,3,1.4,3),y(1.6,2.8,1.4,2.9,1.4,2.8),n()},$?240:303,96,$?21:9),P(()=>{i(),y(.5,3.8,.6,4.1,0,4.1),y(.6,4.1,.5,4.4,.5,4.1),y(.5,4.4,.3,4.1,.5,4.1),a(.3,3.5),n()},[26,26,15][$],[37,15,50][$],[97,99,41][$]),P(()=>{i(),a(.5,2.3),y(.5,2.9,.65,3.9,2,2),y(.2,4,0,3,2,2),y(0,3,.2,1.9,2,4),n()},$?241:304,$?96:93,$?48:28),P(()=>{i(),C([1,2.2,1.1,2,1.2,2.1,1.4,1.65,1.2,1.6,1.1,2,.8,1.6,.6,1.7]),n()},$?241:304,$?83:65,$?65:37)}}},myp5=new p5(mS); }],
[1 ,()=>{console.log("Artist 58. Luke Shannon -- platform 1 "); p5.disableFriendlyErrors=!0; let ptmargin,paths,pts,flip,A_R=16/9,D_S=900,DIM=Math.min(window.innerWidth,window.innerHeight/A_R),SZ=DIM/D_S,pxDensity=4,seed="";function presetup(){canvas=createCanvas(DIM,DIM*A_R),setupUseful(),pixelDensity(pxDensity),print("Thank you to p5"),print("and Bright Moments"),print("and many others!")} setup=()=>{presetup();let t=[],e=rnd(7,7);for(let i=0;i<e;i++){let e=.2;ptmargin=60*SZ;let i=new Poly(Poly.personpoints(),rnd(W*e,W*(1-e))-ptmargin,rnd(H*e,H*(1-e))-ptmargin,rnd(200,500)*SZ,PI,1);i.distort(100*SZ,500*SZ,rnd(1e3)),t.push(i)}pts=poissonSample(0,0,width-2*ptmargin,height-2*ptmargin,((e,i)=>{let s=sdfPolys(t,vec(e,i))*SZ;return Math.pow(s,.4)}),trueMinR=2*SZ,k=20),print(SZ);paths=generatePathsWithinPercent(pts,20,.00625,.025*1.75,W,H),flip=rnd()<.1};mousePressed=()=>{mouseX>0&&mouseX<width&&mouseY>0&&mouseY<height&&(flip=!flip)};draw=()=>{background(255),translate(ptmargin,ptmargin),paths=extendPaths(paths,1),fill(0),stroke(0),strokeWeight(SZ),flip?globalQuadTree.query({x:0,y:0,width:width,height:height}).forEach((t=>{circle(t.x,t.y,SZ)})):paths.forEach((t=>{t.forEach((t=>{circle(t.x,t.y,SZ)}))}))};class Quadtree{constructor(t,e){this.boundary=t,this.capacity=e,this.points=[],this.divided=!1}contains(t){return!!this.inBoundary(t)&&(!!this.points.some((e=>e.x===t.x&&e.y===t.y))||!!this.divided&&(this.northeast.contains(t)||this.northwest.contains(t)||this.southeast.contains(t)||this.southwest.contains(t)))}insert(t){return!!this.inBoundary(t)&&(this.points.length<this.capacity?(this.points.push(t),!0):(this.divided||this.subdivide(),this.northeast.insert(t)||this.northwest.insert(t)||this.southeast.insert(t)||this.southwest.insert(t)))}inBoundary(t){return t.x>=this.boundary.x&&t.x<=this.boundary.x+this.boundary.width&&t.y>=this.boundary.y&&t.y<=this.boundary.y+this.boundary.height}subdivide(){const{x:t,y:e,width:i,height:s}=this.boundary;this.northeast=new Quadtree({x:t+i/2,y:e,width:i/2,height:s/2},this.capacity),this.northwest=new Quadtree({x:t,y:e,width:i/2,height:s/2},this.capacity),this.southeast=new Quadtree({x:t+i/2,y:e+s/2,width:i/2,height:s/2},this.capacity),this.southwest=new Quadtree({x:t,y:e+s/2,width:i/2,height:s/2},this.capacity),this.divided=!0}remove(t){if(!this.inBoundary(t))return!1;let e=this.points.findIndex((e=>e.x===t.x&&e.y===t.y));return-1!==e?(this.points.splice(e,1),!0):!!this.divided&&(this.northeast.remove(t)||this.northwest.remove(t)||this.southeast.remove(t)||this.southwest.remove(t))}query(t,e=[]){if(e||(e=[]),!this.intersects(t))return e;for(let i of this.points)i.x>=t.x-t.width&&i.x<=t.x+t.width&&i.y>=t.y-t.height&&i.y<=t.y+t.height&&e.push(i);return this.divided&&(this.northwest.query(t,e),this.northeast.query(t,e),this.southwest.query(t,e),this.southeast.query(t,e)),e}intersects(t){return!(t.x-t.width>this.boundary.x+this.boundary.width||t.x+t.width<this.boundary.x-this.boundary.width||t.y-t.height>this.boundary.y+this.boundary.height||t.y+t.height<this.boundary.y-this.boundary.height)}distanceToBoundary(t){const e=Math.max(this.boundary.x-this.boundary.width-t.x,0,t.x-this.boundary.x-this.boundary.width),i=Math.max(this.boundary.y-this.boundary.height-t.y,0,t.y-this.boundary.y-this.boundary.height);return Math.sqrt(e*e+i*i)}nearest(t,e=1/0,i=null){if(this.distanceToBoundary(t)>e)return{nearestPoint:i,minimumDistance:e};if(this.points.forEach((s=>{const n=Math.hypot(s.x-t.x,s.y-t.y);n<e&&(e=n,i=s)})),this.divided){const s=this.northeast.nearest(t,e,i);s.minimumDistance<e&&(e=s.minimumDistance,i=s.nearestPoint);const n=this.northwest.nearest(t,e,i);n.minimumDistance<e&&(e=n.minimumDistance,i=n.nearestPoint);const r=this.southeast.nearest(t,e,i);r.minimumDistance<e&&(e=r.minimumDistance,i=r.nearestPoint);const h=this.southwest.nearest(t,e,i);h.minimumDistance<e&&(e=h.minimumDistance,i=h.nearestPoint)}return{nearestPoint:i,minimumDistance:e}}}let rnd,sn,vec,canvas,W,H,globalQuadTree=null;function initGlobalQuadTree(t,e,i){globalQuadTree=new Quadtree({x:0,y:0,width:e,height:i},4),t.forEach((t=>globalQuadTree.insert(t)))}function generatePathsWithinPercent(t,e,i,s,n,r){globalQuadTree||initGlobalQuadTree(t,n,r);let h=[];for(let o=0;o<e;o++){let e=[],o={x:Math.random()*n,y:Math.random()*r},a=globalQuadTree.nearest(o).nearestPoint;if(!a)break;const d=Math.random()*(s-i)+i;for(;e.length<t.length*d;){e.push(a),globalQuadTree.remove(a);let t=globalQuadTree.nearest(a).nearestPoint;if(!t)break;a=t}h.push(e)}return h}function extendPaths(t,e){let i=[];return t.forEach((t=>{for(let s=0;s<e;s++){t.length>0&&i.push(t.pop());let e=t.length>0?t[0]:null,s=globalQuadTree.nearest(e).nearestPoint;if(!s)break;globalQuadTree.remove(s),t.unshift(s)}})),i.forEach((t=>globalQuadTree.insert(t))),t}function sdfPolys(t,e,i=1){let s=999999999;return t.map((t=>{let i=sdfPoly(t.shape,e);s=i>0?min(s,i):s})),min(abs(s),999999999)}function sdfPoly(t,e){let i=t.length,s=p5.Vector.dot(p5.Vector.sub(e,t[0]),p5.Vector.sub(e,t[0])),n=1;for(let r=0,h=i-1;r<i;h=r,r++){let i=p5.Vector.sub(t[h],t[r]),o=p5.Vector.sub(e,t[r]),a=p5.Vector.sub(o,p5.Vector.mult(i,constrain(p5.Vector.dot(o,i)/p5.Vector.dot(i,i),0,1)));s=min(s,p5.Vector.dot(a,a));let d=vec(e.y>=t[r].y,e.y<t[h].y,i.x*o.y>i.y*o.x);(d.x&&d.y&&d.z||!d.x&&!d.y&&!d.z)&&(n*=-1)}return n*sqrt(s)}function poissonSample(t,e,i,s,n,r=2,h=30){let o,a,d=(t,e)=>{o=max(r,n(t,e)),a=2*o},u=[],l=[],c=r/sqrt(2);for(let t=0;t<i;t+=c){let t=[];for(let e=0;e<s;e+=c)t.push(0);l.push(t)}let b=t=>{let e=floor(t.x/c),i=floor(t.y/c);l[e][i]=t,u.push(t)},y=(t,e=a)=>{let i=ceil(e/c),s=floor(t.x/c),n=floor(t.y/c);for(let e=s-i;e<=s+i;e++)for(let s=n-i;s<=n+i;s++){if(e>=l.length||s>=l[0].length||e<0||s<0)continue;let i=l[e][s];if(i&&dist(t.x,t.y,i.x,i.y)<o)return!1}return!0},p=[],m=createVector(rnd(t,t+i),rnd(e,e+s));for(p.push(m),b(m);p.length;){let n=floor(rnd(p.length)),r=p[n];d(r.x,r.y);let u=!0;for(let n=0;n<h;n++){let n=createVector(0,rnd(o,a));n.rotate(rnd(TAU));let h=p5.Vector.add(r,n);if(!(h.x<t||h.x>=t+i||h.y<e||h.y>=e+s)&&y(h)){p.push(h),b(h),u=!1;break}}u&&p.splice(n,1)}return u}class Poly{constructor(t,e=0,i=0,s=1,n=0,r=!0){this.shape=t.map((t=>{let r=vec(t.x,t.y);return r.rotate(n),vec(e+r.x*s,i+r.y*s)})),this.closed=r,this.inactive=[],this.inactive.length=this.shape.length,this.findBBox(),this.tex=null}static personpoints(){let t=[[99,371],[132,342],[155,300],[206,220],[232,163],[270,16],[230,86],[215,122],[203,152],[170,207],[144,238],[128,246],[147,196],[176,86],[184,24],[192,-41],[207,-189],[212,-282],[215,-441],[210,-454],[174,-394],[167,-378],[143,-282],[124,-213],[94,-109],[91,-101],[75,48],[56,-37],[24,-125],[-5,-234],[-37,-313],[-81,-390],[-125,-480],[-122,-450],[-113,-348],[-90,-205],[-69,-97],[-40,-16],[-4,103],[34,215],[47,254],[31,234],[4,191],[-29,130],[-70,60],[-112,6],[-90,59],[-46,170],[-9,268],[14,330],[40,359],[47,379],[42,394],[35,410],[38,423],[48,438],[70,452],[87,444],[107,430],[108,403],[96,38]].map((t=>vec(t[0],t[1])));return t.reverse(),t=t.map((t=>t.div(1e3))),t}static circle(t,e,i,s=.1){let n=[];for(let r=0;r<TAU;r+=s)n.push(vec(t+cos(r)*i,e+sin(r)*i));return new Poly(n)}onCanvas(t=0,e=width,i=0,s=height){return this.bbl>t&&this.bbr<e&&this.bbt>i&&this.bbb<s}findBBox(){this.bbl=999999,this.bbr=-999999,this.bbt=999999,this.bbb=-999999;for(let t of this.shape)t.x<this.bbl&&(this.bbl=t.x),t.x>this.bbr&&(this.bbr=t.x),t.y<this.bbt&&(this.bbt=t.y),t.y>this.bbb&&(this.bbb=t.y)}distort(t=100,e=500,i=0,s=!1){this.shape=this.shape.map((n=>vec(n.x+(s?rnd(-t,t):t*sn(n.x/e,n.y/e,100+i)),n.y+(s?rnd(-t,t):t*sn(n.x/e,n.y/e,1e3+i))))),this.findBBox()}resize(t,e,i,s,n=0){this.findBBox(),i=i??this.bbr-this.bbl,s=s??this.bbb-this.bbt;let r=vec((this.bbl+this.bbr)/2,(this.bbb+this.bbt)/2);return this.shape=this.shape.map((n=>{let h=vec((n.x-r.y)*i/(this.bbr-this.bbl),(n.y-r.y)*s/(this.bbb-this.bbt));return vec(t+h.x,e+h.y)})),this.findBBox(),this}draw(t=!0,e=!1){push(),null!=this.c&&(-1==this.c?noFill():fill(this.c)),null!=this.sc&&(-1==this.sc?noStroke():stroke(this.sc)),t&&(beginShape(),this.shape.map((t=>{e?curveVertex(t.x,t.y):vertex(t.x,t.y)})),this.closed?endShape(CLOSE):endShape()),pop()}}function setupRandom(){randomSeed(R.random_int(0,1e16)),noiseSeed(R.random_int(0,1e16)),rnd=(t,e)=>t instanceof Array?R.random_choice(t):void 0===t?R.random_dec():void 0===e?R.random_num(0,t):R.random_num(t,e),sn=(t,e,i)=>map(noise(t,e,i),0,1,-1,1)} keyPressed=()=>{"s"===key&&saveMySVG()};function saveSVGElement(t,e){t.setAttribute("xmlns","http://www.w3.org/2000/svg");var i=t.outerHTML,s=new Blob(['<?xml version="1.0" standalone="no"?>\r\n',i],{type:"image/svg+xml;charset=utf-8"}),n=URL.createObjectURL(s),r=document.createElement("a");return r.href=n,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),t}function createSVGCanvas(t=!1){ns="http://www.w3.org/2000/svg",svg=document.createElementNS(ns,"svg"),groups=[],svg.setAttribute("width",width+"px"),svg.setAttribute("height",height+"px"),svg.setAttribute("viewBox","0 0 "+W+" "+H),svg.setAttribute("style","background-color:white;");let e=document.createElementNS(ns,"rect");e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",W),e.setAttribute("height",H),e.setAttribute("fill","white");let i=document.createElementNS(ns,"g");return i.appendChild(e),i.setAttribute("id","rays"),i.setAttribute("style",`stroke-linejoin:bevel; fill:none; stroke-width:${SZ}; stroke:black;`),svg.appendChild(i),(t?globalQuadTree.query({x:0,y:0,width:W,height:H}):paths.flat()).map((t=>{let e=document.createElementNS(ns,"circle");e.setAttribute("cx",t.x+ptmargin),e.setAttribute("cy",t.y+ptmargin),e.setAttribute("r",SZ),e.setAttribute("fill","black"),e.setAttribute("stroke","none"),i.appendChild(e)})),svg}function saveMySVG(){let t=parseInt(tokenData.tokenId)%1e6+"-recto.svg";saveSVGElement(createSVGCanvas(),t);let e=parseInt(tokenData.tokenId)%1e6+"-verso.svg";saveSVGElement(createSVGCanvas(!0),e)}function setupUseful(){setupRandom(),vec=createVector,W=width,H=height}p5.disableFriendlyErrors=!0;; }],
[1 ,()=>{console.log("Artist 31. Holger Lippmann -- platform 1 ");/* RadarScope (B&W/Junk), Holger Lippmann 2024, for Brightmoments VENEZIA https://www.e-art.co https://twitter.com/wowgreat ### NFT Art License ### https://www.nftlicense.org/ ### Code License ### Copyright © 2018 - 2024 CC 4.0 BY-NC-ND https://creativecommons.org/licenses/by-nc-nd/4.0/ */ ////////////////////////////////// my code here //let isHeadless = (/headless/).test(navigator.userAgent); let counter = 0; let isPaused = false; let pauseStartTime; let randnumb ; let ranSeeds = []; let ranSeedIndex = -1; let temp, schalt ; let startDiam; let diam,diam2; let arcStep,arcStep2; let speedGrow,speedGrow2; let maxAngle = 360 ; let cx, cy; let startingTime ; let dim, rr , rrr, ra, ra2, ra3, ra4 ; let changeMap = false ; let hoch ; let count ; let shiftX, shiftY ; let rot ; let rotVal ; let diamRaduis ; let doneRendering,isLoop = false; document.addEventListener('click', ()=>{ isLoop = !isLoop; if(isLoop&&doneRendering){ setup(); } }) document.addEventListener('keyup',e=>{ if(e.keyCode==32){ isLoop = !isLoop; if(isLoop&&doneRendering){ setup(); } }else if(e.keyCode==83&&doneRendering){ save('RadarScope_#'+tokenData.tokenId) } }) setup = function () { if(!ranSeeds.length){ for(let i=0;i<3;i++) ranSeeds.push(int(R.random_int(0,9999999))); } ranSeedIndex++; if(ranSeedIndex>2)ranSeedIndex=0; randomSeed(ranSeeds[ranSeedIndex]); let windowAspectRatio = windowWidth / windowHeight; let canvasWidth, canvasHeight; if (windowAspectRatio > 9 / 16) { canvasHeight = windowHeight; canvasWidth = windowHeight * 9 / 16; } else { canvasWidth = windowWidth; canvasHeight = windowWidth * 16 / 9; } createCanvas(canvasWidth, canvasHeight); frameCount= 0 ; count= 0 ; shiftX= random( - width/3, width/3 ) ; shiftY= random( - height/3, height/3 ) ; rotVal= random( 0.05, 0.2) ; rot= rotVal; frameRate( 5 ) ; dim= height*1.2 ; startDiam= height*1.8 ; diam= startDiam; diam2= startDiam; //speedGrow= 12 ; maxAngle= 360 ; // ra= random( 4, 30 ) ; // ra2= random( 4, 30 ) ; // ra3= random( 4, 40 ) ; // ra4= random( 4, 20 ) ; // arcStep= random( 2, 22 ) ; //speedGrow= random( 5, 12 ) ; // rrr= random( 2, 4 ) ; //hoch= random( 500, 2922 ) ; // randnumb= int ( R.random_int( 99999 ) ) ; diam= startDiam; background(0); loop(); doneRendering = false; } /* function setup2 ( ) { randomSeed(ranSeed); frameCount= 0 ; count= 0 ; shiftX= random( - width/3, width/3 ) ; shiftY= random( - height/3, height/3 ) ; rotVal= random( 0.05, 0.2) ; rot= rotVal; frameRate( 5 ) ; dim= height*1.2 ; startDiam= height*1.8 ; diam= startDiam; diam2= startDiam; //speedGrow= 12 ; //speedGrow2= 12 ; maxAngle= 360 ; ra= random( 4, 30 ) ; ra2= random( 4, 30 ) ; ra3= random( 4, 40 ) ; ra4= random( 4, 20 ) ; // arcStep= random( 2, 22 ) ; // speedGrow= random( 4, 9 ) ; rrr= random( 2, 4 ) ; //hoch= random( 500, 2922 ) ; randnumb= int ( R.random_int( 99999 ) ) ; diam= startDiam; background(0); } */ draw = function () { rot= rot+ rotVal; //temp= diam-= speedGrow; //temp= temp- 5 ; hoch= random( width, height ); /* rr= random( 0,100 ) ; if ( rr< 40 ) { arcStep= random( 10, 50); arcStep2= random( 1, 4); } else { speedGrow= random( 10, 30 ); speedGrow2= random( 10, 30 ); } */ arcStep= random( 10, 150); speedGrow= random(1,222)*width/800; arcStep2= random( 2, 11); speedGrow2= random(1,222)*width/800; translate( shiftX, shiftY) ; arcCircle( width/ 2, height/ 2, diam-= speedGrow, arcStep) ; if(random(0,100)<28 && frameCount<20) arcCircle2 ( width/ 2, height/ 2, diam2-= speedGrow2, arcStep2) ; if(random(0,100)<30){ noStroke(); fill([255,0][int(2*random())]); }else{ stroke([255,0][int(2*random())]); noFill( ) ; } noStroke(); fill([255,0][int(2*random())]); ellipse( width/ 2, height/ 2, 22*width/800, 22*width/800 ) ; } function arcCircle ( cirlX, cirlY, diamRaduis, arcStep ) { rot= rot+ rotVal; if ( count< 2 ) startDiam= ( height* 4 ) ; if ( count> 1 ) startDiam= width* 4 - 10*width/800 ; let angle = 0 ; let speed = arcStep; // let arcRadius = diamRaduis/ 2 ; //let x, y, x2, y2, x3, y3, x4, y4, x5, y5 ; noStroke( ) ; fill( 255 ) ; while ( angle< maxAngle) { /* x= int ( cirlX+ cos( radians( angle) ) * arcRadius) ; y= int ( cirlY+ sin( radians( angle) ) * arcRadius) ; x2= int ( cirlX+ cos( radians( angle) ) * arcRadius) ; y2= int ( cirlY+ sin( radians( angle) ) * arcRadius) ; x5= int ( cirlX+ cos( radians( angle) ) * arcRadius) ; y5= int ( cirlY+ sin( radians( angle) ) * arcRadius) ; */ arcStep= random( 2, 111) ; strokeCap( SQUARE) ; stroke( random(0,255)) ; strokeWeight( random(0,5)*width/800 ) ; if ( diamRaduis> width- 150*width/800 ) { arcStep= 5 ; } else { arcStep= random( 1, 20 ) ; } if ( count== 3 ) arcStep= 1 ; let radSrt = radians( angle) ; let radEnd = radians( angle+ arcStep) ; if (frameCount>3) fill( random(0,255) ) ; if ( frameCount< 2 ) arc( cirlX, cirlY, diamRaduis* 2, diamRaduis* 2, radSrt+ rot, radEnd+ rot -random( - 55, 55) ) ; arc( cirlX, cirlY, diamRaduis* 0.6, diamRaduis* 0.6, radSrt+ rot, radEnd+ rot -random( - 55, 55) ) ; noFill(); arc( cirlX, cirlY, diamRaduis* 0.6, diamRaduis* 0.6, radSrt+ rot, radEnd+ rot) ; arc( cirlX, cirlY, diamRaduis* 0.7, diamRaduis* 0.7, radSrt, radEnd- random( - 55, 55) ); angle+= speed; rr= random( 0,100 ) ; if ( rr< 24 ) { for ( let i = 0; i< diamRaduis; i+= 30*width/800 ) { noFill( ) ; stroke( [255,0][int(2*random())] ) ; strokeWeight( (1 + diamRaduis/ 400)*width/800 ) ; rr= random( 0,100 ) ; if ( rr< 33 ) { stroke( random(0,255) ) ; if(random(0,100)<30){ noStroke(); fill([255,0][int(2*random())]); }else{ stroke([255,0][int(2*random())]); noFill( ) ; } arc( cirlX, cirlY, i, i, radSrt , radEnd+ random( - 55, 55) ) ; arc( cirlX, cirlY, i, i, radSrt , radEnd+ random( - 55, 55) ) ; } else { arc( cirlX, cirlY, i, i, radSrt- random( - 0.03, 0.03), radEnd+ random( - 0.03, 0.03) ) ; arc( cirlX, cirlY, i, i, radSrt- random( - 0.03, 0.03), radEnd+ random( - 0.03, 0.03) ) ; } } } } if ( diamRaduis<= 10*width/800 ) { count= count+ 1 ; console.log( count) ; if ( count>= 2) { fill(0); ellipse( width/ 2, height/ 2, 22*width/800, 22*width/800 ) ; //noLoop(); //setup( ) ; } noLoop(); doneRendering = true; if(isLoop) setTimeout(setup, 6000); //setTimeout(setup, isHeadless?250000:6000); } } /* function resumeLoop() { count = 0; setup2(); loop(); } */ function arcCircle2 ( cirlX, cirlY, diamRaduis2, arcStep2 ) { rot= rot+ rotVal; if ( count< 2 ) startDiam= ( height* 4 ) ; if ( count> 1 ) startDiam= width* 4 - 10*width/800 ; let angle = 0 ; let speed2 = arcStep2; //let arcRadius2 = diamRaduis2/ 2 ; // let x, y, x2, y2, x3, y3, x4, y4, x5, y5 ; while ( angle< maxAngle) { /* x= int ( cirlX+ cos( radians( angle) ) * arcRadius2) ; y= int ( cirlY+ sin( radians( angle) ) * arcRadius2) ; x2= int ( cirlX+ cos( radians( angle) ) * arcRadius2) ; y2= int ( cirlY+ sin( radians( angle) ) * arcRadius2) ; x5= int ( cirlX+ cos( radians( angle) ) * arcRadius2) ; y5= int ( cirlY+ sin( radians( angle) ) * arcRadius2) ; */ arcStep2= random( 1, 2) ; strokeCap( SQUARE) ; if ( diamRaduis> width- 150*width/800 ) { arcStep= 1 ; } else { arcStep= random( 1, 2 ) ; } if ( count== 3 ) arcStep= 1 ; let radSrt = radians( angle) ; let radEnd = radians( angle+ arcStep2) ; noFill(); angle+= speed2*2; rr= random( 0,100 ) ; if ( rr< 15) { for ( let i = 0; i< diamRaduis2; i+= 33*width/800 ) { stroke( random(0,255) ) ; strokeWeight( (1 + diamRaduis2/400)*width/800 ) ; if ( random( 0,100 )< 66 ) { arc( cirlX, cirlY, i, i, radSrt, radEnd+ random(0,0.00003) ) ; } } } } } ////////////////////////////////// my code here END }],[1 ,()=>{console.log("Artist 35. Casey REAS -- platform 1 "); const headless = /HeadlessChrome/.test(window.navigator.userAgent); let myR; let pg; let nodes = []; let nodesToDraw = 1; let nodeOrder = []; let cblack = [0, 0, 0]; let cgray1 = [0, 0, 0.16]; let cgray2 = [0, 0, 0.33]; let cgray3 = [0, 0, 0.50]; let cgray4 = [0, 0, 0.67]; let cgray5 = [0, 0, 0.83]; let cwhite = [0, 0, 0.96]; let cnode = [cblack, cgray1, cgray2, cgray3, cgray4, cgray5, cwhite]; let _backDir; let _rotate; let _weightFactor; let xydivs = 11; let wonk = 0.35; let speedScalar = 0.2; let maxDistance; let xygap; let bigdim; let sameWeight; let sameThinWeight; let newBackground = true; setup = function () { createCanvas(window.innerWidth, window.innerHeight, WEBGL); pg = createGraphics(width, height, WEBGL); pixelDensity(); pg.colorMode(HSB, 360, 1, 1, 1); pg.setAttributes('alpha', false); defineNetwork(true); } draw = function () { if (newBackground) { defineBackground(); newBackground = false; } if (nodesToDraw < nodes.length - 1 && frameCount % 10 == 0) { nodesToDraw++; } pg.push(); pg.rotate(_rotate); for (let i = 0; i < nodesToDraw; i++) { nodes[i].displayNetwork(); } pg.pop(); beginShape(); texture(pg); vertex(-width / 2, -height / 2, 0, 0); vertex(width / 2, -height / 2, pg.width, 0); vertex(width / 2, height / 2, pg.width, pg.height); vertex(-width / 2, height / 2, 0, pg.height); endShape(); } keyPressed = function () { if (key == ' ') { defineNetwork(false); } } windowResized = function () { if (!headless) { resizeCanvas(window.innerWidth, window.innerHeight); pg.resizeCanvas(window.innerWidth, window.innerHeight); defineNetwork(true); } } function rollDice() { _backDir = myR.random_num(0, 1); _weightFactor = 0.12; _rotate = myR.random_num(0, TWO_PI); } function defineNetwork(bbb) { myR = Random(); //print(myR.random_num(0,1)); rollDice(); if (bbb) { newBackground = true; } nodesToDraw = 1; bigdim = max(width, height); xygap = bigdim / float(xydivs); maxDistance = dist(0, 0, bigdim, bigdim); sameWeight = xygap * _weightFactor; sameThinWeight = map(bigdim, 1920, 3840, 1.0, 2.0); sameThinWeight = max(0.5, sameThinWeight); nodes = [(xydivs + 7) * (xydivs + 7)]; nodeOrder = [nodes.length]; for (let i = 0; i < nodeOrder.length; i++) { nodeOrder[i] = i; } let nodeCount = 0; for (let x = -3; x <= xydivs + 3; x++) { for (let y = -3; y <= xydivs + 3; y++) { let xoff = 0; if (y % 2 == 0) { xoff = -xygap / 2.0; } let xx = myR.random_num(-xygap * wonk, xygap * wonk); let yy = myR.random_num(-xygap * wonk, xygap * wonk); let nx = map(x * xygap, 0, bigdim, -bigdim / 2 - xygap / 2, bigdim / 2 + xygap / 2); let ny = map(y * xygap, 0, bigdim, -bigdim / 2 - xygap / 2, bigdim / 2 + xygap / 2); nodes[nodeCount] = new Node(nx + xoff, ny, xx, yy); nodeCount++; } } //shuffle(nodes, true); fyshuffle(); buildConnections(); } function fyshuffle() { for (let x = nodes.length - 1; x > 0; x--) { let y = Math.floor(myR.random_num(0, x)); let temp = nodes[x]; nodes[x] = nodes[y]; nodes[y] = temp; } }; function defineBackground() { pg.noStroke(); pg.beginShape(); if (_backDir >= 0.5) { pg.fill(cblack); } else { pg.fill(cgray5); } pg.vertex(-width / 2, -height / 2); pg.vertex(width / 2, -height / 2); if (_backDir >= 0.5) { pg.fill(cgray5); } else { pg.fill(cblack); } pg.vertex(width / 2, height / 2); pg.vertex(-width / 2, height / 2); pg.endShape(); } function buildConnections() { for (let i = 0; i < nodes.length; i++) { nodes[i].setID(i); } for (let i = 0; i < nodes.length; i++) { nodes[i].buildNetwork(nodes); } } class Node { constructor(_x, _y, _xoff, _yoff) { this.x = _x + _xoff; this.y = _y + _yoff; this.newX = this.x; this.newY = this.y; this.centerDist = dist(0, 0, this.x, this.y); this.minimDist = dist(0, 0, xygap / 2, xygap / 2); this.totalConnections = 0; this.currentNet = 0; this.speed = []; this.weights = []; this.baseDist = dist(0, 0, xygap + (xygap / xydivs), xygap + (xygap / xydivs)); this.id = 0; this.otherNodes = []; this.connections = []; this.alphaLines = []; this.sending = []; this.c = cnode; this.easing = 0.04; this.currentC = []; this.nextC = []; } setID(_id) { this.id = _id; } buildNetwork(_others) { let potentialConnections = [_others.length]; let count = 0; for (let i = 0; i < _others.length; i++) { if (i != this.id) { let d = dist(this.x, this.y, _others[i].x, _others[i].y); if (d < this.baseDist) { potentialConnections[count] = _others[i]; count++; this.totalConnections++; } } } this.connections = subset(potentialConnections, 0, count); this.alphaLines = [this.connections.length]; this.sending = [this.connections.length]; this.speed = [this.connections.length]; this.currentC = [this.connections.length]; this.nextC = [this.connections.length]; this.weights = [this.connections.length]; this.currentNet = int(myR.random_num(0, this.connections.length)); let sharedColor = this.c[int(myR.random_num(0, this.c.length))]; for (let i = 0; i < this.connections.length; i++) { this.alphaLines[i] = 1.0; this.sending[i] = true; let distance = dist(this.x, this.y, this.connections[i].x, this.connections[i].y); this.speed[i] = map(distance, this.baseDist, this.minimDist, 0.02, 0.05); this.currentC[i] = sharedColor; this.h = hue(this.currentC[i]); this.s = saturation(this.currentC[i]); this.b = brightness(this.currentC[i]); this.nextC[i] = this.c[int(R.random_num(0, this.c.length))]; this.nh = hue(this.currentC[i]); this.ns = saturation(this.currentC[i]); this.nb = brightness(this.currentC[i]); this.weights[i] = sameWeight; } } displayNetwork() { if (this.connections.length > 0 && this.currentNet >= 0) { let i = this.currentNet; if (this.alphaLines[i] > 0.0) { this.x += (this.newX - this.x) * this.easing; this.y += (this.newY - this.y) * this.easing; let nextx = map(this.alphaLines[i], 0, 1, this.connections[i].x, this.x); let nexty = map(this.alphaLines[i], 0, 1, this.connections[i].y, this.y); let sw = map(this.alphaLines[i], 0, 1, this.weights[i], 1); if (abs(nextx - this.x) > 1.0) { pg.push(); pg.translate(xygap * 0.25, xygap * 0.25); pg.strokeWeight(sameThinWeight); pg.stroke(this.currentC[i][0], this.currentC[i][1], this.currentC[i][2], 0.01); pg.line(this.x, this.y, nextx, nexty); pg.pop(); pg.push(); pg.translate(this.x, this.y); let angle = atan2(nexty - this.y, nextx - this.x); pg.rotate(angle); let d = dist(this.x, this.y, nextx, nexty); let wide = sw * 0.5; let halfWide = wide; pg.beginShape(); pg.noStroke(); pg.fill(this.currentC[i][0], this.currentC[i][1], this.currentC[i][2], 0.05); pg.vertex(0, 0); pg.vertex(halfWide, wide); pg.fill(this.nextC[i][0], this.nextC[i][1], this.nextC[i][2], 0.05); pg.vertex(d - halfWide, wide); pg.vertex(d, 0); pg.endShape(); pg.pop(); } } else { this.alphaLines[i] = 1.0; this.currentC[i] = this.c[int(myR.random_num(0, this.c.length))]; this.nextC[i] = this.c[int(myR.random_num(0, this.c.length))]; this.currentNet = int(myR.random_num(0, this.alphaLines.length)); if (this.currentNet < 0) { this.currentNet = 0; } } this.alphaLines[i] -= this.speed[i] * speedScalar; } } }; }],
[1 ,()=>{console.log("Artist 59. p1xelfool -- platform 1 ");const testNewCamera=!0,defaultEyeDistance=800;p5.Camera.prototype._computeCameraDefaultSettings=function(){this.defaultAspectRatio=this._renderer.width/this._renderer.height,this.defaultEyeX=0,this.defaultEyeY=0,this.defaultCameraFOV=2*Math.atan(this._renderer.height/2/this.defaultEyeZ),this.defaultEyeZ=800,this.defaultCameraNear=.1*this.defaultEyeZ,this.defaultCameraFar=10*this.defaultEyeZ};let pg,t,arraySizes,maxSize,numObjkts,objkts,colors=[0,80,120,240,280],finalColor,palettePicker,palette=[["#CCFD7A","#e2e6ec","#EB79F1"],["#e2e6ec","#00d8ff","#ee4320"],["#ee4320","#fff","#1dec57"],["#fff","#ff5a00","#f600ff"],["#cbff00","#fff","#b084f7"],["#0000ff","#5dffa0","#e2e6ec"],["#0000ff","#00ff00","#e2e6ec"],["#d7fe52","#e2e6ec","#00d8ff"],],speedArray=[2,4,8,14],speedPicker,finalSpeed,sizes=[[20,100]],sizePicker,isRainbow=!1;function windowResized(){resizeCanvas(windowWidth,windowHeight),start()}function start(){let e=width/height;(pg=innerWidth>innerHeight?createGraphics(int(1920/7),int(1920/e/7),WEBGL):createGraphics(int(1920*e/8),int(240),WEBGL)).noSmooth(),pg.pixelDensity(1),pg.strokeWeight(.99)}setup=function(){createCanvas(innerWidth,innerHeight),noSmooth(),frameRate(30),noiseSeed(1),isRainbow=.1>R.random_dec(),start(),numObjkts=R.random_num(3,8),maxSize=R.random_num(15,25),arraySizes=[];for(let e=0;e<numObjkts;e++)arraySizes[e]=R.random_num(10,maxSize);palettePicker=floor(map(R.random_dec(),0,1,0,palette.length)),sizePicker=floor(map(R.random_dec(),0,1,0,sizes.length)),objkts=[];for(let i=0;i<numObjkts;i++)objkts.push(new objkt(i,arraySizes[i],-(10*arraySizes[i]),0,1)),objkts.push(new objkt(i,arraySizes[i],0,0,2)),objkts.push(new objkt(i,arraySizes[i],10*arraySizes[i],0,3)),objkts.push(new objkt(i,arraySizes[i],0,-(10*arraySizes[i]),1)),objkts.push(new objkt(i,arraySizes[i],0,10*arraySizes[i],3));finalSpeed=speedArray[speedPicker=floor(map(R.random_dec(),0,1,0,speedArray.length))],console.log("++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>>.+++++.--.++.+++++++++++.-------------------.+++++++++++.<<++.>>-------.+++++++++.++++++.-----------.+++++++++++.-----------.----.++++++++++++++.<<.>>--------------.----.+++++++++++++++++++.<<.>>------.+.<<.>>++++.++.--------------.------.+++++++++++++++++.")},draw=function(){background(0),t++,pg.clear(),pg.background(0),pg.colorMode(HSB,360,100,100),pg.noStroke(),pg.orbitControl(),pg.push(),pg.translate(0,-maxSize*numObjkts/2+maxSize/2,0),pg.rotateX(radians(-20)),pg.rotateY(radians(.4*frameCount));for(let e=0;e<objkts.length;e++)objkts[e].run();pg.pop(),image(pg,0,0,int(innerWidth),int(innerHeight))};let objkt=function(e,i,s,r,a){this.lifespan=1e3,this.totalLife=this.lifespan,this.sizeY=i,this.index=e,this.color=floor(R.random_num(0,360)),this.sizeX=R.random_num(sizes[sizePicker][0],sizes[sizePicker][1]),this.x=s,this.z=r,this.pick=floor(R.random_num(1,5.99)),this.torusRadius=R.random_num(2,6),this.groupIndex=a,this.loc=createVector(this.x,this.index*maxSize,this.z),this.vel=createVector(),this.acc=createVector(),this.direction,.5>R.random_dec()?this.direction=-10:this.direction=10,this.lifePicker=floor(R.random_num(200,500)),this.colorPicker=floor(map(R.random_dec(),0,1,0,palette[palettePicker].length))};objkt.prototype.run=function(){this.lifespan-=1,this.vel.add(this.acc),this.loc.add(this.vel),this.vel.mult(.97),this.vel.limit(3),this.acc.mult(0),this.force=createVector(0,this.direction,0),this.origin=createVector(0,this.index*maxSize,0),this.finalForce=p5.Vector.sub(this.force,this.location),frameCount%this.lifePicker==0&&(.5>R.random_dec()?this.finalForce=p5.Vector.sub(this.force,this.origin):this.finalForce=p5.Vector.sub(this.origin,this.force),this.finalForce.normalize(),this.applyForce(this.finalForce)),this.rainbow=map(sin(radians(10*this.index+10*this.groupIndex+2*frameCount)),-1,1,0,360);let e=map(sin(radians(frameCount*finalSpeed+130*this.index+50*this.groupIndex)),-1,1,0,255);if(!1==isRainbow?pg.fill(hue(palette[palettePicker][this.colorPicker]),saturation(palette[palettePicker][this.colorPicker]),e):pg.fill(this.rainbow,255,e),pg.push(),pg.translate(this.loc.x,this.loc.y,this.loc.z),pg.rotateY(radians(frameCount)),1==this.pick)pg.box(this.sizeX,this.sizeY,this.sizeX);else if(2==this.pick)pg.sphere(this.sizeY,8,3);else if(3==this.pick)pg.rotateX(radians(180)),pg.cone(this.sizeY,this.sizeY,6);else if(4==this.pick)pg.rotateX(radians(90)),pg.torus(this.sizeX/2,this.sizeY/3,10);else for(let i=0;i<360;i+=20){let s=sin(radians(i))*this.sizeX/2,r=cos(radians(i))*this.sizeX/2;pg.noFill(),pg.stroke(hue(palette[palettePicker][this.colorPicker]),saturation(palette[palettePicker][this.colorPicker]),e),pg.strokeWeight(1),pg.point(s,0,r),pg.noStroke()}pg.pop()},objkt.prototype.applyForce=function(e){this.acc.add(e)}; }],[1 ,()=>{console.log("Artist 27. Emily Edelman -- platform 1 ");p5.prototype.random = function (min, max) { const rand = R.random_dec(); if (typeof min === "undefined") { return rand; } else if (typeof max === "undefined") { if (min instanceof Array) { return min[Math.floor(rand * min.length)]; } else { return rand * min; } } else { if (min > max) { var tmp = min; min = max; max = tmp; } return rand * (max - min) + min; } }; let savesremaining=0; setup = function () { console.log("setup") pixelDensity(16.0); createCanvas(540, 960); } draw = function () { console.log("draw") background(200); noStroke(); Colors (); difboxColorsA = [0,1,1,1]; difboxColors = random(difboxColorsA); if (difboxColors == 1){ boxStrokeYNA = [0]; boxStrokeYN = random(boxStrokeYNA); //0 IS YES STROKE boxfillCA = [color1,color2,color2,color2,color2]; boxfillC = random(boxfillCA); if (boxfillC == color1){ textfillC = color2; boxstrokeC = color2; } if (boxfillC == color2){ textfillC = color1; boxstrokeC = color1; } } bkgdCA = [color1,color2]; bkgdC = random(bkgdCA); fill(bkgdC); rect(0,0,width,height); if (bkgdC == color1){ posC = color2; } if (bkgdC == color2){ posC = color1; } stroke(posC); push(); Borders (); Grids(); strokeWeight(1); noFill(); rect(0,0,width,height); pop(); SmallText() download (); } function Grids(x,y,w,h){ push(); SizingConstraints(); t = SizingConstraints (); marginA = [0, .025, .05, .1, .1, .1, .1]; margin = random (marginA); if (random(0,100)<4){ //10 widthheredetermineA = 0; widthhere = random(widthA); } else{ widthheredetermineA = 1; } for (x=0; x<width; x+=widthhere){ if (widthheredetermineA == 1){ widthhere = random(widthA); } if (widthhere>(width-x)){ widthhere = width-x; } w=widthToScale(margin); for (y=0; y<height; y+=heighthere){ heighthere = random(heightA); if (heighthere>=(height-y)){ heighthere = height-y; } h = heightToScale (margin); if (difboxColors == 0){ boxStrokeYNA = [0]; boxStrokeYN = random(boxStrokeYNA); //0 IS YES STROKE //IF BOXES ARE DIFFERENT COLORS boxfillCA = [color1,color2,color2,color2,color2,color2,color2,color2]; boxfillC = random(boxfillCA); if (boxfillC == color1){ textfillC = color2; boxstrokeC = color2; } if (boxfillC == color2){ textfillC = color1; boxstrokeC = color1; } } if(boxStrokeYN==0){ //YES STROKE stroke(boxstrokeC); strokeWeight(.75); } fill(boxfillC); rect(x,y,w*125+(margin)*125, h*150+(margin)*150); RestOfIt (); } } function RestOfIt (){ push(); margintoTranslate (margin); function Mm(){ LetterM (x, y, w, h); } function Oo(){ LetterO (x,y,w,h); } function Ee(){ LetterE (x, y, w, h); } function Nn(){ LetterN (x,y,w,h); } function Tt(){ LetterT (x, y, w, h); } letterpickA = [Mm, Oo, Ee, Nn, Tt]; random(letterpickA)(); pop(); } pop(); } function heightToScale(margin){ return heighthere/150 - margin; } function widthToScale(margin){ return widthhere/ 125 - margin; } function SizingConstraints (){ function A(){ widthA = [270]; heightA =[320]; } function B(){ widthA = [135]; heightA =[320]; } function C(){ widthA = [135, 135, 202.5, 67.5]; heightA =[320]; } function D(){ widthA = [135]; heightA =[160]; } function D2(){ widthA = [135,45,90]; heightA =[160]; } function E(){ widthA = [27]; heightA =[32]; } function E2(){ widthA = [36,18]; heightA =[32]; } function F(){ widthA = [54]; heightA =[64]; } function F2(){ widthA = [30,60]; heightA =[64]; } function G(){ widthA = [81]; heightA =[96]; } function G2(){ widthA = [55,110]; heightA =[96]; } function H(){ widthA = [108]; heightA =[120]; } function H2(){ widthA = [67.5,135]; heightA =[120]; } function I(){ widthA = [270]; heightA =[240]; } function J(){ widthA = [270]; heightA =[160]; } function K(){ widthA = [270]; heightA =[120]; } pickLetterA = [A,A,A,A,A,A,A,A,B,B,B,C,C,D,D2,E,E,E2,E2,E2,E2,F,F2,G,G2,H,H,H2,I,I,I,I,J,J,J,J,K,K,K,K]; random(pickLetterA) (); } function margintoTranslate (margin){ if (margin == 0){ return translate (0,0); } if (margin == .1){ return translate (6,8); } if (margin == .01){ return translate (.5,.8); } if (margin == .025){ return translate (1.4,1.6); } if (margin == .05){ return translate (3,3.7); } } function Borders (){ if (random(0,100)<84){ if (random(0,100)<50){ scaleAmtx = .9 scaleAmty = random(.75,.87); scale(scaleAmtx, scaleAmty); transAmtx = 30; transAmty = 50; translate(transAmtx,transAmty) } else{ if (random(0,50)<25){ scaleAmtx = .9 scaleAmty = random(.5,.7); scale(scaleAmtx,scaleAmty); transAmtx = 30; transAmty = 30; translate(transAmtx, transAmty); } else{ if (random(0,25)<12){ scaleAmtx = random(.5,.65) scaleAmty = .87; scale (scaleAmtx, scaleAmty); transAmtx = random(30,242); transAmty = 50; translate(transAmtx,transAmty); } else{ scaleAmty = .87; scaleAmtx = random(.65,.8) scale(scaleAmtx, scaleAmty); transAmtx = random(30,100); transAmty = 50; translate(transAmtx, transAmty); } } } } else{ scaleAmtx = 1; scaleAmty = 1; transAmtx = 26; transAmty = -70; } } function Colors (){ if (random(0,100)<15){ //LIGHT ORANGE, DARKER ORANGE color1 = [227,47,14]; color2 = [250,73,40]; textcolor = 255; } else{ if (random(0,85)<22){ //DARK ORANGE, HOT RED color1 = [227,47,14]; color2 = [239,65,73]; textcolor = 255; } else{ if (random(0,64)<6){ //LIGHT YELLOW, BRIGHT YELLOW color1 = [248,232,128]; color2 = [255,208,0]; textcolor = [35,35,35]; } else{ if (random(0,58)<12){ //BRIGHT RED, HOT RED color1 = [200,49,42]; color2 = [239,65,73]; textcolor = 255; } else{ if (random(0,46)<25){ //TRANS RED, HOT RED color1 = [236, 34, 39]; color2 = [239,65,73]; textcolor = 255; } else{ if (random(0,19)<7){ //GOLD, YELLOW color1 = [255,169,0]; color2 = [255,190,28]; textcolor = 255; } else{ color1 = [49,102,255]; //BLUE, GREEN color2 = [7,146,66]; textcolor = 255; } } } } } } } function SmallText(){ noStroke(); fill(textcolor); select('canvas').elt.style.letterSpacing = "2px"; textStyle(ITALIC); textFont('Courier New'); OppsA = ['MEMENTO / OMEN', 'EON / MOMENT', 'NONE / ONE', 'MEME / TOME', 'NOON / MOON']; Opps = random(OppsA); mainyplacement = [70*scaleAmty+transAmtx*scaleAmty, 28] mainxplacement = [0*scaleAmtx+transAmtx*scaleAmtx, 23] if (random(0,100)<30){ maintextA = RIGHT textAl = LEFT; textX = 514; textAlX = 0*scaleAmtx+transAmtx*scaleAmtx; textW = random(20,350); } else{ if (random(0,100)<30){ maintextA = LEFT; textAl = RIGHT; textX = 0*scaleAmtx+transAmtx*scaleAmtx; textW = random(40,350); textAlX = 514-textW; } else{ maintextA = CENTER; textX = 270; if (random(0,100)<50){ textAl = LEFT; textAlX = random(mainxplacement); textW = random(40,200); } else{ textAl = RIGHT; textW = random(40,280); textAlX = 514-textW; } } } if (random(0,100)<69){ textSize(random(17,25)); text(Opps, random(mainxplacement),random(mainyplacement)); } else{ if (random(0,31)<10){ textAlign(CENTER); text(Opps, 270,random(mainyplacement)); } else{ textAlign(RIGHT); text(Opps, 514,random(mainyplacement)); } } textAlign(maintextA); textSize(random(15,40)); text('MOMENT', textX, 1010*scaleAmty+transAmty*scaleAmty); if (random(0,100)<55){ OppsSmallA = ['Emote memento 2024', 'Memento moment-o 2024', 'Moment note 2024', 'Momento tome 2024', 'Moment to emote 2024', 'Moon moment 2024', 'Moment to meet 2024', 'One moment 2024']; OppsSmall = random(OppsSmallA); textAlign(textAl); textSize(10); text(OppsSmall, textAlX, random(220,912), textW); } else{ OppsSmallA = ['Tote moot memento tome to one totem moment. \n \n 2024', 'Moment to eon. Eon to moment. \n \n 2024', 'MEMENTO / OMEN, EON / MOMENT, NONE / ONE, MEME / TOME, NOON/MOON \n \n 2024', 'Memento tome to one totem moment \n \n 2024', 'Tome to one totem moment \n \n 2024']; OppsSmall = random(OppsSmallA); textAlign(textAl); textSize(10); text(OppsSmall, textAlX, random(220,767), textW); } } function LetterM(Tx, Ty, Sx, Sy){ translate (Tx, Ty); size=150; for (x=0; x<=size; x+=100){ noStroke(); fill(textfillC); beginShape(); vertex(0*Sx,0*Sy); vertex(35*Sx,0*Sy); vertex(62.5*Sx,35*Sy); vertex(90*Sx,0*Sy); vertex(125*Sx,0*Sy); vertex(125*Sx,150*Sy); vertex(90*Sx,150*Sy); vertex(90*Sx,55*Sy); vertex(62.5*Sx,88*Sy); vertex(35*Sx,55*Sy); vertex(35*Sx,150*Sy); vertex(0*Sx,150*Sy); vertex(0*Sx,0*Sy); endShape(CLOSE); } } function LetterO(Tx, Ty, Sx, Sy){ translate (Tx, Ty); size=150; for (x=0; x<=size; x+=100){ noStroke(); fill(textfillC); beginShape(); vertex(50*Sx,0*Sy); vertex(75*Sx,0*Sy); bezierVertex(75*Sx,0*Sy,125*Sx,0*Sy,125*Sx,50*Sy); vertex(125*Sx,50*Sy); vertex(125*Sx,100*Sy); bezierVertex(125*Sx,100*Sy,125*Sx,150*Sy,75*Sx,150*Sy); vertex(50*Sx,150*Sy); bezierVertex(50*Sx,150*Sy,0*Sx,150*Sy,0*Sx,100*Sy); vertex(0*Sx,50*Sy); bezierVertex(0*Sx,50*Sy,0*Sx,0*Sy,50*Sx,0*Sy); beginContour(); vertex(70*Sx,35*Sy); vertex(55*Sx,35*Sy); bezierVertex(55*Sx,35*Sy,35*Sx,35*Sy,35*Sx,55*Sy); vertex(35*Sx,90*Sy); bezierVertex(35*Sx,90*Sy,35*Sx,115*Sy,55*Sx,115*Sy); vertex(70*Sx,115*Sy); bezierVertex(70*Sx,115*Sy,90*Sx,115*Sy,90*Sx,90*Sy); vertex(90*Sx,55*Sy); bezierVertex(90*Sx,55*Sy,90*Sx,35*Sy,70*Sx,35*Sy) endContour(); endShape(CLOSE); } } function LetterE(Tx, Ty, Sx, Sy){ translate (Tx, Ty); size=150; for (x=0; x<=size; x+=100){ noStroke(); fill(textfillC); beginShape(); vertex(0*Sx,0*Sy); vertex(125*Sx,0*Sy); vertex(125*Sx,35*Sy); vertex(35*Sx,35*Sy); vertex(35*Sx,55*Sy); vertex(80*Sx,55*Sy); vertex(80*Sx,90*Sy); vertex(35*Sx,90*Sy); vertex(35*Sx,115*Sy); vertex(125*Sx,115*Sy); vertex(125*Sx,150*Sy); vertex(0*Sx,150*Sy); vertex(0*Sx,0*Sy); endShape(CLOSE); } } function LetterN(Tx, Ty, Sx, Sy){ translate (Tx, Ty); size=150; for (x=0; x<=size; x+=100){ noStroke(); fill(textfillC); beginShape(); vertex(0*Sx,0*Sy); vertex(35*Sx,0*Sy); vertex(90*Sx,87*Sy); vertex(90*Sx,0)*Sy; vertex(125*Sx,0*Sy); vertex(125*Sx,150*Sy); vertex(90*Sx,150*Sy); vertex(35*Sx,69*Sy); vertex(35*Sx,150*Sy); vertex(0*Sx,150*Sy); vertex(0*Sx,0*Sy); endShape(CLOSE); } } function LetterT(Tx, Ty, Sx, Sy){ translate (Tx, Ty); size=150; for (x=0; x<=size; x+=100){ noStroke(); fill(textfillC); beginShape(); vertex(0*Sx,0*Sy); vertex(125*Sx,0*Sy); vertex(125*Sx,35*Sy); vertex(80*Sx,35*Sy); vertex(80*Sx,150*Sy); vertex(45*Sx,150*Sy); vertex(45*Sx,35*Sy); vertex(0*Sx,35*Sy); vertex(0*Sx,0*Sy); endShape(CLOSE); } } const styleElement = document.createElement('style'); const styleStr = ` html { margin: 0; padding: 0; } body { margin: 0; display: flex; justify-content: center; align-items: center; } canvas { display: block; height: 100vh !important; width: 56.25vh !important; } `; styleElement.textContent = styleStr; document.head.appendChild(styleElement); function download (){ if (savesremaining) { saveCanvas(); savesremaining--; } else{ noLoop(); } } function keyTyped() { if (key === 'd') { saveCanvas(); } } }],
[1 ,()=>{console.log("Artist 16. Juan Rodríguez García -- platform 1 ");(()=>{"use strict";function e(e,t){return e+(t-e)*(n^=n<<13,n^=n>>20,n^=n<<5,(0>n?1+~n:n)%1e3/1e3)}function t(t){return t[a(e(0,.99*t.length))]}var a=Math.floor;let o="undefined"==typeof tokenData?(()=>{let e="0123456789abcdef",t="0x";for(let o=64;0<o;--o)t+=e[a(Math.random()*e.length)];return t})():"string"==typeof tokenData?tokenData:tokenData.hash,n=parseInt(o.slice(0,16),16);console.log(o);let r=(e=>{let t=[];for(let e=0;32>e;e++)t.push(o.slice(2+2*e,4+2*e));return t.map((e=>parseInt(e,16)))})(),i=window;var d;d=window.innerWidth<window.innerHeight?window.innerWidth:.5625*window.innerHeight;var f=["#00c7fd","#f34235","#011f4b","#f25f5c","#ffe066","#70a288","#3e4f56","#f4e04d","#fe8a71","#69a197","#021c1e","#cad7b2","#e84646","#e0c879","#4f6d7a","#d5d5d5","#edb83d","#223843","#d57a66","#b0d7ff","#ffef96","#6e9075","#0e4b5a","#f7f7f7","#1b262c","#d4a5a5","#84a98c","#f5cc00","#f19066"];let s=!0,h=Math.min(d,d);var l,c,u,p,g,b,w,k,M,m,v,D=Math.round(1.777*h),L=[],y=[],E=0,W=!1,C=0;i.setup=()=>{createCanvas(h,D,WEBGL),background("#fff9ea"),(M=createGraphics(width,height)).background("#fff9ea"),console.log("Después de todo"),g=h/200,M.noiseSeed(r[0]),M.randomSeed(r[1]),t(f),m=0,v=0,iniciar()},i.draw=()=>{dibujo(),push(),translate(-width/2,-height/2,-width/20),image(M,0,0),strokeWeight(width/8),stroke("#fff9ea"),noFill(),rectMode(CENTER),rect(width/2,height/2,1.09*width,1.07*height),pop()},i.dibujo=()=>{if(!W){0==E%90&&(k=e(0,1),b=t(f),w=e(h/1e3,h/200)),.5>=k?M.blendMode(MULTIPLY):M.blendMode(BLEND),m=abs(noise(frameCount/u)*h*2.24),v=abs(noise((frameCount+p)/u)*D*2.24),l=m%width,c=v%height,M.push(),M.translate(-h/1.8,-D/2),arrastre(0,m,v);for(var a=0;a<L.length-1;a++)arrastre(a+1,L[a],y[a]);M.pop(),3e3<=E&&(E=0,C++,console.log("pieza: "+C),10<=C&&noLoop(),W=!0,setTimeout((()=>{W=!1,iniciar(!1)}),1e4)),E+=1}},i.keyPressed=()=>{" "===key&&(s?(noLoop(),s=!1,console.log("pause")):(loop(),s=!0,console.log("play")))},i.arrastre=(e,t,a)=>{var o=t-L[e],n=a-y[e],r=atan2(n,o);L[e]=t-cos(r)*g,y[e]=a-sin(r)*g,M.push(),M.translate(L[e],y[e]),M.rotate(r),M.strokeWeight(w),M.stroke(red(b),green(b),blue(b),100),M.line(0,0,g,0),M.pop()},i.iniciar=e=>{M.blendMode(BLEND),0==e&&M.background("#fff9ea"),u=100,p=800,l=0,c=0;for(var t=0;500>t;t++)L[t]=l,y[t]=c}})(); }],[1 ,()=>{console.log("Artist 13. Ivona Tau -- platform 1 ");let neuralNetworkWeights, neuralNetworkBiases; let targetImageData; let noiseGraphics; let iterations; // let iteration = 0; let learningRate = 0.00006; // let canvasWidth, canvasHeight; let vertexMultiplier; let fixedImageWidth = 850; let shapeNb; setup = function(){ console.log('AILOVEAI by Ivona Tau'); console.log('Fully on chain denoising neural network.'); canvasHeight = windowHeight; // Use the full height of the window canvasWidth = canvasHeight * (9 / 16); if (canvasWidth < fixedImageWidth){ fixedImageWidth = canvasWidth; } createCanvas(canvasWidth, canvasHeight); let colors = [ color(128, 0, 128), color(238, 130, 238), color(255, 105, 180), // pink color(204, 119, 34), // yellow color(0, 0, 139), // dark blue color(255, 0, 0), color(60,100,64), color(37,110,91), color(60,126,115), color(153,40,0), color(211,74,36), color(253,174,0), color(66,122,167), color(0,67,120), color(210,167,63), color(208,158,45), color(208,109,31), color(146,57,20) ]; let vA = [65, 60, 72, 62, 61, 73, 76, 77, 72, 60, 65]; vertexMultiplier = R.random_choice(vA); shapeNb = R.random_num(4,8); iterations = R.random_num(100,200); noiseGraphics = createGraphics(fixedImageWidth, fixedImageWidth*(16/9)); targetGraphics = createGraphics(fixedImageWidth, fixedImageWidth*(16/9)); let bgColor = R.random_choice(colors); targetGraphics.background(bgColor); targetGraphics.fill(220); // White text on the off-screen buffer targetGraphics.textAlign(CENTER, CENTER); drawPentagon(); targetGraphics.loadPixels(); targetImageData = targetGraphics.pixels; initializeNetwork(); generateNoiseImage(); } function initializeNetwork() { neuralNetworkWeights = new Float32Array(targetImageData.length); neuralNetworkBiases = new Float32Array(targetImageData.length); for (let i = 0; i < targetImageData.length; i++) { neuralNetworkWeights[i] = R.random_dec(-1, 1); // Initialize weights with random values between -1 and 1 neuralNetworkBiases[i] = R.random_dec(-1, 1); // Initialize biases with random values between -1 and 1 } } function activation(x) { return constrain(x, 0, 255); } function generateNoiseImage() { noiseGraphics.loadPixels(); for (let i = 0; i < noiseGraphics.pixels.length; i += 4) { noiseGraphics.pixels[i] = R.random_num(0,255); // Red noiseGraphics.pixels[i + 1] = R.random_num(0,255); // Green noiseGraphics.pixels[i + 2] = R.random_num(0,255); // Blue noiseGraphics.pixels[i + 3] = 255; // Alpha (fully opaque) } noiseGraphics.updatePixels(); } function sigmoid(x) { return 1 / (1 + exp(-x)); } function forwardPropagation() { noiseGraphics.loadPixels(); // Normalize inputs for (let i = 0; i < noiseGraphics.pixels.length; i += 4) { let inputRed = noiseGraphics.pixels[i] / 255.0; let inputGreen = noiseGraphics.pixels[i + 1] / 255.0; let inputBlue = noiseGraphics.pixels[i + 2] / 255.0; // Apply weights and biases, then the activation function let outputRed = sigmoid(inputRed * neuralNetworkWeights[i] + neuralNetworkBiases[i]); let outputGreen = sigmoid(inputGreen * neuralNetworkWeights[i + 1] + neuralNetworkBiases[i + 1]); let outputBlue = sigmoid(inputBlue * neuralNetworkWeights[i + 2] + neuralNetworkBiases[i + 2]); noiseGraphics.pixels[i] = outputRed * 255; // Red noiseGraphics.pixels[i + 1] = outputGreen * 255; // Green noiseGraphics.pixels[i + 2] = outputBlue * 255; // Blue } noiseGraphics.updatePixels(); } function calculateLoss() { let loss = 0; const length = targetImageData.length; for (let i = 0; i < length; i++) { let error = targetImageData[i] - noiseGraphics.pixels[i]; loss += error * error; } return loss / length; // Divide once after the loop completes } function adjustWeightsAndBiases() { noiseGraphics.loadPixels(); for (let i = 0; i < neuralNetworkWeights.length; i++) { let direction = targetImageData[i] - noiseGraphics.pixels[i]; neuralNetworkWeights[i] += direction * learningRate; neuralNetworkBiases[i] += direction * learningRate; } noiseGraphics.updatePixels(); } function drawSinglePentagon(radius, angleOffset) { targetGraphics.push(); targetGraphics.rotate(angleOffset); targetGraphics.beginShape(); for (let i = 0; i < shapeNb; i++) { let vertexAngle = vertexMultiplier * i; let x = cos(vertexAngle) * radius; let y = sin(vertexAngle) * radius; targetGraphics.vertex(x, y); } targetGraphics.endShape(CLOSE); targetGraphics.pop(); } function drawPentagon(){ targetGraphics.angleMode(DEGREES); targetGraphics.stroke(255); targetGraphics.noFill(); targetGraphics.translate(fixedImageWidth / 2, fixedImageWidth*(16/9) / 2); const numShapes = R.random_num(20,50); console.log(numShapes); const maxRadius = (1.4*fixedImageWidth) / 2; const angleInc = 360 / R.random_num(4,15); for (let i = 0; i < numShapes; i++) { const radius = map(i, 0, numShapes, 50, maxRadius); const angle = i * (angleInc / numShapes); drawSinglePentagon(radius, angle); } } function placeText(){ noiseGraphics.fill(220); noiseGraphics.textFont('Times New Roman'); let textSizeRelative = noiseGraphics.height * 0.08; noiseGraphics.textSize(textSizeRelative); noiseGraphics.text("LOVE", R.random_num(0,noiseGraphics.width - 222), noiseGraphics.height / 5); noiseGraphics.text("AI", R.random_num(0,noiseGraphics.width - 111), R.random_num(0,noiseGraphics.height)); let currentLoss = calculateLoss(); noiseGraphics.textSize(textSizeRelative*0.25); noiseGraphics.text(`Iteration ${iteration}, Loss: ${currentLoss}`, noiseGraphics.width * 0.1, noiseGraphics.height * 0.9); } draw = function(){ if (iteration < iterations) { image(noiseGraphics, 0, 0, canvasWidth, canvasHeight); forwardPropagation(); placeText(); adjustWeightsAndBiases(); iteration++; } } }],[1 ,()=>{console.log("Artist 46. Linda Dounia -- platform 1 ");const COLORS = [ '#E9724C', '#C5283D', '#255F85', '#2A9D8F', '#F4A261','#E9C46A', '#264653', '#8A817C', '#F2CC8F', '#E76F51', '#3D405B', '#81B29A', '#F2D7EE', '#F2E9E4', '#3D5A80', '#98C1D9', '#E0FBFC', '#EE6C4D', '#293241', '#E07A5F', '#F4F1DE', '#E4D6A7', '#E9B44C', '#9B2915', '#50A2A7', '#E87461', '#BAC1B8', '#58A4B0', '#C4A77D', '#495867', '#577399', ]; let squares = []; const scaleFactor = 1080 / 1920; setup=() => { const scaledWidth = windowHeight * scaleFactor; const scaledHeight = windowWidth / scaleFactor; if (window.innerHeight > window.innerWidth) { mainCanvas = createCanvas(window.innerWidth, scaledHeight); } else { mainCanvas = createCanvas(scaledWidth, window.innerHeight); } noLoop(); generateSquares(); drawGrid(); drawSecondGrid(); drawSquares(); generateTaperedStaircase(); drawFrame(); } function calculateCanvasSize() { let aspectRatio = 9 / 16; let canvasWidth = windowWidth; let canvasHeight = windowWidth / aspectRatio; if (canvasHeight > windowHeight) { canvasHeight = windowHeight; canvasWidth = windowHeight * aspectRatio; } return { width: canvasWidth, height: canvasHeight }; } function drawGrid() { let cols = R.random_num(1, 3); let rows = R.random_num(2, 5); let cellWidth = width / cols; let cellHeight = height / rows; for (let i = 0; i < cols; i++) { for (let j = 0; j < rows; j++) { let x = i * cellWidth; let y = j * cellHeight; let color1 = color(R.random_choice(COLORS)); let color2 = color(R.random_choice(COLORS)); setGradient(x, y, cellWidth, cellHeight, color1, color2, Y_AXIS); } } } function drawSecondGrid() { stroke(R.random_choice(COLORS)); noFill(); let cols = R.random_num(50, 100); let cellWidth = width / cols; let cellHeight = height; for (let i = 1; i < cols; i++) { let x = i * cellWidth; line(x, 0, x, cellHeight); } } function setGradient(x, y, w, h, color1, color2, axis) { noFill(); if (axis === Y_AXIS) { for (let i = y; i <= y + h; i++) { let inter = map(i, y, y + h, 0, 1); let c = lerpColor(color1, color2, inter); stroke(c); line(x, i, x + w, i); } } else if (axis === X_AXIS) { for (let i = x; i <= x + w; i++) { let inter = map(i, x, x + w, 0, 1); let c = lerpColor(color1, color2, inter); stroke(c); line(i, y, i, y + h); } } } const Y_AXIS = 1; const X_AXIS = 2; function generateSquares() { squares = []; let numOfSquares = R.random_num(4, 20); let margin = width * 0.01; let baseSquareSize = Math.min(width, height) / 20; let placedSquares = 0; let currentX = margin; let currentY = margin; while (placedSquares < numOfSquares) { let squareScaleFactor = R.random_num(1, 3); let squareSize = baseSquareSize * squareScaleFactor; if (currentX + squareSize + margin > width) { currentX = margin; currentY += squareSize + margin; } if (currentY + squareSize + margin > height) break; squares.push({ x: currentX, y: currentY, size: squareSize }); placedSquares++; currentX += squareSize + margin; } } function drawSquares() { squares.forEach(sq => { let color1 = color(R.random_choice(COLORS)); let color2 = color(R.random_choice(COLORS)); setGradient(sq.x, sq.y, sq.size, sq.size, color1, color2, Y_AXIS); }); } function generateTaperedStaircase() { push(); blendMode(EXCLUSION); noStroke(); let numSteps = R.random_num(1, 100); let spacing = R.random_num(height / numSteps * 2, height / numSteps / 2); for (let i = 0; i < numSteps; i++) { let drawDirection = R.random_dec() > 0.5 ? 'right' : 'left'; fill(255, 204, 229); let y = i * spacing * 2; let x = drawDirection === 'right' ? 0 : width; let currentY = y; let startX = x; let startY = y; while (true) { let stepWidth = R.random_num(width / 100, width / 5); let stepHeight = R.random_num(spacing / 2, spacing * 2); if ((drawDirection === 'right' && startX + stepWidth > width) || (drawDirection === 'left' && startX - stepWidth < 0)) { break; } startX += drawDirection === 'right' ? stepWidth : -stepWidth; startY += stepHeight; rect(drawDirection === 'right' ? startX - stepWidth : startX, currentY, stepWidth, stepHeight); currentY += stepHeight; if (currentY > height) { break; } } } pop(); } function drawFrame() { let frameStrokeWeight = width * 0.04; noFill(); stroke(R.random_choice(COLORS)); strokeWeight(frameStrokeWeight); rect(frameStrokeWeight / 2, frameStrokeWeight / 2, width - frameStrokeWeight, height - frameStrokeWeight); } function doubleClicked() { let fs = fullscreen(); fullscreen(!fs); } }],
[0,()=>{console.log("Artist 45. Licia He -- platform 0");function e(t){let[e,n,r,o]=[[0,8],[8,8],[16,8],[24,8]].map((e=>parseInt(t.substr(e[0],e[1]),16)));return function(){e>>>=0,n>>>=0,r>>>=0,o>>>=0;let t=e+n|0;return e=n^n>>>9,n=r+(r<<3)|0,r=r<<21|r>>>11,o=o+1|0,t=t+o|0,r=r+t|0,(t>>>0)/4294967296}}function n(){let t=Y(["R0","useA"]);return j(["R0","useA"],!t),t?Y(["R0","prngA"])():Y(["R0","prngB"])()}function r(t,e){if(e>t.length)return t;let r,o,c=t.slice(0),l=t.length,i=l-e;for(;l-- >i;)o=Math.floor((l+1)*n()),r=c[o],c[o]=c[l],c[l]=r;return c.slice(i)}function o(t){return t[Math.floor(n()*t.length)]}function c(t){let e,r,o;for(o=t.length-1;o>0;o--)e=Math.floor(n()*(o+1)),r=t[o],t[o]=t[e],t[e]=r;return t}function l(t){return i(n(),{max:1,min:0},{max:t[1],min:t[0]})}function i(t,e,n){return t-e.min==0?n.min:(t-e.min)/(e.max-e.min)*(n.max-n.min)+n.min}function a(t){return l(Y(t))}function u(t){return t*Math.PI/180}function s(t,e=0){return[...Array(t).keys()].map((t=>t+e))}function f(t,e,n,r){if(t.length<1)return[];let o=[],c=t.map((t=>e(t))),l=function(t){let e=Infinity,n=-Infinity;for(let r=0;r<t.length;r++){let o=t[r];o>n&&(n=o),o<e&&(e=o)}return[e,n]}(c),a={min:l[0],max:l[1]},u={min:0,max:1};for(let s=0;s<c.length;s++){let t=i(c[s],a,u);o.push((r-n)*t+n)}return o}function h(t,e,n){let r,o,c,l;return[r,o]=t,[c,l]=e,[r+Math.cos(n)*(c-r)-Math.sin(n)*(l-o),o+Math.sin(n)*(c-r)+Math.cos(n)*(l-o)]}function p(t,e,n){return e.map((e=>h(t,e,n)))}function _(t,e,n){return t.map(((r,o)=>r+n*[e[0]-t[0],e[1]-t[1]][o]))}function d(t,e){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))}function g(t){let[e,n,r,o]=[Infinity,-Infinity,Infinity,-Infinity];for(let c=0;c<t.length;c++){let[l,i]=t[c];e=e<l?e:l,r=r<i?r:i,n=n>l?n:l,o=o>i?o:i}return[e,n,r,o]}function b(t){return[t[0]+(t[1]-t[0])/2,t[2]+(t[3]-t[2])/2]}function m(t,e){let n,r,o,c,l;if(n=d(t[0],t[1]),n<e)return[t];r=Math.ceil(n/e),o=e/n,c=t[0],l=[c];for(let i=0;i<r;i++){let e=_(...t,Math.min(1,o*(i+1)));l.push(e),c=e}return l}function v(t,e){return t.forEach((t=>t.forEach(((n,r)=>t[r]+=l(e))))),t}function w(t,e,n,r,o,c){return function(){return Array.prototype.slice.call(arguments).reduce((function(t,e){let n=[];return t.forEach((function(t){e.forEach((function(e){n.push(t.concat(e))}))})),n}),[[]])}(...[[o,n/(o+1),t],[c,r/(c+1),e]].map((t=>s(t[0]).map((e=>(e+1)*t[1]+t[2])))))}function C(t,e,n,r,o){let c=function(t,e,n,r,o){const c=p(t[1],t,-u(n));return[[...t[0]],_(...p(t[0],t,u(e)),r),_(c[1],c[0],o),[...t[1]]]}(t,e,n,r,o);return function(t,e){let n=function(t){let[e,n,r,o]=t,c=0;return[[e,n],[r,n],[o,r]].forEach((t=>c+=d(...t))),(c+d(o,e))/2}(t);if(n>e){let r=e/n,o=r,[c,l]=t[0],[i,a]=t[1],[u,s]=t[2],[f,h]=t[3];const p=[t[0]];for(;o<1;)p.push([(1-o)**3*c+3*o*(1-o)**2*i+3*o**2*(1-o)*u+o**3*f,(1-o)**3*l+3*o*(1-o)**2*a+3*o**2*(1-o)*s+o**3*h]),o+=r;return p.push(t[3]),p}return[t[0],t[3]]}(c,Y(["G","curve_approx_length"]))}function P(t,e,n,r,o){let c=[[t,e],[t+n,e],[t+n,e+r],[t,e+r]];return o&&c.push([t,e]),c}function x(t,e){let n=[];for(let r=0;r<t.length-2;r++)m([t[r],t[r+1]],e).forEach((t=>n.push(t)));return n}function R(t,e,n,r){const o=s(r).map((o=>[t+n*Math.cos(2*Math.PI*o/r),e+n*Math.sin(2*Math.PI*o/r)]));return o.push([...o[0]]),o}function E(t,e){let n=t.map(((t,n)=>[n,d(t,e)]));return n.sort(((t,e)=>e[1]-t[1])),t[n.pop()[0]]}function O(t,e,n){let r,o,c,l,i,a;return[r,o]=t,[c,l]=e,[i,a]=n,r*(l-a)+c*(a-o)+i*(o-l)==0}function M(){let[t,e]=Y(["C0","shape"]);const n=new Array(t);let r=Y(["C0","bg_c"]);for(let o=0;o<t;o++){n[o]=new Array(e);for(let t=0;t<e;t++)n[o][t]=r}return n}function S(t,e){const n=t[0],r=t[1];let o=0;for(let c=0,l=e.length-1;c<e.length;l=c++){const t=e[c][0],i=e[c][1],a=e[l][0],u=e[l][1];i>r!=u>r&&n<(a-t)*(r-i)/(u-i)+t&&(o=!o)}return o}function A(t){t.forEach((t=>t.forEach(((e,n)=>t[n]=Math.floor(t[n]/Y(["C0","scale_factor"]))))));let[e,n]=Y(["C0","shape"]),[r,o,c,l]=function(t,e,n){let[r,o,c,l]=n;return r=Math.max(0,r),c=Math.max(0,c),o=Math.min(o,e),l=Math.min(l,t),[r,o,c,l]}(e,n,g(t));const i=[];for(let a=r;a<=o;a++)for(let e=c;e<=l;e++){const n=[a,e];S(n,t)&&i.push(n)}return i}function y(t,e,n){if(t.length<3)return[];let r=A(t);return r.forEach((function(t){let[r,o]=t;(function(t,e,n){return n[t]!==undefined&&n[t][e]!==undefined})(o,r,e)&&(e[o][r]=n)})),r}function T(t,e,n,r,o,c,i,a,u){if(d(t,e)<a)return 0;u&&(r=l([r,r*u]));let s=_(f=t,p=e,r/d(f,p));var f,p;let g=h(n,s,o),b=h(n,s,-o);return c.push(g),i.push(b),1}function F(t,e,n,r){if(n=n||Y(["C0","split_length"]),r=r!==undefined?r:Y(["C0","dist_eps"])[0],!e)return[t,n,r];var o;let c;return c=function(t,e){if(t.length<1)return[];let n=[];for(let r=1;r<t.length;r++){let o=t[r-1],c=t[r],l=[o,c];n=n.concat(d(o,c)>e?m(l,e):l.slice(1))}return n.push([...n[n.length-1]]),n}((o=t,JSON.parse(JSON.stringify(o))),n),[c,n,r]}function k(t,e,n,r,o){let c=function(t,e,n,r,o,c){if(t.length<2)return[];let l,i,a,u,s,f,h,p,g,b,m,v,w;for([l,r,o]=F(t,n,r,o),i=[],a=[],u=.5*Math.PI,s=l[0],f=l[1],T(f,s,s,d(s,f)+e,-u,i,a,o,c),h=0,p=1,g=-1;p<l.length-1;)s=l[h],f=l[p],p+=1,d(s,f)<o||(b=_(s,f,.5),T(b,s,b,e,-1*u,i,a,o,c)&&(h=p-1));return w=l.length,m=l[w-2],v=l[w-1],T(m,v,v,d(v,m)+e,u,i,a,o,c),a.reverse(),[i,a]}(t,e,n,r,o);if(2!==c.length)return[];let[l,i]=c;return l.length>0&&i.push([...l[0]]),[...l,...i]}function B(t,e){let n,r,o;return n=0,r=Y(["C0","split_length"]),o=Y(["C0","dist_eps"])[0],k(t,e,0,r,o)}function I(t,e){let n,r,o;return n=1,r=Y(["C0","split_length"]),o=Y(["C0","dist_eps"])[0],k(t,e,1,r,o)}function L(t,e){Object.keys(e).map((n=>t.style[n]=e[n]))}function H(){L(Y(["H","mat_container"]),{width:`${Y(["G","w"])}px`,height:`${Y(["G","h"])}px`}),L(Y(["H","c1"]),{height:`${window.innerHeight}px`})}function D(){let t,e,n,r,o,c,l,i,a,u,s,f,h,p,_,d;var g,b;t=window.innerWidth,e=window.innerHeight,n=Y("w"),r=Y("h"),o=n/t,c=r/e,l=o>c?o:c,i=Math.ceil(n/l),a=Math.ceil(r/l),q({w:i,h:a},["G"]),u=Y(["R1","r"]),s=u*window.devicePixelRatio,f=i*s,h=a*s,p=1/l*window.devicePixelRatio,j(["R1","p0"],p),_=Y(["H","canvas"]),g=_,b={width:f,height:h,viewBox:`0 0 ${f} ${h}`},Object.keys(b).map((t=>g.setAttribute(t,b[t]))),_.style["max-width"]="100%",_.style["max-height"]="100%",d=Y(["R1","gl"]),d&&$()}function N(t,e,n){const r=t.createShader(e);return t.shaderSource(r,n),t.compileShader(r),r}function $(){let t=""+Y(["R1","p0"])*Y(["R1","d"]);t=t.includes(".")?t.slice(0,t.indexOf(".")+2):t+".0";let e=`\nattribute vec4 aVertexPosition;\nattribute vec4 aVertexColor;\nvarying lowp vec4 vColor;\n\nvoid main() {\ngl_Position = aVertexPosition;\nvColor = aVertexColor;\ngl_PointSize = ${t};\n}\n`,n="\nvarying lowp vec4 vColor;\n\nvoid main(void) {\ngl_FragColor=vColor;\n}\n",r=function(t,e){let n=Y(["R1","gl"]);const r=n.createProgram();return n.attachShader(r,N(n,n.VERTEX_SHADER,t)),n.attachShader(r,N(n,n.FRAGMENT_SHADER,e)),n.linkProgram(r),r}(e,n),o=Y(["R1","gl"]);o.viewport(0,0,o.canvas.width,o.canvas.height),q({vs:e,fs:n,p1:{program:r,attribLocations:{vertexPosition:o.getAttribLocation(r,"aVertexPosition"),vertexColor:o.getAttribLocation(r,"aVertexColor")}}},["R1"]),function(){let t=Y(["R1","gl"]);t.enable(t.BLEND);let[e,n,r,o]=Y(["DF","b","m"]);t.blendFuncSeparate(t[e],t[n],t[r],t[o])}()}function U(t){let e=Y("w")/2,n=Y("h")/2;return[(t[0]-e)/e,-(t[1]-n)/n]}function G(t,e,n){let r=function(t){let e,n,r;for(e=[],n=0,r=t.length-1;n+1<r;){let o=[n,n+1,r].map((e=>t[e])),c=[r,r-1,n+1].map((e=>t[e]));O(...o)||e.push(o),O(...c)||e.push(c),n+=1,r-=1}return e}(t);for(let o=0;o<r.length;o++){let t=r[o].map((t=>U(t)));t.forEach((t=>t.forEach((t=>n.wgl.push(t))))),t.forEach((()=>n.rgba.push(e)))}}let V=1600;function Y(t){return function(t,e){let n=e;if("string"==typeof t)return e[t];for(let o=0;o<t.length;o++)try{n=n[t[o]]}catch(r){return undefined}return n}(t,window.SETTING)}function j(t,e){return function(t,e,n){let r=e;for(let o=0;o<t.length-1;o++)r=r[t[o]];r[t[t.length-1]]=n}(t,window.SETTING,e)}function a(t){return l(Y(t))}function q(t,e){Object.keys(t).forEach((n=>j([...e,n],t[n])))}function W(){return Y(["C1","R3",Y(["OP","static","c_rule"])])}function z(t,e,n){n/=100;const r=e*Math.min(n,1-n)/100,o=e=>{const o=(e+t/30)%12,c=n-r*Math.max(Math.min(o-3,9-o,1),-1);return Math.round(255*c).toString(16).padStart(2,"0")};return`#${o(0)}${o(8)}${o(4)}`}function J(t){return function(t){let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}(t).map((t=>t/255))}function X(t){let e=J(t);return e.push(1),e}function K(t,e,n,r){let o=t.r,c=t.rgbas,i=t.hsls,a=Y(["C1","picks",e]),u=function(t,e){let n=[];for(let r=0;r<e;r++){let e=[l(t.h0),l(t.s0),l(t.l0)];n.push(e)}return n}(o[e],a);i[e]=u,r[e]=[];let s=[];u.forEach((t=>s.push(X(z(t[0],t[1],t[2]))))),c[e]=s,t.ct[e]=s.length,s.forEach((function(t){n.push(t),r[e].push(n.length-1)}))}function Q(){let t=W();t.ct={},t.hsls={},t.rgbas={};let e=[];j(["OP","C1","full_rgbas"],e);let n={};j(["OP","C1","rule_to_fr_id"],n),Object.keys(t.r).forEach((r=>K(t,r,e,n))),function(){let t=W().rgbas,e=o(s(t[0].ct));q({bg_rgba:t[0][e],bg_rgba_id:e},["OP","C1"])}()}function Z(t,e){let n=Y(["lambda","hsl_checker"]);return t.map((function(t,r){let o=[...e,["h","s","l"][r]];return t+=a(o),n[r](t)}))}function tt(t){return X(z(...t))}function et(t,e){let n,r,o;n=Y(["R1","gl"]),r=Y(["R1","p1"]),o=function(t,e,n){const r=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,r),t.bufferData(t.ARRAY_BUFFER,new Float32Array(e),t.STATIC_DRAW);const o=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,o),t.bufferData(t.ARRAY_BUFFER,new Float32Array(n.flat()),t.STATIC_DRAW),{position:r,color:o}}(n,t.wgl,t.rgba),function(t,e,n){{const r=2,o=e.FLOAT,c=0,l=0,i=0;e.bindBuffer(e.ARRAY_BUFFER,t.position),e.vertexAttribPointer(n.attribLocations.vertexPosition,r,o,c,l,i),e.enableVertexAttribArray(n.attribLocations.vertexPosition)}{const r=4,o=e.FLOAT,c=0,l=0,i=0;e.bindBuffer(e.ARRAY_BUFFER,t.color),e.vertexAttribPointer(n.attribLocations.vertexColor,r,o,c,l,i),e.enableVertexAttribArray(n.attribLocations.vertexColor)}}(o,n,r),function(t,e){e.bindBuffer(e.ARRAY_BUFFER,t.color),e.bindBuffer(e.ARRAY_BUFFER,t.position)}(o,n),n.drawArrays(n[e],0,t.wgl.length/2)}function nt(){!function(){let t,e;t=Y(["R1","gl"]),e=Y(["R1","p1"]),t.useProgram(e.program);let n=Y(["OP","C1","bg_rgba"]);t.clearColor(...n),t.clearDepth(1),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}(),et(Y(["OP","CL","polygons"]),"TRIANGLES")}function rt(){j(["R1","c"],1),$(),function(){let t=Y(["OP","CL","polygons"]),e=Y(["OP","C1","full_rgbas"]);for(let n=0;n<t.raw.length;n++)G(t.raw[n],e[t.c0[n]],t)}()}function ot(t,e,n,r){let o=[t[e][n],t[e][n+1],t[e+1][n+1],t[e+1][n]];o=o.map((t=>t===r?1:0));let c=8*o[0]+4*o[1]+2*o[2]+o[3];return Number.isInteger(c)&&c>=0&&c<=15||(c=0),c}function ct(t,e,n,r){let o,c,l,i,[a,u]=Y(["C0","shape"]),s=[];n?([o,l,c,i]=n,o=Math.max(Math.floor(o),0),c=Math.max(Math.floor(c),0),l=Math.min(l,u-1),i=Math.min(i,a-1)):(o=0,c=0,l=u-1,i=a-1);for(let h=c;h<i;h++)for(let n=o;n<l;n++){let r=ot(t,h,n,e);0!==r&&15!==r&&lt(n,h,r,s)}let f=function(t,e){const n=[],r=new Set;function o(e,n,o){for(const c in t){if(r.has(c)||c===n)continue;const l=t[c];if(it(e,l[0],o))return r.add(c),l[1];if(it(e,l[1],o))return r.add(c),l[0]}return null}for(const c in t)if(!r.has(c)){const l=[t[c][0],t[c][1]];r.add(c);let i=o(l[l.length-1],c,e);for(;i;)l.push(i),i=o(l[l.length-1],c,e);l.length>0&&l.push([...l[0]]),n.push(l)}return n}(s,r);return f.map((t=>{return(e=t).forEach((t=>t.forEach(((e,n)=>t[n]=Math.floor(t[n]*=Y(["C0","scale_factor"])))))),e;var e}))}function lt(t,e,n,r){let o=[t+.5,e],c=[t+1,e+.5],l=[t+.5,e+1],i=[t,e+.5];switch(n){case 1:case 14:r.push([l,i]);break;case 2:case 13:r.push([c,l]);break;case 3:case 12:r.push([c,i]);break;case 4:case 11:r.push([o,c]);break;case 5:r.push([o,i]),r.push([c,l]);break;case 6:case 9:r.push([o,l]);break;case 7:case 8:r.push([o,i]);break;case 10:r.push([o,c]),r.push([l,i]);break;default:r.push([t,e])}}function it(t,e,n){return d(t,e)<n}function at(e,r,o,c,l,i){let a=ut,[u,s,f,h,p]=function(t){let e=Y(["OP","C1","full_rgbas"]),n=Y(["OP","C1","rule_to_fr_id"]),r=Y(["C1","m1",t]),o=W(),c=Y(["C1","m0",t]);return[e,n,r,o,c]}(c);for(let _=0;_<r.length;_++){let d=i[_];(!d||n()<p)&&([d,t]=bt(f,h,s));let g=d[2];a(null,null,_,r[_],g,u,s,f,h,p,o,c,l,e)}}function ut(t,e,r,o,c,l,i,u,s,f,h,p,d,g){let b=function(t,e,n){let r=E(t,n),o=Array(e).fill([]),c=1/(e+1);for(let l=0;l<e;l++){let e=1-(l+1)*c;o[l]=t.map((t=>_(t,r,e)))}return o}(o,Math.floor(a(["T",p,"sc"])),g),m=Y(["T",p,"offset_rate"]),w=Y(["T",p,"noise_rg"]);for(let _=0;_<b.length;_++){if(n()>Y(["T",p,"kr"]))continue;let t;if(n()<f){let[e,n]=bt(u,s,i);t=e[2]}else t=c;let e=tt(Z(t,["T",p,"cvar"]));e[3]=a(["T",p,"cvar","o"]);let r=b[_];v(r,w),n()<m&&(r=B(r,a(["T",p,"os"]))),h.push(r),l.push(e),d.push(l.length-1)}}function st(t,e){let n=["T","ds"],r=Y("w"),o=a([...n,"dot_r"]),c=0,l=Math.floor(a([...n,"side_ct"])),i=Math.floor(a([...n,"layer_ct"]));e.push(R(...t,o,Math.floor(a([...n,"dot_side"]))));for(let u=0;u<i;u++){let i=Math.floor(a([...n,"dot_side"]));o*=a([...n,"radius_dec"]),c+=a([...n,"radius_side_inc"])*r,R(...t,c,l).forEach((t=>e.push(R(...t,o,i))))}}function ft(){let t=Y(["OP","g","focus"]),e={pts:[],vector:[]},r={vector:[R(...t,a(["S","focal_r"]),20)]},o=Y("w"),c=Y("w"),i=c*Y(["S","lg_perc"]),u=s(Math.floor(a(["S","pt_init_ct"]))).map((t=>function(t,e,n){return[l([-n,t+n]),l([-n,e+n])]}(o,c,i))),h=Y(["S","pt_dist_weight"]),p=f(u,(e=>d(e,t)),h[0],h[1]),_=u.filter(((t,e)=>n()<p[e]));_.forEach((t=>e.pts.push(t))),_.forEach((t=>e.vector.push(R(...t,a(["S","pt_r"]),20)))),q({p0:e,c:r},["OP","g"])}function ht(t,e,n,r,o){let c=[-r,0],i=[e,n+r],u=e*a(["S","turn_rg_perc"]);o.curves=t.map((t=>function(t,e,n,r){let o,c,i,u,s,f,h,[p,_]=t;return o=[l(e),_],i=[l(n),_],c=[l([t[0]-r,t[0]+r]),_],u=a(["S","curve_deg"]),s=a(["S","curve_deg"]),f=-s,h=-a(["S","curve_deg"]),[...C([o,c],u,s,a(["S","curve_dist"]),a(["S","curve_dist"])),...C([c,i],f,h,a(["S","curve_dist"]),a(["S","curve_dist"]))]}(t,c,i,u)))}function pt(t,e,n,r,o){s(Math.floor(a(["S","spread_rep_ct"]))).map((t=>Math.floor(a(["S","spread_line_ct"])))).forEach((n=>function(t,e,n,r,o){let[c,l]=o,i=[[c,l],[c+1.5*e,l]],f=a(["S","sp_init_rot"]),h=360/t;return s(t).map((t=>p(o,i,u(f+h*t))))}(n,e,0,0,t).forEach((t=>o.spreads.push(t)))))}function _t(t,e,n){let o=Y(["OP","temp","bm_0"]),c=Math.floor(a(["S","base_rep_ct"])),l=[0,e,0,n],i=[];for(let u=0;u<c;u++){let c=[...r(t.lines,Math.floor(a(["S","line_base_perc"])*t.lines.length)),...r(t.curves,Math.floor(a(["S","curve_base_perc"])*t.curves.length))].map((t=>I(t,a(["S","base_offset"])))),u=[[[e,0],[e,n]],[[0,n],[e,n]]];[[[0,0],[0,n]],[[0,0],[e,0]]].forEach((t=>c.push(I(t,25)))),u.forEach((t=>c.push(I(t,5)))),c.forEach((t=>y(t,o,"b"))),ct(o,Y(["C0","bg_c"]),l,Y(["C0","extract_factor_base"])).forEach((t=>i.push(t)))}return function(t,e){let n=Y(["C0","shape"]);for(let r=0;r<n[0];r++)for(let o=0;o<n[1];o++)t[r][o]=e}(o,Y(["C0","bg_c"])),i}function dt(){let t=Y(["OP","g","focus"]),e=Y(["OP","g","p0"]).pts,n=Y("w"),o=Y("h"),c=Y(["S","lg_perc"])*o,l={lines:[],curves:[],spreads:[]},i={vector:[]};j(["OP","g","o1"],i),function(t,e,n,o,c){let l=[t=>[[...t],[t[0],n+o]],t=>[[...t],[t[0],-o]],t=>[[...t],[e+o,t[1]]],t=>[[...t],[-o,t[1]]]];c.lines=[],t.forEach((t=>r(l,2).forEach((e=>c.lines.push(e(t))))))}(e,n,o,c,l),ht(e,n,o,c,l),pt(t,n,0,0,l),i.vector=[...r(l.lines,Math.floor(a(["S","line_outline_perc"])*l.lines.length)),...r(l.curves,Math.floor(a(["S","curve_outline_perc"])*l.curves.length)),...r(l.spreads,Math.floor(a(["S","spreads_outline_perc"])*l.spreads.length))],j(["OP","g","bs"],{vector:_t(l,n,o)})}function gt(){let t={vector:[]},e=Y(["OP","g","focus"]);j(["OP","g","p"],t);let o=Y(["OP","g","bs"]).vector,l=Y(["S","base_overlay_noise"]),i=Y(["S","pattern_weight"]),u=f(o,(t=>d(e,t[0])),i[0],i[1]);for(let r=0;r<o.length;r++)if(n()<u[r]){let e=o[r].map((t=>[...t]));v(e,l),c(e),t.vector.push(x(e,a(["T","p","split_len"])))}!function(t){let e={vector:[]},o=Y(["OP","g","focus"]);st(o,e.vector);let c=Y(["S","base_rotating_dot_weight"]),l=f(t,(t=>d(t[0],o)),c[0],c[1]);for(let r=0;r<t.length;r++)n()<l[r]&&st(E(t[r],o),e.vector);j(["OP","g","ds"],e),j(["OP","g","do"],{vector:r(e.vector,a(["S","dots_outline_rate"])*e.vector.length)})}(o)}function bt(t,e,n){let r=o(t),c=e.hsls[r],l=o(s(e.ct[r])),i=n[r][l];return[[r,l,c[l]],i]}function mt(t,e){let r=o(Y(["C1","ck",e])),c=t.hsls[r],l=t.ct[r],i=Y(["C1","m0",e]),u=Y(["C1","m1",e]),[f,h,p]=function(t){return[Y(["OP","g",t,"vector"]),Y(["OP","C1","mapping",t]),Y(["OP","C1","rule_to_fr_id"])]}(e),_=Y(["OP","C1","full_rgbas"]);for(let d=0;d<f.length;d++){let f,d,g,b;if(n()<i){let[e,n]=bt(u,t,p);f=e[2],b=tt(f),d=e,g=n}else{let t=o(s(l));d=[r,t,c[t]],g=p[r][t]}b=[..._[g]],b[3]=a(["T",e,"o"]),_.push(b),h.ref.push(d),h.c0.push(_.length-1)}}function vt(t,e,n){let r=Y(["OP","g",t]);r.T=[];let o=r.vector,c=r.T,l=Y(["OP","C1","mapping",t]),i=l.ref;l.texture_cid=[],at(e,o,c,n,l.texture_cid,i)}function wt(t,e,n,r,o){let c=t[e];if(!t)return;let i=n[e];if(r){let t=B(c,l(r));o.raw.push(t),o.c0.push(i)}else o.raw.push(c),o.c0.push(i)}function Ct(t,e,n,r){for(let o=0;o<t.length;o++)wt(t,o,e,n,r)}function Pt(){j(["OP","g","focus"],o(Y(["OP","g","focal_pts"]))),q({bm_0:M()},["OP","temp"]),window.start=Date.now(),function(){let t={vector:[]},e=Y(["OP","g","focus"]),n=a(["S","bg_circle_r_addition"]),r=Y(["h"]),o=Y(["S","bg_circle_r_addition"]);for(;n<r;){let r=R(e[0],e[1],n,80);t.vector.push(r),o[1]+=a(["S","bg_circle_growth_rate"]),n+=l(o)}j(["OP","g","bt"],t)}(),ft(),dt(),gt(),function(){let t=W(),e=["p0","o1","bs","p","c","bt","ds","do"],n={};e.forEach((t=>{n[t]={ref:[],c0:[]}})),q(n,["OP","C1","mapping"]),e.forEach((e=>mt(t,e)))}(),vt("bs",Y(["OP","g","focus"]),"bt2"),vt("c",Y(["OP","g","focus"]),"ct"),vt("p0",Y(["OP","g","focus"]),"ct"),function(){let t=["OP","g"],e=["OP","C1","mapping"],n=[[...t,"bt","vector"],[...e,"bt","c0"],["T","bt","or"]],r=[[...t,"p0","vector"],[...e,"p0","c0"],undefined],o=[[...t,"o1","vector"],[...e,"o1","c0"],["T","o1","or"]],c=[[...t,"bs","vector"],[...e,"bs","c0"],undefined],l=[[...t,"bs","T"],[...e,"bs","texture_cid"],undefined],i=[[...t,"p","vector"],[...e,"p","c0"],["T","p","or"]],a=[[...t,"c","vector"],[...e,"c","c0"],undefined],u=[[...t,"c","T"],[...e,"c","texture_cid"],undefined],s=[[...t,"p0","T"],[...e,"p0","texture_cid"],undefined],f=[n,l,i,c,[[...t,"ds","vector"],[...e,"ds","c0"],undefined],[[...t,"do","vector"],[...e,"do","c0"],["T","do","or"]],o,r,s,u,a],h=Y(["OP","CL","polygons"]);for(let p=0;p<f.length;p++){let[t,e,n]=f[p],r=undefined;n&&(r=Y(n)),Ct(Y(t),Y(e),r,h)}}()}window.SETTING={w:900,h:V,R0:{},R1:{c:0,r:1.25,p0:null,e:null,gl:null,vs:null,fs:null,p1:null,d:1},B:{},H:{canvas:null,c1:null,mat_container:null},C0:{bg_c:0,blob_c:1,gap_c:2,scale_factor:12,shape:[],extract_factor_base:.5,dist_eps:[1,10],split_length:15,max_line_gap:5,min_border_px_ct:50},G:{curve_approx_length:5,u:10,w:null,h:null},T:{p0:{o:[.68,.99]},o1:{o:[.1,.25],or:[1,8]},bt:{o:[.05,.75],or:[.5,2]},bs:{o:[.15,.25]},bt2:{sc:[10,45],kr:.65,offset_rate:.5,cvar:{h:[-30,30],s:[-5,5],l:[-5,5],o:[.35,.48]},os:[2,15],noise_rg:[-12,12]},p:{o:[.01,.26],simplify_eps:3.5,smooth_alpha:.3,or:[.8,2.3],split_len:[3,6]},c:{o:[.15,.26]},ct:{sc:[15,35],kr:.95,offset_rate:.5,cvar:{h:[-30,30],s:[-5,5],l:[-5,5],o:[.25,.418]},os:[2,15],noise_rg:[-12,12]},ds:{o:[.05,.13],dot_r:[10,20],side_ct:[4,15],dot_side:[4,15],layer_ct:[4,7],radius_dec:[.65,.95],radius_side_inc:[.014,.025]},"do":{o:[.15,.23],or:[.1,1]}},C1:{ck:{p0:["5","6","7"],o1:["5","6","7","8"],bs:["1","2"],c:["8"],p:["1","2","3","4"],bt:["1","2","3","4"],ds:["0","1","2","3","4"],"do":["3","4","5","6","7"]},m0:{p0:.45,o1:.8,bs:.25,c:0,p:.45,bt:.25,ds:.25,"do":.5},m1:{p0:["5","6","7"],o1:["4","5","7"],bs:["3","4"],c:["8"],p:["5","6","7"],bt:["5","6","7"],ds:["5","6","7"],"do":["0","1","2","3","4","5","6","7"]},R3:{0:{r:{0:{h0:[0,15],s0:[65,80],l0:[65,80]},1:{h0:[30,40],s0:[70,95],l0:[80,95]},2:{h0:[15,45],s0:[60,80],l0:[73,95]},3:{h0:[120,160],s0:[25,35],l0:[40,60]},4:{h0:[180,220],s0:[45,60],l0:[65,85]},5:{h0:[200,230],s0:[25,45],l0:[55,70]},6:{h0:[40,60],s0:[80,90],l0:[80,95]},7:{h0:[25,45],s0:[75,85],l0:[65,85]},8:{h0:[200,230],s0:[90,100],l0:[45,65]}}},1:{r:{0:{h0:[200,245],s0:[85,90],l0:[60,80]},1:{h0:[30,40],s0:[70,95],l0:[75,95]},2:{h0:[0,30],s0:[60,80],l0:[75,95]},3:{h0:[200,220],s0:[70,95],l0:[40,60]},4:{h0:[200,250],s0:[45,60],l0:[65,85]},5:{h0:[300,330],s0:[25,45],l0:[55,70]},6:{h0:[0,30],s0:[80,90],l0:[85,95]},7:{h0:[45,60],s0:[75,85],l0:[65,85]},8:{h0:[0,15],s0:[85,100],l0:[50,70]}}},2:{r:{0:{h0:[99,140],s0:[35,50],l0:[45,55]},1:{h0:[30,40],s0:[70,95],l0:[75,95]},2:{h0:[0,30],s0:[60,80],l0:[75,95]},3:{h0:[80,150],s0:[35,45],l0:[25,40]},4:{h0:[180,200],s0:[45,60],l0:[65,85]},5:{h0:[200,230],s0:[25,45],l0:[55,70]},6:{h0:[300,330],s0:[80,90],l0:[85,95]},7:{h0:[45,60],s0:[75,85],l0:[65,85]},8:{h0:[0,15],s0:[85,100],l0:[50,70]}}}},picks:{0:10,1:10,2:10,3:10,4:10,5:5,6:5,7:4,8:4}},DF:{b:{m:["SRC_ALPHA","ONE_MINUS_SRC_ALPHA","ONE","ONE_MINUS_SRC_ALPHA"]},border:{perc:.035,size:96*.7}},S:{lg_perc:.25,pt_init_ct:[55,75],pt_dist_weight:[.75,.3],focal_r:[45,70],pt_r:[7,20],turn_rg_perc:[.25,.4],curve_deg:[30,60],curve_dist:[.35,.69],spread_rep_ct:[1,3],spread_line_ct:[16,35],sp_init_rot:[-180,180],line_outline_perc:[.35,.55],curve_outline_perc:[.6,.85],spreads_outline_perc:[.2,.35],line_base_perc:[.25,.48],curve_base_perc:[.4,.6],base_offset:[5,20],base_rep_ct:[2,3],base_overlay_noise:[-35,35],pattern_weight:[.6,.1],bg_circle_r_addition:[5,25],bg_circle_growth_rate:[.01,.35],base_rotating_dot_weight:[.7,.2],dots_outline_rate:[.15,.4]},p:{},"static":{bg_patterns:["grid","frame","center_box","ladder"],fg_patterns:["grid","center_box","pond","corner","field","flip"]},lambda:{scale:null,color_spec:{c:{s:{max:539200**.5,min:0},p:(t,e)=>d(b(g(t)),e)},h:{s:{max:V,min:0},p:(t,e)=>t[0][1]},v:{s:{max:900,min:0},p:(t,e)=>t[0][0]}},dd:(t,e)=>d(b(g(t)),e),hsl_checker:[t=>Math.min(Math.max(0,t),359),t=>Math.min(Math.max(0,t),100),t=>Math.min(Math.max(0,t),100)]},link:{},OP:{C1:{mapping:{}},g:{},CL:{},"static":{},temp:{}}},function(t){q({prngA:new e(t.hash.substr(2,32)),prngB:new e(t.hash.substr(34,32)),useA:0},["R0"])}(tokenData),function(){L(document.body,{width:"100%",height:"100%",margin:"0",padding:"0","overflow-y":"hidden","overflow-x":"hidden","-ms-overflow-style":"none","scrollbar-width":"none","image-rendering":"high-quality","background-color":"#FFFFFF"});let t=document.createElement("canvas");j(["H","canvas"],t),D();let[e,n]=function(){let t=document.createElement("div");L(t,{display:"flex","align-items":"center","align-content":"center","justify-content":"center",width:"100%",height:`${window.innerHeight}px`,margin:"0px",padding:"0px"});let e=document.createElement("div");return q({c1:t,mat_container:e},["H"]),L(e,{width:`${Y(["g","w"])}px`,height:`${Y(["g","h"])}px`,display:"flex","flex-direction":"row","align-items":"center","align-content":"center","justify-content":"center","flex-wrap":"nowrap"}),t.appendChild(e),[t,e]}();n.appendChild(t),document.body.appendChild(e),D(),H()}();let xt=Y(["H","canvas"]).getContext("webgl");if(q({e:null!==xt,gl:xt},["R1"]),xt){q({c_rule:o(Object.keys(Y(["C1","R3"])))},["OP","static"]),Q(),function(){let t,e,n,r,o;t=Y(["w"]),e=Y("h");let c=Y(["C0","scale_factor"]);j(["C0","shape"],[Math.floor(e/c),Math.floor(t/c)]),n=w(0,0,t,e,2,2),n.push([t/2,e/2]),j(["OP","g","focal_pts"],n),j(["OP","g","rect"],P(0,0,t,e)),r=Y(["DF","S","lg_perc"]),o=P(-r*t,-r*e,t*(1+2*r),e*(1+2*r)),j(["OP","g","lg_rect"],o)}(),q({lines:{raw:[],c0:[],rgba:[],wgl:[]},polygons:{raw:[],c0:[],rgba:[],wgl:[]},p0:{raw:[],c0:[],rgba:[],wgl:[]}},["OP","CL"]),Pt(),rt(),requestAnimationFrame(Rt);let Et=function(){D(),H(),setTimeout(requestAnimationFrame(Rt))};function Rt(){Y(["R1","e"])&&Y(["R1","c"])&&nt()}window.addEventListener("resize",Et),document.addEventListener("orientationchange",Et)}else{let Ot=Y(["H","canvas"]);document.body.removeChild(Ot.parentElement.parentElement);let Mt=document.createElement("h1");Mt.innerText="Please switch to a WebGL-enabled browser and refresh.",document.body.appendChild(Mt)} }],
[1,()=>{console.log("Artist 9. Marcelo Soria-Rodriguez -- platform 1");const _cFB=function(e){const t=new Framebuffer(this,e),r=this._renderer.resize;return this._renderer.resize=((e,i)=>{r.call(this._renderer,e,i),t.handleResize()}),t};p5.prototype.createFramebuffer=_cFB,p5.Graphics.prototype.createFramebuffer=_cFB,p5.RendererGL.prototype._initContext=function(){try{if(Framebuffer.forceWebGL1||(this.drawingContext=this.canvas.getContext("webgl2",this._pInst._glAttributes)),this.hasWebGL2=!!this.drawingContext,this.drawingContext||(this.drawingContext=this.canvas.getContext("webgl",this._pInst._glAttributes)||this.canvas.getContext("experimental-webgl",this._pInst._glAttributes)),null===this.drawingContext)throw new Error("Error creating webgl context");{const e=this.drawingContext;e.enable(e.DEPTH_TEST),e.depthFunc(e.LEQUAL),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),this._viewport=this.drawingContext.getParameter(this.drawingContext.VIEWPORT)}}catch(e){throw e}};const parentGetTexture=p5.RendererGL.prototype.getTexture;p5.RendererGL.prototype.getTexture=function(e){return e instanceof p5.Texture?e:parentGetTexture.call(this,e)};class RawTextureWrapper extends p5.Texture{constructor(e,t,r,i,s){return super(e,t,r),this.width=i,this.height=s,this}_getTextureDataFromSource(){return this.src}init(e){this._renderer.GL;this.glTex=e,this.glWrapS=this._renderer.textureWrapX,this.glWrapT=this._renderer.textureWrapY,this.setWrapMode(this.glWrapS,this.glWrapT),this.setInterpolation(this.glMinFilter,this.glMagFilter)}update(){return!1}}class FramebufferCamera extends p5.Camera{constructor(e){super(e._renderer),this.fbo=e}_computeCameraDefaultSettings(){super._computeCameraDefaultSettings(),this.defaultAspectRatio=this.fbo.width/this.fbo.height,this.defaultEyeZ=this.fbo.height/2/Math.tan(this.defaultCameraFOV/2),this.defaultCameraNear=.1*this.defaultEyeZ,this.defaultCameraFar=10*this.defaultEyeZ}resize(){this._computeCameraDefaultSettings(),this._setDefaultCamera()}}class Framebuffer{constructor(e,t={}){this.canvas=e,this._renderer=e._renderer;const r=this._renderer.GL,i=t.size;this.autoSized=!i,i&&(this.width=i.width,this.height=i.height,this.density=i.pixelDensity||e.pixelDensity()),this.antialias=t.antialias||!1,this.colorFormat=this.glColorFormat(t.colorFormat),this.depthFormat=this.glDepthFormat(t.depthFormat),"float"!==t.colorFormat&&"float"!==t.depthFormat||(this._renderer.hasWebGL2?r.getExtension("EXT_color_buffer_float"):r.getExtension("OES_texture_float")&&r.getExtension("OES_texture_float_linear")&&r.getExtension("WEBGL_color_buffer_float"))||("float"===t.colorFormat&&(this.colorFormat=this.glColorFormat()),"float"===t.depthFormat&&(this.depthFormat=this.glDepthFormat()));let s="Unable to create a framebuffer";const a=r.createFramebuffer();if(!a)throw new Error(s);if(this.framebuffer=a,this.antialias&&this._renderer.hasWebGL2&&(this.aaFramebuffer=r.createFramebuffer(),!this.aaFramebuffer))throw new Error(s);this.recreateTextures();const n=this._renderer._curCamera;this.cam=this.createCamera(),e.setCamera(n)}createCamera(){const e=new FramebufferCamera(this);return e._computeCameraDefaultSettings(),e._setDefaultCamera(),this._renderer._curCamera=e,e}defaultCamera(){return this.cam}resizeCanvas(e,t){this.autoSized=!1,this.width=e,this.height=t,this.handleResize()}pixelDensity(e){if(!e)return this.density*this.aaDensity;this.autoSized=!1,this.density=e,this.handleResize()}autoSized(e){if(void 0===e)return this.autoSized;this.autoSized=e,this.handleResize()}glColorFormat(e){const t=this._renderer.GL;return"float"===e?t.FLOAT:t.UNSIGNED_BYTE}glDepthFormat(e){const t=this._renderer.GL;return"float"===e?t.FLOAT:t.UNSIGNED_INT}glInternalFormat(e){if(this.antialias&&this._renderer.hasWebGL2)return this.glInternalRenderbufferFormat(e);const t=this._renderer.GL;return this._renderer.hasWebGL2&&this.colorFormat===t.FLOAT?e?t.RGBA16F:t.RGB16F:e?t.RGBA:t.RGB}glInternalRenderbufferFormat(e){const t=this._renderer.GL;if(this.colorFormat===t.FLOAT){if(this._renderer.hasWebGL2)return t.RGBA16F;throw new Error("Antialiased fp values not available in WebGL 1")}return e?t.RGBA4:t.RGB565}glDepthInternalFormat(){const e=this._renderer.GL;return this._renderer.hasWebGL2?e.DEPTH_COMPONENT24:e.DEPTH_COMPONENT}glDepthInternalRenderbufferFormat(){const e=this._renderer.GL;return this._renderer.hasWebGL2?e.DEPTH_COMPONENT24:e.DEPTH_COMPONENT16}glFormat(e){const t=this._renderer.GL;return e?t.RGBA:t.RGB}handleResize(){this.cam.resize();const e=this.cTx,t=this.depthTexture,r=this.colorRenderbuffer,i=this.depthRenderbuffer;this.recreateTextures(),this.deleteTexture(e),this.deleteTexture(t);const s=this._renderer.GL;r&&s.deleteRenderbuffer(r),i&&s.deleteRenderbuffer(i)}updateSize(){this.autoSized&&(this.width=this._renderer.width,this.height=this._renderer.height,this.density=this._renderer._pInst._pixelDensity),this.aaDensity=this.antialias&&!this._renderer.hasWebGL2?2:1}recreateTextures(){const e=this._renderer.GL,t=e.TEXTURE_2D,r=e.CLAMP_TO_EDGE,i=e.TEXTURE_MAG_FILTER,s=e.FRAMEBUFFER,a=e.RENDERBUFFER;this.updateSize();const n=this._renderer._pInst._glAttributes.alpha,h=e.getParameter(e.TEXTURE_BINDING_2D),o=e.getParameter(e.FRAMEBUFFER_BINDING),d=e.createTexture();let c="Unable to create ",u=" texture";if(!d)throw new Error(c+"color"+u);e.bindTexture(t,d),e.texParameteri(t,i,e.LINEAR),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(t,e.TEXTURE_WRAP_S,r),e.texParameteri(t,e.TEXTURE_WRAP_T,r),e.texImage2D(e.TEXTURE_2D,0,this.glInternalFormat(n),this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,0,this.glFormat(n),this.colorFormat,null);const f=e.createTexture();if(!f)throw new Error(c+"depth"+u);e.bindTexture(t,f),e.texParameteri(t,i,e.NEAREST),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_WRAP_S,r),e.texParameteri(t,e.TEXTURE_WRAP_T,r),e.texImage2D(e.TEXTURE_2D,0,this.glDepthInternalFormat(),this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,0,e.DEPTH_COMPONENT,this.depthFormat,null),e.bindFramebuffer(s,this.framebuffer),e.framebufferTexture2D(s,e.COLOR_ATTACHMENT0,t,d,0),e.framebufferTexture2D(s,e.DEPTH_ATTACHMENT,t,f,0),this.antialias&&this._renderer.hasWebGL2&&(this.colorRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(a,this.colorRenderbuffer),this._renderer.hasWebGL2?e.renderbufferStorageMultisample(a,4,this.glInternalRenderbufferFormat(n),this.width*this.density,this.height*this.density):e.renderbufferStorage(a,Math.min(4,e.getParameter(e.MAX_SAMPLES)),this.glInternalRenderbufferFormat(n),this.width*this.density,this.height*this.density),this.depthRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(a,this.depthRenderbuffer),this._renderer.hasWebGL2?e.renderbufferStorageMultisample(a,Math.min(4,e.getParameter(e.MAX_SAMPLES)),this.glDepthInternalRenderbufferFormat(),this.width*this.density,this.height*this.density):e.renderbufferStorage(a,e.getParameter(e.MAX_SAMPLES),this.glDepthInternalRenderbufferFormat(),this.width*this.density,this.height*this.density),e.bindFramebuffer(s,this.aaFramebuffer),e.framebufferRenderbuffer(s,e.COLOR_ATTACHMENT0,a,this.colorRenderbuffer),e.framebufferRenderbuffer(s,e.DEPTH_ATTACHMENT,a,this.depthRenderbuffer));let l="nearest";const m=new RawTextureWrapper(this._renderer,f,{minFilter:l,magFilter:l},this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity);this._renderer.textures.push(m);const z=new RawTextureWrapper(this._renderer,d,{glMinFilter:l,glMagFilter:l},this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity);this._renderer.textures.push(z),e.bindTexture(e.TEXTURE_2D,h),e.bindFramebuffer(s,o),this.depthTexture=f,this.depth=m,this.colorTexture=d,this.color=z}deleteTexture(e){this._renderer.GL.deleteTexture(e);const t=this._renderer.textures.findIndex(t=>t.src===e);-1!==t&&this._renderer.textures.splice(t,1)}draw(e){const t=this._renderer.GL,r=t.getParameter(t.FRAMEBUFFER_BINDING);this.antialias&&this._renderer.hasWebGL2?t.bindFramebuffer(t.FRAMEBUFFER,this.aaFramebuffer):t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer);const i=t.getParameter(t.VIEWPORT);t.viewport(0,0,this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity);let s=this._renderer._curCamera.cameraMatrix.mat4;if(this.canvas.push(),this.canvas.setCamera(this.cam),this._renderer.uMVMatrix.set(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]),e(),this.antialias&&this._renderer.hasWebGL2){t.bindFramebuffer(t.READ_FRAMEBUFFER,this.aaFramebuffer),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,this.framebuffer);for(const[e,r]of[[t.COLOR_BUFFER_BIT,t.LINEAR],[t.DEPTH_BUFFER_BIT,t.NEAREST]])t.blitFramebuffer(0,0,this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,0,0,this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,e,r)}t.bindFramebuffer(t.FRAMEBUFFER,r),t.viewport(...i),this.canvas.pop()}remove(){const e=this._renderer.GL;this.deleteTexture(this.cTx),this.deleteTexture(this.depthTexture),e.deleteFramebuffer(this.framebuffer),this.aaFramebuffer&&e.deleteFramebuffer(this.aaFramebuffer),this.depthRenderbuffer&&e.deleteRenderbuffer(this.depthRenderbuffer),this.colorRenderbuffer&&e.deleteRenderbuffer(this.colorRenderbuffer)}}Framebuffer.forceWebGL1=!1;class Renderer{constructor(e=window,t={}){this.target=e,this.fbo=e.createFramebuffer(t),this.shader=e.createShader(this.vert(),this.frag()),this.u="Unimplemented"}vert(){throw new Error(this.u)}frag(){throw new Error(this.u)}draw(e){this.fbo.draw(()=>{this.target.push(),e(),this.target.pop()});const t=this.getUniforms();this.target.push(),this.target.noStroke(),this.target.rectMode(CENTER),this.target.shader(this.shader);for(const e in t)this.shader.setUniform(e,t[e]);this.target.rect(0,0,this.target.width,-this.target.height),this.target.pop()}remove(){this.fbo.remove()}}const superPerspective=p5.Camera.prototype.perspective;p5.Camera.prototype.perspective=function(e,t,r,i){this._near=void 0===r?this.defaultCameraNear:r,this._far=void 0===i?this.defaultCameraFar:i,superPerspective.call(this,e,t,r,i)};let cV,sh,sW,sH,fA,fB,FC,tD=tokenData,z={},fN="ciclos-i",sv="attribute vec3 aPosition;attribute vec2 aTexCoord;varying vec2 vTexCoord;void main() {vTexCoord = aTexCoord;vec4 p4 = vec4(aPosition, 1.0);p4.xy = p4.xy * 2.0 - 1.0;gl_Position = p4;}",sf="precision mediump float;varying vec2 vTexCoord;uniform sampler2D tex0,texQ;uniform float time,rot,rA[50],rB[50],ur[2],v;float rd(vec2 st){return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);}float md(float x,float y){return x-y*floor(x/y);}vec2 md(vec2 v,float k){return v-k*floor(v/k);}vec2 qM(vec2 a,float k){return vec2(float(int(a.x*k))/k,float(int(a.y*k))/k);}float n0(in vec2 st){vec2 i=floor(st);vec2 f=fract(st);float a=rd(i);float b=rd(i+vec2(1.,.0));float c=rd(i+vec2(.0,1.));float d=rd(i+vec2(1.,1.));vec2 u=f*f*(3.-2.*f);return mix(a,b,u.x)+(c-a)*u.y*(1.-u.x)+(d-b)*u.x*u.y;}float fbm(in vec2 st){float v=.0;float a=.52;for(int i=0;i<3;i++){v+=a*n0(st);st *=2.195*(.5+rA[12]+rA[14]);a *=.5;}return v;}vec3 eB4(sampler2D t,vec2 tUV,vec2 sS,mat3 cM,float h){vec3 o=vec3(.0);float gO[9];gO[0]=h*.663;gO[1]=h*2.479;gO[2]=h*4.462;gO[3]=h*6.446;gO[4]=h*8.429;gO[5]=h*10.413;gO[6]=h*12.397;gO[7]=h*14.381;gO[8]=h*16.365;for(int i=0;i<9;i++){vec2 tCO=vec2(gO[i],-gO[i]*.95)*sS;vec3 c=texture2D(t,tUV+tCO).xyz+texture2D(t,tUV-tCO).xyz;c *=cM[int(float(i)/3.)][int(md(float(i),3.))];o+=c;}return o;}void main(){vec2 uv=vTexCoord;float aR=ur[1]/ur[0];vec2 u=vec2(ur[1]<ur[0] ? 1. : 1./aR,(ur[1]<ur[0] ? aR : 1.));vec2 u2=uv;vec2 ct=.5*u.xy;float r=rB[41];mat2 rM2=mat2(cos(r),-sin(r),sin(r),cos(r));vec2 c2=0.5*vec2(u.x,u.y);u2 *=u;u2=rM2*((u2-c2))+c2;u2 /=u;u2=md(u2+.0001*vec2(rB[10],rB[11])*time,1.);vec3 tQ=texture2D(texQ,vec2(u2.x,1.-u2.y)).xyz;uv+=v*vec2(rB[6],rB[23])*.2*tQ.rg;uv+=-.5+qM(uv,pow(90.*tQ.g*tQ.g,3.));vec3 nT=vec3(fbm(vec2(fbm(2.4*(uv)+time/1e3+1.),fbm(2.2*(uv)+time/1e3+1.))*9.79));r+=md(rB[40]*(.0015+v*2.*tQ.r*tQ.r*.01)*time,3.14);mat2 rM=mat2(cos(r),-sin(r),sin(r),cos(r));uv *=u;uv=rM*((uv-ct))+ct;uv /=u;vec2 uv4=uv;uv4+=(v+.01)*(.01)*nT.rg*(1.+.3*rd(nT.rg));mat3 m3_e1=.90*mat3(3.,.0,.0,.0,-1.,-1.,3.5,-3.,-1.);vec3 tI=eB4(tex0,vec2(uv4.x,1.-uv4.y),vec2(1./ur[0],1./ur[1]),m3_e1,.05+2.*v*(.5-tQ.g)*(.5+.15*nT.r));uv4.x+=.35*rd(uv+(nT.rg));uv4.y+=.35*rd(uv4+(nT.gb));tI=.7*tI+.55*texture2D(tex0,vec2(uv4.x,1.-uv4.y)).xyz;tI *=tI;gl_FragColor=vec4(pow(tI,vec3(1.3)),1.);}";Random=((e=Uint32Array.of(9,7,5,3),t=((t=1)=>t*(t=e[3],e[3]=e[2],e[2]=e[1],t^=t<<11,e[0]^=t^t>>>8^(e[1]=e[0])>>>19,e[0]/2**32)))=>([...tokenData.hash+"ThxBrightMoments"].map(r=>t(e[3]^=r.charCodeAt()*e[0])),{R:t,S:e,random_dec:t,random_num:(e,r)=>e+t(r-e),random_int:(e,r)=>Math.floor(e+t(r-e+1)),random_bool:e=>t()<e,random_choice:e=>e[0|t(e.length)]}));let R=Random();class YY{constructor(){for(let e=0;e<100;e++)this.d();this.A=[],this.B=[];for(let e=0;e<50;e++)this.A.push(this.d()),this.B.push(this.dd())}d(){return R.random_dec()}dd(){return 2*this.d()-1}n(e,t){return R.random_num(e,t)}i(e,t){return R.random_int(e,t)}c(e){return R.random_choice(e)}sgn(){return(-1)**this.c([0,1])}}Y=new YY;class aRect{constructor(e,t,r,i,s){this.a=e,this.b=t,this.c=r,this.d=i,this.m=4*(1+.1*Y.d()),this.cA=cV((this.a.x+this.b.x)*(.5+.2*Y.dd()),this.a.y*(.5+.5*Y.d())),this.cB=cV((this.a.x+this.b.x)*(1.25*Y.sgn()+.25*Y.dd()),(this.a.y+this.c.y)*(.5+.25*Y.dd())),this.rL=s,this.w=Math.abs(this.b.x-this.a.x),this.h=Math.abs(this.c.y-this.a.y),this.cP=cV((this.a.x+this.b.x+this.c.x+this.d.x)/4,(this.a.y+this.b.y+this.c.y+this.d.y)/4),this.ar=this.w*this.h}di(e,t){let r=this.a,i=this.b,s=this.c,a=this.d,n=this.w,h=this.h,o=e.length>1?Y.c(e):e;return t>0?[new aRect(r,i,cV(s.x,r.y+h*o),cV(a.x,i.y+h*o),this.rL+1,1),new aRect(cV(s.x,r.y+h*o),cV(a.x,i.y+h*o),s,a,this.rL+1,1)]:[new aRect(r,cV(r.x+n*o,i.y),s,cV(s.x+n*o,a.y),this.rL+1,1),new aRect(cV(r.x+n*o,i.y),i,cV(s.x+n*o,a.y),a,this.rL+1,1)]}}qt=function(e,t,r,i,s,a=0,n=[.5]){if(0==r)return[e];if(t>r||t>1&&Y.d()<s)return[e];let h=[],o=[];if(1==(o=e.di(n,i)).length)return[e];for(let e=0;e<o.length;e++){let n=[];n=qt(o[e],t+1,r,-i,s,a),h.push(...n)}return h},urlp=function(){let e,t=window.location.search,r=new URLSearchParams(t);for(var i of r.entries())null!=(e=i[0].split("."))&&(z[e]=parseFloat(i[1]))},setup=function(){wW=windowWidth,wH=windowHeight,sW=900,sH=1600,z.pd=pixelDensity();let e=/HeadlessChrome/.test(navigator.userAgent);cV=createVector,urlp(),pixelDensity(z.pd),createCanvas(wW,wH,WEBGL).id("ciclos"),z.S=wH/sH;let t={colorFormat:"float",alpha:!0,premultipliedAlpha:!0};cF=createFramebuffer,fA=cF(t),fB=cF(t),sh=createShader(sv,sf),sAP(),urlp(),FC=frameCount=z.FC,e&&(z.off=5.25*z.T,frameCount+=1e3),frameRate(z.fR),QT(),dL(),console.log("ciclos - i\nPeriods of unified ensemble and others of diversity - both work. Transitions may be confusing, but ultimately both operate in cycles.\n\nPart of the Bright Moments Finale collection.\nOriginal artwork by Marcelo Soria-Rodríguez @msoriaro, 2024. CC BY-NC-SA 4.0\n\nPress any key / click / tap to start audio. Tap again / press m to mute/unmute. Append ?pd=N to generate at pixel density N (increase/decrease resolution). Press v to start/stop video recording (webm). Press s to save the current image.\n")};let mG,aRD,mR,ac=null;aS=function(){ac?mt():(ac=new AudioContext,(mG=ac.createGain()).connect(ac.destination),mG.gain.setValueAtTime(.1/3.7,ac.currentTime),aRD=ac.createMediaStreamDestination(),mG.connect(aRD),z.as=!0,z.m=!1)},au=function(e,t,r,i){for(let s=0;s<t;s++){let t=ac.currentTime,a=ac.createOscillator(),n=ac.createGain();a.type="sine",a.connect(n),n.connect(mG);let h=z.gg*(1/(s+1)),o=z.att*r,d=z.dec*r,c=z.sus*d;n.gain.setValueAtTime(0,t),n.gain.linearRampToValueAtTime(h,t+o),n.gain.linearRampToValueAtTime(.8*h*(1+.1*Y.d()),t+o+d),n.gain.linearRampToValueAtTime(.8*h*(1+.1*Y.d()),t+o+d+c),n.gain.linearRampToValueAtTime(0,t+3*r),a.frequency.setValueAtTime(e+e*int(s/4),t),a.detune.setValueAtTime((1e3*i+5)*Y.dd(),t),a.start(0),a.stop(t+3*r)}},sAP=function(){z.as=!1,z.FC=1,z.fR=30,z.rV=!1,z.nL=Y.i(7,90),z.nLW=Y.n(.1,.9)*sH/z.nL,z.br=new aRect(cV(-sW,-sH),cV(2*sW,-sH),cV(-sW,2*sH),cV(2*sW,2*sH),0,z.tcT),z.pSP=Y.n(.07,.25),z.q1=Y.n(.075,.15),z.q2=Y.c([.15,.25,.33,.5,.66,.75,.85]),z.q=qt(z.br,0,11,Y.sgn(),z.pSP,z.q1,z.q2),z.dLc=[],z.dLswK=[];for(let e=0;e<4*z.nL;e++)z.dLc.push(Y.d()<Y.d()?0:255),z.dLswK.push(.5+Y.d());z.m=!0,z.bn=[0,.25,.167,.125,.1,.083],z.fb=110*(1+Y.i(1,12)/12),z.T=960,z.off=Y.i(0,z.T),z.v=0,z.vp=0,z.att=.025,z.dec=.1,z.sus=.5,z.rel=1-z.att-z.dec-z.sus,z.gg=.5,z.n0=Y.c([5,5,10,20]),z.d0=Y.c([2,3,4]),z.n1=Y.c([20,15]),z.p=[1,1,1,1],z.vq=1,z.df=!0,z.dfn=30*z.T,z.sh={},z.sh.rA=Y.A,z.sh.rB=Y.B,z.sh.rot=3*Y.d(),z.sh.ur=[wW,wH]},shI=function(){shader(sh),z.sh.time=FC,[...Object.keys(z.sh)].map(e=>sh.setUniform(e,z.sh[e]))},QT=function(){fB.draw(()=>{push(),scale(z.S),background(0),translate(-sW/2,-sH/2),noStroke();let e=Y.i(0,255);for(let t=0;t<z.q.length;t++)fill((e+20*t)%255,50+(e+15*t)%200,0),rect(z.q[t].a.x,z.q[t].a.y,z.q[t].w,z.q[t].h);pop()})},dL=function(){fA.draw(()=>{clear(),push(),scale(z.S),background(Y.A[5]<.5?0:255),translate(-sW/2,-sH/2),rotate(.1*FC);for(let e=0;e<4*z.nL;e++)strokeWeight(z.S*z.nLW*z.dLswK[e]),stroke(z.dLc[e]),line(-3*sW+2*e*sW/z.nL,-sH,-3*sW+2*e*sW/z.nL,sH);translate(0,0,1),noStroke();for(let e=0;e<max(1,10*Y.A[6]);e++)fill(e%2==0?0:255),circle(sW/2,sH/2,(1+Y.A[26]+.5*Y.B[27])*sH/(4+e));pop()})},gCSA=function(e,t,r,i,s,a){let n=(FC+a)%e;r*=e,i*=e;let h=0;return n<(t*=e)/2?(z.css=0,h=2*(n/t)**2):n<t?(z.css=0,h=1-.5*(-2*n/t+2)**2):n<t+r?(z.css=1,h=1):n<t+r+i/2?(z.css=2,h=1-.5*(-2*((n-t-r)/i+1)+2)**2):n<t+r+i?(z.css=2,h=2*(-(n-t-r)/i+1)**2):(z.css=n<e-(t+r+i)/2?3:4,h=0),h*s},ap=function(){if(!z.as)return;FC%z.T==0&&(Y.d()<.8&&(z.fb=110+110*Y.c(z.bn)+110*(Y.d()<.2?2:0)),z.d0=Y.c([2,3,4]),Y.d()<.25&&(z.n1=Y.c([20,15])),z.p[0]=Y.d()<.8,z.p[1]=Y.d()<.8,z.p[2]=Y.d()<.8,z.p[3]=Y.d()<.8,Y.d()<.25&&(z.n0=Y.c([5,5,10,20])));let e,t=5;t=z.n0+int(0==z.v||1==z.v?0:Y.i(-8,8)*z.v),z.p[0]&&FC%t==0&&(e=(1+z.v)*(z.fb+z.fb/(1+FC*z.d0%12)),au(e,5,.1,0==z.v||1==z.v?0:z.v)),t=z.n1+int(0==z.v||1==z.v?0:Y.i(-8,8)*z.v),z.p[1]&&FC%t==0&&(e=(1+z.v)*(z.fb+FC/z.n1%2*200),au(e,5,.66,0==z.v||1==z.v?0:z.v)),t=30+int(0==z.v||1==z.v?0:Y.i(-8,8)*z.v),z.p[2]&&FC%t==0&&(e=(1+z.v)*(z.fb+z.fb/Y.i(1,12)),au(e,5,1,0==z.v||1==z.v?0:z.v)),t=5+int(0==z.v||1==z.v?0:Y.i(-8,8)*z.v),z.p[3]&&FC%t==0&&au(z.fb,5,.4,0==z.v||1==z.v?0:z.v)},mRs=function(e){var t=new Blob(e,{type:"video/webm"});const r=URL.createObjectURL(t),i=document.createElement("a");i.style="display:none;",i.href=r;let s=new Date(Date.now());i.download=fN+"_when_"+s.toISOString()+"_id_"+tD.tokenId+"_seed_"+tD.hash+".webm",document.body.appendChild(i),i.click(),setTimeout(()=>{URL.revokeObjectURL(r),document.body.removeChild(i)},0),mt()},sV=function(){if(z.rV)z.rV=!1,mR.stop();else{const e={videoBitsPerSecond:4*z.vq*4*25e5,frameRate:z.fR,mimeType:"video/webm;codecs:vp9"};z.rV=!0;let t=[],r=document.getElementById("ciclos"),i=new MediaStream([r.captureStream(z.fR).getVideoTracks()[0],aRD.stream.getAudioTracks()[0]]);(mR=new MediaRecorder(i,e)).ondataavailable=(e=>{t.push(e.data)}),mR.onstop=(()=>{mRs(t)}),mR.start(5e3)}},draw=function(){FC=frameCount,z.df&&(FC%=z.dfn),z.vp=z.css,z.v=gCSA(z.T,.15,.4,.15,1,z.off),z.sc=z.vp!=z.css,z.a=4==z.css&&!!z.sc,z.a0=3==z.css&&!!z.sc,z.a&&(resetShader(),z.q=qt(z.br,0,Y.i(8,11),Y.sgn(),z.pSP,z.q1,z.q2),QT()),ap(),z.sh.v=z.v,shI(),sh.setUniform("tex0",fA.color),sh.setUniform("texQ",fB.color),rect(0,0,wW,wH)},ss=function(){let e=new Date(Date.now());save((fN+"_FC_"+FC+"_when_"+e.toISOString()+"_id_"+tD.tokenId+"_seed_"+tD.hash).split(":").join("-")+".png")},mt=function(){z.m=!z.m,mG.gain.setValueAtTime(z.m?0:.1/3.7,ac.currentTime)},keyTyped=function(){z.as||aS(),"s"===key?ss():"v"===key?sV():"m"===key&&mt()}; addC = function(){document.body.onclick=aS;} if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", addC); } else { addC(); } }],
[1,()=>{console.log("Artist 48. fingacode -- platform 1");var G=Object.defineProperty;var V=(o,t,e)=>t in o?G(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e;var C=(o,t,e)=>(V(o,typeof t!="symbol"?t+"":t,e),e);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const r of n.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&s(r)}).observe(document,{childList:!0,subtree:!0});function e(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function s(i){if(i.ep)return;i.ep=!0;const n=e(i);fetch(i.href,n)}})();class w{constructor(){this.useA=!1;let t=function(e){let s=parseInt(e.substring(0,8),16),i=parseInt(e.substring(8,16),16),n=parseInt(e.substring(16,24),16),r=parseInt(e.substring(24,32),16);return function(){s|=0,i|=0,n|=0,r|=0;let a=(s+i|0)+r|0;return r=r+1|0,s=i^i>>>9,i=n+(n<<3)|0,n=n<<21|n>>>11,n=n+a|0,(a>>>0)/4294967296}};this.prngA=new t(tokenData.hash.substring(2,34)),this.prngB=new t(tokenData.hash.substring(34,66));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(t,e){return t+(e-t)*this.random_dec()}random_int(t,e){return Math.floor(this.random_num(t,e+1))}random_bool(t){return this.random_dec()<t}random_choice(t){return t[this.random_int(0,t.length-1)]}}const u=[0],f=[240],B={bw:{background:f,outline:u,colors:[[240],[80]]},invert:{background:u,outline:f,colors:[u]},one:{background:f,outline:u,colors:[[53],[60,110,113],[200],[40,75,99]]},two:{background:f,outline:u,colors:[[222,162,71],[14,57,144],[146,101,49],[225,216,196]]},three:{background:f,outline:u,colors:[[0,122,94],[252,209,22],[206,17,38]]},four:{background:f,outline:u,colors:[[207,219,213],[232,237,223],[245,203,92],[51,53,51]]},five:{background:f,outline:u,colors:[[150,3,26],[250,169,22],[109,103,110]]},six:{background:f,outline:u,colors:[[142,202,230],[33,158,188],[2,48,71],[255,183,3],[251,133,0]]},eight:{background:f,outline:u,colors:[[1,38,34],[0,59,54],[236,229,240],[233,138,21]]}},_=new w,j=_.random_choice(Object.keys(B)),H={name:j,palette:B[j]},z={width:1080*3,height:1920*3},W=_.random_int(5,15),c={canvas:z,grid:{width:z.width,height:z.height,margin:{x:-50,y:-50},padding:{x:0,y:0},cascade:_.random_bool(0),isEvenSplit:_.random_bool(0),x:W,y:W},style:H,borderThickness:100,isBorderRect:_.random_bool(1)},I=new w;class ${constructor({width:t=0,height:e=0,x:s=0,y:i=0,margin:n={x:0,y:0},padding:r={x:0,y:0},cascade:a=!1,isEvenSplit:d=!0,visibleProbability:g=1}){C(this,"generate",()=>{let t=[];const i=this.y,n=this.height/(this.y*4),r=this.height/(this.y/1),a=this.splitNumber(this.height,n,r,i,!0),d=this.x,g=this.width/(this.x*4),y=this.width/(this.x/1);let v=this.margin.y,F=1,L=1;for(let l=0;l<i;l++){let b=this.margin.x,R=!1,A=!1;const x=this.splitNumber(this.width,g,y,d,this.isEvenSplit);for(let h=0;h<d;h++){let O=!1,T=!1,D=!1,S=!1;l==0&&(R=!0),l==i-1&&(A=!0),h==0&&(D=!0),h==d-1&&(S=!0),h==0&&(O=!0),h==d-1&&(T=!0);let M=h+1;t.push({id:F,randSort:I.random_dec(),colId:this.cascade?L:M,rowId:this.cascade?M:L,isFirstBlock:O,isLastBlock:T,isFirstCol:this.cascade?R:D,isFirstRow:this.cascade?D:R,isLastCol:this.cascade?A:S,isLastRow:this.cascade?S:A,width:this.cascade?a[l]-this.padding.y*2:x[h]-this.padding.x*2,height:this.cascade?x[h]-this.padding.x*2:a[l]-this.padding.y*2,x:this.cascade?v+this.padding.y+(a[l]-this.padding.y*2)/2:b+this.padding.x+(x[h]-this.padding.x*2)/2,y:this.cascade?b+this.padding.x+(x[h]-this.padding.x*2)/2:v+this.padding.y+(a[l]-this.padding.y*2)/2,isVisible:I.random_bool(this.visProb),style:void 0,colour:void 0,_width:this.cascade?a[l]:x[h],_height:this.cascade?x[h]:a[l],_x:this.cascade?v:b,_y:this.cascade?b:v}),b+=x[h],F++}v+=a[l],L++}return t});C(this,"splitNumber",(t,e,s,i,n=!1)=>{if(t<=0||e<=0||s<=0||e>s||i<=0)throw new Error("Invalid input values. Ensure all inputs are positive and minSize is less than or equal to maxSize.");const r=i,a=[];let d=t;for(let g=0;g<r;g++){let y;n?y=Math.min(s,d/(r-g)):y=Math.min(s,I.random_dec()*(d-e*(r-g))+e);const v=Math.max(e,y);a.push(v),d-=v}return a[a.length-1]+=Math.max(0,d),a});return this.width=t-n.x*2,this.height=e-n.y*2,this.x=s,this.y=i,this.cascade=a,this.margin=n,this.padding=r,this.isEvenSplit=d,this.visProb=g,this.cascade&&(this.width=e-n.y*2,this.height=t-n.x*2,this.y=s,this.x=i,this.margin={x:n.y,y:n.x},this.padding={x:r.y,y:r.x}),this.blocks=this.generate(),this}}new w;const U=new w;class X{constructor(t={id:0,colId:0,rowId:0,isFirstBlock:!1,isLastBlock:!1,isFirstCol:!1,isFirstRow:!1,isLastCol:!1,isLastRow:!1,width:0,height:0,x:0,y:0},e={name:"",palette:{background:[0,0,0],colors:[[255,255,255]]}}){C(this,"rndColor",()=>U.random_choice(this.palette.colors));this.id=t.id,this.colId=t.colId,this.rowId=t.rowId,this.isFirstBlock=t.isFirstBlock,this.isLastBlock=t.isLastBlock,this.isFirstCol=t.isFirstCol,this.isFirstRow=t.isFirstRow,this.isLastCol=t.isLastCol,this.isLastRow=t.isLastRow,this.width=t.width,this.height=t.height,this.x=t.x,this.y=t.y,this.palette=e.palette,this.paletteName=e.name}}const m=new w;class q extends X{generate(){this.rot=m.random_bool(.5),this.piType=m.random_choice([PI*m.random_num(1,10)]),this.col=this.rndColor(),this.loopCount=m.random_int(25,100),this.offset=m.random_int(10,this.loopCount/2),this.sizeMult=m.random_num(1,1.5),this.warpX=m.random_int(-25,25),this.warpY=m.random_int(-25,25),this.isDashed=m.random_bool(.5),this.strokeStep=m.random_int(5,this.offset/2);const t=100;this.strokeSize={bottom:t,middle:t/1.5,top:t/6,default:15}}show(t){noFill(),noStroke();const e=this.width*this.sizeMult,s=this.height*this.sizeMult;let i=0;for(let n=this.loopCount;n>this.offset;n--){const r=n/this.loopCount;if(push(),rotate(i),shearX(this.warpX),shearY(this.warpY),scale(r),fill(this.col),n%this.strokeStep==0||n==this.loopCount?(stroke(this.palette.outline),strokeWeight(this.strokeSize.bottom*t),this.drawShape(n,e,s,t),stroke(this.palette.background),strokeWeight(this.strokeSize.middle*t),this.isDashed&&drawingContext.setLineDash([this.strokeSize.default/4*t,this.strokeSize.middle*t,0])):(stroke(this.palette.outline),strokeWeight(this.strokeSize.default*t)),this.drawShape(n,e,s,t),(n%this.strokeStep==0||n==this.loopCount)&&(stroke(this.palette.outline),strokeWeight(this.strokeSize.top*t),drawingContext.setLineDash([0]),this.drawShape(n,e,s,t)),n!=this.offset+1){push();let a=.9;this.paletteName!="invert"?(translate(0,100*t),fill(0,40)):(translate(0,100*t),a=.75,fill(...this.palette.outline,100)),noStroke(),this.drawShape(n*a,e*a,s*a,t),pop()}this.rot?i-=this.piType:i+=this.piType,pop()}}drawShape(t,e,s,i){const n=t/this.loopCount;rect(sin(radians(t))*e/2*i,cos(radians(t))*s/2*i,e*n*i,s*n*i,s*i,s*i,s*i,s*i)}}const Y=new w;class Z{constructor({width:t,height:e,circles:s,lineSpacing:i,bufferZone:n,invert:r=!1}){this.width=t,this.height=e,this.circles=s,this.lineSpacing=i,this.bufferZone=n,this.invert=r}isPointInsideOrCloseToAnyCircle(t,e){for(let s of this.circles){const i=s.r/2+this.bufferZone;if(dist(t,e,s.x,s.y)<i)return!0}return!1}show(t,e){strokeWeight(this.lineSpacing/4*t),push();for(let s=0;s<this.height;s+=this.lineSpacing){let i=0;for(let n=0;n<=this.width;n++)(this.invert?!this.isPointInsideOrCloseToAnyCircle(n,s):this.isPointInsideOrCloseToAnyCircle(n,s))&&(n-i>1&&this.drawLine(i*t,s*t,n*t,e),i=n+1);this.width-i>1&&this.drawLine(i*t,s*t,this.width*t,e)}pop()}drawLine(t,e,s,i=""){beginShape(i);for(let n=t;n<s;n+=10)vertex(n,e+Y.random_dec());endShape()}}const K=`#ifdef GL_ES precision mediump float; #endif varying vec2 vTexCoord; uniform vec2 u_resolution; uniform sampler2D u_texture; uniform float u_time; const int radius = 2; vec3 saturate(vec3 a){return clamp(a,0.,1.);} #define NUM_OCTAVES 5 float rand(vec2 n) { return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453); } float noise(vec2 p){ vec2 ip = floor(p); vec2 u = fract(p); u = u*u*(3.0-2.0*u); float res = mix( mix(rand(ip),rand(ip+vec2(1.0,0.0)),u.x), mix(rand(ip+vec2(0.0,1.0)),rand(ip+vec2(1.0,1.0)),u.x),u.y); return res*res; } float fbm(vec2 x) { float v = 0.0; float a = 0.5; vec2 shift = vec2(100); // Rotate to reduce axial bias mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.50)); for (int i = 0; i < NUM_OCTAVES; ++i) { v += a * noise(x); x = rot * x * 2.0 + shift; a *= 0.5; } return v; } vec2 mod289(vec2 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; } vec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; } vec3 permute(vec3 x) { return mod289((( x * 34.0) + 1.0) * x); } float snoise(vec2 v) { const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0 0.366025403784439, // 0.5*(sqrt(3.0)-1.0) -0.577350269189626, // -1.0 + 2.0 * C.x 0.024390243902439); // 1.0 / 41.0 // First corner vec2 i = floor(v + dot(v, C.yy) ); vec2 x0 = v - i + dot(i, C.xx); // Other corners vec2 i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0); vec4 x12 = x0.xyxy + C.xxzz; x12.xy -= i1; // Permutations i = mod289(i); // Avoid truncation effects in permutation vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 )) + i.x + vec3(0.0, i1.x, 1.0 )); vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0); m = m*m; m = m*m; // Gradients vec3 x = 2.0 * fract(p * C.www) - 1.0; vec3 h = abs(x) - 0.5; vec3 a0 = x - floor(x + 0.5); // Normalise gradients implicitly by scaling m m *= 1.792843 - 0.853735 * ( a0*a0 + h*h ); // Compute final noise value at P vec3 g; g.x = a0.x * x0.x + h.x * x0.y; g.yz = a0.yz * x12.xz + h.yz * x12.yw; return 130.0 * dot(m, g); } void main() { vec2 uv = vTexCoord; // the texture is loaded upside down and backwards by default so lets flip it uv.y = 1.0 - uv.y; // Sample the texture at a random offset vec2 randomOffset = vec2( fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453), fract(sin(dot(gl_FragCoord.xy, vec2(94.324, 47.623))) * 23453.6547) ); float strength = smoothstep(-1.0, 1.0, uv.x); vec2 surface = strength * vec2( mix(-0.005, 0.005, fbm(20.0 * uv + 0.1 * u_time) ), mix(-0.005, 0.005, fbm(20.0 * uv + 0.2 * u_time) ) ); uv += randomOffset * 0.0005; uv += refract(vec2(0.0), surface, 1.0 / 1.133); vec4 orig = texture2D(u_texture, uv); vec4 finalOut = vec4(0); // start vec2 src_size = vec2 (2.05 / u_resolution.x, 2.01 / u_resolution.y); float n = float((radius + 1) * (radius + 1)); int i; int j; vec3 m0 = vec3(0.0); vec3 m1 = vec3(0.0); vec3 m2 = vec3(0.0); vec3 m3 = vec3(0.0); vec3 s0 = vec3(0.0); vec3 s1 = vec3(0.0); vec3 s2 = vec3(0.0); vec3 s3 = vec3(0.0); vec3 c; for (int j = -radius; j <= 0; ++j) { for (int i = -radius; i <= 0; ++i) { c = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb; m0 += c; s0 += c * c; } } for (int j = -radius; j <= 0; ++j) { for (int i = 0; i <= radius; ++i) { c = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb; m1 += c; s1 += c * c; } } for (int j = 0; j <= radius; ++j) { for (int i = 0; i <= radius; ++i) { c = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb; m2 += c; s2 += c * c; } } for (int j = 0; j <= radius; ++j) { for (int i = -radius; i <= 0; ++i) { c = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb; m3 += c; s3 += c * c; } } float min_sigma2 = 1e+2; m0 /= n; s0 = abs(s0 / n - m0 * m0); float sigma2 = s0.r + s0.g + s0.b; if (sigma2 < min_sigma2) { min_sigma2 = sigma2; finalOut = vec4(m0,1.0); } m1 /= n; s1 = abs(s1 / n - m1 * m1); sigma2 = s1.r + s1.g + s1.b; if (sigma2 < min_sigma2) { min_sigma2 = sigma2; finalOut = vec4(m1*1.0, 1.0); } m2 /= n; s2 = abs(s2 / n - m2 * m2); sigma2 = s2.r + s2.g + s2.b; if (sigma2 < min_sigma2) { min_sigma2 = sigma2; finalOut = vec4(m2, 1.0); } m3 /= n; s3 = abs(s3 / n - m3 * m3); sigma2 = s3.r + s3.g + s3.b; if (sigma2 < min_sigma2) { min_sigma2 = sigma2; finalOut = vec4(m3, 1.0); } vec4 col = mix(finalOut, orig, 0.85); gl_FragColor = orig; }`,J=`// our vertex data attribute vec3 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main() { // copy the texcoords vTexCoord = aTexCoord; // copy the position data into a vec4, using 1.0 as the w component vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0 - 1.0; // send the vertex information on to the fragment shader gl_Position = positionVec4; }`,Q=new w,k=c.canvas.width/c.canvas.height;let p,P,E,N;window.setup=()=>{const o=windowHeight*k,t=windowWidth/k;window.innerHeight>window.innerWidth?p=createCanvas(window.innerWidth,t):p=createCanvas(o,window.innerHeight),p.elt.style.display="none",noLoop(),noStroke(),noFill(),angleMode(DEGREES),rectMode(CENTER),N=new Z({width:c.canvas.width,height:c.canvas.height,circles:[],lineSpacing:Q.random_int(30,90),bufferZone:0}),E=new $(c.grid);const e=(s,i)=>s.randSort-i.randSort;E.blocks.sort(e).forEach(s=>{s.style=new q(s,c.style),s.style.generate()})};window.draw=()=>{const o=width/c.canvas.width;background(...c.style.palette.background),stroke(c.style.palette.outline),N.show(o),E.blocks.forEach((t,e)=>{push(),translate(t.x*o,t.y*o),t.style.show(o),pop()}),(()=>{noStroke(),push();const t=c.canvas.width/2,e=c.canvas.height/2,s=c.borderThickness,i=c.borderThickness*3;fill(...c.style.palette.background),push(),translate(t*o,e*o),beginShape(),vertex(-t*o,-e*o),vertex(t*o,-e*o),vertex(t*o,e*o),vertex(-t*o,e*o),beginContour(),vertex(-(t-s)*o,-(e-i)*o),vertex(-(t-s)*o,(e-i)*o),vertex((t-s)*o,(e-i)*o),vertex((t-s)*o,-(e-i)*o),endContour(),endShape(CLOSE),pop()})(),P=new p5(tt)};window.windowResized=()=>{const o=windowHeight*k,t=windowWidth/k;P.remove(),windowHeight>windowWidth?resizeCanvas(windowWidth,t):resizeCanvas(o,windowHeight)};const tt=o=>{let t,e=!1;o.setup=function(){o.createCanvas(p.width,p.height,WEBGL),o.colorMode(RGB,255,255,255,1),o.noLoop(),t=o.createShader(J,K)},o.draw=function(){o.shader(t),t.setUniform("u_resolution",[p.width,p.height]),t.setUniform("u_texture",p),t.setUniform("u_time",o.frameCount/40),o.rect(0,0,width,height)},document.body.onkeyup=function(s){(s.key==" "||s.code=="Space")&&(e?o.noLoop():o.loop(),e=!e)}};console.log(tokenData);console.log(c); }],
[1,()=>{console.log("Artist 29. Nicolas Daniel -- platform 1");!function(){"use strict";function e(e,t,l,r){var n,o,a,i,s,h,c,d,u,p,f=Math.abs,m=e[t][0],g=e[t][1],y=e[l][0],b=e[l][1],w=e[r][0],E=e[r][1],F=f(g-b),x=f(b-E);return F<v?o=(i=-(w-y)/(E-b))*((n=(y+m)/2)-(h=(y+w)/2))+(d=(b+E)/2):x<v?o=(a=-(y-m)/(b-g))*((n=(w+y)/2)-(s=(m+y)/2))+(c=(g+b)/2):(n=((a=-(y-m)/(b-g))*(s=(m+y)/2)-(i=-(w-y)/(E-b))*(h=(y+w)/2)+(d=(b+E)/2)-(c=(g+b)/2))/(a-i),o=F>x?a*(n-s)+c:i*(n-h)+d),[t,l,r,n,o,(u=y-n)*u+(p=b-o)*p]}function t(e){var t,l,r,n,o,a;for(l=e.length;l;)for(n=e[--l],r=e[--l],t=l;t;)if(a=e[--t],r===(o=e[--t])&&n===a||r===a&&n===o){e.splice(l,2),e.splice(t,2);break}}var l=Math.floor,r=Math.max;let{pow:n,abs:o}=Math;const a=(e,t,l,r)=>{const n=e-l/2,o=e+l/2,i=t-r/2,s=t+r/2;return[e,t,l,r,n,o,i,s,([e,t])=>n<=e&&e<=o&&i<=t&&t<=s,n=>a(e+l/4*(n%2?-1:1),t+r/4*(2>n?-1:1),l/2,r/2)]},i=(e,t,l)=>{const r=l*l;return[e,t,l,r,([l,o])=>n(l-e,2)+n(o-t,2)<=r,a=>{let[i,s,h,c]=a,d=o(i-e),u=o(s-t),p=h/2,f=c/2,m=n(d-p,2)+n(u-f,2);return d>l+p||u>l+f?0:d<=p||u<=f?1:m<=r}]},s=(e,t=8,l=0)=>{let r=[5,6,7,8];return[e,t,[],0,l,null,null,null,null,function(){let e=this,[t,n,o]=e;r.map(((r,o)=>e[r]=s(t[9](o),n,l+1))),e[3]=1,o.map((t=>r.map((l=>e[l][10](t))))),e[2]=null},function(e){let t=this,[r,n,o,a]=t;if(!r[8](e))return 0;if(!a){if(o.length<n||8===l)return t[2].push(e),1;t[9]()}return t[5][10](e)||t[6][10](e)||t[7][10](e)||t[8][10](e)},function(e,t){let l=this,[n,o,a,i]=l;return t||(t=[]),e[5](n)?i?(r.map((r=>l[r][11](e,t))),t):(a.map((l=>{e[4](l)&&t.push(l)})),t):t}]},h=([e,t],[l,r])=>[e+l,t+r],c=([e,t],[l,r])=>[e-l,t-r],d=([e,t],l)=>[e*l,t*l],u=(e,t,l)=>h(e,d(c(t,e),l)),p=(e,t)=>(([e,t])=>Math.hypot(e,t))(c(e,t)),f=(e,t)=>{let l=[e[0]-t[0],e[1]-t[1]],r=Math.sqrt(l[0]*l[0]+l[1]*l[1]);return[-l[1]/r,l[0]/r]},m=(e,t,l)=>{const r=Math.cos(l),n=Math.sin(l),o=e[0]-t[0],a=e[1]-t[1];return[o*r-a*n+t[0],o*n+a*r+t[1]]},g=(e,t)=>{let l=0;for(let r,n=0;n<e.length;n++){r=[e[n],e[(n+1)%e.length]];for(let e,n=0;n<t.length;n++)if(e=[t[n],t[(n+1)%t.length]],y(r,e)){l=1;break}if(l)break}return l},y=([[e,t],[l,r]],[[n,o],[a,i]])=>{if(e===l&&t===r||n===a&&o===i)return!1;if(e===n&&t===o||l===a&&r===i||e===a&&t===i||l===n&&r===o)return!1;let s=(i-o)*(l-e)-(a-n)*(r-t);if(0==s)return!1;let h=((a-n)*(t-o)-(i-o)*(e-n))/s,c=((l-e)*(t-o)-(r-t)*(e-n))/s;return!(0>h||1<h||0>c||1<c)&&[e+h*(l-e),t+h*(r-t)]};var v=1/1048576;var b=1/12.92;const w=e=>Math.pow((e+.055)/1.055,2.4),E=e=>{"string"==typeof e&&(e=F(e));var t=e[0]/255,l=e[1]/255,r=e[2]/255;return.2126*(.03928>=t?t*b:w(t))+.7152*(.03928>=l?l*b:w(l))+.0722*(.03928>=r?r*b:w(r))},F=e=>{var t=e.replace("#","");3===t.length&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);var l=parseInt(t,16);return[l>>16,255&l>>8,255&l]};var x=(e,t,l,r,n,o)=>e*r+t*n+l*o,k=e=>e*e*e*(e*(6*e-15)+10),Z=(e,t,l)=>(1-l)*e+l*t,A=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],C=[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],$=Array(512),_=Array(512);(e=>{0<e&&1>e&&(e*=65536),256>(e=l(e))&&(e|=e<<8);for(var t=0;256>t;t++){var r;r=1&t?C[t]^255&e:C[t]^255&e>>8,$[t]=$[t+256]=r,_[t]=_[t+256]=A[r%12]}})(0);var{PI:B,min:D,max:M,cos:I,floor:P}=Math,T=e=>e.split`Z`.map((e=>"#"+e)),S="FDA525ZFFBE00ZFDE700ZFCE53FZF7F18CZFF6702ZF1793CZFF7E01ZFFE5B5ZEFDED4ZB62A2FZD7282DZFF2A2AZF5433DZFE5E56Z1E2E46Z2B4FA5Z214FC8Z62A8E5ZCEDAE6Z30C9FCZ48B8BBZ769AB8Z003A11Z016A40Z06773BZ01825EZA9D5A3ZE2EDBB",N=T(S),L=T(S),O=T("1A1A1A"),W=T("E9E3D5ZECECE4ZFFFDF9ZEFF1F2"),G="#000000",V="#ffffff",j=["🟨","🟧","🟥","🟩","🟦","🟪","🟫","⬛","⬜","🟡","🟠","🔴","🟢","🔵","🟣","🟤","⚫","⚪"],q="000001111222222444444443333335555522226666888";let z=e=>{var t,l=0;for(t=0;t<e.length;t++)l+=e[t];var r=R.random_dec()*l;for(t=0;t<e.length;t++){if(r<e[t])return t;r-=e[t]}return 0};var H=(n,o,y,b,w)=>{let F=document;performance.now();let A,C,T,S,H,U=.5,J=[0,1,2,2,3,4],Y=1/o,K=[...Array(o*o).keys()],Q=.5,X=.015,ee=R.random_num(.02,.1),te=[5,1,1,1,1],le=[[-.5,-.5],[.5,-.5],[.5,.5],[-.5,.5]],re=[[3,0,1],[0,1,2],[1,2,3],[2,3,0]],ne=Array(o*o).fill().map((()=>[0,0,0,0])),oe=[0,0],ae=R.random_choice([0,1]),ie=0,se=-1,he=/\bHeadlessChrome/.test(navigator.userAgent),ce=!he,de=!1,ue=!1,pe=()=>N.splice(R.random_int(0,N.length-1),1)[0],fe=()=>{let e=pe();return 3>(t=e,l=E(ge),n=E(t),(r(l,n)+.05)/(Math.min(l,n)+.05))?fe():e;var t,l,n},me=z([2,2,1,2,1]),ge=me?3>me?R.random_choice(W):R.random_choice(O):pe(),ye=E(ge),ve=me%2?fe():.6<ye?G:.2>ye?V:R.random_choice([G,V]),be=()=>{let e=R.random_choice(J);return 4>e?e:be()},we=(e,t)=>(3==e?5.34:8)*Q*1*.001*R.random_num(.75,2==t?1:2),Ee=e=>1==e||2==e?R.random_num(.3,.6):3==e?R.random_num(.4,.8):1,Fe=0,xe=a(0,0,1,1),Re=s(xe,16,0),ke=s(xe,16,0),Ze=j[me&&5>me?3>me?8:7:parseInt(q[L.indexOf(ge)],10)],Ae=j[me%2?parseInt(q[L.indexOf(ve)],10)+9:ve==G?16:17];F.body.style.backgroundColor=ge,y.style.borderColor=b.style.borderColor=b.style.backgroundColor=ve;let Ce="system1b",$e=`System 1b ${Ze}${Ae}`;F.title=$e,F.body.style.backgroundColor=ge,console.log(`${$e} - Nicolas Daniel`),console.log("—"),console.log("Bright Moments Venezia - April 2024"),console.log("—"),console.log("Press ‘s’ to save SVG file"),console.log("Press ‘e’ to export PNG image 2048x2048px"),console.log("Press ‘E’ to export PNG image 8192x8192px"),console.log("Press ‘r’ to redraw"),console.log("Press ‘p’ to play/pause"),console.log("Press ‘t’ to display tiling");let _e=e=>{b.style.width=`${e}%`},Be=e=>{let t=30.72,l=1986.56,r=P(2048/o)*X*Q,n="",a=[],i="round",s=(e,t,l)=>a.push(`${l}${e},${t}`),h=new Blob([`<svg id="${Ce}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048" width="2048" height="2048">${n+=`<rect stroke="none" fill="${ge}" x="0" y="0" width="2048" height="2048" />`,e.map((e=>{let[o,h]=e[1];var c;a=[],s((o[0]+.5)*l+t,(o[1]+.5)*l+t,"M"),s((h[0]+.5)*l+t,(h[1]+.5)*l+t,"L"),c=`d="${a.join(" ")}"`,n+=`<path stroke="${ve}" stroke-width="${r}" stroke-linecap="${i}" stroke-linejoin="${i}" fill="none" ${c} />`})),n}</svg>`],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(h),d=F.createElement("a");d.download=`${Ce}.svg`,d.href=c,d.click()},De=(e,t=1)=>{let l=F.createElement("canvas"),r=l.getContext("2d"),n=2048*t,a=.015*n;l.width=l.height=n,r.fillStyle=ge,r.fillRect(0,0,n,n),r.translate(.5*n,.5*n),r.lineCap=r.lineJoin="round",r.lineWidth=P(n/o)*X*Q,r.strokeStyle=ve,e.map((e=>{r.beginPath(),e[1].map((e=>r.lineTo(...d(e,n-2*a)))),r.stroke()}));let i=l.toDataURL("image/png"),s=F.createElement("a");s.download=`${Ce}@${t}x.png`,s.href=i,s.click()};_e(10),setTimeout((a=>{((e,t)=>{let l=(e,t=[])=>{let r=(e=>{let t=[],l=[],r=0;for(let r=0;r<e;r++){let e=be(),r=z(te),n=we(e,r),a=R.random_choice([[1,1,0],[0,1,1]]),i=Ee(e),s=K.splice(R.random_int(0,K.length-1),1)[0],c=s%o,u=P(s/o),p=R.random_num(c*Y-U+2*n,(c+1)*Y-U-2*n),f=R.random_num(u*Y-U+2*n,(u+1)*Y-U-2*n),g=[e,n,a,i,r],y=le.map((e=>h([p,f],d(m(e,[0,0],0),n)))),v=[];for(let e=0;e<y.length;e++)l.push([[y[e],y[(e+1)%y.length]],g,e]),v.push([y[e],g,y]);let b=[y,g,v];t.push(b),Re[10]([p,f,b])}for(r=0;t.length<2e5&&0<l.length&&r<50;){r++;let[e,o,a]=l.splice(R.random_int(0,l.length-1),1)[0],[s,c,m,y,v]=o,b=f(...e),w=c,E=c/.001/((3==s?5.34:8)*Q);R.random_bool(.077*E)&&(s=R.random_choice(J),v=z(te),c=we(s,v)),R.random_bool(ee)&&(y=Ee(s)),R.random_bool(.03)&&(m=R.random_choice([[1,1,0],[0,1,1]]));let F,[x,k]=e,Z=()=>p(x,k).toFixed(10)<w;switch(s){case 0:F=c;case 1:F=a%2?c:c*y;break;case 2:F=Z()?c*y:c;break;case 3:F=Z()?1.5*c:c*y;break;case 4:F=Z()?.2*c:c}let A=h(x,d(b,F)),C=h(k,d(b,F)),$=[x,A,C,k],_=u(x,C,.5),B=0,D=i(..._,2*c),M=Re[11](D);for(let e=0;e<M.length;e++){let[t,l]=M[e][2],r=l[1],n=u(t[0],t[2],.5),o=1<=s&&3>=s?.25*(c+r)*y:.25*(c+r);if(p(_,n)<o){B=1;break}if(B=g($,t),B)break}let I=([e,t])=>e<c-U||e>U-c||t<c-U||t>U-c;if(B||I(x)&&I(k))continue;o=[s,c,m,y,v];let P=re[a],T=[A,o,$],S=[C,o,$];m[0]&&l.push([[x,A],o,P[0]]),m[1]&&l.push([[A,C],o,P[1]]),m[2]&&l.push([[C,k],o,P[2]]);var n=[$,o,[T,S]];t.push(n),Re[10]([..._,n]),Fe+=p(x,A)*p(x,k),r=0}return t})(e);return t=[...t,...r],.6>Fe&&0<K.length?l(1,t):t};setTimeout((()=>{t(l(e))}),10)})(1,(a=>{_e(40),((a,s)=>{setTimeout((()=>{let s=[],h=[],f=([e,t])=>e<-.5||e>U||t<-.5||t>U;for(let e,t=0;t<a.length;t++)e=a[t][2],e.map((([e,l,r])=>{f(e)||(s.push(e),h.push([t,l[1],r,l[4]]))}));(e=>{_e(80),(([e,t,l],r)=>{setTimeout((()=>{let n=[],a=Array(o*o).fill().map((()=>[])),s=1/o,h=(e,t)=>{let l=i(...u(e,t,.5),.501*p(e,t)),r=ke[11](l);for(let l=0;l<r.length;l++){let[n,o]=r[l][2];if(n[0]==e[0]&&n[1]==e[1]&&o[0]==t[0]&&o[1]==t[1]||o[0]==e[0]&&o[1]==e[1]&&n[0]==t[0]&&n[1]==t[1])return 0}return 1},f=e=>{let t=D(o-1,~~((e[0]+U)/s))+D(o-1,~~((e[1]+U)/s))*o;return[t,[t%o*(1/o)-.5+1/o*.5,1/o*~~(t/o)-.5+1/o*.5]]},m=(e,t,l)=>[d(c(e,l),o),d(c(t,l),o)];for(let r=0;r<e.length;r+=3){let[o,i,s,c]=l[e[r]],d=(e,t,l,r,o)=>{if(p(e,t)<1.01*D(l,r)&&h(e,t)){let[l,r]=f(e),[i,s]=f(t),h=1==c?u(e,t,.4):e,d=1==c||2==c?u(e,t,1==c?.6:5e-5/p(e,t)):t;a[l].push([[e,t],m(h,d,r),o]),l!=i&&a[i].push([[e,t],m(h,d,s),o]),n.push([[e,t],[h,d],o]),ke[10]([...u(e,t,.5),[e,t]])}};if(3>c)for(let n=0;3>n;n++){let o=e[r+n],a=e[r+(n+1)%3],i=t[o],s=t[a],[h,c]=l[o],[u,p]=l[a];d(i,s,c,p,M(h,u))}else{let[e,t,l,r]=s;5>c&&d(e,t,10*i,10*i,o),4>c&&d(l,r,10*i,10*i,o)}}n.sort(((e,t)=>e[2]-t[2])),a.map((e=>e.sort(((e,t)=>e[2]-t[2])))),r([a,n])}),10)})(e,(([e,t])=>{_e(100),F.addEventListener("keydown",(e=>{"s"==e.key&&Be(t),"e"==e.key&&De(t),"E"==e.key&&De(t,4),"r"==e.key&&(de=!0),"p"==e.key&&(ce=!ce&&!he),"t"==e.key&&(ue=!ue)})),w(((t,r,a,i,s,h,c)=>{A=a,C=i,t.fillStyle=ge,t.fillRect(0,0,A,C),t.translate(.5*A,.5*C);let u=.5*((e,t,r)=>{var n=l(e),o=l(t),a=l(r);e-=n,t-=o,r-=a;var i=x(..._[(n&=255)+$[(o&=255)+$[a&=255]]],e,t,r),s=x(..._[n+$[o+$[a+1]]],e,t,r-1),h=x(..._[n+$[o+1+$[a]]],e,t-1,r),c=x(..._[n+$[o+1+$[a+1]]],e,t-1,r-1),d=x(..._[n+1+$[o+$[a]]],e-1,t,r),u=x(..._[n+1+$[o+$[a+1]]],e-1,t,r-1),p=x(..._[n+1+$[o+1+$[a]]],e-1,t-1,r),f=x(..._[n+1+$[o+1+$[a+1]]],e-1,t-1,r-1),m=k(e),g=k(t),y=k(r);return Z(Z(Z(i,d,m),Z(s,u,m),y),Z(Z(h,p,m),Z(c,f,m),y),g)})(9e-5*(new Date).getTime(),234.5,678.9)+.5,p=P(6*u);se!=p&&(ae=R.random_choice([0,1]),ie=0==ie?R.random_choice([-1,1]):0),se=p,ce&&(0==ae?(oe[0]+=.001*ie,oe[0]>U?oe[0]-=1:oe[0]<-.5&&(oe[0]+=1)):1==ae&&(oe[1]+=.001*ie,oe[1]>U?oe[1]-=1:oe[1]<-.5&&(oe[1]+=1)));let f=A*(1/h),m=P(f/o);f=m*o,H=m*X*Q;let g,y,v=e=>{let l=t.measureText(e);return[l.actualBoundingBoxRight-l.actualBoundingBoxLeft,l.actualBoundingBoxAscent-l.actualBoundingBoxDescent]};if(ue){t.font=.09*m+"px monospace";let e=v(`${o-1},${o-1}`);g=e[0]+.06*m,y=e[1]+.06*m}for(let l=0;l<o*o;l++){let[a,i]=n[l],u=P(l%o*m-.5*f+oe[0]*f);u<.5*-f?u+=f:u>.5*f&&(u-=f);let p=P(~~(l/o)*m-.5*f+oe[1]*f);p<.5*-f?p+=f:p>.5*f&&(p-=f);let w=u+m>.5*-h*f&&u<.5*h*f&&p+m>.5*-c*f&&p<.5*c*f;de&&i.clearRect(0,0,s,s),(ne[l][0]!=w||A!=T||C!=S||de)&&(w?ne[l][1]=r:i.clearRect(0,0,s,s));let E=r-ne[l][1],F=(b=D(1,E/2),-.5*(I(B*b)-1)),x=e[l];if(ne[l][3]=D(x.length,P(x.length*F)),w){i.lineCap=i.lineJoin="round",i.lineWidth=H,i.fillStyle=i.strokeStyle=ve,i.translate(.5*m,.5*m);for(let e=ne[l][2];e<ne[l][3];e++)i.beginPath(),x[e][1].map((e=>i.lineTo(...d(e,m)))),i.stroke()}if(t.drawImage(a,0,0,s,s,u,p,m,m),ue){let e=l%o,r=~~(l/o);t.fillStyle=t.strokeStyle=.5<ye?G:V,t.lineWidth=2*H,t.beginPath(),t.rect(u,p,m,m),t.stroke();let n=`${e},${r}`,[a,i]=v(n);t.fillRect(u,p,g,y),t.fillStyle=.5<ye?V:G,t.fillText(n,u+.5*(g-a),p+y+.5*(i-y))}ne[l][0]=w,ne[l][2]=ne[l][3]}var b;de=!1,T=A,S=C}))}))})([((l,n)=>{var o,a,i,s,h,c,d,u,p,f,m,g,y=l.length;if(3>y)return[];if(l=l.slice(0),n)for(o=y;o--;)l[o]=l[o][n];for(i=Array(y),o=y;o--;)i[o]=o;for(i.sort(((e,t)=>{var r=l[t][0]-l[e][0];return 0==r?e-t:r})),s=(e=>{var t,l,n,o,a,i,s=Number.NEGATIVE_INFINITY,h=Number.POSITIVE_INFINITY,c=h,d=h,u=s,p=s;for(t=e.length;t--;)e[t][0]<c&&(c=e[t][0]),e[t][0]>u&&(u=e[t][0]),e[t][1]<d&&(d=e[t][1]),e[t][1]>p&&(p=e[t][1]);return[[(a=c+.5*(l=u-c))-20*(o=r(l,n=p-d)),(i=d+.5*n)-o],[a,i+20*o],[a+20*o,i-o]]})(l),l.push(s[0],s[1],s[2]),h=[e(l,y+0,y+1,y+2)],c=[],d=[],o=i.length;o--;d.length=0){for(g=i[o],a=h.length;a--;){const[e,t,r,n,o,i]=h[a];0<(u=l[g][0]-n)&&u*u>i?(c.push(h[a]),h.splice(a,1)):u*u+(p=l[g][1]-o)*p-i>v||(d.push(e,t,t,r,r,e),h.splice(a,1))}for(t(d),a=d.length;a;)m=d[--a],f=d[--a],h.push(e(l,f,m,g))}for(o=h.length;o--;)c.push(h[o]);for(h.length=0,o=c.length;o--;){let[e,t,l]=c[o];e<y&&t<y&&l<y&&h.push(e,t,l)}return h})(s),s,h])}),10)})(a)}))}),50)};let{min:U,floor:J,ceil:Y}=Math;document.addEventListener("DOMContentLoaded",(e=>{let t=window,l=document,r=l.body.appendChild(l.createElement("canvas")),n=r.getContext("2d"),o=[];for(let e=0;e<256;e++){let t=l.createElement("canvas"),r=t.getContext("2d");o[e]=[t,r]}let a,i,s,h,c,d,u,p=0,f=0,m=0,g=!0,y=l.body.appendChild(l.createElement("div")),v=y.appendChild(l.createElement("div"));y.style.position=v.style.position="absolute",y.style.border=v.style.border="1px solid",y.style.width="128px",y.style.height="4px",y.style.top=y.style.left="50%",y.style.transform="translate(-50%,-50%)",v.style.top=v.style.left="0",v.style.width="0%",v.style.height="100%",v.style.boxSizing="border-box";let b=e=>{2>p&&(g&&l.body.removeChild(y),g=!1,f=e),m+=(e-f)/1e3,f=e,o.map((([e,t])=>{t.save(),t.scale(c,c)})),n.save(),n.scale(c,c),a(n,m,i,s,h,d,u),n.restore(),o.map((([e,t])=>t.restore())),p++,requestAnimationFrame(b)},w=()=>{i=window.innerWidth,s=window.innerHeight,c=Y(window.devicePixelRatio)||1,r.width=J(i*c),r.height=J(s*c),r.style.width=`${window.innerWidth}px`,r.style.height=`${window.innerHeight}px`,i>s?(d=U(.875,i/s*.32),u=d*s/i):(u=U(.875,s/i*.32),d=u*i/s),h=J(i*(1/d)/16*c);for(let e=0;e<o.length;e++)o[e][0].width=o[e][0].height=h};w(),t.addEventListener("resize",w),H(o,16,y,v,(e=>{a=e,requestAnimationFrame(b)}))}))}(); }],
[0,()=>{console.log("Artist 1. Piter Pasma -- platform 0");O={N:1200,...Object.fromEntries(new URL(location).searchParams)};as=9/16;R=R.R;T=a=>R(a)-R(a);P=a=>R(R(a));r=(a,x=1,y=1)=>`mat2(${a*=u,[cos(a)*x,-sin(a)*x,sin(a)*y,cos(a)*y]})`;F=(N,f)=>[...Array(N)].map((_,i)=>f(i));S=(a=1)=>R()<.5?a:-a;W=f=>`W(${F(3,_=>f())})`;g=a=>W(_=>S(a*1.5**R()));p=_=>W(_=>R(u));m=(a=1)=>W(_=>a*S(2+R()));({min,PI,sin,cos}=Math);u=PI*2;N=([x,y,z],m=1e-99+(x*x+y*y+z*z)**.5)=>[x/m,y/m,z/m];A=([x,y,z],[a,b,c],t=1)=>[x+a*t,y+b*t,z+c*t];L=([x,y,z])=>(x*x+y*y+z*z)**.5;X=([x,y,z],[a,b,c])=>[y*c-z*b,z*a-x*c,x*b-y*a];Z=(1.2+T(.1));cp=[R(60)-30,10+R(20),-80*Z];a=T(.1);fw=N(A([0,27,0],cp,-1));rt=N(X(fw,[sin(a),cos(a),0]));up=X(rt,fw);fw=fw.map(v=>v*Z);c=(x,y,t)=>A(cp,N(A(A(fw,rt,as*x),up,y)),t);[px,py,pz]=c(T(.5),T(.5),120+T(96));sl=R()**.5;e=[[T(.5),a=1/6],[T(.5),-a],[-a,T(.5)],[a,T(.5)]];d=132+R(24);f=i=>([x,y,z]=c(...e.splice(R(e.length)|0,1)[0],d),R()<.2?px=x:0,R()<.2?py=y:0,R()<.2?pz=z:0,i==3?p0=[x,y,z]:0,tsl=T(sl),sx=S(),sy=S(),`k(W(p.xy*${r(tsl/u,-sx,-sy)}+V(${[x*sx,y*sy]}),${d-=19+R(),z}-p.z))`);ch=c(R()-.5,R()-.5,50);ch.pop();pw=2+T(1);c0=20+T(9);c1=5+T(2);rp=T()<0;rr=.3+P();K=`~ph precision highp~uf uniform~T return~S smoothstep~N normalize~L length~cl clamp~Z floor~B abs~U min~G max~W vec3~V vec2~X vec4~F float~E 1e-2~MAXD 240~O ${u}~H0 uvec4(9,7,5,3)*23205u~D gl_VertexID\nph int;ph F;`.replace(/~/g,`\n#define `);v=K+`in V u;out X c;uf V r;uf uint I,R;uf sampler2D K;F sqr(F x){T x*x;}W sqr(W x){T x*x;}F pow5(F x){T x*sqr(sqr(x));}F U2(V v){T U(v.x,v.y);}F U3(W v){T U(U(v.x,v.y),v.z);}F G3(W v){T G(G(v.x,v.y),v.z);}F k(F a,F b){T L(G(V(a,b),0))+U(G(a,b),0);}F k(W q){T L(G(q,0))+U(G3(q),0);}W C(F h){h*=O;W c = .5+.3*sin(h+.5*sin(h+5.3)+W(-1,0,1.2));c-=.4*U3(c)+.2*c.gbr;T S(0.,1.,c*1.5)+.02;}W sin3(W x){x=sin(x);T x*x*x;}${F(3,i=>`F w${i}(W p){W q=sin(p.xyz*${g(1)}+${p()}+${m()}*sin3(p.yzx*${g(.618)}+${p()}));p+=q.zxy*${m(.15)};T dot(q,sin(p.zxy*${g(1.618)}+${p()}+${m()}*sin3(p.zyx*${g(1)}+${p()})));}`).join``}F wx(W p){T w0(p)+w1(p*2+77)/2+w2(p*4-97)/4;}uvec4 H;X Q(){H.wxyz*=H*22695477u^H0;T X(H<<(3u+(H>>29u)))/${2**32};}V DT(W p) {V d=V(${F(3,i=>'U('+f(i))},${f(3)})))-3,1);F f=k(L(p+W(${T(150)},${t=150+R(999)},0))-${t-pw*2},${pw*6}-d.x)-${pw*2},n=S(-2,2,w2(p*W(.15,.08,.05)+23))+3;d=d.x<f?d:V(f,2);d.x-=2;F d2=d.x*d.x,h=L(V(sqrt(d2+sqr(${rp?`p.x+`+-px:`p.y+`+-py}))+${-pw}*2,${ry=rp?`p.y`:`p.x`}-Z(${ry}/4)*4-2))+${-rr};d.x=k(d.x+n+1,${c1}-B(L(p.xy-V(${ch}))+${-c0}))-1;f+=n-2;d=d.x<f?d:V(f,2);f=sqrt(d2+U3(sqr(p-W(${[px,py,pz]}))))*.85+${-pw*.85};d=d.x<f?d:V(f,3);T d.x<h?V(k(.2+${rr}-h,d.x+.2)-.2,d.y):V(h,4);}W rc,dc;V e;void gm(W p){W q=p;q.yz*=${r(R())};q.xy*=${r(R())};F ma=DT(p).y,nb=wx(p.yzx*.4+17),nz=wx(q.zxy*.2-22),na=wx(q*.07-99),no=wx(p*.02+93),sk=step(.7,wx(q*W(1,37,1)/3)),sz=sk*S(-1,3,no);W g3=sin(W(nb,nz,na)*7+${p()}),s=W(${[.15+R(.1),.15-R(.05),.1-R(.05)]});nb=S(-3,3,nb);nz=S(-3,3,nz);na=S(-3,3,na);no=S(-3,3,no);F f=S(.4,.7,nz)*S(1,.7,nz),k=g3.x*g3.y*g3.z*nz,a;e=V(.01,.1);rc=W(1);if(ma==1){a=.2*nz+.3*na+.1*nb;e=V(.06-.05*S(.1,.5,a),.5);dc=mix(W(${.5-P(.5)}*no*no),s,a);rc=W(.4);}else if(ma==2){e=V(.08-.03*sin(9*na),.3-.1*na-.1*nz);dc=W(.25,${.1+R(.15)},${.1+P(.1)})-(9*na-5*nz-3*nb)*.005;rc=W(1);}else if(ma==3){a=S(1,2,nb*3);e=V(.98-.07*f+.02*sk,.01+.05*a);rc=W(.25,.3,.36)*(.9-.4*B(a-.5))*(1-.5*f+.1*sk);dc=s*(.9-.4*B(a-.5));}else if(ma==4){e=V(.75-.5*f+.05*sk,.01+.1*nb+.3*f);rc=W(.95,${.2+R(.6)},.1)*${b=.2+R(.7)}*(.2+.2*nb)*(1-.8*f);dc=s.brg*${b}*(.2+.3*nb)*(1-.5*f);k+=${R(.3)}+(na-.5)*.1;}if(ma<3){if(k>.6){e=V(nb,nz*.5);rc=W(.7);}}else{e=mix(V(e.x,mix(e.y,.4-.3*nz,sz)),V(.005,.3),step(.2,k));dc=mix(rc,dc*.5,step(.2,k)*S(.8,.5,k));rc*=1+sz*(.1+.2*nz);rc=mix(rc,W(.1),.5*G(0,1-3*e.x));}}W bg(W g){W pg=W(g.xy/g.z,25);F so=wx(pg*W(${.5+R(1.5)},7,1))*.15,sm=S(-2,2,so);F t=S(-.7,1,g.y+so);t=2*t-t*t;F h0=${h0=R()};W ca = ${.05+R(.1)}+C(h0);W cc=${.1+R(.2)}+C(h0+${T(.2)})*${.2+R()};W k=3*t*(ca+t*(${t=R()<.5?0:1}-2*ca+t*(cc/3+ca-${t})))+.2*t;W s=C(h0+.1),u=C(h0-.4);F s0=G(0,dot(g,W(${N([sux=S(1+R(9)),1+P(9),-5])}))),s1=G(0,dot(g,W(${N([(1+R(9))*(sux<0?1:-1),.5+P(5),-3])})));k=mix(k,(1+s)*(2+s0)*${.2+P(4)},pow5(S(${[R(-.5)-.5,.5+R(.5)]},so)));s=(.5+s)*S(.9*(1-.3*sm),1,pow5(s0))*(1-.8*sm);u=(.5+u)*S(.9*(1-.3*sm),1,pow5(s1))*(1-.8*sm);T k*${.03+R(.12)}+s*8+u*20;}F ix(W p, W g){F t=E*4,d;for(F i=0;i<299;i++){d=DT(p+g*t).x;t+=d*.9;if(d<E){T t+d;}if(t>MAXD)T MAXD;}T -1;}W tx(V p){X v=texture(K,p);T v.rgb/v.a;}void main(){H=H0*packSnorm2x16(u)^R;Q();`;h=min(innerWidth/as,innerHeight);w=as*h|0;h|=0;V=document.querySelector`canvas`;V.parentNode.style.background='#000';V.style.width=w+'px';V.style.height=h+'px';m=(O.M||1)*devicePixelRatio;V.width=w=w*m|0;V.height=h=h*m|0;g=V.getContext`webgl2`;g.getExtension`EXT_color_buffer_float`;Q=[`X d=Q()*1.5;d.z*=O;F t=1,px=1/r.x;V as=r*px;W fc=W(1),rg=W(${rt}),up=W(${up}),go=W(cos(d.z),sin(d.z),0)*sqrt(d.w)*${.4/Z/Z},o=W(${cp})+go.x*rg+go.y*up,g=N(W((d.xy*3-1.5+u*r)*px,2));g.xy+=N(g*${L(A(p0,cp,-1))}/2-go).xy;g=N(mat3(rg,up,2*W(${fw}))*g);for(F l=0;l<5;l++){t=ix(o,g);if(t<0){fc*=0;break;}if(fract(d.w*9)>sqr(sqr(9-t*9/MAXD)))break;o+=g*t;d=Q()*X(1,O,2,1);d.z--;W n=N(${F(4,j=>`W(${t=F(3,i=>(j<3?(i==j)*2-1:1)/999)})*DT(o+W(${t})).x`).join`+`});W rs=W(V(cos(d.y),sin(d.y))*sqrt(1-d.z*d.z),d.z);F rso=dot(n,rs)<0?-1:1;gm(o);bool re=d.x<e.x+(1-e.x)*(pow5(1+dot(n,g)));fc*=re?rc:dc;g=N(re?reflect(g,(n+e.y*rs*rso)):rs+n);o+=.3*n;}c=texelFetch(K,ivec2((.5*u+.5)*r),0i)+X(fc*bg(g),.6);}`,`W e=tx(u*.5+.5);W t=W(Q());F p=F(I)/${O.N-1},n=p<1?32:256;W TW=W(0),WI=W(0);for(F i=0;i<n;i++){V d=fract(i*V(.57,.755)+t.xy)-.5;W f=tx(u*.5+.5+d*8/r),dc=e-f,w=W(1e-9+exp(-dot(d,d)*27-dot(dc,dc)*55));TW+=w;WI+=f*w;}WI/=TW;WI=mix(mix(e,WI,F(I)/${O.N-1}),W(step(u.x,p*2-1)),step(p<1?.99:2,u.y));c=X(pow(clamp((WI*(2.51*WI+.03))/(WI*(2.43*WI+.59)+.14),0,1),W(1/2.2))+t/256,1);}`].map((s,i)=>(C=(y,c)=>(y=g.createShader(y),g.shaderSource(y,c=`#version 300 es\n`+c.replace(/([^a-z_0-9.])([0-9]+)(?=[^.0-9ux])/gi,'$1$2.').replace(/([0-9.]e-[0-9]+|([0-9]+(?=\.i)))\.i?/gi,'$1')),g.compileShader(y),y),g.attachShader(p=g.createProgram(),C(t=35632,v+s)),g.attachShader(p,C(t+1,K+`out V u;void main(){u=V(-1);D<2i?u[D]=3:0;gl_Position=X(u,0,1);}`)),g.linkProgram(p),[p,[...'rIRK'].map(n=>g.getUniformLocation(p,n))]));B=F(2,i=>(g.activeTexture(33984+i),g.bindTexture(t=3553,x=g.createTexture()),g.texImage2D(t,0,34836,w,h,0,6408,5126,null),F(4,i=>g.texParameteri(t,10240+i,i<2?9728:33071)),g.bindFramebuffer(q=36160,b=g.createFramebuffer()),g.framebufferTexture2D(q,q-96,t,x,0),b));g.viewport(0,0,w,h);I=0;x=new Uint8Array(4);f=_=>(Q.map(([p,c],i)=>(g.bindFramebuffer(q,i?null:B[I&1]),g.useProgram(p),[w,I,R(2**32),I&1^1^i].map((v,i)=>g['uniform'+'2f01ui01ui01i'.split(0)[i]](c[i],v,h)),g.drawArrays(4,0,3))),I++,g.readPixels(1,1,1,1,6408,5121,x));(k=_=>I<O.N?setTimeout(k,1,f()):0)() }],[1,()=>{console.log("Artist 28. Anna Lucia -- platform 1");let art; let theShader; let vertShader = ` attribute vec3 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main() { vTexCoord = aTexCoord; vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0 - 1.0; gl_Position = positionVec4; }`; let fragShader = ` #ifdef GL_ES precision mediump float; #endif varying vec2 vTexCoord; uniform sampler2D tex0; uniform float u_s; uniform vec2 u_res; #define PI 3.14159265359 float map(float x, float imin, float imax, float omin, float omax) { return imin + (x-omin)*((imax-imin)/(omax-omin)); } mat2 rotate2d(float a){ return mat2(cos(a),-sin(a), sin(a),cos(a)); } void main() { vec2 uv = vTexCoord; uv.y = 1.0 - uv.y; uv.y *= u_res.y/u_res.x; uv.x = map(uv.x, 0.15, 0.85, 0.0, 1.0); uv.y = map(uv.y, 0.15, 0.85, 0.0, 1.0); float r = 1.0; float cf = 0.0; float a = 0.0; vec4 col = vec4(1.0); uv -= vec2(0.5, 0.5*u_res.y/u_res.x); uv = rotate2d(u_s) * uv; uv += vec2(0.5, 0.5*u_res.y/u_res.x); for (int i = 0; i < 50; i++) { uv -= vec2(0.5, 0.5*u_res.y/u_res.x); a = float(i)*PI*0.001; uv = rotate2d(a) * uv; r -= 0.001*float(i); cf = smoothstep(0.0,0.1,length(uv)-r); uv += vec2(0.5, 0.5*u_res.y/u_res.x); col = mix(texture2D(tex0, uv),col,cf); } gl_FragColor = vec4(col); }`; let pals = [ { colors: [ "#FF8B22", "#FFCE43", "#FF6EA6", "#FF0D81", "#D7C7DE", ], prob: [0.1,0.05,0.25,0.2,0.4], }, { colors: [ "#02B7C7", "#D0B3F4", "#7E69E8", "#7E5D8E", "#F0E8D7", "#C4CFCF", ], prob: [1/12,1/6,1/6,3/12,1/6,1/6], }, { colors: [ "#00AF57", "#FF0000", "#0070F6", "#fbbb00", "#FF9D00", ], prob: [0.2,0.2,0.2,0.2,0.2], }, { colors: [ "#FF8B22", "#FFCE43", "#FF6EA6", "#FF0D81", "#77c39c", "#00AF57", "#D7C7DE", "#EEE8DB", "#C4CFCF", ], prob: [0.12, 0.12, 0.12, 0.12, 0.13, 0.1, 0.03, 0.07, 0.07, 0.07], }, { colors: [ "#FF8B22", "#FFCE43", "#FF0D81", "#00AF57", "#FF80D2", "#FFCFEF", "#EEE8DB", ], prob: [1/7,1/7,1/7,1/7,1/7,1/7,1/7], }, { colors: [ "#FFCFEF", "#FF80D2", "#FFCE43", "#FF9D00", "#00AF57", "#FF0000", "#0070F6", "#C4CFCF", "#E8EBEA", ], prob: [0.05, 0.05, 0.075, 0.075, 0.15, 0.15, 0.125, 0.1, 0.1], }, ]; let pal, cP = [], bgC, tE, sp, pts = [], ptsS = []; let cM, matchbgC, sP, start; setup = function() { setAttributes('antialias', true); setAttributes('perPixelLighting', true); createCanvas(windowWidth,windowHeight,WEBGL); pixelDensity(displayDensity(2)); frameRate(30); sp = 240; theShader = createShader(vertShader,fragShader); S = Uint32Array.from([0, 1, s = t = 2, 3].map(i => parseInt(tokenData.hash.substr(i * 8 + 5, 8), 16))); R = (a = 1) => a * (t = S[3], S[3] = S[2], S[2] = S[1], S[1] = s = S[0], t ^= t << 11, S[0] ^= (t ^ t >>> 8) ^ (s >>> 19), S[0] / 2 ** 32); cP = [] pal = pals[floor(R(pals.length))]; bgC = pal.colors[floor(R(pal.colors.length))]; background(bgC); art = createGraphics(windowWidth,windowHeight); art.background(bgC); art.strokeCap(SQUARE); cM = R(); matchbgC = R(); if (cM < 0.15) { matchbgC = 0.1; } sP = R(); rP = R(); nHps = 0; nHps = 1; columns = 5 + floor(R(10)); rows = 5 + floor(R(10)); nL = floor(R(3)) + 3; detptsS(1,1,0, R()) cPPicker() pts = []; for (let j = 0; j < ptsS.length; j++) { if (rP < 0.5) { columns = 4 + floor(R(10)); rows = 4 + floor(R(10)); cPPicker() } for (let i = 0; i < nL; i++) { if (cM >= 0.35) { cPPicker() } let stringThickness = 0.85 - i*0.1; if (sP > 0.75) { stringThickness = 1 - i*0.15; } let patch = new Patch(ptsS[j].x,ptsS[j].y,ptsS[j].w,ptsS[j].h,columns,rows, stringThickness); pts.push(patch); tE = (frameCount/sp)*TWO_PI; } } start = R(TAU); } draw = function() { background(bgC); tE = (frameCount/sp)*TWO_PI; for (let i = 0; i < pts.length; i++) { let patch = pts[i]; patch.display(); } shader(theShader); theShader.setUniform('tex0', art); theShader.setUniform('u_s',start); theShader.setUniform('u_res', [art.width,art.height]); rect(0,0,width,height); } class Patch { constructor(x_pos, y_pos, w_, h_, columns, rows, stringThickness) { this.grid = []; this.x_pos = x_pos; this.y_pos = y_pos; this.w = w_; this.h = h_; this.sw = stringThickness; this.columns = columns; this.rows = rows; let c1 = color(cP[0]); let c2 = color(cP[1]); if (sP > 0.65) { c1.setAlpha(70); c2.setAlpha(70); } this.dx = this.w/this.columns; this.dy = this.h/this.rows; if (cM > 0.6) { cPPicker() } for (let i = 0; i < this.rows; i++) { if (cM > 0.85) { cPPicker() } let band = { x: this.x_pos, y: this.y_pos + i*this.dy + this.dy/2, c1 : c1, c2 : c2, C : R(TWO_PI), B : 0.7 + R(0.4), dir : 1, }; this.grid.push(band); } if (cM > 0.6) { cPPicker() } for (let i = 0; i < this.columns; i++) { if (cM > 0.85) { cPPicker() } let band = { x: this.x_pos + i*this.dx + this.dx/2, y: this.y_pos, c1 : cP[0], c2 : cP[1], C : R(TWO_PI), B : 0.7 + R(0.4), dir : 0, }; this.grid.push(band); } shuffleArray(this.grid); } display() { for (let j = 0; j < this.grid.length; j++) { let g = this.grid[j]; if (g.dir > 0.5) { art.strokeWeight(this.sw*this.dy); linearGradient( this.x_pos + this.w*0.3 + cos(g.B*(tE + g.C))*this.w*0.7, this.y_pos, this.x_pos + this.w*0.7 + cos(g.B*(tE + g.C))*this.w*0.7, this.y_pos, g.c1, g.c2 ); art.line(g.x,g.y,g.x + this.w,g.y); } else { art.strokeWeight(this.sw*this.dx); linearGradient( this.x_pos, this.y_pos + this.h*0.3 + cos(g.B*(tE + g.C))*this.h*0.7, this.x_pos, this.y_pos + this.h*0.7 + cos(g.B*(tE + g.C))*this.h*0.7, g.c1, g.c2 ); art.line(g.x,g.y,g.x,g.y + this.h); art.strokeWeight(this.sw*this.dx*0.5); } } } } function detptsS(per, nHps,ran_rectangles) { ptsS = [] let verticalPatch for (let j = 0; j < nHps; j++) { verticalPatch = { w: (width/nHps)*per, h: height, x: (width/nHps)*(j + (1-per)/2), y: 0, } if ((ran_rectangles < 0.7)) { ptsS.push(verticalPatch); } } shuffleArray(ptsS); } function colorPick(t, i) { let h = R(), r = 0; for (let e = 0; e < t.length - 1; e++) { let s = t[e]; if (h < (r += i[e])) return s } return t[t.length - 1] } function cPPicker() { cP[0] = colorPick(pal.colors,pal.prob); cP[1] = cP[0] while (cP[1] == cP[0]) { cP[1] = colorPick(pal.colors,pal.prob); } colorPick(pal.colors,pal.prob); if (matchbgC < 0.5) { cP[0] = bgC; while (cP[1] == cP[0]) { cP[1] = colorPick(pal.colors,pal.prob); } } } function linearGradient(sX, sY, eX, eY, colorS, colorE){ let gradient = art.drawingContext.createLinearGradient( sX, sY, eX, eY ); gradient.addColorStop(0, colorS); gradient.addColorStop(1, colorE); art.drawingContext.fillStyle = gradient; art.drawingContext.strokeStyle = gradient; } windowResized = function() { resizeCanvas(windowWidth, windowHeight); } function shuffleArray(array) { var m = array.length, t, i; while (m) { i = floor(R() * m--); t = array[m]; array[m] = array[i]; array[i] = t; } return array; } }],
[1,()=>{console.log("Artist 52. A-Mashiro x NIINOMI -- platform 1");function calculateFeatures(tokenData){class Random{constructor(hash){this.useA=false;let sfc32=function(uint128Hex){let a=parseInt(uint128Hex.substr(0,8),16);let b=parseInt(uint128Hex.substr(8,8),16);let c=parseInt(uint128Hex.substr(16,8),16);let d=parseInt(uint128Hex.substr(24,8),16);return function(){a|=0;b|=0;c|=0;d|=0;let t=(a+b|0)+d|0;d=d+1|0;a=b^b>>>9;b=c+(c<<3)|0;c=c<<21|c>>>11;c=c+t|0;return(t>>>0)/4294967296}};this.prngA=new sfc32(hash.substr(2,32));this.prngB=new sfc32(hash.substr(34,32));for(let i=0;i<1e6;i+=2){this.prngA();this.prngB()}}random_dec(){this.useA=!this.useA;return this.useA?this.prngA():this.prngB()}random_num(a,b){return a+(b-a)*this.random_dec()}random_int(a,b){return Math.floor(this.random_num(a,b+1))}random_bool(p){return this.random_dec()<p}random_choice(list){return list[this.random_int(0,list.length-1)]}shuffleWithSeed(array){let m=array.length;while(m){const i=Math.floor(this.random_dec()*m--);const t=array[m];array[m]=array[i];array[i]=t}return array}}const getHexColors=palette=>palette.split("-").map((c=>`#${c}`));palettes={spring:{day:getHexColors("3a5d74-69a0b5-9bbbae-eadd7a-f1ceca-ddb1b6-c78ea4"),night:getHexColors("a57aa2-044047-06679a-022c2c-1179ac-02374c-044b68")},summer:{day:getHexColors("fbe8bc-1895b8-7fc2c2-b1c969-8ead3d-546e35-335032"),night:getHexColors("1f61ad-4a84b1-4d748d-3894d4-1e242a-3e6990-d3cb47")},autumn:{day:getHexColors("f4481a-e8af55-978f90-e78430-d62821-673f2d-56606a"),night:getHexColors("474134-d6705b-152a22-80645a-0c2118-384b53-b86650")},winter:{day:getHexColors("5e7a8a-70b0c0-dddece-0a1a4f-0d85b2-2c6c8b-9dc3cb"),night:getHexColors("232a2b-475b64-bdc6c9-7c8b8e-556a6c-495d5e-a1aaad")}};patterns={seigaiha:1,asanoha:2,sayagata:3,shippou:4};random=new Random(tokenData.hash);randomChoice=list=>random.random_choice(list);randomNum=(v1,v2)=>random.random_num(v1,v2);randomInt=(v1,v2)=>random.random_int(v1,v2);randomDec=()=>random.random_dec();randomBool=p=>random.random_bool(p);const pattern1=random.random_choice(Object.keys(patterns));const pattern2=random.random_choice(Object.keys(patterns).filter((p=>p!==pattern1)));attributes={palette:random.random_choice(Object.keys(palettes)),cloud:random.random_bool(1),line:random.random_bool(1),rain:random.random_bool(.3),pattern1:pattern1,pattern2:pattern2};console.log(attributes);return attributes}(()=>{"use strict";const t=(t,s)=>!(t.x+t.w<=s.x||t.x>=s.x+s.w||t.y+t.h<=s.y||t.y>=s.y+s.h),s="first",e="second";class n{#t;#s;#e;#n;#i=1;#a;#o=!1;#r;constructor(t,s){this.#t=t,this.#s=s,this.#e={canvas:t},this.#n={canvas:s}}getRight(t){const s=t.style.right;return s?parseInt(s.replace("px","")):0}getCurrentScrollTop(){return this.#a}isActiveCanvas(t){return this.#r===t}updateActiveCanvas(t){this.#r=t||(this.#r===s?e:s)}updateCanvases(t,s){this.#e={canvas:t},this.#n={canvas:s}}update(){const t=this.getRight(this.#e.canvas)-this.#i;let n=(i=t,a=0,o=-window.innerWidth,(r=0)+(i-a)/(o-a)*(1-r));var i,a,o,r;n<0?(n+=1,this.updateActiveCanvas(s)):this.#o||this.updateActiveCanvas(e),this.#a=n,this.#e.canvas.style.right=`${t}px`,this.#n.canvas.style.right=`${t+this.#e.canvas.offsetWidth}px`,this.getRight(this.#e.canvas)<=-window.innerWidth&&(this.#o=!0,this.updateActiveCanvas(),this.#e.canvas.style.right=`${window.innerWidth}px`,this.#e.canvas===this.#t?this.updateCanvases(this.#s,this.#t):this.#e.canvas===this.#s&&this.updateCanvases(this.#t,this.#s))}}class i{id;canvasName;p;scroller;lastActiveState;constructor(t,s,e,n){this.id=t,this.canvasName=s,this.p=e,this.scroller=n}updateLastActiveState(){this.lastActiveState=this.scroller.isActiveCanvas(this.canvasName)}}let a;const o={init:()=>{const t=palettes[attributes.palette];a={day:random.shuffleWithSeed(t.day.concat()),night:random.shuffleWithSeed(t.night.concat())}},currentHours:()=>(new Date).getHours(),dayOrNight:()=>{const t=o.currentHours();return t>=6&&t<18?"day":"night"},getPaletteColors:()=>a[o.dayOrNight()],getRandomPaletteColors:()=>random.shuffleWithSeed(a[o.dayOrNight()].concat()),getPatternValues:()=>[patterns[attributes.pattern1],patterns[attributes.pattern2]]};class r{p;pos;size;#h;#l;#d;#i;#c;#p;constructor(t,s,e){this.p=t,this.pos=s,this.size=e,this.#h=o.getRandomPaletteColors();const n=randomInt(8,15);this.#l={w:n,h:n},this.#d=Math.floor(randomInt(3,10)),this.#i=randomNum(.1,.4),this.#c=randomBool(.3),this.startAnimation=!1,this.#p=1}update(t,s){if(s&&(this.startAnimation=!0),this.#c&&this.startAnimation&&t>.7){const t=this.pos.x+this.#i*this.#p,s=this.pos.y;t<0?this.pos.y=s:t+this.size.w>this.p.width?(this.pos.x=this.p.width-this.size.w,this.pos.y=s):(this.pos.x=t,this.pos.y=s)}}draw(t,s){const e=this.p,n=this.size.w,i=this.size.h;e.push(),e.translate(this.pos.x,this.pos.y);for(let s=this.#d;s<n;s+=this.#l.w+this.#d){const a=this.#c?e.map(e.sin(e.radians(360*t)),-1,1,n/2,n):n,o=e.drawingContext.createLinearGradient(0,0,a,0);for(let t=0;t<this.#h.length;t++){const s=e.map(t,0,this.#h.length-1,0,1);o.addColorStop(s,this.#h[t])}e.drawingContext.fillStyle=o;for(let t=this.#d;t<i;t+=this.#l.h+this.#d){e.fill(this.#h[0]);const a=Math.sqrt(Math.pow(s-n/2,2)+Math.pow(t-i/2,2))/Math.max(n,i),o=e.map(e.noise(s,t),0,1,-1,1);t<i/2+o*i*.1&&a<.3+.1*o&&e.ellipse(s,t,this.#l.w,this.#l.h)}}e.pop()}}const h=Object.freeze({ELLIPSE:1,BLOCK:2});class l{p;pos;size;drawable;#v;#m;#f;#u;#g;#x;#y;constructor(t,s,e){this.p=t,this.init(s,e)}init(t,s){this.pos=t,this.size=s,this.#v=o.getRandomPaletteColors()[0],this.#m=randomInt(3,4),this.#f=randomChoice(o.getPatternValues()),this.#u=randomChoice([h.ELLIPSE,h.BLOCK]),this.#x&&(this.#x.remove(),this.#x.canvas.remove()),this.#x=this.p.createGraphics(this.size.w,this.size.h,this.p.WEBGL),this.#g=this.#x.createShader("precision mediump float;\n\nattribute vec3 aPosition;\n\nvoid main() {\n vec4 positionVec4 = vec4(aPosition, 1.0);\n // positionVec4.xy * 2.0 - 1.0;\n gl_Position = positionVec4;\n}","precision mediump float;\n\nuniform vec2 resolution;\nuniform float time;\nuniform vec3 color1;\nuniform float type;\nuniform float shape;\nuniform float offset;\n\nconst float PI = 3.1415926535897932384626433832795;\n\nfloat map(float value, float beforeMin, float beforeMax, float afterMin, float afterMax) {\n return afterMin + (afterMax - afterMin) * ((value - beforeMin) / (beforeMax - beforeMin));\n}\n\nvec2 rotate2d(vec2 st, float ang){\n mat2 rot_mat = mat2(\n cos(ang), -sin(ang),\n sin(ang), cos(ang)\n );\n st = rot_mat * st;\n return st;\n}\n\nvec2 skew2(vec2 st) {\n vec2 r = vec2(st.x, rotate2d(st, -PI / 6.0).y);\n return r;\n}\n\nvec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); }\n\nfloat snoise(vec2 v){\n const vec4 C = vec4(0.211324865405187, 0.366025403784439,\n -0.577350269189626, 0.024390243902439);\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n i = mod(i, 289.0);\n vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0))\n + i.x + vec3(0.0, i1.x, 1.0));\n vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy),\n dot(x12.zw, x12.zw)), 0.0);\n m = m*m;\n m = m*m;\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n\nvec3 simplexGrid(vec2 st) {\n vec3 xyz = vec3(0.0);\n\n vec2 p = fract(skew2(st));\n if (p.x > p.y) {\n xyz.x = 1.0 - p.x;\n xyz.y = 1.0 - (p.y - p.x);\n xyz.z = p.y;\n } else {\n xyz.x = p.x;\n xyz.y = 1.0 - (p.x - p.y);\n xyz.z = 1.0 - p.y;\n }\n\n return fract(xyz);\n}\n\nfloat shippo(vec2 uv) {\n float num = 0.85;\n float size = 0.5;\n float boldness = 0.012;\n\n vec2 uv1 = uv * num;\n uv1 = fract(uv1) - 0.5;\n float l1 = length(uv1) - size;\n float val1 = 1.0 - step(boldness, abs(l1));\n\n vec2 uv2 = uv * num;\n uv2 = fract(uv2 + 0.5) - 0.5;\n float l2 = length(uv2) - size;\n float val2 = 1.0 - step(boldness, abs(l2));\n\n return val1 + val2;\n}\n\nfloat sayagata(vec2 uv) {\n vec2 gd[4];\n gd[0] = mod(floor(vec2(uv.x, uv.y)), 10.0);\n gd[1] = mod(floor(vec2(uv.x, uv.y) + 5.0), 10.0);\n gd[2] = mod(floor(vec2(uv.y, uv.x + 5.0)), 10.0);\n gd[3] = mod(floor(vec2(uv.y, uv.x + 5.0) + 5.0), 10.0);\n\n float val = 0.0;\n for (int i = 0; i < 4; i++) {\n if (gd[i].x == 4.0 && gd[i].y >= 0.0 && gd[i].y <= 8.0) { val = float(i); }\n if (gd[i].y == 0.0 && gd[i].x >= 1.0 && gd[i].x <= 7.0) { val = float(i); }\n if (gd[i].y == 8.0 && gd[i].x >= 1.0 && gd[i].x <= 7.0) { val = float(i); }\n if (gd[i] == vec2(2.0, 1.0)\n || gd[i] == vec2(2.0, 7.0)\n || gd[i] == vec2(6.0, 1.0)\n || gd[i] == vec2(6.0, 7.0)) { val = float(i); }\n }\n\n return val;\n}\n\nfloat asanoha(vec2 st) {\n vec3 sg = simplexGrid(st);\n\n float val1 = 1.0;\n val1 = min(val1, sg.x);\n val1 = min(val1, sg.y);\n val1 = min(val1, sg.z);\n\n vec2 st1 = fract(skew2(rotate2d(st, PI / 3.0 * 1.0)));\n vec2 st2 = fract(skew2(rotate2d(st, PI / 3.0 * 0.0)));\n vec2 st3 = fract(skew2(rotate2d(st, PI / 3.0 * 2.0)));\n vec3 tg = vec3(st1.x + st1.y, st2.x + st2.y, st3.x + st3.y) * 0.5 - 0.5;\n\n float val2 = 0.0;\n if (val1 == sg.x) { val2 = min(abs(tg.y), abs(tg.z)); }\n if (val1 == sg.y) { val2 = min(abs(tg.z), abs(tg.x)); }\n if (val1 == sg.z) { val2 = min(abs(tg.x), abs(tg.y)); }\n\n return step(0.989, 1.0 - min(val1, val2));\n}\n\nfloat seigaiha(vec2 uv) {\n float val = 0.0;\n for (int i = 0; i < 4; i++) {\n float sx = float(i) * 0.5;\n float sy = float(i) * 0.25;\n vec2 st = fract(vec2(uv.x + sx, uv.y + sy)) * 2.0 - 1.0;\n float v = (1.0 - step(1.0, length(st))) * st.y;\n v -= step(1.0, length(st)) * 2.0;\n val = max(val, v);\n }\n\n // wave\n for (int i = 0; i < 4; i++) {\n float sx = float(i) * 0.5;\n float sy = float(i) * 0.25;\n vec2 st = fract(vec2(uv.x + sx, uv.y + sy)) * 2.0 - 1.0;\n float v = (1.0 - step(1.0, length(st))) * st.y;\n v -= step(1.0, length(st)) * 2.0;\n\n float wav = 1.0 - step(1.0, length(st));\n wav = wav * smoothstep(0.0, 0.5, sin(8.0 * length(st) * PI));\n if (val == v) { val = wav; }\n }\n\n return val;\n}\n\nvoid main() {\n vec2 uv = (gl_FragCoord.xy * 2.0 - resolution.xy) / min(resolution.x, resolution.y);\n\n if (shape == 1.0) {\n // Ellipse\n float alpha = 1.0 - step(1.0, length(uv));\n if (alpha == 0.0) {\n discard;\n }\n } else if (shape == 2.0) {\n // Block\n float mosaic = 7.0;\n vec2 uv2 = (gl_FragCoord.xy * 2.0 - resolution.xy) / max(resolution.x, resolution.y);\n uv2 = floor(uv2 * mosaic) / mosaic;\n float n = snoise(uv2 + offset);\n float f = 1.0 - step(0.7 + map(n, 0.0, 1.0, -0.1, 0.1), length(uv2));\n if (f == 0.0) {\n discard;\n }\n }\n\n uv *= offset;\n\n float p = 0.0;\n\n if (type == 1.0) {\n p = seigaiha(uv);\n } else if (type == 2.0) {\n p = asanoha(uv);\n } else if (type == 3.0) {\n vec2 st = uv * 5.0;\n st = rotate2d(st, PI / 4.0);\n st.y = rotate2d(st, -PI / 8.0).y;\n float d = 0.05;\n vec2 dx = vec2(d, 0.0);\n vec2 dy = vec2(0.0, d);\n float diffX = abs((sayagata(st + dx) - sayagata(st - dx)) / (2.0 * d));\n float diffY = abs((sayagata(st + dy) - sayagata(st - dy)) / (2.0 * d));\n float diffXY = abs((sayagata(st + d) - sayagata(st - d)) / (2.0 * d));\n p = max(diffXY, max(diffX, diffY));\n } else if (type == 4.0) {\n p = shippo(uv);\n }\n\n if (p == 0.0) {\n discard;\n }\n\n gl_FragColor = vec4(color1, 1.0);\n}"),this.#y=this.#x.pixelDensity(),this.drawable=!0}update(t,s){}updateDrawable(t){this.drawable=t}draw(t,s){if(!this.drawable)return;const e=this.p;e.push(),e.translate(this.pos.x,this.pos.y);const n=this.#g,i=this.#x,a=this.size.w,o=this.size.h,r=e.color(this.#v)._array;n.setUniform("resolution",[a*this.#y,o*this.#y]),n.setUniform("time",this.p.millis()/1e3),n.setUniform("color1",[r[0],r[1],r[2]]),n.setUniform("offset",this.#m),n.setUniform("type",this.#f),n.setUniform("shape",this.#u),i.shader(n),i.clear(),i.noStroke(),i.quad(-1,-1,1,-1,1,1,-1,1),e.image(i,0,0,a,o),e.pop()}}class d{p;pos;size;drawable;#h;#w;#p;#d;#C;constructor(t,s,e){this.p=t,this.pos=s,this.size=e,this.#h=o.getRandomPaletteColors(),this.#w=randomNum(.4,.9),this.#d=randomInt(0,.15*t.width),this.drawable=!0,this.updateStep()}update(){(this.p.frameCount+Math.floor(500*this.#w))%200==0&&this.updateStep(),this.pos.x<this.p.width-this.#d?(this.pos.x+=this.#C.x*this.#p.x,this.pos.y+=this.#C.y*this.#p.y):this.drawable=!1}updateStep(){this.#C=(()=>{const t=randomInt(1,2),s=randomChoice([0,1]);return{x:t*this.#w,y:s*this.#w}})(),this.#p={x:1,y:randomChoice([-1,1])}}draw(){if(!this.drawable)return;const t=this.p,s=this.size.w,e=this.size.h;t.fill(this.#h[0]),t.push(),t.translate(this.pos.x,this.pos.y),t.ellipse(0,0,s,e),t.pop()}}const c=Object.freeze({VERTICAL:"vertical",HORIZONTAL:"horizontal"});class p{points=[];constructor(t){this.points=t}}class v{pos;size;colors;velocity;#p;constructor(t,s,e,n,i){this.pos=t,this.size=s,this.colors=e,this.velocity=n,this.#p=i}isVertical(){return this.#p===c.VERTICAL}}class m{p;#z=[];#b=[];#I=[];#E=[];#R;#P=!0;#N;#S=!0;#A=!0;#L;#M=[];constructor(t,s,e){this.p=t,this.#R={x:s,y:e},this.#N=o.getPaletteColors(),this.#L=randomInt(5,12)}generateRects(t){this.#z=[],this.#b=[],this.#M=[],this.#N=o.getPaletteColors(),this.generateElements();const s=this.p,e=this.#R.y,n=this.#R.x,i=s.width/(n+1),a=s.height/(e+2);for(let o=1;o<=e+1;o++){const r=[];let h=0,l=0;for(let s=0;s<n+2;s++){const e=0===s,d=s===n+1,c=e||d,p=randomBool(.5)?randomBool(.5)?-a/2:a/2:0,v=s*i;let m=0,f=!0;1===l?(m=h,f=!1,l=0):m=a*o+(c?0:p),t&&d&&(m=t[o-1].y),r.push({x:v,y:m,isEdge:c,isFirstEdge:e}),f&&l++,h=m}if(this.#M.push(r),1===o){const t=[];t.push({x:0,y:0,isEdge:!0,isFirstEdge:!0}),t.push({x:s.width,y:0,isEdge:!0,isFirstEdge:!1});for(let s=r.length-1;s>=0;s--){const e=r[s];t.push(e)}this.#z.push(new p(t))}if(o>=2){const t=[];for(let s=0;s<this.#M[o-2].length;s++){const e=this.#M[o-2][s];t.push(e)}for(let s=r.length-1;s>=0;s--){const e=r[s];t.push(e)}this.#z.push(new p(t))}if(o===e+1){const t=[];for(const s of r)t.push(s);t.push({x:s.width,y:a*(o+1),isEdge:!0,isFirstEdge:!1}),t.push({x:0,y:a*(o+1),isEdge:!0,isFirstEdge:!0}),this.#z.push(new p(t))}}this.#A=!0;for(let t=0;t<this.#z.length;t++){const e=this.#z[t];let n={x:0,y:0};for(const t of e.points){const e=t.x,i=t.y;if(e>n.x&&i===n.y){const t=randomChoice([c.VERTICAL,c.HORIZONTAL]),i=0,r={x:.1*s.width,y:.1*s.height},h={x:randomInt(-r.x,r.x),y:randomInt(-r.y,r.y)};let l=n.x+i+randomChoice([0,h.x]);l=l<=0?randomInt(0,r.x):l;let d=e-n.x-2*i;randomBool(.9)&&(d=l+d>=s.width?d*randomNum(.6,.9):d),this.#b.push(new v({x:l,y:n.y+i+randomChoice([0,h.y])},{w:d,h:a-2*i},o.getRandomPaletteColors(),randomDec(),t))}n={x:e,y:i}}}}generateElements(){const s=this.p,e=window.innerHeight>window.innerWidth;this.#I=[];for(const t of this.#E)t.updateDrawable(!1);const n=e?2:randomInt(2,3);for(let i=0;i<n;i++)if(0===i||randomBool(.5)){const n=randomBool(.5),a=.5625;let o;o=n?e?s.width*randomNum(.5,.75):.25*s.width:e?s.width*randomNum(.5,.8):.6*s.width;const r=3;let h=0;const d=(e,n)=>{const i=randomInt(0,s.width-e),a=randomInt(-n/2,s.height-n/2);let o=!0;for(let s=0;s<this.#E.length;s++){const r=this.#E[s];if(r.drawable&&(o=!t({x:i,y:a,w:e,h:n},{x:r.pos.x,y:r.pos.y,w:r.size.w,h:r.size.h}),!o))break}return o?{x:i,y:a}:h<r?(h++,d(e,n)):null},c=n?o/a:o*a,p=d(o,c);if(!p)continue;let v=this.#E[i];v?v.init({x:p.x,y:p.y},{w:o,h:c}):(v=new l(s,{x:p.x,y:p.y},{w:o,h:c}),this.#E.push(v)),this.#I.push(v)}if(attributes.cloud){const n=[],i=e?1:2;let a=0,o=3;for(let h=0;h<i;h++){const i=e?.9*s.width:s.width*randomNum(.5,.85),h=e?s.height*randomNum(.7,.95):randomNum(i,2*i),l=(e,i)=>{const r=randomInt(0,s.width-e),h=randomInt(-i/3,s.height-i/3);let d=!0;for(let s=0;s<n.length;s++){const a=n[s];if(d=!t({x:r,y:h,w:e,h:i},{x:a.pos.x,y:a.pos.y,w:a.size.w,h:a.size.h}),!d)break}return d?{x:r,y:h}:a<o?(a++,l(e,i)):null},d=l(i,h);if(!d)continue;const c=new r(s,{x:d.x,y:d.y},{w:i,h});this.#I.push(c),n.push(c)}}if(attributes.line)for(let t=0;t<this.#L;t++){const t=randomInt(2,4),e=t,n=new d(s,{x:randomInt(0,.2*s.width),y:randomInt(0,s.height-e)},{w:t,h:e});this.#I.push(n)}}getLastPoints(){return this.#M.map((t=>{for(let s=0;s<t.length;s++){const e=t[s];if(e.isFirstEdge)return e}return arr}))}updateDrawable(t){this.#P=t}draw(t,s){const e=this.p;if(this.#P){if(e.noStroke(),e.push(),this.#S&&this.#A){let t=0;for(const s of this.#z){const n=this.#N[t%this.#N.length];e.fill(n),e.push(),e.beginShape();const i=s.points;for(let t=0;t<i.length;t++){const s=i[t];e.vertex(s.x,s.y)}e.endShape(e.CLOSE),e.pop(),t++}this.#A=!1}for(const t of this.#b){if(e.push(),t.velocity>.5?e.fill(e.frameCount%Math.floor(35*e.noise(e.frameCount*t.velocity))==0?randomChoice([t.colors[1],t.colors[2]]):t.colors[0]):e.fill(t.colors[0]),e.noStroke(),t.isVertical()){const s=.1*t.size.w,n=e.map(.005*e.frameCount*t.velocity%1,0,1,0,t.size.w);e.rect(t.pos.x+n,t.pos.y,s,t.size.h)}else{const s=.1*t.size.h+e.sin(.1*e.frameCount+8*e.noise(e.frameCount)),n=e.sin(.02*e.frameCount*t.velocity+1e3*t.velocity)*s*6*t.velocity;e.rect(t.pos.x,t.pos.y+n,t.size.w,s)}e.pop()}for(const e of this.#I)e&&(e.update(t,s),e.draw(t,s))}}}class f extends i{#B;#D;setup(t){const s=this.p;this.#B=o.getPaletteColors()[0],s.createCanvas(s.windowWidth,s.windowHeight),this.#D=new m(s,t.horizontalNum,t.verticalNum),this.#D.generateRects()}draw(t){const s=this.p,e=this.scroller,n=e.isActiveCanvas(this.canvasName);if(n&&!this.lastActiveState){let e;s.background(this.#B),t&&(e=t.getGrid().getLastPoints()),this.#D.generateRects(e),this.#D.updateDrawable(!0)}const i=e.getCurrentScrollTop();this.#D.draw(i,n),this.updateLastActiveState()}resize(){const t=this.p;t.resizeCanvas(t.windowWidth,t.windowHeight),this.#D.generateRects()}getGrid(){return this.#D}}class u{p;pos;size;removable=!1;#i;#h;#k=0;#O;#F;constructor(t,s,e){this.p=t,this.pos=s,this.size=e,this.#i=1,this.#h=o.getRandomPaletteColors(),this.#O=randomInt(0,50),this.#F=randomInt(.3*e.w,.4*e.w)}update(){this.#k++,this.pos.x+=this.#i}draw(){const t=this.p;if(t.push(),t.translate(this.pos.x,this.pos.y),this.#k>=this.#O){const s=this.#F,e=this.#k-this.#O;t.stroke(this.#h[0]),t.strokeWeight(3*(1-e/s)),t.noFill();const n=t.map(t.min(e,s),0,s,0,1);e<s?t.ellipse(0,0,this.size.w*n,this.size.h*n):this.removable=!0}t.pop()}}class g extends i{#I=[];#W=0;#T=!1;#H=randomInt(3,6);#V=randomInt(30,50);#_=!1;#U=randomChoice([5e3,6e3]);setup(){const t=this.p;t.createCanvas(t.windowWidth,t.windowHeight).id(`canvas_${this.id}`),this.createElements(this.#H)}createElements(t){for(let t=0;t<this.#I.length;t++)this.#I[t]=null;this.#I.length=0;for(let s=0;s<t;s++)this.createElement()}createElement(){const t=this.p,s=.3*t.min(t.width,t.height),e=randomInt(.5*s,randomBool(.1)?4*s:s),n=randomInt(0,t.width),i=new u(t,{x:n,y:randomInt(0,t.height)},{w:e,h:e});this.#I.push(i)}update(){const t=this.p;t.frameCount%this.#U==0&&(this.#W=0,this.#T=!0),this.#W!==this.#U-Math.floor(.1*this.#U)||this.#T||(this.#_=!0),this.#_&&t.frameCount%5==0&&(this.#I.length<this.#V?this.createElement():this.#_=!1);for(const s of this.#I){const e=t=>{const s=this.#I.indexOf(t);-1!==s&&(this.#T?(this.#I.splice(s,1),randomBool(.5)&&this.createElement()):(this.#I.splice(s,1),this.createElement()))};(s.pos.x-s.size.w>t.width||s.removable)&&e(s)}this.#T&&this.#I.length===this.#H&&(this.#T=!1),this.#W++}draw(){const t=this.p;t.clear(),t.push();for(const t of this.#I)t.update(),t.draw();t.pop()}resize(){const t=this.p;t.resizeCanvas(t.windowWidth,t.windowHeight)}}document.addEventListener("DOMContentLoaded",(()=>{const t=document.getElementsByTagName("body")[0],i=document.createElement("div");i.classList.add("container"),i.setAttribute("id","container1");const a=document.createElement("div");a.classList.add("container"),a.setAttribute("id","container2"),t.appendChild(i),t.appendChild(a);const r=document.createElement("style");r.textContent="\n body, html {\n position: relative;\n margin: 0;\n padding: 0;\n overflow: hidden;\n height: 100%;\n }\n .container {\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n #canvas_3, #canvas_4 {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 10;\n }\n ",document.head.appendChild(r);const h=new n(i,a),l={hash:(()=>{let t="0x";for(let s=0;s<64;s++)t+=Math.floor(16*Math.random()).toString(16);return t})()},d="undefined"!=typeof tokenData;calculateFeatures(d?tokenData:l),o.init();const c={horizontalNum:3,verticalNum:randomInt(1,4)};let p,v;new p5((t=>{p=new f(1,s,t,h),t.setup=()=>{p.setup(c)},t.draw=()=>{h.update(),p.draw(v)},t.windowResized=()=>{p.resize()}}),"container1"),new p5((t=>{v=new f(2,e,t,h),t.setup=()=>{v.setup(c)},t.draw=()=>{v.draw(p)},t.windowResized=()=>{v.resize()}}),"container2"),attributes.rain&&new p5((t=>{const e=new g(3,s,t,h);t.setup=()=>{e.setup()},t.draw=()=>{e.update(),e.draw()},t.windowResized=()=>{e.resize()}}),"body")}))})(); }],
[1,()=>{console.log("Artist 54. Aranda\Lasch -- platform 1");function patchP5jsForWebGL2(){const n=p5.RendererGL.prototype._initContext;p5.RendererGL.prototype._initContext=function(){this.drawingContext=this.canvas.getContext("webgl2",{alpha:!0,depth:!0,stencil:!0,antialias:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,failIfMajorPerformanceCaveat:!0}),this.drawingContext?console.log("WebGL 2.0 context successfully created."):(console.warn("WebGL 2.0 is not supported by your browser. Falling back to WebGL 1.0."),n.call(this))}}patchP5jsForWebGL2(); function n(n,t=1.1,e=1){return t*e/(e-n*(e-t))}const SEED=n.random_num;function t(n,t){for(let e=0;e<l.length;e++)n.setUniform(l[e],r[t][e])}function e(n,t){for(let[e,o]of Object.entries(N[t]))n.setUniform(e,o)}function o(n=0,t=1){let e=(t-n)*R.random_dec()+n;return e}function a(n){return n[Math.floor(o()*n.length)]}function c(n){return n.reduce((n,t,e,o)=>{const a=o.slice(0,e+1),i=a.reduce((n,t)=>n+t,0);return[...n,i]},[])}this.seed=SEED;let l=["LF1","LF2","LR1","LR2","dA1","dA2","df1","df2","wb1","wb2","bb1","bb2","Nf1","Nf2","Nn1","Nn2","Nx1","Nx2","indx","Ld","cBlend"],r=[],m={seed:o(-1e3,1e3),mult1:o(2,18),mult2:o(5,12),horizon:.1,hengeHighlight:1e3,shadowStrength:6,ground:.5,lineWeightMult:1,clear:2,night:2};const h="#version 300 es\n in vec3 aPosition;\n in vec2 aTexCoord;\n out vec2 vTexCoord;\n void main() { \n vTexCoord = aTexCoord;\n vTexCoord.x *= 9./16.;\n vec4 positionVec4 = vec4(aPosition, 1.0);\n positionVec4.xy = positionVec4.xy * 2.0 - 1.0;\n gl_Position = positionVec4;\n }\n ",f="#version 300 es // Author:Jesse Bassett\nprecision highp float;\nin vec2 vTexCoord;\nout vec4 fragColor ; uniform vec4 LF1; uniform vec2 LF2; uniform vec4 LR1; uniform vec2 LR2; uniform vec4 dA1; uniform vec2 dA2; uniform vec4 df1; uniform vec2 df2; uniform vec4 wb1; uniform vec2 wb2; uniform vec4 bb1; uniform vec2 bb2; uniform vec4 Nf1; uniform vec2 Nf2; uniform vec4 Nn1; uniform vec2 Nn2; uniform vec4 Nx1; uniform vec2 Nx2; uniform float indx; uniform vec4 Ld; uniform float cBlend; uniform float cloudSeed; uniform float N1; uniform float N2; uniform float horizon; uniform float ground; uniform float clear; uniform float night; uniform vec2 rez; uniform float isBase; uniform vec2 v1U; uniform vec2 v2U; uniform float thU; uniform float r1U; uniform float r2U;\nconst int Len = 5;\nint sel = 2;\nfloat time = -0.04;\nconst int N_Octaves = 8;\n#define BlendScreen(base, blend) (1.0 - ((1.0 - base) * (1.0 - blend)))\nuint pcg(uint v) {\n\tuint state = v * uint(747796405) + uint(2891336453);\n\tuint word = ((state >> ((state >> uint(28)) + uint(4))) ^ state) * uint(277803737);\n\treturn (word >> uint(22)) ^ word;\n}\nfloat prng (float p) {\n\treturn float(pcg(uint(p))) / float(uint(0xffffffff));\n}\nfloat prng (vec2 p) {\n\treturn float(pcg(pcg(uint(p.x)) + uint(p.y))) / float(uint(0xffffffff));\n}\nfloat prng (vec3 p) {\n\treturn float(pcg(pcg(uint(p.x)) + uint(p.y) + uint(p.z))) / float(uint(0xffffffff));\n}\nfloat prng (vec4 p) {\n\treturn float(pcg(pcg(uint(p.x)) + uint(p.y) + uint(p.z) + uint(p.w))) / float(uint(0xffffffff));\n}\nfloat snoise(vec2 v) {\n const vec4 C = vec4(0.211324865405187,0.366025403784439,-0.577350269189626,0.024390243902439);\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n vec2 x1 = x0.xy + C.xx - i1;\n vec2 x2 = x0.xy + C.zz;\n float n0 = prng(vec3(i, 0.0));\n float n1 = prng(vec3(i + i1, 1.0));\n float n2 = prng(vec3(i + vec2(1.0), 2.0));\n vec3 x = vec3(n0, n1, n2) * 2.0 - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x1, x1), dot(x2, x2)), 0.0);\n m = m * m;\n m = m * m;\n a0 = vec3(n0, n1 - n0, n2 - n0); \n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * vec2(x1.x, x2.x) + h.yz * vec2(x1.y, x2.y);\n return 130.0 * dot(m, g);\n}\nfloat noise3d(vec3 p){\n vec3 a = floor(p);\n vec3 d = p - a;\n d = d * d * (3.0 - 2.0 * d);\n float n000 = prng(a + vec3(0.0, 0.0, 0.0));\n float n100 = prng(a + vec3(1.0, 0.0, 0.0));\n float n010 = prng(a + vec3(0.0, 1.0, 0.0));\n float n110 = prng(a + vec3(1.0, 1.0, 0.0));\n float n001 = prng(a + vec3(0.0, 0.0, 1.0));\n float n101 = prng(a + vec3(1.0, 0.0, 1.0));\n float n011 = prng(a + vec3(0.0, 1.0, 1.0));\n float n111 = prng(a + vec3(1.0, 1.0, 1.0));\n float n00 = mix(n000, n100, d.x);\n float n10 = mix(n010, n110, d.x);\n float n01 = mix(n001, n101, d.x);\n float n11 = mix(n011, n111, d.x);\n float n0 = mix(n00, n10, d.y);\n float n1 = mix(n01, n11, d.y);\n float n = mix(n0, n1, d.z);\n return n;\n}\nvec2 rotateUV(vec2 uv, float rotation){ \n float rotation2 = rotation * (isBase+1.) * 0.261799 * 2.;\n return vec2( \n cos(rotation2) * (uv.x - 0.5) + sin(rotation2) * (uv.y - 0.5) + 0.5, \n cos(rotation2) * (uv.y - 0.5) - sin(rotation2) * (uv.x - 0.5) + 0.5\n ); \n}\nfloat SmoothStep( float edge0, float edge1,float x ){\n float t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n return t;\n}\nfloat sdOrientedBox( in vec2 p, in vec2 a, in vec2 b, float th )\n{\n float l = length(b-a);\n vec2 d = (b-a)/l;\n vec2 q = p-(a+b)*0.5;\n q = mat2(d.x,-d.y,d.y,d.x)*q;\n q = abs(q)-vec2(l*0.5,th);\n return length(max(q,0.0)) + min(max(q.x,q.y),0.0); \n}\nvec4 shadeCloud(vec2 v1,vec2 v2,float th,float r){\n vec4 R = vec4(0.0);\n vec2 V = v2-v1;\n V = V.yx;\n V.x= -V.x*sign(r);\n V.y= V.y*sign(r);\n r=abs(r);\n V = normalize(V)*(th-th*r);\n R.xy = v1 + V;\n R.yw = v2 + V;\n R.x = v1.x + V.x;\n R.y = v1.y + V.y;\n R.z = v2.x + V.x;\n R.w = v2.y + V.y;\n return R;\n}\nvec3 col3d ( in vec3 P, in vec2 st, in vec2 v1, in vec2 v2, in float th, in float r, in float r2) {\n vec3 x = P * N1 ;\n\tfloat v = 0.0;\n\tfloat a = 0.5;\n\tvec3 shift = vec3(100);\n\tfor (int i = 0; i < N_Octaves; ++i) {\n\t\tv += a * noise3d(x);\n\t\tx = x * 2.0 + shift;\n\t\ta *= 0.5;\n\t}\n st += vec2(v)*N2*(sin(time));\n vec4 SH;\n vec3 c;\n float mask1 = sdOrientedBox( st, v1, v2, th );\n mask1 = 0.0 + sign(mask1)*1.;\n SH = shadeCloud(v1,v2,th,abs(r));\n float mask2 = sdOrientedBox( st, SH.xy, SH.zw, th*r );\n mask2 = 0.0 + sign(mask2)*1.; \n SH = shadeCloud(v1,v2,th,-r2);\n float mask3 = sdOrientedBox( st, SH.xy, SH.zw, th*r2 );\n mask3 = 0.0 + sign(mask3)*1.;\n c = vec3(mask1,mask2,mask3);\n return c;\n}\nvec2 OP( vec2 st, float r, float w, float d, float s, float ww , float b, float n, float N, float X){ // from #3\n st = rotateUV(st,r);\n st.x += cos(st.y*w)/d;\n st.y += sin(st.x*w)/d;\n float pos = st.x * s;\n float L = ww*b*( (cos(pos*2.*3.14)+1.)/2. )-b+1.;\n float colLC = clamp(L,0.090,1.0);\n vec2 p = st * n;\n float colN = (snoise(p)*.5+.5);\n float colNC = smoothstep(N,X,colN);\n return vec2 ( colNC, colLC );\n}\nvoid main() {\n vec3 DEBUG = vec3(0.);\n vec2 st = vTexCoord;\n vec3 param = vec3(0.);\n vec3 C;\n vec3 aCheck = vec3(0.0);\n vec2 v1 = v1U;\n vec2 v2 = v2U;\n float th = thU;\n float r = r1U;\n float r2 = r2U;\n float a = 1.352;\n if(isBase >= 1.){\n a = 1.;\n }\n float th_o = th;\n r = a*r;\n th += (a-1.)*r;\n r2 = (th_o*r2)/(th);\n v1.y += (a-1.)*r;\n v2.y += (a-1.)*r;\n v1.y = -2.*((horizon+0.1)*v1.y-(horizon+0.1)-v1.y+0.5);\n v2.y = -2.*((horizon+0.1)*v2.y-(horizon+0.1)-v2.y+0.5);\n C = col3d( vec3( st.x, st.y, cloudSeed), st, v1, v2, th, r, r2 );\n DEBUG = vec3(C);\n aCheck = C;\n float mask1 = C.x;\n float mask2 = C.y;\n float mask3 = C.z;\n vec2 st_1 = st;\n vec2 st_2 = st;\n vec2 st_3 = st;\n vec2 st_4 = st;\n vec2 st_5 = st;\n vec2 st_6 = st;\n vec3 color = vec3(0.0);\n st_1 = rotateUV(st,LR1.x );\n st_1.x += cos(st_1.y*dA1.x)/df1.x;\n st_1.y += sin(st_1.x*dA1.x)/df1.x;\n float pos_1 = st_1.x * LF1.x;\n float y = 0.;\n float x = pos_1;\n y = sin( (x+Ld.z) *Ld.y);\n y += sin( (x+Ld.z) *Ld.y*2.1 + Ld.w)*4.5;\n y += sin( (x+Ld.z) *Ld.y*1.72 + Ld.w*1.121)*4.0;\n y += sin( (x+Ld.z) *Ld.y*2.221 + Ld.w*0.437)*5.0;\n y += sin( (x+Ld.z) *Ld.y*3.1122+ Ld.w*4.269)*2.5;\n y *= Ld.x*0.06;\n pos_1 = pos_1+y;\n float colL_1 = wb1.x*bb1.x*( (cos(pos_1*2.*3.14)+1.)/2. )-bb1.x+1.;\n float colLC_1 = clamp(colL_1,0.090,1.0);\n vec2 posN_1 = st * Nf1.x;\n float colN_1 = (snoise(posN_1)*.5+.5);\n float colNC_1 = smoothstep(Nn1.x,Nx1.x,colN_1);\n st_2 = rotateUV(st_2,LR1.y);\n st_2.x += cos(st_2.y*dA1.y)/df1.y;\n st_2.y += sin(st_2.x*dA1.y)/df1.y;\n float pos_2 = st_2.x * LF1.y;\n float colL_2 = wb1.y*bb1.y*( (cos(pos_2*2.*3.14)+1.)/2. )-bb1.y+1.;\n float colLC_2 = clamp(colL_2,0.090,1.0);\n vec2 posN_2 = st_2 * Nf1.y;\n float colN_2 = (snoise(posN_2)*.5+.5);\n float colNC_2 = smoothstep(Nn1.y,Nx1.y,colN_2);\n vec2 temp3 = OP(st_3,LR1.z,dA1.z,df1.z,LF1.z,wb1.z,bb1.z,Nf1.z,Nn1.z,Nx1.z); \n float colLC_3 = temp3.x;\n float colNC_3 = temp3.y;\n vec2 temp4 = OP(st_4,LR1.w,dA1.w,df1.w,LF1.w,wb1.w,bb1.w,Nf1.w,Nn1.w,Nx1.w); \n float colLC_4 = temp4.x;\n float colNC_4 = temp4.y;\n vec2 temp5 = OP(st_5,LR2.x,dA2.x,df2.x,LF2.x,wb2.x,bb2.x,Nf2.x,Nn2.x,Nx2.x); \n float colLC_5 = temp5.x;\n float colNC_5 = temp5.y;\n vec2 posN_6 = st_6 * Nf2.y;\n float colN_6 = (snoise(posN_6)*.5+.5);\n float colNC_6 = smoothstep(Nn2.y,Nx2.y,colN_6);\n if(isBase >= 1.){\n colNC_1 = -colNC_1+1.0;\n colNC_1 = colNC_1*(C.x);\n colNC_1 = -colNC_1+1.0;\n }\n colNC_2 = -colNC_2+1.0;\n colNC_2 = colNC_2*( (-C.x+1.0)- (-C.z+1.0));\n colNC_2 = -colNC_2+1.0;\n colNC_3 = -colNC_3+1.0;\n colNC_3 = colNC_3*(-C.x+1.0);\n colNC_3 = -colNC_3+1.0;\n colNC_4 = -colNC_4+1.0;\n colNC_4 = colNC_4*(-C.y+1.0);\n colNC_4 = -colNC_4+1.0;\n colNC_5 = -colNC_5+1.0;\n colNC_5 = colNC_5*(-C.y+1.0);\n colNC_5 = -colNC_5+1.0;\n float colB_1 = BlendScreen( colNC_1,colLC_1 );\n float colB_2 = BlendScreen( colNC_2,colLC_2 );\n float colB_3 = BlendScreen( colNC_3,colLC_3 );\n float colB_4 = BlendScreen( colNC_4,colLC_4 );\n float colB_5 = BlendScreen( colNC_5,colLC_5 );\n float colF_1 = SmoothStep( cBlend,1.,colB_1 );\n float colF_2 = SmoothStep( cBlend,1.,colB_2 );\n float colF_3 = SmoothStep( cBlend,1.,colB_3 );\n float colF_4 = SmoothStep( cBlend,1.,colB_4 );\n float colF_5 = SmoothStep( cBlend,1.,colB_5 );\n float colF = min( colF_1,colF_2 );\n colF = min( colF,colF_3 );\n colF = min( colF,colF_4 );\n colF = min( colF,colF_5 );\n color = vec3( colF );\n if(isBase == 0.){\n color = vec3(colF_1);\n }\n if (st.y >= clear){\n C = vec3(1.0);\n C.x = 1.0;\n C.y = 1.0;\n C.z = 1.0;\n color = vec3(1.0);\n }\n\n if (st.y <= horizon){\n color = vec3(ground);\n }\n if (night <= 1.0 ){\n if (st.y > horizon){\n color = mix(1.0-color,vec3(1.0-night),color);\n }\n }\n color*0.8;\n if(isBase >= 1.){\n if(aCheck == vec3(1.0)){\n fragColor = vec4(color,0.0);\n }else{\n fragColor = vec4(color,1.0);\n }\n }else if(isBase == 0.){\n fragColor = vec4(color,1.0);\n }\n}\n";class u{constructor(n=[{name:"temp",chance:1,amount:1,min:0,max:1}]){this.count=400,this.arr=n,this.select={}}setByAmount(){let n=0;for(let t=0;t<this.arr.length;t++)n+=this.arr[t].amount;this.count=n;for(let n=0;n<this.arr.length;n++)this.arr[n].chance=this.arr[n].amount/this.count}setByChance(n=this.count){let t=0;for(let n=0;n<this.arr.length;n++)t+=this.arr[n].chance;if(t>=.9999)for(let n=0;n<this.arr.length;n++)this.arr[n].amount=this.arr[n].chance*this.count;else console.log("Improper Sum: "+t)}sum(){let n=[],t=[];t.push(0);for(let e=0;e<this.arr.length;e++)n.push(this.arr[e].chance),t.push(this.arr[e].chance);t.pop(),n=c(n),t=c(t);for(let e=0;e<this.arr.length;e++)this.arr[e].min=t[e],this.arr[e].max=n[e]}pickCategory(){let n,t=o();for(let e=0;e<this.arr.length;e++)this.arr[e].min<=t&&t<this.arr[e].max&&(n=this.arr[e].name);return this.select={name:n,value:t},{name:n,value:t}}setCategory(n){let t,e=0;for(let e=0;e<this.arr.length;e++)n==this.arr[e].name&&(t=this.arr[e].name);return this.select={name:t,value:e},{name:t,value:e}}setCategoryValue(n){let t,e;for(let o=0;o<this.arr.length;o++)this.arr[o].min<=n&&n<this.arr[o].max&&(e=this.arr[o].name,t=n);return this.select={name:e,value:t},{name:e,value:t}}}let v=[{name:"Calm",chance:0,amount:4,min:0,max:0},{name:"Cloudy",chance:0,amount:0,min:0,max:0},{name:"Storm",chance:0,amount:0,min:0,max:0}],x=[{name:"Midnght Blue",chance:0,amount:0,min:0,max:0},{name:"Corb Blue",chance:0,amount:0,min:0,max:0},{name:"Pink",chance:0,amount:0,min:0,max:0},{name:"Orange",chance:0,amount:0,min:0,max:0},{name:"Burgundy",chance:0,amount:0,min:0,max:0},{name:"Taupe",chance:0,amount:28,min:0,max:0},{name:"Grey Blue",chance:0,amount:8,min:0,max:0},{name:"Baby Blue",chance:0,amount:11,min:0,max:0},{name:"Pool Green",chance:0,amount:0,min:0,max:0},{name:"Mint",chance:0,amount:11,min:0,max:0},{name:"Melon",chance:0,amount:0,min:0,max:0},{name:"White",chance:0,amount:3,min:0,max:0},{name:"Grey",chance:0,amount:38,min:0,max:0},{name:"Black",chance:0,amount:0,min:0,max:0}],d=new u(v),p=new u(x);d.setByAmount(),d.sum(),p.setByAmount(),p.sum();let _,y,g=d.pickCategory().name,C=p.pickCategory().name;console.log(g),console.log(C),m.horizon=0,g==v[0].name?(m.mult1=o(2,8),m.mult2=o(5,8.5),m.ground=1-o(0,.1),m.lineWeightMult=o(.5,1),m.clear=2,m.night=2):g==v[1].name?(m.mult1=o(10,14),m.mult2=o(9,11),m.ground=1-o(.2,.4),m.lineWeightMult=o(.8,1.2),m.clear=2,m.night=2):g==v[2].name?(m.mult1=o(14,18),m.mult2=o(11,13),m.ground=1-o(.2,.4),m.lineWeightMult=o(1.2,1.5),m.clear=2,m.night=2):g==v[3].name?(m.mult1=o(2,10),m.mult2=o(5,9),m.ground=1-o(0,.1),m.lineWeightMult=o(.5,1),m.clear=0,m.night=2):g==v[4].name&&(m.mult1=o(10,14),m.mult2=o(9,11),m.ground=1-o(.1,.2),m.lineWeightMult=o(.8,1.2),m.clear=2,m.night=o(.9,.987),cams[3].OrthGround=!0,cams[5].OrthGround=!0,cams[6].OrthGround=!0,sunlock=!0),C==x[0].name?(_=[0,28,113],y="000P"):C==x[1].name?(_=[43,125,225],y="001P"):C==x[2].name?(_=[254,188,203],y="002P"):C==x[3].name?(_=[255,92,54],y="003P"):C==x[4].name?(_=[153,24,46],y="004P"):C==x[5].name?(_=[206,200,186],y="005P"):C==x[6].name?(_=[162,178,201],y="006P"):C==x[7].name?(_=[191,227,237],y="007P"):C==x[8].name?(_=[0,105,84],y="008P"):C==x[9].name?(_=[237,253,220],y="009P"):C==x[10].name?(_=[236,190,92],y="010P"):C==x[11].name?(_=[255,255,255],y="011P"):C==x[12].name?(_=[240,240,240],y="012P"):C==x[13].name&&(_=[0,0,0],y="013P");let N=[{isBase:0,v1U:[-.29,.59],v2U:[1.88,.71],thU:.292,r1U:.362,r2U:.234,cloudSeed:m.seed}],w=7,b=1.2*9/16;for(i=0;i<w;i++){let t=o(-.25,.25),e=o(2,3),a=i/w,c=.9,l=c-.12;a=n(i,c,l),s=(a-n(i+1,c,l))/(c-l);let r=b*s,h=.28125-r/2+t-.2,f=.28125+r/2+t-.2;N.push({isBase:1+i,v1U:[h,a],v2U:[f,a],thU:.073*e*s,r1U:.3,r2U:.2,cloudSeed:o(-1e3,1e3),N1:2.5*m.mult1})}let L=N[0];N.reverse(),N.pop(),N.unshift(L);let B=m.lineWeightMult,z=a([0,Math.PI/2]),S=[[0,0,0,0,2.112627025969266,.796],[200,200,0,200,0,0],[z,z+Math.PI/4,z+2*Math.PI/4,z+2*Math.PI/4,3.59,4.131252138359817],[0,0,0,62.25,3.62,0],[20,423.46,502.63,610.87,390.81,0],[3.53*B,1.92*B,3.62*B,3.35*B,2.06*B,0*B],[.07*B,.06*B,.31*B,.04*B,.58*B,0*B],[20.61,41.24,32.59,26.67,3.6,-.2150600911194367],[.57,.57,-.23,.57,-.03,.05881764676913497],[1.812,1.812,.922,1.812,.492,1.0806698094796767]];r.push([S[1].slice(0,4),S[1].slice(4),S[2].slice(0,4),S[2].slice(4),S[3].slice(0,4),S[3].slice(4),S[4].slice(0,4),S[4].slice(4),S[5].slice(0,4),S[5].slice(4),S[6].slice(0,4),S[6].slice(4),S[7].slice(0,4),S[7].slice(4),S[8].slice(0,4),S[8].slice(4),S[9].slice(0,4),S[9].slice(4),S[0][4],S[0].slice(0,4),S[0][5]]),r[0][8][3]*=.5,r[0][10][3]*=1.85;class U{constructor(){this.x=1,this.y=1,this.min=1,this.max=1,this.aspect=1,this.wx=800,this.wy=800,this.wa=1,this.borderPercent=0,this.cam={l:-1,r:1,t:1,b:-1,n:0,f:1e3}}updateAspect(n){this.aspect=n,this.setCamAspect(),this.resize()}setCamAspect(){this.aspect<=1?(this.cam.l=-1*this.aspect,this.cam.r=1*this.aspect,this.cam.t=1,this.cam.b=-1):(this.cam.l=-1,this.cam.r=1,this.cam.t=1/this.aspect*1,this.cam.b=1/this.aspect*-1)}resize(){this.wx=window.innerWidth,this.wy=window.innerHeight,this.wa=this.wx/this.wy,this.wa<this.aspect?(this.min=this.wx,this.aspect,this.x=this.min,this.y=this.min*(1/this.aspect)):this.wa===this.aspect?(this.min=Math.min(this.wx,this.wy),this.aspect<=1?(this.x=this.min,this.y=this.min*(1/this.aspect)):(this.x=this.min*this.aspect,this.y=this.min)):this.aspect<this.wa&&(this.min=this.wy,this.aspect,this.x=this.min*this.aspect,this.y=this.min),this.x=Math.round(this.x),this.y=Math.round(this.y),this.max=Math.max(this.x,this.y)}}let F,k=new U;k.updateAspect(9/16),k.resize();let P=2,A=[],V=[];preload=function(){const n=new Blob([h],{type:"text/plain"}),t=new Blob([f],{type:"text/plain"}),e=URL.createObjectURL(n),o=URL.createObjectURL(t);for(let n=0;n<N.length;n++)A[n]=loadShader(e,o)},setup=function(){F=createCanvas(k.x,k.y,WEBGL),noStroke(),pixelDensity(P);for(let n=0;n<N.length;n++)V[n]=createGraphics(k.x,k.y,WEBGL),V[n].noStroke(),V[n].pixelDensity(P),V[n].shader(A[n]),A[n].setUniform("cloudSeed",m.seed),A[n].setUniform("N1",m.mult1),A[n].setUniform("N2",m.mult2),A[n].setUniform("horizon",m.horizon),A[n].setUniform("ground",m.ground),A[n].setUniform("clear",m.clear),A[n].setUniform("night",m.night),t(A[n],0),e(A[n],n);noLoop()},draw=function(){background(0,0,0),lightFalloff(.003,3e-4,0),ambientLight(_);for(let n=0;n<V.length;n++)V[n].shader(A[n]),V[n].rect(0,0,width,height),texture(V[n]),rect(-width/2,-height/2,width,height)},document.addEventListener("keydown",async function(n){"S"!==n.key&&"s"!==n.key||save(F,tokenData.hash+".png")}); }],
[1,()=>{console.log("Artist 25. Daniel Calderon -- platform 1");let R= Random(); let R2= Random(),gs=1,currentCanvas=null;function scaleAgnosticCanvas(n=[16,9]){let t=window.innerWidth,i=window.innerHeight;currentCanvas=t*(n[1]/n[0])>i?createCanvas(i*(n[0]/n[1]),i):createCanvas(t,t*(n[1]/n[0])),gs=width/height>1?min(width,height)*width/height*.0015:min(width,height)*height/width*.0015}let saveCount=0;function keyPressed(){"p"==key&&(save(`expDrm_${saveCount}.png`),saveCount++)}function pv(n,t,i){return new createVector(n,t,i)}function fn1(n,t){for(let i=0;i<n.length-1;i++)for(let e=0;e<t.length-1;e++)if(fn2(n[i],n[i+1],t[e],t[e+1]))return!0;return!1}function fn2(n,t,i,e){var f,r,h;return 0!==(f=(t.x-n.x)*(e.y-i.y)-(e.x-i.x)*(t.y-n.y))&&(h=((e.y-i.y)*(e.x-n.x)+(i.x-e.x)*(e.y-n.y))/f,r=((n.y-t.y)*(e.x-n.x)+(t.x-n.x)*(e.y-n.y))/f,0<h&&h<1&&0<=r&&r<=1)}function fn3(n,t,i,e){if(n.x===t.x&&n.y===t.y||i.x===e.x&&i.y===e.y)return!1;if(a=(e.y-i.y)*(t.x-n.x)-(e.x-i.x)*(t.y-n.y),0===a)return!1;let f=((e.x-i.x)*(n.y-i.y)-(e.y-i.y)*(n.x-i.x))/a,r=((t.x-n.x)*(n.y-i.y)-(t.y-n.y)*(n.x-i.x))/a;return!(f<0||f>1||r<0||r>1)&&pv(n.x+f*(t.x-n.x),n.y+f*(t.y-n.y))}function fn4(n,{kn:t=[]}={}){let i=[],e=[],f=0;for(let e=0;e<n.length-1;e++){Object.assign(n[e],{ix0:0,ix1:n[0].ix1,ix2:n[0].ix2}),i.push(n[e]);let f=[];for(let i=0;i<t.length-1;i++)f.push(fn3(n[e],n[e+1],t[i],t[i+1]));f=f.filter((n=>!1!==n)),f.sort(((t,i)=>fn10(n[e],t)-fn10(n[e],i))),f.forEach((t=>{Object.assign(t,{ix0:1,ix1:n[0].ix1,ix2:n[0].ix2}),i.push(t)}))}if(Object.assign(n[n.length-1],{ix0:0,ix1:n[0].ix1,ix2:n[0].ix2}),i.push(n[n.length-1]),intersectsTrue=void 0!==i.find((n=>1===n.ix0)),!1===intersectsTrue)return{ix3:[],ix4:[]};f=0,nextIndex=void 0;for(let n=0;n<i.length;n++){nextIndex=void 0;n:for(let n=f;n<i.length;n++)if(1===i[n].ix0&&n!==f){nextIndex=n;break n}if(void 0===nextIndex){e.push(i.slice(f));break}e.push(i.slice(f,nextIndex+1)),f=nextIndex}let r={ix3:[],ix4:[]};for(let n=0;n<e.length;n++){let i={ix5:0,ix6:0};for(let f=0;f<=1;f+=.1){!0===fn14(fn26(e[n],f),t)?i.ix5++:i.ix6++}i.ix5>i.ix6?r.ix3.push(fn34(e[n])[0]):r.ix4.push(fn34(e[n])[0])}return r}function fn5(n,t,i){return pv((n.x+t.x+i.x)/3,(n.y+t.y+i.y)/3,(n.z+t.z+i.z)/3)}function fn6(n,{ix7:t=1,ix8:i=-1,ix9:e=1}={}){for(let f=0;f<e;f++)for(let e=t;e<n.length+i;e++){let t=fn5(n[(e-1+n.length+n.length)%n.length],n[(e+n.length)%n.length],n[(e+1+n.length)%n.length]);n[(e+n.length)%n.length].set(t.x,t.y,t.z)}}function fn7(n,t,i){return pv(n.x-Math.sin(radians(t))*i,n.y+Math.cos(radians(t))*i)}function fn8(n,t){let i=degrees(Math.atan2(t.y-n.y,t.x-n.x))-90,e=p5.Vector.fromAngle(radians(i));return degrees(e.heading())}function fn9(n,t){let i=degrees(Math.atan2(t.y-n.y,t.x-n.x)),e=p5.Vector.fromAngle(radians(i));return degrees(e.heading())}function fn10(n,t){return Math.hypot(t.x-n.x,t.y-n.y)}function fn11(n,t,i,e){return fn10(i,e)/fn10(n,t)}function fn12(n,{iy0:t=fn23(),iy1:i=0}={}){let e,f=fn10(n.p1,n.p4)/fn10(n.p1,n.p2),r=fn10(t.p1,t.p4)/fn10(t.p1,t.p2);return f<=1&&r>=1?e=1:f>=1&&r<=1?e=2:(f>=1&&r>=1||f<=1&&r<=1)&&(f<=r?e=1:f>=r&&(e=2)),1===e?fn11(n.p1,n.p2,pv(t.p1.x+i,t.p1.y),pv(t.p2.x-i,t.p2.y)):2===e&&fn11(n.p1,n.p4,pv(t.p1.x,t.p1.y+i),pv(t.p4.x,t.p4.y-i))}function fn13(n=[pv(0,0),pv(width,0),pv(width,height),pv(0,height)],{iy1:t=0}={}){let i=99999999,e=999999999,f=-99999999,r=-99999999;for(let t=0;t<n.length;t++)i=Math.min(i,n[t].x),e=Math.min(e,n[t].y),f=Math.max(f,n[t].x),r=Math.max(r,n[t].y);return{p1:pv(i+t,e+t),p2:pv(f-t,e+t),p3:pv(f-t,r-t),p4:pv(i+t,r-t),width:f-t-(i+t),height:r-t-(e+t),mp:pv((i+f)/2,(e+r)/2)}}function fn14(n,t){let i=0;for(let e=0;e<t.length;e++)fn2(pv(-1e5,1e5),n,t[e],t[(e+1)%t.length])&&i++;return i%2==1&&i>0}function fn15(n,t,i){n.sub(t.x,t.y),n.rotate(i),n.add(t.x,t.y)}function fn16(n,t,i){n.forEach((n=>{fn15(n,t,radians(i))}))}function fn17(n){beginShape(),n.forEach((n=>{vertex(n.x,n.y)})),endShape()}function fn18(n,t,i=1,e=!1){n.forEach((n=>{"object"==typeof n&&Array.isArray(n)&&null!==n&&e?fn18(n,t,i,e):"object"!=typeof n||Array.isArray(n)||(n.sub(t.x,t.y),n.mult(i),n.add(t.x,t.y))}))}function fn19(n,t,i=1,e="y",f=!1){n.forEach((n=>{"object"==typeof n&&Array.isArray(n)&&null!==n&&f?fn19(n,t,i,e):"object"!=typeof n||Array.isArray(n)||(n.sub(t.x,t.y),"y"==e?n.set(n.x,n.y*i):"x"==e&&n.set(n.x*i,n.y),n.add(t.x,t.y))}))}function fn20(n,t,i,e=!1){n.forEach(((n,f)=>{"object"==typeof n&&Array.isArray(n)&&null!==n&&e?fn20(n,t,i,e):"object"!=typeof n||Array.isArray(n)||(n.sub(t.x,t.y),n.add(i.x,i.y))}))}function fn21(n){let t=[];return n.forEach((n=>{t.push(...fn29(n))})),fn13(t)}function fn22(n,t,{ix7:i=0,ix8:e=-2}={}){for(let f=n.length+e;f>=i;f--){let i=dist(n[(f+n.length)%n.length].x,n[(f+n.length)%n.length].y,n[(f+1+n.length)%n.length].x,n[(f+1+n.length)%n.length].y);if(i>t){let e=[],r=Math.floor(i/t);for(let t=1;t<r;t++){let i=lerp(n[(f+n.length)%n.length].x,n[(f+1+n.length)%n.length].x,map(t,0,r,0,1)),h=lerp(n[(f+n.length)%n.length].y,n[(f+1+n.length)%n.length].y,map(t,0,r,0,1));e.push(pv(i,h))}n.splice(f+1,0,...e)}}-1==e&&n.push(pv(n[0].x,n[0].y,n[0].z))}function fn23({iy1:n=0}={}){return fn13([pv(0+n,0+n),pv(width-n,0+n),pv(width-n,height-n),pv(0+n,height-n)])}function fn24(n=pv(0,0),t=100,i=100,e=20){let f=[];for(let r=0;r<360;r+=e)f.push(pv(n.x+Math.sin(radians(r))*t,n.y+Math.cos(radians(r))*i));return f.push(pv(f[0].x,f[0].y)),f}function fn25(n,t){return pv((n.x+t.x)/2,(n.y+t.y)/2)}function fn26(n,t){if(1===t){return pv(n[n.length-1].x,n[n.length-1].y)}if(0===t){return pv(n[0].x,n[0].y)}let i=fn27(n)*t,e=0;for(let t=1;t<n.length;t++){if(e+=fn10(n[t-1],n[t]),e===i){return pv(n[t].x,n[t].y)}if(e>i){e-=fn10(n[t-1],n[t]);let f=(i-e)/fn10(n[t-1],n[t]);return pv(lerp(n[t-1].x,n[t].x,f),lerp(n[t-1].y,n[t].y,f))}}return!1}function fn27(n){let t=0;for(let i=0;i<n.length-1;i++)t+=fn10(n[i],n[i+1]);return t}function fn28(n,{iy2:t=[100,100],iy1:i=0}={}){let e=[];return e.push(pv(n.x-t[0]/2+i,n.y-t[1]/2+i)),e.push(pv(n.x+t[0]/2-i,n.y-t[1]/2+i)),e.push(pv(n.x+t[0]/2-i,n.y+t[1]/2-i)),e.push(pv(n.x-t[0]/2+i,n.y+t[1]/2-i)),e.push(pv(e[0].x,e[0].y)),e}function fn29(n,{iy1:t=0}={}){return[pv(n.p1.x+t/2,n.p1.y+t/2),pv(n.p2.x-t/2,n.p2.y+t/2),pv(n.p3.x-t/2,n.p3.y-t/2),pv(n.p4.x+t/2,n.p4.y-t/2)]}function fn30(n,t,{iy3:i=0}={}){let e=fn31(n),f=fn12(e,{iy0:t});5===i?(fn18(n,e.mp,f,!0),e=fn31(n),fn20(n,e.mp,pv(R.random_int(t.p1.x+e.width/2,t.p2.x-e.width/2),R.random_int(t.p1.y+e.height/2,t.p4.y-e.height/2)),!0)):(fn18(n,e.mp,f,!0),fn20(n,e.mp,t.mp,!0))}function fn31(n){let t=[];return n.forEach((n=>{t.push(fn13(n))})),t=fn21(t),t}function fn32(n,{iy4:t=10,iy5:i=45,iy6:e=[0,0,0],ix2:f=1}={}){let r=fn13(n),h=fn10(r.mp,r.p2),p=[pv(r.mp.x-h,r.mp.y-h),pv(r.mp.x+h,r.mp.y-h),pv(r.mp.x+h,r.mp.y+h),pv(r.mp.x-h,r.mp.y+h)],a=[];for(let n=p[0].y;n<=p[2].y;n+=t)a.push([pv(p[0].x,n),pv(p[1].x,n)]);let o=[];return a.forEach((t=>{rAmt=i,"random"===i&&(rAmt=R.random_num(0,360)),fn16(t,r.mp,rAmt);let e=fn4(t,{kn:n});e.ix3.length>0&&o.push(...e.ix3)})),o.forEach((n=>{n.forEach((n=>{Object.assign(n,{ix1:e,ix2:f})}))})),o}function fn33({iy6:n=[0,0,0],ix2:t=1}={}){let i,e,f=R2.random_int(0,24);i=f<10?[[180,R2.random_num(-20,20),13],[90,R2.random_num(40,-80),R2.random_num(-20,140)],[-90,R2.random_num(90,0),R2.random_num(-20,120)],[90,R2.random_num(-90,-20),R2.random_num(-90,0),91],[-90,R2.random_num(120,20),R2.random_num(-120,0),91]]:f<20?[[180,R2.random_num(-20,20),-13],[-90,R2.random_num(80,-40),R2.random_num(20,-140)],[90,R2.random_num(-90,0),R2.random_num(20,-120)],[-90,R2.random_num(90,-20),R2.random_num(0,90),-91],[90,R2.random_num(-120,-20),R2.random_num(0,120),-91]]:[[180,R2.random_num(-20,20),-13],[-90,R2.random_num(80,-40),R2.random_num(20,-140)],[90,R2.random_num(-90,40),R2.random_num(-20,140)],[-90,R2.random_num(90,20),R2.random_num(0,120),-91],[90,R2.random_num(-90,-20),R2.random_num(0,-120),91]],e=[[20,20,12],[8,30,30],[8,30,30],[9,35,45,10],[9,35,45,10]];let r=[pv(0,0)];r.push(fn7(r[r.length-1],i[0][0],e[0][0])),r.push(fn7(r[r.length-1],fn8(r[r.length-2],r[r.length-1])+i[0][1],e[0][1])),r.push(fn7(r[r.length-1],fn8(r[r.length-2],r[r.length-1])+i[0][2],e[0][2]));let h=fn24(pv(0,-8),8,8,10,!0);fn16(h,pv(0,0),fn8(r[r.length-2],r[r.length-1])+180),fn20(h,pv(0,0),r[r.length-1]);let p=[r[2]];p.push(fn7(p[p.length-1],i[1][0],e[1][0])),p.push(fn7(p[p.length-1],fn8(p[p.length-2],p[p.length-1])+i[1][1],e[1][1])),p.push(fn7(p[p.length-1],fn8(p[p.length-2],p[p.length-1])+i[1][2],e[1][2]));let a=[r[2]];a.push(fn7(a[a.length-1],i[2][0],e[2][0])),a.push(fn7(a[a.length-1],fn8(a[a.length-2],a[a.length-1])+i[2][1],e[2][1])),a.push(fn7(a[a.length-1],fn8(a[a.length-2],a[a.length-1])+i[2][2],e[2][2]));let o=[r[0]];o.push(fn7(o[o.length-1],i[3][0],e[3][0])),o.push(fn7(o[o.length-1],fn8(o[o.length-2],o[o.length-1])+i[3][1],e[3][1])),o.push(fn7(o[o.length-1],fn8(o[o.length-2],o[o.length-1])+i[3][2],e[3][2])),o.push(fn7(o[o.length-1],fn8(o[o.length-2],o[o.length-1])+i[3][3],e[3][3]));let l=[r[0]];l.push(fn7(l[l.length-1],i[4][0],e[4][0])),l.push(fn7(l[l.length-1],fn8(l[l.length-2],l[l.length-1])+i[4][1],e[4][1])),l.push(fn7(l[l.length-1],fn8(l[l.length-2],l[l.length-1])+i[4][2],e[4][2])),l.push(fn7(l[l.length-1],fn8(l[l.length-2],l[l.length-1])+i[4][3],e[4][3]));let v=fn34([r,h,p,a,o,l])[0];return v.forEach((i=>{Object.assign(i[0],{ix2:t,ix1:n})})),v}class Cl1{constructor({iy7:n=1,iy8:t=1,iy9:i=100}={}){this.index=0,this.iv12=[];for(let n=0;n<i;n+=1)this.iv12.push(pv(n,R.random_dec()));for(let n=0;n<t;n++)for(let n=0;n<this.iv12.length;n++)this.iv12[n].set(n,(this.iv12[(n-1+this.iv12.length)%this.iv12.length].y+this.iv12[n].y+this.iv12[(n+1)%this.iv12.length].y)/3);let e=this.iv12.map((n=>n.y)),f=Math.min(...e),r=Math.max(...e),h=fn13(this.iv12);fn20(this.iv12,pv(0,f),pv(0,0));let p=fn11(pv(0,f),pv(0,r),pv(0,0),pv(0,n));fn19(this.iv12,pv(0,0),p,"y"),h=fn13(this.iv12),fn20(this.iv12,h.p4,pv(0,n))}getNext(){return this.index++,this.index>this.iv12.length-1&&(this.index=0),this.iv12[this.index].y}}function fn34(n,t){if(void 0===t&&(t=[]),void 0===n||0===n.length)return t;if(Array.isArray(n)){let i=[];n.forEach((n=>{void 0===n||(Array.isArray(n)?i=fn34(n,i):(i.push(pv(n.x,n.y,n.z)),i[i.length-1].ix1=n.ix1,i[i.length-1].ix2=n.ix2))})),t.push(i)}else t.push(pv(n.x,n.y,n.z)),t[t.length-1].ix1=n.ix1,t[t.length-1].ix2=n.ix2;return t}let kn,iv1,iv3,n2,iv0=[],ix3=[],ix4=[],iv2=1,frame=0,iv5=[],iv6=0,iv7=60,iv8=0,iv9=R.random_int(0,359),iv10=20,iv11={iz0:[0,0,0],iz1:[iv9,100,100],iz2:[iv9,100,100],iz3:[iv9,100,100],iz4:[iv9,100,100]},headless=/\bHeadlessChrome/.test(navigator.userAgent);function fn35(){let n=fn32(fn28(iv3.mp,{iy2:[R2.random_num(iv3.width/4,iv3.width/3),R2.random_num(iv3.height/3,iv3.height/3)],closed:!0}),{iy4:4*gs,iy5:R2.random_int(0,360),iy6:R2.random_dec()>.99?iv11.iz3:[(iv9+R2.random_int(-iv10,iv10)+360)%360,100,100],ix2:gs});iv0.unshift(...n)}function fn36(){let n=fn41(pv(R2.random_num(0+10*gs,width-10*gs),R2.random_num(0+10*gs,height-10*gs)),gs);R2.random_dec()>.99&&fn30(n,fn23({iy1:10*gs})),iv0.unshift(...n)}function fn37(){let n=fn42(pv(R2.random_num(0+100*gs,width-100*gs),R2.random_num(0+100*gs,height-100*gs)),gs);R2.random_dec()>.89&&fn30(n,fn23({iy1:50*gs}));let t=[],i=[];iv0.forEach((e=>{let f=fn4(e,{kn:n[3]});t.push(...f.ix4),i.push(...f.ix3)})),iv0.forEach((e=>{fn1(e,n[3])||(fn14(e[0],n[3])?i.push(e):t.push(e))})),i.forEach((t=>{t[0].ix1=n[3][0].ix1})),iv0=[...t,...i],iv0.unshift(...n)}function fn38(n=4){let t=fn33({iy6:R2.random_dec()>.99?iv11.iz4:[R2.random_dec()>.95?(iv9+180)%360:(iv9+R2.random_int(-iv10,iv10)+360)%360,R2.random_dec()>.1?R2.random_int(50,100):0,100],ix2:gs*n});fn30(t,fn23({iy1:gs*R2.random_int(20,100)}),{style:"uniform",iy3:5}),iv0.unshift(...t)}function fn39(n){n.iz4[0]=180*sin(10*radians(frame))+180,n.iz3[0]=180*sin(5*radians(frame))+180,n.iz1[0]=180*sin(1*radians(frame))+180,n.iz2[0]=180*sin(3*radians(frame))+180}function fn40(n=fn23()){let t=R.random_int(0,3),i=[t,(t+R.random_int(1,3))%4];i.sort();let e=[];return i[1]-i[0]==1?e.push(i[1]):i[1]-i[0]==2?(e.push(i[1]),e.push(i[1]-1)):i[1]-i[0]==3&&(e.push(i[1]),e.push(i[1]-1),e.push(i[1]-2)),kn=i.map(((t,i)=>0===t?pv(R.random_num(n.p1.x,n.p2.x),n.p1.y):1===t?pv(n.p2.x,R.random_num(n.p2.y,n.p3.y)):2===t?pv(R.random_num(n.p1.x,n.p2.x),n.p3.y):3===t?pv(n.p1.x,R.random_num(n.p2.y,n.p3.y)):void 0)),e=e.map((t=>0===t?pv(n.p1.x,n.p1.y):1===t?pv(n.p2.x,n.p2.y):2===t?pv(n.p3.x,n.p3.y):3===t?pv(n.p4.x,n.p4.y):void 0)),kn.push(...e),fn18(kn,fn25(kn[0],kn[1]),1.2),{kn:kn,ap:fn25(kn[0],kn[1]),sd:fn9(kn[0],kn[1]),sa:fn8(kn[0],kn[1])}}function fn41(n=pv(0,0),t=1){let i=[],e=R2.random_dec()>.99?iv11.iz1:[(iv9+R2.random_int(-iv10,iv10)+360)%360,R2.random_int(0,100),R2.random_int(0,100)],f=[pv(-5,4),pv(-8,-30),pv(0,-35),pv(8,-30),pv(5,4)];fn19(f,pv(0,0),R2.random_num(.5,2));let r=R2.random_choice([20,30,45]),h=R2.random_dec>.5?0:R2.random_int(0,180);for(let n=0;n<360;n+=r){let t=fn34(f)[0];fn16(t,pv(0,0),360-n+180),fn20(t,pv(0,0),pv(15*sin(radians(n+0)),15*cos(radians(n+0)))),t=fn4(t,{kn:fn24(pv(0,0),15,15,10,!0)}).ix4[0],fn22(t,3),fn6(t,{ix9:3}),i.push(...fn32(t,{iy4:3,iy5:360-n+h,iy6:e,ix2:gs}))}return fn18(i,pv(0,0),t,!0),fn20(i,pv(0,0),n,!0),[...i]}function fn42(n=pv(0,0),t=10){let i=R2.random_dec()>.95?iv11.iz2:[R2.random_dec()>.5?(iv9+180+R2.random_int(-iv10,iv10))%360:(iv9+R2.random_int(-iv10,iv10)+360)%360,50+R2.random_int(0,50),R2.random_int(0,100)],e=[],f=3.14,r=R2.random_num(-2,2),h=[pv(-5,0),pv(0,r),pv(5,0)];fn22(h,1),fn6(h,{ix9:35});let p=fn34(h)[0];fn20(p,pv(0,0),pv(0,-6.28));let a=fn34(h)[0],o=R2.random_int(1,70);fn20(a,pv(0,0),pv(-sin(radians(o))*f*1.68,cos(radians(o))*f*1.68)),e.push([...p,...fn34(h)[0].reverse().flat()]),e.push([...fn34(h)[0],...fn34(a)[0].reverse()]);let l=[];for(let n=0;n<1;n+=.07){let t=fn34(h)[0].reverse();fn20(t,t[t.length-1],fn26([h[0],a[0]],n)),l.push(t)}for(let n=0;n<1;n+=.14)l.push([fn26(a,n),fn26(h,n)]);e.push([fn34(h[h.length-1])[0],...fn34(a)[0].reverse()]);let v=fn34(e[e.length-1])[0];fn20(v,pv(0,0),pv(0,.5)),e[e.length-1].push(...v.reverse()),e.push([...fn34(p)[0],...fn34(v)[0].reverse(),a[0],h[0]]),e.push(fn43(e[0],{dd:.3})),e.forEach((n=>{fn44(n)}));let s=[...e,...l];R2.random_dec()>.5&&fn19(s,pv(0,0),-1,"x",!0);let u=R2.random_int(-15,15);return s.forEach((n=>{fn16(n,pv(0,0),u),n.forEach((n=>{n.ix1=i,n.ix2=2*gs}))})),fn18(s,pv(0,0),10,!0),fn18(s,pv(0,0),t,!0),fn20(s,pv(0,0),n,!0),s}function fn43(n,{dd:t=2}){let i=[];for(let e=0;e<n.length;e++){let f=fn9(n[e%n.length],n[(e+1)%n.length]),r=[fn7(n[e%n.length],f,t),fn7(n[(e+1)%n.length],f,t)];f=fn9(n[(e+1)%n.length],n[(e+2)%n.length]);let h=[fn7(n[(e+1)%n.length],f,t),fn7(n[(e+2)%n.length],f,t)],p=fn3(r[0],r[1],h[0],h[1]);!1!==p&&i.push(p)}return i}function fn44(n){n[0].x==n[n.length-1].x&&n[0].y==n[n.length-1].y||n.push(pv(n[0].x,n[0].y))}setup=function(){scaleAgnosticCanvas([window.innerWidth,window.innerHeight]),background(20),colorMode(HSB),strokeCap(SQUARE),noFill(),iv3=fn23({iy1:gs}),textSize(10*gs);for(let n=0;n<5;n++)iv5.push(new Cl1({iy7:1,iy8:1e3,iy9:1e3}));n2=new Cl1({iy7:1,iy8:1e3,iy9:1e3}),iv7=Math.floor(180*n2.getNext())+30,iv6=iv7,fn35(),fn36(),fn37(),fn38()},draw=function(){background([(iv9+10*iv5[0].getNext()+360)%360,50+50*iv5[1].getNext(),20*iv5[2].getNext(),iv5[3].getNext()]);let n=frameRate();if(n<40?iv2+=.01:n>59&&(iv2-=.004),iv2<1?iv2=1:iv2>6&&(iv2=6),(0===iv6||R2.random_int(0,1080)===frame)&&n>10){let n=R2.random_choice([0,1,2,3]);0===n?R2.random_dec()>.3&&fn35():1===n?fn36():2===n?fn38(R2.random_int(4,5)):3===n&&fn37(),iv7=Math.floor(180*n2.getNext())+30,iv8++,iv10=50*iv5[4].getNext()}kn=fn40(iv3),ix3=[],ix4=[],iv0.forEach((n=>{let t=fn4(n,{kn:kn.kn});ix3.push(...t.ix3),ix4.push(...t.ix4)})),iv0.forEach((n=>{fn1(n,kn.kn)||(fn14(n[0],kn.kn)?ix3.push(n):ix4.push(n))})),iv1=R.random_num(2*iv2*-gs,gs*(2*iv2)),R.random_dec()>.5?fn20(ix3,kn.ap,fn7(kn.ap,kn.sa,iv1),!0):fn20(ix4,kn.ap,fn7(kn.ap,kn.sa,-iv1),!0),iv1=-R.random_num(iv2,2*iv2)*gs,R.random_dec()>.5?fn20(ix3,kn.ap,fn7(kn.ap,kn.sd,iv1),!0):fn20(ix4,kn.ap,fn7(kn.ap,kn.sd,-iv1),!0),iv0=[],iv0=[...ix3,...ix4],frame%2==0&&(iv0=iv0.filter((n=>!0===fn14(n[0],fn29(iv3,{iy1:2*gs}))||R.random_dec()>1.15))),iv0.forEach((n=>{stroke(n[0].ix1),strokeWeight(n[0].ix2),fn17(n)})),fn39(iv11),frame++,frame>360&&(frame=0),iv6--,iv6<0&&(iv6=iv7),iv8>1e3&&(n2=new Cl1({iy7:1,iy8:1e3,iy9:1e3}),iv8=0),!1!==headless&&(10!==frame&&20!==frame||(fn35(),fn36(),fn37()),100!==frame&&200!==frame&&300!==frame||fn35(),330===frame&&(iv5[3]=new Cl1({iy7:3,iy8:1e3,iy9:1e3}),fn36(),fn36(),fn37(),fn37(),fn38(8)),frame>355&&noLoop())};console.log("Expanding Dream, by DCA 2024") }],
[0,()=>{console.log("Artist 51. Ira Greenberg -- platform 0");(()=>{"use strict";var s={48:(s,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VerletNode=void 0,t.VerletNode=class{constructor(s,t,i,o){this.isEllipsoid=!1,this.p=s,this.pos=t,this.radius=i,this.col=o,this.radiusOld=this.radius,this.posOld=s.createVector(t.x,t.y,t.z)}nudge(s){this.offset=s,this.pos.add(this.offset)}verlet(){var s=this.p.createVector(this.pos.x,this.pos.y,this.pos.z);this.pos.x+=this.pos.x-this.posOld.x,this.pos.y+=this.pos.y-this.posOld.y,this.pos.z+=this.pos.z-this.posOld.z,this.posOld.set(s)}draw(s=10){this.p.fill(this.col),this.p.noStroke(),this.p.push(),this.p.translate(this.pos.x,this.pos.y,this.pos.z),"number"==typeof this.radius?this.p.sphere(this.radius,s,s):this.p.ellipsoid(this.radius.x,this.radius.y,this.radius.z,s,s),this.p.pop()}setStyle(s,t){this.radius=s,this.col=t}boundsCollide(s){"number"==typeof this.radius?(this.pos.x>s.x/2-this.radius?(this.pos.x=s.x/2-this.radius,this.pos.x-=1):this.pos.x<-s.x/2+this.radius&&(this.pos.x=-s.x/2+this.radius,this.pos.x+=1),this.pos.y>s.y/2-this.radius?(this.pos.y=s.y/2-this.radius,this.pos.y-=1):this.pos.y<-s.y/2+this.radius&&(this.pos.y=-s.y/2+this.radius,this.pos.y+=1),this.pos.z>s.z/2-this.radius?(this.pos.z=s.z/2-this.radius,this.pos.z-=1):this.pos.z<-s.z/2+this.radius&&(this.pos.z=-s.z/2+this.radius,this.pos.z+=1)):(this.pos.x>s.x/2-this.radius.x?(this.pos.x=s.x/2-this.radius.x,this.pos.x-=this.radius.x):this.pos.x<-s.x/2+this.radius.x&&(this.pos.x=-s.x/2+this.radius.x,this.pos.x+=this.radius.x),this.pos.y>s.y/2-this.radius.y?(this.pos.y=s.y/2-this.radius.y,this.pos.y-=this.radius.y):this.pos.y<-s.y/2+this.radius.y&&(this.pos.y=-s.y/2+this.radius.y,this.pos.y+=this.radius.y),this.pos.z>s.z/2-this.radius.z?(this.pos.z=s.z/2-this.radius.z,this.pos.z-=this.radius.z):this.pos.z<-s.z/2+this.radius.z&&(this.pos.z=-s.z/2+this.radius.z,this.pos.z+=this.radius.z))}}},330:(s,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.VerletStick=void 0,t.VerletStick=class{constructor(s,t,i,o=.5,e=0,h=s.color(200,225,200)){this.p=s,this.start=t,this.end=i,this.len=this.start.pos.dist(this.end.pos),this.stickTension=o,this.anchorTerminal=e,this.col=h}constrainLen(){for(let s=0;s<10;s++){let s=this.p.createVector(this.end.pos.x-this.start.pos.x,this.end.pos.y-this.start.pos.y,this.end.pos.z-this.start.pos.z),t=s.mag(),i=0,o=0;switch(this.anchorTerminal){case 0:default:i=.5,o=.5;break;case 1:i=0,o=1;break;case 2:i=1,o=0;break;case 3:i=0,o=0}let e=(t-this.len)/t;this.start.pos.x+=s.x*(i*this.stickTension*e),this.start.pos.y+=s.y*(i*this.stickTension*e),this.start.pos.z+=s.z*(i*this.stickTension*e),this.end.pos.x-=s.x*(o*this.stickTension*e),this.end.pos.y-=s.y*(o*this.stickTension*e),this.end.pos.z-=s.z*(o*this.stickTension*e)}}nudge(s,t){0==s?this.start.nudge(t):this.end.nudge(t)}draw(){this.p.stroke(this.col),this.p.noFill(),this.p.beginShape(),this.p.vertex(this.start.pos.x,this.start.pos.y,this.start.pos.z),this.p.vertex(this.end.pos.x,this.end.pos.y,this.end.pos.z),this.p.endShape()}boundsCollide(s){this.start.boundsCollide(s),this.end.boundsCollide(s)}setColor(s){this.col=s}setOpacity(s){}setVisibility(s){}reinitializeLen(){this.len=this.start.pos.dist(this.end.pos)}}},57:function(s,t,i){var o=this&&this.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptoUomo=void 0;const e=o(i(472)),h=i(330),r=i(48);t.CryptoUomo=class{constructor(s,t,i){this.vBlocks=[],this.vSticks=[],this.data=[-.185,-.129,0,-.185,-.1,0,-.185,-.0714,0,-.169,-.186,0,-.169,-.157,0,-.169,-.129,0,-.169,-.1,0,-.169,-.0714,0,-.169,-.0429,0,-.169,-.0143,0,-.153,-.186,0,-.153,-.157,0,-.153,-.129,0,-.153,-.1,0,-.153,-.0714,0,-.153,-.0429,0,-.153,-.0143,0,-.153,.0143,0,-.137,-.243,0,-.137,-.214,0,-.137,-.186,0,-.137,-.157,0,-.137,-.0143,0,-.137,.0143,0,-.121,-.243,0,-.121,-.214,0,-.121,-.186,0,-.121,-.157,0,-.121,-.0143,0,-.121,.0143,0,-.121,.443,0,-.104,-.243,0,-.104,-.214,0,-.104,-.186,0,-.104,.0143,0,-.104,.0429,0,-.104,.0714,0,-.104,.1,0,-.104,.129,0,-.104,.186,0,-.104,.214,0,-.104,.243,0,-.104,.271,0,-.104,.3,0,-.104,.414,0,-.0884,-.243,0,-.0884,-.214,0,-.0884,-.186,0,-.0884,-.157,0,-.0884,-.129,0,-.0884,-.1,0,-.0884,-.0714,0,-.0884,-.0429,0,-.0884,-.0143,0,-.0884,.0143,0,-.0884,.0429,0,-.0884,.0714,0,-.0884,.1,0,-.0884,.129,0,-.0884,.157,0,-.0884,.186,0,-.0884,.243,0,-.0884,.271,0,-.0884,.3,0,-.0884,.329,0,-.0884,.357,0,-.0884,.386,0,-.0884,.414,0,-.0723,-.271,0,-.0723,-.243,0,-.0723,-.214,0,-.0723,-.186,0,-.0723,-.157,0,-.0723,-.129,0,-.0723,-.1,0,-.0723,-.0714,0,-.0723,-.0429,0,-.0723,-.0143,0,-.0723,.0143,0,-.0723,.0429,0,-.0723,.0714,0,-.0723,.1,0,-.0723,.129,0,-.0723,.157,0,-.0723,.186,0,-.0723,.214,0,-.0723,.243,0,-.0723,.271,0,-.0723,.3,0,-.0723,.329,0,-.0723,.357,0,-.0723,.386,0,-.0723,.414,0,-.0563,-.271,0,-.0563,-.243,0,-.0563,-.214,0,-.0563,-.186,0,-.0563,-.157,0,-.0563,-.129,0,-.0563,-.1,0,-.0563,-.0714,0,-.0563,-.0429,0,-.0563,-.0143,0,-.0563,.0143,0,-.0563,.0429,0,-.0563,.0714,0,-.0563,.1,0,-.0563,.129,0,-.0563,.157,0,-.0563,.186,0,-.0563,.214,0,-.0563,.243,0,-.0563,.271,0,-.0563,.3,0,-.0402,-.414,0,-.0402,-.386,0,-.0402,-.357,0,-.0402,-.271,0,-.0402,-.243,0,-.0402,-.214,0,-.0402,-.186,0,-.0402,-.157,0,-.0402,-.129,0,-.0402,-.1,0,-.0402,-.0714,0,-.0402,-.0429,0,-.0402,-.0143,0,-.0402,.0143,0,-.0402,.0429,0,-.0402,.0714,0,-.0402,.1,0,-.0402,.129,0,-.0402,.157,0,-.0241,-.414,0,-.0241,-.386,0,-.0241,-.357,0,-.0241,-.329,0,-.0241,-.3,0,-.0241,-.271,0,-.0241,-.243,0,-.0241,-.214,0,-.0241,-.186,0,-.0241,-.157,0,-.0241,-.129,0,-.0241,-.1,0,-.0241,-.0714,0,-.0241,-.0429,0,-.0241,-.0143,0,-.0241,.0143,0,-.0241,.0714,0,-.00804,-.414,0,-.00804,-.386,0,-.00804,-.357,0,-.00804,-.329,0,-.00804,-.3,0,-.00804,-.271,0,-.00804,-.243,0,-.00804,-.214,0,-.00804,-.186,0,-.00804,-.157,0,-.00804,-.129,0,-.00804,-.1,0,-.00804,-.0714,0,-.00804,-.0429,0,-.00804,-.0143,0,-.00804,.0143,0,.00804,-.414,0,.00804,-.386,0,.00804,-.357,0,.00804,-.329,0,.00804,-.3,0,.00804,-.271,0,.00804,-.243,0,.00804,-.214,0,.00804,-.186,0,.00804,-.157,0,.00804,-.129,0,.00804,-.1,0,.00804,-.0714,0,.00804,-.0429,0,.00804,-.0143,0,.00804,.0714,0,.0241,-.414,0,.0241,-.386,0,.0241,-.357,0,.0241,-.329,0,.0241,-.3,0,.0241,-.271,0,.0241,-.243,0,.0241,-.214,0,.0241,-.186,0,.0241,-.157,0,.0241,-.129,0,.0241,-.1,0,.0241,-.0714,0,.0241,-.0429,0,.0241,-.0143,0,.0241,.0143,0,.0241,.0429,0,.0241,.0714,0,.0241,.1,0,.0241,.129,0,.0402,-.386,0,.0402,-.357,0,.0402,-.271,0,.0402,-.243,0,.0402,-.214,0,.0402,-.186,0,.0402,-.157,0,.0402,-.129,0,.0402,-.1,0,.0402,-.0714,0,.0402,-.0429,0,.0402,-.0143,0,.0402,.0143,0,.0402,.0429,0,.0402,.0714,0,.0402,.1,0,.0402,.129,0,.0402,.157,0,.0402,.186,0,.0562,-.271,0,.0562,-.243,0,.0562,-.214,0,.0562,-.186,0,.0562,-.157,0,.0562,-.129,0,.0562,-.1,0,.0562,-.0714,0,.0562,-.0429,0,.0562,-.0143,0,.0562,.0143,0,.0562,.0429,0,.0562,.0714,0,.0562,.1,0,.0562,.129,0,.0562,.186,0,.0562,.214,0,.0562,.243,0,.0562,.271,0,.0562,.3,0,.0723,-.271,0,.0723,-.243,0,.0723,-.214,0,.0723,-.186,0,.0723,-.157,0,.0723,-.129,0,.0723,-.1,0,.0723,-.0714,0,.0723,-.0429,0,.0723,-.0143,0,.0723,.0143,0,.0723,.0429,0,.0723,.0714,0,.0723,.1,0,.0723,.157,0,.0723,.186,0,.0723,.214,0,.0723,.243,0,.0723,.271,0,.0723,.3,0,.0723,.329,0,.0723,.357,0,.0723,.386,0,.0723,.414,0,.0884,-.271,0,.0884,-.243,0,.0884,-.214,0,.0884,.0143,0,.0884,.0429,0,.0884,.0714,0,.0884,.1,0,.0884,.129,0,.0884,.157,0,.0884,.186,0,.0884,.214,0,.0884,.243,0,.0884,.271,0,.0884,.3,0,.0884,.329,0,.0884,.357,0,.0884,.386,0,.0884,.414,0,.104,-.243,0,.104,-.186,0,.104,-.0143,0,.104,.0143,0,.104,.0714,0,.104,.1,0,.104,.129,0,.104,.214,0,.104,.243,0,.104,.414,0,.104,.443,0,.121,-.243,0,.121,-.214,0,.121,-.186,0,.121,-.157,0,.121,-.0143,0,.121,.0143,0,.121,.443,0,.137,-.214,0,.137,-.186,0,.137,-.157,0,.137,-.1,0,.137,-.0714,0,.137,-.0429,0,.137,-.0143,0,.137,.443,0,.153,-.186,0,.153,-.157,0,.153,-.129,0,.153,-.1,0,.153,-.0714,0,.153,-.0429,0,.153,-.0143,0,.169,-.186,0,.169,-.157,0,.169,-.129,0,.169,-.1,0,.169,-.0714,0,.185,-.129,0,.185,-.1,0],this.cols=[221,165,138,235,189,162,208,155,129,229,171,146,239,184,160,214,161,139,200,145,119,212,159,134,231,185,162,187,132,116,246,195,176,213,157,131,48,17,10,141,82,63,105,49,33,176,116,89,202,142,121,127,72,65,230,177,143,225,174,145,247,202,182,136,79,60,211,152,130,42,15,10,250,210,189,196,144,115,202,157,137,88,36,23,147,84,68,53,21,14,121,60,55,240,202,181,200,146,119,90,37,21,141,96,78,228,184,161,219,173,151,221,176,154,184,135,115,129,81,69,193,131,115,166,108,90,173,115,98,138,85,69,180,123,108,233,189,160,246,211,190,169,124,106,211,159,129,220,169,140,230,187,159,216,164,137,234,188,161,240,199,174,233,191,167,232,191,167,219,174,153,187,139,119,193,140,120,184,120,102,138,76,61,69,36,24,92,47,34,85,42,29,107,57,40,153,93,75,186,123,107,119,72,61,158,122,109,230,180,151,235,196,178,137,86,71,234,188,160,230,184,154,237,198,170,224,178,153,232,192,168,209,165,141,177,129,104,128,79,63,95,56,42,126,76,61,132,77,61,50,19,12,35,14,8,30,10,6,43,19,12,66,30,20,28,7,4,46,19,10,67,31,21,88,45,36,26,8,5,227,177,153,213,158,129,216,167,147,108,64,52,220,167,138,228,186,158,232,192,166,221,174,144,189,135,110,206,161,140,168,114,93,132,79,62,79,41,30,57,28,23,43,19,15,38,12,9,39,14,11,58,27,19,67,33,24,51,20,13,37,13,9,119,105,100,210,152,128,212,153,123,218,159,136,216,158,132,198,142,122,56,25,16,226,185,159,200,150,125,229,185,157,212,161,133,193,148,124,166,115,94,122,73,56,127,76,59,70,34,23,33,11,8,39,15,10,51,21,15,229,170,153,126,94,83,227,183,171,188,125,106,229,169,149,211,141,121,214,155,134,161,112,92,30,12,8,192,139,109,186,130,102,185,137,111,179,128,104,168,118,96,161,113,94,98,49,35,34,12,9,214,156,136,144,86,74,135,74,60,209,146,131,106,49,35,158,78,66,159,102,83,108,66,51,184,130,105,100,59,43,155,106,81,61,27,19,145,92,74,140,90,71,118,76,60,168,102,89,154,99,81,51,33,27,38,20,19,69,43,35,61,28,21,177,94,76,229,178,157,235,189,168,201,138,115,188,137,111,158,104,81,181,128,101,123,74,55,103,58,44,61,34,23,131,86,70,59,46,41,93,65,56,108,68,54,124,85,74,61,32,26,90,51,39,197,131,106,231,187,169,126,73,55,145,94,72,81,42,30,103,61,45,78,44,32,58,31,22,61,38,29,135,87,70,35,15,10,118,72,58,158,108,90,34,25,21,140,133,126,85,42,34,121,76,62,221,161,132,218,167,146,79,46,34,86,51,37,72,44,34,105,68,51,96,58,41,42,22,17,162,117,97,160,110,89,151,103,83,140,94,79,194,150,133,163,120,106,136,92,79,172,125,107,132,82,64,214,158,132,184,125,102,58,34,26,73,42,29,56,29,21,96,57,41,61,34,23,54,25,16,206,167,146,198,157,140,203,156,136,174,131,116,166,123,112,72,37,31,149,90,71,177,134,118,203,156,132,177,123,99,130,85,66,171,115,92,176,117,91,104,62,46,120,82,68,82,47,37,122,85,73,89,54,41,144,109,95,144,105,92,125,75,58,142,92,73,155,112,93,122,85,71,85,51,41,145,92,78,144,91,77,148,90,71,119,73,59,112,63,47,162,110,85,155,97,75,149,95,77,159,104,91,147,105,98,92,62,51,115,73,55,139,107,97,74,35,26,108,84,76,114,99,96,65,50,44,30,14,12,74,41,32,133,87,77,77,36,29,60,28,19,70,34,24,76,37,24,60,27,16,52,20,11,96,53,35,172,120,111,120,71,52,27,14,9,171,94,83,88,47,40,195,184,181,114,93,83,84,61,54,143,92,81,31,8,8,134,81,67,176,123,110,94,56,38,56,31,25,128,79,62,148,93,78,180,125,111,37,22,20,185,128,123,74,43,30,170,113,89,110,60,46,188,125,101,179,113,92,209,151,134,120,68,54,59,17,13,126,74,53,191,137,123,200,161,147,168,107,87,161,103,83,102,62,47,134,102,90,149,114,99,107,59,43,54,26,18,59,29,23,69,41,32,149,108,97,237,212,203],this.p=s,this.boundary=i;for(let t=0;t<this.data.length;t+=3){const i=R.random_num(-.001,.001);this.vBlocks.push(new r.VerletNode(s,new e.default.Vector(this.data[t],this.data[t+1],this.data[t+2]),new e.default.Vector(.01+i,.09/16+i,.09/16+i),s.color(this.cols[t]+this.p.int(R.random_num(-15,15)),this.cols[t+1]+this.p.int(R.random_num(-15,15)),this.cols[t+2]+this.p.int(R.random_num(-15,15)))))}for(let s=0,t=0;s<this.vBlocks.length;s++)for(let i=s;i<this.vBlocks.length;i++)t++%this.p.int(R.random_num(1,4))==0&&s!==i&&this.vSticks.push(new h.VerletStick(this.p,this.vBlocks[s],this.vBlocks[i],R.random_num(6e-4,.001)));this.nudge()}draw(){for(let s=0;s<this.vBlocks.length;s++)this.vBlocks[s].verlet(),this.vBlocks[s].draw(),this.vBlocks[s].boundsCollide(this.boundary);for(let s=0;s<this.vSticks.length;s++)this.vSticks[s].constrainLen();this.p.frameCount%1==0&&this.vBlocks[this.p.int(R.random_num(this.vBlocks.length))].nudge(new e.default.Vector(R.random_num(-.01,.01),R.random_num(-.01,.01),R.random_num(-.01,.01)))}nudge(){for(let s=0;s<this.vBlocks.length;s++)this.vBlocks[s].nudge(new e.default.Vector(R.random_num(-.02,.02),R.random_num(-.02,.02),R.random_num(-.02,.02)))}}},720:function(s,t,i){var o=this&&this.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,"__esModule",{value:!0});const e=o(i(472)),h=i(57);new e.default((s=>{let t,i,o,r,n,a=s.windowHeight,d=9*a/16,p=s.int(R.random_num(0,45)),u=s.int(R.random_num(0,45)),l=s.int(R.random_num(0,45));s.setup=()=>{s.pixelDensity(1),t="#"+s.hex(l,2)+s.hex(p,2)+s.hex(u,2),s.background(l,p,u),document.body.style.backgroundColor=t,document.title="CryptoIra",a=s.windowHeight,d=9*a/16;let c=s.createCanvas(d,a,s.WEBGL);r=new e.default.Vector(9/16,1,.3),s.setAttributes("antialias",!0),c.style("display","block"),i=s.createVector(0,0,300),s.noStroke(),o=new h.CryptoUomo(s,30,r),n=R.random_num(0,150)},s.draw=()=>{s.background(l,p,u),s.orbitControl();let t=s.createVector(i.x,i.y,i.z);s.ambientLight(100,100,100),s.directionalLight(175,175,175,t),s.shininess(10),s.specularColor(255),s.specularMaterial(100),s.pointLight(255,255,255,-100,-100,200),s.pointLight(R.random_num(30,60),R.random_num(30,60),R.random_num(30,90),600*s.sin(s.frameCount*s.PI/90),500*s.cos(s.frameCount*s.PI/90),380),s.scale(new e.default.Vector(d,a,(a+d)/2)),o.draw()},s.keyTyped=()=>{if("p"===s.key){const t="CryptoIra_"+s.year()+s.month()+s.day()+s.hour()+s.minute()+s.second()+".png";s.save(t)}},s.mousePressed=()=>{o.nudge()}}))},472:s=>{s.exports=p5}},t={};!function i(o){var e=t[o];if(void 0!==e)return e.exports;var h=t[o]={exports:{}};return s[o].call(h.exports,h,h.exports,i),h.exports}(720)})(); }],
[0,()=>{console.log("Artist 3. 0xdeafbeef -- platform 0");/* 0xDEAFBEEF 2024 Click to play animation/music. */ var seed; var ac; var SAMPLE_RATE = 44100; var FRAME_RATE = 24; var M_PI = Math.PI; var exp = Math.exp; var cos = Math.cos; var sin = Math.sin; var pow = Math.pow; var ceil = Math.ceil; var floor = Math.floor; const WW = 300; const HH = 300; var G = {w:WW,h:HH,busy:0,st:0, buf_started:0, fr: 0}; G.st = ms(); const arr = new Uint8ClampedArray(G.w*G.h*4); function crush(num,data,n) { normalize(data,n); for (var i=0;i<n;i++) { var v = floor((data[i]*0.5 + 0.5)*num); v -= num/2; data[i] = v/num; } } function make_bufn(n) { return new Float32Array(n); } function fill(v,d,n) { for (var i=0;i<n;i++)d[i] = v; } function noise(d,n) { for (var i=0;i<n;i++) { d[i] = drand(-1.0,1.0); } } function b_init(b) { b.n = 0; b.t = make_bufn(1024*4); b.y = make_bufn(1024*4); } function b_search(b,t) { let start=0, end=b.n; var i; while (start<=end){ i=floor((start + end)/2); if (t < b.t[i] && (i > 0 ? b.t[i-1] <= t : 1)) { return i; } else if (t < b.t[i]) { end = i - 1; } else { start = i + 1; } } return i; } function b_add(b,t,y) { var i = b_search(b,t); for (var j=b.n;j>i;j--) { b.t[j] = b.t[j-1]; b.y[j] = b.y[j-1]; } b.t[i] = t; b.y[i] = y; b.n++; } function b_render(b, data) { var t = 0; var k=0; while (t < b.t[b.n-1]) { data[k++] = b_interpl(b,t); t+=1.0/SAMPLE_RATE; } } function lincirc(b,t) { while (t >= G.audio_dur) { t -= G.audio_dur; } while (t < 0) { t += G.audio_dur; } var a = 0; var numdiv = 10; for (var i=0;i<numdiv;i++) { a += b_interpl(b,t); t -= 1.0/(24.0 * numdiv); if (t < 0) t += G.audio_dur; } a /= numdiv; return a; } function b_interpl(b,t) { var i = b_search(b,t) - 1; if (i >= 0 && i < b.n-1) { var a = (t - b.t[i])/ (b.t[i+1]-b.t[i]); return (1-a)*b.y[i] + a*b.y[i+1]; }else if (i >= b.n-1){ return b.y[b.n-1]; } return 0; } function isnum(a) { return (typeof a == 'number'); }; function dmod(x,y) { return x - floor(x/y) * y; } sinlu = Math.sin; function softclip(gain,offset,data,n) { for (var i=0;i<n;i++) { var x = data[i] * gain + offset; if (x < -1.0) { data[i] = -(2.0/3.0); } else if (x > 1.0) { data[i] = 2.0/3.0; } else { data[i] = x - (x*x*x)/3.0; } data[i] /= gain; data[i] *= 3.0/2.0; } } function ffdelay(dur, feedback, fl, fh, src,dst,n) { feedback = Math.exp(feedback/20 * Math.log(10)); var d = (dur * SAMPLE_RATE) + 10; var buf = make_bufn(ceil(d)); var p = 0; for (var i=0;i<n;i++) { //apply any iir filters to buf[p] here // if (fl > .001) buf[p] = iir_apply(&filt_hp, buf[p]); // if (fh > .001) buf[p] = iir_apply(&filt_lp, buf[p]); buf[p] = src[i] + feedback*buf[p]; dst[i] += buf[p]; if (++p >= d) p = 0; } } lp = (fc,data,n) => { var pole = 1 - 4*fc/SAMPLE_RATE; var GAIN = 2.0/(1-pole); var x = [0,0]; var y = [0,0]; for (var i=0;i<n;i++) { x[0] = x[1]; x[1] = data[i]/GAIN; y[0] = y[1]; y[1] = (x[0] + x[1]) + (pole * y[0]); data[i] = y[1]; } }; hp = (fc,data,n) => { var pole = 1 - 4*fc/SAMPLE_RATE; var GAIN = 2.0/(1+pole); var x = [0,0]; var y = [0,0]; for (var i=0;i<n;i++) { x[0] = x[1]; x[1] = data[i]/GAIN; y[0] = y[1]; y[1] = (x[0] - x[1]) + (pole * y[0]); data[i] = y[1]; } }; res2a = (fc, bw, data,n) => { var C = -1.0 * exp(-2.0*M_PI*bw/SAMPLE_RATE); var B = 2.0 * exp(-1.0*M_PI*bw/SAMPLE_RATE) * cos(2*M_PI*fc/SAMPLE_RATE); var A = 1.0 - B - C; var x = [0,0,0]; var y = [0,0,0]; for (var i=0;i<n;i++) { x[0] = x[1]; x[1] = x[2]; x[2] = data[i]; y[0] = y[1]; y[1] = y[2]; y[2] = A * x[2] + B * y[1] + C *y[0]; data[i] = y[2]; } } function maxsample(data,n) { var m = 0; for (var i=0;i<n;i++) { var x = Math.abs(data[i]); if (x > m) m = x; } return m; } function normalize(data, n) { var m = maxsample(data,n); if (m < 1e-009) { return; } gain(1.0/m,data,n); } function normalize_stereo(lchan, rchan,n) { var m = maxsample(lchan,n); var m2 = maxsample(rchan,n); if (m < m2) m = m2; if (m < 1e-009) {return; } gain(1.0/m,lchan,n); gain(1.0/m,rchan,n); }; choose = (a) => a[irand(0,a.length)]; invert = (c,n) =>{ for (var i=0;i<n;i++) c[i] = 1.0-c[i]; }; mult = (src,dst,n) => {for (var i=0;i<n;i++) dst[i]*=src[i];}; add = (src,dst,n,o) => {if (!o) o=0; for (var i=0;i<n;i++) dst[i+o]+=src[i];}; copy = (src,dst,n) => { for (var i=0;i<n;i++) dst[i]=src[i];}; gain = (g,data,n) => { for (var i=0;i<n;i++) { data[i] *= g; } }; dbgain = (db,data,n) => { g = Math.exp(db/20 * Math.log(10));for (var i=0;i<n;i++) data[i] *= g;}; drand = (low,high) => (drnd() * ( high - low ) + low); function drnd() { seed ^= seed << 13; seed ^= seed >> 17; seed ^= seed << 5; return (((seed < 0) ? ~seed + 1 : seed) % 100000) / (100000); } function rnd() { seed ^= seed << 13; seed ^= seed >> 17; seed ^= seed << 5; return (((seed < 0) ? ~seed + 1 : seed) % 10000); } irand = (low,high) => (floor(drand(low,high))); function pat(l) { this.k=0; this.l = l; this.p = []; this.n = function() { var v = this.p[this.k]; this.k++; if (this.k >= this.l) this.k=0; return v; } } function toggle_play() { if (!G.anim) { startAnim(); if (!G.buf_started) G.buf_src.start(); G.buf_started = 1; console.log(G.buf_src); ac.resume(); } else { stopAnim(); ac.suspend(); } } function res2a_t(fc, bw, data,n) { var A,B,C; var x = [0,0,0]; var y = [0,0,0]; var _fc = 50; for (var i=0;i<n;i++) { var _bw = bw[i % bw.length]; var _fc = fc[i % fc.length]; // if (_fc2 > 10) _fc = _fc2; C = -1.0 * exp(-2.0*M_PI*_bw/SAMPLE_RATE); B = 2.0 * exp(-1.0*M_PI*_bw/SAMPLE_RATE) * cos(2*M_PI*_fc/SAMPLE_RATE); A = 1.0 - B - C; x[0] = x[1]; x[1] = x[2]; x[2] = data[i]; y[0] = y[1]; y[1] = y[2]; y[2] = A * x[2] + B * y[1] + C *y[0]; data[i] = y[2]; } } var f2; var ac = null; function prepare_play() { if (ac) return; ac = new AudioContext(); var measure_dur = 0; for (var i=0;i<5;i++) measure_dur += drand(0,2.0*2/5); if (measure_dur < 1.5) measure_dur = 1.5; if (measure_dur > 2.5) measure_dur = 2.5; var dur = measure_dur * 30; G.audio_dur = dur; var n = dur*SAMPLE_RATE; var b = ac.createBuffer(2, n, SAMPLE_RATE); var c = []; c[0] = b.getChannelData(0); c[1] = b.getChannelData(1); var efx = [make_bufn(n),make_bufn(n)]; console.log("Loading..\n"); G.v1 = {}; var bs=G.v1,fenv = {},wenv={}; b_init(fenv); b_init(bs); b_init(wenv); noise(c[0],n); noise(c[1],n); var t = 0; var tm = 0; bdurs = []; adurs = []; amps = []; freqs = []; while (t < measure_dur*3) { var bdur = choose([0.125,0.5,0.25]) * measure_dur/2.0; bdurs.push(bdur); // freqs.push(choose([200,1000,2000])); freqs.push(drand(300,3000)); adurs.push(choose([0.1,0.5,0.8])); amps.push(choose([1.0,0.3,0.5])); t += bdur; } t = 0; var k=0; b_add(fenv,0,drand(300,3000)); while (t < dur) { var bdur = bdurs[k]; var adur = adurs[k] * bdur; var amp = amps[k]* (1.0 + drand(-1,1)*0.1); var fc = freqs[k]; if (amp > 1.0) amp = 1.0; b_add(bs,t,0); b_add(bs,t+drand(1,10)*0.001,amp); b_add(bs,t+adur*0.5,amp); b_add(bs,t+adur*0.7,0.0); b_add(fenv,t,fc); b_add(fenv,t + bdur *0.5,fc); t += bdur; tm += bdur; if (tm >= measure_dur) { tm = 0; k = 0; //change some things for (var i=0;i<2;i++) bdurs[irand(0,bdurs.length)] = choose([0.5,0.125,0.25])*measure_dur/2.0; for (var i=0;i<2;i++) adurs[irand(0,adurs.length)] = choose([0.1,0.5,0.8]); for (var i=0;i<2;i++) amps[irand(0,amps.length)] = choose([1.0,0.3,0.5]); for (var i=0;i<2;i++) freqs[irand(0,freqs.length)] = drand(300,3000); } k++; } res2a(4000,2000,c[0],n); res2a(4000,2000,c[1],n); var env = make_bufn(n); b_render(bs,env); mult(env,c[1],n); mult(env,c[0],n); b_render(fenv,env); res2a_t(env,[1000],c[0],n); res2a_t(env,[1000],c[1],n); ffdelay(0.75 * measure_dur/2.0,-7,300,800,c[0],efx[0],n); ffdelay(.85 * measure_dur/2.0,-7,300,800,c[1],efx[1],n); add(efx[0],c[0],n); add(efx[1],c[1],n); // for (i = 0;i<n;i++) c[1][i] = c[0][i]; normalize_stereo(c[0],c[1],n); softclip(1.4,0,c[1],n); softclip(1.4,0,c[0],n); normalize_stereo(c[0],c[1],n); // adjust volume by -17 db dbgain(-17,c[0],n); dbgain(-17,c[1],n); G.b = b; var s = ac.createBufferSource(); s.buffer = b; s.loop = true; s.connect(ac.destination); G.buf_src = s; } function startAnim() { G.anim = 1; G.st = ms(); step(); } function stopAnim() { G.anim = 0; G.st = ms(); } function ind(x,y,w) {return y*w + x;} function putFrame(c) { for (let i = 0; i < arr.length; i += 4) { var v = c[i/4] * 255; arr[i + 0] = v; arr[i + 1] = v; arr[i + 2] = v; arr[i + 3] = 255; } G.ctx.putImageData(new ImageData(arr,G.w,G.h), 0,0); G.fr += 1; } boxblur = (rhox,rhoy, val,w,h) => { var a=0,mmx = rhox*2 + 1,mmy = rhoy*2 + 1,dst = make_bufn(w*h),i,j; for (var l=0;l<2;l++) { for (i=0;i<w+rhox;i++) { a = 0; for (j=0;j<h+rhoy;j++) { var mx =mmx;// floor((i/(w-1))*mmx); var my =mmy; // floor((i/(w-1))*mmy); var xx = i; var yy= j-(l==0 ? my :mx); if (i<w &&j<h) a += val[ind(i,j,w)]; if (!(xx < 0 || xx >= w || yy < 0 || yy >= h)) { a -= val[ind(xx,yy,w)]; } yy = j-(l==0 ? mmx :mmy); if (!(xx < 0 || xx >= w || yy < 0 || yy >= h)) { dst[ind(xx,yy,w)] = a; } } } copy(dst,val,w*h); transpose(val,w,h); if (l==0) fill(0,dst,w*h); } gain(1.0/(mmx*mmy),val,w*h); }; function transpose(c,w,h) { let x,y; for (x = 0;x<w;x++) { for (y = x;y<h;y++) { tmp = c[ind(x,y,w)]; c[ind(x,y,w)] = c[ind(y,x,w)]; c[ind(y,x,w)] = tmp; } } } function sq(x,y,c,w,h) { let i,j; let a = drand(0,0.5), d = drand(0.5,1.0); var bw = 100 * drand(0.5,1.5); var bh = 100 * drand(0.5,1.5); var rc = 20; var ii,jj; for (i=x;i<x+bw*(w/WW);i++) { for (j=y;j<y+bh*(h/HH);j++) { var smode = G.smode; var rc = G.rc; switch(smode) { case 1: ii= i - y; jj = j-y; break; // mode 1 case 2: ii= i - x; jj = j-x; break; // mode 2 case 3: ii = i -x; jj = j-y; break; //mode 3 default: break; } if (i<w && j<h) { switch(smode) { case 1: if (ii +jj < rc || (bw-ii) + (bh-jj) < rc) continue; break; //mode 1 case 2: if (ii +jj < rc || (bw-ii) + (bh-jj) < rc || ii + (bh-jj) < rc || (bw-ii) + jj < rc) continue; break; //mode 2 default: break; } var b = ind(i,j,w); c[b] = (c[b] > 0.5 ? a : d); } } } } var num_boxes =20; function step() { var w = G.w,h=G.h,t = ms()-G.st,c = G.c,i; var n = w*h; fill(0,c,w*h); for (i=0;i<num_boxes;i++) { bw = seq[i*2] % w; bh = seq[i*2 + 1] % h; sq(bw,bh,c,w,h); if (drand(0,1.0) < 0.4 * 20/num_boxes) boxblur(2,2,c,w,h); } for (i=0;i<1;i++) { seq[irand(0,num_boxes)] = irand(0,1000000); } var p1 = drand(1000,7000); transpose(c); res2a(2000,WW*5,c,n); for (i=0;i<n;i++) c[i] += drand(0,0.1); // for (var i=0;i<70;i++) { var lens_param = choose([drand(-0.7,-0.1),-0.1]); val_lens(lens_param,c,w,h); //PARAM var post_lens_filter = 1; if (lens_param < -0.1) post_lens_filter = 1; if (post_lens_filter) { // PARAM res2a(4000*(1.4+sin(0.2*G.fr+M_PI + G.initial_phase)),WW*2,c,n); } boxblur(1,1,c,w,h); var fadea = G.v1 ? lincirc(G.v1,t/1000) : 1; fadea = pow(fadea,0.5); gain(fadea,c,n); putFrame(c); if (G.anim) setTimeout(step,1000/(FRAME_RATE*2)); } function ms() {return new Date().getTime();}; var mapping; function val_lens(R1, val,w,h) { let n = w*h; let use_cache = 0; let R0 = 0; // double R1 = -0.15; //-0.15; let R3 = -R1*1.05; //0.2 let R5 = 0; //R3*1.25; let buf = make_bufn(n); if (use_cache==1) { if (mapping) { //map is already in place for (var i=0;i<n;i++) { if (mapping[i] >= 0) { buf[i] = val[mapping[i]]; } else { buf[i] = 0.0; } } copy(buf,val,n); return; } mapping = new Int32Array(n); } var xc = floor(w/2.0); var yc = floor(h/2.0); let outofbounds=0; fill(0.8,buf,n); for (let x=0;x<w;x++) { for (let y = 0;y<h;y++) { let xr = (x - xc)/xc; let yr = (y - yc)/yc; let r = Math.sqrt(xr*xr + yr*yr); let phi = M_PI/2; phi = Math.atan2(yr, xr); var dr = R0 + r * R1 + r*r*r*R3; // + r*r*r*r*r*R5; r += dr; let x2 = r*cos(phi); let y2 = r*sin(phi); x2 = x2*xc+xc; y2 = (y2)*yc+yc; x2 = floor(x2); y2 = floor(y2); if (x2 >=0 && x2 < w && y2 >= 0 && y2 < h) { if (use_cache) mapping[ind(x,y,w)] = ind(x2,y2,w); buf[ind(x,y,w)] = val[ind(x2,y2,w)]; outofbounds++; } else { buf[ind(x,y,w)] = 0.0; if (use_cache) mapping[ind(x,y,w)] = -1; } } } copy(buf,val,n); } var seq = []; function resize_func() { var el = get_canvas(); el.style.width =null; el.style.height = null; if (window.innerHeight < window.innerWidth) { el.style.height = "100%"; } else { el.style.width = "100%"; } } window.onresize = resize_func; function get_canvas() { return document.getElementsByTagName("canvas")[0]; } window.onload = function() { document.body.append(document.createElement("canvas")); seed = parseInt(tokenData.hash.substr(-7),16); console.log("seed is: " + seed); //parameters G.initial_phase = drand(0,M_PI*2); G.smode = choose([1,1,1,2,2,3]); G.rc = irand(1,5); // seed = floor(Math.random()*100000); resize_func(); var bod = document.getElementsByTagName("body")[0]; bod.style.background = "#000"; var el = get_canvas(); bod.onclick = toggle_play; el.width = WW; el.height= HH; G.ctx = el.getContext('2d'); G.n = G.w*G.h; n = G.n; G.c = new Float32Array(n); c = G.c; for (var i=0;i<1000;i++) { seq[i] = irand(0,1000000); } step(); setTimeout(prepare_play,10); }; }],
[1,()=>{console.log("Artist 2. Anna Carreras -- platform 1");var R,llv,eW,eH,gWH,ma,mo,nn,av,V,G,B,t,aR,bR,cR,dR,aG,bG,cG,dG,aB,bB,cB,dB,munt,m1,m2,m3,m4,m5,desf,pr=0,tt=0;setup=()=>{mF=Math.floor,mC=Math.cos,mS=Math.sin,mN=Math.min,cg=createGraphics,createCanvas(eW=1800,eH=3200),eWm=mF(.5*eW),pixelDensity(1),noCursor(),gW=windowWidth/(pd=pixelDensity())/eW,resizeCanvas(eW*(gWH=mN(gW,gH=windowHeight/pd/eH)),eH*gWH),llv=R.random_num(0,4294967295),pg1=cg(eW,eH),pg2=cg(eW,eH),pg1.clear(),pg1.background(0),pg2.clear(),pg2.background(0),aR=.1*mF(R.random_num(1,8)),bR=.1*mF(R.random_num(4,6)),cR=1,dR=.1*mF(R.random_num(4,6)),aG=.1*mF(R.random_num(1,8)),bG=.1*mF(R.random_num(4,6)),cG=1,dG=.1*mF(R.random_num(4,6)),aB=.1*mF(R.random_num(1,8)),bB=.1*mF(R.random_num(4,6)),cB=1,dB=.1*mF(R.random_num(4,6)),ma=R.random_num(.02,.05),mo=R.random_num(.05,.9),av=2e-4,munt=.02,m1=mF(R.random_num(230,260)),m2=mF(R.random_num(760,790)),m3=mF(R.random_num(390,450)),m4=mF(R.random_num(650,710)),m5=mF(R.random_num(400,440)),desf=mF(R.random_num(-30,0)),pg1.noFill(),pg1.strokeWeight(4),pg1.strokeJoin(ROUND),pg2.strokeJoin(ROUND)},draw=()=>{pg1.push(),pg1.scale(gWH,gWH),pg2.push(),pg2.scale(gWH,gWH),pr+=av,tt+=av,noiseSeed(llv),V=255*(aR+bR*mC(TWO_PI*(cR*(t=noise(100*tt))+dR))),G=255*(aG+bG*mC(TWO_PI*(cG*t+dG))),B=255*(aB+bB*mC(TWO_PI*(cB*t+dB))),pg1.beginShape();let $=map(pr,0,1,-100,eH+100);pg1.stroke(V,G,B);for(let m=-eWm;m<3*eWm;m+=1){let e=muntanya(m,$);pg1.vertex(e.x,e.y)}pg1.endShape(),V=255*(aR+bR*mC(TWO_PI*(cR*t+dR)+.2*PI)),G=255*(aG+bG*mC(TWO_PI*(cG*t+dG)+.2*PI)),B=255*(aB+bB*mC(TWO_PI*(cB*t+dB)+.2*PI)),pg2.noFill(),pg2.strokeWeight(4),pg2.beginShape(),pg2.stroke(V,G,B);for(let n=-eWm;n<3*eWm;n+=1){let r=muntanya(n,$);pg2.vertex(r.x,r.y)}pg2.endShape(),pg2.erase(),pg2.noStroke(),pg2.fill(0),pg2.circle(220,280,m1),pg2.circle(eW-460,480,m2),pg2.circle(eW-900,950,m3),pg2.circle(380,eH-400,m4),pg2.circle(880,eH-900,m5),pg2.noErase(),pg1.pop(),pg2.pop(),image(pg1,0,0),image(pg2,0,desf),pr>1.2&&(pr=0)},muntanya=($,m)=>{let e=ma*(200*noise(.08*m)*sin(.01*m-.01*pr)+100*sin($*munt+.03*pr)),n=mo*(200*noise(.08*m)*sin(.01*m-.01*pr)+100*sin($*munt+.03*pr));return createVector($+mC(e)*n,m+mS(e)*n)}; }],[1,()=>{console.log("Artist 23. Jeff Davis -- platform 1");let w,h,lo,fo,sp,speed,p1,p2,p3,p4,p5,p6,p7,p8,start,run,t;setup=function(){w=window.innerWidth,h=window.innerHeight,lo=R.random_num(.25,.75),fo=R.random_num(.1,.5),sp=R.random_num(3,5),updateColors(),updateColors(),noStroke(),createCanvas(w,h,WEBGL),start=millis()},draw=function(){(run=millis()-start)>1e3*speed&&(updateColors(),start=millis(),run=0),t=run/(1e3*speed),push(),translate(-w/2,-h/2),beginShape(),fill(lerpColor(p1,p5,t)),vertex(0,0),vertex(w,0),fill(lerpColor(p2,p6,t)),vertex(w,h),vertex(0,h),endShape(),beginShape(),fill(lerpColor(color(red(p3),green(p3),blue(p3),127),color(red(p7),green(p7),blue(p7),127),t)),vertex(0,0),vertex(0,h),fill(lerpColor(color(red(p4),green(p4),blue(p4),127),color(red(p8),green(p8),blue(p8),127),t)),vertex(w,h),vertex(w,0),endShape(),pop()},newColor=function(){colorMode(HSB);let p=R.random_num(130,470)%360,$=R.random_num(0,100),n=R.random_num(0,100);R.random_bool(lo)?n=100:$=100,R.random_bool(fo)&&($=n=100);let o=color(p,$,n);return colorMode(RGB),o},updateColors=function(){for(p1=p5,p2=p6,p3=p7,p4=p8,p5=newColor(),p6=newColor();35>Math.abs(hue(p5)-hue(p6))||Math.abs(hue(p5)-hue(p6))>325;)p6=newColor();for(p7=newColor(),p8=newColor();35>Math.abs(hue(p7)-hue(p8))||Math.abs(hue(p7)-hue(p8))>325;)p8=newColor();speed=R.random_num(sp,sp+5)}; }],[1,()=>{console.log("Artist 10. Iskra Velitchkova -- platform 1");const urlSearchParams=new URLSearchParams(window.location.search),params2=Object.fromEntries(urlSearchParams.entries());let pg,fs=params2.fs||1;class YY{constructor(){}rd(){return R.random_dec()}rdb(e){return e*this.rd()}rn(e,t){return R.random_num(e,t)}ri(e,t){return R.random_int(e,t)}}let Y=new YY;var density,blockType,rand,size;t=0;var pgW,pgH,sW,sH,sh,shV,shF,globalAspectRatio=6/9,dP={};let pgScale;shV="varying vec2 vTexCoord;attribute vec3 aPosition;attribute vec2 aTexCoord;void main() { vTexCoord = aTexCoord; vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0 - 1.0; gl_Position = positionVec4;}",shF="precision mediump float;varying vec2 vTexCoord;uniform sampler2D tex0;uniform vec2 tS,u_dir;uniform bool u_aB,u_bw,u_f, u_inv;uniform float u_time,u_pA,u_pB,u_pC,u_g,u_br,u_con,u_rgbr, u_rgbg, u_rgbb;float rd (vec2 st) { return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);}vec3 gB( sampler2D t, vec2 texUV, vec2 sS ){ vec3 colOut = vec3( 0.0 ); const int sC = 9;\tfloat gW[sC]; gW[0] = 0.10855; gW[1] = 0.13135; gW[2] = 0.10406; gW[3] = 0.07216; gW[4] = 0.04380; gW[5] = 0.02328; gW[6] = 0.01083; gW[7] = 0.00441; gW[8] = 0.00157;\tfloat gO[sC]; gO[0] = 0.66293; gO[1] = 2.47904; gO[2] = 4.46232; gO[3] = 6.44568; gO[4] = 8.42917; gO[5] = 10.41281; gO[6] = 12.39664; gO[7] = 14.38070; gO[8] = 16.36501;\tfor( int i = 0; i < sC; i++ ){ vec2 tCO = gO[i] * sS; vec3 col = texture2D( t, texUV + tCO ).xyz + texture2D( t, texUV - tCO ).xyz; col *= gW[i]; colOut += col; }\treturn colOut; } float dc(vec2 c, float r) { return step(length(c), r);}vec3 g(vec3 v, float p){ return vec3(pow(abs(v.r), p),pow(abs(v.g), p),pow(abs(v.b), p));}vec3 bC(vec3 v, float b, float c){ return (v - 0.5) * c + 0.5 + b;}void main() { vec2 uv = vTexCoord;\tfloat rnd = rd( uv*u_time);\tvec3 tN = vec3(0.5,0.5,0.5)*rnd; vec3 tI = texture2D(tex0,vec2(uv.x, 1. - uv.y)).xyz; vec3 cOut; vec3 b1 = gB(tex0, vec2(uv.x, 1. - uv.y), tS * u_dir); vec3 b2 = gB(tex0, vec2(uv.x, 1. - uv.y), tS * vec2(u_dir.x,u_dir.x)); vec3 b3 = gB(tex0, vec2(uv.x, 1. - uv.y), tS * vec2((u_dir.y+u_dir.x)/2.,(u_dir.y+u_dir.x)/2.)); b1 = 0.6*b1+0.2*b2+0.2*b3; cOut = bC(tI*(b1*u_pA+u_pB)+tN*u_pC+0.03*tN*(0.5+b1), u_br, u_con); cOut = cOut.rgb*vec3(u_rgbr,u_rgbg,u_rgbb).rgb;\tif (u_bw) { cOut = vec3(0.51 * cOut.r + 0.41 * cOut.g + 0.17 * cOut.b);\t} cOut = g(cOut,u_g); if (u_inv) { cOut = vec3(1.,1.,1.)-cOut;\t}\tgl_FragColor = vec4(cOut,1.0);\t}",setup=function(){fs=int(fs),sH=windowWidth<windowHeight*globalAspectRatio?windowWidth/globalAspectRatio:windowHeight,sW=sH*globalAspectRatio,pgW=(pgH=1e3)*globalAspectRatio,pgScale=1==fs?windowHeight/pgH:1,density=2,pixelDensity(density),renderer=createCanvas(0==fs?Math.round(sW):windowWidth,0==fs?Math.round(sH):windowHeight,WEBGL),renderer.id("8and1/2"),document.body.style="background-color:white;margin:0;overflow: hidden; display: flex; justify-content: center; align-items: center;",(pg=createGraphics(0==fs?pgW:windowWidth,0==fs?pgH:windowHeight,WEBGL)).pixelDensity(density),setupArt(),art(),sh=createShader(shV,shF),noLoop(),console.log('"At Otto e mezzo by the beach loungers"\n\nI enjoy telling people that one day I dreamed that, during a vacation in Venice years ago, I used to encounter Federico Fellini every afternoon around otto e mezzo. What no one knows is that it wasn\'t a dream. And here are the photos of the beach loungers.\n \nOriginal artwork by Iskra Velitchkova @pointline_, part of the Bright Moments Finale collection. 2024.\nPress 3-9 to obtain gradually higher resolution images. Save image pressing "s".\nFullscreen by default. To obtain the 9:16 thumbnail image, append ?fs=0 to the URL.')},shI=function(){shader(sh),sh.setUniform("tS",[dP.shT/pg.width*dP.shK,dP.shT/pg.height*dP.shK]),sh.setUniform("u_aB",dP.shAB),sh.setUniform("u_dir",[dP.shBx,dP.shBy]),sh.setUniform("u_time",dP.noiseK),sh.setUniform("u_pA",dP.shBlEqA),sh.setUniform("u_pB",dP.shBlEqB),sh.setUniform("u_pC",dP.shBlEqC),sh.setUniform("u_bw",dP.shBW),sh.setUniform("u_g",dP.shG),sh.setUniform("u_br",dP.shBr),sh.setUniform("u_con",dP.shCon),sh.setUniform("u_inv",dP.shInv),sh.setUniform("u_rgbr",dP.r),sh.setUniform("u_rgbg",dP.g),sh.setUniform("u_rgbb",dP.b)},art=function(){if(dP.shAB=!0,dP.shBW=!1,dP.shBx=1.25,dP.shBy=1.25,dP.shK=1.05,dP.shT=1,dP.shBlEqA=.9,dP.shBlEqB=.01,dP.shBlEqC=1.1*(dP.shBW?1.18:.25),dP.shG=1*(dP.shBW?1.65:1.05),dP.shBr=.3,dP.shCon=1.5,dP.r=1,dP.g=1.6,dP.b=1.4,dP.shInv=!0,dP.noiseK=3,pg.background(Y.rdb(250),Y.rdb(79),Y.rdb(79)),pg.fill(Y.rdb(79),Y.rdb(250),Y.rdb(250),90),"sola"==blockType){pg.translate(0,Y.rn(height/10,height/20)),pg.scale(.8*pgScale);let e=Y.rd()<.75;for(let t=0;t<Y.rn(10,40);t+=2)pg.push(),pg.strokeWeight(5*pgScale),pg.stroke(Y.rdb(250),Y.rdb(250),Y.rdb(250)),pg.fill(Y.rdb(250),Y.rdb(250),Y.rdb(250),90),sola(Y.rdb(t)/120,e),pg.pop(),pg.rotateX(Y.rn(7,11))}else if("alargadas"==blockType){pg.translate(0,Y.rdb(height/10,height/20)),pg.scale(pgScale*Y.rn(6,10));for(let e=0;e<Y.rn(10,40);e+=1)pg.push(),pg.strokeWeight(5*pgScale),pg.stroke(Y.rdb(250),Y.rdb(250),Y.rdb(250)),pg.fill(Y.rdb(250),Y.rdb(250),Y.rdb(250),90),alargadas(e*Y.rdb(11)+Y.rdb(200),Y.rdb(e)/120,111*e),pg.pop(),pg.rotateX(Y.rn(7,11))}else if("ordenadas"==blockType){pg.translate(Y.rn(-width,width/10),Y.rn(height/10,height/20)),pg.scale(.6*pgScale);let e=Y.rd(),t=e<.43?1:e<.66?2:3;for(let e=0;e<Y.rn(10,40);e+=1)pg.push(),pg.strokeWeight(5*pgScale),pg.stroke(Y.rdb(250),Y.rdb(250),Y.rdb(250)),pg.fill(Y.rdb(250),Y.rdb(250),Y.rdb(250),90),ordenadas(Y.rdb(e)/120,t),pg.pop(),pg.rotateX(Y.rn(7,11))}},draw=function(){shI(),sh.setUniform("tex0",pg),rect(-sW/2,-sH/2,sW,sH)},changeRes=function(e){pixelDensity(int(e)),(pg=createGraphics(0==fs?pgW:windowWidth,0==fs?pgH:windowHeight,WEBGL)).pixelDensity(int(e)),setupArt(),art(),sh=createShader(shV,shF),redraw()},keyPressed=function(e){83===keyCode&&save("8and1/2_"+blockType+"_"+tokenData.hash+".png"),-1!="123456789".indexOf(e.key)&&changeRes(e.key)},windowResized=function(){if(1!=fs){sH=windowWidth<windowHeight*globalAspectRatio?windowWidth/globalAspectRatio:windowHeight,sW=sH*globalAspectRatio;var e=document.getElementById("8and1/2");e.style.height=sH+"px",e.style.width=sW+"px"}},setupArt=function(){chooseBlock()},chooseBlock=function(){let e=Y.rd();blockType=e<.35?"ordenadas":e<.75?"alargadas":"sola"},ordenadas=function(e,t){for(let r=0;r<400;r+=t<3?t:Y.rn(1,2))pg.box(r,21*e),pg.push(),pg.rect(333*r,112*e,310,Y.rn(300,400)),pg.pop()},sola=function(e,t){for(let r=0;r<400;r+=random(1,3))pg.box(211*r,111*e),pg.rect(3122*r-random(190),1110*e,140,140),pg.push(),t&&pg.rect(11111*r,112*e,310,300),pg.pop()},alargadas=function(e,t,r){for(let e=0;e<400;e+=1)pg.push(),pg.rect(11*e,1*t,10,Y.rn(22,32)),pg.pop(),pg.rotateY(PI*r*1111)}; }],[1,()=>{console.log("Artist 37. Juan Pedro Vallejo -- platform 1"); let t,e,r,a,o,i,n,s,m,l,c,d,_,u=Math.min(window.innerWidth,window.innerHeight);function p(t){noStroke();let r=createVector(R.random_num(-1,1),R.random_num(-1,1));r.mult(w/2).add(createVector(w/2,h/2)),push(),translate(r.x,r.y),rotate(radians(R.random_choice([0,90]))),stroke(0,0);let a=R.random_int(1,20);f(R.random_choice([0,1]),e.fullGamma.slice(a,a+10),255,0);let o=R.random_num(w/15,w/5),i=R.random_num(h/5,h/2.2);rect(0,0,o,i),pop()}function f(t,e,r,a){let o=drawingContext.createLinearGradient(0,0,0==t?w:0,0==t?0:h),i=1/e.length;for(let t=0;t<e.length;t++){let r=e[t];o.addColorStop(i*t,r)}o.addColorStop(1,e[0]),0==a?drawingContext.fillStyle=o:drawingContext.strokeStyle=o}function g(t){drawingContext.setLineDash(t)}setup=function(){[w,h]=function(t,e,r){let a,o;[a,o]=e*r<=t?[e*r,e]:[t,t/r];return[1*a,1*o]}(window.innerWidth,window.innerHeight,9/16),w=Math.round(w),h=Math.round(h),cnv=createCanvas(w,h),t=Math.min(w/1080,h/1920),e=new k(5),pad=50*t,pixelDensity(),function(){fill(247),noStroke(),rect(0,0,w,h),n=!1,o=R.random_choice([10,50]);let u=R.random_int(50,100);i=R.random_choice([0,2]),r=R.random_choice([!1,!0]);let f=[[50,R.random_num(50,70)],[R.random_choice([50,80]),R.random_num(20,40)],[100,R.random_num(5,35)],[R.random_num(100,150),R.random_num(10,20)],[R.random_num(250,300),R.random_num(5,10)]];c=R.random_choice([0,1,2,2]),l=R.random_num(.5,4),a=R.random_choice([1,2,3,3,4,4,4]),_=R.random_num(.2,.5),4==a&&(u=R.random_num(90,200),r=!1,n=!0,s=R.random_num(5,10),m=R.random_num(10,40),l=R.random_num(.1,1.5),i=R.random_choice([0,2]),_=R.random_choice([.1,.4]));1==a&&(r=!0,u=R.random_int(20,50),o=R.random_choice([20,30]),i=2);let g=new C(createVector(w/2,h/2),3*w,f[a][0],t*f[a][1]*R.random_choice([-1,1]),0,u);stroke(245,0),rect(w/2,h/2,w-pad,h-pad),drawingContext.clip(),push(),d=R.random_choice([R.random_int(6,30),R.random_int(4,20)]);for(let t=0;t<d;t++)p();(function(){for(let r=0;r<2e4;r++)strokeWeight(R.random_num(1*t,2*t)),stroke(e.fullGamma[R.random_int(0,20)]),point(R.random_num(0,w),R.random_num(0,h))})(),translate(w/2,h/2),g.gen(1),pop()}()};class k{constructor(t){this.rule=t,this.gamma=[],this.gamma_arrays=[],this.colors_temp=[],this.fullGamma=[],this.gamma_sat=[],this.cc2=[],this.subdivide=40,this.temp_gamma=[color(255,0,0),color(85,208,66),color(34,39,168),color(230,240,15),color(5,170,240),color(230,15,245)],this.generate_gamma(),this.grayScale2(R.random_int(0,19)),this.generateSet()}generate_gamma(){let t=this.temp_gamma,e=[4,2,5,3];for(let r=0;r<4;r++){let a=e[r],o=e[(r+1)%4];this.a=t[a],this.b=t[o],this.generate_steps(this.a,this.b,5*r)}}generateSet(){let t=R.random_int(0,19),e=this.add_different(t,R.random_int(0,19));5==this.rule&&(this.subdivide=40,this.gen_rules8(t),this.gen_rules8(e)),this.composeColors()}composeColors(){let t;this.fullGamma=[];for(let e=0;e<40;e++)t=e%20,this.fullGamma.push(e>=this.subdivide?this.gamma_arrays[0][t]:this.gamma_arrays[1][t])}gen_rules8(t){this.temp=[],this.cc2=[],this.colors_temp=this.gamma;for(let e=0;e<20;e++){let r=e%2;this.cc2[e]=0==r?t:this.colors_temp[e],this.temp.push(0==r?this.gamma_sat[e]:this.colors_temp[e])}this.gamma_arrays.push(this.temp)}generate_steps(t,e,r){let a=0;for(let o=r;o<r+5;o++){let r=lerpColor(t,e,a);this.gamma.push(r),a+=.2}}grayScale2(t){let e=[];for(let r=0;r<20;r++)e.push(lerpColor(this.gamma[t],color(245),r/20));R.random_dec()>.5&&e.reverse(),this.gamma_sat=[];for(let t=0;t<20;t++)this.gamma_sat.push(e[t])}add_different(t,e){return t==e?this.add_different(t,R.random_int(0,39)):e}}class C{constructor(t,e,r,a,o,i){this.diam=e,this.freq=this.diam/i,this.position=t,this.aperture=a,this.freq2=i,this.cuts=r,this.parts_size=this.diam/this.cuts,rectMode(CENTER),strokeCap(SQUARE)}gen(t){let e=0,r=0;push(),noStroke(),fill(255,0),rect(0,0,this.diam,this.parts_size),drawingContext.clip();let a=R.random_int(25,49);this.concentrics(0,0,a,t),pop();for(let o=1;o<this.cuts;o++){push(),noStroke(),fill(255,0);let i=e+=this.aperture;rect(i,0+o*this.parts_size,this.diam,this.parts_size),drawingContext.clip(),this.concentrics(i,1,a,t,o),pop(),push();let n=r-=this.aperture;noStroke(),fill(255,0),rect(n,0-o*this.parts_size,this.diam,this.parts_size),drawingContext.clip(),this.concentrics(n,2,a,t,o+1),pop()}}concentrics(h,d,u,p,w){noFill(),stroke(15);let k=!1;R.random_int(1,500);0==R.random_choice([0,1])?noFill():(fill(247),k=R.random_choice([!0,!1,!1]),4==a&&0==R.random_choice([0,1,1])&&(k=!0)),1==r&&(this.freq2=R.random_num(5,100),this.freq=this.diam/this.freq2),this.freq2<=50?strokeWeight(R.random_num(4*t,t*o)):strokeWeight(R.random_num(2*t,t*R.random_num(3,4)));for(let r=this.freq2;r>0;r--){R.random_choice([random(10,5)]);push();let o=R.random_int(1,20);if(0==i){let r=R.random_choice([0,1]);0==r?f(0,e.fullGamma.slice(o,o+10),0,1):1==r&&(f(1,e.fullGamma.slice(o,o+5),0,1),4==a&&(stroke(15),strokeWeight(2*t)))}else f(0,e.fullGamma.slice(o,o+10),0,1);g(n?[t*s,t*m]:[t*R.random_choice([100,200,50,10,5,25,80,150]),t*R.random_choice([50,100,200,10,25])]),1==k&&R.random_dec()<_&&(0==c?fill(e.gamma_sat[floor(r*l)%20]):1==c?fill(e.fullGamma[R.random_int(0,30)]):2==c&&fill(e.fullGamma[floor(r*l)%40])),push(),translate(h,0),rotate(R.random_num(0,TWO_PI)),ellipse(0,0,r*this.freq),pop(),pop()}fill(e.fullGamma[5]),noStroke(),ellipse(0,0,this.parts_size/2,this.parts_size/2)}}; }],
[0,()=>{console.log("Artist 50. Zach Lieberman -- platform 0");class e{constructor(e){this.seed=e}random_dec(){return this.seed^=this.seed<<13,this.seed^=this.seed>>17,this.seed^=this.seed<<5,(this.seed<0?1+~this.seed:this.seed)%1e3/1e3}random_num(e,t){return e+(t-e)*this.random_dec()}random_int(e,t){return Math.floor(this.random_num(e,t+1))}random_bool(e){return this.random_dec()<e}}let r=parseInt(tokenData.hash.slice(2,10),16),a=new e(r);fxrand=()=>a.random_dec();var n,h,o,s,d,l,f,u=tokenData.hash,c=!1,p={};t=0;var m,g,w,x,v=!1,S=1e3,M=9/16;function y(e){let t=fxrand()*e;return t=Math.floor(1e4*t)/1e4,t}function k(e,t){let r=e+(t-e)*fxrand();return r=Math.floor(1e4*r)/1e4,r}function C(e){return e[Math.floor(y(e.length))]}var U=!0;function _(){fxhashTrunc=u.slice(2),regex=new RegExp(".{"+(fxhashTrunc.length/4|0)+"}","g"),hashes=fxhashTrunc.match(regex).map((e=>b58dec(e))),sfc32=(e,t,r,a)=>()=>{var i=((e|=0)+(t|=0)|0)+(a|=0)|0;return a=a+1|0,e=t^t>>>9,t=(r|=0)+(r<<3)|0,r=(r=r<<21|r>>>11)+i|0,(i>>>0)/4294967296},fxrand=sfc32(...hashes)}function b(e){const t=n.GL;displayDensity(),h=e,pixelDensity(h),n.resize(width,height),o=t.drawingBufferWidth,s=t.drawingBufferHeight,shader(theShader),theShader.setUniform(H("res"),[width,height]),theShader.setUniform(H("density"),h),theShader.setUniform(H("colorTex"),A),theShader.setUniform(H("posTex"),G),theShader.setUniform(H("angTex"),L),theShader.setUniform(H("actualSize"),[o,s]),V(theShader),background(220),noStroke(),rect(-width/2,-height/2,width,height),resetShader()}function T(e,t=!0){let r=pixelDensity();t?r=e:(r+=e,r=max(r,1)),c?b(r):(pg.clear(),pg=createGraphics(m,g),pg.pixelDensity(r),pixelDensity(r),_(),setupArt(),art(),redraw())}function D(){x=windowWidth<windowHeight*M?windowWidth/M:windowHeight,w=x*M}U&&(c=!0),preload=()=>{c&&(1==B()||(theShader=loadShader("shader/basic.vert","shader/basic.frag")))},setup=()=>{x=windowWidth<windowHeight*M?windowWidth/M:windowHeight,w=x*M,setAttributes("premultipliedAlpha",!0),h=2,pixelDensity(h);const e=(n=createCanvas(Math.round(w),Math.round(x),WEBGL)).GL;o=e.drawingBufferWidth,s=e.drawingBufferHeight,1==B()?I(n):q(theShader._fragSrc),Y(),setAttributes("alpha",!1),noLoop(),j()},draw=()=>{c&&(shader(theShader),theShader.setUniform(H("res"),[w,x]),theShader.setUniform(H("resTarget"),[w/x*1e3,1e3]),theShader.setUniform(H("actualSize"),[o,s]),theShader.setUniform(H("colorTex"),A),theShader.setUniform(H("posTex"),G),theShader.setUniform(H("angTex"),L),V(theShader),background(220),noStroke(),rect(-w/2,-x/2,w,x),resetShader())},keyPressed=()=>{83===keyCode&&save("output_pd"+pixelDensity()+"_"+u+".png"),72===keyCode?T(6,!0):76===keyCode?T(-1,!1):77===keyCode&&T(1,!1)};var P=!0,W=[];function B(){return"undefined"!=typeof shaderCode}function H(e){return 0==B()?e:shaderCode.renaming[e]}function I(e){if(P){O=shaderCode.settings,R();var t=shaderCode.shaders[0].contents;for(i=0;i<O.length;i++){var r=O[i].name,a=O[i].val,n=O[i].type,h="uniform "+n+" "+r,o="const "+n+" "+r+" = "+a;t=t.replace(h,o)}theShader=createShader(shaderCode.vert,t),theShader._renderer=void 0}else theShader=createShader(shaderCode.vert,shaderCode.shaders[0].contents),theShader._renderer=void 0,O=shaderCode.settings,R()}let A,G,L;var O=[],z={a:[.8431,.7725,.6235,.3176,.6392,.6039,.8549,.2941,.4392,.6392,.3843,.298,.8824,.7294,.2745,.8392,.2863,.1961,.2157,.4706,.5647,.6196,.6941,.3098,.3843,.4549,.3451,.8431,.4471,.4118,.749,.502,.5176,.6627,.698,.5804],b:[.9098,.7647,.5608,.6118,.4706,.3412,.2431,.2902,.4549,.7725,.6235,.5294,.8196,.5451,.3529,.4902,.6667,.7294,.6784,.5255,.349,.8941,.7333,.5176,.1529,.1608,.1647,.902,.7608,.7647,.3804,.3255,.3765,.2902,.3255,.4824],c:[.2902,.6235,.3686,.02353,.01961,.0902,.8941,.8902,.9176,.5882,.2196,.6157,.8745,.1882,.1294,.1294,.298,.7373,.9137,.8275,.2784,.6588,.4353,.2118,0,0,.01569,.6314,.6549,.6784,.4471,.3686,.4275,.1922,.2118,.2],d:[.8824,.7529,.251,.451,.451,.4314,.7882,.7961,.7922,.01176,.007843,.007843,.6118,.5294,.1961,.2353,.2235,.1882,.4745,.3882,.1529,.6784,.3098,.1843,.251,.5529,.6745,.9451,.9451,.9451,.6039,.6078,.6039,.7451,.6392,.2314],e:[.8353,.8157,.8,.1686,.2196,.5294,.949,.8471,.3216,.7608,.3098,.2863,.4588,.2392,.4784,.8745,.8549,.8353,.2941,.4392,.3804,.6471,.6,.6078,.7059,.2039,.1725,.1333,.2941,.2235,.7647,.3059,.498,.902,.8431,.5765],ikko:[.8235,.8,.7294,.01961,.01961,.01176,.5686,.3843,.7294,.9765,.9804,.9608,.9098,.2471,.149,.3725,.8039,.8078,.1412,.3333,.6706,.2706,.6,.3804,.3412,.3137,.302,.8745,.8471,.7882,.5843,.5608,.5137,.949,.7137,.8039],golden:[.003922,0,0,.9529,.9569,.898,.8941,.1961,.1882,.8275,.7098,.4314,.4784,.4549,.3647,.8353,.7647,.6157,.7843,.6235,.3137,.251,.1961,.1294,.04706,.03137,.003922,.8275,.4431,.1882,.5529,.1176,.1176,.9059,.8784,.7804],night:[.3412,.2863,.2784,.5725,.2784,.2235,.2824,.4157,.4902,.1725,.2118,.3059,.549,.4824,.4039,.7647,.4118,.2471,.1333,.1529,.2275,.3333,.5098,.5765,.7255,.2118,.2824,.7608,.6784,.4118,.1137,.1098,.1373,.2039,.2784,.4275],sadamasa1:[.3412,.2863,.2784,.5725,.2784,.2235,.2824,.4157,.4902,.1725,.2118,.3059,.549,.4824,.4039,.7647,.4118,.2471,.1333,.1529,.2275,.3333,.5098,.5765,.7255,.2118,.2824,.7608,.6784,.4118,.1137,.1098,.1373,.2039,.2784,.4275],sadamasa2:[.1843,.4196,.3451,.9569,.7686,.4784,.2196,.06275,.09412,.9686,.851,.8667,.9608,.7882,.3059,.1686,.1843,.1765,.4902,.4314,.4471,.6902,.4667,.2392,.9255,.7804,.7216,.1647,.3412,.2863,.698,.6078,.6196,.4039,.1647,.1922],paul:[.08627,.06667,.08627,.902,.8902,.851,.5412,.4353,.4,.2745,.3098,.5333,.3098,.1725,.1373,.7529,.4941,.2902,.8118,.4902,.6157,.2745,.3137,.2353,.2118,.2235,.3725,.5882,.2824,.2275,.7137,.6745,.6392,.1255,.1294,.2039],amber:[.6824,.7216,.7098,.2667,.5647,.3647,.8863,.3569,.3059,.9647,.9569,.898,.949,.8353,.3412,.4196,.6784,.7725,.9333,.7216,.6,.4314,.5294,.5451,.4863,.8471,.7725,.5882,.349,.2902,.5843,.8824,.8118,.9255,.749,.7451],amber2:[.9451,.9412,.8667,.5765,.5647,.4745,.3765,.7294,.6627,.851,.5412,.6314,.6353,.6784,.651,.7725,.3098,.2667,.3608,.6118,.302,.251,.4431,.5804,.8392,.4275,.349,.3922,.4118,.4039,.8706,.8353,.7686,.6627,.4235,.349],gaurav:[.9176,.9333,.9529,.5333,.5412,.5294,.7137,.8039,.8118,.09412,.05882,.0902,.4275,.4039,.3804,.1333,.2471,.5882,.7373,.9059,.9098,.6039,.7059,.6863,.8392,.6275,.3765,.302,.2431,.2392,.8784,.9098,.9333,.6392,.3059,.1961],primary2:[.8235,.3216,.2275,.2392,.4118,.5373,.8667,.8275,.7804,.2275,.1373,.2235,.6196,.1843,.1804,.8824,.7686,.349,.2667,.4118,.2118,.6471,.6235,.5686,.7451,.3098,.4039,.9373,.9098,.8667,.5137,.3529,.2471,.451,.4,.4549],goodRB:[.1529,.1216,.2902,.8627,.9922,.9529,.7451,.3451,.302,.6784,.2275,.1529,.5686,.5725,.5412,.6667,.7255,.6941,.3529,.1686,.2706,.5373,.1922,.149,.1725,.1686,.4667,.7804,.8745,.8353,.5451,.2706,.3098,.8706,.3569,.2314],kino:[.007843,.007843,.007843,.6078,.3294,.4118,.3137,.6667,.4941,.2471,.09804,.5922,.9216,.9176,.9373,.1843,.3098,.2588,.1255,.09412,.2,.4431,.4275,.4314,.05098,.01176,.08627,.2784,.5059,.4235,.6157,.5804,.698,.3412,.1373,.6196]};function F(e,t){return val=e+(t-e)*fxrand(),val=Math.floor(1e4*val)/1e4,val}function E(e,t){return Math.floor(F(e,t))}function R(){for(i=0;i<O.length;i++)if("int"==O[i].type)O[i].val=E(O[i].min,O[i].max+.99);else{var e=F(O[i].min,O[i].max);O[i].val=e}for(i=0;i<30;i++){Math.floor(i/4),Math.floor(i%4);var t=1e3,r=1e3;W.push(createVector(fxrand()*t-t/2,fxrand()*r-r/2)),i}L=createImage(30,1),G=createImage(30,1),t=1e3,r=1e3;for(let e=0;e<G.width;e++)for(let i=0;i<G.height;i++)if(e<16){var a=map(W[e].x,-t/2,t/2,0,255),n=map(W[e].y,-r/2,r/2,255,0),h=Math.atan2(W[e].y,W[e].x);G.set(e,i,[a,n,255,255]),L.set(e,i,[floor(map(h,-Math.PI,Math.PI,0,255)),0,255,255])}else G.set(e,i,[0,0,0,255]),L.set(e,i,[0,0,0,255]);G.updatePixels(),L.updatePixels()}function j(){}function V(e){if(B()&&P);else for(i=0;i<O.length;i++)e.setUniform(O[i].name,O[i].val)}function q(e){for(var t=e.split("\n"),r=0;r<t.length;r++)if(t[r].indexOf("uniform")>-1&&t[r].indexOf("/////")>-1){var a="float";t[r].indexOf(" float ")<0&&(a="int"),t[r].split("/////").length;var i=t[r].split("/////")[0].split(" ")[2];i=(i=i.replace(" ","")).replace(";","");var n=t[r].split("/////")[1].split(" "),h=parseFloat(n[0]);let e=parseFloat(n[1]),s=parseFloat(n[2]);var o={};o.name=i,o.min=e,o.max=s,o.val=h,o.type=a,O.push(o)}R()}function J(e,t){t=1-(t=min(.99999,max(1e-5,t)));let r=0;return r=e<=.5?pow(2*e,1/t)/2:1-pow(2*(1-e),1/t)/2,r}function K(e){var t,r,a,i=(e[0]+16)/116,n=e[1]/500+i,h=i-e[2]/200;return r=-.9689*(n=.95047*(n*n*n>.008856?n*n*n:(n-16/116)/7.787))+1.8758*(i=1*(i*i*i>.008856?i*i*i:(i-16/116)/7.787))+.0415*(h=1.08883*(h*h*h>.008856?h*h*h:(h-16/116)/7.787)),a=.0557*n+-.204*i+1.057*h,t=(t=3.2406*n+-1.5372*i+-.4986*h)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:12.92*a,[255*Math.max(0,Math.min(1,t)),255*Math.max(0,Math.min(1,r)),255*Math.max(0,Math.min(1,a))]}function N(e){var t,r,a,i=e[0]/255,n=e[1]/255,h=e[2]/255;return r=(.2126*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.7152*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.0722*(h=h>.04045?Math.pow((h+.055)/1.055,2.4):h/12.92))/1,a=(.0193*i+.1192*n+.9505*h)/1.08883,t=(t=(.4124*i+.3576*n+.1805*h)/.95047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(t-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function Q(e,t,r,a,i){let n,h,o,s,d;return d=i*i,n=a-r-e+t,h=e-t-n,o=r-e,s=t,n*i*d+h*d+o*i+s}function X(e){let t,r=e.length;for(;0!=r;)t=Math.floor(fxrand()*r),r--,[e[r],e[t]]=[e[t],e[r]];return e}function Y(){var e=O[3].val,t=Object.keys(z),r=E(0,t.length);0==e&&12==r&&(r=2),0==e&&0==r&&(r=2);var a=t[r];let n=z[a].slice(0);for(i=0;i<n.length/3;i++){let e=[];e.push(255*n[3*i]),e.push(255*n[3*i+1]),e.push(255*n[3*i+2]);let t=N(e);n[3*i]=t[0],n[3*i+1]=t[1],n[3*i+2]=t[2]}A=createImage(1024,64),A.loadPixels();let h=A.width/(n.length/3);curveTightness(0);for(let e=0;e<A.width;e++)for(let t=0;t<A.height;t++){map(t,0,A.height,0,1),map(e,0,A.width,0,1,!0);let r=Math.floor(e/h),a=e/h-r;a=J(a,0);let i=r-1,o=r+1,s=r+2;i<0&&(i+=12),o>=12&&(o-=12),s>=12&&(s-=12);let d=K([Q(n[3*i],n[3*r],n[3*o],n[3*s],a),Q(n[3*i+1],n[3*r+1],n[3*o+1],n[3*s+1],a),Q(n[3*i+2],n[3*r+2],n[3*o+2],n[3*s+2],a)]);A.set(e,t,[d[0],d[1],d[2],255])}A.updatePixels()} var shaderCode = {"shaders":[{"name":"main","contents":"#define r_ return \n#define v_ vec3 \n#define Y_ vec2 \n#define d_ distance \n#define V_ vec4 \n#define l_ length \n#define n_ normalize \n#define c_ const\n#define f_ float\n\n#define i_ int\n \nprecision highp f_;uniform sampler2D z;uniform sampler2D Oa;uniform sampler2D Pa;uniform Y_ Qa;uniform Y_ ga;uniform Y_ ha;c_ f_ ia=3.141593;c_ i_ Da=16;c_ i_ Ea=8;uniform int Ra;uniform int Sa;uniform int S;c_ i_ V=15;c_ i_ fc=0;uniform int gc;uniform float Ta;uniform float ja;f_ g=100.;uniform int Fa;c_ f_ ca=0.;c_ f_ Cb=.5;c_ f_ Db=.5;c_ f_ Ua=.5;c_ f_ Eb=.5;c_ f_ hc=1.5;v_ Fb;v_ da[30];f_ G[30];Y_ Gb;Y_ ea(v_ a,v_ b,f_ d){f_ e=dot(b,b);f_ c=2.*dot(b,a);f_ h=dot(a,a)-d*d;f_ f=c*c-4.*e*h;if(f<0.)r_ Y_(1e+5,-1e+5);r_ Y_((-c-sqrt(f))/(2.*e),(-c+sqrt(f))/(2.*e));}v_ _(v_ a,v_ j,v_ b,f_ O,f_ k,f_ m,v_ p,f_ q,f_ r,f_ s,f_ e){b=n_(b);a=n_(a);Y_ c=ea(j,a,m);if(c.x>c.y)r_ v_(0,0,0);c.y=min(c.y,ea(j,a,k).x);f_ d=(c.y-c.x)/f_(Da);f_ t=0.;v_ A=v_(0,0,0);v_ B=v_(0,0,0);f_ u=0.;f_ v=0.;f_ f=dot(a,b);f_ n=f*f;f_ h=e*e;f_ W=3./(16.*ia)*(1.+n);f_ X=3./(8.*ia)*((1.-h)*(n+1.))/(pow(1.+h-2.*f*e,1.5)*(2.+h));for(i_ C=0;C<Da;C++){v_ i=j+a*(t+d*.5);f_ o=l_(i)-k;f_ D=exp(-o/r)*d;f_ E=exp(-o/s)*d;u+=D;v+=E;f_ l=ea(i,b,m).y/f_(Ea);f_ w=0.;f_ x=0.;f_ y=0.;for(i_ H=0;H<Ea;H++){v_ L=i+b*(w+l*.5);f_ M=l_(L)-k;x+=exp(-M/r)*l;y+=exp(-M/s)*l;w+=l;}v_ N=exp(-(q*(v+y)+p*(u+x)));A+=D*N;B+=E*N;t+=d;}r_ O*(W*p*A+X*q*B);}f_ ka(f_ c,f_ a,f_ d,f_ b,f_ e){r_ b+(c-a)*(e-b)/(d-a);}f_ F(f_ c,f_ a,f_ b,f_ d,f_ e){f_ f=clamp(c,a,b);r_ ka(f,a,b,d,e);}f_ Hb(f_ a,f_ b){r_ max(a,b);}f_ ic(f_ a,f_ b){r_ Hb(a,-b);}f_ jc(Y_ a,f_ b){r_ l_(a)-b;}f_ kc(Y_ f,Y_ b,Y_ c,f_ h){f_ e=l_(c-b);Y_ d=(c-b)/e;Y_ a=f-(b+c)*.5;a=mat2(d.x,-d.y,d.y,d.x)*a;a=abs(a)-Y_(e,h)*.5;r_ l_(max(a,0.))+min(max(a.x,a.y),0.);}f_ lc(Y_ b,Y_ c){Y_ a=abs(b)-c;r_ l_(max(a,0.))+min(max(a.x,a.y),0.);}f_ mc(Y_ a,Y_ b,f_ c,f_ d){a.x=abs(a.x);r_ (b.y*a.x>b.x*a.y?l_(a-b*c):abs(l_(a)-c))-d;}f_ nc(Y_ c,Y_ d,f_ e){Y_ a=Y_(cos(e),sin(e));V_ f=a.xyyx*c.xxyy;V_ b=a.xyyx*d.xxyy;r_ max(max(abs(f.x+f.z)-d.x,abs(f.w-f.y)-d.y)/max(abs(a.x-a.y),abs(a.x+a.y)),max(abs(c.x)-max(abs(b.x-b.z),abs(b.x+b.z)),abs(c.y)-max(abs(b.y+b.w),abs(b.y-b.w))));}f_ Va(Y_ d,Y_ c,Y_ e){Y_ b=d-c,a=e-c;f_ f=clamp(dot(b,a)/dot(a,a),0.,1.);f_ h=dot(b,a)>0.?-1.:1.;r_ l_(b-a*f)*h;}v_ oc(v_ a,f_ b){r_ pow(a,v_(1./b));}v_ pc(v_ a){v_ c;f_ e=min(min(a.r,a.g),a.b);f_ d=max(max(a.r,a.g),a.b);f_ b=d-e;c.z=(d+e)/2.;if(b==0.){c.x=0.;c.y=0.;}else{if(c.z<.5)c.y=b/(d+e);else c.y=b/(2.-d-e);f_ f=((d-a.r)/6.+b/2.)/b;f_ h=((d-a.g)/6.+b/2.)/b;f_ i=((d-a.b)/6.+b/2.)/b;if(a.r==d)c.x=i-h;else if(a.g==d)c.x=1./3.+f-i;else if(a.b==d)c.x=2./3.+h-f;if(c.x<0.)c.x+=1.;else if(c.x>1.)c.x-=1.;}r_ c;}f_ Ga(f_ b,f_ d,f_ a){if(a<0.)a+=1.;else if(a>1.)a-=1.;f_ c;if(6.*a<1.)c=b+(d-b)*6.*a;else if(2.*a<1.)c=d;else if(3.*a<2.)c=b+(d-b)*(2./3.-a)*6.;else c=b;r_ c;}v_ qc(v_ a){v_ c;if(a.y==0.)c=v_(a.z);else{f_ b;if(a.z<.5)b=a.z*(1.+a.y);else b=a.z+a.y-a.y*a.z;f_ d=2.*a.z-b;c.r=Ga(d,b,a.x+1./3.);c.g=Ga(d,b,a.x);c.b=Ga(d,b,a.x-1./3.);}r_ c;}f_ rc(Y_ b,Y_ c){Y_ a=abs(b)-c;f_ d=l_(max(a,0.));f_ e=min(max(a.x,a.y),0.);r_ d+e;}v_ sc(v_ b,f_ c,f_ d,f_ e){c_ f_ f=.5;c_ f_ h=.5;c_ f_ i=.5;c_ v_ j=v_(.2125,.7154,.0721);v_ k=v_(f,h,i);v_ a=b*c;v_ l=v_(dot(a,j));v_ m=mix(l,a,d);v_ n=mix(k,m,e);r_ n;}c_ f_ Wa=3.141593;c_ f_ tc=1.570796;c_ f_ uc=.785398;V_ aa(V_ a){r_ mod((a*34.+1.)*a,289.);}V_ Xa(V_ a){r_ 1.792843-.853735*a;}f_ Ha(v_ i){c_ Y_ d=Y_(1./6.,1./3.);c_ V_ u=V_(0.,.5,1.,2.);v_ c=floor(i+dot(i,d.yyy));v_ a=i-c+dot(c,d.xxx);v_ j=step(a.yzx,a.xyz);v_ v=1.-j;v_ f=min(j.xyz,v.zxy);v_ h=max(j.xyz,v.zxy);v_ q=a-f+1.*d.xxx;v_ r=a-h+2.*d.xxx;v_ s=a-1.+3.*d.xxx;c=mod(c,289.);V_ w=aa(aa(aa(c.z+V_(0.,f.z,h.z,1.))+c.y+V_(0.,f.y,h.y,1.))+c.x+V_(0.,f.x,h.x,1.));f_ L=1./7.;v_ b=L*u.wyz-u.xzx;V_ x=w-49.*floor(w*b.z*b.z);V_ y=floor(x*b.z);V_ M=floor(x-7.*y);V_ k=y*b.x+b.yyyy;V_ l=M*b.x+b.yyyy;V_ e=1.-abs(k)-abs(l);V_ A=V_(k.xy,l.xy);V_ B=V_(k.zw,l.zw);V_ N=floor(A)*2.+1.;V_ O=floor(B)*2.+1.;V_ C=-step(e,V_(0.));V_ D=A.xzyw+N.xzyw*C.xxyy;V_ E=B.xzyw+O.xzyw*C.zzww;v_ m=v_(D.xy,e.x);v_ n=v_(D.zw,e.y);v_ o=v_(E.xy,e.z);v_ p=v_(E.zw,e.w);V_ H=Xa(V_(dot(m,m),dot(n,n),dot(o,o),dot(p,p)));m*=H.x;n*=H.y;o*=H.z;p*=H.w;V_ t=max(.6-V_(dot(a,a),dot(q,q),dot(r,r),dot(s,s)),0.);t=t*t;r_ 42.*dot(t*t,V_(dot(m,a),dot(n,q),dot(o,r),dot(p,s)));}f_ Ya(Y_ a){r_ Ha(v_(a,0.));}f_ Y(f_ a,f_ b,f_ c){r_ Ha(v_(a,b,c));}f_ vc(f_ a,f_ b){r_ Ha(v_(a,b,0.));}f_ wc=.05;V_ la(c_ V_ a){V_ b=mod(mod(a,V_(5612.)),V_(3.141593*2.));r_ fract(b*b*V_(56812.5453));}c_ f_ P=1.;c_ f_ Q=57.;c_ f_ R=113.;c_ v_ Za=v_(P,Q,R);c_ V_ _a=V_(0,Q,R,R+Q);c_ V_ ab=V_(P,P+Q,R+P,R+P+Q);f_ xc(c_ in v_ f){v_ d=f;v_ a=fract(d);v_ h=d-a;v_ b=a*a*(3.-2.*a);f_ e=dot(h,Za);V_ i=e+_a;V_ j=e+ab;V_ k=la(i);V_ l=la(j);V_ c=mix(k,l,b.x);f_ m=mix(mix(c.x,c.y,b.y),mix(c.z,c.w,b.y),b.z);r_ 1.-2.*m;}f_ yc(in f_ a){r_ fract(sin(a)*48.5453);}f_ T(Y_ a){r_ fract(sin(dot(a,Y_(3433.8,3843.98)))*45933.8);}f_ zc(Y_ a){Y_ b=floor(a);a=fract(a);a*=a*(3.-2.*a);Y_ c=Y_(T(b),T(b+Y_(0,1))),d=Y_(T(b+Y_(1,0)),T(b+Y_(1,1))),e=mix(c,d,a.x);r_ mix(e.x,e.y,a.y);}c_ f_ Ac=1.5;f_ Bc(v_ a){f_ c=min(min(a.x,a.y),a.z);f_ b=max(max(a.x,a.y),a.z);r_ (b-c)/(b+1e-7);}mat4 Ib(f_ a){r_ mat4(1,0,0,0,0,1,0,0,0,0,1,0,a,a,a,1);}mat4 Jb(f_ a){f_ b=(1.-a)/2.;r_ mat4(a,0,0,0,0,a,0,0,0,0,a,0,b,b,b,1);}mat4 Kb(f_ c){v_ a=v_(.3086,.6094,.082);f_ b=1.-c;v_ d=v_(a.x*b);d+=v_(c,0,0);v_ e=v_(a.y*b);e+=v_(0,c,0);v_ f=v_(a.z*b);f+=v_(0,0,c);r_ mat4(d,0,e,0,f,0,0,0,0,1);}f_ fa(f_ c,f_ a){f_ b=1e-5;f_ e=0.+b;f_ f=1.-b;a=min(f,max(e,a));a=1.-a;f_ d=0.;if(c<=.5){d=pow(2.*c,1./a)/2.;}else{d=1.-pow(2.*(1.-c),1./a)/2.;}r_ d;}f_ Z(f_ a){f_ b=(a+.5)/30.;f_ d=.5/128.;f_ c=texture2D(Pa,Y_(b,.5)).r;r_ c*Wa*2.-Wa;}Y_ U(f_ b){f_ c=(b+.5)/30.;f_ d=.5/128.;Y_ a=texture2D(Oa,Y_(c,.5)).rg;a.x/=1.;a.y/=1.;a.x*=ga.x;a.y*=ga.y;r_ a;}v_ Cc(f_ c,f_ a,f_ d,f_ e,f_ f,f_ h,sampler2D i){v_ b=_(n_(v_(Y_(sin(a)*.5+.5,pow(a*0.+c*.1+.05,2.)*10.3),.1)),v_(0,6372000.*1.,0),v_(0.,0.+.3,-3.+10.*a),90.,6371000.,6471000.,pow(v_(5.5e-6,1.3e-5,2.24e-5),v_(.9+.2*sin(a*10.+d))),2.1e-5,8000.*.9,1200.*.8,.758*.3);b=1.-exp(-1.*b)*.8;r_ b;}v_ bb(f_ c,f_ a,f_ d,f_ e,f_ f,f_ h,sampler2D i){v_ b=_(n_(v_(Y_(sin(a)*.1+.5,pow(a*0.+c*.1+.05,2.)*10.3),.1)),v_(0,6372000.*1.,0),v_(0.,0.+.3,-3.+10.*a),90.,6371000.,6471000.,pow(v_(5.5e-6,1.3e-5,2.24e-5),v_(.9+.3*sin(a*100.+d))),2.1e-5,8000.*1.9,1200.*.8,.758*.3);b=1.-exp(-1.*b)*.8;r_ b;}v_ Dc(f_ c,f_ a,f_ d,f_ e,f_ f,f_ h,sampler2D i){v_ b=_(n_(v_(Y_(sin(a)*.5+.5,pow(a*0.+c*.1+.05,2.)*10.3),.1)),v_(0,6372000.*1.,0),v_(0.,0.+.3,-3.+10.*a),90.,6371000.,6471000.,pow(v_(5.5e-6,1.3e-5,2.24e-5),v_(.9+.2*sin(a*10.+d))),2.1e-5,8000.*.9,1200.*.8,.758*.3);b=1.-exp(-1.*b)*.8;r_ b;}v_ I(f_ c,f_ h,f_ i,f_ j,sampler2D k){f_ b=1./12.;f_ d=floor(c/b);f_ a=d*b;f_ e=(d+1.)*b;f_ f=(c-a)/(e-a);f=clamp(f,0.,1.);f_ l=a+(e-a)*(i+j*fa(f,h));r_ texture2D(k,Y_(l,.5)).rgb;}mat2 J(f_ a){r_ mat2(cos(a),-sin(a),sin(a),cos(a));}c_ f_ K=3.141593;f_ ba(in f_ a,in f_ b){r_ b==0.?sign(a)*K/2.:atan(a,b);}Y_ ma(Y_ d,Y_ e,Y_ f){Y_ a=e,b=f;f_ c=pow(d_(b,a),2.);if(c==0.)r_ a;f_ h=clamp(dot(d-a,b-a)/c,0.,1.);Y_ i=a+h*(b-a);r_ i;}void main(){g=f_(Fa)*.1;Fb=v_(0.);for(i_ na=0;na<30;na++){da[na]=v_(1.);G[na]=0.;}f_ Ec=f_(Fa)*.00123;Gb=Y_(0.);i_ m=Ra;Y_ t=ga;Y_ Fc=gl_FragCoord.xy/ha;Y_ cb=Qa;f_ Gc=d_(cb,Y_(0.));f_ Hc=d_(Y_(t.x),Y_(0.));Y_ Ic=t*.5;Y_ b=gl_FragCoord.xy/ha*t;Y_ h=t/2.;highp f_ Jc=0.;highp f_ Lb;highp v_ n=v_(0.);highp v_ db=v_(0.);highp f_ Ia=0.;highp f_ Mb=0.;highp f_ Nb=0.;highp f_ Ob=0.;Y_ Kc=Y_(0.);Y_ k=b;Y_ eb=b;Y_ H=b;f_ fb=1e+6;f_ Pb=0.;f_ gb=0.;f_ hb=0.;f_ ib=0.;f_ jb=0.;f_ L=0.;for(i_ M=0;M<30;M++){if(M>V)continue;f_ x=f_(M);f_ Lc=Z(x);f_ N=d_(k,U(x));Y_ O=n_(k-U(x));if(N<fb){fb=N;Pb=ba(O.y,O.x);}f_ W=1./pow(N,.3);L+=W;ib+=W;jb=N*W;hb+=ba(O.x,O.y)*W;gb+=dot(O*J(K/2.),Y_(1.,0.)*J(x))*W;}hb/=L;gb/=L;jb/=L;ib/=L;for(i_ y=0;y<30;y++){if(y>V)continue;f_ a=f_(y);f_ Mc=a/f_(V);i_ kb=i_(mod(a,2.));i_ Qb=i_(mod(a,3.));b=k;f_ Nc=F(d_(h,k),0.,700.,0.,1.);b=H;Y_ Oc=b;b=H;Y_ d;f_ X=1.;f_ Rb=1.;f_ Pc=0.;d=U(a);Y_ Qc=mix(h,d,.9);b-=Y_(d);f_ oa=10.;Y_ Rc=Y_(h.x,h.y);Y_ pa=n_(d-b);f_ Sc=ba(pa.y,pa.x);b=k-d;Y_ Tc=b;f_ qa=Z(a);Y_ lb=n_(k-d);Y_ mb=Y_(sin(qa-K/2.),cos(qa-K/2.));f_ Uc=pow(dot(mb,n_(lb))*.5+.5,1.);f_ Vc=d_(b,d);Y_ Wc=b;if(true){Y_ ra=eb-d;{b=H-d;Y_ Sb=b;f_ nb=.2;for(i_ p=0;p<9;p++){f_ sa=d_(mix(ra,b-d,.1*Ta),Y_(0.))*(6e-3*1.3)*(.9+ja*.4);f_ ta=.03*sin(a+f_(p)*.1)*(nb*.5+.5);f_ ob=15.+pow(ja,4.)*15.;b.y+=30.*cos(sa*ob*sin(f_(p)*.5)+b.x*(ta+ta*sin(sa*.01+.2*f_(p)))+f_(p)*.04)*1.;b.x+=30.*sin(sa*ob*sin(f_(p)*.5)+b.y*(ta+ta*sin(sa*.01+.2*f_(p)))+f_(p)*.04)*1.;b=b*J(1e-3*Y(b.x*1e-3,b.y*.01+ra.y*1e-3,ra.x*1e-3));b=.96*b+.04*Sb;}H=b+d;}}b+=Y_(d);H=b;f_ c=d_(b,d);Y_ o=n_(b-d);Y_ ua=Y_(h.x+oa*sin(a+g*.1),h.y+oa*sin(12.+a+g*.1));Y_ va=n_(d-ua);f_ l=ba(va.y,va.x);f_ Xc=d_(d-ua,Y_(0.));f_ Tb=d_(b-h,Y_(0.));c=d_(b,d);o=n_(b-d);Tb=d_(b-h,Y_(0.));l=-Z(a)+K/2.;f_ i=dot(o,Y_(0.,1.)*J(l));f_ pb=l;f_ Ub=0.;highp f_ f=0.;f_ Yc=F(c,200.,300.,1.,0.);if(m==0){f_ Ja=c-200.+200.*sin(a*.3);f_ qb=.03;if(kb==0)qb=0.;if(Ja<.01)Ja=.01;f_ Zc=pow(sin(i)*.5+.5,2.4);if(Qb==0)f=1./pow(Ja*qb+c*2e-3,2.1+2.*sin(a*.3+g)+10.1*pow(abs(sin(a*123.+g*.1)),200.)*1.);else f=1./pow(c*.01,4.1+4.*sin(a+g)+0.*pow(abs(sin(a*123.+g*.1)),10.)*1.);}else if(m==1||m==2||m==3){o*=1.;f_ j=i;if(m==3){f_ wa=.7;if(Cb<.33){wa=.6+.2*sin(a*.4+g);}if(j<wa)j=wa;j=ka(j,wa,1.,0.,1.);f_ rb=Ua*1.6+.4;j=pow(j,ka(c,0.,600.,rb,rb*(1.+Eb*2.)));}else if(m==2){f_ Ka=.6+.1*sin(a);if(j<Ka)j=Ka;j=pow(ka(j,Ka,1.,0.,1.),4.);}else{j=clamp(j,0.,1.);;j=smoothstep(0.,.99,j)*j;}f_ r=clamp(j,0.,1.);;f_ _c=.5;f_ ad=.8;if(m==1){f_ sb=ca;if(sb<.02){sb=0.;}f_ Vb=(1.-ca)*10.+4.;r=pow(r*Vb,.01+ca*13.);}else if(m==2){r=pow(r,1.9);}else{r=pow(r,F(Db,0.,1.,.6,1.2));r=pow(r,F(c,100.,333.,.2+.1*sin(a),1.1));}f_ Wb=.9;if(m==3){Wb=2.;f=1./pow(c*1.,1.3);}else if(m==2){f=1./pow(c,2.);}else{Y_ Xb=b;f_ Yb=abs(Va(b,d+1000.*Y_(cos(l),sin(l)),d-1000.*Y_(cos(l),sin(l))));c=mix(c,Yb,.4+.3*sin(a));Xb+=d;f=1./pow(c,2.);}f*=r;f+=1./pow(2000.,2.8);f=pow(f,2.);if(m==2){f=pow(f,.9);}}else if(m==4){f_ A=a*3.14*1.+sin(a+g*.1)*0.;A=l+K/2.;f_ tb=dot(o,Y_(0.,1.)*J(A));f_ ub=dot(o,Y_(0.,-1.)*J(A));f_ u=A+sin(g+a)*.01*sin(g);tb=clamp(tb,0.,1.);ub=clamp(ub,0.,1.);f_ B=140.+100.*sin(a+g*.1);B*=X*3.7*sin(a);Y_ xa=ma(b,d+B*Y_(cos(u),sin(u)),d-B*Y_(cos(u),sin(u)));f_ bd=d_(xa,d)/B;f_ Zb=d_(xa,b);f=1./pow(Zb*1.,3.+sin(a)*2.);}else if(m==5){f_ C=a*3.14*1.+sin(a+g*.1)*0.;C=l+K/2.;f_ vb=dot(o,Y_(0.,1.)*J(C));f_ wb=dot(o,Y_(0.,-1.)*J(C));f_ v=C+sin(g+a)*.01*sin(g);vb=clamp(vb,0.,1.);wb=clamp(wb,0.,1.);f_ D=140.+100.*sin(a+g*.1);D*=X*3.7*sin(a);Y_ ya=ma(b,d+D*Y_(cos(v),sin(v)),d-D*Y_(cos(v),sin(v)));f_ cd=d_(ya,d)/D;f_ _b=d_(ya,b);f=1./pow(_b*1.,1.);}if(m==6){Y_ dd=U(mod(a*10.+1.,16.));d=U(a);f_ xb=Z(a);c=d_(d,b);Y_ ed=d-h;f_ za=xb;Y_ yb=n_(b-d);Y_ zb=Y_(sin(za-K/2.),cos(za-K/2.));f_ q=dot(yb,zb);f_ fd=q;f_ La=-.99;if(q<La)q=La;q=F(q,La,1.,0.,1.);q=1.-pow(q,1.);Ub=q;f=1./pow(c*.1+q*100.,2.3);}v_ e;f_ E=.1;if(S==0){e=I(fract(sin(i)*0.+a*E+c*0.+g*0.+c*0.),.04,0.,1.,z);f_ ac=fract(c*1e-4);e=I(fract(ac*.1+sin(i)*0.+a*.1+c*0.+g*0.+c*0.),0.,0.,1.,z);v_ gd=I(fract(sin(pb)*0.+a*.7+c*0.+g*0.+c*0.),.3,1.,-1.,z);if(Sa==2){e=I(fract(sin(i)*0.+a*.1+c*0.+g*0.+c*0.),.9,0.,1.,z);}}else if(S==1){e=I(fract(a*E+c*0.+g*0.),.9,0.,1.,z);v_ hd=v_(Y(c*1e-3+b.x*0.,a*100.3,g*1.+i*3.)*.5+.5,Y(c*.0013+b.x*0.,a*100.3,g*1.+i*3.1)*.5+.5,Y(c*.0016+b.x*0.,a*100.3,g*1.+i*3.2)*.5+.5);if(kb!=1)e=mix(e,v_(1.),F(c,300.,801.,0.,1.));else e=mix(e,v_(1.),F(c,600.,1001.,0.,1.));}else if(S==2){e=I(fract(a*E+b.y*3e-4-g*0.),.4,0.,1.,z);}else if(S==3){e=I(fract(a*E+b.x*0.-i*.02+g*.1),.1,0.,1.,z);}else if(S==4){e=I(fract(a*E+c*1e-4-g*.03+i*.02),.7,0.,1.,z);}else if(S==5){e=I(fract(a*E+c*0.+g*0.),.9,0.,1.,z);e=mix(e,v_(1.),F(c,300.,501.,0.,1.));v_ id=v_(sin(c*.01+b.x*0.+a*100.3+g*1.)*.5+.5,sin(c*.01+b.x*0.+a*100.2+g*1.)*.5+.5,sin(c*.01+b.x*0.+a*100.1+g*1.)*.5+.5);}else if(S==6){e=I(fract(a*E+c*0.-g*.01),.7,0.,1.,z);e=mix(v_(sin(a*.3)*.5+.5),e,pow(F(c,0.,401.,0.,1.),.8));}else if(S==7){v_ jd=v_(sin(c*1e-3+b.x*0.+a*100.3+g*1.)*.5+.5,sin(c*1e-3+b.x*0.+a*100.2+g*1.)*.5+.5,sin(c*1e-3+b.x*0.+a*100.1+g*1.)*.5+.5);e=I(fract(a*.4+c*1e-4-g*.03),.7,0.,1.,z);}else if(S==8){e=I(fract(a*.14+c*0.-g*.01),.7,0.,1.,z);e=mix(e,e*.3,pow(F(c,400.,801.,0.,1.),.8));}f_ kd=500.;f_ ld=1e-4;f_ md=800.;if(true){v_ Ab=bb(k.y/400.,c*1e-5,a*3.,.7,0.,1.,z);e=mix(e*1.3,Ab*.3,F(c,100.,400.,0.,1.));e=mix(e,Ab,F(c,0.,300.,1.,0.));}f_ nd=.1+.1*sin(g+a);f_ bc=0.;f_ cc=1.4;f_ dc=2.2;V_ Ma=V_(e,1.);Ma=Ib(bc)*Jb(cc)*Kb(dc)*Ma;e=Ma.xyz;f_ od=Ya(Y_(k.x*1e-3+a*.1+Ia*3e-4,k.y*1e-3+a*3.4));f_ Na=sin(a)*.5+.5;Na=pow(Na,3.);if(Sa!=2){f=pow(f,F(Na,0.,1.,1.,.8));f=pow(f,1.+X);}else;n+=f*e*X;Lb+=f*X;db=mix(db,e,.3);Mb+=i;Nb+=sin(i);Ob+=f;da[y]=mix(e,v_(1.),1.-Rb);G[y]=f;Ia+=c*1e-3;}da[0]=da[0]*1.;G[0]=G[0]*.99999;f_ Bb=0.;for(i_ Aa=0;Aa<30;Aa++){if(Aa>V)continue;Bb+=G[Aa];}f_ Ba=0.;f_ ec=.5;ec=.65;for(i_ w=0;w<30;w++){if(w>V)continue;G[w]=G[w]/Bb;G[w]=pow(G[w],1.1);Ba+=G[w];}n=v_(0.);for(i_ s=0;s<30;s++){if(s>V)continue;f_ Ca=f_(s);i_ pd=i_(mod(Ca,2.));i_ qd=i_(mod(Ca,3.));f_ rd=G[s]/Ba;n+=da[s]*(G[s]/Ba);}n=clamp(n,v_(0.),v_(1.));n.x=fa(n.x,.3);n.y=fa(n.y,.2);n.z=fa(n.z,.1);gl_FragColor=V_(n,1.);}"}],"renaming":{"colorTex":"z","resTarget":"ga","actualSize":"ha","posTex":"Oa","angTex":"Pa","res":"Qa","overallLook":"Sa"},"settings":[{"name":"Ra","min":4,"max":4,"val":4,"type":"int"},{"name":"Sa","min":2,"max":2,"val":2,"type":"int"},{"name":"S","min":0,"max":8,"val":0,"type":"int"},{"name":"gc","min":1,"max":1,"val":1,"type":"int"},{"name":"Ta","min":0,"max":1.01,"val":0,"type":"float"},{"name":"ja","min":0,"max":1.02,"val":0,"type":"float"},{"name":"Fa","min":0,"max":5000,"val":0,"type":"int"}],"vert":"attribute vec3 aPosition;\n\nuniform mat4 uModelViewMatrix;\nuniform mat4 uProjectionMatrix;\nuniform float uResolution;\nuniform float uPointSize;\n\nvoid main(void) {\n vec4 positionVec4 = vec4(aPosition, 1.0);\n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n}\n"} }],
[0,()=>{console.log("Artist 39. Stefano Contiero -- platform 0");const e={width:3*window.innerWidth,height:3*window.innerHeight,colorSpace:"display-p3"};let t,r,a,n=(e,t)=>(void 0===e?(e=0,t=1):t=t||0,e+W.R.R()*(t-e)),i=(e,t)=>~~n(e,t),o=e=>e[i(e.length)],l=(e=1,a=0)=>{if(r){r=0;let n=t;return t=null,a+e*n}{let i=0,o=0,l=0;do{i=n(-1,1),o=n(-1,1),l=i*i+o*o}while(l>=1||0===l);let f=M.sqrt(-2*M.log(l)/l);return t=o*f,r=1,a+e*i*f}},f=e=>{let t=[...e],r=t.length,a=0;for(;0!=r;)a=~~(n()*r),r--,[t[r],t[a]]=[t[a],t[r]];return t},s=e=>n()<e,c=(e,t,r)=>M.max(M.min(e,r),t),d="fefdfb1d1517302332dd2e26f87d68fcc2cbf55b4dfcc79ef7d86ea0b8acb4aab2-f8f9fae9ecefdee2e6ced4daadb5bd6c757d495057343a40212529-de2c2cfff8e8fcd581d52941990d35-d726383f88c5f49d37140f2df22b29-183945116973F67C1FD82B03F2F2F2-a31621bfdbf7053c5e1f7a8cdb222a-1e90ffff514eff7700f7e3d569b6682b9091486abd282e39-b8b8d15b5f97319177ffc145ffe0a0fffffbffb5b4ff6b6c-1b3b4bd40000b68762eef2f6e6e0dae0b299eda67de2725b-0505041d34611f487d237ba133b2cce6e6e6fdd692fb3640-1d2f53ec5c23fdc449f5f1ebf8b8a03cb8a472c1c65898c1-ffbb33f1faeea8dadc457b9d1d3557031927424b54042a2b-26437fffcc00d2292effffff0000001884bffefddfd9381e-ccdbdc9ad1d480ced7007ea70032493d5a80ee6c4d293241-d00000fefefa3f88c5032b43136f6337323e96c8a2001242-05668d02809000a89602c39af0f3bdf7e7cefffaf000bbd8-3f3f37d6d6b1f2e0b6e6a100f24500-7500009e0000bd0000c70000d10000db0000e60000fa0000ff00007500009e0000bd0000c70000d10000db0000e60000fa0000ff00007500009e0000bd0000c70000d10000db0000e60000fa0000ff0000ffffff-f2bf58ffdd8ce37f445458737660654e342b45414a120d0e-247ba033b2ccfdd692ffcc33ff8c00fb364000563fff91af-d3cdc3F03000f78355ee7749F03C004b3934260c1a252422-40190617171af0a000f0c630f0d9a5f0d0c0ff0015cceeff-095c842e84a68eaccbe7eef5e1bf9bc48e1b876930241e05283224-7fa0c2336cbc60d7a2c8f354eee349ffffffe83b83e03a2eee8534e5d694-31b3936cde7ea0e6be6ad0be35ccc800a5cc60b3ef8a99e9ffbff4ff73d0-887499aba6c4d66e7fbb697ffe683cfca13bfcf115fbc9b2a244301b151".split`-`.map((e=>e.match(/.{6}/g).map((e=>"#"+e)))),u=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255,1]},m=e=>{let t,r,[a,n,i]=u(e),o=M.max(a,n,i),l=M.min(a,n,i),f=(o+l)/2;if(o==l)t=r=0;else{let e=o-l;switch(r=f>.5?e/(2-o-l):e/(o+l),o){case a:t=(n-i)/e+(i>n?6:0);break;case n:t=(i-a)/e+2;break;case i:t=(a-n)/e+4}t/=6}return t*=360,r*=100,f*=100,[t,r,f,1]},h=e=>{let t=e[0],r=e[1]/100,a=e[2]/100,n=e[3]||1,i=(1-M.abs(2*a-1))*r,o=i*(1-M.abs(t/60%2-1)),l=a-i/2,f=0,s=0,c=0;return t>=0&&60>t?(f=i,s=o,c=0):t>=60&&120>t?(f=o,s=i,c=0):t>=120&&180>t?(f=0,s=i,c=o):t>=180&&240>t?(f=0,s=o,c=i):t>=240&&300>t?(f=o,s=0,c=i):t>=300&&360>t&&(f=i,s=0,c=o),f+=l,s+=l,c+=l,[f,s,c,n]},b=(e=1)=>{let t=[];a=[];for(let r=0;e>r;r++){let e=i(d.length);a.push(...d[e]),t.push(e)}return a=f(a),t},p=e=>o(a),g=(e,t=.5,r,a)=>{let n=360+e[0],i=e[1],o=e[2];return r=r||e[3],n=l(t*=4,n)%360,i=c(l(t,i),.01,100),o=c(l(t,o),.01,100),a||(r=c(l(t/20,r),1e-4,1)),[n,i,o,r]},v=e=>{let t=e.map((e=>e>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92));return.2126*t[0]+.7152*t[1]+.0722*t[2]},x=(e,t)=>{let r=v(e)+.05,a=v(t)+.05;return Math.max(r/a,a/r)},y={},E=e=>{return y={palettes:b(i(3)+1),background:u(s(.75)?p():"#ffffff")},y.sil=u((t=y.background,o(((e,t)=>{let r=[];do{r=a.filter((r=>x(e,u(r))>t)),t-=.1}while(0===r.length||t>1);return 0===r.length&&(r=a),r})(t,4)))),y;var t};const R=(t,r={})=>{let a={};a.canvas=D.createElement("canvas"),a.context=a.canvas.getContext(t,{colorSpace:e.colorSpace,alpha:1,...r});let{canvas:n,context:i}=a;return a.setSize=(t=1)=>{let r=e.width/e.height,i=W.innerWidth,o=W.innerHeight;a.density=W.devicePixelRatio,o*r>i?(a.width=i,a.height=i/r,a.scale=i/e.width):(a.width=o*r,a.height=o,a.scale=o/e.height),n.width=~~(a.width*a.density*t),n.height=~~(a.height*a.density*t);let l=n.style;l.width=~~a.width+"px",l.height=~~a.height+"px",l.imageRendering="pixelated"},a.save=e=>{n.toBlob((t=>{let r=URL.createObjectURL(t),a=D.createElement("a");a.href=r,a.download=`${tokenData.hash}.png`,a.click(),e&&e()}),"image/png",1)},a.destroy=e=>{a.width=a.height=n.width=n.height=1,a.clear(),n.remove(),delete a.canvas,delete a.context,n=i=a=null},a};let T,w=(e,t,r)=>(T||(T=U(n(98765,34567876))),T(e,t,r)),A=e=>{let t=new Uint32Array(1);return t[0]=1664525*e[0]+1013904223,t},_=(Math.sqrt(4)-1)/3,S=(1/Math.sqrt(4)-1)/3,F=(e,t,r,a)=>({dx:-t-e*_,dy:-r-e*_,dz:-a-e*_,xsb:t,ysb:r,zsb:a}),U=e=>{let t=[];for(let e=0;e<C.length;e+=9){let r=z[C[e]],a=null,n=null;for(let i=0;i<r.length;i+=4)n=F(r[i],r[i+1],r[i+2],r[i+3]),null===a?t[e/9]=n:a.next=n,a=n;n&&(n.next=F(C[e+1],C[e+2],C[e+3],C[e+4]),n.next.next=F(C[e+5],C[e+6],C[e+7],C[e+8]))}let r=[];for(let e=0;e<B.length;e+=2)r[B[e]]=t[B[e+1]];let a=new Uint8Array(256),n=new Uint8Array(256),i=new Uint8Array(256);for(let e=0;256>e;e++)i[e]=e;let o=new Uint32Array(1);o[0]=e,o=A(A(A(o)));for(let e=255;e>=0;e--){o=A(o);let t=new Uint32Array(1);t[0]=(o[0]+31)%(e+1),0>t[0]&&(t[0]+=e+1),a[e]=i[t[0]],n[e]=a[e]%24*3,i[t[0]]=i[e]}return(e,t,i)=>{let o=(e+t+i)*S,l=e+o,f=t+o,s=i+o,c=Math.floor(l),d=Math.floor(f),u=Math.floor(s),m=(c+d+u)*_,h=e-(c+m),b=t-(d+m),p=i-(u+m),g=l-c,v=f-d,x=s-u,y=g+v+x,E=0;for(let e=r[v-x+1|g-v+1<<1|g-x+1<<2|y<<3|y+x<<5|y+v<<7|y+g<<9];void 0!==e;e=e.next){let t=h+e.dx,r=b+e.dy,i=p+e.dz,o=2-t*t-r*r-i*i;if(o>0){let l=c+e.xsb,f=d+e.ysb,s=u+e.zsb,m=a[255&l],h=a[m+f&255],b=n[h+s&255];E+=o*o*o*o*(P[b]*t+P[b+1]*r+P[b+2]*i)}}return.009708737864077669*E}},z=[[0,0,0,0,1,1,0,0,1,0,1,0,1,0,0,1],[2,1,1,0,2,1,0,1,2,0,1,1,3,1,1,1],[1,1,0,0,1,0,1,0,1,0,0,1,2,1,1,0,2,1,0,1,2,0,1,1]],P=[-11,4,4,-4,11,4,-4,4,11,11,4,4,4,11,4,4,4,11,-11,-4,4,-4,-11,4,-4,-4,11,11,-4,4,4,-11,4,4,-4,11,-11,4,-4,-4,11,-4,-4,4,-11,11,4,-4,4,11,-4,4,4,-11,-11,-4,-4,-4,-11,-4,-4,-4,-11,11,-4,-4,4,-11,-4,4,-4,-11],B=[0,2,1,1,2,2,5,1,6,0,7,0,32,2,34,2,129,1,133,1,160,5,161,5,518,0,519,0,546,4,550,4,645,3,647,3,672,5,673,5,674,4,677,3,678,4,679,3,680,13,681,13,682,12,685,14,686,12,687,14,712,20,714,18,809,21,813,23,840,20,841,21,1198,19,1199,22,1226,18,1230,19,1325,23,1327,22,1352,15,1353,17,1354,15,1357,17,1358,16,1359,16,1360,11,1361,10,1362,11,1365,10,1366,9,1367,9,1392,11,1394,11,1489,10,1493,10,1520,8,1521,8,1878,9,1879,9,1906,7,1910,7,2005,6,2007,6,2032,8,2033,8,2034,7,2037,6,2038,7,2039,6],C=[0,0,1,-1,0,0,1,0,-1,0,0,-1,1,0,0,0,1,-1,0,0,-1,0,1,0,0,-1,1,0,2,1,1,0,1,1,1,-1,0,2,1,0,1,1,1,-1,1,0,2,0,1,1,1,-1,1,1,1,3,2,1,0,3,1,2,0,1,3,2,0,1,3,1,0,2,1,3,0,2,1,3,0,1,2,1,1,1,0,0,2,2,0,0,1,1,0,1,0,2,0,2,0,1,1,0,0,1,2,0,0,2,2,0,0,0,0,1,1,-1,1,2,0,0,0,0,1,-1,1,1,2,0,0,0,0,1,1,1,-1,2,3,1,1,1,2,0,0,2,2,3,1,1,1,2,2,0,0,2,3,1,1,1,2,0,2,0,2,1,1,-1,1,2,0,0,2,2,1,1,-1,1,2,2,0,0,2,1,-1,1,1,2,0,0,2,2,1,-1,1,1,2,0,2,0,2,1,1,1,-1,2,2,0,0,2,1,1,1,-1,2,0,2,0],k="#version 300 es",N=`${k}\nprecision highp float;in vec2 position;out vec4 color;uniform sampler2D image;uniform vec2 resolution;`,L="float hash13(vec2 p,float s,float t){vec3 p3=vec3(p.x,p.y,s+t);p3=fract(p3*.1031);p3+=dot(p3,p3.zyx+31.32);return fract((p3.x+p3.y)*p3.z);}",I=e=>{let t=2*M.PI,r=e=>e%1?e:e+".",a=(e=t)=>`vec3(${[0,0,0].map((t=>r(n(e))))})`,i=(e=1)=>`vec3(${[0,0,0].map((t=>r(e*2**(n(.6)-.3))))})`;return`float wobbly(vec3 p){return dot(sin(p.xyz*${i()}+2.*sin(p.yzx*${i()}+${a()})+${a()}),sin(p.zyx*${i()}+3.*sin(p.zxy*${i()}+${a()})+${a()}));}`};const $=`${k}\nin vec2 a_position,a_texCoord;uniform mat3 u_textureMatrix;out vec2 position;void main(){position=(u_textureMatrix*vec3(a_texCoord,1)).xy;gl_Position=vec4(a_position*2.-vec2(1),0,1);}`;let O=e=>`${N}uniform float dist,intensity;mat3 k=mat3(${e});float f=0.;void main(){vec2 i=position;vec4 v=vec4(0);for(int e=-1;e<2;e++)for(int m=-1;m<2;m++){vec4 b=texture(image,i+vec2(e,m)/(resolution/9.)*dist);float d=k[m+1][e+1];v+=b*d;f+=d;}color=mix(texture(image,i),v/f,intensity);}`;const X=(e,t)=>{let r="-1.,-.5,0.,-.5,1.,.5,0.,.5,1.",a="convolution";return"sharpen"===e&&(r="0.,-1.,0.,-1.,5.,-1.,0.,-1.,0.",a+="Sharpen"),"gaussian"===e&&(r=".00625,.125,.00625,.125,.25,.125,.00625,.125,.00625",a+="Gaussian"),t&&(a+=t),{name:a,vertex:$,fragment:O(r),uniforms:[{name:"dist",type:"uniform1f"},{name:"intensity",type:"uniform1f"}]}},G={name:"jittering",vertex:$,fragment:`${N}${L}uniform float intensity,jitterSize,seed;void main(){color=texture(image,position);vec2 i=position;i.x+=(hash13(gl_FragCoord.xy,1.,0.)*2.-1.)/resolution.x*jitterSize;i.y+=(hash13(gl_FragCoord.xy,1903.,0.)*2.-1.)/resolution.y*jitterSize;if(i.x<0.)i.x=abs(i.x);if(i.y<0.)i.y=abs(i.y);if(i.x>1.)i.x=1.-i.x+1.;if(i.y>1.)i.y=1.-i.y+1.;vec4 y=texture(image,i);if(y.w!=0.&&color.w!=0.)color=mix(color,y,intensity);}`,uniforms:[{name:"intensity",type:"uniform1f"},{name:"seed",type:"uniform1f"},{name:"jitterSize",type:"uniform1f"}]};let j=e=>`${N}${L}${e}float getNoise(int o,float p,float f,vec3 c){float a=1.;float m=0.;float s=0.;for(int i=0;i<o;++i){s+=a*wobbly(c*f);f*=2.;m+=a;a*=p;}return (s/m)*.5+.5;}uniform float intensity;vec4 e(vec4 n){float y=0.,v=0.,c=0.,p=n.x,g=n.y,z=n.z,r=min(p,min(g,z)),m=max(p,max(g,z));c=(m+r)/2.;if(m>r){float x=m-r;v=c<0.?x/(m+r):x/(2.-m-r);y=p==m?(g-z)/x:g==m?2.+(z-p)/x:4.+(p-g)/x;if(y<0.)y+=6.;y/=6.;}return vec4(y,v,c,n.w);}vec4 p(vec4 n){return vec4(vec3(n.z+n.y*(clamp(abs(mod(n.x*6.+vec3(0,4,2),6.)-3.)-1.,0.,1.)-.5)*(1.-abs(2.*n.z-1.))),n.w);}void main(){vec2 n=position;n.x+=(getNoise(8,1.,50.,vec3(n.xy,0))*2.-1.)/4e2;n.y+=(getNoise(8,1.,50.,vec3(n.xy,1))*2.-1.)/4e2;color=texture(image,position);vec4 v=texture(image,n);vec2 g=position,z=resolution;v.xyz+=(getNoise(8,10.,50.,vec3(position.x/7.,position.y/7.,color.x*color.y*color.z))*2.-1.)*.005;v=e(v);v.x=clamp(v.x+(getNoise(4,.8,25.,vec3(position.x/10.,position.y/10.,color))*2.-1.)*.01,0.,1.);v.y=clamp(v.y+(getNoise(4,1.,25.,vec3(position.x/10.,position.y/10.,color.y))*2.-.8)*.025,0.,1.);v.z=clamp(v.z+(getNoise(8,1.,25.,vec3(position.x/10.,position.y/10.,color.z))*2.-.5)*.015,0.,1.);v.xyz+=(hash13(floor(g*z)/z*1e3,0.,v.x*v.y*v.z)*2.-1.)/20.;color=mix(color,p(v),intensity);}`,H=(e,t,r)=>{let a=e.createShader(r);return e.shaderSource(a,t),e.compileShader(a),e.getShaderParameter(a,e.COMPILE_STATUS)||e.deleteShader(a),a},Y=Float32Array,q=e=>{let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.MIRRORED_REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.MIRRORED_REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),t};const K={name:"post",vertex:$,fragment:`${N}uniform float brightness,contrast,saturation;mat4 v(float m){return mat4(1,0,0,0,0,1,0,0,0,0,1,0,m,m,m,1);}mat4 m(float m){float b=(1.-m)/2.;return mat4(m,0,0,0,0,m,0,0,0,0,m,0,b,b,b,1);}mat4 b(float m){vec3 b=vec3(.3086,.6094,.082);float n=1.-m;vec3 f=vec3(b.x*n);f+=vec3(m,0,0);vec3 v=vec3(b.y*n);v+=vec3(0,m,0);vec3 r=vec3(b.z*n);r+=vec3(0,0,m);return mat4(f,0,v,0,r,0,0,0,0,1);}void main(){color=v(brightness)*m(contrast)*b(saturation)*texture(image,position);}`,uniforms:[{name:"brightness",type:"uniform1f"},{name:"contrast",type:"uniform1f"},{name:"saturation",type:"uniform1f"}]},V=(t,r=[])=>{let a,n=(e=>{let t=R("2d",void 0),{context:r}=t,a={fill:0,stroke:0,blend:"source-over"},n=(e,t,n)=>{a[e]=((e,t)=>`rgba(${255*e[0]}, ${255*e[1]}, ${255*e[2]}, ${t||e[3]||1})`)(t,n),r[`${e}Style`]=a[e]},i=e=>{a.fill&&r.fill(),a.stroke&&r.stroke()};return t.adjustDensity=e=>r.scale(t.density,t.density),t.draw=(e,a)=>{r.save(),t.adjustDensity();let n=e(t,a);return r.restore(),n},t.setOpacity=e=>r.globalAlpha=e,t.clear=e=>r.clearRect(0,0,t.width*t.density,t.height*t.density),t.fill=(e,t)=>n("fill",e,t),t.stroke=(e,t)=>n("stroke",e,t),t.noFill=e=>a.fill=0,t.noStroke=e=>a.stroke=0,t.strokeWeight=e=>r.lineWidth=e*((t.scale+t.scale)/2),t.translate=(e,a)=>r.translate(e*t.scale,a*t.scale),t.rotate=e=>r.rotate(e),t.push=e=>r.save(),t.pop=e=>r.restore(),t.shape=(e,a,n,o,l,f,s)=>{r.beginPath(),r[e](a*t.scale,n*t.scale,o*t.scale,(l||o)*t.scale,0,f,s),i()},t.rect=(e,r,a,n)=>t.shape("rect",e,r,a,n),t.ellipse=(e,r,a,n,i=0,o=2*M.PI)=>t.shape("ellipse",e,r,a,n,i,o),t.curvedPolygon=(e,a=1)=>{if(e.length>3){let n=[...e];a&&n.push(e[0],e[1],e[2]);let o,l=[];for(r.beginPath(),r.moveTo(n[1][0]*t.scale,n[1][1]*t.scale),o=1;o+2<n.length;o++){let e=n[o];l[0]=[e[0],e[1]],l[1]=[e[0]+(n[o+1][0]-n[o-1][0])/6,e[1]+(n[o+1][1]-n[o-1][1])/6],l[2]=[n[o+1][0]+(n[o][0]-n[o+2][0])/6,n[o+1][1]+(n[o][1]-n[o+2][1])/6],l[3]=[n[o+1][0],n[o+1][1]],r.bezierCurveTo(l[1][0]*t.scale,l[1][1]*t.scale,l[2][0]*t.scale,l[2][1]*t.scale,l[3][0]*t.scale,l[3][1]*t.scale)}i()}},t.image=(e,a=0,n=0,i,o)=>r.drawImage(e,a*t.scale,n*t.scale,t.canvas.width/t.density,t.canvas.height/t.density),t})(),i={engine:n,blendMode:"source-over",completed:0};return n.setSize(),r.length&&(a=(t=>{let r=R("webgl2",{colorSpace:"display-p3",powerPreference:"high-performance",preserveDrawingBuffer:1}),{context:a,canvas:n}=r;"drawingBufferColorSpace"in a&&(a.drawingBufferColorSpace=e.colorSpace),"unpackColorSpace"in a&&(a.unpackColorSpace=e.colorSpace);let i,o=[],l=(e,t)=>((e,t,r,a,n,i=1)=>{let{width:o,height:l}=e.canvas,f=new Y([0,0,1,0,0,1,0,1,1,0,1,1]),s=((e,t,r)=>{let a=e.createProgram(),n=H(e,t,e.VERTEX_SHADER),i=H(e,r,e.FRAGMENT_SHADER);return e.attachShader(a,n),e.attachShader(a,i),e.linkProgram(a),e.getProgramParameter(a,e.LINK_STATUS)||e.deleteProgram(a),a})(e,t,r);e.useProgram(s);let c=e.getAttribLocation(s,"a_position"),d=e.getAttribLocation(s,"a_texCoord"),u=e.getUniformLocation(s,"u_textureMatrix"),m=new Y([1,0,0,0,1,0,0,0,1]),h=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,h),e.vertexAttribPointer(c,2,e.FLOAT,0,0,0),e.enableVertexAttribArray(c),e.vertexAttribPointer(d,2,e.FLOAT,0,0,0),e.enableVertexAttribArray(d),e.uniformMatrix3fv(u,0,m),e.bufferData(e.ARRAY_BUFFER,f,e.STATIC_DRAW);let b={};for(let t of a)b[t.name]={type:t.type,location:e.getUniformLocation(s,t.name),texture:t.texture};let p=[];for(let t=0;i>t;t++)p.push(q(e));let g=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,g),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,o,l,0,e.RGBA,e.UNSIGNED_BYTE,null),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,p[0],0),{name:n,getTexture:(e=0)=>p[e],draw(t){e.useProgram(s);let r=1;for(let[a,n]of Object.entries(t))n=Array.isArray(n)?n:[n],b[a].texture?(e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,p[r]),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,...n),e[b[a].type](b[a].location,r),r++):e[b[a].type](b[a].location,...n);e.bindBuffer(e.ARRAY_BUFFER,h),e.drawArrays(e.TRIANGLES,0,6)},set(){e.bindFramebuffer(e.FRAMEBUFFER,g)},clear(){e.bindFramebuffer(e.FRAMEBUFFER,g),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)},reset(){({width:o,height:l}=e.canvas),g&&(e.bindTexture(e.TEXTURE_2D,p[0]),e.bindFramebuffer(e.FRAMEBUFFER,g),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,o,l,0,e.RGBA,e.UNSIGNED_BYTE,null),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,p[0],0))}}})(a,e.vertex,e.fragment,[{type:"uniform1i",name:"image"},{type:"uniform2f",name:"resolution"},...e.uniforms],e.name,t);a.clear(a.COLOR_BUFFER_BIT),a.disable(a.DEPTH_TEST),a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.NONE),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,1);for(let e=0;e<t.length;e++)o.push(l(t[e],t[e].textures));i=l(K);let f=r.setSize;return r.setSize=e=>{f(),a.viewport(0,0,r.width*r.density,r.height*r.density);for(let e of[...o,i])e.reset()},r.draw=(t,r)=>{let{uniforms:n,blendModeGL:l,post:f={}}=r,{brightness:s=0,contrast:c=1,saturation:d=1}=f,u={image:0,resolution:[e.width,e.height]};for(let e=0;e<o.length;e++)a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o[e].getTexture()),0===e&&a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,t),e+1<o.length?o[e+1].set():i.set(),o[e].draw({...u,...n[o[e].name]});i.set(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,i.getTexture()),a.bindFramebuffer(a.FRAMEBUFFER,null),i.draw({...u,brightness:s,contrast:c,saturation:d})},r.clear=e=>{a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),[...o,i].forEach((e=>e.clear()))},r})(r),a.setSize(),i.engine=a,i.engine2D=n),i.draw=e=>{let{clear:r}=a||{},o=n.draw(t,{...e,clear:r});a&&a.draw(n.canvas,o);for(let[e,t]of Object.entries(o))i[e]=t},i.setSize=e=>{n.setSize(),a.setSize()},i.destroy=e=>{n.destroy(),a&&a.destroy()},i};let J=([e,t,r=0],[a,n,i=0])=>M.sqrt((a-e)**2+(n-t)**2+(i-r)**2),Q=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]||0],Z=([e,t],[r,a]=[0,0])=>M.atan2(a-t,r-e);const ee=([t,r],a,i,o,f,s)=>{let{width:c,height:d}=e,u=M.max(c,d),b=i/o.length,p=a/2,v=i/2,x=n(231412),{background:E,sil:R}=y;return{draw(e){e.push(),e.translate(t,r),f&&(e.translate(p,v),e.rotate(f),e.translate(-p,-v)),e.noStroke();for(let n=0;n<o.length;n++){let i=m(o[n]),f=w(t/u,r/u,x+n)*a*.15,c=a+w(t/u,r/u,x**2+n)*a*.15;if(e.push(),e.translate(f,0),s)e.fill(E),e.stroke(R,.8),e.strokeWeight(l(.1,2)),e.rect(l(),b*n,c+l(),b);else{e.noStroke();for(let t=0;b>t;t++)e.fill(h(g(i,.5))),e.rect(l(),t+b*n,c+l(),2)}e.pop()}e.pop()}}},te=(t,r)=>{let{width:a,height:o}=e,l=M.max(a,o),c=[],d=s(.5),u=n()/(10*(i(10)+1)),m=1/(J(t,r)/l*u*5e3),h=n(98123765),b=l*(i(10)+1)/50,g=l*(i(10)+1)/50,v=5*(i(10)+1);for(let e=0;1>=e;e+=m){let a=(x=t,[(E=e)*((y=r)[0]-x[0])+x[0],E*(y[1]-x[1])+x[1],E*(y[2]-x[2])+x[2]||0]);a=Q(a,[w(a[0]/l*v,a[1]/l*v,h)*b,w(a[0]/l*v,a[1]/l*v,h+198765)*g]),c.push(a)}var x,y,E;let R=[],T=e=>{s(.01)&&(R=[]);let t=s(.5)?3:s(.75)?2:1;for(let e=0;t>e;e++)R.push(p())};T();let A=l/(i(15,60)+1),_=l/(i(15,60)+1),S=50*(i(10)+1),F=[];for(let e=1;e<c.length;e++){let t=c[e],r=Z(t,c[e-1]),a=ee(t,A+w(t[0]/l*S,t[1]/l*S,h)*A,_+w(t[0]/l*S,t[1]/l*S,h+198765)*_,R,r,d);F.push(a),s(.1)&&(R=f(R)),s(.1)&&T()}return{silouette:d,draw(e){for(let t of F)t.draw(e)}}},re=(e,t,r,a)=>{let n=s(.5),{background:i,sil:o}=y,f=n?i:u(p()),c=n?o:u(p());return{silouette:n,draw(i){i.push(),i.translate(e,t),n?(i.stroke(c,.8),i.strokeWeight(l(.5,3.5))):(i.noStroke(),i.strokeWeight(1)),i.fill(f),i.ellipse(0,0,r),i.noFill();let o=.5*M.PI;i.rotate(Z([e,t],a)+M.PI);for(let e=r/4;r>e;e++)i.stroke(c,M.max(.9*(e-(s=r/2))/(r-s)+.1)*(n?.05:1)),i.ellipse(0,0,e,r,-o,o);var s;i.pop()}}};(a=>{window.W=window,W.D=document,W.S=D.body.style,W.M=Math;let o,c,d,u,m,h,b,p,g=(e=>{let t=[];return{addLayers(e){t.push(...e),D.body.appendChild(t[t.length-1].engine.canvas)},render(e){let r=1;for(let a of t)a.completed||(r=0,a.draw(e));return r},reset(){t.forEach((e=>e.destroy())),t=[]},save(e){t[t.length-1].engine.save(e)}}})(),v=e=>{p||(b=W.requestAnimationFrame(v),u=e,h=u-m,h>c&&(m=u-h%c,p=g.render({frameCount:o}),o++))},x=a=>{e.width=3*window.innerWidth,e.height=3*window.innerHeight,b&&W.cancelAnimationFrame(b),tokenData.hash,t=r=null,W.R=Random(),T=null,g.reset();let u=E();o=0,c=1e3/60,m=W.performance.now(),d=m,p=0,g.addLayers((t=>{let{background:r,exposure:a}=t,{width:o,height:c}=e,d=[],u=[n(o),n(c)],m=M.max(o,c)/(10*(i(10)+1)),h=((e,t,r)=>{const a=r/M.sqrt(2),o=M.ceil(e/a),l=M.ceil(t/a),f=new Array(o*l),s=[],c=(n,i)=>{if(0>n||n>=e||0>i||i>=t)return 0;const s=~~(n/a),c=~~(i/a),d=M.max(0,s-2),u=M.max(0,c-2),m=M.min(o-1,s+2),h=M.min(l-1,c+2);for(let e=d;m>=e;e++)for(let t=u;h>=t;t++){const a=f[e+t*o];if(a&&J(a,[n,i])<r)return 0}return 1},d=e=>{const t=(r=e[0],n=e[1],~~(r/a)+~~(n/a)*o);var r,n;f[t]=e,s.push(e)};for(d([n(e),n(t)]);s.length>0;){const e=i(s.length),t=s[e];let a=0;for(let e=0;100>e;e++){const e=n(2*M.PI),i=M.sqrt(n(3))*r,o=[t[0]+i*M.cos(e),t[1]+i*M.sin(e)];if(c(o[0],o[1])){d(o),a=1;break}}a||s.splice(e,1)}return f.filter((e=>void 0!==e))})(o,c,m);h=f(h);let b=[];for(let e of h){let t=1,r=M.min(o,c)*n(.1,.5),a=M.abs(l(.3*r,r))/2;e[2]=a;for(let r of b)J(e,r)<e[2]+r[2]&&(t=0);t&&b.push(e)}for(let e of b)s(.5)&&d.push(re(...e,u));let p=i(2,9)+10,g=i(2,9)+1,v=c/p,x=o/g,y=[],E=i(7,16)+1;for(let e=0;E>e;e++){let e=s(.5),t=s(.5),r=(t?i(g/2):i(g/2,g)+1)*x,a=(t?i(p/2):i(p/2,p)+1)*v,n=(t?i(g/2,g)+1:i(g/2))*x,l=(t?i(p/2,p)+1:i(p/2))*v,f=[e?r:0,e?0:a],d=[e?n:o,e?c:l];y.push(te(f,d))}let R=e=>[e.slice(0,e.length/2),e.slice(e.length/2,e.length)],T=e=>{let t=[],r=[];for(let a of e)a.silouette?t.push(a):r.push(a);return[t,...R(r)]};d=T(d),y=T(y);let w=(e,t,r,a)=>{e.clear();let n=r[a.indexOf(t)]||[];for(let t of n)t.draw(e)},A=V(((e,{frameCount:t})=>(w(e,t,y,[1,2,4]),{completed:5===t}))),_=V(((e,{frameCount:t,clear:r})=>(r(),w(e,t,d,[0,3,5]),{completed:5===t,uniforms:{jittering:{seed:n(),intensity:.2,jitterSize:50}}})),[G]),S=V(((e,{frameCount:t})=>(t||(e.fill(r),e.rect(0,0,o,c)),[A,_].forEach((t=>e.image(t.engine.canvas))),{completed:5===t,post:{saturation:1.4,contrast:1.1,brightness:-.15},uniforms:{oilNoise:{intensity:.3},convolution:{dist:.2,intensity:.06},convolutionSharpen:{dist:.3,intensity:.03}}})),[{name:"oilNoise",vertex:$,fragment:j(I()),uniforms:[{name:"intensity",type:"uniform1f"}]},X(),X("sharpen")]);return[_,A,S]})(u)),v()};navigator.userAgent.includes("HeadlessChrome")||(W.addEventListener("resize",x),W.addEventListener("keydown",(e=>"s"===e.key?g.save():""))),x()})(); }],
[0,()=>{console.log("Artist 38. Florian Zumbrunn -- platform 0"); const fzr = () => { return R.random_dec() } class At{constructor(){this._entities=[]}add(n){if(typeof n!="function")throw new Error("Entity must be a function");this._entities.push(n)}remove(n){const o=this._entities.indexOf(n);o!==-1&&this._entities.splice(o,1)}dispatch(...n){for(const o of this._entities)typeof o=="function"?o(...n):console.error("Event: dispatch: entity is not a function")}clear(){this._entities=[]}dispose(){this._entities=null}}const e={id:"bmfloz",screen:{width:0,height:0},size:{width:2160,height:3840},onRender:new At,rand:null},W=[];function rt(){e.screen.width=window.innerWidth,e.screen.height=window.innerHeight;for(const t of W)t()}window.addEventListener("resize",rt,!1);window.addEventListener("orientationchange",rt,!1);rt();const Rt={add:t=>{W.push(t)},remove:t=>{const n=W.indexOf(t);n!==-1&&W.splice(n,1)}};function Et(t,n="center"){t.style.boxShadow="0 0 10px rgba(0,0,0,0.5)",t.style.position="absolute";function o(){let{width:r,height:i}=e.screen;r=Math.min(e.size.width,r),i=Math.min(e.size.height,i),r=r,i=i;let a=t.width,s=t.height;if(e.screen.height<t.height){let v=a/s;s=i,a=i*v,a>r&&(v=s/a,a=r,s=r*v)}else{let v=s/a;a=r,s=r*v,s>i&&(v=a/s,s=i,a=i*v)}t.style.height=s+"px",t.style.width=a+"px"}Rt.add(o),o()}const ot=(t,n,o)=>{const r=t.createShader(n);if(t.shaderSource(r,o),t.compileShader(r),t.getShaderParameter(r,t.COMPILE_STATUS))return r;console.warn(t.getShaderInfoLog(r))},Pt=(t,n,o)=>{const r=t.createProgram();t.attachShader(r,n),t.attachShader(r,o),t.linkProgram(r);var i=t.getProgramParameter(r,t.LINK_STATUS);if(i)return r;console.warn(t.getProgramInfoLog(r)),t.deleteProgram(r)},ft=(t,n,o)=>{const r=ot(t,t.VERTEX_SHADER,n),i=ot(t,t.FRAGMENT_SHADER,o);return{vert:r,frag:i,program:Pt(t,r,i)}};function gt(t,n,o){const r=t.createTexture();t.bindTexture(e.glt2,r),t.texImage2D(e.glt2,0,t.RGBA,n,o,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(e.glt2,e.gltmi,t.LINEAR),t.texParameteri(e.glt2,e.gltma,t.LINEAR),t.texParameteri(e.glt2,e.gltws,t.CLAMP_TO_EDGE),t.texParameteri(e.glt2,e.gltwt,t.CLAMP_TO_EDGE);const i=t.createFramebuffer();return t.bindFramebuffer(e.glfb,i),t.framebufferTexture2D(e.glfb,t.COLOR_ATTACHMENT0,e.glt2,r,0),t.bindFramebuffer(e.glfb,null),{framebuffer:i,texture:r}}let nt=e.rand;function Ut(){nt=e.rand}function Mt(t){return t!=0?t<0?-1:1:0}function Ft(){return St()?1:-1}function St(){return nt()>.5}function O(t,n,o){if(t==n)return t;const r=nt()*(n-t)+t;return Lt(r,t,n,o)}function Lt(t,n,o,r){const i=Mt(t);return r=Math.abs(r),t=(t-n)/(o-n),t=i>0?t:t-1,t=Math.pow(t*i,Math.abs(r)),t=i>0?t:1-t,t*(o-n)+n}function $(t){return t=t.replace(/_f/g,"float"),t=t.replace(/_v2/g,"vec2"),t=t.replace(/_v3/g,"vec3"),t=t.replace(/_v4/g,"vec4"),t=t.replace(/_s2/g,"sampler2D"),t=t.replace(/_t/g,"texture2D"),t=t.replace(/_v/g,"varying"),t=t.replace(/_u/g,"uniform"),t=t.replace(/_a/g,"attribute"),t=t.replace(/_smst/g,"smoothstep"),t=t.replace(/_re/g,"return"),t}let C=null,K=null,Z=null,J=null;const j=5e4;function Bt(t){const n=$(` precision mediump _f; _a _v2 avp; _a _v3 ao; _a _v3 ac; _v _v3 vc; void main() { _v2 pos = avp.xy; pos += ao.xy; vc = ac; gl_Position = vec4( pos.xy, ao.z, 1.0 ); }`),o=$(` precision mediump _f; _v _v3 vc; void main() { gl_FragColor = vec4( vc, 1. ); }`);C=ft(t,n,o).program;let i=null,a=null;const s=()=>{const u=p(j);i=u.vertices,K=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,K),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW),Z=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,Z),t.bufferData(t.ARRAY_BUFFER,u.offsets,t.STATIC_DRAW),J=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,J),t.bufferData(t.ARRAY_BUFFER,u.colors,t.STATIC_DRAW)};function v(u){if(u<j*.1){const c=e.rand()*10+12+O(0,10,5),_=e.rand()*2-1;return{x:_,y:e.rand()*.5-.5-O(0,.025,5)+Math.sin(_*2.1)*.035,z:e.rand()*-1,w:c*e.rand()*2,h:c*.25+e.rand()*c*.25}}else if(u<j*.2){const c=e.rand()*10+10+O(0,35,5),_=e.rand()*2-1;return{x:_,y:e.rand()*1.8-.7+Math.sin(_*2.1)*.035,z:e.rand()*1,w:c*2*e.rand(),h:c*.25+e.rand()*c*.25}}else{const c=e.rand()*15+20+O(0,35,5),_=e.rand()*2-1;return{x:_,y:e.rand()*1.8-.65-O(0,Math.cos(_)*.05,2)+Math.sin(_*1.1)*.035,z:e.rand()*1,w:c*1.5,h:c*.2+e.rand()*c*.75}}}function p(u){const c=[[.984313725490196,.9372549019607843,.9764705882352941],[.9725490196078431,.7215686274509804,.9333333333333333],[.9176470588235294,.8509803921568627,.9058823529411765],[.984313725490196,.5137254901960784,.9137254901960784],[1,.984313725490196,.996078431372549],[.9764705882352941,.47058823529411764,.7803921568627451],[.996078431372549,.984313725490196,1],[.9921568627450981,.8666666666666667,.9607843137254902],[.8274509803921568,.9450980392156862,.7019607843137254],[.984313725490196,.9372549019607843,.9764705882352941],[.9725490196078431,.7215686274509804,.9333333333333333],[.9176470588235294,.8509803921568627,.9058823529411765],[.984313725490196,.5137254901960784,.9137254901960784],[1,.984313725490196,.996078431372549],[.8274509803921568,.9450980392156862,.7019607843137254],[.5843137254901961,.4196078431372549,.4627450980392157],[.2196078431372549,.14901960784313725,.16470588235294117],[.32941176470588235,.6431372549019608,.24705882352941178],[.25882352941176473,.6784313725490196,.8352941176470589],[.9490196078431372,.8980392156862745,.9215686274509803]],_=6,l=_*2,h=_*3;a=new Float32Array(u*l);const T=new Float32Array(u*h),P=new Float32Array(u*h);for(let x=0;x<u;x++){const y=x*l,A=x*h,{x:g,y:b,z,w:U,h:V}=v(x),w=U/e.size.width,m=V/e.size.height,F=[-w,-m,w,-m,-w,m,-w,m,w,-m,w,m],d=[g,b,z],I=[...d,...d,...d,...d,...d,...d],S=c[e.rand()*c.length>>0],Tt=[...S,...S,...S,...S,...S,...S];a.set(F,y),T.set(I,A),P.set(Tt,A)}return{vertices:a,offsets:T,colors:P}}s()}function Dt(t){t.useProgram(C);const n=t.getAttribLocation(C,"avp");t.bindBuffer(t.ARRAY_BUFFER,K),t.vertexAttribPointer(n,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(n);const o=t.getAttribLocation(C,"ao");t.bindBuffer(t.ARRAY_BUFFER,Z),t.vertexAttribPointer(o,3,t.FLOAT,!1,0,0),t.enableVertexAttribArray(o);const r=t.getAttribLocation(C,"ac");t.bindBuffer(t.ARRAY_BUFFER,J),t.vertexAttribPointer(r,3,t.FLOAT,!1,0,0),t.enableVertexAttribArray(r);const i=t.getUniformLocation(C,"uc");t.uniform4f(i,1,0,1,1);const a=t.getUniformLocation(C,"ur");t.uniform1f(a,e.size.width/e.size.height),t.drawArrays(t.TRIANGLES,0,6*j)}function Vt(t){return t*t*t}function it(t){const n=t-1;return n*n*n+1}function vt(t){this.p=new Uint8Array(256),this.perm=new Uint8Array(512),this.permMod12=new Uint8Array(512);for(var n=0;256>n;n++)this.p[n]=256*e.rand();for(n=0;512>n;n++)this.perm[n]=this.p[255&n],this.permMod12[n]=this.perm[n]%12}var It=.5*(Math.sqrt(3)-1),Y=(3-Math.sqrt(3))/6;vt.prototype={grad3:new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]),noise2D:function(t,n){var o,r,i=this.permMod12,a=this.perm,s=this.grad3,v=0,p=0,u=0,c=(t+n)*It,_=Math.floor(t+c),l=Math.floor(n+c),h=(_+l)*Y,T=_-h,P=l-h,x=t-T,y=n-P;x>y?(o=1,r=0):(o=0,r=1);var A=x-o+Y,g=y-r+Y,b=x-1+2*Y,z=y-1+2*Y,U=255&_,V=255&l,w=.5-x*x-y*y;if(w>=0){var m=3*i[U+a[V]];w*=w,v=w*w*(s[m]*x+s[m+1]*y)}var F=.5-A*A-g*g;if(F>=0){var d=3*i[U+o+a[V+r]];F*=F,p=F*F*(s[d]*A+s[d+1]*g)}var I=.5-b*b-z*z;if(I>=0){var S=3*i[U+1+a[V+1]];I*=I,u=I*I*(s[S]*b+s[S+1]*z)}return 70*(v+p+u)}};let st=null;const ut=(t=e.rand)=>(st=new vt,st);function G(t,n,{rad:o=50,radVar:r=5,radReduction:i=.4,offsetX:a=0,offsetY:s=0,aOrigin:v=Math.PI*.5,color:p="#f0f"}={}){let u=n[0].x,c=n[0].y,_=u+Math.cos(v+Math.PI*.5)*o,l=c+Math.sin(v+Math.PI*.5)*o,h=u+Math.cos(v-Math.PI*.5)*o,T=c+Math.sin(v-Math.PI*.5)*o,P,x,y,A=0;const g=n.length;for(let b=1;b<g;b++){const{x:z,y:U}=n[b],V=u-z,w=c-U,m=Math.atan2(w,V),F=Vt(b/g);let d=o+e.rand()*r;d*=1-i*F,b==1&&(_+=Math.cos(m+Math.PI*.5)*d,l+=Math.sin(m+Math.PI*.5)*d,h+=Math.cos(m-Math.PI*.5)*d,T+=Math.sin(m-Math.PI*.5)*d),P=z+Math.cos(m+Math.PI*.5)*d,y=U+Math.sin(m+Math.PI*.5)*d,x=z+Math.cos(m-Math.PI*.5)*d,A=U+Math.sin(m-Math.PI*.5)*d,t.fillStyle=p,t.strokeStyle=p,t.beginPath(),t.moveTo(a+_,s+l),t.lineTo(a+P,s+y),t.lineTo(a+x,s+A),t.lineTo(a+h,s+T),t.stroke(),t.fill(),t.closePath(),_=P,l=y,h=x,T=A,u=z,c=U}}const L=document.createElement("canvas");L.width=e.size.width;L.height=e.size.height;L.style.width=`${e.size.width}px`;L.style.height=`${e.size.height}px`;const M=L.getContext("2d");let H=[],at=0,tt=null,B=null;function Ct(t){const n=t.vertices;let o=t.a;const r=e.rand()*10+10,i=10*e.rand()+30>>0;let a=t.x,s=t.y;for(let v=0;v<i;v++){a+=Math.cos(o)*r,s+=Math.sin(o)*r;const p=tt.noise2D(a*.001,s*(8e-4+e.rand()*.01))*Math.PI*.1;o+=p,n.push({x:a,y:s})}}function Nt(){tt=ut(),at=20+e.rand()*10>>0;const t=[110,50,20,10,5];for(let n=0;n<at;n++){const o=[],r=[],i=e.rand()*5>>0,a=e.size.height-i*(200*it(1-i/5))+50,s=1-i/5;let v=t[i]+e.rand()*10;const p={x:e.rand()*(e.size.width+400)-200,y:a,z:it(s),rad:v,vertices:o,branches:r,layer:i};H.push(p);let u=20,c=p.x,_=p.y,l=0;const h=e.size.height/u;for(;;){const T=l/h,P=c,x=_;c+=tt.noise2D(c*.001,_*8e-4)*(10*T),_-=u;const y=c-P,A=_-x,g=Math.atan2(A,y);if(T>.2&&r.length<20&&e.rand()<.315*T){const b=Ft(),z={x:c,y:_,a:g+b*Math.PI*.5+e.rand()*Math.PI*.4*-b,rad:v*(.4+e.rand()*.1),vertices:[]};r.push(z),Ct(z)}if(o.push({x:c,y:_}),l++,_<0)break}}H=H.sort((n,o)=>o.layer-n.layer)}function Ot(){M.fillStyle="#57aff2",M.fillRect(0,0,L.width,L.height)}function Gt(){for(const t of H){const n=t.rad,o=t.vertices;G(M,o,{rad:n*t.z,color:"#281a17"}),G(M,o,{rad:n*t.z*.7,offsetX:5,color:"#311f2f"}),G(M,o,{rad:n*t.z*.3,offsetX:10,color:"#47461c"});for(const r of t.branches){const i=r.vertices;G(M,i,{rad:r.rad*t.z,radReduction:.8,color:"#281a17"}),G(M,i,{rad:r.rad*t.z*.3,offsetY:10,radReduction:.8,color:"#47461c"})}}}let D=[],dt=[];function Yt(){B=ut();const t=10,n=(e.size.width+200)/t;let o=-100,r=150-60,i=[];D.push({rad:400,color:"#2a5543",vertices:i});for(let s=0;s<11;s++)i.push({x:o,y:e.size.height-r}),r+=B.noise2D(o*.001,r*1e-4)*10,o+=n;i=[],o=-100,r=200-60,D.push({rad:400,color:"#404043",vertices:i});for(let s=0;s<12;s++)i.push({x:o,y:e.size.height-r+100}),r+=B.noise2D(o*.001,r*1e-4)*10,o+=n;i=[],o=-300,r=200-60,D.push({rad:200,color:"#45844b",vertices:i});for(let s=0;s<12;s++)i.push({x:o,y:e.size.height-r}),r+=B.noise2D(o*.1,r*.01)*50,o+=n;i=[],o=-200,r=200-60,D.push({rad:100,color:"#3e782d",vertices:i});for(let s=0;s<12;s++)i.push({x:o,y:e.size.height-r}),r+=B.noise2D(o*.01,r*.01)*20,o+=n;i=[],o=-200,r=50-60,D.push({rad:100,color:"#748630",vertices:i});for(let s=0;s<6;s++)i.push({x:o,y:e.size.height-r-100}),r+=B.noise2D(o*.01,r*.01)*50,o+=n;i=[],o=800,r=100-60,D.push({rad:50,color:"#748630",vertices:i});for(let s=0;s<8;s++)i.push({x:o,y:e.size.height-r-100}),r+=B.noise2D(o*.01,r*.01)*50,o+=n;i=[],o=-100,r=50-60,D.push({rad:50,color:"#226f42",vertices:i});for(let s=0;s<12;s++)i.push({x:o,y:e.size.height-r+50}),r+=B.noise2D(o*.01,r*.01)*50,o+=n;const a=["#2a5543","#404043","#45844b","#3e782d","#748630","#226f42"];for(let s=0;s<200;s++){const v=e.rand()*e.size.width,p=e.size.height-e.rand()*600+50,u=e.rand()*60+10,c=u*.6,_=a[e.rand()*a.length>>0],l=e.rand()*255;dt.push({x:v,y:p,w:u,h:c,color:_,aColor:l})}}function kt(){for(const t of D)G(M,t.vertices,{rad:t.rad,color:t.color});for(const t of dt)M.fillStyle=t.color,M.fillRect(t.x,t.y,t.w,t.h)}let q=null;function Xt(t){q=t.createTexture(),t.bindTexture(e.glt2,q),t.texParameteri(e.glt2,e.gltws,t.CLAMP_TO_EDGE),t.texParameteri(e.glt2,e.gltwt,t.CLAMP_TO_EDGE),t.texParameteri(e.glt2,e.gltmi,t.LINEAR),t.texParameteri(e.glt2,e.gltma,t.LINEAR),t.texImage2D(e.glt2,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,L),t.bindTexture(e.glt2,null)}function Wt(t){return t.bindTexture(e.glt2,q),t.texImage2D(e.glt2,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,L),t.bindTexture(e.glt2,null),q}let lt=-1,xt=1,mt=.78,pt=0,ht=0,E=null,jt=$(` precision mediump _f; _a _v2 aPosition; _a _v2 aUV; _v _v2 vUV; void main() { vUV = aUV; gl_Position = _v4(aPosition, 0.0, 1.0); } `);const Ht=$(` #extension OES_standard_derivatives : enable #extension GL_OES_standard_derivatives : enable precision mediump _f; _v3 mod289(_v3 x) { _re x - floor(x * (1.0 / 289.0)) * 289.0; } _v4 mod289(_v4 x) { _re x - floor(x * (1.0 / 289.0)) * 289.0; } _v4 prm(_v4 x) { _re mod289(((x * 34.0) + 1.0) * x); } _v4 tis(_v4 r) { _re 1.792 - 0.853 * r; } _u _s2 uTPet; _u _s2 uTLand; _u _f uTime; _u _f uSeed; _u _v2 uResolution; _u _f uRatio; _u _f uSV; _v _v2 vUV; _v2 fade(_v2 t) {_re t*t*t*(t*(t*6.0-15.0)+10.0);} _f cns(_v2 P){ _v4 Pi = floor(P.xyxy) + _v4(0.0, 0.0, 1.0, 1.0); _v4 Pf = fract(P.xyxy) - _v4(0.0, 0.0, 1.0, 1.0); Pi = mod(Pi, 289.0); // To avoid truncation effects in permutation _v4 ix = Pi.xzxz; _v4 iy = Pi.yyww; _v4 fx = Pf.xzxz; _v4 fy = Pf.yyww; _v4 i = prm(prm(ix) + iy); _v4 gx = 2.0 * fract(i * 0.024) - 1.0; // 1/41 = 0.024... _v4 gy = abs(gx) - 0.5; _v4 tx = floor(gx + 0.5); gx = gx - tx; _v2 g00 = _v2(gx.x,gy.x); _v2 g10 = _v2(gx.y,gy.y); _v2 g01 = _v2(gx.z,gy.z); _v2 g11 = _v2(gx.w,gy.w); _v4 norm = 1.793 - 0.853 * _v4(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)); g00 *= norm.x; g01 *= norm.y; g10 *= norm.z; g11 *= norm.w; _f n00 = dot(g00, _v2(fx.x, fy.x)); _f n10 = dot(g10, _v2(fx.y, fy.y)); _f n01 = dot(g01, _v2(fx.z, fy.z)); _f n11 = dot(g11, _v2(fx.w, fy.w)); _v2 fade_xy = fade(Pf.xy); _v2 n_x = mix(_v2(n00, n01), _v2(n10, n11), fade_xy.x); _f n_xy = mix(n_x.x, n_x.y, fade_xy.y); _re 2.3 * n_xy; } _f s3mod( _v3 v, _f nb ) { const _v2 C = _v2(1.0 / 6.0, 1.0 / 3.0); const _v4 D = _v4(0.0, 0.5, 1.0, 2.0); _v3 i = floor(v + dot(v, C.yyy)); _v3 x0 = v - i + dot(i, C.xxx); _v3 g = step(x0.yzx, x0.xyz); _v3 l = 1.0 - g; _v3 i1 = min(g.xyz, l.zxy); _v3 i2 = max(g.xyz, l.zxy); _v3 x1 = x0 - i1 + C.xxx; _v3 x2 = x0 - i2 + C.yyy; _v3 x3 = x0 - D.yyy; i = mod289(i); _v4 p = prm(prm(prm(i.z + _v4(0.0, i1.z, i2.z, 1.0)) + i.y + _v4(0.0, i1.y, i2.y, 1.0)) + i.x + _v4(0.0, i1.x, i2.x, 1.0)); _v3 ns = 0.1428 * D.wyz - D.xzx; _v4 j = p - 49.0 * floor(p * ns.z * ns.z); _v4 x_ = floor(j * ns.z); _v4 y_ = floor(j - 7.0 * x_); _v4 x = x_ * ns.x + ns.yyyy; _v4 y = y_ * ns.x + ns.yyyy; _v4 h = 1.0 - abs(x) - abs(y); _v4 b0 = _v4(x.xy, y.xy); _v4 b1 = _v4(x.zw, y.zw); _v4 s0 = floor(b0) * 2.0 + 1.0; _v4 s1 = floor(b1) * 2.0 + 1.0; _v4 sh = -step(h, _v4(0.)); _v4 a0 = b0.xzyw + s0.xzyw * sh.xxyy; _v4 a1 = b1.xzyw + s1.xzyw * sh.zzww; _v3 p0 = _v3(a0.xy, h.x); _v3 p1 = _v3(a0.zw, h.y); _v3 p2 = _v3(a1.xy, h.z); _v3 p3 = _v3(a1.zw, h.w); p0 = max(p0, _v3(0.) ); p1 = max(p1, _v3(0.) ); p2 = max(p2, _v3(0.) ); p3 = max(p3, _v3(0.) ); _v4 norm = tis(_v4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))); p0 *= norm.x; p1 *= norm.y; p2 *= norm.z; p3 *= norm.w; _f m0 = floor(abs(dot(x0, x0)) * uSV) / uSV; _f m1 = floor(abs(dot(x1, x1)) * uSV) / uSV; _f m2 = floor(abs(dot(x2, x2)) * uSV) / uSV; _f m3 = floor(abs(dot(x3, x3)) * uSV) / uSV; _v4 m = _v4( 0. ); m = max(nb - _v4(m0, m1, m2, m3), 0. ); m = ( m ); _f noise = 42. * dot(m * m, _v4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3))); _re noise; } _v3 sv3(_v3 x, _f nb ) { _f s = s3mod(_v3(x), nb); _v3 c = _v3(s, s * 10., s); _re c; } _v3 crl( _v3 p, _f nob ){ const _f e = .1; _v3 dx = _v3( e , 0.0 , 0.0 ); _v3 dy = _v3( 0.0 , e , 0.0 ); _v3 dz = _v3( 0.0 , 0.0 , e ); _v3 p_x0 = sv3( p - dx, nob ); _v3 p_x1 = sv3( p + dx, nob ); _v3 p_y0 = sv3( p - dy, nob ); _v3 p_y1 = p_y0; _v3 p_z0 = sv3( p - dz, nob ); _v3 p_z1 = p_x0; _f x = p_y1.z - p_y0.z - p_z1.y + p_z0.y; _f y = p_z1.x - p_z0.x - p_x1.z + p_x0.z; _f z = p_x1.y - p_x0.y - p_y1.x + p_y0.x; const _f divisor = 1.0 / ( 2.0 * e ); _re normalize( _v3( x , y , z ) * divisor ); } _v4 perm(_v4 x){_re mod289(((x * 34.0) + 1.0) * x);} _f ns(_v3 p){ _v3 a = floor(p); _v3 d = p - a; d = d * d * (3.0 - 2.0 * d); _v4 b = a.xxyy + _v4(0.0, 1.0, 0.0, 1.0); _v4 k1 = perm(b.xyxy); _v4 k2 = perm(k1.xyxy + b.zzww); _v4 c = k2 + a.zzzz; _v4 k3 = perm(c); _v4 k4 = perm(c + 1.0); _v4 o1 = fract(k3 * (1.0 / 41.0)); _v4 o2 = fract(k4 * (1.0 / 41.0)); _v4 o3 = o2 * d.z + o1 * (1.0 - d.z); _v2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x); _re o4.y * d.y + o4.x * (1.0 - d.y); } _f grain(_v2 tc, _v2 r, _f f, _f m) { _v2 mult = tc * r; _f offset = ns(_v3(mult / m, f)); _f n1 = ns(_v3(mult, vUV)); _re n1 / 2.0 + 0.5; } _f grain(_v2 tc, _v2 r) { _re grain(tc, r, 0., 2.5); } _v3 gtgrn(_f gs) { _f gp = ns(_v3(vUV * _v2(4., 1.), 0.)); _v3 cns = _v3(grain(vUV, uResolution * gs )); _re cns; } _f blo(_f ba, _f bl) { _re ba < 0.5 ? (2.0 * ba * bl) : (1.0 - 2.0 * (1.0 - ba) * (1.0 - bl)); } _v3 blo(_v3 ba, _v3 bl) { _re _v3(blo(ba.r, bl.r), blo(ba.g, bl.g), blo(ba.b, bl.b)); } _v3 blo(_v3 ba, _v3 bl, _f op) { _re (blo(ba, bl) * op + ba * (1.0 - op)); } _f brd( _f w ) { _f xb = _smst( 0., w, vUV.x ) - (_smst( 1. - w, 1., vUV.x ) ); _f yb = _smst( 0., w * 9./16., vUV.y ) - (_smst( 1. - w * 9./16., 1., vUV.y ) ); _f b = xb * yb; _re b; } _f brd2( _f w ) { _f xb = step(w, vUV.x) * (1.0 - step(1.0 - w, vUV.x)); _f yb = step(w * 9.0 / 16.0, vUV.y) * (1.0 - step(1.0 - w * 9.0 / 16.0, vUV.y)); _f b = xb * yb; _re b; } _v2 stdNormalMap(_f height) { _re -_v2(dFdx(height), dFdy(height)); } _u _f uNbase; void main() { _v2 uvs = vUV; uvs.y *= uRatio; _f bdimp = brd( .12 + cos( uTime * .1 ) * .05); _f bdimp2 = brd( .06 + cos( uTime * .1 ) * .05); _v2 uvcl = vUV; _f uvclMult = 4.; _f seed = 32.; _f csm = 4000. + uSeed; _v3 cl = crl(_v3(uvcl * uvclMult * bdimp + seed * csm, 100.), uNbase + cos( uTime *.001 ) * .1); seed += uTime * .05; uvclMult *= cl.y; seed += cl.x * .1 + cl.y * .01; _v3 cl2 = cl * .1 + cl.x * 10.; seed += uSeed; _f cnuvm = 4.0; _f cnsm = 1.8 - uTime * .00001; _f cnv1 = cns( uvs * cnuvm * bdimp + _v2( ( seed ) * cnsm, 5. + 1. * bdimp + uTime * .001 ) ); _f cnv2 = cns( uvs * cnuvm + _v2( ( seed ) * cnsm + 5.2, 7.3 + uTime * .01 ) ); _f cnv = cns( _v2( cnv1, cnv2 + uTime * .1 ) ) * 5.435; _f mult = ( 1. / 6. ) * 2.; _v2 wu = vUV; wu.y += uTime * .09; wu += cnv * .1; wu += max( cnv, cl.r ) * max( cl.g, cl.b ) * mult; wu += max( 0., cl.g ) * max( cl2.r, cl2.b ) * mult; _v2 wu2 = _v2( vUV.x, 1. - vUV.y ); wu2 = 1. - vUV; wu2.x += uTime * .07 + cos( uTime * .04 ) * cl.r * .04; wu2 -= cnv * .01; wu2.x += max( cnv, cl.r ) * max( cl.g, cl.b) * mult; wu2.x -= max( cnv, cl.g ) * max( cl.r, cl2.b ) * mult; wu2.y -= max( 0., cl.r ) * max( cl.g, cl.b + uTime * .1 ) * mult * 3.; wu = mod( wu, 1. ); wu2 = mod( wu2, 1.5 ); _v4 lnd = _t(uTLand, wu); _v4 lnd2 = _t(uTLand, vUV * cnv1 ); _v2 uvp = wu2; _v4 pt = _t(uTPet, uvp ); _v4 pt2 = _t(uTPet, ( 1. - vUV ) * cnv1 ); _v4 r = _v4( 0. ); r = mix( lnd, pt, pt.a ); r = mix( lnd2, r, 1. - pt2.a ); r = mix( r, pt2, pt2.a ); _v3 gn1 = gtgrn(10.); r.rgb = mix( r.rgb,_t( uTPet,1. - vUV).rgb, ( wu2.x * wu2.y * cnv1 * 2. ) > .5 ? 1. : 0. ); r.rgb = mix( r.rgb, _v3( ( r.r + r.g + r.b ) / 3. ) * _v3( 7. /255., 137./255., 237./255.), 1. - brd2( .0125 + .008 * cl.z ) ); r.rgb = blo( r.rgb, gn1, .1 + .32 * wu2.x ); // ptet .72 _f height = ( r.r + r.g + r.b ) / 3.; _v2 nrm = stdNormalMap( height ); nrm *= .2; nrm += .5; _f lt = dot(nrm, normalize(_v2( -.9, .9 ))); r.rgb += lt * .5 * .05; gl_FragColor = r; } `),$t=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);let et=null;function qt(t){lt=e.rand()*100,xt=e.rand()<.5?e.size.width/e.size.height:e.size.height/e.size.width,mt=.6+O(0,2,3),pt=10+e.rand()*24,ht+=e.rand()*.004,et=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,et),t.bufferData(t.ARRAY_BUFFER,$t,t.STATIC_DRAW),E=ft(t,jt,Ht).program}let ct=0;function Qt(t,{texturePetals:n=null,textureLandscape:o=null,dt:r=1}={}){t.useProgram(E);const i=t.getUniformLocation(E,"uTPet");t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,n),t.uniform1i(i,0);const a=t.getUniformLocation(E,"uTLand");t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,o),t.uniform1i(a,1);const s=t.getUniformLocation(E,"uTime");t.uniform1f(s,ct),ct+=(.0025+ht)*r;const v=t.getUniformLocation(E,"uSeed");t.uniform1f(v,lt);const p=t.getUniformLocation(E,"uResolution");t.uniform2f(p,e.size.width,e.size.height);const u=t.getUniformLocation(E,"uRatio");t.uniform1f(u,xt);const c=t.getUniformLocation(E,"uNbase");t.uniform1f(c,mt);const _=t.getUniformLocation(E,"uSV");t.uniform1f(_,pt);const l=t.getAttribLocation(E,"aPosition"),h=t.getAttribLocation(E,"aUV");t.enableVertexAttribArray(l),t.enableVertexAttribArray(h),t.bindBuffer(t.ARRAY_BUFFER,et),t.vertexAttribPointer(l,2,t.FLOAT,!1,4*Float32Array.BYTES_PER_ELEMENT,0),t.vertexAttribPointer(h,2,t.FLOAT,!1,4*Float32Array.BYTES_PER_ELEMENT,2*Float32Array.BYTES_PER_ELEMENT),t.drawArrays(t.TRIANGLES,0,6)}const yt=[];function bt(){requestAnimationFrame(bt);for(const t of yt)t()}bt();const Kt={add:t=>{yt.push(t)}},Zt=document.querySelectorAll("canvas");for(const t of Zt)t.remove();e.rand=fzr;Ut();let N=null,f=null;const Jt=()=>{N=document.createElement("canvas"),N.width=e.size.width,N.height=e.size.height,Et(N),document.body.appendChild(N),f=N.getContext("webgl",{antialias:!0,alpha:!0}),f.getExtension("OES_standard_derivatives"),f.getExtension("GL_OES_standard_derivatives"),e.glt2=f.TEXTURE_2D,e.gltws=f.TEXTURE_WRAP_S,e.gltwt=f.TEXTURE_WRAP_T,e.gltmi=f.TEXTURE_MIN_FILTER,e.gltma=f.TEXTURE_MAG_FILTER,e.glfb=f.FRAMEBUFFER};Jt();Yt();Nt();Ot();kt();Gt();Xt(f);const te=Wt(f);let k=null,wt=null,zt=null;qt(f);Bt(f);function ee(t){f.enable(f.BLEND),f.blendFunc(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA),f.clearColor(0,0,0,0),f.clear(f.COLOR_BUFFER_BIT),Qt(f,{texturePetals:zt,textureLandscape:te,dt:t})}k||(k=gt(f,e.size.width,e.size.height),wt=k.framebuffer,zt=k.texture);f.bindFramebuffer(f.FRAMEBUFFER,wt);f.viewport(0,0,e.size.width,e.size.height);f.clearColor(0,0,0,0);f.clear(f.COLOR_BUFFER_BIT);Dt(f);f.bindFramebuffer(f.FRAMEBUFFER,null);const re=60,Q=1e3/re;let _t=Date.now(),X=0;Kt.add(()=>{const t=Date.now();if(X+=t-_t,_t=t,X>=Q){const n=X/Q;X-=Q*n,ee(n)}}); }],
[0,()=>{console.log("Artist 33. Rudxane -- platform 0");let{abs:$,ceil:e,floor:_,sin:r,sqrt:i,max:c,min:n,cos:a}=Math;colorPick=pick_color(colorSets=[{cBg:[.8118,.1255,.1451,1],cF:[.0667,.098,.1529,1],cH:[[.8275,.7099,.345,1]],cR:.85,w:1},{cBg:[.1334,.1412,.1804,1],cF:[.6784,.149,.1608,1],cH:[[.1373,.302,.3608,1]],cR:.85,w:1.1},{cBg:[0,0,0,1],cF:[.9,.9,.9,1],cH:[[1,1,1,1]],cR:.85,w:1.2},{cBg:[.1412,.2078,.1804,1],cF:[.8314,.2157,.0235,1],cH:[[.349,.4706,.4196,1]],cR:.75,w:.9},{cBg:[1,1,1,1],cF:[0,0,0,1],cH:[[.2,.2,.2,1],[.4,.4,.4,1]],cR:.3,w:1.5},{cBg:[0,0,0,1],cF:[1,1,1,1],cH:[[.8,.8,.8,1],[.6,.6,.6,1]],cR:.3,w:2},{cBg:[.1098,.0941,.1176,1],cF:[.9255,.9569,.9608,1],cH:[[.5608,.7176,.7373,1]],cR:.5,w:1.15},{cBg:[.0706,.098,.1922,1],cF:[.9255,.9569,.9608,1],cH:[[.7412,.0745,.2353,1]],cR:.7,w:1},{cBg:[.7059,.0784,.0863,1],cF:[1,.6902,.2275,1],cH:[[.4588,.0706,.0745,1]],cR:.7,w:.85},{cBg:[.2156,.2156,.2156,1],cF:[.8118,.0941,.1686,1],cH:[[.9569,.8745,.5137,1]],cR:.7,w:1},{cBg:[.302,0,.4902,1],cF:[1,1,1,1],cH:[[.9608,.9608,.9608,1]],cR:.7,w:1},{cBg:[.95,.95,.92,1],cF:[.0157,.149,.4,1],cH:[[.7843,.1137,.2078,1]],cR:.7,w:1}]);let width,height,xc=_(50*R.random_dec())+40,yc=_(xc/.5625),cBg=colorPick.cBg,cF=colorPick.cF,cH=colorPick.cH,cR=colorPick.cR,ns=1e5*R.random_dec(),nrx=.5+3*R.random_dec(),nry=.5+3*R.random_dec(),nScale=15,gS=.1+R.random_dec()/6,pl=20,gridSizeX=_(10*R.random_dec())+4,gridSizeY=_(10*R.random_dec())+4,animationDuration=15,smudge=.25*R.random_dec()+.1,borderWidth=[.75,1,1.5,2][_(4*R.random_dec())],lineRep=_(6*R.random_dec())+2,sketchRate=20,hSketchRate=sketchRate,doodleMap=[...Array(10)].map(($,e)=>e),grid=[],start=_(10*R.random_dec()),scl,cvs,ctx,gl,verShader,fragShader,bufferShader,vBuf,pShader,pBuffer,img,fBufs,fBufId=0,uC=0;function init(){for(let $ in document.body.style.background="#111111",(rr=document.createElement("canvas")).id="ref",document.body.append(rr),(gl=(cvs=document.getElementsByTagName("canvas")[0]).getContext("webgl2")).clearColor(0,0,0,1),vBuf=gBuffer(),pShader=cProgram(verShader,fragShader),pBuffer=cProgram(verShader,bufferShader),scl=1,""!=window.location.hash&&(scl=parseInt(window.location.hash.replace("#",""))),www=(ww=window.innerWidth)<.5625*(wh=window.innerHeight)?ww:wh/16*9,whh=ww<.5625*wh?ww/9*16:wh,width=Math.max(900,(ww<.5625*wh?ww:wh/16*9)*scl),height=Math.max(1600,(ww<.5625*wh?ww/9*16:wh)*scl),cvs.width=width,cvs.height=height,cvs.style.width="56.25vh",cvs.style.height="100vh",noise.seed(1e4*R.random_dec()),gGrid(),fBufs)gl.deleteFramebuffer($.buf),gl.deleteTexture($.texture);let e=gBase(width,height);img=gTexture(width,height,e),(fBufs=[]).push(cFBuffer(width,height,e)),fBufs.push(cFBuffer(width,height,null)),fBufId=0,run()}function run(){p=uPixels(),gl.deleteTexture(img),img=uTexture(width,height,p),uC+=1,rVisual(),rBuffer(),uC<grid.length*(pl+animationDuration)?setTimeout(()=>{document.title="Finale ("+_(uC/(grid.length*(pl+animationDuration))*100)+"%)",requestAnimationFrame(run)},16):(document.title="Finale",ref&&ref.remove())}function sProgram($){gl.useProgram($),$.vertexPosAttrib=gl.getAttribLocation($,"pos"),gl.enableVertexAttribArray($.vertexPosAttrib),gl.bindBuffer(gl.ARRAY_BUFFER,vBuf),gl.vertexAttribPointer($.vertexPosAttrib,3,gl.FLOAT,!1,0,0)}function rVisual(){let $=fBufId,e=fBufId^=1;dirx=grid[_((uC-1)/(pl+animationDuration))].dx,diry=grid[_((uC-1)/(pl+animationDuration))].dy,dirv=grid[_((uC-1)/(pl+animationDuration))].dirv,dir=grid[_((uC-1)/(pl+animationDuration))].dir,sProgram(pShader),gl.bindFramebuffer(gl.FRAMEBUFFER,fBufs[e].buf),gl.viewport(0,0,width,height),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT),gl.activeTexture(gl.TEXTURE0+$),gl.bindTexture(gl.TEXTURE_2D,fBufs[$].tex),gl.activeTexture(gl.TEXTURE2),gl.bindTexture(gl.TEXTURE_2D,img),gl.uniform1i(gl.getUniformLocation(pShader,"buf"),$),gl.uniform1i(gl.getUniformLocation(pShader,"img"),2),gl.uniform1f(gl.getUniformLocation(pShader,"dirx"),dirx+Math.sin(uC/dirv)*dir),gl.uniform1f(gl.getUniformLocation(pShader,"diry"),diry+Math.cos(uC/dirv)*dir),gl.uniform1f(gl.getUniformLocation(pShader,"frame"),uC),bg=cBg,grid[_((uC-1)/(pl+animationDuration))].t>.5&&(t=grid[_((uC-1)/(pl+animationDuration))].t/20-.025,bg=[cBg[0]+t,cBg[1]+t,cBg[2]+t,1]),coll=grid[_((uC-1)/(pl+animationDuration))].c,gl.uniform4fv(gl.getUniformLocation(pShader,"cBg"),bg),gl.uniform4fv(gl.getUniformLocation(pShader,"cF"),coll),gl.drawArrays(gl.TRIANGLE_STRIP,0,4)}function rBuffer(){sProgram(pBuffer),gl.bindFramebuffer(gl.FRAMEBUFFER,null),gl.viewport(0,0,cvs.width,cvs.height),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT),gl.activeTexture(gl.TEXTURE0),gl.bindTexture(gl.TEXTURE_2D,fBufs[fBufId].tex),gl.uniform1i(gl.getUniformLocation(pBuffer,"buffer"),0),gl.drawArrays(gl.TRIANGLE_STRIP,0,4)}function cProgram($,e){let _=gl.createProgram(),r=cShader(decodeURIComponent("%23version 300 es%0A")+$,gl.VERTEX_SHADER),i=cShader(decodeURIComponent("%23version 300 es%0Aprecision highp float;")+e,gl.FRAGMENT_SHADER);return gl.attachShader(_,r),gl.attachShader(_,i),gl.linkProgram(_),_}function cShader($,e){let _=gl.createShader(e);return gl.shaderSource(_,$),gl.compileShader(_),_}function cFBuffer($,e,_){let r=gl.createFramebuffer(),i=gTexture($,e,_);return gl.bindFramebuffer(gl.FRAMEBUFFER,r),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,i,0),{buf:r,tex:i}}function gTexture($,e,_){let r=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,r),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,$,e,0,gl.RGBA,gl.UNSIGNED_BYTE,_),r}function uTexture($,e,_){let r=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,r),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,$,e,0,gl.RGBA,gl.UNSIGNED_BYTE,_),r}function gBuffer($){let e=gl.createBuffer();return gl.bindBuffer(gl.ARRAY_BUFFER,e),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,1,0,-1,-1,0,1,1,0,1,-1,0]),gl.STATIC_DRAW),e}function uPixels($,r){if(ref=document.getElementById("ref"),ctx.clearRect(0,0,width,height),ctx.beginPath(),ctx.rect(0,0,width,height),ctx.fillStyle="black",ctx.fill(),ctx.closePath(),x1=(g=grid[_(uC/(pl+animationDuration))]).x*width,y1=g.y*height,wi=g.w*width,he=g.h*height,(fR=c(0,(frameRotate=uC/(pl+animationDuration)*(pl+animationDuration)-_(uC/(pl+animationDuration))*(pl+animationDuration))-(pl-1)))>0&&(yRC=e(yc/animationDuration)),uC/(pl+animationDuration)*(pl+animationDuration)-_(uC/(pl+animationDuration))*(pl+animationDuration)>pl-1){if(x1=0,y1=0,wi=width,he=height,wii=width/xc,hee=height/yc,g.t>-1)for(let i=0;i<yc;i++)for(let n=0;n<xc;n++)i>=(fR-1)*yRC&&i<fR*yRC&&g.polys.map($=>{inside([x1+n*wii,y1+i*hee],$)&&dScrawl(x1+n*wii+wii/4,y1+i*hee+hee/4,wii,hee,doodleMap[_(g.t*doodleMap.length)],"#ff0000",lineRep,n,i)})}else g.polys.map($=>{ctx.beginPath(),$.map($=>{ctx.lineTo($[0]*width,$[1]*height)}),ctx.fillStyle="#00ff00",ctx.fill(),ctx.closePath()});return ref}function gBase($,e){(ref=document.getElementById("ref")).width=width,ref.height=height,ref.style.display="none",(ctx=ref.getContext("2d")).beginPath(),ctx.rect(0,0,width,height),ctx.fillStyle="rgb("+_(255*cBg[0])+","+_(255*cBg[1])+","+_(255*cBg[2])+")",ctx.fill(),ctx.closePath(),x1=0,y1=0,wi=width,he=height,wii=width/xc,hee=height/yc,type=doodleMap[_(R.random_dec()*doodleMap.length)];for(let r=0;r<xc;r++)for(let i=0;i<yc;i++)dScrawl(x1+r*wii+wii/4,y1+i*hee+hee/4,wii,hee,doodleMap[start],"rgb("+_(255*cF[0])+","+_(255*cF[1])+","+_(255*cF[2])+")",lineRep,r,i);return ref}function sc($){return width/1500*$}function dScrawl($,e,r,i,c=0,n,a=1,l=0,o=0){modulo=o*xc+l;for(let f=0;f<a;f++)ctx.beginPath(),noii=noise.simplex2($/width/nrx,e/height/nry)*sc(nScale),bv=1-2*gS,letterMap={a:[[0,1,0],[0,0,0],[1,0,0],[1,1,0],[0,.35,1],[1,.35,0]],b:[[0,0,0],[.8,0,0],[1,.2,0],[.8,.4,0],[0,.4,0],[.8,.4,0],[1,.7,0],[.8,1,0],[0,1,0],[0,0,0]],c:[[1,0,0],[0,0,0],[0,1,0],[1,1,0]],d:[[0,0,0],[.8,0,0],[1,.2,0],[1,.8,0],[.8,1,0],[0,1,0],[0,0,0]],e:[[1,0,0],[0,0,0],[0,1,0],[1,1,0],[0,.5,1],[.7,.5,0]],g:[[1,0,0],[0,0,0],[0,1,0],[1,1,0],[1,.5,0],[.5,.5,0]],h:[[0,0,0],[0,1,0],[0,.5,1],[1,.5,0],[1,0,1],[1,1,0]],i:[[.5,0,0],[.5,1,0],[.3,0,1],[.7,0,0],[.3,1,1],[.7,1,0]],l:[[0,0,0],[0,1,0],[1,1,0]],m:[[0,1,0],[0,0,0],[.5,.3,0],[1,0,0],[1,1,0]],n:[[0,1,0],[0,0,0],[1,1,0],[1,0,0]],o:[...Array(_(20*Math.PI))].map(($,e)=>[Math.cos(e/10)/2+.5,Math.sin(e/10)/2+.5,0]),p:[[0,1,0],[0,0,0],[1,0,0],[1,.4,0],[0,.4,0]],r:[[0,1,0],[0,0,0],[.8,0,0],[1,.15,0],[.8,.3,0],[0,.3,0],[.2,.3,0],[1,1,0]],s:[[1,0,0],[0,0,0],[0,.5,0],[1,.5,0],[1,1,0],[0,1,0]],t:[[0,0,0],[1,0,0],[.5,0,0],[.5,1,0]],u:[[0,0,0],[0,1,0],[1,1,0],[1,0,0]],v:[[0,0,0],[.5,1,0],[1,0,0]],w:[[0,0,0],[.3,1,0],[.5,.5,0],[.7,1,0],[1,0,0]],y:[[.5,1,0],[.5,.35,0],[0,0,0],[.5,.35,0],[1,0,0]],z:[[0,0,0],[1,0,0],[0,1,0],[1,1,0]],k:[[0,1,0],[0,0,0],[1,0,1],[0,.5,0],[1,1,0]],x:[[0,0,0],[1,1,0],[0,1,1],[1,0,0]]," ":[]},0===c&&(modu=modulo%(lett="venice").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),1===c&&(modu=modulo%(lett="newyork").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),2===c&&(modu=modulo%(lett="berlin").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),3===c&&(modu=modulo%(lett="london").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),4===c&&(modu=modulo%(lett="mexicocity").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),5===c&&(modu=modulo%(lett="tokyo").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),6===c&&(modu=modulo%(lett="buenosaires").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),7===c&&(modu=modulo%(lett="paris").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),8===c&&(modu=modulo%(lett="venezia").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),9===c&&(modu=modulo%(lett="brightmoments").length,sBase=letterMap[lett[modu]].map(_=>({x:$+bv*r*_[0],y:e+bv*i*_[1],d:_[2]}))),sBase.map(($,e)=>{0===(d=$.d?$.d:0)?ctx.lineTo($.x+noise.simplex3($.x/width*100,$.y/height*100,f/4)*r/sketchRate-r/hSketchRate,$.y+noise.simplex3($.x/width*100,$.y/height*100,4*f)*i/sketchRate-i/hSketchRate):ctx.moveTo($.x+noise.simplex3($.x/width*100,$.y/height*100,f/4)*r/sketchRate-r/hSketchRate,$.y+noise.simplex3($.x/width*100,$.y/height*100,4*f)*i/sketchRate-i/hSketchRate)}),ctx.strokeStyle=n,ctx.lineWidth=sc(borderWidth),ctx.stroke(),ctx.closePath()}function inside($,e){for(var _=$[0],r=$[1],i=!1,c=0,n=e.length-1;c<e.length;n=c++){var a=e[c][0]*width,l=e[c][1]*height,o=e[n][0]*width,f=e[n][1]*height;l>r!=f>r&&_<(o-a)*(r-l)/(f-l)+a&&(i=!i)}return i}function gGrid(){for(let $=0;$<_(8*R.random_dec())+3;$++)padding=0,div=1,len=_(8*R.random_dec())+2,grid.push({t:R.random_dec()>.9?-1:R.random_dec(),s:R.random_dec()/div/2,dx:2*R.random_dec()-1,dy:2*R.random_dec()-1,dir:R.random_dec()>5?1:-1,dirv:50*R.random_dec()+5,c:R.random_dec()>cR?cH[_(R.random_dec()*cH.length)]:cF,polys:[...Array(len)].map(($,e)=>(bor=R.random_dec()>.5,hh=1/(2*len+1),comp=R.random_dec()>.6?.05*R.random_dec()-.025:0,ccomp2=R.random_dec()>.85&&0===padding?.0125*R.random_dec()-.00625:0,R.random_dec()>.95)?[]:[[e*hh*2+(bor>0?hh:0)+comp-ccomp2,padding],[e*hh*2+(bor>0?hh:0)+hh+comp-ccomp2,padding],[e*hh*2+(bor>0?hh:0)+hh+comp+ccomp2,1-padding],[e*hh*2+(bor>0?hh:0)+comp+ccomp2,1-padding],])});for(let e=0;e<_(10)+5;e++)padding=0,div=1,len=_(R.random_dec()*((gridSizeX+gridSizeY)/2))+2,ang=0,mosa=_(10*R.random_dec())+2,grid.push({t:R.random_dec()>.75?-1:R.random_dec(),s:R.random_dec()/div,dx:2*R.random_dec()-1,dy:2*R.random_dec()-1,dir:R.random_dec()>5?1:-1,dirv:50*R.random_dec()+5,c:R.random_dec()>cR?cH[_(R.random_dec()*cH.length)]:cF,polys:[...Array(gridSizeX*gridSizeY)].map(($,e)=>(sy=_(e/gridSizeX)/gridSizeY,sx=e%gridSizeX/gridSizeX,gw=1/gridSizeX,gh=1/gridSizeY,(e+1)%mosa!=0||R.random_dec()>.9)?[]:[[sx,sy],[sx+gw,sy],[sx+gw,sy+gh],[sx,sy+gh]])});(grid=grid.sort(($,e)=>$.s-e.s))[grid.length-1].c=cF}function getRotatedCoords($,e,_,r,i){let c=Math.PI/180*i,n=Math.cos(c),a=Math.sin(c);return[n*(_-$)+a*(r-e)+$,n*(r-e)-a*(_-$)+e]}function pick_color($){let e,_=[];for(e=0;e<$.length;e++)_[e]=$[e].w+(_[e-1]||0);let r=R.random_dec()*_[_.length-1];for(e=0;e<_.length&&!(_[e]>r);e++);return $[e]}verShader="in vec3 pos;out vec2 vUv;void main(){gl_Position=vec4(pos,1.);vUv=(pos.xy+1.)/2.;}",fragShader=`uniform sampler2D buf,img;uniform float dirx,diry,frame;uniform vec4 cBg,cF;in vec2 vUv;out vec4 col;vec3 random3(vec3 c) {float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));vec3 r;r.z = fract(512.0*j);j *= .125;r.x = fract(512.0*j);j *= .125;r.y = fract(512.0*j);return r-0.5;}const float F3 = 0.3333333;const float G3 = 0.1666667;float sim3(vec3 p) {vec3 s = floor(p + dot(p, vec3(F3)));vec3 x = p - s + dot(s, vec3(G3));vec3 e = step(vec3(0.0), x - x.yzx);vec3 i1 = e*(1.0 - e.zxy);vec3 i2 = 1.0 - e.zxy*(1.0 - e);vec3 x1 = x - i1 + G3;vec3 x2 = x - i2 + 2.0*G3;vec3 x3 = x - 1.0 + 3.0*G3;vec4 w, d;w.x = dot(x, x);w.y = dot(x1, x1);w.z = dot(x2, x2);w.w = dot(x3, x3);w = max(0.6 - w, 0.0);d.x = dot(random3(s), x);d.y = dot(random3(s + i1), x1);d.z = dot(random3(s + i2), x2);d.w = dot(random3(s + 1.0), x3);w *= w;w *= w;d *= w;return dot(d, vec4(52.0));}void main(){vec4 ref = texture(img,vUv);vec4 buffer = texture(buf,vUv);float rnd = sim3(vec3((vUv.x+frame/100.)*500.,(vUv.y-frame/100.)*500.,${ns}));col = buffer;vec4 bgColor = mix(buffer,cBg,.25+rnd/2.);vec4 textureBG = mix(cBg,vec4(vec3(cBg.rgb-vec3(sim3(vec3((vUv.x+frame/1000.)*500.,(vUv.y-frame/1000.)*500.,${ns}))/4.)),1.),sim3(vec3((vUv.x+frame/1000.)*50000.,(vUv.y-frame/1000.)/4.,${ns})));if(ref.g>.0) {col = mix(textureBG,buffer,sim3(vec3((vUv.x+frame/100.)*5.,(vUv.y-frame/100.)*5.,${ns}))/1.);if(rnd<${smudge}) {col = mix(texture(buf,vec2(vUv.x+.005*dirx,vUv.y+.005*diry)),textureBG,rnd/4.);}}if(ref.r>.0) {col = mix(cBg,cF,ref.r);}}`,bufferShader="uniform sampler2D buffer;in vec2 vUv;out vec4 col;void main(){col=texture(buffer,vec2(vUv.x,1.-vUv.y));}",window.onload=init,function($){var e=$.noise={};function r($,e,_){this.x=$,this.y=e,this.z=_}r.prototype.dot2=function($,e){return this.x*$+this.y*e},r.prototype.dot3=function($,e,_){return this.x*$+this.y*e+this.z*_};var c=[new r(1,1,0),new r(-1,1,0),new r(1,-1,0),new r(-1,-1,0),new r(1,0,1),new r(-1,0,1),new r(1,0,-1),new r(-1,0,-1),new r(0,1,1),new r(0,-1,1),new r(0,1,-1),new r(0,-1,-1)],n=[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],a=Array(512),l=Array(512);e.seed=function($){$>0&&$<1&&($*=65536),($=_($))<256&&($|=$<<8);for(var e,r=0;r<256;r++)e=1&r?n[r]^255&$:n[r]^$>>8&255,a[r]=a[r+256]=e,l[r]=l[r+256]=c[e%12]},e.seed(0);var o=.5*(i(3)-1),f=(3-i(3))/6,h=1/3,u=1/6;e.simplex2=function($,e){var r,i,c,n,h,u=($+e)*o,m=_($+u),x=_(e+u),s=(m+x)*f,v=$-m+s,T=e-x+s;v>T?(n=1,h=0):(n=0,h=1);var E=v-n+f,B=T-h+f,w=v-1+2*f,y=T-1+2*f,S=l[(m&=255)+a[x&=255]],F=l[m+n+a[x+h]],U=l[m+1+a[x+1]],b=.5-v*v-T*T;b<0?r=0:(b*=b,r=b*b*S.dot2(v,T));var D=.5-E*E-B*B;D<0?i=0:(D*=D,i=D*D*F.dot2(E,B));var A=.5-w*w-y*y;return A<0?c=0:(A*=A,c=A*A*U.dot2(w,y)),70*(r+i+c)},e.simplex3=function($,e,r){var i,c,n,o,f,m,x,s,v,T,E=($+e+r)*h,B=_($+E),w=_(e+E),y=_(r+E),S=(B+w+y)*u,F=$-B+S,U=e-w+S,b=r-y+S;F>=U?U>=b?(f=1,m=0,x=0,s=1,v=1,T=0):F>=b?(f=1,m=0,x=0,s=1,v=0,T=1):(f=0,m=0,x=1,s=1,v=0,T=1):U<b?(f=0,m=0,x=1,s=0,v=1,T=1):F<b?(f=0,m=1,x=0,s=0,v=1,T=1):(f=0,m=1,x=0,s=1,v=1,T=0);var D=F-f+u,A=U-m+u,P=b-x+u,X=F-s+2*u,C=U-v+2*u,I=b-T+2*u,G=F-1+3*u,H=U-1+3*u,L=b-1+3*u,z=l[(B&=255)+a[(w&=255)+a[y&=255]]],k=l[B+f+a[w+m+a[y+x]]],M=l[B+s+a[w+v+a[y+T]]],N=l[B+1+a[w+1+a[y+1]]],O=.6-F*F-U*U-b*b;O<0?i=0:(O*=O,i=O*O*z.dot3(F,U,b));var Y=.6-D*D-A*A-P*P;Y<0?c=0:(Y*=Y,c=Y*Y*k.dot3(D,A,P));var W=.6-X*X-C*C-I*I;W<0?n=0:(W*=W,n=W*W*M.dot3(X,C,I));var j=.6-G*G-H*H-L*L;return j<0?o=0:(j*=j,o=j*j*N.dot3(G,H,L)),32*(i+c+n+o)}}(this); }],
[1,()=>{console.log("Artist 21. Leonardo Solaas -- platform 1");function Q(a){return random(a)}function Q(a,b){return random(a,b)}var sk=[],pt=[],hb=[];const cF=[["752822","E84922","FFCD36","FFFFBA"],["F7E9CC","A64B46","520E05","230C00"],["99090F","CC1635","F98583","FFDEAA"],["BD8495","E1B1B9","DCCFD8","F2F0F1"],["D66F06","EE9306","FFB21E","FFE669"],["9869B7","A7A2FE","CAC7FE","EAE5F9"],["42202E","8E4651","EDD10E","FFFF84"],["A3032F","F7AC05","F2E1E1","DE8CE1"],["300614","973D70","F2D2FB","F1F3F2"],["AFBC86","F9FCF3","D0CBD1","7A3A44"],["191409","494955","7C8099","422C47"]];const cG=["3A3732","6C7836","B4B82D","F4F58F"],cY=["864606","FBE14C"];function bd(c,p,a){if(p.x<0||p.x>skw||p.y<0||p.y>skh){let pr=Q(120);return{x:c.cx+pr*cos(a),y:c.cy+pr*sin(a)}}return p}pt.push(c=>{let nm=120,sd=Q(16),a=c.ang,r=50,w=30,p={x:-99,y:0};for(let i=0;i<nm;i++){let isd=Q(16);a+=Q(-1,1);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let va=Q(-.006,.006),lf=Q(120,240),dr=a+Q(-1,1);let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"vec",md:{src:"t",pw:.7,mn:1,mx:0},dr:dr,va:va},{ty:"zf",md:.7,dr:a,vv:Q(2),sc:.01,am:PI,dp:.45}],K:[{D:{ty:"nt",vg:.2,vp:.2},L:lf,N:6,P:{rf:"dad"},A:64,C:{src:"t",cv:"z",vv:sd+i*.3,vt:2,cn:1.5,cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"t",cv:"peak",lc:.8,pw:.5,cy:1,mn:0,mx:{src:"nrm",mn:-12,mx:12}},dr:{src:"t",cv:"z",vv:Q(9),vt:2,cn:1.6,mn:a-PI,mx:a+PI},vr:1,rf:"dad"}],K:[{D:{ty:"bh",vp:.2,delay:3},L:lf,P:{rf:"dad"},A:{src:"d-nrm",cv:"sin",pw:.8,mn:96,mx:8},G:{cv:"z",vv:{src:"d-nrm",mn:isd,mx:isd+2},vt:3,cn:1.5,mn:.1,mx:3},C:{cv:"z",vv:{src:"d-nrm",mn:isd,mx:isd+3},vt:2,cn:1.5,mx:.3,cs:c.cs},F:[{ty:"fix",f:.1,gp:0,dr:0,vr:1,rf:"dad"},{ty:"brown",md:.8,ch:2,am:PI}]}]}]};sk.push(st)}});hb.push(c=>{let nm=100,sd=Q(16),a=c.ang,r=50,w=30,p={x:-99,y:0};for(let i=0;i<nm;i++){a+=Q(-1,1);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let lf=Q(60,120),dr=a+1;let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"z",md:1,dr:dr,vv:sd+i*.2,vt:.012,cn:1,am:PI*.7}],K:[{D:{ty:"nt",vg:.2,vp:.2},L:lf,N:3,P:{rf:"dad"},C:{src:"t",cv:"z",vv:sd+i*.06,vt:1,cn:1.5,cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"nrm",mn:-3,mx:3},dr:{src:"dang",mn:PI*.5,mx:PI*2.5},vr:{src:"t",pw:2,mn:1,mx:.3},rf:"dad"}],K:[{D:{ty:"bh",vg:.4,vp:.6},L:{src:"gen",mn:16,mx:24},P:{rf:"dad"},W:lf,G:{src:"t",cv:"bump",lc:.6,sp:.8,mn:1,mx:4},C:{src:"t",cv:"z",vv:Q(9),vi:.1,vt:1,cn:1.6,cs:readHex(cY)},F:[{ty:"z",md:1,dr:dr,vv:Q(9),vt:.03,am:PI}]}]}]};sk.push(st)}});hb.push(c=>{let nm=100,sd=Q(16),a=c.ang,r=50,w=20,p={x:-99,y:0};for(let i=0;i<nm;i++){a+=Q(-PI*.5,PI*.5);p.x+=r*cos(a);p.y+=r*sin(a);if(p.x<0||p.x>skw||p.y<0||p.y>skh){let pr=Q(120);p={x:c.cx+pr*cos(a),y:c.cy+pr*sin(a)}}let lf=Q(60,120),dr=a+Q(-1,1);let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"zc",md:1,dr:dr,vv:sd+i*.3,vt:.012,am:PI*.12,dp:.85}],K:[{D:{ty:"nt",vg:.2,vp:.2},L:lf,N:3,P:{rf:"dad"},A:{src:"rnd",mn:24,mx:96},C:{src:"t",cv:"z",vv:sd+i*.08,vi:.1,vt:1,cn:1.5,cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"nrm",mn:-3,mx:3},dr:{src:"dang",mn:PI*.5,mx:PI*2.5},vr:{src:"t",pw:2,mn:1,mx:.3},rf:"dad"}]},{D:{ty:"bh",vg:.2,vp:.2},L:{src:"rnd",mn:10,mx:15},N:lf*.4,P:{rf:"dad"},W:{src:"rnd",pw:.2,mn:lf/3,mx:lf},A:{src:"rnd",mn:24,mx:96},G:{src:"t",mn:2,mx:0},C:{src:"rnd",cs:readHex(cY)},F:[{ty:"z",md:1,dr:{src:"rnd",mn:dr-PI*.2,mx:dr+PI*.2},vv:Q(9),vi:.1,vt:.04,am:PI*.8}]}]};sk.push(st)}});pt.push(c=>{let nm=120,sd=Q(16),a=c.ang,r=50,w=30,p={x:-99,y:0};for(let i=0;i<nm;i++){let gn=contrast(noise(sd,i*.1),1.6);a+=Q(-1,1);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let lf=lerp(60,120,gn),gh=lerp(12,24,gn),dr=a+Q(-1,1);let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"z",md:1,dr:dr,vv:Q(16),vt:.01,cn:1,am:PI*.5}],K:[{D:{ty:"nt",vg:.2,vp:.2},L:lf,N:8,P:{rf:"dad"},C:{src:"t",pw:{src:"rnd",mn:.5,mx:2},mn:.5,cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"t",cv:"sin",pw:.3,cy:1,mn:2,mx:{src:"nrm",mn:-gh/2,mx:gh/2}},dr:{src:"t",cv:"z",vv:Q(16),vt:1,cn:1.5,mn:dr-PI,mx:dr+PI},vr:1,rf:"dad"}]}]};sk.push(st)}});pt.push(c=>{let nm=80,sd=Q(16),a=c.ang,r,w=30,p={x:-99,y:0};for(let i=0;i<nm;i++){let isd=Q(16);let gn=contrast(noise(sd,i*.05),1.6);a+=Q(-1,1);r=lerp(30,90,gn);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let lf=lerp(60,240,gn),dr=a+Q(-1,1);let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"z",md:1,dr:dr,vv:sd+i*.2,vt:.01,cn:1,am:PI*.8}],K:[{D:{ty:"nt",vg:.2,vp:.2},L:lf,N:14,P:{rf:"dad"},A:48,C:{src:"t",cv:"z",vv:sd+i*.15,vi:.03,vt:1,cn:1.6,cs:c.cs},F:[{ty:"zf",md:.5,dr:dr,vv:{src:"nrm",mn:isd,mx:isd+2},sc:.01,am:PI*.2,dp:.85},{ty:"pull",f:.02,sk:0,rf:"dad"}],K:[{D:{ty:"bh",vp:.2,delay:3},L:lf,P:{rf:"dad"},A:{src:"d-nrm",cv:"sin",pw:.6,mn:64,mx:0},G:{cv:"z",vv:{src:"d-nrm",mn:isd,mx:isd+2},vt:3,cn:1.5,mn:.1,mx:3},C:{cv:"z",vv:{src:"d-nrm",mn:isd,mx:isd+3},vt:2,cn:1.5,mx:.3,cs:c.cs},F:[{ty:"fix",f:.1,gp:0,dr:0,vr:1,rf:"dad"},{ty:"brown",md:.8,ch:2,am:PI}]}]}]};sk.push(st)}});pt.push(c=>{let nm=100,sd=Q(16),a=c.ang,r,w=20,p={x:-99,y:0};for(let i=0;i<nm;i++){let gn=contrast(noise(sd,i*.06),1.6);a+=Q(-1,1);r=lerp(20,80,gn);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let va=Q(-.024,.024),va2=Q(-.06,.06),lf=lerp(60,240,gn),dr=a;let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"vec",md:.7,dr:dr,va:{src:"t",pw:3,mn:va,mx:va2}},{ty:"z",md:.3,dr:dr,vv:Q(16),vt:.01,am:PI*.5}],K:[{D:{ty:"nt",vg:.2,vp:.2},L:lf,N:6,P:{rf:"dad"},C:{src:"t",pw:{src:"gen",mn:.5,mx:5},cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"t",cv:"sin",pw:.5,cy:.75,mn:0,mx:{src:"nrm",mn:-10,mx:10}},dr:{src:"t",cv:"z",vv:Q(16),vt:2,cn:1.6,mn:dr-PI,mx:dr+PI},vr:1,rf:"dad"}]}]};sk.push(st)}});pt.push(c=>{let nm=72,sd=Q(16),a=c.ang,r,a2=PI*.24,p={x:-99,y:0};for(let i=0;i<nm;i++){let gn=contrast(noise(sd,i*.1),1.6);a+=Q(-1,1);r=lerp(30,60,gn);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let va=Q(-.02,.02),va2=Q(-.05,.05),lf=lerp(50,160,gn),dr=a+Q(-1,1);let st={L:lf,P:{x:p.x,y:p.y},W:c.st+i*5,F:[{ty:"vec",md:.8,dr:dr,va:{src:"t",pw:2,mn:va,mx:va2}},{ty:"z",md:.4,dr:dr,vv:Q(16),vt:.02,am:PI*.5}],K:[{D:{ty:"nt",vg:.2,vp:.4},L:lf*.18,N:lf*.2,P:{rf:"dad"},W:{src:"nrm",mn:0,mx:lf},C:{src:"t",cv:"z",vv:sd+i*.1,vi:.02,vt:1,cn:1.5,cs:c.cs},F:[{ty:"z",md:{src:"nrm",cv:"sin",pw:.5,mn:.1,mx:.8},dr:dr+a2,vv:0,vi:.04,vt:.05,am:PI},{ty:"vec",md:{src:"nrm",cv:"sin",pw:.5,mn:.1,mx:.8},dr:dr+a2,va:0}]}]};st.K.push(JSON.parse(JSON.stringify(st.K[0])));st.K[1].F.forEach(e=>e.dr=dr-a2);sk.push(st)}});hb.push(c=>{let nm=180,sd=Q(16),a=c.ang,r,w=20,p={x:-99,y:0};for(let i=0;i<nm;i++){let gn=contrast(noise(sd,i*.1),1.6);a+=Q(-1,1);r=lerp(15,50,gn);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let lf=lerp(60,160,gn),dr=a+Q(-1,1);let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"z",md:1,dr:dr,vv:sd+i*.05,vt:.01,am:PI}],K:[{D:{ty:"nt",vg:.2,vp:.4},L:lf,N:3,P:{rf:"dad"},G:1,C:{src:"t",cv:"z",vv:sd+i*.1,vi:.1,vt:1,cn:1.7,cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"nrm",mn:-2,mx:2},dr:{src:"dang",mn:PI*.5,mx:PI*2.5},vr:{src:"t",pw:2,mn:1,mx:0},rf:"dad"}]}]};sk.push(st)}});hb.push(c=>{let nm=60,sd=Q(16),a=c.ang,r,w=20,p={x:-99,y:0};for(let i=0;i<nm;i++){let gn=contrast(noise(sd,i*.1),1.6);a+=Q(-1,1);r=lerp(30,120,gn);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let lf=lerp(120,480,gn),dr=a;let st={L:lf,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,F:[{ty:"z",md:1,dr:dr,vv:sd+i*.06,vt:.006,am:PI*.8}],K:[{D:{ty:"nt",vg:.2,vp:.4},L:lf,N:4,P:{rf:"dad"},G:1,C:{src:"t",cv:"z",vv:sd+i*.1,vi:.1,vt:1,cn:1.7,cs:c.cs},F:[{ty:"fix",f:.2,gp:{src:"nrm",mn:-3,mx:3},dr:{src:"dang",mn:PI*.5,mx:PI*2.5},vr:{src:"t",pw:2,mn:1,mx:0},rf:"dad"}]}]};sk.push(st)}});hb.push(c=>{let nm=220,sd=Q(16),a=c.ang,r,w=30,p={x:-99,y:0};for(let i=0;i<nm;i++){a+=Q(-1,1);r=Q(20,50);p.x+=r*cos(a);p.y+=r*sin(a);if(p.x<0||p.x>skw||p.y<0||p.y>skh){let pr=Q(120);p={x:c.cx+pr*cos(a),y:c.cy+pr*sin(a)}}let dr=a+Q(-1,1);let st={D:{ty:"bh",vg:.2,vp:.2},L:int(Q(60,120)),P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*5,G:{src:"t",pw:1.6,mn:2.5,mx:0},C:{src:"t",cv:"z",vv:sd+i*.1,vt:1,cn:1.7,cs:c.cs},damp:.2,F:[{ty:"zc",md:1,dr:dr,vv:sd+i*.1,vt:.02,am:PI*.2,dp:.85}]};sk.push(st)}});var pn=c=>{let nm=320,sd=Q(16),a=c.ang,r,w=50,p={x:-99,y:0};for(let i=0;i<nm;i++){a+=Q(-PI*.4,PI*.4);r=Q(10,40);p.x+=r*cos(a);p.y+=r*sin(a);p=bd(c,p,a);let dr=Q(PI*2),q=int(rnd2(1,6));let st={D:{ty:"bh",vg:.2,vp:.2},L:{src:"rnd",mn:8,mx:24},N:q,P:{x:p.x+Q(-w,w),y:p.y+Q(-w,w)},W:c.st+i*2,G:{src:"t",pw:1.6,mn:2,mx:0},C:{src:"t",cv:"z",vv:sd+i*.06,vi:.1,vt:1,cn:1.7,cs:c.cs},F:[{ty:"z",md:1,dr:{src:"rnd",mn:dr-PI*.2,mx:dr+PI*.2},vv:Q(16),vi:1,vt:.02,am:PI*.5}]};sk.push(st)}};var canvas,sc,seed,t=0,go=true,tickers=new Set,dots=[],back=[42,40,51],skw=900,skh=1600;setup=()=>{view=createCanvas(int(windowHeight/16*9),windowHeight);sc=ceil(height/1600);seed=R.random_int(0,99999999);reset()};function reset(){randomSeed(seed);noiseSeed(seed);canvas=createGraphics(900*sc,1600*sc);canvas.background(back[0],back[1],back[2]);sk=[];dots=[];tickers.clear();t=0;go=true;let c1=int(Q(cF.length));let c2;do{c2=int(Q(cF.length))}while(c2==c1);pick(hb)({cx:Q(200,700),cy:Q(200,1400),ang:Q(PI*2),st:0,cs:readHex(cG)});pick(pt)({cx:skw*.5,cy:skh*.25,ang:PI*.35,st:300,cs:readHex(cF[c1])});pick(pt)({cx:skw*.5,cy:skh*.75,ang:-PI*.65,st:600,cs:readHex(cF[c2])});pn({cx:Q(200,700),cy:Q(200,1400),ang:Q(PI*2),st:900,cs:readHex(cY)});for(let st of sk)makeDots(st)}function makeDots(g){let d;g.N=g.N||1;if("every"in g)g.N=int(g.dad.L/g.every);for(let i=0;i<g.N;i++){g.nrm=g.N==1?0:constrain(i/(g.N-1),0,.9999);g.prev=i>0?d:null;g.dix=i;d=new Dot(g);if("K"in g){for(let ch of g.K){ch.dad=d;makeDots(ch)}}}}draw=()=>{if(go){let cnv=canvas;let _sc=2/1e3;if(t<200){cnv.noStroke();for(let i=0;i<500;i++){let _x=Q(900),_y=Q(1600);let sz=Q(3,6);let al=pow(noise(_x*_sc,_y*_sc),1.6);cnv.fill(255,al*32);cnv.ellipse(_x*sc,_y*sc,sz*sc,sz/3*sc);cnv.fill(0,al*16);cnv.ellipse((_x-sz*.3)*sc,(_y-sz*.5)*sc,sz*sc,sz/3*sc)}}for(let tkr of tickers){tkr.tick()}image(canvas,0,0,width,height);if(tickers.size==0){console.log("finished");go=false}t++}};class Dot{constructor(c){this.tweens=new Set;this.ix=dots.length;dots.push(this);this.dix=c.dix;this.nrm=c.nrm;this.gen=Q(1);this.dad="dad"in c?c.dad:null;this.prev="prev"in c?c.prev:null;this.forcesData="F"in c?c.F:[];if("D"in c){this.D={ty:"line",delay:0,...c.D};for(let p in this.D)this.read(this.D,p,this.D[p],0)}else{this.D={ty:"none",delay:0}}if(this.D.delay>0)this.history=[];this.layer="layer"in c?c.layer:0;let o={};if("P"in c){this.read(o,"x",c.P.x,0);this.read(o,"y",c.P.y,0);this.P=createVector(o.x,o.y);if("rf"in c.P)this.posRef=c.P.rf}else{this.P=createVector(Q(skw),Q(skh))}this.p1=createVector(this.P.x,this.P.y);this.p2=createVector(this.P.x,this.P.y);this.vel=createVector(0,0);this.dst=createVector(0,0);this.read(this,"damp",c.damp,.2);this.read(this,"limit",c.limit,10);this.forces=[];this.readCol(c.C);this.read(this,"A",c.A,96);this.read(this,"G",c.G,2);this.mT=0;this.read(this,"L",c.L,100);this.read(this,"W",c.W,0);if(this.dad!=null)this.W+=this.dad.W;this.created;this.history=[];this.init()}init(){this.created=t;this.action=this.hold;tickers.add(this)}read(obj,prop,s,df){if(s===undefined||s===null)s=df;if(!isNaN(Number(s))){obj[prop]=Number(s);return}if(typeof s==="string"||Array.isArray(s)||"data"in s){obj[prop]=s;return}s={src:"t",cv:"pow",cy:1,pw:1,mn:0,mx:1,ph:0,cn:1,v:.5,vv:0,vi:0,vt:0,lc:.5,sp:1,...s};for(let p in s)if(typeof s[p]=="object")this.read(s,p,s[p],0);s.obj=obj;s.prop=prop;if(["t","ang","dang"].includes(s.src)){this.tweens.add(s);return}if(s.src=="rnd"){obj[prop]=this.calcCrv(s,Q(1));return}if(s.src.startsWith("d-")){let p=s.src.substring(2);if(p=="ang")obj[prop]=this.dad.vel.heading()+s.ph;else obj[prop]=this.calcCrv(s,this.dad[p]);return}obj[prop]=this.calcCrv(s,this[s.src])}readCol(s){if(s===undefined||s===null){this.col=[0,0,0];return}if(Array.isArray(s)){this.col=s;return}s={src:"t",cv:"pow",cy:1,pw:1,mn:0,mx:1,ph:0,cn:1,v:.5,vv:0,vi:0,vt:0,lc:.5,sp:1,...s};for(let p in s)if(typeof s[p]=="object")this.read(s,p,s[p],0);s.obj=this;s.prop="col";if(s.src=="t"||s.src=="ang"||s.src=="vel"){this.tweens.add(s);return}if(s.src=="rnd"){this.col=gradient(s.cs,this.calcCrv(s,Q(1)));return}this.col=gradient(s.cs,this.calcCrv(s,this[s.src]))}translate(x,y){this.P.add(x,y);this.p1.set(this.P);this.p2.set(this.P)}addForce(f){f={f:.05,md:0,dr:0,ch:1,sk:0,gp:10,fq:10,ph:0,va:0,vr:1,vv:0,vi:0,vt:0,am:0,dp:0,_a:0,...f};for(let p in f)if(typeof f[p]=="object"&&"src"in f[p])this.read(f,p,f[p],0);this.forces.push(f)}tick(){this.action()}hold(){if(this.W>0&&t-this.created<this.W)return;if("posRef"in this){if(this.posRef=="dad"){this.translate(this.dad.P.x,this.dad.P.y)}}this.activated=t;this.mT=0;this.action=this.update;for(let f of this.forcesData){if("rf"in f){if(f.rf=="dad")this.addForce({o:this.dad,...f})}else{this.addForce(f)}delete this.forcesData}}update(){this.p2.set(this.p1);for(let tw of this.tweens)this.tween(tw);for(let f of this.forces)this.applyForce(f);this.vel.limit(this.limit);this.P.add(this.vel);this.vel.mult(this.damp);let cnv=canvas;if(this.D.delay>0){this.history.push(this.P.copy());if(this.history.length<this.D.delay){return}else{this.p1=this.history.shift()}}else{this.p1=this.P}if(this.D.ty=="nt"){this.history.push([this.p1.x,this.p1.y]);if(this.prev!=null){let ds=this.p1.dist(this.prev.p1);cnv.fill(this.col[0],this.col[1],this.col[2],this.A);cnv.noStroke();for(let j=0;j<ds;j++){let _x=lerp(this.prev.history[this.mT][0],this.p1.x,j/ds);let _y=lerp(this.prev.history[this.mT][1],this.p1.y,j/ds);if("vp"in this.D){_x+=this.G*Q(-this.D.vp,this.D.vp);_y+=this.G*Q(-this.D.vp,this.D.vp)}let gh=this.G+("vg"in this.D?this.G*Q(-this.D.vg,this.D.vg):0);cnv.circle(_x*sc,_y*sc,gh*sc)}}}else if(this.D.ty=="bh"){let ds=this.p1.dist(this.p2);cnv.fill(this.col[0],this.col[1],this.col[2],this.A);cnv.noStroke();for(let j=0;j<ds;j++){let _x=lerp(this.p2.x,this.p1.x,j/ds);let _y=lerp(this.p2.y,this.p1.y,j/ds);if("vp"in this.D){_x+=this.G*Q(-this.D.vp,this.D.vp);_y+=this.G*Q(-this.D.vp,this.D.vp)}let gh=this.G+("vg"in this.D?this.G*Q(-this.D.vg,this.D.vg):0);cnv.circle(_x*sc,_y*sc,gh*sc)}}this.mT++;if(this.mT>this.L)tickers.delete(this)}applyForce(f){if(f.ty=="fix"){let ox=f.o.P.x+f.gp*f.vr*cos(f.dr),oy=f.o.P.y+f.gp*f.vr*sin(f.dr);this.dst.set(ox-this.P.x,oy-this.P.y);this.dst.mult(f.f);this.vel.add(this.dst)}else if(f.ty=="pull"){this.dst.set(f.o.P.x-this.P.x,f.o.P.y-this.P.y);if(f.sk!=0)this.dst.rotate(f.sk);this.dst.mult(f.f);this.vel.add(this.dst)}else if(f.ty=="vec"){this.vel.add(f.md*cos(f.dr),f.md*sin(f.dr));f.dr+=f.va}else if(f.ty=="brown"){if(f.ch==1||int(Q(f.ch))==0){let a=this.vel.heading()+Q(-1,1)*f.am;this.vel.add(f.md*cos(a),f.md*sin(a))}}else if(f.ty=="z"){let a=f.dr+(noise(f.vv,this.dix*f.vi,this.mT*f.vt)*2-1)*f.am;this.vel.add(f.md*cos(a),f.md*sin(a))}else if(f.ty=="zc"){f._a=f._a*f.dp+(noise(f.vv,this.dix*f.vi,this.mT*f.vt)*2-1)*f.am;this.vel.add(f.md*cos(f.dr+f._a),f.md*sin(f.dr+f._a))}else if(f.ty=="zf"){f._a=f._a*f.dp+(noise(f.vv,this.P.x*f.sc,this.P.y*f.sc)*2-1)*f.am;this.vel.add(f.md*cos(f.dr+f._a),f.md*sin(f.dr+f._a))}}tween(tw){let v;if(tw.src=="t")v=this.mT/(this.L+1);else if(tw.src=="ang")v=(this.vel.heading()+PI)/TWO_PI;else if(tw.src=="dang")v=(this.dad.vel.heading()+PI)/TWO_PI;if(tw.prop=="col")this.col=gradient(tw.cs,this.calcCrv(tw,v));else tw.obj[tw.prop]=this.calcCrv(tw,v)}calcCrv(c,v){let o=0;if(c.cv=="pow"){v=fract(v*c.cy);o=c.pw<0?1-pow(1-v,abs(c.pw)):pow(v,c.pw)}else if(c.cv=="sin"){o=pow(sin(v*TWO_PI*c.cy+(c.ph-.25)*TWO_PI)*.5+.5,c.pw)}else if(c.cv=="peak"){v=fract(v*c.cy);if(v<c.lc)o=pow(v/c.lc,c.pw);else o=pow(map(v,c.lc,1,1,0),c.pw)}else if(c.cv=="bump"){v=fract(v*c.cy);if(v>c.lc-c.sp/2&&v<c.lc+c.sp/2){o=sin(map(v,c.lc-c.sp/2,c.lc+c.sp/2,0,PI))}}else if(c.cv=="z"){o=contrast(noise(c.vv,this.dix*c.vi,v*c.vt),c.cn)}return c.mn+o*(c.mx-c.mn)}}function readHex(cs){let o=[];for(let i=0;i<cs.length;i++){let c=color("#"+cs[i]);o.push([red(c),green(c),blue(c)])}return o}function gradient(cs,v){v=constrain(v,0,.999);let n=floor(v*(cs.length-1));v=fract(v*(cs.length-1));return[cs[n][0]*(1-v)+cs[n+1][0]*v,cs[n][1]*(1-v)+cs[n+1][1]*v,cs[n][2]*(1-v)+cs[n+1][2]*v]}function rnd2(a,b){return a+Q(1)*Q(1)*(b-a)}function contrast(n,f){return constrain(f*(n-.5)+.5,0,1)}function pick(arr){return arr[int(Q(arr.length))]}keyTyped=()=>{if(key===" "){go=!go}else if(key==="r"){reset()}else if(key==="f"){let fs=fullscreen();fullscreen(!fs)}else if(key==="s"){saveCanvas(canvas,"Smash and Scatter","jpg")}};windowResized=()=>{view=createCanvas(int(windowHeight/16*9),windowHeight);sc=ceil(height/1600);reset()}; }],
[0,()=>{console.log("Artist 17. 0xhaiku -- platform 0");!function(){"use strict";function t(t,e,i){this.x=t,this.y=e,this.z=i}function e(t,e=.001,i=.001,h=10,a=null){const o=t.getContext("2d");let s=o.getImageData(0,0,t.width,t.height);for(var g=new Uint8ClampedArray(s.data.length),w=0;w<t.height;w++){const o=w/t.height*100;for(var c=0;c<t.width;c++){const S=c/t.width*100;var m=4*(c+w*t.width),p=.5*(a||xnoise).simplex2(S*e,o*i)+.5,f=b(p,0,1,0,2*n),u=r(h*d(f)),v=r(h*l(f));const C=4*(c+u+(w+v)*t.width);g[C+0]=s.data[m+0],g[C+1]=s.data[m+1],g[C+2]=s.data[m+2],g[C+3]=s.data[m+3];for(var T=-1;1>=T;T++)for(var y=-1;1>=y;y++){if(0>c+u+T||t.width<c+u+T)continue;if(0>w+v+y||t.height<w+v+y)continue;const e=4*(c+u+T+(w+v+y)*t.width);g[e+0]=s.data[m+0],g[e+1]=s.data[m+1],g[e+2]=s.data[m+2],g[e+3]=s.data[m+3]}}}return s.data.set(g),o.putImageData(s,0,0),t}function i(t,e){const i=t.data.slice(),h=(t,h)=>{const a=h-4*e,o=h+4*e;return(i[a-4+t]+i[a+t]+i[a+4+t]+(i[h-4+t]+i[h+t]+i[h+4+t])+(i[o-4+t]+i[o+t]+i[o+4+t]))/9};for(let i=4*e;i<t.data.length-4*e;i+=4)t.data[i]=h(0,i),t.data[i+1]=h(1,i),t.data[i+2]=h(2,i);return t}function h(t,e){function i(t,i,h,o=.6*e){a.save(),a.translate(t,i),a.rotate(h*(n/180)),a.fillStyle="hsla(20,100%,50%,0.9)",a.moveTo(.1*e,0),a.lineTo(0,.1*e),a.lineTo(0,.1*e+o),a.lineTo(.1*e,.2*e+o),a.lineTo(.2*e,.1*e+o),a.lineTo(.2*e,.1*e),a.fill(),a.restore()}var[h,a]=v(e,2*e);return[0,4,5,6,8,9].includes(t)&&i(0,.15*e,0),[0,2,6,8].includes(t)&&i(0,e,0),[0,1,2,3,4,7,8,9].includes(t)&&i(.8*e,.15*e,0),[0,1,3,4,5,6,7,8,9].includes(t)&&i(.8*e,e,0),[0,2,3,5,6,7,8,9].includes(t)&&i(.15*e,.205*e,-90,.5*e),[2,3,4,5,6,8,9].includes(t)&&i(.15*e,1.075*e,-90,.5*e),[0,2,3,5,6,8,9].includes(t)&&i(.15*e,1.955*e,-90,.5*e),h}var a=Math.floor,o=Math.sqrt,l=Math.sin,r=Math.round,d=Math.cos,n=Math.PI;t.prototype.dot2=function(t,e){return this.x*t+this.y*e},t.prototype.dot3=function(t,e,i){return this.x*t+this.y*e+this.z*i};var s=o(3),g=o(3),w=[new t(1,1,0),new t(-1,1,0),new t(1,-1,0),new t(-1,-1,0),new t(1,0,1),new t(-1,0,1),new t(1,0,-1),new t(-1,0,-1),new t(0,1,1),new t(0,-1,1),new t(0,1,-1),new t(0,-1,-1)],c=[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],m=(s=.5*(o(3)-1),g=(3-o(3))/6,1/6);class p{perm=Array(512);gradP=Array(512);seed=function(t){0<t&&1>t&&(t*=65536),256>(t=a(t))&&(t|=t<<8);for(var e=0;256>e;e++){var i;i=1&e?c[e]^255&t:c[e]^255&t>>8,this.perm[e]=this.perm[e+256]=i,this.gradP[e]=this.gradP[e+256]=w[i%12]}};simplex2=function(t,e){var i,h,o=(t+e)*s,l=a(t+o),r=a(e+o),d=(l+r)*g,n=t-l+d,w=e-r+d;n>w?(i=1,h=0):(i=0,h=1);var c=n-i+g,m=w-h+g,p=n-1+2*g,f=w-1+2*g;l&=255,r&=255;var u=this.gradP[l+this.perm[r]],v=this.gradP[l+i+this.perm[r+h]],T=this.gradP[l+1+this.perm[r+1]],b=.5-n*n-w*w,y=.5-c*c-m*m,S=.5-p*p-f*f;return 70*((0>b?0:(b*=b)*b*u.dot2(n,w))+(0>y?0:(y*=y)*y*v.dot2(c,m))+(0>S?0:(S*=S)*S*T.dot2(p,f)))};simplex3=function(t,e,i){var h,o,l,r,d,n,s=(t+e+i)*(1/3),g=a(t+s),w=a(e+s),c=a(i+s),p=(g+w+c)*m,f=t-g+p,u=e-w+p,v=i-c+p;f>=u?u>=v?(h=1,o=0,l=0,r=1,d=1,n=0):f>=v?(h=1,o=0,l=0,r=1,d=0,n=1):(h=0,o=0,l=1,r=1,d=0,n=1):u<v?(h=0,o=0,l=1,r=0,d=1,n=1):f<v?(h=0,o=1,l=0,r=0,d=1,n=1):(h=0,o=1,l=0,r=1,d=1,n=0);var T=f-h+m,b=u-o+m,y=v-l+m,S=f-r+2*m,C=u-d+2*m,I=v-n+2*m,x=f-1+.5,F=u-1+.5,P=v-1+.5;g&=255,w&=255,c&=255;var R=this.gradP[g+this.perm[w+this.perm[c]]],_=this.gradP[g+h+this.perm[w+o+this.perm[c+l]]],O=this.gradP[g+r+this.perm[w+d+this.perm[c+n]]],A=this.gradP[g+1+this.perm[w+1+this.perm[c+1]]],G=.6-f*f-u*u-v*v,k=.6-T*T-b*b-y*y,D=.6-S*S-C*C-I*I,L=.6-x*x-F*F-P*P;return 32*((0>G?0:(G*=G)*G*R.dot3(f,u,v))+(0>k?0:(k*=k)*k*_.dot3(T,b,y))+(0>D?0:(D*=D)*D*O.dot3(S,C,I))+(0>L?0:(L*=L)*L*A.dot3(x,F,P)))}}class f{constructor(t){this.useA=!1;let e=t=>{let e=parseInt(t.substr(0,8),16),i=parseInt(t.substr(8,8),16),h=parseInt(t.substr(16,8),16),a=parseInt(t.substr(24,8),16);return()=>{e|=0,i|=0,h|=0,a|=0;let t=0|(0|e+i)+a;return a=0|a+1,e=i^i>>>9,i=0|h+(h<<3),h=h<<21|h>>>11,h=0|h+t,(t>>>0)/4294967296}};this.prngA=e(t.substr(2,32)),this.prngB=e(t.substr(34,32));for(let t=0;1e6>t;t+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(t,e){return t+(e-t)*this.random_dec()}random_int(t,e){return a(this.random_num(t,e+1))}random_bool(t){return this.random_dec()<t}random_choice(t){return t[this.random_int(0,t.length-1)]}insideCircle(t=1,e=[]){var i=2*this.random_dec()*n,h=t*o(this.random_dec());return e[0]=h*d(i),e[1]=h*l(i),e}shuffle(t){for(var e,i,h=t.length,a=[...t];h;)e=~~(this.random_dec()*h--),i=a[h],a[h]=a[e],a[e]=i;return a}range(t,e){return void 0===e&&(e=t,t=0),this.random_dec()*(e-t)+t}rangeFloor(t,e){return a(this.range(t,e))}_nextGaussian=null;_hasNextGaussian=!1;gaussian(t=0,e=1){var i=Math.log;if(this._hasNextGaussian){this._hasNextGaussian=!1;var h=this._nextGaussian;return this._nextGaussian=null,t+e*h}var a=0,l=0,r=0;do{r=(a=2*this.random_dec()-1)*a+(l=2*this.random_dec()-1)*l}while(1<=r||0===r);var d=o(-2*i(r)/r);return this._nextGaussian=l*d,this._hasNextGaussian=!0,t+e*(a*d)}}const u=(t,e,i,h,a)=>{return((t,e,i)=>t*(1-i)+e*i)(h,a,(t-(o=e))/(i-o));var o},v=(t,e)=>{var i=document.createElement("canvas");let h=i.getContext("2d",{willReadFrequently:!0});return i.width=t,i.height=e,h.clearRect(0,0,i.width,i.height),h.fillStyle="black",[i,h]},T=(t,e,i="black",h=100,a=100,o=null)=>{const[l,r]=v(h,a);for(var d=0;d<l.width;d++){const h=d/l.width*100;for(var n=0;n<l.height;n++){const a=n/l.height*100;var s=.5*(o||xnoise).simplex2(h*t,a*e)+.5,g=u(s,0,1,0,1);r.fillStyle=i,r.globalAlpha=g,r.fillRect(d,n,1,1)}}return l},b=(t,e,i,h,a)=>{return((t,e,i)=>t*(1-i)+e*i)(h,a,(t-(o=e))/(i-o));var o},y=(t=100,e=null)=>{var[i,h]=v(t,t);h.globalCompositeOperation="source-over",h.drawImage(T(.4,.8,"hsla(200,0%,0%)",t,t,e),0,0,i.width,i.height),h.globalCompositeOperation="destination-in",h.beginPath();let a=h.createRadialGradient(i.width/2,i.height/2,0,i.width/2,i.height/2,i.width/2);a.addColorStop(0,"rgba(255, 255, 255, 1.0)"),a.addColorStop(.8,"rgba(255, 255, 255, 0)"),a.addColorStop(1,"rgba(255, 255, 255, 0)"),h.fillStyle=a,h.arc(i.width/2,i.height/2,.5*i.width,0,2*n),h.fill();var[o,l]=v(t,t);return a=l.createLinearGradient(o.width/2,0,o.width/2,o.height),a.addColorStop(0,"hsl(200,30%,56%)"),a.addColorStop(.6,"hsl(0,0%,100%)"),a.addColorStop(1,"hsl(200,30%,50%)"),l.fillStyle=a,l.fillRect(0,0,o.width,o.height),l.globalCompositeOperation="destination-in",l.drawImage(i,0,0,i.width,i.height),o};(async()=>{let t=window,o=document;const l=o.body.appendChild(o.createElement("canvas")),d=l.getContext("2d");let s,g,w,c;o.body.style.background="black",o.body.style.overflow="hidden";const m=()=>{d.save(),d.scale(c,c),s=((t,o,l,d,s)=>{var g=Math.pow;let w=new f(tokenData.hash);window.xrandom=w;let c=new p;c.seed(w.random_dec()),window.xnoise=c;const m=new f((()=>{let t="",e=parseInt(tokenData.tokenId)+a((new Date).getTime()/24/60/60/1e3).toString(16);for(let i=0;10>i;i++)t+=e;return"0x"+t.slice(0,64)})()),b=new p;b.seed(m.random_dec());const S=xrandom.rangeFloor(0,2),C=.01*m.rangeFloor(75,90);let I,x;16*d>=9*s?(I=r(9*s/16),x=s):(I=d,x=r(16*d/9));const F=I,P=I/1e3*1427,[R,_]=v(I,x),[O,A]=v(F,P);var[G,k]=v(O.width,O.height);const D=k.createLinearGradient(G.width/2,0,G.width/2,G.height);D.addColorStop(0,"hsl(200,100%,30%)"),D.addColorStop(.5,"hsl(200,100%,80%)"),D.addColorStop(C,`hsl(${m.rangeFloor(0,360)},30%,80%)`),D.addColorStop(1,"hsl(200,20%,50%)"),k.fillStyle=D,k.fillRect(0,0,G.width,G.height),k.globalCompositeOperation="overlay",k.drawImage(T(.1,.5,"hsla(200,50%,50%,0.5)",G.width/2,G.height/2,b),0,0,G.width,G.height),k.drawImage(T(5.5,5.5,"hsla(200,0%,100%,0.2)",G.width/2,G.height/2,b),0,0,G.width,G.height),k.globalCompositeOperation="source-over";const L=[y(.5*O.width,b)],[$,M]=v(O.width,O.height);M.save(),M.globalCompositeOperation="multiply",M.globalAlpha=.4;for(var E=0;E<m.rangeFloor(10,20);E++)for(var N=0;N<$.height*(C-.25);N+=.2*$.height){const Pt=N/$.height*100;for(var z=0;z<$.width;z+=.2*$.width){const Rt=z/$.width*100;var B=.5*b.simplex3(.5*Rt,.5*Pt,.1*E)+.5;if(7<(K=u(B,0,1,0,10)))for(var q=0;q<m.rangeFloor(10,20);q++)M.drawImage(L[0],z+m.gaussian(0,$.width*m.rangeFloor(8,14)*.01),N+m.gaussian(0,$.width*m.rangeFloor(6,9)*.01),$.width*m.rangeFloor(2,4)*.1,$.width*m.rangeFloor(2,4)*.1)}}M.restore(),k.drawImage($,0,0,G.width,G.height),e(G,.001,.005,.01*G.width*m.rangeFloor(1,5),b),A.drawImage(G,.1*-O.width,.1*-O.height,1.2*O.width,1.1*O.height);for(var[U,H]=v(O.width,O.height),W=0;3>W;W++){var[j,J]=v(O.width/2,O.height/2);let _t=J.createLinearGradient(j.width/2,.83*j.height,j.width/2,.9*j.height);_t.addColorStop(0,"hsl(200,10%,30%)"),_t.addColorStop(.6,"hsl(200,1%,20%)"),_t.addColorStop(1,"hsla(200,10%,10%,0.5)"),J.save(),J.fillStyle=_t,J.globalAlpha=.7,J.beginPath();const Ot=j.height*(C+.022),At=Ot-.035*j.height;for(J.moveTo(0,At),q=0;q<j.width;q++){const Gt=q/j.width*100;B=.5*xnoise.simplex3(.05*Gt,.5,2e3*W)+.5;var K=u(B,0,1,0,.035*j.height);J.lineTo(q,a(At+K))}J.lineTo(j.width,Ot),J.lineTo(0,Ot),J.fill(),J.restore(),H.globalCompositeOperation="darken",H.drawImage(j,0,.007*U.height+W*U.height*.005,U.width,U.height),H.globalCompositeOperation="source-over"}e(U,.5,.5,.002*U.width);var[Q,V]=v(O.width,O.height);V.save(),V.translate(.1*Q.width,.1*Q.height),V.fillStyle="hsl(200,10%,60%)",V.beginPath(),V.moveTo(.01*Q.width,0),V.lineTo(.05*Q.width,.1*-Q.height),V.lineTo(.09*Q.width,0),V.fill(),V.fillStyle="hsl(20,100%,70%)",V.beginPath(),V.moveTo(0,0),V.lineTo(0,.06*Q.height),V.lineTo(.02*-Q.width,.07*Q.height),V.lineTo(0,.08*Q.height),V.lineTo(0,.3*Q.height),V.lineTo(.1*Q.width,.3*Q.height),V.lineTo(.1*Q.width,.08*Q.height),V.lineTo(.12*Q.width,.07*Q.height),V.lineTo(.1*Q.width,.06*Q.height),V.lineTo(.1*Q.width,0),V.fill(),V.fillStyle="hsl(40,10%,70%)",V.beginPath(),V.moveTo(0,0),V.lineTo(0,.07*Q.height),V.lineTo(.1*Q.width,.07*Q.height),V.lineTo(.1*Q.width,0),V.fill(),V.fillStyle="hsl(20,30%,70%)",V.beginPath(),V.moveTo(.045*Q.width,.08*-Q.height),V.lineTo(.045*Q.width,.13*-Q.height),V.lineTo(.055*Q.width,.13*-Q.height),V.lineTo(.055*Q.width,.08*-Q.height),V.fill(),V.fillStyle="hsl(20,30%,70%)",V.beginPath(),V.moveTo(0,0),V.lineTo(0,.03*-Q.height),V.lineTo(.01*Q.width,.03*-Q.height),V.lineTo(.01*Q.width,0),V.fill(),V.fillStyle="hsl(20,30%,70%)",V.beginPath(),V.moveTo(.09*Q.width,0),V.lineTo(.09*Q.width,.03*-Q.height),V.lineTo(.1*Q.width,.03*-Q.height),V.lineTo(.1*Q.width,0),V.fill(),V.fillStyle="hsla(0,50%,30%,0.5)",V.beginPath(),V.moveTo(.015*Q.width,.01*Q.height),V.lineTo(.045*Q.width,.01*Q.height),V.lineTo(.045*Q.width,.06*Q.height),V.lineTo(.015*Q.width,.06*Q.height),V.fill(),V.fillStyle="hsla(0,50%,30%,0.5)",V.beginPath(),V.moveTo(.055*Q.width,.01*Q.height),V.lineTo(.085*Q.width,.01*Q.height),V.lineTo(.085*Q.width,.06*Q.height),V.lineTo(.055*Q.width,.06*Q.height),V.fill(),V.fillStyle="hsla(0,50%,30%,0.5)",V.beginPath(),V.moveTo(.015*Q.width,.08*Q.height),V.lineTo(.045*Q.width,.08*Q.height),V.lineTo(.045*Q.width,.3*Q.height),V.lineTo(.015*Q.width,.3*Q.height),V.fill(),V.fillStyle="hsla(0,50%,30%,0.5)",V.beginPath(),V.moveTo(.055*Q.width,.08*Q.height),V.lineTo(.085*Q.width,.08*Q.height),V.lineTo(.085*Q.width,.3*Q.height),V.lineTo(.055*Q.width,.3*Q.height),V.fill(),H.drawImage(Q,.1*U.width*xrandom.rangeFloor(1,9),U.height*(C-.09),.3*Q.width,.3*Q.height);const X=["rgb(228,200,162)","rgb(251,251,251)","rgb(228,198,69)"];for(q=0;20>q;q++){H.save(),H.fillStyle=X[xrandom.rangeFloor(0,3)];const kt=xrandom.rangeFloor(0,U.width),Dt=.05*U.width*xrandom.range(1,1.5),Lt=.013*U.width*xrandom.range(1,2),$t=U.height*(C+.03)-Lt;H.fillRect(kt,$t,Dt,Lt),H.fillStyle=`hsl(13,64%,${xrandom.rangeFloor(10,50)}%)`,H.beginPath(),H.moveTo(kt,$t),H.lineTo(kt,$t-.2*Dt),H.lineTo(kt+Dt,$t-.2*Dt),H.lineTo(kt+Dt,$t),H.fill();const Mt=.005*U.width,Et=.005*U.width;H.fillStyle=`hsl(30,10%,${xrandom.rangeFloor(30,40)}%)`;for(var Y=0;6>Y;Y++)H.fillRect(kt+Y*Mt+(Y+1)*Et,$t+.2*Lt,Mt,Mt);for(Y=0;6>Y;Y++)H.fillRect(kt+Y*Mt+(Y+1)*Et,$t+.6*Lt,Mt,Mt);H.restore()}e(U,.1,.1,.001*U.width),H.globalCompositeOperation="source-atop";let Z=H.createLinearGradient(U.width/2,.5*U.height,U.width/2,U.height*(C+.1));Z.addColorStop(.5,"hsla(200,10%,0%,1.0)"),Z.addColorStop(1,"hsla(200,0%,0%,0.8)"),H.fillStyle=Z,H.fillRect(0,0,U.width,U.height);const[tt,et]=v(U.width/(.001*O.width),U.height/(.001*O.width));et.drawImage(U,0,0,tt.width,tt.height);let it=et.getImageData(0,0,tt.width,tt.height);for(q=0;q<.01*tt.width;q++)it=i(it,tt.width,tt.height);et.putImageData(it,0,0),A.drawImage(tt,0,0,O.width,O.height);const ht=m.rangeFloor(0,O.width),at=m.rangeFloor(0,O.height*(C-.25));for(q=0;q<m.rangeFloor(5,11);q++){function Nt(t){const e=0==m.rangeFloor(0,2)?m.rangeFloor(.25*-ot.width,.2*-ot.width):m.rangeFloor(.25*ot.width,.2*ot.width);lt.lineTo(t,e),lt.lineTo(t+.05*ot.width,e)}var[ot,lt]=v(.05*O.width,.05*O.width);lt.translate(ot.width/2,ot.height/2),lt.fillStyle=`hsla(0,0%,30%,0.${m.rangeFloor(8,9)})`,lt.beginPath(),lt.moveTo(0,0),lt.lineTo(.5*ot.width,0),lt.lineTo(.2*ot.width,.075*ot.width),lt.lineTo(.01*ot.width,.01*ot.width),lt.fill(),lt.beginPath(),lt.moveTo(.15*ot.width,0),Nt(.25*ot.width),lt.lineTo(.25*ot.width,0),lt.fill(),lt.beginPath(),lt.moveTo(.2*ot.width,0),Nt(.35*ot.width),lt.lineTo(.3*ot.width,0),lt.fill(),e(ot,.05,.05,.001*ot.width,b);var[rt,dt]=v(ot.width/(.002*O.width),ot.width/(.002*O.width));const zt=.08*O.width*m.rangeFloor(1,1.4);dt.drawImage(ot,0,0,rt.width,rt.height),A.save(),A.rotate(m.rangeFloor(-10,10)*(n/180)),A.drawImage(rt,ht+m.gaussian(0,.15*O.width),at+m.gaussian(0,.15*O.width),zt,zt),A.restore()}var[nt,st]=v(.5*O.width,.5*O.width);const gt=st.createLinearGradient(nt.width/2,0,nt.width/2,nt.height);for(gt.addColorStop(0,`hsl(200,20%,${m.rangeFloor(30,50)}%)`),gt.addColorStop(.8,"hsl(200,20%,30%)"),gt.addColorStop(.9,"hsl(200,20%,20%)"),gt.addColorStop(1,"hsl(200,35%,10%)"),st.fillStyle=gt,st.fillRect(0,0,nt.width,nt.height),st.globalCompositeOperation="overlay",st.drawImage(T(.005,.1,"hsla(200,30%,50%,0.5)",nt.width,nt.height,b),0,0,nt.width,nt.height),st.drawImage(T(.05,.01,"hsla(60,20%,70%,0.8)",nt.width,nt.height,b),0,0,nt.width,nt.height),st.drawImage(T(.3,.3,"hsla(220,50%,20%,0.4)",nt.width,nt.height,b),0,0,nt.width,nt.height),q=0;10>q;q++)st.fillStyle="hsla(200,10%,90%,0.2)",st.globalCompositeOperation="screen",st.fillRect(m.rangeFloor(0,nt.width),m.rangeFloor(0,nt.height),.1*nt.width*m.rangeFloor(1,5),.02*nt.height);const wt=st.createLinearGradient(nt.width/2,0,nt.width/2,nt.height);st.globalCompositeOperation="overlay",wt.addColorStop(0,"hsla(100,0%,100%,1)"),wt.addColorStop(.9,"hsla(0,0%,0%,1)"),st.fillStyle=wt,st.fillRect(0,0,nt.width,nt.height),e(nt,.5,.5,.1*nt.width,b);const ct=C+.032;A.drawImage(nt,-.1*O.width,O.height*ct,1.2*O.width,O.height*(1-ct+.1));var mt=A.getImageData(0,0,O.width,O.height);for(q=0;q<mt.data.length;q+=4)mt.data[q]=~~(255*g(mt.data[q]/255,1/1.5)),mt.data[q+1]=~~(255*g(mt.data[q+1]/255,1/1.5)),mt.data[q+2]=~~(255*g(mt.data[q+2]/255,1/1.5)),mt.data[q+3]=mt.data[q+3];for(A.putImageData(mt,0,0),A.save(),z=0;z<O.width;z++){const Bt=z/O.width*100;for(N=0;N<O.height;N++){const qt=N/O.height*100;B=.5*xnoise.simplex3(2.5*Bt,2.5*qt,.1*E)+.5,A.globalAlpha=.05,A.fillStyle="hsl("+u(B,0,1,0,360)+",100%,50%)",A.fillRect(z,N,1,1)}}A.restore(),A.save(),A.globalCompositeOperation="overlay",A.fillStyle=["hsla(200,50%,60%,0.3)","hsla(50,50%,60%,0.3)"][S],A.fillRect(0,0,O.width,O.height),A.restore(),A.save(),A.globalCompositeOperation="darken";var pt=A.createRadialGradient(O.width/2,O.height/2,0*O.width,O.width/2,O.height/2,.95*O.width);pt.addColorStop(0,"rgba(0,0,0,0)"),pt.addColorStop(.75,"rgba(0,0,0,0)"),pt.addColorStop(1,"rgba(0,0,10,0.4)"),A.fillStyle=pt,A.fillRect(0,0,O.width,O.height),A.restore(),A.save(),A.translate(.12*O.width,.76*O.height),A.rotate(n/180*90);const ft=((t,e)=>{const i=.3*e;for(var[a,o]=v(e*t.length+i*(t.length-1),2*e),l=0;l<t.length;l++){const a=i*l+l*e;if(""+parseInt(t[l])===t[l]){const i=h(parseInt(t[l]),e);o.drawImage(i,a,0,e,2*e)}else"'"===t[l]&&(o.save(),o.fillStyle="hsla(20,90%,50%,0.9)",o.moveTo(a,0),o.lineTo(a+.5*e,0),o.lineTo(a,.8*e),o.fill(),o.restore())}return a})("'24 04 20",.02*O.width),ut=.003*O.width;A.globalAlpha=.7,A.drawImage(ft,0,0),A.globalAlpha=.7,A.globalCompositeOperation="overlay",A.drawImage(ft,ut,ut),A.drawImage(ft,-ut,-ut),A.drawImage(ft,ut,-ut),A.drawImage(ft,-ut,ut),A.restore();const vt=.8*R.width,Tt=vt/1e3*1427,bt=(R.width-vt)/2,yt=(R.height-Tt)/2;_.save(),_.fillStyle=`hsl(${xrandom.rangeFloor(0,360)},30%,${xrandom.rangeFloor(90,95)}%)`,_.globalCompositeOperation="multiply",_.fillRect(0,0,R.width,R.height),_.drawImage(T(.01,1.5,"hsla(220,50%,0%,0.02)",R.width,R.width),0,0,R.width,R.height),_.restore(),_.save(),_.rotate(xrandom.rangeFloor(-3,3)*(n/180)),_.fillStyle="hsla(0,0%,20%,0.4)",_.fillRect(bt-.005*vt,yt+.005*vt,vt+.01*vt,Tt+.008*vt),_.drawImage(O,bt,yt,vt,Tt),_.fillStyle="hsla(0,0%,100%,0.5)",_.fillRect(bt,yt,vt,.002*Tt),_.restore(),_.drawImage(((t,e,i)=>{const{width:h,height:a}=t,o=document.createElement("canvas");o.width=h,o.height=a;const l=o.getContext("2d");for(let e=0;e<a;e++){const i=e/a,o=h/2*(1*(1-i)+1.1*i)*2;l.drawImage(t,0,e,h,1,h/2-o/2,e,o,1)}return o})(R),0,0,R.width,R.height),_.save(),_.globalCompositeOperation="multiply",_.drawImage(T(.005,.05,"hsla(220,50%,0%,0.15)",R.width,R.width),0,0,R.width,R.height),_.restore(),_.save(),_.globalCompositeOperation="luminosity",_.globalAlpha=.075;const[St,Ct]=v(R.width,R.width),It=St.width/(.01*R.width);Ct.drawImage(((t,e,i=0)=>{let[h,a]=v(t,e);const o=xrandom.rangeFloor(1.3*t,1.4*t);return a.translate(t/2,e/2),a.rotate(i/180*n),a.fillRect(1.5*-t,-e,o,2*e),h})(It,It,xrandom.rangeFloor(0,360)),0,0,St.width,St.width),_.drawImage(St,0,0,R.width,R.height),_.rotate(1/180*n),_.drawImage(St,.2*-R.width,.2*-R.height,1.4*R.width,1.4*R.height),_.restore(),_.globalCompositeOperation="overlay",_.globalAlpha=.8;const xt=st.createLinearGradient(R.width/2,0,R.width/2,R.height);xt.addColorStop(0,"hsl(200,30%,0%)"),xt.addColorStop(1,"hsl(200,0%,100%)"),_.fillStyle=xt,_.fillRect(0,0,R.width,R.height),o.fillStyle="black",o.fillRect(0,0,d,s),o.drawImage(R,(d-I)/2,(s-x)/2,I,x),document.addEventListener("keydown",(t=>{"p"===t.key&&Ft(O),"s"===t.key&&Ft(R)}));const Ft=t=>{const e=document.createElement("a");e.href=t.toDataURL("image/png"),e.download="image.png",e.click()};return!0})(0,d,tokenData.hash,g,w),d.restore()},b=()=>{g=t.innerWidth,w=t.innerHeight,c=t.devicePixelRatio,l.width=~~(g*c),l.height=~~(w*c),l.style.width=`${g}px`,l.style.height=`${w}px`,s&&m()};let S;t.addEventListener("resize",(()=>{clearTimeout(S),S=setTimeout(b,1e3)})),b(),performance.now(),m()})()}(); }],
1-50 of 222