memoscan
← all memos

Memo 0x90407c71…de99c0 on Ethereum

0x107a5ed5…3769·#21,178,430·view on Etherscan
PPPPPPPPV[u{"name":"Marfa Party #`P","artist":"minimizer","descript`","license":"CC BY-NC 4.0","imag`&","animation_url":"data:text/htm","external_url":"https://minimidata:application/json;base64,ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/Marfa Party is a 25-piece special edition of my Scribble Party algorithm. Physical plots from this collection were available in the Bantam Tools plotter vending machine from November 14 to 17, 2024, at the Art Blocks Gallery in Marfa, Texas. Alongside works by other artists, all proceeds from this vending machine supported the Marfa Library.g`MF-jEaϳ\gH=Ϛ<!-- minimizer, 2024. https://minimizer.art/ --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Marfa Party - Generating...</title> <style> body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #fff; text-align: center; } #tip { color: #777; } #spin { width: 50px; height: 50px; border: 5px solid #fff; border-top: 5px solid #000; border-radius: 50%; animation: spin 1s linear infinite; margin: 20px auto; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }} </style> </head> <body> <div> <h2>Generating...</h2> <div id="spin"></div> <p id="tip">Use 's' to save SVG once generated</p> </div> <script> const [tokenId, hash] = [] const compressedArtCode = ''; const workerCode = `self.onmessage = async e => self.postMessage((await import('data:text/javascript;charset=utf-8,'+encodeURIComponent(await new Response(new Blob([Uint8Array.from(atob('${compressedArtCode}'), c => c.charCodeAt(0))]).stream().pipeThrough(new DecompressionStream('gzip'))).text()))).createOutput(e.data))` const worker = new Worker(URL.createObjectURL(new Blob([workerCode], { type: 'application/javascript' }))) const downloadSVG = (svg, filename) => { const url = URL.createObjectURL(new Blob([svg], {type:'image/svg+xml'})) const a = document.createElement('a') a.href = url a.download = filename document.body.appendChild(a) a.click() document.body.removeChild(a) URL.revokeObjectURL(url) } worker.onmessage = e => { const {name, svg} = e.data document.title = name document.body.innerHTML = svg window.generatedSVG = svg document.addEventListener('keydown', e => e.code == 'KeyS' && downloadSVG(svg, name.replace('#','')+'.svg')) } worker.postMessage({tokenId,hash}) </script> </body> </html>