feitangyuan/onetake
Motion films that never cut to the next slide: every beat grows out of the one before, one continuous camera, continuity measured by an oracle. Product launch films and feature demos, made with a coding agent.
onetake – One‑continuous‑take motion video skill
What it is
- A Claude (or other LLM) agent skill that lets you ask an AI to create a short product‑launch or demo video in a single, un‑cut take. The skill builds the whole animation from a description, not from screen‑recordings.
Why it matters
- Most AI‑generated motion videos are a series of disconnected clips (title card → fade → UI shot → fade …) that feel like a slideshow. onetake flips the problem: every boundary between beats is designed so that something on screen survives and morphs into the next beat. This “carry” is measured automatically, giving a quantitative continuity score instead of a vague aesthetic judgment.
Key technical ideas
| Feature | How it works (as described in the repo) |
|---|---|
| UI reconstruction | Screenshots are turned into an HTML replica of the product UI, placed on the camera’s plane so the virtual camera can fly into it at any zoom – no screen‑recording needed. |
| Move library | ~38 pure‑function motion primitives (springs, entrances, collisions, fluid grounds, camera moves). Each is a time‑based function with a measured speed curve, so the animation is deterministic and repeatable. |
| Motion blur | Every rendered frame samples the scene multiple times across an open 180° shutter and averages the results in linear light, producing realistic blur for fast moves. |
| Audio integration | Foley and synthesized sounds are placed in the same virtual room as the visual events; music automatically ducks when a hit occurs. |
| Continuity oracle | probe.py records objects in each frame, finds the boundaries, and checks whether an object “carries over”. A film gets a carry score (0‑1); only scores above a threshold pass the automatic check. |
| Deterministic rendering | Same seed → identical frame at any timestamp. Drafts at 1080p 30 fps, final renders at 4K 60 fps. |
Typical workflow
- Reference analysis – Decompose a reference video into numbers (still time, cut points, easing curves).
- Concept brainstorming – Generate a few one‑sentence visual concepts (e.g., “one dot becomes everything”).
- Beat sheet – Define beat lengths (varying by ≥ 4×) and explicitly name the object that survives each boundary.
- Compose & render – Write a single HTML file using the motion‑library, render with motion blur, add sound via the scripts.
- Verify – Run the continuity oracle; if it passes, show the human‑ready film.
Installation & usage
# For Claude agents
git clone https://github.com/feitangyuan/onetake.git ~/.claude/skills/onetake
# For other agents that read skills
git clone https://github.com/feitangyuan/onetake.git ~/.agents/skills/onetake
After cloning, you can ask the agent:
- “Make a 15 s launch video for my app.”
- “Create a feature demo from these screenshots, no screen‑recording.”
- “My motion video feels like a slideshow – fix it.”
Dependencies – Python 3 (playwright + Chromium, numpy, scipy, Pillow, matplotlib, optional opencv‑python for reference analysis), ffmpeg, Node.js, plus faster‑whisper and Kokoro TTS for narration.
License – PolyForm Non‑commercial 1.0.0 (free for personal, educational, research use). Commercial use requires a paid “onetake Pro” license, which also provides the full source of each generated film.
Bottom line: onetake is a specialized AI‑agent skill that automates the creation of seamless, single‑take motion videos, enforcing continuity through a measurable oracle and a library of physically‑inspired motion primitives. It sits squarely in the AI‑generated content / LLM‑agent tooling space.
Related
- Project
- Project
- Project
- Project
- Project