Skip to content

Fail-closed Manim beat sync, required pacing, pipeline retime (#56) - #58

Merged
jmjava merged 1 commit into
mainfrom
cursor/wizard-focus-files-graphics-timing-afb7
Aug 1, 2026
Merged

Fail-closed Manim beat sync, required pacing, pipeline retime (#56)#58
jmjava merged 1 commit into
mainfrom
cursor/wizard-focus-files-graphics-timing-afb7

Conversation

@jmjava

@jmjava jmjava commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

Closes the semantic sync gap from #56: composed length could pass while boxes raced ahead or latched onto the wrong spoken words.

# Change
1 Label→wait_word is fail-closed: stem/exact (+ hyphen splits) only; no fuzzy containment; never keep leftover LLM indices for unmatched labels
2 When timing.json has words, every story box needs a matched wait_word or explicit pace: none
3 generate-all / rebuild-after-audio: timestamps → scene retime (existing specs) → images → Manim. --regen-scene-specs for OpenAI
4 docgen scene-compile --all --retime offline rewrite of indices

Consumer workflow

docgen tts
docgen timestamps
docgen scene-compile --all --retime   # or: generate-all (retimes automatically)
docgen manim
docgen compose

Unmatched labels fail with a clear error — fix the spoken phrase in the spec, or set pace: none for decorative boxes.

Test plan

  • pytest tests/ (299 passed)
  • ruff check src/ tests/
  • Unit: Originator does not keep wait_word 146 / operator; pacing violations + pace: none
  • Unit: pipeline retimes after timestamps; retime compile helpers
  • Consumer smoke: timestamps → scene-compile --all --retime → Manim → compose
Open in Web Open in Cursor 

Address #56 semantic sync failures:

1. Label→wait_word matching is fail-closed (no fuzzy containment, no
   leftover LLM wait_word indices when the label is unspoken).
2. When timing.json has words, every story box must resolve wait_word or
   explicitly set pace: none — compile/generate fail otherwise.
3. generate-all / rebuild-after-audio retime-compile existing
   animations/specs/*.scene.yaml after timestamps (optional
   --regen-scene-specs for OpenAI).
4. scene-compile --all --retime for offline wait_word rewrite.

Co-authored-by: John Menke <jmjava@gmail.com>
@jmjava
jmjava marked this pull request as ready for review August 1, 2026 11:28
@cursor

cursor Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@jmjava
jmjava merged commit 0b75a6f into main Aug 1, 2026
5 checks passed
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.

2 participants