Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở Phù hợp với người mới
#5,538 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@user-github-me đang làm issue này rồi.

Từ ngày 13/10/2026.

  • #5561 của @user-github-me — đang mở

Đánh giá

Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức phù hợp với người mới
88/100
Loại issue
Tài liệu
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
documentation

Hướng nghiên cứu

Đọc skills/remotion-to-hyperframes/references/timing.md, đặc biệt là các dòng 92–94 và ví dụ chi tiết ở dòng 135 và 144. Sửa các ánh xạ hàm easing bậc ba và ánh xạ số mũ của poly(N) theo mô tả trong issue; hoàn thành khi bảng và ví dụ nhất quán với các đa thức GSAP đã nêu.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

difficulty/easy documentation help wanted triage/ready

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.

Ngôn ngữ chính
TypeScript
Star
54.1k
Fork
4.9k
Merge trung bình
8 giờ 41 phút
Pull request đã merge (30 ngày)
723

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của heygen-com/hyperframes

Tất cả issue của heygen-com/hyperframes

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.