Skip to content

Drips

Drips
Filter

Runs each drop in a picture down its own path, leaving a trail of even width, for rain on glass, condensation, leaks, and paint drips.

Rain running down a window over out-of-focus night street lights: each drop leaves a trail that jogs, beads and ends in a rounded drop, made with Drips

Drips finds the drops in a picture and carries each one forward. Every running drop leaves a trail that keeps its own width, jogs where the drop stuck, swells into small beads and thins between them, runs its own length, and ends in a rounded drop. Wire the drops into Image: a Scatter of droplets, a painted mask, or the highlights of a photo. An optional Slope map runs the drips downhill around its bumps, and an optional Mask says where the result shows.

Search the node palette for “drips”, “rain”, “droplet”, “trail”, “streak”, “wet”, “glass”, “window”, or “leak” to find it.

Both make drips, in different ways.

  • Slope Blur smears a whole picture. Every pixel follows its own short path, so it is the node for erosion, flowing lava, worn edges, and rust streaks. A drip made this way gets wider where the paths spread and thinner where they meet, and every drop runs the same distance.
  • Drips moves drops. Each drop is carried down its path and draws its own trail, so the trail keeps its width whatever the surface does, and each drop gets its own length, kinks, beads, and forks.

Use Drips when the drops themselves matter: rain on glass, a few runs of paint, water leaking from a crack. Use Slope Blur when the whole surface flows.

Shape 1 backgroundmasksize ref imagealpha Circle, 64 px Bevel 1 shape heightnormal Rounded Scatter 1 backgroundstamp 1density mask image Lighten Drips 1 imageslopemask imagemaskheight Normal Map 1 image image
Wet glass from five nodes. Bevel turns a circle into one round droplet, Scatter spreads thousands of them as a grayscale height map, Drips runs the heavy ones down the glass, and its Height becomes the normals of the water.
  1. One droplet. A Shape circle, white on transparent and about 64 px across, into Bevel’s Shape input, with Result set to Bevel, Profile set to Rounded, and Width about half the circle’s size. Bevel’s Height output is a round dome.
  2. Many droplets. Bevel’s Height into a Scatter stamp input; Scatter takes a grayscale map as a stamp directly (see Grayscale stamps and height maps). Set Distribution to Random, raise Columns and Rows to a few thousand stamps, spread Scale Min and Scale Max wide, and set Blend Mode to Lighten at Opacity 100%, so where two droplets overlap the taller dome wins instead of adding up into a bright lump.
  3. Drips. Raise Min Size until only the big drops drip, set Amount to a few percent for a steady rain (the status line counts the trails), set From Edge to about 45 so close to half the trails come in from above the frame, and set Forks to about 0.1. For example: Min Size 20, Amount 8, From Edge 45.
  4. The glass. Drips’ Height into Normal Map, then Normal Map into Displace over the scene behind the glass, with a blurred copy of the scene where there is no water and Drips’ Mask choosing between them in a Composite. Relight with Specular on and Mode set to Specular only, fed by the Normal Map, adds the glints.

Over out-of-focus street lights at night, with a softly blurred copy of them for the fogged glass, this reads as rain on a window. Work in a 32-bit document so the Height keeps its smooth domes.

Drips' Drops group: Drop From, Threshold, Min Size, Amount and From Edge, and under them the line Found 2,319 drops, 24 dripping, 11 of them from the edge

