Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Rocket Telemetry

A real-time rocket launch telemetry dashboard. A Rust backend simulates a full launch sequence and streams live sensor data over a WebSocket, while a SvelteKit frontend visualizes it as live gauges and a rolling chart.

The telemetry is simulated — no real hardware required. The backend plays through a scripted launch, generating realistic per-stage sensor values with random noise.

How it works

┌─────────────────┐   WebSocket (JSON @ 10 Hz)   ┌──────────────────┐
│  Rust / Axum    │  ─────────────────────────►  │  SvelteKit UI    │
│  backend :3000  │        ws://.../ws           │  gauges + chart  │
└─────────────────┘                              └──────────────────┘

On connection, the backend steps through the launch stages below, emitting a telemetry reading every 100 ms. The frontend keeps a rolling window of the last 100 readings, renders live metric cards (with warning/critical thresholds), and draws chamber pressure over time on a canvas.

Telemetry

Each reading contains:

Metric Unit Description
Chamber Pressure psi Combustion chamber pressure
Thrust kN Engine thrust
Flow Rate kg/s Propellant flow rate
Temperature °C Engine temperature
Vibration g Structural vibration

Launch stages

The simulated sequence runs through seven stages (~25 s total):

  1. Pre-Ignition (3s)
  2. Ignition (2s)
  3. Full Thrust (8s)
  4. Max-Q (4s) — point of maximum aerodynamic stress
  5. Throttle Down (3s)
  6. Throttle Up (3s)
  7. MECO (2s) — Main Engine Cutoff

Tech stack

Backend: Rust · Axum · Tokio · Serde Frontend: SvelteKit · Svelte 5 · TypeScript · Vite

Getting started

Prerequisites

Run the backend

cd backend
cargo run

The server starts on http://0.0.0.0:3000 with:

  • GET /health — health check
  • GET /ws — telemetry WebSocket stream

Run the frontend

cd frontend
npm install
npm run dev

Open the URL Vite prints (default http://localhost:5173). The dashboard connects to the backend WebSocket automatically and starts streaming once the backend is running.

Project structure

.
├── backend/            # Rust + Axum WebSocket server
│   └── src/
│       └── main.rs     # server, telemetry generation, launch sequence
└── frontend/           # SvelteKit dashboard
    └── src/
        ├── routes/     # main page (gauges + chart)
        ├── components/ # chart component
        └── lib/        # websocket + rendering helpers

Roadmap

  • WebGPU-based chart rendering
  • Charts for all metrics (not just chamber pressure)
  • Configurable / restartable launch sequence

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages