← Back to the globe

About Wiki Space

Live edits to Wikipedia articles, placed on a 3D globe as they happen. Edits to astronomy articles appear on a sky map. Inspired by Hatnote's Listen to Wikipedia.

How it works

  1. Listen. The page connects to Wikimedia's public live feed of edits (EventStreams) and keeps edits to articles made by people, not bots, on the Wikipedias you choose (English, the top 20 languages, or all of them).
  2. Locate. For each edited article it looks for a location, in this order:
    • The article's own coordinates on Wikipedia: an exact location.
    • Its Wikidata item's coordinates: also exact.
    • For astronomy articles, a position on the sky map: right ascension and declination for stars and galaxies, today's position calculated from the orbit for asteroids and comets, a computed position for the Sun, Moon and planets, or the centre of its constellation as an approximate fallback.
    • Otherwise a related place on Wikidata: where it is located, its headquarters, where a person was born or died, or its country. These are approximate locations.
    • If none of these exist, the edit goes to the Unplaced list with the reason.
    Requests are batched (up to 50 articles at a time), every answer is cached, and the page backs off when Wikimedia asks it to slow down.
  3. Draw. Edits ripple on the globe and leave a marker that fades over 10 minutes. Edits close together merge into one marker with a count, and split apart as you zoom in.

Reading the globe

Controls

Sharing your view

Panels, the point style, the bar height and which wikis you watch are kept in the address, so copying it shares what you see, and bookmarking it keeps your view. Nothing is stored in your browser, so the plain address always opens the default view. Settings left at their defaults don't appear in the address. You can also write a link by hand:

For example: ?sky=1&points=heatmap&wikis=en

How we built it

  1. Feasibility. Confirmed that the live edit feed and the article-coordinates API both work straight from a browser, so no server is needed.
  2. First prototype. A globe.gl page with the live feed, batched coordinate lookups, ripples, a detail card and optional sound.
  3. Wikidata fallback. Used related places on Wikidata so many more edits could be placed, drawn as approximate.
  4. Sky map. Added a second globe for the sky, with star and constellation data, orbit calculations and planet positions.
  5. Polish. Clickable floating titles, a Follow mode, a starfield behind the Earth that matches the sky map, and retries when rate-limited.
  6. Readability. Merged nearby edits into counted markers, added the Unplaced list and per-globe rotation buttons.
  7. Timeline. Recorded edits by the time they were made and added a replay bar with speeds and keyboard control (since removed, to keep the page simple).
  8. Navigation. Show/hide toggles, search, clickable stats and this page.
  9. Point styles. A thin heatmap, and paired bars for additions and removals with a small chart in the card.
  10. Quality of life. Background tabs, reduced motion, catching up after a pause, colour-blind-safe colours and a browser test suite.
  11. Structure. Split the app into small modules (stream, globe, points, history, sidebar, card).

Run it locally

Wiki Space is a static site with no build step and nothing to install. You need a browser and any local web server.

  1. Get the code from GitHub:
    git clone https://github.com/lbeckman314/wiki-space.git
  2. Start a web server in that folder. With Python 3:
    cd wiki-space
    python3 -m http.server 8000
    Or with Node.js:
    npx serve .
  3. Open http://localhost:8000. With npx serve, use the address it prints.

Use a local server rather than opening index.html as a file: the page is built from JavaScript modules, which browsers only load from a server.

Trying things without waiting

Edits to astronomy articles are rare. To simulate edits to chosen articles (this only reads from Wikipedia and Wikidata), open:

http://localhost:8000/?simulate=Andromeda Galaxy|Betelgeuse|Mars

If lookups stall

Wikimedia limits how many requests each IP address can make across all its sites, and every open tab of this page (plus your own Wikipedia browsing) shares that limit. The page sends at most one lookup every 2 seconds (one every 10 seconds while its tab is in the background), packing many articles into each one. If it falls behind or Wikipedia asks it to wait, the status line says so. New edits keep arriving and are placed once lookups catch up. Closing extra tabs of the page helps, and so does avoiding shared networks such as cloud machines.

Deploy it

Any static host works, because the site is plain files:

Each visitor's browser talks to Wikimedia directly, so a busy site multiplies requests to Wikimedia. For many viewers, or for a timeline longer than one browser session, the next step is a small always-on server that reads the feed once, looks up locations once, and shares the results with every visitor.

Credits and data

WhatSourceLicense
Live editsWikimedia EventStreamsWikimedia terms of use
Article coordinates and summariesWikipedia (MediaWiki and REST APIs)Text: CC BY-SA 4.0
Places, sky coordinates and orbitsWikidataCC0
3D globesglobe.gl (built on three.js)MIT
Earth texturesthree-globe example images, based on NASA imagerySee three-globe
Stars and constellationsd3-celestial dataBSD-3-Clause
Planet positionsAstronomy EngineMIT
InspirationListen to Wikipedia by Hatnote–