perlin noise example update