Bitcoin address: bc1qz25j3xkaza99c6jxps8rqkfvs9uzhms6arrv7u

SHOWING: First 60

dmt-mint.sats#76,324,516tapdmt-mint.block#76,324,075tapdmt-mint.burgerday#75,913,909tapdmt-mint.burgerday#75,913,908tapdmt-mint.burgerday#75,913,907tapdmt-mint.burgerday#75,913,906tapdmt-mint.burgerday#75,913,905tapdmt-mint.burgerday#75,913,399tapdmt-mint.burgerday#75,913,398tapdmt-mint.burgerday#75,913,397tapdmt-mint.burgerday#75,913,396tapdmt-mint.burgerday#75,913,395tapdmt-mint.burgerday#75,913,394tapdmt-mint.burgerday#75,913,393tapdmt-mint.burgerday#75,913,392tapdmt-mint.burgerday#75,913,391tapdmt-deploy.burgerday#75,913,349tap<!DOCTYPE html> <html> <head> <script src="/content/b6a50f5ba932b0ea7f652d9d28e59eced47bc6f8376c25e02d8b3457bb60ac8fi0"></script> <style> body { margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; height: 100%; background-color: #f0f0f0; overflow: auto; } #controls { width: 100%; background-color: rgba(255, 255, 255, 0.8); box-sizing: border-box; z-index: 10; position: absolute; top: 0; } #canvas-container { flex: 1; width: 100%; height: 100%; } canvas { display: block; } </style> </head> <body> <div id="controls"> <input id="blockNumberInput" type="number" placeholder="Enter block number" style="display: none;" /> </div> <div id="canvas-container"></div> <script> let canvas; let blockNumber = 1; let currentP5Instance = null; let scaleFactor = 1; const colors = [ '#000000', '#c8b7e3', '#f5aab6', '#f4a261', '#fa8072', '#87ceeb', '#ffe082' ]; const balloonColors = [ '#FFB6C1', '#FFDDC1', '#D3F9D8', '#B3E5FC', '#E1BEE7', '#FFAB91', '#FFE082', '#F48FB1' ]; function setup() { let canvasSize = min(windowWidth, windowHeight); canvas = createCanvas(canvasSize, canvasSize); canvas.parent('canvas-container'); noLoop(); generateColors(); generateArt(); document.getElementById('blockNumberInput').value = blockNumber; document.getElementById('blockNumberInput').addEventListener('input', updateArt); window.addEventListener('resize', resize, true); resize(); let mintText = document.getElementById('preview').getAttribute('mint'); if (mintText.includes('MINT_INSCRIPTION_ID')) { let input = document.getElementById('blockNumberInput'); input.style.display = 'block'; input.style.position = 'absolute'; input.style.fontSize = '10px'; input.style.margin = '1px'; input.style.top = '0'; input.value = blockNumber; input.addEventListener('input', () => { blockNumber = parseInt(input.value) || 1; updateArt(); }); updateArt(); } else { const request = new XMLHttpRequest(); try { request.open('GET', '/content/' + mintText); request.responseType = 'text'; request.addEventListener('load', () => initialize(request.response)); request.addEventListener('error', () => console.error('XHR error')); request.send(); } catch (error) { console.error(`XHR error ${request.status}`); } } } function initialize(result) { if (result) { console.log('Result', result); const data = JSON.parse(result); blockNumber = data.blk; } updateArt(); } function resize(event) { let canvasSize = min(windowWidth, windowHeight); canvas = createCanvas(canvasSize, canvasSize); const root = document.getElementById('canvas-container'); root.style.width = window.innerWidth - 300 + 'px'; root.style.height = window.innerHeight + 'px'; const orgWidth = 300; const orgHeight = 300; let scaleW = window.innerWidth / orgWidth; let scaleH = window.innerHeight / orgHeight; let offsetX = 0; let offsetY = 0; if (scaleH < scaleW) { scaleW = scaleH; offsetX = (window.innerWidth - orgWidth * scaleW) / 2; } else { scaleH = scaleW; offsetY = (window.innerHeight - orgHeight * scaleH) / 2; } canvas.style.zoom = scaleW; scaleFactor = Math.min(width / 1000, height / 1000); redraw(); updateArt(); } function updateArt() { generateColors(); generateArt(); } function generateColors() { let colorIndex = (blockNumber - 1) % colors.length; background(colors[colorIndex]); balloons.forEach(balloon => { balloon.color = getRandomBalloonColor(); }); } function generateArt() { Stars(); Rainbow(); updateBalloonColors(); drawBalloons(); BirthdayCard(width / 2, height / 1.15, min(width, height) * 0.3); let burgerWidth = width * 0.3; let burgerHeight = height * 0.4; let x = width / 1.5; let y = height / 1.8; drawDetailedBurger(x, y, burgerWidth, burgerHeight); } function BirthdayCard(x, y, size) { let cardWidth = size; let cardHeight = size * 0.6; fill('#ff8c00'); rectMode(CENTER); rect(x, y, cardWidth, cardHeight, 20); stroke(082, 193); strokeWeight(20); noFill(); rect(x, y, cardWidth, cardHeight, 20); textAlign(CENTER, CENTER); textStyle(BOLD); fill(255); noStroke(); let textSizeTop = cardWidth * 0.1; let textSizeMiddle = cardWidth * 0.15; let textSizeBottom = cardWidth * 0.1; textSize(textSizeTop); text("Bitcoin", x, y - cardHeight * 0.2); textSize(textSizeMiddle); text("Burger Day", x, y); textSize(textSizeBottom); text("2024-09-18", x, y + cardHeight * 0.2); } function updateBalloonColors() { balloons = [ { x: 0.15, y: 0.2, size: 80, color: getRandomBalloonColor() }, { x: 0.85, y: 0.2, size: 100, color: getRandomBalloonColor() }, { x: 0.85, y: 0.7, size: 70, color: getRandomBalloonColor() }, { x: 0.15, y: 0.7, size: 90, color: getRandomBalloonColor() } ]; } function getRandomBalloonColor() { return balloonColors[Math.floor(Math.random() * balloonColors.length)]; } let balloons = [ { x: 0.15, y: 0.2, size: 80, color: getRandomBalloonColor() }, { x: 0.85, y: 0.2, size: 100, color: getRandomBalloonColor() }, { x: 0.85, y: 0.7, size: 70, color: getRandomBalloonColor() }, { x: 0.15, y: 0.7, size: 90, color: getRandomBalloonColor() } ]; function drawBalloons() { for (let balloon of balloons) { let x = balloon.x * width; let y = balloon.y * height; let size = balloon.size * Math.min(width, height) / 1000; let color = balloon.color || getRandomBalloonColor(); drawBalloon(x, y, size, color); drawBitcoinLogo3(x, y, size * 0.6); } } function drawBalloon(x, y, size, color) { fill(color); noStroke(); ellipse(x, y, size, size * 1.2); fill('#333'); ellipse(x, y + size * 1.2 / 2, size * 0.2, size * 0.2); stroke('#333'); strokeWeight(2); line(x, y + size * 1.2 / 2, x, y + size * 1.2 + 50 * Math.min(width, height) / 1000); } function drawDetailedBurger(x, y, w, h) { // Colors for the burger layers let bunTopColor = color(242, 187, 114); let bunBottomColor = color(242, 187, 114); let pattyColor = color(93, 64, 55); let lettuceColor = color(34, 139, 34); let tomatoColor = color(255, 99, 71); let cheeseColor = color(255, 204, 0); // Thickness of each layer let bunThickness = h * 0.07; let pattyThickness = h * 0.08; let cheeseThickness = h * 0.04; let lettuceThickness = h * 0.025; let tomatoThickness = h * 0.04; let topBunWidth = w * 1; let lettuceWidth = w * 1; let topBunHeight = bunThickness; let lettuceHeight = lettuceThickness * 3; let moveLeft = w * 0.5; let bottomBunY = y + h * 0.2; let pattyY = bottomBunY - pattyThickness; let cheeseY = pattyY - cheeseThickness; let tomatoY = cheeseY - tomatoThickness; let lettuceY = tomatoY - lettuceThickness; let topBunY = lettuceY - topBunHeight; fill(bunBottomColor); rect(x - w / 2, bottomBunY, w, bunThickness, 10); fill(pattyColor); rect(x - w / 2, pattyY, w, pattyThickness, 10); fill(cheeseColor); rect(x - w / 2, cheeseY, w, cheeseThickness, 10); fill(tomatoColor); rect(x - w / 2, tomatoY, w, tomatoThickness, 10); fill(lettuceColor); arc(x - moveLeft, lettuceY, lettuceWidth, lettuceHeight, PI, TWO_PI, OPEN); fill(bunTopColor); ellipse(x - moveLeft, topBunY, topBunWidth, topBunHeight); } function Rainbow() { let colors = [ color(148, 0, 211), color(75, 0, 130), color(0, 0, 255), color(0, 255, 0), color(255, 255, 0), color(255, 127, 0), color(255, 0, 0) ]; let startX = width / 2; let startY = height * 0.9; let radius = Math.min(width, height) * 0.6; let arcWidth = radius * 0.015; noStroke(); for (let i = 0; i < colors.length; i++) { stroke(colors[i]); strokeWeight(arcWidth); noFill(); arc(startX, startY, radius * 2, radius * 2, PI, 0, OPEN); radius -= arcWidth; } } function Stars() { fill(255); noStroke(); for (let i = 0; i < 100; i++) { let x = random(width); let y = random(height); ellipse(x, y, 2, 2); } } function drawBitcoinLogo3(x, y, size) { noStroke(); fill('#f7931a'); ellipse(x, y, size, size); fill(255); textSize(size * 0.6); textAlign(CENTER, CENTER); text('\u20BF', x, y); } window.addEventListener('load', setup); </script> <script id="preview" mint="MINT_INSCRIPTION_ID"></script> </body> </html>#75,913,181textdmt-mint.magic#75,912,915tapbitcoinburgerday.20240918.16.element#75,912,914text<!DOCTYPE html> <html> <head> <script src="/content/b6a50f5ba932b0ea7f652d9d28e59eced47bc6f8376c25e02d8b3457bb60ac8fi0"></script> <!-- artwork by @dmtbillythecats --> <style> body { margin: 0; padding: 0; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; height: 100%; background-color: #f0f0f0; overflow: auto; } #controls { width: 100%; background-color: rgba(255, 255, 255, 0.8); box-sizing: border-box; z-index: 10; position: absolute; top: 0; } #canvas-container { flex: 1; width: 100%; height: 100%; } canvas { display: block; } </style> </head> <body> <div id="controls"> <input id="blk" type="number" placeholder="Enter block number" style="display: none;" /> </div> <div id="canvas-container"></div> <script> let canvas; let blockNumber = 1; let scaleFactor = 1; const skyColors = [ '#87ceeb', '#00bfff', '#1e90ff', '#4682b4', '#4169e1', '#000000' ]; const beetleColors = [ '#008000', '#0000FF', '#FFFF00', '#FFA500', '#800080', '#8B4513', '#FF0000' ] function containsSequence(number, sequence) { return number.toString().includes(sequence); } function containsQuadruple(blockNumber) { return /(\d)\1{3}/.test(blockNumber); } function containsTripleSequence(num) { let numStr = num.toString(); for (let i = 0; i <= 9; i++) { let sequence = i.toString().repeat(3); if (numStr.includes(sequence)) { return true; } } return false; } function m12(number) { return number % 12 === 0 } function m11(number) { return number % 11 === 0 } function m13(number) { return number % 13 === 0 } function m14(number) { return number % 14 === 0 } function m15(number) { return number % 15 === 0 } function m16(number) { return number % 16 === 0 } function m10(number) { return number % 10 === 0 } function m9(number) { return number % 9 === 0 } function m8(number) { return number % 8 === 0 } function m7(number) { return number % 7 === 0 } function m6(number) { return number % 6 === 0 } function m5(number) { return number % 5 === 0 } function setup() { let canvasSize = min(windowWidth, windowHeight); canvas = createCanvas(canvasSize, canvasSize); canvas.parent('canvas-container'); noLoop(); generateColors(); generateArt(); document.getElementById('blk').value = blockNumber; document.getElementById('blk').addEventListener('input', updateArt); window.addEventListener('resize', resize, true); resize(); let mintText = document.getElementById('preview').getAttribute('mint'); if (mintText.includes('MINT_INSCRIPTION_ID')) { let input = document.getElementById('blk'); input.style.display = 'block'; input.style.position = 'absolute'; input.style.fontSize = '10px'; input.style.margin = '1px'; input.style.top = '0'; input.value = blockNumber; input.addEventListener('input', () => { blockNumber = parseInt(input.value) || 1; updateArt(); }); updateArt(); } else { const request = new XMLHttpRequest(); try { request.open('GET', '/content/' + mintText); request.responseType = 'text'; request.addEventListener('load', () => initialize(request.response)); request.addEventListener('error', () => console.error('XHR error')); request.send(); } catch (error) { console.error(`XHR error ${error}`); } } } function initialize(result) { if (result) { try { console.log('Result', result); const data = JSON.parse(result); blockNumber = data.blk; updateArt(); } catch (error) { console.error('JSON parsing error', error); } } } function updateArt() { generateColors(); generateArt(); } function resize() { let canvasSize = min(windowWidth, windowHeight); resizeCanvas(canvasSize, canvasSize); const root = document.getElementById('canvas-container'); root.style.width = window.innerWidth - 300 + 'px'; root.style.height = window.innerHeight + 'px'; const orgWidth = 300; const orgHeight = 300; let scaleW = window.innerWidth / orgWidth; let scaleH = window.innerHeight / orgHeight; let offsetX = 0; let offsetY = 0; if (scaleH < scaleW) { scaleW = scaleH; offsetX = (window.innerWidth - orgWidth * scaleW) / 2; } else { scaleH = scaleW; offsetY = (window.innerHeight - orgHeight * scaleH) / 2; } canvas.style.zoom = scaleW; scaleFactor = Math.min(width / 1000, height / 1000); redraw(); updateArt(); } function generateColors() { let colorIndex = (blockNumber - 1) % skyColors.length; return skyColors[colorIndex]; } function generateArt() { clear(); let skyColor = generateColors(); let grassColor = color(34, 139, 34); background(skyColor); Hills(); Fence(); if (blockNumber % 2 === 0) { //even Stars(); Moon(); Tree(width * 0.2, height * 0.55, 'oak', 1); Tree(width * 0.6, height * 0.55, 'maple', 1); } else { Sun(); Cloud(width * 0.28, height * 0.22, width * 0.1); Cloud(width * 0.6, height * 0.21, width * 0.08); Cloud(width * 0.91, height * 0.09, width * 0.1); Tree(width * 0.2, height * 0.55, 'pine', 1); Tree(width * 0.6, height * 0.55, 'birch', 1); } if (blockNumber.toString().includes('21')) { Rainbow(); } if (blockNumber.toString().includes('99')) Aurora(width * 0.8, height * 0.3, width * 0.25); if (containsSequence(blockNumber, '88')) Rain(); if (containsSequence(blockNumber, '77')) Snow(); if (containsSequence(blockNumber, '66')) Lightning(); if (m11(blockNumber)) RLilies(); if (m12(blockNumber)) RDaisy(); if (m13(blockNumber)) RSunF(); if (m14(blockNumber)) RTulip(); if (m15(blockNumber)) ROrchid(); if (m16(blockNumber)) RPoppy(); if (m10(blockNumber)) RCherry(); if (m9(blockNumber)) RLupine(); if (m8(blockNumber)) RDandelion(); if (m7(blockNumber)) RMarigold(); if (m6(blockNumber)) RBluebell(); if (m5(blockNumber)) RRose(); if (blockNumber.toString().includes('42')) { let shuffledColors = shuffle(beetleColors); for (let i = 0; i < 5; i++) { let x = random(width); let y = random(height / 2, height); let color = shuffledColors[i % shuffledColors.length]; Beetle(x, y, color); } } for (let i = 0; i < 5; i++) { let x = random(width); let y = random(height * 0.5, height * 0.9); Butterfly(x, y); } let bottomHeight = height * 0.3; let flowerYMin = height - bottomHeight; let flowerCount = (blockNumber % 10) + 600; for (let i = 0; i < flowerCount; i++) { let x = random(width); let y = random(flowerYMin, height); let size = random(30, 100) * scaleFactor; let flowerType = floor(random(12)); if (y >= flowerYMin) { if (flowerType === 0) { DaisyF(x, y, size); } else if (flowerType === 1) { RoseF(x, y, size); } else if (flowerType === 2) { SunF(x, y, size); } else if (flowerType === 3) { TulipF(x, y, size); } else if (flowerType === 4) { LilyF(x, y, size); } else if (flowerType === 5) { OrchidF(x, y, size); } else if (flowerType === 6) { PoppyF(x, y, size); } else if (flowerType === 7) { CherryF(x, y, size); } else if (flowerType === 8) { LupineF(x, y, size); } else if (flowerType === 9) { Dandelion(x, y, size); } else if (flowerType === 10) { Marigold(x, y, size); } else { Bluebell(x, y, size); } } } } function RRose() { let roseCount = max(width, height) / 60; for (let i = 0; i < roseCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.015, 0.03); RoseF(x, y, size); } } function RBluebell() { let bluebellCount = max(width, height) / 50; for (let i = 0; i < bluebellCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); Bluebell(x, y, size); } } function RMarigold() { let marigoldCount = max(width, height) / 50; for (let i = 0; i < marigoldCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); Marigold(x, y, size); } } function RDandelion() { let dandelionCount = max(width, height) / 50; for (let i = 0; i < dandelionCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); Dandelion(x, y, size); } } function RLupine() { let lupineCount = max(width, height) / 50; for (let i = 0; i < lupineCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); LupineF(x, y, size); } } function RCherry() { let cherryCount = max(width, height) / 50; for (let i = 0; i < cherryCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); CherryF(x, y, size); } } function ROrchid() { let orchidCount = max(width, height) / 50; for (let i = 0; i < orchidCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); OrchidF(x, y, size); } } function RPoppy() { let poppyCount = max(width, height) / 50; for (let i = 0; i < poppyCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); PoppyF(x, y, size); } } function RTulip() { let tulipCount = max(width, height) / 50; for (let i = 0; i < tulipCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); TulipF(x, y, size); } } function RSunF() { let sunfCount = max(width, height) / 50; for (let i = 0; i < sunfCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); SunF(x, y, size); } } function RDaisy() { let daisyCount = max(width, height) / 50; for (let i = 0; i < daisyCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); DaisyF(x, y, size); } } function RLilies() { let lilyCount = max(width, height) / 50; for (let i = 0; i < lilyCount; i++) { let x = random(width); let y = random(height); let size = min(width, height) * random(0.02, 0.05); LilyF(x, y, size); } } function Butterfly(x, y) { noStroke(); let wingWidthUpper = width * 0.0135; let wingHeightUpper = height * 0.0216; let wingWidthLower = width * 0.0126; let wingHeightLower = height * 0.0190; let bodyWidth = width * 0.0054; let bodyHeight = height * 0.027; let spotWidthUpper = width * 0.00675; let spotHeightUpper = height * 0.0108; let spotWidthLower = width * 0.0054; let spotHeightLower = height * 0.0081; let antennaLength = height * 0.0108; fill(255, 255, 224); ellipse(x - wingWidthUpper * 0.4, y - wingHeightUpper * 0.4, wingWidthUpper, wingHeightUpper); ellipse(x + wingWidthUpper * 0.4, y - wingHeightUpper * 0.4, wingWidthUpper, wingHeightUpper); fill(255, 223, 186); ellipse(x - wingWidthLower * 0.4, y + wingHeightLower * 0.4, wingWidthLower, wingHeightLower); ellipse(x + wingWidthLower * 0.4, y + wingHeightLower * 0.4, wingWidthLower, wingHeightLower); fill(255, 140, 0); ellipse(x - wingWidthUpper * 0.4, y - wingHeightUpper * 0.4, spotWidthUpper, spotHeightUpper); ellipse(x + wingWidthUpper * 0.4, y - wingHeightUpper * 0.4, spotWidthUpper, spotHeightUpper); fill(255, 0, 0); ellipse(x - wingWidthLower * 0.4, y + wingHeightLower * 0.4, spotWidthLower, spotHeightLower); ellipse(x + wingWidthLower * 0.4, y + wingHeightLower * 0.4, spotWidthLower, spotHeightLower); fill(0, 100, 0); rect(x - bodyWidth * 0.4, y - bodyHeight * 0.4, bodyWidth, bodyHeight); stroke(0, 100, 0); strokeWeight(0.55); line(x - bodyWidth * 0.5, y - bodyHeight * 0.45, x - bodyWidth * 1, y - bodyHeight * 1); line(x + bodyWidth * 0.5, y - bodyHeight * 0.45, x + bodyWidth * 1, y - bodyHeight * 1); noStroke(); fill(255, 255, 255); ellipse(x - wingWidthUpper * 0.23, y - wingHeightUpper * 0.23, spotWidthUpper * 0.4, spotHeightUpper * 0.4); ellipse(x + wingWidthUpper * 0.23, y - wingHeightUpper * 0.23, spotWidthUpper * 0.4, spotHeightUpper * 0.4); fill(255, 182, 193); ellipse(x - wingWidthLower * 0.23, y + wingHeightLower * 0.23, spotWidthLower * 0.4, spotHeightLower * 0.4); ellipse(x + wingWidthLower * 0.23, y + wingHeightLower * 0.23, spotWidthLower * 0.4, spotHeightLower * 0.4); } function Butterflies() { for (let i = 0; i < 5; i++) { let x = random(width); let y = random(height); Butterfly(x, y); } } function Beetle(x, y, color) { noStroke(); const canvasWidth = width; const canvasHeight = height; const scaleFactor = 0.6; const bodyWidth = canvasWidth * 0.06 * scaleFactor; const bodyHeight = canvasHeight * 0.05 * scaleFactor; const headWidth = bodyWidth * 0.5; const headHeight = bodyHeight * 0.38; const spotSize = bodyWidth * 0.15; fill(color); ellipse(x, y, bodyWidth, bodyHeight); fill('#000000'); ellipse(x - bodyWidth * 0.25, y - bodyHeight * 0.15, spotSize, spotSize); ellipse(x + bodyWidth * 0.17, y - bodyHeight * 0.15, spotSize, spotSize); ellipse(x - bodyWidth * 0.17, y + bodyHeight * 0.1, spotSize, spotSize); ellipse(x + bodyWidth * 0.25, y + bodyHeight * 0.1, spotSize, spotSize); fill(0, 0, 0); ellipse(x, y - bodyHeight * 0.45, headWidth, headHeight); fill(0, 0, 0); beginShape(); vertex(x - bodyWidth * 0.42, y + bodyHeight * 0.25); vertex(x - bodyWidth * 0.58, y + bodyHeight * 0.35); vertex(x - bodyWidth * 0.17, y + bodyHeight * 0.3); endShape(CLOSE); beginShape(); vertex(x + bodyWidth * 0.42, y + bodyHeight * 0.25); vertex(x + bodyWidth * 0.58, y + bodyHeight * 0.35); vertex(x + bodyWidth * 0.17, y + bodyHeight * 0.3); endShape(CLOSE); beginShape(); vertex(x - bodyWidth * 0.42, y - bodyHeight * 0.2); vertex(x - bodyWidth * 0.58, y - bodyHeight * 0.3); vertex(x - bodyWidth * 0.17, y - bodyHeight * 0.25); endShape(CLOSE); beginShape(); vertex(x + bodyWidth * 0.42, y - bodyHeight * 0.2); vertex(x + bodyWidth * 0.58, y - bodyHeight * 0.3); vertex(x + bodyWidth * 0.17, y - bodyHeight * 0.25); endShape(CLOSE); stroke(0); strokeWeight(width * 0.01 * scaleFactor); noFill(); line(x - bodyWidth * 0.1, y - bodyHeight * 0.45, x - bodyWidth * 0.15, y - bodyHeight * 0.6); line(x - bodyWidth * 0.15, y - bodyHeight * 0.6, x - bodyWidth * 0.1, y - bodyHeight * 0.65); line(x + bodyWidth * 0.1, y - bodyHeight * 0.45, x + bodyWidth * 0.15, y - bodyHeight * 0.6); line(x + bodyWidth * 0.15, y - bodyHeight * 0.6, x + bodyWidth * 0.1, y - bodyHeight * 0.65); } function Cloud(x, y, size) { noStroke(); fill(255); ellipse(x, y, size, size * 0.45); ellipse(x - size * 0.4, y, size * 0.8, size * 0.6); ellipse(x + size * 0.4, y, size * 0.8, size * 0.6); ellipse(x - size * 0.2, y - size * 0.4, size * 0.7, size * 0.5); ellipse(x + size * 0.2, y - size * 0.4, size * 0.7, size * 0.5); } function Lightning() { let x1 = random(width * 0.1, width * 0.3); let y1 = random(height * 0.1, height * 0.3); let x2 = random(width * 0.7, width * 0.9); let y2 = random(height * 0.7, height * 0.9); let boltWidth = random(width * 0.005, width * 0.015); drawingContext.shadowBlur = boltWidth * 2; drawingContext.shadowColor = color(255, 255, 200, 150); stroke(255, 255, 200); strokeWeight(boltWidth); noFill(); drawBolt(x1, y1, x2, y2, 0); let numBranches = random(2, 5); for (let i = 0; i < numBranches; i++) { let branchStart = random(0.3, 0.7); let bx1 = lerp(x1, x2, branchStart); let by1 = lerp(y1, y2, branchStart); let bx2 = bx1 + random(-width * 0.2, width * 0.2); let by2 = by1 + random(height * 0.1, height * 0.3); strokeWeight(boltWidth * 0.6); drawBolt(bx1, by1, bx2, by2, 1); } drawingContext.shadowBlur = 0; } function drawBolt(x1, y1, x2, y2, branchLevel) { beginShape(); vertex(x1, y1); let numSteps = int(random(5, 15)); let prevX = x1; let prevY = y1; for (let i = 1; i <= numSteps; i++) { let x = lerp(x1, x2, i / numSteps); let y = lerp(y1, y2, i / numSteps); let offsetX = random(-width * 0.03, width * 0.03) * (1 - i / numSteps); let offsetY = random(-height * 0.03, height * 0.03) * (1 - i / numSteps); x += offsetX; y += offsetY; if (i > 1 && i < numSteps) { let midX = (prevX + x) / 2 + random(-width * 0.01, width * 0.01); let midY = (prevY + y) / 2 + random(-height * 0.01, height * 0.01); vertex(midX, midY); } vertex(x, y); prevX = x; prevY = y; if (branchLevel === 0 && random() < 0.2) { let bx2 = x + random(-width * 0.1, width * 0.1); let by2 = y + random(height * 0.05, height * 0.15); push(); strokeWeight(strokeWeight() * 0.5); drawBolt(x, y, bx2, by2, branchLevel + 1); pop(); } } endShape(); } function Snow() { noStroke(); fill(255); let numSnowflakes = 200; for (let i = 0; i < numSnowflakes; i++) { let x = random(width); let y = random(height); let size = random(2, 6); ellipse(x, y, size, size); } } function Rain() { noStroke(); fill(173, 216, 230); let numRaindrops = 200; for (let i = 0; i < numRaindrops; i++) { let x = random(width); let y = random(height); let length = random(10, 15); rect(x, y, 1.2, length); } } function Aurora(x, y, radius) { noStroke(); let auroraColors = [ color(0, 255, 0, 100), color(0, 255, 255, 100), color(255, 0, 255, 100), color(255, 255, 0, 100), color(255, 69, 0, 100), color(255, 105, 180, 100), color(135, 206, 250, 100), color(123, 104, 238, 100) ]; drawingContext.filter = 'blur(1px)'; for (let i = auroraColors.length - 1; i >= 0; i--) { let gradientRadius = radius * (i + 1) * 0.5; let gradientOpacity = map(i, 0, auroraColors.length - 1, 100, 50); fill(auroraColors[i].levels[0], auroraColors[i].levels[1], auroraColors[i].levels[2], gradientOpacity); ellipse(x, y, gradientRadius, gradientRadius * 0.6); } drawingContext.filter = 'none'; } function Rainbow() { noStroke(); let colors = [ color(148, 0, 211), color(75, 0, 130), color(0, 0, 255), color(0, 255, 0), color(255, 255, 0), color(255, 127, 0), color(255, 0, 0) ]; let startX = width / 2; let startY = height * 1.05; let radius = Math.min(width, height); let arcWidth = radius * 0.01; for (let i = 0; i < colors.length; i++) { stroke(colors[i]); strokeWeight(arcWidth); noFill(); arc(startX, startY, radius * 1.8, radius * 2, PI, 0, OPEN); radius -= arcWidth; } } function Sun() { let x = width * 0.06; let y = height * 0.06; let diameter = width * 0.06; let sunColor = color(255, 223, 0); let rayColor = color(255, 204, 0, 150); let glowColor = color(255, 150, 0, 50); noStroke(); for (let i = 5; i > 0; i--) { fill(glowColor.levels[0], glowColor.levels[1], glowColor.levels[2], map(i, 0, 5, 0, 50)); ellipse(x, y, diameter + i * 15); } fill(sunColor); ellipse(x, y, diameter); for (let i = 0; i < 20; i++) { let r = random(diameter / 2); let angle = random(TWO_PI); fill(255, 255, 200, random(100, 150)); ellipse(x + r * cos(angle), y + r * sin(angle), random(2, 5)); } let numRays = 12; for (let i = 0; i < numRays; i++) { let angle = TWO_PI / numRays * i + frameCount * 0.01; let rayLength = diameter * random(0.5, 0.7); let x1 = x + cos(angle) * (diameter / 2); let y1 = y + sin(angle) * (diameter / 2); let x2 = x + cos(angle) * (diameter / 2 + rayLength); let y2 = y + sin(angle) * (diameter / 2 + rayLength); push(); translate(x, y); rotate(angle); noFill(); stroke(rayColor); strokeWeight(diameter * 0.03); beginShape(); for (let j = diameter / 2; j < diameter / 2 + rayLength; j += 5) { let xoff = sin(j * 0.1 + frameCount * 0.1) * 5; vertex(j, xoff); } endShape(); pop(); } let centerGlow = drawingContext.createRadialGradient(x, y, 0, x, y, diameter / 2); centerGlow.addColorStop(0, 'rgba(255, 255, 255, 0.5)'); centerGlow.addColorStop(1, 'rgba(255, 255, 255, 0)'); drawingContext.fillStyle = centerGlow; ellipse(x, y, diameter); } function Moon() { let x = width * 0.06; let y = height * 0.06; let diameter = width * 0.06; let moonColor = color(255, 255, 220); let glowColor = color(255, 255, 180, 50); let shadowColor = color(180, 180, 200); for (let i = 5; i > 0; i--) { let alpha = map(i, 0, 5, 0, 50); fill(glowColor.levels[0], glowColor.levels[1], glowColor.levels[2], alpha); ellipse(x, y, diameter + i * 10); } fill(moonColor); noStroke(); ellipse(x, y, diameter); fill(shadowColor); ellipse(x + diameter * 0.1, y - diameter * 0.1, diameter * 0.7); ellipse(x - diameter * 0.25, y + diameter * 0.2, diameter * 0.3); ellipse(x + diameter * 0.3, y + diameter * 0.25, diameter * 0.2); fill(255); ellipse(x - diameter * 0.1, y - diameter * 0.1, diameter * 0.1); ellipse(x + diameter * 0.2, y + diameter * 0.2, diameter * 0.05); for (let i = 0; i < 20; i++) { let rx = random(-diameter/2, diameter/2); let ry = random(-diameter/2, diameter/2); if (rx*rx + ry*ry < (diameter/2)*(diameter/2)) { fill(random(200, 255), random(200, 255), random(180, 220), random(20, 50)); ellipse(x + rx, y + ry, random(1, 3)); } } } function Stars() { fill(255); noStroke(); const skyHeight = height * 0.5; const starCount = Math.floor(width * height * 0.0001); const starSize = width * 0.002; for (let i = 0; i < starCount; i++) { let x = random(width); let y = random(skyHeight); ellipse(x, y, starSize, starSize); } } function Fence() { let fenceHeight = height * 0.16; let postWidth = width * 0.02; let postSpacing = width * 0.06; stroke(139, 69, 19); strokeWeight(5); line(0, height * 0.8, width, height * 0.8); for (let x = 0; x <= width; x += postSpacing) { fill(139, 69, 19); noStroke(); rect(x, height * 0.8 - fenceHeight, postWidth, fenceHeight); fill(139, 69, 19); noStroke(); let railHeight = fenceHeight * 0.5; rect(x - postWidth * 0.5, height * 0.8 - railHeight * 1.5, postWidth * 2, railHeight); rect(x - postWidth * 0.5, height * 0.8 - railHeight, postWidth * 2, railHeight); } } function Tree(x, y, treeType) { noStroke(); const trunkWidth = width * 0.02; const trunkHeight = height * 0.1; const foliageSize = width * 0.1; const trunkX = x - trunkWidth / 2; const trunkY = y - trunkHeight; const foliageY = trunkY - foliageSize / 2; Trunk(trunkX, trunkY, trunkWidth, trunkHeight); switch (treeType) { case 'oak': OakFoliage(x, foliageY, foliageSize); break; case 'pine': PineFoliage(x, trunkY, foliageSize); break; case 'maple': MapleFoliage(x, foliageY, foliageSize); break; case 'birch': BirchTree(trunkX, trunkY, trunkWidth, trunkHeight, foliageSize); break; default: console.warn(`Unknown tree type: ${treeType}`); } } function Trunk(x, y, width, height) { noStroke(); fill(101, 67, 33); rect(x, y, width, height); for (let i = 0; i < 10; i++) { fill(81, 47, 13, 100); let barkX = x + random(width); let barkY = y + random(height); let barkW = random(1, width / 2); let barkH = random(3, height / 4); rect(barkX, barkY, barkW, barkH, 1); } } function OakFoliage(x, y, size) { let leafColor = color(34, 139, 34); let shadowColor = color(25, 100, 25); for (let i = 0; i < 3; i++) { let s = size - i * (size / 8); fill(shadowColor); ellipse(x + size/20, y + size/20, s, s * 0.9); fill(leafColor); ellipse(x, y, s, s * 0.9); } for (let i = 0; i < 15; i++) { push(); translate(x + random(-size/2, size/2), y + random(-size/2, size/2)); rotate(random(TWO_PI)); fill(leafColor); beginShape(); vertex(0, -5); bezierVertex(2, -2, 5, 0, 0, 5); bezierVertex(-5, 0, -2, -2, 0, -5); endShape(CLOSE); pop(); } } function PineFoliage(x, y, size) { let green = color(0, 100, 0); let darkGreen = color(0, 70, 0); for (let i = 0; i < 5; i++) { let triangleHeight = size * (1 - i * 0.15); let triangleWidth = size * (1 - i * 0.1); fill(lerpColor(green, darkGreen, i / 5)); triangle( x - triangleWidth / 2, y - i * size / 5, x + triangleWidth / 2, y - i * size / 5, x, y - triangleHeight - i * size / 5 ); } fill(255, 255, 255, 150); arc(x, y - size, size * 0.8, size * 0.2, PI, TWO_PI); } function MapleFoliage(x, y, size) { let colors = [ color(255, 0, 0), color(255, 69, 0), color(255, 165, 0), color(255, 215, 0) ]; for (let i = 0; i < 5; i++) { fill(random(colors)); MapleLeaf(x + random(-size/4, size/4), (y + 10) + random(-size/4, size/4), size * 0.7); } } function MapleLeaf(x, y, size) { push(); translate(x, y); rotate(random(TWO_PI)); scale(size / 75); beginShape(); vertex(0, -50); bezierVertex(25, -45, 40, -20, 50, 0); bezierVertex(50, 20, 30, 40, 20, 50); bezierVertex(10, 40, 0, 45, 0, 50); bezierVertex(0, 45, -10, 40, -20, 50); bezierVertex(-30, 40, -50, 20, -50, 0); bezierVertex(-40, -20, -25, -45, 0, -50); endShape(CLOSE); stroke(139, 69, 19, 100); line(0, -50, 0, 50); line(0, 0, 50, 0); line(0, 0, -50, 0); line(0, 0, 35, 35); line(0, 0, -35, 35); pop(); } function BirchTree(x, y, width, height, foliageSize) { fill(245, 245, 245); rect(x, y, width, height); for (let i = 0; i < 8; i++) { fill(0); let markX = x + random(width); let markY = y + random(height); let markW = random(1, 3); let markH = random(5, 15); rect(markX, markY, markW, markH); } let leafColor = color(144, 238, 144); for (let i = 0; i < 3; i++) { fill(leafColor); ellipse(x + width/2, y - height/4 - i * foliageSize/4, foliageSize - i * foliageSize/4, foliageSize - i * foliageSize/4); } } function Hills() { fill(34, 139, 34); noStroke(); beginShape(); vertex(0, height * 0.6); bezierVertex(width * 0.25, height * 0.5, width * 0.75, height * 0.5, width, height * 0.6); vertex(width, height); vertex(0, height); endShape(CLOSE); } function CherryF(x, y, size) { let petalCount = 5; let petalLength = size * 0.4; let petalWidth = size * 0.2; noStroke(); fill(255, 182, 193); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.2, -petalWidth * 0.5, petalLength * 0.6, -petalWidth * 0.5, petalLength, 0); bezierVertex(petalLength * 0.6, petalWidth * 0.5, petalLength * 0.2, petalWidth * 0.5, 0, 0); endShape(CLOSE); pop(); } fill(255, 255, 255); // White color ellipse(x, y, size * 0.3, size * 0.3); } function LupineF(x, y, size) { let petalCount = 10; let petalLength = size * 0.4; let petalWidth = size * 0.1; noStroke(); fill(100, 149, 237); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.2, -petalWidth * 0.7, petalLength * 0.4, -petalWidth * 0.7, petalLength, 0); bezierVertex(petalLength * 0.4, petalWidth * 0.7, petalLength * 0.2, petalWidth * 0.7, 0, 0); endShape(CLOSE); pop(); } fill(255, 255, 255); // White color ellipse(x, y, size * 0.3, size * 0.3); } function Dandelion(x, y, size) { let petalCount = 20; let petalLength = size * 0.3; let petalWidth = size * 0.1; noStroke(); fill(255, 255, 0); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); ellipse(petalLength / 2, 0, petalLength, petalWidth); pop(); } fill(255, 215, 0); ellipse(x, y, size * 0.2, size * 0.2); } function Marigold(x, y, size) { let petalCount = 12; let petalLength = size * 0.5; let petalWidth = size * 0.2; noStroke(); fill(255, 165, 0); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.3, -petalWidth * 0.5, petalLength * 0.7, -petalWidth * 0.5, petalLength, 0); bezierVertex(petalLength * 0.7, petalWidth * 0.5, petalLength * 0.3, petalWidth * 0.5, 0, 0); endShape(CLOSE); pop(); } fill(255, 215, 0); ellipse(x, y, size * 0.3, size * 0.3); } function Bluebell(x, y, size) { let petalCount = 6; let petalLength = size * 0.4; let petalWidth = size * 0.2; noStroke(); fill(0, 0, 255); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.2, -petalWidth * 0.5, petalLength * 0.5, -petalWidth * 0.5, petalLength, 0); bezierVertex(petalLength * 0.5, petalWidth * 0.5, petalLength * 0.2, petalWidth * 0.5, 0, 0); endShape(CLOSE); pop(); } fill(255, 255, 255); ellipse(x, y, size * 0.2, size * 0.2); } function PoppyF(x, y, size) { let petalCount = 6; let petalLength = size * 0.4; let petalWidth = size * 0.2; noStroke(); fill(255, 0, 0); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.3, -petalWidth * 0.7, petalLength * 0.6, -petalWidth * 0.7, petalLength, 0); bezierVertex(petalLength * 0.6, petalWidth * 0.7, petalLength * 0.3, petalWidth * 0.7, 0, 0); endShape(CLOSE); pop(); } fill(0, 0, 0); ellipse(x, y, size * 0.3, size * 0.3); } function OrchidF(x, y, size) { let petalCount = 5; let petalLength = size * 0.5; let petalWidth = size * 0.3; noStroke(); fill(238, 130, 238); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.2, -petalWidth * 0.6, petalLength * 0.5, -petalWidth * 0.5, petalLength, 0); bezierVertex(petalLength * 0.5, petalWidth * 0.5, petalLength * 0.2, petalWidth * 0.6, 0, 0); endShape(CLOSE); pop(); } fill(255, 250, 250); ellipse(x, y, size * 0.3, size * 0.3); } function LilyF(x, y, size) { let petalCount = 6; let petalLength = size * 0.5; let petalWidth = size * 0.2; noStroke(); fill(255, 182, 193); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.3, -petalWidth * 0.7, petalLength * 0.6, -petalWidth * 0.7, petalLength, 0); bezierVertex(petalLength * 0.6, petalWidth * 0.7, petalLength * 0.3, petalWidth * 0.7, 0, 0); endShape(CLOSE); pop(); } fill(255, 255, 0); ellipse(x, y, size * 0.3, size * 0.3); } function TulipF(x, y, size) { let petalCount = 6; let petalLength = size * 0.6; let petalWidth = size * 0.3; noStroke(); fill(255, 105, 180); for (let i = 0; i < petalCount; i++) { let angle = TWO_PI / petalCount * i; push(); translate(x, y); rotate(angle); beginShape(); vertex(0, 0); bezierVertex(petalLength * 0.2, -petalWidth * 0.5, petalLength * 0.6, -petalWidth * 0.6, petalLength, 0); bezierVertex(petalLength * 0.6, petalWidth * 0.6, petalLength * 0.2, petalWidth * 0.5, 0, 0); endShape(CLOSE); pop(); } fill(255, 255, 0); ellipse(x, y, size * 0.3, size * 0.3); } function DaisyF(x, y, size) { let numPetals = 12; let petalLength = size * 0.4; let petalWidth = size * 0.15; noStroke(); fill(255); for (let i = 0; i < numPetals; i++) { let angle = TWO_PI / numPetals * i; push(); translate(x, y); rotate(angle); ellipse(petalLength / 2, 0, petalLength, petalWidth); pop(); } fill(255, 220, 0); ellipse(x, y, size * 0.3, size * 0.3); } function RoseF(x, y, size) { size *= 0.75; let numPetals = floor(map(size, 0, 75, 15, 30)); let hue = random(340, 360); push(); translate(x, y); noStroke(); for (let i = 0; i < numPetals; i++) { let petalSize = map(i, 0, numPetals, size * 0.1, size); let angle = TWO_PI / numPetals * i; let petalX = cos(angle) * petalSize * 0.3; let petalY = sin(angle) * petalSize * 0.3; let petalHue = hue + random(-10, 10); let petalSaturation = random(70, 100); let petalBrightness = random(50, 80); let petalAlpha = map(i, 0, numPetals, 150, 255); fill(color(petalHue, petalSaturation, petalBrightness, petalAlpha)); push(); translate(petalX, petalY); rotate(angle + PI / 2); beginShape(); vertex(0, 0); bezierVertex(petalSize * 0.3, -petalSize * 0.4, petalSize * 0.7, -petalSize * 0.5, petalSize, -petalSize * 0.3); bezierVertex(petalSize * 1.1, -petalSize * 0.1, petalSize * 1.1, petalSize * 0.1, petalSize, petalSize * 0.3); bezierVertex(petalSize * 0.7, petalSize * 0.5, petalSize * 0.3, petalSize * 0.4, 0, 0); endShape(CLOSE); pop(); } fill(hue - 20, 100, 30); ellipse(0, 0, size * 0.2, size * 0.2); pop(); } function SunF(x, y, size) { let numPetals = 24; let petalLength = size * 0.4; let petalWidth = size * 0.1; noStroke(); fill(255, 200, 0); for (let i = 0; i < numPetals; i++) { let angle = TWO_PI / numPetals * i; push(); translate(x, y); rotate(angle); ellipse(petalLength / 2, 0, petalLength, petalWidth); pop(); } fill(100, 70, 0); ellipse(x, y, size * 0.4, size * 0.4); fill(60, 40, 0); for (let i = 0; i < 100; i++) { let angle = random(TWO_PI); let radius = random(size * 0.05, size * 0.18); let seedX = x + cos(angle) * radius; let seedY = y + sin(angle) * radius; ellipse(seedX, seedY, 3, 3); } } window.addEventListener('load', setup); </script> <script id="preview" mint="MINT_INSCRIPTION_ID"></script> </body> </html>#75,018,572textdmt-deploy.natseas#74,776,565tap857400.bitmap#74,612,652text856552.bitmap#74,213,714text856548.bitmap#74,211,021text856544.bitmap#74,209,513text856224.bitmap#74,089,082text856191.bitmap#74,074,095text856172.bitmap#74,065,266text856123.bitmap#74,045,258textdmt-mint.billythecats#73,679,880tapdmt-mint.billythecats#73,679,879tapdmt-mint.billythecats#73,679,878tapdmt-mint.billythecats#73,679,877tapdmt-mint.billythecats#73,679,876tapdmt-mint.billythecats#73,679,871tapdmt-mint.billythecats#73,679,868tapdmt-mint.billythecats#73,679,866tapdmt-deploy.billythecats#72,476,269tap846838.bitmap#71,431,003text837480.bitmap#67,115,315textdmt-mint.chaos#60,472,564tap134659.bitmap#13,294,407text108580.bitmap#13,107,585text762802.bitmap#12,852,180text107888.bitmap#12,852,151text38161.bitmap#12,504,301text