Open Source · Web Bluetooth · No Account Required

Row on scenic water routes
in your living room

Row scenic water routes in 3D — right in your browser. Pair a Concept2 PM5 or an FTMS rower when you have one; the Willowbrook demo row needs neither. Open-source, no account, no subscription.

⚡ Try the demo No sign-in. No hardware. Just row.
VirtualRow 3D rowing scene at golden hour — single scull on the Willowbrook River with warm backlight, captured on the extra-high graphics tier

Professional rowing experience,
no gym required

From real Bluetooth hardware integration to rownative.icu route imports, VirtualRow focuses on route selection and live on-water activity.

Immersive 3D Visualization

Real-time Three.js rowing scene with animated boat, rower, and oars. Dynamic scenery fades when it would obscure your view.

Three.js React Three Fiber Dynamic camera

Scenic Water Routes

Row the bundled Willowbrook River (~5 km), or bring in a real-world course from the rownative.icu catalogue. Here is the whole flow:

  1. Sign in with intervals.icu. No rownative.icu account is needed, and there is nothing to link.
  2. Find a course. Search the rownative.icu catalogue by name from inside VirtualRow, or paste a course ID or a https://rownative.icu/… course link.
  3. Share it. A course opens directly from a link too: ?rownativeCourseId=<id>.
  4. Row it. The course joins the routes list beside the Willowbrook demo, badged rownative.icu with its Established or Provisional status, plus a gates only badge when the course is defined by its start and finish gates rather than a surveyed line.
Willowbrook demo Catalogue search Paste ID or link Shareable deep link

Compatible rowers (PM5 + FTMS)

Pair a Concept2 PM5 or an FTMS-compatible rower over Web Bluetooth — pick which one you own in the device panel. Live pace, distance, power, stroke rate, calories and splits, no bridge device.

Web Bluetooth API Concept2 PM5 FTMS Rower Real-time metrics

Today's workout from intervals.icu

Sign in with intervals.icu and load the structured workout your coach (or your own plan) has prescribed for today — VirtualRow searches a ±14-day window. A block panel runs the warmup, intervals and recovery while prescribed-vs-actual tiles show pace, power and heart rate against target.

intervals.icu Structured workouts Live block panel Prescribed vs actual

One-click upload to intervals.icu

When you finish a row, the Session Summary offers a single-click FIT upload straight to your intervals.icu activities. Nothing syncs in the background without you — you see every file before it leaves the browser.

intervals.icu FIT encoder User-initiated

Race yourself

Pick any previous session on the same route and watch it row beside you as a ghost boat. A verdict at the finish line says by how much you beat (or missed) your earlier self. It's a solo time-trial — no live multiplayer, no accounts, no servers.

Ghost boat Same-route replay End-of-row verdict

Scales to your hardware

A quick GPU probe picks one of five quality tiers — basic, low, medium, high or extra-high — the first time you row, so a typical laptop stays smooth and a desktop GPU gets the full scene. You can override the pick from the debug panel if the automatic choice is not what you want.

basic low medium high extra-high

Heart Rate Monitoring

Pair any standard BLE heart rate monitor for live BPM plus average/max heart rate session stats.

BLE HRM Live chart Avg/Max stats

Live Performance Metrics

Compact metrics overlay, full performance graphs, and per-stroke data. Catch yourself going off-target with instant visual pacing feedback.

Mini metrics Performance chart Target zones

See the core flow

Pick your route, start rowing, and track your activity in real-time.

Up and rowing in 4 steps

1

Open the app

Head to the VirtualRow app in a Chromium browser — nothing to install, no account to make.

2

Connect your rower

Pair a Concept2 PM5 or an FTMS-compatible rower over Web Bluetooth from the device panel. Prefer to just look around? The Willowbrook demo rows without any hardware at all.

3

Pick a Route

Select Willowbrook River for a scenic 5 km demo, or search the rownative.icu catalogue by name — or paste a course ID or link — to import a real-world course.

4

Row!

Start rowing — your boat moves with your real output while the live activity screen tracks pace, distance, and heart rate.

Modern web technologies

No native apps, no plugins, no subscriptions — just open-source web standards running in a Chromium browser tab.

React 19 TypeScript Vite 7 Three.js React Three Fiber Web Bluetooth API Leaflet Vitest Playwright

Ready to row?

VirtualRow is MIT-licensed and actively developed. Fork it, contribute, or just enjoy the ride.

View on GitHub ⚡ Try Now Read the Docs