No one can prove that no two snowflakes are alike. Sure, each one starts off the same way—as hexagonal crystals form out of water molecules—but changing temperatures and humidity levels cause them to grow different arms in different ways at different angles. And there's no way to track the shape, size, and intricate design of every snowflake that has ever drifted or will drift to Earth. So, snowflakes remain a natural, fleeting, beautiful phenomenon.

Yet, if humans can't comprehensively catalogue real snowflakes, maybe a computer could? And if nature can presumably create countless permutations of the six-pronged snowflake, could something man-made—given the right algorithmic tools—do the same?

Not quite, says Dr. Kenneth Libbrecht, a physics professor at Caltech. Libbrecht, who studies snowflakes and their molecular dynamics in his lab, uses computer models to simulate possible snowflake designs as part of his research into the ways slight changes in temperature and humidity affect a snowflake (we know they do, but we don't know how).

He tells me that while computers can easily model snowflakes, they're missing the natural, unpredictable element to snowflake formation: the way they grow.

"The final shape of a snowflake depends on its complicated growth history," he says. "No two crystals follow the same complicated path. On a computer it would take forever, just because the number of combinations is very large."

On top of that, it'd be nearly impossible for a computer to figure out whether duplicate snowflakes have ever appeared. The number of possible snowflake designs is "pretty much infinite," Libbrecht says, and it'd make the project a thankless task. He likens the seemingly endless snowflake permutations to the ways people use cars: Every car needs certain parts, but once a car belongs to a driver, that driver treats it differently from every other driver. The probability of one car with one owner having the exact same history and characteristics as another car with a different owner is practically zero.

Though computers haven't replicated the astronomically large number of snowflake possibilities, there are online programs for making snowflakes. One, the Paper Snowflake Maker, lets the user to determine where to "cut" the virtual paper, with infinite cuts available. It's not an algorithm, but it comes close to the random nature of, well, nature: The web app allows human decision to come into play, affecting the "snowflake" in potentially infinite ways, according to Dan Gries, the app's creator.

"There really is no limit to how the cuts are made on the virtual sheet of paper, so I suppose the possibilities are practically infinite," he explains in an email. "Of course, there is a finite number of pixels in that image, and in the end they will either be showing white or showing the background color, so that is technically a finite number of possibilities."

Paper Snowflake Maker

Still, naturally or digitally, no matter how you create a snowflake, it's impossible to figure out just how many permutations there are. A web program merely replaces the unpredictable temperature-and-humidity path a snowflake travels with the unpredictable choices people make.

In other words, a computer could simulate snowflakes, but coming up with just as many unique ones as nature can requires knowing how many permutations are possible at all, of which there would have to be a concrete, albeit astronomically large, amount. "A snowflake's certainly not random," Libbrecht says. "The growth depends on a very well defined temperature and humidity, and we understand some of it."

But understanding the rest of it wouldn't be possible without man-made tools. In his lab, Libbrecht grows tiny hexagons, the smallest of snowflakes. Then, one snowflake at a time, he uses a computer to model what they might become.