Category Archives: fun

Fun with Pseudocolor, Part Two

A more perceptually-uniform, if less pretty, pseudocolor scheme.
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 against the edge of the cube in some places.
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.
If you crank up the saturation, you do get more vivid colors, at the cost of a lot more clipping.

Fun with Pseudocolor

Screen Shot 2015-03-17 at 10.14.36 AM

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);

    return vec4(sin(val*pi*reps)*con+bright,
                sin(val*pi*reps - pi*0.663 * sat)*con+bright,
                sin(val*pi*reps - pi*1.333 * sat)*con+bright,

Here's the path the above function traces through the RGB cube of colorspace.
Here’s the path the above function traces through the RGB cube of colorspace.

Eyeteleporter and Pinhole Selfies

From a planet not far from the Telestereoscope, two projects have just entered our universe…

The Eyeteleporter, a wearable cardboard periscope that displaces your vision about two feet in any direction:


And Pinhole Selfies, a delightful mashup of retro tech with millennial idiom:



Hat tip to Brock Hanson for the links.

Update: I just realized that the pinhole selfie photographer, Ignas Kutavicius, is the same fellow who invented the amazing solargraphy technique of capturing the sun’s movement with a long exposure pinhole camera. Brilliant!


A homegrown telestereoscope

Once in a while I get a random email from someone interested in checking out the Telestereoscope. If they’re local, I usually direct them to the CuriOdyssey museum, where we have a small one installed. But lately I’ve been encouraging anyone who’s interested to try building one for themselves. Our first prototype cost just a few dollars in materials, and can be put together in minutes. (Calibrating it takes a bit longer, but the process is educational, and ultimately quite rewarding.)

Here’s a working telestereoscope built by Will Rogers. He used metal C-clamps and some very interestingly shaped mirrors (maybe reclaimed from an old car?) giving his version a really distinctive style. I love it!

spozbo's telestereoscope

A camera lucida for all my friends!

My old friend Golan Levin and his collaborator Pablo Garcia have updated the camera lucida for the 21st century. Being a big fan of arcane optical devices, I had to have one. But this would be good for anyone who draws from life or is interested in learning to do so. Judging by the breathtaking rate at which this project’s getting backed, you probably have only a few hours to jump in. Back it here!

Exquisite corpse fold-in pixel art!

I’ve been a fan of Ed Stastny’s work since the early days of the web, when clued me in to the awesome possibilities of massively collaborative, software-guided web art projects. Gridcosm was surprising, disturbing, inspiring, and highly addictive. It was also a big influence on me personally: without that shining example of the weird things a group of total strangers can do together, I may never have come up with the idea to put Graffiti Archaeology on the web.

Now Ed has a wonderful new project in the works, and he needs your help to make it happen. Yono mashes up 8-bit pixel art, the exquisite corpse surrealist parlor game and Mad Magazine’s fold-ins. It picks up where Gridcosm left off, but it takes full advantage of the magical powers of today’s Internet: it will come with its own pixel art painting tool, and will be designed to work on pretty much any device, so the barriers to participation will be far lower, meaning everyone can play.

He’s offering some very cool thank-you gifts on his Kickstarter, and there are only 9 days left! So if this is something you’d like to support, jump in and help, will you?