added simplex noise, courtesy of mr. doob