VMC Predictor

After couple of years practically unchanged, I have recently made some changes to the functionality of my sollog site. The predictor so far has had two functions, COG and TWA which reflect the two steering modes Sailonline has, continue same course or continue same wind angle. Now there is a third function, VMC - Velocity Made Course.

About VMC itself, there are explanations in SOL-related blogs by the legendary 76Trombones and more recently in the solfans blog. In the predictor view it means that you can set the VMC direction in the degrees-box (or leave it empty for VMC to the next mark). Predictor view will then calculate your course using the best VMC to the given direction (or position in the case of mark).

Technically I have chosen the course to be straight (COG steering) between the reported intervals, i.e. for 6 hour predictor the course is calculated to be 15 minutes COG to the best VMC at the starting point, then a new best VMC course is calculated and next 15 minutes will be to that direction and so on. For longer predictors the straight parts are naturally longer.

Other possibility would be to calculate best VMC for each calculation the predictor does but initially I have thought this is a better compromise for possibly using the result for setting DC's (delayed commands) and judging tacks, gybes or polar hops. The VMC predictor can be thought as a "poor mans router". If you have ideas how it could be improved I am interested to hear them as I am not sure if the current implementation is the best possible.

The other change to the site is not about adding functionality but choosing to restrict some features only for boats which are SYC members. As the site doesn't require any login there is no way to know who the user is. However, boats which are not SYC members can't be used as reference boats in the real time statistics and neither is the predictor view available for non-members.

To clarify this change is completely my own idea to encourage people to join SYC and it has nothing to do with SOL management. I personally don't get any money from the SYC membership fees.


Year 2015 statistics

To write at least one blog post per year here's again some statistics from last year, just like I did year ago.. I have chosen to use the race start time to decide which year races belong, so the Christmas to Christmas race which finished this year is included in last years statistics.

Note that these include only fleet races.

The largest winning margins in 2015

In absolute time the largest margins were:
  1. aner59 by 02:02:41 in Christmas to Christmas 2015 after sailing 16 days 09:26:04
  2. karriv by 01:24:10 in Beru to Bora Bora after sailing 8 days 19:26:37
  3. rumskib by 00:53:27 in SWR2014-2015 Leg 3 - Abu Dhabi to Sanya after sailing 24 days 09:59:59
That's right, only two races from all races run last year were won by over 1 hour margin. 

The largest winning margins in percentages were:
  1. A2 by 1.13% in Pacific NW Inshore Race - WX Test 2 after sailing 1 day 16:04:54
  2. karriv by 0.66% in Beru to Bora Bora after sailing 8 days 19:26:37
  3. kenza by 0.59% in Brisbane to Keppel Tropical Yacht Race 2015 after sailing 2 days 03:26:58

As these numbers compare the winners margin to second place, I additionally looked how tight the top-10 was. These races have the biggest margin between 1st and 10th in absolute time or in percetages:

The tightest finishes in 2015

In absolute time:
  1. WINSTON_4 by 0.023s after sailing 12:08:26 in AGage 50
  2. karaoke by 0.073s after sailing 09:41:10 in SSANZ Safety at Sea Two-Handed Triple Series 2015 - Race 2
  3. robert1 by 0.212s after sailing 04:33:56 in Canna to Eigg RTI SPRINT 2015
Overall, 5 races were won by margin less than one second and 21 races with margin less than 10 seconds.

In percentages:
  1. WINSTON_4 by 0.000052% after sailing 12:08:26 in AGage 50 (winning margin 0.023s)
  2. karaoke by 0.000208% after sailing 09:41:10 in SSANZ Safety at Sea Two-Handed Triple Series 2015 - Race 2 (winning margin 0.073s)
  3. Exmeromotu by 0.001009% after sailing 20 days 14:40:57 in SWR2014-2015 Leg 4 - Sanya to Auckland (winning margin 18 seconds)
Comparing to last year competition in sprint races has become more tight if possible.

The tightest fleet top-10's were:

Longest and shortest races in 2015

  1. Koshiki PYOC 2015 took 02:24:18
  2. Tiree to Coll PYOC Sprint 2015 took 02:59:22
  3. Tomidake RTI Sprint 2015 took 03:12:37


Year 2014 race result statistics

As Piero did this excellent hall of fame of different championship races and prizes, I got the inspiration to dig into the actual race results to pick some interesting statistics from there.

The largest winning margins in 2014

In absolute time the largest margins are:
  1. Gilles by 12:29:57 in SWR2014-2015 Leg 2 - Cape Town to Abu Dhabi after sailing 24 days 20:32:51
  2. karaoke by 02:14:47 in Finland-Sweden Archipelago Raid 2014 after sailing 3 days 09:13:59
  3. outlaw by 01:53:25 in Sailonline RTW 2014 - Leg 4 - New Zealand to Uruguay after sailing 19 days 12:55:27
The largest winning margins in percentages are:
  1. karaoke by 2.77% in Finland-Sweden Archipelago Raid 2014 with margin of 02:14:47 after sailing 3 days 09:13:59
  2. Gilles by 2.10% in SWR2014-2015 Leg 2 - Cape Town to Abu Dhabi with margin of 12:29:57 after sailing 24 days 20:32:51
  3. outlaw by 1.75% in Orno Runt - Saturday 11 January 2014 with margin of 00:02:30 after sailing 02:22:19
