Hi, I mentioned a few months ago that my two roommates and I have been developing a brand new cycling routing site that’s completely free and offers a ton of cool features like auto route generation, weather forecasting along routes, paved/unpaved/hilly/flat/scenic/racy/etc. routing profiles, etc. and now a super cool surface road surface overlay!
The site is https://sherpa-map.com
Currently, the overlay supports the entirety of North America (the routing and everything else works for the whole world!), but I’ll be generating tiles for Europe next, then Australia, then South America, until the whole world is done.
The overlay is a mix of OpenStreetMap data, heuristics, and AI classifications. I actually pulled 40,000 (and counting, as I’m still trying to make it better!) pre-classified images of roads and trained a data segmentation AI (deeplab with resnet50 backbone) to pull the best 224x224 image of a road out of a 640x640 satellite image, then I trained a resnet152 classification AI to determine if it’s paved or unpaved, then another AI to determine if the unpaved is gravel/dirt/unpaved!
I also looped all of this refined data back into our routing software, Graphhopper, which we host on a server in our apartment basement, so I can far more accurately keep routes on pavement or off of it than practically any other site, as all others simply use standard OSM data for road surfaces.
Beyond that, I also integrated a powerful physics simulator I built to offer THE BEST duration estimation for your cycling route. After pressing the “Est. Duration” button in the bottom left, and choosing how strong you are (from beginner to pro) on a slider, a message like this appears:
This takes into account everything you could possibly imagine. Depending on the surface type it will choose a bike configuration, so pavement = road bike, pavement with a little gravel = road bike with gravel tires, all the way to determining if there’s single track on your route (by looking at a moving window of turns above a certain degree) and interjecting XC mountain bike or even a AM mountain bike!
I even calculate how much you may brake around turns when descending on sketchy surfaces, I dynamically adjust your assumed CDA so the simulation “sits up more” when climbing and “gets more aero” when descending. I mean heck, I account for the air pressure at the given altitude you’re riding at!
I basically used 2000 lines of code from this project GPX Route Speed Estimator for Cyclists: Multi-Surface, Weather, and Nutrition Strategy to create this button.
So, I’m trying to share this overlay and the new features of my site with anyone who might want to use them! Again, everything on the site is totally free. It still blows my mind that some sites, like RideWithGPS, require premium to estimate how long it might take to complete a route, and I’d bet money they’re using statistics instead of physics.
If you have any thoughts, feedback, or anything else in general, I’m all ears!