Skip to content

The tracks say what they are: motiongrams from the motion frame, videograms from the picture - #385

Merged
alexarje merged 2 commits into
masterfrom
tracks-true-videograms
Sep 13, 2026
Merged

alexarje merged 2 commits into
masterfrom
tracks-true-videograms

Conversation

@alexarje

Copy link
Copy Markdown
Contributor

Summary

  • Fixes _tracks: videogram_v.u1 / videogram_h.u1 are motiongrams #383. extract_tracks / extract_tracks_parallel now write motiongram_v.u1 / motiongram_h.u1 (means of the motion frame, what the old videogram_* files held) and, by default, true videogram_v.u1 / videogram_h.u1 from one extra ffmpeg filter graph (extract_videograms), trimmed so column j lines up with motion frame j. videograms=False skips the extra pass.
  • read_columns, build_pyramid and render_timeline accept both names (span by axis suffix). A pre-rename folder serves its motion means under motiongram_* and refuses videogram_* with a message.
  • Fixes the mypy failure on master: _mocap.read_c3d imported MgError from _utils; it lives in _exceptions.
  • CHANGELOG and user guide updated; wiki chapters 12 and 17 updated.

Test plan

  • tests/test_true_videograms.py: a static bright bar shows in the videogram and not in the motiongram; a moving square shows in the motiongram; both names read through read_columns and build their own pyramid; a legacy folder serves motion means under the new name and refuses the old one.
  • tests/test_tracks.py, tests/test_pyramid_on_demand.py, tests/test_tracks_completeness.py pass (16 total with the new file).
  • mypy clean on _tracks, _timeline, _mocap with the project configuration.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PcjBSXbXjqdj1tmYHoLiKd

alexarje and others added 2 commits September 13, 2026 06:13
…ograms from the picture

`extract_tracks` averaged the motion frame along each axis and stored the result under
the videogram name, so a "videogram" of a concert was black with lines at the cuts
(#383). The arrays are now `motiongram_v.u1` / `motiongram_h.u1`, and one extra ffmpeg
filter graph writes true videograms beside them, trimmed so that column j lines up with
motion frame j. `read_columns`, `build_pyramid` and `render_timeline` take both names;
a folder written before the rename serves its motion means under `motiongram_*` and
refuses `videogram_*` with a message instead of returning motion data.

Also `_mocap.read_c3d` imported `MgError` from the wrong module, which failed mypy on
master.

Fixes #383

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PcjBSXbXjqdj1tmYHoLiKd
@alexarje
alexarje merged commit 7e1057c into master Sep 13, 2026
12 checks passed
@alexarje
alexarje deleted the tracks-true-videograms branch September 13, 2026 04:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

_tracks: videogram_v.u1 / videogram_h.u1 are motiongrams

1 participant