In order to make my business cards a little unique for GDC 2017, I decided I would generate them.
4000 randomly-placed circles wander around the screen. They respawn in a random location if they go off the edge or if they wander for more than 500 frames without respawning. Each circle's angle of movement is determined every frame by 2D Perlin noise sampled at the location of the circle. That angle is also affected by the brightness of the inputted image at that location (in this case, an image with my name and realtime camera captures).
Add trails and that's the basic gist of it! I'm doing some other things like altering the speed and size of the circles depending on the brightness of the image.
It turns out that you don't need very complex behavior to start seeing some basic edge detection emerge!
Coded in Processing.