For my procedural creatures, I'm still working on a (generic mathematical) system for manually creating a derived higher-level parametrization based on an original parametrization.
I got some great pointers about using the matrix pseudoinverse and made a working implementation of that which works for one level of "parents", but I'm still unsure how to expand this approach to support an arbitrary hierarchy of parent parameters.
#math
I managed to work out the generalized matrix logic for arbitrary layers of parents, where each parent can pick children from not only the layer immediately below, but any layers below. I have it fully working in a test window - now to integrate it into my parametrization framework...
Turned out there was a flaw in the logic above. Groups mixing contributions from multiple different lower levels didn't work right. I went back to my earlier idea of stacking matrices before using the pseudoinverse on them. This worked.
But then I noticed some patterns, and suspected I could simplify more. Instead of having different matrices with sizes corresponding to the parameters per layer, I could use large matrices corresponding to all the parameters at once. And I found out I could furthermore do the calculations for all layers at once too in one single swoop. The calculations I have in code now are much, much simpler than what I had before, and take up only a third as many lines.
Here is the entirety of the calculations I've ended up with. It is *so simple* compared to all the complex diagrams and implementations for them I had earlier.