My experience with designing computer flight simulations began in 1980, when I purchased a copy of Flight Simulator I for my Apple ][+. I was disappointed. Even though the program used minimal graphics, it was so slow as to be unflyable. I thought "I can do better than that". So I spent the next decade trying to do so. Of course, I never caught up. While my simulation got faster, theirs got faster and better. These days, the flight simulation that I wanted to create is essentially the "War Thunder" simulation which is available free online.
Nevertheless, in case some enterprising programmer wants to create their own simplified flight simulation using WebGL (and does not want to spend decades learning flight mechanics), I thought it would be helpful to share what I have learned by creating a helper program that you can use in WebGL programs. This is the origin of ACrote and ACflyt.
ACrote is a simple program that uses various inputs to compute aircraft rotation and position. ACflyt takes the process further by using aircraft data to compute the flight vectors required to create a flight simulation.
ACflyt takes a simplified approach towards flight simulation. In general, ACflyt treats speed as the primary vector and treats the Lift and Gravity vectors as deflectors. ACflyt also simplifies the computation of Lift. The "traditional" flight simulation uses the following steps to compute Lift:
In contrast, ACflyt allows the user to change the CfLift directly. This eliminates the need to keep track of aircraft pitch and to compute AoA, which can get tricky, especially in steep banks. If the user wants to compute AoA and aircraft pitch, the user can do so since there is a linear relationship between CfLift, AoA and aircraft pitch. However, this is a complex computation with limited value. In simulations using aircraft models, you can use an animation to achieve the same result.
In simulations using aircraft models, you can use animations to create moving parts, such as ailerons and propellers, and to show aircraft pitch. You can create these models using popular programs, such as Blender.
Here are discussions of the above programs:
We will soon add discussions of how to create and use model animations in your program.
One advantage we have today is that we can use Excel to validate our programs. Here are some Excel worksheets that we used to create and validate ACrote and ACflyt:
ACflyt now works with either US or SI units. For purpose of computing power, US units use horsepower, while SI units use watts. Which is better - Horsepower or Watts?
Since the program seems to be fairly stable, here is a zip file that contains recent Demo programs and recent versions of ACrote.js and ACflyt.js. You should be able to run the Basic Demos locally.
You can also run the Model Demos locally on Chrome, but have to take special steps.
I have created a shortcut for Chrome that has the following line in the "Target" area:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
Here are some fun topics that you might want to explore: