3D animation · R&D

Lodyk

A coach's exercise, filmed on a phone, becomes a 3D demo: a character repeats the movement and the coach's words are voiced in English and Ukrainian. None of the coach's footage is ever shown.

Year
2026
Status
R&D
Scale
31 commits
Stack
Python · NLF · SMPL · NumPy · SciPy · Blender · FFmpeg
  • 8.50 pxarm error, down from 11.80
  • 0.40%joints bending backwards on unseen clips, down from 2.92%
  • 5clips in the benchmark, 2 never used for tuning
  • 31commits

The problem

Pose models give a body per frame, not a motion. Raw, the joints jitter, elbows bend backwards and feet sink into the floor, and a cartoon character makes every one of those defects obvious.

How it works

  1. 01

    Phone video

    One static shot of an off-ice exercise. Burned-in captions become the coach script.

  2. 02

    Body per frame

    NLF returns a 24-joint body model for each frame.

  3. 03

    Motion solver

    Rotations are fitted across time so the motion is smooth and joints stay within what a body can do.

  4. 04

    Floor and collisions

    Feet are kept on the floor, limbs out of the body, and the frames where both skates leave the floor are marked.

  5. 05

    Mascot in Blender

    The same motion drives Lodyk's rig. Mesh checks run before rendering.

  6. 06

    Render and compose

    The render is composed with the coach's instructions in English and Ukrainian.

Source: IMG_9874.MOV · 1280×720 · 30 fps · 26.2 s · one static camera

Coach script from burned-in captions:
“pay attention to the air position”

Benchmark

metricbaselinedefaultsheld-out baselineheld-out defaults
arm error, px11.808.508.847.42
palm roll, °412402221204
jerk p998672878785067541
joints bending backwards5.18%3.29%2.92%0.40%
combined0.610.570.460.41

Every solver change is scored on several clips before it is kept. Lower is better.

Limits I know about

  • Fitting arms to 2D landmarks costs total axial twist (2,403 → 4,339). It is the price of matching the coach's arms at all.
  • Some filters improved the number they targeted and broke something their metric could not see, which is why decisions now go through the scorecard.

Need something like this?

Tell me about your task and data. I will answer with how I would approach it.

Discuss a project →