AI Excuse Generator - Why I Can't Work Today

48 views Β· Dec 14, 2025

Need a reason to procrastinate? Click to generate increasingly desperate excuses! From 'Mercury is in retrograde' to 'I'm emotionally buffering' - this humorous sketch spawns floating excuse bubbles that fade away. The more you click, the more absurd the excuses get. Perfect for sharing and relatable humor.

#xelsedia#xelsedai#humor#procrastination#funny
πŸ”€ Remix This πŸ“– View Docs β›Ά Full Screen ← Back to Gallery
πŸ“‹ Embed Code

Copy this code to embed this sketch on your website:

<iframe src="https://p5js.ai/embed/89c30106-e63f-4ecb-8177-a785bce3733b" width="400" height="400" frameborder="0" allow="autoplay" title="AI Excuse Generator - Why I Can't Work Today"></iframe>

Adjust width and height as needed. Preview embed β†’

❓ About This Sketch 3 questions

What visual experience does the AI Excuse Generator create?

The sketch generates floating excuse bubbles that fade away as they rise, set against a soft pastel background, providing a whimsical and humorous visual experience.

How can users engage with the AI Excuse Generator sketch?

Users can interact with the sketch by clicking the canvas, which generates increasingly absurd excuses that appear as floating bubbles.

What creative coding concepts are illustrated in this p5.js sketch?

This sketch demonstrates the use of arrays for categorizing excuses, dynamic bubble animations, and user interaction through mouse events.

πŸ’¬ AI Chat History 2 messages
πŸ‘€ You
Create a humorous excuse generator. Pastel background. Each click spawns a floating text bubble with a random funny excuse like 'Mercury is in retrograde', 'My horoscope said stay home', 'I need to alphabetize my spices', 'The WiFi looks tired', 'My plants need emotional support'. Bubbles float upward slowly and fade out. Multiple bubbles can exist at once. Add a counter showing 'Excuses generated: X'. The more you click the more desperate the excuses get. Humor and relatability. Under 50 lines.
πŸ€– AI
Here’s a compact sketch that does everything you described and stays well under 50 lines.

### sketch.js
```js
let bubbles = [], count = 0;
let excusesEasy = [
"Mercury is in retrograde",
"My horoscope said stay home",
"I need to alphabetize my spices",
"The WiFi looks tired",
"My plants need emotional support"
];
let excusesMid = [
"My sourdough starter needs supervision",
"I'm waiting for my motivation to update",
"My Sims need me online",
"I'm emotionally buffering",
"I promised my couch I'd stay"
];
let excusesHard = [
"I've already put on my 'staying in' pants",
"My last brain cell called in sick",
"I'm in a committed relationship with procrastination",
"If I leave, the internet might miss me",
"I used all my social energy opening this tab",
"My anxiety and I have a performance review scheduled"
];
function setup() {
createCanvas(windowWidth, windowHeight);
textFont("sans-serif"); textSize(16);
}
function draw() {
background(245, 234, 255);
for (let i = bubbles.length - 1; i >= 0; i--) {
let b = bubbles[i];
b.y -= b.vy; b.a -= 2;
if (b.a <= 0) { bubbles.splice(i, 1); continue; }
push();
translate(b.x, b.y); rectMode(CENTER); noStroke();
fill(255, 255, 255, b.a);
let pad = 12, w = textWidth(b.txt) + pad * 2, h = 50;
rect(0, 0, w, h, 20);
fill(70, 60, 90, b.a); textAlign(CENTER, CENTER);
text(b.txt, 0, 0, w - 10, h - 10);
pop();
}
fill(70); textAlign(LEFT, TOP);
text("Excuses generated: " + count, 10, 10);
}
function mousePressed() {
let pool = count < 5 ? excusesEasy : count < 10 ? excusesMid : excusesHard;
let msg = random(pool);
bubbles.push({ x: random(120, width - 120), y: height + 40, txt: msg, a: 255, vy: random(0.5, 1.2) });
count++;
}
function windowResized() { resizeCanvas(windowWidth, windowHeight); }
```

---

### index.html
Make sure p5.js v1.11.3 is loaded before `sketch.js`:

```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>p5.js Sketch - Excuse Generator</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.jsdelivr.net/npm/p5@1.11.3/lib/p5.min.js"></script>
</head>
<body>
<script src="sketch.js"></script>
</body>
</html>
```

---

### style.css
You can keep your existing styles:

```css
body {
margin: 0;
padding: 0;
overflow: hidden;
}

canvas {
display: block;
}
```

Click anywhere on the canvas to spawn floating excuse bubbles; they drift upward, fade out, and the counter tracks how many increasingly desperate excuses you’ve generated.
🎬 Video Preview