onetake README

The project's README from github.com/feitangyuan/onetake. As one markdown file: README.md.

onetake

Motion films that never cut to the next slide. A Claude Agent Skill that makes product launch films, teasers and feature demos where every beat grows out of the one before — one continuous take, not a stack of scenes. 一镜到底的连贯动效。 做产品发布片、预告片、功能演示:每一个画面都从上一个画面里长出来,是一整条连续的镜头,而不是一张张轮流出场的"PPT"。

License: PolyForm Noncommercial Type Cases Continuity

onetake launch

From onetake's own launch film. A prompt bar opens into the ad it asked for; the next prompt collapses into a line that shoots across the desk and opens into a festival screen. No cut. Full film with sound →


English | 中文说明


English

The problem: motion that falls apart

Most motion videos an AI makes today — and most template tools — come out loose. Title card, fade, UI shot, fade, feature card, fade, logo. Each shot can look fine and the whole still reads like a slideshow, because nothing connects one beat to the next: scenes replace each other.

What onetake does differently: every beat is carried

onetake treats the boundary between two beats as the thing to design. At every boundary, something on screen survives and visibly becomes the next beat:

And one camera holds it all together. It never cuts: it follows the subject a beat ahead, whips to where the next thing will land, floats like a hand-held operator and shakes when something hits — then holds dead still, because rests are what make the moves land.

Continuity is measured, not hoped for

Every film is checked by an oracle before a human watches it. probe.py records what is on screen in every frame, finds each boundary, and asks what carried across it. A film whose beats replace each other fails.

film verdict continuity (carry score)
an earlier launch film, v1 — perfect rhythm, still a slideshow rejected 0.00
the same film, v2 rejected 0.40
the same film, v3 — every beat grows out of the last accepted 0.75
onetake launch film accepted 0.83

The same oracle fails uniform cadence (shots all the same length), no stillness, clipped audio, fast moves without motion blur, and a subject that leaves the frame.

What makes it look finished

🌟 Films made with it

Every case ships the finished film and a breakdown (concept, beat sheet, numbers, what was rejected and why). The films' source code is not included.

onetake launch

Three prompts, three films, one take — each prompt visibly becomes its film
▶ Film | 📖 Breakdown
one-dot

One dot is the whole film: caret → menu → loading ring → spring curve → the dot on the i
▶ Film | 📖 Breakdown
knockon

A chain reaction: every beat is the collision that starts the next
▶ Film | 📖 Breakdown
clearing

One zoom from a year to a free half hour — 1× to 300× and back, never a cut
▶ Film | 📖 Breakdown
pith

The window grows out of one phosphor pixel: 440× → 0.52× in one move
▶ Film | 📖 Breakdown
ebb

A field of light carries the take through five places; each flood drains onto the next
▶ Film | 📖 Breakdown
overlap

Two print passes slide into register — and an & appears that was hidden in both
▶ Film | 📖 Breakdown
unbroken

One ink stroke that is never lifted: procedural brush, no textures
▶ Film | 📖 Breakdown
motion-web

Where the rhythm rules came from: small UI, big ground, rests, then a burst
▶ Film | 📖 Breakdown
skill-demo

An operation demo from nothing: the chosen menu row flies into the input as a chip, and on from there
▶ Film | 📖 Breakdown

one-dot and skill-demo were made when the skill was still called ohmymotion; the films show that name.

How a film is made

  1. Deconstruct the reference in numbers: how much of it is still, where it cuts, how its moves ease.
  2. Three concepts, pick one. Each is one sentence about the picture — "one dot becomes everything", "one zoom through scale" — not three stories told with the same cards.
  3. A beat sheet for rhythm and carry. Shot lengths vary by ≥ 4×, and every boundary names what survives it.
  4. Compose one HTML file on the move library. Render with motion blur. Score the sound from the film's events.
  5. Verify, then show a human.

📦 Installation

# Claude Code
git clone https://github.com/feitangyuan/onetake.git ~/.claude/skills/onetake
# Codex / other agents that read skills
git clone https://github.com/feitangyuan/onetake.git ~/.agents/skills/onetake

Then ask: "Make a 15 s launch video for my app", "a feature demo rebuilt from these screenshots, no screen recording", "my motion video feels like a slideshow — fix it".

Requires python3 with playwright (chromium), numpy, scipy, Pillow, matplotlib (opencv-python for reference analysis), ffmpeg, node. Narration adds faster-whisper and Kokoro TTS. Music is royalty-free by default.

SKILL.md the protocol and the hard rules each rejected cut taught
lib/motion.js · lib/ui_kit.js the move library; the UI-rebuild kit
scripts/ render (motion blur, 4K60), verify (the oracle), probe, stills, reference analysis, footage, narration, sound
gallery/ one live demo and one six-frame sheet per move
references/ rhythm, carry, composition, camera, sound, product demos — the method with its numbers

License

PolyForm Noncommercial 1.0.0: free for personal, educational, research and other noncommercial use. Commercial use is not permitted.


中文说明

问题:动效是散的

现在大多数 AI 做出来的动效视频,还有大多数模板工具做出来的,都是散的。 标题卡、淡出、界面镜头、淡出、功能卡片、淡出、Logo。每一镜单看也许都不错,合起来还是像在翻 PPT。 原因是画面和画面之间没有任何联系,后一个场景只是把前一个替换掉了。

