Genes, parts and other bodies on the one rig

Op asked, on 8 October: how do we take the MakeHuman CC0 rig and apply the genes and other beings and creatures from it. This page is the answer as a thing to judge, and NOTES.md beside it says what holds and what does not. Everything below is drawn live, in the browser, by the code in this directory, from the one rig of the spike before it: the villager's body, its skeleton, the lit look at the art's own scale, with the villagers' garments on. Nothing is pre-rendered.

The canon has creatures as sprites, op's own pick (a_creature_is_drawn_flat_from_its_genes_at_natural_proportions), and this page does not change that. It is evidence for the question he asked, and whether creatures follow the villagers into 3D is his call.

1. Genes are overlays that reach the body by Tag

A gene here is what the canon says: a self-standing set of Tag-bearing Overlays. An Overlay names a Tag and a size. An axis of the body, which is a MakeHuman target or the length of a tail, is a member of some Tags at some weights, and an Overlay reaches an axis by that membership. A genome is a set of genes, the fold is a plain sum held inside each axis's range, a discrete marker such as the coat takes the strongest, and there is no dominance anywhere. Tick genes below and the body is the fold.

Genome
Who
the genome above, 4×

What the genes fold into

Ecotypes and builds, each a set of genes

Six sets of genes drawn as villagers, with a shirt, trousers and boots on each. The names are stand-ins: the canon has genes carry mechanics and ecotypes carry names, so a name here is only a label on a set. Every garment is the one wardrobe of the spike, fitted to whatever the genes made of the body.

Two parents and their children

Each child takes a seeded draw of genes from each parent's set, half of each, and a child in twelve gains a new overlay gene on a Tag the registry knows, marked below. The children are drawn from their genes with nothing else, so a gene both parents carry is one gene and a parent's gene can be missing from every child.

2. Parts the base lacks, attached to the body and moving with it

The base has no tail, no horns and no second pair of arms, and its ears are short. Each is a mesh with a few bones of its own, made once on the base at rest at a socket the body names, and then fitted to the base the way a MakeHuman garment is: every vertex and every bone end is three base vertices and an offset, the offset scaled by the distance of two extreme vertices over what it was. So the part follows whatever shape the genes give the body, and the row below puts the same four parts on five different bodies. The parts are animated by their own bones over what the body does: the tail follows the sway a little late along its length, the ears flick, and the second pair of arms keeps its own pose.

one genome (tail, horns, long ears, four arms) on five bodies: a tall slight woman, a broad man, a heavy short one, a child, and one with the faun face target. Live.
the walk, twelve steps, at 2×, from behind

3. A body off two legs

Two ways were tried for a quadruped. A second base mesh in the same graph: crownjoshua's CC0 deer, 414 vertices on 15 bones, read from its Blender file without Blender, given sparse targets over its own base that genes reach by Tag (the length of the legs, the girth, the neck, the muzzle, the hump, the size), and animated by the same roles the villager's are, with a gait of its own phases. And reshaping the first: the villager's own rig on all fours, then reshaped as far as targets of its kind reach. The first works. The second is drawn next to it so the reasons can be seen and not only read.

The deer's genes
the deer, 3×
five gene sets on the one deer base
the walk, twelve steps, lateral sequence

The same part on both bodies

The antlers are built once, from a socket called the crown on a node called the head, and fitted to whichever base they are put on. Nothing in them says villager or deer.

a villager and a deer, both with the antlers gene

The arm that does not work: the villager's rig on all fours

left pair: the rig as it is, pitched at the pelvis, limbs hung straight down. Right pair: the torso doubled, the arms lengthened to the legs'. 3×

Licences, read and recorded

4. Where each of them sits in the canon's graph

The canon draws every creature from one graph of parts, with sockets between them. The nodes and sockets below are that graph as far as this spike can say it; a line is how the node is made on the body named at the top of its column. A gene that adds a part to the graph needs what the list under the diagram says, and nothing else: nothing resized, no other genome touched.

What a gene that adds a part needs

5. What I would put to op

MakeHuman's body, skeleton, weights, targets, topologies and eyes are CC0, and so is the deer. Every part here is made by the code in this directory, which carries no licence of its own beyond the repository's. body.js, MB-Lab's body, is AGPL-3.0-or-later and is not used on this page; it is kept in the directory because the spike it came from carries it. The page of the spike before this is one-rig.html.