Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by dkavolis

  1. Some overdue bugfixes Ferram Aerospace Research v0.16.0.5 "Mader" Fix cfg syntax errors, thanks @HebaruSan #132 Sanitize vessel filenames, thanks @HebaruSan #131 FAR aerodynamic are now presets MM-configurable #130 _FARPartModule also recognizes ModuleRestockLaunchClamp, thanks @Gordon-Dry #129 Improve KSPWheel support for the toggle gear button, thanks @simmav #128 Fix crash due to log messages from voxelization worker threads
  2. Ferram Aerospace Research v0.16.0.4 "Mader" Fixed NREs with potatoroids, thanks @simmav #127 Added massOverride to FARWingAerodynamicModel that fixes the module mass to the set value, with thanks to @StoneSmile #126
  3. Ferram Aerospace Research v0.16.0.3 "Mader" Updated version file for KSP 1.12 max Fixed picking up fairing would invalidate voxelization until reopening VAB/SPH Fixed aerodynamic simulations Fixed navball displaying wrong speed after switching back and forth from IVA view #112 Fixed voxelization error when a part is placed in the editor but not attached to a ship Haven't encountered any issues so far in my limited testing on KSP 1.12 but SAS seemed a bit wonky compared to 1.11
  4. Ferram Aerospace Research v0.16.0.2 "Mader" Updated KSP version 1.11 Update to MFI 1.2.10 Added Dynamic Deflection for Control Surfaces Option #110, @Alioth81 Fixed Mk1pod.v2 voxelization by switching to mesh voxelization, colliders were missing top and bottom planes resulting in shell-only voxelization Rotor blades are no longer voxelized Reduced submerged lift and drag, multipliers are controlled by FARConfig/Settings/submerged[Drag|Lift]Multiplier with default value of 0.25 Renamed FARWind to FARAtmosphere and added overrides for gas properties
  5. KSPBurst Burst compiler for Kerbal Space Program KSPBurst by itself will not provide any performance benefits. Mods will need to use Unity job system and decorate the jobs with [BurstCompile] to get any improvements. The Burst compiler is archived to prevent KSP from trying to load its dynamic libraries. The archive is extracted the first time the mod runs to <path to KSP>/PluginData/[email protected]<mod version>-<archive name>. Burst standard outputs can be found in <path to KSP>/Logs/KSPBurst/ and KSP.log. Repository: https://github.com/KSPModdingLibs/KSPBurst/ Installation Download the latest release from the GitHub releases and extract the archive into your KSP directory. plugins_only version does not contain the compiler, use it only if KSPBurst is a hard dependency and download size is an issue. Alternatively, KSPBurst can be installed from CKAN using KSPBurst identifier. plugins_only version is indexed as KSPBurst-Lite. Compiler version requires Mono, you can download it from here. Burst compiler version can be changed by replacing existing [email protected]<version>.zip archive with a different one. The mod expects the archive to follow <package name>@<package version>.<extension> naming scheme, where <package name> contains burst. If a matching archive was not found, KSPBurst will default to using a compiler matching <path to KSP>/PluginData/*burst*/package/.Runtime/bcl.exe with the greatest package version. Burst packages can be found here. Modders KSPBurst can be bundled with other mods. Bundling plugins_only version will keep the file size down but users will need to download the compiler version for Burst benefits. Burst compatible Unity plugins and their dependencies are also bundled: Unity.Burst 1.5.0 Unity.Mathematics 1.2.1 Unity.Collections 0.1.1-preview Unity.Jobs 0.1.1-preview Configuration Options All configuration options present in KSPBurst.cfg map directly to bcl.exe command line options. If ModuleManager is present, patched options will be used. Building Prerequisites KSP installation python Unity Editor 2019.2.2f1 (if building Unity packages) Configuration Tools read mod configuration options from config.json, users should create config.json.user and override the values there: Option Description unityBuildDir relative path to unity project build directory kspMin minimum compatible KSP version kspMax maximum compatible KSP version version KSPBurst version versionTemplate relative path to version template file unityPackages list of bundled unity packages unityDependencies list of managed plugins that unity packages depend on Tools tools contains python scripts: Script Description post_build.py copy libraries to the mod directory, archive the Burst package if it exists and copy the mod to KSP installation version.py update version information in source files and ReadMe package.py package mod into an archive at archives/, outputs 2 versions, one with and one without the Burst compiler Building the Mod Clone KSPBurst Create Directory.Build.props.user in the root directory with <Project> <PropertyGroup> <KSP_DIR>path to KSP</KSP_DIR> </PropertyGroup> </Project> Depending on the platform you may also need to set DATA_DIRNAME to match your installation. If not building Unity packages, go to to step 7 Open Unity project at Unity/KSPBurst in Unity Editor Build the Unity project and note the build directory Create config.json.user in root directory with { "unityBuildDir": "<relative path to unity build directory in step 5>" } Build KSPBurst with your IDE or from command line, the mod will be copied your KSP installation. If the burst package is present in Unity directory, it may take a while to archive it the first time. License Unity plugins are licensed under under the Unity Companion License for Unity-dependent projects--see Unity Companion License. KSPBurst is licensed under the MIT license Notes System.IO.Compression and System.IO.Compression.FileSystem plugins are used for archive decompression and are bundled with Unity Editor. NuGet package Microsoft.Extensions.FileSystemGlobbing is used for glob pattern matching.
  6. @cmet24 I think this fits FAR goal perfectly, would something like FARWind work for pressure and temperature? I could extend FARWind to be a generic atmosphere model albeit it wouldn't be called FARWind at that point.
  7. Ferram Aerospace Research v0.16.0.1 "Mader" Resized (again) toolbar icon to 64x64 All meshes in TransparentFX layer are ignored for voxelization, previously only visible non-skinned meshes had this check (f6a005d) Improve async config loading and saving (9e67b32) Enable debug voxels in flight mode (5560079) with: @FARConfig:FINAL { @Voxelization { %debugInFlight = true } }
  8. With just WBI and MOLE I can't reproduce the issue. Can you try running with the following MM patch? @FARConfig:FINAL { @Debug { %logLevel = debug } } It will give more info on what FAR is working on when KSP crashes. Also, a comparison between logs with old and new FAR may give additional clues to what is going wrong.
  9. I will need more information than just a screenshot, at least provide KSP.log, please.
  10. Ferram Aerospace Research v0.16.0.0 "Mader" Update to MM 4.1.4 Update to KSP 1.10 Added more config options (see FARConfig.cfg): Additional log messages can be enabled Log FAR flight variables to text file Debug voxels are now colored by part (customizable) Removed FARGUIColors.cfg and integrated it into FARConfig.cfg Added new DLL FerramAerospaceResearch.Base.dll which is independent of KSP Unchanged configs should no longer be saved to new files Update Chinese localization (thanks @tinygrox, #88) Workaround for KSPUpgradePipeline with removed stock control surface modules Fix KSP resetting shielded state on decouple Heating should now be closer (and higher) to stock values, KSP applies magic scaling to areas which made FAR calculated exposed areas significantly smaller than stock (can be reverted with MM patch) Meshes used for voxelization are now displayed in log with debug FAR log level Fix inconsistent voxelization when changing from VAB/SPH to Flight scene and reverting (#89) Fix voxelization starting before part is set up in editor Ignore launch clamps in editor simulations Fix NRE with MechJeb on destruction (#93) Resized stock button image to 36x36 px Simulation buttons are now disabled while voxelization is active Invisible meshes are ignored for voxelization by default
  11. Check out dev branch, stability derivatives and a few other buttons are now disabled while voxelization is active.
  12. Re launching vessels from SPH/VAB compared to revert to launch, can you try FAR from dev branch? FAR was voxelizing parts too eagerly, before KSP was done with disabling unused models like engine fairings on scene changes so it was working fine on return to launch. FAR now waits for physics to kick in before voxelizing so it should no longer voxelize what you can't see. Launch clamps will be mostly ignored in editor in the next release, there's still a barely noticeable effect on stability derivative values left that I'm not sure where it comes from. For now, you can use the dev branch version. For all the other issues, please provide KSP.log, ModuleManager.ConfigCache, the affected craft file and mod list in addition to description of the problem. Ideally, open an issue on github with all of the above.
  13. Triangles can be anywhere in space so every triangle would need to be checked, this quickly becomes too expensive. And FAR needs to know the filled/shielded volume which plain triangles can't give.
  14. It's KSP updating their crafts as the traceback suggests. FAR replaces all ModuleControlSurface with its own PartModule, that's why you get NREs. It's a bug with KSP and not FAR, they should have really added a null check in their code since they allow modifications of part modules. There are 2 workarounds I can think of: Load the craft in pre-1.8 KSP version with FAR and save it Replace all ModuleControlSurface with MODULE { name = FARControllableSurface isEnabled = True pitchaxis = 100 yawaxis = 0 rollaxis = 100 pitchaxisDueToAoA = 0 brakeRudder = 0 maxdeflect = 6 isFlap = False isSpoiler = False flapDeflectionLevel = 0 maxdeflectFlap = 15 massMultiplier = 0.5 stagingEnabled = True pitchaxis_UIFlight { controlEnabled = True minValue = -100 maxValue = 100 stepIncrement = 5 } yawaxis_UIFlight { controlEnabled = True minValue = -100 maxValue = 100 stepIncrement = 5 } rollaxis_UIFlight { controlEnabled = True minValue = -100 maxValue = 100 stepIncrement = 5 } pitchaxisDueToAoA_UIFlight { controlEnabled = True minValue = -200 maxValue = 200 stepIncrement = 5 } brakeRudder_UIFlight { controlEnabled = True minValue = -100 maxValue = 100 stepIncrement = 5 } maxdeflect_UIFlight { controlEnabled = True minValue = -40 maxValue = 40 stepIncrement = 0.5 } isFlap_UIFlight { controlEnabled = True } isSpoiler_UIFlight { controlEnabled = True } maxdeflectFlap_UIFlight { controlEnabled = True minValue = -85 maxValue = 85 stepIncrement = 0.5 } massMultiplier_UIEditor { controlEnabled = True minValue = 0.05 maxValue = 2 stepIncrement = 0.05 } EVENTS { DeflectMore { active = False guiActive = True guiActiveUncommand = False guiIcon = Deflect more guiName = Deflect more category = Deflect more guiActiveUnfocused = False unfocusedRange = 2 externalToEVAOnly = True } DeflectLess { active = False guiActive = True guiActiveUncommand = False guiIcon = Deflect less guiName = Deflect less category = Deflect less guiActiveUnfocused = False unfocusedRange = 2 externalToEVAOnly = True } ToggleStaging { active = True guiActive = False guiActiveUncommand = False guiIcon = Disable Staging guiName = Disable Staging category = Disable Staging guiActiveUnfocused = False unfocusedRange = 2 externalToEVAOnly = True } } ACTIONS { ActivateSpoiler { actionGroup = Brakes } IncreaseDeflect { actionGroup = None } DecreaseDeflect { actionGroup = None } } } There doesn't seem to be a way to modify the SaveUpgradePipeline used in KSPUpgradePipeline, at least no public API.
  15. New config system should coming in the next release but in any case configs without changes should not be output. I can compare the config node string with the last saved/loaded string to determine if any values have changed in game. That should prevent MM from creating patches a second time.
  16. Thanks, I'll add a fix some time soon. In the mean time you can run KSP from a batch/bash script which deletes CustomFARAeroData.cfg before starting KSP. Use del (batch) or rm (bash) commands to remove the file.
  17. So, I've been playing around with jobs system for voxelization and figured out how FAR voxelization works since it has no comments and questionable variable names. For every triangle in the mesh: Choose shell voxelization plane based on largest normal component Transform triangle into voxel index space Calculate triangle plane equation in index space For every index pair bounded by the triangle in voxelization plane Solve for the last index from the plane equation Fill the voxel if The 3d index is inside triangle (barycentric coordinates) The 3d index is within tolerance to any triangle vertex (currently 0.5) The 3d index is within tolerance to any triangle side (currently 0.5) This voxelization algorithm is far cheaper (roughly O(n2)) than most others that rely on triangle/AABB intersection tests, which are relatively expensive, with complexity of about O(n3). I have also found https://github.com/ramakarl/voxelizer which has another O(n2) voxelization algorithm though I could not get it to properly voxelize a sphere as of now. However the current implementation can leave gaps in the shell (sphere in 50x50x50 voxel volume). Also, C# even only using value types is slow for maths heavy applications. This shell voxelization took about 60ms without Burst on my machine in Unity editor and only 2ms with Burst (single thread). Edit: tried the same voxelization using C# arrays instead Unity NativeArray and it took about 60ms as well, maybe a few ms faster on average but not as easy to offload to another thread/synchronize/parallelize as a job.
  18. My guess is that YmaxStress is the yield stress and XZmaxStress is the tensile strength, though the comments are wrong and should say MPa instead (same as in C# source). So all the values fall in aluminium alloy/carbon steel ranges which are really wide.
  19. You will probably want to change the values in https://github.com/dkavolis/Ferram-Aerospace-Research/blob/master/GameData/FerramAerospaceResearch/FARAeroStress.cfg with an MM patch or edit them from the settings GUI in the space centre scene.
  20. Ferram Aerospace Research v0.15.11.4 "Mach" Update to MM 4.1.3 Update to KSP 1.9 Removed CompatibilityChecker Debug voxel mesh is now built as a single mesh, with possible submeshes. Choose between 16 (default) and 32 bit vertex indices from the Space Centre settings menu. (#86) The debug voxel mesh should now be faster to build and render, use less memory and much easier to customize in the future.
  • Create New...