[1.0.5] Ferram Aerospace Research: v0.15.5.3 "von Helmholtz", 11/12/15

11458 posts in this topic

Update to version "von Helmholtz", now with voxel-model based aerodynamics!





Original Review:



Aerodynamic Failures:


Building a spaceplane and talking about editor GUI stuff:







  • Shape-Based, Vessel-Centered, Aerodynamics - Long, thin shapes drag less than wide, flat shapes, and smooth changes in body width reduce drag. The shape of the vessel as a whole, not individual parts, controls drag, so shape the vessel as you see fit.
  • Emergent Fairings and Cargo Bays - The voxel model method FAR uses allows for the actual shape of the vehicle to play a role in how lift and drag are applied. Build a hollow shell, and close it up, and everything inside it will be protected from the airflow as it should.
  • Wing Effects - Realistically adjusts lift based on wing position and configuration: wingtips lift less and drag more than wing roots.
  • Stall - Passing the critical angle of attack suddenly reduces lift and greatly increases drag. Can put planes into tailspins, flat spins, and cause crashes.
  • Mach Effects and Area Ruling - Lift and drag will vary as expected with Mach number. Supersonic planes will need to properly area rule themselves for optimum flight characteristics.
  • Body lift - All parts lift: a fast enough brick will fly, if not that well.


Note: This mod disables itself on 64-bit Windows builds of KSP to avoid exacerbating the win64 build's inherent instability. Users are encouraged to switch to either the 32-bit Windows build or the 64-bit Linux build, which are far more stable.




Get v0.15.5.3 "von Helmholtz" from Kerbal Stuff!

Get v0.15.5.3 "von Helmholtz" from GitHub!

Other Recent Versions not available at github or KS

Official FAR Craft Sharing Thread

Post your crafts there, not here, please.

FAR via CKAN Support Thread

If you installed via CKAN, your support posts go there, not here.

Violators will have their posts moved by moderators, and will have everyone very annoyed with the additional workload for both moderators and me.

The FAR wiki at GitHub

The source at GitHub

Licensed under GNU GPL v3



Part.cfg changes powered by sarbian & ialdabaoth's ModuleManager plugin.

Interface with stock heating system and other mods interacting with the physics system powered by sarbian, Starwaster and myself's ModularFlightIntegrator

Toolbar powered by blizzy78's Toolbar plugin.


Copy the GameData and Ships folders into the KSP root directory and merge them with the existing GameData and Ships folders.

Make sure that you copy over everything in the GameData folder. Serious issues will occur unless this is done.

If you like my stuff, please consider throwing a few bucks my way, it would be awesome. Note that doing so doesn't entitle you to anything, it's just a way of saying "thanks."



Spoiler "von Helmholtz"------------------------------------  
Upgrade to MM 2.6.13

RealChuteLite consistency with RealChute calcs and optimizations thanks to stupid_chris
Implement dynamic smoothing calculations based on relative "filledness" of voxel; should help reduce effect of voxel-resolution-induced smoothing on larger vehicles
Tweaks to critical Mach calculations

Fix "silent" KSP update breaking hydrodynamic drag
Fix some voxelization irregularities
Fix control surface flap settings not appearing if the settings are turned on in flight
Fix some other control surface in-flight changes oddities

Fix Firehound MS example craft action groups not acting in symmetry
Added E42 example craft by tetryds "Helmbold"------------------------------------

Compatibility with KSP 1.0.5
Upgrade to MFI 1.1.2

Optimizations of runtime aerodynamic calculations
Cut background memory usage for voxels to ~60% of previous value
Increases in consistency of properties with similar voxel shapes

Full support for new stock hydrodynamic drag
Voxel model used in calculating radiative influx from celestial bodies
Reduction in first-load inconsistency in editor
More varied support for intake ducting setups, including support for stock Goliath engine
Tweaks to intake drag at low airbreather throttles

Editor GUI header cleanup
Dropdowns notated with down triangles for clarity
Added AoA Arrow to make AoAs for static analysis sweeps and stability deriv sims clearer

Fix for voxelization issues with degenerate triangles
Fix for voxelization issues with meshes with 0 triangles
Fix for B9 pWings not solidifying properly
Fix editor race condition in displaying sonic drag for vehicles
Fix for multiple vehicle aerodynamic NREs that could break aero
Fix for vehicle aerodynamics breaking under certain vessel-part configurations

