1 One engine, two places
The routing engine, the forecast decoder and the polar lookup are one piece of code. The tablet runs it natively; the browser runs the same build compiled to WebAssembly. A route computed in the web app and the same route computed on the boat are not two answers that agree — they are the same number.
What actually differs is the question each one is asked:
| Ashore, in the browser | On the tablet |
|---|---|
| Routes from the plan’s start position, or from the first waypoint when there is none, at a start time you type. | Routes from where the boat is, now, and recomputes as the boat moves and the clock turns. |
| Compares variants: a slower polar, a different start time, a second forecast model. | One answer, against every model aboard, with the spread between them printed. |
| Can write the routed path back into the plan. | Can pin a solution to compare later, and writes no waypoints unless you edit the plan by hand. |
2 Ashore: the marks you reuse
Navigation → Marks is a list of positions the whole organisation reuses: buoys, gate ends, headlands, lights, hazards. It belongs to the organisation rather than to a boat, because a headland is a fact about a coast. A two-boat programme types a position once.
- Add a mark by typing its position, by importing GPX, or from a plan you have already drawn. Each row says which.
- Archiving is the disposal verb and there is no delete. Plans that used a mark point at it, so it is archived rather than removed — and archiving releases the name, which is why un-archiving can be refused when somebody has reused it.
- GPX import here takes routes and loose marks alike, and a name a live mark already holds is skipped rather than renamed.
3 Ashore: the race plan
Navigation → Plans → New plan. Pick the boat, name the plan and choose the type — Coastal, Offshore or Windward / leeward. The editor opens on a map.
The route
- Click the map to place a waypoint, or take one from the marks list. Positions are typed and read as degrees and decimal minutes everywhere, because that is what a committee reads out and what a plotter takes. Degrees, minutes and seconds is refused by name in a single field:
51 19and51.19are one keystroke apart and 300 m apart. - Rounding is
Port,StarboardorGate, and the side is the boat’s: Port means leave the mark to port. - A gate is two waypoints. Mark both as
Gate. Which end you take is yours on the water, and nothing here resolves it. - Passing radius is metres, 5 to 5000, and 50 to begin with. It is what the tablet advances the route on. Below 5 m it is inside GPS noise; above 5000 m it is a leg rather than a rounding.
- A plan holds at most 200 waypoints.
The start area, and what it is not
Drop the start pin and click roughly where the race starts. It does two things: it opens the editor over the right water next time, and it gives the plan a venue on the boat’s list. It is also the origin the browser routes from.
Exclusion zones
Water this plan must not enter: a traffic separation scheme, a mussel farm, a firing range, the corner of the bay the sailing instructions put out of bounds. There are three ways to state one, and they end in the same object.
- Draw it on the map. Click each corner; double-click or press Enter to close. The ring closes itself from the last corner back to the first — never click the first corner twice.
- Type the corners. Add zone from coordinates makes an empty zone and opens its corner list, in the same degrees-and-decimal-minutes boxes a waypoint uses.
- Paste a published list. Sailing instructions publish a zone as a list of positions, so paste it: one corner per line, latitude first, in decimal degrees, degrees and decimal minutes, or degrees, minutes and seconds. Blank lines and anything after
#or//are skipped, and a last corner repeating the first is dropped because a zone closes itself.
Nothing is applied while one line cannot be read, and every refusal carries the line number. A half-read list would leave a shape nobody published, with the missing corners nowhere on screen.
A zone is a wall and not a warning. Routing that honours it will not thread a course through the polygon, and a leg with no way round it has no way round it. Nothing checks that a zone makes sense either: an outline that crosses itself, two zones that overlap, or a zone over one of your own waypoints are all stored exactly as drawn. Twenty zones per plan, 3 to 64 corners each.
The safety margin
How much water you want under the keel on top of the boat’s draft. Water is usable when the charted depth is at least the draft plus this margin. It is 0 to 20 m, it is stored with the plan, and it goes to the boat with it.
Empty is not zero. Empty means nobody has decided yet; zero says you have looked at the depths and want no cushion. The plan list draws no chip at all for an absent margin rather than printing a zero, because a zero would read as a declared willingness to sail with none.
Importing the committee’s GPX, and taking the plan away
Race committees publish the course as GPX with the sailing instructions. Import GPX takes it: routes are offered before loose marks, because a route is ordered and a bag of marks is not. Every cost is stated before the apply button — points past the 200 cap are dropped from the tail and names are cut to 40 characters. Recorded tracks are counted and not read: a track is where a boat went, not a course to sail.
Export GPX goes the other way, as GPX 1.1 with one route and no loose waypoints. Rounding sides, passing radii, zones, the margin and the start pin travel in extensions only Nordic Stars reads, so a plotter sees the positions and the order and nothing else.
Saving, and two people editing one plan
Save is explicit on this editor. Fields commit as you leave them, but nothing reaches the platform until you press Save — because the save can start a conversation, and an autosave would start it mid-drag.
If the plan changed while you had it open, the save is refused and you get two ways out and no merge: discard mine and load theirs, or overwrite theirs with mine. Neither the platform nor this app can decide which of two routes is right.
The editor also carries the navigator’s log, a free-text box separate from the plan’s notes. The notes are the brief written ashore; the log is what somebody writes at 0300. Both go to the boat, and the boat can write to the log too.
4 The files the platform builds for it
A plan with a route gets a forecast built around it. The area is a corridor: the box around the route, widened by a margin set on Boats → Weather — 5 to 200 nautical miles, 30 to begin with — and the model run cut down to that. The job runs every ten minutes and keeps the five most recently updated routed plans of each boat current, so a plan saved now has its files about ten minutes later plus the build.
Three kinds of file come out of it:
- A weather bundle per model run — wind, gusts, pressure, and where the platform holds them, the surface current and the height of tide. Which models are fetched is the boat’s own setting, capped at four.
- The sea model — the depth grid, the coastline, the seamarks and the hazards along the corridor. This is what the depth check reads.
- An official chart extract, where a national hydrographic office publishes one on terms that allow it.
A windward/leeward plan, and any coastal or offshore plan whose route is still empty, never gets weather. The area to fetch is derived from the route, so there is nothing to cut a forecast to. That is arithmetic rather than a rule.
5 Ashore: reading the forecast
Navigation → Weather lists what the platform holds for one boat, one row per model run, with two ages that are not the same fact: the forecast age says how old the model run is, and the file age says how old the file is. One of them alone would let the page tell a comfortable lie.
Two flags, and neither of them is age:
- stale corridor — the file covers water the route has since left, because the route was edited after it was built.
- expired — the last forecast instant in the file is already in the past.
Age on its own is never called stale. A three-hour-old ECMWF run is the freshest run that exists. Marking it would be grading the model’s publishing schedule rather than telling you a fact about your race.
Download hands you the packed file — the bytes the tablet reads at sea. Open draws the same file in this browser, on the plan’s own map.
What the viewer draws
- Wind as a shaded field with barbs over it. A barb points at the direction the wind comes from; half a feather is 5 knots, a full feather 10, a filled triangle 50, and a circle is under 2.5 knots.
- Gust and pressure contours, at 5 knots and 2 hPa.
- Current arrows where the file carries a current. An arrow points where the water is going, which is the opposite convention to a wind barb. Below 0.15 knots none is drawn.
- The sea model under the course, with water shallower than this plan’s draft plus margin picked out.
- A scrubber stepping the file’s own forecast hours, with a play control.
Click the map for two answers at that point. The meteogram plots wind speed, wind direction, gust and pressure over the whole run — a hole in the file is drawn as a break in the line and never as a dip to zero. The depth card names the depth, the survey it came from, that survey’s resolution, its vertical uncertainty and its datum, and prints not stated for any of those the source does not publish.
6 Ashore: routing the course
Navigation → Routing, pick the boat, then Route this plan. Four things must be in place, and the page names whichever is missing, in this order:
- A route. A windward/leeward plan and a plan with no waypoints cannot be routed.
- A nav polar on the boat. There is no default polar anywhere in the application — with none, the page computes nothing. The tablet routes on nav too, which is what keeps the two answers the same.
- A weather file the platform holds for this plan.
- A start time, which you type. It is read as UTC and the field says so. Outside the file’s own time range the calculation runs out of weather and reports how far it got.
What it draws and what it reports
The violet line is the routed path; white dots are turning points, where it changes board; the grey lines are isochrones — how far the boat could have reached by each step of the calculation. Under the map: ETA and elapsed time for the route and per leg, the distance along the routed path rather than between the marks, the number of board changes, the time on each board, and one row per board with the wind angle, wind speed and boat speed the engine used.
Depth is checked against the boat’s draft plus this plan’s safety margin, using the sea model. With no sea model nothing checks the depth and the page says so; with no margin the check uses the draft alone.
Every leg carries an outcome in the engine’s own words — arrived, ran past the end of the forecast, found no way through, ran out of steps. When the first leg finds no way through and sails no board at all, the page probes the sea model at the origin and prints what it found: the depth there against the draft and the margin, or the position named as land, or — with no sea model loaded — that the only constraint left able to refuse every heading is an exclusion zone.
Comparing variants
A single route is one answer to one set of assumptions. Three things can be varied, and each one becomes a separate request to the engine:
| Variant | What changes |
|---|---|
| Polar scale (%) | A second polar at that fraction of every target speed. 95 routes a boat five per cent slower everywhere. |
| Start offset (minutes) | The same course started earlier or later. The forecast does not change; the boat meets a different part of it. |
| Forecast model | The same course against another weather file the platform holds for this plan. This is how two models are compared. |
At most 8 variants run in a batch, one after another; a longer list is cut and the page says how many were left out. Isochrones are computed for the baseline only — they are the largest part of a result, and a variant is read from its numbers.
Three variations a navigator arriving from other software will look for are not available, and the page lists them with the reason rather than leaving them out: a wind speed scale, a wind direction offset, and reverse isochrones. The engine reads wind from a packed file and takes neither a scale nor a rotation, and it expands forward only.
Adopting the route
Adopt as waypoints writes the routed path into the plan: your own waypoints in order, with the routed path’s turning points inserted between them. The confirmation names how many waypoints are being replaced and how many will replace them, split into kept and added.
- Turning points carry no mark. They came out of the calculation, so writing a mark on one would say a buoy is there.
- Your own waypoints keep their names, rounding sides, radii and marks.
- Nothing else on the plan changes — name, type, zones, margin, notes, log and start position are written back exactly as they were read.
- A routed path past the 200-waypoint cap is refused here rather than sent.
- This page writes no pin. A pinned route is computed on the boat; the browser reads one and never writes one.
7 At the dock: getting it aboard
- Sign in on the tablet, pick the boat and press GO LIVE to claim the seat.
- Open SETTINGS → WEATHER AND DATA → WEATHER and press FETCH WEATHER. The card is about one plan — the loaded one, or the newest routed one — and any other plans are counted and named rather than left out. The progress bar counts bytes across the whole run, not files.
- Check the plan library is aboard. The tablet reads the whole library in one request while it still has connectivity and works from that cache at sea.
- Then leave. Everything after this reads off the tablet’s own storage.
Save the plan before you leave the wifi. The tablet fetches the library, not one plan on demand — a plan saved after the boat has left is a plan the boat does not have.
8 On the water: loading the plan
On NAVIGATION, press LOAD RACE. Each row gives the plan’s name, its kind and waypoint count, and when it was last edited; above the list, how old the cached library is.
Loading fetches nothing. It is a local act on a cached document, which is why it works with no signal at all. The forecast, the sea model and the chart came down separately, at the dock. Once a plan is loaded the control reads RACE PLAN.
A plan whose type is newer than the app says so and is listed rather than hidden. A coastal or offshore plan saved with no waypoints is refused by that name — there is nothing to sail.
PATH AHEAD appears on the tab row the moment a route is loaded, immediately after NAVIGATION, and leaves again when the route does.
9 On the water: NAVIGATION
With a route loaded, the mark-laying controls are gone — a route course carries no marks, so a control whose only effect is to disagree with what the tablet has told the platform it is sailing is absent rather than disabled. In their place:
- SKIP and BACK — re-aim at the next or previous waypoint.
- WAYPOINTS — the plan aboard, editable. See section 12.
The corner of the plot carries six labelled numbers instead of board times:
| Cell | What it is |
|---|---|
| DTW | Distance to the active waypoint. |
| BTW | Bearing to it. |
| XTE | Cross-track error, with the side in words — 212 m PORT — rather than a sign to remember. |
| VMC | Speed made good towards the waypoint. |
| TTG | Time to go at that speed, in hours past an hour. The ETA sits beside it as a line, in UTC, and says so. |
| DTF | Distance to the finish along the rest of the route. |
The em-dash rule applies per cell, so a boat with a position and no speed through the water still gets DTW, BTW and XTE.
The route advances itself when the boat is inside the waypoint’s passing radius, or past the perpendicular through it measured along the leg’s own bearing — which catches a headland left 400 m off that a 50 m radius would miss for the rest of the race. It advances by one and never by two, and it never undoes a SKIP or a BACK.

