Category Archives: npar


Image excerpted from Understanding Comics by Scott McCloud (1993)

Here’s something new! A group of researchers from MIT, Stanford, Cambridge and UW Madison have put together a new interdisciplinary workshop “at the interface between cognitive science 🧠 and computer graphics 🫖“, aptly named COGGRAPH. I’ll be on a panel about non-photorealistic rendering, next Tuesday, July 16th, at 11am Pacific (2pm ET). It’s virtual, free, and open to the public. If you’re interested, you can sign up here to see it!

The real Chuck Close

A diptych by Chuck Close: two portraits of artist Fred Wilson, painted in grids of pixels using layered glazes of transparent oil paint. The effect makes the paintings look almost like watercolor.

Chuck Close, “Fred/Diptych”, 2017-2018, oil on canvas, 36″ x 30″.

I was stunned to see this series of Chuck Close portraits painted in an almost watercolor style.

“These full-color portraits and self-portraits employ a palette of only three colors: red, yellow and blue. Layering transparent glazes of paint, Close created an effect of abstract likeness entirely different from that of his previous work. The complex color relationships that unfold in these paintings are visible at the bleeding edges of each square within the grid, where the ragged ends of each individual color are visible.”

A half-finished Chuck Close portrait of Michael Ovitz. A faint pencil grid on bare canvas is partly filled in with squares of transparent oil paint.  You can see from the incomplete squares that the artist started with a layer of magenta, followed by blue and yellow.

Chuck Close, “Michael Ovitz (Unfinished),” 2020-2021, oil on canvas, 72-1/2” × 61-1/2” × 2.”

When I started working on my “Big Wet Pixels” homage, I had no idea that the artist himself had spent the last few years of his life painting this way. Seeing these paintings now is bittersweet. It would have been wonderful to see what he would have done next had he lived long enough. But it’s also encouraging to see how many different interpretations are possible in this space. And that makes me want to keep exploring it.

The paintings will be on exhibit at the Pace Gallery in New York, from Feb 23 – Apr 13, 2024.

Big Wet Pixels 6

New today: exploring making each pixel smarter, with more thoughtful brushstroke planning. Starting to get excited about the shapes and textures that emerge. (In case it’s not obvious, I’m reaching for a Chuck Close vibe here. But his work has all kinds of depth to it, I’m barely scratching the surface as of yet.) Also, I’ve added some new types of randomized color palettes, including interference pigments on dark paper. So many happy accidents. I don’t think I’ll ever get bored of this.

Big Wet Pixels 3

Still exploring big wet pixels (originally inspired by the #genuary4 prompt) using my watercolor simulation in Unity. Now the pixels are actually pixels: given a random selection of pigments and paper, they try their best to match the color coming in through my webcam. Lovely glitches ensue.

To get this working, I had to go back and solve an old problem that’s bothered me for decades: given an arbitrary set of three pigments and paper, what combination of pigment densities will produce the closest match for any given RGB color? This is non-trivial, because the gamut described by three Kubelka-Munk pigments is non-linear, not necessarily convex, and might even not be an embedding! In our 1997 paper we addressed that problem in a really crude way, which I was never very happy with: quantize the pigment densities into bins, and find the nearest bin in RGB space using a 3d-tree search. So it gave me great satisfaction last weekend when I implemented a continuous solution, using gradient descent.

An animated GIF showing a non-linear 3D color gamut in RGB space. A thin colored line shows the path taken by gradient descent from the middle of the gamut to reach the closest possible point to any given RGB color.

The curved RGB color gamut described by a trio of semi-opaque white, amber and green pigments on purple paper. The white sphere represents the RGB color we’d like to match. A smaller, colored sphere represents the closest approximation that can be produced within the color gamut. A thin, meandering line shows the path taken from the middle of the gamut via gradient descent.