Overall, Gilles' win was also the largest winning margin ever in SOL in absolute time but in percentages WINSTON_4's win in Sail Around Turkey 2013 was 3.00% faster than the next best time with winning margin of 04:20:33 after 6 days 00:56:45 sail time.

The tightest finishes in 2014

In absolute time:
  1. JakeS by 0.026s in Cuba Infinity 2 - Sunday, 9 March 2014 after sailing 03:36:43
  2. Lou by 0.087s in Tiree to Cairn of Coli Sprint 2014 after sailing 03:07:23
  3. GREATSKUA by 0.412s in Moheli Sprint 2014 Redux after sailing 03:38:49
In percentages:
  1. JakeS by 0.0002% Cuba Infinity 2 - Sunday, 9 March 2014
  2. Lou by 0.0007% in Tiree to Cairn of Coli Sprint 2014
  3. tejo by 0.0023% in Cyclades Volcano Run 2014 by winning margin of 1.65s after sailing 19:37:25
Overall, JakeS holds the record of the tightest finish ever in SOL both timewise and in percentage with that win in Cuba Infinity 2.

Longest races in 2014

  1. SWR2014-2015 Leg 1 - Alicante to Cape Town took 27 days 17:15:24
  2. SWR2014-2015 Leg 2 - Cape Town to Abu Dhabi took 24 days 20:32:51
  3. Sailonline RTW 2014 - Leg 2 - Uruguay to Australia took 24 days 16:02:21
The overall longest race in SOL so far is Record Gold Run NYC - SFO which took 39 days 09:28:40 for Gilles to win it.

Shortest races in 2014



When adding a Donate-button to http://sailonline.org homepage, I first tested creating a suitable Paypal button using my own account as a test bench. So, as a side effect I got a Donate-button to myself and I have now decided to add it to my SOL statistics site http://sol.hmm.iki.fi/

I created my site two years ago as a hobby project, I was both interested in how SOL worked and I also thought that storing the race history hourly would have value for the players. I mainly have developed it to fill my own needs, but there have been features I have added by request which I don't consider so important for myself.

As I didn't want to keep the data just to myself, I needed a public server for hosting the service. I got one from Hetzner.de for 49 euros per month. So far for two years I have been paying the server myself and plan to continue doing so.

However, when testing the Donate-button I thought that perhaps some of the frequent users of my site might want to share some of the costs of the server with me and the button would be a way for anyone willing to do so.

Some thoughts about paying:
  • SOL server is funded by SYC membership fees, if you consider spending money on your virtual sailing hobby, please pay SYC membership first. If you think the playing is worth more than that, you can then donate money to sailonline.org or me. My site is useless without SOL.
  • Donations or lack of them won't affect the way I run my site, I plan to continue supporting it and slowly developing it as I have done so far. I also reserve the right to close it whenever I wish (not that I have any plans to do so now).
  • 49 euros per month is not the cheapest server you can get. But I needed a server big enough for storing the data and handle weather data etc. With current usage the server I have now will hopefully have enough power and space for next 2-5 years.
  • I know there are many others doing valuable work for SOL for free, most of them don't have direct costs from doing so though. I don't consider my work more important than others, but I also have costs for running the service. I don't know if sol.brainaid.de costs something to run but if it does, I wouldn't think it would be wrong to donate some money for that service as well (if the administrator chooses to create a way to do so)

So if you consider donating, how much would be suitable? From usage statistics I believe that the site has perhaps 50-100 frequent users. My yearly costs for running the site are 588 euros. So if roughly 60 users pay 10 euros per year I hopefully could be in a position that I am not spending money myself to keep the service up. How much you possibly want to pay is totally up to you though.

And if you for some reason don't want to donate anything, that is perfectly fine. The donate is just a way they can share the costs of running my site. Using it is still completely free and I am very pleased that so many have found it useful.


Accuracy of the predictor line and boat tracks when on TWA

During my over an year as a technical admin in SOL, there have been perhaps couple of dozen times when this issue has been brought to me:

  • The boat has approached the mark using TWA
  • The rounding has not happened according to the server
  • The track of the boat shows that the boats has rounded the mark on the correct side
  • Usually also the sailor says that the TWA predictor line showed that the mark should be rounded correctly

There are actually two problems (or perhaps better term would be features) affecting the issue.

1. The boat tracks in the client are not really accurate when the boat has been on TWA

I haven't been in SOL that long but I have been told that originally there was no TWA command, only CC. The tracks were then straight lines between the points where new commands were issued. 

Later the TWA command was introduced which brought up the problem that the track between the points where course was altered by commands was not straight any more. To handle this issue the server sets up track points to the boats when they have altered course enough from the course they had when the previous track point was set. 

It would be impractical to have too many track points for the boats because they would take too much space in the DB and more importantly, dataset of the boat tracks would also grow pretty big and would be difficult to load to clients having slow internet connection.

