Skip to content

dinghaoluo/the-zone-site

Repository files navigation

the zone

A reading companion for Pynchon's Gravity's Rainbow: episode structure, character co-presence, language registers, songs, dissolution, and the spatial metadata that holds the novel's geography together. Built as a static site from a data pipeline I maintain separately.

what's here

The site renders several views, each a different angle on the same 73-episode structure:

  • braid — the episode sequence with plotline threading, modal heatmaps, and recurrence patterns
  • glossary — a reading glossary drawn from annotation passes over the text
  • language — foreign-language passages, vocabulary registers, song positions, and translation transparency
  • network — character co-presence mapped as a force graph with community detection
  • dissolution — Slothrop's naming frequency, gendered presence ratios, and orbit patterns through the late episodes
  • episodes — sequence plate, waste density, part structure, and an anchor-quote index
  • terrain — Slothrop's route, rocket infrastructure density, and colonial returns
  • scenes / strands — modal heatmaps across a ten-episode window, and plotline-level threading
  • methods — notes on the analytical pipeline and how the data was produced
  • reference — bibliography and source annotations

repo structure

src/ is the Astro site. src/components/ holds the D3 visualisations as Astro components with inline <script> blocks. public/data/ holds the processed CSVs and JSON exports that components either import at build time or fetch client-side. data/provenance.md tracks where each imported asset came from and when.

running locally

npm install
npm run dev

Build with npm run build. Tests with npm test (vitest).

notes

The heavier analysis (NLP pipelines, network extraction, episode segmentation) lives in a separate working repo. This one stays the readable, deployable version. Some visualisation components are large because they're self-contained D3 scenes with their own data fetching, rendering, and interaction; I preferred that to fragmenting them into abstract layers.