@open-take/compositor 0.1.2 → 0.2.0

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;
@@ -306,7 +358,9 @@ declare const ZOOM_LEVELS: {
306
358
  type ZoomLevelName = keyof typeof ZOOM_LEVELS;
307
359
  /** Name a scale if it sits within tolerance of a preset; else null (custom). */
308
360
  declare function zoomLevelName(scale: number, tol?: number): ZoomLevelName | null;
309
- type MotionPreset = Pick<CursorConfig, "travelWidthsPerSec" | "holdMs" | "zoomInMs" | "zoomOutMs">;
361
+ type MotionPreset = Pick<CursorConfig, "travelWidthsPerSec" | "holdMs" | "zoomInMs" | "zoomOutMs"> & {
362
+ zoomEase?: undefined;
363
+ };
310
364
  declare const MOTION: Record<"calm" | "natural" | "brisk", MotionPreset>;
311
365
  type MotionName = keyof typeof MOTION;
312
366
  declare function motionName(cursor: CursorConfig): MotionName | null;
@@ -335,22 +389,63 @@ type PlanOpts = {
335
389
  };
336
390
  framing?: Partial<FramingConfig>;
337
391
  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;
392
+ /** auto-camera director tuning (default DEFAULT_CAMERA ON). The director
393
+ * decides zoom from the ground-truth log; these are its feel knobs. Set
394
+ * `camera.enabled = false` for the manual escape hatch (only explicit
395
+ * event `zoom: "always"/"never"` produce zoom then). */
396
+ camera?: Partial<CameraConfig>;
348
397
  };
349
398
  declare function planComposition(log: CaptureLog, opts?: PlanOpts): TakeComposition;
350
399
 
351
400
  //#endregion
352
- //#region src/render.d.ts
401
+ //#region src/camera.d.ts
353
402
  //# sourceMappingURL=plan.d.ts.map