So, while reality the boat has traveled a curved line according to the wind direction changes, the track seen on the client is series of straight lines between the places where the server has decided to add a track point for the boat. This means that you can't really accurately determine from a track has a boat rounded a mark or not if the rounding has been very tight.  

2. The predictor line in the client is not 100% accurately the path the boat will sail

The TWA predictor that you see is calculated in your client (that is, in your browser) according to the weather information received from the server, your current heading and time. Although it has proven to be pretty accurate, it's still not doing the calculation with the same precision as the server does. This can lead into small differences, which can be meaningful if trying to set the course really accurately using TWA predictor.


I personally have been caught by trying to make a really tight mark rounding using TWA and ending up missing the mark. I believe most of us who have been in SOL for a longer time have. Nowadays I always try to leave some margin (how much, it's up to you and how much you want to risk) if I use TWA or then switch to CC just before the rounding. 

In my mind, this issue is bit similar to the fact that in real sailing, you always leave some room to the mark to allow waves moving it a bit. If you don't do it you might still make a clear rounding with luck but you are not guaranteed to do so. 


How is your predictor line

So far my sollog utility has been about recording statistics about the boats. First it was storing the history every hour, i.e. the latest data available was the last full hour. Recently I added the almost real time statistics which are updated every minute. (For anyone interested in IT, the latest numbers are only stored in memcached where the web page gets the information.)

Now it's time to look into future. As we now know every boat's location and course, it is pretty easy to calculate where that boat would be if it would continue with the same course (or same TWA). As we also have the weather forecast we can use this information to calculate the wind speed, direction and also boat speed on the predicted point.

This is basically what the predictor line in the game client is, an estimate where your boat will be if you continue without any changes. So far I have calculated the predicted wind speed by changing the weather slider to the desired time and then pointed the mouse on that spot on the predictor line so you will get the wind speed and direction. With this information you can then estimate your boat speed from the polar.

In my view SOL is not about who can calculate best but rather who can make the best decisions (or luckiest guesses) based on the calculated numbers I decided to make this tool for easier calculation. Because sollog updates it's information from the server once per minute there might be few percent tolerance in the calculated numbers so don't rely on them when navigating in really narrow places.

To access the predictor, select the desired race from the races list, then enter the boat name and press the button "Predicted data". The default view is 6 hours continuing the same course (COG) as your boat is sailing at the moment. You can change that to TWA by pressing the TWA-button. If you want to see values for other courses (COG or TWA) set the desired course to the degrees-field and press the TWA or COG button.

Unfortunately for now there is no way to tell which weather forecast the predictor is using. Currently sollog fetches the weather file only every full hour, so after a new forecast you must wait for the next full hour for it to be in use. Before it didn't really make much difference in the way sollog was using the weather data but I will probably fix that soon as definitely has effect on the predicted data.


Aaron's Sailonline tools

Yesterday I have finally updated the client that we have used to know as "beta" to be the default version. Aaron (or AGage as we used to know him in SOL) was the key person in the SOL development group and his unfortunate passing away of in June set us badly back but hopefully we are again catching some speed.

The client version we now use was last updated by Aaron just 4 days before his death and he had also just started development of the tools that he planned for helping people sail their boats better.

It is really fortunate that he had asked me in May if I could host these tools on my SOL site so that we have them in our use. He also gave me access to their sources so perhaps the development of them will continue some day. However they are written in Flash which I unfortunately am not at all experienced with.

Most people are probably aware of them by now but I have written a short introduction anyway. And if you are not aware of who Aaron was and what he has done to help SOL I would suggest that you should read this thread about people remembering him and his accomplishments.

Aaron was also the person helped me in developing my sollog site and who then asked me to join the SOL admins. We had an enjoyable 5 months of collaborating which was abruptly cut short.


The WxInspector (wx is short for weather forecast) can be used to analyze the weather and it has actually many tools for this:

  • Horizontal Profile - display the wind speed and direction along a line on the map. The display changes according to the weather slider in the bottom of the page.
  • Ruler Path Profile - same as Horizontal Profile but the line is a ruler path so it doesn't have to be just a straight line.
  • Meteogram - display the wind speed and direction on the marked map point over time. This is mainly useful for spotting when a wind shift is forecasted to happen.
  • COG Isochrones - display how far your boat would sail if it sailed a direct line from it's current position to different directions according to the current forecast. You can change the display interval and limit from the advanced options.
  • TWA Isochrones - display where your boat would sail if it sailed continously to different TWA's from it's current position.
  • Clear Isochrones - clear the isochrone lines from map.
  • Optimal Angles - this is the same as the optimum angles tool described below.
  • Wind Log - the historical data of the wind your boat has experienced during the race (the history goes as far as this WxInspector window has been open).
  • Boat Log - the historical performance data of your boat: speed, course and TWA.

Optimum Angles

The Optimum Angles is for easy calculation of VMG (both upwind and downwind), maximum boatspeed and especially VMC (Velocity Made Course) from the boat's polar. I will not go into detail what these terms actually mean but to be a good virtual sailor understanding them is a must. A good place to start learning is 76Trombone's blog.