I am already half way through coding exactly this.
I have figured out the skeletons and breading, along with cross species breading and movement generation. Now working on muscle groups and skin detail.
Metaballs don't work, unless you use thousands of them, the shape of a muscle does not fit the metaball premise, and the mechanics of the way muscles work means they change shape based on position of bones.
I have created a set of equations for each muscle type that return a bool, inside is true, outside the muscle is false.
I am also looking at using standard stored volumes, created in a graphics package, that can be morphed to fit.
Not sure which is going to be faster at this point.
My main problem is the size of the DNA string, I started out with 128 genes, that turned out to be far too small.
This is a hell of a big project, not sure if you have realised how big yet. A few hours research gives you the impression it's doable and not too difficult.
A few days coding and you soon realise that it's a world of sh1t and is going to take a lot of work.
I'm committed now, (or should be) you may want to think again.
After all how does a five legged humanoid walk? Where do all the legs join the skeleton? What about a zero legged humanoid, how does that move?
What happens when a biped cross breeds with a quadruped?
These are all issues I have had to address, and it's a nightmare
Even in the simple case you are thinking about, have a look at parametric face recognition to see how many parameters they use. Really each of those should be included in the DNA as a HOX gene.
I have a HOX gene for a size modifier for each bone ( I have simplified the skeleton some what though) , these HOX genes are cumulative in my system as I want a large amount of genetic diversity, in real life they work on a first come first served basis.
Then eye colour, hair colour, hair type, etc. etc. etc.
Even in a simple system the size of the DNA string gets large very quickly.