← scroll-world · 07

The Empty
Leg

The half of a shipping container's life that nobody films. One green box is lifted off a ship, unloaded, stacked empty, washed and repaired, matched to a new booking and loaded back aboard. The world is cool grey and only the box has colour. Ninety-six seconds, twelve shots, no cuts. Neighbouring shots share one anchor frame, so the seams line up; the last shot pulls back until the whole terminal is a loop and the box is one dot on the departing ship, the same composition as the first.

1:45 running time (incl. title cards)
1920×1080 24fps
12 blocks
−14.1 LUFS
2026-10-03
This page is open from file://, where the YouTube IFrame API does not work. Run python deploy-src/serve_local.py and open http://localhost:8000 instead.
Version Scroll version ↗ Captions Open on YouTube · Download SRT

Twelve blocks

Six stops, five connectors, one closer. Click any block to jump to that point in the film (the 3-second title card is counted). Labelled blocks are the stops, where a station name and title are overlaid. This film has no overlaid numbers at all: every facility-specific figure it could have shown is left blank rather than estimated.

Two versions

Same generation, same twelve blocks, two different production lines.

Linear cut · main deliverable
Picture
Twelve 8-second clips joined with no transitions, with a 3-second title card in front and a 6-second end card behind (the AI disclosure is on the end card). Each clip starts from the previous clip's actual last frame.
Narration
Edge TTS en-GB-RyanNeural at -5%, one voice and one pace throughout. Each line starts 0.55 s into its block. Block 2 is the densest line in the film and runs long, so its audible start was moved earlier to 0.30 s; no word was changed to make it fit.
Score
“The Geometry of Calm”, AI-generated. The original runs 94.85 s and was stretched 1.24% to fit. It was not cut. Its opening is nearly silent for four seconds, which is how the piece starts, and it was left that way.
Mix
Full-band, explicit ducking envelope, 5.0 dB under every one of the twelve lines, 150 ms in and 400 ms out; the eleven music-only gaps measure +0.0 dB. Delivered at −14.1 LUFS / −1.5 dBTP. The voice sits at least 6.2 dB above the music in every block. Trade-off: the loudest four seconds are meant to land under the film's one claim (block 11). Measured, the voice there would have been 0.8 dB below the music, so the claim would not have been audible. The swell was moved to the music-only gap right after it (1:27–1:31), where it leads the next loudest passage by 1.9 dB, short of the 3 dB aimed for.
Overlays
Station name and title only, on the six stops. No numbers, so the end card does not need a “figures are illustrative” line.
Scroll version · web experience
Form
The video never plays; only its currentTime is driven by scroll position. The camera really is moving, scroll only drives time.
Length
1:16. Connectors are sped up 2×, not trimmed. Stops keep their full length. Block-start mapping error is at most 0.088 s (threshold 0.1 s).
Sound
Silent by design. Browsers block autoplay with sound, and a film designed to be silent reads better than one that was muted. The argument is carried by the text cards.
Encoding
1080p (the upscaled download from Flow's gallery, not an upscale of ours), CRF 30, one keyframe every four frames, 21.3 MiB. Cloudflare Pages answered Range requests with 200 instead of 206 in earlier tests, and without Range there is no scrubbing, so the video is served from GitHub Pages.
Fallbacks
Three paths: prefers-reduced-motion, video not ready after 12 s, and load error. The fallback layout is complete and readable; static frames enter the DOM only on a fallback path.
Four decisions
  • Only the hero box is green. The world is cool grey and the hero box is the one saturated colour in the film. Using the hero box as a reference image turned other boxes green, and the style line “single brand-green highlight” painted green on assets that had no hero in them, so the supporting assets were generated without references and with a separate style line.
  • The opening line is a floor, not a headline. “More than one in five” holds under every counting method found (by boxes and by TEU-miles in Sea-Intelligence's 2026 analysis, and in Drewry's 2016 count of all containers moved by sea). “One in three” is a single consultancy's single method, so it was not used. The rest of the script is hedged the same way: many boxes, stacks can climb, it usually leaves on a booking, much of the cost.
  • The one sentence with an edge. “The empty leg is never free, because much of its cost is carried in the price of the full ones” is the only claim in the film. Carriers do pass repositioning costs on to head-haul shippers, and give back-haul shippers discounts to recover some of it. It blames nobody and was deliberately not softened.
  • Words in a prompt get printed. The word “brand” ended up painted on container doors, and the model stamps ID blocks on any large flat door end. The word was removed from the clip prompts, and the small door-end marks that remained on blocks 4 and 10 were filled in post-production from the box's own green.

Known flaws, not fixed

  • Six short dissolve ghosts where the model morphed toward the last-frame anchor, at about 10.6, 21.3, 46.7, 52.6, 69.9 and 84.5 s of the master (0.3–0.8 s each).
  • Small floor numerals in block 3; a faint speck on a roof in block 6; a faint red hull on a background ship in block 10; the ship in block 12 is still alongside at the end.
  • The open-door depot is a visual device. Real depots mostly stack with doors shut, and the narration never says the doors are open.

Sources

The narration states only qualitative or global facts, with no number describing a particular facility. “Read level” says what I actually read: “full text” means the page was fetched and read (through a summarising tool, not verbatim); “snippet” means only the search excerpt was seen. Snippet-level sources should be checked by a person before relying on them.

  1. Global Empty Container Shipments Hit Record Levels (Global Trade Magazine, reporting Sea-Intelligence, 2026-06-01)
    Block 1: about a third of moves by box count against a quarter before the pandemic; 30% against 24% by TEU-miles. Blocks 2 and 11: uneven trade flows force repositioning, and its cost reaches the head-haul shippers. Other recent articles repeat this one report; they are not independent. Read level: full text (summarised).
  2. Castrellon et al. (2023), “Assessing the eco-efficiency benefits of empty container repositioning strategies via dry ports”, Transportation Research Part D, vol. 120
    Block 1: states that in 2016, 24.6% of all containers moved by sea were empty, citing Drewry's annual market review (2017). A count independent of Sea-Intelligence, and also above one in five, though a decade old and cited second-hand. Read level: full text of the paper.
  3. Marine Insight — How is Management of Empty Shipping Containers Carried Out?
    Block 11: carriers pass repositioning costs to head-haul shippers and discount back-haul rates to recover part of their variable cost. Read level: snippet.
  4. Hyster empty container handler (AJOT) and a single-site empty-depot safety procedure (NSW planning documents)
    Block 5: empty stacks can go higher than loaded ones (up to 9 high for empty handlers against 3–5 for loaded; 7 against 5 in one procedure). One is a manufacturer's catalogue and one a single site, so the narration gives no number of tiers. Read level: snippet.
  5. IICL repair criteria and TT Club — cargo-worthy containers
    Block 7: a box must have a clean, dry floor, no cargo residue or pests, and a sound, weather-tight structure. Read level: snippet.