# Find a motion. Reuse its treatment.

Use this reference when someone asks for an animation or editing style and gives
you their own copy, images, footage, screenshots or identity assets. Find a
specific treatment, inspect its source, then use its supplied Remotion API.
Do not invent an implementation from the thumbnail or a style adjective.

[Search the motion library](../review/) · [Download this guide](GUIDE.md) ·
[Agent skill](SKILL.md) · [Machine-readable entry point](index.json) ·
[Toolkit downloads](../downloads/)

## What the three previews mean

- **Original** is our first Remotion reconstruction using original sample
  content. It is **not** the OpenAI source film.
- **Adaptation** is a second render of the same reusable recipe with different
  original content. It demonstrates content substitution, not another motion.
- **Source comparison** puts the attributed OpenAI source on the left and our
  first reconstruction on the right, in one synchronized video.

The library is growing toward 200 distinct source treatments. Read the live
catalog's counts and each entry's findings: publication, successful rendering
and an attractive adaptation are not fidelity approval. Unresolved drafts do
not count as completed examples.

An **exact-pair completion record**, when present, names the two reviewed renders,
their recipe/input/code hashes, current source findings and the inspection
method. Read its limitations: a prior-informed fresh-session retest is not a
blind source-first review. Completion of those supplied outputs is not automatic
approval of new content. Later counterevidence can place a recipe on completion
hold even when its older certificate or review reported no open findings.

## An adaptation must be a real editable build

Build the treatment with the supplied code and original/permitted assets:
the user's images, illustrations, footage, screen captures and identity artwork.
Keep the choreography editable: layer construction, text, masks, camera paths,
transitions and native-frame timing must remain controlled by the recipe/API.
Do not substitute the reference movie, reference screenshots, or a flattened
prerender of the entire treatment and call it a reusable implementation.

Footage can contain its own movement. That is different from baking the edit's
camera, typography or transitions into an opaque video. If an original asset is
generated by a supplied authoring script, retain that script and its inputs too.
Declare which visual elements come from code and which come from input media.
Source-film imagery, branding and demo data belong only in attributed research
comparisons, not in the adaptation's asset pack.

Check the actual MP4's manifest against the selected recipe, complete inputs,
implementation and asset hashes. Then inspect the adaptation against the moving
source at its native cadence: typography, spacing, geometry, density, layering,
motion paths, blur, construction order, transitions, timing and holds. Check the
new content for readability and shot continuity. Passing type checks, rendering
successfully, or looking polished does not establish the reference's quality.
Keep concrete mismatches visible; do not count an unresolved adaptation as a
completed source-faithful example.

## Start from the request

Translate the requested movement into a few editing terms. These are useful
starting points, not interchangeable templates or blanket recommendations.

