Communitygithub.com

szeproka/hyperframes-registry

玻璃碎片从雾中飞入,拼接成标题的轮廓。HyperFrames 区块,1920×1080,12.16 秒,19 个变量。

hyperframes-registry 是什么?

该技能是一个 HyperFrames 动画区块,名为“玻璃碎片标题”。它使用 Voronoi 切割的玻璃碎片,从深处旋转飞入,拼贴成标题文字的轮廓形状,然后飞过摄像机。每个碎片都是对抖动斑点进行 Sutherland–Hodgman 裁剪并与 Voronoi 单元对齐的结果,确保碎片始终覆盖文字。玻璃和 Matcap 表面具有逐片雾效;Z 轴飞行与缓动解耦,使碎片在穿越时清晰可见。区块包含 19 个可调变量(如标题文字、碎片数量、圆角、飞行时间等),支持在 1920×1080 分辨率下以 30fps 渲染 12.16 秒。它通过 GSAP 时间线驱动,必须支持 seek 操作,所有视觉状态均为时间 t 的闭式函数(仅使用种子 PRNG,无 rAF 循环,无 Date.now),以保证可渲染性。

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

在你喜欢的 AI 中提问

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

文档

玻璃碎片标题

从深处飞入的 Voronoi 切割玻璃板,旋转着降落在标题文字的拼贴轮廓中,然后飞过摄像机。每片碎屑都是对抖动斑点进行 Sutherland–Hodgman 裁剪并与其 Voronoi 单元对齐的结果,因此碎片始终覆盖文字。玻璃和 Matcap 表面具有逐片雾效;Z 轴飞行与缓动解耦,使碎片在穿越时清晰可见。平铺数为 1 时显示为单块玻璃板。

组合 ID:glass-shard-title。时长 12.16 秒,30fps,1920×1080。

文件

  • 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(安装时从 CDN 获取)

安装

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

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

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

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

变量

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

id类型默认值标签/范围
headlinestring"Designed in glass"标题最多 40 字符
tileCountnumber8瓦片数 1–400 步长 1
roundnessnumber0.4圆角 (0-1) 0–1 步长 0.01
bevelnumber0.35倒角 (0-1) 0–1 步长 0.01
meshSmoothnumber0.6表面平滑度 (0-1) 0–1 步长 0.01
flyInTimenumber2.3飞入时间 (秒) 0.2–6 步长 0.05
flyOutTimenumber2.4飞出时间 (秒) 0.2–6 步长 0.05
staggernumber0.27交错 (0-1) 0–1 步长 0.01
flyInRotationnumber5飞入旋转 (0-60) 0–60 步长 0.1
flyOutRotationnumber6飞出旋转 (0-6) 0–6 步长 0.1
chaosnumber0.25轮廓混乱度 (0-1) 0–1 步长 0.01
paddingnumber1边缘填充 (0-1) 0–1 步长 0.01
sizeVariancenumber0.35尺寸变化 (0-1) 0–1 步长 0.01
gapnumber0.03瓦片间隙 0–0.3 步长 0.002
easePownumber10飞入位置缓动 (1-10) 1–10 步长 0.1
sideDistnumber3侧向飞行距离 0–60 步长 0.5
zDistnumber-42Z 轴飞入起点 (负值) -400–0 步长 2
zOutnumber14Z 轴飞出终点 (+ = 越过摄像机) -400–60 步长 2
fognumber36雾距离 (0 = 关闭) 0–400 步长 2

运行时约定

  • 一个暂停的 GSAP 时间线注册为 window.__timelines["glass-shard-title"]。
  • 在 hf-seek 自定义事件上进行重新同步;每一帧都是时间 t 的闭式函数(仅使用种子 PRNG,无 rAF 循环,无 Date.now)。
  • 渲染器:three.js 0.181.2(捆绑)、GSAP 3.14.2、Canvas 2D、GLSL 着色器、HDR 环境、Matcap、种子 PRNG、d3-delaunay、阴影贴图。每个活跃实例预算约 350 MB;一次运行一个。
  • 外部运行时依赖:https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js,https://cdn.jsdelivr.net/npm/[email protected]/dist/d3-delaunay.min.js。
  • 本地字体:assets/fonts/Geist-Regular.ttf、assets/fonts/Geist-SemiBold.ttf、assets/fonts/Geist-Bold.ttf。
  • 捆绑代码内联到组合中(assets/glass-main.js);编辑 .mjs 源文件后使用 esbuild 重建并重新内联。

编辑规则(来自源项目)

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

Individual skills in this repo

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

相关技能