Fading brightness of NeoPixel over duration

I'd like to fade the brightness of a strip of NeoPixels over a specific period of time and am struggling with coming up the algorithm to do this myself.

Does anyone know of a good way to fade from one brightness level to another over a specified duration?

Divide the specific duration into say 100 steps. Then divide the start and end brightness into 100 steps.

Then after each step time has elapsed change the brightness by a step.

Use the blink without delay if you want to do other things as well.