Rowing

Distance0 m
Split /500 m--:--.-
Rate0.0
Power0 W
Place-
Elapsed0:00.0

Rowing — what this is, where every number came from, and what it gets wrong

An independent browser reimplementation of flat-water rowing. Rowing is a sport, not a game somebody published, so there is no original author, year or publisher to credit for a design. What there is to credit is the rules and the physics, and all of it is below with a source. This app is not affiliated with, endorsed by, or connected to World Rowing, any national federation, any boat or oar manufacturer, any club, or any athlete or researcher named here.

The mechanism this is built around

A racing shell weighs less than its crew. When the crew slides toward the stern on the recovery, the hull is pushed the other way, and it speeds up with every blade out of the water. The engine's hull equation is one line:

M · ahull  =  Fblade − Fdrag(v) − mcrew · s”

where s is the crew's centre of mass measured along the hull. Nothing tells the hull when to be fastest. That is an output, and the instrument panel plots it live.

What this gets wrong — the limits, stated plainly

Where every number came from

Every model constant in js/rowing.js carries exactly one of five tags, and the engine exports the ledger so it can be counted by machine rather than by hand. These counts are re-derived from that ledger by the page harness and by this page itself when it loads; if they drift, the harness fails.

TagCountMeaning
DOCUMENTED36stated in a rulebook or official specification
MEASURED10a published experimental measurement
DERIVED5computed from other tagged constants; the derivation is in the comment
CALIBRATED18chosen so the model reproduces a published outcome, which is named
RECONSTRUCTED25this app's own choice; nobody published it
Total model constants94sourced (documented or measured): 46 of 94

Separately, the boat table carries 66 published values used verbatim — six per class for eleven classes: World Rowing's minimum boat weight, and Kleshnev's crew mass, 2 km ergometer score, racing stroke rate, world best time and prognostic time. Counting those, 112 of 160 numbers in this app come from a source you can open.

Of the 18 CALIBRATED constants, 11 are the per-class oar arcs described above. The other seven are the blade's force coefficient (fitted to Kleshnev's 78.5 % single-scull blade efficiency), the crew's centre-of-mass excursion (fitted to his 93.8 % boat efficiency), the drag constant (one number, fitted across all eleven prognostic times at once), the sweep-to-scull arc ratio, and three shape numbers for the oar's path through the drive.

Sources

Two things the sources do not say, and one they say wrongly

Controls

Space or a touch on the water: hold for the drive, release at the finish. Wait for the slide before the next catch — rushing it costs you speed, and the instrument panel will show you why. ← and → steer; on a touch screen, touch and hold the left or right edge of the water. Esc or the Pause button pauses. V or the View button switches to the side view. L opens the laboratory.

Technology

Hand-written WebGL2. No framework, no library, no CDN, no web font, no analytics, and no network request of any kind. The icons and the social card are drawn from the engine's own geometry. Settings and personal bests are kept in this browser's local storage and nowhere else.