This project is an iteration of the falling stick physics simulator, scaled up to represent an Earth-scale orbital delivery mission.
- Spherical ECEF Physics Backend: The physics engine runs purely in NumPy, detached from rendering code. It computes 6-DOF coordinate integration and spherical targeting, exporting telemetry over a high-speed WebSocket at 20Hz.
- MapLibre GL JS Visualization: The web visualizer is a modern browser frontend that connects via WebSockets. It uses
MapLibreto render a global orthographic-style 3D map, tracking the trailing flightpath with a glowing line and the stick position with a marker. - Multi-Phase State Machine: The rocket attempts a full sub-orbital hop:
ASCENT: Fires thrusters and tilts to navigate to the target coordinates.COAST: Ascends ballistically through the atmosphere.DEPLOY: At apogee/target, dispenses a mock satellite payload.DESCENT: Falls back towards the landing zone.LANDING: Performs a suicide burn, guiding the stick vertically onto the target spot.
To execute the Web Application:
pip install fastapi uvicorn websockets numpy
python3 server.pyThen, open your web browser and navigate to: http://localhost:8000
Fill in the mission parameters on the left sidebar and click "IGNITION" to track your spacecraft across the globe!