Skip to content

#30DayMapChallenge Day 6: Vintage

Posted on:November 6, 2026 at 09:00 AM

Day 6 of the #30DayMapChallenge 2026.

Vintage — Spin up your time machine and do a map which looks like a historical map, or maybe the theme itself should be vintage.

I took the second option. Nothing says vintage like 4,500 years old.

For Day 6 I left Sydney behind and went back to the Bronze Age, to the Indus Valley Civilization: Harappa, Mohenjo-daro, Dholavira, Lothal and the hundreds of towns and villages around them. I wanted to see how far the Harappan world reached, and then ask MapAI a more fun question: where do we dig next?

MapAI showing 45 Indus Valley Civilization sites as small coloured dots by phase on a satellite basemap of Pakistan, north-west India and eastern Afghanistan, with major cities as white circles and 71 magenta candidate dig zones scattered between them, and a results panel listing the top five candidate dig zones

The data

This is the first map of the challenge with my own data. The sites come from the IASNOVA Interactive Atlas of Indus Valley Civilization sites, which covers 45 major, regional, coastal and frontier Harappan sites with coordinates, chronology, site type, finds and trade connections. I turned the atlas into a CSV and uploaded it to MapAI.

The 45 sites stretch from Shortugai in northern Afghanistan to Daimabad in Maharashtra: 28 in India, 16 in Pakistan and 1 in Afghanistan.

The prompt

I have uploaded a CSV of 45 Indus Valley (Harappan) Civilization sites with latitude and longitude (source: IASNOVA Interactive Atlas). Load it as a point layer and check all coordinates are valid.

Analysis:

  1. Extent. Draw a convex hull around all sites and calculate its area in km² using an equal-area projection.
  2. Where do we dig next? Build a Delaunay triangulation of the sites. Treat any triangulation edge longer than 150 km as a gap in the known network. Mark the midpoint of each gap edge as a candidate zone with a 25 km radius. If a major-river dataset is available, rank candidate zones higher when they are within 20 km of a river, since Harappan settlements followed rivers. Rank the zones by gap length, then by river proximity.

Output 4 layers on a greyscale basemap (light grey, dark grey or black):

  1. The extent hull: no fill, thin white dashed outline.
  2. Candidate dig zones: semi-transparent bright magenta circles, labelled with their rank.
  3. Sites as bright circles coloured by phase in vivid, high-contrast colours (e.g. bright yellow, cyan, orange, lime green), with major cities (site_type “Major city”) noticeably larger.
  4. Labels for the major cities in white with a dark halo.

Tooltips for sites: Site name, Chronology, Site type, Modern location, Significance. For candidate zones: Rank, Gap length (km), Sites at each end, Near a river (yes/no).

In your answer, tell me:

  • site counts by phase and country, and the hull area
  • the top 5 candidate dig zones, with their approximate location (modern region and country), the sites they lie between, and why they rank highly
  • the assumptions and limitations, including that these 45 sites are a selection of over a thousand known Harappan sites, so some “gaps” may already be excavated

The idea behind “where do we dig next?” is simple. Join every site to its neighbours with a triangulation, and look for the long edges: stretches of the network with no known site in between. If Harappan towns sat every few dozen kilometres along rivers and trade routes, a long empty edge is a place where something might be waiting.

What MapAI found

The top five candidate zones:

RankGapBetweenApproximate midpoint
11,492.6 kmShortugai – Sutkagen Dor31.48° N, 65.50° E
21,469.5 kmDaimabad – Sutkagen Dor22.64° N, 68.46° E
31,095.7 kmAlamgirpur – Daimabad24.27° N, 76.13° E
4944.2 kmAlamgirpur – Bhagatrav25.37° N, 75.20° E
5901.7 kmNausharo – Shortugai33.35° N, 68.51° E

What MapAI did

By the numbers, this map took:

Here is its evidence trail, in its own words where possible.

How it understood the question

The workflow

  1. Checked all 45 rows for missing, out-of-range, duplicate and invalid coordinates.
  2. Counted the sites by phase and country.
  3. Calculated the convex hull area in an equal-area projection.
  4. Built the Delaunay network and kept the 71 edges longer than 150 km.
  5. Looked for a major-river dataset and found none suitable.
  6. Saved four styled layers with the site and candidate-zone tooltips.

The SQL

The triangulation is a one-liner in PostGIS. ST_DelaunayTriangles turns the 45 points into a mesh of triangles, which MapAI then breaks into edges:

SELECT
  d.path[1] AS tri_id,
  d.geom AS tri
FROM
  (
    SELECT
      ST_DelaunayTriangles (ST_Collect (geometry), 0.0, 0) AS gc
    FROM
      pts
  ) x
  CROSS JOIN LATERAL ST_Dump (x.gc) d

Each long edge is then measured on the globe, not on a flat map, and its midpoint found by walking half the distance along it with ST_Project:

ST_Distance (geom_a::geography, geom_b::geography) / 1000.0 AS gap_length_km,
ST_Project (
  geom_a::geography,
  ST_Distance (geom_a::geography, geom_b::geography) / 2.0,
  ST_Azimuth (geom_a::geography, geom_b::geography)
)::geometry AS midpoint

Gaps and uncertainties

MapAI flagged five:

You can explore the live map here: 06 Vintage - Indus Valley Civilization.

What I noticed

The Harappan world was enormous. More than 1.6 million square kilometres from just 45 sites, and that is an underestimate, because the hull only reaches as far as the sites I gave it. For comparison, that is larger than Iran (about 1.65 million km²).

The “where do we dig next?” ranking is where it gets honest. The top two gaps are not really gaps at all. They are the longest edges of the triangulation, which run around the outside of the network: Shortugai, far up in northern Afghanistan, to Sutkagen Dor on the Makran coast, and Sutkagen Dor to Daimabad in Maharashtra. The midpoint of the second one lands in the Arabian Sea. Nobody is digging there.

That is the classic weakness of a Delaunay triangulation: the edges on the outside are long simply because there is nothing beyond them. The more interesting candidates are further down the list, in the long gaps inside the network, such as the stretches of Rajasthan between the Ghaggar-Hakra sites and Gujarat.

It is also a lesson in what the data can and cannot say. With 45 sites out of more than a thousand, most of these gaps are gaps in my CSV, not in the archaeological record. I asked MapAI to say so, and it did, right at the top of its gaps.

A better second pass would drop the edges on the outside of the network, add a river layer so the ranking can follow the old river courses, and use a much fuller site list. That one is going on the list for later in the month.

Day 6 done. Tomorrow: a 10 minute map.

#30DayMapChallenge #mapai #madewithmapai