@open-take/compositor 0.1.2 → 0.2.1

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.
package/dist/index.d.ts CHANGED
@@ -26,8 +26,22 @@ type CaptureEventBase = {
26
26
  /** selector / note, kept for editability */
27
27
  sel?: string;
28
28
  note?: string;
29
- /** selective-zoom intent from the plan (default auto = heuristic) */
29
+ /** selective-zoom intent from the plan. Absent/"auto" the camera director
30
+ * decides from the ground-truth log; "always"/"never" hard-override it (and
31
+ * cut the beat out of any cluster — an override is a segment boundary). */
30
32
  zoom?: ZoomIntent;
33
+ /** CAPTURE-DERIVED (frame-diff / mutation pass — the `effectBox` seam): the
34
+ * region that actually CHANGED after the action, viewport CSS px. The
35
+ * director frames THIS over `box` when present — a `type`'s result region, or
36
+ * a payoff that lands somewhere other than where you clicked. Absent ⇒ the
37
+ * director shapes an ROI from `box`/kind instead. */
38
+ effectBox?: BBox;
39
+ /** CAPTURE-DERIVED (same pass): fraction of the frame that changed after the
40
+ * action, 0..1. ≥ camera.pullOutCoverage ⇒ the action repainted most of the
41
+ * frame (nav / global restyle) ⇒ pull out to full view. Absent ⇒ the pull-out
42
+ * branch is skipped (the director can't tell nav from popover on bbox alone —
43
+ * it says so in the beat's `reason`). */
44
+ changeCoverage?: number;
31
45
  };
32
46
  /** A click (or a type's focus-click): an instantaneous action at a point. */
