Communitygithub.com

szeproka/hyperframes-registry

Una cadena de cuboides biselados monta una ola viajera como un carrusel de contenido. Bloque HyperFrames, 1920×1080, 6.666666666666667 s, 40 variables.

¿Qué es hyperframes-registry?

Esta habilidad es un bloque de composición para HyperFrames que crea un carrusel de contenido dinámico y visualmente impactante. Un grupo de cuboides redondeados y biselados, que contienen tarjetas de contenido, vuelan desde la derecha como un grupo rígido, avanzan con una rotación escalonada por cuboide, desaceleran hasta una pausa heroica y luego salen por la izquierda. El espaciado entre cuboides se deriva de sus dimensiones y del semiextendido X más grande alcanzable, lo que garantiza que nunca se superpongan. La habilidad expone 40 variables que reflejan el esquema original de DialKit, permitiendo un control total sobre la geometría, los materiales, las luces, las sombras, el fondo, la cámara y la duración y suavizado de cada segmento. Las tarjetas pueden provenir de una lista incorporada o de una variable JSON, lo que la hace adecuada para presentaciones de productos, galerías de medios o cualquier aplicación que requiera una exhibición de contenido atractiva y programable.

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

Preguntar en tu IA favorita

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

Documentación

Carrusel de Cuboides

Cuboides redondeados y biselados que transportan contenido de tarjetas vuelan desde la derecha como un grupo rígido, avanzan con una rotación escalonada por cuboide, desaceleran hasta una pausa heroica y luego salen por la izquierda. El espaciado se deriva de las dimensiones del cuboide y del semiextendido X más grande alcanzable, por lo que los cuboides nunca se superponen. Cuarenta variables transportan el esquema original de DialKit: geometría, materiales, luces, sombras, fondo, cámara y la duración y suavizado de cada segmento. Las tarjetas provienen de la lista incorporada o de una variable JSON.

Id. de composición: cuboid-carousel. Duración 6.666666666666667 s a 30 fps, 1920×1080.

Archivos

  • cuboid-carousel.html (38 KB)
  • assets/Three-LICENSE.txt (1 KB)
  • assets/addons/environments/RoomEnvironment.js (5 KB)
  • assets/addons/utils/BufferGeometryUtils.js (36 KB)
  • assets/cuboid-motion.js (593 KB)
  • assets/gsap-3.14.2.min.js (128 KB)
  • assets/GSAP-NOTICE.txt (1 KB)
  • assets/three.core.min.js (554 KB)
  • assets/three.module.min.js (468 KB)

Instalar

Instala con npx hyperframes add cuboid-carousel; por defecto, los archivos anteriores se guardan en compositions/cuboid-carousel/. Luego monta el bloque desde el index.html anfitrión:

<div
  data-composition-id="cuboid-carousel"
  data-composition-src="compositions/cuboid-carousel/cuboid-carousel.html"
  data-start="0"
  data-duration="6.666666666666667"
  data-track-index="1"
  data-width="1920"
  data-height="1080"
></div>

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

npx --yes [email protected] render 'compositions/cuboid-carousel/cuboid-carousel.html' --variables '{"cardsJson":"","heroCard":4}'

Variables

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

