Profile
Back to NewsBack
GitHub Trending 12 min
Reader Mode
DeanChensj/jiangshan-map: 江山时序 · 中国历史交互地图时间轴 (403 BCE – Present) | Interactive Historical Atlas of China across 18 dynasties, 164 territory snapshots, ancient-to-modern place genealogy & classical poetry routes

DeanChensj/jiangshan-map: 江山时序 · 中国历史交互地图时间轴 (403 BCE – Present) | Interactive Historical Atlas of China across 18 dynasties, 164 territory snapshots, ancient-to-modern place genealogy & classical poetry routes

8 hours ago

Chronicles of the Realm · 江山时序

English · 简体中文 (Chinese)

An Interactive Historical Atlas of China from the Warring States (403 BCE) to the Present — Scrub Through Time, Trace Ancient Cities, and Walk in the Footsteps of History

Play Live Demo (English UI) → https://deanchen.me/jiangshan-map/?lang=en


Why It's Fun to Explore

Have you ever wondered while reading Chinese history or classical poetry:

  • "Where exactly on today's map are Jiankang (the Six Dynasties capital), Huangzhou (where Su Dongpo composed the Red Cliffs Rhapsody in exile), Languan Pass in the Qinling Mountains (where Han Yu halted his horse in the snow), or Zhuxianzhen (Yue Fei's northern campaign frontier)?"
  • "How many names did Chang'an hold across two millennia, and what pivotal events unfolded on that soil?"
  • "How did the realm evolve step by step—from the Partition of Jin and the Seven Warring States at the opening of Sima Guang's Zizhi Tongjian (403 BCE), Qin's unification campaigns, Emperor Wu of Han opening the Hexi Corridor, High Tang's Four Garrisons of Anxi, and Yuan's Xuanzhengyuan jurisdiction over Tibet, to Zeng Jize's recovery of Ili (1881 CE) and the 20th-century shift from the 'Begonia Leaf' (秋海棠) map to the 'Rooster' (雄鸡) map?"
Chronicles of the Realm (jiangshan-map) brings together 2,400+ years of Chinese history across 18 historical periods into a single interactive parchment atlas—featuring multi-stage territorial and prefecture snapshots, ancient cities, strategic mountain passes, poetic and battlefield landmarks, chronological milestones, and reigning monarchs & imperial eras. No heavy print atlases required—just drag the timeline and click any city to travel through space and time.