Updated FAR Firehound MS, FAR SkyEye, FAR Montauk Shuttle to be more useful in KSP 1.0.5 "Hayes"------------------------------------

Upgrade to MM 2.6.8

Fix some legacy wing interaction issues
Fix drag properties drifting slowly over multiple voxelization events due to numerical errors
Fix parts being occluded when main axis is in a strange orientation
Fix in-flight control surface tweaks not applying to symmetry counterparts
Fix KerbalEVAs working with Vanguard Parachutes

Fix for a critical error where detached boosters, weapons, debris, etc. would not have drag properties

0.15.5V "Haack"------------------------------------

Upgrade to MM 2.6.7
Fix for some RealChute issues by DaMichel
Animation ignoring for voxelization by Blowfish
Addition of air brakes for yaw control (RudderBrakes) adopted from original code contributed by HoneyFox

Reduction in memory garbage created during voxelization; this should reduce the impact of voxelization somewhat, especially hitching. Note: some hitching may still occur with vehicles with many wing parts due to legacy wing code
Runtime performance optimizations for ram drag and general aero calculations
Highly optimized bounds checking for voxelization

Kerbals handled by voxel model now (using a simple primitive shape, presence or absence of helmet doesn't matter)
Control surface parameters available for tweaking in flight
Control surface tweakables given open/close buttons for sections to reduce clutter
Revert BDArmory bombs and missiles to stock model after launch to improve tracking, stability and predictions

Fixed main axis issue with BDArmory parts and similarly designed parts
Fixed a long-standing issue in wing aspect ratio calcs (they were double what they should have been)
Fixed ram drag variation with throttle not accepting AJE jets as valid jets for that purpose
Fixed drag not using the calculated critical Mach number for the beginning of the drag transonic rise
Fixed possible NRE issues during steady destruction of vessel with parts being destroyed
Fixed issue where increased number of wing parts would cause wing mass adjustment to increase mass without bound; mass is now bounded, but more concentrated in root parts than wingtip parts

Tweaked subsonic drag downwards to get more accurate results with fixed AJE props
Tweaked wing mass downwards slightly
Tweaked wing strength power to result in greater strength from lower-mass wings "Goldstein"------------------------------------

Re-implementation of aero viz coloration, thanks to mjn33

Reduction in garbage produced by voxelization, prep for further garbage reductions

Fixed NaN issue with KAX electric props
Fixed drag-breaking NRE during rapid disintegrations
Fixed some issues with Blizzy Toolbar icons
Fixed exacerbation of stock heating bug
Fixed control surfaces not updating direction during staging-related CoM shifts

0.15.4V "Glauert"------------------------------------

Update to MM 2.6.6
Update to MFI 1.1.1, fixes gimbaling bug below 750 m/s on short vehicles
Update win64 check code to MM method

Added internal ducted area feature:
* Area ducted through a vehicle from intakes to airbreathing engines will be removed from cross-section
* Adjusts area ruling to properly model air that flows through the vehicle as opposed to around it
* Does not count for airflow through switch-backing or reversing ducts; no benefits for intakes that feed upstream engines
* Supports stock intake part + airbreathing engine part setups, AJE intake part + airbreathing engine part setups, and combined intake + engine part setups

Slight improvement to Flight Data readouts from mjn33
Toggle gear button now states "Raise" or "Lower" gear for clarity

Fixed serious issue where exposed area was not updated for thermal calculations
Fixed some blunt shapes having NaN drag in the transonic regime
Fixed some blunt, thin-plate shapes having negative drag in the transonic regime
Fixed serious issue where long, skinny vehicles would have incorrect 2nd derivatives and incorrect transonic drag as a result
Fixed NRE with Launch Clamps
Fixed NRE with animations that are removed from a part (for whatever reason)

Cleaned up unused values from FARAeroData.cfg
Added support for planets to be identified by planet name, not just index; combining these in a FARAeroData MM patch is likely to cause overwrites, don't do it
Added ability to read and set flap and spoiler states from FARAPI
Fixed Firespitter gear not responding to Toggle Gear button
Added support for adjustable landing gear in Toggle Gear button
Stopgap fix to unintended voxelization of USI Warp Drive bubbles "Garabedian"------------------------------------

Compatibility with KSP v1.0.3 and thermal changes
Fix one last error with voxelization breaking due to reverts

Add ability to make parts not count for main axis determination; fix structural panels interfering with proper main axis determination

0.15.3V "Froude"------------------------------------

Update to MM 2.6.5 for greater nyan nyan
Allow display of pressure coefficient (under assumption of axisymmetric flow) over the vehicle
Tweak subsonic drag to be lower for slender shapes

Fixed voxelization breaking due to combined memory leak + hard memory limit for voxelization after many editor -> flight cycles
Fixed some race conditions in voxelization that could break aero properties
Fixed deadlock in threadpool if many voxelization events triggered simultaneously
Fixed possibility of deadlock if voxelization settings were updated

Fixed voxelization errors for some cargo bays and other parts
Fixed voxelization errors for pWings; includes support for any parts making use of mirrorAxis

Fixed some longstanding wing interaction issues, including permanent stalled wings
Fixed a newer issue with wing shielding on symmetry counterparts

Some main axis determination improvements
Fixed an where certain user atmospheric settings would not take

0.15.2V "Ferri"------------------------------------

Improved voxelization accuracy
Changed CoL code again to try and make it more useful
Cleaned up some unnecessary calculations

Fixed voxelization breaking after many voxelization events; this fixes no-drag situations
Fixed deployed spoilers not producing drag if mounted flush with vehicle
Fixed some main axis issues
Fixed improper heating area for atmospheric heat

Fixed interaction with KIS breaking things
Fixed some data not saving
Fixed exceptions during EVA

0.15.1V "Fanno"------------------------------------

Fixed improper voxelization of debris and vehicles dropped from existing vessel, including effects on stock "occlusion" system
Fixed improper determination of vehicle main axis
Fixed Kerbal EVAs having no drag
Fixed exceptions where outirght disintegration could prevent some vehicles from having aerodynamics applied

Added upper cap on memory allocated for voxelization

Changed calculation of CoL to make more sense
Fixed error in determining AoA for nominal flight in Stability Derivative GUI
Hid yellow aero moment arrows by default in aero overlay to reduce user confusion
Fixed lift / drag arrows remaining on wings that become shielded when aero overlay is open

Switched to a cleaner method of setting internal speedometers
Disable control surfaces auto-response below 5 m/s to prevent wacky flailing during load / when stopped

Change compatibility settings to reject KSP 1.0.0, which is not compatible with RealChuteLite
Updated save-load method to save more reliably and not throw exceptions

0.15V "Euler"------------------------------------

Compatibility with KSP 1.0, 1.0.1, and 1.0.2
Upgraded to MM 2.6.3
Introduction of ModularFlightIntegrator for interfacing with KSP drag / heating systems without interference with other mods

Replaced previous part-based drag model with new vessel-centered, voxel-powered model:
* Generates voxel model of vehicle using part meshes, accounting for part clipping
* Drag is calculated for vehicle as a whole, rather than linear combination of parts
* Payload fairings and cargo bays are emergent from code and do not require special treatment with configs
* Area ruling of vehicles is accounted for; unsmooth area distributions will result in very high drag at and above Mach 1
* Body lift accounts for vehicle shape in determining potential and viscous flow contributions
* Areas exposed to outside used for stock heating calculations

Performance optimizations in legacy wing model
Jet engine windmilling drag accounted for at intakes

Editor GUI improvements including:
* Greater clarity in AoA / Mach sweep tab
* Stability deriv GUI math modified for improved accuracy
* Stability deriv simulation tweaked to fix some minor issues in displaying and calculating response
* Addition of a Transonic Design tab that displays cross-section distribution and drag at Mach 1 for area ruling purposes

Parachute methods have been replaced with RealChuteLite implementation by stupid_chris:
* Less severe parachute deployment
* Parachutes melt / break in high Mach number flows
* No interference with RealChute

Changes to FARAPI to get information faster

FARBasicDragModel, FARPayloadFairingModule, FARCargoBayModule are now obsolete and removed from the codebase
Extensive reorganizing of source to reduce spaghetti and improve maintainability

Modifications to Firehound and Colibri to function with new flight model
Addition of Blitzableiter and SkyEye example crafts

A 1.5x increase to all stock gimbal ranges

Raised stalled-wing drag up to proper maximum levels
Adjusted intake drag to be lower
Improved method of dealing with very high vertex count parts for geometry purposes
Upgraded to MM 2.5.13
Included FAR Colibri, a VTOL by Tetryds as an example craft

Fixed an issue preventing loading custom-defined FARBasicDragModels

Modified skin friction variation with M and Re to closer to that expected by using the Knudsen number
Changed saving and loading method to allow better behavior when settings need to be cleaned during updates, especially for automated installs
Modified aerodynamic failures for water landings for compatibility with upcoming BetterBuoyancy
Option for aerodynamic failures to result in explosions at the joint during failure.
Serious reworking to handle edge cases with lightly-clipped parts and their effects on blunt body drag (read: when people clip heatshields into the bottom of Mk1 pods and cause problems)
Upgrade to MM 2.5.6

Fixed an issue that prevented Trajectories from functioning
Fixed blunt body drag errors with AJE
Fixed issues involving editor GUI and control surface deflections
Fixed edge cases involving attach-node blunt body drag being applied when it shouldn't have
Fixed issues with command pods containing intakes
Add Reynolds Number readout to main flight GUI

Adjust skin friction drag for rarefied atmosphere

Fix Stab Deriv GUI from breaking for altitudes above atmosphere
Fix flaps and spoilers not functioning with negative deflections

Skin friction drag now varies with Reynolds number; this means much higher skin friction drags at higher altitudes
Added simple attempt at handling hydrodynamic effects; not detailed, but objects in oceans move much less
Added color changing options for colorblind users
Tweak flap and spoiler deflection functions
Give spoilers faster deflection coefficients
Update to ModuleManager 2.5.4

Removed spontaneous aero-spline warp drive in some Linux64 versions



FAQ - Common Questions and Solutions to Common Problems

What does this mod do that stock KSP doesn't?

Stock KSP calculates drag as a linear combination of the drag properties of a vehicle's parts, with some interaction changes to handle some of the most obvious aerodynamic interaction effects. FAR instead calculates the drag from the vessel shape as a whole, resulting in a more realistic model of aerodynamic drag and body lift. In addition, FAR accounts for wing shape, rather than just overall area like stock KSP. Finally, thanks to the overall vessel model, FAR can account for things like area ruling, where the vehicle's area cross-section must vary properly in order to fly at supersonic speeds (well, without MOAR BOOSTERS, in any case).

I don't like my rocket coming apart under heavy aerodynamic loads; how can I turn it off?

In the Space Center scene FAR has a debug menu that can be accessed to mess with a large number of the parameters. Under the "cheats" section of the first tab there is an option to disable aerodynamic failure.

Does this plugin work properly with other mods / part packs?

Sure; FAR figures out what the properties of the part should be based on its dimensions and some basic aerodynamic assumptions. If you use a mod and suspect that it causes unrealistic behavior, search the thread to see if it has been brought up / addressed by the latest release; if it hasn't, feel free to bring it to my attention. The only exception is with wing parts, which are more complicated and currently must have their properties specified manually.

Does this plugin make payload fairings and cargo bays work properly?

Yes, it will support any and all fairings and cargo bays. Even those that you make out of completely unrelated parts, so long as you close up the shape. In fact, to FAR, there is little difference between the inside of a closed fairing and the inside of a fuel tank part; they're both just as internal to it.

I can't seem to turn off the Flight Assistance Systems... what's going on?

In the Flight Assistance GUI every button that is pressed activates a control system; when none are pushed down no control systems are active. I suspect that you've actually created a poorly designed craft and that you're attributing aerodynamic forces that you're not used to dealing with to non-existent control inputs.

Do I need ModuleManager and/or ModularFlightIntegrator?

Yes; they are used to properly apply aerodynamic properties to stock wing parts and to interface properly with the game's physics system. Not using them will cause FAR to not function.

I'm using the win64 KSP build and FAR doesn't seem to be functioning. What gives?

Due to the instability of the win64 KSP build, FAR will disable itself on that build. This is to ensure that any issues caused by the win64 build can be definitively traced back to it. FAR is not supported on the win64 build, and you are encouraged to use either the win32 build or to switch over to linux, as both of those builds are much more stable.

Edited by ferram4

Share this post

Link to post
Share on other sites

C7 needs to see this... At last I can make planes with more realistic post-stall maneuvering :)

