memoscan
← all memos

Memo 0xe709c1f7…94bd44 on Ethereum

// Find a non-minified and better commented version of this script online at the artist's website. Copyright Matthew Costanza 2021 let hV, hb, binL, tkB, shape, shapeI, sRef, sIRef, pattB, pBRef, pattI, pIRef, isS, midPs, recP, recS, pal, ar, cW, cH, minD, s, col, arm, w, b, a, v, g, r, p; let binP = 0; let gR = 0.618; let def = 0.382; let allPattP = []; let allSP = []; let showShape = true; calculateFeatures(tokenData); setDim(); function calculateFeatures(tD) { tkB = tD.tokenId % 2; hV = cHVal(tD.hash); hb = cHBin(hV); binL = hb.length; w = "#ffffff"; b = "#000000"; a = "#275bb2"; v = "#43AA8B"; g = "#fcd612"; r = "#b10b0b"; p = "#f368cb"; shape = gV(1, 9); if (shape < 4) { ar = 1; } else if (shape < 7) { ar = 2; } else { ar = 3; } shapeI = gV(1, 5); pattB = gV(1, 100); if (pattB > 62) { pattB = 1; } else if (pattB > 42) { pattB = 2; } else if (pattB > 22) { pattB = 3; } else if (pattB > 2) { pattB = 4; } else { pattB = 5; } pattI = gV(1, 11); if (pattI < 4 && pattB == 2) { pattB = 1; } midPs = gV(1,6); midPs = 2 ** midPs - 1; if (midPs == 1 && (pattB == 2 || pattI == 7 || pattI == 8)) { midPs = 3; } if (midPs < 5 && pattI == 9) { midPs = 5; } recP = gV(0, 5); rP = 2 ** recP; recS = gV(0, 3); if ((shape == 6 || shape == 9) && shapeI == 1) { rS = 1; } else if (shapeI == 4) { rS = 2; } else if ((shape == 6 || shape == 9) && shapeI == 3) { rS = Math.min((3 ** recS), 5); } else { rS = 3 ** recS; } pal = gV(0, 19); let cols = [ [w, b, v, w], [w, b, a, w], [w, b, r, w], [w, b, p, w], [w, b, g, w], [w, b, r, g], [w, b, a, g], [w, b, v, g], [b, w, v, g], [b, w, a, g], [b, g, w, g], [b, w, b, w], [a, r, w, g], [a, g, w, g], [a, w, v, w], [a, w, b, w], [r, w, b, g], [r, w, a, w], [v, w, a, w], [g, b, w, b] ]; col = cols[pal]; if (shapeI == 5 && col[1] == col[3]) { shapeI = 2; } if (rS == 1 && (shapeI == 3 || shapeI == 5)) { shapeI = 2; } if (shapeI == 2 && rS > 1) { rS = 1; } if (pattB == 5 && pattI == 11) { if (shapeI == 2 || shapeI == 1) { isS = "Portal"; } else { isS = "Truth"; } } else { isS = "Yes"; } function cHVal(TH) { let h = []; for (let i = 0; i < (TH.length - 2) / 2; i++) { h.push(parseInt(TH.slice(2 + i * 2, 4 + i * 2), 16)); } return h; } function cHBin(H) { let b = ''; for (let i = 0; i < H.length - 1; i++) { let t = H[i].toString(2); b = b + t; } return b; } function gV(min, max) { max = max + 0.999; let x = Math.floor((hV[0] * (max - min)) / 255 + min); hV.shift(); return x; } } function setDim() { binP = 0; let winW = window.innerWidth; let winH = window.innerHeight; minD = Math.min(winW, winH); if (ar == 1) { arm = 1; cW = minD; cH = minD; } else if (ar == 2) { arm = gR; if (winW / winH >= gR) { cH = winH; cW = Math.floor(gR * cH); } else { cW = winW; cH = Math.floor(cW / gR); } } else if (ar == 3) { arm = 1 / gR; if (winH / winW >= gR) { cW = winW; cH = Math.floor(gR * cW); } else { cH = winH; cW = Math.floor(cH / gR); } } u = (Math.max(cW, cH)) / 300; } function windowResized() { allPattP = []; allSP = []; setDim() resizeCanvas(cW, cH); } function getBin() { let b = hb[binP]; binP = (binP + 1 != binL) ? binP + 1 : 0; return b; } function keyPressed() { if (key === 's') { saveCanvas('FOCUS-' + `${tokenData.tokenId}` + '_hash-' + `${tokenData.hash}` + '_RecursionFactor-' + `${rP}` + '_midpoints-' + `${midPs}` + '_shape-' + `${showShape}`, 'png') } else if (key === 'h') { if (showShape == true) { showShape = false; } else { showShape = true; } windowResized() } else if (keyCode === RIGHT_ARROW) { midPs +=2; windowResized(); } else if (keyCode === LEFT_ARROW) { midPs > 1 ? midPs -= 2 : midPs = 1; windowResized(); } else if (keyCode === UP_ARROW) { rP += 1; windowResized(); } else if (keyCode === DOWN_ARROW) { rP > 1 ? rP -= 1 : rP = 1; windowResized(); } } function setup() { createCanvas(cW, cH); angleMode(DEGREES); }