Great points, and happy to clarify a few details. It should be “Reset All” but it may be getting cut off on some screens. My speciality is backend systems, not frontend, so I’m working on those little GUI bugs, as best as I can…
The slider for “road calmness” is specifically designed for keeping you off major roads.
That being said, and similar to paved/unpaved slider, none of these values are “hard stops” so to speak. As in, this program is a type of “solver”. I you put road calmness and target distance weight to the same amount, 3, it tries equally to balance them, so it might put you on a busier road because that’s the only way to get close to that target distance if it absolutely must.
Same with paved/unpaved, if you weigh it the same as another value, it will have the same “pull”, so, the best way to put it, with the type of route you are trying to make, say, calm roads, path preference and road calmnss prefeence should be upped quite a bit, the others should stay much lower, as they are additive and can easiliy water down each other.
The climby ones are two-fold and, true, not that intuitive explanation-wise. One of them scores the route on cumulative climb, the other scores the route on road steepness.
The best way to put it is, you can use this to make a super climby route that avoids walls, or a punch flat route, or a super flat route, or a really mean wall-seeking elevation gain-seeking, route.
Similar to curvyness, one is for overall route curvyness, the other is for road-specific curvyness.
Route surface, saving routes, and all of that aren’t really shown or present for a few reasons. The major one is that this is a demo, not like “try for a limited time and put your credit card here” demo, but a live prototype “tech” demo. I like to work in iterations and have feedback guide what I put more effort into, or what features to work on, so I often make prototypes live before they’re remotely done and integrated.
I have my own cycling route creation site (doesn’t make me any money or anything, I just made it a few years ago and keep adding to it), it has all of that stuff and this will be integrated to replace my current auto route generation as it gets closer to completion: https://sherpa-map.com
The reroll function actually changes the “seed” value that is used to seed/generate the random starting positions of the route that then gets mutated and scored. If it doesn’t auto-reroll, you’d get the same route for the same settings and same location every time, which might be preferred, or might not, but as you can see, it’s kind of a mouthful to explain, and I’m still unsure what it should be called…
Overlap and Out and back weights can push the solver to really try hard not to use the same roads, or even very nearby parallel ones. For high flow, it may to an extent, because there are only some roads that even have decent flow, so if it’s weighted really highly, it may still converge on that overlap.
Some updates I’m already adding: make a checkbox that kills any possibility of unpaved, for the roadies, so it isn’t even an option and the rest of the settings can be messed with.
Genetic evolution algorithm to find the best route to the criteria in the area… and more that I’ve mentioned in the post.
Additionally, the tech behind this is extreme; I cannot stress that enough. This a fully custom engine I built from the ground up that does things that most fleet routing software can’t do, simply for the purpose of making cool routes. It’s not AI (yet), it functions in a way that doesn’t think like a human, and often makes routes that really make me curious. I can’t wait to see the type of routes it will make when I add that scenic data…
I almost got a job as a Senior Backend Rust programmer at RideWithGPS, because of the process, I know they just tooled up the same backend routing engine that I use on my Sherpa site, Graphhopper. Fine engine, but it’s large, written in Java, and not specifically intended for bikes.
Everything about the engine behind this is actually pretty ridiculous, from Strava to Komoot, there is nothing like it. The algorithms at the core of this process are normally used in protein folding sims and scientific things lof that nature, definitely not to make fun cycling routes.
I just happen to be decent at programming, but, lack a degree and which has made it hard to really step there professionally, but it hasn’t stopped me from making all sorts of random projects. Just wait until I make this generate routes with the most tailwind (accounting for buildings and other “blockers”), or add a chatbot LLM interface… I have so many fun ideas.