mcpField
C
canopy-part-title

canopy-part-title

github.com/heygen-comCreative & media74.7k10.5k installsUpdated today
Repository

About canopy-part-title

A Hyperframes composition skill for a leaf-canopy title reveal, with adjustable typography, leaf motion, and retained-leaf breeze. It is suited to creating a short, time-seekable headline animation.

Key features

  1. 01Leaf canopy parts to reveal headlines
  2. 02Second leaf sweep passes the camera
  3. 03Adjustable typography and leaf motion
  4. 04Retained leaves move in a breeze
  5. 0512-second, 1080p composition

Use cases

  1. 01Create a botanical title reveal
  2. 02Animate sequential headlines
  3. 03Tune typography and leaf-sweep timing

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/heygen-com/hyperframes --skill canopy-part-title

After installing, type/canopy-part-titlein Claude Code to confirm it loaded.

Bundled filescanopy-part-title.htmlregistry-item.json

Details

From the project README

Canopy Part Title

A dense canopy of textured leaves sweeps across the frame with shallow depth of field, then parts to uncover the first headline; a second, depth-lifted batch carries the second headline past the camera. A handful of leaves stay behind on the type and keep a light breeze. Font, weight, size, letter spacing, leaf counts, sweep speed and the retained-leaf breeze are variables.

Composition id: canopy-part-title. Duration 12 s at 30 fps, 1920×1080.

Files

  • canopy-part-title.html (57 KB)
  • assets/leaf-surface-color.webp (64 KB)
  • assets/leaf-surface-normal.webp (136 KB)

Install

Install with npx hyperframes add canopy-part-title; by default the files above land under compositions/canopy-part-title/. Then mount the block from the host index.html:

<div
  data-composition-id="canopy-part-title"
  data-composition-src="compositions/canopy-part-title/canopy-part-title.html"
  data-start="0"
  data-duration="12"
  data-track-index="1"
  data-width="1920"
  data-height="1080"
></div>

Render with custom values by targeting the composition file directly:

npx --yes [email protected] render 'compositions/canopy-part-title/canopy-part-title.html' --variables '{"headline1":"Understory","headline2":"Move slowly"}'

Variables

Read at runtime via window.__hyperframes.getVariables(); declared on the composition root as data-composition-variables (single-quoted attribute, plain JSON).

idtypedefaultlabel / range
headline1string"Understory"Headline 1
headline2string"Move slowly"Headline 2
fontstring"Helvetica"Headline font
fontWeightnumber900Font weight 100–900 step 100
fontSizenumber1Font size (1 = auto-fit) 0.3–2 step 0.01
letterSpacingnumber0.01Letter spacing (em) -0.2–1 step 0.01
backgroundcolor"#020805"Background
leafCountnumber170Leaves per sweep 40–320 step 1
stayCountnumber5Leaves left behind 0–20 step 1
sweepSpeednumber1Sweep speed 0.3–3 step 0.05
retainedBreezenumber1Retained leaf breeze 0–2 step 0.05

Runtime contract

  • One paused GSAP timeline registered as window.__timelines["canopy-part-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.170.0, GSAP 3.14.2, Canvas 2D, Post-processing, Seeded PRNG, Shadow maps. 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]/build/three.module.js, https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/postprocessing/EffectComposer.js, https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/postprocessing/RenderPass.js, https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/postprocessing/BokehPass.js.
  • Web fonts from Google Fonts: Gelasio.

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.

Comments

Markdown supported