Variable gravity
Variable Atmospheric drag (US Standard Atmosphere 1976)
Multi-stage rockets
Closed-loop guidance / pitch programs (works well within ranges 350km to 600km)
Orbital prediction and thrusting options to change your orbit.
The feedback I'm looking for is: UI improvements and possible future physics implementations that I can work on.Current code and physics can be found at: https://github.com/donutTheJedi/Rocket-Launch-Simulation
If it's your thing you could try implementing it and getting a single continuous burn to final orbit.
Awesome work BTW!
[1] https://ntrs.nasa.gov/citations/19740004402
[2] https://github.com/Noiredd/PEGAS
Edit: I now see it's on your roadmap, so I guess it is your thing.
https://github.com/lamont-granquist/KSP-KOS-PEG/blob/main/li...
Biggest low-hanging fruit UI improvement would be mobile responsiveness. It was a bit challenging testing on my phone.
Looking forward to seeing the next iteration. Nice work.
How accurate are the simulations? I'm able to get orbit by turning 45 degrees as soon as I launch and then doing some minor burns at the height of the initial trajectory.
I don't feel like this strategy would work in real life.
We just don't do it on Earth because we need to get out of the atmosphere first for efficiency and structural reasons. But on the moon or another vacuum body, "diagonal kick followed by minor circularization burns at apogee" is pretty close to the optimal strategy. Even on Earth, it's similar to the trajectories proposed by SpinLaunch and other "space cannon" concepts.
If this was your 3rd time implementing an orbit simulator and you just wanted to get the bulk done quick so you could move on to work on new stuff then that's when having AI write the bulk & doing checking really works best as you're already an expert in what needs to be done rather than trying to learn about what needs to be done from someone/something else doing it for you.
I say this as an orbital dynamics simulator in C++ having been one of my first big projects I put in a portfolio myself :). And I also like to use AI often, I'm not an AI hater in general, just I like to use in certain specific ways sometimes.
Feedback on the UI side: It'd be cool if the stars used more random positions rather than sine/cosine looking patterns. There are lots of different approaches one could try (from simple random positions to very complex types of clustered randomness and brightness variation to realistic star maps). My suggestion would be to ask AI what types of approaches could be taken and try implementing whichever approach sounds the most fun!
If I were to be someone who just tells AI "implement drag" and lets it do it then sure, im not learning, but if I do my research outside and just use AI to translate what I give it into the language of computers I feel like im not only building something cool but im understanding whats happening because AI is just translating.
So basically while yes I do believe that AI can be harmful if you approach it inproperly, it helps novice programers implement cool things by just using english.
You could learn coding same way as you learned the physics and dynamics. Programming and physics aren't mutually exclusive. Actually every physicist is (was?) required to know (multiple) programming (languages).
>If I were to be someone who just tells AI "implement drag"
That'll mean at least you understand drag. Could do even worse, regards to learning at least rather result, prompting something like "make a cool-looking physically-realistic 2d rocket launch simulator", which we're at point that will most certainly return a functional app.
>but im understanding whats happening
Do you though? You depend on AI correctly translating your natural language input to code. Though arguably this is something LLMs excel at, since math (logic) also plays role you've to be able to at least read and review the resulting code for correctness. (Assuming you actually care about the physical accuracy that is.)
The main thing is the author did normal research and then gave it to AI to make it happen and verified it seemed to match what they asked for. In that, AI helps build the demo but it's not really adding anything to the understanding of the physics than reading about it in the first place did (akin to reading a post of someone else doing something, reviewing their code, and putting it in your project rather than trying to work with the new ideas yourself). Similarly, having AI write 90% of the code is not really helping you get familiar with the code any more than telling it which physics formulas to implement helps you get more familiar with the formulas.
OTOH, asking AI to help validate your research and understanding before going in to write the code helps you learn things like "the rocket shouldn't be flying right at takeoff just because the planet is spinning". Having AI help debug code issues you can't figure out in the code you wrote yourself (but not having it fix them for you directly) helps you really test 100% of the understanding you're trying to demonstrate instead of testing if you can say another's implementation seems reasonable.
If the only goal is to get to generate output instead of learn, then the calculus of course changes. E.g. yesterday I wanted to run an optical flow method for heart rate posted here in my browser. I wasn't really seeking to learn about it, I just didn't have python set up on my machine with the good webcam and wanted to play with the author's demo live. So I copied the article into AI and told it to make it into a single page HTML app. I didn't learn much of anything more than the article already covered in doing so, however I did achieve my goal of having some output to mess with instead of learning.
It would be like jumping, and finding yourself ~250-400 meters away from where you lept by the time you landed.
That said, neat project, and way fun learning experience. Good job.
JK, nicely done! lots of fun to watch.
Completely unrelated bug: pitch control can go down only to -5 degrees.
I've been toying with the idea of building something similiar but with a bunch of different space stuff, like a calculator for different rotating space station geometries, mars/lunar cycler orbits, or solar shade sizes/distances.
It's been many years since I've done this kind of stuff in school and it's great to be able to refresh yourself on this stuff. The kind of UI you're using makes it really friendly and approachable, like a game.