Skip to content

Offline Navigator Binder

Self-contained file://-compatible copy of the navigator-critical pages, for race-day use offshore with no internet connection. Built once pre-race, copied to nav laptop or phone, opened in any browser.

Why it exists: The production site at crew.lupodimare.site is behind Cloudflare Access — offshore = no access. Iridium/StarLink too slow for live site (some pages >10 MB). Race-day decisions can't depend on connectivity.


How to build it

.venv/bin/python scripts/build_navigator_binder.py

Or zip-bundle for easy transfer:

.venv/bin/python scripts/build_navigator_binder.py --zip

Output:

output/lupo_navigator_binder/        ← directory bundle (~25 MB, 86 pages, 29 maps)
output/lupo_navigator_binder.zip     ← zipped version (~6 MB)

The build: runs mkdocs build against mkdocs.binder.yml with use_directory_urls: false so file:// works; disables Google Fonts; curates navigator-focused subset; post-processes Folium maps to rewrite cross-links; drops README.txt at binder root.


How to use it on race day

  1. Pre-race: rebuild the binder during race week. Copy output/lupo_navigator_binder/ (whole folder) or zip to: nav-station laptop, navigator's phone, any backup device
  2. Offshore: open index.html in any browser. No internet required. Maps stay interactive.
  3. On watch: 10 onboard cards are the primary reference. Stream-corridor decision and winner-route maps have historical data for the crossing.
  4. Print backup: every page prints cleanly via File → Print. Use Save as PDF.

Crew phones (everyone, not just the navigator)

The binder folder is the navigator's offline copy — it browses best on a laptop; file:// relative links are unreliable in iOS Files/Safari. For the other ~9 crew, make a one-time PDF pack instead — it opens identically on every phone, prints, and laminates:

  1. On crew.lupodimare.site (or the local build), open each of the 10 onboard cards + MOB card + emergency quick reference + comms plan + decoder.
  2. File → Print → Save as PDF for each (the print stylesheet fits each card to one page). Or combine into a single PDF with Preview/Acrobat.
  3. AirDrop / message the pack to every crew member before leaving the dock, and add it to the T-1 checklist.

This is the realistic offline path for the whole crew — no app, no connectivity, no file:// quirks.


Verify before departure (offline QA)

Before you rely on the binder at sea, confirm the build works offline — catch a broken build on shore, not at the nav station with no internet:

  1. Open output/lupo_navigator_binder/index.html in a browser with Wi-Fi off.
  2. Click through all 10 onboard cards — confirm each loads.
  3. Open at least one Folium map (e.g. a Stream-corridor map) — confirm markers, tracks, and threat zones render (the tile background may be blank offline; that is expected).
  4. Use Ctrl/Cmd-F to search a known term (e.g. "north wall") — confirm in-page search works.
  5. If any step fails, rebuild with scripts/build_navigator_binder.py and re-test before departure.

What's in the binder

  • Navigator workflow: walkthrough, model→tactic synthesis
  • Boat: Lupo specs, sail inventory, polar analysis, crossover notes, crew orientation, race-week prep schedule
  • Safety & Comms: MOB card, emergency quick reference, communications plan, watch roster
  • Playbooks: watch captain, navigator, driver, trim, pit, bow
  • Routing — historical: winner route summary (with annotated maps), routing tactic catalog, historical race database
  • Routing — Gulf Stream: framework, Stream-corridor decision, crossing strategies, seasonal baseline, WCE guide, CCR guide, RTOFS interpretation
  • Routing — forecasts: weather analog framework, forecast analog matcher, pre-race data workflow, T-10 brief template, if-then playbook
  • Onboard cards: all 10
  • Debrief & rules: routing decision log, debrief template, rule compliance checklist
  • Reference: decoder (all codes), source catalog, source classification

What's NOT in the binder (intentionally dropped)

  • Routing-run logs and sensitivity tables (08_routing_runs/) — pre-race planning artifacts
  • Per-day project management files (PROJECT_PLAN.md, IMPROVEMENT_LOG.md, historical_fleet_tracks.md)
  • Polar degradation scenarios — embedded in polar analysis already

If you need any of these offshore: add page path to the nav: section of mkdocs.binder.yml and rebuild.


Maintenance

  • Before race week: rebuild; delete old output/lupo_navigator_binder/ and re-run the script (idempotent)
  • When new content added: add to the nav: section of mkdocs.binder.yml if navigator-critical, then rebuild
  • The binder is gitignored: output/ is in .gitignore; the script + config + this page are committed

Implementation notes

  • No external network dependencies. Material theme configured with font: false. SVG namespace declarations are XML URIs, not network fetches.
  • Path compatibility. use_directory_urls: false keeps pages as .html files for file:// compatibility.
  • Maps offline. Folium maps bundle Leaflet JS. Map tile fetches use CartoDB Positron CDN — tiles WILL fail offline but markers, tracks, and threat zones render against a blank background.
  • Build script: scripts/build_navigator_binder.py — single-file, no external dependencies beyond mkdocs+Material.

Last build: run .venv/bin/python scripts/build_navigator_binder.py to refresh.

PRE-RACE RESEARCH — NOT race-period routing advice.