Let's simulate a random snowflake I saw this question on https://mathematica.stackexchange.com/ and I think it's pretty cool. Let's make the snowflake with other programming languages.

This is a quote from the original question:


  'Tis the season... And it's about time I posed my first question on Mathematica Stack Exchange. So, here's an holiday quest for you Graphics (and P-Chem?) gurus.
  
  What is your best code for generating a (random) snowflake? By random I mean with different shapes that will mimic the diversity exhibited by real snowflakes. Here's a link to have an idea: http://www.its.caltech.edu/~atomic/snowcrystals/ , more specifically here are the different types of snowflakes: http://www.its.caltech.edu/~atomic/snowcrystals/class/class.htm .
  Here we are trying to generate a single snowflake (possibly with different parameters to tune its shape), the more realistic, the better. Three dimensional renderings, for adding translucency and colors are also welcome. Unleash your fantasy, go beyond the usual fractals!


Rules:


Generate a random single snowflake.
The flake should be six-fold radial symmetry.
It doesn't need to be realistic. (But prefer)
Single character answers, like *, ⚹, ❅, ❄, ❆ are not allowed.
Most upvotes wins!
Bash and ImageMagick
#!/bin/bash

third=()
x=90
y=90
while (( x&gt;10 )); do
  (( dx=RANDOM%10 ))
  while :; do (( dy=RANDOM%21-10 )); (( y-dy&lt;95 )) &amp;&amp; (( y-dy&gt;(x-dx)/2 )) &amp;&amp; break; done
  third+=(
    -draw &quot;line $x,$y $(( x-dx )),$(( y-dy ))&quot;
    -draw &quot;line $x,$(( 200-y )) $(( x-dx )),$(( 200-y+dy ))&quot;
    -draw &quot;line $(( 200-x )),$y $(( 200-x+dx )),$(( y-dy ))&quot;
    -draw &quot;line $(( 200-x )),$(( 200-y )) $(( 200-x+dx )),$(( 200-y+dy ))&quot;
  )
  (( x-=dx ))
  (( y-=dy ))
done

third+=(
  -draw &quot;line 90,90 90,110&quot;
  -draw &quot;line $x,$y 15,100&quot;
  -draw &quot;line $x,$(( 200-y )) 15,100&quot;
  -draw &quot;line 110,90 110,110&quot;
  -draw &quot;line $(( 200-x )),$y 185,100&quot;
  -draw &quot;line $(( 200-x )),$(( 200-y )) 185,100&quot;
  -draw 'color 20,100 filltoborder'
  -draw 'color 180,100 filltoborder'
)

convert \
  -size '200x200' \
  xc:skyblue \
  -background skyblue \
  -stroke 'white' \
  -strokewidth 1 \
  -fill 'white' \
  -bordercolor 'white' \
  -fuzz 10% \
  &quot;${third[@]}&quot; \
  -rotate 120 \
  -crop '200x200' \
  &quot;${third[@]}&quot; \
  -rotate 120 \
  -crop '200x200' \
  &quot;${third[@]}&quot; \
  -draw 'ellipse 100,100 15,15 0,360' \
  x:

Sample run:
bash-4.1$ for i in {1..30}; do ./showflake.sh &quot;showflake-$i.png&quot;; done

bash-4.1$ montage showflake-*.png x: