Skip to content

Layout — the tile grid

The operation console replaces the rest of the ARGUS shell with a full-viewport tile grid. Each tile is a self-contained widget (map, streams, chat, telemetry, flags, timeline, …) that you slot into a region of whichever layout preset you’ve picked.

The 14 layout presets

Presets are organised in three groups. Open the settings drawer (tune icon, top-right) to see them. Click a preset thumbnail to switch — the switch is instant and the tiles that carry over keep their state.

Basic (4 presets)

  • 1×1 — one full-screen tile.
  • 2×1 — two columns, one row (the default on first sign-in).
  • 1×2 — one column, two rows.
  • 2×2 — four equal quadrants.

Asymmetric (7 presets)

  • 2L1R — two stacked tiles on the left, one tall tile on the right.
  • 1L2R — mirror of 2L1R.
  • 3T2B — three small tiles on top, two wider tiles below.
  • 2T3B — mirror of 3T2B.
  • 3×1 — three columns, one row.
  • 1×3 — one column, three rows.

Advanced (3 presets)

  • 3×2 — six tiles in two rows.
  • 2×3 — six tiles in three rows.
  • 3×3 — nine tiles — the densest option, best at 1440p or above.

On first sign-in you get the 2×1 preset with Map in region 1 and Streams in region 2. From that point on your last-used preset and tile assignments are restored on every refresh.

Assigning tiles to regions

Under Tile Assignments in the drawer, each region of the current layout shows a dropdown labelled Tile 1, Tile 2, … Pick which tile to render there.

The full tile list

Every option offered by the dropdown, alphabetised with the icon you’ll see next to each:

TileIconWhat it does
Map (2D/3D)terrainUnified 2D / 3D / photoreal map. Exactly one Map must be present per layout — the console auto-re-balances if you swap it out elsewhere.
StreamsvideocamTACLINK streams grid + VMS + DOCKS tabs
Drone Stream (live)videocamEach active stream appears as its own pickable option in the dropdown under a “Live streams” optgroup
AssetsgroupTagged vehicles, radios, gear
Comms LogradioPTT transcription + text chat, combined
Flags LogflagList of every flag dropped on the map
TimelinetimelineChronological op-wide event log
Op SummarysummarizeSummary card (mission name, duration, roster)
Flight LogflightSelected drone’s lifecycle events
ChecklistschecklistMission checklists
Task BoardassignmentMission-local tasks
TeamsgroupsTeam roster
Op ChatforumText-only chat channel
Replayslow_motion_videoScrubbable mission replay
Fleetairplanemode_activeAircraft + dock roster
MAVLinksettings_input_antennaRaw MAVLink inspector (MAVLink drones only)
Mediaperm_mediaMission media search
Indoor 3Dview_in_arIndoor reconstruction viewer
DJI Dockhome_workPer-dock status + controls
AI Searchimage_searchSearch detections + transcripts
Workflowsaccount_treeActive workflow automations
Emptycrop_squareBlank placeholder

Some tiles are permission-gated — if you don’t have the capability, the option doesn’t appear. Common gates: map.view, drones.stream, admin.view.

Full-screen swap (hover menu)

Hovering a tile reveals a floating tile-swap button in the tile header. Click it to open a Material menu listing every other tile you can swap into this region. Click any row and the two tiles exchange positions — no state loss for either.

A tile-swap menu can also be opened by right-clicking inside a tile’s header area; the menu opens at the cursor.

There is no keyboard shortcut for swap. This is intentional — cycling tiles mid-operation with a stray keystroke would be worse UX than a deliberate click.

Where your layout is saved

Layout choice and per-region tile assignments are persisted to your browser’s localStorage under the key ops.layout. That means:

  • Per user, per browser. Not per-mission and not synced across devices.
  • Survives refresh and tab close. Not cleared on sign-out.
  • First time you open a mission on a new device you get the default 2×1 with Map + Streams.
  • To reset, clear your browser’s localStorage for the ARGUS origin, or pick a preset manually from the drawer.

Layouts are not shared with teammates and cannot be pinned to a mission for every participant. This is a known limitation (see release notes for future plans).

The “one-map invariant”

Every layout must contain exactly one Map tile. If you change a tile dropdown such that no map is visible anywhere, the console auto-assigns Map to the region you just cleared, bumping the tile you picked to the position Map came from. This keeps the map always reachable even during heavy layout juggling.

Responsive behaviour

The grid is pure CSS grid-template with 1fr units — tiles proportionally scale with the viewport. There’s no explicit collapse to a single-column “mobile” layout; the tiles just shrink with the window.

  • At < 768 px viewport width the top toolbar hides the mission name + codename to preserve button space. Mission ID stays visible.
  • At that same breakpoint some button labels in the toolbar and settings drawer collapse to icons only.
  • The settings drawer always caps at 90vw so it never covers the entire viewport.

Keyboard accessibility

  • Tab moves focus through every focusable element inside the grid.
  • Inside a tile, Tab stays inside the tile’s own focus loop.
  • F6 jumps between tiles at the region level (skipping nested focus traps).
  • PTT & comms — the floating PTT widget that sits on top of the grid.
  • Settings drawer — everything you configure without leaving the console.
  • Voice commands — the 17 recognised phrases you can speak instead of clicking.