The Simpsons · 1989–2026
808 Ways to Eat a Culture
The “it became a celebrity parade” cliché is false. It’s not a line — it’s an arc that peaks around seasons 10–19 and falls back.
This project reads all 808 episodes of The Simpsons, from seasons 1 to 37, and plots them as 808 dots drifting in the show’s own animated sky, each episode hand-tagged along three axes: the kind of story it tells, how heavily it leans on cultural reference, and the political or social issue it engages. It was built to test a common complaint stated as a straight-line decline — that the show “stopped being about a family and turned into a parade of celebrities playing themselves.” Counted across the full run, that cliché turns out to be false as stated: guest stars playing themselves form an arc, not a line, rising from nothing in season 1 to a peak around seasons 10 to 19 and then falling back to the mid-thirties. Nearly half of all episodes remain domestic, family stories throughout.
How it was made
The data
Every one of the 808 episodes was read and hand-tagged against a versioned rulebook into three layers, producing 6,177 named referents plus a one-line plot summary each — the tagging was a single-annotator reading pass, not an automated script or a model. Episode facts came from Wikipedia’s per-season tables and each episode’s article. Because Wikipedia’s cultural-reference coverage thins out in later seasons, 171 episodes are flagged as “thin” sourcing and that caveat is carried in the data itself.
Built with
- D3
- p5.js
- SVG
- Python
Each episode is an SVG dot in a single D3 force simulation (forceX / forceY / forceCollide) that re-clusters into a season skyline or a story blob when you switch views; d3.zoom drives scroll-to-zoom and drag-to-pan over a chip filter rail. p5.js paints the drifting cloud-sky behind it. The data pipeline is plain Python with no third-party packages.
Problems, and how I solved them
-
The problemWikipedia’s “Cultural references” sections are unevenly maintained and thin out across the run, so a drop in reference density in later seasons partly measures editor effort, not the show.
The fixThe 171 affected episodes were flagged with a “thin” marker and the argument leaned on guest-as-self counts instead, which stay reliable because guest stars appear in the cast list and infobox that even thin articles keep.
-
The problemTagging 808 episodes in order risks category drift, where a tag quietly means one thing in season 3 and another in season 33.
The fixA versioned rulebook with strict rules — every reference had to be named — was enforced, then a normalization pass re-applied the same six rules across all 37 seasons with an explicit changelog.
-
The problemFiltered-out dots were dimmed but still clickable, so clicking a greyed dot returned an episode that didn’t match the filter — the view looked right but behaved wrong.
The fixDimmed dots were given pointer-events: none so they become intangible, leaving only the matching dots clickable.
-
The problemThe single no-scroll screen had to hold all 808 dots at once, and sizing that worked at 441 episodes broke as the set grew.
The fixDot radius and label density were made functions of the dataset size — radius shrinks past 700 episodes, labels thin to every other season — so the layout stays legible as it fills.