Share this post

Link to post
Share on other sites

yay. Finally my planes will actually get lift from uber massive wings at ultra-high altitudes...

Share this post

Link to post
Share on other sites

Can somebody please send me a link to a modified version of this that removes the ability to specify an axis on a control surface? It is very frustrating to have to change the settings every flight.

Share this post

Link to post
Share on other sites

Why would You want that? It's better to change setting every flight that not change them at all

Share this post

Link to post
Share on other sites

Random, I'm currently working on something to fix that, in the mean time, you can switch the axis before physics starts, since you're just waiting there for a few seconds anyway. I agree, it's annoying, but it's currently a means to an end.

Share this post

Link to post
Share on other sites

Quick question, do I use less fuel the higher I am (not sure if its in the game). Oh and I agree its a little annoying having to change the axis every time but it's amazing that I can actually do it so I'm not too bothered.

Share this post

Link to post
Share on other sites

Depends on the aircraft. Normal jet engines get more efficient with altitude. Piston engines stay about the same. However, Ramjets and Scramjets get more efficient with speed and remain about the same with altitude, however the limiting factor with them is heat. The lower altitudes cause these types of engines to get hot much faster due to air friction thus they are only really good once you get into the upper atmosphere where you can go faster with less air friction.

Share this post

Link to post
Share on other sites

