ai21.net
语言

<inputs>

演示视频

<inputs> — 1

提示词

<inputs>
Ask me for: a one-word product name for the wordmark, one accent color, and a royalty-free track around 120 BPM (e.g. Mixkit, free for commercial use).
</inputs>

<direction>
Product-launch UI motion in one continuous take. One shape tells the whole story: a prompt bar becomes a button, the button becomes a progress ring, the ring becomes a preview window, the window fills the screen, then shrinks into a toast and back into the prompt bar. No cuts, no fades between scenes: objects transform. A cursor triggers every change with real clicks. Warm off-white canvas, black UI, one accent color, Inter for UI and the wordmark. Springs everywhere with only a slight overshoot. Zoom the camera so each moment fills the square.
Banned: crossfades, gradients on UI, particles, glows, bouncy easing, dead beats, anything that feels like a template.
</direction>

<structure>
120 BPM, 24 beats, something happens on every beat.
Type the request into the prompt bar → click send → the bar collapses into a black circle → a progress ring fills in four steps while four chips spring out (concept, storyboard, motion, sound) → the chips fly into a timeline and the circle becomes a preview window → a playhead sweeps the clips → inside the preview an orbit draws itself, a planet starts moving and the wordmark rises letter by letter from a mask line → the preview fills the screen → the letters drop away, the planet flies into a toast and becomes its checkmark → "Rendered in code · 60 fps" → the toast turns back into an empty prompt bar. Last frame = first frame.
</structure>

<build>
1. One HTML file with a 1440x1440 canvas. Draw everything inside seek(t): no CSS transitions, timers or state carried between frames.
2. Use closed-form spring step responses. When a value changes target several times, add one spring per change so it stays a pure function of time.
3. The main shape is one rounded rect whose width, height, radius, position and color are each a chain of springs.
4. Typing is derived from time: characters shown = floor(progress × length), with a caret that blinks only when idle.
5. Find the beat grid of the track, start on a downbeat and place every click, pop and chime on its measured peak.
6. Render with Playwright at 60 fps, then encode H.264 CRF 16 and loudnorm to -14 LUFS.
7. Render one still per beat first. Fix anything cramped, off-grid or hard to read before the full render.
</build>

<gotchas>
Text inside a morphing shape needs its own clip and separate enter/exit timing. Text swaps need their own fade so they never overlap. The cursor must end at the exact position it started, or the loop will stutter.
</gotchas>

中文译文

<inputs>
请向我询问:用于字标的一个单词产品名、一种强调色,以及一首约 120 BPM 的免版税曲目(例如 Mixkit,可免费商用)。
</inputs>

<direction>
一镜到底的产品发布 UI 动效。一个形状讲述整个故事:一个提示词栏变成一个按钮,按钮变成一个进度环,进度环变成一个预览窗口,窗口充满屏幕,然后收缩成一个 toast,再变回提示词栏。没有剪辑,场景之间没有淡入淡出:物体通过变形转换。一个光标通过真实的点击触发每一次变化。温暖的米白色画布、黑色 UI、一种强调色,UI 和字标使用 Inter。到处都用弹簧,只有轻微的过冲。缩放摄像机,使每一刻都充满正方形画面。
禁止:交叉淡化、UI 上的渐变、粒子、辉光、弹性缓动、空拍,以及任何感觉像模板的东西。
</direction>

<structure>
120 BPM,24 拍,每一拍都有事情发生。
把请求输入提示词栏 → 点击发送 → 提示词栏收拢成一个黑色圆形 → 一个进度环分四步填充,同时四个标签块弹出(概念、分镜、动效、声音)→ 这些标签块飞入时间线,圆形变成一个预览窗口 → 播放头扫过这些片段 → 在预览画面中,一条轨道自行绘制出来,一颗行星开始移动,字标从一条遮罩线后逐字母升起 → 预览充满屏幕 → 字母落下消失,行星飞入一个 toast 并变成它的对勾 → "Rendered in code · 60 fps" → toast 变回一个空的提示词栏。最后一帧 = 第一帧。
</structure>

<build>
1. 一个 HTML 文件,带有 1440x1440 的画布。在 seek(t) 内绘制一切:不使用 CSS 过渡、定时器,也不在帧之间携带状态。
2. 使用闭式弹簧阶跃响应。当一个值多次改变目标时,每次变化叠加一个弹簧,使其始终是时间的纯函数。
3. 主体形状是一个圆角矩形,其宽度、高度、圆角半径、位置和颜色各自是一串弹簧。
4. 打字效果由时间推导:显示的字符数 = floor(progress × length),插入符仅在空闲时闪烁。
5. 找出曲目的节拍网格,从强拍开始,将每一次点击、弹出和提示音放在其实测峰值上。
6. 用 Playwright 以 60 fps 渲染,然后编码为 H.264 CRF 16,并用 loudnorm 归一化到 -14 LUFS。
7. 先按每一拍渲染一张静帧。在完整渲染前,修正任何拥挤、偏离网格或难以阅读的地方。
</build>

<gotchas>
变形形状内部的文字需要自己的裁剪区域和独立的进入/退出时间。文字切换需要各自的淡入淡出,以免重叠。光标必须结束在它开始时的精确位置,否则循环会卡顿。
</gotchas>

溯源

原作者
0xnicc0
发布日期
2026-10-05(由推文 ID 反解)
原始出处
查看原帖 ↗
收录来源
yihui-dev/awesome-opus5-5-videos · 0xnicc0-516612 · MIT