Sailing Exodus
Project · AI

An AI that still works
when the internet doesn't.

Three thousand miles from a dealer, "let me look that up online" is not a plan. So there's a language model living on this boat that has read every manual aboard, watches every instrument, and needs no connection at all.

Everything an AI does gets checked by a human

Nothing on this boat is fully autonomous. The AI is given a free hand to build, write and propose. It is never given a free hand to execute. Every script, every setting and every conclusion gets read by a person before it does anything that matters.

AI gets things wrong. It also gets stubborn. It will state something confidently, be corrected, and drift back to the same wrong answer twenty minutes later. On a boat that is not a quirk, it is a hazard — so assume it is wrong until you have verified it yourself.

Never let one compute a route, a course to steer, or chart data. That is what proper routing software and your own judgement are for.

Offline, online, and the bit in between

Offline, online, and a voice for both

Offline — Ollama + Qwen

Ollama is the engine that runs a language model on your own hardware. Qwen is the model it runs. Both free, both open. No account, no subscription, and no internet. Mid-ocean it works exactly as well as it does at the dock.

A terminal running ollama list on the boat's laptop, showing the installed models including qwen3

Ollama on the boat's laptop. The real output of ollama list: qwen3 is Q.

The Q chat window on the Pi: the boat's local AI in offline mode, with attach, camera, microphone and speaker buttons

Q, the Qwen model, in its chat window on the Pi, with the microphone and speaker buttons. The conversation is cropped out.

Online — Claude Code

The teacher. When there's a connection, Claude Code does the heavy thinking: writing the scripts, working out the protocols, building the tools. Then that work stays on the boat as files and configuration that run without it.

Talking to it — the mic and speaker

There is a microphone and speaker button in the nav of the boat's own pages. That is how we talk to Q (the offline Qwen model) and to Claude: say “hey Q” or “hey Claude”, ask the question, and hear the answer.

Whisper turns what we say into text, and Piper turns the answer back into speech. Both open source, both running aboard, so the recording of our voice never leaves the boat. Only the typed question goes out, and only when we ask Claude. The answer is also typed on screen as it is spoken.

Audio goes in, OpenAI Whisper turns it into a transcript

Whisper: audio in, a transcript out.

Piper: text turned into speech, a fast local neural text to speech engine

Piper: text in, speech out, all local.

Honest limits: Q's answers can take a minute or two, and Q needs the laptop switched on to think. Claude needs the internet.

The important bit is the direction of travel: the clever online thing teaches the local thing, and then leaves. When Starlink drops — and it does — what's left aboard is still useful on its own.

Why it doesn't run on the Raspberry Pi

The honest hardware answer

A Pi is a wonderful thing. It cannot run a useful language model.

Language models are limited by memory bandwidth more than anything else. The model has to be read out of memory for every single token it produces, so what matters is how fast you can move gigabytes around. A Raspberry Pi simply doesn't have that, and a model small enough to fit is too small to be worth asking.

So the jobs are split by what each machine is good at. The Pi stays on permanently — it's low power, reliable, and it's the one holding the instrument data. The PC does the thinking, and only when it's needed.

Everything runs headless — no screen, no keyboard. Phone, laptop, tablet, the helm display: any of them can reach it over the boat's own private network. One service, many screens, nothing duplicated.

On security, deliberately vague. We're not publishing the network layout, addresses, ports or access method. If you're building something like this: keep it on a private overlay network, no port forwarding, keys rather than passwords, and assume anything you expose to the open internet will be found within the hour.

Teaching it this boat

The part that makes it actually useful

A general-purpose model knows about sailing. It knows nothing about Exodus.

So it's being fed everything specific to this boat. Every manual scanned or downloaded as a PDF. Every wiring diagram. Photographs of every label, plate and serial number. Receipts, install dates, part numbers, what was replaced and when.

That turns a vague question into a precise answer. Not "check your impeller" but which impeller, which part number, when it was last changed, and what the torque spec is — because it has read the actual manual for the actual pump on this boat.

