Elevation Craft

AI-Driven Wildland Fire Response System

Agentic decision support for WUI preplanning, fireground intelligence, ICS operations, and resource coordination. Pick a simulated scenario, advance the operational clock, and watch eight specialist agents build the incident picture an Incident Commander would actually use.

Built by an engineer who runs calls: the design borrows ICS structure, Colorado Ready-Set-Go evacuation language, and WUI structure-triage thinking. Every agent output here is simulated from structured mock data. What it shows past the briefing, structure triage, evacuation triggers, and the live map and critical weather alerts pushed to crew devices and radio, is not built in the real pipeline yet.

System architecture

Sources · normalization · model · agents · review · APIs · endpoints

Each box says where it stands: built in the real pipeline, shown only in this demo, or planned. Read it top to bottom: feeds normalize into two stores kept apart on purpose, live incident facts the agents query through tools and reference text they cite from a retrieval index. One fire behavior model feeds eight specialist agents, the IC reviews and can ask the IC Copilot about anything on screen, and nothing goes out without that review. Approved outputs reach the command post, crew MDTs, phones and pagers, and the radio.

built runs in the real pipelineconcept this demo only, simulated planned

  1. 01 Sources

    What the incident produces.

    In this demo, simulated with deterministic data except the NIFC historic perimeters, which are real. Built sources are live in the real pipeline.

  2. 02 Ingest and normalize

    One shape for every feed.

    ├ Two stores

  3. 03 Fire behavior model

    One deterministic model every agent keys into.

    Outputs are numbers, not prose. The agents narrate the model and never alter it.

  4. 04 Agents

    Specialists analyze in parallel, then synthesize.

    Synthesis

    Each agent queries the live store through tools and cites the retrieval index.

  5. 05 Human review

    The IC decides. Nothing auto-executes.

  6. 06 Distribution APIs

    Approved outputs, in standard formats.

  7. 07 Endpoints

    Where people see and hear it.

    Radio path

  8. Feedback · MDT acknowledgements, GPS fixes, and field reports return to 01, so the next picture reflects what crews reported from the line.

Proposed production architecture, read top to bottom. Built items run in Wildfire Incident Response on live public feeds. In this demo every stage is simulated in the browser from structured mock data, and nothing is sent to real devices, networks, or radio.
Data source API catalog: the feeds a production build would sit on

Every public and private API behind the ingestion stage, with current documentation and basic shape. Links verified July 2026, GPS tracking links September 2026. In this build all of these are represented by deterministic demo data except the NIFC fire perimeters, which are real.

Weather: observations and forecasts

  • NWS APIPublicNOAA / National Weather Service

    REST, GeoJSON-LD. GET /points/{lat},{lon} resolves the grid, then /gridpoints/{wfo}/{x},{y}/forecast and /alerts/active?area=CO. Hourly forecast updates; User-Agent header required, no key.

    https://www.weather.gov/documentation/services-web-api
  • NWS Spot Forecast ProgramPublicNOAA / NWS

    Incident-specific request (STQ) in, forecaster-written spot forecast out; GeoJSON feed refreshed ~15 min plus an ArcGIS MapServer of active spots.

    https://spot.weather.gov/
  • Synoptic Data Weather API (MesoWest)Free keySynoptic Data PBC

    REST. GET /v2/stations/timeseries?network=2&token=... (network 2 = RAWS) or /stations/latest; JSON/CSV/GeoJSON; sub-hourly RAWS observations. Free public-data tier, paid tiers above.

    https://docs.synopticdata.com/services/weather-api
  • FEMS (NFDRS, replaced WIMS in 2024)PublicUSDA Forest Service

    Read-only REST for hourly NFDRS v4 outputs (ERC, BI, dead/live fuel moistures) and station obs; gov login for write paths.

    Exact OpenAPI path not verifiable at review time.

    https://www.wildfire.gov/application/fems

