I am working on an Aircraft Development Toolkit for Outerra that will help people build accurate flight models, taking measurements directly from the 3d model and real world data. Some features, like force vector visualization for flight testing, will use a bone (e.g. BONE_CG or BONE_AC) and different colored 3D objects, such as Vector Arrows or Center Marks, that will be a attached to these bones. In the JS script I will set the bones to the position/rotation of the corresponding center or force vector, and use an autopilot to hold level flight at a specific altitude for standardized flight testing. There will be a variable to hide/show the visualization objects, as well as this.log_inf() these properties and output a CSV file. As part of the Aircraft Development Toolkit I'll include a users guide, 3ds Max file including the visualization objects, bones and helpers, the script code to animate each visualization feature, and FDM examples of a number of different flight modeling methods that can be used for different purposes/types of aircraft .
The JS script will have three versions, airplane, helicopter and rocket, which use different visualization techniques. For wings, I will be able to visualize multiple wing-span sections, with individual and collective lift force vectors with the origin at each Aerodynamic Center. Using the same method, I can model a helicopter rotor, modeling each blade separately as a rotating wing plane, with each blade having multiple blade-span sections, to compute lift, drag and stall forces for each blade tip section, mid section and root section. This helicopter FDM will account for prop pitch angle of attack and true airspeed of the rotor airfoil, modeling retreating blade stall, engine compression stall, true auto-rotation of the main rotor, and rotor blade flex using properties for rotor rpm, coefficient of flex and position along the blade-span, as well as other features. In the future, I will develop an automatic FDM and script generator that will use a configuration file to build a working flight model ready for detailed optimization and flight testing.
I am thinking that this would either be integrated with the package a developer will release in a mod, so everyone can turn this feature on in the script, or it could be used just for development. For that matter, you could export the FBX package without the actual aircraft mesh for dev, and use instead a flat plane plan-view orthographic representation of the aircraft, modeling each surface as a separate plane, including wing sections, control surfaces, flaps, etc. This would allow for clean flight testing.
I will eventually develop a GUI plugin for OT that displays critical flight data in a nice looking panel using html layout and js.
I'm thinking it would also be good to display the position of the datum relative to AC/CG.
I would also like to make the vectors increase in length relative to magnitude of the vector norm (0-1), and flip inverse direction if negative. For example the lift surface vectors for a wing tip stall would flip to negative magnitude, visualizing stall propagation.
I was thinking it might be possible to make a boundary layer separation (BLS) visualization, like they use on real aircraft during flight testing by attaching many strings to the upper surface of the wing. During normal flight the string strips will lay flat along the wing, but during stall when the boundary layers separates they will flap and wave around. I am already looking into modeling BLS in the FDM.
And of course I will add all control surfaces and other forces/centers/vectors for different types of aircraft as necessary for different types of aircraft; airplanes, helicopters/VTOL, spacecraft, rockets, etc.
I understand there are a number of other efforts underway towards something like this, (AH-DG?), but I don't know what stage these projects are at and when they would be ready.
Look forward to feedback, suggestions for improvements, and additional features!
Simon, are there any features you need specifically?
Regards,
Uriah
Red = Thrust vector (inverted normal)
Blue = Aerodynamic Center of Lift and Lift Vector
Violet = Lift surface vectors (could be added to control surfaces as well)
Black = Center of Gravity and Gravity Vector
Yellow = Velocity Vector
Green = Longitudinal axis
Orange = Drag Vector
F-22, low AoA, landing approach glide slope
F-22, high AoA, high pitch angle, high thrust vector angle