The chart under the course
There are two tiers and the tablet always says which one you are looking at, in the legend, on the card you get by tapping the water, and beside the corridor on the weather card.
- Official — a hydrographic office’s own chart cells, named with their edition, carrying the office’s own zone of confidence, depth areas, light sectors and traffic separation. It draws above the derived tier and replaces its quality tint in place. On the tablet this is United States waters today, because those are the charts this platform may lawfully fetch and repack; European official data is pending licences. It is a corridor extract rather than an official ENC, and the producer’s own statement to that effect travels in every file.
- Derived — the platform’s own sea model, built from open bathymetry and open seamark data. Global.
- No official chart for this area — the platform looked and there is none. That is a different statement from either of the above.
Depth contours are drawn at fixed 2, 5, 10 and 20 m, with spot soundings at harbour zoom. The shading is not decoration: it is exactly the water the router refuses, the draft plus the safety margin plus the source’s own allowance. SOURCE tints the water by how well its depth is known, and on the official tier that becomes the chart’s own zone of confidence.
Water with no depth data is not shaded and is passable. Tap it and the card says so in as many words. A missing survey is not the same as deep water, and the router treats it as unchecked rather than as clear.
Wind, current and tide
- WIND overlays the corridor forecast as barbs, with a time scrubber over the file’s own forecast hours and MODEL to pick which file is drawn. When it is on, the control’s own caption is the staleness line — which run, fetched when, running to when. A missing barb is missing data and never a calm.
- Current arrows draw under the barbs on the same time frame, with the head pointing where the water is going.
- TIDE decides whether the laylines are drawn on the track the boat makes good rather than the heading it steers. It is per boat, it is on by default when a current field is aboard, and it is not shown at all when there is none. The two laylines stop being mirror images when there is tide, which is why widening the splay by one crab angle would be wrong.

