diff --git a/README.md b/README.md index e19e0ef..9f1503f 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,18 @@ -# roto +# arthur -Video → **take file** builder for the Animator Pro rotoscope/puppet pipeline -described in `docs/design.md`. +An animation suite for turning live-action video into work that reads as +hand-authored — flat shapes, a tiny palette, hard edges, motion carried by +silhouette, in the idiom of *Another World*. -This is the analysis and tuning half. It stabilises a face out of a clip, reduces -the lip contour to a handful of vertices, selects sparse keys on motion extremes, -and previews the result as flat indexed fills — so the *look and timing* can be -judged in seconds rather than through a minutes-long Animator Pro render. It -emits a `.take` file; nothing here touches Animator Pro. +It stabilises a face out of a clip, reduces the lip contour to a handful of +vertices, derives teeth from image content, lets you decide which frames need +their own hand-drawn head, and renders the result as flat indexed fills at +320×200 with no antialiasing. -All policy lives here. The take arrives at the renderer with its keys already -chosen. +The constraint is deliberate. 320×200 and an indexed palette are inherited from +Animator Pro, where this started, but they are why the output looks right — +modern conveniences belong in the workflow, not the output. See +[docs/design.md](docs/design.md). ## Run @@ -19,6 +21,9 @@ python3 -m http.server 8777 # from this directory # open http://127.0.0.1:8777 ``` +Static files and ES modules — no build step, no dependencies beyond MediaPipe's +wasm, which is fetched from a CDN on first use. + **Synthetic take** needs no video and exercises everything below detection. For real footage: