hyperframes-keyframes

Use when a HyperFrames composition needs a punch-in, punch-out, zoom, reframe, Ken Burns treatment, camera move, visual match/whip handoff, or other seek-safe 2D/3D keyframes; also for GSAP, CSS keyframes, Anime.js, WAAPI, FLIP, paths, masks, SVG morph/draw, text trails, 3D depth, or `hyperframes ke

By heygen-com · 296,918 installs

npx skills add heygen-com/hyperframes --skill hyperframes-keyframes

Source repository · Upstream listing

HyperFrames Keyframes Keyframes are a pose contract: visible states, continuous subject identity, seek safe runtime, verified pixels. Use hyperframes animation for broad scene recipes. Use hyperframes cli for full command docs. Use references/keyframe patterns.md only when choosing implementation mechanisms, not visual style. Creator editing boundary Keyframes own visual motion, not clip assembly. Source range hard cuts, trim, splice, and reorder belong to /hyperframes core : author one media element per kept range, place it with data start and data duration , and select its source offset with data media start . Adjacent ranges make a hard cut. A crossfade uses overlapping clips on different tracks plus visual opacity keyframes; sound fades use /hyperframes audio . Creator request Truthful mechanism Punch in / punch out Keyframe scale with x / y or percentage translation on a non timed visual/crop wrapper inside the clip. Use a set/short tween for a hard punch and a tween for a smooth move. Smooth multi state zoom or reframe Keep one subject wrapper alive and author multiple zoom/reframe states as a pose ladder with per segment easing. Pan, reframe, or Ken Burns camera move Animate wrapper translation plus scale. Geometry is authored; this is not face tracking or automatic semantic reframing. Chained camera moves Chain labeled transform beats on one registered seek safe timeline. Match cut or whip pan /hyperframes animation owns the visual handoff; /hyperframes registry supplies primitives; keyframes preserve authored geometry, direction, and velocity. There is no automatic matching frame discovery. Crop and mask reframe Interpolate clip path or a mask on an inner visual wrapper to crop/reframe without changing source time. Polygon keyframes can form a polygon/mask transition. Directional wipe cut or iris/reveal cut Animate a mask/clip boundary across overlapping visual clips; /hyperframes animation owns the handoff choreography. Split screen handoff Keep both visual clips placed by core, then keyframe their inner crop/mask wrappers and divider geometry. Constant source retime /hyperframes core owns normalized data playback rate ( 0.1..5 ) for render safe picture and pitch preserved sound. It is constant for the whole media element. Source speed ramps Not supported: there is no time varying playback rate envelope. Preprocess a derived media asset, then place it through core. Freeze / hold A visual pose, final source frame, or finished sub composition can hold. Arbitrary mid source freeze is not supported; preprocess a still/derived segment, place it as its own clip, then resume with another source range. When editing picture and sound together, load /hyperframes core , this skill for visual motion, and /hyperframes audio for fades, crossfades, volume automation, ducking/carve, or effects on the placed tracks. A visual transition or cropping treatment is not a temporal source trim or splice. /hyperframes core owns the timeline, clip timing, and source ranges; keyframes only animate the visible handoff or crop on wrappers inside those clips. For copyable combined picture/sound recipes, use /hyperframes core → references/creator editing recipes.md . Procedure 1. Identify the animated subject, visible states, final state, and runtime. 2. Choose the smallest mechanism that proves the prompt. Read references/keyframe patterns.md only if the mechanism is unclear. 3. Author seek safe keyframes in the declared runtime. Build synchronously and register the runtime instance. 4. Verify with hyperframes lint , hyperframes check , hyperframes keyframes , one focused shot , and snapshots at proof times. 5. If proof fails, fix the source keyframes and rerun the smallest failing diagnostic before rendering. Contract Name the moving subject. Name the poses needed to prove the intended motion, including the final state. Keyframe visible channels, not hidden helper state. Preserve object identity when continuity matters. Crossfade only when the intended motion is replacement or dissolve. Hold readable or semantic states long enough to see. Final frame is part of the animation, not cleanup. Do not reset to rest unless requested. Do not end on black unless requested. If editing a starter scene, preserve layout, copy, assets, colors, and final state unless asked to redesign. Runtime Rules GSAP: build synchronously at page load use gsap.timeline({ paused: true }) register as window. timelines[compositionId] registry key must match data composition id do not call tl.play() for render critical motion keep repeats finite CSS keyframes: finite duration and iteration count deterministic delay animation fill mode: both use data start when timing belongs to a clip Anime.js: create synchronously autoplay: false finite duration and loops push every instance to window. hfAnime WAAPI: finite duration fill: "both" deterministic construction the text surface does not list WAAPI; verify with shot (it seeks WAAPI) and snapshots Never use for render critical motion: Date.now() performance.now() unseeded Math.random() hover/scroll triggers timers async created timelines unregistered requestAnimationFrame infinite loops GSAP Skeleton Use labels for semantic states. Use position parameters instead of chained delays. Use immediateRender: false for later from() / fromTo() tweens touching the same property. Keyframe Forms Array keyframes: pose ladder with per step duration/ease. Percentage keyframes: exact timing inside one tween. Property arrays: compact multi stop changes. ease: "none" on the parent when each stop carries its own easing. easeEach when every segment should share the same feel. Do not copy numeric distances or timing from examples. Derive them from the actual composition geometry and duration. For one subject moving between two boxes, prefer one continuous transform tween or FLIP. Split x/y/scale into multiple eased keyframes only when the viewer should feel distinct beats; every segment changes velocity and can read as a hitch. Channels Prefer compositor/visual channels: x/y/z , xPercent/yPercent , scale , rotationX/Y/Z , skew , transformOrigin , svgOrigin , opacity , autoAlpha , clip path , masks, CSS vars, SVG path/dash values, camera transforms, shader uniforms. Avoid layout/lifecycle channels: top/left/right/bottom , width/height , margin/padding , display , visibility , late DOM creation, helper overlays doing subject motion. For visibility changes, use autoAlpha on the registered seekable GSAP timeline, or a zero duration tl.set() at an explicit boundary. Target only a non clip element or a wrapper inside the clip; never target .clip itself. Never duration tween raw visibility , and never tween display . Mechanism Choice Choose the smallest mechanism that proves the prompt: Need Mechanism Same subject changes box or hierarchy shared element / FLIP Subject travels a visible route path travel Stroke grows or traces stroke draw Shape becomes another shape shape interpolation Reveal boundary is visible clip, mask, or shader uniform Many items move with order stagger / indexed delay Text itself moves line, word, character, or band subdivision Surface bends, stretches, or crops parent/child counter transform UI has states explicit state machine Scene has depth DOM 3D, Three.js, or WebGL camera/object keyframes Mechanisms can combine, but each one must clarify the idea. Decoration is not proof. Timing Anticipation only when it clarifies cause or direction. Acceleration leaves rest. Peak proof shows the mechanism unmistakably. Follow through sells energy and direction. Overshoot only when the subject should feel elastic or tactile. Constant speed path travel usually needs ease: "none" . Discrete UI states usually need a sharp ease out. Repeated elements need ordered offsets, not identical timing. Final lockups need longer holds than transition poses. Smoothness means continuous velocity on the same subject. Do not overlap tweens that write the same transform property unless the overlap is intentional and verified. Avoid animating large clip path /mask changes while the same hero surface is also scaling or traveling; use nested reveals after the main move settles. Text Preserve line boxes, word spacing, readability, and final fit. If text moves internally, move the glyphs or masked bands, not only decorations around the text. Snapshot readable frames. SVG For stroke growth prefer DrawSVGPlugin , then stroke dasharray / stroke dashoffset . For shape interpolation prefer MorphSVGPlugin ; convert primitives to paths when needed and split complex silhouettes into simpler parts. 3D Scale alone is fake depth. Use perspective on a stable parent, transform style: preserve 3d , z travel, rotation, camera/world motion, occlusion, and layer order when objects cross. Use one or two diagnostic angles that expose the depth relationship. If angled proof shows no depth crossing, improve z/camera/occlusion. Canvas / WebGL Keyframe camera position, camera target, object transform, material opacity, shader uniforms, and postprocess intensity through deterministic state. Render from HyperFrames time. Use ghost because marker boxes cannot see internal canvas motion. CLI Proof Choose <selector for the real animated subject. Choose <times for first frame, proof poses, final minus hold, and exact final. Choose <angle only when depth must be proven. Tool Proves keyframes targets, explicit stops, paths, traces, composed parent/child motion, CSS stops, Anime registration shot ghosts, route shape, time spacing, DOM 3D projection, focused selector proof layout strip in place motion, overlaps, contact, subtle scale/opacity, text waves