For mesh simplification, what about https://github.com/wjakob/instant-meshes ?
I know it does the thing you required, but it doesn't really do variable density (you could tell it what areas need what density and it would do that; the paper has a demonstration of this).