Category Archives: fun

Quality Nonsense

I’ve long been a fan of nonsense. (It seem me who they look where to sit down one’s.) Unlike its near relatives—noise, lies, and bullshit—real nonsense is surprisingly hard to construct, because the sense-making instinct runs deep with us humans. So when I see a performance like Vanessa Bayer’s as “Dawn Lazarus” in this SNL skit I tend to take notice. Which then leads me down a rabbit hole of related arts like double-talk (which is easier if you do it in a foreign language) and good old Engrish menu fails. Meanwhile, the glorious internet digs up treasures from the pre-Google era, like the player names in Fighting Baseball:

Now, in 2017, machine learning comes on the scene and opens entirely new frontiers for nonsense-lovers. Witness this attempt to train a neural network to generate paint color names based on the contents of the Sherwin-Williams catalog (producing some names that could have come straight out of LiarTown, USA):

I wasn’t sure about machine learning before, but it’s growing on me.

Links via @golan, via @annaleen, and via the great glorious Internet, long may she reign.

Making Pão de Queijo

Pão de Queijo, done right

Every place has a certain food that you just can’t seem to get anywhere else. For New Yorkers it’s the bagel. For the French, the croissant. Pão de Queijo (cheese bread) is that food for Brazilians. For years we’ve gotten by on packaged dough balls from the frozen section of our local Brazilian market. But this weekend we found an old recipe from a friend, and realized we had everything we needed to make it from scratch at home.

Continue reading Making Pão de Queijo

Pluot captured in amazing new photo!

Pluot and its moon in an amazing new photo!
Pluot and its moon in an amazing new photo!

As New Horizons’ science mission reaches its suspenseful climax, researchers in Northern California are busy analyzing a flood of new data about this mysterious object. Approaching closer than ever before, we can see its dimpled contours and subtly mottled colors in unprecedented detail (click for the full resolution photo). Better yet, we have detected our first traces of the nearly spherical body’s atmosphere: a mix of tangy volatile aromatics emanating hundreds of micrometers from its surface. What an amazing day for science. Our team can’t wait to ingest all this new data!

Something New

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 terrific press about the projects they’ve created so far. I’ll share more when I can!

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,
                1.0);
}

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.