September 2026 · Build notes

One world, many maps, zero setup

Maps with Python is an interactive field guide to map projections. Grab a globe, flatten it, and watch every projection bend the truth differently — with the geodesy computed live by NumPy running in your browser. This is how it came together, and why "no Python setup needed" was the whole point.

Site mapswithpython.com Team Anaconda Incubation Stack Pyodide · NumPy · Three.js · KaTeX

A map is an optimization problem

Every flat map of our 3D world forces a choice: every projection preserves something and changes something else. Mercator was designed in 1569 for navigation — a sailor needs a steady bearing, so directions are true and areas near the poles balloon. A reader comparing countries needs fair areas, which is the job of equal-area projections like Gall–Peters and Equal Earth. AuthaGraph abandons the flat rectangle entirely, folding the world onto a tetrahedron.

You can state that tradeoff. You can also let someone feel it: drag a real globe, flatten it, and watch the distortion move to wherever you're not looking. That's the site.

Follow the circles

The distortion overlay descends from Tissot's indicatrix — the idea of drawing the same small circle on Earth in many places and seeing what the projection does to it. A projection can enlarge the circle, shrink it, or stretch it into an ellipse. These marks make the tradeoffs visible in a way no table of projection parameters can.

One subtlety worth confessing in the UI itself: on the interactive globe, circles near the rim look flattered purely from perspective — you're seeing them at an angle. That's not flat-map distortion. The site separates the two so the indicatrix teaches the right lesson.

The stack: real Python, in the page

Why zero setup matters

A field guide that requires an environment is a field guide most people never open. Running the math in-browser means the site works on a phone, works offline once loaded, and never asks anyone to trust a server with their session. It also makes a quiet argument we care about: Python is a good language for explaining things, not just for building products. A few lines of NumPy can change how you see the world.

Why this matters now

Projection choice isn't a settled historical curiosity. In September 2026 the UN General Assembly adopted a resolution championed by Togo encouraging equal-area projections for general-reference world maps, and the African Union followed with a statement welcoming it. Mercator's 450-year run as the default world map is finally being examined by the people it has always misrepresented. A site about what projections optimize for turned out to be timely in a way we didn't plan.

Try it

mapswithpython.com — start with the globe, flatten it, turn on the distortion circles, then pit Mercator against Gall–Peters, Equal Earth, and AuthaGraph. Sources and notes are one tap away in the footer.

Sources & notes

  1. Šavrič, B., Patterson, T., & Jenny, B. (2019). "The Equal Earth map projection." IJGIS 33(3), 454–465.
  2. Snyder, J. P. (1987). Map Projections: A Working Manual. USGS Professional Paper 1395 — Tissot's indicatrix.
  3. Narukawa, H. (2022). "Formulation of AuthaGraph Map Projection and an Evaluation of its Distortion." Map 60(1), 1–16.
  4. Kerkovits, K. (2021). "Image-Based Angular Distortion Metric for Comparing World Map Projections." ISPRS IJGI 11(1):1.
  5. Goldberg, D. M., & Gott, J. R. (2007). "Flexion and skewness in map projections of the Earth." Cartographica 42(4).
  6. Natural Earth vector data (public domain); NASA Blue Marble imagery; PROJ reference implementations.
  7. African Union Commission statement on the UN General Assembly equal-area map resolution, September 4, 2026.