Add Simplex noise implementation