raptop changed the topic of #principia to: READ THE FAQ: http://goo.gl/gMZF9H; The current version is Galileo. We currently target 1.5.1, 1.6.1, 1.7.x, 1.8.1, and 1.9.1. <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… | <egg> also 4e16 m * 2^-52 is uncomfortably large
egg|anbo|egg_ has quit [Remote host closed the connection]
egg|anbo|egg has joined #principia
egg|anbo|egg has quit [Remote host closed the connection]
UmbralRaptor has quit [Ping timeout: 204 seconds]
UmbralRaptop has joined #principia
Blu3wolf has joined #principia
Mike` has quit [Ping timeout: 189 seconds]
Mike` has joined #principia
<discord-_> m​oar ssto. — I don't know if this is the good place to ask or not, but at least guys here are good at numerical integrators. What is the intgerator that stock ksp uses for off rail calculations?
<discord-_> m​oar ssto. — I encountered some serious kraken forces, near starts.
<discord-_> m​oar ssto. — Assuming that ksp uses the dumbest form of integrator, then the error in velocity in each physics frame is second order and the second order term is directly porportional to jacobian of gravitational acceleration times velocity.
<_whitenotifier-9244> [Principia] pleroy opened pull request #2693: Work-around polynomial operators +/- and fix the Mathematica test - https://git.io/JUJ2W
<_whitenotifier-9244> [Principia] Pending. Build queued… - 
<_whitenotifier-9244> [Principia] Pending. Building… - http://casanova.westeurope.cloudapp.azure.com:8080/job/Principia/4474/
<discord-_> s​ichelgaita. — They use https://en.wikipedia.org/wiki/Euler_method.
<_whitenotifier-9244> [Principia] Success. Build finished. - http://casanova.westeurope.cloudapp.azure.com:8080/job/Principia/4474/
<_whitenotifier-9244> [Principia] eggrobin labeled pull request #2693: Work-around polynomial operators +/- and fix the Mathematica test - https://git.io/JUJ2W
<discord-_> S​tandecco. — I don't think it uses an integrator; keplerian orbits are just conics, so they're analytically determined by a simple quadric
<discord-_> B​utcher. — Off rails, not on.
<discord-_> B​utcher. — It probably uses forward Euler, or maybe semi-implicit if we're lucky.
<discord-_> S​tandecco. — Oh, I read that "off rails" as "background"
<discord-_> S​tandecco. — Too much persistent thrust
<discord-_> m​oar ssto. — If I know the exact intergator it uses, then I can estimate the perturbations introduced and incude a currection for it when doing naneuvers.
<discord-_> m​oar ssto. — If I know the exact intergator it uses, then I can estimate the perturbations introduced and incude a currection for it when doing maneuvers. (edited)
<discord-_> m​oar ssto. — Currently the kraken perturbations are so strong that I need 40-60 throttle on an LVN engine on a 100t craft to kinda conteract it.
<discord-_> m​oar ssto. — Currently the kraken perturbation is so strong that I need 40-60% throttle on an LVN engine on a 100t craft to kinda conteract it. (edited)
<discord-_> S​tandecco. — ```Cs
<discord-_> S​tandecco. — protected virtual void Integrate(Part part)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — if (part.rb != null)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — part.rb.AddForce(vessel.precalc.integrationAccel, ForceMode.Acceleration);
<discord-_> S​tandecco. — part.rb.AddForce(part.force);
<discord-_> S​tandecco. — part.rb.AddTorque(part.torque);
<discord-_> S​tandecco. — int count = part.forces.Count;
<discord-_> S​tandecco. — while (count-- > 0)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — part.rb.AddForceAtPosition(part.forces[count].force, part.forces[count].pos);
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — if (part.servoRb != null)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — part.servoRb.AddForce(vessel.precalc.integrationAccel, ForceMode.Acceleration);
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — part.forces.Clear();
<discord-_> S​tandecco. — part.force.Zero();
<discord-_> S​tandecco. — part.torque.Zero();
<discord-_> S​tandecco. — UpdateAerodynamics(part);
<discord-_> S​tandecco. — int count2 = part.children.Count;
<discord-_> S​tandecco. — for (int i = 0; i < count2; i++)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — Part part2 = part.children[i];
<discord-_> S​tandecco. — if (part2.isAttached)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — Integrate(part2);
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — does this help?
<discord-_> m​oar ssto. — thank you, is this taken from stock ksp?
<discord-_> S​tandecco. — I'm checking the FlightIntegrator class (which I assume does exactly this?) and in the end of its FixedUpdate, it calls this method
<discord-_> S​tandecco. — wait, there's a better one
<discord-_> S​tandecco. — ```Cs
<discord-_> S​tandecco. — protected virtual void IntegratePhysicalObjects(List<physicalObject> pObjs, double atmDensity)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — double num = 0.0;
<discord-_> S​tandecco. — Vector3 zero = Vector3.zero;
<discord-_> S​tandecco. — double num2 = 0.0;
<discord-_> S​tandecco. — Vector3 force = (FlightGlobals.getGeeForceAtPosition(CoMd, currentMainBody) + FlightGlobals.getCoriolisAcc(Veld, currentMainBody) + FlightGlobals.getCentrifugalAcc(CoMd, currentMainBody)) * PhysicsGlobals.GraviticForceMultiplier;
<discord-_> S​tandecco. — int count = pObjs.Count;
<discord-_> S​tandecco. — while (count-- > 0)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — physicalObject physicalObject = pObjs[count];
<discord-_> S​tandecco. — if (physicalObject == null)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — continue;
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — Rigidbody rb = physicalObject.rb;
<discord-_> S​tandecco. — rb.AddForce(force, ForceMode.Acceleration);
<discord-_> S​tandecco. — if (!PhysicsGlobals.ApplyDrag || !(atmDensity > 0.0))
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — continue;
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — num = physicalObject.origDrag;
<discord-_> S​tandecco. — num2 = 0.0005 * pseudoReDragMult * atmDensity * num * (rb.velocity + Krakensbane.GetFrameVelocity()).sqrMagnitude * (double)PhysicsGlobals.DragMultiplier;
<discord-_> S​tandecco. — if (!double.IsNaN(num2) && !double.IsInfinity(num2))
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — zero = -(rb.velocity + Krakensbane.GetFrameVelocity()).normalized * num2;
<discord-_> S​tandecco. — if (PhysicsGlobals.DragUsesAcceleration)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — rb.AddForce(zero, ForceMode.Acceleration);
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — else
<discord-_> S​tandecco. — yeah, this is more like it
<discord-_> S​tandecco. — `Krakensbane.GetFrameVelocity()`
<_whitenotifier-9244> [Principia] pleroy closed pull request #2693: Work-around polynomial operators +/- and fix the Mathematica test - https://git.io/JUJ2W
<_whitenotifier-9244> [Principia] pleroy pushed 2 commits to master [+0/-0/±6] https://git.io/JUJw7
<_whitenotifier-9244> [Principia] pleroy df03f42 - Work-around polynomial operators +/- and fix the Mathematica test.
<_whitenotifier-9244> [Principia] pleroy 9699e42 - Merge pull request #2693 from pleroy/Bugs Work-around polynomial operators +/- and fix the Mathematica test
<discord-_> m​oar ssto. — Thank you, it will take some time to understand this, since I have no background in coding, but I will try.
<discord-_> S​tandecco. — this is how those 2 methods are called```Cs
<discord-_> S​tandecco. — if (FlightGlobals.ActiveVessel == vessel && FlightGlobals.physicalObjects.Count > 0)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — IntegratePhysicalObjects(FlightGlobals.physicalObjects, density);
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — if (vessel.precalc.preIntegrationVelocityOffset != Vector3d.zero)
<discord-_> S​tandecco. — {
<discord-_> S​tandecco. — vessel.OffsetVelocity(vessel.precalc.preIntegrationVelocityOffset);
<discord-_> S​tandecco. — }
<discord-_> S​tandecco. — Integrate(partRef);```
<discord-_> S​tandecco. — I'm having a hard time understanding where engine acceleration and part-generated forces in general are accounted for here
<discord-_> S​tandecco. — AddForce stops here, and I have no idea what those mean
<discord-_> S​tandecco. — triggers me a bit that _these_ are the possible ForceMode values
<discord-_> S​tandecco. — anyway unless I'm looking in a completely wrong place (entirely possible), it's either Unity's integrator for AddForce or something else other than the integrator
<discord-_> m​oar ssto. — These seems like are just means the integrator is taking in the forces?
<discord-_> S​tandecco. — yeah, this doesn't seem like an integrator to me (who has never seen an integrator)
<discord-_> m​oar ssto. — I think the ingerator is the code for `integrate(var)`.
<discord-_> S​tandecco. — so either Unity does all the force integrations or I'm looking in the wrong place, as I said
<discord-_> m​oar ssto. — > so either Unity does all the force integrations or I'm looking in the wrong place, as I said
<discord-_> m​oar ssto. — @Standecco very likely the first option?
<discord-_> m​oar ssto. — since unity is a well developed game engine.
<discord-_> S​tandecco. — > I think the ingerator is the code for `integrate(var)`.
<discord-_> S​tandecco. — @moar ssto where do you see that call?
<discord-_> S​tandecco. — or method in general
<discord-_> S​tandecco. — lowercase `integrate` doesn't exist in FlightIntegrator
<discord-_> m​oar ssto. — Oh, I don't know if that's case sensitive, sorry about that.
<discord-_> m​oar ssto. — I mean this one.
<discord-_> m​oar ssto. — > ```Cs
<discord-_> m​oar ssto. — > protected virtual void Integrate(Part part)
<discord-_> m​oar ssto. — > {
<discord-_> m​oar ssto. — > if (part.rb != null)
<discord-_> m​oar ssto. — > {
<discord-_> m​oar ssto. — > part.rb.AddForce(vessel.precalc.integrationAccel, ForceMode.Acceleration);
<discord-_> m​oar ssto. — > part.rb.AddForce(part.force);
<discord-_> m​oar ssto. — > part.rb.AddTorque(part.torque);
<discord-_> m​oar ssto. — > int count = part.forces.Count;
<discord-_> m​oar ssto. — > while (count-- > 0)
<discord-_> m​oar ssto. — > {
<discord-_> m​oar ssto. — > part.rb.AddForceAtPosition(part.forces[count].force, part.forces[count].pos);
<discord-_> m​oar ssto. — > }
<discord-_> m​oar ssto. — > }
<discord-_> m​oar ssto. — > if (part.servoRb != null)
<discord-_> m​oar ssto. — > {
<discord-_> m​oar ssto. — > part.servoRb.AddForce(vessel.precalc.integrationAccel, ForceMode.Acceleration);
<discord-_> m​oar ssto. — > }
<discord-_> m​oar ssto. — > part.forces.Clear();
<discord-_> m​oar ssto. — > part.force.Zero();
<discord-_> m​oar ssto. — > part.torque.Zero();
<discord-_> m​oar ssto. — > UpdateAerodynamics(part);
<discord-_> m​oar ssto. — > int count2 = part.children.Count;
<discord-_> m​oar ssto. — > for (int i = 0; i < count2; i++)
<discord-_> m​oar ssto. — > {
<discord-_> m​oar ssto. — > Part part2 = part.children[i];
<discord-_> m​oar ssto. — > if (part2.isAttached)
<discord-_> m​oar ssto. — > {
<discord-_> m​oar ssto. — > ***Integrate(part2);
<discord-_> m​oar ssto. — > }
<discord-_> m​oar ssto. — Just a guess, I have no clue yet waht is going on.
<discord-_> S​tandecco. — Oh alright, that's the same function
<discord-_> S​tandecco. — It's a recursively called function
<discord-_> S​tandecco. — It just calls the integrator for children parts too
<discord-_> S​tandecco. — Makes sense, given the tree structure of stock vessels
<discord-_> m​oar ssto. — So it does the per part calculations, not on the entire vessel?
<discord-_> m​oar ssto. — So this function channels the force between parts?
<discord-_> S​tandecco. — yeah, this basically applies all the forces of flight (first 3 statements with `part.rb.AddForce()`) (`vessel.precalc.integrationAccel` turns out to be gravitational + coriolis + centrifugal acceleration; `part.force` is, I guess™️, engine and RCS thrust and similar; `part.torque`, therefore, torque generated by engine/RCS/reaction wheels),
<discord-_> S​tandecco. — then it applies additional forces (`part.rb.AddForceAtPosition` and `part.forces loop`) that I guess™️ are forces between parts,
<discord-_> S​tandecco. — then I have no idea what `part.servoRB` is, but I guess™️ it might be BG's robotic servos,
<discord-_> S​tandecco. — then it clears the old forces,
<discord-_> S​tandecco. — then it updates the aerodynamics,
<discord-_> S​tandecco. — then it calls itself on all the children (recursively, so it will integrate each vessel "branch" at a time)
<discord-_> S​tandecco. — yeah, this basically applies all the forces of flight (first 3 statements with `part.rb.AddForce()`) (`vessel.precalc.integrationAccel` turns out to be gravitational + coriolis + centrifugal acceleration; `part.force` is, I guess™️, engine and RCS thrust and similar; `part.torque`, therefore, torque generated by engine/RCS/reaction wheels),
<discord-_> S​tandecco. — then it applies additional forces (`part.rb.AddForceAtPosition` and `part.forces` loop) that I guess™️ are forces between parts,
<discord-_> S​tandecco. — then I have no idea what `part.servoRB` is, but I guess™️ it might be BG's robotic servos,
<discord-_> S​tandecco. — then it clears the old forces,
<discord-_> S​tandecco. — then it updates the aerodynamics,
<discord-_> S​tandecco. — then it calls itself on all the children (recursively, so it will integrate each vessel "branch" at a time) (edited)
<discord-_> m​oar ssto. — Seems like it's doing all the math in a BCVA frame.
<discord-_> S​tandecco. — so it's really just the place where all the forces are added to the craft; Unity then probably integrates it on its own
<discord-_> S​tandecco. — so it's really just the place where all the forces are added to the craft; Unity then probably integrates them on its own (edited)
<discord-_> m​oar ssto. — It's odd, since when i used kos, as soon as clearing atmo, all things are dispayed in inertal frame.
<discord-_> m​oar ssto. — As far as I'm aware, kos calls stuff directly from ksp without re-procdsssing.
<discord-_> S​tandecco. — this is how gravitational acceleration is calculated
<discord-_> m​oar ssto. — It appears to me that calculations are done in the rotating frame.
<discord-_> m​oar ssto. — Body centered vessel facing
<discord-_> m​oar ssto. — > so it's really just the place where all the forces are added to the craft; Unity then probably integrates them on its own
<discord-_> m​oar ssto. — @Standecco Do you think unity might have different types of integrators?
<discord-_> S​tandecco. — no idea, I can't find anything about that code
<discord-_> s​iimav. — Unity supports both PhysX and Havok physics engines
<discord-_> S​tandecco. — I read that, but it doesn't say anything about the integrator used
<discord-_> K​atniss. — Well, Unity uses PhysX engine for physics (and they planned to add Havoc too, but that's either not done yet, or it's very fresh)
<discord-_> K​atniss. — Well, Unity uses PhysX engine for physics (and they planned to add Havok too, but that's either not done yet, or it's very fresh) (edited)
<discord-_> m​oar ssto. — Do they use diffierent integrators?
<discord-_> K​atniss. — PhysX and Havok?
<discord-_> S​tandecco. — https://youtu.be/aae6wU-gbAo
<kmath> YouTube - Algorithms
<discord-_> m​oar ssto. — > PhysX and Havok?
<discord-_> m​oar ssto. — @Katniss Yea
<discord-_> K​atniss. — I'm not sure. PhysX apparently uses a symplectic integrator
<discord-_> K​atniss. — Havoc doesn't work for non-ECS anyway
<discord-_> K​atniss. — Havok doesn't work for non-ECS anyway (edited)
<discord-_> m​oar ssto. — principia also uses a symplectic integrator, then what is diffenent between ksp's and pricncipia's integrator?
<discord-_> K​atniss. — Idk, But it's not KSP's integrator, it's Unity itself (PhysX). KSP just tells it to apply forces and stuff
<discord-_> m​oar ssto. — Sorry about my clarity, I mean the integrator that ksp uses.
discord-_ has quit [Read error: Connection reset by peer]
oeuf has quit [Read error: Connection reset by peer]
discord- has joined #principia
oeuf has joined #principia
Mike` has quit [Ping timeout: 189 seconds]
<discord-> s​ichelgaita. — PhysX uses symplectic Euler, see https://github.com/NVIDIAGameWorks/PhysX-3.4/issues/57.
<discord-> m​oar ssto. — thank you!
<discord-> m​oar ssto. — So not very different from forward euler method, hmm
<discord-> m​oar ssto. — So me guestimiation about tidal term disturbing the orbital elements is true.
Mike` has joined #principia
UmbralRaptor has joined #principia
UmbralRaptop has quit [Ping timeout: 204 seconds]
<_whitenotifier-9244> [Principia] pleroy commented on issue #2685: Very long scene changes with outer-planet probes - https://git.io/JUUXa
<discord-> l​amont. — @Standecco is that the actual KSP source code that i'm looking at for computing gravity?
<discord-> S​tandecco. — it is, why?
<discord-> S​tandecco. — should be 1.8.1
<discord-> l​amont. — been wanting to see this for fucking years
<discord-> l​amont. — so KSP is using `vessel.orbit.GetOrbitalStateVectorsAtUT(uT, out railsPosNext, out railsVelNext);` and then applying a bunch of logic to make the PhysX engine do the right thing to get that position at the next step
<discord-> l​amont. — and my guess would be that is just the front end to a kepler solver
<discord-> l​amont. — there's a whole bunch of nonsense in that block of code to deal with the inverse rotation and the kraken velocity
<discord-> l​amont. — i'm guessing though there's another method that applies the pre+post integration velocity offsets+correction variables to the PhysX engine calculations
<discord-> l​amont. — yeah so it figures out the right answers from Kepler, then it does a coordinate transform more or less to convert it to the co-rotating reference and i would bet money that egg can find some bugs in it
<discord-> l​amont. — yeah so it figures out the right answers from Kepler, then it does a coordinate transform more or less to convert it to the co-rotating reference frame and i would bet money that egg can find some bugs in it (edited)
<discord-> S​tandecco. — if you want more info, this code is in the VesselPreCalculate class
<discord-> S​tandecco. — there is a MainPhysics method that looks pretty important
<discord-> S​tandecco. — ```Cs
<discord-> S​tandecco. — public virtual void MainPhysics(bool doKillChecks)
<discord-> S​tandecco. — {
<discord-> S​tandecco. — packedInFixed = (!vessel.loaded || vessel.packed);
<discord-> S​tandecco. — fDeltaTime = TimeWarp.fixedDeltaTime;
<discord-> S​tandecco. — fDeltaTimeRecip = 1.0 / fDeltaTime;
<discord-> S​tandecco. — vessel.orbitDriver.QueueOnce = !vessel.orbitDriver.QueuedUpdate;
<discord-> S​tandecco. — lastMode = vessel.orbitDriver.lastMode;
<discord-> S​tandecco. — if (vessel.orbitDriver.updateMode == OrbitDriver.UpdateMode.UPDATE && updateOrbit)
<discord-> S​tandecco. — {
<discord-> S​tandecco. — vessel.orbitDriver.UpdateOrbit();
<discord-> S​tandecco. — }
<discord-> S​tandecco. — else
<discord-> S​tandecco. — {
<discord-> S​tandecco. — SetLandedPosRot();
<discord-> S​tandecco. — }
<discord-> S​tandecco. — if (!vessel.packed)
<discord-> S​tandecco. — {
<discord-> S​tandecco. — ApplyVelocityCorrection();
<discord-> S​tandecco. — }
<discord-> S​tandecco. — wasCorrectingDrift = false;
<discord-> S​tandecco. — correctDriftThisFrame = false;
<discord-> S​tandecco. — postIntegrationVelocityCorrection.Zero();
<discord-> S​tandecco. — preIntegrationVelocityOffset.Zero();
<discord-> S​tandecco. — if (!vessel.packed && !physStatsNotDoneInUpdate)
<discord-> S​tandecco. — {
<discord-> S​tandecco. — if (calculateGravity)
<discord-> S​tandecco. — {
<discord-> S​tandecco. — CalculateGravity();
<discord-> S​tandecco. — vessel.graviticAcceleration = gAccel;
<discord-> S​tandecco. — ranFixedThisFrame = false;
<discord-> S​tandecco. — ```Cs
<discord-> S​tandecco. — public virtual void MainPhysics(bool doKillChecks)
<discord-> S​tandecco. — {
<discord-> S​tandecco. — packedInFixed = (!vessel.loaded || vessel.packed);
<discord-> S​tandecco. — fDeltaTime = TimeWarp.fixedDeltaTime;
<discord-> S​tandecco. — fDeltaTimeRecip = 1.0 / fDeltaTime;
<_whitenotifier-9244> [Principia] pleroy opened pull request #2694: Support for affine-valued polynomials - https://git.io/JUUyy
<_whitenotifier-9244> [Principia] Pending. Build queued… - 
<_whitenotifier-9244> [Principia] Pending. Building… - http://casanova.westeurope.cloudapp.azure.com:8080/job/Principia/4475/
Blu3wolf has quit [Quit: Konversation terminated!]
Jesin has quit [Quit: Leaving]
<_whitenotifier-9244> [Principia] Success. Build finished. - http://casanova.westeurope.cloudapp.azure.com:8080/job/Principia/4475/
<discord-> m​oar ssto. — Odd that the semimajoraxis drifts faster than the real time simulation I run with the semi-implicit euler's method.
Jesin has joined #principia
<discord-> m​oar ssto. — (I used semimajoraxis as an indication for specific orbital energy)
<discord-> l​amont. — the problem is that the physics engine needs to be in the corotating frame so that the velocities are mostly removed. the physics engine needs the vessel at the origin of the coordinate system and without orbital velocities. the way that KSP is doing that (from that code above) looks like they solve the kepler problem, then tweak up some hacks so that the numbers that come out of the physics engi
<discord-> m​oar ssto. — So it's a bit more complecated than feeding the forces acting on a pointmass and get the cartesian posvel of it?
<discord-> m​oar ssto. — So it's a bit more complecated than feeding the forces acting on a pointmass into the PhysX integrator and get the cartesian posvel of it? (edited)
<discord-> l​amont. — much
<discord-> K​irk. — Doesn't PhysX actually calculate angular momentum incorrectly? (well, it intentionally calculates angular momentum differently than real life)
<discord-> l​pg. — > This is not how physics works in this universe.
<_whitenotifier-9244> [Principia] eggrobin labeled pull request #2694: Support for affine-valued polynomials - https://git.io/JUUyy
<_whitenotifier-9244> [Principia] pleroy closed pull request #2694: Support for affine-valued polynomials - https://git.io/JUUyy
<_whitenotifier-9244> [Principia] pleroy pushed 6 commits to master [+0/-0/±21] https://git.io/JUUQ3
<_whitenotifier-9244> [Principia] pleroy 318e11d - Fix some places that don't work well with Points.
<_whitenotifier-9244> [Principia] pleroy c49e79e - Serialization of affine polynomials.
<_whitenotifier-9244> [Principia] pleroy a72be29 - Undo some Poisson changes.
<_whitenotifier-9244> [Principia] ... and 3 more commits.
<discord-> s​ichelgaita. — > pretty sure they're getting it slightly wrong though
<discord-> s​ichelgaita. — Someone shared a code snippet earlier today that had: `Vector3d a = vessel.velocityD + integrationAccel * fDeltaTime;`. This looks suspiciously like a step of forward Euler. As in: let's do a bit of integration ourselves, we wouldn't want to give the forces to PhysX and let it do proper symplectic integration.
<discord-> K​irk. — Also a quote from that issue: * PhysX is crap.*
<discord-> K​irk. — Also a quote from that issue: “PhysX is crap.” (edited)
<discord-> K​irk. — Basically, PhysX does a lot of math wrong, some of it on purpose, and some of it because nobody cares
<_whitenotifier-9244> [Principia] pleroy opened pull request #2695: Extraction of a piecewise Poisson series from a continuous trajectory - https://git.io/JUU5q
<_whitenotifier-9244> [Principia] Pending. Build queued… - 
<_whitenotifier-9244> [Principia] Pending. Building… - http://casanova.westeurope.cloudapp.azure.com:8080/job/Principia/4476/
<_whitenotifier-9244> [Principia] Success. Build finished. - http://casanova.westeurope.cloudapp.azure.com:8080/job/Principia/4476/
Jesin has quit [Quit: Leaving]
Jesin has joined #principia
<discord-> l​amont. — PhysX mostly only has to make "Doom 7: Doomer and Gloomer" look like it has realistic physics near the origin and within a max of 50 m/s of zero velocity on a flat earth with constant gravity.
<discord-> B​utcher. — This would explain a lot of the random kraken effects.
<discord-> S​tonesmile. — That opens up the question; how well would principia handle a larger 'loaded vessel' range?