Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

remotion-to-hyperframes: Easing.cubic is mapped to power3 (quartic); cubic is power2

未关闭 适合新手
#5,538 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@user-github-me 已经在做这个了。

开始于 2026年10月13日。

  • #5561 来自 @user-github-me —— 未关闭

评估

难度
1/5
预计耗时
1 小时以内
新手友好度
88/100
Issue 类型
文档
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript
领域
documentation

调研方向

阅读 skills/remotion-to-hyperframes/references/timing.md,尤其是第 92–94 行以及第 135 行和第 144 行的详细示例。按照 issue 中的说明,修正三次缓动函数的映射以及 poly(N) 的指数映射;完成标准是表格和示例始终与所述 GSAP 多项式一致。

由索引模型根据 Issue 内容生成。

描述

Skill: skills/remotion-to-hyperframes/references/timing.md

The easing table maps Remotion's cubic easing to GSAP power3. GSAP's powerN eases have exponent N+1:

GSAP ease polynomial
power1 quad
power2 cubic
power3 quart
power4 quint

So a ported Easing.out(Easing.cubic) runs as a quartic ease-out.

Affected lines (current main):

  • L92: Easing.out(Easing.cubic) → ease: "power3.out". It should be power2.out.
  • L93: Easing.inOut(Easing.cubic) → ease: "power3.inOut". It should be power2.inOut.
  • L94: Easing.out(Easing.poly(N)) → power<N>.out. It should be power<N-1>.out (poly 2 = quad → power1, 3 = cubic → power2, 4 = quart → power3, 5 = quint → power4).
  • L135 / L144: the worked example uses power3.out and says it "matches 1 - (1-t)^3 exactly". That curve is power2.out.

Check with GSAP 3.15.0 at t = 0.5:

ease value at t = 0.5
power2.out 0.875000
power3.out 0.937500
cubic 1 - (1-t)^3 0.875000
quart 1 - (1-t)^4 0.937500

Impact we saw: a counter tween ported with power3.out led its cubic original by up to about 0.27 s over a 2.6 s tween. An SSIM check per frame mostly doesn't catch it, because the error is timing: every frame looks plausible, it is just early.

Suggested fix:

  • Change the two cubic rows and the worked example to power2.
  • Change the poly(N) row to power<N-1>.

(L72, overshootClamping → power3.out, is marked "not validated" and may be a deliberate approximation, so I've left it out.)

We found this while testing motion libraries for frame-exact rendering. HyperFrames itself was frame-exact in every test we ran. Thanks for building it.

主要语言
TypeScript
星标
54.1k
派生
4.9k
平均合并
8 小时 39 分钟
30 天内合并 PR
736

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

heygen-com/hyperframes 的其他 Issue

查看 heygen-com/hyperframes 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。