1909, 2018

The Physics of Paintball – The Experiments

If you’d like to check my math, are curious about how projectile physics works, or would like a good bedtime read please check out The Physics of Paintball

Trajectories at 5 degree increments

The first experiment I wanted to conduct, was to shoot paintballs at various angles to find the maximum distance a paintball can travel and how much energy it has at the end of its trajectory.

So, I had the program run the simulation at 5 degree increments. Here are the results:

Angle Maximum Height Distance Traveled Velocity Kinetic Energy
5 4.79′ 144.72′ 26.31M/s 1.04J
10 21.06′ 188.29′ 18.80M/s 0.53J
15 33.01′ 213.90′ 16.32M/s 0.40J
20 44.68′ 231.83′ 15.71M/s 0.37J
25 55.99′ 240.71′ 15.90M/s 0.38J
30 66.85′ 242.71′ 16.23M/s 0.40J
35 154.57′ 241.18′ 16.69M/s 0.42J
40 174.37′ 236.16′ 17.18M/s 0.44J
45 192.20′ 227.68′ 17.67M/s 0.47J
50 210.28′ 214.62′ 17.96M/s 0.48J
55 226.60′ 198.55′ 18.24M/s 0.50J
60 236.97′ 179.43′ 18.50M/s 0.51J
65 249.06′ 156.53′ 18.64M/s 0.52J
70 259.09′ 130.75′ 18.78M/s 0.53J
75 266.98′ 101.64′ 18.83M/s 0.53J
80 272.66′ 69.93′ 18.90M/s 0.54J
85 276.09′ 35.84′ 18.96M/s 0.54J

The next question I had was

What’ll happen if a paintball is shot over the net and hits someone? How deliberate of an action must it be for that to happen and can the person be blinded by the paintball?

10 Foot Net

Distance from net Launch Angle Distance Traveled Distance Outside Net Velocity Kinetic Energy
3.28′ 75 115.32′ 112.04′ 19.50M/s 0.57J
6.56′ 60 202.85′ 196.29′ 19.13M/s 0.55J
9.84′ 50 243.30′ 233.46′ 18.65M/s 0.52J
13.12′ 40 268.38′ 255.26′ 17.89M/s 0.48J
16.40′ 35 274.57′ 258.17′ 17.40M/s 0.45J
19.69’+ 30 275.96′ 256.27′ 16.87M/s 0.43J

20 Foot Net

Distance from net Launch Angle Distance Traveled Distance Outside Net Velocity Kinetic Energy
3.28′ 85 40.49′ 37.21′ 19.51M/s 0.57J
6.56′ 75 114.72′ 108.15′ 19.40M/s 0.56J
9.84′ 65 176.13′ 166.29′ 19.16M/s 0.55J
13.12′ 60 201.55′ 188.43′ 18.97M/s 0.54J
16.40′ 55 223.31′ 206.91′ 18.73M/s 0.53J
19.69′ 50 241.32′ 221.63′ 18.42M/s 0.51J
22.97′ 45 255.37′ 232.41′ 18.04M/s 0.49J
26.25′ 40 265.27′ 239.02′ 17.57M/s 0.46J
29.53′ 35 270.58′ 241.06′ 17.03M/s 0.43J
32.81′ 35 270.58′ 237.78′ 17.03M/s 0.43J
36.09′ 30 270.73′ 234.64′ 16.46M/s 0.41J

I hope you find this information at least somewhat interesting 🙂

1909, 2018

The Physics of Paintball

One of the most elusive questions in paintball is the PHYSICS involved in their trajectories. How far can they travel? At what angle can they achieve their furthest distance? How fast are they going at the end of their trajectory? How far outside of the netting can they travel?

These are all questions that I’ve had since I started playing but until recently I never really had a reason to sit down and learn the math and physics to find the answers.

Well… a certain presentation for a certain county has prompted me to understand the physics behind projectile motion in order to better understand the physics of the sport of paintball.

Part 1: Variables

This article is about the physics of .68 caliber paintballs.

