← Back

Visual Noise

Generative particle art in WebGL. Pick a formation, tune the physics, move your cursor through it.

The Story

It started with a LinkedIn post. Someone's particle animation, canvas 2D, nothing crazy. But something in it snagged. Not the animation itself. The fact that there was math underneath it making something that felt alive.

So I went looking.

First iteration – getting particles to animate on a canvas.

Wave functions first. Wikipedia, which is a weird place to start anything but also kind of the right one. You want the original ugly version before someone's made it pretty. The equations themselves aren't interesting. What's interesting is what they draw. The patterns that fall out of them when you render them – interference, nodes, standing waves – look like they were designed. Like someone sat down and tried. They weren't. They're just what the math does when you let it go.

That pulled me toward Lissajous curves, which is what happens when you take those waves and ask what they look like in three dimensions. Two oscillating frequencies, different ratios, different phases. The shapes they make are genuinely beautiful. Figure eights that get complicated, closed loops that breathe differently depending on what numbers you feed in. I spent more time than I want to admit just changing values and watching what came out.

Second iteration – I began to implement wave functions and curves to the interactions and animations.

This is when the project started having its own gravity.

I grew up going out on weekends with my dad to photograph birds. It was slow and it required patience and most of the shots weren't worth anything. But every once in a while something would happen. A swallow would cut across the frame at the exact right moment, or a whole group of them would do something together that made you stop trying to photograph it and just watch.

Swallows alone are kind of a nothing bird. Small, fast, brown in the wrong light. But in a group they do something that individual swallows cannot do. They move together in a way that isn't choreographed but isn't random either. Somewhere between those two things. You can't look away.

I found the word for it eventually: murmuration. The phenomenon is in starlings and schools of fish. A three-dimensional shape moving through space, watched from the outside on a two-dimensional plane. No leader. No central instruction. Each animal responding to its nearest neighbors, and the whole thing producing something that looks like intelligence.

That's when the project clicked into something it hadn't been before. I wasn't just playing with math. I was trying to find the version of the canvas where the particles do what the birds do. Where the rules are local and the behavior is global, and what comes out feels like it knows something.

Still working on it. That's kind of the point.