Every patch of touching pixels at or above Threshold is one drop. Its size is the size of that patch, and its trail is a share of that size, so big drops leave wide trails and small ones thin trails. The drop’s color is the picture’s color at its brightest pixel.

  • Drop From picks which values make the drops. Auto (the default) reads alpha when the picture has any transparency, and brightness otherwise. Alpha and Brightness force one or the other. A grayscale map is read as it is.
  • Threshold (0.01 to 1, default 0.20): values at or above it are part of a drop. Raise it to split drops that touch; lower it to take in their soft edges.
  • Min Size (default 0): drops smaller than this across stay where they are, in pixels or in percent of the shorter side. On real glass only the heavy drops run, so on a dense field of droplets this is the row to raise first: 11 px on a 1000 px picture lets the big drops drip and leaves the fine ones in place.
  • Amount (default 3%): how many drops drip, as a share of the drops at least Min Size across, bigger drops first. 0 drips nothing and 100 drips every one of them; above 0 at least one drips, so a picture of only a few drops still drips its biggest. On a dense field of droplets the default few percent is a steady rain and 100 a downpour. To run every blob of a few painted ones, raise it to 100. The slider gives its low end more room.
  • From Edge (default 0%): the share of the dripping trails that come in from outside the picture, already running, as if they started beyond the frame on the side Direction comes from. Around 45 is the look of a window in steady rain. Each edge trail takes the size of a drop that drips beside it, so the edge trails are as heavy as the drops; with no drop at least Min Size across, nothing drips.

The trails spread across the picture: each new one goes to the part of the width with the fewest trails so far, so even the first few are spread out. None of this depends on Length, so the same trails drip at every Length.

A line at the end of the Drops group counts what happened, for example “Found 2,319 drops, 22 dripping, 10 of them from the edge.” Watch it while you set Threshold, Min Size, and Amount.

  • Direction (default 90, straight down): which way the drops run, on the screen axis, where 0 points right and 90 points down. While the node is selected, an arrow from the center of the Preview points the way the drops run; drag its tip around the center to set Direction, hold Shift to snap to steps of 15 degrees, and double-click the tip to set it back to 90. See Canvas handles.
  • Length (default 125% of the shorter side): how far the longest trails run. At the default most trails cross the whole picture.
  • Length Variation (default 40%): how much shorter some trails run. At 40 each trail runs 60 to 100 percent of Length; at 0 every trail runs the full Length.
  • Wander (default 10%): a slow sideways drift under the kinks. 0 keeps each trail on its own line.
  • Kinks (default 50%): how sharply the path jogs where the drop sticks on the glass. A running drop catches, pauses, and slips sideways, so its trail is a chain of nearly straight runs joined by short jogs. 0 runs in straight lines.
  • Forks (0 to 2, default 0): how often a trail splits, per 100 px of trail, up to 3 forks per trail. A branch runs part of the way down beside its parent and draws no drop at its end. About 0.1 gives the occasional fork.

Trails that meet run together. All the drops start running at once, each at its own pace. When a drop reaches a path another drop has already wetted, it slides into that trail a little further down instead of crossing it, with no drop at its end, and the trail below the junction runs full; a trail that gathers many others grows a little wider, the way streams on a window swell as they collect drops. A running drop also sweeps up the smaller drops it passes over, leaving a clear path through the droplets. Sweeping happens only while Drop at End is on.

Rain on a window close up: drip trails that meet run on down the glass as one, each clearing a path through the droplets behind its drop

Steering around bumps. With nothing on Slope, every drop runs toward Direction, swinging only by its own kinks and wander. Wire a height map into Slope and the drips run downhill around its bumps the way water runs around the lumps on old glass or a stucco wall: high ground pushes them aside, grooves gather them, and drips that meet in a groove run on together. Gravity (default 0.50, shown while Slope is wired) sets how strongly they still run toward Direction: at 0 the slope alone decides, so drops on a dome run off it in every direction, and at 1 the slope is ignored.