33
47
  type CaptureClick = CaptureEventBase & {
@@ -196,23 +210,27 @@ type CursorConfig = {
196
210
  rippleMs: number;
197
211
  /** ms to hold a zoom after the action settles, before zooming back out */
198
212
  holdMs: number;
199
- /** ms for the zoom-OUT ramp (back to rest) */
213
+ /** ms for a zoom-OUT / pull-out ramp (to rest OR to any wider framing).
214
+ * Measured on a reference export: the pull-out is ~1.8× slower than the
215
+ * punch-in (their zoom-out spring ω≈5.2 rad/s ⇒ ~1340ms of critically-damped
216
+ * settle) — a slow, soft release reads premium; a fast one reads like a
217
+ * flinch. */
200
218
  zoomOutMs: number;
201
219
  /** ms for the zoom-IN ramp (into a target). Decoupled from travelMs so the
202
- * zoom can be slower/gentler than the cursor (a cinematic ~1s zoom). */
220
+ * zoom can be slower/gentler than the cursor. Measured reference punch-in spring
221
+ * ω≈9.4 rad/s ⇒ ~730ms. */
203
222
  zoomInMs: number;
204
- /** Easing for the zoom/pan stage ramps (scale + center together), as
205
- * cubic-bezier control points. Absent ⇒ symmetric smootherstep — whose broad
206
- * near-constant-velocity middle reads a bit linear, esp. on the zoom-OUT
207
- * settle. A decel-biased curve gives a softer landing into rest. */
223
+ /** Optional cubic-bezier easing for the camera-rect ramps (centre + size in
224
+ * lockstep see math.ts stageCamera). Absent ⇒ the default critically-
225
+ * damped spring (the measured reference curve). Set this only to force a
226
+ * bezier feel; `zoomSpring` wins over it when both are set. */
208
227
  zoomEase?: [number, number, number, number];
209
- /** Spring easing for the zoom/pan stage ramps, as a `bounce` amount ∈ [0,~0.6):
210
- * 0 = critically damped (a soft physical ease-out), higher = more overshoot/
211
- * snap (the "silky" settle a premium screen-recorder has; ~0.06 for zoom). When
212
- * set, this WINS over `zoomEase` (see math.ts stageEasing). Absent ⇒ use
213
- * `zoomEase`/smootherstep. The segment duration stays zoomInMs/zoomOutMs;
214
- * bounce only shapes the curve. NB: large bounce can undershoot rest on the
215
- * zoom-OUT (momentary backdrop dead-space) — keep it small for zoom. */
228
+ /** Spring easing for the camera-rect ramps, as a `bounce` amount ∈ [0,~0.6):
229
+ * 0 = critically damped (the measured reference zoom curve also the
230
+ * default when neither zoomSpring nor zoomEase is set), higher = more
231
+ * overshoot/snap. The segment duration stays zoomInMs/zoomOutMs; bounce only
232
+ * shapes the curve. Bounce > 0 overshoots the RECT (a touch past the target
233
+ * frame, then settle) keep it small. */
216
234
  zoomSpring?: number;
217
235
  /** ms to delay the synthetic cursor along a DRAG stroke, compensating for the
218
236
  * capture pipeline latency: the captured ink appears ~this long after the pen
@@ -262,6 +280,40 @@ type ReviewDecor = {
262
280
  /** constant bottom-left variant label for A/B reels, e.g. "B · tight ×1.8" */
263
281
  label?: string;
264
282
  };
283
+ /** The auto-camera director's tuning. ON by default (a plan that specifies no
284
+ * zoom must still come out with sensible framing — the whole point). The
285
+ * numbers are the FEEL knobs; judge them by eye on a rendered clip, not on
286
+ * paper. `enabled: false` is the clean escape hatch: the director doesn't run
287
+ * and ONLY explicit `zoom: "always"/"never"` produce zoom (auto/absent hold
288
+ * full view). There is no legacy per-event heuristic to fall back to. */
289
+ type CameraConfig = {
290
+ enabled: boolean;
291
+ /** an ROI fills this fraction of the frame when framed (bigger ⇒ tighter). */
292
+ fillFrac: number;
293
+ /** hard ceiling on scale. NOT the main lever — ROI SIZE drives the actual
294
+ * scale (a big type-ROI lands medium, a tiny icon lands tight); this just
295
+ * stops a pinpoint ROI zooming past legibility. */
296
+ maxScale: number;
297
+ /** a punch that can't stay on screen this long is dropped to full view (a
298
+ * sub-second punch reads as a flinch). Enforced AFTER hard breaks — the hold
299
+ * extends into the gap before the next break, never merges across one. */
300
+ minHoldMs: number;
301
+ /** a scale below this isn't worth a distinct frame: a single beat that fits
302
+ * under it holds full view, and a coalesced cluster whose UNION falls under
303
+ * it splits instead (the two are "different regions" → chain/pull, not hold). */
304
+ minZoomScale: number;
305
+ /** gap between two actions greater than this ⇒ they cannot share a frame. */
306
+ coalesceWindowMs: number;
307
+ /** two ROIs whose centres are closer than this (fraction of video width) MAY
308
+ * coalesce into one shared, held frame — the "cluster" (a thumbnail rail, a
309
+ * toolbar). Farther apart ⇒ a re-frame (progressive/deeper), not a hold. */
310
+ travelThreshold: number;
311
+ /** changeCoverage ≥ this ⇒ the action repainted most of the frame (nav /
312
+ * global) ⇒ pull out to full view. The nav-vs-popover divider — the one knob
313
+ * to tune by eye on real captures (frame-diff pass populates the input). */
314
+ pullOutCoverage: number;
315
+ };
316
+ declare const DEFAULT_CAMERA: CameraConfig;
265
317
  type TakeComposition = {
266
318
  output: {
267
319
  width: number;
@@ -270,6 +322,10 @@ type TakeComposition = {
270
322
  };
271
323
  source: {
272
324
  videoUrl: string;
325
+ /** stage size the source video is DRAWN at (capture viewport CSS px) —
326
+ * the coordinate space of every event/bbox below. A Retina capture's
327
+ * file is denser (viewport × captureScale); the scene stretches it to
328
+ * this size, so the extra pixels only sharpen sampling under zoom. */
273
329
  videoWidth: number;
274
330
  videoHeight: number;
275
331
  viewport: {
@@ -306,7 +362,9 @@ declare const ZOOM_LEVELS: {
306
362
  type ZoomLevelName = keyof typeof ZOOM_LEVELS;
307
363
  /** Name a scale if it sits within tolerance of a preset; else null (custom). */
308
364
  declare function zoomLevelName(scale: number, tol?: number): ZoomLevelName | null;
309
- type MotionPreset = Pick<CursorConfig, "travelWidthsPerSec" | "holdMs" | "zoomInMs" | "zoomOutMs">;
365
+ type MotionPreset = Pick<CursorConfig, "travelWidthsPerSec" | "holdMs" | "zoomInMs" | "zoomOutMs"> & {
366
+ zoomEase?: undefined;
367
+ };
310
368
  declare const MOTION: Record<"calm" | "natural" | "brisk", MotionPreset>;
311
369
  type MotionName = keyof typeof MOTION;
312
370
  declare function motionName(cursor: CursorConfig): MotionName | null;
@@ -335,22 +393,63 @@ type PlanOpts = {
335
393
  };
336
394
  framing?: Partial<FramingConfig>;
337
395
  cursor?: Partial<CursorConfig>;
338
- /** element should fill this fraction of the frame when zoomed (default 0.55) */
339
- fillFrac?: number;
340
- /** hard cap on zoom (default 1.5 a gentle workhorse; lower than
341
- * the old 2.0 reads more premium. Small targets still zoom, just not as hard;
342
- * raise per-beat in the composition when a tiny element needs it.) */
343
- maxScale?: number;
344
- /** require fit-scale to exceed rest*this to bother zooming (default 1.3) */
345
- zoomRatio?: number;
346
- /** never zoom the first (orienting) action by default (Finding 1) */
347
- zoomFirst?: boolean;
396
+ /** auto-camera director tuning (default DEFAULT_CAMERA ON). The director
397
+ * decides zoom from the ground-truth log; these are its feel knobs. Set
398
+ * `camera.enabled = false` for the manual escape hatch (only explicit
399
+ * event `zoom: "always"/"never"` produce zoom then). */
400
+ camera?: Partial<CameraConfig>;
348
401
  };
349
402
  declare function planComposition(log: CaptureLog, opts?: PlanOpts): TakeComposition;
350
403
 
351
404
  //#endregion
352
- //#region src/render.d.ts
405
+ //#region src/camera.d.ts
353
406
  //# sourceMappingURL=plan.d.ts.map
407
+ /** One action, already mapped into video-px, handed to the director. */
408
+ type Beat = {
409
+ kind: "click" | "type" | "drag" | "scroll" | "hover" | "press";
410
+ tMs: number;
411
+ durationMs: number;
412
+ /** element bbox (for a drag: the path's bbox), video-px — or undefined for a
413
+ * bare press (no located element). */
414
+ box?: BBox;
415
+ /** the region that actually changed after the action (frame-diff seam),
416
+ * video-px. Framed over `box` when present. */
417
+ effectBox?: BBox;
418
+ /** fraction of the frame that changed after the action, 0..1. */
419
+ changeCoverage?: number;
420
+ /** anchor / cursor rest point, video-px (for the reason only). */
421
+ point: Pt;
422
+ /** plan override; absent ⇒ "auto" (the director decides). */
423
+ intent: ZoomIntent;
424
+ /** short label (sel / note) for the cluster tag in the reason. */
425
+ label?: string;
426
+ /** press only: the key chord (for the Escape-dismissal rule). */
427
+ keys?: string;
428
+ };
429
+ /** The director's per-beat verdict. plan.ts adds `inAtMs` to make a full
430
+ * ZoomDecision. */
431
+ type Framing = {
432
+ enabled: boolean;
433
+ scale: number;
434
+ center: Pt;
435
+ reason: string;
436
+ };
437
+ /**
438
+ * Decide framing for every beat. `endMs` is when the last frame can hold until
439
+ * (for the min-hold check on the final segment). `rest` is the stage scale at
440
+ * full view.
441
+ */
442
+ declare function directCamera(beats: Beat[], video: {
443
+ w: number;
444
+ h: number;
445
+ }, out: {
446
+ w: number;
447
+ h: number;
448
+ }, cam: CameraConfig, rest: number, endMs: number): Framing[];
449
+
450
+ //#endregion
451
+ //#region src/render.d.ts
452
+ //# sourceMappingURL=camera.d.ts.map
354
453
  type RenderTakeOpts = {
355
454
  /** input capture video (webm or mp4) */
356
455
  videoPath: string;
@@ -420,13 +519,12 @@ declare function formatIssues(issues: CompositionIssue[]): string;
420
519
  //#region src/math.d.ts
421
520
  //# sourceMappingURL=validate.d.ts.map
422
521
  declare namespace math_d_exports {
423
- export { StageKeyframes, bboxFitScale, buildLegs, buildStageKeyframes, clampCenter, cubicBezier, cursorPos, gradientEndpoints, isDragging, keyvalN, keyvalP, panEasing, restStageScale, smoother, springEase, stageEasing };
522
+ export { CamRect, StageKeyframes, bboxFitScale, buildLegs, buildStageKeyframes, clampCenter, cubicBezier, cursorPos, gradientEndpoints, isDragging, keyvalN, keyvalR, restStageScale, smoother, springEase, stageCamera, stageEasing };
424
523
  }
425
524
  declare function smoother(t: number): number;
426
525
  declare function cubicBezier(x1: number, y1: number, x2: number, y2: number): (x: number) => number;
427
526
  declare function springEase(bounce: number): (p: number) => number;
428
527
  declare function stageEasing(cursor: TakeComposition["cursor"]): (u: number) => number;
429
- declare function panEasing(cursor: TakeComposition["cursor"]): (u: number) => number;
430
528
  declare function gradientEndpoints(angleDeg: number | undefined, oW: number, oH: number): {
431
529
  x0: number;
432
530
  y0: number;
@@ -434,8 +532,7 @@ declare function gradientEndpoints(angleDeg: number | undefined, oW: number, oH:
434
532
  y1: number;
435
533
  };
436
534
  type KF<T> = [number, T];
437
- declare function keyvalN(t: number, kfs: KF<number>[], ease?: (u: number) => number, easeDown?: (u: number) => number): number;
438
- declare function keyvalP(t: number, kfs: KF<Pt>[], ease?: (u: number) => number): Pt;
535
+ declare function keyvalN(t: number, kfs: KF<number>[], ease?: (u: number) => number): number;
439
536
  /**
440
537
  * Scale (absolute, video-px → output-px) that fits `bbox` into `fillFrac`
441
538
  * of the output frame, capped at `maxScale` and floored at `restScale`.
@@ -456,12 +553,37 @@ declare function restStageScale(videoW: number, videoH: number, outW: number, ou
456
553
  * panning past the recording's edge.
457
554
  */
458
555
  declare function clampCenter(center: Pt, scale: number, videoW: number, videoH: number, outW: number, outH: number): Pt;
556
+ /** The camera as a viewport RECT in video-px: centre + full viewport width
557
+ * (height is implied by the output aspect: h = w·oH/oW). scale = oW / w. */
558
+ type CamRect = {
559
+ cx: number;
560
+ cy: number;
561
+ w: number;
562
+ };
459
563
  type StageKeyframes = {
460
- z: KF<number>[];
461
- c: KF<Pt>[];
564
+ r: KF<CamRect>[];
462
565
  T: number;
463
566
  };
567
+ /** Interpolate the rect track: centre AND size move under the SAME eased
568
+ * parameter. This is the whole trick (verified
569
+ * by frame-tracking a reference export: its pan curve overlays its viewport-WIDTH
570
+ * curve exactly, not its scale curve): lerping the rect keeps every corner on
571
+ * a straight line, so the screen-space path of the zoom target is strictly
572
+ * monotone toward frame centre — no wrong-way "bounce" for ANY scale pair,
573
+ * which scale+centre lerp can't guarantee (it hooks when scale > 2×rest). */
574
+ declare function keyvalR(t: number, kfs: KF<CamRect>[], ease: (u: number) => number): CamRect;
464
575
  declare function buildStageKeyframes(comp: TakeComposition): StageKeyframes;
576
+ /** The one camera evaluator — scene.tsx (render) and the editor preview both
577
+ * consume THIS, so preview and export can never drift. */
578
+ declare function stageCamera(comp: TakeComposition): {
579
+ T: number;
580
+ rest: number;
581
+ peakScale: number;
582
+ at: (t: number) => {
583
+ scale: number;
584
+ center: Pt;
585
+ };
586
+ };
465
587
  type Leg = {
466
588
  t0: number;
467
589
  t1: number;
@@ -477,5 +599,5 @@ declare function cursorPos(t: number, legs: Leg[], comp: TakeComposition): Pt;
477
599
  declare function isDragging(t: number, legs: Leg[]): boolean;
478
600
 
479
601
  //#endregion
480
- export { BBox, CaptureClick, CaptureDrag, CaptureEvent, CaptureEventBase, CaptureHover, CaptureLog, CapturePress, CaptureScroll, CaptureType, CompEvent, CompositionIssue, CursorConfig, DEFAULT_CURSOR, DEFAULT_FRAMING, DEFAULT_MOTION_BLUR, FINISH, FinishName, FramingConfig, LOOKS, LookName, LookPreset, MOTION, MotionBlurConfig, MotionName, MotionPreset, PlanOpts, Pt, RenderTakeOpts, ReviewBadge, ReviewDecor, TakeComposition, ValidateOpts, ZOOM_LEVELS, ZoomDecision, ZoomIntent, ZoomLevelName, finishName, formatIssues, lookName, math_d_exports as math, motionBlurActive, motionName, planComposition, renderTake, resolveFfmpeg, resolveFfprobe, validateComposition, zoomLevelName };
602
+ export { BBox, Beat, CameraConfig, CaptureClick, CaptureDrag, CaptureEvent, CaptureEventBase, CaptureHover, CaptureLog, CapturePress, CaptureScroll, CaptureType, CompEvent, CompositionIssue, CursorConfig, DEFAULT_CAMERA, DEFAULT_CURSOR, DEFAULT_FRAMING, DEFAULT_MOTION_BLUR, FINISH, FinishName, Framing, FramingConfig, LOOKS, LookName, LookPreset, MOTION, MotionBlurConfig, MotionName, MotionPreset, PlanOpts, Pt, RenderTakeOpts, ReviewBadge, ReviewDecor, TakeComposition, ValidateOpts, ZOOM_LEVELS, ZoomDecision, ZoomIntent, ZoomLevelName, directCamera, finishName, formatIssues, lookName, math_d_exports as math, motionBlurActive, motionName, planComposition, renderTake, resolveFfmpeg, resolveFfprobe, validateComposition, zoomLevelName };
481
603
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/presets.ts","../src/ffmpeg.ts","../src/plan.ts","../src/render.ts","../src/validate.ts","../src/math.ts"],"sourcesContent":null,"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/presets.ts","../src/ffmpeg.ts","../src/plan.ts","../src/camera.ts","../src/render.ts","../src/validate.ts","../src/math.ts"],"sourcesContent":null,"mappings":"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"}