I created a demoscene production using Gemini 3 and three.js
Part 1 of a 3 part story: TPOLM PLUS.
Ever since it became obvious that LLM’s could code, I’ve been thinking about ways to create demoscene productions with them. As you may know, I’ve been into visual programming for a long time, using tools like Notch and
Cables.gl, so vibe coding is not a huge jump for me. I’m just looking for fun creative tools to execute my fantasies of nice looking realtime graphics!
I started with creating simple individual shaders with the help of the early ChatGPT models, and advanced to making arcade style WebGL/Three.js games this year using reasoning models from OpenAI.
My demoscene production ambitions didn’t get very far though … until now.
When Gemini 3 and Claude Opus 4.5 were released, I noticed a pretty big jump in quality when it comes to doing 3D stuff with Three.js, so I thought now is the time to try this.
I picked a realistic starting point - I told Gemini 3 to look at a classic demoscene 64kb intro from 1998 - HPlus by Halcyon - and create an analysis of the structure and the effects used in it. According to it’s own words Gemini was very familiar with this demoscene masterpiece and did provide a great writeup of it. Based on this I told that we are now going to create a homage using
@threejs
I wanted to create this in Gemini’s internal canvas tool using no external assets. To make sure the AI could create a working structure i made it extra simple - let’s make the music 60BPM, let’s have four parts in the demo and each of them lasts 30 seconds. This should be clear enough for the LLM so it can create coherent stuff.
And sure enough, with this starting point it was able to create a pretty decent scaffolding. We got the 4 parts with some particle and wireframe effects in each part and a simple beat noises soundtrack.
After this, I spent around 4 hours creative directing the demo, improving on both the music and the visuals bit by bit. As vibe coders know, to keep the code from breaking it’s good to prompt only one change at a time. For example, one prompt was to create an “epic cinematic chord progression” and another one was to “add a heart wrenching melody using a lead synth instrument” or "change the camera angle there". The end result is what you see and hear in the video here.
Here is a link to run the final piece realtime in your browser:
fthr-tpolm.com/demos/tpolmpl…
In the end I spent around 5 hours with this and the process was really fun. There were almost no frustrating “vibe debugging” moments. I could freely try creative ideas and either discard them or improve on them.
It’s not a masterpiece and looks very much like a 64kb intro from 1998, which shouldn’t be a surprise given the starting prompt to generate a homage to a 64kb intro from 1998.
I’m sure the models can be pushed much further towards modern visuals though, so stay tuned for more.