Jump to content


  • Posts

  • Joined

  • Last visited


66 Excellent

1 Follower

Recent Profile Visitors

1,343 profile views
  1. I've overhauled the way planets and orbits are displayed (switched from using PlotlyJS to THREEjs). They should now not only be more responsive and load more quickly, but also look a lot prettier! There are also a bunch of new things that can be displayed (crafts, maneuver nodes, apo/peri apses, ascending/descending nodes, a skybox). I've also improved the "Refine Transfer" and "Refine Trajectory" buttons, which should converge more quickly (usually with a single button press).
  2. I've add savable/sharable links for each page of the app. Here are a few examples: Multi-Flyby Planner: Cassini-like mission in RSS Transfer Planner: Minmus to Laythe in JNSQ, with Oberth maneuvers a transfer in a custom system Flight Planner: Minmus to Laythe in JNSQ, with Oberth maneuvers System Editor: a custom system I've also made various UI improvements and have attempted to make the app mobile-friendly. There are some quality-of-life improvements for PC browser users as well (try holding ctrl, shift, or alt while clicking the +/- buttons for number inputs).
  3. The system editor is now up and running: you can manually add/remove, tweak, and rescale bodies, or you can upload all of your Kopernicus configs at once! I've tested it with the OPM, JNSQ, RSS, and KSRSS config files, but there may be some planet packs out there that the app doesn't read properly. @OrbitalManeuvers since you were interested, it is now fairly easy use the KSRSS x2.5 system with the app. Navigate to the System Editor page, select the KSRSS (1x) system from the dropdown, and enter "2.5" in the system scale field. Then, when you navigate to the other pages in the app, you can select the rescaled KSRSS system as the "Custom System."
  4. I got a little sidetracked from getting the system editor up and running, but I stumbled across a potentially great way of saving/sharing trajectories and custom systems: storing the info in the URL hash! I'm still making sure that it works with a variety of inputs, but when using the Flight Planner, the URL will automatically update with every change to your flight plans. If you copy the URL and reload it or share it, your flight plans should once again be visible. Here's an example Kerbin-Eve-Laythe trajectory I put together as an example: https://kerbal-transfer-illustrator.netlify.app/FlightPlan#vesselPlans=[{"name"%3A"Copied+Multi-Flyby"%2C"orbit"%3A{"semiMajorAxis"%3A699999.9999999988%2C"apoapsis"%3A699999.9999999988%2C"periapsis"%3A699999.9999999988%2C"eccentricity"%3A0%2C"inclination"%3A0%2C"argOfPeriapsis"%3A0%2C"ascNodeLongitude"%3A0%2C"meanAnomalyEpoch"%3A0.9350468499583543%2C"epoch"%3A57510913.62193195%2C"semiLatusRectum"%3A699999.9999999988%2C"siderealPeriod"%3A1958.1284360312395%2C"orbiting"%3A1%2C"attractorSoi"%3A84159286%2C"attractorStdGravParam"%3A3531600000000}%2C"maneuvers"%3A[{"prograde"%3A1162.0658346989326%2C"normal"%3A-291.62622614152446%2C"radial"%3A-1.0231815394945443e-12%2C"date"%3A57510913.642115}%2C{"prograde"%3A630.329%2C"normal"%3A0%2C"radial"%3A0%2C"date"%3A62010402.6}%2C{"prograde"%3A0%2C"normal"%3A-12%2C"radial"%3A0%2C"date"%3A85082400}]}] And here's a different trajectory, a transfer from Earth to Mars: https://kerbal-transfer-illustrator.netlify.app/FlightPlan#vesselPlans=[{"name"%3A"Copied+Transfer"%2C"orbit"%3A{"semiMajorAxis"%3A7371000%2C"apoapsis"%3A7371000%2C"periapsis"%3A7371000%2C"eccentricity"%3A0%2C"inclination"%3A0%2C"argOfPeriapsis"%3A0%2C"ascNodeLongitude"%3A0%2C"meanAnomalyEpoch"%3A0%2C"epoch"%3A0%2C"semiLatusRectum"%3A7371000%2C"siderealPeriod"%3A6297.970191292341%2C"orbiting"%3A1%2C"attractorSoi"%3A924649202.461023%2C"attractorStdGravParam"%3A398600435436096}%2C"maneuvers"%3A[{"prograde"%3A3766.375123262773%2C"normal"%3A769.5263141771914%2C"radial"%3A-3.410605131648481e-12%2C"date"%3A59983204.17753832}%2C{"prograde"%3A-2606.6521705082287%2C"normal"%3A703.3126569013859%2C"radial"%3A8.918517897896256e-13%2C"date"%3A86416920}]}]&systemName="Sol+System+(RSS)"
  5. Hi! Coming in with what might be an unusual question, and I hope this is the right place to ask: I'm working on loading Kopernicus configs into a web application to be used for flight planning, and I'd like to be able to let a user upload a set of body configs as well as their save file. For the save file to be read correctly, I'd need to have some way of figuring out the reference ID for each body. My question is: for a given set of configs, is there any way to know without loading the game what reference ID each body will have? Let's say I'm interested in getting flight details from a KSRSS save, for example. The flightGlobalsIndex field has been commented out of its configs (unlike those for RSS). Is there any way I could assign reference IDs to each body based solely on the configs, which would allow me to accurately assign orbits from the save file to the correct body? Related question: if there's not a good way to do this, are reference IDs assigned the same way across different installations of the same planet pack? (e.g. for two different users on two different machines that have installed KSRSS, will the reference ID for Jupiter always be 5?)
  6. Rather than manually adding separate options for rescaled systems (1x, 1.5x, 2x, 2.5x ...), I plan to add a "System Editor" page to the app, which lets you modify existing system options (add/remove planets, edit orbits, rescale the entire system, etc). This will hopefully be enough to allow people with less commonly used solar systems to use the app as well. It seems like the format used for the Kopernicus configs is the same one used for save files, so I should be able to use the savefile parser that I have now to let users upload configs rather than have to type in everything manually. Once I have Kopernicus config parsing squared away, it will be really easy for me to add (popular) planet packs to the app, so that no upload is needed. I'll make sure KSRSS gets added! I appreciate the offer! Usually, the relevant info that's needed is in the Github repo for the planet pack (the Kopernicus configs), so there's no need to look at actual installs. EDIT: Kopernicus configs may not contain the reference ID, or "flightGlobalsIndex", for each body. I'm not sure how these get determined if a value isn't provided, so it might be necessary to install a planet pack to check.
  7. I've added the option to select OPM and RSS systems. Eventually, I plan to add an additional page to the app that allows users to input custom modded systems, but I haven't gotten there yet. Here's an Earth-Venus-Venus-Jupiter-Saturn multi-flyby:
  8. Done! Apoapsis and periapsis are now shown in each orbit's hover text. I can't change font color for only part of the hovertext if the periapsis it too low, but I also added the radius and atmosphere heights to the hover text for bodies, so it's easy to manually check.
  9. Hmmm, not sure what's causing that either, so I'll try to take a look to make sure the app doesn't hang, at least. I don't simulate atmospheres at all, other than to require that flybys don't pass through them, so leaving off the insertion burn is probably your best bet if you're confident you can bleed off most of your velocity by aerobraking.
  10. Here is fine! The git repo would be good as well: https://github.com/theastrogoth/Kerbal-Transfer-Illustrator/issues Thanks for asking Good catch! I'll see if I can track down the source of the problem.
  11. Along with some improvements to the UI, I've added a new page to the app: the Flight Planner! It's my attempt at a web version of KSP's tracking station or orbital map view: you can place and edit maneuver nodes, and then see how the trajectory is affected in real time! There a new navbar at the top of the app for navigating between the three pages, and you can copy/paste orbits, maneuvers, and flight plans between the three pages. This makes it easier to plan multi-step missions. For example, you could calculate a transfer needed to rendezvous your craft in LKO with a refueling station around Minmus, and then calculate a transfer from there to Laythe. Most of the work for this wasn't math/astrodynamics, but coming to grips with React in order to get the UI to work correctly. If you try it out, let me know if you notice any bugs or strange behavior!
  12. I've added a new option to use two-impulse (aka Oberth) maneuvers for ejection/capture. They involve slowing the craft down to decrease the periapsis height as low as possible, and then burning at periapsis, where the speed of the orbit is large. They're useful when the parking orbit altitude and ejection/insertion speed are large. One downside is that they increase the total flight time somewhat. They're not too difficult to plan manually, and I'm not aware of another tool for KSP that sets them up for you. Below shows a direct ejection and Oberth ejection starting from Minmus: For some transfers (e.g. Minmus to Jool/Laythe), using Oberth maneuvers can lead to huge ∆v savings. For others (e.g. Minmus to Duna/Ike), they are probably not worth the trouble.
  13. I've added "refining" of the multi-flyby trajectories to try to ensure good in-game accuracy. Below example of what it looks like for a Kerbin-Eve-Jool-Eeloo flyby. Since Jool has a large sphere of influence, assuming that its SoI is negligible during interplanetary transfer calculations introduces some error. Without "refining" the trajectory, it looks like this: The above image shows the drawbacks of using the zero SoI assumption for calculating the interplanetary transfers. The transfer legs of the trajectory don't change at Jool's SoI, and the craft is assumed to essentially hit Jool dead-center. The flyby is also assumed to be instantaneous. I attempt to overcome these limitations by optimizing the "patch" positions at every SoI change to minimize the difference between the craft's position on either side of the SoI boundary. Here is the same trajectory after pressing the "Refine Trajectory" button a few times: Now the craft encounters and escapes from Jool at the appropriate directions! Also note that the flyby duration is taken into account. Altogether, this means that if you try to use the maneuvers generated by the app, they will need less fine-tuning in game. For a trajectory with well-optimized SoI patches, the only simplification that might still cause you problems is the assumption that maneuvers are performed instantaneously (which is also assumed by maneuver nodes in KSP). For this reason, the trajectories calculated by the Transfer or Flyby Illustrators might not be suitable for low-thrust crafts.
  14. I've put together a similar web app for planning multi-flyby missions! https://theastrogoth.github.io/Kerbal-Transfer-Illustrator/#/Flyby Shoutout to @Arrowstar and @Krafpy for the enormous help that their projects provided. As always, let me know if you notice any issues or have any other feedback.
  • Create New...