Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ effort 管 agent 自己查得多细,导演模式管人拍板哪些事,两个
| 用户想要 | 读 | 首选引擎 | 案例 |
|---|---|---|---|
| 数学、物理、算法的原理讲解,3b1b 风格 | `video-types/01-math-science-explainer.md` | Manim CE | `showcase/03-math-fourier/`、`cases/explainer-code2video.md`、`cases/opus55-gallery.md` 第 7 节(抽象代数宣传片深读) |
| 知识科普短视频,竖屏或横屏(抖音、B站、小红书、视频号、Shorts) | `video-types/02-knowledge-short.md` | HyperFrames | `showcase/02-short-leo-doppler/`、`cases/explainer-interstellar-blackhole.md` |
| 知识科普短视频,竖屏或横屏(抖音、B站、小红书、视频号、Shorts) | `video-types/02-knowledge-short.md` | HyperFrames | `showcase/02-short-leo-doppler/`、`cases/explainer-interstellar-blackhole.md`、`cases/douyin-vibe-knowledge.md` |
| 产品宣传、发布片、App 或 SaaS 介绍、功能演示 | `video-types/03-product-promo.md` | HyperFrames | `showcase/00-promo-launch-film/`、`showcase/04-intro-film/`(Blender 星河开场 + 一镜到底 3D + 代码作曲)、`cases/promo-hyperframes-launches.md` |
| 歌词视频、MV、配合音乐的动画 | `video-types/04-lyric-music-video.md` | ClaudeAnimationBase(手绘)或 HyperFrames(排版) | `cases/mv-pdoom.md`、`cases/mv-functional-emotions.md`、`cases/mv-claude-pop.md` |
| 数据故事、动画图表、数字可视化 | `video-types/05-data-story.md` | HyperFrames + SVG | — |
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,29 @@

## Unreleased