The steepness is measured against the map’s own steepest ground, so a gentle map and a sharp one steer alike. Each drop feels the map smoothed to about its own size, so bumps much smaller than the drops do not steer them. A drop that runs into a hollow fills it and spills over its lowest rim, then runs on; only a hollow too big to fill stops it. The Slope map is read as data, and a texture set wired into Slope gives its Height.

  • Trail Width (default 40%): the trail’s width as a share of its drop’s width.
  • Beads (default 50%): how much the trail swells just below each place the drop stuck, and thins between. 0 keeps an even width.
  • Taper (default 80%): fades each trail in from its start. 100 starts from nothing; 0 starts at full strength. Trails from the edge are already running when they enter the picture, so they start at full strength at any Taper.
  • Trail Opacity (default 80%): how bright the trail is against its drop. A trail is a thin film of water, so it is dimmer than the drop that left it, and brighter where it is wider.
  • Variation (default 40%): how much the brightness changes along a trail and from one trail to the next.
  • Drop at End (on by default): each running drop leaves its spot and ends its trail as a teardrop. Turn it off to leave every drop where it was and only add the trail. On an opaque color picture, such as a photo’s highlights, the spot cannot be emptied, so the trail is laid over it.

Edge Mode is Open by default, which stops a trail at the edge of the picture. Repeat wraps it around to the opposite side, and a drop across the seam counts as one drop, so a tiling texture stays tiling. A tile has no outside, so under Repeat the From Edge trails start at scattered places and fade in like the drops’ trails. Seed picks each drop’s length, kinks, beads, and forks; -1 gives each node its own.

OutputWhat it holds
ImageThe picture with the running drops moved and their trails drawn over it. A grayscale picture comes out grayscale; a color picture comes out in color, each trail in its drop’s color.
MaskEvery drop that stayed and every trail and end drop, white where there is water. Use it to choose where wet glass shows, or as a Roughness mask.
HeightA height map of the water: every drop that stayed, beveled from its own outline (drops that touch keep a bump each, and an odd shape keeps its shape), a teardrop at the end of every running drop, and a rounded profile across every trail. It is a float map, ready for Normal Map.

The Preview’s view buttons show the three outputs as Picture, Mask, and Height without a wire to each. A trail half as wide as its drop stands about half as tall in the Height, so the trails read as thin films and the drops as round beads once the light catches them.

With a Mask wired, the picture, Mask, and Height go back to the drops as they stood where the mask is black, so a window frame or a dry patch keeps no trails.

Scrub Length and the drops slide down the glass. A trail at a shorter Length is exactly the start of the same trail at a longer one, and the same drops drip at every Length, so the kinks, beads, and forks stay where they are while the teardrop rides at the head, and trails join each other at the same places as each head arrives. Amount adds trails without moving the others, and From Edge trades drops for edge trails a few at a time. Direction, Threshold, Min Size, and Seed choose the drops themselves, so changing them can swap which drops drip.

Each drop’s choices come from its own position and the Seed: moving, adding, or removing one drop never changes where another one runs, only whether it meets that drop’s trail on the way. The result is the same on every run and every machine.

  • Paint drips. Paint a few blobs with Mask Paint, wire them in, raise Amount to 100 so every blob runs, set Kinks and Beads low, Trail Width higher, and Length shorter, and let the paint run down a wall. Use the Image output, or the Mask through a Composite in the paint’s color.
  • Leaks from a crack or a rivet. A mask of the leak points with Amount 100 and Length Variation high, then the Mask through a Composite of a rust or grime color. A height map of the surface on Slope makes the leaks run around its relief.
  • Condensation that has started to run. A dense, fine Scatter of droplets with Min Size high, so only a few drops run and most of the mist stays.

Drips makes drops, and the material is built after it. A texture set wired into Image is refused at the wire: build the drops as a grayscale map, run them through Drips, then put the Height through Normal Map and the Mask into a Texture’s Roughness, or lay them over a set with Texture Layer. See Change several maps under one mask. A texture set wired into Slope steers the drips by its Height.

Pins

ImagePixels
InputRequired
SlopePixels
InputOptional
MaskMask
InputOptional
ImagePixels
Output
MaskMask
Output
HeightMask
Output

Drops

Drop FromChoice
Default: Auto Range: Auto / Alpha / Brightness

Which values make the drops. Auto uses alpha when the picture has transparency, else brightness

