forked from: f2: perlin noise xor

