Drag the sliders — watch the velocity trace and cost-of-transport respond
This 2D side-view simulator models a single swimmer as a point mass driven by a genuine thrust-versus-quadratic-drag equation of motion, m·dv/dt = F_thrust(t) − ½·ρ·Cd·A·v². Instead of comparing different strokes, it isolates one variable: how smoothly thrust is spread across the stroke cycle. Because drag rises with the square of velocity, a peaky, all-at-once pull wastes more of the same average power to drag than a stroke that applies force continuously — the live velocity trace, average speed and cost-of-transport readouts make that inefficiency directly visible as you move the stroke-rate, smoothness and mass sliders.