Wet Dream


Artwork by tigert


Artwork by raph

Banana by tigert, apple by raph

Artwork by tigert


Artwork by tigert


Artwork by raph

Got examples of wet art? I'd love to see them! The best will go on this page.

4 Sep 2001: Some very simple performance hacks. Now it only recalculates the parts that are wet. It should be usable on considerably bigger canvases now.

Well, I got a little impatient about waiting for the necessary infrastructure for the natural brush stuff, and decided to go ahead and prototype a semi-realistic watercolor simulation. About 1500 lines of code later, I am pleased to present "Wet Dream."

Keep in mind, Wet Dream is a prototype. It's lacking all kinds of functionality, and needs a lot of improvement before it's really ready for release. But I and other fellow gimp'ers have had a lot of fun playing with this prototype. I hope you enjoy it too.

You'll need Gtk+ 1.2. A Wacom pad really helps but is not absolutely necessary. Download wet.tar.gz, untar, type make, and you should have a usable binary.

Select colors by clicking on the color swatch. The colors are shown with a dark stripe down the middle. That shows how the color will look over black, and is an indication how opaque the paint is - if it's the same over white and black, it's opaque. If it leaves black the same color, it's transparent.

The most interesting feature is the "dry" feature, which simulates the flowing and drying of wet paint. You need dozens of iterations of the dry function to get realistic-looking watercolor effects. The "Auto Dry" feature continuously invokes the dry function as long as you're not painting.

The "pure water" color can't be seen when painting (any ideas on how best to visualize surface wetness?), but has two effects. First, if you put down a wash of pure water before painting, you'll get something of a "wet-in-wet" effect (although the diffusion isn't as much as I'd like it to be yet). Second, you can paint over already dried paint to get a neat fringing effect.

How it works

Wet paint is mostly an experiment in an alternate form of pixel arithmetic, in part to gauge how interesting it would be to add to the Gimp core. So far, I'm encouraged, but we'll have to see.

The painting surface is modelled as an array of wet pixels. Each wet pixel has some pigment and a volume of water. The pigment is specified as a mixture of white and black pigments, further subdivided into the three RGB channels. This, you basically have cyan, magenta, yellow, and dichroic red, green, and blue pigments. Dichroic red looks red when viewed reflectively, but transparent when viewed transparently. Thus, white is a mixture of dichroic red, green, and blue.

Wet Dream is soon going to become a Gimp plugin, at which point it will have file loading and saving capabilities. I'm also thinking about how to best integrate it into Gimp, but at the present Gimp has no way to store wet pixels.

gimp home
* www.levien.com