port over a lot of perlin noise code