egg changed the topic of #principia to: Logs: https://esper.irclog.whitequark.org/principia | <scott_manley> anyone that doubts the wisdom of retrograde bop needs to get the hell out | https://xkcd.com/323/ | <egg> calculating the influence of lamont on Pluto is a bit silly…
queqiao- has joined #principia
<queqiao->
⟨pound_of_cheese⟩ and if so
<queqiao->
⟨pound_of_cheese⟩ * i can kill it
<queqiao->
⟨siimav⟩ Looks like you turned journaling on which is a bad idea outside of trying to diagnose an issue.
<queqiao->
⟨pound_of_cheese⟩ is there a way i cant stop that?
<queqiao->
⟨siimav⟩ I'm sure there's a wiki page
<queqiao->
⟨pound_of_cheese⟩ oh yup, found it thankks
<queqiao->
⟨clayel⟩ doesnt principia talk about a trappist mod in its wiki?
<queqiao->
⟨raptop | ²³⁹Pu powered⟩ TRAPPIST-1 (or anything that pulls in real eggsoplanet ephemeris) should be fine. It's a generic warning about most mod authors not putting in relevant configuration information and/or not simulating their systems with METCURY6, rebound, or whatever
<queqiao->
⟨raptop | ²³⁹Pu powered⟩ Note that to date there are 0 confirmed eggsomoons, so anything that adds them will need testing
<queqiao->
⟨sichelgaita⟩ There used to be support for SLIPPIST-1, but that mod has not been updated since 1.7.3, so unless someone takes the time to update it, I don't think that the Principia support will be very useful.
<queqiao->
⟨raptop | ²³⁹Pu powered⟩ RP-1/Principia set on Kepler 62 e (thrown in some plausible moons and a distant ice or gas giant or 2) could be evil from a Δv perspective
<queqiao->
⟨raptop | ²³⁹Pu powered⟩ * perspective. (Well, maybe not too terrible on the interplanetary side in terms of transfer times)
<queqiao->
⟨penumbra.ps1⟩ havent touched principa in years, with the current setup for rp-1, is there an easy way to add/remove it now?
<queqiao->
⟨lpg4999⟩ nothing has changed
<queqiao->
⟨qazerowl⟩ Add: drop the folder in place. Remove: impossible.
<queqiao->
⟨limedread⟩ Remove: dump all saves into the bin
<queqiao->
⟨sichelgaita⟩ I'm probably thick, but I would expect the following to work: (1) remove the "Principia" folder from "GameData" (2) load the save. What am I missing?
<queqiao->
⟨GoForPDI (less drag=more faster)⟩ The planets going back to their predefined orbits and breaking all interplanetary missions and then some, maybe?
<queqiao->
⟨sichelgaita⟩ Ok, but the same thing happens when you add Principia. Nothing specific to removing it.
<queqiao->
⟨lancisman⟩ How is Principia written in C++ when KSP is written in C#? Also slightly unrelated but why are cats being posted here?
<queqiao->
⟨raptop | ²³⁹Pu powered⟩ It's all compiled files that are interacting with KSP, so in principle the source language doesn't matter. Also, cats are on-topic here for 🥚-related reasons.
<queqiao->
⟨sichelgaita⟩ We actually started in C#, and were smart/lucky enough to realize our mistake. There is no chance in hell that we could have implemented Principia in C#.
<queqiao->
⟨kuzinat0r⟩ As a .net developer I'm very curious to hear why
<queqiao->
⟨sichelgaita⟩ One reason is performance. We really need to chase this last cycle; we've been spending an inordinate amount of time looking at the latency/throughput of instructions and making sure that the functional units are busy and don't starve, that we don't have unpredicted branches, etc. Not having a GC that's going to kick in the middle of your critical loop is also a plus.
<queqiao->
⟨sichelgaita⟩ But more importantly, we need all the strong typing that we can get from template metaprogramming. The physical quantities, geometry abstractions, physics computations, etc. are all as strongly typed as possible. Each time we have a compilation error that detects that we are doing a nonsensical computation, we sing the praise of metaprogramming.
<queqiao->
⟨siimav⟩ What year was that decision made?
<queqiao->
Mono is pretty crap compared to .net/core and at that point I imagine the Burst Math didn't exist yet either.
<queqiao->
⟨sichelgaita⟩ To take a simple example, it's surprisingly hard to avoid confusing active rotations and passive rotations. If you screw up, you won't find it in unit tests (because you will be testing the erroneous semantics that you implemented) and it will just create weird nonphysical effects that will be effectively impossible to debug.
<queqiao->
⟨sichelgaita⟩ 2015. I am not familiar with Burst Math, but I don't imagine a wold where we would make a different decision today.
<queqiao->
⟨sichelgaita⟩ * world
<queqiao->
⟨siimav⟩ No surprise there. Principia turned more into a astrodynamics library than a game addon.
<queqiao->
⟨Al₂Me₆⟩ I suppose an inordinate level of familiarity with cpp is assumed 😛
<queqiao->
⟨sichelgaita⟩ * 2014.
<queqiao->
⟨egg⟩ Well, I learned C++ with Principia. And we are writing C++ nowadays that is very unlike what we started with.
<queqiao->
⟨sichelgaita⟩ Right, the concept "homogeneous_ring" is the not the first thing we invented.
<queqiao->
⟨egg⟩ (Not least because concepts were not a thing in 2015.)
<queqiao->
⟨butcher6994⟩ I found Principia well written, and I really liked the strong typing.
<queqiao->
⟨maxsimal⟩ This cat is playing real-world getting over it, and doing it in style
<queqiao->
I am curious: does that course give the full solutions of Euler's equations? We had a hard time finding them anywhere on the internet, and in the end what we found was incorrect and needed careful rework.
<queqiao->
⟨610yesnolovely⟩ Mmmm concepts are indeed a great improvement over enable_if horrors. I've been playing with deducing this from C++23 - but it's niche: a) const/non-const gettors in one, b) CRTP mixins without the CR, c) pass this by value for smol things.
<queqiao->
⟨610yesnolovely⟩ * things to help optimizer.
<queqiao->
⟨610yesnolovely⟩ * enable_if/SINAFE
<queqiao->
⟨610yesnolovely⟩ +I must say that if constexpr with concepts is the most useful thing for optimizations.
<queqiao->
⟨delta___v⟩ ksp crashes when I try to open a save file, it was working 2 days ago and Ive been playing on that save for over a month with principia installed since the beginning of it
<queqiao->
⟨_plasticguy⟩ am i rembering wrong or is there something to do with asteroids and principia performance..?
<queqiao->
⟨_plasticguy⟩ * remembering
<raptop>
In that if you imported the entire JPL database of asteroids, you would have a very bad time, yes
<queqiao->
⟨Quadrupole🇵🇸🇸🇾🇨🇺⟩ It used to be the case that turning on KSP potatoroids harms your frame rate, because Principia did not store 🍜 efficiently. Now it's fixed so should be less of an impact to enable KSP them.
<queqiao->
⟨siimav⟩ Hmm, I'm gonna anger a bunch of folk now... but why does Principia even process 🥔s at all? Just let them run on patched conics. Even more so because the advice is to nuke them entirely due to the processing overhead.
<queqiao->
⟨Quadrupole🇵🇸🇸🇾🇨🇺⟩ * rate because Principia did not store 🍜 efficiently. Now it's fixed so should be less of an impact to enable
<queqiao->
⟨egg⟩ Siimav, you should know better than to say « just do X » about systems you do not understand.
<queqiao->
⟨vlood⟩ Ouch.
<raptop>
potatoroids are defacto spacecraft IIRC, so they still need to be flung around by the various n-body stuff
<queqiao->
⟨Quadrupole🇵🇸🇸🇾🇨🇺⟩ Indeed, potatoroids are parts.
<queqiao->
⟨egg⟩ As others noted, they are just spacecraft. But also, there is no way to make things « just run on patched conics » in Principia, given that we freely change the reference frame in which KSP would do its patched conics. And the main performance issue these days is displaying trajectories, which you typically don’t do for those things. And interacting with a spacecraft (rendez-vous, etc.), including a potatoroid, in any way...
<queqiao->
... requires that it be treated as a normal vessel, that we have a trajectory that we can use as a reference or display, etc.
<queqiao->
⟨egg⟩ We could just nuke them, though it can be fun to see them getting flung around. But there is no such thing as keeping things on patched conics in a context where every trajectory is managed by Principia.
<raptop>
☢🥔
<queqiao->
⟨siimav⟩ Fair point about things like rendez-vous. On the other hand the hack gravity escape hatch exists and as to my understanding nothing outright breaks either when that is active.
<queqiao->
⟨egg⟩ Nothing outright breaks, but it only affects the active vessel, and not for very long ; and its purpose is to unphysically cheat. If you were to let another vessel do its patched conic thing, it would, for instance, haphazardly teleport depending on where the player is looking.
<queqiao->
⟨siimav⟩ Ahh, interesting.
<queqiao->
⟨egg⟩ (Because if I switch to some other vessel, the universe gets tilted, and the stock orbits don’t know that they should change.)
<raptop>
I guess that would get you asteroid encounters (of the "roll for initiative") type
<queqiao->
⟨egg⟩ As noted recently by sichelgaita in #devtalk, tacking on axial tilt and n-body gravity and the utilities you need to make sense of it all on a game that has none of that requires some pretty profound transformations, and things that are the source of truth in stock become just another transient view. Just like World coordinate in stock can’t be kept over time because of the floating origin, stock orbits in Principia can completely...
<queqiao->
... change because we have tilted the universe.
<queqiao->
⟨egg⟩ * coordinates
<queqiao->
⟨egg⟩ (Axial tilt is probably the biggest source of disruption here.)
<queqiao->
⟨egg⟩ Even if that were not a problem, having some bodies running on their own version of the laws of physics would lead to silliness (if you were next to an asteroid, you might end up free-falling in radically different ways if the asteroid is in an interesting place).
<queqiao->
⟨egg⟩ (And you could probably devise a way to extract free energy from the asteroid, since effectively that means it is being accelerated so it sticks to its unperturbed orbit…)
<queqiao->
⟨egg⟩ Incidentally, the way Principia comprehensively takes over the motion of spacecraft is pretty good at squashing a whole class of free-energy bug. You can’t have a ladder drive in Principia, or a fuel transfer drive, etc., because none of that creates a net force on the spacecraft.