That's a long way down the line.
Today was a good day. I have lot's of code spread around in several projects and it was getting annoying.
So I have started writing a test flight app. This pulls all the various bits of the code into a single place for testing and refining flight models.
The display is a 3D view of the aircraft with several cameras, the main one being a chase camera. I have wired in all the flight control systems and attached them to the animation code.
So when you move the control services you see them move on the aircraft, and they are passed on to the flight dynamics model.
In effect you can fly the aircraft in a safe environment. No terrain to crash into, no one shooting back.
The app records a hell of a lot of flight data and saves them to disk. So you can do standard flight tests and record the data and then check them against real world figures.
Should make tweaking flight models a lot easier
I am defining control systems as I go along.
So I currently have things like ...
Direct<system> e.g. DirectElevatorControl Direct connection between pilot control and system
Kinematic<system> e.g. KinematicFlapsControl Time delayed system for things like gear and flaps
Dynamic<system> e.g. DynamicRudderControl System that is situation dependent. Typically takes a value scaled by mach number
All of these have per airframe variables. So making a new aircraft flight control system is simply a case of getting values for these variables and adding the correct types of controls to the airframe.
Bit like lego
When I've got it fully working I'll stick it on line and you can try porting your flight models from here to my system, you can use the same meshes and the animation code is virtually identical, just not in java.