Start | Races | Maps | Help | API | GitHub | Twitter | Contact
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.
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:
- Starting position: Choose the starting geographical position coordinates (in decimal degrees, with negative values for south latitude and west longitude) for boats in your race. If the position is inland, it must be within 100 metres of water or boats will not be able to start. Typically it's best to choose a starting position on the shore or in the water just offshore.
- Finishing bounding box: Choose the ranges for latitude/longitude that boats must reach in order to successfully finish the race. This is done by inputting the decimal degrees of latitude/longitude of the southwest ("minimum") and northeast ("maximum") corners of the bounding box.
- You may also specify whether or not a sailor must reach land inside the bounding box in order to finish.
- Waypoints (optional): Create up to three waypoint boxes by providing ranges for latitude/longitude that boats must pass through on their way in order to successfully finish the race. This is done by inputting the decimal degrees of latitude/longitude of the southwest ("minimum") and northeast ("maximum") corners of the waypoint bounding boxes, in the same way as for the finishing bounding box above. Leave any waypoint boxes blank in order to have fewer waypoints (any from zero to three).
- Boat type: For every created race, a specific boat type must be chosen. All participants in the same race will be given an instance of this same type of boat. Each boat type has a distinct wind response profile (more details about this in the Wind response section below).
- Damage mode: Check this box to enable boat damage (see section on Damage mode for more details).
- Wave resistance mode: Check this box to enable wave resistance (see section on Wave resistance mode for more details).
- Race starting time: With the exception of single-player mode (which starts the race without delay), races do not begin immediately when they are created, rather they must start at some chosen time in the future, based on this setting. This is to allow other participants to join the race and prepare before the race starts. If the creator chooses to start the race "now", then this initiates single-player mode, and the "race" begins immediately.
- Position sharing interval: This is the amount of time between position reports from all boats being shared with all other participants in the race. Every sailor always has access to their boat's most recent report (within the last minute), however this information may be shared periodically at a greater interval, depending on this setting.
- Public or private race: Multiplayer races are made public by default, so anyone is able to discover your race and join if they want. You can also mark your race private by checking this box, so you will need to share your race ID with those you want to invite to join.
- Race description: A short description of your race, perhaps quickly describing the starting point and destination. If the race is not marked private, then this description will also be shown on the public races page.
- Private message to racers: A message to the race participants, which is visible to them once they have joined the race. This can include further details about the race, for example even instructions on how participants can find and join a dedicated chat (should the race creator be inclined to host this somewhere).
Joining a race
To join a race, enter your name (or alias) and the race ID. 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 creator.
You can also join any race advertised on the upcoming public races page. The race ID is shown 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:
- Steering course: The primary control you have is that of the steering of your boat. A numeric compass course (from 0 to 359 degrees) must be provided here. Your boat will steer this course as long as is practical based on wind conditions, until you change the course again. As is the case when sailing a real boat, attempting to sail a course too close into the wind will result in your sails luffing and your boat making no progress or even being pushed in the opposite direction by the wind (see section on Wind response for more details). You may set your desired course as soon as you join a race in preparation for the start of the race.
- Starting: Your boat may be started if on land provided that it is within 100 metres of water in the direction of the set course. If you land during a race and need to get back onto the water, simply set your course back towards the water and command your boat to start. Starting a "stopped" boat while on the water will result in it resuming its course. You may not start your boat until the race begins.
- Stopping / Sails down: Your boat stops automatically once it reaches land, but it can also be controlled by taking your "sails down" if on the water. In this condition, your boat will drift with the wind at 1/10th the wind speed, and will also be subject to any ocean currents.
Those who have sailed before, whether in the real or online world, may have come across a polar plot 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 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 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.
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 simulation, is one of the maps which can be found on the weather/ocean maps page.
If boat damage mode has been enabled by the race creator, then boats will take damage while wind gusts exceed 45 knots, 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 affects boat speed linearly: 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.
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 simulation, is one of the maps which can be found on the weather/ocean maps page.
- Damage is accrued at a rate of 0.25% of the remaining difference to the maximum damage (100%) per hour for each wind gust knot squared above 45 knots. This calculation is applied on every simulator iteration (once every second). Some examples below...
- With gusts at 50 knots, damage is accrued at a rate of 6.25% of the remainder to 100%, per hour. Compounded per second, this reaches approximately 6% after one hour from zero damage.
- With gusts at 55 knots, damage is accrued at 4x the 50-knot rate. Compounded per second, this reaches approximately 22% after one hour from zero damage.
- With gusts at 60 knots, damage is accrued at 9x the 50-knot rate. Compounded per second, this reaches approximately 43% after one hour from zero damage.
- With gusts at 65 knots, damage is accrued at 16x the 50-knot rate. Compounded per second, this reaches approximately 63% after one hour from zero damage.
- Damage is repaired at a rate of 0.25% (absolute) per hour for each wind gust knot below 25 knots. This calculation is applied on every simulator iteration (once every second). Some examples below...
- With gusts at 20 knots, damage is repaired at a rate of 1.25% per hour.
- With gusts at 15 knots, damage is repaired at 2x the 20-knot rate: 2.5% per hour.
- With gusts at 10 knots, damage is repaired at 3x the 20-knot rate: 3.75% per hour.
- With gusts at 5 knots, damage is repaired at 4x the 20-knot rate: 5% per hour.
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:
|Super Maxi Scallywag||200|
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 simulation, is one of the maps which can also be found on the weather/ocean maps page.
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 greater 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. The simulation'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:
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.
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.
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 currently presented in Coordinated Universal Time (UTC) or "Zulu" time (hence the "Z" suffix). For convenience, in many cases, the relative time (as of the page load) is also shown alongside.
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 simulation. 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:
- 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.
- 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.
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. 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.
- Kiel Canal
- Panama Canal
- Suez Canal
- Welland Canal
- The nearby Niagara River to the east can also be transited; Niagara Falls is NOT modeled as a hazard!
I'm a programmer and would like to explore more!
Large parts of SailNavSim have been released as free and open source software, which you can find on GitHub.
SailNavSim also has an API available, which you are welcome to take advantage of for your own personal use.
Great! I look forward to hearing from you, so please head on over to the Contact page and leave me a note.