Okay, I have feedback. Some positive, some negative.

The positive: I can finally stall an airplane in KSP! Great! Your GUI is clear, easy to understand, easy to work with. I'm so glad somebody's finally tackling this project. I built a very simple plane and flew it around with my keyboard, and it handled very easily. Definitely more newbie-friendly than the stock game.

The negative: Your "plugin" folder should be "plugins", or the mod won't install. Control assignments for the standard canard and standard control surface are mixed up somehow; both of them have their pitch and roll assignments swapped. I tried setting the small control surface to yaw, and it doesn't move at all. My biggest problem though... can I have an option to completely turn off flight assistance? Some of us don't need the training wheels, ya know? I strongly dislike how the plane handles with this extreme control damping. I tried setting all k values to zero, and didn't perceive any difference.

Sorry about the gripes. This mod has such fantastic potential.

Share this post

Link to post
Share on other sites

Okay, I just tried messing with the standard canard, standard control surface and small control surface on a standard install and they worked fine. Were you using a joystick when that happened? Can you post a craft file that had this problem, since I don't think it's with my code (at least I can't replicate it from the description).

Also, if you don't have any of the autopilots selected (so that they show the k values) then they're off. It is possible you're talking about the 1/4 second it takes the control surfaces to fully deflect, which I'm starting to think is a little to much. (Maybe 1/10 of a second? 1/15? *shrug*) It's supposed to be a smoother change in angle of attack for the control surface, more like a real plane, but I might have overdone it.

And finally, what other plugins do you have installed?

And I'll fix that error about "plugin" instead of "Plugins."

Share this post

Link to post
Share on other sites

Um, the flight assistant spazzed out when the game went from the frozen 'loading' state in the flight scene to physics-enabled on the runway. I had to alt+F4 to get off the flight screen.

Share this post

Link to post
Share on other sites

Okay Volt, help me find this:

Can you recreate it?

If you can, would you post a copy of output_log.txt? (It's in KSP_Data if you don't already know)

What other plugins were you using?

The only time I've seen anything like that happen is when I'd get a part to throw a ton of NullReferenceExceptions (which was never the flight assistant stuff). When the flight assistant "spazzed" what did it do exactly?

The only reason I ask is because if I can't recreate the bug on my end, I can't track down the problem and fix it.

Share this post

Link to post
Share on other sites

Ah, I might be able to reproduce it and post the output log tomorrow morning (GMT). Sorry for the bad initial report, but I was working with the forum when it was a bit laggier. ;)

