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
- 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).
- 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.
- 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
- Content added.
- Content removed.
- A new article.
- Solid markers are exact locations; faint ones are approximate (a related place).
- 3A number means several edits close together. Click it to see them all.
Controls
- Hide panels with the chevron in the corner of the sidebar or sky map; the chevron stays where it is, so click it again to bring the panel back. The sky map starts folded up.
- Resize the sidebar by dragging its left edge (on a phone, the grip on its top edge). Double-click the edge to go back to the default size.
- Click the status line under the title (“live from Wikipedia”) for details: the edit stream, how fast the page is looking up places, whether Wikipedia has asked it to wait, what's waiting, and each server it talks to.
- Click the placed, exact, approximate or in the sky numbers to list those edits in the sidebar.
- Search finds edits recorded this session by title, place, language or editor. Combine it with the filters and the Placed and Unplaced tabs.
- Markers, Bars, Heatmap at the top of the legend switch between numbered markers, bars (additions on the left in teal, removals on the right in orange-red) and a thin heatmap. In heatmap mode, click the globe to open the newest edit near that spot.
- Pause stream disconnects from the live feed; resuming catches up on up to 15 minutes of missed edits.
- With your system's reduce motion setting on, the globes don't rotate on their own, ripples are skipped and camera moves jump instead of gliding.
- Follow turns each globe to the newest edit. Pause rotation buttons stop each globe spinning. Each globe also holds still while your mouse is over it (or one of its bars, markers or titles), so they are easy to point at; over the space around it, it keeps turning.
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:
?sky=1opens the sky map;?sidebar=0hides the sidebar.?points=markersor?points=heatmap(bars are the default);?height=bytessizes bars by bytes changed.?wikis=enfor English Wikipedia only, or?wikis=allfor every Wikipedia.
For example: ?sky=1&points=heatmap&wikis=en
How we built it
- Feasibility. Confirmed that the live edit feed and the article-coordinates API both work straight from a browser, so no server is needed.
- First prototype. A globe.gl page with the live feed, batched coordinate lookups, ripples, a detail card and optional sound.
- Wikidata fallback. Used related places on Wikidata so many more edits could be placed, drawn as approximate.
- Sky map. Added a second globe for the sky, with star and constellation data, orbit calculations and planet positions.
- Polish. Clickable floating titles, a Follow mode, a starfield behind the Earth that matches the sky map, and retries when rate-limited.
- Readability. Merged nearby edits into counted markers, added the Unplaced list and per-globe rotation buttons.
- 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).
- Navigation. Show/hide toggles, search, clickable stats and this page.
- Point styles. A thin heatmap, and paired bars for additions and removals with a small chart in the card.
- Quality of life. Background tabs, reduced motion, catching up after a pause, colour-blind-safe colours and a browser test suite.
- 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.
- Get the code from GitHub:
git clone https://github.com/lbeckman314/wiki-space.git - Start a web server in that folder. With Python 3:
Or with Node.js:cd wiki-space python3 -m http.server 8000npx serve . - 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:
- GitHub Pages: push the folder to a repository, then in the repository's Settings → Pages, deploy from the main branch, root folder.
- Netlify or Cloudflare Pages: drag the folder onto their deploy page, or connect the repository with no build command.
- Your own server: copy the files into any directory your web server already serves.
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
| What | Source | License |
|---|---|---|
| Live edits | Wikimedia EventStreams | Wikimedia terms of use |
| Article coordinates and summaries | Wikipedia (MediaWiki and REST APIs) | Text: CC BY-SA 4.0 |
| Places, sky coordinates and orbits | Wikidata | CC0 |
| 3D globes | globe.gl (built on three.js) | MIT |
| Earth textures | three-globe example images, based on NASA imagery | See three-globe |
| Stars and constellations | d3-celestial data | BSD-3-Clause |
| Planet positions | Astronomy Engine | MIT |
| Inspiration | Listen to Wikipedia by Hatnote | – |