# Scramble decode vs letter drop

Two title-entrance moves — scramble-decode (an answer grows out of noise) and letter-drop-physics (letters drop with gravity, bounce, and settle), picked by tone.

- Category: typography · Tags: shotcraft, remotion, typography
- Spec: 1920×1080 @ 30 fps · 4.39s (16:9)
- License: Apache-2.0 · Tier: free
- JSON: https://gimgs.net/motion/type-entrance-moves.json
- Kind: remotion
- Source (TSX): https://gimgs.net/motion/type-entrance-moves/template.html
- Repo: https://github.com/Vincentwei1021/video-shotcraft
- Credits: video-shotcraft (Vincent Wei) — https://github.com/Vincentwei1021/video-shotcraft
- Page: https://gimgs.net/motion/type-entrance-moves.html

## Params

_No params._

Default params (base64url for `?p=`): `e30`

## Prompt

## When to use

Big-title/chapter text-card entrances; mutually exclusive with split-flap-title (mechanical flip) and document-typewriter-reveal (typewriter) in the same category

## Intention

Title entrances already have the typewriter (a steady, document feel) and the split-flap board (a mechanical-ceremony feel) — these two styles fill in two more personalities: A is a terminal-hacker feel — every letter starts as a burst of noise, "decoding" one by one from left to right as the viewer watches the answer grow out of the garble, good for a confident reveal on tech products; B is physical-comedy feel — letters drop from above, hit the ground, bounce and wobble upright, then snap together into formation on the final beat, good for a light-toned icebreaker opener. At most 2 of the four title-entrance moves per film (P4).

## Duration & energy

- Duration: Single style 4–5s (including hold and still close; action segment A ~66f / B ~106f)
- Energy: Medium-high (A leans rational and driving, B leans physical and playful)

## Shot recipe (original Chinese — timing, easing, parameter table, known pitfalls)

## 意图
标题入场库内已有打字机（沉稳文档感）和翻牌屏（机械仪式感），这两式补
另外两种性格：A 是终端黑客感——字符先是一片高速噪声，从左到右逐个
"解码"锁定，观众看着答案从乱码里长出来，适合技术产品的自信亮相；
B 是物理喜剧感——字符从天而降、砸地弹跳、歪歪扭扭站定，最后一拍
集体立正归位，适合轻松调性的开场破冰。四种标题入场同片 ≤2 种（P4）。

## 两式选型
| 式 | 做法 | 适用 |
|----|------|------|
| A scramble-decode 乱码解码 | 全员字符高速跳乱码 hold，随后从左到右逐个锁定真字符，锁定瞬间反色闪 2f，底部进度条同步推进 | 技术/开发者产品；"答案浮出"的理性推进感 |
| B letter-drop-physics 字符坠落 | 字符错峰从顶砸落，重力加速+两次衰减弹跳+落地歪斜站定，最后一拍全体齐整回正 | 轻松调性开场；"活物感"的标题破冰 |

## 参数表
| 参数 | 典型值 | 调节手感 |
|------|--------|----------|
| A 乱码期 | 0–20f 全员每 2f 跳一个随机字符（字符集 A–F/0–9/#$%&），字色 G.mid | 必须用等宽字体 + 固定 1ch 槽宽，比例字体每跳一下整行抖动 |
| A 解码节拍 | 第 i 字符帧 20+i×6 锁定为真字符转深色；锁定后前 2f 反色闪（深底白字） | 6f/字是"逐个可辨"的下限；上限 10f，再慢读作卡住 |
| A 伪随机 | `CHARSET[floor(h(i*101+floor(f/2)*7+13)*len)]`，h = sin hash | 严禁 Math.random——跳动必须随帧确定，否则渲染不可复现 |
| B 坠落 | 第 i 字符帧 10+i×5 起跳；y = −DROP + DROP·(t/24)²（重力）→ 4u(1−u) 抛物线弹跳 30% → 二跳 9% | 弹跳衰减比 30%/9% 是"有弹性但不闹"的甜点；三跳以上读作果冻 |
| B 歪斜 | 落地瞬间 rotate 到 seed hash ±6° 并保持 | 歪角是"物理感"的一半；全体笔直落地读作普通位移入场 |
| B 归位一拍 | 全员落定后（如帧 110）6f ease-out 集体 rotate→0 + scale 1.06→1 | 集体归位是句号——错峰归位会把"立正"的仪式感拆散 |
| 收尾 | 两式动作完毕真静止 ≥20f | R1：静止期所有属性锁死（含 B 的歪角归零后） |

## 已知坑
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿，
  首次实战须以真实素材回验
- A 式是声音强依赖候选位：锁定的"嗒"声逐字钉帧（sound-design §4.5）
  会让解码感翻倍；B 式落地砸声同理，无声版两式都还成立但少一半劲
- A 式字符集别混入与真字符太像的字形（如 O/0 连跳）——观众会误判已锁定
- B 式字符间不做真实碰撞（demo 为各字符独立轨迹）——字距排开即可；
  想要"互相撞歪"需预烘焙轨迹，成本高收益薄
- 标题入场品类已四式（本卡两式 + split-flap-title + document-typewriter-reveal），
  同片 ≤2 种，且都自带高注意力——别和其他高能量入场同帧抢戏

## 参考实现
demos/typography/type-entrance-moves/
（LetterDropPhysics.tsx / ScrambleDecode.tsx）

## Reference implementation (Remotion)

- demos/typography/type-entrance-moves/LetterDropPhysics.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/typography/type-entrance-moves/LetterDropPhysics.tsx
- demos/typography/type-entrance-moves/ScrambleDecode.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/typography/type-entrance-moves/ScrambleDecode.tsx

The component imports shared fixtures from `demos/_fixtures` and helpers from `assets/lib` in the repo; SKILL.md there documents the render workflow.


## Flow

1. **Read the recipe**
   Prompt = when to use, intention, parameter table with typical values and how each one feels, known pitfalls. Treat values as calibrated starting points.
2. **Get the code** — tool: git
   `git clone https://github.com/Vincentwei1021/video-shotcraft && cd video-shotcraft && npm install`
3. **Register + render** — tool: remotion
   `npx remotion render <CompositionId> out.mp4   # component: demos/typography/type-entrance-moves/LetterDropPhysics.tsx, demos/typography/type-entrance-moves/ScrambleDecode.tsx`
4. **Or re-implement**
   Port the timing/easing from the recipe to HTML + WAAPI (gimgs motion contract) or any engine; keep the same segment windows and easing.

## Render

Clone https://github.com/Vincentwei1021/video-shotcraft (npm install). The component lives under demos/{category}/{name}/ and imports shared fixtures from demos/_fixtures and helpers from assets/lib. Copy it (with those imports) into a Remotion project, register a <Composition> with the template's width/height/fps/duration in Root.tsx, then `npx remotion render <CompositionId> out.mp4`. SKILL.md in the repo documents the full Claude Code / Codex workflow. The prompt below is the shot recipe (timing, easing, parameter table, pitfalls) — enough to re-implement the shot in HTML/WAAPI or another engine if you prefer.

## Contract

React/Remotion composition (TSX) from the open-source video-shotcraft library (Apache-2.0). It is not a browser-playable template: clone the repo, register the component in a Remotion project and render with `npx remotion render`. The recipe (prompt) describes timing, easing and parameters so you can also re-implement the shot in any engine.
