{ "tier": 2, "name": "title-image-outro", "composition_id": "MultiScene", "description": "Three-scene composition exercising Sequence, spring, interpolate, Audio, Img, and staticFile. Title scene uses Remotion's spring (translated to GSAP back.out as an approximation). Image scene scales an Img (from staticFile) with linear interpolate. Outro scene fades text in linearly. A silent WAV plays throughout at volume 0.5.", "duration_seconds": 6, "fps": 30, "width": 1280, "height": 720, "ssim_threshold": 0.95, "validation": { "measured_mean_ssim": 0.986, "measured_min_ssim": 0.964, "measured_p05_ssim": 0.967, "measured_p95_ssim": 1, "measured_at": "2026-09-18", "measured_against": "remotion@4.0 (PNG output, BT.709) vs hyperframes@0.7.71 (sub-composition fixtures)", "notes": "Spring → back.out(1.4) translation came out cleaner than expected; mean 0.986 leaves substantial headroom over 0.95." }, "translation_notes": [ "spring({damping:12, stiffness:100, mass:1}) → back.out(1.4) over 0.7s. Spring overshoot+settle and back.out's overshoot+settle have similar shape; budget ~0.02 SSIM for the late-tail curvature mismatch (validated lower than predicted in spec; original notes overestimated drift).", " → a sub-composition host with data-start/data-duration in seconds; the scene's own file uses local time and explicit gsap.set(opacity, 0/1) at its boundaries to crossfade in/out cleanly", "