inst/schema/cornball-effects.md

The cornball.* effect namespace

compost's render_timeline() recognizes an open namespace of OTIO Effect objects on clips: any effect whose effect_name starts with cornball.. Writers (any tool emitting OTIO via rotio) attach these to describe deterministic, renderer-lowered motion; compost lowers the ones it knows into ffmpeg filters at render time.

Dispatch and degradation

cornball.kenburns (schema 1)

A deterministic Ken Burns pan/zoom on a still-image clip.

rotio::Effect(
  name        = "motion",              # instance label, informational
  effect_name = "cornball.kenburns",   # dispatch key
  enabled     = TRUE,
  metadata    = list(
    schema    = 1L,      # integer contract version
    zoom_from = 1.0,     # numeric >= 1; the renderer clamps values below 1
    zoom_to   = 1.15,    # numeric >= 1
    from      = c(0.5, 0.5),  # crop-window anchor at p = 0: (x, y) fractions
    to        = c(0.5, 0.40), #   of the source, top-left origin; the window
                              #   is centered on the anchor, clamped to frame
    ease      = "smooth" # "linear" | "smooth" (smoothstep p*p*(3-2p))
  ))

Every field except schema is optional: zoom_from/zoom_to default to 1, from defaults to the center, to defaults to from, ease to "smooth". A missing schema is read as 1.

Semantics

Reserved names

cornball.callout (timed box/underline overlays) is reserved for a future schema; renderers that don't know it degrade as above.

See also

cornball-layout.md — the timeline-level layout contract (multi-track canvas composition: narrator over slides, stacks, over-shoulder boxes).



Try the compost package in your browser

Any scripts or data that you put into this service are public.

compost documentation built on Aug. 4, 2026, 5:11 p.m.