The Walk to Mordor / About ← Visualization
About This Project

The Walk to Mordor

Three journeys. One walker. Two clocks.
One hobbit nerd's real journey through fictional time.

Between March 2024 and June 2026, through The Conqueror I completed three virtual walking challenges based on Tolkien's journeys: Frodo's slog to Mordor, Aragorn's return to the throne of Gondor, and Bilbo's journey to the Lonely Mountain. Google Fit tracked my mileage. This project maps those miles onto Middle-earth and lets you experience the journeys through two different timelines: when I actually walked, and when the characters did.


The Conqueror: You give them money. They gamify your daily walks into a fictional journey and eventually mail you a shiny medal. I got eleven.

The Project

What This Is

The Walk to Mordor is an interactive data-storytelling project built from 806 days of my real-world walking. I mapped that walking history onto three fictional journeys through Middle-earth and built two ways to experience it.

My Time follows my actual walking calendar: when I walked more, the character moves farther. Middle-earth Time follows Tolkien's chronology instead, reconstructing where the characters would have been on each day of their journeys.

The same map, routes, and story events serve both views. What changes is the clock.

Why I Built It

I'd been completing the Conqueror challenges partly because the framing appealed to me: your daily steps, accumulated, become something. Frodo reaches Weathertop. You get a shiny medal. It's a small thing, but there's something satisfying about tying ordinary movement to narrative.

The Lord of the Rings also appeals to me as a metaphor for doing difficult things without knowing how they'll turn out. You don't have to know you'll succeed to take the next step. Sometimes you just have to keep going and leave room for luck, circumstance, and happy accidents to take you somewhere you couldn't have planned.

I was already walking regularly; the challenges just gave me an extra reason to keep going, and I genuinely enjoyed seeing where I was along the route. Eventually, I had two years of walking data. Naturally, I wanted to see what was actually in it. How much did I walk? When did my pace change? How did the three journeys compare? And what would happen if I put all of that alongside Tolkien's story?

I'm a data nerd. Of course I was gonna build something.

The Three Journeys

The three challenges were completed in the following order, with gaps between them.

Character Journey Walking Period Target Median Daily Miles Days Active
Frodo The Walk to Mordor Mar 2024 – Jan 2025 1,815 mi 7.1 mi/day 261
Aragorn Return of the King Jan 2025 – Aug 2025 1,482 mi 6.5 mi/day 225
Bilbo The Hobbit Jan 2026 – Jun 2026 1,100 mi 7.9 mi/day 142

Across the full project window, including gap periods between challenges: 5,196 miles walked over 806 days. Of those, I accumulated roughly 4,465 miles over 628 days during the challenges — approximately the length of the Silk Road.

Frodo and Aragorn's fictional journeys overlap: Aragorn's route begins at Parth Galen on the same day Frodo breaks from the Fellowship (T.A. 3019, February 26). In Middle-earth Time, both characters are active simultaneously through the final weeks of the War of the Ring, right up to the destruction of the Ring on March 25, 3019. Bilbo's journey takes place in T.A. 2941, almost 80 years earlier, and runs independently.

↑ Top

Two Clocks

The central design question: What happens when the same journey is measured by two different clocks?

My Time asks when I actually walked those miles.

Middle-earth Time asks where the characters were in Tolkien's story on each day of their journey.

Both clocks use the same map and routes. They simply answer different questions. The map and routes don't know which clock is running them.

My Time

The slider moves through real-world calendar dates: March 27, 2024 to June 10, 2026. Each day's actual walking distance determines how far the character advances on the fictional route. If I walked 12 miles that day, the marker moves 12 miles. If I walked 2 miles, it moves 2.

This clock answers: When did I actually walk, and what does that pace look like projected onto the map? It shows the real shape of the walking history — the challenge pause, the inter-journey gaps, the faster and slower stretches.

Default visualization view: All Time mode, Frodo departing Bag End on March 27, 2024
My Time, Day 1: March 27, 2024. Frodo has just left Bag End. The info panel shows the date, cumulative miles, narrative location, and the most recently reached story event.

Middle-earth Time

The slider moves through Shire Calendar dates: T.A. 2941 (Bilbo) and T.A. 3018–3019 (Frodo and Aragorn). Character position is reconstructed from Tolkien's dated events and locations, calibrated to the fixed route mileage supplied by The Conqueror. The route's total fictional mileage stays fixed; what changes is when that mileage is accumulated across Tolkien's dates rather than mine.

