Blender API in Python https://docs.blender.org/api/2.78b/
Define presets for target vertices e.g.
- absolute minimum
- minimum for current low-end smartphone
- minimum for current high-end smartphone
- minimum for current low-end desktop
- minimum for current high-end desktop
- source/highest
Could add effects (e.g. light, reflection, post-processing) for those presets too, not just meshes.
Can also consider server side asset rendering if below minimum threshold (in vertices or estimate quality e.g. > N decimate to reach target) then use as texture.