Posted by & filed under Segment Details.

UPDATE – Due to changes in the Strava API increasing user’s data privacy VeloFlow is no longer able to run.

After coming across a great visualisation last week that animated GPS traces of staff commuting to Loughborough University I was inspired to try something similar with Strava rides and I’m very pleased with the result.

How-To videos now available.

Find out how to use Velo Flow here.

The initial thought was to try and show all Strava rides in a particular area (like the Peak District National Park which I live on the edge of) for a particular day. Unfortunately there is no way that I know of to get at that list of rides. You can however (for the time being) get a list rides for a specific day for a given segment.

So the next question was how can this segment/day context best be used to show us a great visualisation – Sportives, Races and Strava Challenges!


Sportives are great for this as if you pick a segment in the opening stages of the event you can just about guarantee all riders will trigger that segment. l’Etape du Tour (see video above) is a perfect example showing a perfect and huge (over 400 Strava rides) peloton stretching out over the ride, bunching on the climbs and stringing out on the descents. The context segment used is the climb of the Col de la Madeleine.

Try the Velo Flow for l’Etape for yourself but bear in mind that it takes a while to download all the required data.

Also here is the “Ride with Brad” Sportive in Lancashire, UK in aid of the Bradley Wiggins Foundation. Nice to see the peloton splitting up to tackle the two different route options 160km or 100km.

Try it for yourself but remember the download time if going for all riders!


Similar to sportives, the increased number of people using Strava to record their races allows us to replay the race at our leisure. The race below is the Manx End 2 End Challenge on the Isle of Man. It seems to be the benchmark cycling race on the island with your finishing position being an common topic of conversation when meeting new people. The blue blob in this one is my brother who managed a very reasonable top 20 placing in this, his 2nd attempt at the race.

Try it for yourself, not so many riders this time so not too bad to download all data.

Strava Challenges

Also some of the Strava Challenges are based around a particular segment within set dates with the Box Hill Beat the Best Challenge being a good example which was based around the Box Hill segment:

Much more of a random swarm going on, all homing in on Box Hill before dispersing back home again. Look closely (probably when you view the page for yourself, once again, lots to download so make sure you’re on a fast connection) and you’ll see little groups of people riding together to and from Box Hill.

Integration with your data in

In the links section in each Segment Details page you will now see a “Velo Flow” link. This will load the Velo Flow page passing in the context of the segment, the day you achieved your PR and your own ride.

The Blue Blob

As you can see in l’Etape du Tour video, there is a blue blob in amongst all the orange blobs. This is an optional context that can be passed in to the page that highlights a particular rider, in this case it is one of the guys from my bike club who was lucky enough to ride l’Etape this year.

When loading Velo Flow from your Segment Details pages then your ride will be represented by the blue blob so you can pick yourself out.

Visualising Strava club runs

As well as those mass rides, what this page is particularly good for is viewing your own club runs (given enough of your club mates upload their data to Strava). See your club riding in formation and even the group splitting on climbs and descents. I’ve been reliving puncture and cafe stops of previous rides while trying this out!

Update (6th Dec 2012)

  • Load 10/50/all buttons replaced with drop down list.
  • Option to chose the timegap between data points for animation.
  • Segment name now displayed prior to data load.
  • Count of rides for this segment on that day also displayed.
  • Much smoother rendering of the animation.

Update (18th Dec 2012)

  • Time slider now defaults to start of the context rider (if one is set i.e. the activityId in url) which will be you if you navigated to Velo Flow page from your Ride Details or Segment Details pages. No more waiting around watching those early bird riders.
  • The default zoom setting will be based on your own ride as well (if one is set i.e. the activityId in url). You might need to zoom out to see all the other riders if you want to.
  • You can now highlight up to 6 riders by comma delimiting activityId’s in the url. You will need to do this manually and go to Strava to find out what the other people’s activity/ride/run id’s are (look at someone’s ride and it’s the number at the end of the URL). Different colours for each rider.
  • Now handles people riding the same segment multiple times (e.g. a Crit race) giving a more accurate rider number and better performing animation.


