Communitygithub.com

szeproka/hyperframes-registry

Une chaîne de cuboïdes biseautés chevauche une onde progressive en carrousel de contenu. Bloc HyperFrames, 1920×1080, 6,666666666666667s, 40 variables.

Qu'est-ce que hyperframes-registry ?

Ce bloc HyperFrames, nommé « Cuboid Carousel », anime une rangée de cuboïdes arrondis et biseautés qui défilent de droite à gauche en formant un carrousel de contenu. Chaque cuboïde se déplace en groupe rigide avec un décalage de rotation individuel, décélère jusqu'à une position d'accroche (héro), puis sort par la gauche. L'espacement entre les cuboïdes est calculé automatiquement à partir de leurs dimensions et du demi-plan X maximal atteignable, garantissant qu'ils ne se chevauchent jamais. Le bloc expose 40 variables réglables héritées du schéma DialKit original : géométrie, matériaux, lumières, ombres, arrière-plan, caméra, ainsi que les durées et courbes d'accélération de chaque segment. Les cartes de contenu proviennent d'une liste intégrée ou d'une variable JSON. Le bloc est entièrement sûr pour la recherche temporelle (seek-safe) : chaque image est une fonction fermée du temps, utilisant un générateur pseudo-aléatoire sans boucles d'animation. Il repose sur Three.js et GSAP et s'installe via la CLI HyperFrames avec `npx hyperframes add cuboid-carousel`. Un rendu personnalisé peut être effectué avec la commande `npx hyperframes render`. Ce bloc est conçu pour les écrans 1920×1080 à 30 images par seconde et nécessite environ 350 Mo de mémoire par instance.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Carrousel de Cuboïdes

Des cuboïdes arrondis et biseautés portant du contenu sous forme de cartes volent depuis la droite en un seul groupe rigide, avancent avec un décalage de rotation par cuboïde, décélèrent jusqu'à une position d'accroche héro, puis sortent par la gauche. L'espacement est calculé à partir des dimensions des cuboïdes et du demi-plan X maximal atteignable, de sorte que les cuboïdes ne se chevauchent jamais. Quarante variables transportent le schéma original DialKit : géométrie, matériaux, lumières, ombres, arrière-plan, caméra et chaque durée et courbe d'accélération de segment. Les cartes proviennent de la liste intégrée ou d'une variable JSON.

Identifiant de composition : cuboid-carousel. Durée 6,666666666666667 s à 30 fps, 1920×1080.

Fichiers

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

Installation

Installer avec npx hyperframes add cuboid-carousel ; par défaut, les fichiers ci-dessus atterrissent sous compositions/cuboid-carousel/. Montez ensuite le bloc depuis le fichier index.html hôte :

<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>

Effectuez un rendu avec des valeurs personnalisées en ciblant directement le fichier de composition :

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

Variables

Lues à l'exécution via window.__hyperframes.getVariables() ; déclarées sur la racine de la composition avec data-composition-variables (attribut entre guillemets simples, JSON pur).

