Interactive Physics of Pitch Movement
— Understanding Pitch Movement Through Angular Velocity Vectors —
A ball thrown by a pitcher follows a parabolic arc as gravity pulls it down. Yet in actual pitching, the ball can appear to fly straight or break sharply. Why?
The answer lies in spin. A spinning ball experiences a force called the Magnus force through its interaction with the air, bending its trajectory. Even a fastball resists gravity with over 2000 rpm of backspin, achieving a trajectory that "doesn't drop as much." In other words, the fastball is itself a "breaking pitch."
This article represents spin as an angular velocity vector (arrow) and explains why each pitch type curves the way it does, with interactive 3D visualizations.
Three main forces act on a baseball in flight (Fig. 1).
The forces shown in Fig. 1 are described by the following equation of motion:
$$m\ddot{\mathbf{x}} = \underbrace{\color{#ffcc44}{-mg\hat{\mathbf{e}}_Z}}_{\color{#ffcc44}{\text{gravity}}} \underbrace{\color{#aaaaaa}{- \frac{1}{2}C_D \rho A {\color{#44ff44}v} {\color{#44ff44}\mathbf{v}}}}_{\color{#aaaaaa}{\text{drag}}} + \underbrace{\color{#4fc3f7}{\frac{1}{2}C_L \rho A {\color{#44ff44}v}^2 ({\color{#ff8a65}\hat{\boldsymbol{\omega}}} \times {\color{#44ff44}\hat{\mathbf{v}}})}}_{\color{#4fc3f7}{\text{Magnus force}}}$$The three terms on the right-hand side correspond to the three forces in Fig. 1. Each term is explained in detail in the following sections. (Ref: Nathan, Trajectory Calculator)
A downward force that acts on all objects. Even a 95 mph fastball drops approximately 80 cm due to gravity alone during the roughly 0.4 seconds from the pitcher's release to home plate (Fig. 2).
Without any spin, the ball would simply follow a parabolic arc downward.
The first term of the equation of motion:
$$\color{#ffcc44}{\mathbf{F}_g = -mg\hat{\mathbf{e}}_Z}$$$m$ is the ball mass (5.125 oz = 0.145 kg), $g$ is gravitational acceleration (9.80 m/s²), and $\hat{\mathbf{e}}_Z$ is the unit vector pointing vertically upward. For a 95 mph pitch, the flight time is approximately 0.4 s, giving a drop of $\frac{1}{2}gt^2 \approx 0.78$ m ≈ 80 cm.
A ball moving through air decelerates due to friction with the air. A non-spinning ball released at 95 mph slows by approximately 10% by the time it reaches home plate, arriving at around 86 mph (Fig. 3).
Drag acts opposite to the ball's direction of travel and is proportional to the square of the velocity. In other words, the faster the ball, the greater the air resistance it encounters. Additionally, higher spin rates increase air turbulence around the ball, which slightly increases drag as well.
The second term of the equation of motion:
$$\color{#aaaaaa}{\mathbf{F}_D = -\frac{1}{2}C_D \rho A {\color{#44ff44}v} {\color{#44ff44}\mathbf{v}}}$$$C_D$ is the drag coefficient, $\rho$ is air density (approx. 1.2 kg/m³), $A$ is the cross-sectional area of the ball ($\pi r^2$, $r$ ≈ 0.037 m), $\color{#44ff44}v$ is the speed, and $\color{#44ff44}\mathbf{v}$ is the velocity vector. The force always opposes the direction of motion and is proportional to the square of the speed.
This simulator uses the Nathan model for the drag coefficient:
$$C_D = c_{d0} + c_{d,\text{spin}} \cdot \frac{\color{#ff8a65}{\omega_{\text{total}}}}{1000}$$($c_{d0} = 0.297$, $c_{d,\text{spin}} = 0.0292$). The drag coefficient increases with spin rate (due to seam-induced turbulence).
The effect of spin-induced drag increase on arrival speed is small compared to the $v^2$ term. For a 95 mph pitch:
| Condition | $C_D$ | Arrival speed | Speed loss |
|---|---|---|---|
| No spin | 0.297 | 86.3 mph | 8.7 mph (9.2%) |
| 2000 rpm backspin | 0.355 (+20%) | 84.6 mph | 10.4 mph (10.9%) |
$C_D$ increases by about 20%, but the additional speed loss is about 1.6 mph (roughly 15% of the total 10.4 mph speed loss).
This is the essence of pitch movement. Around a spinning ball, the airflow becomes asymmetric.
On the side where the air flows in the same direction as the spin, the air velocity becomes faster and the pressure becomes lower. On the opposite side, the air becomes slower and the pressure becomes higher. This pressure difference creates a force that pushes the ball toward the low-pressure side — the Magnus force (Fig. 4).
This rule — "the ball curves in the direction perpendicular to both the spin axis and the direction of travel" — provides a unified explanation for the movement of all pitch types.
The direction of the Magnus force is determined by the cross product $\boldsymbol{\omega} \times \mathbf{v}$ of the angular velocity vector $\boldsymbol{\omega}$ and the velocity vector $\mathbf{v}$. The cross product may look intimidating, but you only need to remember two rules (Fig. 5):
In the 3D widget below, use the sliders to change the spin axis (orange arrow ω) and see how the Magnus force (blue arrow F) direction and trajectory change. Start from the fastball setting and try moving the sliders.
Click the "SL Slider" preset, then try moving the sidespin (S) slider. You'll see the angular velocity vector ω shift up or down relative to the velocity vector $\mathbf{v}$. Whether ω sits above or below $\mathbf{v}$ flips the direction of the cross product $\boldsymbol{\omega} \times \mathbf{v}$, reversing the left-right direction of the Magnus force.
In real pitchers, Yoshinobu Yamamoto's slider has ω positioned slightly above $\mathbf{v}$, producing movement toward the glove side (third base). In contrast, Tatsuya Imai's slider has ω positioned below $\mathbf{v}$, producing movement in the opposite direction — toward the arm side (first base). This is the so-called "wrong-way slider." Despite sharing the name "slider," the sign of the sidespin component is reversed, resulting in opposite movement directions. Toggle S from positive to negative in the widget above to experience this difference.
Next, try the gyro (G) slider. As you increase the gyro component (move G toward 0), the Magnus force arrow gets shorter. This is because as ω approaches $\mathbf{v}$ in direction, the cross product $\boldsymbol{\omega} \times \mathbf{v}$ becomes smaller.
The Magnus force is described as follows:
$$\mathbf{F}_M = \frac{1}{2} C_L \rho A v^2 \, (\hat{\boldsymbol{\omega}} \times \hat{\mathbf{v}})$$where $C_L$ is the lift coefficient, $\rho$ is air density, $A$ is the cross-sectional area of the ball, $v$ is velocity, $\hat{\boldsymbol{\omega}}$ is the unit vector of the spin axis, and $\hat{\mathbf{v}}$ is the unit vector of velocity.
$C_L$ is a function of the spin parameter $S = R\omega/v$ (the ratio of the ball surface speed to the translational speed). The simulator at baseball.skill-vis.com uses Nathan's rational function model:
$$C_L = \frac{c_2 \cdot S}{c_0 + c_1 \cdot S}$$Nathan's original coefficients are $c_0 = 0.583$, $c_1 = 2.333$, $c_2 = 1.12$, but this simulator uses a modified value of $c_2 = 1.045$ based on fitting to Statcast data.
In the following simulation, you can compare the trajectory without spin (cyan dashed line) to the actual pitch (orange).
🔵 See Ohtani's fastball in 3DSpin can be represented as an angular velocity vector ($\boldsymbol{\omega}$). This arrow carries two pieces of information:
The right-hand rule means: curl the fingers of your right hand in the direction of rotation, and your thumb points in the direction of the arrow (Fig. 6).
In baseball, spin is often expressed as a "Spin Axis" angle (like a clock face direction). However, this representation has limitations:
With a vector representation, direction and magnitude can be expressed simultaneously, and the "similarity" of two pitches can be calculated as the distance between vectors.
The angular velocity vector can be decomposed into three physically meaningful components relative to the pitch:
As shown in Fig. 7 left, when $\boldsymbol{\omega}$ lies in the T-S plane (perpendicular to the pitch direction), all spin is converted to Magnus force, and spin efficiency is 100%. When $\boldsymbol{\omega}$ tilts toward the G axis (right), the gyro component increases and movement decreases. However, less movement is not necessarily bad — some pitch types actively use the gyro component to disrupt the batter's timing.
The gyro component $\omega_G$ is crucial for trajectory calculation, but MLB's public Statcast data does not include it. The simulator on this site estimates the gyro component from public data to compute trajectories, which is one of its key features.
T, S, and G are mutually orthogonal, forming the TSG coordinate system where the name order matches the right-hand cyclic order ($\hat{\mathbf{e}}_T \times \hat{\mathbf{e}}_S = \hat{\mathbf{e}}_G$). Any angular velocity vector $\boldsymbol{\omega}$ can be uniquely decomposed as projections onto these three axes, with each component written as $\omega_T$, $\omega_S$, $\omega_G$. Explore the relationship in the 3D widget below.
The TSG coordinate system is a right-handed system satisfying $\hat{\mathbf{e}}_T \times \hat{\mathbf{e}}_S = \hat{\mathbf{e}}_G$, where the order of the names directly matches the cyclic order of the coordinate system.
In earlier literature, the "BSG" (Backspin, Sidespin, Gyro) notation is sometimes used. Since $\hat{\mathbf{e}}_B = -\hat{\mathbf{e}}_T$, B > 0 corresponds to the hop direction (backspin), but the right-handed cyclic order becomes B → G → S (BGS), causing a mismatch between the naming order and the mathematical axis order. The TSG notation resolves this inconsistency.
Since the gyrospin component (G) does not generate Magnus force, the fraction of total spin that actually contributes to movement becomes important. This is called spin efficiency (Active Spin %).
In the TSG coordinate system, spin efficiency is defined as:
The numerator $\sqrt{\omega_T^2 + \omega_S^2}$ is the transverse spin (the spin component perpendicular to the velocity) — the amount of "effective spin" that generates Magnus force. The denominator is the total spin rate.
For example, Shohei Ohtani's fastball has a total spin rate of 2500 rpm with a spin efficiency of about 72%. This means the effective transverse spin is about 1800 rpm, with the remaining 700 rpm as gyrospin that does not contribute to movement.
In the widget below, you can examine the omega vectors of each pitch type for Yoshinobu Yamamoto (RHP) and Shota Imanaga (LHP) in 3D. Switch between pitchers to observe the differences in spin direction between right-handed and left-handed pitchers. Select a pitch type to see the omega arrow direction, the Magnus force direction, and the trajectory from pitcher to home. Drag with the mouse to change the viewpoint.
This simulator uses the following orthonormal basis:
$$\hat{\mathbf{e}}_G = \frac{\mathbf{v}}{|\mathbf{v}|}, \quad \hat{\mathbf{e}}_T = -\frac{\hat{\mathbf{e}}_G \times \hat{\mathbf{e}}_Z}{|\hat{\mathbf{e}}_G \times \hat{\mathbf{e}}_Z|}, \quad \hat{\mathbf{e}}_S = \hat{\mathbf{e}}_T \times \hat{\mathbf{e}}_G$$where $\hat{\mathbf{e}}_Z$ is the vertical upward unit vector. $(\hat{\mathbf{e}}_T, \hat{\mathbf{e}}_S, \hat{\mathbf{e}}_G)$ forms a right-handed system ($\hat{\mathbf{e}}_T \times \hat{\mathbf{e}}_S = \hat{\mathbf{e}}_G$). T > 0 produces a drop-direction force, T < 0 produces a hop-direction force.
Pitch type names are convenient categories, but in reality they lie on a continuous spectrum of omega vectors. Below we examine 7 representative pitch types. Select a pitch type to see the spin axis, Magnus force, and trajectory in 3D.
Backspin (T < 0) is dominant, with omega pointing nearly horizontally and perpendicular to the direction of travel. $\boldsymbol{\omega} \times \mathbf{v}$ produces an upward Magnus force, counteracting gravity and making the ball "drop less." The closer the spin efficiency is to 100%, the greater the hop for the same spin rate.
Omega points in nearly the opposite direction from FF (topspin, T > 0). $\boldsymbol{\omega} \times \mathbf{v}$ produces a downward + horizontal force, making the ball drop sharply while curving. Speed is low (70-80 mph) but spin rate is high (2500-2800 rpm), with the sidespin component adding glove-side horizontal movement.
Sidespin is dominant, with omega pointing nearly straight up from the pitcher's view. Virtually zero gyrospin (spin efficiency ≈ 100%), so $\boldsymbol{\omega} \times \mathbf{v}$ produces a large horizontal force, resulting in sharp lateral movement. Ohtani's 2023 sweeper reached ≈ 61.6 cm of horizontal break.
In contrast to the sweeper, omega points close to the velocity direction (gyro axis). Transverse spin is small (Yamamoto's example: eff. 13%), so lateral movement is less than ST, but vertical drop is added, creating a "sharp, dropping slider." From ST to SL, the gyrospin component varies continuously.
Same backspin family as FF, but omega tilts significantly downward from the pitcher's view (increased sidespin component). This reduces hop while producing arm-side horizontal movement. Speed is similar to FF (93-96 mph), but the different movement direction combined with FF creates deception.
The key is a lower spin rate than FF (Yamamoto FS: 1483 rpm vs FF: 2240 rpm). At the same speed (92 mph), the weak hop force means gravity pulls the ball into a trajectory that "doesn't ride like a fastball" = sinks. Physically, it's not "it drops" but "it doesn't rise."
The cutter's omega belongs to the same backspin family as FF but includes a gyro component, resulting in lower spin efficiency. Burnes' FC has 2603 rpm but only 46% spin efficiency — about half of the spin contributes to movement. At FF-like speed (94 mph), slight glove-side movement misses the bat's sweet spot. FF → FC → SL forms a continuous progression with increasing gyrospin.
By overlaying the trajectories of multiple pitch types, you can intuitively see how differences in angular velocity manifest as differences in trajectory:
By plotting the ω vectors of each pitch type from Chapter 3 on the TSG coordinate system, a "map" of pitch types emerges (Fig. 8, Fig. 9).
The T-S plane above displays only the components that contribute to the Magnus force (transverse spin). The greater the distance from the origin, the greater the movement.
The figure above shows the relationship between gyrospin and transverse spin. The closer to the left axis (G=0), the higher the spin efficiency, meaning most of the spin contributes to movement.
The distances on these "maps" quantitatively represent how similar the spin characteristics of two pitches are. While pitch type classification is discrete, in omega space the distribution is continuous, and even pitches with the same type name occupy different positions depending on the pitcher. This perspective is useful for pitch type classification and pitch tunneling analysis.
The equation of motion was introduced after Fig. 1; restated here for reference:
$$m\ddot{\mathbf{x}} = \underbrace{\color{#ffcc44}{-mg\hat{\mathbf{e}}_Z}}_{\color{#ffcc44}{\text{gravity}}} \underbrace{\color{#aaaaaa}{- \frac{1}{2}C_D \rho A {\color{#44ff44}v} {\color{#44ff44}\mathbf{v}}}}_{\color{#aaaaaa}{\text{drag}}} + \underbrace{\color{#4fc3f7}{\frac{1}{2}C_L \rho A {\color{#44ff44}v}^2 ({\color{#ff8a65}\hat{\boldsymbol{\omega}}} \times {\color{#44ff44}\hat{\mathbf{v}}})}}_{\color{#4fc3f7}{\text{Magnus force}}}$$This simulator performs numerical integration using the 4th-order Runge-Kutta method with a 0.001-second time step.
Drag coefficient in the Nathan model:
$$C_D = c_{d0} + c_{d,\text{spin}} \cdot \frac{\color{#ff8a65}{\omega_{\text{total}}}}{1000}$$($c_{d0} = 0.297$, $c_{d,\text{spin}} = 0.0292$)
As spin increases, drag also increases. This is thought to be due to the turbulence-promoting effect of the seams.
The spin axis is essentially conserved during flight. Since both the Magnus force and drag act on the center of mass, they do not produce torque that changes the spin axis (conservation of angular momentum). Measurements confirm that changes in the spin axis are negligible during a flight time of about 0.4 seconds.
In addition to the Magnus force, the position of the seams can alter the air separation point, generating an additional force unrelated to spin. This is called the Seam-Shifted Wake (SSW). It has a significant effect on low-spin two-seam type pitches, while at high spin rates the seam effect averages out and becomes small.
Ball parameters used in this simulator (based on Nathan Excel Trajectory Calculator):