Lox – Oxidized Astrodynamics – A safe, ergonomic astrodynamics library

1 day ago (github.com)

Oh, hi! Project creator here.

I am very happy that you folks are showing interest but I am also terrified because this thing is definitely not ready for primetime, yet. The discerning astrodynamicist and/or rustacean will surely find things which are less than optimal or plain wrong.

I am also preparing for a trip so I won't be able to monitor this thread closely but I'll try to answer question wherever I can.

  • Can I build a solar system simulator with this? Looking for calculating the absolute positions of planets and moons with the sun at 0,0,0 given a datetime. Kepler calculations for planets, moons etc would be fine, as long as I can insert arbitrary objects and calculate their trajectory using gravity. Can this project do that?

    • We already have the possibility to get positions of celestial bodies with very high precision via JPL ephemerides but you would have to write and integrate your force model yourself.

      1 reply →

  • Hey, this is really impressive stuff, talk about a dream job! Two quick questions if you find the time+interest:

    1. What does "safe" imply? Type safety, maybe? Or just a general synonym for "few bugs/well tested"?

    2. What kind of industry is this primarily envisioned for use in...? I have experience in the satellite industry (GRE and TT&C) but I was surprised to not see the usual buzzwords on this page, namely "TLEs". I get that it clearly does way more than terrestrial orbital work, but AFAIK that's, say, 99.9% of the current space industry.

    In other words: is this library for ESA missions??? That would be rad as hell, if so.

    also P.S. I love AI art compared to most, but I would def recommend carving out that cool crab and putting on a background of real stars. As you may or not be aware, many scientists have been a tad radicalized about AI, and AI art in particular -- would be a shame if that slowed adoption of a cool project!

    • 1. Safe as in type-safe, memory-safe, and null-safe in contrast to the state of the art which is mostly C++, Java, and tons of ancient Fortran.

      2. At the moment, we are using it for speeding up Python code for telecommunications constellation design.

      I want to commission a real human artist to design a logo and header image in the future. The AI art is a nice placeholder.

      P.S.: I wish this was my day job. I actually had to quit my job at a major aerospace contractor to be able to work on this project.

    • Ground Receiving Equipment, Telemetry, Tracking, & Control, and two line rlement sets. Apparently everything you need to predict orbits of a satellite are contained inside TLEs metadata and is considered a good way to share orbital information between disparate parties.

      2 replies →

It is kind of sad to be living where it's too early to have your own space craft. It is sci-fi at this point anyway to consider life like that, but that would be cool to write software for like car CAN bus. But I also get it's not a toy/matter of life and death. I guess a video game or simulator is the closest thing. Standardized APIs for thrusters or something that would be cool.

Tie into visual star navigation

  • People can't even afford the cars they finance. Having your own plane is extremely rare. Even if you COULD have your own space craft, they would be more rare than owning a plane.

  • My dad bought a Belite ultralight aircraft. It arrived with the propeller too long so he damaged the motor the first time he booted it up. Rather than fixing the struts and wheels, they fucking cut the propeller shorter. The left wing was 3" longer than the right wing. It is an Italian motorcycle engine.

    You might try to Google belite because that sounds awesome, right? My dad told Mr he was selling the plane when he got it back from belite, but decided to fly it one last time.

    The engine failed at like 1000' after takeoff and piledrove him into some poor bastard's farm a quarter mile from the airport. The fucking plane could not even glide.

    Random ass people driving is bad enough. I have dozens of gigs of dashcam videos of all manner of insane, mad, evil, stupid, degenerate driver in my more recent 100,000 miles traveled in the US.

  • It will probably never be feasible to have "your own" spacecraft like we have cars. The time and distance scales are just way too huge. Something more resembling the scale of a superyacht might become possible in the far future.

I work on simulations in a satellite company and have been looking for a way to move out of c++. Thank you very much, will explore this.

  • Just curious, what kind of simulations do you work on (mission design?) and what libraries would you use in C++?

There is another crate in Rust named Nyx [1] that sounds very similar - an astrodynamics library with a Python wrapper. Anyone knows how they compare?

[1] https://github.com/nyx-space/nyx

With a name like 'lox' you'd think the banner image would be Pisces.

Cool project though, I will definitely be playing around with this.

  • Pardon my ignorance, but how does lox relate to Pisces? I don't get the connection with cancer either, but the first thing that comes to mind on hearing Lox is liquid oxygen as it is used in rockets. So it's a connection between Rust language and astrodynamics. Is there something that makes Pisces more appropriate for this?

  • > With a name like 'lox' you'd think the banner image would be Pisces.

    It's written in Rust so it's all about the language instead of the mission.

    • Nah, not really. I sometimes wish that this was all about Rust but as of now the library is mostly being used through the Python wrapper.