If you want to be a Major League Baseball pitcher, you need to be able to throw a ball *really* fast—like 85 to 100 miles per hour. The faster the pitch, the less time a batter has to react and swing the bat, which means you have a greater chance of getting the ball past him for a strike. (For folks who aren’t baseball fans: A strike is when the batter swings and misses, or fails to swing at a ball that’s in the strike zone. Three strikes, of course, and you’re out.) This requirement has considerably dampened my dream of pitching in the major leagues.

But … is it possible to throw a strike with a much lower speed?

In fact, quite a few players have thrown strikes with very low pitch speeds, in one case as low as 31.1 miles per hour, according to the CodifyBaseball account on Twitter. Sometimes when a game runs into extra innings and a team uses up all their relief pitchers, a manager will send a position player to the mound. These guys who aren’t regular pitchers typically throw the ball at lower speeds—but they can still get strikes.

Let’s use Python to model some pitches and see how difficult this is.

Fast Pitch Trajectory

Once a ball leaves the pitcher’s hand, it’s going to move along a path governed by two forces: the downward-pulling gravitational force and the backwards-pushing air drag force. The combination of these two forces will change the ball’s velocity as it moves toward home plate.

The gravitational force is pretty easy to deal with, since it’s a constant force that depends only on the mass of the ball (which is about 0.144 kilograms) and the gravitational field (g=9.8 newtons per kilogram). The drag force is more challenging, because the magnitude and direction of this force depend on the velocity of the ball. The problem is that a net force changes the ball’s velocity—but now one of these forces (the drag force) *depends* on the ball’s velocity.

Pretty much the only way to model this motion is with a numerical calculation in which the motion is split into tiny time intervals. During each of these intervals we can assume that the forces are constant. With a constant force, we can find the change in velocity and position of the baseball. For the next time interval, we can find the new force—because the velocity changed—and then repeat the whole process.

This might seem like a “physics cheat,” but there are countless problems that can only be handled this way. Some of my favorite examples are solving the three-body problem (which governs things like the interactions of three stars in space), or modeling the Earth’s climate, or modeling the quantum mechanics of any atom other than hydrogen.

But before we do that, let me address two common questions. First: Do we really need to include the air drag force?

For a fast-moving baseball, like at 90 miles per hour, the air drag can make the ball drop about 10 centimeters compared to a ball without drag. That can be quite a bit when you are trying to throw a strike. At slower speeds, the air drag won’t have as much of an effect, but I’m going to keep it in there just to make things fun.

Second: What about curveballs? By putting a certain spin on the ball, the pitcher can make it bend to the left, right, or even up or down. This involves an extra interaction with the air, which is called the Magnus force. (Here’s an example of how to model this for a soccer ball.) But in this model, I’m just going to ignore spin. Why? Because I’m imagining that I’m a professional baseball player who doesn’t usually pitch—clearly I’m not going to be able to master the whole spinning thing.

Let’s start with a nice fast pitch from the pitching mound to home plate, clocking in at a solid 90 miles an hour.

In this case, the ball passes through the strike zone, which I have included in the model. Officially, the strike zone is a 3D space bounded by the edges of home plate and extending vertically from the midpoint of the batter’s torso down to the “hollow of the knees.” Of course, it’s up to the umpire to visualize this zone and judge wheher the ball passed through it.

(I should admit that I sort of cheated here. Instead of the actual shape of home plate—a square with two of the corners cut off—I’m just using a square, because it’s so much easier to model.)

The 90-mph pitch starts off with a horizontal velocity and zero vertical velocity. Remember, there are the two forces acting on this ball during its motion. The backward-pushing air drag force mostly just makes it slow down, since it’s in the opposite direction as the velocity. The gravitational force changes the vertical component of the velocity, since it’s pulling downwards. This means that the ball’s vertical velocity will increase in the negative direction during the trip, causing a slight drop. If it drops too much, it will miss the strike zone. If there is a *very* large drop, the ball will hit the ground before it even gets to home plate, which might make your catcher mad.

In this case, the ball does drop as it moves toward the plate, but it’s still got enough altitude that it passes through the strike zone. If the batter doesn’t swing, it’s a called strike.

Slow Pitch Trajectory

Now let’s change the starting velocity of the ball to 30 mph. A horizontal pitch moving that slow is not going to reach home plate in the air. But to compensate for that, I can throw the ball at an upward angle. This will give the ball an initial vertical velocity, increasing the amount of time it stays up in the air so it can make it all the way to the plate.

Of course, this doesn’t work if you throw it *straight* up. The ball will land right where you threw it—hopefully not on your head.

What angle would work the best for a slow pitch starting at only 30 mph? That is actually not an easy problem, so once again I’m going to have to solve this numerically. In the 90-mph case, I started with the ball traveling horizontally. This time, I’m not sure what angle to use, so I’ll run the program many times to figure out all possible trajectories between 0 and 60 degrees that get the pitch into the strike zone.

Now I can display the different paths as an animated graph. I put 4 red dots to indicate the corners of the strike zone as seen from the side.

Looking at the angles for which the ball passes through the strike zone, it’s possible to get a strike at that low speed, but it has to be launched at an angle between 34.5 and 51 degrees.

Slow vs. Fast Strikes

OK, so a slow pitch at the right angle can get a ball across home plate, but the main thing a pitcher cares about is whether the batter can hit it. Hitting a 90-mph baseball is obviously very difficult, but what about a ball thrown at a low speed that sails in a very high arc—would that also be challenging to hit?

One way to measure the difficulty is to calculate the time the ball spends in the strike zone. Obviously, the more time the ball is in that region, the more opportunity the player has to swing the bat at it.

Just as a comparison, here are two pitches: a horizontal one at 90 mph and a slow 30-mph one launched at a high angle of 51 degrees.

The 90-mph ball takes only 0.012 seconds to travel through the strike zone, but the 30-mph high ball spends 0.022 seconds in there. That’s almost twice as long, so it’s probably easier to hit. That’s one strike against slow pitches.

There’s another timing factor we can consider: the time from when the ball leaves the pitcher’s hand until it gets to the plate. This time is important because it allows the batter a chance to “eyeball” the trajectory and get a sense of when to swing. Using my same Python model, I find that it takes the 30 mph (51-degree angle) ball 2.16 seconds to get to the plate. For the horizontal fastball at 90 mph, this time is 0.449 seconds.

That’s a big difference. You don’t have much time before the fastball gets to the plate—it’s almost as if the batter has to start swinging before the ball even leaves the pitcher’s hand. How do baseball players even do it? It’s probably similar to the way they catch high-flying balls, by moving in a way that makes the apparent motion of the ball zero. In any case, that’s a second strike against slow pitches.

But there’s one more thing to consider: the element of surprise. Players practice for the type of pitch they will encounter most often—a fast pitch. When something new shows up, they have to make an adjustment, and that could be difficult. Mark Eichhorn of the Toronto Blue Jays made a successful career by striking out players at slower-than-normal velocities, with speeds in the 70s—something batters found confusing.

So maybe there’s still a chance for me and my 30-mph pitch. *Maybe*.