Suncatchers make rainbows because the crystal bends sunlight as it passes through, and each color bends a slightly different amount. So the white sunlight going in comes out spread into red, orange, yellow, green, blue and violet. The facets on a crystal prism help separate those colors and send them across your room.
I think knowing how it works makes it even more fun to watch, so here's the simple version.
Sunlight is all the colors mixed together
Sunlight looks white, but it's every color of the rainbow traveling together. You only see the separate colors when something pulls them apart.
What does the crystal do?
When light goes from air into glass or crystal, it slows down and bends. Scientists call that refraction.
Here's the fun part. Each color bends by a slightly different amount. Violet bends the most and red bends the least. That spreading out of colors is called dispersion. (Source)
Why are faceted crystals so good at it?
Every facet is a flat surface set at its own angle. Light bends going in, bends again coming out and the angles give the colors room to spread apart before they hit your wall. More facets means more little rainbows going in more directions.
Is it the same thing that makes a rainbow in the sky?
It's the same idea. In the sky, raindrops do the bending. Sunlight refracts as it enters each drop, reflects off the back and refracts again on the way out, which spreads the colors into the arc you see. A suncatcher does the bending with crystal instead of water.
Why do some rainbows look sharp and others look soft?
The distance between the crystal and the wall makes a difference. Rainbows that travel farther spread out more, so they look bigger and softer. Rainbows that land close by tend to be smaller and brighter. Direct sun also makes them crisper than hazy light does.
Try it at home
You don't need a suncatcher to see this. A glass of water on a sunny windowsill can make a little rainbow too. If you want to slow down and watch the light for a few minutes, the Rainbow Hunt is a sweet way to do it.
FAQ
Why don't I see rainbows on a cloudy day?
Rainbows need strong, direct light. Clouds scatter the sunlight, so there isn't a clear beam for the crystal to split.
Which crystal shape makes the most rainbows?
Shapes with lots of facets, like hearts, diamonds and stars, send rainbows in lots of directions.
What does an AB coating add?
An AB coating adds a shimmer of purples and blues on the surface, on top of the regular prism rainbows. More in What Is AB Crystal?
All of my suncatchers are handmade in Dartmouth, Massachusetts, and you can find them in the shop.