HyperFramesError·

Why is my HyperFrames render slow, and what actually speeds it up?

Separate a slow preview from a slow render, find the fixed 45 second tax, then work through source video, filters, encoding and resolution. Real fixes from HyperFrames' own performance guide.

Start by deciding which kind of slow you have, because the fixes do not overlap.

What you seeLook first at
Preview stutters in one sceneLarge blurs, masks, shadows, or many animated layers in that scene
Preview pauses the first time an image appearsOversized source images or image decoding
The whole page is slowScript work, layout thrashing, or too many DOM nodes
Render is slow but the result is correctSource video extraction, frame capture, or encoding
WebM takes much longer than MP4VP9 encoding. Transparent WebM is CPU-heavy
Every render pauses about 45 seconds before doing anythingA missing timeline

1. The flat 45 second wait

If every render, however small, starts with a long pause, it is not your content. A composition that never registers a timeline makes the producer wait out a fixed 45 second timeout. Fix it with data-no-timeline or by registering a real timeline. See the 45 second answer. Rule this out first: it is the biggest single saving for small projects.

2. Make a fast review render

npx hyperframes render --quality draft --output review.mp4

Draft reduces capture and encoder quality. It does not change timing, so what you check in the draft is what you ship. Use standard or high for the final.

3. Expensive browser work

Browsers are doing the rendering, so anything expensive in a browser is expensive here.

  • Use fewer large backdrop-filter and filter: blur() layers.
  • Avoid animating dozens of shadowed elements at once.
  • Replace a static blur or texture stack with a pre-rendered image.
  • Size images near their actual delivery dimensions. A very large JPEG still decodes into a very large bitmap. For a 1920 by 1080 composition, a 3840 by 2160 source already gives a 2x display enough detail.
  • Keep work inside animation callbacks small. Do not read layout and write styles in the same frame.

4. Do not over-spec the output

The defaults of 1920 by 1080 at 30 frames per second render fast and look good. Higher specs slow rendering meaningfully. Ask for 4K only when the delivery target needs it, and supersample instead when you can, with --resolution.

5. WebM is not MP4

WebM uses the CPU-heavy VP9 encoder, and transparent WebM is the worst case. If you must render it, you can trade encoding time for compression with --vp9-cpu-used, which takes integers from -8 to 8. Higher values are faster, with a larger quality and size tradeoff.

npx hyperframes render --format webm --vp9-cpu-used 2 --output overlay.webm

6. Find out whether you fell back to screenshot capture

A render on Linux that fell back to screenshot capture used to look like a normal success while being much slower. Since a September 2026 change, hyperframes render prints the capture path, GPU mode and per-stage timings, and local auto GPU mode now requests BeginFrame instead of clamping to screenshot. If your summary says screenshot, there is a hint naming the remaining blockers, such as not using chrome-headless-shell or using a --resolution upscale, which stays on screenshot capture by design.

7. Measure before you change things

npx hyperframes preview

Open Chrome DevTools, choose Performance, record the part that stutters, and look at the longest tasks. Paint or Composite Layers points to filters, shadows or masks. Layout or Recalculate Style points to layout work. Script points to your own code. Change one expensive feature, record again, and keep the version that moves the bottleneck. To tune worker settings for a final render, run npx hyperframes benchmark.

Check it worked

Time a draft render before and after each change, one change at a time, so you know which one paid off.

GenMotion

Keep slow renders out of your edit loop

The GenMotion studio: an agent chat on the left, and on the right a video preview above its timeline

Editing in GenMotion happens in a live, frame-accurate preview. The MP4 is rendered only when you export, on your own machine, so a heavy scene costs you time once instead of on every change. The studio bundles its own ffmpeg for the encoding, so there is nothing to install or tune.

Frequently asked questions

Not necessarily. Preview has to draw each frame in real time, so it is limited by your hardware. Render can take as long as it needs per frame and never drops one. A composition that stutters in preview still renders correctly.

Render at draft quality while you work: npx hyperframes render --quality draft --output review.mp4. Draft changes capture and encoder quality but does not change the composition's timing. Use standard or high only for delivery.

Not unless the delivery target needs it. The defaults of 1920 by 1080 at 30 fps render fast and look good, and higher specs slow rendering meaningfully. HyperFrames' own prompting guide lists over-specifying resolution and frame rate as an anti-pattern.

Ready to tell your story?

Describe an idea and watch the agent animate it — on your Mac, in minutes.