Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
Draw countries freehand, place them on a world map, and get scored on how close you are. Plus flag quizzes, a rank-the-economies mode, and a data explorer.
GamesJavaScript · CSSGitHub @LolispoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A browser geography game: draw countries freehand, place them on a world map, and get scored on how close your shape and position are to the real thing. Plus flag quizzes, a "rank the economies" mode, and a data explorer — all in vanilla HTML/CSS/JS with no build step.
Play it: https://geo.petterbuilds.com/
Daily Challenge — one deterministic country per day
Quick 3 — 3 random countries (drawing three is a session; ten is a slog)
Famous 5 — the 5 largest countries by area
Speed Round — a 3-minute timer, as many as you can
Streak — keep going until your score drops below 25
Continents / World — all 7 continents, or every country
Regions — Africa, Europe, Asia, N. America, S. America, Oceania
Top 10 / Bottom 10 — pick the countries at the top (or bottom) of a ranking
Plus combinable toggles (Placement Only, Tweak, Blind, Explorer, Hard) and separate flag-guessing, flag-color-picker, rank-line, and data-explorer modes.
It's a static site — just serve the folder over HTTP (the data loads via fetch,
so opening index.html directly won't work):
python3 -m http.server 8080
# then open http://localhost:8080
docs/DATA.md for the regeneration pipeline.data-map.html — the pipeline, on the served site: which source feeds which
script feeds which file feeds which module, plus the cross-file integrity checks,
computed live from the committed data. Per-entity coverage lives in the app instead,
under Data Explorer → Coverage (#/explore/coverage), where the Colors column
checks each curated flag colour against the flag's own image.| Path | What |
|---|---|
index.html | All game screens |
js/main.js | Central Game class / state machine |
js/drawing-canvas.js, js/world-canvas.js, js/shape-handles.js | The two interactive canvases and their shared resize/rotate handles |
js/scoring.js | Rasterized IoU scoring |
js/geo-data.js, js/datasets.js | Data loading and reference shapes |
data/ | Country geometry, stats, flags |
scripts/ | Data regeneration (Node) |