Argus
Documentation

Getting started.

The fastest way to see Argus is the web build. The fastest way to understand it is the internals guide, written for readers with no graphics background.

Run it

In the browser

Open app.argus-hmi.com. The application is compiled to WebAssembly with threads enabled, so it needs a current desktop browser and a page served cross-origin isolated, which the live site is. First load transfers about fifteen megabytes; after that the browser caches it.

If the page loads and then sits still, open the console and check self.crossOriginIsolated. It must be true. Nothing else is worth debugging until it is.

On Windows

Every release on the releases page carries a self-contained Argus-<version>.exe and a zip of the web build for serving yourself. Dev builds from the develop branch are published to the package registry with a -dev suffix.

Controls

InputAction
Dragpan
Wheelzoom about the cursor
Spacecycle the basemap
Rreframe the whole map

The round button over the map opens the options sheet: basemap, range rings, trails, and declutter. Tap a track to focus it; the information block names it and the focus indicator follows it.

Build it

Argus builds with CMake presets and nothing else. There is no dependency install step: vcpkg is fetched at configure time and builds everything, Qt included, from the manifest. Expect the first configure to take a while.

Windows
cmake --preset x64-windows-release
cmake --build --preset x64-windows-release
build\x64-windows-release\Argus.exe
Linux
cmake --preset x64-linux-release
cmake --build --preset x64-linux-release
ctest --preset x64-linux-release
WebAssembly, then serve it cross-origin isolated
cmake --preset wasm-linux-release
cmake --build --preset wasm-linux-release
python scripts/serve_wasm.py build/wasm-linux-release

Prebuilt dependencies are shared through a binary cache on the GitLab package registry; a personal access token with read_package_registry exported as GITLAB_TOKEN lets a fresh clone skip compiling Qt. Presets exist for Android and for cross-compiling Windows binaries from Linux, which is how the pipeline runs entirely on Linux containers.

Read the design

The design documentation lives in the repository beside the code it describes. Start with the internals guide, then the decision records for why the system is shaped the way it is.

Internals

docs/internals/README.md

How the code works: a graphics primer, coordinates and the camera, the geo library, map layers, the batch renderer, identity and symbology, wire to model, loading and threads, modules and the build.

Architecture decision records

docs/adr/README.md

Thirty-five decisions and the alternatives that lost, from the custom renderer and ellipsoidal Mercator through the A-GRA adapter boundary, command lifecycle, and symbol atlas.

A-GRA reference notes

docs/agra/README.md

The standard distilled: concept of operations, the DataPayload envelope, the C2 minimum message set, verified message flows, and the MVP tiers with their rationale.

Configuring Argus

docs/configuration.md

Composing registries, adding shapes, writing adornments. The authoring guide behind the configuration page on this site.

DCS World integration

integration/DCS/README.md

The Lua export bridge: modules, wire conventions shared byte for byte with the application codec, and the lab broker setup.

Versioning and releases

docs/versioning.md

One version, MAJOR.MINOR.BUILD, stamped by the pipeline. Merges to develop publish dev builds; merges to main cut a tagged release.

Deploying the web build

docs/firebase-deploy.md

Why the page must be cross-origin isolated, what gets deployed, the one-time hosting setup, and what it costs.

Message-by-message status is on the message support page and the symbology authoring model on the configuration page. Bugs and requests go to the issue tracker.