Skills
Skill 13 of 34
A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase.
2 minutes · 332 words · 5 sections
Install
npx skills add heygen-com/hyperframes --skill wireframe-portal-titlenpx skills add heygen-com/hyperframes/plugin marketplace add heygen-com/hyperframesThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Extruded wireframe letterforms are built from the bundled Geist face with a TTF loader and polygon offsetting, then revealed through a portal burst whose chaos is a variable. A second beat swaps the letters into a replacement phrase with whole-word wrapping and auto type size, staggered with a tunable easing curve and settle glitch, with optional depth fog.
Composition id: wireframe-portal-title. Duration 8 s at 30 fps, 1920×1080.
wireframe-portal-title.html (63 KB)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)Install with npx hyperframes add wireframe-portal-title; by default the files above land under compositions/wireframe-portal-title/. Then mount the block from the host index.html:
<div
data-composition-id="wireframe-portal-title"
data-composition-src="compositions/wireframe-portal-title/wireframe-portal-title.html"
data-start="0"
data-duration="8"
data-track-index="1"
data-width="1920"
data-height="1080"
></div>Render with custom values by targeting the composition file directly:
npx --yes hyperframes@0.8.12 render 'compositions/wireframe-portal-title/wireframe-portal-title.html' --variables '{"title":"BREAKTHROUGH","replacementPhrase":"Lets do this sir!"}'Read at runtime via window.__hyperframes.getVariables(); declared on the composition root as data-composition-variables (single-quoted attribute, plain JSON).
| id | type | default | label / range |
|---|---|---|---|
title | string | "BREAKTHROUGH" | Title max 18 chars |
replacementPhrase | string | "Lets do this sir!" | 3D replacement phrase (auto layout) |
phraseDuration | number | 1.85 | Phrase transition duration (s) 0.65–2.9 step 0.05 |
phraseEasing | number | 8 | Transition easing (1 gentle – 8 snap) 1–8 step 0.25 |
settleGlitch | number | 0.2 | Letter settle glitch strength 0–4 step 0.05 |
depthFog | boolean | true | Depth fog (early fade always on) |
subtitle | string | "HYPERFRAMES PORTAL TITLE" | Subtitle max 48 chars |
accent | color | "#F5C518" | Accent |
burstChaos | number | 1 | Burst chaos (0-2) 0–2 step 0.01 |
window.__timelines["wireframe-portal-title"].hf-seek CustomEvent; every frame is a closed-form function of time (seeded PRNG only, no rAF loops, no Date.now).https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js, https://cdn.jsdelivr.net/npm/clipper-lib@6.4.2/clipper.js, https://cdn.jsdelivr.net/npm/three@0.181.2/build/three.module.js, https://cdn.jsdelivr.net/npm/three@0.181.2/examples/jsm/.data-composition-variables a single-quoted attribute with plain " JSON. Never save it through Studio’s Design panel.<canvas> in static markup; create it at runtime.A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 23 September 2026.SKILL.md, not by matching a directory convention. 3 distinct layouts observed: .agents/skills/*/SKILL.md, registry/blocks/*/SKILL.md, skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by HeyGen, declaring 2 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./heygen-com/hyperframes.md, and each skill at its own .md URL.6 files · 264 KB
Everything this skill ships beside its prose. 3 of them are set here as subchapters of skill 13; the other 3 are described rather than reproduced.
Templates, schemas and fixtures the skill draws on.
Everything else published alongside the skill.