wireframe-portal-title — Claude Code skill: install
This skill creates an animated 3D title that breaks through a wireframe portal and changes into a second phrase. Use it for configurable HyperFrames compositions.
npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a claude-codeWhat wireframe-portal-title does
The skill adds a HyperFrames composition where extruded wireframe letters emerge through a portal burst, then transform into a replacement phrase. Whole-word wrapping and automatic type sizing handle the second phrase, while variables control transition duration, easing, letter glitch, depth fog, accent color, and burst chaos.
The package includes the composition HTML file and local Geist fonts. The frame is 1920×1080 and runs for 8 s. Runtime pieces include three.js 0.181.2, GSAP 3.14.2, Canvas 2D, GLSL shaders, post-processing, and Clipper; these dependencies load during execution. A live instance uses roughly 350 MB, so run one at a time. Check the project memory budget before adding the block.
What it helps with
- create a wireframe title intro
- swap one phrase into another
- tune portal burst chaos and letter glitch
- add depth fog and a custom accent
Example prompts for the agent
- Create the HyperFrames composition `wireframe-portal-title` with `title` set to `BREAKTHROUGH` and `replacementPhrase` set to `Lets do this sir!`.
- Mount `wireframe-portal-title.html` from `index.html` at `1920×1080`.
- Render `compositions/wireframe-portal-title/wireframe-portal-title.html` with custom `title`, `replacementPhrase`, and `accent` variables.
How to install wireframe-portal-title
1Skills CLI (Vercel)
npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a claude-code2Manually: put the files in place
~/.claude/skills/wireframe-portal-title/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/wireframe-portal-title/
1Skills CLI (Vercel)
npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a codex2Manually: put the files in place
.agents/skills/wireframe-portal-title/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a cursor2Manually: put the files in place
.cursor/skills/wireframe-portal-title/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install heygen-com/hyperframes wireframe-portal-title2Manually: put the files in place
.github/skills/wireframe-portal-title/SKILL.md1Skills CLI (Vercel)
npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a gemini-cli2Platform CLI
gemini skills install https://github.com/heygen-com/hyperframes --path registry/blocks/wireframe-portal-titleManually: put the files in place
.devin/skills/wireframe-portal-title/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set14
The whole set →Similar
Questions about wireframe-portal-title
How do I install wireframe-portal-title in Claude Code?
Run npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a claude-code, then run npx skills add heygen-com/hyperframes --skill wireframe-portal-title -a claude-code again. The skill file is available at ~/.claude/skills/wireframe-portal-title/SKILL.md.
What does wireframe-portal-title do?
It adds a HyperFrames block with extruded wireframe letters. A title appears through a portal burst and then changes into a second phrase, with composition variables for text, color, timing, fog, and other animation settings.
What does wireframe-portal-title require at runtime?
The composition uses three.js 0.181.2, GSAP 3.14.2, Canvas 2D, GLSL shaders, post-processing, and Clipper, plus local Geist fonts. A live instance uses roughly 350 MB, so the block should run one at a time.
Source text
SKILL.md · Apache-2.0
--- name: wireframe-portal-title description: A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables. --- # Wireframe Portal Title 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. ## Files - `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 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`: ```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: ```sh npx --yes [email protected] render 'compositions/wireframe-portal-title/wireframe-portal-title.html' --variables '{"title":"BREAKTHROUGH","replacementPhrase":"Lets do this sir!"}' ``` ## Variables 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 | ## Runtime contract - One paused GSAP timeline registered as `window.__timelines["wireframe-portal-title"]`. - Re-syncs on the `hf-seek` CustomEvent; every frame is a closed-form function of time (seeded PRNG only, no rAF loops, no Date.now). - Renderer: three.js 0.181.2, GSAP 3.14.2, Canvas 2D, GLSL shaders, Post-processing, Seeded PRNG, Clipper. Budget roughly 350 MB per live instance; run one at a time. - External runtime dependencies: `https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js`, `https://cdn.jsdelivr.net/npm/[email protected]/clipper.js`, `https://cdn.jsdelivr.net/npm/[email protected]/build/three.module.js`, `https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/`. - Local fonts: assets/fonts/Geist-Regular.ttf, assets/fonts/Geist-SemiBold.ttf, assets/fonts/Geist-Bold.ttf. ## Editing rules (from the source project) 1. Keep `data-composition-variables` a single-quoted attribute with plain `"` JSON. Never save it through Studio's Design panel. 2. Do not put `<canvas>` in static markup; create it at runtime. 3. Keep every visual state a function of t; seek-safety is what makes the block renderable.
© heygen-com · Apache-2.0 · heygen-com/hyperframes