Start | Races | Maps | Help | API | Code | Contact

SailNavSim



What is this?

SailNavSim is a virtual sailing navigation simulator where you can sail and race with your friends and others online. You can participate in anything from a quick race across a small lake or harbour, or sail away on a month-long ocean passage to another continent or to your favourite remote island. The simulation runs in real time, so sailing over various distances will take as much time as you might expect in the real world. Anyone can sail, and no account creation or personal information is required!


How to participate

In order to sail, you must either create a new race or join an existing race before it has started. Everyone joining a race begins with the same boat type at the same starting position and is subject to the same weather conditions at this geographic position when the race begins.

Quick start

A "quick start" mode is made available at the top of the main start page, where only your name (or alias) is needed as input. This will allow you to immediately start a single-player instance with some randomly chosen race parameters. To create a custom race, see below...

Creating a race

To create a race, fill out the form on the starting page with the following details:

Joining a race

To join a race, you must know the race ID and also provide your name (or alias) for the race. The creator of the race (or another participant in the race) must provide you with this race ID, which is available to them once they have created or joined the race. Participants may join a race at any time up until the start time of the race, as specified by the race creator.

You can also join any race advertised on the upcoming public races page. The race ID is provided there for each public race that has not yet started and is accepting new joiners.


Controlling your boat

Controlling your boat requires no specific knowledge of boat rigging, or putting up and trimming sails; all you really need is a basic understanding about the directions in which you can sail relative to the wind. There are three primary control inputs for your boat:

Wind response

Those who have sailed before, whether in the real or online world, may have come across polar plots showing wind response curves for a particular boat at different wind speeds. There are several different types of boats currently modeled in SailNavSim, many based on approximations from available (though sometimes sparse) data of real-world boats. Click on the links below to see the polar plot and wind response tables for each of the different boat types as modeled in the simulation.

As is obvious from the data in the links above, each boat has a different wind response profile. Additionally, for each boat, the fastest point of sail relative to the true wind direction (visualize the wind on the plot as coming from the zero degree point, from top to bottom) depends on the wind speed. Integrating this knowledge with the otherwise most direct geographical course to any waypoints and to the finish location is a large part of what makes navigating in a sailing race -- particularly over vast distances with changing weather conditions along the way -- an interesting activity.

Depending on the specific boat type, when steering within about 20 to 40 degrees on either side of "directly into the wind", your sails will be ineffective in powering your boat along your chosen course. In this case, the force of the wind will begin to push your boat backwards, where you will start to see a negative speed through water for your set course. Steering directly into the wind has the same effect as taking your sails down, where your boat will be pushed "backwards" at 1/10th the wind speed.

Sea ice

Another variable that has an impact on your boat speed through water is sea ice. This value is calculated from sea surface temperature and water salinity, whenever these values are available. Although most of the ocean surface around the globe has no sea ice, in areas where it is present your boat will be slowed down in proportion to the amount of sea ice in that location, coming to a complete stop through water upon reaching 100% sea ice concentration.

A global map showing the sea ice concentration, as modeled by the simulator, is one of the maps which can be found on the weather/ocean maps page.

Damage mode

If boat damage mode has been enabled by the race creator, then boats will take damage while wind gusts exceed the damage threshold (by default 45 knots, but higher for certain boat types; see list below), unless the boat is stopped (on shore) or has its sails down. Damage will be repaired automatically, but only while wind gusts have decreased to below 25 knots. Boat damage has a linear effect on boat speed: for example, a boat with 50% damage will sail at half of its expected speed; a boat with 75% damage will sail at only a quarter of its expected speed.

The following boat types have higher damage thresholds, set at 55 knots: If apparent wind damage mode has also been enabled, then apparent wind gusts are used for the calculations instead of the default true wind gusts. This takes into account the fact that it is the wind gusts "felt" by the boat (a function of both true wind and boat vectors over water) that count toward damage.

More details, including some examples, pertaining to the rates of damage accrual/repair are provided below: A global map showing the wind gusts which affect boat damage, as modeled by the simulator, is one of the maps which can be found on the weather/ocean maps page.

Wave resistance mode

If wave resistance mode has been enabled by the race creator, then boats will slow down based on the waves and swells being encountered. This effect is relatively minor in calm seas, but it becomes increasingly important in rougher seas where the waves are higher, particularly for the smaller/slower boat types. The "wave data" section on your boat information page will show details about the waves at your position, including their effect on your boat's speed.

