Developed New Cycling Route Creator, Course Physics simulator, and Virtual Activity racer, all free side projects!


My two cycling-crazed roommates and I have developed several really cool, totally free, cycling-specific tools in our spare time, which we host on a server in our basement.

The first is this site uses the same backend software that RideWithGPS uses, but supports 28 routing profiles, auto route generation, the ability to project gravel roads, live weather radar, forecasted weather data along your route, project amenities such as gas stations, and so much more.

I even built in the capability for the routing service to pull satellite images in real time of roads with unknown surface type and use an AI I trained to classify the unknown road surface! Here’s a gif of that in action:

Onto the next tool, this is a full-blown physics simulator for each point along an entire course (interpolating to 25 meter resolution) taking into account your bike setup, handling, power, etc. the idea is, given a course that’s say 20% mountain biking and 80% pavement it can model which setup will probably be fastest. It can also take into account weather data, modeling your power and aerodynamics against headwind, accounting for humidity, elevation, etc.

With this modeling and the forecasting, it’s probably the best tool to figure out what the raceday weather is going to look like because it can accurately predict where you’ll be when, it will even supply headwind/tailwind/ and all sorts of other data.

I’ve also recently upgraded this tool to support nutrition data, accounting for the intensity of your projected effort and breaking down the macronutrients/fluid loss/sodium loss/ etc. with gel/carb drink mix recommendations.

The last tool is
It lets you upload GPX Activity files of your past rides on the same course, or your buddy’s rides (if you want to grab their ride GPX file you’d need to use an extension like this)

Then, you can pit them against each other at any point in the course, press play, and watch them go! It’s similar to Strava’s Flyby feature, but gives you more data and puts you 100% in control, so you can even watch, as mentioned, previous versions of yourself vs yourself on the same course!

I thought I’d share these tools with you guys and gals, as fellow cyclists perhaps it will help be a free alternative to make a route, a good tool to find the race day weather across the course/choose the right setup/pick the right nutrition, and a fun way to visualize yourself vs your past self or vs your friends at various areas throughout the course.

If you have any thoughts or feedback on any one of these, please don’t hesitate to let me know!


That looks great, I’m going to check those out later!

1 Like

Thanks! I hope you like them, I even embedded tutorials in some of them, but if you have any questions or feedback I’m happy to answer.

Looks like you put A LOT of work in these tools @Eric_Semianczuk, well done.

I’ve only really looked at the route creation tool thus far, but a couple questions have already come to mind.

  1. How does the software allow you ride a particular road in both directions? When I was creating a route, I was trying to route onto a road in the opposite direction from the start to return back to the start location, but the waypoint that was getting added set it going in the original direction… I may have missed how to do this in the software, but it wasn’t immediately obvious to me at first glance.

  2. I noticed at the top there is the option to push to Garmin Connect. I know it’s likely early days for your service, but would you also be including the ability to push to other devices as well?

Awesome work!

1 Like

Good questions! Thanks for the kind words! Garmin has the most accessible API to push routes to, Wahoo’s only seems to let me pull activities or push workouts, I’ve reached out to them in the past and haven’t received a response, but I should probably try poking them so more. Further, Hammerhead isn’t pursuing integrations at this time, and I haven’t really tried many others. If there’s a head unit group you’d like us to reach out to I’m happy to try. You can always download the route as a GPX file, but I get it, who doesn’t want to be able to conveniently send it to a Sunnto watch or something?

Other question, currently, you can zoom in and click close to the existing route and it will snap the route underneath, onto the same road, you can also press the “return to start” button and that will typically route back underself. However, I get it, this is a bit of a lazy approach, I should simply add a right-click functionality onto the route line with an option “place control point under current route” or something.

If you envision a better way to implement this, let me know! I’m all ears for ideas and suggestions.

Thanks for the info.

It was Wahoo in particular I would be interested in, but figured I’d keep it general for others that might use hammerhead, etc.

I had noticed and clicked the “return to start” option, which DID work, but in that particular case it was a road not far from the start position I was trying to route to, but wouldn’t necessarily work as one might expect if the road they wish to back track on is 40 miles from the start :wink:. That said, I’ll check out the zoom/snap option!

You mentioned a tutorial in a previous post, which I found easily enough in the other tools. Is there one for the route creation tool as well.

There is! Although it’s not linked on the site, it can be found here I’ve been meaning to add it to the splash page, but I’ve been in the middle of so many projects and, well, full-time work (completely unrelated), that it’s been a struggle. I’ve been meaning to record a new one anyway.

If you’re interested in using the site and have any questions and want any type of walkthrough through Zoom or any other means feel free to reach out, my email is Honestly, it’s entirely too much fun to discuss any of these projects and the ones that are on the way!

This is some really amazing work!

One thing that I have contemplated is could I take post race data and compare it to the expected physical effort required to do that speed solo to generate a drafting score.
I hope that makes sense?
I never got around to actually attempting to build a program to do this.