idtipopredeterminadoetiqueta / rango
cardsJsoncadena""Contenido · Tarjetas JSON (opcional, ver TARJETAS en el código fuente)
heroCardnúmero4Contenido · Tarjeta héroe (basada en 1) 1–12 paso 1
countnúmero8Contenido · Recuento de tarjetas repetidas 1–12 paso 1
gapnúmero0.01Diseño · Espacio extra entre cuboides 0–1.5 paso 0.005
cuboidWidthnúmero1.7Cuboide · Ancho 0.3–5 paso 0.01
cuboidHeightnúmero2.4Cuboide · Alto 0.3–6 paso 0.01
cuboidDepthnúmero0.14Cuboide · Grosor (profundidad) 0.02–2 paso 0.01
cornerRadiusnúmero0.105Cuboide · Radio de esquina 0–0.6 paso 0.005
bevelSizenúmero0.03Cuboide · Tamaño del bisel (chaflán de borde) 0–0.3 paso 0.001
bevelThicknessnúmero0.04Cuboide · Grosor del bisel 0–0.3 paso 0.001
smoothnessnúmero32Cuboide · Suavizado (segmentos) 1–32 paso 1
bodyColorcolor"#242424"Cuboide · Color del cuerpo
roughnessnúmero0.6Cuboide · Rugosidad 0–1 paso 0.01
metalnessnúmero0.4Cuboide · Metalicidad 0–1 paso 0.01
heroScalenúmero1Héroe · Escala aislada 1–1.6 paso 0.01
heroFillIntensitynúmero0.55Héroe · Intensidad de luz frontal 0–2 paso 0.05
heroExitXnúmero288Héroe · Grados de rotación X de salida -720–720 paso 1
heroExitYnúmero-234Héroe · Grados de rotación Y de salida -720–720 paso 1
heroExitZnúmero198Héroe · Grados de rotación Z de salida -720–720 paso 1
ambientIntensitynúmero0.35Luces · Intensidad ambiental 0–4 paso 0.01
ambientColorcolor"#ffffff"Luces · Color ambiental
topIntensitynúmero3.1Luces · Intensidad del montaje superior 0–12 paso 0.05
topColorcolor"#ffffff"Luces · Color del montaje superior
bottomIntensitynúmero2.15Luces · Intensidad del montaje inferior 0–12 paso 0.05
bottomColorcolor"#ffcaad"Luces · Color del montaje inferior
keyIntensitynúmero5Luces · Intensidad del montaje principal 0–12 paso 0.05
keyColorcolor"#ffe9d6"Luces · Color del montaje principal
shadowRadiusnúmero44.5Sombras · Suavizado en tamaño de mapa 2048 0–50 paso 0.5
shadowMapSizenúmero2048Sombras · Tamaño del mapa 512–4096 paso 256
backdropcolor"#0b0d13"Fondo · Color
cameraFovnúmero11Cámara · Campo de visión inicial 10–90 paso 0.5
cameraXnúmero-1.65Cámara · X inicial -20–20 paso 0.05
cameraYnúmero8.5Cámara · Y inicial -20–20 paso 0.05
cameraZnúmero-8.508708Cámara · Z inicial (distancia) -20–50 paso 0.1
cameraSettleFramenúmero70Cámara · Fotograma de estabilización (30 fps) 20–90 paso 1
handheldStrengthnúmero1Cámara · Intensidad de sujeción manual 0–1 paso 0.05
cameraTargetFovnúmero34Destino de cámara · Campo de visión 10–90 paso 0.5
cameraTargetXnúmero-7.25Destino de cámara · X -20–20 paso 0.05
cameraTargetYnúmero1.15Destino de cámara · Y -20–20 paso 0.05
cameraTargetZnúmero6.2Destino de cámara · Z 2–50 paso 0.1

Contrato de tiempo de ejecución

  • Una línea de tiempo de GSAP en pausa registrada como window.__timelines["cuboid-carousel"].
  • Se resincroniza con el evento personalizado hf-seek; cada fotograma es una función de forma cerrada del tiempo (solo PRNG con semilla, sin bucles rAF, sin Date.now).
  • Renderizador: WebGL, GSAP, Canvas 2D, PMREM, mapas de sombras. Presupuesto aproximado de 350 MB por instancia activa; ejecutar una a la vez.
  • Dependencias externas de tiempo de ejecución: ./assets/three.module.min.js, ./assets/addons/.
  • Fuentes web de Google Fonts: Inter.

Reglas de edición (del proyecto fuente)

  1. Mantener data-composition-variables como un atributo entre comillas simples con JSON plano con ". 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 seguridad de búsqueda es lo que hace que el bloque se pueda renderizar.

Individual skills in this repo

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

Skills relacionados