To use interpolate_gradient each vertex must have a height and a gradient defined. However, it is unclear what input is expected for the gradient, as the function only accepts [f64; 2]. From this, it certainly cannot be a 3d normal vector of each vertex.
It would be helpful to have a more precise description or an example with a non-default value of [0.,0.].