~200 scenes, ~20 that matter
A feature averages ~180 scenes; the ones a real trailer pulls sit anywhere in the runtime, and there's no marker on them. Finding them means watching everything.
ReelSense narrows a film's ~200 scenes down to the ~20 worth auditioning for the cut — a trained ranking model, surfaced as a cutting-room tool. The system proposes; the editor decides.
A UC Berkeley MIDS DATASCI 210 capstone project · trained on the scene choices in real trailers across 51 films.
#1 34:35 Rising action Peter and Reggie discuss the money; alliance and attraction grow.
Real output from the shipped model — hover or arrow-key a scene to read why it was picked.
Our mission
Give editors their time back to judge, not scrub.
The background. A feature film holds hundreds of candidate scenes — across the 51 films we studied, 9,311 of them, about 180 per film. A trailer is cut from a couple dozen. Today that first pass is manual: an editor scrubs the whole runtime to find the handful of beats worth cutting with.
The why. That search is slow, repetitive, and easy to get wrong under deadline. The scenes that sell a trailer are a tiny, high-stakes subset scattered across two hours of footage, and time spent hunting for them is time not spent on the craft of the cut.
A feature averages ~180 scenes; the ones a real trailer pulls sit anywhere in the runtime, and there's no marker on them. Finding them means watching everything.
That first pass usually takes an editor 8–10 hours of sifting through a film's ~200 scenes — repeated for every film and every re-cut, always against a deadline. Under that pressure the search gets cut short — and good scenes get missed.
About an hour of compute returns 60 ranked candidates, each already clipped and playable — two of every three spotlight picks are scenes real trailers used. The editor's time goes to auditioning, not scrubbing.
User feedback
“Lorem ipsum dolor sit amet, consectetur adipiscing elit — sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.”
— Editor name · Title, studio (placeholder)
“Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.”
— Editor name · Title, studio (placeholder)
Our solution
ReelSense learns the scenes real trailers pull, then ranks a new film's scenes the same way — and surfaces the result in a calm cutting-room UI. The ground truth is 9,311 scenes from 51 films, matched back against the official trailers actually cut from them.
TransNetV2 — a deep model for shot-boundary detection — finds every cut in the film, and adjacent shots are grouped into scenes: the unit an editor thinks in.
28 numbers per scene: where it falls in the runtime, how long it runs, CLIP image-embedding similarity to five trailer-beat phrases, and how it's framed — close-up, medium, wide. A captioning model and an LLM add its story beat.
A gradient-boosted ranking model, trained on which scenes real trailers used, scores every scene for trailer-worthiness and orders the film top to bottom.
The top 60 come back tiered — 20 spotlighted, the rest one click away — laid out by story beat, each clipped and ready to play. Past rank 80 we recommend nothing.
Editors get a fast first pass in language they already use — beats, slots, timecodes, playable clips, an EDL export. Graders and faculty get a methodology that's discoverable and honest, one layer beneath the product surface.
Every surface is a shortlist to judge, not an answer to accept. Per-film scores, held-out generalization, and the model's known biases are admitted in the product — so the ranking earns trust instead of demanding it.
Results & demo
A walkthrough of ReelSense running on a sample public-domain film, plus the key results the ranking model produced.
Every number below is measured on films the model never trained on: we retrain it 47 times, leaving one film out each round, and four more films are held back from every run as a final check.
0.652
Leave-one-movie-out over 47 films. Random guessing floors at 0.318.
0.628
4 films never touched in training — 96% of ranking quality retained on unseen movies.
64%
Recall@20 caps at 0.342: a median film has ~63 trailer scenes for 20 slots. Random reaches 38%.
Reach out and we'll share more on the model, data, and results — and walk you through the app.
Contact us for more infoQuestions
What data is used, how the model works, what you get back, and more.
From 51 feature films in the MovieGraphs dataset — 9,311 scenes in total — paired with the official trailers those studios actually released. Every trailer is matched back to the film twice, once through dialogue (comparing trailer subtitles to the film's script) and once visually (comparing trailer keyframes to the film's frames). A scene that turns up in a trailer becomes a positive example: 3,720 of them, about 40% of all scenes.
One correction is worth naming. Our first pass counted every studio-published video, so TV commercials and promo spots inflated the counts on 14 films. We filtered them out and rebuilt the labels; the model's headline result got stronger afterward, not weaker.
Each scene is reduced to 28 numbers: where it falls in the runtime, how long it runs, how closely its imagery matches five trailer-beat phrases, how it's framed (close-up through wide), and the film's genre. A gradient-boosted ranking model, trained on which scenes real trailers used, turns those into one score.
The score is a within-film ranking, not an absolute grade: 100 means "the strongest candidate in this movie," not "a great scene by universal standards." Comparing scores between two different films isn't meaningful.
A deep model called TransNetV2 reads the film frame by frame and marks every shot boundary. Shots are then grouped into scenes — a continuous run of action in one place — because that's the unit a trailer editor pulls, and it's the unit our training labels are written in.
A known rough edge: cuts don't map perfectly onto scenes, so about half of what comes out is under five seconds. Some of those fragments are real beats, but a one-second sliver ranked near the top is a segmentation artifact rather than a recommendation worth acting on.
Constantly, and we'd rather you know the pattern than discover it. About one in three spotlight picks is not a scene the real trailer used. Beyond that, the model has two measured biases: it under-picks the final third of a film (29% of real trailer scenes come from there; it draws 20%), and it leans on scene length roughly three times harder than the labels justify, so quick reaction beats and one-liners get buried.
It also can't tell "important to the plot" from "used in the trailer" — several of its confident misses are real turning points that editors simply chose not to spoil. That's why nothing here auto-cuts anything: the system proposes a shortlist, and the editor decides.
About an hour for a feature. Our measured run — a 1 h 53 m film, 405 MB — took roughly 57 minutes end to end: the upload goes straight from your browser to storage, the ranked scenes land around the 40-minute mark, and the story-beat storyboard follows about 20 minutes later. You can read the rankings while the beats are still being written.
Nearly all of that is GPU work on the film itself — shot detection, embedding every second of footage, cutting preview clips, captioning each scene. It costs well under a dollar of compute per film.
Sixty ranked candidates, arranged into a story-beat storyboard — setup, turning point, climax — with the top twenty spotlighted. Each card carries a playable clip cut from your own film, the scene's timecode, its score, and a one-line note on why it was labeled that beat.
From there you can trim a scene, collect the ones you want, and export your selects as an EDL to open in your editor. Sixty is a deliberate cap: past about rank 80 the ranking stops beating chance, so we don't dress those up as recommendations.
A beat is one story moment — the setup, the thing that upends it, the turning point, the climax. A beat sheet is those moments in order: the shape a story moves through, and the shape a trailer borrows when it takes you from "here's the world" to "here's what threatens it" in two minutes.
ReelSense labels one for your film. After the ranking, each candidate scene is described by a captioning model, and a language model reads those descriptions in order and names the beat each scene plays — on a six-part spine: setup, inciting incident, rising action, midpoint, climax, resolution.
Pick a genre and you get its spine as well. Romance runs meet-cute, spark, first conflict, falling in love, dark moment, grand gesture, reunion; a thriller runs ordinary calm through investigation, false lead, twist, confrontation. Every label carries the one-line reason the model wrote, and each scene is marked connective, supporting, or pivotal — so filler is easy to skip.
Checked against human-written scene descriptions, those labels land on the exact beat about 79% of the time and within one beat about 92%. When a slot has no labeled candidate, position in the runtime fills it — reliable at a story's bookends. We first tried assigning beats by image similarity alone; that was close to guessing, which is why a language model reads the scenes instead.
No — it's optional, and it changes the storyboard more than the ranking. A romance lane asks for a meet-cute and a dark moment; a thriller lane asks for an investigation and a peak threat; the same ranked scenes get sorted into whichever spine you pick.
One pooled model serves every genre, trained across all 51 films at once rather than split into a model per genre. Genre is one of its inputs, but when we measured that input on its own it moved the ranking by roughly nothing — so leaving it blank costs you very little.
This iteration was limited by its dataset, which carries no audio, music, or emotion signal — some of the biggest ingredients of a real trailer. The first priority is training data that includes them, alongside more films: modern titles with modern trailer styles, and more of the genres we're thin on — our corpus holds only three adventure films, and it shows in their scores.
We also plan act-aware features to recover late-film recall without indiscriminately surfacing spoilers. And the pattern itself generalizes — labels derived from professional artifacts, frozen foundation-model features, a learned reranker, an honest UI — to highlight reels, sports clips, lecture summarization, and podcast clip selection.
We test the model's ability to generalize by retraining it 47 times, each round leaving one film out and grading it on the film it just didn't see. Four more — Pretty Woman, Forrest Gump, The Social Network, Gone Girl — are held back from every training run we do.
Ranking quality is 0.652 on the leave-one-out films and 0.628 on the four untouched ones, where a random ordering would score 0.318. Losing so little between the two is the evidence that it generalizes.
Our team
Meet the team behind ReelSense.
This project was shaped by the people who guided and challenged us.
Whose guidance, feedback, connections, and encouragement were essential to this project.
Who shared their craft and shaped how we approached the problem and the product we built.
Who helped us navigate the copyright and licensing questions around sourcing film material responsibly.