SAR AI – Real-Time Aircraft Tracking and AI-Powered Search & Rescue Platform

Hello Google AI Developers,

I am a Computer Science Engineering student and would like to share a project I have been developing called SAR AI (Search Aircraft Rescue Analytical Engine).

The idea behind this project is to assist in search-and-rescue operations when an aircraft loses communication or its Emergency Locator Transmitter (ELT) is unavailable.

SAR AI gathers and analyzes multiple data sources, including:

• Last known aircraft position

• Latitude and longitude coordinates

• Aircraft heading and speed

• Wind speed and direction

• Weather conditions

• Real-time aircraft tracking data

• Geospatial mapping information

Using these factors, the system estimates the most probable search area and provides analytical insights that could help rescue teams narrow down potential aircraft locations.

The platform also includes:

• Real-time aircraft tracking

• Interactive map visualization

• Live weather integration

• Telemetry analysis

• Operational reporting

• Natural-language interaction for mission planning and analysis

The goal of this project is to explore how real-time data analysis, mapping technologies, and intelligent systems can support aviation search-and-rescue scenarios and improve response efficiency during critical situations.

I would greatly appreciate feedback on the concept, system architecture, and any suggestions that could help improve the project or make it more applicable to real-world search-and-rescue operations.

Thank you for your time and feedback.

Regards,

Anand Srinivasan

Computer Science Engineering Student

To make this system reliable for real-world operations, you must use a hybrid architecture.

An LLM (like Gemini) should never directly calculate the math for physics, wind drift, or geographic coordinates. It will hallucinate. Instead, use Gemini as the Intelligent Orchestrator using Function Calling (Tools) to trigger deterministic Python code for the math.

[ User Prompt / Voice ] 
       │
       ▼
[ Gemini API (Orchestrator) ] ──(Function Call)──► [ Python Physics/GIS Engine ]
       ▲                                                    │
       │                                                    ▼
 [ Natural Language Response ] ◄──(Returns Data)─── [ Exact Coordinates & Grid ]


2. Technical System Architecture

To implement the features you described, structure your backend stack around these four pillars:

A. Data Ingestion & Live Integration

  • Flight Tracking: Integrate the FlightAware Firehose API or OpenSky Network API to stream real-time ADS-B telemetry (position, altitude, heading, speed).

  • Weather Data: Use the NOAA API (or OpenWeatherMap) to fetch gridded wind vectors at specific flight altitudes, not just ground weather.

  • Geospatial Layer: Use Google Maps Platform (JavaScript API) for the interactive frontend visualization. Use PostgreSQL with PostGIS as your database to handle spatial queries natively.

B. The Gemini API Prompt Context Setup

When an operator interacts with your mission planner, pass a structured snapshot of the data. Format your system prompt to strictly enforce data schemas:

json

{
  "incident_id": "SAR-2026-09A",
  "aircraft_type": "Cessna 172",
  "last_known_telemetry": {
    "latitude": -1.2921,
    "longitude": 36.8219,
    "altitude_ft": 8500,
    "heading_deg": 180,
    "ground_speed_knots": 110,
    "timestamp_utc": "2026-06-03T14:20:00Z"
  },
  "atmospheric_conditions": {
    "wind_direction_deg": 240,
    "wind_speed_knots": 18,
    "visibility_miles": 5
  }
}

Use code with caution.

C. Implementing Gemini Function Calling (The Engine)

Define Python tools that Gemini can execute when asked a question. For example, if the operator asks: “Where should we deploy the first drone search team?” Gemini will automatically recognize it needs to run your drift function.

python

import google.generativeai as genai

# Define the mathematical calculation function
def calculate_search_grid(lat, lon, heading, speed, wind_dir, wind_speed, altitude):
    """Calculates the high-probability impact zone based on kinematic decay and wind drift formulas."""
    # Your deterministic Python math / aviation physics formulas go here
    predicted_lat = lat + 0.05  # Placeholder calculation
    predicted_lon = lon - 0.03
    return {"center_latitude": predicted_lat, "center_longitude": predicted_lon, "radius_km": 15.5}

# Configure Gemini with the tool
model = genai.GenerativeModel(
    model_name='gemini-1.5-pro',
    tools=[calculate_search_grid]
)

# Chat session handles the orchestrating logic
chat = model.start_chat(enable_automatic_function_calling=True)
response = chat.send_message("The aircraft lost comms. Given the current telemetry, calculate our target zone.")

Use code with caution.


3. Critical Improvements for Real-World SAR Operations

To make this project highly applicable to actual search-and-rescue teams, integrate these three overlooked variables:

  • Terrain Elevation Data (DEM): In mountainous regions, a gliding or decaying aircraft will impact terrain long before it reaches sea-level calculations. Use Google Earth Engine API or SRTM data to cross-reference the flight path with terrain heights.

  • Probability of Detection (POD) Mapping: Divide your search map into a grid (e.g., 1km x 1km cells). Use Gemini to assign a percentage probability score to each grid cell based on terrain density, weather visibility, and tracking gaps.

  • Fuel Status Analytics: Calculate the aircraft’s fuel-remaining endurance timeline based on its log takeoff data. This defines the absolute maximum boundary circle (the “fuel ring”) beyond which the aircraft physically could not fly.


How would you like to proceed with this build? I can write the complete Python formula script for calculating wind drift tracking, or help you design the layout interface for the interactive map dashboard.

in a short form and a summarized way

SAR AI: Core Architecture & Strategy

To make this platform reliable for real-world operations, you must use a hybrid architecture.

An LLM (like Gemini) should never directly calculate physics formulas or GPS coordinates. Instead, use Gemini as the Intelligent Voice/Chat Orchestrator that triggers precise Python math formulas in the backend via Function Calling.

[ User Prompt ] ──► [ Gemini API (Orchestrator) ] ──► [ Python Physics/GIS Engine ] ──► [ Exact Map Grid ]


System Blueprint

1. Data Ingestion & Tech Stack

  • Tracking Data: Stream real-time flight metrics using the OpenSky Network or FlightAware API.

  • Weather Data: Fetch altitude-specific wind vectors via the NOAA API.

  • Database & Maps: Use PostgreSQL with PostGIS for geographic data, and Google Maps Platform for the UI.

2. Gemini Function Calling Implementation

When a user asks: “Where should we search?”, Gemini automatically intercepts the question, triggers this Python function, and translates the coordinates into a readable mission plan:

python

import google.generativeai as genai

# 1. Define the deterministic math function
def calculate_drift_zone(lat, lon, heading, airspeed, wind_dir, wind_speed):
    """Executes aviation physics formulas to calculate wind drift and decay."""
    # Deterministic math goes here
    return {"center_lat": -1.25, "center_lon": 36.80, "search_radius_km": 12.0}

# 2. Register the tool with Gemini
model = genai.GenerativeModel(model_name='gemini-1.5-pro', tools=[calculate_drift_zone])
chat = model.start_chat(enable_automatic_function_calling=True)

# 3. Gemini runs the code automatically to answer the user
response = chat.send_message("Aircraft missing. Calculate the search grid based on current logs.")

Use code with caution.


Top 3 Improvements for Real-World Use

  • Terrain Integration: Cross-reference flight paths with mountain elevations using Google Earth Engine so the system knows if the plane hit high terrain early.

  • Fuel Ring Boundaries: Calculate fuel endurance timelines to establish the absolute physical limits of how far the plane could have flown.

  • Probability Grid: Divide the map into 1km blocks and have Gemini rank them by a priority score based on weather and terrain density.