I've started learning about graphics shaders recently, and found this pretty neat site: https://www.shadertoy.com/ .
You can basically write shaders on the fly, and feed them pictures, videos, and apparently even audio as inputs, and it shows the result at the side. Its been giving me a few ideas, but I figured I'd post two of them I found that were pretty cool:
Seascape: Renders water graphics with under 200 lines of code.
Notebook drawings: Gives video a cool sketch-book visual style.
So far all I've done is turn an image to greyscale, but its kind of interesting.
Speaking of shaders, I'm kind of falling in love with them lately (even though I'm still rubbish at them). They're a great way of blending math and art to create novel visual effects, and really define a visual style from the ground up. The syntax is kinda hard, but I think the hardest part is dreaming up creative or novel ways to use shaders... the possibility space is huge.
This was my first attempt at coding a shader from scratch. It was part of a first-person xenobiology-themed prototype, where I was trying to visualize other ways alien senses might see the world. It hasn't yet gotten a beauty pass, but it was meant to represent Sonar Senses as they reflect off nearby materials. I was hoping to add a "roughness" or "softness" parameter that could be painted on game geometry, which would blur or mute the colors and give objects a sort of audio "Texture". Future plans also included allowing for multiple Sonar sources, sonar permeability through thin objects, and sonar "shadows" that cast out behind objects relative to an emitter. Oh, and maybe giving it a nicer color, like pale blue.
It was written in ShaderLab syntax, which is Unity's native shader language. I could dig up the source if anyone wanted it (it really is super simple), but in a nutshell, what's going on is it highlights pixels that are a certain distance from the viewpoint, fading out based on the offset from that distance. The distance could be configured by outside scripts too, so the width or frequency of the "scans" could be changed, or timed based on keypresses or other scripts.