Time: 0.00 s
Pitch (vs Horizon): 0.0°
AoA (vs Water flow) The angle of the wing relative to the oncoming water flow (not the horizon).
• Positive AoA generates Lift.
• Too high (>12°) causes Drag and Stalling.
• In a pump, plunging down increases your AoA, while rising up decreases it. : 0.0°
Instantaneous Power: 0 W
Average Power: 0 W
Normalized Power: 0 W
Power/Weight: 0.0 W/kg
How to Use the App
This tool is a theoretical simulator designed to help you visualize and optimize the physics of pump foiling.
Set Your Gear: Scroll down to the bottom sections to input your Rider Mass, Wing Area, and Setup Mass etc.
Adjust the Pump: Use the sliders in the middle to change the pumping motion. The most critical controls are:
- Frequency: How fast you are pumping (strokes per minute).
- Amplitude: How big your up-and-down motion is (heave).
- Front Wing Pitch: This sets the average angle of your foil. Increasing this gives you more lift (keeping you flying at lower speeds), but significantly increases drag. You need to find the sweet spot where you generate enough lift to stay up without stalling.
- Phase Shift: This controls the timing between your vertical motion and the pitching of the board.
- 90° (Standard): You pitch the nose down exactly as you start pushing down.
- Higher (>90°): You pitch the nose down early (before you start dropping), which is often required for high-efficiency pumping to "get over the hump."
Analyze the Data: Watch the Live Telemetry at the top. Your goal is to keep Average Lift "Balanced" (green) while keeping Average Power as low as possible.
Auto-Tune: If you are unsure, click "Find Settings Magically" to let the app mathematically calculate the most viable technique for your chosen speed. It might be that the solver is not able to find a solution if too many parameters are "locked" or the setup is unsuitable for a given speed.
Physics Model
The simulation uses a custom quasi-steady solver that iterates through time steps (dt) to calculate forces and rider power.
Simplifications
- Forces are calculated for the front wing, rear stabilizer, and mast
- The indication bars for average lift and thrust indicate whether the pumping motion is actually viable for the selected speed. If they're not balanced / on target, the selected parameters are not in steady state.
- The stickfigure is only there for your entertainment - the trajectory of the foil is defined by the frequency and amplitude input.
1. Kinematics (Motion)
The rider's vertical motion (Heave) and the board's angle (Pitch) are driven by sinusoidal functions, linked by a configurable Phase Shift.
- Frequency: ω = 2πf
- Vertical Position (z): z(t) = A cos(ωt)
- Vertical Velocity (vz): vz(t) = -A ω sin(ωt)
- Vertical Acceleration (az): az(t) = -A ω2 cos(ωt)
- Pitch Angle (θ): θ(t) = θtrim + θamp cos(ωt + φ)
(Where φ is the Phase Shift) - Physical Execution: The rider achieves this by shifting their weight (Center of Pressure) forward or backward relative to their vertical extension. A 90° shift means pitching the nose down exactly when moving fastest downwards. A higher shift (>90°) means initiating the pitch change early (leading the motion).
- Standard Phase: φ = ωt
- Asymmetric Phase: φasym = φ - Asymmetry cos(φ)
- Vertical Position (z): z(t) = A cos(φasym)
- Vertical Velocity (vz): vz(t) = -A sin(φasym) dφasym/dt
- Vertical Acceleration (az): Calculated as the derivative of vz.
- Pitch Angle (θ): θ(t) = θtrim + θamp cos(φasym + φshift)
2. Fluid Forces
Lift and Drag are calculated using Thin Airfoil Theory, corrected for a finite Aspect Ratio (AR).
- Flight Path Angle (γ): γ = arctan(vz / U)
- Effective Angle of Attack (α): α = θ - γ
- Lift Coefficient (CL):
CL = (2 π α) / (1 + 2/AR) - Drag Coefficient (CD):
CD = CD0 + k CL2 where k ≈ 1 / (π AR) - Total Hydrodynamic Force (Vertical):
Fhydro_z = Fwing_z + Fstab_z + Fmast_z (Sum of all vertical forces). - Stall Model:
Beyond a critical angle (~13°), the lift coefficient saturates and drag increases significantly to simulate stalling.
2b. Mast Drag & Ventilation
To increase realism, the simulation accounts for the mast's drag and surface effects.
- Mast Drag: Calculated based on the submerged length of the mast at each time step.
- Ventilation: If the wing approaches or breaches the surface (z > 0), the lift coefficient is penalized to simulate air entrainment (ventilation), preventing the rider from generating power above the water.
3. Dynamics (Two-Mass Model)
To simulate high-frequency pumping accurately, the system is split into a Fixed Mass (Torso) and a Moving Mass (Legs + Board). This prevents the "zero power" error seen in single-point mass models when acceleration exceeds gravity.
- Moving Mass (mmoving):
mmoving = mboard + (mrider × SwingRatio)
(Default SwingRatio is 0.4. Can exceed 0.5 for aggressive pumping involving hips/torso) - Inertial Requirement:
The force required to accelerate the legs and board:
Finertia = mmoving (g + az) - Hydrodynamic Added Mass:
Accelerating the wing moves a volume of water with it. This "virtual mass" is added to the inertial requirement. It is scaled by cos2(θ) because added mass acts perpendicular to the wing surface.
madded = ρ π (c/2)2 b cos2(θ) - Rider Force (Frider):
The rider must push down to bridge the gap between the Water Force and the Inertial Force.
Freq = Fhydro_z - Finertia - madded az
Frider = max(0, Freq) (Includes static weight of upper body).
(Clamped to 0 to simulate unstrapped riding—the rider cannot pull the board up).
3b. Stabilizer & Pitching Moment
The simulation now includes a rear stabilizer and calculates the torque (Pitching Moment) the rider must manage.
- Stabilizer Aerodynamics:
Calculates local Angle of Attack based on the Local Velocity Vector at the tail (vz_stab = vz - ωpitch × FuselageLength). This accounts for Downwash and naturally provides Pitch Damping without artificial terms. - Moment Summation (at Center of Lift):
- Stabilizer Moment: Mstab = -Lstab × FuselageLength
- Rider Offset Moment: Torque created if the rider stands forward or aft of the Center of Lift.
- Total Moment: Mtotal = Mstab + Mrider
4. Power Calculation
Power is the sum of Linear Power (legs pushing down) and Rotational Power (core/ankles fighting torque).
- Linear Power:
Plinear = max(0, Frider × vext) - Rotational Power:
Prot = |Mtotal × ωpitch|
(Absolute value is used because muscles consume energy to resist torque even during eccentric loading). - Total Power: Ptotal = Plinear + Prot
5. Power Metrics (Normalized vs Average)
- Average Power:
The arithmetic mean of the power output. It represents the total physical work done over time. - Normalized Power:
A weighted average that emphasizes high-intensity spikes. Since physiological fatigue increases non-linearly with intensity, this metric better represents the metabolic "cost" of the session. It is calculated using a 4th-power weighting algorithm:
Pnorm = ( Σ P4 / N )0.25
Model Limitations
1. Aerodynamic Limitations
- Simplified Drag Model:
Drag is calculated using a simple parabolic polar (CD = CD0 + k CL2). While mast drag is included, interference drag between components is ignored.
2. Biomechanical Limitations
- Infinite Muscle Strength:
The rider is modeled as an ideal force generator. The simulation might say "Requires 1200 Watts," but it doesn't know that a human cannot generate 1200 Watts. It does not implement Hill's Muscle Equation (the trade-off between force and speed). - Perfectly Rigid Transmission:
The "Two-Mass Model" assumes the board and legs move as one solid unit relative to the water forces. It ignores the flex of the mast and the fuselage, which can dampen energy transfer. - Forced Kinematics (The "Rail" Effect):
The motion is defined by math (z = A cos(ωt)), not by forces. The board is essentially moving on a predefined invisible rail.
Consequence: If the rider stops pumping (power = 0), the simulation doesn't show the board slowing down or sinking; it just shows "Rider Force = 0". The board never "crashes." - Mass Effect & "Free Lift":
Increasing rider mass without re-optimizing causes the simulation to show the rider "Sinking" (Lift < Weight). However, the Power calculation might not increase (or may even decrease). This is because the simulation forces the heavy legs back up during the upstroke regardless of whether there is enough Lift to do so, effectively giving the rider "free energy" for the recovery phase. To see the true cost, you must increase Lift (Speed/Trim) until the system is Balanced.
3. Mathematical Simplifications
- Quasi-Steady Assumption:
The solver calculates forces based only on the current instant's velocity and angle. It ignores "unsteady aerodynamics" (Theodorsen effects/Wagner function), where the wake from the previous stroke affects the current lift. This is usually acceptable for low frequencies but becomes inaccurate above ~2-3 Hz.