Understanding Isochrones
Reading the contour lines that reveal the fastest path across the ocean
What Isochrones Are
An isochrone is a line of equal time. Every point along a single isochrone can be reached in the same elapsed time from the starting position. If the first isochrone represents 3 hours after departure, then every point on that contour is a place your boat could theoretically be at T+3 hours โ assuming it sailed the optimal heading from the start. The word comes from the Greek iso (equal) and chronos (time), and it is the same concept used in geography to map travel time from a city center.
In weather routing, isochrones are the fundamental building blocks of the algorithm. Rather than trying to compute a single optimal track from start to finish in one pass, the algorithm grows outward in time steps. At each step it asks: given where the boat could be right now, where could it reach in the next interval? The answer โ a new contour pushed further across the chart โ becomes the next isochrone. The process repeats until an isochrone reaches or passes the destination.
On the qtVlm chart, isochrones appear as a series of colored lines radiating outward from the start POI. Each color typically represents a successive time step โ so you can visually trace the boat's progress across the chart in 1-hour, 3-hour, or 6-hour increments depending on your settings. The more isochrones you see, the more time steps the algorithm computed to reach the destination.
Think of isochrones like ripples from a stone dropped in water โ except the 'ripples' are distorted by wind strength and direction, land masses, and your boat's polar performance at each angle.
What does a single isochrone line represent?
How the Algorithm Builds Isochrones
The routing algorithm starts at your departure POI at T=0 and asks a simple question: if the boat sailed every possible heading from this point for one time step, where would it end up? Using your polar diagram (which maps boat speed as a function of true wind angle and true wind speed) and the GRIB forecast (which provides wind speed and direction at each grid point and time), the algorithm calculates the boat's position at T+1 step for dozens or hundreds of trial headings โ typically fanning out in 1ยฐ to 5ยฐ increments across the full 360ยฐ.
The outermost points from all those trial headings form the first isochrone. Some headings pushed the boat far โ these were the directions with favorable wind angles and strong breeze. Other headings barely moved the boat โ dead upwind, or into very light air. The isochrone's shape captures all of this: it bulges outward where conditions were favorable and pinches inward where they were not.
For the next time step, the algorithm does not start from the original point โ it starts from every point on the previous isochrone. Each of those positions becomes a new origin, and the same fan of trial headings is computed again using the GRIB data for the new time and new position. The outermost envelope of all these trials becomes the second isochrone. This recursive expansion continues โ isochrone after isochrone, each one starting from the frontier of the last โ until one of them reaches or encloses the destination POI.
The time step size โ the interval between isochrones โ directly controls accuracy and computation time. A 1-hour step produces highly detailed isochrones that capture rapid wind shifts but takes longer to compute. A 6-hour step is fast but may miss a favorable wind window that only lasts 3 hours. qtVlm's "Best accuracy" setting on the Automatic parameters slider uses the smallest practical time step for your passage distance.
If a routing takes a very long time to compute, the time step may be too small for the passage length. For initial exploration, use a moderate accuracy setting to get a quick result, then switch to Best accuracy for your final routing.
At each time step, what does the routing algorithm use as the starting frontier?
Interpreting Isochrone Shapes
Isochrone fans are not uniform circles โ their distortions tell you exactly what the wind is doing. When isochrones are widely spread in a particular direction, the boat is making fast progress that way. This usually means the wind is favorable: a strong beam reach or broad reach in the direction of travel, pushing the boat at or near its polar maximum. Wide spacing between consecutive isochrones means the boat covered a lot of ground in that time step.
When isochrones are tightly bunched or barely advancing, the boat is struggling. Common causes include headwinds (the boat is beating at a steep angle and making slow VMG toward the destination), light air (the GRIB shows very little wind, so polar speed drops near zero), or a combination of both. Tight bunching in one direction with wide spread in another often reveals a wind shift the algorithm is exploiting โ the optimal route will curve toward the wide spacing.
Gaps in the isochrone fan โ areas where no contour line extends โ indicate obstacles. The most common cause is land: the algorithm cannot route through islands or coastlines, so the isochrone stops at the shoreline and does not continue behind the land mass. You may also see gaps caused by wind shadows behind large islands or headlands, where the GRIB shows near-zero wind. In those areas the boat simply cannot make progress within the time step.
Folds or overlapping isochrones occur when the algorithm finds that two different paths reach the same area at the same time โ one going north around an obstacle and another going south, for example. Folds are a visual artifact of the 2D projection and usually resolve themselves in subsequent time steps as one path proves faster and dominates. If you see persistent folds, it often means the routing is genuinely ambiguous โ two paths are nearly equal in time, and small changes in the GRIB forecast could favor either one.
Before studying the computed route line, spend a minute reading the isochrone fan itself. It tells you why the algorithm chose a particular path โ and whether a slightly different departure time might open up a better one.
Isochrones are tightly bunched to the north but widely spread to the south. What does this tell you?
Time Steps, Accuracy, and the Optimal Path
The time step is the interval between successive isochrones โ typically ranging from 30 minutes to 6 hours. Smaller time steps produce more isochrones and capture shorter-lived wind features, but they also multiply computation time dramatically. A 1-hour time step on a 10-day passage creates 240 isochrones, each requiring thousands of trial heading calculations. qtVlm's Automatic parameters slider manages this trade-off for you: Best accuracy uses small steps, while faster settings use larger ones.
There is a practical limit to useful accuracy. If your GRIB data has a 6-hour temporal resolution (as many global models do), computing isochrones every 30 minutes does not add real information โ the wind data between GRIB time steps is interpolated, not observed. Matching your time step roughly to your GRIB's temporal resolution is a sensible baseline. Higher-resolution regional models (1-hour or 3-hour) justify smaller time steps.
The optimal route is the path connecting points on successive isochrones that arrives at the destination in the least total time. The algorithm traces it backward from the destination: which isochrone reached this point first? Which point on the previous isochrone led to that arrival point? And so on, back to the start. This backward-traced path is the optimal route line that qtVlm displays over the isochrone fan.
Understanding this backward tracing matters because it explains why the optimal route does not always follow the widest part of the isochrone fan. The algorithm optimizes for arrival time, not maximum speed at every moment. Sometimes sailing into a temporarily slow patch positions the boat to catch a wind shift that more than compensates โ the isochrone fan may look unfavorable at T+6 hours but the optimal route passes through that zone because conditions at T+12 are exceptional.
If the optimal route takes a path that seems counterintuitive โ sailing away from the destination or into light air โ animate the GRIB forecast forward in time. You will almost always find a wind shift or strengthening that explains the detour.
Why might the optimal route pass through a tightly bunched (slow) section of the isochrone fan?
Summary
An isochrone is a line of equal travel time โ every point on it can be reached in the same elapsed time from the start position.
The algorithm builds isochrones recursively, expanding from the previous frontier using polar data and GRIB wind forecasts at each time step.
Widely spread isochrones indicate favorable winds and fast progress; tightly bunched isochrones indicate headwinds or light air.
Gaps in the fan mark land masses or wind shadows; folds indicate route ambiguity where two paths are nearly equal.
The optimal route is traced backward from the destination through the isochrone stack, optimizing total arrival time rather than instantaneous speed.
Key Terms
- Isochrone
- A contour line connecting all positions reachable in the same elapsed time from the routing start point
- Time step
- The interval between successive isochrone computations โ smaller steps yield higher accuracy but longer computation time
- Trial headings
- The fan of candidate sailing directions the algorithm evaluates at each point on the current isochrone to build the next one
- Isochrone fan
- The visual display of all computed isochrones radiating from the start point, whose shapes reveal wind patterns and obstacles
- Backward tracing
- The method by which the optimal route is extracted: starting at the destination and tracing back through successive isochrones to the start
- VMG (Velocity Made Good)
- The component of boat speed in the direction of the destination โ determines how quickly the boat actually closes on the target