This clock answers: Where does this movement fall within the story's own chronology? It lets you navigate through narrative beats — arriving at Rivendell, crossing the Bridge of Khazad-dûm, reaching Parth Galen — according to the story's Shire Calendar dates.

Middle-earth Time showing Frodo and Aragorn simultaneously active near Mordor in T.A. 3019
Middle-earth Time, late T.A. 3019: Frodo escaping the Tower of Cirith Ungol, Aragorn at the Battle of the Pelennor Fields. The info panel shows narrative events for the active journey; the Overview mode reveals both routes simultaneously.

The story events work differently under each clock. In My Time, an event appears when my accumulated walking reaches its mileage point. In Middle-earth Time, events appear according to their place in Tolkien's chronology.

The two timelines don't simply display the same information on different dates. They produce different shapes of movement. My Time reflects the rhythm of my actual walking; Middle-earth Time reflects the rhythm of the story.

Three line charts comparing cumulative walking distance over time in My Time and Middle-earth Time for Frodo, Aragorn, and Bilbo; My Time rises steadily while Middle-earth Time includes extended flat periods.
The same walking history produces different shapes under the two clocks: My Time shows the steady accumulation of real-world walking, while Middle-earth Time preserves the pauses and bursts of movement in the story.

Same mileage, radically different elapsed time

The same fictional distance reads as a very different temporal span depending on which clock you read. Aragorn's Return journey covers 1,482 fictional miles across just 30 Middle-earth days. My real-world walking of the same route spanned 225 calendar days, a ratio of 7.5×. In my defense, Aragorn rode a horse for most of the way. Frodo's ratio is a more modest 1.55× (and he used a boat). Bilbo inverts the pattern entirely: his fictional timeline runs 212 Middle-earth days while my real-world walking finished the same mileage in only 142 calendar days (ratio 0.67×).

1.55×
Frodo — Real / ME time
7.5×
Aragorn — Real / ME time
0.67×
Bilbo — Real / ME time

Fictional mileage spends a lot of time standing still

Of Frodo's 185 Middle-earth days, fictional mileage is stationary for 95 of them — 51% of the journey. The two largest plateaus are Rivendell (65 ME days at mile 487) and Lothlórien (28 ME days at mile 952). During those same stretches, my real-world walking continued without pause; the two clocks were simply tracking different things. This is one of the sharpest demonstrations that the Middle-earth timeline and the walking calendar are genuinely independent systems.

Bilbo's fictional timeline has a more fragmented structure: three separate stationary periods (Rivendell rest, Wood-elves captivity, Lake-town rest) account for 72 of his 212 Middle-earth days (34%).

Fictional travel mode shifts the Middle-earth clock dramatically

The reconstructed chronology produces different apparent travel rates depending on the mode of travel described in the story: walking, horseback, or boat. These are model-derived rates, not measurements from Tolkien's text. The result is a wide range: walking segments cluster around ordinary walking speeds, while horseback and boat travel can compress a large fictional distance into a few Middle-earth days. My actual walking rate doesn't change to reflect these modes. In the visualization, the effect is immediate: the Middle-earth slider advances much faster during horseback and boat segments than during walking ones.

In other words, the model lets Aragorn's horse do something my Fitbit obviously cannot: cover 77 fictional miles in a day.

77.4
Edoras → Dunharrow
fictional mi / ME day (horseback)
37.7
Boats on the Anduin
fictional mi / ME day
41.8
Beorn → Mirkwood
fictional mi / ME day (ponies)

My daily walking stayed surprisingly consistent

The three challenges span more than two years, completely different fictional contexts, and very different total distances — yet the walking itself barely changed. Median daily distance: Frodo 7.1 mi, Aragorn 6.5 mi, and Bilbo 7.9 mi. The fictional circumstances changed. The person walking didn't.

↑ Top

The Data

The Walking Data

The raw data is a Google Fit export of daily step counts and distance measurements. A processing notebook audits and cleans the export, assigns each day to a journey segment or gap, and produces public-safe aggregate data without publishing personally identifying health information.

