Snowflakes are known to form into pretty hexagonal structures. The image below shows a variety of such structures that are possible (although by all means not an exhaustive list): 

![enter image description here](https://i.stack.imgur.com/EHmok.jpg)

What is the mechanism for snowflakes forming into these delightful symmetric hexagonal structures? Also what is the mechanism for the differing shapes in each of the different snow flakes?