When this mode is enabled, the boat speed through water is adjusted by multiplying it by a speed reduction factor (SRF), a value always between 0 and 1, which is a function of the wave height (WH) and the specific boat type's wave resistance constant (WRC), according to the following formula: SRF = 1 / exp(WH^2 / WRC). Wave height (WH) is provided in metres, with the wave resistance constant (WRC) chosen based on the boat type, as indicated below:
Boat typeWRC
SailNavSim Classic75
Seascape 1860
Contessa 25100
Hanse 385125
Volvo 70175
Super Maxi Scallywag200
140-foot Brigantine200
Maxi Trimaran250
IMOCA 60160
Improvised Lifeboat50
Volvo 65175
AC72200

Tables showing calculated speed reduction amounts for various chosen wave heights are also provided on the wind response pages for the different boat types. A global map showing wave heights, as modeled by the simulator, is one of the maps which can also be found on the weather/ocean maps page.

Celestial navigation mode

In celestial navigation mode (if enabled by the race creator), celestial sights of the Sun and the 20 brightest navigational stars (plus Polaris) may be taken, subject to time of day and cloud coverage (from one sight every minute with 0% cloud coverage, to no sights possible under 100% cloud coverage): Other than sights being made periodically, the following modifications also occur in celestial navigation mode: Additionally, the following assumptions can be made for sights: If celestial waves mode is enabled, the altitude and azimuth readings for each sight will have some random error added. This error is a function of the wave height (WH) and the boat type's wave resistance constant (WRC, also as discussed in the waves mode subsection above). This error adjustment is calculated as follows:

Viewing your progress

Your boat progress and details are updated once per minute, and some of these details (including position, speed over ground and true wind) are also shared with other participants in the race at a regular interval, which may be less frequent than one minute depending on how this was configured when the race was created. All boat status, geographical and weather information is provided on one page, with additional links to show extended hourly boat data and a maps page also available.

On your boat maps page, the race map shows the positions and recent tracks of all race participants as of the most recent shared reporting time, as well as the geographical bounding boxes for the finish and for any waypoints along the way. Since the simulator is always running with a one-second simulation timestep interval, a "live boat" feature is also available to let you see your boat position and speed updates with each one-second update, which can be especially helpful for getting through canals and other narrow waterways. If the live boat sharing functionality has not been disabled by the race creator, then other boats in the race will also be shown live when they are nearby (within 15 NM) but with reduced heading and position accuracy: other boats' live headings will be rounded to the nearest 16th/32nd/64th compass point depending on distance, and their live positions will also lose precision over farther distances (to no worse than about 50 metres, for boats more than 5 NM away).

The simulator's live weather and ocean data can also be selected for visualization as an overlay on the race map. The separate Windy weather map shows your boat position and approximate weather conditions at the present time (note that this may disagree somewhat with the weather data shown on the race map; see the section on Weather and Ocean data for more details), as well as the ability to view weather forecasts to help you plan your route.

The race map shows all boat positions displayed as boat icons, which are colour coded as follows:

Not Finished Finished Race
Your Boat Yellow boat Dark green boat
Others White boat Light green boat

Finishing a race

To finish a race, a boat must reach the finishing bounding box after passing through all race waypoints (of which there may be zero or more for any particular race). Each individual sailor may or may not finish the race, depending on whether they satisfy the race finish rules as specified when the race was created. Regardless of the outcome, all participants may continue to sail as long as they wish, subject to boat deactivation rules.


Further details

The above information is certainly enough to get started and participate effectively in a race, but there's more you may still want to know, so feel free to continue below...

Your boat "key"

Since there is no requirement to create an account and no username or login required, your boat is set up with a unique key when you create or join a race. In a sense, this "key" takes the place of a username/password combination and should be treated as such. Just as sharing a race ID with anyone allows them to join that race, sharing your boat key with anyone will give them the ability to fully control your boat in the race. So it's up to you to keep it secret, or share it for the desired effect if you wish.

Boat deactivation

