Lava lamp
WEBGL
Positive and negative blobs summed per pixel in a fragment shader. Hold anywhere to carve a void into the field.
Play with it
Hold anywhere to carve. The cursor is a negative blob (it subtracts from the field rather than adding to it), so a void opens under it that the lava flows back over the moment you let go.