← the table

Where the Ramayana Was Written · 187 tellings

Somewhere In Here

187 tellings, and only 36 can be placed on a map. “Somewhere in here” is the honest answer — and it pins down almost nothing.

open the piece

“Somewhere In Here” plots 187 tellings of the Ramayana and 65 films based on it onto a hand-drawn world map, with cards that say not just where each work came from but how sure we can be about that “where.” It began as a literal question — where was the Ramayana written — and the data refused to answer, because most tellings have no recorded place at all. The finding is that the map is really a map of archives, not of poems: a work enters the record almost only through a surviving patron or a physical findspot, so patronage and preservation, not language or geography, decide whether it can be placed. Following A.K. Ramanujan, the absences are the argument — oral, subaltern and women’s tellings leave no colophon, so they were never collected, placed or counted.

How it was made

The data

Two hand-gathered corpora sit underneath: 187 tellings, built out from Wikipedia’s “Versions of the Ramayana” and expanded with international, subaltern and performance traditions whose absence was itself the point, and 65 films harvested through the MediaWiki API and enriched from Wikidata and infobox templates. Every place was geocoded through OpenStreetMap’s Nominatim, and the basemap is 176 Natural Earth country outlines stored locally as GeoJSON so the page runs offline.

Built with

  • Leaflet
  • GeoJSON
  • Python
  • Gemini

Leaflet handles all the pan, zoom and rendering over an offline Natural Earth basemap, with every mark a custom HTML div-icon so it can hold a piece of artwork, and Leaflet.markercluster collapsing and spiderfying overlapping works. Colour encodes age, shape encodes the kind of telling, and fill encodes whether we actually know the place. An SVG feTurbulence / feDisplacementMap filter gives the coastlines their hand-inked wobble, and all the data is inlined so the page runs from a file.

Problems, and how I solved them

  1. The problemMost tellings had no recorded place, and of those that did, three-quarters came from the compiler’s own knowledge rather than the cited source — so a true-looking table was mostly unsourced in its provenance.

    The fixA “lateral judge” audit was run over the data and a place-source column was added, recording for every work whether its place came from the article, from outside knowledge, or was simply unknown, so the map could be drawn honestly.

  2. The problemLarge or contested regions like “India” cannot honestly be pinned to a single spot on a map.

    The fixCountry-only tellings are floated offshore in open water on a dashed leash to a lightly shaded country — India’s cluster sits in the Bay of Bengal — and the card labels them “country only” rather than claiming ground.

  3. The problemRoughly half the imagery needed — obscure festivals, audio dramas, non-free film posters — simply had no reusable archival source.

    The fixReal archival art was gathered from open-access museum and Commons collections where it existed, and the missing illustrations and posters were generated and labelled openly on each card as made for the project.

  4. The problemNeither source was complete alone: Wikidata knew directors but almost no studios, and an intuitive “does it mention Ramayana” filter dropped genuine films while keeping tangential ones.

    The fixWikidata and parsed infobox fields were merged to near-complete coverage, and films were classified by a stated, computable rule from character-mention counts, with the inputs shipped so anyone can reclassify them.