For developers · SVG filter

SVG displacement map generator

Adjust the turbulence, watch the sample distort, copy the filter. Apply it to any element with filter: url(#warp).

Liquid
CodeSVG filter

Frequently asked questions

What does feDisplacementMap do?

It moves each pixel of the source by an amount read from a second image, the map. Pairing it with feTurbulence gives liquid, heat-shimmer and glass-like distortion with no JavaScript.

Does it work in every browser?

SVG filters are supported in all modern browsers. Applied through CSS filter: url(#id) they also work on HTML elements, though Safari has had bugs with filters on backdrop-filter elements.

Is it expensive to render?

Turbulence with many octaves on a large element can drop frames on mobile. Keep numOctaves at 1 or 2 and apply the filter to a small element when animating.