Motion · Transition
Glitch-tear strip cut
A tearing transition — glitch-displace noise tear (16 horizontal strips jitter out of alignment, cut mid-jitter), a strip-level tear with digital-glitch meaning.
Source: video-shotcraft (Vincent Wei) ↗ · Apache-2.0 · Remotion composition (React/TSX) — preview video, no in-browser player
When to use
A high-energy page change: digital-glitch/breakage meaning; a strip-level tear that keeps page integrity intact while pushing energy to the max
Intention
This card handles strip-level tearing: the page is sliced into horizontal strips moving at high speed, but each strip's content stays intact. This is a taste boundary drawn through repeated judging — the fragment family of transitions was rejected three times running (doom-melt vertical-strip drop, pixel-dissolve blocks flipping to black, facade-block brick flip-away, all eliminated), while the strip family passed. Fragments read as "the page being destroyed"; strips read as "the page in high-speed motion" — integrity intact, energy maxed out. The horizontal tear: strips jitter out of alignment left-right plus light/dark double-imaging, a grayscale downgrade of digital glitch (light/dark double-image instead of RGB split). Fits system-failure/instant-jump meanings.
Duration & energy
- Duration: Pre-state ≥40f + tear 17–24f + tail ≥40f, ~4.5s (135–140f)
- Energy: High
Shot recipe (original Chinese — timing, easing, parameter table, known pitfalls)
意图
本卡管条带级撕裂——页面被切成横条高速运动,但每条内容完整。 这是反复裁决划出的品味分界:碎块系转场三连否(doom-melt 竖条坠落、 pixel-dissolve 方块翻黑、facade-block 砖块翻飞全部淘汰),条带系过关。碎块读作"页面被破坏",条带读作"页面在高速 运动"——完整性不破、能量却拉满。横向撕:条带左右错位抖动 + 明暗重影,数字故障的灰阶降维(RGB split 改明暗双重影)。 适用系统故障/瞬间跳变语义。
单式选型
| 式 | 做法 | 适用 | |----|------|------| | A glitch-displace | 16 条水平条带(外层裁剪+内层整页 translateY 对位),每条 translateX 由库标 h(i*31+f*7) 驱动 ±70px 抖动,叠明暗错位重影;58f 抖动衰减中硬切 B 页再抖 4f 归位 | 故障/断裂语义;高潮前的暴力换页 |
参数表
| 参数 | 典型值 | 调节手感 | |------|--------|----------| | 抖幅 | ±70px(spec 加码档),底层垫完整页防露底缝 | 峰值帧条带错位必须肉眼明显——±12px 级读不出撕裂 | | 包络 | 45–48f out-cubic 冲起 → 平台 → 56–62f 线性消散 | 冲击判例:扩散 out-cubic、消散线性 | | 重影 | ±12px 明暗双重影(brightness 0.45 / invert) | RGB 分离的灰阶降维;无重影只是抖不是 glitch | | 摘罩 | 62f 起条带、重影、filter 全部条件卸载直出裸 B | opacity 0 不算摘;滤镜残留毁真静止 | | 收尾 | 73f 真静止(≥40f) | R1 |
已知坑
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
首次实战须以真实素材回验
- 条带不碎块——后续同类手法一律做条带:横条各自完整,
绝不裂成方块/砖块/独立坠落物(三连否判例,见意图)
- 高能转场,与 whip-pan/crash 系同片注意能量预算——
高能转场挤在一起互相稀释
- 硬切藏在抖动衰减中(58f 切、62f 归位)——切点暴露在静止帧上
就失去了 glitch 的掩护
参考实现
demos/transition/tear-streak-transitions/ (GlitchDisplace.tsx)
Reference implementation (Remotion)
- demos/transition/tear-streak-transitions/GlitchDisplace.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/transition/tear-streak-transitions/GlitchDisplace.tsx
The component imports shared fixtures from demos/_fixtures and helpers from assets/lib in the repo; SKILL.md there documents the render workflow.
Everything on this page is also machine-readable. Point your agent at the JSON, or add the gimgs MCP server and ask it to search motion templates.
- Fetch the JSON — it holds the shot recipe (timing, easing, parameter table, pitfalls) and the full TSX source.
- Clone the video-shotcraft repo; the component imports shared fixtures from demos/_fixtures and helpers from assets/lib.
- Register the component as a <Composition> in a Remotion project and render with `npx remotion render`, or re-implement the recipe in your own engine.
curl -s https://gimgs.net/motion/tear-streak-transitions.jsongit clone https://github.com/Vincentwei1021/video-shotcraft
# component: demos/transition/tear-streak-transitions/GlitchDisplace.tsx
npx remotion render <CompositionId> out.mp4claude mcp add --transport http gimgs https://gimgs.net/mcp
# then: search_motion_templates / get_motion_template("tear-streak-transitions")Prompt
Use the video-shotcraft shot recipe "Glitch-tear strip cut" (Remotion composition, Apache-2.0) published on gimgs.net. Recipe JSON (prompt = timing/easing/parameter table/pitfalls, files = TSX source): https://gimgs.net/motion/tear-streak-transitions.json Raw TSX: https://gimgs.net/motion/tear-streak-transitions/template.html Repository: https://github.com/Vincentwei1021/video-shotcraft (component: demos/transition/tear-streak-transitions/GlitchDisplace.tsx; imports demos/_fixtures and assets/lib) Spec: 1920x1080, 30 fps, 4.54s 1. Read the JSON and follow its "prompt" section (when to use, intention, parameter table, known pitfalls). 2. Adapt it for: <describe what you want>. 3. Either clone the repo, register the component as a <Composition> in a Remotion project and run npx remotion render <CompositionId> out.mp4 — or re-implement the recipe in your own engine (HTML/WAAPI works: keep the same timing and easing).
// ===== demos/transition/tear-streak-transitions/GlitchDisplace.tsx =====
// glitch-displace|噪声置换撕裂
// FakeDashboard A 播到 45f,45–62f 撕裂转场:页面切 16 条水平条带
// (外层 overflow hidden + 内层整页反向 translateY 对位),每条 translateX
// 由 h(条号*31+f*7) 驱动 ±70px 抖动,幅度包络 0→峰值→0(起势 out-cubic、
// 消散线性,冲击判例)。同时叠 2 份整页明暗错位重影(+12px 暗 / -12px 亮反相,
// opacity ≤0.35,灰阶版代替 RGB 分离)。58f 抖动衰减中硬切 variant="B",
// 再抖 4f 至 62f 归位。62f 起摘罩直出 B(条带/重影全部条件卸载),
// 62–135f 真静止 73f ≥ 40f。帧确定:h() 伪随机,无 Math.random。
import React from 'react';
import { AbsoluteFill, useCurrentFrame, interpolate, Easing } from 'remotion';
import { FakeDashboard, G } from '../../_fixtures/Fixtures';
const STRIPS = 16;
const H = 1080;
const STRIP_H = H / STRIPS; // 67.5
const AMP = 70; // 峰值条带错位(spec 备选加码值,QA 要一眼看到撕裂)
// 库内标准伪随机
const h = (n: number) => {
const s = Math.sin(n * 127.3) * 43758.5453;
return s - Math.floor(s);
};
export const GlitchDisplace: React.FC = () => {
const frame = useCurrentFrame();
const tearing = frame >= 45 && frame < 62;
const variant: 'A' | 'B' = frame >= 58 ? 'B' : 'A';
if (!tearing) {
// 45f 前 A 静置;62f 起 B 摘罩真静止(无 transform / filter / 重影)
return (
<AbsoluteFill style={{ background: G.bg }}>
<FakeDashboard variant={variant} />
</AbsoluteFill>
);
}
// 幅度包络:45–48f out-cubic 冲起 → 平台 → 56–62f 线性消散(帧驱动,确定性)
const rise = interpolate(frame, [45, 48], [0, 1], {
easing: Easing.out(Easing.cubic),
extrapolateLeft: 'clamp',
extrapolateRight: 'clamp',
});
const decay = interpolate(frame, [56, 62], [1, 0], {
extrapolateLeft: 'clamp',
extrapolateRight: 'clamp',
});
const env = Math.min(rise, decay);
return (
<AbsoluteFill style={{ background: G.bg, overflow: 'hidden' }}>
{/* 底垫一份完整页,防条带间横移露底色缝 */}
<AbsoluteFill>
<FakeDashboard variant={variant} />
</AbsoluteFill>
{/* 明暗错位重影(灰阶版 RGB 分离):+12px 压暗 / -12px 反相提亮 */}
<AbsoluteFill
style={{
transform: 'translateX(12px)',
opacity: 0.35 * env,
filter: 'brightness(0.45)',
}}
>
<FakeDashboard variant={variant} />
</AbsoluteFill>
<AbsoluteFill
style={{
transform: 'translateX(-12px)',
opacity: 0.28 * env,
filter: 'invert(1)',
}}
>
<FakeDashboard variant={variant} />
</AbsoluteFill>
{/* 16 条水平条带:外层裁切,内层整页反向 translateY 对位 + 逐帧横向抖动 */}
{Array.from({ length: STRIPS }).map((_, i) => {
const dx = (h(i * 31 + frame * 7) * 2 - 1) * AMP * env;
return (
<div
key={i}
style={{
position: 'absolute',
top: i * STRIP_H,
left: 0,
width: 1920,
height: STRIP_H,
overflow: 'hidden',
}}
>
<div
style={{
width: 1920,
height: H,
transform: `translate(${dx.toFixed(2)}px, ${-i * STRIP_H}px)`,
}}
>
<FakeDashboard variant={variant} />
</div>
</div>
);
})}
</AbsoluteFill>
);
};
- Read the recipePrompt = when to use, intention, parameter table with typical values and how each one feels, known pitfalls. Treat values as calibrated starting points.
- Get the codetool: git
git clone https://github.com/Vincentwei1021/video-shotcraft && cd video-shotcraft && npm install - Register + rendertool: remotion
npx remotion render <CompositionId> out.mp4 # component: demos/transition/tear-streak-transitions/GlitchDisplace.tsx - Or re-implementPort the timing/easing from the recipe to HTML + WAAPI (gimgs motion contract) or any engine; keep the same segment windows and easing.
| param | type | default | description |
|---|---|---|---|
| — | |||
More in this category

White flash: logo simplifies
A colorful liquid-gradient wordmark holds with flowing light, then the frame flashes white and overexposes; a flat wordmark fades in on white and settles — one flash completes the downgrade to simplicity.

Geometric wipe transitions
Two geometric wipe transitions — clock-wipe, a radar-hand sweep changing the page, and blinds-slice, 12 vertical strips flipping in staggered waves.

Hidden-cut transitions
Three hidden-cut transitions — foreground occlusion invisible cut, versus-slam opener, and warm light-leak burn; the hard cut hides inside 1-3 frames of occlusion/impact/light peak, so the viewer never sees the scissors.

Travel-through transitions
Two travel-through transitions — shared-element homecoming and letter-cavity pass-through; the camera drills through a real element inside the frame to complete the scene change.