Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#5,538 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@user-github-me ya está trabajando en esto.

Desde el 13/10/2026.

  • #5561 de @user-github-me — abierto

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
88/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

Lee skills/remotion-to-hyperframes/references/timing.md, especialmente las líneas 92–94 y el ejemplo desarrollado en las líneas 135 y 144. Corrige las correspondencias de las funciones de easing cúbicas y la correspondencia del exponente de poly(N) tal como se describe en el issue; se considerará terminado cuando la tabla y el ejemplo coincidan de forma coherente con los polinomios de GSAP indicados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
TypeScript
Estrellas
54.1k
Forks
4.9k
Merge medio
8 h 39 min
PR fusionados (30 d)
736

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de heygen-com/hyperframes

Todos los issues de heygen-com/hyperframes

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.