FlightScope
- 6 Devlogs
- 21 Total hours
A Python app to analyze rocketry flight data.
A Python app to analyze rocketry flight data.
In this cycle, I expanded FlightScope’s analysis capabilities with a new Flight Comparison Dashboard! Now, users can load in two flights at the same time, comparing trajectories and detected flight events side-by-side. These additions make it endlessly easier to analyze design changes, motor selections, and overall flight performance across multiple launches.
Added a dedicated Flight Comparison Dashboard.
Implemented dual-flight visualization for altitude, velocity, and orientation telemetry.
Added automatic launch detection and time normalization so flights can be compared from liftoff.
Implemented automatic event detection for:
Added event markers directly onto comparison graphs.
Added a Comparison Summary table displaying key event timestamps for both flights side-by-side.
Improved dashboard responsiveness by moving admin sidebar initialization outside of rendering bottlenecks.
Updated docs and README! By the way, FlightScope is fully public on GitHub, go check it out :)
The challenge this time around was making sure the flight comparison dashboard was actually useful, so I spent some time designing features such as time normalization and side-by-side data viewing to make it very clear to the user where flight differences were present.
So much progress is being made on this funny little program, I’m so very pleased with how FlightScope is coming along! That’s all for now, folks. See you in #7!
This development cycle focused on major new steps to improve the dashboard. The biggest addition was a complete 3D flight reconstruction pipeline capable of calculating rocket orientation from telemetry data and rendering the flight path frame-by-frame.
This chunk of progress was heavy on debugging.
The first challenge was reconstructing a realistic rocket orientation from flight data. Position alone wasn’t satisfying in replay, so I implemented zenith and azimuth calculations that adds rotational orientation to the flight replay
The biggest issue I had, however, was actually combining flight frames into a video and implementing it on the dashboard. Video formats didn’t treat me well, but I figured out the correct pipeline with lots of trial and error and checks of every step of the system.
FlightScope has evolved from plotting telemetry to actually visualizing the flight itself. Seeing a rocket fly through a reconstructed 3D trajectory using real telemetry data is a huge milestone for the project, and I’m excited to keep pushing the visualization tools further.
I’ve spent more time improving FlightScope’s usability and flexibility, focusing on a cleaner code structure, a more resilient data importing pipeline, and compatibility with OpenRocket simulation exports.
Getting OpenRocket compatibility working was more difficult than expected due to differences in column names, units, and CSV formatting. I redesigned the import pipeline to standardize telemetry data before it reaches the database, making FlightScope much more flexible.
FlightScope is now fully documented on GitHub:
https://github.com/zombieking1555/FlightScope
devlog 4 in the bag, now that’s some type stuff. And check this demo:
Spent more time improving FlightScope’s flight data pipeline, with a focus on making the test flights more realistic, trimming extra idle data, and detecting key flight events more reliably.
Getting event detection to work reliably took some tuning, especially with noisy acceleration data. Landing detection also needed a little extra care so the plots would stop cleanly at touchdown instead of including a lot of extra idle data.
FlightScope is really coming along! I’m excited to see where this project takes me until the next devlog.
Spent more time developing FlightScope, focusing on improving the local flight database structure and making smaller quality-of-life changes to keep the app scalable and easier to maintain.
flights.db is created locally instead of being stored in GitHub.Removing flights.db from GitHub was more challenging than expected (thanks, .gitignore). This led to the creation of create_db.py, which removes the dependency on a tracked database file and allows FlightScope to generate a local database automatically on startup.
It’s been real, see you next devlog.
Added a Streamlit app that lets me upload flight CSVs, stores telemetry in a local SQLite database, and plots Altitude vs Time. I also added a small test data script that generates synthetic 200 Hz flight logs so I can quickly test the interface without real rocket data.
test_data_writer) producing 200 Hz test flightsflights tabletelemetry tablesession_state + rerun handling due to UI reset behaviorHaving a lot of fun with this project, see you in the next devlog!