memoscan
← all memos

Memo 0xb5a20194…daf8ef on Ethereum

document.body.onload = start; const bm = ["soft-light", "difference", "hard-light", "initial", "multiply", "overlay", "color-burn"], bs = ["inset", "double", "solid", "outset", "ridge", "groove"], st = ["no-shadow", "shadow"], spin = ["spin-1", "spin-2"], proses = ["collectively eternal;<br />soul of the world.", "continually devour yourself<br />to become reborn anew.", "wholly united,<br />matter and spirit.", "destruction is the<br />essential catalyst<br />for re-creation.", "systematically<br />slough sense<br />and shift.", "hen to pan,<br />the one is the all.", "go forth and<br />encircle the world.", "the coil of infinity<br />has no explicit<br />before or after.", "the unconscious<br />is first matter<br />and immortal.", "feed back<br />the output<br />into the input.", "pure assimilation<br />of the light<br />and of the shadow.", "twining and twisting<br />until linked,<br />circulatory and unbroken.", "ego is inescapable,<br />only launderable.", "the self-regulating<br />riddle of the living<br />is solved in death.", "only through girdled opposites<br />is the dawn state presented.", "absolute and unary;<br />the 0 is the 1."], vint = ["hsla(197, 37%, 24%, 1)", "hsla(173, 58%, 39%, 1)", "hsla(43, 74%, 66%, 1)", "hsla(27, 87%, 67%, 1)", "hsla(12, 76%, 61%, 1)"], unicorn = ["hsla(278, 35%, 78%, 1)", "hsla(337, 100%, 89%, 1)", "hsla(338, 100%, 84%, 1)", "hsla(208, 97%, 87%, 1)", "hsla(209, 100%, 82%, 1)"], murica = ["hsla(355, 78%, 56%, 1)", "hsla(105, 55%, 96%, 1)", "hsla(182, 43%, 76%, 1)", "hsla(203, 39%, 44%, 1)", "hsla(215, 50%, 23%, 1)"], capri = ["hsla(267, 72%, 63%, 1)", "hsla(324, 84%, 65%, 1)", "hsla(52, 99%, 62%, 1)", "hsla(195, 100%, 49%, 1)", "hsla(172, 100%, 48%, 1)"], forest = ["hsla(48, 50%, 88%, 1)", "hsla(70, 47%, 81%, 1)", "hsla(76, 37%, 61%, 1)", "hsla(26, 28%, 53%, 1)", "hsla(23, 17%, 36%, 1)"], amoeba = ["hsla(185, 28%, 76%, 1)", "hsla(341, 32%, 64%, 1)", "hsla(12, 85%, 79%, 1)", "hsla(43, 82%, 83%, 1)", "hsla(54, 67%, 86%, 1)"], gather = ["hsla(77, 98%, 25%, 1)", "hsla(220, 37%, 57%, 1)", "hsla(86, 34%, 77%, 1)", "hsla(28, 100%, 63%, 1)", "hsla(349, 72%, 67%, 1)"], pompom = ["hsla(332, 100%, 80%, 1)", "hsla(54, 91%, 86%, 1)", "hsla(143, 62%, 89%, 1)", "hsla(200, 87%, 82%, 1)", "hsla(278, 82%, 87%, 1)"], mistress = ["hsla(31, 98%, 77%, 1)", "hsla(278, 98%, 26%, 1)", "hsla(260, 98%, 18%, 1)", "hsla(327, 98%, 45%, 1)", "hsla(344, 100%, 45%, 1)"], candy = ["hsla(32, 84%, 72%, 1)", "hsla(264, 35%, 55%, 1)", "hsla(228, 38%, 79%, 1)", "hsla(1, 86%, 73%, 1)", "hsla(346, 55%, 55%, 1)"], dart = ["hsla(324, 39%, 31%, 1)", "hsla(86, 47%, 49%, 1)", "hsla(49, 83%, 59%, 1)", "hsla(181, 51%, 41%, 1)", "hsla(10, 66%, 61%, 1)"], mutant = ["hsla(0, 0%, 27%, 1)", "hsla(43, 75%, 84%, 1)", "hsla(186, 91%, 29%, 1)", "hsla(358, 100%, 68%, 1)", "hsla(110, 14%, 65%, 1)"], wonk = ["hsla(337, 22%, 37%, 1)", "hsla(12, 100%, 75%, 1)", "hsla(38, 100%, 66%, 1)", "hsla(37, 82%, 81%, 1)", "hsla(148, 34%, 73%, 1)"], flag = ["hsla(196, 100%, 41%, 1)", "hsla(6, 80%, 58%, 1)", "hsla(150, 3%, 13%, 1)", "hsla(39, 94%, 55%, 1)", "hsla(141, 29%, 44%, 1)"], flux = ["hsla(213, 47%, 72%, 1)", "hsla(292, 26%, 59%, 1)", "hsla(353, 80%, 69%, 1)", "hsla(36, 96%, 68%, 1)", "hsla(111, 23%, 70%, 1)"], cephalo = ["hsla(324, 27%, 29%, 1)", "hsla(353, 59%, 62%, 1)", "hsla(31, 32%, 68%, 1)", "hsla(108, 27%, 67%, 1)", "hsla(184, 12%, 50%, 1)"], palettes = ["vint", "unicorn", "murica", "capri", "forest", "amoeba", "gather", "pompom", "mistress", "candy", "dart", "mutant", "wonk", "flag", "flux", "cephalo"]; async function start() { document.body.addEventListener("click", toggleArtText); const e = window.innerWidth, a = window.innerHeight, t = Math.min(e, a); await addCss(); const s = parseInt(tokenData.hash.slice(2, 10), 16); let o = new Random(s), r = []; for (let e = 0; e < 32; e++)r.push(tokenData.hash.slice(2 + 2 * e, 4 + 2 * e)); const l = Math.floor(parseInt(r[14], 16)); let n = "", d = "", i = "", h = ""; switch (l) { case 78: n = "birth", colsRows = Math.floor(parseInt(r[16], 16) / 21.3) + 2, d = "initial", i = "shadow", h = "solid"; break; case 192: n = "death", colsRows = Math.floor(parseInt(r[16], 16) / 21.3) + 2, d = "initial", i = "no-shadow", h = "double"; break; default: const e = Math.floor(parseInt(r[15], 16) / 16); n = palettes[e], colsRows = Math.floor(parseInt(r[16], 16) / 21.3) + 2; const a = Math.floor(parseInt(r[17], 16) / 36.57142857142857); d = bm[a]; const t = Math.floor(parseInt(r[18], 16) / 42.6); h = bs[t]; const s = Math.floor(parseInt(r[19], 16) / 128); i = st[s] }const c = Math.floor(parseInt(r[20], 16) / 16); prose = proses[c]; const b = Math.floor(parseInt(r[10], 16) / 12.8) + 1, m = Math.floor(parseInt(r[11], 16) / 17.06) + 1, u = Math.floor(parseInt(r[12], 16) / 25.6) + 1, y = Math.floor(parseInt(r[13], 16) / 51.2) + 1, p = o.random_int(0, 4); document.body.classList.add("center-flex"), document.body.style.fontSize = "16px"; const f = document.createElement("div"); f.id = "sktch", f.classList.add("center-flex"), f.style.width = t + "px", f.style.height = t + "px", document.body.appendChild(f); const g = document.createElement("div"); g.id = "textContainer", g.classList.add("text-container"), g.style.width = .97 * t + "px", g.style.height = .97 * t + "px", g.style.display = "none", g.innerHTML = prose, document.getElementById("sktch").appendChild(g); const k = document.createElement("div"); switch (k.id = "container", k.classList.add("container"), k.style.width = .97 * t + "px", k.style.height = .97 * t + "px", k.style.gridTemplateColumns = "repeat(" + colsRows + ", 1fr)", k.style.gridTemplateRows = "repeat(" + colsRows + ", 1fr)", n) { case "vint": k.style.backgroundColor = vint[p]; break; case "unicorn": k.style.backgroundColor = unicorn[p]; break; case "murica": k.style.backgroundColor = murica[p]; break; case "capri": k.style.backgroundColor = capri[p]; break; case "forest": k.style.backgroundColor = forest[p]; break; case "amoeba": k.style.backgroundColor = amoeba[p]; break; case "gather": k.style.backgroundColor = gather[p]; break; case "pompom": k.style.backgroundColor = pompom[p]; break; case "mistress": k.style.backgroundColor = mistress[p]; break; case "candy": k.style.backgroundColor = candy[p]; break; case "dart": k.style.backgroundColor = dart[p]; break; case "mutant": k.style.backgroundColor = mutant[p]; break; case "wonk": k.style.backgroundColor = wonk[p]; break; case "flag": k.style.backgroundColor = flag[p]; break; case "flux": k.style.backgroundColor = flux[p]; break; case "cephalo": k.style.backgroundColor = cephalo[p]; break; case "birth": case "death": k.style.backgroundColor = "#f1f1f1" }document.getElementById("sktch").appendChild(k); for (let e = 1; e < colsRows ** 2 + 1; e++)await generateCell(o, l, colsRows, p, n, b, m, u, y, d, h, i) } function addCss() { return new Promise(e => { const a = document.createElement("style"); a.type = "text/css", a.rel = "stylesheet", a.textContent = "html, body{background-color:#f1f1f1;overflow: hidden;}#sktch{position:relative;padding:0;margin:0;overflow:hidden}.container{position:relative;display:grid;-webkit-clip-path:circle(50%);clip-path:circle(50%);overflow:hidden;}.center-flex{display:flex;align-items:center;justify-content:center;}.cell{border-radius:32%;}.shadow1{box-shadow: 0.75vh 0.75vh 3vh #676767, -0.75vh -0.75vh 3vh #676767;}.shadow2{box-shadow: 0.5vh 0.5vh 2.5vh #676767, -0.5vh -0.5vh 2.5vh #676767;}.shadow3{box-shadow: 0.25vh 0.25vh 2vh #676767, -0.25vh -0.25vh 2vh #676767;}@keyframes spin-1{to{transform: rotate(-1turn);}}@keyframes spin-2{to{transform: rotate(1turn);}}.shadow-781{box-shadow: inset 0.75vh 0.75vh 3vh #d1d1d1, -0.75vh -0.75vh 3vh #d1d1d1;}.shadow-782{box-shadow: inset 0.5vh 0.5vh 2.5vh #d1d1d1, -0.5vh -0.5vh 2.5vh #d1d1d1;}.shadow-783{box-shadow: inset 0.25vh 0.25vh 2vh #d1d1d1, -0.25vh -0.25vh 2vh #d1d1d1;}.text-container{color: #fff;background-color: #000;justify-content: center;font-family: Garamond, serif;font-size:7vmin;align-items:center;text-align:center;-webkit-clip-path: circle(50%);clip-path:circle(50%);}", document.head.appendChild(a), e() }) } function generateCell(e, a, t, s, o, r, l, n, d, i, h, c) { return new Promise(b => { const m = document.createElement("div"); if (m.classList.add("cell"), 78 !== a && 192 !== a) { let a = e.random_int(0, 4); for (; a === s;)a = e.random_int(0, 4); switch (o) { case "vint": m.style.borderColor = vint[a]; break; case "unicorn": m.style.borderColor = unicorn[a]; break; case "murica": m.style.borderColor = murica[a]; break; case "capri": m.style.borderColor = capri[a]; break; case "forest": m.style.borderColor = forest[a]; break; case "amoeba": m.style.borderColor = amoeba[a]; break; case "gather": m.style.borderColor = gather[a]; break; case "pompom": m.style.borderColor = pompom[a]; break; case "mistress": m.style.borderColor = mistress[a]; break; case "candy": m.style.borderColor = candy[a]; break; case "dart": m.style.borderColor = dart[a]; break; case "mutant": m.style.borderColor = mutant[a]; break; case "wonk": m.style.borderColor = wonk[a]; break; case "flag": m.style.borderColor = flag[a]; break; case "flux": m.style.borderColor = flux[a]; break; case "cephalo": m.style.borderColor = cephalo[a] } } else switch (o) { case "birth": m.style.borderColor = "#f1f1f1"; break; case "death": m.style.borderColor = "#000" }m.style.mixBlendMode = i, 79 === a && 224 === a || (m.style.borderStyle = h), m.style.animation = "spin-" + e.random_int(1, 2) + " 10s linear infinite", 78 === a ? t > 1 && t < 6 && "shadow" === c ? m.classList.add(c + "-781") : t > 5 && t < 10 && "shadow" === c ? m.classList.add(c + "-782") : t > 9 && t < 14 && "shadow" === c && m.classList.add(c + "-783") : t > 1 && t < 6 && "shadow" === c ? m.classList.add(c + "1") : t > 5 && t < 10 && "shadow" === c ? m.classList.add(c + "2") : t > 9 && t < 14 && "shadow" === c && m.classList.add(c + "3"), t > 1 && t < 5 ? (m.style.margin = "-" + r + "vmin", m.style.borderWidth = "4vmin") : t > 4 && t < 8 ? (m.style.margin = "-" + l + "vmin", m.style.borderWidth = "3vmin") : t > 7 && t < 11 ? (m.style.margin = "-" + n + "vmin", m.style.borderWidth = "2vmin") : t > 10 && t < 14 && (m.style.margin = "-" + d + "vmin", m.style.borderWidth = "1vmin"), document.getElementById("container").appendChild(m), b() }) } function toggleArtText() { "grid" === window.getComputedStyle(document.getElementById("container", null)).getPropertyValue("display") ? (document.querySelector("#container").style.display = "none", document.querySelector("#textContainer").style.display = "flex") : (document.querySelector("#container").style.display = "grid", document.querySelector("#textContainer").style.display = "none") } class Random { 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_between(e, a) { return e + (a - e) * this.random_dec() } random_int(e, a) { return Math.floor(this.random_between(e, a + 1)) } random_choice(e) { return e[Math.floor(this.random_between(0, .99 * e.length))] } }