| If the brief asks for… | Search terms | Inspect these starting points |
| --- | --- | --- |
| A minimal opener where a short word disappears while the last word stays anchored | `word deletion dock` | [Dock subtraction](../review/?id=type-dock-subtraction) |
| A sentence that resolves through large typographic cuts | `paragraph cut` | [Paragraph cuts](../review/?id=type-paragraph-cuts) |
| A pointer drag that selects text and then triggers an action | `reverse selection` | [Selection/action chain](../review/?id=atlas-reverse-selection-action) |
| A marked keyword with two distinct underline strokes | `double underline` | [Keyword double underline](../review/?id=study-keyword-double-underline) |
| An interface click whose release drives a camera move | `click release camera` | [Click/release camera](../review/?id=codex-click-release-camera) |
| Images following a travelling path, rather than a generic slideshow | `traveling image trail` | [Image trail](../review/?id=chatgpt-traveling-image-trail) |
| Names and pictures changing through a constrained mask | `masked name reel` | [Masked name reel](../review/?id=type-masked-name-reel) |
| A small identity caption assembled in staggered stages | `staggered identity` | [Identity caption](../review/?id=type-staggered-identity) |
| A wordmark withdrawing into an animated outline ending | `wordmark outline finish` | [Outline finish](../review/?id=agent-wordmark-outline-finish) |
| Several treatments in a continuous edit | Search the individual shot intents, then check entry/exit states | [A rendered two-shot reuse passage](../PUBLICATION.html#independent-reuse-pilots) and the toolkit's `EditInput` contract |

The compact [live catalog](../review/index.json) supports selection by intent,
family, film, duration and input kind. Read only a few matching entries, then
fetch the selected recipe and its contract. For a specific reference supplied
by the user, retain that exact recipe ID and film interval; do not replace it
with the first broadly similar search result.

## Inspect before committing to a recipe

Play the source comparison at **1×** and inspect the consecutive native frames.
Check the construction order, camera path, trajectories, masks, layering,
spacing, density, transitions and holds. Read the concrete open findings.
HTML-video frame seeks are approximate; native archive member mappings are the
exact-frame reference. A still contact sheet alone is not a moving-source review.

Check whether the actual supplied content fits: allowed text lengths and loaded
font metrics, media aspect ratio and size, source-native cadence, identity path
geometry and shot entry/exit state. A character count alone does not prove fit.
The canvas and active motion timing are part of the treatment. Added first/last
holds are explicit editing adaptations, not recovered source timing.

If nothing fits, report the unsupported requirement and the closest candidates.
Do not silently shorten copy, shrink type, crop assets, stretch the active motion,
replace a mask, remove layers or turn a cut into a fade.

## Download only what you selected

The helper downloads the existing core plus the selected recipes' original
asset packs, checks file hashes and invokes the supplied safe extractor. It does
not download source films or the large research-frame archives, install npm,
or render automatically. Python 3.10+ is required; the toolkit uses Node 22.18+.

```bash
curl -fLO https://openai-film-fieldnotes-100.pages.dev/videos/editing/benchmark/library/agent-guide/get-toolkit.py
curl -fLO https://openai-film-fieldnotes-100.pages.dev/videos/editing/benchmark/library/agent-guide/get-toolkit.sha256
sha256sum -c get-toolkit.sha256
python3 get-toolkit.py --recipe type-dock-subtraction --dest ./fieldnotes
cd fieldnotes/project
npm ci
npm run typecheck
npm --silent run catalog -- search "word deletion"
npm --silent run catalog -- show type-dock-subtraction --contract
```

Repeat `--recipe` for more selected asset packs, or use `--all` deliberately for
the complete original-asset toolkit. The destination must not already exist.
On systems without `sha256sum`, use `shasum -a 256 -c get-toolkit.sha256`.
The fetched index and downloaded package files are checked again by the helper.

Run `npm test` in a **full `--all` download** when checking the whole toolkit.
The core's regression suite uses other recipes' asset fixtures, so running that
suite in a selected-only download reports missing unselected files. For a small
subset, use typecheck plus the selected recipe's render and binding verification;
that is not a claim that the full regression suite ran.

The packaged catalog may report `not-built` for local render artifacts: local
research files are intentionally excluded from the portable runtime. Use the
live gallery for published previews and findings; this is not a missing recipe.

## Adapt through the declared API

Read the selected compact contract, including `contentBuilder`, `designInputs`,
`textLayoutConstraints`, invariants and unsupported inputs. Do not read every
recipe or edit the shared renderer.
Also read the selected recipe's `examples/RECIPE_ID/README.md` and `input.ts`
when supplied. Run any required recipe-specific content preflight before
rendering; field types alone do not enforce every palette or semantic constraint.

- **Builder-backed recipe:** use its named typed builder and design input,
  exactly as shown in the supplied adapter documentation. A design input is not
  renderer `Content`; await the builder to generate the renderer input file.
- **Direct-content recipe:** start from `examples/RECIPE_ID/default.json`, alter
  only declared fields and save a new content file. Keep the recipe's frame
  tracks and shared components intact.
- **Images, footage and screenshots:** use local original/permitted assets
  under `public/` and declare their actual dimensions, cadence and rights.
  OpenAI source footage, logos and demo data belong only in research comparisons.
  Illustrative interfaces are not evidence that a real product behaves that way.

The [full editing guide](../project/AGENT_GUIDE.html), included as
`project/AGENT_GUIDE.md` in the download, documents the builder/direct distinction,
render setup, timing controls, neighboring shots and output verification.

```bash
npm run render -- --recipe RECIPE_ID --variant default --out out/reference.mp4
npm run render -- --recipe RECIPE_ID --content my-content.json --out out/my-edit.mp4
npm run verify -- out/my-edit.mp4
```

The renderer needs a supported Chromium executable; follow the included guide
to install/select one. Keep the adjacent `.manifest.json` with every output.
Do not use an adaptation of our example as a substitute for rendering the
user's actual content.

## Assemble and verify the edit

For a multi-shot brief, select each recipe yourself and compare its entry/exit
states and continuity keys. Use the documented `EditInput` with explicit joins.
Mixed native cadences need an explicit edit-timeline policy; do not retime a
source treatment to hide an incompatible join. Additional music or narration
is not implied by this library.

Verify the output manifest against the actual code, inputs and assets. Then
watch the rendered edit and source comparison at 1×. Inspect important boundaries
and intermediate frames, text readability, asset substitution and shot joins.
Report the method and any limits separately from a mechanical render pass.

Return the selected recipe IDs, specific films and source frame intervals; the
editable input files and assets; MP4s and their provenance manifests; any added
holds or editorial choices; and concrete remaining discrepancies. A source
fidelity finding stays open until fixed or explicitly accepted by the user.

## A brief you can give another agent

> Use the Fieldnotes motion reference to find a treatment for [describe the
> movement and editing intent]. My copy/assets are [files]. Select the specific
> recipe and source interval yourself. Check that my content fits its API,
> preserve its native choreography and render the edit using the supplied
> toolkit. Use my assets in the edit and retain source footage only as attributed
> research. Return the
> editable inputs, render, manifest and verification findings. If the requested
> substitution is unsupported, explain the constraint instead of changing the
> treatment silently.
