Accidental Vibe Coding
Staring at the Wallpaper
It’s a lazy Sunday afternoon after finishing some reluctant gardening and I sit down at my Mac to triage some overdue emails. Procrastination is in order. “My wallpaper is boring, I think I’ll change it”
What I normally do in this situation is search the web for some cool looking abstract art to use. But this time I thought: “We have these AI tools now, I can generate something unique!”
Here is what happened.
Note: Most of the below is generated using the free tier of each service.
ChatGPT
First stop ChatGPT. The OG.
I entered the prompt:
“Generate some abstract art with a dark background that I can use as a desktop background. Use pink / purple colours for the foreground designs”
It responded with:

After an eternity (I dont know how long because I left it over night!), I got this:

Nice! But I wanted to refine it. Sadly I couldn’t because I went in the queue again for processing. Fair enough. I wasn’t using a paid subscription.
Gemini - 2.5 Pro (Preview) and 2.5 Flash
Same prompt as above gets me this beauty

I actually really like this. I did set it as my wallpaper. But how about refinements?
“Make the foreground design more neon”

Eventually I ran out of free credit on 2.5 pro. At least thats what I think happened. It just threw and error then asked me to upgrade.
I was pretty happy with the results though.
Curiosity and procrastination pushed me forward so I switched to 2.5 Flash and generated a another:

Finally I wanted to switch it up and instead of brush strokes, use ASCII characters to make it more “cyberpunk”.
“Now make the same image with the same colours but use numbers and letters to compose the curves. Like stylised ascii art”

Cool, but not quite what I was after.
In for a penny, in for a pound. Time to try Claude!
Claude Sonnet 4
I changed my prompt here based on where I had got to with the other services. I wasn’t intending on scientifically comparing each service at the start of this lazy Sunday procrastination session:
“Generate some abstract art with a dark background that I can use as a desktop background. Use pink / purple neon colours for the foreground designs and make them like random curvy strokes of a medium thickness paintbrush”
This is where things got really fun. Claude did something neither ChatGPT or Gemini did. Rather than just use an image generation model to generate and serve me a png or jpg, Claude took it upon itself to write some Javascript code to generate the image:

It created a single page web app that allowed me to click on the image to generate new versions ad infinitum. I asked it to do my ASCII art version.
“Now could you make the same image but using numbers and letters to compose the curves. Like stylised ascii art”

This was more what I was looking for.
But the fact it generated code was way more interesting to me than the plain old png’s and jpg’s. I continued to refine until the images it generated were what I wanted. When it was generating what I wanted I switched to refining the web app instead of the images:
“Adapting version 24, could you add an option to switch between the ascii art and the brush strokes?”
Through refinements, Claude did 29 versions and version 24 was generating what I liked best.
… and then I ran out of free credit … However I have a GitHub co-pilot license and I wasn’t done so I pasted the code into VSCode and continued using the Sonnet 4 model:
“Can you add an option to change the colours of the art?”
“Can you add an export as png button?”


Wait a minute?! All I wanted was some cool wallpaper and all of a sudden I am “Vibe Coding” unintentionally. Oh! I get why this is a thing now!
Accidental Vibe Coding
I set out to change the wallpaper on my Mac and ended up accidentally Vibe Coding my way to a wallpaper generator! 100% of the code for this was generated by Claude and honestly I think it’s pretty neat.
It’s interesting that Claude’s first port of call was to generate code to generate the art. This kind of means it might be using influences in its training data for the style, but the art itself is not.
Maybe it shouldn’t, but it fascinates me that Claude can leap from some stylistic prompts to writing code that generates the art in the requested style.
You can try the wallpaper generator yourself here: https://jgandrews.com/wallpaper.html and I have uploaded the code to GitHub here: https://github.com/andrewsjg/accidental-vibe-coding