Everything in Erg3D

Shipping today: AI opponent racing, personal-best ghost replays, ambient ghost rowers, six weather presets per world, hop-on-and-claim-later kiosk mode, crash recovery. Next up: live multiplayer, Strava sync, FIT file export, heart rate strap pairing, more sports.

AI opponents you can dial in

Pick how many bots, pick how fast. Goes from Easy up to World Record pace. The bots pace properly per distance — 500m is all-out, 2K does the fast-start, settle, kick thing, 5K+ runs even with a build.

Race your own personal best

Your fastest session for that distance replays as a ghost boat in the field. Live gap readout per split, so you know exactly how far off you are at any moment.

Free Row with ghost rowers around you

Solo Free Row spawns 3 to 16 ambient ghost rowers up and down the course at recreational paces. Mostly so it doesn't feel like rowing on an empty lake.

End-of-session results

Pace-per-500m graph, a finder for comparable past sessions, opponent count badges, share button. Beat your previous best and the banner goes gold.

Self-assessment built in

A 5-minute Quick Check estimates your Threshold Power right on the device. No age, no weight, no profile inputs — just the data your erg already streams. The number drives your training zones and the race-setup pace band, free for everyone.

Two worlds, both free

Mountain lake and marshland river. Neither is paywalled. Terrain is procedural — proper shoreline vegetation, hills, bays. The lakes are sized for 80+ minute sessions without looping back on yourself.

Six weather presets per world

Calm, choppy, foggy, storm, sunset, night. Weather changes the water, the wind, the light, and the ambient audio all at once. Sunset on the lake doesn't feel like fog on the river.

Lighting and water that react

Time-of-day lighting, real shadows, reflections. Three graphics tiers — the app picks one based on your graphics card the first time it launches, then you can override it.

Auto-rotate camera

On by default for solo sessions: cycles five camera angles every 15 seconds so the view never goes stale. Or just lock to one — follow, top, side, cinematic, or lookback.

Concept2 RowErg, through the PM5 monitor

Native Bluetooth to Concept2's PM5 monitor. Pace, power, stroke rate, distance, drag factor all stream live. The connection survives the monitor going to sleep and waking back up without you re-pairing.

Skillrow and any FTMS rower

We wired in FTMS — the open Bluetooth profile for fitness equipment — so the Technogym Skillrow (and any other FTMS-compliant rower) just shows up. More brands as we test them.

Live on-screen stats

Pace per 500m, watts, stroke rate, distance, time, heart rate, gap to opponents. The overlay sits in the corners and stays out of the way.

Pairing without the faff

Turn Bluetooth on, launch the app, the rower shows up. No dongles, no service codes to type in.

Every row recorded, stroke by stroke

Timestamp, distance, pace, power, stroke rate, heart rate, all captured per stroke. Stored on the device first, no account needed.

Personal bests, tracked for you

Your personal best on 500m, 1K, 2K, 5K, and 6K is detected automatically. Each one shows up on results, history, and share cards, and you can race any of them later as a ghost boat in the field — useful when a real opponent isn't around but you still want a target on the water with you.

Share card for stories

A 1080 by 1920 image: screenshot of the 3D scene, the numbers that matter, and a QR code. Rows that beat a personal best ship with the gold banner.

Hop on, row, claim later

Use a gym rowing machine without an account, finish your session, walk away. Scan the QR code on the share card later and that session lands in your profile.

Crash recovery

If Android kills the app to free memory, or the device reboots mid-row, or you close the app by accident, the partial session is finalised on next launch and shows up in your history. We hated losing sessions ourselves.

54 rowers

Each one is its own 3D model and animation. All available from the start, no unlocks.

Boats, worlds, weather, cameras

Set them per session, or let auto-rotate cycle the cameras for you.

More sports later

Rowing is what ships in v1. The physics underneath is sport-agnostic, so kayak, canoe, stand-up paddleboard (SUP), and ski are scaffolded and waiting their turn.

Windows, macOS, Android

Native build for Windows 10+, macOS 12+, and Android tablets. iOS is in the queue.

Free tier is the real product

Solo and AI racing, every world, every character, Bluetooth pairing, the full on-screen stats overlay, full history, personal bests. Free, no trial countdown, no card.

Bluetooth 4.0 or newer

Whatever radio is already in your laptop, tablet, or phone is fine. No dongles.

Local-first

Core gameplay works fully offline. Sign-in is optional, always: sessions, personal bests, and share cards are all generated on the device before anything touches a server.

Live multiplayer

Race head-to-head against friends or strangers, with the server keeping honest time. The race rooms already run on our infrastructure; the join screen is what we're finishing.

Strava auto-sync

Connect Strava once and every future session uploads on its own. The code is built, sitting behind a feature gate while we finish testing.

Concept2 Logbook upload

On Concept2 hardware, rows will upload to the official Concept2 Logbook automatically. We've already built the sign-in flow — the upload handler is the last bit.

FIT file export

Pull any session out as a FIT file for TrainingPeaks, Intervals.icu, Garmin Connect, or whatever else you use.

Heart rate strap pairing

Polar H10, Garmin chest straps, any other Bluetooth heart rate monitor. Heart rate flows into the on-screen stats and into the session record.

More sports

We've already scaffolded kayak, canoe, stand-up paddleboard, and ski in the catalog. They need physics tuning and proper content before they ship.

Leaderboards and friend challenges

Compete on global rankings, friends-only rankings, or in asynchronous head-to-head. Lined up to ship around the multiplayer launch window.