Communitygithub.com

szeproka/hyperframes-registry

Fragmentos de vidrio vuelan a través de la niebla y se colocan formando el titular. Bloque HyperFrames, 1920×1080, 12.16s, 19 variables.

¿Qué es hyperframes-registry?

Esta habilidad crea un bloque visual HyperFrames que anima fragmentos de vidrio con corte de Voronoi entrando desde la profundidad, rotando y formando un mosaico con la silueta del titular, para luego salir volando más allá de la cámara. Cada fragmento es un clip Sutherland-Hodgman de una forma irregular contra su celda de Voronoi, asegurando que las piezas siempre cubran el texto. Es útil para productores de video, diseñadores de movimiento y desarrolladores que necesitan una transición de titular dinámica y personalizable sin depender de After Effects. Soporta plataformas que ejecuten HyperFrames (como Studio de HyperFrames o la CLI). La animación se basa en una línea de tiempo GSAP pausada, con cada cuadro calculado como una función cerrada del tiempo, lo que garantiza la capacidad de búsqueda en cualquier momento. Incluye 19 variables editables como el titular, número de mosaicos, redondez, bisel, tiempos de entrada/salida, rotación, caos, espacio entre piezas, niebla, y más. Los recursos incluyen fuentes locales (Geist, Cormorant Garamond), un mapa HDR de entorno y un matcap. La implementación usa three.js, GSAP, d3-delaunay, y shaders GLSL, con un presupuesto de memoria aproximado de 350 MB por instancia activa.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/szeproka/hyperframes-registry/tree/HEAD/registry/blocks/glass-shard-title

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Titular de Fragmento de Vidrio

Paneles de vidrio cortados con Voronoi entran desde la profundidad, rotando, y aterrizan formando una silueta en mosaico del titular, luego salen volando más allá de la cámara. Cada fragmento es un clip Sutherland–Hodgman de una forma irregular contra su celda Voronoi, por lo que las piezas siempre cubren el tipo de letra. Las superficies de vidrio y matcap reciben niebla por fragmento; el vuelo en Z está desacoplado de la curva de easing para que los fragmentos lo recorran visiblemente. Un conteo de mosaicos de 1 da un solo panel.

Id de composición: glass-shard-title. Duración 12.16 s a 30 fps, 1920×1080.

Archivos

  • glass-shard-title.html (16 KB)
  • assets/ferndale_studio_01_1k.hdr (1.6 MB)
  • assets/fonts/Geist-Bold.ttf (65 KB)
  • assets/fonts/Geist-Regular.ttf (65 KB)
  • assets/fonts/Geist-SemiBold.ttf (65 KB)
  • assets/fonts/Geist-OFL.txt (4 KB)
  • assets/fonts/cormorant-garamond.woff2 (37 KB)
  • assets/fonts/CormorantGaramond-OFL.txt (4 KB)
  • assets/glass-main.js (549 KB)
  • assets/Three-LICENSE.txt (1 KB)
  • assets/matcap-1.png (obtenido desde el CDN en la instalación)

Instalación

Instalar con npx hyperframes add glass-shard-title; por defecto los archivos anteriores se colocan bajo compositions/glass-shard-title/. Luego montar el bloque desde el index.html anfitrión:

<div
  data-composition-id="glass-shard-title"
  data-composition-src="compositions/glass-shard-title/glass-shard-title.html"
  data-start="0"
  data-duration="12.16"
  data-track-index="1"
  data-width="1920"
  data-height="1080"
></div>

Renderizar con valores personalizados apuntando directamente al archivo de composición:

npx --yes [email protected] render 'compositions/glass-shard-title/glass-shard-title.html' --variables '{"headline":"Designed in glass","tileCount":8}'

Variables

Se leen en tiempo de ejecución mediante window.__hyperframes.getVariables(); se declaran en la raíz de la composición como data-composition-variables (atributo entre comillas simples, JSON plano).

idtipodefectoetiqueta / rango
headlinecadena"Designed in glass"Titular máximo 40 caracteres
tileCountnúmero8Mosaicos 1–400 paso 1
roundnessnúmero0.4Redondez (0-1) 0–1 paso 0.01
bevelnúmero0.35Bisel (0-1) 0–1 paso 0.01
meshSmoothnúmero0.6Suavizado de superficie (0-1) 0–1 paso 0.01
flyInTimenúmero2.3Tiempo de entrada (s) 0.2–6 paso 0.05
flyOutTimenúmero2.4Tiempo de salida (s) 0.2–6 paso 0.05
staggernúmero0.27Escalonamiento (0-1) 0–1 paso 0.01
flyInRotationnúmero5Rotación de entrada (0-60) 0–60 paso 0.1
flyOutRotationnúmero6Rotación de salida (0-6) 0–6 paso 0.1
chaosnúmero0.25Caos del contorno (0-1) 0–1 paso 0.01
paddingnúmero1Relleno de borde (0-1) 0–1 paso 0.01
sizeVariancenúmero0.35Variación de tamaño (0-1) 0–1 paso 0.01
gapnúmero0.03Espacio entre mosaicos 0–0.3 paso 0.002
easePownúmero10Curva de easing de entrada (1-10) 1–10 paso 0.1
sideDistnúmero3Distancia lateral de vuelo 0–60 paso 0.5
zDistnúmero-42Z de origen (negativo) -400–0 paso 2
zOutnúmero14Z de salida (+ = más allá de la cámara) -400–60 paso 2
fognúmero36Distancia de niebla (0 = desactivado) 0–400 paso 2

Contrato de ejecución

  • Una línea de tiempo GSAP pausada registrada como window.__timelines["glass-shard-title"].
  • Se resincroniza con el CustomEvent hf-seek; cada fotograma es una función de forma cerrada del tiempo (solo PRNG con semilla, sin bucles rAF, sin Date.now).
  • Motor de renderizado: three.js 0.181.2 (empaquetado), GSAP 3.14.2, Canvas 2D, shaders GLSL, entorno HDR, Matcap, PRNG con semilla, d3-delaunay, mapas de sombra. Presupuesto aproximado de 350 MB por instancia activa; ejecutar una a la vez.
  • Dependencias externas en tiempo de ejecución: https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js, https://cdn.jsdelivr.net/npm/[email protected]/dist/d3-delaunay.min.js.
  • Fuentes locales: assets/fonts/Geist-Regular.ttf, assets/fonts/Geist-SemiBold.ttf, assets/fonts/Geist-Bold.ttf.
  • El código empaquetado está en línea dentro de la composición (assets/glass-main.js); reconstruir con esbuild y volver a incrustar después de editar el código fuente .mjs.

Reglas de edición (del proyecto fuente)

  1. Mantener data-composition-variables como un atributo entre comillas simples con JSON plano ". Nunca guardarlo a través del panel de Diseño de Studio.
  2. No colocar <canvas> en el marcado estático; crearlo en tiempo de ejecución.
  3. Mantener cada estado visual como una función de t; la capacidad de búsqueda es lo que hace que el bloque sea renderizable.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados