β½ Latest update
World Cup 2026 slice β a tier that cuts across every mode. A new β½ World Cup selection isolates the 47 nations of the 2026 FIFA World Cup (Scotland omitted as part of the UK; England β GB; CuraΓ§ao backfilled). It's a named slice, not a level: build_atlas stamps each roster nation with a wc2026 flag (single source of truth in atlas_soft.json β slices), and every mode can filter to it. Live in: the Mission & Geocode tier picker (new β½ chip + matching map highlight), Flag Match & Shape Match (a "π World Tour / β½ World Cup 2026" mode toggle that keeps the choice-count ladder), and the Flags & Shapes print worksheets (a "World Cup 2026" difficulty option). CuraΓ§ao appears everywhere except Shape Match (no shape in our medium-res geometry). Also: added soft data for Cape Verde & Bosnia.
Permanent build fix: the REST Countries v3.1 API was deprecated in 2026 (every endpoint now redirects to a dead error file), which broke the live-fetch atlas build. Fixed for good by going fully offline β the machine-derived "hard" fields are now a committed snapshot (data/countries_base.json), and build_atlas.mjs is a pure offline merger of base + atlas_soft.json (soft fields + slices). No network dependency, deterministic output, can't break from an upstream change. Verified byte-identical to the previous atlas (197 countries, 47 WC).
Engine bits: new {type:'slice', value:'wc2026'} pool spec + AAQuiz.poolForTier(); renderInto({tierFilter}) predicate for non-numeric tiers; the global tier state now accepts a 'wc' token alongside levels 1-4.
πΊ Earlier update
Shape Match shipped β game + print worksheet. A new πΊ Shape Match identifies a country from its outline silhouette. It's mechanically identical to Flag Match (same 8-rung ladder, smarter distractors, streaks, level-up, localStorage progress) but shows the country's shape instead of its flag. Shapes are rendered live from the Natural Earth geometry via a new AACountries.silhouette() helper that clusters polygons β dropping far-flung outliers (French Guiana on France, Alaska/Hawaii on the US) so the main landmass fills the frame, while keeping nearby islands so archipelagos (Japan, Indonesia, NZ, the Philippines) stay recognizable. A matching πΊ Shapes of the World print worksheet (numbered black silhouettes β country names, difficulty selector, shuffle, upside-down answer key) ships alongside.
Earlier: π΄ Flag Match game + π΄ Flags of the World print worksheet (real flagcdn images, not emoji), the π Animals of the World sheet, atlas growth to 129 curated countries, and the rebrand from "Orbis" to Ants & Atlases. Fixed flag images being cropped (object-fit: contain).
Also new: π© Build Your Own Country β an open-ended creative print sheet (no answers) where the kid invents a country: design a flag, draw the shape, name the capital, invent a national animal/food, and more. A keepsake, not a test.
Next: more fun print formats (Mystery Country Detective, Word Search, Dot-to-Dot, Flag Coloring), matching sheets (Foods, Landmarks, Capitals), and the Tier 4 curation runway.
Built
-
Atlas data backbone (196 sovereign nations Β· L1-L4) β REST Countries bulk fetch (
/v3.1/independent?status=true) with a Taiwan backfill from /alpha. Hand-curated soft fields for tiers 1-3: flag colors, flag motifs, climate band, terrain headline, landmark, famous food, fact card, bordering waters, island flag. Tier 4 (116 countries) auto-populated with null soft fields. Each country tagged with a level (1-4). Refresh via node data/build_atlas.mjs. Atlas fetch is cache: "no-store" so data edits show immediately.
-
Atlas Data Table modal β π toolbar button opens a sortable, searchable, level-filterable table of every country. Empty cells highlight in red so curation gaps for Tier 4 are obvious. Stats: 74 fully curated Β· 6 partial Β· 116 sparse. "Show only countries with gaps" toggle surfaces uncurated countries. The runway for incremental Tier 4 manual curation.
-
Tier ladder + picker (L1-L4 live) β chip bar above the map. Pool spec
{type:'level', value:N} returns all countries with level β€ N. Selection persists to localStorage. Mission and Geocode read the active tier. Map highlight re-renders instantly on tier change β out-of-pool countries dim to context. Region Focus zoom is preserved across tier switches. The hint engine returns noData responses (which don't consume budget) for L4 picks lacking curated soft fields.
-
World Cup 2026 slice (β½) β cross-mode named tier β isolates the 47 nations of the 2026 FIFA World Cup, independent of the L1-L4 recognition tiers. Single source of truth: a
slices block in atlas_soft.json that build_atlas stamps as a per-country wc2026 flag. Pool spec {type:'slice', value:'wc2026'}. Wired into Mission, Geocode, Flag Match, Shape Match, and the Flags/Shapes print worksheets. Scotland omitted (part of the UK; EnglandβGB); CuraΓ§ao backfilled (shows everywhere except Shape Match β no medium-res geometry). Added soft data for Cape Verde & Bosnia along the way.
-
Country-level interactive map β 212 country paths rendered from Natural Earth GeoJSON. Click any in-pool country to open its info modal. Dim countries are visible context but non-interactive.
-
Quiz engine β mode-agnostic, config-driven session driver. Pool specs:
all, continent, iso2s, level, predicate. Same engine powers Mission and Geocode. Geometry helpers (haversine distance, compass bearing, warmth bands). Hint builders handle missing soft data via noData responses. Hook-race fix: autoStart: false + manual first-round call so controllers can stash the session reference before onRoundStart fires.
-
Geocode mode (Guess Who + Globle hybrid) π§ͺ Needs testing β 14 hint categories (continent, language, flag colors, flag motifs, climate, hemisphere, capital letter, neighbors, water, size, population, terrain, landmark, food). Attribute-deduction gameplay. Globle-style distance + direction feedback on every wrong guess. Warm/cold map breadcrumbs accumulate. Side-panel UI with hint deck, clue log, guess log. Win modal with country facts.
-
Mission Quiz UI π§ͺ Needs testing β engine-driven "Locate Country" quiz. HUD strip with round counter, target announcement, score chip, End button. Wrong guesses β distance toast + warm/cold breadcrumb. Right guesses auto-advance after 1.1s. 10-round default. Session-end summary with round-by-round attempt counts. HOME + NEW MISSION buttons. Country ISO labels hidden during a Mission (anti-cheat).
-
Flag Match game β multiple-choice flag identification with a combined 8-rung difficulty ladder (Starter β World Master). Each rung ramps the country pool (L1 β L4) and the choice count (2 β 6) together. Real flag images from
flagcdn.com (the atlas flag_svg field), not emoji. Smarter distractors as you climb: random decoys at low rungs, same-continent decoys at high rungs. Streak counter, per-level "Level Up!" celebration, locked/unlocked rungs, localStorage progress persistence. Standalone flag-match.html in the cinematic dark theme, linked from the main nav.
-
Shape Match game β same engine and 8-rung ladder as Flag Match, but identifies a country from its outline silhouette. Shapes rendered live from Natural Earth geometry via
AACountries.silhouette(), which clusters polygons to drop distant outliers (French Guiana, Alaska/Hawaii) while keeping archipelagos (Japan, Indonesia, NZ, Philippines) intact. Clean cutout silhouette on the dark card. Standalone shape-match.html.
-
Region Focus zoom π§ͺ Needs testing β Focus chip bar in Countries view (World Β· Africa Β· Asia Β· Europe Β· N. America Β· S. America Β· Oceania). Click a chip β animated SVG viewBox transition. Click active chip again to toggle back to World. Hand-curated representative ISOs per continent + main-polygon-only bbox math so Europe isn't dragged east by Russia and Oceania frames on Australia. Animation uses
setTimeout (works in hidden tabs unlike RAF). Known nit: country labels grow proportionally with zoom (need inverse scaling).
-
Roadmap overlay β living document of what's built, what's next, every idea on the board. Toolbar button + ESC + backdrop click to close.
-
Map sizing & layout polish β map area is ~2.5Γ larger than the original (max-width raised, container/wrap padding trimmed, status display compressed). Edge-to-edge mode on viewports β₯1600px. PLANET EARTH headline auto-hides in Countries view since it's redundant. Mission HUD strip width matches the map. Body scrolls when short laptop screens need it (was previously locked).
-
Overlay system polish β five overlays (Discovery, Roadmap, Mission Summary, Geocode Result, Atlas Data Table) share consistent close buttons (circular, top-right). ESC and backdrop click close any open overlay. Summary modals use a HOME (secondary outline) + primary action button pattern. Cache-busting query strings on every script/style tag so dev edits show on reload.
-
Print quizzes (6 worksheets, growing) β kid-friendly Letter-portrait worksheets sharing one template:
- π The 7 Continents β numbered circles 1-7 on each continent, hand-drawn Antarctica strip (Natural Earth omits Antarctica).
- π The 5 Oceans β soft-blue water backdrop, numbered circles 1-5 on Arctic / Atlantic / Indian / Pacific / Southern.
Patrick Hand + Outfit typography. @media print for clean print output. Number badges sized so they don't dominate continents.
- π The 7 Continents β numbered world map + word bank + answer lines.
- π The 5 Oceans β same map with soft-blue water backdrop.
- π Animals of the World β draw-a-line matching: 8 animals β 7 continents. Randomized per load, upside-down answer key.
- π΄ Flags of the World β draw-a-line matching: 8 real flag images (flagcdn) β country names. Screen-only difficulty selector (Famous 20 β World) + "New flags" shuffle; both hidden in print. Numbered flags with an upside-down answer key.
- πΊ Shapes of the World β draw-a-line matching: 8 black country silhouettes β country names. Same difficulty selector + shuffle + upside-down answer key. Silhouettes rendered from map geometry with outlier-dropping so each shape frames cleanly.
- π© Build Your Own Country β open-ended creative sheet (no answers). Kid invents a country: name banner, design-your-flag box, draw-your-shape box (mark the capital β), capital/continent/population fill-ins, national animal + food draw-and-name boxes, "how do you say hello?", weather chips to circle, an amazing-fact write-in, and a Founder's signature. A keepsake, not a test.
-
Cleaner Ants & Atlases nav β 9 toolbar buttons collapsed to 6 visible elements. Continents/Countries/Oceans joined into a segmented control with active-state highlighting. Utility items (Atlas Data, Roadmap, Exit to IQ) moved into a β― More dropdown. π¨ Print became a dropdown listing every available worksheet β extensible as more land. Shared
wireDropdown() JS helper handles open/close/click-outside for both menus.
Build next (queued)
-
More print quizzes π― Up next β full worksheet roadmap in pedagogical order:
- β
π Animals of the World β shipped. Draw-a-line matching: 8 animals β 7 continents.
- π¨ Color the Continents β pure coloring sheet, continent names pre-labeled, blank fill regions.
- π§ Hemispheres β color Northern vs Southern, Eastern vs Western on a split globe diagram.
- π΄ Flag β Country Match β 8 flag swatches, draw a line to the country name.
- π Famous Foods β Country Match β dish illustrations matched to home countries.
- π Landmarks β Continent Match β Eiffel Tower / Great Wall / Pyramid etc. matched to continents.
- πΊ Blank Map: Label the Countries β continent-by-continent label sheets (word bank + outline only). Three tiers: Trace (faded labels), Label (word bank), Recall (blank).
- π Size & Population Sort β rank 8 countries smallest β largest, or least β most populous.
- π‘ Climate Match β assign each country to tropical / arid / temperate / polar.
- π Famous 20 Trading-Card Deck β one card per country: flag, capital, landmark, fact. Cut-apart. Doubles as the physical Geocode game board.
- βοΈ Cut-and-Paste Continent Puzzle β print, cut, reassemble the continents from SVG outlines.
- π΄ Memory / Concentration Pairs β flag card + country-name card. Print and cut.
- π Two-Player Geocode Board β 24 country tiles in classic Guess Who layout, pencils to cross off.
- π Lat/Long Plotting Grid β find the coordinate, mark the spot.
- π Flag-Coloring Templates β proportion grids for each flag, kid draws their own.
- π Passport Booklet β physical companion to the digital passport stamps, kid fills in alongside the app.
- π Answer-Key generator β parent/teacher answer keys auto-generated from atlas data for every worksheet.
-
Tier 4 curation runway β 116 countries currently sparse (auto-pulled from REST Countries with no hand-curated soft fields). The Atlas Data Table surfaces every gap. Goal: incrementally enrich Tier 4 with the same soft palette (flag colors, motifs, climate, terrain, landmark, food, fact card, bordering waters, island flag) so Geocode L4 plays as deeply as L1-L3.
Game modes (ideated)
-
Geocode difficulty ladder β five scaffolded levels:
- L1 Continent Decoder (ages 6-8): mystery is one of 7 continents.
- L2 Famous 20 (current proof-of-concept).
- L3 Regional Master: one region at a time (e.g. all of Europe).
- L4 World Tour: all ~195 countries.
- L5 Daily Mystery: one puzzle per day, same for everyone, shareable.
-
Where in the World (Daily Mystery) β Wordle-style. Five clues revealed one at a time ("Indian Ocean coastβ¦ Portuguese-speakingβ¦ capital starts with Mβ¦"). One puzzle per day, shareable result strip. Hooks casual visitors.
-
Flag Lab β flag literacy in deliberate passes: shape & color families β symbolism β match-to-country β draw your own on a printable proportion grid.
-
Compare Mode / Projection Lab β drag two countries side by side at true scale. Built-in Mercator distortion lesson (the Greenland-vs-Africa reveal).
-
Border Chains β given a start and end country, build the shortest chain of bordering countries between them. Teaches adjacency intuitively.
-
Multi-round Geocode streak mode β back-to-back mysteries with a running streak counter and shrinking hint budget.
Curriculum spine
-
Curriculum Atlas β a tree of modules, each a tight three-act loop:
- Discover: narrated globe tour with cinematic camera moves.
- Practice: in-app quiz drawn from the engine.
- Take-Home: printable worksheet pack for pen-and-paper work.
-
Passport stamps β earned per module, stored in localStorage. A printable passport booklet that mirrors the digital one β kid fills it out alongside the on-screen version.
-
Age-tier paths β visual + reading-level variants so an 8-year-old and a 12-year-old can both use the same module appropriately.
Worksheets & print
- Trading-card decks per difficulty level β also the physical Geocode game boards (digital + physical share the same data).
- Trace / Label / Recall blank maps β three difficulty tiers per region. Trace = bold outlines + faded names. Label = blank shapes + word bank. Recall = blank shapes only.
- Flag-coloring templates with proportion guides β kid draws their own.
- Lat/long plotting grids β find this coordinate, mark the spot.
- Border-coloring exercises β "color every country that borders France."
- Cut-and-paste continent puzzles β physical jigsaws from our SVG paths.
- Two-player printable Geocode board β 24 country tiles in classic Guess Who layout. Pencils to cross off eliminated tiles.
- Solo detective sheet β single-page case file with scratch-off / cover-up clues.
- Daily mystery printable β one-page handout for classroom use.
- Passport booklet β physical companion to the digital passport stamps.
Polish & quality-of-life
- Inverse-scale country labels on zoom β labels currently grow proportionally with the zoom level. At Europe zoom (7Γ), GB/FR/DE labels look comically large. Apply a counter-scale so labels stay a consistent rendered size at any zoom.
- Auto-zoom to the Mission target's region on round start (optional difficulty toggle) β using
AACountries.viewBoxOfContinent() the engine could narrow the search area. Hides too much of the world for L2 but valuable for L3+ (Regional Master).
- Frame breadcrumb cluster in Geocode β as wrong guesses accumulate, auto-zoom to fit the breadcrumb spread so the warmer/colder pattern is visible at a glance.
- Warm/cold halo on guessed countries β color the whole country, not just a centroid dot, with intensity by proximity.
- Hint cost variance in Geocode β continent hint costs 2, "famous food" costs 0.5. Adds real strategy.
- Disabled Give Up button in Geocode after a round ends.
- Snappier reveal animations on clue cards and chip-to-clue transitions.
- True centroids for crescent-shaped countries β Saudi Arabia's label currently sits inside Egypt due to bbox-center placement.
- Continent color tint on Famous 20 β group countries visually by continent, matching the cinematic style.
- Nav button responsive wrap β toolbar still crowds on narrower viewports (below ~1100px). Either wrap cleanly or collapse into a menu.
- Persisted progress β save Geocode wins, Mission scores, played mysteries, and curriculum stamps to localStorage. Show a daily streak.