idtypedéfautlibellé / plage
cardsJsonstring""Contenu · JSON des cartes (optionnel, voir CARTES dans le code source)
heroCardnumber4Contenu · Carte héro (base 1) 1–12 pas 1
countnumber8Contenu · Nombre de cartes répétées 1–12 pas 1
gapnumber0.01Disposition · Écart supplémentaire entre cuboïdes 0–1.5 pas 0.005
cuboidWidthnumber1.7Cuboïde · Largeur 0.3–5 pas 0.01
cuboidHeightnumber2.4Cuboïde · Hauteur 0.3–6 pas 0.01
cuboidDepthnumber0.14Cuboïde · Épaisseur (profondeur) 0.02–2 pas 0.01
cornerRadiusnumber0.105Cuboïde · Rayon des coins 0–0.6 pas 0.005
bevelSizenumber0.03Cuboïde · Taille du biseau 0–0.3 pas 0.001
bevelThicknessnumber0.04Cuboïde · Épaisseur du biseau 0–0.3 pas 0.001
smoothnessnumber32Cuboïde · Lissage (segments) 1–32 pas 1
bodyColorcolor"#242424"Cuboïde · Couleur du corps
roughnessnumber0.6Cuboïde · Rugosité 0–1 pas 0.01
metalnessnumber0.4Cuboïde · Métallisation 0–1 pas 0.01
heroScalenumber1Héro · Échelle isolée 1–1.6 pas 0.01
heroFillIntensitynumber0.55Héro · Intensité de la lumière faciale 0–2 pas 0.05
heroExitXnumber288Héro · Angle de rotation X de sortie en degrés -720–720 pas 1
heroExitYnumber-234Héro · Angle de rotation Y de sortie en degrés -720–720 pas 1
heroExitZnumber198Héro · Angle de rotation Z de sortie en degrés -720–720 pas 1
ambientIntensitynumber0.35Lumières · Intensité ambiante 0–4 pas 0.01
ambientColorcolor"#ffffff"Lumières · Couleur ambiante
topIntensitynumber3.1Lumières · Intensité du rig supérieur 0–12 pas 0.05
topColorcolor"#ffffff"Lumières · Couleur du rig supérieur
bottomIntensitynumber2.15Lumières · Intensité du rig inférieur 0–12 pas 0.05
bottomColorcolor"#ffcaad"Lumières · Couleur du rig inférieur
keyIntensitynumber5Lumières · Intensité du rig principal 0–12 pas 0.05
keyColorcolor"#ffe9d6"Lumières · Couleur du rig principal
shadowRadiusnumber44.5Ombres · Douceur à la taille de la carte d'ombre 2048 0–50 pas 0.5
shadowMapSizenumber2048Ombres · Taille de la carte d'ombre 512–4096 pas 256
backdropcolor"#0b0d13"Arrière-plan · Couleur
cameraFovnumber11Caméra · Champ de vision initial 10–90 pas 0.5
cameraXnumber-1.65Caméra · X initial -20–20 pas 0.05
cameraYnumber8.5Caméra · Y initial -20–20 pas 0.05
cameraZnumber-8.508708Caméra · Z initial (distance) -20–50 pas 0.1
cameraSettleFramenumber70Caméra · Image de stabilisation (30 fps) 20–90 pas 1
handheldStrengthnumber1Caméra · Intensité du tremblement 0–1 pas 0.05
cameraTargetFovnumber34Cible caméra · Champ de vision 10–90 pas 0.5
cameraTargetXnumber-7.25Cible caméra · X -20–20 pas 0.05
cameraTargetYnumber1.15Cible caméra · Y -20–20 pas 0.05
cameraTargetZnumber6.2Cible caméra · Z 2–50 pas 0.1

Contrat d'exécution

  • Une timeline GSAP en pause enregistrée sous window.__timelines["cuboid-carousel"].
  • Resynchronisation sur l'événement personnalisé hf-seek ; chaque image est une fonction fermée du temps (PRNG ensemencé uniquement, pas de boucles rAF, pas de Date.now).
  • Rendu : WebGL, GSAP, Canvas 2D, PMREM, cartes d'ombre. Budget d'environ 350 Mo par instance active ; exécutez-en une à la fois.
  • Dépendances d'exécution externes : ./assets/three.module.min.js, ./assets/addons/.
  • Polices Web de Google Fonts : Inter.

Règles d'édition (du projet source)

  1. Conservez data-composition-variables comme un attribut entre guillemets simples avec du JSON en ". Ne l'enregistrez jamais via le panneau de conception de Studio.
  2. Ne mettez pas de <canvas> dans le balisage statique ; créez-le à l'exécution.
  3. Conservez chaque état visuel en fonction de t ; la sécurité de recherche temporelle est ce qui rend le bloc rendable.

Individual skills in this repo

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

Skills associés