{"id":449030,"date":"2026-02-27T20:01:16","date_gmt":"2026-02-27T20:01:16","guid":{"rendered":"https:\/\/www.newsbeep.com\/uk\/449030\/"},"modified":"2026-02-27T20:01:16","modified_gmt":"2026-02-27T20:01:16","slug":"trainingpeaks-virtual-massively-expands-with-new-gpxplore-feature","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/uk\/449030\/","title":{"rendered":"TrainingPeaks Virtual Massively Expands with New GPXplore Feature"},"content":{"rendered":"<p><img data-perfmatters-preload=\"\" fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-large wp-image-167394\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/RidePreview-2-720x404.png\" alt=\"\" width=\"720\" height=\"404\"  \/><\/p>\n<p>TrainingPeaks Virtual has expanded with a major new feature that lets you import in a GPX route and ride virtually any route\/road\/path on the planet. As long as you have a route you\u2019ve already ridden, or create a GPX route from any number of major platforms (Strava, Garmin, Komoot, etc\u2026), then you\u2019re good to go! The feature, as the title implies, is <a href=\"https:\/\/www.trainingpeaks.com\/blog\/gpxplorer-trainingpeaks-virtual\/\" rel=\"nofollow noopener\" target=\"_blank\">called GPXplore<\/a>.<\/p>\n<p>This feature lets you ride the route elevation and curves, while also attempting to blend some of the satellite imagery as a basemap which TrainingPeaks Virtual will then blend with 3D graphics to simulate the gist of the landscape around you. Give or take an extra snow-capped mountain. Still, the key thing here is enabling TrainingPeaks athletes and coaches to easily get ridable routes into an indoor training platform that connects with their smart trainers to simulate. That\u2019s the core goal, and that\u2019s achieved here.<\/p>\n<p>After a few harder days of running, I had an easy trainer ride scheduled for today, thus perfect to give this a whirl. So let\u2019s dive into it.<\/p>\n<p>Getting a Route In:<\/p>\n<p>While this part isn\u2019t hard, it\u2019s also a little bit messy (at least at scale). You\u2019ll need to first create the route somewhere else (e.g., on some other platform), before importing it into your TrainingPeaks account. You\u2019ll need a GPX file, so that can be from an existing route you\u2019ve ridden (e.g., exported from Garmin Connect, or Wahoo, Hammerhead, etc\u2026), or a route you\u2019ve created (e.g., Strava, Komoot, etc\u2026). It doesn\u2019t really matter a ton where you create the route, as long as it\u2019s created and you\u2019ve got a file.<\/p>\n<p>In an ideal world, TrainingPeaks would just be able to be a destination for routes from Strava, Komoot, etc\u2026 but there\u2019s all assortment of business complexities there (mostly on the part of the others), making this more cumbersome than it needs to be.<\/p>\n<p>Once you\u2019ve got a file, you\u2019ll need to import the file into TrainingPeaks (the website, not the TrainingPeaks Virtual app). This piece is honestly a little bit clunky compared to just importing it into the app, but such is life. Log in, and on the left side you\u2019ll see routes:<\/p>\n<p><img data-perfmatters-preload=\"\" decoding=\"async\" class=\"wp-image-167363\" title=\"UntitledImage.png\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/UntitledImage-9.png\" alt=\"\" width=\"720\" height=\"473\" border=\"0\"   fetchpriority=\"high\"\/><\/p>\n<p>From there, just choose the file you want to import:<\/p>\n<p><img data-perfmatters-preload=\"\" decoding=\"async\" class=\"wp-image-167364\" title=\"UntitledImage.png\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/UntitledImage-10.png\" alt=\"\" width=\"614\" height=\"449\" border=\"0\"   fetchpriority=\"high\"\/><\/p>\n<p>It only takes a second, and then it\u2019s imported in. It would be a nice touch if they just auto-filled the title in, based on the GPX file name (currently you have to manually title it).<\/p>\n<p>Next, you\u2019ll open up TrainingPeaks Virtual (the game app), and then navigate to \u2018Events\u2019, and from there choose \u2018Add New\u2019. First, I\u2019d argue this should just be on the main home dashboard as a thing you can do. Zwift learned this lesson a few years ago with structured workouts and such, to just put the things people want on the homepage (especially newly\/just-created things). After all, the entire point of TrainingPeaks buying this platform was for deeper integration. Now that the integration is there, don\u2019t hide it by making people create one-off events. Just make it an easy-button.<\/p>\n<p>Anyways, go and create an event, and then you\u2019ll see the option for \u2018My Routes\u2019 at the bottom:<\/p>\n<p><img data-perfmatters-preload=\"\" decoding=\"async\" class=\"wp-image-167366\" title=\"CreateRoute.png\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/CreateRoute-1.png\" alt=\"\" width=\"720\" height=\"403\" border=\"0\"   fetchpriority=\"high\"\/><\/p>\n<p>Again, I\u2019d argue that if I select a route name, it should just automatically populate that as the title. I know these sound like little nitpicking things (and they are minor), but it\u2019s all about fast workflow for time-crunched athletes. Minimizing friction. The good thing is that George and the TPV crew are incredibly quick at implementing suggestions (by far the fastest in the industry).<\/p>\n<p>Note that if you scroll down, you can select a Biome, which drives the environment around you.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-167400 perfmatters-lazy\" alt=\"\" width=\"720\" height=\"404\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/Biome-720x404.png\"  data-\/><\/p>\n<p>Also, if you scroll down in these settings, there\u2019s options like how many bots are riding with you, requiring a code, etc\u2026 I had initally not even noticed there was a scroll bar, let alone all the other options.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-167401 perfmatters-lazy\" alt=\"\" width=\"720\" height=\"404\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/Pensize-720x404.png\"  data-\/><\/p>\n<p>In any case, from there it creates an event at a given time, and then you can copy that out to friends. Look, I get it, this feature was based on creating routes for events, rather than the individual athlete. But I\u2019d argue (again) that the <a href=\"https:\/\/www.dcrainmaker.com\/2024\/10\/trainingpeaks-acquires-indievelo.html\" rel=\"nofollow noopener\" target=\"_blank\">whole purpose of TP buying this platform (IndieVelo)<\/a> was for the individual athlete. I just want to ride the route right now, not schedule it for the future with more clicks. Again, reduce friction, reduce clicks, increase time to ride.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167367 perfmatters-lazy\" title=\"ScheduledRide.png\" alt=\"\" width=\"719\" height=\"467\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/ScheduledRide.png\"  data-\/><\/p>\n<p>And don\u2019t even get me started on how this event doesn\u2019t show up under my events. I have to enter a code to see my own event that I just created, otherwise this section is just blank. But why?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167370 perfmatters-lazy\" title=\"MyEventShown.png\" alt=\"\" width=\"719\" height=\"406\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/MyEventShown-1.png\"  data-\/><\/p>\n<p>If I tap on it, I can see the event details, including the route, profile, etc\u2026 all of which looks good to me.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167372 perfmatters-lazy\" title=\"RidePreview.png\" alt=\"\" width=\"719\" height=\"403\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/RidePreview-1.png\"  data-\/><\/p>\n<p>Of course, once you tap \u2018Let\u2019s Ride\u2019, you need to wait till the start of the event (the soonest you can create it is 5 minutes in advance). I\u2019ve brought up these concerns to TrainingPeaks, and it sounds like they\u2019re already on the case, aiming to simplify\/streamline this shortly.<\/p>\n<p>Basically, what I want is:<\/p>\n<p>1) Import GPX into TrainingPeaks (web)<br \/>2) Option to tap \u2018Ride Now\u2019 on TrainingPeaks Virtual Home Dashboard<br \/>3) Instantly start riding the route<\/p>\n<p>Speaking of which, let\u2019s look at how it works once you start riding.<\/p>\n<p>Riding the Route:<\/p>\n<p>With that sorted, you\u2019ll be placed in the starting pen until the event begins. Even on a private event (as mine was, with just me), by deafult you\u2019ll be joined by 29 other simulated riders (bots). You can change this in the settings.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167374 perfmatters-lazy\" title=\"vlcsnap-2026-02-27-16h03m53s889.png\" alt=\"Vlcsnap 2026 02 27 16h03m53s889.\" width=\"719\" height=\"467\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/vlcsnap-2026-02-27-16h03m53s889.png\"  data-\/><\/p>\n<p>I thought it was mildly interesting to see how TPV overlaid a starting pen loop atop the streets here. You can see the satellite imagery below it, and this is normally a quiet four-way intersection.<\/p>\n<p>In any case, off we went. The route that TPV creates is basically an identical route to your GPX file, from an elevation\/gradient\/road turn standpoint. What isn\u2019t identical, however, is what surrounds the road, as well as the road surface itself (as I\u2019ll see later). So, for example, here on the quiet street around my home, this is what it looks like in the game vs real life:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167379 perfmatters-lazy\" title=\"vlcsnap-2026-02-27-16h04m11s401.png\" alt=\"Vlcsnap 2026 02 27 16h04m11s401.\" width=\"316\" height=\"178\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/vlcsnap-2026-02-27-16h04m11s401-2.png\"  data-\/> <img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167378 perfmatters-lazy\" title=\"RouteReality.png\" alt=\"\" width=\"355\" height=\"178\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/RouteReality-1.png\"  data-\/><\/p>\n<p>As much as I\u2019d love for the mountains to magically surround the island like a James Bond movie (and be snow-capped), that\u2019s definitely not the case either.<\/p>\n<p>Still, the ups\/downs of the road are real, which made it fun to fly down a hill at 75KPH that normally has a turn you can\u2019t do above 50KPH for fear of ending up with the sheep.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167383 perfmatters-lazy\" title=\"vlcsnap-2026-02-27-16h04m27s518.png\" alt=\"Vlcsnap 2026 02 27 16h04m27s518.\" width=\"720\" height=\"405\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/vlcsnap-2026-02-27-16h04m27s518-1.png\"  data-\/><\/p>\n<p>There do appear to be some bugs to work out with portions of the routes that overlap, these result in fences for riders to\u2026ummm\u2026navigate. This seems to occur any time the route doubles back on itself.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167382 perfmatters-lazy\" title=\"vlcsnap-2026-02-27-16h05m02s781.png\" alt=\"Vlcsnap 2026 02 27 16h05m02s781.\" width=\"720\" height=\"405\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/vlcsnap-2026-02-27-16h05m02s781-1.png\"  data-\/><\/p>\n<p>Likewise, there are moments when the cyclists appear to be using non-UCI-compliant bikes, pushing so hard that they simply melt into the pavement.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167384 perfmatters-lazy\" title=\"vlcsnap-2026-02-27-16h11m20s304.png\" alt=\"Vlcsnap 2026 02 27 16h11m20s304.\" width=\"719\" height=\"404\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/vlcsnap-2026-02-27-16h11m20s304.png\"  data-\/><\/p>\n<p>Still, in terms of the overall ups\/downs of a course, it captures it well. Having ridden this route more times than I could possibly count, it does a good job there.<\/p>\n<p>However, the surrounding terrain is mostly incorrect. About the closest it got was one point where I dipped down close to the water on a U-Turn, and it showed the gist of it:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167385 perfmatters-lazy\" title=\"vlcsnap-2026-02-27-16h05m43s670.png\" alt=\"Vlcsnap 2026 02 27 16h05m43s670.\" width=\"719\" height=\"404\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/vlcsnap-2026-02-27-16h05m43s670.png\"  data-\/><\/p>\n<p>Here\u2019s it in real life:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-167387 perfmatters-lazy\" title=\"EndOfRoad.jpg\" alt=\"\" width=\"719\" height=\"411\" border=\"0\" src=\"https:\/\/www.newsbeep.com\/uk\/wp-content\/uploads\/2026\/02\/EndOfRoad.jpg\"  data-\/><\/p>\n<p>Still, it\u2019s hard to replicate everything on earth. In many ways, this is akin to RGT\u2019s Magic Roads concept, where you could basically just generate a route based on a GPX file. Which is, in turn, equivalent to what Tacx has had for literally like 15 years (see my <a href=\"https:\/\/www.dcrainmaker.com\/2011\/12\/tacx-bushido-trainer-in-depth-review.html\" rel=\"nofollow noopener\" target=\"_blank\">review from 2011 of this concept<\/a>). And there are, of course, countless other small apps that do this too.<\/p>\n<p>Nonetheless, having it in a larger\/more mainstream app is beneficial to lots of people, and in the case of TrainingPeaks itself, this is a super common scenario. Many times over the last few years, my wife (who, like me, has been using TP for nearly 20 years) wants to ride a given upcoming race route (e.g., Ironman XYZ or Challenge XYZ), just to understand the general ups\/downs. In the past, we\u2019ve either tried to find the route on Rouvy or Fulgaz, or on occasion, messed around with the Tacx app. All of which provide a bit more scenic detail (full videos in the case of Rouvy\/Fulgaz), but in many cases you might not really care about the scenery, and you just want the elevation profile. This solves that.<\/p>\n<p>Anyways, cool stuff, and I\u2019m looking forward to seeing the TrainingPeaks Virtual team make some minor tweaks here to streamline this process. Knowing their history in making such tweaks, I suspect it\u2019ll be done by tomorrow at lunch. Maybe even breakfast.<\/p>\n<p>With that \u2013 thanks for reading!<\/p>\n<p>FOUND THIS POST USEFUL? SUPPORT THE SITE!<\/p>\n<p>Hopefully, you found this post useful. The website is really a labor of love, so please consider becoming a <a href=\"https:\/\/www.dcrainmaker.com\/support\" target=\"_blank\" rel=\"nofollow noopener\">DC RAINMAKER Supporter<\/a>. This gets you an ad-free experience, and access to our (mostly) bi-monthly behind-the-scenes video series of \u201c<a href=\"https:\/\/www.youtube.com\/watch?v=-qbE3feTkds&amp;t=1s\" target=\"_blank\" rel=\"nofollow noopener\">Shed Talkin\u2019<\/a>\u201d.<\/p>\n<p><a href=\"https:\/\/www.amazon.com\/gp\/browse.html?rw_useCurrentProtocol=1&amp;node=8916179011&amp;linkCode=ll2&amp;tag=dcr07-20&amp;linkId=2cf083a39b98796644643a4089b57a7a&amp;language=en_US&amp;ref_=as_li_ss_tl\" target=\"_blank\" class=\"support-amazon\" rel=\"nofollow noopener\">Support DCRainMaker &#8211; Shop\u00a0on\u00a0Amazon<\/a><\/p>\n<p>Otherwise, perhaps consider using the below link if <a href=\"https:\/\/www.amazon.com\/gp\/browse.html?rw_useCurrentProtocol=1&amp;node=8916179011&amp;linkCode=ll2&amp;tag=dcr07-20&amp;linkId=2cf083a39b98796644643a4089b57a7a&amp;language=en_US&amp;ref_=as_li_ss_tl\" target=\"_blank\" rel=\"nofollow noopener\">shopping on Amazon<\/a>. As an Amazon Associate, I earn from qualifying purchases. It doesn\u2019t cost you anything extra, but your purchases help support this website a lot. It could simply be <a href=\"https:\/\/amzn.to\/3SEEIK9\" target=\"_blank\" rel=\"nofollow noopener\">buying toilet paper<\/a>, or this <a href=\"https:\/\/amzn.to\/3SEMN1M\" target=\"_blank\" rel=\"nofollow noopener\">pizza oven<\/a> we use and love.<\/p>\n","protected":false},"excerpt":{"rendered":"TrainingPeaks Virtual has expanded with a major new feature that lets you import in a GPX route and&hellip;\n","protected":false},"author":2,"featured_media":449031,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[4985,162744,101,162745,162746,56,54,55],"class_list":["post-449030","post","type-post","status-publish","format-standard","has-post-thumbnail","category-cycling","tag-cycling","tag-indievelo","tag-sports","tag-trainingpeaks","tag-trainingpeaks-virtual","tag-uk","tag-united-kingdom","tag-unitedkingdom"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/posts\/449030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/comments?post=449030"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/posts\/449030\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/media\/449031"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/media?parent=449030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/categories?post=449030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/uk\/wp-json\/wp\/v2\/tags?post=449030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}