function stretchPalette(f,e,a){let n=[],t=e.length-1,o=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)*t,r=f.floor(i),l=(r+1)%o.length,d=i-r,c=o[r],s=o[l],m=hsbToRgb((c[0]+d*(s[0]-c[0]))%360,f.lerp(c[1],s[1],d),f.lerp(c[2],s[2],d)),g="#"+f.hex(m[0],2)+f.hex(m[1],2)+f.hex(m[2],2);n.push(g)}return n}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 n=f.textWidth("# "+f.config.seed),t=a,o=f.config.height-e-t-e,i=n+2*e,r=t+2*e;f.fill(255),f.noStroke(),f.rect(0,o,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,n=0*f.config.scale;let t=f.config.palette.length*(a+n)+2*e,o=a+2*e,i=f.config.width-t-0,r=f.config.height-o-0;f.fill(255),f.noStroke(),f.rect(i,r,t,o);let l=f.config.width-t+e,d=f.config.height-o+e;f.config.palette.forEach(((e,t)=>{f.fill(e),f.noStroke(),f.rect(l,d,a,a),l+=a+n}))}function rgbToHsb(f,e,a,n){let t,o,i,r=[],l=f.max(e,a,n),d=f.min(e,a,n),c=l-d;return t=l===d?0:l===e?(a-n)/c%6*60:l===a?60*((n-e)/c+2):60*((e-a)/c+4),o=0===l?0:c/l*255,i=l,r[0]=t,r[1]=o,r[2]=i,r}function hsbToRgb(f,e,a){let n,t,o,i=[],r=a/255*(e/255),l=r*(1-Math.abs(f/60%2-1)),d=a/255-r;f>=0&&f<60?(n=r,t=l,o=0):f>=60&&f<120?(n=l,t=r,o=0):f>=120&&f<180?(n=0,t=r,o=l):f>=180&&f<240?(n=0,t=l,o=r):f>=240&&f<300?(n=l,t=0,o=r):(n=r,t=0,o=l);let c=Math.round(255*(n+d)),s=Math.round(255*(t+d)),m=Math.round(255*(o+d));return i[0]=c,i[1]=s,i[2]=m,i}function opacifyLayer(f){f.loadPixels();for(let e=0;e<f.pixels.length;e+=4)f.pixels[e+3]=255;f.updatePixels()}function hexToBinary(f){try{let e="";for(let a=0;a<f.length;a++){const n=f[a];e+=parseInt(n,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,n){e.noFill(),e.stroke(255),e.strokeWeight(f.config.externalStrokeSize),e.rect(0,0,a-1,n-1)}function drawSanskritLayer(f){const e=hexToBinary(f.config.letterData);console.log("Binary sanskrit letter : ",e);const a=f.createGraphics(f.config.width,f.config.height,{willReadFrequently:!0});f.config.hasStrokeOnBorders&&drawBorder(f,a,f.config.width,f.config.height),a.loadPixels();const n=f.color(f.config.letterFill);let t=f.config.width,o=0,i=f.config.height,r=0;for(let a=0;a<f.config.letterResolution;a++)for(let n=0;n<f.config.letterResolution;n++){"1"===e[n*f.config.letterResolution+a]||(t=Math.min(t,a*f.config.blockSize),o=Math.max(o,(a+1)*f.config.blockSize),i=Math.min(i,n*f.config.blockSize),r=Math.max(r,(n+1)*f.config.blockSize))}const l=(t+o)/2,d=(i+r)/2,c=f.config.width/2,s=f.config.height/2;console.log("minX : ",t),console.log("maxX : ",o),console.log("minY : ",i),console.log("maxY : ",r);let m=0,g=0;if(f.config.isLetterCentered)console.log("Letter is centered"),m=c-l-f.config.letterOffsetX,g=s-d-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"),m=-(f.config.width/2-a/2)+(o-t)/2,g=s-d-f.config.letterOffsetY;break;case 1:console.log("Stick to right border"),m=+(f.config.width/2-a/2)-(o-t)/2,g=s-d-f.config.letterOffsetY;break;case 2:console.log("Stick to top border"),g=-(f.config.height/2-a/2)+(r-i)/2,m=c-l-f.config.letterOffsetX;break;case 3:console.log("Stick to bot border"),g=+(f.config.height/2-a/2)-(r-i)/2,m=c-l-f.config.letterOffsetX}}for(let t=0;t<f.config.letterResolution;t++)for(let o=0;o<f.config.letterResolution;o++){if(!("1"===e[o*f.config.letterResolution+t])){const e=t*f.config.blockSize+m,i=o*f.config.blockSize+g;for(let t=e;t<e+f.config.blockSize;t++)for(let e=i;e<i+f.config.blockSize;e++)t>=0&&t<f.config.width&&e>=0&&e<f.config.height&&a.set(t,e,n)}}return a.updatePixels(),a.filter(f.BLUR,f.config.letterBlur),f.config.currentStep++,a.get()}function drawOutlinesLayer(f){const e=f.createGraphics(f.config.width,f.config.height,{willReadFrequently:!0});e.image(f.sanskritImage,0,0,f.config.width,f.config.height),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),f.config.currentStep++,e}function drawOutline(f,e,a){let n=new Set;e.loadPixels();for(let t=0;t<e.height;t++)for(let o=0;o<e.width;o++){let i=4*(o+t*e.width);0===e.pixels[i+3]&&hasNonTransparentNeighbour(f,e,o,t,a.thickness,n)&&(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,n.add(i))}e.updatePixels()}function hasNonTransparentNeighbour(f,e,a,n,t,o){for(let i=-t;i<=t;i++)for(let r=-t;r<=t;r++)if(0!==r||0!==i){let t=a+r,l=n+i;if(t>=0&&t<f.config.width&&l>=0&&l<f.config.height){let a=4*(t+l*f.config.width);if(0!==e.pixels[a+3]&&!o.has(a))return!0}}return!1}function stretchValues(f,e){e.loadPixels();let a=255,n=0;for(let f=0;f<e.pixels.length;f+=4){let t=e.pixels[f];t<a&&(a=t),t>n&&(n=t)}console.log("minValue : ",a),console.log("maxValue : ",n);for(let t=0;t<e.pixels.length;t+=4)e.pixels[t]=f.map(e.pixels[t],a,n,0,255),e.pixels[t+1]=e.pixels[t],e.pixels[t+2]=e.pixels[t];e.updatePixels()}function drawChladniLayer(f){let e=f.config.chladniParams.a,a=f.config.chladniParams.b,n=f.config.chladniParams.n,t=f.config.chladniParams.m,o=f.createGraphics(f.config.width,f.config.height,{willReadFrequently:!0}),i=f.createGraphics(f.config.width,f.config.height,{willReadFrequently:!0}),r=n*n+t*t;o.loadPixels();for(let i=0;i<f.config.width;i++)for(let l=0;l<f.config.height;l++){let d=f.map(i,0,f.config.width,-1,1),c=f.map(l,0,f.config.height,-1,1),s=e*f.sin(f.PI*n*d)*f.sin(f.PI*t*c)+a*f.sin(f.PI*t*d)*f.sin(f.PI*n*c),m=f.map(f.abs(s),0,f.sqrt(r),0,f.config.maxLevel),g=4*(i+l*o.width);o.pixels[g]=m,o.pixels[g+1]=m,o.pixels[g+2]=m,o.pixels[g+3]=255}if(o.updatePixels(),o.image(f.outlinesImage,0,0,f.config.width,f.config.height),f.config.isChladniColorsReversed&&reverseLayerColors(f,o),f.config.debug)o.image(o,0,0);else for(let e=0;e<f.config.width;e++)for(let a=0;a<f.config.height;a++){drawSandGrainColor2(f,i,e,a,o.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,n,t){f.colorMode(f.HSB);for(let o=0;o<f.config.numberOfLayers;o++)if(t>=f.config.layerStep*o&&t<=f.config.layerStep*(o+1)){let i,r,l=f.config.palette[o],d=f.hue(l),c=f.saturation(l),s=f.brightness(l);f.config.hasGradientInsideLayers?(r=f.map(t,0,255,1.2,.8),i=f.map(t,0,255,1,1.5)):(r=1,i=1);const m=.2;r+=f.random(-m,m),i+=f.random(-m,m);let g=f.color(d,c*i,s*r);e.stroke(g),e.point(a,n)}f.colorMode(f.RGB)}const hexData=[{name:"Shraay-ghu",data:"ffffffc6bfeff0feefeefeeffeffefffffff"},{name:"Vree-ka-ndu",data:"fffe07f7ff4ff6ff7ff0ff7ff7ff7fffffff"},{name:"Dhree-van",data:"fffffff1ff8ff1ff4ff2ff1ff7ffffffffff"},{name:"Graa-lim",data:"ffffffe0ff7ff3ff57f57f57f4ffffffffff"},{name:"Nee-yar",data:"fffffff5ff0ff5ff8ff1ffdffdffdfffffff"},{name:"Chu-veen",data:"fffffffcffeffaff7ff4ffa7faff9fffffff"},{name:"Chraa-veen",data:"fffffff7ff5ff4ff2ff6ff7ff7ffffffffff"},{name:"Bhraa-nim",data:"ffffffe07dbff83c27fbffd7f87fffffffff"},{name:"Dhroo-vaa",data:"fffffffeff8ffdff9ff4ff8ff1fedfffffff"},{name:"Kraa-vish",data:"ffffffc03ffffd7e87f77f97f6ff8fffffff"},{name:"Dhyaa-luk",data:"fffffff9fffff87f8ff3ff87f7ff9fffffff"},{name:"Thraa-zim",data:"ffffffffff9ff9ff1ff2ff9ff9ffbfffffff"},{name:"Praa-khin",data:"fffffff7ff0ff5ff5ff4ff67f3fe9fffffff"},{name:"Vlaa-nuur",data:"ffffffc03eefeefeefe8fedfebffffffffff"},{name:"Shaa-zeer",data:"ffffffe07f8ff07e3ffcffe7fbff9fffffff"},{name:"Glaa-rip",data:"ffffffffffc7cd7ec7ffbfcbffbfffffffff"},{name:"Bhaa-viz",data:"fffffff07f57e57f47e57e97ed7f57ffffff"},{name:"Chraa-lum",data:"ffffffe07ffff8ff7ff7ff6ff1ffefffffff"},{name:"Draa-vin",data:"ffffffc07eefedff2ffaff6ffeffdfffffff"},{name:"Elaa-rum",data:"fffffff6ff0ff9ff4ff2ff97fdffffffffff"},{name:"Fyaa-lin",data:"fffffffeff8fecfe8ffaff0ffcffffffffff"},{name:"Ghaa-vun",data:"fffffff7ff1ff0ff4ff4ff0ff5ffffffffff"},{name:"Hraa-zim",data:"ffffffe07f4ff4ff6ff2ff1ff7ff7fffffff"},{name:"Ilaa-van",data:"fffffff7ff0ff2ff2fe2ff0ffaffffffffff"},{name:"Jraa-zum",data:"ffffffe8ff2ffeff2ffeffeffeffefffffff"},{name:"Klaa-rin",data:"fffffff7ff07f4ff67f67f0fffffffffffff"},{name:"Laa-vish",data:"ffffffc03df7d07d77d07f77f77f8fffffff"},{name:"Mraa-vun",data:"fffffffcffdff47f67f8ff6ff6ff5fffffff"},{name:"Nlaa-zeem",data:"fffffff8fffff87ebfecff6ff6ff9fffffff"},{name:"Olaa-rim",data:"fffffff0ffbfe2ff6ff0ff2ffcffcfffffff"},{name:"Plaa-vun",data:"ffffffc03df7fc3f7ff47f1bfdbfc7ffffff"},{name:"Quaa-vin",data:"ffffffe07f6fe2ffcff6feafe2feffffffff"},{name:"Rlaa-zem",data:"fffffff3ff0ff9ff4ff4ffdffdffdfffffff"},{name:"Slaa-vun",data:"fffffff7ff0ff9ff0ff2ff1ff3ffbfffffff"},{name:"Tlaa-rin",data:"ffffffe03fa7fb7f57f17f57f57f3fffffff"},{name:"Uvaa-lum",data:"ffffffc03ff7f43fe7f5ff27fdbfc7ffffff"},{name:"Vlaa-zim",data:"ffffffcbfebfe07ebfebfca7e7feffffffff"},{name:"Wraa-vun",data:"fffffffeff0ff9ff2ff4ff2ff8ffefffffff"},{name:"Xlaa-rim",data:"fffffffaff0ffaff4ff7ff7ff7ffffffffff"},{name:"Ylaa-van",data:"ffffffffff8ff8ff2fe6ff4ff8ffffffffff"},{name:"Zlaa-vum",data:"fffffffc7f8feaff2ff0ff6ff8ffefffffff"},{name:"Aabaa-rin",data:"fffffff7ff7ff4ff6ff2ff5ff7ff7fffffff"},{name:"Braa-van",data:"fffffff7febfebfe8ff5ffb7f8ffffffffff"},{name:"Caa-lum",data:"fffffff7ff0ffaffaff0fe2ff2ffffffffff"},{name:"Draa-zin",data:"fffffff3ff1ff1ff4ff4ff7ff7ff7fffffff"},{name:"Elaa-vish",data:"ffffffe6ffcff0ff6ffeff6ffcffefffffff"},{name:"Fraa-vun",data:"ffffcffbffafe2ffaff0ff6ffeffefffffff"},{name:"Hraa-lim",data:"fffffffeff0ff8ff2ff2ff0ffaffefffffff"},{name:"Ilaa-rin",data:"ffffffe0ffeff8ffaff2fe4ff4ffefffffff"},{name:"Jraa-zun",data:"ffffffe27f67f67f3ff5ff7ff7ff7fffffff"},{name:"Klaa-var",data:"ffffffffffbff5ff5ff1fe5ff9ffdfffffff"},{name:"Lraa-vum",data:"fffe0fffff7fe3ff7fe1fe5ffdffffffffff"},{name:"Mlaa-ran",data:"ffffffe07f7ff0ff67f77f3ff1ff7fffffff"},{name:"Nraa-kal",data:"fffffff87cc3d57ec3fd7fdffdffffffffff"},{name:"Olaa-vin",data:"fffffffdffdfc57edffc7fdffdffffffffff"},{name:"Praa-thin",data:"fffffff1fc07ca7e83f8ffaffbffbfffffff"},{name:"Qlaa-vor",data:"ffffffe07f6ff6ff1ff7ff6ff6ffffffffff"},{name:"Rraa-zim",data:"fffffff07feff8fe7fe9fedfefffffffffff"},{name:"Sraa-lin",data:"ffffffe2ff6ff4ff6ff6ff0ff7ff7fffffff"},{name:"Traa-zun",data:"ffffffff7c07ef7ef7ee7ec7eb7effffffff"},{name:"Vlaa-ran",data:"fffffffcff8ff9ff8ff0ff5ffdffbfffffff"},{name:"Graa-vish",data:"ffffffffffeffc7fb7f5fe4ffcffafffffff"},{name:"Draa-lum",data:"fffffff0ffaff6ff4ffaffeffeffefffffff"},{name:"Kraa-van",data:"fffc07f6ff0ff6fe67e8beabe2ffefffffff"},{name:"Nlaa-rim",data:"fffffff4ff4ff6ff6ff6ff2ff5ff7fffffff"},{name:"Praa-vish",data:"ffffffff3ff7ff7f77f47f37f5feffffffff"},{name:"Rlaa-van",data:"ffffffffff1ff8ff8ff0ff9ff7ffffffffff"},{name:"Slaa-rum",data:"fffffff4ff8ff9ff4ff47f1ff5ffdfffffff"},{name:"Tlaa-vish",data:"ffffffe0ff4ff5ff5ff4ff5ff7ff7fffffff"},{name:"Ulaa-rin",data:"fffffffefe0ff1ff2ff4ff5ff8ffffffffff"},{name:"Vraa-lum",data:"fffffffbff07f13edbe9bf37fc7f9fffffff"},{name:"Wlaa-rin",data:"fffffff7ff0ff0ffaffaff0ff2ffffffffff"},{name:"Xraa-vish",data:"fffffffeff2fedfeffecff67f6ff3fffffff"},{name:"Ylaa-zun",data:"ffffffc23feff6ffaff8ffeff6ff6fffffff"},{name:"Zraa-lum",data:"ffffffffff1ffbff2ff0ff2ffeffffffffff"},{name:"Araa-van",data:"fffffffffe07feff8ff6fe8ffaffffffffff"},{name:"Blaa-rim",data:"ffffffffff7ff0ff7ff4ffb7f1ffffffffff"},{name:"Craa-vun",data:"ffffffe07fffe1ff7ff0ff6ff6ff8fffffff"},{name:"Dlaa-zem",data:"ffffffffff1ff4ff5ff4ff0ff5ffffffffff"},{name:"Eraa-lin",data:"fffffff7ff0ff4ff4ff07f5ff7ff7fffffff"},{name:"Fraa-zum",data:"ffffffffff8ff9ff9ff3ff0ffbffffffffff"},{name:"Glaa-zun",data:"ffffffe07f07f7ffdff2ff6ff5ffffffffff"},{name:"Hraa-vish",data:"ffffffe4ff4ff6ff6ff6ff7ff7ff7fffffff"},{name:"Ilaa-zem",data:"fffffff0ffeff8ffaff1ff6ff6ffafffffff"},{name:"Jlaa-ran",data:"ffffffe0fe8fedff5ff4ffa7fbffdfffffff"},{name:"Kraa-lum",data:"fffffff4ff8ffdff4ff47f5ff5ffdfffffff"},{name:"Lraa-vish",data:"fffffff7ff0ff4ffcff8ff2ffeffffffffff"},{name:"Mlaa-vun",data:"fffffff7ff1ff5ff4ff47f67f3ff1fffffff"},{name:"Nraa-lim",data:"fffffff7ff0ff0ff4ff47f5ff5feffffffff"},{name:"Olaa-vish",data:"fffffff7ff1ff4ff4ff27f1ff5ff7fffffff"},{name:"Plaa-ran",data:"ffffffe07f6ff4ff3ff5ff5ff7ff7fffffff"},{name:"Qraa-lum",data:"fffffffffcc3d67c47fc3fc7feffefffffff"},{name:"Rraa-vish",data:"ffffffe07feff0ffeff8ff6ffcffefffffff"},{name:"Sraa-zem",data:"fffffffc7cc7ecff0ffa7fd3fcffffffffff"},{name:"Tlaa-zun",data:"ffffffe07f7ff4ff7ff4ff1ff7ffffffffff"},{name:"Uraa-vish",data:"fffffff7ff0ff8ff8ffeffbffbff7fffffff"},{name:"Vraa-lim",data:"ffffffe07f7ff0ff77f77f0ffefff7ffffff"},{name:"Wraa-van",data:"ffffffc03effecfeffedfeefe1feffffffff"},{name:"Xlaa-rin",data:"fffffff07faff87e5ff2ff97fbff9fffffff"},{name:"Yraa-zem",data:"fffffff3ff0ff1ff4ff67f3ff1ff7fffffff"},{name:"Nraa-rim",data:"fffffff5ff4ff4ff0ff4ff5ffdffdfffffff"},{name:"Praa-vun",data:"fffffffeff0ff9ff8ff2ff5ff3ffffffffff"},{name:"Rraa-van",data:"ffffffe0fffff0ffbff4ff77fbff9fffffff"}];let palettes=[["#131313","#B39069","#B57F4A","#513319"],["#131313","#B39069","#AC6C5A","#672424"],["#131313","#B39069","#B66B4E","#441F19"]];function generateVariationsForPalette(f,e,a){return e.map((e=>{let n=f.color(e),t=rgbToHsl(f.red(n),f.green(n),f.blue(n)),o=hslToRgb((t[0]+f.random(-a,a))%360,t[1],f.constrain(t[2]+f.random(-a,a),0,100));return rgbToHex(o[0],o[1],o[2])}))}function rgbToHsl(f,e,a){f/=255,e/=255,a/=255;let n,t,o=Math.max(f,e,a),i=Math.min(f,e,a),r=(o+i)/2;if(o==i)n=t=0;else{var l=o-i;switch(t=r>.5?l/(2-o-i):l/(o+i),o){case f:n=(e-a)/l+(e<a?6:0);break;case e:n=(a-f)/l+2;break;case a:n=(f-e)/l+4}n/=6}return[360*n,100*t,100*r]}function hslToRgb(f,e,a){let n,t,o;if(0==e)n=t=o=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,n=i(l,r,(f/=360)+1/3),t=i(l,r,f),o=i(l,r,f-1/3)}return[Math.round(255*n),Math.round(255*t),Math.round(255*o)]}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 n=0;n<64;n++)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=100,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,n,t=e.length;const o=mulberry32(f);for(;0!==t;)n=Math.floor(o()*t),t-=1,a=e[t],e[t]=e[n],e[n]=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]}void 0===window.tokenData&&(window.tokenData=getRandomTokenData());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,n=window.innerHeight;a=2*Math.floor(a/2),n=2*Math.floor(n/2);let t=Math.min(a,n),o=Math.min(t,800),i=o/750,r=o/800;f.realDimensions=t,f.finalScaleModifier=r,console.log("realDimensions",f.realDimensions),console.log("finalScaleModifier",f.finalScaleModifier),console.log("modifier",i),f.dimensions=o,f.modifier=i,console.log("modifier",f.modifier,"dimensions",f.dimensions),f.resizeCanvas(o,o);const l=f.dimensions,d=f.dimensions,c=f.random(-30,30)*f.modifier,s=f.random(-30,30)*f.modifier,m=6*f.modifier,g=6*f.modifier,h=100*f.modifier,u=f.random()>.8;let b=palettes[f.floor(f.random(0,palettes.length))];f.random()>.8&&swapLastTwoElements(b),generateVariationsForPalette(f,b,10),console.log(b),b=stretchPalette(f,b,4);const p=selectImage(tokenData.tokenId,100);console.log("chosenLetterIndex",p),f.config={seed:e,isLoading:!0,currentStep:0,debug:!1,width:l,height:d,modifier:i,isWebGL:!1,showInfos:!1,pixelDensity:1,hasStrokeOnBorders:!0,letterResolution:12,letterOffsetX:c,letterOffsetY:s,externalStrokeSize:h,isChladniColorsReversed:!0,hasGradientInsideLayers:!0,isLetterCentered:u,backgroundColor:{r:255,g:255,b:255},letterRoundBlur:g,letterBlur:m,letterFill:255,hasToErodeEdges:!1,isOutlineBlurred:!0,blockSize:l>d?d/12:l/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:!0,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[p].data,letterName:hexData[p].name,palette:b},console.log("chladniParams",f.config.chladniParams),f.pixelDensity(1),f.createCanvas(f.config.width,f.config.height,f.config.isWebGL?f.WEBGL:f.P2D)},f.draw=function(){console.log("Draw start..."),f.background(255),f.sanskritImage=drawSanskritLayer(f),f.outlinesImage=drawOutlinesLayer(f),f.chladniImage=drawChladniLayer(f),f.config.isLoading=!1,f.resizeCanvas(f.realDimensions,f.realDimensions),f.image(f.chladniImage,0,0,f.realDimensions,f.realDimensions),f.config.showInfos&&drawInfos(f),console.log("Draw end."),f.noLoop()}},sketchInstance=new p5(sketch,document.getElementById("sketch"));
↓ show full (18,333 bytes)