AI Systems Portfolio  ·  Live Application

GOATvision Seattle

Real-Time Situational Awareness  ·  See · Plan · Move

A single portable HTML file that aggregates 16 live data endpoints across 9 APIs — traffic, transit, ferries, weather, fire dispatch, seismic, and flight delays — into a unified situational awareness interface for the Seattle metro area. No login. No backend. No build step. Copy it anywhere with an internet connection and it runs.

16
Live Endpoints
9 distinct providers, 16 API calls
1
File. Entire App.
~3,800 lines, zero dependencies
20
Live Panels
Each with real-time status dot
2m
Fastest Refresh
Traffic, incidents, ferry positions
Live Application — Production Build
GOATvision Seattle — Main Screen: Ops Brief, Current Conditions, NWS Alerts, Active Incidents, Highway Travel Times
Live Demo

See It Running in Real Time

A 60-second walkthrough of GOATvision Seattle pulling live data across 16 endpoints — traffic, ferries, weather, transit, fire dispatch, and more. Narrated. No cuts.

Watch on YouTube ↗
Overview

One Dashboard. The Whole City.

GOATvision Seattle was built to answer a simple question: what is actually happening in Seattle right now? Not fragmented across six browser tabs, not behind a paywall, not requiring an account. One page. All of it.

The dashboard pulls live highway travel times from WSDOT, real-time Link Light Rail arrivals from OneBusAway, Washington State Ferry vessel positions via GPS tracking, current weather and air quality from Open-Meteo, Seattle Fire Department dispatch records from the last two hours, M1.5+ earthquakes and Cascade volcano alert levels from USGS, SEA-TAC airport delay status from FAA, and active game and event schedules from ESPN and Ticketmaster — 16 individual endpoint calls across 9 distinct providers. Every panel updates on its own refresh cycle — ferry positions every 2 minutes, weather every 5, events every hour.

At the top of the page, the Seattle Ops Brief synthesizes everything into a plain-English situational summary — worst traffic corridor, current weather conditions, ferry gap status, transit availability, active NWS alerts, and today's events — no AI, purely conditional logic.

⬡ Seattle Ops Brief — Rule-Based Synthesis
"A rule-based synthesis engine reads all active panels and generates 1–8 prioritized plain-English bullets — the city at a glance, in about three seconds."
Data Sources

What It Pulls. How Often.

Every source below is fetched client-side, on its own refresh cycle, with graceful error states when data is unavailable.

🚗
WSDOT Highway Travel Times
I-5, I-90, SR-520, I-405, SR-522 — live minutes vs. baseline, historical badge from Supabase
Every 2 min
⚠️
WSDOT Active Incidents
Crashes, closures, and construction in the Seattle metro bounding box — severity-coded
Every 2 min
⛴️
WSF Ferry Vessel Positions
GPS-based progress bars for Bainbridge, Vashon, Mukilteo/Clinton, and Point Defiance routes
Every 2 min
🌦️
Weather + AQI
Open-Meteo current conditions, hourly forecast, air quality index — drives Drive Quality Window
Every 5 min
🚨
Seattle Fire Dispatch
Last 2 hours of SFD dispatch records from Seattle Open Data — medical, fire/hazmat, other
Every 5 min
🚇
Link Light Rail (OBA)
Real-time arrivals for 1 Line, 2 Line key stops via OneBusAway — live train position map
Every 90s
🌋
Seismic + Volcano
USGS M1.5+ earthquakes within 300km + Rainier, Baker, St. Helens alert levels
Every 5 min
✈️
SEA-TAC Airport Status
FAA NAS Status for ground stops and delay programs at Seattle-Tacoma International
Every 5 min
🏈
Sports + Events
Mariners, Seahawks, Sounders, Kraken, Storm via ESPN + Ticketmaster for major venue concerts
Every hour
Feature Spotlight

Real-Time Ferry Tracking with Haversine Positioning

Of all 16 live data panels in GOATvision Seattle, the WSF Ferry tracker is the one that consistently stops people. It pulls live GPS coordinates from the Washington State Ferries vessel API every two minutes and calculates each vessel's real-time progress across its route using the Haversine formula — measuring the great-circle distance between the vessel's current position and both terminal endpoints. The result is an animated progress bar that shows exactly where each ferry is on the water, right now.

GOATvision WSF Ferry Status — Live Vessel Positions with Haversine GPS tracking
How It Works
GPS coordinates from the WSF API are fed into the Haversine formula, which calculates arc distance on a sphere — giving accurate progress percentages even across curved water routes. Falls back to scheduled time data when GPS is unavailable.
What You See
Four active routes — Mukilteo/Clinton, Seattle/Bainbridge, Fauntleroy/Vashon/Southworth, Point Defiance/Tahlequah — with animated vessel icons, vessel name, speed in knots, status, and next departure time.
Why It Matters
For anyone commuting via ferry — including Vashon Island residents with no bridge alternative — knowing where the vessel actually is right now is operationally critical. This panel delivers that in a single glance.
Telemetry layer: Every ferry fetch silently writes vessel delay data — scheduled vs. actual departure, route, wind speed, weather conditions, time of day — to Supabase. Historical patterns accumulate over time. A feature built to get smarter the longer it runs.
Architecture

One File. Zero Infrastructure.

The entire application lives inside a single HTML file — ~3,800 lines of HTML, CSS, and vanilla JavaScript with no npm packages, no build pipeline, and no backend server. Every data fetch happens client-side. Copy the file to any machine with an internet connection and the dashboard runs.

Design Intent

Built to Scale to Any City

The city-specific logic is isolated in a single config object. Swapping it out is the majority of the work needed to deploy a new city.

01
Replace CITY_CONFIG
Update lat/lon, timezone, NOAA tide station, OBA base URL, airport code, ESPN team IDs, and camera filter bounds for the new city.
02
Swap Transit Stop IDs
Replace LINK_LINES with the new city's OBA stop IDs — or swap the OBA integration entirely for a different GTFS-RT source.
03
Rebuild Static Panels
Hospitals, emergency vets, and regional links are static HTML cards. Swap the content for the new city's institutions.
04
Swap Regional APIs
Outside Washington State, replace WSDOT with the equivalent DOT API (Caltrans, TxDOT, etc.). The proxy chain and rendering logic carry over unchanged.
Live Now

See Seattle in Real Time

GOATvision Seattle is live at goatvisionseattle.vercel.app — no account, no login, no friction. Open it and the dashboard starts pulling data immediately.