It began the way these things always begin. I wanted to see what WebGL2 could do with particles. Just a basic playground — throw some dots on screen, make them move, see what happens.

That was March 5th. By March 8th I had thousands of particles running on the GPU through transform feedback shaders, arranged into multi-layer neural network formations, connected by glowing lines, pulsing with shimmer effects that travel through the layers like signals firing.

I did not plan this.

The pull

There's a specific kind of project that grabs you by the collar. You change one parameter and the whole thing shifts. You tweak the layer ratio and suddenly the shape feels different. You adjust the rotation speed and it goes from frantic to meditative. You add bloom and gaussian blur and chromatic aberration in a post-processing pipeline and now it looks like something alive.

That's the pull. Every change reveals something new. You can't stop because you haven't seen what it does yet with this setting.

What it became

The particles arrange themselves in layers — a 1:4:4:1 ratio, like a real neural network architecture. Lines connect nodes between layers. Shimmer pulses travel from input to output and back. The whole thing rotates slowly on the Y-axis with perspective, so you can see the depth of the structure.

Per-layer color control. Each layer gets its own palette. The connections between layers blend the colors of their endpoints. It sounds technical when I describe it but when you see it, it just looks like something thinking.

All of it running on the GPU. Transform feedback means the particle simulation happens entirely in shaders — the CPU barely knows what's going on. That's how you get thousands of particles at smooth framerates without melting someone's laptop.

Six versions later

I ended up with six variants. The original playground where you can mess with everything. A particle creator tool. Two neural mesh versions with different visual treatments. An embeddable version stripped of all UI, meant for dropping into other sites as a background element. And a static grid for when you want the structure without the motion.

Six versions in three days. That's what happens when the creative feedback loop is tight enough. Change something, see the result immediately, change something else. No compile step, no deploy cycle. Just the GPU and the screen and the question: what if I try this?

I'll probably keep tweaking it. That's the thing about generative visuals — there's no "done." There's just the last version you walked away from before the next idea pulled you back.