LazySurfer combines real NOAA buoy data with a custom deep-learning model trained on hundreds of thousands of real surf sessions from tens of thousands of surfers. The model learns which wave, wind, and tide combinations correspond to sessions you and other users rated highly, then predicts your rating for any current or forecast reading at your favorite spots. When the forecast matches a session you loved, you get an alert.
After a surf, tap Add Session, pick the spot, and rate the session from 1 to 10. LazySurfer automatically pulls the NOAA buoy reading, wind data, and tide data for that spot and time. You can edit sessions up to 45 days in the past.
LazySurfer pulls wave height, period, direction, wind speed, wind direction, and tide height directly from NOAA NDBC buoys and NWS wind stations — for example, NDBC station 46232 at Point Loma for San Diego spots, or NDBC station 46042 in Monterey Bay for central California. These are the same raw sources professional forecasters use, not resold commercial forecasts.
For any current or forecast reading, LazySurfer computes a 0 to 10 Similarity Score against each logged session. It compares wave height, period, direction, wind speed, wind direction, tide height, and tide direction. A 10/10 means the reading is within tight tolerances of a session you rated highly.
“Such a clever approach! You simply tag your favorite sessions and LazySurfer analyzes all the data (wind, tide, swell, etc) to alert you when similar conditions are coming!” — Christopher Robbins, Google Play Store review
LazySurfer's prediction service runs a PyTorch deep neural network with per-user embeddings, retrained every Monday on real logged surf sessions from the LazySurfer community. The model takes 25+ inputs — wave height, period, direction, wind speed and direction, tide height, swell energy, time of day, spot geohash, your user embedding — and outputs the 1-to-5 rating you'd give the spot. On validation: 90.3% exact-match accuracy, 97.6% within one star, mean absolute error 0.13 stars.
When the 7-day forecast shows conditions that match a session you rated highly, LazySurfer sends a push notification. The more sessions you log, the better the model gets at predicting when your favorite spots will fire.
Most surf apps show you a forecast derived from weather models, smoothed out, aggregated, and branded. LazySurfer pulls directly from the NOAA National Data Buoy Center network — the same buoy readings the National Weather Service uses. For East Coast and West Coast US, Hawaii, Gulf, and a growing portion of global coastlines, this means readings are within minutes of real conditions. The 16-day GFS-based forecast is applied on top for future windows.
A session that's 3/10 for a longboarder on 6-foot surf can be 9/10 for a shortboarder chasing barrels. General surf ratings ignore this. By training on your rated sessions, LazySurfer's model learns your preferences — board, style, crowd tolerance, wind sensitivity — without asking you to specify them. It learns from what you actually liked.
Most "personalized" surf apps use a hand-coded similarity score: how close are today's wave height, period, direction, wind, and tide to your past sessions? That works for the easy case, but breaks down on non-obvious interactions — e.g., the way your rating drops on a specific tide angle only when the wind is offshore and the swell is a long-period groundswell. A deep neural network learns those interactions automatically from data, no hand-coding required. The 256-dimensional user embedding captures preferences you'd never think to encode (board choice patterns, time-of-day biases, crowd tolerance proxies). The model gets sharper every week as more sessions get logged.
The training pipeline runs every Monday via GitHub Actions: it pulls the latest sessions and ratings from the LazySurfer community, retrains the PyTorch model, validates against a held-out test split, and only deploys if validation accuracy stays above 80%. The current best model hits 90.3% exact-match on a 5-class rating problem — harder than the typical "good / bad" surf classification most competitors solve. The training set grows every week as more sessions get logged, and the model gets sharper with it.
Session logging works without a network — common at remote breaks. The app caches buoy readings and forecast windows so you can check the next 7 days without signal. The prediction service is cloud-hosted (Azure), with cached results sufficient for short offline windows. LazySurfer only needs the internet to fetch fresh buoy data and to request a new prediction for a forecast window you haven't asked about yet.