An open-source telemetry overlay for NASA’s Artemis II mission. It works directly in your browser or in an OBS Browser Source!
I’v used Claude to understand which data was what in the raw data feed from NASA API
An open-source telemetry overlay for NASA’s Artemis II mission. It works directly in your browser or in an OBS Browser Source!
I’v used Claude to understand which data was what in the raw data feed from NASA API
Shippppppping!!!! So, the hardest part of the project was definitely reverse engineering the raw vector data from a hidden Google Cloud text file used by the official Artemis website, but I still figured it out. The the math and logic to translate those vectors into metric units went smoother. I’m really proud that it actually works as an OBS source for anyone who wants to track the mission in a cool way!
Hey! This is the first and only devlog of the projet, I’m really sorry but I did not think of submitting the projet to flavortown thats why I did not write one before. Anyway lets explain what the projet is and how it works!
The idea of the project came because I went to the NASA ARTEMIS II ARROW website (https://www.nasa.gov/missions/artemis-ii/arow/) and noticed all the telemetry was using imperial units (which I dont use), so I tried to find a way of scrapping the data to then convert it in metric unit.
.
.
What I tried:
Scraping the website directly was not possible because it’s a Unity 3D space and loading this on my servers was just blowing the ram. Even though it sometimes worked, it wasnt reliable. I also tried scrapping the accessibility page from the website, but I ran into the same issues and it was just too complicated. Finally, I decided to find the actual data source and use it directly. That worked! It fetches the same data as the official website and then does a bunch of math to make it usable.
.
.
Why so many hours for such a “small” project ?:
Well first of all the project can seem “small” but it isn’t really. I got to configure the server, configure the API and the most important: decode the raw data into usable data. Spending 7 hours on this was necessary because I wasn’t just building a UI, I was building a translator for NASA’s internal telemetry.
.
.
Where does the data come from ?:
When you load the official websites, it fetches everything it needs from a .txt file hosted on google cloud. That file is what I need to get the data. BUT I ran into an issue: the data isn’t stored as plain clear text. It’s actually a bunch of values which appear to be vectors, and that’s when maths come in. I had to guess which vector was wat and then do a bunch of math to “translate” all of those vectors into speed, time, etc. That was by far the hardest part, and though I used Claude to help me understand the logic, I still had a few issues getting everything to align perfectly.
.
.
How does it works ?:
Well once we have all the data we can create a webpage (using HTML, JS and CSS), create a Python backend using FastAPI and create a main file to handled the connections using WebSocket. Once everything is done you can connect to the page, either in your browser or directly using an OBS Browser Source. If you read till here, wow you are really and awsome person :)
.
.
Thanks for reading, I know making a single devlog is not ideal and I’m really sorry for that, but anyway, stay tuned!
Log in to leave a comment