Back
🥇 1st Place CDMX · NASA Space Apps 2025🌍 Global NomineeOctober 2025

AirWayAir-quality–aware navigation.

An app that optimizes routes by pollutant exposure instead of time. NASA TEMPO satellite data + OpenAQ ground stations + AQI-weighted Dijkstra. Continuous Apple Watch monitoring and AR visualization of the 2 000 PM2.5 particles you breathe every second.

RoleLead iOS · ARKit · Watch · Backend
StackSwiftUI · ARKit + RealityKit · MapKit · CoreML · Django + DRF
ChallengeTEMPO Predictive Air Quality Forecasting

Three devices, one source of truth

iPhone to decide, Watch to monitor, map to understand the air.

Same data layer across all three surfaces. The Django backend aggregates NASA TEMPO + OpenAQ + WAQI + OpenMeteo every 15 minutes; the iPhone runs AQI-weighted Dijkstra; the Watch does passive monitoring with haptics; on-device CoreML predicts PM2.5 at 1h, 3h and 6h.

iPhone · Biometric PPI

Heart Rate, HRV, SpO₂ — read from the Watch

Personal Pollution Index combines ambient air with live Apple Watch biometrics. Cigarette equivalence, dose during activity, baseline against personal average. Component scores for SpO2/HRV/Heart Rate/Resp Rate.

  • HR · HRV · SpO₂ · Resp
  • Cigarette equivalence
  • Dose during activity
  • Personal baseline

iPhone · Body Atlas

What pollution touches inside the body

Visualization of the affected systems — respiratory, nervous, muscular, skeletal — with real-time load indicators driven by ambient AQI. Educational: air isn't just lungs.

  • 4 body systems
  • Load from live AQI
  • Educational · CONAVIM
  • Animated avatar

Apple Watch · Companion

Air on your wrist

Personal Pollution Index visible as a complication. Haptic alert when you enter a polluted zone, accumulated cigarette equivalence and a compressed route map (<5KB) synced via WatchConnectivity.

  • AQI complication
  • Haptic in critical zones
  • Cigarette equivalence
  • <5KB per route

iPhone · ContingencyCast

Live contingency probability

Animated gauge with environmental contingency probability, explainable model drivers and a 6h horizon card. PM25Predictor models for 1h/3h/6h run on-device in CoreML.

  • Probability gauge
  • Explainable drivers
  • 6h horizon card
  • CoreML on-device

Apple Watch · Exposure

Accumulated dose on your wrist

Watch screen with PM2.5 dose inhaled in the last hour, daily cigarette equivalence accumulated, and trend vs personal baseline. Tap to see the per-minute breakdown.

  • Live 1h dose
  • Cigarette equivalence
  • Trend vs baseline
  • Tap → breakdown

iPhone · GasolinaMeter

Your vehicle, its emissions

Vehicle hub with rotatable 3D model, full spec sheet, consumption (km/L), recommended fuel and plate. The basis for per-trip emissions and multimodal comparison.

  • Rotatable 3D model
  • Magna 87 · 11.5 km/L
  • Full spec sheet
  • Multiple vehicles

iPhone · AQI Map

Cleanest route vs fastest route

Map view with the suggested route to the destination — UNAM Distance High School in this demo — comparing the cleanest option (green) against the fastest. AQI sampled every 150 m.

  • Green AQI route
  • Side-by-side comparison
  • Sampled every 150 m
  • Live reroute

iPhone · Extended Exposure

58 seconds of full-body analysis

Full walkthrough of the 4 Body Atlas systems — respiratory, nervous, muscular, skeletal — with progressive load per system driven by ambient AQI. The educational piece for raising awareness about the invisible.

  • 4 systems in sequence
  • Progressive load by AQI
  • Educational · 58s
  • Interactive avatar

Live demo

Personalization by health profile

Pregnancy, asthma, athlete, elder, child. Each profile adjusts thresholds, recommendations and haptic sensitivity. The app learns when to stay quiet and when to shout.

  • Thresholds tuned per condition
  • Contextual recommendation
  • Configurable haptic sensitivity

iPhone · AR Air Quality

Real particles over the camera

ARKit + RealityKit overlay the PM2.5 particles you breathe onto the live camera scene. Current AQI 127 (Unhealthy), 1,240 invisible particles at 63 µg/m³. The educational piece we showed the jury.

  • Live camera
  • PM2.5 µg/m³ overlay
  • Adjustable density
  • ARKit + RealityKit

iPhone · Monthly history

Average 64 · Best 52 · Worst 76

AQI calendar with DAY/MONTH view. Aggregated month stats (average AQI, best and worst day) and month picker (July, August, September, October). Compares against the previous month — August was 3% better than July.

  • DAY · MONTH view
  • Average · best · worst AQI
  • Previous month comparison
  • Per-day calendar

