perlin noise snowflake generation