Skip to content

Latest commit

 

History

History
72 lines (54 loc) · 3.07 KB

File metadata and controls

72 lines (54 loc) · 3.07 KB

Atlas of Ancient Rome

Watch the Roman Empire rise and fall on an interactive map. Trace battles, roads, legions, emperors, aqueducts, and the trade routes that bound an empire — across a span from the founding of Rome in 753 BC to the fall of Constantinople in 1453 — twenty-two centuries on a single timeline you can scrub through.

Live demo — open in a desktop browser for the full experience.

Why this exists

There is an enormous amount of excellent, openly-licensed data about the ancient world — Pleiades, the Ancient World Mapping Center, ORBIS, Vici, and more. It's accurate and it's free, but it's scattered across a dozen formats and rarely experienceable. This project stitches it into one coherent, temporally-aware map and wraps it in a narrative you can actually follow.

The data is the commons; the experience is the contribution.

Features

  • Timeline playback — scrub 753 BC → 1453 AD and watch territory, roads, and cities change over time, with smooth cross-fades between eras. Rome's borders move at war-level resolution (Cannae, Actium, Justinian's reconquest, the Arab conquests — 241 territorial changes).
  • World Empires — every polity on earth in the same window, named and dated (Cliopatria / Seshat, CC BY 4.0): the Sasanians, the Caliphates, Han China, Gupta India, the steppe khaganates — Rome among the powers.
  • Layered atlas — battles, legions, emperors, aqueducts, ports, mines, trade routes, epigraphy, shipwrecks, religious sites, and more, each toggleable.
  • Story mode — guided narrative tours (Hannibal's march, the fall of the Republic) that drive the map for you.
  • Connections graph — explore how people, places, and events relate.
  • Search & detail — every place, person, and event is inspectable, cross-linked, and enriched from Wikipedia/Wikidata.

Tech stack

React 19 · TypeScript · Vite · Leaflet · D3 · Zustand · Tailwind. All rendering is client-side; the historical data ships as static JSON.

Getting started

npm install
npm run dev        # start the dev server
npm run build      # type-check + production build
npm run test       # run the test suite

Map tiles use Stadia Maps. Copy .env.example to .env and add your own key:

VITE_STADIA_API_KEY=your_key_here

Note: VITE_-prefixed variables are inlined into the client bundle at build time, so this key is visible in the deployed site. Restrict it to your domain in the Stadia dashboard — it is not a secret.

Data & attribution

The historical data is not ours — it comes from the open digital-humanities commons and carries each source's own license (CC-BY, CC-BY-SA, ODbL, MIT, CC0). We are grateful to those projects. See DATA-SOURCES.md for the full list, licenses, and required attribution.

License

Application code and original narrative content: MIT (see LICENSE). Bundled/fetched data: licensed by its respective sources — see DATA-SOURCES.md.