Feature 1: Scrub the Timeline to Watch Realms Rise & Fall, Track Monarchs, and Compare Ancient & Modern Borders

  • Multi-Polity Confrontations on a Single Canvas: From the Seven Warring States (Qin, Chu, Qi, Yan, Zhao, Wei, Han) alongside Zhou, Yue, Ba-Shu, Zhongshan, and Yiqu, to the Three Kingdoms warlords (Yuan Shao, Cao Cao, Liu Bei, Sun Quan, Gongsun's Liaodong), Northern & Southern Dynasties, Five Dynasties & Ten Kingdoms, and Song, Liao, Western Xia, Dali, Jin, and the Mongols—all rendered side-by-side in high-contrast traditional parchment hues. Hover over any polity in the bottom-left legend to highlight its territory, or click to zoom straight to it.
  • Multi-Stage Territorial Evolution & Dashed "Ghost Boundary Diffs": At every major territorial milestone—such as Qin's conquest of Ba-Shu (316 BCE), Yan General Qin Kai's expansion into Liaodong (300 BCE), Ma Yuan's bronze pillars in Jiaozhi (43 CE), Sima Yi's campaign in Liaodong (238 CE), Li Jing's conquest of Tuyuhun (635 CE), the Four Garrisons of Anxi & Wang Xuance's campaign in Central India (648 CE), Yuan's Xuanzhengyuan rule over Tibet (1288 CE), Ming's Hami & Seven Guards West of Jiayuguan (1404 CE), the 1881 Treaty of Saint Petersburg recovering Ili, the 1898 foreign leased territories, the 1945 retrocession of Taiwan, and the 1946 transition from the "Begonia Leaf" (秋海棠) map to the "Rooster" (雄鸡) map—click any milestone or phase dot to switch maps and reveal the previous phase's dashed vermilion Ghost Boundary Diff so territorial gains and losses are immediately visible.
  • Inline Reigning Monarch & Imperial Era Display: The timeline dynamically displays the reigning monarch (temple/posthumous title + personal name + reign span, e.g., Emperor Wu of Han · Liu Che, Emperor Taizong of Tang · Li Shimin, Emperor Shengzu of Qing · Xuanye) alongside the exact imperial era year.
  • Ancient Prefecture Hover Inspection & Modern X-Ray Lens: First-level administrative divisions (Commanderies, Circuits, Routes, and Provinces) are rendered with deduplicated Parchment Casing borders. Zoom in and hover over any prefecture (e.g., Ming Yingtian Prefecture or Three Kingdoms Jingzhou) to inspect its jurisdiction and modern provincial equivalents, or toggle the X-Ray Lens to project modern provincial boundaries directly over the historical map.
  • Dynamic River Courses, Ancient Lakes & Grand Engineering Works: As you scrub through time, historical shifts of the Yellow River, expanding and shrinking ancient lakes (Yunmeng Marsh, Lop Nur / Puchanghai), Warring States/Qin/Han/Ming Great Walls, Sui-Tang & Grand Canals, the Silk Road, and Zheng He's maritime routes evolve in lockstep with each era.
Try It Live: Ming Dynasty Yongle 13 (1415 CE) · Two Capitals, Thirteen Provinces & "Yingtian Prefecture" Inspection →

!Ming Dynasty 1415 CE · Yingtian Prefecture Hover Preview


Feature 2: Click Any Ancient City or Strategic Pass to Uncover 2,400 Years of History (Trace Place)

Click any ancient city or mountain pass on the map (or double-click anywhere on the canvas) to open its Trace Place genealogy card:

  • Bilingual City Lore Banner & 2,400-Year Administrative Genealogy: At the top of the card, read a curated poetic epigraph and historical biography for the city; below, trace how its name and administrative jurisdiction evolved across all 18 historical eras—from Warring States and Qin commanderies, Han regional inspectorates, Tang circuits, and Song routes to Yuan/Ming/Qing provinces and modern municipalities—complete with Imperial Capital badges and dynastic seat remarks.
  • Site-Specific Landmark Events: Beneath each dynasty row, inspect major historical events that took place right on that spot (e.g., Shang Yang's Reforms and Qin's Unification at Xianyang, Guan Yu Flooding the Seven Armies at Fancheng, the Xuanwu Gate Incident at Chang'an, or Yue Fei's Martyrdom at Lin'an). Click the Key Events pill in the top-right of the card to filter for dynasties with major events, and click any event to time-travel straight to that year!
  • Strategic Mountain Passes & Poetic / Battlefield Landmarks: Explore famous mountain passes—including Hangu Pass, Tongguan, Jianmen Pass, Yanmen Pass, Yumen Pass, Yangguan, and Shanhai Pass—rendered with traditional Hanque gatehouse icons and strategic terrain notes, alongside famous battlefields and literary landmarks such as Red Cliffs (Chibi), Gaixia, Wuzhang Plains, Orchid Pavilion (Lanting), Yueyang Tower, Pavilion of Prince Teng, Languan Pass, Loulan, Lop Nur, and Issyk-Kul.
Try It Live: High Tang Kaiyuan 29 (741 CE) · Open Chang'an's 2,400-Year Genealogy Card →

!High Tang 741 CE · Chang'an Trace Place & Key Events


Feature 3: Walk in the Footsteps of Historical Figures (Journeys ▾)

Open Journeys ▾ in the top toolbar to collapse the right sidebar and follow seven curated multi-stop historical routes across millennia:

  • Qin Shi Huang's Unification Campaigns (238–221 BCE): From suppressing the rebellion at Xianyang and Wang Jian's attack on Ye, to the fall of Han, Zhao, Yan, Wei, Chu, and Dai, culminating in the surrender of Qi at Linzi—as you advance stop by stop, watch the six rival kingdoms merge into the Qin Empire right on the map!
  • Zhang Qian's Mission to the Western Regions (138–126 BCE): Depart Chang'an, endure over a decade of Xiongnu captivity without surrendering the Han imperial staff, and blaze the trail to Dayuan (Fergana), Kangju, and the Greater Yuezhi.
  • Zhuge Liang's Emergence & Northern Expeditions (207–234 CE): From the Three Visits at Longzhong and the alliance at Chaisang before Red Cliffs, to entering Shu, the White Emperor City entrustment, the Southern Campaign across the Lu River, Hanzhong's Memorial on Deploying the Troops, Mount Qi, and the autumn winds of Wuzhang Plains.
  • Xuanzang's Pilgrimage to India (627–645 CE): Slip past Yumen Pass alone across the Moheyan Desert, scale the icy Bedel Pass, cross the Indus, and study at Nalanda Monastery before returning to Chang'an.
  • Li Bai's Grand Travels Across Tang China (701–762 CE): From Suyab and boyhood in Shu, sailing out through the Three Gorges at twenty-four, scattering gold in Yangzhou, serving in the Hanlin Academy at Chang'an, meeting Du Fu in Luoyang, receiving amnesty at White Emperor City, to his final years at Dangtu.
  • Su Shi's Literary Exile Across Song China (1056–1101 CE): From leaving Meishan for the capital Kaifeng and gazing at the moon in Mizhou, to composing the Red Cliffs Rhapsody in Huangzhou exile, Huizhou, and crossing the sea to Danzhou on Hainan Island.
  • Wang Yangming's Unity of Knowledge & Action (1472–1529 CE): From birth in Yuyao and imprisonment in Beijing, to his enlightenment at Longchang in Guizhou, pacifying bandits in Southern Ganzhou, capturing the rebel Prince of Ning in 35 days, teaching at the Tianquan Bridge in Shaoxing, and his final words "This mind is bright and clear; what more is there to say?" at Nan'an.
Each time you click Next Stop (or press Space for auto-pilgrimage), the timeline year, reigning monarch, imperial era, and dynastic territories evolve in sync with the traveler's footsteps, accompanied by bilingual primary-source excerpts and poems written at that exact stop.

Try It Live: Follow Su Dongpo's Exile to Mizhou & Huangzhou (1075–1082 CE) →

!Historical Journeys · Su Shi's Exile Route


Feature 4: Easter Egg · Map Pinpoint Challenge — What Imperial Court Rank Would You Earn?

Think you know Chinese historical geography? Open Journeys ▾ in the top toolbar and select Quiz · Map Pinpoint · Ancient Place Quiz at the bottom of the menu:

  • Dynastic Historical Clues + Blind Map Pinpointing: City labels are hidden while the prompt asks you to locate an ancient city—such as "Wuwei (Liangzhou) in Western Han", "Quanzhou in Southern Song", or "Jiankang in the Six Dynasties"—accompanied by dynastic historical clues (without spoiling the modern city name). Drop your pin based on rivers, mountain ranges, and borders, and earn points based on great-circle distance to the true coordinates!
  • Complete 10 rounds to receive a traditional imperial cartographic title such as Grand Historian & Master Cartographer (太史令 · 舆图大家), Director of the Bureau of Operations (职方郎中), or Prefectural Retainer (州郡从事).
Try It Live: Western Han Emperor Wu, Yuanshou 2 (121 BCE) · Start the Map Pinpoint Challenge →

!Western Han 121 BCE · Map Pinpoint Challenge Preview


Keyboard Shortcuts & Shareable Deep Links

Keyboard Shortcuts

| Key / Action | Effect | | :--- | :--- | | / or Cmd/Ctrl + K | Focus the Universal Search Box: search ancient & modern cities (Xianyang/Chang'an/Luoyang/Kaifeng), reigning monarchs (Emperor Wu of Han/Taizong of Tang/Liu Che/Li Shimin), imperial eras (Zhenguan/Yongle/Kangxi), poetic & battlefield landmarks (Red Cliffs/Wuzhang Plains/Languan/Lanting), mountain passes (Hangu Pass/Jianmen Pass/Yumen Pass), historical events, or journeys | | ← / → or bottom ‹ / › | Jump to the previous / next historical phase, milestone event, or journey stop (hold Shift + ← / → to step by 10 years) | | Space | Auto-play / pause timeline evolution (or auto-advance stops in Journey mode) | | Esc | Close active popups/cards, clear search highlights, or exit custom multi-stop routes | | Single-click city / Double-click map | Open the 18-era Trace Place & Key Events genealogy card for that location | | Hover / Click legend swatch | Hover to isolate & highlight that polity's territory; click to auto-zoom to its bounding box |

Shareable Deep Links

Append query parameters to share any historical moment, battle, city genealogy, or multi-stop route:


AI Agent & LLM Integration

Chronicles of the Realm works out of the box as a historical-geography visualization engine for LLMs and AI Agents. Models never need to guess latitude/longitude coordinates—simply extract two semantic parameters from a poem or historical text, year and place, and the atlas automatically resolves ancient/modern place names, centers the camera, renders dynastic borders and multi-stop trajectories, and opens the Trace Place genealogy card:

# Install into Claude Code / Gemini / Jetski global skills directory:
  mkdir -p ~/.claude/skills ~/.gemini/config/skills && cp -r skills/jiangshan-atlas ~/.claude/skills/ && cp -r skills/jiangshan-atlas ~/.gemini/config/skills/

1. Zero-Coordinate Dual-Parameter URL Protocol (0D Pinpoint / 1D Same-Year Route / 4D Multi-Year Route)

| Mode | Example URL | Automatic Rendering Behavior | | :--- | :--- | :--- | | Single-Point Pinpoint (0D) | ?year=819&place=蓝关&lang=en
(Han Yu's 819 CE exile poem at Languan Pass) | Jumps to Tang Yuanhe 14 (819 CE), drops a pin on Languan Pass in the Qinling Mountains, and opens its 2,400-year administrative genealogy card | | Same-Year Multi-Stop Route (1D) | ?year=763&place=剑外,巴峡,巫峡,襄阳,洛阳&lang=en
(Du Fu's 763 CE poem on recapturing Henan & Hebei) | Plots numbered vermilion arcs 1 → 5 across the 763 CE Tang map and auto-fits the viewport; click any stop to inspect its genealogy | | Multi-Year Space-Time Route (4D) | ?year=1079,1080,1094,1097&place=湖州,黄州,惠州,儋州&lang=en
(Su Shi's career across Huzhou, Huangzhou, Huizhou & Danzhou) | Pairs year[i] with place[i], labeling stops with their historical years and switching the underlying dynastic map whenever you click a stop |

2. CLI One-Command Screenshot & JSON Lookup (for Agent Tool Calls)

# Single-point poetic landmark screenshot
python3 skills/jiangshan-atlas/scripts/jiangshan.py --year 819 --place 蓝关 --out /tmp/languan_819.png

Same-year multi-stop trajectory screenshot

python3 skills/jiangshan-atlas/scripts/jiangshan.py --year 763 --place 剑外,巴峡,巫峡,襄阳,洛阳 --out /tmp/dufu_763.png

Multi-year space-time trajectory screenshot

python3 skills/jiangshan-atlas/scripts/jiangshan.py --year 1079,1080,1094,1097 --place 湖州,黄州,惠州,儋州 --out /tmp/sushi_exile.png

3. Browser JavaScript API (window.atlasAPI)

In browser automation environments (Playwright / WebMCP), call window.atlasAPI directly:

  • window.atlasAPI.locate({ year, place, zoom? }): Drives the map to a single location or multi-stop trajectory and returns structured historical-geographic metadata.
  • window.atlasAPI.inspect({ year, place }): Read-only query returning the controlling polity, ancient prefecture, modern province/city, leg distances, and canonical shareable URL.
  • window.atlasAPI.resolvePlace(place, year?): Resolves ancient and modern names for cities, strategic passes, poetic landmarks, and battlefields.

Run Locally

No dependencies or build steps required. Clone and serve with any static HTTP server:

git clone https://github.com/DeanChensj/jiangshan-map.git
cd jiangshan-map
python3 -m http.server 8000

Then open http://localhost:8000 in your browser.


Credits & License

  • Historical GIS References: Tan Qixiang's The Historical Atlas of China (谭其骧主编《中国历史地图集》), CHGIS (Harvard-Yenching Institute & Fudan University), Robert M. Hartwell historical GIS datasets, and aourednik/historical-basemaps (GPL-3.0).
  • Modern Provincial Reference: DataV GeoAtlas open administrative boundary data.
  • Classical Guqin Audio: Wikimedia Commons public-domain recordings (Liu Shui, Pingsha Luoyan, Yangguan Sandie, Zuiyu Changwan, Jiu Kuang).
  • Note: Historical territorial contours and prefecture boundaries in this atlas are schematic approximations intended to illustrate broad historical jurisdictions rather than modern surveyed borders.
  • Contributing: See CONTRIBUTING.md (中文贡献指南) for repository structure, data conventions, and validation checks.
  • License: GPL-3.0.
Chat with me