A webcam feed distorted by optical flow feedback, with colorful trails smearing across the frame as motion accumulates into abstract patterns.
Gush turns your webcam feed into something that looks like it's melting through a prism. Point your face at it, move around, click the mouse. Watch the colors bleed and chase each other across the screen in slow psychedelic trails. It's the kind of experiment that makes you wave your hand in front of your laptop like an idiot for five minutes straight, and you won't regret a second of it.
Adam Ferriss built this back in 2014 using WebGL, with help from Andrew Benson on the shader work. The core of it is optical flow, specifically the Horn-Schunck algorithm, a method from 1981 that calculates how pixels move between frames by assuming motion is smooth across the entire image. Benson wrote the GLSL implementation; Ferriss wrapped it in feedback loops. The result is motion detection that doesn't just track where you've been, it remembers. And smears. And compounds. Ferriss has a particular talent for taking well-understood techniques and breaking them in exactly the right way. He describes his process as knowing just enough about a program to break it creatively, and Gush is a good example of that philosophy made visible.
Ferriss is an LA-based artist, illustrator, and educator whose client list reads like a highlight reel: The New York Times, Wired, Google, Apple, Nike. You can find more of his work at amf.fyi or dig through his excellent shader examples on GitHub—the p5jsShaderExamples repo alone has nearly 900 stars. Andrew Benson's original optical flow work lives at pixlpa.com.
Try Gush with different lighting, different speeds, different amounts of stillness. The more you give it, the weirder it gets.
- Live Demo: https://adamferriss.com/gush
- Author(s):