A concept UX/UI project designing a unified mission control dashboard for multi-drone operations — built around situational awareness, critical alerts, and fast decision-making under pressure.
The live dashboard, an alert redesign in before/after, and the mobile companion views operators use in the field.
A complex operational system for UAV fleet command. Structuring situational awareness, critical alert management, and decision support for high-stakes environments.
Mission Overview — map-centric, with a persistent fleet strip so no drone falls out of view.
Alert card, v1 → v2 — the decision moved above the diagnosis after usability testing.
A fictional UX concept inspired by ASELSAN — not an official collaboration or shipped product.
A mission control dashboard that lets one operator monitor and command a fleet of surveillance drones — flight status, live map position, and system alerts — from a single screen instead of switching between separate tools.
Right now, UAV operators manage 2–4 drones at once from ground control stations, switching between separate apps for telemetry, mission planning, and alerts. Every switch costs situational awareness — the ability to perceive fleet state, understand what it means, and anticipate what happens next.
This isn't a convenience problem. Time pressure, irreversible outcomes, and 6–8 hour shifts mean interface hierarchy functions as a safety mechanism, not a preference — whatever is buried behind a click is what gets missed.
How do we design a mission control system that maintains full situational awareness across a multi-drone fleet, surfaces critical alerts as decision prompts rather than failure notifications, and reduces extraneous cognitive load?
Direct access to ASELSAN operators wasn't possible — UAV ground control is a classified environment. I built the research base from human factors literature (Endsley, Wickens), analogous high-stakes domains (NASA mission control, air traffic control), and published post-incident reviews of UAV interface failures — all read through one question: where does this interface's cognitive demand exceed what the operator can actually supply?
Every tool switch loses perception of the drones not currently on screen — the leading precursor to error in high-stakes control environments.
Describing a failure without saying what to do adds a second task at exactly the moment there's no time for one.
Status buried in a secondary view isn't "available" — it's effectively invisible during a critical event.
Managing three drones is genuinely complex. Fragmented tools and unclear states add complexity that's entirely the interface's fault.
"I need to know what to do, not just what went wrong."
"Validation takes longer than building the route itself."
Before drawing screens I set three levels of information access: always visible (fleet status, active alerts, map position — zero clicks), one click (alert detail, per-drone telemetry, route status), and deliberate navigation (planning, history, settings). This maps directly to Endsley's perception → comprehension → projection model, and every layout decision below was tested against it.
Rough, interactive low-fidelity screens used to test structure before any visual design — dashboard, mission planning, alerts, and telemetry as one connected system.
Three think-aloud sessions with analogous-domain professionals (a pilot, a logistics dispatcher, an IT ops engineer) surfaced one clear fix: promote the recommended action above the description. Response time to the critical alert dropped once the decision, not the diagnosis, led the card.
Four screens, each answering a different cognitive question: what's the fleet's current state (Dashboard), is the route safe (Planning), how is each vehicle actually performing (Telemetry), and what needs my attention right now (Alerts). The operator stays on the dashboard for most of a mission — every other screen is a deliberate, justified departure.
| Asset | Alt | GS km/h | Hdg | Batt/V | Link | HDOP | Mode |
|---|---|---|---|---|---|---|---|
| AKINCI-01 | 320 | 45.2 | 274° | 87% 4.1V | -68 dBm | 1.2 | AUTO |
| AKINCI-02 | 280 | 52.1 | 261° | 74% 3.9V | -71 dBm | 1.1 | AUTO |
| AKINCI-03 | 185 | 38.0 | 090° | 8% 3.6V | -84 dBm | 1.8 | RTB |
| AKINCI-04 | 410 | 61.4 | 183° | 42% 3.8V | -65 dBm | 1.3 | HOLD |
Mission control dashboard — map-centric, with a persistent fleet strip so no drone ever falls out of view.
Map-centric with a persistent fleet strip. All drones, positions, and alerts visible without navigation.
Map-based waypoint editor with inline automated validation. Draft vs approved states are visually explicit.
Three-tier severity with inline actions. Critical alerts can't be dismissed for 3 seconds — long enough to read.
Flight data, power, signal, and payload in one view. Battery bar interpolates green through amber to red.
Every visual choice here exists to reduce load the interface itself creates — operators should spend attention on judgment, not on decoding the screen.
Operators work in low-light command environments for 6–8 hour shifts — a bright UI in a dark room causes cumulative eye fatigue. This is an endurance decision, not a style choice.
Maps to universal instrument-panel convention, so operators don't have to learn new color semantics. Both pass color-blindness contrast checks, and every state is backed by icon + label too.
Fixed-width numerals keep columns stable as telemetry updates live — a battery drop from 100% to 8% shouldn't shift the layout at the exact moment it needs reading.
A modal covers the map — the exact context the operator needs to act on the alert. Inline actions keep spatial context intact.
This project pushed me to design in a register I hadn't worked in before — where a bad interface decision is operational, not reputational. That reframed every tradeoff: I was far less willing to sacrifice clarity for aesthetics, and far more disciplined about asking "what happens if the operator misses this?" instead of "does this look clean?"
Situational awareness isn't a feature — it's the baseline the whole system has to protect. The moment an operator has to think about the interface, it has already failed them.