5,196
Total miles
806
Project days
90.3%
Active days (≥ 2 mi)
125
Longest streak (days)
Daily walking distance bar chart, March 2024 – June 2026, colored by journey with 14-day rolling average
Daily walking distance across the full project window. Challenge periods are colored by character; grey bars are gap periods between challenges. The 14-day rolling average sits broadly in the 6–9 miles/day band throughout. The annotated pause (Jul–Aug 2024) was a 27-day gap in the Frodo challenge — walking continued uninterrupted during it.

The rolling average tells the more honest story: there's no dramatic multi-week collapse at any point across two years. Variation exists, but it tends to be short-lived. The grey stretches, gaps when I wasn't logging miles for a challenge, confirm that the walking habit didn't depend on an active challenge. The last gap spans 147 days at roughly 4 miles/day, slower than challenge pace but continuous.

Cumulative walking distance chart reaching 5,196 miles
Cumulative miles across 806 days. The Bilbo section (green, far right) has the steepest gradient — the fastest sustained average pace of the three challenges. No section is truly flat.
Daily distance by day of week and monthly totals
Left: daily distance by day of week. Sunday and Monday produce the highest medians; Friday the lowest. The range across all seven days is only ~2.5 miles — this is a daily walker, not a weekend athlete. Right: monthly totals colored by active challenge. Monthly accumulation is broadly even across all three challenge periods with no seasonal collapse.

Recreating Middle-earth Time

Gregorian dates weren't enough for this project. Tolkien's chronology uses the Shire Calendar, with twelve 30-day months plus several special days outside the months, including a leap day. I needed a way to turn those dates into something a computer could compare, sort, and interpolate.

So I numbered them.

I assigned every Shire Calendar day an absolute ordinal, anchored to 2 Yule, T.A. 2941. That gives Bilbo, Frodo, and Aragorn a common numerical time axis while preserving their separate narrative timelines.

Reconstructing Middle-earth Movement

The Conqueror provides a fixed total mileage for each journey and a set of named segment milestones. Tolkien's text and appendices provide dated narrative events. Neither source provides a day-by-day record of how far each character traveled on any given Shire date.

The movement model is built from a hand-curated anchor file combining Conqueror mileage with Tolkien's dated events, published chronology, and supporting reference material. Each anchor records a Shire Calendar date, cumulative mileage, place, and whether the date is explicitly established in Tolkien's chronology or estimated where the text leaves a gap. (Exact dates for The Hobbit in particular are sparse and therefore estimated.)

me-time-anchors.csv ← human-curated; dated locations + mileage + confidence
  ↓ me-time-generator.ipynb (linear interpolation between anchors)
me_time.csv ← continuous daily Middle-earth timeline (generated)

Between any two consecutive anchors, mileage is distributed linearly across the relevant Middle-earth days. Recognized rest stops (the Company's stay in Rivendell, the Fellowship's weeks in Lothlórien, and Bilbo's time in the Wood-elves' halls) produce zero-movement intervals: the ordinal advances but the cumulative miles don't change.

This is a modeling choice, not a claim that Tolkien specified these daily distances. The anchor file records which dates are well-established and which are reasoned estimates. The model produces a plausible distribution of movement; it doesn't replicate the text with precision it doesn't have.

↑ Top

Building the Visualization

The Map and Moving Routes

The underlying map comes from mapome a community-made map of Middle-earth licensed under CC BY-SA 4.0. It's a fixed image, with the journey routes and moving markers drawn on top in a separate, transparent layer. Keeping the map and the routes separate lets the characters move along their paths as the timeline advances, without changing the underlying map.

Each journey's route has two distinct structures:

Geometry — a dense array of {x, y} points hand-traced over the map, following roads, river valleys, and mountain passes. This is what gets drawn as the visible route line.

Anchors — a sparse set of calibration points, each linking a named location, a fictional cumulative mileage value, and an index into the dense geometry array. These are the connection between the fictional mileage model and the visual path.

The visualization converts a cumulative mileage value to an SVG position by finding the two calibration anchors that bracket it, calculating where the mileage falls between them, and walking the dense geometry to place the marker exactly on the traced path. The marker follows every bend in the route; it never cuts straight between calibration points.

The map is geographic, not a mileage scale. Fictional mileage does not equal visual path length. Calibration anchors tie specific mileage values to named locations, while the traced geometry supplies the shape of the route between them. The result is a geographic interpretation of the journey, not a claim that every mile or campsite is precisely located.

Frodo's route in My Time, Bridge of Khazad-dûm region
Frodo in My Time: passing the Bridge of Khazad-dûm. The badge marks a challenge rest period aligned to the lament for Gandalf.
Bilbo's route in Middle-earth Time, Mirkwood region
Bilbo in Middle-earth Time: T.A. 2941, escaping the Wood-elves at Elvenking's Halls — one of the Shire Calendar dates explicitly established in Tolkien's chronology.
Aragorn solo view, Rohan and Gondor region, Paths of the Dead
Aragorn filtered solo, My Time: June 2025, Paths of the Dead. The revealed route line shows the complete path walked to this point.

Building the Routes

I had to draw the routes myself. No usable route geometry existed in a form I could directly incorporate into the visualization, so I built a small interactive route-building tool, inspired by geojson.io. The tool let me trace each journey over the base map, place mileage anchors, and export the geometry used by the final visualization.

Data Engineering

The raw data is a Google Fit export of daily step counts and distances. A Jupyter notebook audits the export against the underlying daily records, selects a canonical source, assigns each day to a journey segment or gap, runs explicit data-quality checks at every boundary, and produces public-safe outputs for the visualization. No personal health data beyond daily aggregate distances is published; the original export stays gitignored.

Narrative Layer

A separate data file records dated story events independent of the movement model — date, cumulative mileage anchor, place name, and a brief description. The separation is intentional: narrative events aren't another way of calculating mileage; they're a layer of story that runs alongside it.

The two clocks use that same narrative data differently. In My Time, narrative events are looked up by mileage: the info panel shows the most recently reached story beat given your cumulative distance. In Middle-earth Time, they're looked up by ordinal date: the panel shows what Tolkien placed at that date, independent of pace. The same file serves both clocks correctly without modification.

The Interface

The visualization is built in vanilla HTML, CSS, and JavaScript — no frameworks and no build step. The interface is designed for exploration rather than instruction. Pan and zoom to explore the routes at different scales, or play back the timeline to watch each journey unfold. The responsive layout keeps the map and narrative panel usable on smaller screens, while a pause badge makes an important interruption visible rather than hiding it.

Mobile layout with info panel below the map
Mobile layout: the map fills the viewport and the info panel moves to a scrollable overlay at the bottom. The header reorganizes into a two-row layout with touch-sized controls.

↑ Top

What This Project Taught Me

Nothing here came from a template. I built a calendar system the standard date library couldn't handle, reconstructed character movement from dated events in an 80-year-old fantasy novel, traced route geometry by hand over a fan-made SVG map, and wrote the frontend without a framework because adding one would have added complexity before it resolved any.

The more interesting challenge, throughout, was maintaining honesty about what each layer actually was — measured data, a model, an interpretation — and keeping those distinctions visible rather than smoothing them over. The two-clock design makes that distinction structural: neither timeline claims to be the authoritative record of the other.

Technical Deep Dives

The About page focuses on the story and the findings. These notebooks show the analysis underneath them, including the exploratory work, calculations, and comparisons used to build the visualization.

Completion Certificates

The Conqueror issues a digital completion certificate for each challenge segment finished. Across all three journeys there are eleven segments total — from The Shire to Mordor, Rohan to Gondor, and An Unexpected Journey to the Battle of the Five Armies.

The Conqueror completion certificate — Mordor segment
Mordor — January 2025
The Conqueror completion certificate — Gondor segment
Gondor — August 2025
The Conqueror completion certificate — Battle of the Five Armies segment
The Battle of the Five Armies — June 2026

These are the certificates for the final segment of each journey. There are eight more for the segments that precede them.

Completion medals for the Walk to Mordor challenge
Completion Medals

↑ Top

Sources & Attribution

Primary Sources
Tolkien's The Hobbit, The Lord of the Rings and appendices, and Unfinished Tales.
Secondary Sources
Karen Wynn Fonstad, The Atlas of Middle-earth, revised edition.
Map
mapome by k1tesurfen, CC BY-SA 4.0.
Walking Data
Personal Google Fit export; only daily aggregate distances are published.
Challenge Framework
The Conqueror.

Original code © 2026 Bryan Johns, MIT License.

This project is non-commercial and is not affiliated with the Tolkien Estate, HarperCollins, or any rights holder. No claim is made to any intellectual property associated with Middle-earth. See the repository README for full attribution and licensing information.