After the race has started, boats will be subject to automatically be moved to a "deactivated" state after 14 days of inactivity. Boat inactivity here is defined as the period of time during which no course change or start/stop commands have been sent to the boat. Although deactivated boats are left over in the race and still show their statuses as of the time of deactivation, they are no longer simulated, and therefore they do not move and cannot be controlled further. Deactivated boats will also continue to be shown on the race map at their latest position but with a transparent boat icon shown instead.

Date and time

All dates and times are by default displayed in Coordinated Universal Time (UTC) or "Zulu" time (hence the "Z" suffix). You have the option to choose displaying dates and times in your browser's local time zone instead (see the setting at the top right of most pages, next to the menu). Note that in celestial navigation mode, all dates/times for sights will always be shown in UTC, regardless of this setting. For convenience, in many places, the relative time (as of the page load) is also shown alongside dates/times.

Boat history

Hourly boat logs, which include the boat positions at the top of each hour, are kept for at least 30 days. Extended boat logs, which contain the boat positions at noon and midnight UTC (1200Z and 0000Z) for each day, are further retained for at least 365 days. This data is used in order to draw the historical boat tracks on the race map, to show the hourly boat log data, and may also be used in the support of additional features in the future.

Weather and Ocean data

The weather and ocean data used here are sourced from the NOAA GFS (Global Forecast System) weather model forecasts and from the HYCOM ocean model. Data are chosen to approximate the weather and ocean conditions at any point on the globe at the current time. Although a number of different weather variables are displayed, only the following variables currently have any effect on boats: wind direction and speed, ocean current direction and speed (where available), sea ice concentration (calculated from sea surface temperature and water salinity, where available), and wave height (if waves mode has been enabled for the race). Many of these variables can be found visualized on the weather/ocean maps page. The raw data from which these maps are generated is the same data that is used by the simulator. Additionally, some of this data can also be selected for visualization as an overlay on the race map.
But I see that the weather data shown to me doesn't agree with what's on the Windy weather map!
The weather data used in the simulation and displayed to you, including the overlayed data shown on the race map, may disagree with what you see on the Windy weather map due to a combination of two main reasons:
  1. Windy uses the ECMWF weather model by default, which although should be very similar overall for relatively near-term forecast data within 6-9 hours (which SailNavSim uses), it can still differ from the data derived from the GFS model used here.
  2. SailNavSim "blends" data from two adjacent GFS forecast periods on an almost continuous basis. This means you won't get sudden sharp weather fronts taking over your boat at any time, but you will also experience more gradual changes in weather rather than sudden discontinuities every few hours when the latest weather model data is loaded.

Geography

As already mentioned above, your boat will sail freely (subject to the weather, of course) while on water, but it will come to a stop upon reaching land and will need to be steered back towards water and "started" again. The geographical land/water data used is available for the entire globe to an accuracy of about 30 metres, so for the most part any land you see on an online map should be found just as well in the simulation at the same coordinates (some exceptions apply; see Land/water inconsistencies under quirks). SailNavSim also makes an attempt to ensure all geographical calculations take into account the realities of the Earth's shape, as one of the main goals is to model the real world as accurately as possible from a navigational standpoint, so all geographical calculations and information displayed ought to be reasonably accurate in these aspects.
Is it possible to transit any of the major canals?
The geographical data used by SailNavSim includes various major canals represented as waterways, which means it is possible to transit these canals in your boat. However, in order to do this successfully, your boat may require frequent course corrections to stay the course of the canal (depending on the specific canal) from one end to the other. The following major canals are currently known to be transitable in SailNavSim: There may also be other, smaller canals which can be transited. The above list may be updated in the future should any others be identified.

Other quirks

There are a few quirks with the simulator's behaviour that are worth mentioning. These may be fixed or mitigated at some point in the future, but for now it's good to be aware of them when creating, joining, and participating in races. Some of these items can be attributed to the fact that the simulator intentionally "updates" only once per minute. While this "feature" contributes to the slow-paced nature of the simulation, it does come with a few side effects. Although boats are simulated internally with a timestep interval of one second -- this also allows for the "live mode" functionality you can enable on the race map to show some fast-updating boat information -- many updates and checks still only occur once per minute.

I'm a programmer and would like to explore more!

Please visit the Code page for more details which you may be interested in. There you can find links to code repositories and information about the public API which you can use.


I have a bug report, feature request, question or suggestion!

Great! I look forward to hearing from you, so please head on over to the Contact page and leave me a note.