The first time it happened, the other thing on the HUD was the Romfarer Lazor System startup (0.17 version). In that instance the assistant almost appeared to 'jerk' off to one corner of the screen in a few milliseconds. When I uninstalled RFLS, the assistant seemed to be showing up fine until the end of the loading sequence, when the aircraft was released into physics, which was when the box turned mostly grey with a tiny corner which seemed to be showing all the content of the box.

As I said, I'll work on the stuff you need in the morning. It's 11PM here otherwise I'd still be troubleshooting all my plugins!

Edit: Okay, it's morning now! Seems I made a mistake in my report. It's the 'Flight Systems' window that disappears from the flight scene; the flight assistant isn't loaded at this point. I'm going to attach my output log; hope it provides and easy solution. Another bug I forgot to report with the GUI is that in the construction scene, sometimes the FAR Control Systems window is undraggable, and because its default position covers up the staging bar, it's somewhat problematic. Strangely, it seems doing something like using the scroll wheel wakes it up sometimes...

Edit2: Right, weirdness happening now. I can only reproduce the bug when RF Lazor System's GUI is also drawn on flight start. I couldn't find any mention of your plugin in the debug, but you can have my ridiculously spammed output file anyway. I have a new problem again: My FPS drops below 10 and stays there when this plugin is installed, or at least that's how it seems. I'll try my KSP_win without FAR installed and see if that changes anything. Scratch that. The game just didn't want to run at the same time as Flash Plugin for Firefox. The solution? No music for me while I fly!

