Random-message apps already exist: Slowly delays letters by distance, and old "message in a bottle" apps hand your note to a random stranger instantly. None of them let physics decide. Here each bottle is a particle moved by the real, measured ocean currents and winds of the weeks it is at sea, so where it lands and how long it takes is earned, not assigned. The wait is the product, and it teaches how the ocean actually moves.
The data it runs on
Currents: NOAA OSCAR surface currents (1/3 degree grid, updated about every 5 days, free from NASA PO.DAAC) and the Copernicus Marine global analysis and forecast (1/12 degree, daily, free with an account).
Wind push: a floating bottle also gets pushed by wind ("windage", about 1 to 3% of wind speed). Free GFS winds from NOAA.
Access: a nightly job downloads the newest current fields as NetCDF, and a Lagrangian particle tracker (OceanParcels, open source Python) steps every bottle forward one day.
Limits and fallback: grids are coarser than harbours, so the first and last few kilometres use a coastline model; OSCAR lags real time by days, so we use the Copernicus forecast for "today" and swap in the analysis later. If a feed fails, bottles hold position and the app says "the sea is resting today".
1. The mission
Make the ocean feel alive and connected. Every message you send is carried by the same water that moves heat around the planet, and it lands with a real person on a real coast, months later, on the ocean's schedule.
2. Why people can't resist it
Anticipation. A bottle that might land anywhere in 3 to 10 months is a daily reason to check in.
Fate, not an algorithm. "The sea chose you" is far more romantic than a matching system.
A collection that moves. Your fleet of bottles crosses oceans while you sleep. Every morning, a tide report.
3. How it works for real
Write and throw: message, coast, glass colour. Text moderation with a fast cheap model (Gemini Flash or DeepSeek via OpenRouter) before the bottle enters the sea.
Drift: OceanParcels advects each bottle daily with Copernicus currents plus windage and a little random spread, so every bottle is different.
Narrate: when a bottle crosses a named current, an island, a ridge or a storm track, a frontier LLM (Claude or GPT) writes a one-line log entry from a fact table, never inventing places.
Beach it: when a bottle reaches the coast, we pick a consenting user within 30 km of the landfall point who has "beachcombing" switched on. No user there? It waits on the beach until someone joins.
Reply: the finder reads it, can translate it (LLM translation), and throws a reply from their own coast.
4. Cost per use
Simulation runs on a cheap server: one small VM steps a million bottles a night for about $1. Moderation and log lines cost under $0.002 per bottle per month.
Free: one bottle at sea at a time, standard glass. Deckhand ($2 a month): five bottles at once, coloured glass, a full drift replay, and a printed map of every voyage at year end.
5. Growth loop
Every landed bottle needs a finder on that coast. "A bottle is about to land near Fortaleza, be the one who finds it" is a shareable invite for coastal towns. Finders throw replies, which need more finders. Each morning a beachcombing feed shows the bottles drifting past your coast, so people keep several bottles afloat and walk their beach daily; every find and reply raises a finder reputation that routes more bottles their way.
6. Risks and guardrails
No real litter: it is all digital. The app never encourages real glass in the sea, and links to beach clean-ups.
Safety: no contact details in messages (filtered), finders are adults only, and replies go through the app.
Abuse: every message is moderated before launch, and a finder can sink a bottle with one tap.
Honesty: drift is a model of real currents, not a tracked object. We say "simulated with real current data".
7. MVP build order
Write screen plus 4 launch coasts and pre-computed drift tracks from last year's currents.
Map with daily position, day counter and a log.
Landfall: assign to a waiting finder in that region; reply throws a new bottle.