ThresholdNumber
Default: 0.20 Range: 0.01–1.00

Values at or above this are part of a drop. Touching pixels make one drop

Min SizeNumber · px/%
Default: 0.0 Range: 0.0–64.0 px / 0–3%

Drops smaller than this across stay put. 0 lets every drop drip

AmountNumber
Default: 3 Range: 0–100

How many drops drip, as a share of those at least Min Size across, bigger drops first. 0 drips nothing, 100 all of them; on real glass only a few run

From EdgeNumber
Default: 0 Range: 0–100

The share of the dripping trails that come in from outside the picture. 0 drips only drops; 100 brings every trail in from the edge

Path

DirectionNumber
Default: 90 Range: 0–360

Which way the drops run, in degrees. 0 = right, 90 = down. Drag the arrow on the canvas

GravityNumber
Default: 0.50 Range: 0.00–1.00
Slope connected

Blends running straight toward Direction with following the slope. 1 ignores the slope; 0 follows it alone, every way downhill

LengthNumber · px/%
Default: 125 Range: 0–16384 px / 0–200%

How far the longest trails run

Length VariationNumber
Default: 40 Range: 0–100

How much shorter some trails run. At 40 each runs 60 to 100 percent of Length

WanderNumber
Default: 10 Range: 0–100

A slow sideways drift under the kinks. 0 keeps each trail on its line

KinksNumber
Default: 50 Range: 0–100

How sharply the path jogs where the drop sticks on the glass. 0 runs in straight lines

ForksNumber
Default: 0.00 Range: 0.00–2.00

How often a trail splits, per 100 px of trail. Up to 3 forks per trail

Trail

Trail WidthNumber
Default: 40 Range: 1–100

The trail's width as a share of its drop's width

BeadsNumber
Default: 50 Range: 0–100

How much the trail swells where the drop sticks, and thins between. 0 keeps an even width

TaperNumber
Default: 80 Range: 0–100

Fades each trail in from its start. 100 starts from nothing

Trail OpacityNumber
Default: 80 Range: 0–100

How bright the trail is against its drop. Wider spots are brighter

VariationNumber
Default: 40 Range: 0–100

How much the brightness changes along a trail and from trail to trail

Drop at EndToggle
Default: true

Each running drop ends its trail as a teardrop. Off leaves every drop where it was

General

Edge ModeChoice
Default: Open Range: Open / Repeat
  • Open: stops a trail at the edge.
  • Repeat: wraps it around, for tiling textures.
SeedInteger
Default: -1 Range: -1–2147483647

Picks each drop's length, kinks, beads and forks. -1 gives each node its own

Mask

Mask FromChoice
Default: Luminance
Color image connected to the mask input

How the connected color image is read as a mask

  • LuminanceRead the image's brightness as the mask. The default.
  • AlphaRead the image's transparency as the mask.
  • RedUse the red channel as the mask.
  • GreenUse the green channel as the mask.
  • BlueUse the blue channel as the mask.
Mask FitChoice
Default: None (native size)
Mask connected

How the mask is sized when it doesn't match the image

  • None (native size)Center the mask at its native size, with no resizing. Unmasked regions are unaffected.
  • StretchStretch the mask to exactly match the image dimensions. May distort the mask shape.
  • Fit (letterbox)Scale the mask to fit inside the image, preserving aspect ratio. Letterboxes where needed.
  • Fill (crop)Scale the mask to fill the image, preserving aspect ratio. Crops edges if aspect ratios differ.
  • Raise Min Size before anything else on a dense field of droplets; it is what turns mist into a few heavy runs.
  • Keep the status line in view: it counts the drops found, how many drip, and how many come from the edge.
  • Use Lighten at full Opacity in the Scatter that makes the droplets, so overlapping domes never add up into lumps.
  • Work in a 32-bit document when the Height feeds Normal Map, so the domes stay smooth.