← awwwards.skill

Demo 11 · cut film · nine shots, nine files

A cottage at first light with its door open, a small red-cloaked figure walking away down a dirt path toward dark trees.

stacco

Cappuccetto Rosso in nine shots — and the cut is the one telling it

SHOT 01/09 28 mm LOCK + PUSH 00:00.0

prima luce

She is given a basket and a road

First light on the mother’s cottage. The wood begins where the light stops, and the road only goes one way.

come è montata

Soglia hid its cuts. This one prints them.

Demo 09 is a single camera flight through a hill town. It had to be cut into seven files for one boring reason — a browser cannot seek a clip it has not loaded — so every cut was hidden inside a doorway and the seam frame was shipped twice. Here the cutting is the point, so the file boundary and the artistic boundary are the same boundary: one shot, one clip, nine of each. There is no seam frame, no crossfade, and nothing in the engine that pretends the edit is not happening.

What that buys is the thing the brief actually asked for: a frame that keeps changing. Nine setups, nine lenses from 18 to 85 mm, and nine different jobs for the camera — a lock-off, a static long lens, a side track, an overhead crane, an insert, a low wide two-shot, a race at knee height, a crane down, and a push in. A continuous take can hold your attention with places. An edit holds it with framing, and it never has to move an inch to change your mind.

What it costs is the loader. A dissolve gives you a hundred milliseconds of warning in which a still can stand in for a clip nobody has finished downloading. A cut gives you nothing: it lands on frame one or it lands on a poster. So the lazy radius here is asymmetric — it looks 2.4 viewport-heights forward and 0.8 back, keeps one extra shot resident, and that is the entire price of not being able to fade.

0128 0250 0335 0424 0585 0621 0718 0840 0958 MM

Block width is the shot’s baked duration; the number under it is its focal length. Eight cuts, no dissolves, and shot 04 — the overhead — is the one the other eight are arranged around.

Footage
None. One seeded scene file — no models, no textures, no AI
Cast
Two rigs of boxes and cones: a child 1.16 m tall, a wolf whose head meets hers
Render
984 frames, 24 fps, 2.39:1 — headless Chrome + Three.js, baked on the repo’s own machine
Clips
9. One per shot. No seam frame is shipped twice, because no seam is hidden
Lenses
Real fields of view: the slate’s millimetres are what the camera was actually given
Mobile
Re-framed to 4:5, shot by shot, with its own field and offset — never a crop
Transport
Native scroll position, mapped. The scrollbar, the keyboard and deep links stay honest
Autoplay
The film runs itself at its baked 41 s pace. Wheel, touch, arrows or spacebar hand control back
Reduced motion
No clip loads at all. Nine posters cross-dissolve — and nine stills with their lenses under them is a shot list

Self-scored in SCORE.md; the concept and the shot list were written before any markup in PLAN.md; asset provenance in ledger.json. The scroll-scrub doctrine both this and demo 09 are built on is 19-scroll-scrub.md.