3.Representation model

3.1.Groups

P is partitioned into seven continuous groups (71 dimensions in all):

CodeGroupRole
aarmarticulation
wpalm facing (wrist orientation)articulation
gfingersarticulation
hheadarticulation + affect
bbodyarticulation + affect
ffacearticulation + affect
mmoutharticulation + affect

Plus hyper conditions (§3.4): eye look-at, viseme, contact, and anchor — conditional channels riding alongside the vector, not latent dimensions.

The seven IPL groups mapped onto the body
Figure 1 — The seven groups of P on the body.

Legend: a arm (8: 4 × L/R) · w palm facing (6: 3 × L/R) · g fingers (32: 16 × L/R) · h head (3) · b body (3) · f face (8) · m mouth (11) — 71 dimensions. h b f m also accept the expression delta (§3.3). Hyper conditions (eye look-at, viseme, contact, anchor) are not shown: they ride alongside P, not inside it (§3.4).

Articulation-only groups (a w g) MUST NOT carry expression deltas — they encode pure form. Affect-capable groups are h b f m only (§3.3).

3.2.Value convention

Neck-centric body frame with +x to the body's right, +y up and +z toward the viewer
Figure 2 — The neck-centric body frame.

Legend: origin at the base of the neck, on the midline; +x = body-right (the viewer's left, since the avatar faces the viewer), +y = up, +z = toward the viewer. R/L mark the avatar's own right and left. The same normalized value on an _l/_r pair is a symmetric pose; x-like axes are negated for the right side at decode.

3.3.Pose ⊕ Expression

IPL carries two stacked layers:

effective = clamp( pose ⊕ α · expression )

A consumer that ignores expression MUST still render pose correctly. Expression adds no new dimensions to the registry ordering; it is a parallel delta over the affect groups.

3.4.Hyper conditions & post-processing

Alongside the continuous vector, IPL carries hyper conditions — named discrete/conditional channels that condition how P is decoded without being latent dimensions. They are designed (not learned), do not occupy registry positions, never interpolate as scalars, and removing them MUST restore the pure decode of P. All other values remain the latent, unchanged.

The full decode order is:

P(pose) ⊕ α·P(expression)  ──decode──▶  rig pose  ──POST-PROCESSING──▶  rendered body
        (latent, §3.3)      (eye/viseme applied)        (contact/anchor solved)

Four hyper conditions are defined (registry §4.8):

Body sites. The contact domain is a fixed vocabulary of 32 named reference points on the decoded body: neck, navel, forehead, mouth, and per side (_l/_r) shoulder, elbow, wrist, palm, plus {thumb,index,middle,ring,pinky}_{base,tip}. A site resolves to a world point as primary bone + bone-local offset (+ optional secondary bones); the offsets are calibrated per rig and are renderer state, not part of P. Constraints: the mover MUST be a hand site; the target MUST NOT be on the mover's hand nor be the mover's same-side elbow. At most one contact may be active per keyframe.