I'm trying to code a simple physics simulator in C++ but I'm stuck on the air resistance issue. Surfing the Internet I only find a drag coefficient for very basical area shapes when the air is perpendicular to the area. However, even when simulating a falling parallelepiped, I found this not sufficient to describe the motion of the falling body, as the air is not always perpendicular to each face. More precisely, I'm able to calculate the air drag on each face of the object, obtaining a 3D vector which describes the force acting on the body.

However it's obvious that when such an object falls through the air, even an angular momentum is induced to the body. I'm not able to determine it.

I was thinking about describing the air flow as a matrix of parallels vectors, thus obtaining a resultant force as a weighted sum of the effect of each vector hitting the body. However in this case I'm not able to determine the force of each single wind vector hitting the surfaces of the body.

What is the simplest way to obtain object rotation due to air resistance? And what is the finest way?

  • $\begingroup$ This might be of interest: av8n.com/how/htm/airfoils.html . I tried to find a source for the simulation program itself, without success. $\endgroup$ Sep 18, 2013 at 11:21
  • $\begingroup$ This is very good, I will read it, thank you! $\endgroup$
    – HAL9000
    Sep 18, 2013 at 13:06

1 Answer 1


The correct description (since you want to write something "physics-based") is via the Navier-Stokes equations, but it is out of the question to solve them with any kind of accuracy in real-time at 30fps.

I would imagine that a reasonable approximation is to assume that the body simply falls through air without perturbing it, but that the air induces forces on each face of the body in the following way: the perpendicular component of the air velocity vector produces a force normal to a face that you can probably get from the literature (assume a rectangular face, perpendicular flow with a velocity equal to the perpendicular component of the velocity vector); the tangential component of the air velocity induces a drag force that is parallel to the face and proportional to area of the face and whose magnitude is going to be proportional to the viscosity of air. You may need to play a bit with the two proportionality factors for the two components to make things look physical.

  • $\begingroup$ I don't need it to be neither accurate nor real-time. I only need to be "realistic". I mean.. In my simulation there are "slow" objects flying in the air, below 200km/h. I only need to set a rotational speed of the objects "coherently" with the air speed. I also don't need the objects to perturbate the air. About perpendicular forces on the faces of the object, I also implemented it as you described and the result was good for my purposes. My only problem now is angular momentum. What about the idea of a field of vectors representing the pressure of the air? $\endgroup$
    – HAL9000
    Sep 18, 2013 at 12:58
  • $\begingroup$ The air imparts angular momentum via the shear forces tangential to the faces I described in my post. $\endgroup$ Sep 19, 2013 at 11:43
  • $\begingroup$ As to realism, let me add some skepticism: I recall that a tower swaying orthogonally to the air stream's direction gets excited in its oscillations. Interestingly, that's directly from the Bernoulli equations. The model presented here has only damping effects. Plus, in a purely conformal setting with a perfect fluid, the tower does not get pushed in the direction of the air stream; the theory says that pressure increases at the front side as well as at the back side. But it's probably OK to assume nonperfect non-potential streams. $\endgroup$
    – ccorn
    Mar 12, 2014 at 13:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.