The answer
Starlight is bent back and forth by moving pockets of warmer and cooler air in our atmosphere, which makes the star seem to flicker.
Light bends a little when it passes between air of different temperatures, the same way a road shimmers on a hot day. Our atmosphere is full of moving pockets of warm and cool air.
Stars are so far away that, even through a telescope, they're just tiny points of light. A single thin beam from a point gets nudged around by each pocket of air it crosses, so the star seems to jump around and change brightness, many times a second. Astronomers call this scintillation.
Planets are much closer, so they look like tiny discs, not points. Each point of a planet's disc twinkles separately, and they average out, so planets usually shine steady.
Stars near the horizon twinkle the most, because their light crosses much more air to reach you.
Go deeper
Why? Is that why telescopes are put in space?
It's one big reason. Above the atmosphere, there's no air to blur the light, so space telescopes like Hubble and Webb get very sharp images. Big ground telescopes now use mirrors that change shape hundreds of times a second to undo the twinkling.
Why? Why do some stars flash different colours?
Air bends each colour of light by a slightly different amount. Near the horizon, this can split a bright star's light so it flashes red, green and blue as the air moves.
Why? Do stars twinkle on the Moon?
No. The Moon has almost no atmosphere, so astronauts there would see perfectly steady stars.
Keep wondering
Sources
- Why do stars twinkle?, NASA StarChild
- Astronomy Picture of the Day: Why Stars Twinkle, NASA Science