onetake 不一样:每个画面都被"接住"

onetake 把两个画面之间的交接处当成设计的重点。每一个交接处,都有一个东西活下来,并且看得见地变成下一个画面:

把这一切串起来的是同一个镜头。 它从不剪断:提前半拍跟着主体走,抢在下一个东西落地前甩过去,像手持一样轻微浮动,东西撞上来时跟着一震; 该停的时候又能完全静止,因为有停顿,动作才落得下来。

连贯是量出来的,不是靠感觉

每条片子给人看之前,先过一遍自动验收。probe.py 记录每一帧画面上有什么,找出每一个交接处,再判断有没有东西从这边带到那边。 画面互相替换的片子,直接判不合格。

片子 结果 连贯度(carry score)
更早的一条发布片 v1:节奏完美,仍然像 PPT 被否 0.00
the same film, v2 被否 0.40
同一条片子 v3:每个画面从上一个里长出来 通过 0.75
onetake 发布片 通过 0.83

同一套验收还会判掉这些问题:镜头长度全都一样、没有静止段落、音频爆音、快动作没有运动模糊、主体出画。

为什么看起来像成品

案例

上面的表格里有 10 条用它做的片子,每条都附成片和拆解文档(概念、节拍表、数据、被否掉的版本和原因)。不包含片子的源代码。 其中 one-dot 和 skill-demo 做的时候 skill 还叫 ohmymotion,画面里是旧名字。

一条片子怎么做出来

  1. 先把参考片拆成数字:静止占多少、在哪里剪、动作怎么缓动。
  2. 出三个概念,选一个:每个概念是一句关于画面的话,比如"一个点变成一切""一个镜头穿过所有尺度",而不是同一套卡片换三种讲法。
  3. 写节拍表,节奏和衔接都要写:镜头长短相差 4 倍以上,每个交接处都写明是什么东西活下来。
  4. 合成、渲染、配音:在动作库上写一个 HTML 文件,带运动模糊渲染,按片子里的事件配声音。
  5. 过验收,再给人看。

安装

# Claude Code
git clone https://github.com/feitangyuan/onetake.git ~/.claude/skills/onetake
# Codex 等读取 skills 的 Agent
git clone https://github.com/feitangyuan/onetake.git ~/.agents/skills/onetake

然后直接说:「给我的 App 做个 15 秒发布视频」「按这几张截图复刻界面做功能演示,不录屏」「我的动效视频像 PPT,帮我改」。

依赖:python3(playwright + chromium、numpy、scipy、Pillow、matplotlib,分析参考片需要 opencv-python)、ffmpeg、node。 配音需要 faster-whisper 和 Kokoro TTS。音乐默认用免版权曲库。

许可证

PolyForm Noncommercial 1.0.0:个人、学习、研究等非商业用途免费使用,不允许商用。

onetake (feitangyuan/onetake)

Searching Database…

2.7K ·GitHub
这是什么?onetake 是一个 Claude Agent Skill,用于把产品发布影片、预告片和功能演示生成为一镜到底的连续长镜头,而不是由分散场景拼成的幻灯片。
它是独立的视频编辑器,还是运行在 Claude 里的东西?它是一个 Claude Agent Skill:你用自然语言描述想要的视频,它会依据内置的动效/UI 镜头库组合出一个 HTML 文件,加上运动模糊进行渲染,并用自动化 oracle 检查之后才把结果展示给你。
我具体怎么用它来做视频?安装好 skill 及其依赖之后,你直接向 Claude 提出请求即可,例如「给我的应用做一个 15 秒的发布视频」或「用这些截图重建一个功能演示,不要录屏」。
我的电脑上需要装些什么?带 playwright(chromium)的 python3,以及 numpy、scipy、Pillow 和 matplotlib(如果需要参考素材分析还要 opencv-python)、ffmpeg 和 node。如果要加旁白,还需要 faster-whisper 和 Kokoro TTS。
它生成的每部影片都会自动通过吗?不会,内部 oracle(probe.py)会用「carry score」为连续性打分并拒绝较弱的剪辑;展示的发布影片草稿中就有一版被直接否决,后来的修改版才通过。
我能把它做的视频用于商业产品吗?不能,onetake 采用 PolyForm Noncommercial 1.0.0 许可,仅限个人、教育和研究用途免费使用;商业用途被明确禁止。
carry score 是什么?它为什么重要?它是 onetake 的自动化连续性指标:衡量一个节拍有多少内容可见地延续到下一个节拍。被否决的草稿得分低至 0.00 或 0.40,而通过的影片得分在 0.75-0.83 之间,所以低分就意味着那是一部幻灯片,而不是连续长镜头。
它会录屏我的应用的真实界面吗?不会,它根据截图用 HTML 重建产品 UI,而不是录制屏幕,因此镜头平面可以推近到任意缩放级别而不会出现像素化。
展示影片的源代码包含在内吗?不包含,每个展示案例只附带成品影片和一份文字拆解(概念、节拍表、数据、被否决的版本),这些影片背后的源代码并不包含在内。
它内置了多少种动效?大约 38 种经过实测的动效——弹簧、入场、承接、碰撞、模拟、镜头运动和流体地面——每一种都是时间的纯函数,其速度曲线经过实测,而不是手写的缓动。
Size
113.9 MB
Stars
2.7K
Age
24d
Commits · 90 Days