Beauty renders
Finished pieces — served from Cloudflare R2
Clouds from train — 4s baseline + sky mask
1:28 · 1K stereo · 30 fps native · 4.0s baseline · HSV-intersection sky mask
Same 4s-baseline render as the adjacent variant, with a post-process sky mask: HSV-threshold per eye, intersect (parallax-aware so foreground clutter fails), feather, composite over a pale-blue sampled from the first frame's brightest agreed-sky pixels. Non-sky regions dissolve into uniform pale-blue, leaving the cloud composition unfought. Smaller file (10 MiB vs 15 MiB) because uniform fill compresses better.
Clouds from train — 3s baseline (no MCI)
1:29 · 1K stereo · 30 fps native · 3.0s baseline · single-stage Cloud Run
92s source rendered in one ffmpeg pass on Cloud Run (8 vCPU, 4 GiB, ~5 min wall). No motion-compensated interpolation — source 30 fps passes through unchanged. Single-stage pipeline (inline-v5-nomci.sh) skips the split-and-join because there's no slow stage to parallelise without MCI.
Clouds from train — 4s baseline (no MCI)
1:28 · 1K stereo · 30 fps native · 4.0s baseline · single-stage Cloud Run
92s source rendered in one ffmpeg pass on Cloud Run (8 vCPU, 4 GiB). 4s baseline sits between the 3s and 5s variants for direct comparison of how baseline affects perceived cloud depth.
Clouds from train — 10s baseline
1:22 · 1K stereo · 30→60 fps mci · 10.0s baseline · 3-part join
92s source rendered via the three-stage long-baseline pipeline: 3×31s prep-mci parts in parallel with seam-frame borrowing, mono concat, then 10s stereo offset. Wide baseline emphasises the depth of cloud layers.
Clouds from train — 5s baseline
1:27 · 1K stereo · 30→60 fps mci · 5.0s baseline · 3-part join
Same 92s source as the 10s render, with a 5s baseline for comparison. Three-stage pipeline with bridge-frame-clean joins between parts.
Clouds from train — 9s seam test (0.5K)
0:07 · 0.5K stereo · 30→60 fps mci · 2.0s baseline · 3-part join
Validation of the three-stage long-baseline pipeline. 9s source split into 3×3s parts, each prep-mci'd in parallel with seam-frame borrowing (option-2 fix from gardencam) so the two interior joins are bridge-frame-clean. Concat + symmetric head/tail trim for time-aligned stereo. End-to-end ~20 min, mostly VM allocation; ffmpeg work ~70s total.
Kingston by Bus
1K stereo · 30→60 fps mci · 1-frame baseline
Landscape pan from the top deck through Kingston. 1-frame baseline (0.0167s) appropriate for the close-foreground bus context. inline-v4 single-pass pipeline on e2-standard-2, eye_order right-early baked in.
Clouds from train — 92s split-and-join test
1:32 · 1K stereo · 30→60 fps mci · 2.0s baseline
1080p Top Shot source rendered as three parallel 30s parts on e2-standard-2 (2 vCPU, 8 GiB) with a fourth concat job polling GCS until all parts present. Total wall 29 min vs ~110 min sequential = 3.8× speedup. First run with STEREO_EYE_ORDER=right-early baked into the encode (no post-swap needed).
Clouds from train — 4K source at 1K
0:46 · 1K stereo · 30→60 fps mci · 2.0s baseline
4K source downscaled in prep stage to 1K (1280×720) per eye before mci. CRF 28 single-pass on e2-standard-2 (2 vCPU, 8 GiB). Peak RAM 5.97 GiB, wall 48 min. Eyes swapped post-encode for right-to-left camera motion.
Clouds from train — 1K test
0:18 · 1K stereo · 30→60 fps mci · 2.0s baseline
First clouds-from-train experiment. 1080p Top Shot source downscaled to 1K (1280×720) per eye, mci interpolation, CRF 28. Eyes swapped post-encode for right-to-left camera motion.
Arrival at Waterloo
4:18 · 1080p stereo · 30→60 fps mci
Bus-train journey from Surbiton ending at Waterloo. Software-encoded HEVC two-pass slow preset, 8 segments rendered in parallel on GCP Batch, served from Cloudflare R2.