1 Like

So, I’ve been working on the idea of adding drafting as a mechanic in it in general, as this can heavily affect how fast a gravel bike might be on say a paved road between two mountain bike sections, this could easily make it a better choice than a road bike if heavy drafting is expected.

It sounds like your thought is a bit different, and frankly, that’s an interesting idea. I wouldn’t be against adding a similar feature, or making it so you can download the simulated gpx file and then perhaps use the activity racer to race the simulant vs yourself.

I have a lot of ideas I’m going to throw at it. I want to make the nutrition calculator better, currently, it just accounts for the total amount of fluid loss and carb loss for recommendations based on the simulated activity, weather data, input data, etc. I want it to account for how many carbs a person can actually take in per hour, and give an option to inject recommendations of when to have a gel into the GPX file so you get notifications on your head unit at that time. I also want to optimize not just when you should have carbs metabolically speaking, but also for speed. As in, inform you to have a gel on the paved road just before the mountain bike portion or when you have a tailwind and you’re going slightly uphill (can be less aerodynamic with less penalty).

So, suffice to say, I have endless ideas I want to implement! If you have more feedback or recommendations, fire away, it wouldn’t be hard at all to calculate a difference drafting made in an event that you participated in vs the simulation.

I think the way strava does it is a good way. Basically any normal left click is assumed to be a new end point for the route. If you click and drag an existing route segment it adds a control point at that place on the route. And if you right click on the route it has a menu with an option for “add control point”.

So basically it assumes you want to continue building onto the end of the route and editing the existing path requires an additional action to confirm.

You’re right, they do have a “finish here” option in addition to add waypoint when left-clicking on the existing line, I’m probably going to steal that idea, and it will be super easy to implement. When I get a chance I’m going to add it like that, it’s a good way to handle it.

1 Like

Finally some innovation.

Would you consider combining multiday routing with accommodation services?
When I am planning a multiday tour my biggest effort is matching the possible end of day locations with the routing options. Each change in one affects the other one.
It would be awesome to have one tool not only look for places to stay/camp but also to dynamically route between them.
I would pay for that :slight_smile:

I’ve been aiming to tackle this, as I believe it’s one of the premium features for Komoot, and I could add it at 0 cost. First I wanted to make the most accurate system to determine how long it will take to complete your current route, that’s been completed in the simulator, I’ll be taking that code and reimplementing it into the navigation site to tell how long your route will take utilizing a full physics simulation, and give end times based on start times. Then, I can utilize the multi track/route GPX format and show one “active” route at a time for editing, and help compute those durations with given start times for each route.

This, with the existing “amenities” tab (here’s a demo of that tab can help project everything from campgrounds to hotels onto the map, at scale, so you could easily setup a multi-day paved or unpaved journey.

If you have any other thoughts on how you would like such a feature to look and specifically how you would use it, I’m happy to hear you out.

Oh, I’m also working on Andorid and IOS versions, and a workout generator… and a cohesive landing page… and an integration… if you’re curious about the jorney you can always check out our Facebook page Sherpa-Map

Main requirement with routing-booking is availability and pricing on top of the daily routes.
Say I have a 2 week touring with a rest day. I aim to cover 1000-1100kms and daily climbing of 1200-2000m.
Rest day can be on day 6,7 or 8.
Amount of browser tabs I have to open and follow is staggering.

Hmm, I can tie in Google’s querying logic for up-to-date hotel information… there may be some other cheaper databases I can use too.

My initial inspiration for this site was me having to go to too many different resources just to make a route. Google Maps to see what traffic looked like, to see where rain was, Strava to do the point-to-point routing, Garmin to upload the route, so I’ll definitely put “Nearby available booking options in the area of the end of the route” as a good feature to research when I get to the “touring mode” implmentation. has and public api. Probably others too have them.

When doing the route, say day 3, I realise nearest hotel is 120km, 2200m from the day 2 hotel. I go back and move day 2 to a closer hotel, which makes the day 3 100km, 1900m. Much better. Now day 2 route grows to 90km, 1800m. I move the day 1 hotel too, which updates the day 1 route.
All this also changes the overall route, alternative b routes and shortcut routes I am doing on the side, you know mechanicals, injuries, road closures.
All this is done in my spare time over a couple of weeks. I lose browser sessions, forgot what I checked last, change trip beginning day etc. It is a heavy task.

It sounds challenging, I admit, I’ve desired to do exactly this but the timing has never worked out for me. Perhaps I’ll attempt a bikepacking journey with the intent to figure out how best I can update my software to accommodate it.

Further, and this is interesting, upon looking into’s API, not only is it free to use, but driving reservations through it can actually give affiliate money back to the developer! I’ve never seen this before, but it makes sense. Now I have a much bigger incentive to look into this, and it definitely wouldn’t be any type of “premium” option.