I want to take a picture of an empty frame on a wall, then digitally edit that photo into itself infinite times. So the result should be a picture of a frame, which contains the same picture, which again contains the same picture, and so on. Here is a crappy Paint sketch to illustrate what I mean.

illustrative sketch

I of course could do it manually, but since I want it to look infinite, that would be a lot of work. Maybe there is a better way how I can achieve this effect? Preferably with GIMP since it is my most used editing software, but I'd be willing to use other software as well, if needed.

  • \$\begingroup\$ @scottbb The tutorials are useless for results that are both infinite and high quality at the same time. I might be able to google something up using the name, thats the only helpful thing there. \$\endgroup\$
    – MaxD
    Jun 4, 2021 at 14:38
  • 2
    \$\begingroup\$ @scottbb, actually, not really a dupe or a straight answer. Question's image is not using the digital droste effect, and of the two links to droste solutions in the answer, the first is repetitive manual editing, and the second is Josh Sommers' revised tutorial, which is a) a PITA to read as it's all crammed into one big graphic file, and b) uses both Photoshop and Gimp and assumes Mathmap works out of the box with the Gimp (which it no longer does; and never did on OSX). Just ran through all those hurdles to get a step-by-step for my answer here. \$\endgroup\$
    – inkista
    Jun 6, 2021 at 20:00
  • 1
    \$\begingroup\$ @inkista undersootd, agreed. \$\endgroup\$
    – scottbb
    Jun 7, 2021 at 5:16

3 Answers 3


What you're looking for is what's called the Droste effect. So-called because Droste cocoa uses that kind of repeating image on its packaging.

Mathematically this has been figured out, and there's a lot of pre-existing software out there that can do this, most notably using Gimp with the Mathmap plugin and using the Droste script (part of the default installation of Mathmap), which was coded by breic and modified by Josh Sommers. (See also: Sommers' second tutorial on using the Droste script.)

However, Mathmap development halted back around Gimp 2.6 and now requires manual tweaking to install and run on versions of the Gimp after 2.8. Many fear it will stop working in future releases. And the Gimp plugin for Mathmap never worked on OSX.

Which is why Souphead did a port of the Mathmap Droste script to G'MIC. Here's how to install the G'MIC Gimp plugin on Windows.

The steps are:

  1. Open the image in the Gimp.

  2. Right-click on the layer and select Add Alpha Channel.

  3. Use the rectangular selection tool to select the area where you want to "cut a hole" for the pattern to repeat.

  4. Cut the area (Ctrl-X/⌘X), or right click → Edit → Cut).

  5. Select the entire image.

  6. If using Mathmap:

    a. Select Filter → Generic... → Mathmap → Map → Droste

    b. Select the User Values tab.

  7. If using G'MIC:

    a. Select Filter → G'MIC-qt...

    b. Under Available filters, select Deformations > Continuous droste.

  8. Tweak the settings to get what you want. To eliminate the Droste spiral, set Strands to 0.

  9. When the Preview looks like what you want, click OK.

  • \$\begingroup\$ Nice, that's exactly what I was looking for. \$\endgroup\$
    – MaxD
    Jun 5, 2021 at 0:01
  • \$\begingroup\$ @MaxD, caveat: I haven't done it since 2007 with Mathmap Cocoa, none of which works any more, so it was good to go and google up the G'MIC way of doing it. :) Now I gotta go see if there's a G'MIC port of the Quincuncial script I mainly used back then; another of breic's masterpieces. \$\endgroup\$
    – inkista
    Jun 5, 2021 at 0:07
  • 1
    \$\begingroup\$ Just tested it with G'MIC, and all the steps work perfectly. The 20 levels it can do is easily enough for a perfect effect. Couldn't be happier. \$\endgroup\$
    – MaxD
    Jun 9, 2021 at 11:52

In photoshop there is a shortcut for "step and repeat;" basically, you duplicate the layer and transform(scale)/position it once and use the shortcut to repeat that over and over.


Of course, you could also build an infinity mirror and do very little in post. https://youtu.be/sAPGw0SD1DE


I did something like it in Photoshop. The original was a vase with a hole in the center, shot directly from above. I then copied the vase and shrank it to fit the hole four times. I darkened each successive copy by 1 stop to make it look like they were receding. You could make more copies if you like. If you stack the small ones on the large ones they block out the center if you like. enter image description here

  • 3
    \$\begingroup\$ Doesn't really help me because doing it manually is precisely what I'm trying to avoid, but still a nice pic. Reminds me of a Nautilus. \$\endgroup\$
    – MaxD
    Jun 4, 2021 at 21:09
  • \$\begingroup\$ I think you are then trying to read a picture file and create a copy that is scaled down with transparent around it, maybe shifting the center point by some amount. You could then repeat this many times and stack them \$\endgroup\$ Jun 4, 2021 at 21:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.