MDN will be in maintenance mode on Thursday September 21st, starting at 10 AM Pacific / 5 PM UTC, for about 1 hour.

The <feDisplacementMap> SVG filter primitive uses the pixel values from the image from in2 to spatially displace the image from in.

The formula for the transformation looks like this:

P'(x,y) ← P( x + scale * (XC(x,y) - 0.5), y + scale * (YC(x,y) - 0.5))

where P(x,y) is the input image, in, and P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of the channel designated by xChannelSelector and yChannelSelector.

Usage context

CategoriesFilter primitive element
Permitted contentAny number of the following elements, in any order:
<animate>, <set>


Global attributes

Specific attributes

DOM Interface

This element implements the SVGFEDisplacementMapElement interface.


<svg width="200" height="200" viewBox="0 0 220 220"
  <filter id="displacementFilter">
    <feTurbulence type="turbulence" baseFrequency="0.05"
        numOctaves="2" result="turbulence"/>
    <feDisplacementMap in2="turbulence" in="SourceGraphic"
        scale="50" xChannelSelector="R" yChannelSelector="G"/>

  <circle cx="100" cy="100" r="100"
      style="filter: url(#displacementFilter)"/>


Specification Status Comment
Filter Effects Module Level 1
The definition of '<feDisplacementMap>' in that specification.
Working Draft No changes
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
The definition of '<feDisplacementMap>' in that specification.
Recommendation Initial definition

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) ?
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? (Yes) ? ? ? ?

See also

Document Tags and Contributors

 Contributors to this page: abbycar, Sebastianz, kscarfone, Jeremie, Manuel_Strehl
 Last updated by: abbycar,