BlueGit

golden-age paperdoll-renderer

design: models and animations load as-is, no automatic correction (Tim t991u)

timfa Grok Bot · pushed by timfa

Authored 2026-11-07 · 7 days ago

Hash
6361124947580a8a2b1f06c0d8e684da229fac14
Parent
80024312
1 file changed +6 −1
design.md +6 −1
@@ -439,8 +439,13 @@ Findings on Tim's placeholders (maleb/femaleb.glb, Blender glTF export), verifie
439 439 2. The foot chains (footControl → footArch/footIK/footToes) hang under the root (an IK rig) and carry only constant keys, so the feet stay planted while thigh and calf rotate. The legs stretch into strange shapes.
440 440 3. The baked thigh/calf/arm motion bends the knees backwards relative to the mesh's own front (32/32 and 40/40 measured poses) and swings the attack arm behind the body. The motion is front/back mirrored relative to the mesh.
441 441
442 Decision: automatic per-body detection at load (`orient::detect`), applied in one place (`preview::posed_worlds`) so live, still, production and equipment agree:
442 Decision (superseded and reverted per Tim t991u, see below): automatic per-body detection at load (`orient::detect`), applied in one place (`preview::posed_worlds`) so live, still, production and equipment agree:
443 443 - Forward from the feet shape (lowest 4% vs 6–10% of height, ≥1000 vertices, ≥1% of height difference). +Z ⇒ turn the body 180° about Y. Static bodies get their geometry turned directly.
444 444 - A static (non-animated, at-rest) joint chain whose rest origin lies on the bone axis at the end of an animated leaf bone follows that bone rigidly.
445 445 - Knee-direction check over all clips at 24 samples/s: at least 4 wrong poses and more than 3× as many wrong as right ⇒ mirror the motion front/back. Per-joint world delta D = W·W0⁻¹ becomes S·D·S (S = diag(1,1,−1)), so the rest pose is unchanged.
446 446 - The notes are shown in the editor. There is no manual override yet; the synthetic test bodies are guarded to stay uncorrected.
447
448 ## Decision 2026-11-07 (Tim t991u): models and animations load as-is
449 - The program does no model or animation fixes. Bodies, equipment and clips are loaded exactly as the file describes them: no facing flip, no reattaching of static joint chains (IK feet), no front/back motion mirroring, no other heuristic correction.
450 - If a model or animation looks wrong, the animator fixes the source file. The t965u findings above (IK feet without keys, mirrored knee motion) stay source-data issues for the animator.
451 - The t965u automatic corrections (`orient.rs`, the editor "Automatische correctie" notes, their tests and README text) are removed.
@@ -439,8 +439,13 @@ Findings on Tim's placeholders (maleb/femaleb.glb, Blender glTF export), verifie
4392. The foot chains (footControl → footArch/footIK/footToes) hang under the root (an IK rig) and carry only constant keys, so the feet stay planted while thigh and calf rotate. The legs stretch into strange shapes.
4392. The foot chains (footControl → footArch/footIK/footToes) hang under the root (an IK rig) and carry only constant keys, so the feet stay planted while thigh and calf rotate. The legs stretch into strange shapes.
4403. The baked thigh/calf/arm motion bends the knees backwards relative to the mesh's own front (32/32 and 40/40 measured poses) and swings the attack arm behind the body. The motion is front/back mirrored relative to the mesh.
4403. The baked thigh/calf/arm motion bends the knees backwards relative to the mesh's own front (32/32 and 40/40 measured poses) and swings the attack arm behind the body. The motion is front/back mirrored relative to the mesh.
441
441
442Decision: automatic per-body detection at load (`orient::detect`), applied in one place (`preview::posed_worlds`) so live, still, production and equipment agree:
442Decision (superseded and reverted per Tim t991u, see below): automatic per-body detection at load (`orient::detect`), applied in one place (`preview::posed_worlds`) so live, still, production and equipment agree:
443- Forward from the feet shape (lowest 4% vs 6–10% of height, ≥1000 vertices, ≥1% of height difference). +Z ⇒ turn the body 180° about Y. Static bodies get their geometry turned directly.
443- Forward from the feet shape (lowest 4% vs 6–10% of height, ≥1000 vertices, ≥1% of height difference). +Z ⇒ turn the body 180° about Y. Static bodies get their geometry turned directly.
444- A static (non-animated, at-rest) joint chain whose rest origin lies on the bone axis at the end of an animated leaf bone follows that bone rigidly.
444- A static (non-animated, at-rest) joint chain whose rest origin lies on the bone axis at the end of an animated leaf bone follows that bone rigidly.
445- Knee-direction check over all clips at 24 samples/s: at least 4 wrong poses and more than 3× as many wrong as right ⇒ mirror the motion front/back. Per-joint world delta D = W·W0⁻¹ becomes S·D·S (S = diag(1,1,−1)), so the rest pose is unchanged.
445- Knee-direction check over all clips at 24 samples/s: at least 4 wrong poses and more than 3× as many wrong as right ⇒ mirror the motion front/back. Per-joint world delta D = W·W0⁻¹ becomes S·D·S (S = diag(1,1,−1)), so the rest pose is unchanged.
446- The notes are shown in the editor. There is no manual override yet; the synthetic test bodies are guarded to stay uncorrected.
446- The notes are shown in the editor. There is no manual override yet; the synthetic test bodies are guarded to stay uncorrected.
447
448## Decision 2026-11-07 (Tim t991u): models and animations load as-is
449- The program does no model or animation fixes. Bodies, equipment and clips are loaded exactly as the file describes them: no facing flip, no reattaching of static joint chains (IK feet), no front/back motion mirroring, no other heuristic correction.
450- If a model or animation looks wrong, the animator fixes the source file. The t965u findings above (IK feet without keys, mirrored knee motion) stay source-data issues for the animator.
451- The t965u automatic corrections (`orient.rs`, the editor "Automatische correctie" notes, their tests and README text) are removed.