Perlin Noise Algorithm by
josephg
on Github