Jump to content

[WIP][1.8.1, 1.9.1, 1.10.1, 1.11.0–2, 1.12.2–5] Principia—version ‎Канторович, released 2024-03-09—n-Body and Extended Body Gravitation


eggrobin

Recommended Posts

A notice to all Principia users: DO NOT use the « fix » provided in the above post.

@100055 you have completely misunderstood how the axial tilt configuration works, and therefore your so-called fix is incorrect. All orientations of the planetary axes are given by right ascensions and declinations in the International Celestial Reference System (ICRS), whose reference plane is the mean equator of the Earth at the standard epoch J2000; in particular, this means that the axis of the Earth has a declination of 90°.

This is the convention used by the International Astronomical Union, and specifically by its Working Group on Cartographic Coordinates and Rotational Elements.

Our use of these conventions is documented.

It is also evident by looking at your « fix » that you do not understand how the Principia initial state configuration works: you patch the Kopernicus orbits, whereas those are completely ignored in the presence of the initial state file. If this part of your patch has any effect at all, it means you improperly installed Principia or RSS.

The initial positions and velocities of the planets, given in the sol_initial_state_jd_2433282_500000000.cfg file, are in the ICRS.

Having axis orientations given in a reference frame different from the positions and velocities of the bodies means, obviously, that the orientation of the axes with respect to the solar system will be incorrect.

Nothing should be relative to the ecliptic, everything should be in the ICRS. Indeed, to quote Nicole Capitaine,

Quote

(i) no ecliptic is needed for the realization of the reference systems currently used in astronomy, (ii) the ecliptic is no more needed as a reference for the astronomical coordinates, (iii) the modern numerical barycentric ephemerides are referred to the ICRF, (iv) the modern description of precession-nutation of the equator is the motion of the CIP in the GCRS without reference to the ecliptic, (v) numerical integration, as well as modern semi-analytical integration, of precession-nutation do not use an ecliptic.

As a side note

Quote

By default RSS tilts the ecliptic by 23.4 degrees in order to simulate Earth's axial tilt, which made the tilts of all other bodies incorrect. Since Principia implements axial tilt, there is no reason to do that anymore

You also do not understand how Principia implements axial tilt: Principia does the exact same thing as RSS, except with respect to the current main body, so Principia will always tilt the universe so that the current main body is horizontal. This is, however, invisible with Principia, because we then tilt the camera according to the currently-selected reference plane. If you play with the reference frame selection (e.g., switching between Earth-Centred Inertial and Sun-Earth Barycentric), you will notice that your view is differently-oriented.

Don’t try to fix things that you don’t understand, you are doing a disservice to everyone. If for some reason your game is showing you things that you don’t expect, ask about it ; maybe you don’t understand what you are seeing, maybe your install is misconfigured. What is definitely not the case is that a configuration used by hundreds of people, with which they have accurately replicated astronomical events dependent on axial tilt, is wrong in such an egregious manner.

Link to comment
Share on other sites

Yes, yes and yes, I did read through the entire documentation and I am clear what the ICRF is and how to transform coordinates.  I looked through the files again and I realized I accidentally mixed up some values. The original values provided are indeed consistent.

Maybe I did not explain it clearly enough. I prefer KSP's skybox to be aligned with the ecliptic instead of Earth's equator. In reality it doesn't matter whether we use the ecliptic or equator, but in KSP there is a definite direction that is upwards. Therefore I rotated all the vectors in the gravity_model.cfg and initial_state_jd_2433282_500000000.cfg files. It is the exact same system, just tilted back by 23 degrees so that the orbit of Earth is in the horizontal plane of the skybox.

Link here: https://drive.google.com/file/d/1gjgRcA_bMposrlMfnkW6zvEwJdCQkeL

Tested and working. Let the truth speak for itself before calling what I did "incorrect".

 

TLDR: By default, Principia aligns the solar system such that the Earth's equator is in the horizontal plane of the universe. This modification aligns the ecliptic to the horizontal plane of the universe instead. It is a mostly cosmetic change to the orientation of the skybox.

Edited by VincentThacker
Link to comment
Share on other sites

9 hours ago, ShakeNBake said:

Are the compiled binaries for old versions still available for download anywhere?

The download links are on github in the README.md file. Which means they are version controlled. Go through the history of the readme on github and you should be able to find the links.

Link to comment
Share on other sites

Since I am too impatient to wait another 2 weeks for the next release, I have rebuilt the latest release (Гельфонд) for KSP 1.11.0, Google Drive link here

No guarantees as to any bugs that might occur, I only tested it for a few minutes so far, but it does seem to work fine

