Right now I read the code at the top which generally (>95%) gives you enough info, there are some keys I can't do yet.

I've trailed some heuristics to infer the profile based on the side view which look feasible but will require a fairly large validated dataset.