For Velo Flows with lots of rides then the webpage can consume a large amount of your computer’s memory (RAM, not disk space). e.g. the load the Etape the memory usage can get up towards 1GB before dropping back down again. The shorter the rides, the fewer the riders and the longer the time gap between animation data points then the less memory you will use. Devices like the iPad can have fairly limited memory and the browser tends to crash without warning when it runs out of space. If this happens then be a little bit more conservative with the options and have another go.

Note: As with all things Strava and veloviewer, the data that you see is only as good as the data that goes into Strava. As well as GPS inaccuracies, make sure you and your club mates have synchronised your GPS clocks prior to riding to ensure your peloton is shown correctly. On l’Etape I’ve had to correct an American (I think) GPS trace that set off 7 hours earlier than everyone else!

Note: The initial map view is based upon the extremes of latitude and longitude of the data (including any dodgy GPS data that does seem to happen) and the best fit of those points to the available map space and zoom depths. You might need to zoom in a bit to see the detail of the rides.



11 Responses to “Introducing Velo Flow – animating Strava rides!”

  1. Hugoz

    Hi Ben,

    I wonder if Segment owner is an information you could fetch and display on the Segment Details page. Sometimes, when a segment that you have not created is erroneous, it is hardly impossible to know who created it (unless only 2 riders rode it)? Back on Strava with this information it could be possible to send message to ask the segment owner to update it (start / finish / name / deletion…)

    • Ben

      Unfortunately not. Any idea if commenting on a Segment in Strava alerts the person that created it? I’ll have to try that.
      It could also have been generated automatically by Strava as they currently/used to do for categorised climbs that didn’t already exist. Most of my segments with erroneous data looked to be auto-created purely due to bad elevation data making Strava’s process believe there was a categorised climb when infact there wasn’t. Not had any new ones like that for a while though so maybe they’ve fixed it.

      • Ben

        Looks like that Segment Comments option is gone. I’m sure I didn’t imagine seeing that a while ago as I’m sure I commented on one.

        • Hugoz

          I remember seeing this comment field on segment page. I have tried to post comment but it never saved it. And now this capability is gone.

          Yes some users may not be aware that they are “owner” of a segment if Strava created the segment for them (cat 4 or over). This could be legitimate climb or erroneous one in case the elevation is recorded by the GPS meter (eg Garmin Edge 800) and that there is a bug with it

  2. Duane Gran

    A visualization like this would do wonders to demonstrate to city/county officials that bicyclists utilize the public roads. The aggregate data that Strava captures could be very useful for urban planning.

    • Ben

      Interesting idea. If there were clear, common, cycling approaches into a town/city then it might work. Of course it would also rely on commuters recording all their journey’s to work. Lots of people do seem to record their commutes though so there could be some mileage in it.
      It could be used for tourism as well. A village could cover off all the entry roads with segments and the page could be modified to accept multiple segment ids and combine all the rides together. That’s the only way to be sure to capture all rides passing through a particular area.

  3. Tommy Garland

    It might work for rides that haven’t been renamed?

    For instance if I search for edinburgh on the 11/11/12 then I get all of these rides? Not sure whether you can access that information through the API? Either way, this has the potential to be a seriously cool feature. Very game like!✓&location=Edinburgh%2C+City+of+Edinburgh%2C+United+Kingdom&%5Bcountry%5D=United+Kingdom&%5Bstate%5D=Scotland&%5Bcity%5D=Edinburgh&%5Blat_lng%5D=55.953252%2C-3.188266999999996&keywords=11%2F11%2F12+&activity_type=Ride&type=&distance_start=0&distance_end=200&time_start=0&time_end=10&elev_gain_start=0&elev_gain_end=15000

    • Ben

      That seems to return rides even if they have been renamed, but as far as I know it isn’t in the API. It also doesn’t seem to return enough rides from what I would have expected.

      • HankChief

        If you also search on 11/11/2012 then you get another 100 rides in Edinburgh on that day, so maybe it could work…

        • Ben

          We’ll have to wait and see what is in the V3 api. After another quick look I don’t think searching for rides like this is supported. I can however return all rides for a club on a particular day that might be interesting to try out at some point.


  1.  Strava: The Follow up