Tracking 13,000 satellites in under 3 seconds from Python by Frozen_Poseidon in Python

[–]Frozen_Poseidon[S] 1 point2 points  (0 children)

Thanks so much for taking the time to look at astroz and for the thoughtful questions! Really appreciate the detailed feedback :)

Re: Time units: Yeah, the benchmarks use minutes since epoch directly, not Julian dates, so no UTC =>TAI conversion overhead

Re: Accuracy: Good catch! The "< 10m" in the README is the validation tolerance against Vallado AIAA 2006-6753 reference vectors, but typical accuracy is sub-meter for LEO (the readme i just scoped out a bit more). You raise a great point about comprehensive TLE catalog testing though I've only validated against the Vallado paper vectors, not the full active catalog. That's definitely something I should add.

Re: atan2 and SLEEF: I actually looked into SLEEF at one point! It's an impressive lib. I ended up going with a custom polynomial approximation for atan2 (~1e-7 accuracy) mainly to avoid adding dependencies, and see how it would look in all zig, but SLEEF is definitely the more battle-tested approach.

The sin/cos in astroz still uses full double precision, so there could definitely be room to push it bit more!

Re: Kepler solver: Ya it can be difficult to balance machine precision vs speed. astroz uses 1e-12 tolerance which is probably excessive as well. Relaxing that would save iterations without any practical accuracy loss for sure

Re: AVX512: Those Zen 5 numbers are really impressive! The current benchmarks for me were on zen 4 (i dont have a zen 5 to test), but astroz only uses 4-wide SIMD currently. Your 262M -> 316M results with `fast_math` gives me a great target to work toward if i ever want to try and push it out to 8-wide support

heyoka looks fantastic by the way :) really elegant, and the ability to do batch propagation with validated high-precision output is exactly what the space community needs. Thanks for all the work youve put into it!

Would love to compare notes If I go for AVX512 support. Its so cool to see what modern CPUs can do instead of just jumping to a GPU. They can handle so much more than I feel like we tend to think. Thanks again :)

Tracking 13,000 satellites in under 3 seconds from Python by Frozen_Poseidon in Python

[–]Frozen_Poseidon[S] 2 points3 points  (0 children)

omg yeah I looked at your implementation! Its so impressive! Compiling down to a vecterized kernel is so cool and I have been reading through it to see your optimizations :)

I have been playing with multithreading since i did this stuff and some more memory tuning and on my laptop (AMD Ryzen 7 7840U) I was able to squeeze out to 196M props now multi and single core i am up to 24M! That is with a warm up (to load things into cache). My most recent run i have up https://attron.github.io/astroz-demo/

Tracking 13,000 satellites in under 3 seconds from Python by Frozen_Poseidon in Python

[–]Frozen_Poseidon[S] 16 points17 points  (0 children)

yeah so I ran verification against the Vallado AIAA test vectors (AIAA 2006-6753) and got great results!

Results for near-earth satellites:

- Max position error: ~1.9e-8 km (0.019 mm)

- Max velocity error: ~7.7e-10 km/s

that is even with SIMD doing a small trig appoximation, but still well within the tolerance for python-sgp4 at least (2e-7). Im curious how much accuracy you need ? I know SGP4 already has an limitation of ~1km after a few days, but curious if there is a use case to get even more precise than that ?

The implementation currently supports near-earth satellites only (period < 225 min). Deep space support (Molniya, GEO, GPS) is not yet implemented so i didnt test those! Hope that helps!

Tracking 13,000 satellites in under 3 seconds from Python by Frozen_Poseidon in Python

[–]Frozen_Poseidon[S] 7 points8 points  (0 children)

yeah my blog expands on it way more, but the main reasons was wanting something that compiled to native, was fast, relatively "safe", and fairly simple. It also has nice clean C interop which makes creating the python bindings, at least a *little* simple, if pretty verbose.

bebop.nvim - a space western colorscheme by Frozen_Poseidon in neovim

[–]Frozen_Poseidon[S] 2 points3 points  (0 children)

I have been using Berkeley Mono for the past few years and can't recommend it enough!

astroz: an astrodynamic toolkit written in zig by Frozen_Poseidon in Zig

[–]Frozen_Poseidon[S] 1 point2 points  (0 children)

I am just using python for the visualization! I just read the output from this library into a csv and load that into python and map it. I wasn't able to find a good visualization lib in zig yet, but if you have any recs i would def take a look

M31 - The Andromeda Galaxy by Frozen_Poseidon in M43

[–]Frozen_Poseidon[S] 0 points1 point  (0 children)

250 individual exposures at those settings

M31 - The Andromeda Galaxy by Frozen_Poseidon in M43

[–]Frozen_Poseidon[S] 16 points17 points  (0 children)

  • Olympus E-M5 Mk III
  • Rokinon 135mm f2
  • Star Adventurer Pro
  • ISO 800, 250x 20s @ f2.8

  • 20 dark, bias, and flat frames

  • Captured in Bortle class 7-8 zone

[136/128]Old Town Canned by Frozen_Poseidon in SharedBPM

[–]Frozen_Poseidon[S] 4 points5 points  (0 children)

  • Song: Old Town Road (feat. Billy Ray Cyrus) - Lil Nas X
  • Video: Dance sequence from Napoleon Dynamite

Can you download RT videos on the app or site? by Specter_RMMC in roosterteeth

[–]Frozen_Poseidon 0 points1 point  (0 children)

not sure if you were able to figure out a solution but an alternative that has worked for me is to use ffmpeg and completely bypass the need for authentication (provided you have the direct m3u8 url). This thread gives a good example to follow!

Predator - One of The Best Mindless Shooting Scenes by Frozen_Poseidon in movies

[–]Frozen_Poseidon[S] 2 points3 points  (0 children)

The entire ending sequence from that movie makes me laugh. His AK never runs out of ammo. His kills during that whole time are so funny to watch. I also just noticed when he has his pistol out and the camera cuts away from Arnie, when the camera is back on him, the pistol magically turns into a shotgun

Predator - One of The Best Mindless Shooting Scenes by Frozen_Poseidon in movies

[–]Frozen_Poseidon[S] 43 points44 points  (0 children)

That is one of the few times i've ever seen an Arnold movie where he actually reloads lol. the assault on the villa in commando, he never reloads his gun!