reframe-video 0.6.20 → 0.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,6 +74,11 @@ flagship scenes — reuse the technique, vary the content:
74
74
 
75
75
  ### 4. Verify objectively (don't argue about "more dynamic")
76
76
 
77
+ Mind the tiers so you're not full-rendering to check small things: `compile`
78
+ (validate eDSL → IR, ~1s) and `labels` are cheap, no render; `frame --t <sec>`
79
+ is the cheap visual look (one PNG, ~1s); `motion`/`trace` below need a finished
80
+ render or reference video, so they're end-stage measurement, not the per-edit loop.
81
+
77
82
  - `reframe labels scene.ts` — every label → exact seconds. The timing source for audio + a
78
83
  sanity check that beats land when you think.
79
84
  - `reframe motion out.mp4` — speeds, static fraction, oscillation rhythm, spikes. A vague
@@ -97,5 +102,6 @@ addresses), so the human's polish isn't lost when you redo the base.
97
102
  matching with `diff` before adding motion.
98
103
  - Keep `id`s/labels stable across rewrites (see `reframe guide --regen`) so the user's
99
104
  overlay edits survive.
100
- - It's still iterative. The tools cut the rounds; they don't remove the loop. Render, look,
101
- adjust the agent should render frames and read them, not guess.
105
+ - It's still iterative. The tools cut the rounds; they don't remove the loop. `compile` to
106
+ validate (~1s), `frame --t <sec>` to look at a held moment (~1s), adjust — the agent should
107
+ read frames, not guess. Full `render` is the last step, not the per-edit check.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reframe-video",
3
- "version": "0.6.20",
3
+ "version": "0.6.21",
4
4
  "description": "Declarative motion graphics that AI can write and humans can tweak — human edits survive AI regeneration. Deterministic mp4 renders from a plain-data scene format.",
5
5
  "keywords": [
6
6
  "motion-graphics",
@@ -19,7 +19,15 @@ runtime needs ffmpeg on PATH and a one-time `npx playwright install chromium`
19
19
  Scenes must be pure functions of time: no `Math.random()`/`Date` — use
20
20
  `wiggle` with a seed. Give every node a meaningful stable `id` and label
21
21
  the key timeline moments — those names are addresses for everything below.
22
- 3. Render and verify: `npx -y reframe-video render <name>.ts` `out/<name>.mp4`.
22
+ 3. Iterate on the cheap commands; full-render once at the end:
23
+ - `npx -y reframe-video compile <name>.ts` — validate eDSL → IR in ~1s, no
24
+ browser, no ffmpeg. Fix the classified error it prints, repeat. Catch every
25
+ syntax/validation error here before launching anything heavier.
26
+ - `npx -y reframe-video frame <name>.ts --t <sec> -o frame.png` — render ONE
27
+ PNG at a key moment in ~1s (chromium only, no mp4 mux) and LOOK at it. This
28
+ is your visual check; sample a few times across the timeline.
29
+ - `npx -y reframe-video render <name>.ts` → `out/<name>.mp4` — the full mp4 is
30
+ ~10x slower; run it once the frames look right, not per edit.
23
31
 
24
32
  ## Directing a high-end piece (cinematic / reference-faithful)
25
33
 
@@ -86,6 +94,8 @@ to handle explicitly:
86
94
 
87
95
  ## Verification habits
88
96
 
89
- Render after every change. For visual checks, extract a few frames with
90
- ffmpeg and look at them. Same input renders byte-identically, so "it changed"
91
- or "it didn't change" is always provable.
97
+ Verify on the cheap commands, not by full-rendering. `compile` (validate, ~1s)
98
+ then `frame --t <sec>` (one PNG, ~1s) is the inner loop; `render` is for the
99
+ final mp4. Don't pull frames out of an mp4 with ffmpeg just to look — `frame`
100
+ writes the PNG directly and skips the mux. Same input renders byte-identically,
101
+ so "it changed" or "it didn't change" is always provable from a single frame.