How A to F works
I spent two years as a gate agent at Amsterdam Schiphol, and the question I heard most was “which side has the view?” The honest answer was always “it depends.” This site works out what it depends on.
The flight path
One position per minute from takeoff to landing. For now this is the shortest route between the two airports at a typical cruising height. Real flights bend with the wind and air traffic control, which is why anything within 40 km of the line is marked as possibly on either side.
Where the sun is
For every minute, the sun’s direction and height above the horizon at the plane’s position, using the standard NOAA solar formulas. At 11 km up the horizon sits about 3 degrees lower than on the ground, so you see the sun for a few minutes after it has set for people below. The calculation matches the open-source astral library exactly across 20,000 random times and places.
Left or right
Compare the sun’s direction with the direction the plane is pointing. If the sun is to the left of the nose, it’s on the A side; to the right, the F side. A window shows you roughly what’s beside you, not straight ahead, so the sun has to be at least 20 degrees off the nose to count. Near sunset the coloured sky spreads wide, so golden light counts from 5 degrees.
What you can see
51 landmarks along these routes: mountain ranges, canyons, lakes, islands, capes and big cities, each from Natural Earth with a Wikidata ID. Terrain only counts in daylight. Cities count at night too, because their lights are the view.
The answer
Sunset or sunrise light wins first. Otherwise, the side with clearly more to see. Otherwise, in daylight, the side away from the sun: no glare, and the ground is lit from behind you. The same engine runs in Python for the data and in your browser for any date, and 320 test flights check that both give identical answers.
Where Claude fits
Claude writes and reviews the code and the words: the window narration, the trip-planner plugin and the MCP server. It never decides which side something is on: the geometry does, and a separate checker rejects any sentence the geometry doesn’t support.
Limits
- Flight paths are approximations until real flight tracks are loaded, so flight times are shorter than the schedule, especially flying west into the wind.
- Clouds are not forecast. A sunset on your side can still be a grey one.
- There are no seat maps here, so the wing is not taken into account. Rows behind the wing usually have the clearer view down.
- Three routes are still being checked against JetBlue’s current schedule and are marked on the route list.
Every landmark, with its source
Minutes are after takeoff on the approximate path.
JFK to LAX, 12 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 21 | Appalachian Mountains | below | 0 km | Q93332 |
| 39 | Pittsburgh | left | 40 km | Q1342 |
| 50 | Cleveland | right | 78 km | Q37320 |
| 58 | Columbus | left | 85 km | Q16567 |
| 79 | Indianapolis | left | 95 km | Q6346 |
| 133 | Kansas City | left | 78 km | Q41819 |
| 200 | Fishers Peak | left | 104 km | Q14951222 |
| 201 | Front Range | right | 54 km | Q1470027 |
| 210 | Rocky Mountains | below | 0 km | Q5463 |
| 217 | Uncompahgre Peak | right | 76 km | Q576184 |
| 251 | Humphreys Peak | left | 88 km | Q1239004 |
| 255 | Grand Canyon | below | 0 km | Q118841 |
LAX to JFK, 12 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 43 | Grand Canyon | below | 0 km | Q118841 |
| 47 | Humphreys Peak | right | 88 km | Q1239004 |
| 81 | Uncompahgre Peak | left | 76 km | Q576184 |
| 88 | Rocky Mountains | below | 0 km | Q5463 |
| 97 | Front Range | left | 54 km | Q1470027 |
| 98 | Fishers Peak | right | 104 km | Q14951222 |
| 165 | Kansas City | right | 78 km | Q41819 |
| 219 | Indianapolis | right | 95 km | Q6346 |
| 240 | Columbus | right | 85 km | Q16567 |
| 248 | Cleveland | left | 78 km | Q37320 |
| 259 | Pittsburgh | right | 40 km | Q1342 |
| 278 | Appalachian Mountains | below | 0 km | Q93332 |
JFK to SFO, 17 landmarks
SFO to JFK, 17 landmarks
JFK to SJU, 0 landmarks
Open sea most of the way. The view on this one is the sky.
SJU to JFK, 0 landmarks
Open sea most of the way. The view on this one is the sky.
BOS to SJU, 0 landmarks
Open sea most of the way. The view on this one is the sky.
SJU to BOS, 0 landmarks
Open sea most of the way. The view on this one is the sky.
JFK to FLL, 5 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 16 | Cape May | right, could be either | 23 km | Q2065437 |
| 35 | Norfolk | right | 51 km | Q49231 |
| 35 | Virginia Beach | right, could be either | 26 km | Q49259 |
| 46 | Cape Hatteras | left | 75 km | Q978032 |
| 63 | Cape Fear | right | 84 km | Q1034413 |
FLL to JFK, 5 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 66 | Cape Fear | left | 84 km | Q1034413 |
| 83 | Cape Hatteras | right | 75 km | Q978032 |
| 94 | Norfolk | left | 51 km | Q49231 |
| 94 | Virginia Beach | left, could be either | 26 km | Q49259 |
| 113 | Cape May | left, could be either | 23 km | Q2065437 |
JFK to LHR, 11 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 18 | Providence | right, could be either | 18 km | Q18383 |
| 22 | Boston | below | 11 km | Q100 |
| 25 | Cape Cod | right | 71 km | Q49152 |
| 71 | Nova Scotia | below | 0 km | Q1952 |
| 83 | Prince Edward Island | below | 0 km | Q15120268 |
| 95 | Cape Breton Island | below | 11 km | Q188489 |
| 122 | Newfoundland | below | 0 km | Q48335 |
| 377 | Ireland | below | 0 km | Q22890 |
| 383 | Dublin | left | 95 km | Q1761 |
| 399 | Cambrian Mountains | below | 0 km | Q1028218 |
| 402 | Cardiff | right | 54 km | Q10690 |
LHR to JFK, 11 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 14 | Cardiff | left | 54 km | Q10690 |
| 17 | Cambrian Mountains | below | 0 km | Q1028218 |
| 33 | Dublin | right | 95 km | Q1761 |
| 40 | Ireland | below | 0 km | Q22890 |
| 295 | Newfoundland | below | 0 km | Q48335 |
| 321 | Cape Breton Island | below | 11 km | Q188489 |
| 333 | Prince Edward Island | below | 0 km | Q15120268 |
| 345 | Nova Scotia | below | 0 km | Q1952 |
| 391 | Cape Cod | left | 71 km | Q49152 |
| 394 | Boston | below | 11 km | Q100 |
| 398 | Providence | left, could be either | 18 km | Q18383 |
BOS to LHR, 8 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 50 | Nova Scotia | below | 0 km | Q1952 |
| 60 | Prince Edward Island | below | 0 km | Q15120268 |
| 73 | Cape Breton Island | right, could be either | 20 km | Q188489 |
| 98 | Newfoundland | below | 0 km | Q48335 |
| 354 | Ireland | below | 0 km | Q22890 |
| 360 | Dublin | left | 94 km | Q1761 |
| 376 | Cambrian Mountains | below | 0 km | Q1028218 |
| 379 | Cardiff | right | 54 km | Q10690 |
LHR to BOS, 8 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 14 | Cardiff | left | 54 km | Q10690 |
| 17 | Cambrian Mountains | below | 0 km | Q1028218 |
| 33 | Dublin | right | 94 km | Q1761 |
| 40 | Ireland | below | 0 km | Q22890 |
| 295 | Newfoundland | below | 0 km | Q48335 |
| 320 | Cape Breton Island | left, could be either | 20 km | Q188489 |
| 334 | Prince Edward Island | below | 0 km | Q15120268 |
| 344 | Nova Scotia | below | 0 km | Q1952 |
BOS to LAX, 19 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 17 | Adirondack Mountains | right, could be either | 39 km | Q357546 |
| 17 | Albany | right, could be either | 23 km | Q24861 |
| 30 | Appalachian Mountains | below | 0 km | Q93332 |
| 38 | Finger Lakes | below | 0 km | Q1416994 |
| 41 | Rochester | right | 81 km | Q49218 |
| 48 | Buffalo | right | 51 km | Q40435 |
| 66 | Cleveland | left | 93 km | Q37320 |
| 74 | Detroit | below | 11 km | Q12439 |
| 100 | Great Lakes | below | 0 km | Q7347 |
| 103 | Chicago | below | 5 km | Q1297 |
| 155 | Omaha | right | 64 km | Q43199 |
| 218 | Front Range | below | 0 km | Q1470027 |
| 223 | Mount Elbert | right | 97 km | Q657225 |
| 226 | Rocky Mountains | below | 0 km | Q5463 |
| 233 | Uncompahgre Peak | right, could be either | 18 km | Q576184 |
| 242 | Mount Peale | right | 112 km | Q6922678 |
| 267 | Humphreys Peak | left | 122 km | Q1239004 |
| 271 | Grand Canyon | below | 0 km | Q118841 |
| 286 | Las Vegas | right | 90 km | Q23768 |
LAX to BOS, 19 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 28 | Las Vegas | left | 90 km | Q23768 |
| 44 | Grand Canyon | below | 0 km | Q118841 |
| 47 | Humphreys Peak | right | 122 km | Q1239004 |
| 72 | Mount Peale | left | 112 km | Q6922678 |
| 81 | Uncompahgre Peak | left, could be either | 18 km | Q576184 |
| 89 | Rocky Mountains | below | 0 km | Q5463 |
| 91 | Mount Elbert | left | 97 km | Q657225 |
| 96 | Front Range | below | 0 km | Q1470027 |
| 159 | Omaha | left | 64 km | Q43199 |
| 211 | Chicago | below | 5 km | Q1297 |
| 214 | Great Lakes | below | 0 km | Q7347 |
| 240 | Detroit | below | 11 km | Q12439 |
| 248 | Cleveland | right | 93 km | Q37320 |
| 266 | Buffalo | left | 51 km | Q40435 |
| 273 | Rochester | left | 81 km | Q49218 |
| 276 | Finger Lakes | below | 0 km | Q1416994 |
| 284 | Appalachian Mountains | below | 0 km | Q93332 |
| 297 | Adirondack Mountains | left, could be either | 39 km | Q357546 |
| 297 | Albany | left, could be either | 23 km | Q24861 |
JFK to LAS, 9 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 21 | Appalachian Mountains | below | 0 km | Q93332 |
| 39 | Pittsburgh | left | 56 km | Q1342 |
| 50 | Cleveland | right | 58 km | Q37320 |
| 203 | Front Range | below | 0 km | Q1470027 |
| 208 | Mount Elbert | right | 81 km | Q657225 |
| 210 | Rocky Mountains | below | 0 km | Q5463 |
| 217 | Uncompahgre Peak | below | 8 km | Q576184 |
| 227 | Mount Peale | right | 76 km | Q6922678 |
| 254 | Grand Canyon | below | 0 km | Q118841 |
LAS to JFK, 9 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 18 | Grand Canyon | below | 0 km | Q118841 |
| 44 | Mount Peale | left | 76 km | Q6922678 |
| 54 | Uncompahgre Peak | below | 8 km | Q576184 |
| 62 | Rocky Mountains | below | 0 km | Q5463 |
| 63 | Mount Elbert | left | 81 km | Q657225 |
| 68 | Front Range | below | 0 km | Q1470027 |
| 221 | Cleveland | left | 58 km | Q37320 |
| 232 | Pittsburgh | right | 56 km | Q1342 |
| 251 | Appalachian Mountains | below | 0 km | Q93332 |
BOS to DEN, 12 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 17 | Adirondack Mountains | right, could be either | 29 km | Q357546 |
| 17 | Albany | below | 13 km | Q24861 |
| 28 | Appalachian Mountains | below | 0 km | Q93332 |
| 30 | Lake Oneida | right | 61 km | Q1247231 |
| 35 | Finger Lakes | below | 1 km | Q1416994 |
| 41 | Rochester | right | 56 km | Q49218 |
| 48 | Buffalo | right, could be either | 23 km | Q40435 |
| 74 | Detroit | left, could be either | 33 km | Q12439 |
| 99 | Great Lakes | below | 0 km | Q7347 |
| 103 | Chicago | left | 61 km | Q1297 |
| 103 | Milwaukee | right | 73 km | Q37836 |
| 155 | Omaha | left, could be either | 27 km | Q43199 |
DEN to BOS, 12 landmarks
| Minute | Landmark | Side | Distance | Wikidata |
|---|
| 56 | Omaha | right, could be either | 27 km | Q43199 |
| 108 | Chicago | right | 61 km | Q1297 |
| 108 | Milwaukee | left | 73 km | Q37836 |
| 112 | Great Lakes | below | 0 km | Q7347 |
| 137 | Detroit | right, could be either | 33 km | Q12439 |
| 163 | Buffalo | left, could be either | 23 km | Q40435 |
| 170 | Rochester | left | 56 km | Q49218 |
| 176 | Finger Lakes | below | 1 km | Q1416994 |
| 181 | Lake Oneida | left | 61 km | Q1247231 |
| 184 | Appalachian Mountains | below | 0 km | Q93332 |
| 194 | Adirondack Mountains | left, could be either | 29 km | Q357546 |
| 194 | Albany | below | 13 km | Q24861 |
Data and credits
- Landmarks and map outlines: Natural Earth (public domain), linked to Wikidata.
- 3D view: CesiumJS and Cesium ion, used under their free personal and education terms.
- Built with Claude for the ieNYC × DataCamp “Be a Master in Claude” challenge. Code on GitHub.
- Independent student project. Not affiliated with or endorsed by JetBlue Airways.