Here is how I implemented dynamic paths in my engine.
First of all I searched available path engines and
didn’t find any acceptable. Some costs money,
some wasn’t complete enough. Month ago I saw demonstation
of “Recast” library from Mikko Mononen. Library generates correct paths from triangle soup by voxelization. I was very impressed, so I downloaded it and added support for dynamic objects.