Friday, May 9, 2008

Full-grayscale morphing moiré shadows

A common misconception of shadows is that they must be binary, producing images comprising only black and white areas.

The following figures are adapted (with some conceptual changes) from a patent application I filed while employed at General Electric (US 20080037709A1: METHOD AND SYSTEM FOR CONTROLLING RADIATION INTENSITY OF AN IMAGING SYSTEM). The invention uses shadows from superposed opaque gratings to control the spatial distribution of x-ray radiation intensities in an x-ray beam.

First, we produce two gratings comprising curved opaque bars:

Then, we superpose them with some distance separating them and shine light through them at different angles as shown:

The bars are curved so that the same two gratings together cast shadows containing two different detailed images (not just contours):

Yet, this is not the whole story. If the light comes not from a point source but from a somewhat diffuse source (e.g. the sun), then the shadow will be blurred somewhat by penumbra or half-shadows producing a full-grayscale image:

The blur removes the sharp edges and, paradoxically, improves the images. Notice for example the wrinkles on Albert's face that only come through after the images has been blurred.

Another way to achieve blurring is to rapidly shake the gratings perpendicularly to the bars. Motion blur will then remove the sharp edges from the image producing a similarly smooth image.

You can print the gratings in (a) and (b) on transparencies and superpose them with slight offsets to see the effect for yourselves.

What if such gratings are built as sculpture pieces or are integrated into the facade of a building or as sundials that would cast various artistic shadows at various times of the day at various seasons? What do you think?


Paul Van Denton said...

how can i create my own images, how do you back engineer this?

Dimitri said...

I made a Matlab program to generate these gratings. Do you program?

Eric Trezel said...


I'm working in the Faculte des Sciences in Limoges (France), and I'm in charge of creating an exposition about optical illusions. I found your work on the net seraching things about moirés, and it impressed me.
Could you give us the authorization to use your monstein pictures in the exposition ? (It will be exposed in our University first, then in schools, free entry for public, no commercial use of course, and finally published free on the net).
The idea is to print your pictures (a & b) on transparent supports, and let people "play" with them to find hidden images. (so they won't be published on the net like the rest of the exposition, since we can't publish objects)
If you agree, could you send me high resolution version of your picture.
I'm interested too in informations on how to program this kind of pictures in matlab.

Thanks for your answer

(You can answer to zeltron.trezel at
E. Trezel

Anonymous said...


I am amazed by your work!
I would be very happy to print those 2 pictures (a and b for the einmon) on transparent support, as you suggest, to experiment myselt the "illusion", however, the pictures are so small, do you have a higher resolution picture you could send me? Thanks in advance! My mail if needed: merlin2812 at


Dimitri said...

You may download the larger version of the gratings from

It may take you a couple of attempts to align them correctly after printing. One must be shifted relative to the other by about an inch.

Anonymous said...

thanks so much for this fast and so useful answer!

take care!

Sebastian Huber said...

Hi Dimitri,

can you please explain, how you create the to gratings? i'm not familiar with matlab, but any (pseudo)code would be fine.

really nice work - thank you,

Dimitri said...

I will post python code in a new post with some explanations, but here is the link