**Docs: a Douyin case study, a landscape variant for knowledge films, and two ideation prompts**
- Why: of ten AI-made Douyin films (nine posted in late September 2026, most tagged #vibe知识大赏), the four most-liked (148k–667k likes) are all 16:9 and 2.5–5 min long. Type 02 had described 30–90 s vertical films as the main case; Douyin landscape films appeared only in `cases/oneshot-five.md`.
- `cases/douyin-vibe-knowledge.md` covers the ten films: post date, likes (a 10-04 snapshot), length, frame and opening. It also records:
- a few things the top four share, each marked with which films do it;
- caption sizes measured on two of them (about 42–56 px at 1080p, around the `desktop` floor);
- one account's 15 films in a week (likes 2,246–427,108, not counting one posted that day);
- two films on the same topic (the 37% rule).
The case is linked from `cases/README.md`, type 02 and the CLAUDE.md route table.
- `video-types/02-knowledge-short.md` adds a "Douyin landscape mid-length" variant:
- start it with `bin/vh new short <slug> --aspect 16:9`;
- body text and captions at the `desktop` floor; the variant says why this departs from playbook/01's "landscape on Douyin = feed", that viewers going full screen is an inference, and when to use `--watch feed` instead;
- hook text at the `feed` floor as an option;
- 2–5 min, laid out with playbook/09's beat sheet;
- notes on captions, post copy and series titles.
The platform table also notes that landscape exists on Douyin. playbook/01 points to the variant.
- `playbook/12-ideation.md`: two new rows in the prompt table ("find a historical scene" to carry the concept; "hand it back to the viewer" at the end), plus a real pair of films on the same topic.
- `playbook/07-reverse-engineer.md`: how to get Douyin frames without logging in:
- resolve the short link to an id, which also gives the post time;
- the mobile share page's description has the caption, the date and the like count;
- the `playwm` URL plays as a bare media file;
- the creator's post-list request that the page makes gives every film's likes and length.
Also added: getting 1080p frames from X, measuring caption size against the §4 floors, and opening your own browser tab when other agents share the browser.

**The review desk: tick, comment and submit in a page, and the agent carries on by itself (`bin/vh desk`)**
- Why: reviewing a film's first gate through the static pages, the maintainer found the outline, captions and stages hard to read (some were raw `.md` links), had no way to tick or comment in place, had to reply in chat with codes like "1 S1", and got a new one-off page every time. A prototype desk fixed that, and after two real rounds in it: "返回还是要手动给你触发,我觉得可以加一个监控", the outline should be split by content, not by 起承转合, reuse needs a basic infrastructure, and the desk belongs to `studio`, in Chinese or English by the first request.
- `tools/desk/` (stdlib Python, offline, no CDN, light and dark): `bin/vh desk <project> [--port N]` serves one project on 127.0.0.1 (the first free port of 8780–8799; a second start prints the running one's address). Ten views read fresh from the project's own files: this round (decisions with options, least sure, decided for you), concept and outline (a time bar by segment), captions or narration (grouped by segment, term chips, a rough reading speed), the storyboard synced to its video, sound (sections named from the gate JSON, listen prompts, timecoded notes), fact check, the film with timecoded notes (C key), the decision ledger, history, and every doc rendered as text. Any item can be marked ok / change / question with a line and a "change to"; a tray collects them and submits once.
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ effort 管 agent 自己查得多细,导演模式管人拍板哪些事,两个
| 用户想要 | 读 | 首选引擎 | 案例 |
|---|---|---|---|
| 数学、物理、算法的原理讲解,3b1b 风格 | `video-types/01-math-science-explainer.md` | Manim CE | `showcase/03-math-fourier/`、`cases/explainer-code2video.md`、`cases/opus55-gallery.md` 第 7 节(抽象代数宣传片深读) |
| 知识科普短视频,竖屏或横屏(抖音、B站、小红书、视频号、Shorts) | `video-types/02-knowledge-short.md` | HyperFrames | `showcase/02-short-leo-doppler/`、`cases/explainer-interstellar-blackhole.md` |
| 知识科普短视频,竖屏或横屏(抖音、B站、小红书、视频号、Shorts) | `video-types/02-knowledge-short.md` | HyperFrames | `showcase/02-short-leo-doppler/`、`cases/explainer-interstellar-blackhole.md`、`cases/douyin-vibe-knowledge.md` |
| 产品宣传、发布片、App 或 SaaS 介绍、功能演示 | `video-types/03-product-promo.md` | HyperFrames | `showcase/00-promo-launch-film/`、`showcase/04-intro-film/`(Blender 星河开场 + 一镜到底 3D + 代码作曲)、`cases/promo-hyperframes-launches.md` |
| 歌词视频、MV、配合音乐的动画 | `video-types/04-lyric-music-video.md` | ClaudeAnimationBase(手绘)或 HyperFrames(排版) | `cases/mv-pdoom.md`、`cases/mv-functional-emotions.md`、`cases/mv-claude-pop.md` |
| 数据故事、动画图表、数字可视化 | `video-types/05-data-story.md` | HyperFrames + SVG | — |
Expand Down
2 changes: 2 additions & 0 deletions cases/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
| [community-prompts.md](community-prompts.md):社区公开的 prompt | 各类 | 各类 | 二手合集 | 成功 prompt 的八个共同点 |
| [opus55-gallery.md](opus55-gallery.md):Opus 5.5 社区代码视频精选 | 各类,另有 3D 长片深读 | 各类;Austerlitz 为 WebGL2 | `awesome-opus5-5-videos/`、`opus55-catalog-zhuyansen/`、`Battle-of-Austerlitz-Film/`(均无 license,只读) | 389 支作品的 prompt 统计和精选;Austerlitz 用旁白实测时长驱动镜头,从画面推导音效 |
| [oneshot-five.md](oneshot-five.md):五支社区代码视频(3 秒钟、我眼中的你、用做法讲做法、FunTech、Mirage) | 科普、肖像、自我介绍、showreel、发布片 | 未公开(推测为 HTML/WebGL,FunTech 混有生成素材) | 无 | 立意装置先于风格;具体的数字和原话;和我们口味规则的出入 |
| [douyin-vibe-knowledge.md](douyin-vibe-knowledge.md):抖音上的十支 AI 动画(9 支发于 2026-09 底) | 知识讲解为主,横屏中视频 | 未公开(多数自述用 Claude / Opus 写代码;1 支生成式视频) | 无 | 前四支的几处相似;横屏 2.5–5 分钟、字幕偏小;一个号 15 支的赞数分布;同题的两种立意 |

## 按需求查案例

Expand All @@ -25,5 +26,6 @@
- 要做讲解或论文视频:interstellar-blackhole(一句话能做到什么程度)→ code2video → paper2video,外加 hyperframes-launches 里的 `claude-paper-launch/`。
- 想拆解一支别人的视频:按 `playbook/07-reverse-engineer.md` 走,产出格式参考 interstellar-blackhole。
- 想找"一个点子撑起全片"的做法(时间放大镜、机器视角的肖像、用做法讲做法、吉祥物穿越风格、工作流即故事):oneshot-five。
- 要做抖音上的横屏知识中视频,或者想看同一个题目被做成两支不同的片子:douyin-vibe-knowledge。
- 想知道 prompt 怎么写:community-prompts,再从 opus55-gallery 第 3 节挑同类型的。
- 要做 3D 场景或几分钟的长片:opus55-gallery 第 6 节(Austerlitz 深读)。
80 changes: 80 additions & 0 deletions cases/douyin-vibe-knowledge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# 案例:抖音上的十支 AI 动画(9 支发于 2026-09-25 至 10-03)

2026 年 9 月下旬,抖音上出现了一批用 AI 写代码做的知识动画,多数挂着 #vibe知识大赏 话题。下面 10 支不是随机抽样,也不是这一波里赞数最高的 10 支。其中 7 支是知识讲解,2 支在展示工具或模型本身,1 支是生成式视频做的名画漫游。工具那支是 4 月发的,作对照;其余 9 支到抓取时发布了 1–9 天不等,赞数只能当信号看,不能拿来归因。

**怎么拆的**(2026-10-04,取帧和取数据的做法见 `playbook/07-reverse-engineer.md` 第 1 节的"抖音"一条):
- 下表的发布日期和赞数是 10-04 当天的快照;第 3 节那个号的 15 支是同一天的另一个快照,数字略有出入;
- 每支等间隔取 12–16 帧,拼成联系表,共约 150 帧。第 1、2 支的开场逐秒看过,并用 10 px 网格量了字幕大小;
- 没有量声音,没有下载原片,下文不附原片画面。

**事实**:下文转述的年份、人名和数字,都是片中或文案里的说法,没有逐条核实。

**许可**:原片和文案归各自作者。下文是转述和分析,引文都很短。

| # | 题目 | 发布 | 赞 | 时长 / 画幅 | 画面 | 开场 |
|---|---|---|---|---|---|---|
| 1 | 信息论:惊奇之学 | 09-28 | 666,996 | 5:03 / 16:9 | 黑底,金色细字,粒子和波形;中英双语字幕 | 屏幕中央逐字打出"床前明月",留一个空,旁边一条"惊奇"读数接近 0 |
| 2 | 幸存者偏差 | 10-02 | 425,347 | 2:29 / 16:9 | 深色底、暖金线描:夜里的公寓楼、坠楼的猫、二战轰炸机的弹孔、神庙里的还愿画 | 一只猫从 32 楼掉下去,48 小时后出院;接着是 1984 年纽约兽医统计的 132 只坠楼的猫 |
| 3 | 多修一条路,为什么反而更堵 | 10-01 | 187,568 | 2:29 / 16:9 | 夜景城市俯拍、发光的路网、拥堵的红线;旧报纸和一份旧论文当道具 | 环形路网的动画,约 10 秒出标题问题,再进 1990 年纽约封 42 街 |
| 4 | 37% 法则 | 10-01 | 147,939 | 2:46 / 16:9 | 黑底,金色发光曲线和柱状图 | 第一帧满屏一个"37%" |
| 5 | AI 重现名画:《罗纳河上的星夜》 | 09-28 | 51,444 | 0:24 / 约 4:3 | 生成式视频:镜头飞进油画,画里的人物走动 | 河面的灯影,镜头慢推 |
| 6 | 开源工具:一句话生成动画 | 04-06 | 40,522 | 3:56 / 3:4 | 录屏、终端、梗图 | 问句标题卡加进度条 |
| 7 | AI 的 76 年,一镜到底 | 09-27 | 16,583 | 1:34(含片尾卡)/ 9:16 | 体素 3D 世界;一条红线穿过各个年份 | 体素山坡上,红线出发 |
| 8 | 贝叶斯:对方一直没回消息 | 10-03 | 14,686 | 2:18 / 16:9 | 深紫 UI 卡片、百人点阵、仪表盘;结尾两个小角色 | 手机聊天界面,消息没有回 |
| 9 | 苏轼《定风波》 | 09-28 | 14,574 | 1:26 / 16:9 | 水墨竹林、雾、月、书法字 | 一个墨点,接着是"一〇七九 乌台诗案"的大字 |
| 10 | Opus 5.5 动画测试 | 09-25 | 3,956 | 0:33 / 16:9 | 浅暖色的仿剪辑软件界面,一只像素小怪物在剪片 | 剪辑台和一张备忘卡 |

10 支里有 6 支在标题或话题里点名 Claude / Opus("Opus 5.5 直出"、"画面由 Opus5.5 编写的代码实时渲染"一类);第 6 支提到的是 MiniMax,第 5 支只标了 #AIGC。

## 1. 赞数最高的四支,有几处相似

这里说的是这 10 支里的前四,第 1–4 支,赞数 15 万到 67 万。它们题材不同,有几处排法相似,每条后面注明了哪几支是这样:

- **题目是一个有名字的知识概念**(四支都是):信息论、幸存者偏差、布雷斯悖论、37% 法则。观众多半听过这个名字,但说不清它是什么【推测】。
- **开场是一个具体的东西,不先下定义**(四支都是):一句人人能接的诗加一个空(第 1 支);一只从 32 楼掉下去还活着的猫(第 2 支);一张路网和一个反常识的问题(第 3 支);满屏一个数字(第 4 支)。
- **中段用一串带年份的人和事讲机制**(第 1–3 支):1948 年的香农、两位工程师清走天线里的鸽子,那段嘶嘶声还在(第 1 支);二战轰炸机的弹孔、古人挂在神庙里的还愿画(第 2 支);1968 年布雷斯的论文、1990 年纽约封掉 42 街(第 3 支)。第 4 支是例外:从抽帧和文案看,它用的是"100 个人里挑一个"的抽象模型,没有讲历史人物。
- **结尾收在一句话上**(第 1、3、4 支):第 1 支劝人去找自己猜不到的东西;第 3 支收在"人人都抢的捷径"那一句;第 4 支收在一层意思上:做对一切仍可能遗憾,那是数学的上限。第 2 支结尾是几张提问卡片,抽帧读不清全文。

其余几支里,第 8 支(贝叶斯)也从生活场景切入、落回观众,发布只有一天;第 9 支(定风波)讲的是人物和诗,画面完成度很高。样本太小,说不出哪一条是赞数的原因。

## 2. 规格:横屏,2.5–5 分钟,字幕偏小

- **画幅和时长**:10 支里 8 支是横的(7 支 16:9,1 支约 4:3)。前四支都是 16:9,时长 2:29–5:03。两支竖的(第 6、7 支)都不在前四。同期 `cases/oneshot-five.md` 里的三支抖音片(2:06、3:51、0:35)也都是 16:9。
- **字幕**:量了两支,先量汉字的字高,再换算成 1080p 下的字号(按经验值,汉字字高约为字号的 0.92,随字体略有出入)。第 2 支约 52–56 px;第 1 支约 42 px,下面还有一行更小的英文。对照 `playbook/03-motion-design.md` §4,第 2 支达到 `desktop` 档(字幕 ≥ 48),第 1 支略低于它;两支都离 `feed` 档(≥ 115)很远。在竖着拿手机的信息流里(画面约 360 px 宽),这些字幕只有约 8–10 px。
- **推断**【推测】:这批片子的字幕是按"点开全屏、横过来看"的大小做的;抖音没有公开横屏视频有多少人点开全屏。观众决定点不点开,还是在信息流里的那几秒,而开场的字都比正文大得多:第 4 支第一帧满屏一个"37%",大约占画面高度的一半;第 1 支开场那行诗目测约 100 px(1080p 换算,没用网格量),是它字幕的两倍多,但还不到 `feed` 档的 150。

## 3. 系列和文案

- **一个号一周 15 支**:第 3 支所在的号,9 月 28 日到 10 月 4 日发了 15 支,标题都是"vibe知识大赏|《题目》——一句副标题",时长都在 2:11–3:11 之间。赞数(10-04 快照):
- 运气的形状 427,108;
- 月老的算法(稳定匹配)308,626;
- 多修一条路(第 3 支)192,993;
- 月老的算法2(37% 法则)52,639;
- 一美元拍卖 52,077;
- 老好人与背叛者 31,876;
- 中杯 24,375;
- 换不换门 17,729;
- 另外 6 支在 2,246 到 5,629 之间;
- 10-04 当天刚发的 1 支还只有个位数。

赞数最高的两支都不在这 10 支里。最早发的两支赞数也最多:可能是挂得久,也可能是话题热度在退,分不清。除了第 3 支,这个号的其他片子都没有看画面,所以说不出赞数差在题目还是做法上。
- **文案写成一段短文**:复述全片论点,带年份、人名和实验。有的作者会注明片中改编过的地方,例如一支借古诗开场的,说明原诗的情节和片中不同。这大概能增加信任【推测】。
- **话题**:除了 #vibe知识大赏,常见的还有 #抖音前沿科技首发计划、#ai新星计划、#创作者成长进阶计划,并 @抖音科技。是不是官方活动、有没有流量扶持,没核实。

## 4. 同题不同立意:两支 37% 法则

10 月 1–2 日,两个号各发了一支 37% 法则。结论一样:前 37% 只看不选,之后遇到比前面都好的就停;即使这样,大约 63% 的时候还是选不到最好的。片子完全不同:

| | 《月老的算法2》(10-02,52,639 赞) | 第 4 支《37% 法则》(10-01,147,939 赞) |
|---|---|---|
| 载体 | 一个历史人物:开普勒 1611 年丧妻,两年里见了 11 位相亲对象,37% 法则正好停在开普勒最心动的第 5 位(片中说法) | 一个抽象模型:100 个人里挑一个,只能看一次、不能回头 |
| 画面 | 没看画面(这支不在 10 支里,只读了文案) | 发光曲线、柱状图和点阵 |
| 落点 | 真实的人会拒绝你,规则要跟着现实调整 | 做对一切仍可能遗憾,那是数学的上限 |

两支的账号、发布时间都不同,赞数说明不了哪种载体更好。题目撞了,载体和落点还可以不撞。`playbook/12-ideation.md` 第 3 节的撬法表据此加了两行:找一个历史现场当载体;把概念交还给观众。

## 5. 用本仓库做

- **横屏中视频**:`bin/vh new short <slug> --aspect 16:9`;规格、字号和结构见 `video-types/02-knowledge-short.md` 的"变体:抖音横屏中视频"。
- **立意**:第 1 节说的是这批片子的几处相似,不是模板。第 4 节说明同一个题目可以有完全不同的载体和落点;先按 `playbook/12-ideation.md` 想自己的点子。
- **事实**:人名、年份、数字按硬规则 5 记进 `NOTES.md`;改编过的地方,在文案里说明。
2 changes: 1 addition & 1 deletion playbook/01-pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ projects/2026-10-01-leo-doppler/
| 04 MV、07 手绘 | 1920×1080 | 24 或 30 | 1080p(手绘引擎暂不支持 4K) | `desktop` |
| 09 剪辑口播 | 跟素材,多为 1080×1920 | 跟素材(恒定帧率) | 1080p(素材是 4K 时可以出 4K) | `phone` |

- **在哪看**决定字号下限和可读性检查缩到多宽(`03-motion-design.md` §4)。平台对应:竖屏、1:1、4:5 都是 `phone`;横屏片发抖音、视频号、小红书、微博、X 这类信息流,是 `feed`;发 B 站、YouTube、官网,是 `desktop`。同一支横屏片既要在电脑上看、又要进手机信息流时,优先另出一个竖版(重新构图),而不是把横屏的字放大到 `feed` 那一档。
- **在哪看**决定字号下限和可读性检查缩到多宽(`03-motion-design.md` §4)。平台对应:竖屏、1:1、4:5 都是 `phone`;横屏片发抖音、视频号、小红书、微博、X 这类信息流,是 `feed`;发 B 站、YouTube、官网,是 `desktop`。抖音上 2–5 分钟的横屏知识中视频是个例外:`video-types/02-knowledge-short.md` 的"变体:抖音横屏中视频"默认按 `desktop`,理由写在那里。同一支横屏片既要在电脑上看、又要进手机信息流时,优先另出一个竖版(重新构图),而不是把横屏的字放大到 `feed` 那一档。
- **4K**:用户要,或者精品档的片子要发到 B 站、YouTube 这类有 4K 播放的平台时再用。照常按 1080p 写,出片时渲成 4K;draft 和自查用 1080p,4K 成片出来后再从里面裁一两帧原尺寸看,字和细线锐不锐(canvas 和 Three.js 要按像素密度开大,见 `engines/README.md`)。渲染时间和文件大小会明显变大,具体多少没量过。

### 导演模式:每一站能定什么
Expand Down
Loading
Loading