Syren

Inspiration

Air traffic tracking tools offer a window into the sky, but traditional radar visualizations leave non-experts guessing about squawk anomalies, emergency statuses, and flight behaviors. We set out to bridge the gap between complex ADS-B telemetry and actionable intelligence. Syren was born from the idea that anyone should be able to view real-time and historical flight data paired with instantaneous, context-aware AI explanations.

What it does

Syren is a real-time and historical flight tracking platform with an integrated AI copilot:

  • Live & Replay Mapping: Stream live airspace traffic or replay target historical dates using high-efficiency binary search snapshotting.
  • Anomaly Detection: Highlight emergency squawk codes and flight irregularities automatically using visual alerts.
  • AI Copilot (Gemini): Select any aircraft to trigger an instantaneous analysis that breaks down state metrics, flight trajectory, and anomalies into structured insights.
  • Data Export: Export airspace snapshots and historical flight traces for custom analytical workflows.

How we built it

  • Frontend: Built with React and TypeScript (src/App.tsx), utilizing Deck.GL for high-performance canvas rendering of active aircraft icons and trajectory traces.
  • Backend Adapter: Powered by Python, featuring a live data adapter (backend/live_adapter.py) that filters, normalizes, and flags stale position data.
  • Replay Engine: Implemented in backend/replay.py and backend/history.py to dynamically fetch archive datasets from GitHub releases and compute instantaneous airspace states using binary search (bisect) over timestamped arrays.
  • AI Analysis Pipeline: Integrates Gemini 3.8 Flash (backend/gemini.py) via a background thread job-polling architecture to analyze JSON flight states without blocking client requests.

Challenges we ran into

  • Strict Prompt Constraints: Engineering the Gemini prompt to return structured plain-text insights while handling missing parameters cleanly without outputting invalid markdown formatting.
  • Handling High-Volume Telemetry: Sorting and filtering large historical datasets required optimizing memory usage and implementing windowed lookups (GONE_AFTER_S) to render smooth replays without lag.
  • Asynchronous Polling: Preventing HTTP timeouts during AI generation required building an asynchronous job queue with progress-polling endpoints on the backend.

Accomplishments that we're proud of

  • Seamlessly rendering thousands of airborne aircraft concurrently on Deck.GL with custom visual alert triggers.
  • Achieving near-instantaneous flight state reconstruction from raw historical archives using optimized binary search algorithms.
  • Successfully stitching live telemetry, replay history, and multi-threaded AI analysis into a single responsive dashboard.

What we learned

  • Strategies for constraining LLM outputs to rigid structural formats while preserving natural-language explanatory power.
  • Techniques for managing high-frequency spatial datasets and real-time state normalization in Python backend pipelines.
  • Practical pattern design for decoupling heavy background tasks from frontend client UI loops.

What's next for Syren

  • Ground Aircraft Support: Incorporate ground-tracked aircraft and airport taxi operations into the map interface.
  • Enhanced Export Feedback: Hook intermediate progress tracking directly to the export UI for granular progress feedback.
  • Multi-Aircraft Comparison: Allow users to select multiple aircraft simultaneously to evaluate airspace congestion, formation flights, and proximity warnings.

Built With

Share this project:

Updates

Submission history