An experimental rocket-flight simulator with a browser-based 3D globe, live telemetry and CSV flight logs.
The project extends a falling-stick simulation into a simplified Earth-scale launch, payload-deployment and landing scenario. It is an educational prototype for exploring physics, guidance and visualisation; it has not been validated for aerospace engineering or real flight operations.
The application in its initial standby state, before ignition.
- Simulates motion and attitude in Earth-centred Cartesian coordinates using NumPy and SciPy.
- Progresses through ascent, coast, payload deployment, descent and landing phases.
- Streams telemetry from a FastAPI backend to the browser over a WebSocket, targeting 20 updates per second.
- Displays the vehicle and flight path on a CesiumJS globe.
- Writes separate vehicle-state and mission-telemetry CSV files to
logs/.
Use Python 3 and run commands from the repository root. A virtual environment keeps the simulator's dependencies separate from other projects.
python -m venv .venvActivate it on Windows:
.venv\Scripts\Activate.ps1Or on macOS / Linux:
source .venv/bin/activateInstall dependencies and start the application:
python -m pip install fastapi uvicorn websockets numpy scipy
python server.pyOpen localhost:8000, enter launch, payload and landing coordinates, then select IGNITION. The interface displays the mission phase and flight telemetry while the simulation runs.
The browser loads CesiumJS, styling and globe imagery from external services, so an internet connection is needed for the full visual interface.
| Path | Purpose |
|---|---|
physics.py |
Simulation state, coordinate conversion, forces, attitude and mission guidance |
server.py |
FastAPI application, static assets and WebSocket telemetry |
web/ |
Browser interface and CesiumJS visualisation |
logs/ |
CSV flight-state and diagnostic telemetry output |
falling_stick.py |
Earlier standalone falling-stick simulator |
The model uses a spherical Earth, hard-coded vehicle constants and simplified guidance and environmental assumptions. Mission outcomes depend on the selected inputs; the interface does not guarantee a successful deployment or landing.
The backend advances the model in 0.05-second steps and currently performs two simulation steps per telemetry update. This makes simulated time advance faster than wall-clock time.
The server is a local development prototype. There is no published numerical validation or benchmark suite establishing physical accuracy.
