I have been working with analytical noise derivatives lately and it turns out the analytical derivative of classic perlin noise can get rather involved.
Ken Perlin solved this problem in simplex noise by using radial kernel summation rather than interpolation to combine the gradient results. It occurred to me this idea can be applied back to classic perlin noise and as a result here’s two modifications to classic perlin noise.
Classic Perlin Surflet Noise
The first modification is simply the replacement of interpolation with radial kernel summation as done in simplex noise. The result is a noise which looks almost identical but has an easily computable analytical derivative.
Classic Perlin Surflet Offset Noise
After applying the first modification I realized we can now jitter ( randomly offset ) the gradient points to help break the fixed grid structure of classic perlin noise.