403
+ /** One action, already mapped into video-px, handed to the director. */
404
+ type Beat = {
405
+ kind: "click" | "type" | "drag" | "scroll" | "hover" | "press";
406
+ tMs: number;
407
+ durationMs: number;
408
+ /** element bbox (for a drag: the path's bbox), video-px — or undefined for a
409
+ * bare press (no located element). */
410
+ box?: BBox;
411
+ /** the region that actually changed after the action (frame-diff seam),
412
+ * video-px. Framed over `box` when present. */
413
+ effectBox?: BBox;
414
+ /** fraction of the frame that changed after the action, 0..1. */
415
+ changeCoverage?: number;
416
+ /** anchor / cursor rest point, video-px (for the reason only). */
417
+ point: Pt;
418
+ /** plan override; absent ⇒ "auto" (the director decides). */
419
+ intent: ZoomIntent;
420
+ /** short label (sel / note) for the cluster tag in the reason. */
421
+ label?: string;
422
+ /** press only: the key chord (for the Escape-dismissal rule). */
423
+ keys?: string;
424
+ };
425
+ /** The director's per-beat verdict. plan.ts adds `inAtMs` to make a full
426
+ * ZoomDecision. */
427
+ type Framing = {
428
+ enabled: boolean;
429
+ scale: number;
430
+ center: Pt;
431
+ reason: string;
432
+ };
433
+ /**
434
+ * Decide framing for every beat. `endMs` is when the last frame can hold until
435
+ * (for the min-hold check on the final segment). `rest` is the stage scale at
436
+ * full view.
437
+ */
438
+ declare function directCamera(beats: Beat[], video: {
439
+ w: number;
440
+ h: number;
441
+ }, out: {
442
+ w: number;
443
+ h: number;
444
+ }, cam: CameraConfig, rest: number, endMs: number): Framing[];
445
+
446
+ //#endregion
447
+ //#region src/render.d.ts
448
+ //# sourceMappingURL=camera.d.ts.map
354
449
  type RenderTakeOpts = {
355
450
  /** input capture video (webm or mp4) */
356
451
  videoPath: string;
@@ -420,13 +515,12 @@ declare function formatIssues(issues: CompositionIssue[]): string;
420
515
  //#region src/math.d.ts
421
516
  //# sourceMappingURL=validate.d.ts.map
422
517
  declare namespace math_d_exports {
423
- export { StageKeyframes, bboxFitScale, buildLegs, buildStageKeyframes, clampCenter, cubicBezier, cursorPos, gradientEndpoints, isDragging, keyvalN, keyvalP, panEasing, restStageScale, smoother, springEase, stageEasing };
518
+ export { CamRect, StageKeyframes, bboxFitScale, buildLegs, buildStageKeyframes, clampCenter, cubicBezier, cursorPos, gradientEndpoints, isDragging, keyvalN, keyvalR, restStageScale, smoother, springEase, stageCamera, stageEasing };
424
519
  }
425
520
  declare function smoother(t: number): number;
426
521
  declare function cubicBezier(x1: number, y1: number, x2: number, y2: number): (x: number) => number;
427
522
  declare function springEase(bounce: number): (p: number) => number;
428
523
  declare function stageEasing(cursor: TakeComposition["cursor"]): (u: number) => number;
429
- declare function panEasing(cursor: TakeComposition["cursor"]): (u: number) => number;
430
524
  declare function gradientEndpoints(angleDeg: number | undefined, oW: number, oH: number): {
431
525
  x0: number;
432
526
  y0: number;
@@ -434,8 +528,7 @@ declare function gradientEndpoints(angleDeg: number | undefined, oW: number, oH:
434
528
  y1: number;
435
529
  };
436
530
  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;
531
+ declare function keyvalN(t: number, kfs: KF<number>[], ease?: (u: number) => number): number;
439
532
  /**
440
533
  * Scale (absolute, video-px → output-px) that fits `bbox` into `fillFrac`
441
534
  * of the output frame, capped at `maxScale` and floored at `restScale`.
@@ -456,12 +549,37 @@ declare function restStageScale(videoW: number, videoH: number, outW: number, ou
456
549
  * panning past the recording's edge.
457
550
  */
458
551
  declare function clampCenter(center: Pt, scale: number, videoW: number, videoH: number, outW: number, outH: number): Pt;
552
+ /** The camera as a viewport RECT in video-px: centre + full viewport width
553
+ * (height is implied by the output aspect: h = w·oH/oW). scale = oW / w. */
554
+ type CamRect = {
555
+ cx: number;
556
+ cy: number;
557
+ w: number;
558
+ };
459
559
  type StageKeyframes = {
460
- z: KF<number>[];
461
- c: KF<Pt>[];
560
+ r: KF<CamRect>[];
462
561
  T: number;
463
562
  };
563
+ /** Interpolate the rect track: centre AND size move under the SAME eased
564
+ * parameter. This is the whole trick (verified
565
+ * by frame-tracking a reference export: its pan curve overlays its viewport-WIDTH
566
+ * curve exactly, not its scale curve): lerping the rect keeps every corner on
567
+ * a straight line, so the screen-space path of the zoom target is strictly
568
+ * monotone toward frame centre — no wrong-way "bounce" for ANY scale pair,
569
+ * which scale+centre lerp can't guarantee (it hooks when scale > 2×rest). */
570
+ declare function keyvalR(t: number, kfs: KF<CamRect>[], ease: (u: number) => number): CamRect;
464
571
  declare function buildStageKeyframes(comp: TakeComposition): StageKeyframes;
572
+ /** The one camera evaluator — scene.tsx (render) and the editor preview both
573
+ * consume THIS, so preview and export can never drift. */
574
+ declare function stageCamera(comp: TakeComposition): {
575
+ T: number;
576
+ rest: number;
577
+ peakScale: number;
578
+ at: (t: number) => {
579
+ scale: number;
580
+ center: Pt;
581
+ };
582
+ };
465
583
  type Leg = {
466
584
  t0: number;
467
585
  t1: number;
@@ -477,5 +595,5 @@ declare function cursorPos(t: number, legs: Leg[], comp: TakeComposition): Pt;
477
595
  declare function isDragging(t: number, legs: Leg[]): boolean;
478
596
 
479
597
  //#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 };
598
+ 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
599
  //# 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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"}