Satellite thermal detections

  • NASA FIRMS Area APIFree keyNASA LANCE

    REST. GET /api/area/csv/{MAP_KEY}/VIIRS_NOAA20_NRT/{w,s,e,n}/{days}; VIIRS 375 m, MODIS, and GOES sources; CSV/JSON; NRT latency ~60-180 min; 5,000 transactions per 10 min per key.

    This is the API behind the map’s Active fire (VIIRS) data layer, represented with simulated 375 m detections in this build.

    https://firms.modaps.eosdis.nasa.gov/api/area/
  • NASA FIRMS US/CanadaFree keyNASA LANCE / USDA Forest Service

    Same Area API on a separate US/Canada instance fed by direct-readout ground stations: real-time and ultra-real-time VIIRS/MODIS detections — under a minute after overpass for much of the US and Canada — plus Landsat 30 m detections within ~30 min of overpass.

    The initial-attack feed: the global NRT window above collapses to minutes here, and Canada is covered at the same grade. This instance, not the global one, is what a production build over this corridor would ingest.

    https://firms2.modaps.eosdis.nasa.gov/usfs/api/area/
  • GOES-18/19 ABI L2 Fire (FDC)PublicNOAA (Open Data Dissemination on AWS)

    Anonymous S3, NetCDF objects (s3://noaa-goes18/ABI-L2-FDCC/...): fire mask, FRP, temperature per ~2 km pixel; CONUS every 5 min, mesoscale 1 min.

    https://registry.opendata.aws/noaa-goes/

Copernicus Sentinel imagery

  • Copernicus Data Space Ecosystem APIsFree keyESA / European Commission

    Free registration, OAuth2 token. STAC catalogue for search, OData for download, openEO for cloud processing, and Sentinel Hub Process/Statistical APIs (POST an evalscript, get rendered raster or stats). Sentinel-2 revisit ~5 days; free quota, commercial tiers.

    https://documentation.dataspace.copernicus.eu/APIs.html

Wind and point forecasts (Windy)

  • Windy Point Forecast APICommercialWindy.com / Windyty SE

    POST /api/point-forecast/v2 with JSON {lat, lon, model (gfs/ecmwf/iconEu), parameters, key}; JSON time series out; model steps 6-12 h. Trial plus paid Professional subscription.

    https://api.windy.com/point-forecast/docs
  • Windy Webcams / Map Forecast APIsCommercialWindy.com

    REST GET /webcams/api/v3/webcams?nearby={lat},{lng},{radius} with x-windy-api-key; embeddable interactive map layers via the Map Forecast API.

    https://api.windy.com/webcams/docs

Synoptic guidance and model inputs

  • SPC Fire Weather OutlooksPublicNOAA / Storm Prediction Center

    Day 1-2 fire weather outlooks (Day 3-8 probabilistic) with Elevated / Critical / Extremely Critical areas; shapefile/KML downloads plus an ArcGIS MapServer; issued twice daily.

    https://www.spc.noaa.gov/products/fire_wx/
  • NWS NDFDPublicNOAA / NWS

    2.5 km CONUS gridded forecast elements (wind, gusts, RH, temperature, sky); GRIB2 via tgftp and AWS Open Data; out to 7 days.

    https://vlab.noaa.gov/web/mdl/ndfd
  • HRRR on AWSPublicNOAA (Open Data Dissemination on AWS)

    Anonymous S3 (s3://noaa-hrrr-bdp-pds), GRIB2 plus Zarr; 3 km convection-allowing model, hourly cycles, 18 h forecasts (48 h at 00/06/12/18Z).

    https://registry.opendata.aws/noaa-hrrr-pds/
  • WFAS / NFDRS fire dangerPublicUSDA Forest Service

    Daily national fire danger class and dead fuel moisture maps as rendered images and grids; no formal REST API.

    FEMS (under Weather above) is the station-level NFDRS source of record.

    https://www.wfas.net/
  • NFPORS fuels treatmentsPublicDOI / USGS

    ArcGIS REST treatment polygons and points with kind, status, and fiscal year; the production analog of the mitigation-plan overlays this demo reuses.

    https://usgs.nfpors.gov/

Incidents and fire perimeters

  • NIFC Open Data / WFIGSPublicNational Interagency Fire Center

    ArcGIS FeatureServer REST: GET .../FeatureServer/0/query?where=1=1&outFields=*&f=geojson. Current perimeters refresh ~5 min; full interagency perimeter history; incident points via the public IRWIN views.

    The one real feed in this build (historic burn scar layer).

    https://data-nifc.opendata.arcgis.com/
  • IRWINRestrictedDOI / USDA interagency

    System-to-system incident data exchange between wildfire applications (CAD, WFDSS, INFORM); GeoPlatform account plus approved integration. Public consumption goes through the WFIGS views above.

    https://www.wildfire.gov/application/irwin-integrated-reporting-wildfire-information
  • InciWebPublicUS Forest Service

    RSS 2.0 incident and news feeds plus KML; PIO-entered, irregular cadence (hours). No formal API.

    https://inciweb.wildfire.gov/feeds

Fuels and terrain

  • LANDFIRE Product Service (LFPS)PublicUSGS / USFS

    ArcGIS geoprocessing job API: submit AOI + layer list (FBFM40 fuel models, canopy, slope, aspect), poll job status, download GeoTIFF bundle; products versioned, updated annually or biennially.

    This build bakes fuels from an unmodified public FBFM40 stand-in (The Wildland Almanac CONUS v2026.1, CC BY 4.0) and re-points to LANDFIRE with one URL change in the fetch script.

    https://lfps.usgs.gov/LFProductsServiceUserGuide.pdf
  • USGS 3DEP / EPQS elevationPublicUSGS

    REST GET /v1/json?x={lon}&y={lat}&units=Meters for point queries; 3DEP dynamic ImageServer/WCS for DEM tiles; lidar-based 1 m where available.

    The baked terrain grids in this build come from the Open-Elevation public API (SRTM-derived).

    https://epqs.nationalmap.gov/v1/docs

WUI parcels and structures

  • County open data (e.g. Jefferson County CO)PublicCounty GIS

    ArcGIS Hub GeoServices REST, WMS, WFS; parcel polygons with assessor attributes and the Master Address layer this demo already bakes; typically weekly refresh.

    https://data-jeffersoncounty.opendata.arcgis.com/
  • Building footprints (Microsoft / Overture)PublicMicrosoft; Overture Maps Foundation

    Bulk line-delimited GeoJSON by quadkey (Microsoft Global ML Building Footprints) or GeoParquet on S3 queryable with DuckDB (Overture, which conflates Google + Microsoft + OSM); periodic static releases.

    https://docs.overturemaps.org/guides/buildings/

CAD, dispatch, and unit alerting (private integrations)

  • Tyler New World / CentralSquare (Zuercher) CADRestrictedTyler Technologies; CentralSquare

    Per-agency contracts; CAD-to-CAD interfaces and standard exporter push feeds (XML/JSON on unit status change); integration specs under NDA. This is where dispatch notes and unit statuses originate.

    https://www.tylertech.com/products/enterprise-erp/api-catalog
  • Active911 Open APICommercialActive911 Inc.

    OAuth 2.0 with per-agency grants; HTTPS POST to access.active911.com/interface/open_api.php; JSON alerts, personnel responses, and map data pushed on dispatch.

    https://github.com/active911/open-api

GPS / AVL resource tracking

  • WFTAK (Wildland Fire TAK)RestrictedUSDA Forest Service, Fire and Aviation Management

    Near-real-time resource location server built on TAK. Merges phones and crew tablets running ATAK/iTAK, USFS and DOI vehicle locators, satellite handhelds, and aircraft ADS-B into one picture; clients exchange Cursor on Target (CoT) over the WFTAK server.

    The federal answer to the Dingell Act (2019) requirement that resource locations on federal incidents be known. Users can stop sharing by closing TAK; it is not a disciplinary tool.

    https://wftak.wildfire.gov/pages/location-sharing-wftak
  • TAK ServerPublicTAK Product Center

    Open-source Java server for Cursor on Target: CoT XML/protobuf position and marker events streamed over TLS, plus a REST/Swagger API on 8443. The same server type an agency or county could stand up for non-federal incidents.

    https://github.com/TAK-Product-Center/Server
  • Garmin inReach IPC OutboundCommercialGarmin

    Satellite (Iridium) handheld tracking pushed as JSON to an agency web service: WGS84 lat/lon, altitude, course, speed per tracking point. Professional accounts only; covers crews working outside cell and radio coverage.

    https://developer.garmin.com/inReach/IPC_Outbound.pdf
  • Samsara Vehicle Locations FeedCommercialSamsara

    REST. GET /fleet/vehicles/locations/feed with a bearer token; lat/lon, heading, speed, UTC time; cursor-based feed (poll the endCursor, at least 5 s between empty pages). One example of vehicle-borne GPS on apparatus.

    https://developers.samsara.com/reference/getvehiclelocationsfeed
  • Geotab MyGeotab SDKCommercialGeotab

    JSON-RPC Get/GetFeed on Device and DeviceStatusInfo (lat/lon, speed, heading) with incremental feed tokens; near-real-time. CalAmp Telematics Cloud offers equivalent REST feeds.

    In practice AVL often arrives CAD-integrated rather than direct from the telematics vendor.

    https://developers.geotab.com/myGeotab/introduction/

Public alerting

Proposed normalized ingestion model: one shape per entity, any source

Source adapters are the only code that knows API formats; agents consume eleven normalized entities. Every record carries a common envelope: source, source_record_id, retrieved_at, valid_at (UTC ISO-8601), geometry (WGS84), confidence (0-1), provenance (raw payload ref), and a dedup_key. Computations run in an equal-area CRS; provenance is preserved so agents can weight and cite sources rather than alter them.

Incident

WFIGS incident locations, CAD, InciWeb, aggregators

incident_id (IRWIN id canonical), name, type, discovered_at, poo_point, acres, containment_pct, status

Dedup on IRWIN id first, else name + distance + time window; CAD events attach as child dispatch notes until matched.

WeatherObservation

Synoptic (RAWS), FEMS, NWS API

station_id, network, obs_time, temp_c, rh_pct, wind_ms, wind_dir_deg, gust_ms, fuel_moisture_10h

Timestamps aligned to top-of-interval UTC; dedup on station + time + variable.

WeatherForecast

NWS gridpoints, NWS Spot, Windy Point Forecast

location, model, issued_at, valid_at, met fields, is_spot, forecaster_text

Never mix issued_at generations in one series; spot forecasts carry incident linkage.

ThermalDetection

FIRMS US/Canada (VIIRS/MODIS/Landsat), GOES FDC

detected_at, sensor, point, frp_mw, brightness_k, pixel_size_m, confidence, day_night

Sensor-specific confidence mapped to 0-1; dedup on sensor + scan time + pixel; clustered for agent use with pixel size kept for weighting.

FirePerimeter

WFIGS current + history (real in this build)

incident_id, polygon, perimeter_time, acres_gis, method, is_current

Append-only revisions; area recomputed in an equal-area CRS alongside source acres.

FuelsCell / TerrainCell

LANDFIRE LFPS, USGS 3DEP

cell_id, fbfm40, canopy_cover_pct, slope_deg, aspect_deg, elevation_m, landfire_version

Static layers version-pinned per incident and resampled to one lattice so spread models see a single grid.

FuelTreatment

NFPORS, state/county CWPP layers

treatment_id, kind, status, polygon, completed_at, source_plan

Status gates model damping: only completed or active work changes predicted behavior.

Structure

County parcels/addresses, Microsoft/Overture footprints

structure_id, footprint, centroid, parcel_id, address, occupancy_class, defensible_space_score

Footprints conflated to parcels by spatial join; both sources kept in provenance.

ResourceUnit

CAD export, Active911, WFTAK / TAK Server, vehicle AVL (Geotab, Samsara), inReach

unit_id, call_sign, ics_type, position, heading, status, position_time, position_source (mdt / vehicle_avl / handheld / ads_b), accuracy_m, assignment

GPS positions and CAD status merged on a unit crosswalk; when a unit reports from more than one device, the freshest fix wins, with accuracy as a tiebreak. Positions older than 10 min are flagged stale. The same merged picture is sent back to crew MDTs.

AlertMessage

NWS alerts, IPAWS

cap_identifier, event_type, area, sent_at, effective..expires, severity/certainty/urgency, channel, text

CAP is already the normal form; raw CAP XML kept in provenance; dedup on identifier + update chain.

EvacuationZone

County GIS zone layers where published

zone_id, polygon, status (ready/set/go), status_time, population_est, structure_count, authority

Status transitions kept as event history and joined to AlertMessage when a WEA covers the zone.

What this is, and is not

This is a portfolio demonstration of agentic orchestration applied to a domain I know from the other side of the radio. It shows how a multi-agent system can turn raw incident signal into a structured, reviewable decision-support picture — with confidence surfaced and a human in the loop on every output.

The agents are simulated and deterministic. The incidents and assessments are simulated over selected real geographic and historical datasets. There is no live inference and no operational guidance here. For the version on live feeds, see Wildfire Incident Response.

This is a simulated portfolio demo. It is not an official emergency management tool and must not be used for live incident decisions.

Fire behavior, wind-shift mechanics, and spread geometry are modeled after the Lower North Fork (Mar 2012), Quarry (Jul 2024), Cameron Peak (Oct 2020), Hayman (Jun 2002), and Pine Gulch (Aug 2020) fires. Roads, neighborhoods, and hazard profiles follow real geography and the 2021 Elk Creek & Inter-Canyon FPD Community Wildfire Protection Plan; the planning-unit boundaries and relative-risk ratings on the map are the published CWPP plan units (The Ember Alliance / Elk Creek Fire Protection District, with North Fork Fire district draft units), and the evacuation zones follow those real boundaries. In the Pleasant Park and Buffalo Creek scenarios, structure and address points come from Jefferson County open data (Jefferson County Business and Innovation Technologies (BIT) Division - GIS Section and Jefferson County Planning and Zoning Addressing Unit); the incidents, threat statuses, and all per-address assessments are simulated and say nothing about any real property. The commercial hazard sites on the map (propane plants and fuel stations on the US 285 corridor) are real businesses at approximate locations from public listings, but every hazard note and threat status attached to them is simulated occupancy-type doctrine and says nothing about any real business’s condition. Wellington Lake structures, and every callsign and event, are fictional. The historic burn scars available on the map (Buffalo Creek 1996, High Meadows 2000, Hayman 2002, Lower North Fork 2012, and others) are real perimeters from the National Interagency Fire Center InterAgency Fire Perimeter History dataset, and the vegetation baseline under the NDVI reference layer follows real Scott and Burgan FBFM40 fuel-model data (Wildland Almanac CONUS, CC BY 4.0); the Sentinel, VIIRS, and Windy data layers themselves are simulated. The evacuation-status language follows the Ready, Set, Go! program of the International Association of Fire Chiefs. No affiliation with, or endorsement by, any agency, district, company, program, or data provider named in this demo is implied.