Walkthroughs

Full product walkthroughs

Three demos recorded during the hackathon — general overview, AQI routing engine and exposure analysis. Click play to watch each one.

Overview

General tour · 13 s

Quick walkthrough of the app: home, map, forecast, health and routes. The piece we delivered to the jury.

AQI Routing

Three routes, one informed decision

AQI-weighted Dijkstra engine: clean, fast and safe. 9-point grid, side-by-side comparison, PM2.5 savings metrics.

Exposure analysis

24 hours of air, in a ring

Circular chart with daily distribution — home, work, outdoors, transit. Identifies hotspots and proposes time redistribution.

Capabilities · Full system

Make the invisible visible and the abstract actionable.

AirWay doesn't just show pollution: it acts on it. Each block tackles one stretch of the flow — from the TEMPO satellite to the haptic on the wrist of an asthmatic runner.

Educational core

AR PM2.5 · 2 000 partículas en vivo

ARKit + RealityKit render the PM2.5 particles you're breathing in real time. Mesh caching pre-caches 4 sphere sizes via NSLock; progressive warmup (300 → 800 → 2000) delivers the first particles in under a second. Stable 60 FPS from iPhone 12 onwards.

ARKitRealityKitMesh cachingNSLockWarmup 300→2000
2 000AR particles
60 FPSstable iPhone 12+
~180 MBpeak memory
~85%6h accuracy
0 PIIcloud egress

Satellite + ground fusion

NASA TEMPO + OpenAQ

fusedAQI = (satellite × 0.3) + (groundAvg × 0.7). NO₂, O₃ and HCHO from GES DISC + PM2.5/PM10 from ground stations, recalibrated with OpenMeteo and RAMA CDMX every 15 min.

15 min refresh

Smart routing

AQI-weighted Dijkstra

edgeWeight = distance × (1 + AQI_penalty) + incidents. Sampled every 150 m with a 9-point grid centered on origin, destination and midpoint. Three routes: clean, fast, safe. Customizable 40/30/30 score.

0.8 s per calc

Apple Watch · PPI

Personal Pollution Index

Wrist companion with haptic alert when you enter a polluted zone. Route compressed to key waypoints (<5KB) syncs via WatchConnectivity.

<5KB

ML prediction

ContingencyCast · 1h, 3h, 6h

Three PM25Predictor models exported to CoreML from XGBoost (pandas + LightGBM + MAPIE). On-device inference, 30 min heads-up before crossing the threshold.

~85% acc 6h

Body Atlas

What air touches inside the body

4 affected systems — respiratory, nervous, muscular, skeletal — with progressive load per system driven by ambient AQI. The educational piece the jury highlighted.

4 systems

Vulnerable profiles

Pregnant · asthma · athlete · child

Each profile tunes thresholds, recommendations and haptic sensitivity. The app learns when to stay quiet and when to shout — because there's no one-size-fits-all in air.

4 profiles

Services

Backend Django + DRF

Hexagonal architecture with adapters for NASA TEMPO, OpenAQ, WAQI, OpenMeteo, OSRM and Gemini. Celery + Redis for heavy tasks. Postgres on Render, local SQLite fallback. Docker with GDAL/PROJ/GEOS + libgomp1 for XGBoost.

Django 5.1 + DRFCelery + RedisPostgres / RenderDocker · GDAL · GEOS
View repository

Hackathon stack

What we shipped in 48 hours.

Bets with a zero-time budget: SwiftUI over UIKit, Django over FastAPI for mature adapters, XGBoost over neural nets to iterate fast. Each call paid for itself.

iOS
  • Swift

    Base language

  • SwiftUI

    Declarative UI + glass

  • RealityKit

    AR PM2.5 · 60 FPS

watchOS
  • Swift

    PPI · haptics

  • Figma

    Complication mockups

Backend
  • Python

    Django 5.1 + DRF

  • GitHub

    IOSChallengers repo

  • Vercel

    Web landing

ML/Data
  • Python

    XGBoost + MAPIE

  • Notion

    Technical documentation

Closing

Two days, three people, one respiratory mission.

AirWay was born at the NASA Space Apps Challenge 2025, challenge Leveraging TEMPO for Predictive Air Quality Forecasting. What we shipped in 48 hours is the foundation of a product that keeps iterating with Render backend and versioned CoreML models.

20+iOS screens
16API endpoints
3CoreML models
60Sustained AR FPS

“The hardest part was convincing people that air quality isn't a stat — it's a decision. Every time you open a routing app, you decide how much you'll breathe. AirWay just makes it explicit.”

— Retro notes, day 2