Six Degrees Of Freedom Aircraft Model

Attached below is issue 1.002 (19/04/2012) of my 6DOF A/C model and issue 1.00 of the “User Manual”.

This work demonstrates, in my opinion, that blender is very well suited for making a “realistic” flight simulator.

The entire simulation is also incredibly fast: on my PC it takes less than 5 microseconds to perform the entire computations including user input processing, air data, aerodynamic and propulsive forces & moments computations, 6 DoF rigid body equations of motion integration, flight control/ actuator dynamics, navigation and autopilot control laws processing.

Comments and suggestion are welcome.


Flight Simulator: mb_ACmodel_2012_04_19.blend (1.41 MB)
Documentation:FLT SIM FOR BLENDER ISSUE 1.00.pdf (1.35 MB)

Hi mb10,

Exellent project.

I didn’t know, it’s possible to make these lookup tables with numpy/scipy.

I was making a fast test in Ubuntu and it looks good. I need to try it in windows later on.


I’ve not tested any of them yet, but as far as I know scipy comes with 1d & 2d linear grid interpolation an spline/rbf multivariate interpolation, as claimed here:

Thanks for the link

How you plan to model the longitudinal stability? A wing and tail plane forces separetly?

I’m currently considering an overall lift coefficient (CL) due to Wing + Body + Tailplane, which depends only on incidence angle. The “delta-lift” due to elevator deflection is neglected for now.
Pitching moment due to elevetor deflection is accounted for with a constant coefficient (CmdE).


Sounds like a similar system I had.

Earlier I tried a wing & tailplane combined forces via flight mechanics, but it was very keen to oscillate and run away too often.
I found a interesting InterpolatedUnivariateSpline scipy method, which providing a nice linear interpolation between two points.

In this example the lift and drag curves are very coarse.

import scipy 
from scipy.interpolate import InterpolatedUnivariateSpline as INTERPOLATE

AoA = [-90.0, -45.0, -30.0, -20.0, 0.0, 20.0, 30.0, 45.0, 90] # degrees
CL = [0.0, -0.9, -0.3, -1.0, 0.0, 1.0, 0.3, 0.9, 0.0] # factor
CD = [-1.0, -0.7, -0.35, -2.0, 0.05, 0.2, 0.35, 0.7, 1.0] # factor

aoa = 12.4 # simulated Angle of Attack. 

print 'CL',  INTERPOLATE(AoA, CL, k = 1)(aoa) # Lift
print 'CD',  INTERPOLATE(AoA, CD, k = 1)(aoa) # Drag

Thank you!

I did exprience a closed-loop instability too, but in the latero-directional axis. It was due too the overall loop gain being too high. I’ve reduced some coefficients and now it seems stable over the entire envelope.

In the next days (…or may be hours?) I hope I will be able to upload a new version of the model. Major changes are a full translation to english of all code comments, a basic lateral autopilot and a trim capability in pitch and roll.
In addition, your comments about wing and tailplane forces made me decide to introduce a lift contribution due to elevator deflection, called CLdE.

Stay tuned!

A new version of the aircraft model has been uploaded.



Bad news mb10.

The InterpolatedUnivariateSpline is a very slow.

I was testing it against to my old interpolation code and my code was ~90 times faster…

I’m making more tests with different versions later on.

Thank you for the information.
Hopefully linear interpolation methods, generally adequate for aerodynamic data, are faster.
We’ll see…

Version 002 has been uploaded.

Version 0.003 has been uploaded.

Version 0.004 has been loaded.
Many important changes, as per change log on post #1.
A screen shot is reported below.


Issue 1.00 of my Flight Simulator for Blender and related pdf document have been uploaded.
A very large number of improvements and new functions have been included: have a look at the log history script.

Uploaded a new version of the documentation: more detailed, with much more information about the use of the autopilot. A few errors have been rectified.
Better English too? May be…

Issue 1.001 and related documentation has been uploaded.

Sofware version 1.002 and manual issue 1 are on line.
Major changes:

  • some bugs have been corrected and the autopilot mode logic transitions are now handled entirely with logic bricks, through expression controllers, resulting in a much cleaner design.
  • all autopilot modes have now the same priority, i.e. the last pressed button determines which mode becomes active.
  • a functional block schematic of the simulation software has been included in the manual.