I measured several paintballs from APX [link here] to find their diameter and weight.

I found that .68 caliber paintballs:

  • Have a diameter of 17 Millimeters (.017 Meters)
  • Weigh 3 Grams (.003 Kilograms)

Additionally, we know that paintballs have a muzzle velocity NOT to exceed 300 feet per second (91.44 Meters per second)

Part 2: Projectile Physics

I did all of the hard work of re-learning projectile physics so that you don’t have to.

What I want to know is: Velocity over time and Position over time.

So first, we need to figure out the velocities on the X and Y axis.

You can do that with the following equation:

Velocity X (Vx) = Muzzle Velocity * Cos( Launch Angle )

Velocity Y (Vy) = Muzzle Velocity * Sin( Launch Angle )

Now we can feed the Vectors into a simple program to get the projectiles position each second:

Position X = 0

Position Y = 0

Velocity X = Muzzle Velocity * Cos( Launch Angle )

Velocity Y = Muzzle Velocity * Sin( Launch Angle )

GRAVITY = 9.81 M/s


Position X = Position X + Velocity X

Position Y = Position Y + (Velocity Y – GRAVITY)

This program works, but we miss A LOT of information between seconds. So, we can use Time Steps to increase the number of data points per second.

Frames Per Second = 50

Time Step = 1/Frames Per Second (0.02)

Velocity X = Muzzle Velocity * Cos( Launch Angle )

Velocity Y = Muzzle Velocity * Sin( Launch Angle )

GRAVITY = 9.81 M/s


Velocity Y = Velocity Y – (Gravity * Time Step)

Position X = Position X + (Velocity X * Time Step)

Position Y = Position Y + (Velocity Y * Time Step)

You’ll notice that I’m multiplying the velocities by the time step.

Simply put:

Velocity is expressed as Meters per second. However, we are now doing calculations every 50th of a second so we must modify the changes in velocity OVER the course of a second and to do that we simply multiply the Velocity by the Time Step which is the same as dividing the velocity by the Frames Per Second.

Part 3: Drag

The final part of the simulation that must be accounted for is air resistance on the paintball as it travels through the air.

To calculate drag you need to know the area of the object, the density of the medium the object is passing through, the objects “Drag Coefficient” and its mass.

If you wanna learn more about drag you can hit up Nasa’s site here:

In short, the final velocity of an object at a certain timestep is equal to the Drag Force (K) multiplied by its Velocity squared.

The density of air is about 1.225 kg/m3 and the Drag Coefficient of a Sphere is 0.50.

So (Programmatically):

K = ( ( Pi * ( Diameter / 2 )2) * Air Density * Drag Coefficient ) / ( 2 * Mass ))

With K solved, we can then apply it to the paintball each Time Step.

However, we cannot just apply drag on each axis separately.

So, we need to get the Velocity of the paintball and we can do that using the velocities on each axis:

Velocity = Square Root ( Velocityx2 + Velocityy 2 )

Now that we have the velocity, we can apply drag onto the paintball. However, we’ve separated the velocities by the X and Y axis so how do we apply drag while separating the velocities?

Well, you just multiply the velocity by its vector instead of doing velocity squared.

Drag on the X Axis = K * Velocity * The Absolute Value of : Velocity X

Drag on the Y Axis = K * Velocity * The Absolute Value of : Velocity Y

Now, we can subtract the drag from the velocities of each axis:

Velocity X = Velocity X – (Drag on the X Axis * Time Step)

Velocity Y = Velocity Y – (Drag on the Y Axis * Time Step)

And then add the velocities to the position of the paintball as normal:

Position X = Position X + (Velocity X * Time Step)

Position Y = Position Y + (Velocity Y * Time Step)

With that, we now have a complete and accurate simulation of a paintball in flight while accounting for both gravity and air resistance. We can now do simulations to understand the forces of a paintball in flight as well as its position and speed.

With all of the boring math out of the way, we can do experiments! Check out: The Physics of Paintball – The Experiments