Open Source · Web Bluetooth · No Account Required

Row on scenic water routes
in your living room

VirtualRow connects your Concept2 PM5 to immersive 3D river environments via Bluetooth — structured workouts, live metrics, and zero subscription fees.

Get Started on GitHub ⚡ Try Now See Features
VirtualRow 3D rowing scene — boat on a winding river with dynamic scenery

Professional rowing experience,
no gym required

From real Bluetooth hardware integration to structured interval workouts, VirtualRow delivers training-grade features directly in your browser.

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 Willowbrook River (~5 km) or import your own GPX and GeoJSON routes. Progress syncs with your PM5 distance in real-time.

GPX import GeoJSON import Leaflet minimap

Concept2 PM5 Integration

Connects directly to your PM5 monitor over Web Bluetooth. Live pace, distance, power, stroke rate, and calories — all without a bridge device.

Web Bluetooth API Real-time metrics PM5 Simulator

Structured Workout Generator

Pyramid intervals, steady-state, and custom templates. Import plans directly from intervals.icu with real-time segment progress overlays.

intervals.icu import Pacing feedback HR zones

Heart Rate Monitoring

Pair any standard BLE heart rate monitor for live BPM, zone tracking, HR charts, and average/max per session statistics.

BLE HRM Zone analysis Live chart

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 every screen

From choosing your route to completing a structured interval set, every step of a VirtualRow session is designed around you.

Up and rowing in 4 steps

1

Install & Run

Clone the repo, run npm install then npm run dev. Open Chrome at localhost:5173.

2

Connect Your PM5

Click Connect PM5, grant Bluetooth access, and pair your Concept2 monitor. Use the built-in simulator if your erg isn't nearby.

3

Pick a Route

Select Willowbrook River for a scenic 5 km row, or import any GPX track. The 3D world loads instantly.

4

Row!

Start rowing — your boat moves with your real output. Optional: load a structured workout from intervals.icu for guided training.

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