I developed a site that lets you pit your races against yourself or others!
#1
Senior Member
Thread Starter
I developed a site that lets you pit your races against yourself or others!
Okay, not strictly "I", my two roommates and I are bike nerds and computer nerds and we code all sorts of cycling projects in our free time. I did most of the functional coding, one of us did some of the prettying up/frontend work, and the other manages the server it runs on that lives in our apartment basement.
So, what is it? it's right here https://sherpa-map.com/activity-racer.html it's a 100% free, no ads or anything tool that allows you to upload your cycling activities as GPX files, hit play and watch yourself as a dot and on a graph with all of your data on a map. The cool thing is, you can upload the same race you may have done year after year and simply drag the red line to the beginning of any portion you may be curious about, like some single track in the middle of nowhere, and see where you were faster/slower, even if you got there at completely different times throughout the years!
Little tutorial
It's kinda like Strava Lab's flyby feature, but it puts you in control of the activities you want to see and lets you line up specific portions of a route against each other, as mentioned.
If you want to compare yourself to others, just note that you need a GPX file of their activity, not just their route. I found a great way to nab them from strava is to use this Chrome Extension I didn't make it, but makes it super easy to grab activity files.
Note: this activity racer tool is currently only designed for Desktop and it's all in Metric, I'm going to eventually make an imperial/metric button (I live in the US), but all the calculations are in metric, so it just makes life easier.
FYI, if you're wondering what the main site is, https://sherpa-map.com, it's another 100% free no Ads tool that allows you to create cycling routes! See the weather throughout your journey, find unpaved roads, and all other sorts of stuff. We developed and host that too.
As another fun offering, we also recently put together this tool https://sherpa-map.com/cycling-route-calculator.html which is again, 100% free with no Ads, which lets you upload a route, "brush on" various surface types, enter your equipment of choice, and see how long it will take you and what the weather will be on course (perfect before raceday!). I haven't actually shared this site with many people yet, because I'm still adding to it, I'm going to have it calculate nutrition and be able to tell you not only when you should have that gel but when will be the most optimal "fastest" time to, i.e. with a slight headwind up a paved hill just before that 10 miles of single track in your gravel race... If you're confused about this one I made a tutorial
I know I got a little side tracked there, but hey, I have a bunch of random cycling tools that I've created with the help of my roommates and host on our own server, they're all free, we just develop them in our free time for fun and I thought, why not mention all of them? Please do judge the fact they all have different buttons, themes, and layouts lol, we're having fun trying new things with each one.
So, what is it? it's right here https://sherpa-map.com/activity-racer.html it's a 100% free, no ads or anything tool that allows you to upload your cycling activities as GPX files, hit play and watch yourself as a dot and on a graph with all of your data on a map. The cool thing is, you can upload the same race you may have done year after year and simply drag the red line to the beginning of any portion you may be curious about, like some single track in the middle of nowhere, and see where you were faster/slower, even if you got there at completely different times throughout the years!
Little tutorial
It's kinda like Strava Lab's flyby feature, but it puts you in control of the activities you want to see and lets you line up specific portions of a route against each other, as mentioned.
If you want to compare yourself to others, just note that you need a GPX file of their activity, not just their route. I found a great way to nab them from strava is to use this Chrome Extension I didn't make it, but makes it super easy to grab activity files.
Note: this activity racer tool is currently only designed for Desktop and it's all in Metric, I'm going to eventually make an imperial/metric button (I live in the US), but all the calculations are in metric, so it just makes life easier.
FYI, if you're wondering what the main site is, https://sherpa-map.com, it's another 100% free no Ads tool that allows you to create cycling routes! See the weather throughout your journey, find unpaved roads, and all other sorts of stuff. We developed and host that too.
As another fun offering, we also recently put together this tool https://sherpa-map.com/cycling-route-calculator.html which is again, 100% free with no Ads, which lets you upload a route, "brush on" various surface types, enter your equipment of choice, and see how long it will take you and what the weather will be on course (perfect before raceday!). I haven't actually shared this site with many people yet, because I'm still adding to it, I'm going to have it calculate nutrition and be able to tell you not only when you should have that gel but when will be the most optimal "fastest" time to, i.e. with a slight headwind up a paved hill just before that 10 miles of single track in your gravel race... If you're confused about this one I made a tutorial
I know I got a little side tracked there, but hey, I have a bunch of random cycling tools that I've created with the help of my roommates and host on our own server, they're all free, we just develop them in our free time for fun and I thought, why not mention all of them? Please do judge the fact they all have different buttons, themes, and layouts lol, we're having fun trying new things with each one.
#2
Senior Member
Join Date: Apr 2019
Location: UK
Posts: 1,404
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 682 Post(s)
Liked 453 Times
in
338 Posts
Do judge or don’t judge? Nice work. This is really interesting because I have a 10km KOM I’ve been swapping with a guy for years, it’s getting into marginal gains territory now and I have wondered where I have done better or worse each time.
And also the planning one, I plan the routes for our cycle club each weekend. I will try the weather thing out on them for Sunday (forevaat to be changeable) and maybe share it with the membership. Thanks!
And also the planning one, I plan the routes for our cycle club each weekend. I will try the weather thing out on them for Sunday (forevaat to be changeable) and maybe share it with the membership. Thanks!
#3
Senior Member
Join Date: Apr 2019
Location: UK
Posts: 1,404
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 682 Post(s)
Liked 453 Times
in
338 Posts
Oops sorry I think I ate a load of your daily weather API checks for some reason
and we seem to have a 3C drop from 8.8 to 5.8 in the first 5km on Saturday morning at 9am - will be interesting to see if that is real :-)
and we seem to have a 3C drop from 8.8 to 5.8 in the first 5km on Saturday morning at 9am - will be interesting to see if that is real :-)
Last edited by choddo; 11-10-23 at 04:43 AM.
#4
Senior Member
Join Date: Jul 2009
Posts: 5,951
Bikes: Colnago, Van Dessel, Factor, Cervelo, Ritchey
Mentioned: 5 Post(s)
Tagged: 0 Thread(s)
Quoted: 3953 Post(s)
Liked 7,300 Times
in
2,948 Posts
Didn't work for me ...
Safari: Nothing happens after uploading file.
Firefox: Upload dialog box is off right side of screen.
Safari: Nothing happens after uploading file.
Firefox: Upload dialog box is off right side of screen.
Last edited by tomato coupe; 11-10-23 at 01:57 PM.
#5
Senior Member
Thread Starter
Ah, so kind! I would have responded sooner, but I went back to coding and forgot about this post after a few days lol. Also, don't worry about the weather API calls, looks like some glitch caused it to pull far too many for some reason, it should only really pull one for every 5ish miles, but who knows? I capped it at 1k per person per day on the backend, beyond that it costs tenths of a cent per additional 1000 calls, just in case there's some runaway loop.
Likes For firebird854:
#6
Senior Member
Thread Starter
#8
I don't know.
Join Date: May 2003
Location: South Meriden, CT
Posts: 2,015
Bikes: '90 B'stone RB-1, '92 B'stone RB-2, '89 SuperGo Access Comp, '03 Access 69er, '23 Trek 520, '14 Ritchey Road Logic, '09 Kestrel Evoke, '08 Windsor Tourist, '17 Surly Wednesday, '89 Centurion Accordo, '15 CruX, '17 Ridley X-Night, '89 Marinoni
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 317 Post(s)
Liked 853 Times
in
446 Posts
the tutorial is neat. Nice job.
#9
Senior Member
Join Date: Oct 2011
Location: Ellensburg,WA
Posts: 3,180
Bikes: Schwinn Broadway, Specialized Secteur Sport(crashed) Spec. Roubaix Sport, Spec. Crux
Mentioned: 7 Post(s)
Tagged: 0 Thread(s)
Quoted: 179 Post(s)
Liked 169 Times
in
84 Posts
What's in it for you? Experience to showcase your talents to a prospective employer? I see here that you are offering software that does the same things that a paid Strava account does. Screen shots look good. Wish you luck.
__________________
Sir Mark, Knight of Sufferlandria
Sir Mark, Knight of Sufferlandria
#10
Senior Member
Join Date: Jul 2015
Location: reno, nv
Posts: 2,301
Bikes: yes, i have one
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 1138 Post(s)
Liked 1,182 Times
in
687 Posts
some people just like to do stuff like this. a while back i wrote a windows app and offered here for free too, but i am not a UI guy and mine is really ugly. not sure if any takers. i wish him luck too.
#11
Senior Member
Join Date: Apr 2019
Location: UK
Posts: 1,404
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 682 Post(s)
Liked 453 Times
in
338 Posts
Yeah I’ve written stuff just for fun plenty of times and this doesn’t do the heavy duty (and therefore expensive to run) stuff strava does at all.
#12
Senior Member
Thread Starter
Then, I could never decide what bike to bring to what gravel or xc mtb race, what the weather will be where, and how many gels/carb drink to bring. SO, I wrote the simulation tool to help figure that out.
Lastly, I like strava's flyby tool, but it was way too limited, I could line people up at particular portions in a course and see who was faster, say, through the mtb section, or line my past self up vs my current self over the same race course and see how it played out.
So, the takeaway is, I wanted these tools, for me, and I happened to have a server, so might as well make it accessible. I also don't believe in squeezing every sent out of people, I mean, I offer weather completely for free, and you know how much those api calls cost? practically nothing, I just force people to log in to access it so I can cut it off on the backend person by person if I notice some runaway loop or something.
I also just love seeing when people use the site, it's just widely motivating.
Likes For firebird854:
#13
Senior Member
Thread Starter
Additionally, take a look at this: https://i.imgur.com/ycs7pEe.mp4. This feature is live on the site. I utilized our 1.6TB OpenStreetMap (OSM) dataset to identify roads with consistent surface types spread across the United States. I wrote a Python program to download 200,000 images of these roads and used my gaming computer's RTX 2070 to train a PyTorch ResNet-40 convolutional neural network to classify these images. After tuning hyperparameters over ten epochs, I integrated this classifier into a secondary backend in Flask. It automates the process of pulling and classifying images of unknown surface types for roads. I also implemented a live WebSocket that leverages your account connection to display these images in real-time.
At some point, I intend to release this for every road over a mile long worldwide that remains unclassified, creating the most advanced multi-surface dataset. It won't just tell you if a road is paved, unpaved, gravel, or dirt; it will provide detailed information.
So, I'll boldly state that this project is easily as complex as many of Strava's endeavors. Furthermore, the modifications I made to the backend software, GraphHopper, which handles routing, to incorporate and utilize surface type data were exceptionally challenging.
Also, speaking of expenses, running this website on AWS would cost approximately $80,000 per month. The server we use boasts over a terabyte of RAM, which it fully utilizes, along with a substantial page file. It's equipped with five physical CPUs and 10 terabytes of high-speed storage to host and update the routing software with the latest data every week. Fortunately, we had these server components readily available.
#14
Senior Member
Thread Starter
Between the three of us, I figure out the stuff that makes it work, my brother handles making it look pretty, and my roommate/friend keeps it online! All while working full-time unrelated jobs! I have so much polish to do and so many more features and ideas on the way. I just wish they got more traffic, seeing anyone use the site is really our main motivator.
Also, yes, the reason why each site seems to have it's own theme is because my brother, the UI guy, can't seem to make up his mind and "wants to try something new" every time I give him a new project to make look nice lol.
Out of curiosity, what Windows app did you write? What language is it in? I love talking about coding projects.
#15
Senior Member
Thread Starter
Funny story, the initial version of this site, with far less features and barely functioning only for the US, did immediately net me an interview with RideWithGPS, unfortunatly it was for a senior-level backend Rust position. I gave it a shot, having only used Rust a little bit on the backend, but more so as WASM on the frontend. I was quite unsuccessful but it was fun nonetheless, super cool people, kind of glad it didn't work out though, as I would have probably shuttered this site.
#16
Senior Member
Thread Starter
Thanks! that was probably after 10 takes... lol
Funny story, I know the mic quality is isn't amazing but, it's wayyy better than what that $10 microphone should give. I actually wrote a python program to strip the audio from the video file, then I run it through Adobe's AI podcast enhancer https://podcast.adobe.com/enhance and then use python + ffmpeg to re-add the audio back to the tutorial. The difference between the original and what makes it to youtube then is stunning. Again, not professional mic quality by any means, but I'm at least trying to make it a bit better
Funny story, I know the mic quality is isn't amazing but, it's wayyy better than what that $10 microphone should give. I actually wrote a python program to strip the audio from the video file, then I run it through Adobe's AI podcast enhancer https://podcast.adobe.com/enhance and then use python + ffmpeg to re-add the audio back to the tutorial. The difference between the original and what makes it to youtube then is stunning. Again, not professional mic quality by any means, but I'm at least trying to make it a bit better
#17
Senior Member
Join Date: Apr 2019
Location: UK
Posts: 1,404
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 682 Post(s)
Liked 453 Times
in
338 Posts
I respectfully disagree. If Strava hadn't patented their segment racing, I would have replicated it. Moreover, I have React Native iOS and Android apps with navigation that surpass Strava's capabilities (yes, I'm even providing turn-by-turn directions, not just a top-down view).
Additionally, take a look at this: https://i.imgur.com/ycs7pEe.mp4. This feature is live on the site. I utilized our 1.6TB OpenStreetMap (OSM) dataset to identify roads with consistent surface types spread across the United States. I wrote a Python program to download 200,000 images of these roads and used my gaming computer's RTX 2070 to train a PyTorch ResNet-40 convolutional neural network to classify these images. After tuning hyperparameters over ten epochs, I integrated this classifier into a secondary backend in Flask. It automates the process of pulling and classifying images of unknown surface types for roads. I also implemented a live WebSocket that leverages your account connection to display these images in real-time.
At some point, I intend to release this for every road over a mile long worldwide that remains unclassified, creating the most advanced multi-surface dataset. It won't just tell you if a road is paved, unpaved, gravel, or dirt; it will provide detailed information.
So, I'll boldly state that this project is easily as complex as many of Strava's endeavors. Furthermore, the modifications I made to the backend software, GraphHopper, which handles routing, to incorporate and utilize surface type data were exceptionally challenging.
Also, speaking of expenses, running this website on AWS would cost approximately $80,000 per month. The server we use boasts over a terabyte of RAM, which it fully utilizes, along with a substantial page file. It's equipped with five physical CPUs and 10 terabytes of high-speed storage to host and update the routing software with the latest data every week. Fortunately, we had these server components readily available.
Additionally, take a look at this: https://i.imgur.com/ycs7pEe.mp4. This feature is live on the site. I utilized our 1.6TB OpenStreetMap (OSM) dataset to identify roads with consistent surface types spread across the United States. I wrote a Python program to download 200,000 images of these roads and used my gaming computer's RTX 2070 to train a PyTorch ResNet-40 convolutional neural network to classify these images. After tuning hyperparameters over ten epochs, I integrated this classifier into a secondary backend in Flask. It automates the process of pulling and classifying images of unknown surface types for roads. I also implemented a live WebSocket that leverages your account connection to display these images in real-time.
At some point, I intend to release this for every road over a mile long worldwide that remains unclassified, creating the most advanced multi-surface dataset. It won't just tell you if a road is paved, unpaved, gravel, or dirt; it will provide detailed information.
So, I'll boldly state that this project is easily as complex as many of Strava's endeavors. Furthermore, the modifications I made to the backend software, GraphHopper, which handles routing, to incorporate and utilize surface type data were exceptionally challenging.
Also, speaking of expenses, running this website on AWS would cost approximately $80,000 per month. The server we use boasts over a terabyte of RAM, which it fully utilizes, along with a substantial page file. It's equipped with five physical CPUs and 10 terabytes of high-speed storage to host and update the routing software with the latest data every week. Fortunately, we had these server components readily available.
What I really meant though, was the scale at which they’re processing data from activities, and hence the cost, as you alluded to with the AWS estimate.
Didn’t know they’d patented it. I’ll have to look it up because I’ve randomly speculated a few times about how they do it but don’t really know.
#18
Senior Member
Join Date: Jul 2015
Location: reno, nv
Posts: 2,301
Bikes: yes, i have one
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 1138 Post(s)
Liked 1,182 Times
in
687 Posts
https://www.bikeforums.net/indoor-st...plication.html
3 years later and i just noticed someone sent anotehr reply, totally missed that. now i'm going to lose sleep tonight knowing i dissed someone.
#19
Grupetto Bob
Join Date: Sep 2020
Location: Seattle-ish
Posts: 6,222
Bikes: Bikey McBike Face
Mentioned: 2 Post(s)
Tagged: 0 Thread(s)
Quoted: 2585 Post(s)
Liked 5,644 Times
in
2,922 Posts
Okay, not strictly "I", my two roommates and I are bike nerds and computer nerds and we code all sorts of cycling projects in our free time. I did most of the functional coding, one of us did some of the prettying up/frontend work, and the other manages the server it runs on that lives in our apartment basement.
So, what is it? it's right here https://sherpa-map.com/activity-racer.html it's a 100% free, no ads or anything tool that allows you to upload your cycling activities as GPX files, hit play and watch yourself as a dot and on a graph with all of your data on a map. The cool thing is, you can upload the same race you may have done year after year and simply drag the red line to the beginning of any portion you may be curious about, like some single track in the middle of nowhere, and see where you were faster/slower, even if you got there at completely different times throughout the years!
Little tutorial https://www.youtube.com/watch?v=k3f_PDTA5oU
It's kinda like Strava Lab's flyby feature, but it puts you in control of the activities you want to see and lets you line up specific portions of a route against each other, as mentioned.
If you want to compare yourself to others, just note that you need a GPX file of their activity, not just their route. I found a great way to nab them from strava is to use this Chrome Extension I didn't make it, but makes it super easy to grab activity files.
Note: this activity racer tool is currently only designed for Desktop and it's all in Metric, I'm going to eventually make an imperial/metric button (I live in the US), but all the calculations are in metric, so it just makes life easier.
FYI, if you're wondering what the main site is, https://sherpa-map.com, it's another 100% free no Ads tool that allows you to create cycling routes! See the weather throughout your journey, find unpaved roads, and all other sorts of stuff. We developed and host that too.
As another fun offering, we also recently put together this tool https://sherpa-map.com/cycling-route-calculator.html which is again, 100% free with no Ads, which lets you upload a route, "brush on" various surface types, enter your equipment of choice, and see how long it will take you and what the weather will be on course (perfect before raceday!). I haven't actually shared this site with many people yet, because I'm still adding to it, I'm going to have it calculate nutrition and be able to tell you not only when you should have that gel but when will be the most optimal "fastest" time to, i.e. with a slight headwind up a paved hill just before that 10 miles of single track in your gravel race... If you're confused about this one I made a tutorial https://www.youtube.com/watch?v=NzOL7lX0p4o&t=2s
I know I got a little side tracked there, but hey, I have a bunch of random cycling tools that I've created with the help of my roommates and host on our own server, they're all free, we just develop them in our free time for fun and I thought, why not mention all of them? Please do judge the fact they all have different buttons, themes, and layouts lol, we're having fun trying new things with each one.
So, what is it? it's right here https://sherpa-map.com/activity-racer.html it's a 100% free, no ads or anything tool that allows you to upload your cycling activities as GPX files, hit play and watch yourself as a dot and on a graph with all of your data on a map. The cool thing is, you can upload the same race you may have done year after year and simply drag the red line to the beginning of any portion you may be curious about, like some single track in the middle of nowhere, and see where you were faster/slower, even if you got there at completely different times throughout the years!
Little tutorial https://www.youtube.com/watch?v=k3f_PDTA5oU
It's kinda like Strava Lab's flyby feature, but it puts you in control of the activities you want to see and lets you line up specific portions of a route against each other, as mentioned.
If you want to compare yourself to others, just note that you need a GPX file of their activity, not just their route. I found a great way to nab them from strava is to use this Chrome Extension I didn't make it, but makes it super easy to grab activity files.
Note: this activity racer tool is currently only designed for Desktop and it's all in Metric, I'm going to eventually make an imperial/metric button (I live in the US), but all the calculations are in metric, so it just makes life easier.
FYI, if you're wondering what the main site is, https://sherpa-map.com, it's another 100% free no Ads tool that allows you to create cycling routes! See the weather throughout your journey, find unpaved roads, and all other sorts of stuff. We developed and host that too.
As another fun offering, we also recently put together this tool https://sherpa-map.com/cycling-route-calculator.html which is again, 100% free with no Ads, which lets you upload a route, "brush on" various surface types, enter your equipment of choice, and see how long it will take you and what the weather will be on course (perfect before raceday!). I haven't actually shared this site with many people yet, because I'm still adding to it, I'm going to have it calculate nutrition and be able to tell you not only when you should have that gel but when will be the most optimal "fastest" time to, i.e. with a slight headwind up a paved hill just before that 10 miles of single track in your gravel race... If you're confused about this one I made a tutorial https://www.youtube.com/watch?v=NzOL7lX0p4o&t=2s
I know I got a little side tracked there, but hey, I have a bunch of random cycling tools that I've created with the help of my roommates and host on our own server, they're all free, we just develop them in our free time for fun and I thought, why not mention all of them? Please do judge the fact they all have different buttons, themes, and layouts lol, we're having fun trying new things with each one.
__________________
Road 🚴🏾♂️ & Mountain 🚵🏾♂️
Road 🚴🏾♂️ & Mountain 🚵🏾♂️
#20
Senior Member
Thread Starter
#21
Senior Member
Thread Starter
took me a bit of time to dig up my first post about it...
https://www.bikeforums.net/indoor-st...plication.html
3 years later and i just noticed someone sent anotehr reply, totally missed that. now i'm going to lose sleep tonight knowing i dissed someone.
#22
Senior Member
Thread Starter
That is very cool and impressive. And wasn’t what I had seen or was referring to ;-) an AI road classifier is a great idea.
What I really meant though, was the scale at which they’re processing data from activities, and hence the cost, as you alluded to with the AWS estimate.
Didn’t know they’d patented it. I’ll have to look it up because I’ve randomly speculated a few times about how they do it but don’t really know.
What I really meant though, was the scale at which they’re processing data from activities, and hence the cost, as you alluded to with the AWS estimate.
Didn’t know they’d patented it. I’ll have to look it up because I’ve randomly speculated a few times about how they do it but don’t really know.
Likes For firebird854:
#23
Senior Member
Join Date: Apr 2019
Location: UK
Posts: 1,404
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Quoted: 682 Post(s)
Liked 453 Times
in
338 Posts
Ah, good point about the bandwidth that Strava probably has to have to serve all those upload/download requests from their 30 odd million users a month. Our server is cobbled together from used parts, but still stands as tall as me, has 3 racks, 5 physical CPUs, 1tb of ram, 10tb of storage in some crazy raid configuration (I'm not the server guy, my roommate is) and we got this to work on a residential internet (don't tell Charter/Spectrum) but hey, it seems to support the considerably fewer people occasionally saving or grabbing a saved route without too much difficulty.
#24
Senior Member
Thread Starter
Yeah, I bet it does! I've got a 1U server sat next to me with 64 cores and 768GB of RAM and it's serving zero users because I don't want to hear the thing I'm supposed to be getting it prepped to upgrade an existing server that runs a forum with about 500 regular users in a co-lo datacentre rack but the current server is already so overpowered that the motivation is pretty weak to get on with it so it has a hypervisor and an empty linux VM so far.
Likes For firebird854: