Why do soap bubbles swirl with rainbow colors?

You blow a bubble from plain, clear, colorless soapy water — and somehow it shimmers with reds, greens and purples that slide around as it floats. No paint went in. So where do the colors come from? Let's chase them down.

1Two things to notice first

A bubble wall has two sides — and light is a wave

You only need two ideas. Watch each one:

Light bounces off both sides

A bubble's wall is a tiny-thin sheet of water with a front and a back. Light bounces off the front side and off the back side — so one beam comes back as two.

Two waves can add or cancel

Light travels as a wave. When two copies of the same wave line up crest-on-crest they add into something bright. When they fall out of step, they cancel and you see nothing.

2So what can the two bounces do?

They line up, or they cancel

The front bounce and the back bounce are the same light — but the back one travels a little farther through the wall. That tiny extra trip decides everything:

Lined up

That color shines

For one color, the two bounces come back crest-on-crest. They add up — and that color glows bright.

Out of step

That color vanishes

For another color, the two bounces come back crest-on-dip. They cancel — and that color disappears.

3Your turn — shine a light on the wall

Watch one beam become two bounces

Here is a slice of the bubble wall, zoomed way in. Drag the slider to swing where you shine the light. Watch one beam hit the wall and split into a front bounce and a back bounce — and watch the back one take a longer trip through the wall.

front bounce back bounce the soap wall
Swing the light: straight on
STRAIGHT ONSTEEP SLANT

4Now let the wall get thinner

A bubble's wall keeps draining and thinning 💧

Gravity pulls the water down, so a real bubble's wall slowly gets thinner and thinner over time. The big question: when do the colors show up? Guess first — then drain it yourself.

Guess before you drain it

You let the bubble wall get thinner and thinner. When do the rainbow colors appear?