Files
hyperframes/skills/hyperframes-animation/blueprints/overwhelm-surround.md
T
WaterrrForever 853256403b feat(skills): c2v mining pass — 7 new blueprints, 10 new rules, compacted recipe corpus (#2680)
* feat(skills): c2v mining pass over animation blueprints and rules

Compacts ~45 existing animation rules/blueprints into tighter recipe form
(net -3.4k lines) and adds 17 mined from the c2v corpus:

- 7 blueprints: agent-progress-theater, camera-journey, fixed-anchor-cycle,
  panel-edit-live-sync, prompt-type-submit-generate,
  transcript-scroll-artifact-reveal, zoom-out-workspace-reveal
- 10 rules: 3d-camera-flight, anchored-layout-expand, chart-scrub-readout,
  chromatic-glitch, control-target-sync, cursor-drag, gradient-text-sweep,
  multi-cursor-choreography, particle-burst, theme-crossfade-morph






Both indexes updated.

* feat(skills): sync product-launch script bank with mined blueprint roles

The role->blueprint script bank in product-launch-video/story-design.md is
kept 1:1 with blueprints-index role declarations, which the c2v mining pass
expanded. Adds the 25 missing entries (script-shape descriptor + example
lines + pattern): 13 for the 7 new blueprints, 12 for role widenings on 7
existing ones (cursor-ui-demo, dataviz-countup, titlecard-reveal, et al.),
and states the 1:1 sync contract in the bank's intro.

* docs(skills): cover constellation-hub scatter-drift variant in the script bank

Review follow-up on #2680: the SOCIAL_PROOF constellation-hub entry
patterned only the orbit shape; the c2v pass added a scatter-drift
end-card variant with the opposite geometry (no hub, no ring). Adds an
example line and extends the pattern so a scatter-drift beat's VO isn't
steered toward the orbit shape.
2026-07-21 17:28:55 +08:00

6.0 KiB
Raw Blame History

overwhelm-surround — Overwhelm / Close-In

intent: Convey overwhelm by accumulation. Recognizable subjects assemble, density markers scatter in to amplify "look how much," then the central subject morphs into the viewer's own avatar and elements close in from ALL sides — the frame feels surrounded, not zoomed-into. The emotional arc is recognition → claustrophobia.

roles served

  • Problem (from problem-mockup-overwhelm): when the problem beat must first show "too many tools / too much surface area" and then put the viewer inside it — a literal swap of subject (product → person) followed by a closing-in that feels invasive. Reach for it when the pain is "you're buried," not "this metric is bad" (that's dataviz-countup).
  • Problem (from desktop-clutter-accumulation): when the overwhelm is a workspace, not a tool count — live windows, stickies, and alert toasts pile up until the frame is chaotically full, and the beat resolves not by closing in but by shoving the clutter aside and asking the question. Reach for this variant when the pain lands on words ("how can you X… when you spend months on Y?"), not on a surrounded avatar.

duration: 69s (clutter-shove-to-question variant ~10s)

shot structure (a [bg] canvas; recognizable surfaces first, the viewer's avatar revealed underneath, then a radial crowd)

  • Scene 1 (0.0~1.6s) — recognizable assembly. Three [product mockups / surfaces] assemble into something the viewer knows — staggered scale-in, the center one full-size, the two flanks smaller (~0.86). Each rides a low-amplitude float so they feel like live context, not a static collage. Camera static.
  • Scene 2 (~1.63.0s) — density amplifies. [platform icons / logos] scatter in around the mockups (staggered), used purely as density markers — "look how much surface area," not animated dials.
  • Scene 3 (~3.04.6s) — the morph (signature move). The CENTER mockup MORPHS: its content fades out, the container reshapes, and the viewer's [avatar] is revealed underneath — a literal swap of subject, product → person.
  • Scene 4 (~4.6end) — close-in. [task bubbles / demands] close in from ALL sides toward the avatar (radial staggered entry). The avatar stays put while the bubbles invade — the claustrophobia comes from being surrounded, never from a camera push. Holds on the crowded state.
  • Variant — clutter-shove-to-question (replaces Scenes 34 and inverts the camera contract — see modifier): accumulation runs under a slow steady zoom-out[sticky notes] bounce in springy, [dashboard / editor windows] pop and slide up, a stack of [alert toasts] slides in at one edge, inner content keeps typing / log-scrolling as live density, windows overlap until the frame is chaotically full. The camera then REVERSES into a quick push-in that shoves the clutter to the frame edges, opening central negative space where a [two-part serif question] builds word-by-word (line 1 swaps in place to line 2); a [cursor] glides in from off-frame and comes to rest under the text; a very slow forward creep and hold. No morph, no avatar — the question is the payoff.

motion vocabulary: staggered scale-in assembly; resting-scale-preserving low float; density-marker icon scatter; content-fade → container-reshape → reveal-anchor-beneath morph; radial close-in entry from all compass points; held crowded end-state. Clutter-shove variant: slow steady zoom-out under accumulation; reverse quick push-in; clutter shoved to frame edges opening center negative space; continuous live typing / log scroll inside windows as ambient density; toast-stack slide-in; word-by-word serif build with in-place line swap; cursor glide-to-rest; very slow forward creep + hold.

rule mapping

  • staggered mockup + icon entries (smooth settle onto their resting scale) → spring-pop-entrance (smooth-settle register) backed by gsap-effects
  • platform icons as density markers (positions pre-baked, scale/opacity only — NOT internal-parts animation) → svg-icon-enrichment (its DOM contract only)
  • center mockup → avatar morph (HF forbids width/height tweens → drive the reshape on scaleX/scaleY, anchor = the avatar layer rendered beneath) → card-morph-anchor
  • radial bubble close-in (positions baked once via cos/sin, staggered entry) → gsap-effects (radial layout) + spring-pop-entrance (per-bubble arrival)
  • low-amplitude float on background mockups/icons → sine-wave-loop (low-amplitude register — subtle jitter that composes onto each element's resting scale, never a fromTo yoyo that re-tweens to its start)
  • (variant) zoom-out under accumulation → quick push-in → slow forward creep → multi-phase-camera (pull-back / push / drift as sequential phases on one world wrapper; counter-translate math in viewport-change)
  • (variant) clutter shoved to the edges as the push-in lands → center-outward-expansion (outward vectors to edge resting positions), fired at the same timeline position as the camera push so the shove reads as CAUSED by it (reactive-displacement register)
  • (variant) word-by-word serif question build → gsap-effects (staggered word reveal); the in-place line-1 → line-2 swap → discrete-text-sequence
  • (variant) live typing inside windows → gsap-effects (typewriter); the continuous inner log-scroll — composition: looping content translateY via gsap-effects (masked)
  • (variant) cursor glide-in coming to rest → cursor-click-ripple (approach portion only — no click)

camera modifier: camera-static — the close-in must read as the world crowding the subject, so the frame holds; a push-in would convert "surrounded" into "zoomed-into" and kill the claustrophobia. The clutter-shove-to-question variant is the sanctioned exception: there the camera IS the storyteller (zoom-out ↔ push-in via multi-phase-camera), and the claustrophobia comes from accumulation, not surround — never mix the two resolutions in one shot.