Hope this is okay and I'm not breaking any rules @eggrobin

EDIT: IF YOU DOWNLOAD THIS AND IT CRASHES YOUR GAME, DO NOT BOTHER THE MOD AUTHORS ABOUT IT. This is an unofficial build so use at your own risk. If you run into issues, download the source from their GitHub yourself and fix it.

EDIT 2: As stated in the original post, source is available on GitHub under the MIT License (I just modified the version check to allow 1.11 and used the 1.11 libraries to build)

Edited by RobotSquid
Link to comment
Share on other sites

2 hours ago, RobotSquid said:

Hope this is okay and I'm not breaking any rules @eggrobin

This is open-source software, so it is not breaking any rules.

This being said, we are not too keen on people posting random builds on the Interwebz:

  1. Custom builds typically go through very little testing ("seems to work fine") so non-trivial bugs may be lurking that would cause users to be disappointing/confused/annoyed.  For instance, I believe that in 1.11 you can weld parts and store parts in other parts, and this will almost surely require changes to Principia to avoid breaking the laws of physics (even if it doesn't crash, conservation laws are probably violated).
  2. Custom builds are harder to support: if someone runs into problems, it might take us some time to figure out that it was a custom build (the logs would tell us that, but most users just report "it doesn't work" without giving the logs).  I'd rather spend time on doing useful work than on wild goose chases.
Link to comment
Share on other sites

@pleroy Thanks for the reply! I edited my post to make it a bit more clear that this is absolutely not an official build, and won't post it anywhere else. If you would rather have me take it down, let me know and I will do it, I just intended this for people who, like me, can't wait to play with Principia on 1.11 and aren't scared of crashes every now and again.

Thanks for your amazing mod, and take it as a testament to your work that people will make custom buggy builds just to use it on the latest version 2 weeks earlier :P

Link to comment
Share on other sites

I got the newest release working in RO and I just have to say, this is absolutely glorious. I had started a large MKS mission to Jupiter in a 1.7 RO install, with the intention of leaning heavily on gravity assists from the moons to move around the Jovian system. After working with it a bit though, I realized the stock system putting everything on a tilt was going to make missions to and from the surfaces of the moons vastly more difficult than they should be. Enter Principia. With everything in a nice flat plane, and the incredibly powerful tool (IMHO) of being able to set different plotting frames(Beautiful Multiple Flyby), the first phase of the mission has gone SOOO much better and quicker. And to my wonderful amazement, the actual magnitude of the effect of a close pass by Io on my orbit around Jupiter is Significantly increased from the stock system. Like, almost a Factor of 2 increase. Which does make sense since I'm actually feeling the gravity of Io perpetually, rather than just during the time that I am in Io's (absolutely miniscule ~6000km) SOI. After only a couple days, I am not sure if I will ever be able to go back to plain 2-body systems. And I haven't even done anything too fancy yet. My first test is going to be to see if the Jupiter-Europa L2 point is remotely stable (though I kind of doubt it, maybe the Ganymede L1?)

I have to echo again all of the thanks to you for your work on this mod.

Link to comment
Share on other sites

  • 2 weeks later...

For the new moon (lunation number 260), the new release (Germain) is out.

  • Support for KSP 1.11.0 has been added.
  • The orbital analysis of the final trajectory is now available in the flight plan, making it possible to plan accurate orbital insertions and corrections.

 See the change log for more details.

For the convenience of our Chinese users, the binaries can be downloaded either from Google Drive or from 腾讯微云.

Link to comment
Share on other sites

5 hours ago, eggrobin said:

For the new moon (lunation number 260), the new release (Germain) is out.

  • Support for KSP 1.11.0 has been added.
  • The orbital analysis of the final trajectory is now available in the flight plan, making it possible to plan accurate orbital insertions and corrections.

 See the change log for more details.

For the convenience of our Chinese users, the binaries can be downloaded either from Google Drive or from 腾讯微云.

Awesome, I didn't think 1.11 support would be released so quickly

Link to comment
Share on other sites

Principia is a great mod for RSSRO, especially with the last version.

But the UI and flight plan process is laggy, time consuming and inaccurate in the end compared to the classic and very handy conic.

(computer is i5-6600 + 16Go DDR4-3200 + GTX1060, KSP RSSRO+P uses from 10 to 15Go, Mission example : Earth <> Mars)

Also each time i load a save that is 10 or 20 years from "the initial_state_2020-01-01" (thanks for this file), it takes 15-30sec. Same load times for just going in or out the tracking station. During these 15-30sec, memory usage increases and can eat a 3rd of the RAM. (logs are clean, it looks like normal behavior)

 

Then i was thinking a "Principia Lite" would be great, it would only manage the solar system/body accurate orbits (tilts and all) while leaving the spacecraft maneuver part same as stock/conic.

Even Space agencies use conic to preview their missions before further analysis with a full n-body model.

 

Anyway thanks for this mod !

 

Note : can i improve the performance/ram usage of Principia by deleting all the asteroids in the save file ? i didn't modify anything yet in the save files for my principia tests, i guess i'll try that.

 

Link to comment
Share on other sites

3 hours ago, xebx said:

But the UI and flight plan process is laggy, time consuming and inaccurate in the end compared to the classic and very handy conic.

That is a property of N-body physics and your inability to execute manoeuvres perfectly, not Principia.

3 hours ago, xebx said:

Also each time i load a save that is 10 or 20 years from "the initial_state_2020-01-01" (thanks for this file), it takes 15-30sec. Same load times for just going in or out the tracking station. During these 15-30sec, memory usage increases and can eat a 3rd of the RAM. (logs are clean, it looks like normal behavior)

Issue #2400

3 hours ago, xebx said:

can i improve the performance/ram usage of Principia by deleting all the asteroids in the save file ?

https://github.com/mockingbirdnest/Principia/wiki/Installing,-reporting-bugs,-and-frequently-asked-questions#timewarping

3 hours ago, xebx said:

Then i was thinking a "Principia Lite" would be great, it would only manage the solar system/body accurate orbits (tilts and all) while leaving the spacecraft maneuver part same as stock/conic.

I don't see how that would make for an interesting enough gameplay to justify the effort required, but not really my expertise or place to say either way.

Link to comment
Share on other sites

On 1/19/2021 at 11:00 PM, scimas said:

That is a property of N-body physics and your inability to execute manoeuvres perfectly, not Principia.

Issue #2400

https://github.com/mockingbirdnest/Principia/wiki/Installing,-reporting-bugs,-and-frequently-asked-questions#timewarping

I don't see how that would make for an interesting enough gameplay to justify the effort required, but not really my expertise or place to say either way.

I'm getting better at preventing lag spikes during flight plan adjustments : limit flight plan to 180days, first maneuver within 1 day, etc...

I managed to reduce a little RAM usage right after launch, so it's a little better and i can still downgrade some RSS  textures from 4k to 2k.

It's playable for 2 hours so it's not that bad.

Thanks for the link.

KSP is not good with axial tilt/precession, etc, i saw another small mod that was attempting to fix it, but i guess it was wip not working. A Principia Lite i describe could help to solve this without the big UI/flight plan changes.

Edited by xebx
Link to comment
Share on other sites

I want to install Principia, but I can't figure it out. Yes, I looked on Github, but it just doesn't work for me. I play on 1.7.1 and I am too lazy to reinstall all mods, so I'm sticking with that version. I am completely confused from the C++ too, because I am an amateur Java dev.

 

Edit: nvm I am just dumb.

Edited by LandZZZ
I am dumb
Link to comment
Share on other sites

Asteroids deletion helped to reduce loading time and lag.

 

And i found another way to improve the mod behavior on my comp :

- when you set a "long" flight plan duration (for ex 180 days), the mod will return an error and ask you to increase Maximal step count per segment.

- don't set this higher than 16000 or 64000, at first i set it to 1024000 because that's what the mod was asking in order to remove the error message and draw the full path, but it can quickly generate lags.

- click rebase 4 or 5 times until the flight path is fully drawn, the error message will also disappear. (btw there is no info on this rebase button in the wiki)

 

 

Now with the lag pushed away far enough, it becomes possible to find an optimal initial burn (deltaV/inclination) for a said date/transfer window and eventual small adjustment(s) during the travel.

Edited by xebx
Link to comment
Share on other sites

What is Principia's policy on bundling your mod builds with another planet pack that basically depends on it?  Is that considered an ok practice?  Or do you prefer me to point users to your page? (and deal with the inevitable "helpmes" when they fail to install it?).

Edited by R-T-B
Link to comment
Share on other sites

Hi, I tried to post this on GitHub but my account was flagged (maybe because it's new?) so no can see my posts there, I'll just repost what I said:

Hello. First let me say that I really, really love this mod and have been able to use it with no other issues, for the most part. However, whenever I separate a stage with multiple struts or a ship is destroyed and produces a lot of debris, KSP (v. 1.10.1) crashes and produces a fatal error; an example would the 7th stage of the stock Acapello rocket.
I thought this might be an issue with RAM usage, but according to Task Manager RAM usage does not increase above normal levels during the crash. I am able replicate this crash every time I try. Not sure whether this is a bug or a performance issue with my machine (Intel Core i7-9750, RTX 2060 6GB GPU, 8GB RAM).
I can repeat this crash on a fresh install of KSP with no mods other than Principia. I have provided the info.log and fatal.log files.

Many Thanks.

FATAL.log

https://github.com/mockingbirdnest/Principia/files/5838832/FATAL.20210119-202801.2084.log

INFO.log

https://github.com/mockingbirdnest/Principia/files/5838833/INFO.20210119-202641.2084.log

Link to comment
Share on other sites

1 hour ago, Aksijaha said:

However, whenever I separate a stage with multiple struts or a ship is destroyed and produces a lot of debris, KSP (v. 1.10.1) crashes and produces a fatal error; an example would the 7th stage of the stock Acapello rocket.

From a quick look at your log, this is probably issue #2853 (which was itself similar to issue #2716).   I am pretty confident that I have fixed it (once and for all!) by rewriting the algorithm used to diagonalize the inertia tensor.  The fix will be in the next version, Gödel, to be released around Feb. 11th.

Link to comment
Share on other sites

2 hours ago, R-T-B said:

What is Principia's policy on bundling your mod builds with another planet pack that basically depends on it?  Is that considered an ok practice?  Or do you prefer me to point users to your page? (and deal with the inevitable "helpmes" when they fail to install it?).

Please don’t bundle Principia. Instead direct users to the README.md page on GitHub.

There are several reasons for that:

  1. Principia has its own (system-level and platform-specific) dependencies, which you cannot bundle without a platform-dependent installer: if Principia is provided in a bundle, it will simply not work out of the box;
  2. we want users to know where the concepts & FAQ pages can be found, as well as the specific bug reporting procedures, and the readme will tell them about that—Principia is complicated enough that if users get it as part of a bundle, there will be an enormous amount of confusion (for instance when it come to plotting frames) that will require support from your part or ours;
  3. we very much prefer that users upgrade in a timely manner, which is much harder to do for a bundle that may or may not track our releases closely, especially in the longer term—few mods are updated every new moon for years;
  4. we like to track usage and analytics of the mod, and, again, that’s impossible through a bundle;
  5. we would like new users to be able to find the existing community of Principia users (on IRC, discord, this thread, etc.), so that their questions may be answered by more experienced users rather than us.
Link to comment
Share on other sites

2 hours ago, pleroy said:

From a quick look at your log, this is probably issue #2853 (which was itself similar to issue #2716).   I am pretty confident that I have fixed it (once and for all!) by rewriting the algorithm used to diagonalize the inertia tensor.  The fix will be in the next version, Gödel, to be released around Feb. 11th.

Ah okay, that sounds great, I look forward to Gödel. Reading #2853, that would make sense as when I use throw object from the cheat menu and destroy the ship the same thing happens. It doesn't always crash right away, sometimes it waits a few seconds as the strut debris spreads out, but the crash is 100% reliable.

Here is the journal if you need: https://drive.google.com/file/d/1XXbIlrldAUud0hn-808O9Yj0OuhKaRju/view?usp=sharing

 

Edited by Aksijaha
Redundant text.
Link to comment
Share on other sites

5 hours ago, eggrobin said:

Please don’t bundle Principia. Instead direct users to the README.md page on GitHub.

There are several reasons for that:

  1. Principia has its own (system-level and platform-specific) dependencies, which you cannot bundle without a platform-dependent installer: if Principia is provided in a bundle, it will simply not work out of the box;
  2. we want users to know where the concepts & FAQ pages can be found, as well as the specific bug reporting procedures, and the readme will tell them about that—Principia is complicated enough that if users get it as part of a bundle, there will be an enormous amount of confusion (for instance when it come to plotting frames) that will require support from your part or ours;
  3. we very much prefer that users upgrade in a timely manner, which is much harder to do for a bundle that may or may not track our releases closely, especially in the longer term—few mods are updated every new moon for years;
  4. we like to track usage and analytics of the mod, and, again, that’s impossible through a bundle;
  5. we would like new users to be able to find the existing community of Principia users (on IRC, discord, this thread, etc.), so that their questions may be answered by more experienced users rather than us.

Those are good reasons and precisely why I asked.  Thanks.  Will comply.

Also not questioning the concept, but how do your zips work?  They don't seem to be a "platform dependent installer" at all.

Edited by R-T-B
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...