won’t work for game models.
The best way to do LOD meshes (at least the ones that are required to be separately modeled - some engines do continuous LOD on the fly & do not require separate models) is to do them by hand starting with highest res version, already UV mapped & textured.
No algorithm is going to know where to keep edges and where to toss 'em… that takes a human brain.
Cull your edges/verts away from joint areas… you’ll still need some extra resolution at the joints for animation (another thing no algorithm is going to consider.) As you cull your verts, check your mesh often zoomed way out to the approx. distance that the LOD will pop in… make sure you’re not culling out geometry needed to maintain the objects profile/silhouette at a distance… you want the player to still be able to recognize the model, even from far away.
Also, avoid deleting edges that comprise UV boundaries. This will make it much easier to UV map the low res LOD’s since you can put the UV seams in the same places as on the hi-res version. It really doesn’t take very long to UV map a lo res LOD onto a pre-exist texture (the one from the hi-res version.) It doesn’t have to be perfect… these are LOD’s … they will only be seen from a distance and UV seams aren’t very noticeable on a model that is only a couple hundred pixels high