design: models and animations load as-is, no automatic correction (Tim t991u)
@@ -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), verifie439
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.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
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.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
- 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-is449
- 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.