This repository contains a data-driven film analysis of Christopher Nolan's Interstellar.
The project utilizes Python and the marimo notebook framework to correlate low-level audio and video metrics with a defined ground truth of the film's narrative structure (divided into five distinct phases: Earth, Miller's Planet, Mann's Planet, 5th Dimension, and Reunion).
The analysis is based on three main pillars of automated feature extraction:
- Ground Truth Modeling: A theoretical tension curve mapped via Gaussian peaks to compare computational results against the narrative arc.
- Scene Dynamics: Extraction of cut frequencies and shot lengths using
scenedetectto measure pacing. - Visual Analysis: Frame-by-frame luminance calculation via
OpenCVto track lighting and color grading shifts across different planetary settings. - Audio Analysis: Computation of RMS amplitude and onset strength using
librosato quantify sound design intensity and musical scoring.
- Framework:
marimo - Audio & Video Processing:
librosa,OpenCV(cv2),scenedetect - Data Handling & Visualization:
numpy,pandas,matplotlib,plotly
To run this notebook, ensure your local directory follows this structure. Due to copyright restrictions, the raw media files are not included in this repository.
├── data/
│ ├── Interstellar.mp4 # Original video file (needs to be provided)
│ └── audio.mp3 # Extracted audio track (needs to be provided)
├── plots/ # Directory for generated output plots
└── film_plot_analysis.py # Main marimo notebook