Communitygithub.com

szeproka/hyperframes-registry

一个由倒角长方体组成的链条,随着行波运动,作为内容轮播展示。HyperFrames 模块,1920×1080,6.666666666666667 秒,40 个变量。

hyperframes-registry 是什么?

Cuboid Carousel 是一个基于 Three.js 和 GSAP 的 3D 内容轮播技能,适用于 HyperFrames 平台。它创建了一组圆角倒角长方体,承载卡片内容,从右侧飞入,经过每个长方体独立旋转的巡航阶段,减速至英雄卡片暂停展示,最后向左退出。其核心设计依赖于长方体尺寸和最大 X 轴半程来计算间距,确保长方体之间永不相交。该技能提供 40 个变量,涵盖几何体、材质、灯光、阴影、背景、摄像机以及每个阶段的持续时间和缓动函数,开发者可以通过 JSON 变量或内置列表自定义卡片内容。文件结构包含主 HTML 文件、Three.js 核心库、GSAP 动画库、辅助工具和环境插件。安装简单,使用 `npx hyperframes add cuboid-carousel` 命令即可;渲染时可通过命令行指定变量值。运行时采用封闭形式的时间函数实现安全搜索,避免使用 `requestAnimationFrame` 循环,确保帧同步和可预测性。

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

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

长方体轮播

圆角倒角长方体承载着卡片内容,作为一个刚性群体从右侧飞入,巡航时每个长方体独立旋转并错开相位,减速至英雄卡片暂停展示,然后向左退出。间距由长方体尺寸和最大可达 X 轴半程决定,因此长方体之间永不相交。四十个变量承载了原始的 DialKit 模式:几何体、材质、灯光、阴影、背景、摄像机以及每个阶段的持续时间和缓动函数。卡片来自内置列表或 JSON 变量。

组合 ID:cuboid-carousel。时长 6.666666666666667 秒,30 fps,1920×1080。

文件

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

安装

使用 npx hyperframes add cuboid-carousel 安装;默认情况下,上述文件会放置在 compositions/cuboid-carousel/ 目录下。然后从宿主 index.html 中挂载该模块:

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

通过直接指定组合文件路径,使用自定义值进行渲染:

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

变量

运行时通过 window.__hyperframes.getVariables() 读取;在组合根元素上以 data-composition-variables(单引号属性,普通 JSON)声明。

id类型默认值标签 / 范围
cardsJson字符串""内容 · 卡片 JSON(可选,参见源码中的 CARDS)
heroCard数字4内容 · 英雄卡片(基于 1)1–12 步长 1
count数字8内容 · 重复卡片数量 1–12 步长 1
gap数字0.01布局 · 长方体之间的额外间隙 0–1.5 步长 0.005
cuboidWidth数字1.7长方体 · 宽度 0.3–5 步长 0.01
cuboidHeight数字2.4长方体 · 高度 0.3–6 步长 0.01
cuboidDepth数字0.14长方体 · 厚度(深度)0.02–2 步长 0.01
cornerRadius数字0.105长方体 · 圆角半径 0–0.6 步长 0.005
bevelSize数字0.03长方体 · 倒角大小(边缘斜切)0–0.3 步长 0.001
bevelThickness数字0.04长方体 · 倒角厚度 0–0.3 步长 0.001
smoothness数字32长方体 · 平滑度(分段数)1–32 步长 1
bodyColor颜色"#242424"长方体 · 主体颜色
roughness数字0.6长方体 · 粗糙度 0–1 步长 0.01
metalness数字0.4长方体 · 金属度 0–1 步长 0.01
heroScale数字1英雄 · 独立缩放 1–1.6 步长 0.01
heroFillIntensity数字0.55英雄 · 面光强度 0–2 步长 0.05
heroExitX数字288英雄 · 退出 X 轴旋转角度 -720–720 步长 1
heroExitY数字-234英雄 · 退出 Y 轴旋转角度 -720–720 步长 1
heroExitZ数字198英雄 · 退出 Z 轴旋转角度 -720–720 步长 1
ambientIntensity数字0.35灯光 · 环境光强度 0–4 步长 0.01
ambientColor颜色"#ffffff"灯光 · 环境光颜色
topIntensity数字3.1灯光 · 顶部灯光强度 0–12 步长 0.05
topColor颜色"#ffffff"灯光 · 顶部灯光颜色
bottomIntensity数字2.15灯光 · 底部灯光强度 0–12 步长 0.05
bottomColor颜色"#ffcaad"灯光 · 底部灯光颜色
keyIntensity数字5灯光 · 主光强度 0–12 步长 0.05
keyColor颜色"#ffe9d6"灯光 · 主光颜色
shadowRadius数字44.5阴影 · 模糊半径(贴图大小 2048)0–50 步长 0.5
shadowMapSize数字2048阴影 · 贴图大小 512–4096 步长 256
backdrop颜色"#0b0d13"背景 · 颜色
cameraFov数字11摄像机 · 初始视野 10–90 步长 0.5
cameraX数字-1.65摄像机 · 初始 X 轴位置 -20–20 步长 0.05
cameraY数字8.5摄像机 · 初始 Y 轴位置 -20–20 步长 0.05
cameraZ数字-8.508708摄像机 · 初始 Z 轴位置(距离)-20–50 步长 0.1
cameraSettleFrame数字70摄像机 · 稳定帧(30 fps)20–90 步长 1
handheldStrength数字1摄像机 · 手持稳定强度 0–1 步长 0.05
cameraTargetFov数字34摄像机目标 · 视野 10–90 步长 0.5
cameraTargetX数字-7.25摄像机目标 · X 轴位置 -20–20 步长 0.05
cameraTargetY数字1.15摄像机目标 · Y 轴位置 -20–20 步长 0.05
cameraTargetZ数字6.2摄像机目标 · Z 轴位置 2–50 步长 0.1

运行时契约

  • 一个暂停的 GSAP 时间线,注册为 window.__timelines["cuboid-carousel"]。
  • 在 hf-seek 自定义事件上重新同步;每一帧都是时间的封闭形式函数(仅使用种子伪随机数生成器,没有 rAF 循环,没有 Date.now)。
  • 渲染器:WebGL、GSAP、Canvas 2D、PMREM、阴影贴图。每个活动实例大约需要 350 MB 内存;一次只运行一个实例。
  • 外部运行时依赖:./assets/three.module.min.js、./assets/addons/。
  • 来自 Google Fonts 的网页字体:Inter。

编辑规则(来自源项目)

  1. 保持 data-composition-variables 为单引号属性,内部使用普通 " JSON。切勿通过 Studio 的设计面板保存它。
  2. 不要在静态标记中放置 <canvas>;在运行时创建它。
  3. 保持每个视觉状态为 t 的函数;搜索安全是使模块可渲染的关键。

Individual skills in this repo

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

相关技能