Skip to content

v0.5.0: M6 GUI export (the video-export studio)

Choose a tag to compare

@froggeric froggeric released this 08 Aug 20:24
· 143 commits to main since this release

The export feature is complete: a full GUI export studio, mastering-quality encoding, and a calmer animation pacing. The emberweft export CLI gains the same settings. Engine parity is unchanged (no renderer math changed; the export↔animate byte-identity pins hold).

GUI export studio

  • Export sheet with three sources: single genome, collection-as-sequence, multi-select batch.
  • Non-blocking progress banner in all windows: Cancel, Show in Finder, and an ETA (EMA-smoothed, "estimating..." during cold-start).
  • NSSavePanel / NSOpenPanel destination; ProcessInfo sleep prevention.

Mastering-quality encoding

  • ProRes 422 HQ is the default (intra-frame, so no smearing on busy fractal content; visually lossless). Container is .mov.
  • H.264 / HEVC tiers raised (~5x bitrate, High / Main10 profile, 1-sec GOP) for the .mp4 alternatives.

Animation pacing

The animation is no longer flam3-parity-bound: the owner decided Emberweft may improve on flam3's motion (renderer, determinism, and Metal↔CPU parity are unchanged).

  • Separate loop and transition durations (loops and edges can differ).
  • Transition rotation velocity-matched easing: the rotation eases so its velocity matches the loops at the boundaries, so short edges stay smooth. The realtime preview matches the export.
  • Defaults: 15s loop, 12s edge, loop render-once-repeat x2 (a 15s loop renders once and outputs twice = 30s perceived, seamless, halving the loop render cost). A RAM guard refuses an oversized loop cache (4K is over; a disk-cache follow-up).

Engine (parity-neutral)

  • Off-main temporal Metal (renderTemporalOffMain): the temporal twin of renderOffMain, byte-identical, so motion-blurred exports never freeze the UI.
  • Shared ExportSettings.resolve (CLI and GUI build byte-identical jobs).

Fixed

  • Sequence export no longer truncates the timeline (segmentCount is now 2N-1 to cover every genome's loop plus the transitions).
  • Batch output now carries the .mp4 extension.
  • Silent isRenderable skips are surfaced in the banner.

Deferred to M6.1

  • Export pause/resume (frame-count checkpointing + chunked-encode + concat) and temporal smoothing (across-frame histogram EMA for low-spp quality).