Be a Match, Save a Life

Escher’s Droste Effect

This is an Adobe Pixel Bender filter to create Escher’s Droste Effect in After Effects and Photoshop CS4. Read the blog post to find out more about the background of the image transformation.

iMac Droste effect

Flower spiralFlower spiralCamera

FrameRoRoRoEuro unwoundHyper

Animating the effect

When used with After Effects things really start to get interesting...

If you have fun or success using these filters for personal or commercial projects then please let me know!

Download and installation

Download the Droste effect filter for After Effects and Photoshop CS4
See the Pixel Bender Toolkit page on Adobe labs for details on getting PBT up and running on your machine.

After Effects: Just put the Pixel Bender .pbk filters in a folder within the Plug-ins/Effects/ directory of your installation then it will be available from the Effects menu.
Photoshop: See the release notes for installing the Pixel Bender plugin.


These are the steps you should follow for best results:

  1. Set the size to match the source image.
  2. Adjust the centerShift so that the spiral is centered on the area you want to repeat.
  3. If the source image is a 24-bit PNG with a transparent centre section (like a picture frame) then set transparentInside to 1.
    If the image has a transparent outside (like a flower cut-out) set transparentOutside to 1
  4. Adjust the innerRadius in combination with tweaking the centerShift values until the repeated section aligns nicely.
  5. Adjust the center parameter to frame the overall image.

Basic settings:

Droste circle guidePeriodicity: sets the number of times the image is repeated on each level of the spiral. For picture frame type images leave this as 1. For circular images small adjustments might be needed to get a nice repeating spiral but it is always worth trying the setAutoPeriodicity setting.
The strand setting is the number of arms on the spiral. When set greater than 1 and applied to an image like a flower that has an outside transparency then strandMirror for seamless tiling.
Enable the antialiasing option to super-sample the image and smooth out the fine details.

Droste basic settingsBasic settings: 0 strands (classic Droste), 1 strand, 2 strands, single strand with increased periodicity

Advanced mapping options:

Increase the levelStart so that the image fills the outer area. Increase the levels until the centre of the spiral has filled in.
Change rotatePolar to enable polar rotation.
Unchecking the twist option will tile the untwisted annular section effectively unrolling a circular image.

Droste other optionsAdvanced settings: untwist, enable poles, enable poles with increased periodicity and hyper droste.


There is a very nice video podcast on using the filter over at Creative Cow thanks to Carl Larson.


17/11/2008 v1.0: Initial release
25/09/2009 v1.1: Tidied up the code and controls. Added a rotateSpin parameter to rotate the untransformed image, works well with the rotatePolar control. Added anti-aliasing option: 1 = no AA, 2 = 4x samples, 3 = 9x samples.