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.
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
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.
npm install
npm run dev
Build with npm run build. Tests with npm test (vitest).
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.