Here’s something different: I have a new job! Today was my first day at Google Spotlight Stories. I’ll be working with some amazing filmmakers and technologists who are busy inventing a new kind of narrative visual storytelling uniquely suited to handheld mobile devices. If that sounds crazy, that’s because it is. It’s my kind of crazy. It’s exactly the kind of wild, inventive, “let’s try this and see what happens” attitude that got me interested in computer graphics in the first place, all those years ago. I couldn’t be more excited.
The video above really does a great job of capturing the delight of experiencing one of these stories for the first time. It’s almost impossible not to grin like a ninny. There’s not much more I can say about it right now, but there’s been some terrificpress about the projects they’ve created so far. I’ll share more when I can!
A more perceptually-uniform, though arguably less pretty, pseudocolor scheme.
Inspired by this brilliant interactive demo of the perceptually uniform CIE L*a*b* color space, I decided to try a L*a*b* version of my pseudocolor scheme. I don’t find this version as pretty to look at, but it has the advantage that higher values are always mapped to colors that are perceptually brighter than lower values. In other words, if you squint at the image above, the bright and dark regions correspond pretty much exactly to what you’d see if it were greyscale. (For the L*a*b* to RGB conversion, I grabbed pseudocode from this handy page.)
L*a*b* space is much bigger than RGB space, so the spiral gets clipped by the sides of the cube in a few places.If you crank up the saturation, you do get more vivid colors, at the cost of a lot more clipping.
A shader experiment gone horribly, beautifully wrong.
I was tinkering with some GLSL shaders in Processing, and I needed a way to visualize a value that smoothly changes from 0 to 1, showing a lot more than the 256 levels of gray that you’d normally see. So I wrote a little pseudocolor function that spirals through colorspace from black to white, hitting various hues along the way. It’s fun, and pretty, and very rungy-chungy, so I thought I’d post it here.
vec4 pseudo3(float val) {float reps = 20.0; float pi = 3.14159256; float bright = val; float con = 0.25 – 0.20 * cos(val * pi * 2.0); float sat = 0.66 – 0.25 * cos(val * pi * 2.0);