Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Every ridge, river, road and stupa of Swat where it really is. Kalam, Utror, Ushu, Mahodand, Mingora and the Gandhara heritage.
LifestyleJavaScript · PythonGitHub @zeshanabdullah10Availability needs another checkOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Rotatable 3D miniature (a diorama) built on real terrain, with an AI guide layered on top, launched with a place almost nobody has mapped well: northern Pakistan.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A true-to-the-ground, illustrated 3D map of Swat, Pakistan (Khyber Pakhtunkhwa). Upper Swat (Kalam, Utror, Ushu,
Mahodand, Kumrat) and Lower Swat (Mingora, the Gandhara stupas, Udegram, Barikot, Malam Jabba) are drawn in a
golden-hour poster style, while every ridge, river, road and place sits at its real coordinates.Read the full README ↗A true-to-the-ground, illustrated 3D map of Swat, Pakistan (Khyber Pakhtunkhwa). Upper Swat (Kalam, Utror, Ushu, Mahodand, Kumrat) and Lower Swat (Mingora, the Gandhara stupas, Udegram, Barikot, Malam Jabba) are drawn in a golden-hour poster style, while every ridge, river, road and place sits at its real coordinates.
The rule everything follows: real data sets the facts, AI only paints. Terrain, roads, water, places, heights, distances and travel times come from open data. Image models are pinned to that geometry, the day planner may only choose among measured options, every fact carries a verbatim quote from its source, and exaggeration (heights, landmarks drawn larger than life) is labelled on the map.
/): two valley cards with real figures read from the packs, a "Swat through time"
strip of six eras with sources, and a plain statement of how the map is made./atlas.html?pack=swat or ?pack=swat-lower): fly, tilt and zoom a real-time 3D relief map,
switch between the areas in the Explore dock, search places, and slide the sun through any time of day (default
golden hour)./diorama.html?site=mahodand): a tabletop model of Mahodand Lake from open data. Drive a
jeep up the real last 600 m of the track, over ruts you can feel, and arrive at the lake. See docs/diorama-v1.md.Places with an English audio guide clip show a Listen button in the place panel. The clips are generated locally with
Chatterbox (Resemble AI, MIT) by backend/tools/audio_local.py. Community voice recordings are not in the app yet
(see docs/voices-consent.md).
pip install -r backend/requirements.txt
cd backend && uvicorn tinyatlas.api:app --port 8000 # open http://localhost:8000
python -m pytest -q # from the repo root, no network needed
python backend/tools/smoke.py # browser check of the running app (needs Playwright + Edge)
The server serves web/ and the built packs under /packs. The two places are defined in
backend/tinyatlas/regions.py; each points at an Atlas pack in data/packs/<slug>/atlas/ (gitignored, see below).
Everything under data/ is generated and gitignored. Full step-by-step, with parameters and lessons, is in
docs/HANDOFF.md; the pack format is in docs/atlas-pack-v1.md.
python backend/tools/geo_bundle.py swat --bbox 72.10 35.30 72.90 35.85 --res 30 # DEM, land cover, satellite, OSM
python backend/tools/blender/prep.py data/bundles/swat # de-lit albedo, trees, lakes
blender -b -P backend/tools/blender/build_scene.py -- --bundle data/bundles/swat ... # poster renders, albedo bake
python backend/tools/atlas_pack.py swat # bundle + research -> Atlas pack
python backend/tools/home_data.py # landing-page stats, timeline, hero art
Other tools: collect_photos.py (licence-filtered Commons photos), poster_labels.py, atlas_shot.py (headless
screenshots), buildings3d.py + trellis_* (landmark shapes on a RunPod GPU), paintover.py (parked), pod_run.py
and pod_files.py (RunPod via Jupyter), audio_local.py (audio guide clips), tts_bakeoff.py (TTS comparison).
Diorama builds: diorama_build.py (site data, from the site files in backend/tools/diorama_sites/), osm_fetch.py
(OSM extract when Overpass is unreachable), diorama_shot.py (headless diorama screenshots).
python backend/tools/pack.py --api https://api.example.org --base-url https://tinyatlas.example.org
writes dist/: the landing page, atlas.html, packs/swat/atlas/ and packs/swat-lower/atlas/, sitemap.xml and
robots.txt. It works under a subpath (GitHub Pages: --base-url https://user.github.io/tinyatlas). Only the day
planner needs the live server; run it with TINYATLAS_CORS=<site origin> and an OpenRouter key. The planner is rate
limited per visitor (LIMITS in api.py).
# .env in the repo root (gitignored)
OPENROUTER_API_KEY=sk-or-...
TINYATLAS_MODEL=deepseek/deepseek-v4.1-flash # default for every task
TINYATLAS_MODEL_PLANNER=... # optional per task
Replies are cached by prompt hash in data/llm/ and usage is shown at /api/status.
backend/tinyatlas/ api (FastAPI) regions atlaspack planner routing sun llm narration stylize (used by paintover)
backend/tools/ Atlas pipeline, pack.py (static site), smoke.py, home_data.py, RunPod and audio tools
web/ index.html + js/home.js (landing), atlas.html + js/atlas/* (renderer and UI), planner.js, listen.js,
api.js, dom.js, css/{tokens,home,atlas}.css, sw.js (offline), manifest, data/home.json, img/;
diorama.html + js/diorama/* (drivable models), play.html, tripkit.html, voices-consent.html
docs/ HANDOFF.md, atlas-pack-v1.md, diorama-v1.md, voices-consent.md, CLEANUP-v2.1.md
Warm near-black glass over the picture, cream type, one saffron accent (#e9a23b). Cormorant SC for titles,
Cormorant Garamond italic for subtitles, Schibsted Grotesk for the interface, Literata for prose, Noto Nastaliq Urdu
for Urdu names. Tokens live in web/css/tokens.css.
docs/HANDOFF.md section 3.3).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 (CC0, public domain, CC BY or CC BY-SA). Sky: Poly Haven (CC0). 3D shapes: TRELLIS (MIT) and procedural stupas. Facts and history from Wikipedia and Wikidata (CC BY-SA), each linked. Diorama weather forecasts: Open-Meteo (open-meteo.com), shown in the app. Audio guide voice: Chatterbox (Resemble AI, MIT).