Repository navigation
Releases: zeshanabdullah10/TinyAtlas
Release list
v2.9 Upper Swat dioramas
Upper Swat dioramas
27 drivable tabletop models in total: 17 new sites across Upper Swat, plus Mahodand Lake and White Palace. Each site is built from real elevation, land cover and mapped roads.
- Towns and villages: Kalam, Ushu Forest, Utror, Gabral, Matiltan, Bahrain, Madyan, Miandam, Shahi Bagh. Buildings stand on their OpenStreetMap footprints.
- Lakes reached on foot: Kundol, Spin Khwar, Jabba Zomalu, Izmis, Mushroom, Daral, Pari. The jeep stops at the real trailhead, then you walk the mapped footpath to the shore. Where no path is mapped, the rest of the route is traced along the easiest ground and labelled as traced.
- Meadows: Desan Meadows, reached by a walk up from Kalam.
- Before you go: each site has credited Wikimedia Commons photos and 5–8 practical facts, each quoted word for word from its source.
- Ushu forest: Sentinel-2 greenness recovers deodar forest that the 2021 land-cover map reads as meadow. This is recorded on the site's page.
New for visitors
- Road status: dated advisories with sources. Reports older than 30 days show as "unknown".
- Postcards: share a postcard from any diorama, WhatsApp first.
- Trip kit: the download size before you save, a low-data mode, officially sourced emergency numbers (1122, 130, 115) and a printable plan.
- Urdu: an interface draft (it needs native-speaker review) and a traveller phrase card.
- Story flight: a flight along the real road (Kalam → Mahodand, Mingora → Bahrain).
- "Where is this view?": a game with 205 credited photos.
- Gandhara heritage: records for 9 Buddhist sites.
- Voices of the valley: a consent process and language facts. No recordings yet.
- Herders' flocks: shown in the upper-valley villages, moving with the seasons.
Data
Copernicus DEM GLO-30 · ESA WorldCover 2021 (CC BY 4.0) · Copernicus Sentinel-2 (2025) · OpenStreetMap (ODbL) · Wikimedia Commons photos (CC BY / CC BY-SA, credited per photo).
Known gaps
- Several remote sites have only 0–3 free photos.
- Many walks are traced over the ground, because OpenStreetMap maps no footpath there.
- Some models look smoother than the real place: the Bahrain gorge and bridge, and scree shores at the lakes.
- Parked until a source or OpenStreetMap data exists: Andrab Lake (its jeep road isn't mapped), Laddu Lake, Pearl Lake and Kharkhari Lake.
- Flood history is built but not shown: no open flood-extent map covers Swat.
🤖 Generated with Claude Code
v2.8 Mahodand diorama
Every tag clickable, Places list of all tags, photo viewer. Tour the shore (automated stops at each viewpoint), Walk it yourself, short boat ride to a view up the lake, horse ride view fixed. Boats, stalls and camps laid out as satellite views show them (illustrative).
v2.5.0: Mahodand Lake diorama
A drivable tabletop model of Mahodand Lake built from open data (Copernicus DEM, ESA WorldCover, OpenStreetMap). Drive the real last 3.5 km of the jeep track and arrive at the lake. The Mahodand Lake place card in the Atlas now has a View diorama button. Live at https://zeshanabdullah10.github.io/TinyAtlas/diorama.html
v2.4.0 — Visual quality and data accuracy
What's new
- Lower Swat poster, reframed and relit. Barikot, Shingardar Stupa, White Palace, Elum Ghar and Malam Jabba are now in frame. The dark foreground is lifted to the same tonal balance as the Swat Valley poster, and Mingora reads as a warm town. Places hidden behind a ridge are drawn hidden (hollow dot, dashed leader). The new poster is also the Lower Swat cover.
- Close views on the live map. Within about 9 km, shaded ground keeps more of its colour with a cool teal fill. Wide views are unchanged.
- Nearer trees look like conifers. Trees within 1.5 km use a jagged, drooping shape on the high-quality tier. Far trees are thinned slightly to pay for them, so the triangle count stays the same.
- Lower Swat road classes from evidence. 596 roads are classed from their OpenStreetMap surface, smoothness and tracktype tags instead of the road type alone. Planner times on 13 Lower Swat legs are 1–3 minutes shorter. Distances agree with Wikipedia to within 9%.
Data sources and licences
Copernicus DEM GLO-30 · ESA WorldCover 2021 (CC BY 4.0) · Sentinel-2 cloudless 2016 by EOX IT Services GmbH (CC BY 4.0) · © OpenStreetMap contributors (ODbL) · photos via Wikimedia Commons, each credited · Poly Haven sky (CC0) · TRELLIS (MIT) shapes and procedural stupas · English audio guide by Chatterbox (MIT). Heights exaggerated and landmarks drawn larger than life; the map says so.
Known issues
- 764 km of Lower Swat tertiary road has no surface tag in OpenStreetMap and still counts as a jeep road (14 km/h), so some planner times, such as Saidu Sharif to the White Palace, are long.
- White Palace size is an estimate (no published dimensions, no OSM building outline).
- Close-view shade is olive rather than teal on brown slopes. Mingora is small at poster scale.
- Offline save has not yet been tested with a real service worker.
- Missing places (Neel Dand, Ichikhor and others) still have no checkable coordinates.
v2.3.0 — English audio guide
Every place in Swat Valley and Lower Swat now has a spoken English story: 52 clips, about 15 minutes, playable from the place panel, with read-along text, and included in 'Save for offline'.
- Stories are written only from each place's sourced facts, timeline and access notes, with no filler, and are length-limited to what the sources support.
- Voice: Chatterbox by Resemble AI (MIT), generated on-device, one sentence at a time. Every sentence is transcribed back with Whisper and regenerated if words are skipped. Numbers are spoken as words and must be heard back exactly (elevations, years, distances).
- Known: a few local names are pronounced approximately (Laddu, Utror, Kundol).
v2.2.0 — honest landmark scale, label accuracy, mobile navigation
Tiny Atlas v2.2.0 — landmarks you can trust, a map that behaves on mobile
What's new
Honest landmark scale. 3D landmark models now render at real size × a visible multiplier
(×20–×80, default ×20, displayed footprint capped at 1 km), so they read clearly when the map
is zoomed out without growing or shrinking as you zoom. The "Landmark size" slider in the
layers menu controls it live. Baked 1024-px textures keep their own roughness with anisotropic
filtering and a lighter warm lift, so models look like crafted maquettes rather than flat cutouts.
Label accuracy pass. Every place label's elevation is now checked against the Copernicus
DEM, not just peaks. Fixed: White Palace (2,175 m claimed → 1,308 m actual ground), Malam
Jabba (2,804 → 2,486), Lowari Tunnel and Malakand Pass (were literal 0 m), and stale town
elevations (Madyan, Miandam, Sheringal, Fatehpur, Jarogo waterfall, Bashigram Lake). Ghochhar
Sar is snapped to its DEM summit at 6,249 m and labelled at tier 2. Each pack now ships only
the 3D models its own places reference.
Mobile navigation, rebuilt around your thumb.
- One finger moves the map, pinch zooms, a two-finger twist rotates; double-tap flies to the
tapped point. - Tapping a place opens a compact peek card (40% of the screen) with the photo, name, stats and
the Fly there / Plan a day / Listen actions; tap or swipe up for full details, swipe down to
collapse or close. The camera frames the place above the card, and other labels stay live. - 44 px touch targets across the dock, zoom and menu; the dock scrolls with a fade hint.
- The title collapses to one tappable line; the layers menu uses big steppers and toggles.
Audio guide (in progress). Narration scripts are now stricter, source-grounded English;
a Kokoro/Chatterbox local TTS bake-off is under way — clips are not shipped in this release.
Data sources and licences
Contains modified Copernicus DEM GLO-30 data, © DLR e.V. 2010-2014 and © Airbus Defence and
Space GmbH 2014-2018, provided under COPERNICUS by the European Union and ESA · © ESA WorldCover
project 2021 (CC BY 4.0) · Imagery: Sentinel-2 cloudless 2016 by EOX IT Services GmbH (CC BY 4.0) ·
© OpenStreetMap contributors (ODbL) · Photos via Wikimedia Commons, each credited · Sky: Poly Haven (CC0) ·
3D shapes: TRELLIS (MIT), procedural stupas · Heights exaggerated, places drawn larger than life.
Known issues
- Touch gesture feel and swipe-to-dismiss deserve a pass on a real phone.
- Offline save has not been exercised with a real service worker in Chrome (test by hand).
- Close views remain darker than the posters in shade; trees read as simple cones up close.
- TRELLIS building sizes (White Palace, Swat Museum, Thal mosque) are flagged estimates — no
published dimensions exist to anchor them. - The Lower Swat poster's lower third is dark; Mingora reads pale.
v2.1.0 — Swat-only, new main page
Swat Valley and Lower Swat only, with a new main page in the Atlas style.
- New main page: golden-hour hero, region cards with real statistics, "Swat Through Time" (every event linked to its source), how it's made, full attribution.
- Landmark models keep a fixed size while zooming. Previously they grew and shrank with the mouse wheel.
- Removed: the old museum-plinth interface, the non-Swat places, "Build any place", and everything only they used (about 6,900 lines). The list is in docs/CLEANUP-v2.1.md.
- Coming next: the English audio guide, generated on-device.
v2.0.0 — Swat in the Atlas
Swat Valley and Lower Swat as real-time, golden-hour illustrated 3D maps, with every ridge, river, road and place at its true position. Real data sets the facts; AI only paints, speaks and plans on top of them.
Live at https://zeshanabdullah10.github.io/TinyAtlas/ (open Swat Valley or Lower Swat from the gallery)
What's new
- The Atlas: a new real-time renderer (
atlas.html) for whole valleys, about 70 × 70 km at 30 m, with chunked terrain, a ground colour baked in Blender to match the posters, golden-hour light and long shadows, instanced conifer forests, turquoise lakes and rivers, roads by class, and towns built from OpenStreetMap footprints. - Swat Valley (Kalam, Utror, Gabral, Ushu, Matiltan, Mahodand, Kumrat) and Lower Swat (Mingora, Saidu Sharif, Udegram, Barikot, Malam Jabba, Madyan, Bahrain), linked through the Explore dock.
- Gandhara heritage in 3D: Shingardar, Amluk-Dara, Saidu Sharif, Butkara I and Gumbat stupas (procedural, real dimensions), plus the Swat Museum, the White Palace and the Thal wooden mosque (from licensed photos, TRELLIS).
- Place panels with the Urdu name, story, timeline, photo credits, and facts that open to show the verbatim quote from their source.
- Plan a day draws the planned route on the terrain, with travel times by road class (jeep tracks about 14 km/h).
- Save for offline: a whole valley (about 98 MB, or about 55 MB without photos).
- Hollow dots mark places hidden behind a ridge. Heights are exaggerated and landmarks drawn larger than life, and the map says so.
Data
Copernicus DEM GLO-30 · ESA WorldCover 2021 (CC BY 4.0) · Sentinel-2 cloudless 2016 by EOX (CC BY 4.0) · © OpenStreetMap contributors (ODbL) · photos via Wikimedia Commons, each credited · Poly Haven sky (CC0).
Known issues
- The audio guide for Swat isn't included yet; it comes in the next release (English, generated on-device).
- The older places (Hunza, Skardu and others) still use the previous interface.
- Shaded valley floors in close views are darker than in the posters. Some trek routes have gaps where OpenStreetMap has none (they are shown as gaps).
- Offline saving of a whole Atlas pack hasn't been tested on a real phone yet.
Tiny Atlas 1.0 — the travel companion
A free travel companion for Northern Pakistan's valleys, built on 3D miniatures of the real terrain. Real data sets the facts; AI only paints, speaks and plans on top of them.
Live at https://zeshanabdullah10.github.io/TinyAtlas/
What's in this release
- See the view before you go — every curated viewpoint has pictures for four seasons and three times of day, painted by SDXL over a depth image ray-cast from the real skyline, water seeded from OpenStreetMap, summit names from the viewshed (never painted in).
- What can I see from here? — a 360° drawing of the skyline with every visible named summit (earth curvature and refraction included), the day's sun path, and "Match my photo".
- Real sun and seasons — real shadows for any date and time on the place's clock, sunrise / golden hour / sunset in one tap, season textures that follow the date.
- Plan by talking to the map — describe the trip; the planner picks stops into days, and every distance, time and altitude is computed on the real roads.
- Know before you go — practical facts from Wikivoyage and Wikipedia, each kept only if its quote is really in the source.
- Audio guide — every landmark's placard plays its story in English, Urdu or Mandarin, with the text to read along; "Save for offline" caches the whole place for the valley with no signal.
- My trip — drop in trip photos: pinned by GPS and turned into a short film, all in the browser.
- Landmark maquettes — Hunyuan3D-2 meshes of the forts, palaces and bridges replace the procedural models.
- Static site —
pack.pybuilds one pack per place plus indexable place pages and a sitemap; deploys to any CDN (this release is served by GitHub Pages).
Notable fixes
- Service worker had a syntax error that silently disabled offline saving since it was written.
pack.pycrashed on the first real build (a loop variable shadowed thetimemodule).- Landmark stories silently fell back to extractive text: the default model is a reasoning hybrid that spent its whole token budget thinking. Story and guide calls now ask for low reasoning effort with token headroom.
- 104 backend tests, 20-check browser smoke test, both green.