Inspiration

On 9 October 2024, Hurricane Milton made landfall in Florida. That same morning, an X1.8 solar flare launched a radiation storm toward Earth. When cell towers go down, responders and families rely on satellites for emergency comms, damage imagery and flood maps, and those satellites were facing a storm of their own.

Most small satellites, the kind companies and universities launch, can't do much about it. Their processors are small, they see a ground station for only a few minutes per pass, and their one defense is to shut down and wait for instructions. I wanted the satellites that can think to protect the ones that can't.

What it does

Lifeline is a cooperative, in-flight protection system for satellite fleets:

  • In-flight analysis: a few compute-capable hub satellites gather radiation and memory-error reports from the fleet over crosslinks. They combine those reports with every satellite's planned orbit to forecast who will be exposed next.
  • Protection before impact: each satellite gets its own protective schedule (checkpoint, pause, resume). Critical services are handed to shielded peers, emergency comms first.
  • Early warning: an ML screener flags dangerous flares at their X-ray peak, and Grok vision verifies each warning against real solar and coronagraph images. Confirmed warnings let hubs move critical services hours before the protons arrive.
  • Grok Sun watch: Grok vision reads real NASA SDO images of the Sun and briefs operators on flare risk a day ahead.
  • Grok Voice copilot: operators can ask out loud what's happening, which services are at risk, or why a satellite decided what it did.
  • Grok debrief: a plain-language morning-after report for emergency coordinators.

Impact (simulated fleet, real NOAA radiation from 5 storms, 5 seeds each)

What people get Ground-controlled Fixed threshold Lifeline
Emergency comms outage, all 5 storms 188 h 92 h 2.1 h
Emergency comms available during Milton's storm 20% 44% 100%
Hurricane imagery on time, Milton week 39/60 41/60 60/60

How I built it

  • Simulator (Python): a five-satellite fleet (two shielded hubs, three simple satellites on polar, sun-synchronous and mid-inclination orbits). A tilted-dipole model of Earth's magnetic shielding is driven by real GOES-18 proton data from NOAA NCEI. Crosslink messages have realistic latency and packet loss.
  • ML early warning: I built a labeled dataset of every GOES-18 flare from 2022 to 2026, matched to NOAA's official solar proton event list. I compared 11 models on a time-based held-out split and picked a regularized logistic regression, tuned for high recall. On held-out data it reached ROC-AUC 0.987 and caught 11 of 11 held-out storms.
  • Cascade verification: every warning goes to Grok vision (Responses API) with a 2×2 panel of AIA 131 and 193 Å eruption images plus LASCO C2 coronagraph frames. Grok's confirm threshold was calibrated on training-period warnings only. This cut false alarms from 200 to 124 while keeping 10 of 11 storms.
  • Grok everywhere: the Grok API powers the in-flight analyst's choices, the Sun watch and the debrief. Grok Voice runs over the realtime WebSocket with ephemeral tokens and client-side tools. Grok Imagine generated the solar storm visuals in my demo video.
  • App: FastAPI backend and a vanilla JS dashboard, deployed on Vercel.

Challenges I ran into

  • Honest ML is hard: my first probabilities were miscalibrated by class weighting, and a small look-ahead bug let warnings fire minutes too early. I fixed both, and I keep Hurricane Milton and January 2026 strictly out of training.
  • Grok confirmed everything at first: the first verifier prompt approved every warning. I rewrote it to state the base rate, ask for a calibrated probability, and set the threshold on training data only.
  • Protection can backfire: my first "readiness" mode slowed satellites down so much that they missed deadlines. Readiness now means faster checkpoints at full speed, and only on satellites that will actually be exposed.
  • Data wrangling: NetCDF flare catalogs stored longitudes from 0 to 360°, and I had to match flares to NOAA's proton event list by hand-parsed rules.

Accomplishments that I'm proud of

  • In my Milton replay, emergency comms stayed up 100% of the time, against 44% for the best conventional approach.
  • A complete ML-plus-Grok cascade evaluated honestly on held-out storms, not tuned to the demo.
  • Every number in the app is labeled clearly: real events and real radiation, simulated satellites and outcomes.
  • Built : simulator, ML pipeline, Grok integrations, dashboard, deployment and demo video.

What I learned

  • How Earth's magnetic field shields orbits differently, and why polar satellites take the hardest hits.
  • A cheap, high-recall screener plus an expensive, smart verifier beats either alone.
  • Calibration and base rates matter as much for LLM judges as for classical models.

What's next for Lifeline

  • Run the analyst on real flight-class hardware and test it with a university CubeSat team.
  • Add coronagraph-based CME arrival forecasts for geomagnetic storms, not just radiation storms.
  • Support larger constellations, multiple operators, and standard crosslink protocols.

Built With

Share this project:

Updates

Submission history