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
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

## Unreleased

**Two more styles: pastel-ui (浅色界面讲解) and y2k-chrome (Y2K 铬面), 31 in all**
- Why: two of the five community films in `cases/oneshot-five.md` work in registers the library lacked: a light, friendly UI explainer (科了个喵's "3 seconds") and late-90s liquid chrome pop (FunTech's showreel).
- `styles/pastel-ui/`: a pastel wallpaper, white rounded cards, one colour per concept carried through; the title is typed into a chat bar and sent, the three cards step forward one at a time on a progress rail, and the 初版 card opens to full screen as the end frame. Learning objects: the 科了个喵 film (2026) and Material You (Google I/O, 2021-05-18). Kalimba, Rhodes, plucked upright, string pad, finger snaps; UI foley.
- `styles/y2k-chrome/`: inflated liquid chrome reflecting an unseen studio (dark ground, silver horizon) on acid yellow; a chrome blob that splashes into the title, stays as the anchor, hops onto three level tiles on the beat, is swept off by a chrome tube and regrows as "Y2K". Learning objects: FunTech Showreel 2026, *Wipeout* (1995, The Designers Republic), Mac OS X Aqua (2000-01-05). Bubblegum dance at 150 BPM; pops, a rubbery hop squash, sticker slaps, a metallic sweep.
- Both: written in the non-rigid voice (what the swatch does and why, with 容易翻车的地方 instead of a 禁止项 list), text-size tiers by where it is watched, each built by a subagent and reviewed three times by a fresh reviewer (first round: a purple glow-orb hook and a 2 s freeze in pastel-ui; labels under the floor, a vanishing anchor and candy-looking chrome in y2k-chrome). Final review: pastel-ui 7/7/8/8/8/7/8/8, y2k-chrome 8/9/8/8/8/7/8/8, floors pass; the last small fixes (an overlapped label, an empty end frame, a crowded tile corner, one repeated sound) were checked on the contact sheets. `render.sh` (incl. audio qa) and `determinism.sh` pass for both (150/150 frames identical across 1 and 3 workers).
- `styles/README.md` (count, index rows, sound rows), both READMEs (31), `playbook/04-audio.md`'s transition table, `styles/gallery.jpg` and `gallery.mp4` regenerated (31 × 1.5 s).

**Style presets are references, not templates**
- Why: the maintainer would rather the presets be examples the agent learns from and combines freely ("预设样式只是一些模版参考,让 Agents 自由学习组合并参考") than templates it executes. Before, `--style` copied the preset as `STYLE_PRESET.md`, pasted its prompt block into the BRIEF as instructions and opened the project's STYLE.md with "以风格预设为底…只写改动"; in the research note 06 experiment, the workflow agent that borrowed `ink-wash` logged three taste overrides in its project's DECISIONS.md just to depart from it (the author's local project, not in the repo).
- `bin/vh new --style a,b` and `bin/vh style apply a,b <project>` attach one or several presets as references: copies in `style-refs/<preset>/`, a `Style refs (repo presets)` line in the BRIEF, a note at the top of STYLE.md ("只是参考…和它们不一样不用解释"), and one `风格参考` line per preset in DECISIONS.md to fill in with what it lends. Nothing is pasted into the BRIEF; attaching a preset again adds nothing. A project made the old way keeps its preset: `STYLE_PRESET.md` and `style.tokens.json` move to `style-refs/<preset>/` and it is listed first, while the pasted `## Style preset` block and the "为底" pointer go. Preset names must be lower-case slugs of a preset (no paths, no `_swatch`, no empty list); a missing DECISIONS.md is created from the template. CI covers a comma list in one call, side by side without repeats, the migration, and bad names anywhere in a list.
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

**Coding agents like Claude Code and Codex can make videos by writing programs. This makes them do it reliably.**

Explainers, science shorts, product films, music videos, data stories, paper talks, hand-drawn shorts, meme edits and edits of your own footage: 9 video types (09 experimental), 29 styles, one workflow.
Explainers, science shorts, product films, music videos, data stories, paper talks, hand-drawn shorts, meme edits and edits of your own footage: 9 video types (09 experimental), 31 styles, one workflow.

**English** · [中文](README.zh-CN.md) · [Wiki](https://github.com/ZLHad/OpenVideoHarness/wiki)

![License: MIT](https://img.shields.io/badge/license-MIT-black)
![Agents](https://img.shields.io/badge/agents-Claude%20Code%20%7C%20Codex-orange)
![Engines](https://img.shields.io/badge/engines-HyperFrames%20%7C%20Remotion%20%7C%20Manim%20%7C%20p5.brush-blue)
![Voice](https://img.shields.io/badge/voice-Qwen3--TTS%20zh%20%7C%20en-purple)
![Styles](https://img.shields.io/badge/styles-29-green)
![Styles](https://img.shields.io/badge/styles-31-green)

<a href="showcase/04-intro-film/"><img src="showcase/04-intro-film/media/preview.gif" width="820" alt="OpenVideoHarness intro film"></a>

Expand All @@ -32,7 +32,7 @@ OpenVideoHarness is that craft, written as docs and tools an agent can follow:

- **A method for each kind of video.** Say "make a science short" or "make a launch film", and it reads the workflow for that type: which engine, which steps, what looks good, what is off limits.
- **It stops and asks you three times.** At the outline, the storyboard and the first draft, it waits for your go-ahead. Direction gets settled while changes are still cheap. For a quick try, switch to the `quick` level and it just renders.
- **More than one taste.** 29 styles learned from famous work, each with a real rendered sample, offered to you before anything is built.
- **More than one taste.** 31 styles learned from famous work, each with a real rendered sample, offered to you before anything is built.
- **It checks its own work.** An agent can't watch video or hear sound, so it looks at rendered frames, measures the mix, and fixes things until a checklist passes. A reviewer who didn't make the film then scores it.
- **Sound included.** Chinese and English voiceover (a local open-source model), bilingual subtitles, music and sound effects written as code, mixing and a final audio check.

Expand Down Expand Up @@ -95,8 +95,8 @@ The five films below were made by an agent **reading only this repo's docs**. Cl
<td valign="top"><b><a href="showcase/04-intro-film/">04 · Intro film (one-take 3D)</a></b> (HyperFrames + Three.js · 81 s · 1920×1080)<br>The repo's own product film, one continuous 3D take.<br><b><a href="showcase/04-intro-film/README.md#what-was-asked-and-what-changed">Request</a>, as revised at gate ①:</b> “一镜到底 动画动效 音乐动态字等风格 叙事感 科幻感大片感” (one continuous shot, kinetic type on music, a narrative arc, a sci-fi blockbuster feel)<br><b>Suggested workflow</b> (studio effort, <code>--effort studio</code>):<br><code>bin/vh new promo intro-film --style monumental-scifi</code><br>one-take 3D: <a href="playbook/08-vfx-and-motion-sources.md">playbook/08</a>; <code>bin/vh sfx place</code>, <code>sheet</code>, <code>check</code><br><b>Sound:</b> a code-composed cinematic score (D minor, 90 BPM) and 97 sound effects; zh/en soft subtitle tracks</td>
</tr>
<tr>
<td width="40%" valign="top"><a href="styles/gallery.mp4"><img src="styles/gallery.jpg" width="100%" alt="The 29 style samples, all showing the same content"></a><br><sub><a href="styles/gallery.mp4">▶ the reel, with sound (42 s)</a></sub></td>
<td valign="top"><b><a href="styles/">29 styles, one reel</a></b> (5-second samples)<br>The same content in 29 styles learned from famous work.<br><b>Borrow from one:</b><br><code>bin/vh new promo launch-film --style cutout-jazz</code><br><code>bin/vh style list</code> shows all 29; details in <a href="styles/README.md">styles/README.md</a><br><b>Sound:</b> one score per sample (<code>bin/vh music</code>, <code>mix … profile=swatch</code>)</td>
<td width="40%" valign="top"><a href="styles/gallery.mp4"><img src="styles/gallery.jpg" width="100%" alt="The 31 style samples, all showing the same content"></a><br><sub><a href="styles/gallery.mp4">▶ the reel, with sound (42 s)</a></sub></td>
<td valign="top"><b><a href="styles/">31 styles, one reel</a></b> (5-second samples)<br>The same content in 31 styles learned from famous work.<br><b>Borrow from one:</b><br><code>bin/vh new promo launch-film --style cutout-jazz</code><br><code>bin/vh style list</code> shows all 31; details in <a href="styles/README.md">styles/README.md</a><br><b>Sound:</b> one score per sample (<code>bin/vh music</code>, <code>mix … profile=swatch</code>)</td>
</tr>
</table>

Expand All @@ -121,26 +121,26 @@ The GIFs are compressed, silent previews. Films you make with it are welcome in

</details>

## 29 styles, not one taste
## 31 styles, not one taste

AI-made videos drift toward one look: dark background, glow, glass cards, busy animated UI. Unless you say otherwise, that's where an agent goes.

So we studied famous work and wrote down 29 styles in [`styles/`](styles/), grouped into film titles, brand and launch, data and explainers, illustration and print, Chinese aesthetics, and retro tech. The sources include:
So we studied famous work and wrote down 31 styles in [`styles/`](styles/), grouped into film titles, brand and launch, data and explainers, illustration and print, Chinese aesthetics, and retro tech. The sources include:
- **film and title design**: Saul Bass's titles, *Se7en*, *Blade Runner 2049*, Wes Anderson's symmetry, Wong Kar-wai's step-printing, Aardman's and Laika's stop-motion miniatures;
- **design**: the Swiss grid, 3Blue1Brown, New York Times data graphics, Otto Neurath's Isotype pictograms;
- **animation and print**: the halftone dots of *Spider-Verse*, 16-bit Super Nintendo pixel art;
- **Chinese aesthetics**: ink wash (水墨), Dunhuang murals, shadow puppetry and guochao.

Each style is written as instructions an agent can follow: colors and fonts, composition, how things move, how scenes change, what it sounds like, and which clichés to avoid.

**Every style comes with a real 5-second sample rendered by this repo**, each with its own code-written music. All 29 samples show exactly the same content, so the only difference is the style:
**Every style comes with a real 5-second sample rendered by this repo**, each with its own code-written music. All 31 samples show exactly the same content, so the only difference is the style:

<a href="styles/"><img src="styles/gallery.jpg" width="820" alt="The 29 style samples, all showing the same content"></a>
<a href="styles/"><img src="styles/gallery.jpg" width="820" alt="The 31 style samples, all showing the same content"></a>

Watch them back to back, each with its own sound, in [`styles/gallery.mp4`](styles/gallery.mp4). To use one:

```bash
bin/vh style list # see all 29
bin/vh style list # see all 31
bin/vh new promo launch-film --style cutout-jazz # attach a style as a reference (several: --style a,b)
```

Expand Down Expand Up @@ -342,7 +342,7 @@ OpenVideoHarness/
├── video-types/ workflows for the 9 video types (09 experimental)
├── playbook/ shared know-how 00–12: pipeline, checks, motion, sound, effects, narrative, hooks and covers, composition, concept
├── templates/ files each new project fills in: brief, storyboard, style, review, decisions, notes, lessons, checklist; script, character and packaging when needed
├── styles/ 29 styles, each with a sample; _swatch/ renders the samples
├── styles/ 31 styles, each with a sample; _swatch/ renders the samples
├── recipes/ shot recipes: how a shot moves (frames, critical values, pitfalls) + pacing skeletons for whole films
├── cases/ 13 case studies + curated community work + a 3D long-form deep-dive
├── showcase/ films made with this repo (source + final + process notes)
Expand Down
22 changes: 11 additions & 11 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@

**让 Claude Code、Codex 这类写代码的 AI,用写程序的方式做视频,而且做得稳。**

科普、讲解、产品片、MV、数据、论文、手绘、梗图快剪、真人素材剪辑:9 类视频(09 实验中),29 种风格,一套流程。
科普、讲解、产品片、MV、数据、论文、手绘、梗图快剪、真人素材剪辑:9 类视频(09 实验中),31 种风格,一套流程。

[English](README.md) · **中文** · [Wiki](https://github.com/ZLHad/OpenVideoHarness/wiki)

![License: MIT](https://img.shields.io/badge/license-MIT-black)
![Agents](https://img.shields.io/badge/agents-Claude%20Code%20%7C%20Codex-orange)
![Engines](https://img.shields.io/badge/engines-HyperFrames%20%7C%20Remotion%20%7C%20Manim%20%7C%20p5.brush-blue)
![Voice](https://img.shields.io/badge/voice-Qwen3--TTS%20zh%20%7C%20en-purple)
![Styles](https://img.shields.io/badge/styles-29-green)
![Styles](https://img.shields.io/badge/styles-31-green)

<a href="showcase/04-intro-film/"><img src="showcase/04-intro-film/media/preview.gif" width="820" alt="OpenVideoHarness 介绍片"></a>

Expand All @@ -32,7 +32,7 @@ OpenVideoHarness 就是这套行规,写成了 AI 能照着执行的文档和

- **按片子类型给做法**:你说"做个科普"或"做个发布片",它就去读那一类的工作流:用哪个引擎、分几步、什么算好看、什么不许做。
- **三个节点停下来问你**:大纲、分镜、初版,每到一处都等你点头再往下做。方向在最便宜的时候定下来。只想快速试一版时,可以切到"快出"档,直接出片。
- **不止一种口味**:29 个从名作里学来的风格,每个都附一段真渲的样片,开工前让你挑。
- **不止一种口味**:31 个从名作里学来的风格,每个都附一段真渲的样片,开工前让你挑。
- **自己检查自己**:AI 看不了视频,也听不了声音。所以让它看渲染出来的帧、测混音的数据,照着清单改到合格;整片还要交给一个没参与制作的 reviewer 打分。
- **声音一起管**:中英配音(本地开源模型)、双语字幕、用代码写配乐和音效、混音和质检。

Expand Down Expand Up @@ -95,8 +95,8 @@ cd ~/OpenVideoHarness && claude
<td valign="top"><b><a href="showcase/04-intro-film/">04 · 介绍片(一镜到底 3D)</a></b>(HyperFrames + Three.js · 81 秒 · 1920×1080)<br>本仓库自己的产品片,一个连续的 3D 长镜头。<br><b><a href="showcase/04-intro-film/README.md#what-was-asked-and-what-changed">提示词</a>(关卡 ① 时改的方向):</b>“一镜到底 动画动效 音乐动态字等风格 叙事感 科幻感大片感”<br><b>建议工作流</b>(精品档,<code>--effort studio</code>):<br><code>bin/vh new promo intro-film --style monumental-scifi</code><br>一镜到底 3D 见 <a href="playbook/08-vfx-and-motion-sources.md">playbook/08</a>;<code>bin/vh sfx place</code>、<code>sheet</code>、<code>check</code><br><b>声音:</b>代码写的电影感配乐(D 小调,90 BPM)和 97 个音效;中英软字幕轨</td>
</tr>
<tr>
<td width="40%" valign="top"><a href="styles/gallery.mp4"><img src="styles/gallery.jpg" width="100%" alt="29 种风格的样片,内容完全相同"></a><br><sub><a href="styles/gallery.mp4">▶ 带声音的连播(42 秒)</a></sub></td>
<td valign="top"><b><a href="styles/">29 种风格,连播</a></b>(每段 5 秒)<br>同一段内容,换 29 种从名作里学来的风格。<br><b>挂一种当参考:</b><br><code>bin/vh new promo launch-film --style cutout-jazz</code><br><code>bin/vh style list</code> 列出全部 29 种,详见 <a href="styles/README.md">styles/README.md</a><br><b>声音:</b>每段样片一首配乐(<code>bin/vh music</code>,<code>mix … profile=swatch</code>)</td>
<td width="40%" valign="top"><a href="styles/gallery.mp4"><img src="styles/gallery.jpg" width="100%" alt="31 种风格的样片,内容完全相同"></a><br><sub><a href="styles/gallery.mp4">▶ 带声音的连播(42 秒)</a></sub></td>
<td valign="top"><b><a href="styles/">31 种风格,连播</a></b>(每段 5 秒)<br>同一段内容,换 31 种从名作里学来的风格。<br><b>挂一种当参考:</b><br><code>bin/vh new promo launch-film --style cutout-jazz</code><br><code>bin/vh style list</code> 列出全部 31 种,详见 <a href="styles/README.md">styles/README.md</a><br><b>声音:</b>每段样片一首配乐(<code>bin/vh music</code>,<code>mix … profile=swatch</code>)</td>
</tr>
</table>

Expand All @@ -121,26 +121,26 @@ GIF 是压缩过的无声预览。你做出来的片子也欢迎 PR 进 `showcas

</details>

## 29 种风格,不止一种口味
## 31 种风格,不止一种口味

AI 做的视频很容易长成一个样子:暗底、发光、玻璃卡片、满屏动态 UI。你不说,它就往这个方向走。

所以我们从名作里学了 29 种风格,放在 [`styles/`](styles/),分成六类:电影片头、品牌发布、数据讲解、插画印刷、中国美学、复古科技。学习对象包括:
所以我们从名作里学了 31 种风格,放在 [`styles/`](styles/),分成六类:电影片头、品牌发布、数据讲解、插画印刷、中国美学、复古科技。学习对象包括:
- **电影和片头**:Saul Bass 的片头、《七宗罪》、《银翼杀手 2049》、韦斯·安德森的对称构图、王家卫的抽帧、Aardman 和 Laika 的定格微缩;
- **设计**:瑞士网格、3Blue1Brown、《纽约时报》的数据图、纽拉特的图形统计(Isotype);
- **动画和印刷**:《蜘蛛侠:平行宇宙》的网点、超级任天堂的 16 位像素;
- **中国美学**:水墨、敦煌、皮影、国潮。

每种风格都写成一份 AI 能照着做的说明:用什么颜色和字体、怎么构图、东西怎么动、怎么转场、配什么声音、哪些俗套不许碰。

**每种风格都用本仓库真渲了一段 5 秒样片**,配乐也是各自用代码写的。29 段样片的内容一模一样,差别只在风格:
**每种风格都用本仓库真渲了一段 5 秒样片**,配乐也是各自用代码写的。31 段样片的内容一模一样,差别只在风格:

<a href="styles/"><img src="styles/gallery.jpg" width="820" alt="29 种风格的样片,内容完全相同"></a>
<a href="styles/"><img src="styles/gallery.jpg" width="820" alt="31 种风格的样片,内容完全相同"></a>

连着看的版本在 [`styles/gallery.mp4`](styles/gallery.mp4),每段带着自己的声音。用法:

```bash
bin/vh style list # 看 29 种风格
bin/vh style list # 看 31 种风格
bin/vh new promo launch-film --style cutout-jazz # 挂上一种风格当参考(几种:--style a,b)
```

Expand Down Expand Up @@ -390,7 +390,7 @@ OpenVideoHarness/
├── video-types/ 9 类视频的工作流(09 实验中)
├── playbook/ 通用知识 00–12:流程、自查、运动设计、声音、特效、叙事、钩子与封面、作曲、立意等
├── templates/ 每个新项目要填的文件:需求、分镜、风格、审阅、决定、笔记、经验、清单;按需再加旁白稿、角色、标题封面
├── styles/ 29 种风格,各带样片;_swatch/ 是样片渲染器
├── styles/ 31 种风格,各带样片;_swatch/ 是样片渲染器
├── recipes/ 镜头配方:一镜怎么动(帧数、命门、坑)+ 整支片子的节奏骨架
├── cases/ 13 个案例拆解 + 社区作品精选 + 一支 3D 长片深读
├── showcase/ 本仓库自己做的片子(源码 + 成片 + 过程记录)
Expand Down
Loading
Loading