Might I suggest a theory? There might be a GUI incompatibility between this plugin and Romfarer Lazor System. I'd love to see them working together rather than having to choose.

Edited by Volt

Share this post

Link to post
Share on other sites

Well, I was able to confirm the Lazor-FAR problem Volt, and you're right: it is a GUI incompatibility. It's actually similar to a problem I ran into first adding the flight assistant window. I'll see what I can do with this but I don't think it'll be too difficult. As for the in-editor problem, I'll see about that, but I'm giving the GUI there a minor overhaul to make it more useful. Odds are I just forgot to make the entire window drag-able and the section that can be dragged is just a little too small. I should be able to have a new version up soon that fixes these.

Share this post

Link to post
Share on other sites

Awesome. I enjoyed feeling like things were a little more realistic when I did manage to get FAR working, but I'm having trouble building stable planes because the type of wings that produce optimal lift are wobbly as hell in KSP and the changes to control surfaces make it even wobblier during maneuvers. :(

Share this post

Link to post
Share on other sites

it would also be nice if the GUI saved its placement between sessions, on both in-flight and in build screen. also, an option to windowshade it like Flight Engineer would be appreciated

Share this post

Link to post
Share on other sites

Okay, v0.3 is up. Bunch of bug fixes, some GUI work done. It should also play nice with Lazor System and MechJeb. :D

Sorry Hyratel, saving placement will have to wait until the next version, but the GUI can be minimized.

As always, bug reports are welcome, please give as much info as possible so I can find the problem.

Edit: Didn't update download link. Is fixed now.

Edited by ferram4
drewmacrae likes this

Share this post

Link to post
Share on other sites

WOW this is what I needed! I haven't had time to play KSP in a while, so it will have to wait before I give it a test run...

Does this mean the DA swept-wing hinges will now actually have a purpose? If so, then :DDDDDDDDDDDD

Share this post

Link to post
Share on other sites

Yep, the variable sweep parts from DA should work properly here. Granted, some testing will have to be done, since the stability of the plane will change a whole lot when you do that.

So, as an update on progress, I've figured out a way to override the original drag model on fuel tanks and engines and so next update all remnants of the old drag model should be gone. (HOORAY!!!) It'll be up today or tomorrow, since I'm trying to balance the engines and drag to something reasonable. So far, I've got the TurboJet engine making ~50 kN thrust (as opposed to the 150 kN default) and two of them can sustain a plane at Mach 2.8. I need to work on the airflow values so it isn't overpowered at ground level. I also want to tune the Basic Jet Engine so it can break the sound barrier, but only if you design and fly your plane just right.

I'm not even touching the rocket parts yet, since balancing that is another can of worms entirely.


Next update is gonna be totally awesome! :D

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now