You are browsing as a guest. Sign up (or log in) to start making projects!

1h 37m 8s logged

Devlog 1: Kerbal Gravity Program (KGP)

KGP is a mission planning tool I am building for KSP players and actual aerospace engineers to map out complex trajectories. Loosely based on Skyfield, Poliastro and trajectorize, The goal is to make it easy to plot out massive interplanetary trips, whether you are trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune.

What I Did Today

  1. Mapped out the 4-phase development roadmap

    • Decided to use a mix of C++ for raw execution speed and Python for fast development.
    • Phase 1 (Basic Systems): Building out the underlying math frameworks and foundations.
    • Phase 2 (CLI Interface): Creating simple command-line helper functions.
    • Phase 3 (GUI Interface): Designing a desktop app version with a clean installation setup.
    • Phase 4 (Web Interface): Deploying a browser version so anyone can use it without downloading a thing.
      (Note: Organized it this way to work around the Stardance demo link limits while keeping the scope clear).
  2. Coded the Universal Time Converter

    • Wrote the core function that converts calendar dates directly into raw seconds.
    • Made sure it seamlessly handles both Kerbal time standards and real-world J2000 epoch timelines.

What I Learnt

  • Numba memory management: I found out that numba (the Python library I’m using to get close to C++ speeds) really struggles when handling pointers and raw memory addresses.

  • Python can actually segfault: It actually threw a segmentation fault—which felt crazy to see inside Python code! Because of this, using nb.defered_type() is completely out of the picture for this architecture, so I’ll have to use something like scipy and numpy.

well for your entertainment, here is a screenshot of me trying to figure out why the hell was VS code giving me a problem (i forgot a semicolon on the line before):

0
5

Comments 0

No comments yet. Be the first!