The height of tide is packed into the forecast file, but no screen shows it yet: the chart card prints Tide height: no source for this area, and the depth check adds no height of tide. That is a statement about the app rather than about the water. Currents and tides has the sources, the units and the limits.
10 On the water: PATH AHEAD
PATH AHEAD routes the rest of the course from where the boat is, through the forecast the tablet holds, against the depth in the sea model and around the plan’s own exclusion zones. It runs leg by leg round the remaining waypoints, in the plan’s order.
It recomputes on four triggers — the plan changed, the forecast files changed, the boat moved a nautical mile, or the clock stepped ten minutes — and RECOMPUTE is the same calculation asked for now.
The plan card
The total time to the last mark, which model produced it, and the same answer against the other models aboard. The spread between the models is the confidence display, which is why there is no model picker on this tab.

Each leg card
Three values, then what the leg costs:
- BOARD — the board the leg is entered on.
- HEAD — the heading to steer, which is not the track the boat will make good once there is tide under it.
- ETA — the arrival clock, in UTC.
Under them: how long on this board, how many boards, and the sail pair the boat’s crossover chart calls for — with an amber line at each change, and a count of the changes on the plan card. On a boat with no crossover chart entered there is no sail line at all.

The wind reported per board is water-referenced: a forecast wind is referenced to the ground, a polar is referenced to the water, and feeding one into the other makes an error the size of the current. So the angle and speed on a leg card are also what the boat’s own instruments will read when it gets there.
Each leg carries an outcome badge — ROUTED, FORECAST ENDS, NO WAY THROUGH, DID NOT REACH, and the two wind-limit ones below — plus a depth line saying whether the depth was checked all the way or for what share of the leg it was not, and on what size of cell.
Wind limits and motoring
SETTINGS → BOAT → ROUTING LIMITS. All three are off until you turn them on, and with all three off the route is identical to one computed without them.
- MAX TWS — the router will not route a step into wind above it. The limit applies to where a step goes, not where it starts.
- MIN TWS — below it the polar is not read at all.
- ALLOW MOTORING and ENGINE KN — off by default, because racing rules forbid propulsion in most races. With it on, the router motors where the forecast wind is below the minimum, or where the polar’s speed for that step is below the engine speed.
Motoring does not open the no-go zone. A beat under engine is still sailed in boards. The leg card names the speed you entered and how much of that leg is made under engine, and the plan card totals it. A boat that does not allow motoring gets no such line at all.
Pinning a solution
PIN keeps this answer to compare the next one against. The delta is printed as elapsed time rather than as two clocks. The pin is local to the tablet; only a six-number summary per leg travels ashore, which is what the plan editor draws as a thin dashed line. The isochrone solution itself never leaves the boat.
11 Alarms, ships and the crew
Seven alarms are live on any kind of day, and two of them only mean anything with a route loaded:
- DEPTH — the sounder reading, not clearance under the keel. Ships armed at the boat’s draught plus 1.5 m, or 5 m when the draught is unknown. This is the one to check before you leave.
- XTE — further off the active leg than you set, 100 m to begin with. Silent with no route.
- ARRIVAL — entering the active waypoint’s own passing radius, once per waypoint. Silent with no route.
- ANCHOR — ships disarmed, because there is nowhere to watch until somebody drops one.
- CPA — an AIS target passing closer, sooner, than you set: 0.5 nm and 12 minutes to begin with.
- MOB — your own mark, or a beacon transmitting for real.
- FEED — the instruments going quiet while live.
MOB is one press with no confirmation, on the status strip, on screen on every tab and over the settings room. The mark is written to disk before anything else happens; a press with no position still drops a mark and says the position was not recorded; a second press does not move the first. Clearing it takes two presses.
AIS arrives on the same NMEA 0183 feed as everything else, so a boat on a FaRo feed alone has none. The target list ranks by threat rather than by range, and distress beacons sit above everything. AIS, alarms and man overboard is the whole subject, including what CPA assumes and what it does not.
Instrument output is the other direction and is off until you turn it on: the app’s own numbers — time to gun, time to burn, distance to the line, line bias, laylines, targets — put onto the boat’s NMEA 2000 bus through a gateway, so a mast display can carry them. It never transmits wind or boat speed. None of it has been checked against a physical display, and the app says so where you configure it.
12 Changing the plan aboard
WAYPOINTS opens the plan aboard, and all of it works with no signal.
- Drag a waypoint on the chart. The drag previews and only the release commits, so one gesture is one recorded change. A tap on a waypoint never moves it.
- Type a position with digit rollers rather than a keyboard.
- Reorder with arrows, not by dragging a list, and the active waypoint travels with its row. A waypoint added aboard inherits its neighbour’s rounding and radius. The last waypoint cannot be deleted.
- ZONES — adding one is a mode, not a gesture: every tap is a corner until you finish or cancel. The same caps as ashore, and the same absence of shape checking.
- MARGIN — steppers, and NONE is a button rather than the bottom of the range, because zero and nobody has said are different answers all the way to the platform.
- LOG — the navigator’s log, committed to disk on every keystroke.
SAVE TO PLAN writes to the tablet and sends when there is a link, so the card says saved aboard rather than claiming a round trip the boat may not have had. Plan writes drain on their own schedule, deliberately separate from the racing data: a plan the platform will not take can never hold up a gun.
If the plan changed ashore as well, the tablet blocks the editor and offers three answers with the platform’s own words: keep mine, take theirs, or keep both — which renames the copy rather than merging two routes.
13 Sailing through midnight
A long race crosses midnight, and four rules are worth knowing before it happens rather than at 0200.
- The loaded route survives midnight. It has no day at all — an offshore race crosses several by nature. The route is also re-sent to the platform once per UTC day, so the second night of a long race has a course in its replay window.
- A windward/leeward marks course and the pinged line do not. Both expire at the venue’s midnight, and only a forward crossing rolls them.
- A held or what-if wind expires at the venue’s midnight. A rig correction — twist and gradient — does not, because a rig does not expire.
- Turn the alarm sound off for the watch below. The master SOUND switch in SETTINGS → ALARMS leaves every banner exactly as it is and stops the tablet making a noise. The DAY/NIGHT palette is on the status strip, and the app starts on NIGHT.
There is no watch schedule in the app, and no crew roster. The nearest thing to a watch record is the navigator’s log, which is what it is for.
14 After the race
The day is in the debrief like any other import, as one live row per boat per UTC day. Guns, warnings, recalls, line pings, sail changes and the finish arrive as events, so the player timeline is marked up before anybody touches it.
The course you sailed is in there with it. The tablet pushes the whole course whenever it changes — a waypoint nudged, one skipped, the route cleared — as a snapshot rather than a running edit, so what the platform holds is always a course that existed rather than a sum of changes. Compare it with the plan you saved: they are two documents on purpose.
The navigator’s log written at sea arrives with it. Read the whole fleet’s logs, newest first, on Navigation → Notes.
A race with no gun still becomes a race: derivation produces the day’s starts, and a window nobody started can be added by hand on the regatta page. How a race derives itself has the rules.
15 Where to go next
- Race plans — the plan editor in full: every field, the official chart layer, and the clash between two editors.
- Navigation — the section itself, tab by tab, including the chart tools, the marks database and the handicap calculator.
- Weather — which models the platform fetches for a boat, the corridor margin, and what each model cannot do.
- Your own GRIB, and weather at sea — importing a forecast you already have, and refreshing the weather once the boat has left.
- Running a windward/leeward race day — the pre-start in full, which is the same on both kinds of day.