perlin noise generator prototype