Skip to content

v0.5.7: fix jerky half-speed motion (remove loop-repeat)

Choose a tag to compare

@froggeric froggeric released this 11 Aug 20:35
· 98 commits to main since this release

v0.5.7 removes the loop render-once-repeat feature, which caused exported motion to play at half speed (the jerky, slowed-down, flickering playback). Each frame is now rendered and appended exactly once.

Removed

  • loopRepeatCount and the GUI "Loop repeat" stepper, the CLI --loop-repeat flag, and the loopRepeatMemoryExceeded RAM guard. The repeat-greater-than-one cache-and-replay branch in the render loop is deleted; every loop and transition frame is rendered once and appended once.

Why
The default repeat count was 2, so each loop frame was written twice as identical bytes. A 30 fps container showed only 15 fps of real motion: the rotation advanced every other output frame, producing the jerky, flickering, slowed-down playback. The frame-rate and blend-time model was sound; the duplication was the cause.

Backward compatibility

  • A v0.5.6 export checkpoint (with a loopRepeatCount key) still decodes on v0.5.7 (Swift keyed decoding ignores unknown keys), so resume works across the version boundary.
  • Renderer math, determinism, Metal/CPU parity, and the animate/export mastering path are unchanged.

Install
Download and unzip. The binary is unsigned, so clear quarantine before running:
xattr -dr com.apple.quarantine emberweft emberweft_FlameRenderer.bundle
Run the GUI from the folder that holds the resource bundles:
./emberweft-gui
Or the CLI:
./emberweft --help
Requires macOS 26 on Apple Silicon.