And the reference library

On top of the boat's own paperwork, it's being loaded with the books you'd want and never have to hand:

The medical books

Two published references sit behind the boat's offshore medical file. They are the authorities; the file is only a memory aid built on top of them.

International Medical Guide for Ships

World Health Organization · 3rd edition, 2007

The one the maritime world is built around. Written for the designated first-aid provider aboard a ship — how to diagnose, treat and prevent the health problems of seafarers. It is also what the Maritime Labour Convention means when it requires every ship to carry a medical guide.

It's a free PDF. The WHO publishes it in full, at no charge. Download it and keep a copy on the boat — it is the one we load into the offline AI.

Free PDF from the WHO →

Marine Medicine: A Comprehensive Guide

Michael Jacobs & Eric Weiss · 2nd edition

Written by emergency physicians for cruising sailors rather than ship's officers. Decision trees, symptom charts and step-by-step treatment using what a cruising boat actually carries. The more practical read of the two for a small crew.

A memory aid, not a doctor

The AI is not a doctor, and nothing it says is a diagnosis. It holds a condensed reference built from those books and from a doctor-vetted kit — its job is to remind you what the book says, fast, in the middle of the night, not to replace the book.

Whenever there is any signal at all, call a doctor or a marine telemedicine service first. That always beats a local model.

The goal is a model that is custom tailored to one boat — genuinely expert on this hull, this engine, this rig and this electrical system, rather than broadly knowledgeable about boats in general.

The genius and the student

The part that is easy to get backwards

The cloud AI is the genius. The local one is the student. Everything that matters about this setup is in how the first teaches the second.

Offline, the boat has Qwen — smaller, slower, and much less clever than the large model that helped build all of this. It can't work out a protocol from scratch or write a complicated program. What it can do, if it is set up properly, is pick up a tool that somebody cleverer already made and use it correctly.

So the tools get written once, by the clever one

Every script, logger and sensor reader on the boat was written with Claude Code while there was a connection. The point is that each one is then handed to Qwen as something it can simply call, with no connection, no cleverness required.

For instance, the boat's own record of what the local model can already do includes:

That is the whole trick. A small model that has to work out the answer will get it wrong. A small model that has to call a tool that already knows will get it right.

It is a slow process, and that's the honest part

Nothing is trusted until it has been tested. Every single thing built with the clever model has to be proofed, then run through the student, then tested again to see whether the student actually uses it properly. Often it doesn't, the first time.

Early on, the local model got things wrong when it looked them up itself — it gave the wrong part for an exhaust elbow and for a water pump. The fix was never "make it cleverer". It was to give it a tool that holds the correct answer and make it use that instead.

It is slow, and it is also doable, and it is worth it. The end state is a boat that still has a working expert on board when the internet is gone — one that has the right tools in its hand, because the clever one put them there while it still could.

It is still the student. Anything it tells you about something that matters — navigation, weather, medicine, anything that can hurt you — gets checked against a real source by a human. A tool that gives the right answer is not the same as a model that understands the question.

Watching the instruments

Anomaly detection, written as we go

Because everything on the boat already lands in Signal K, the AI has a single place to read from. Depth, wind, position, every battery cell, engine temperatures, tank levels, charger states — all one stream.

On top of that sit scripts and recorders, written with Claude Code and left running on the boat, looking for the things that matter: a reading that has drifted, a trend going the wrong way, a value that stopped arriving. A sensor that goes silent is a problem. Most systems never notice.

When something looks wrong it comes through on Telegram, wherever we are. And because the local model is the one doing the watching, that keeps working with no connection at all.

What it costs

Less than you'd think

Ollama is free. Qwen is free. Signal K, OpenPlotter and Node-RED are free. Telegram is free. The only real costs are the hardware you already need aboard and — when you want the teacher — a Claude subscription.

For a system that has read every manual on your boat and never stops watching, that is a very good trade.

← All projects Links to all of it