Source Applications
A source application renders content into an app volume and streams it to the target applications (headsets, visualizers). You start and manage them from the visualizer's Source Applications panel.
The panel
| Section | Shows |
|---|---|
| Apps | A tile grid: built-in apps, then detected apps, then your presets, then + Add source app. The refresh icon looks for installed apps again. |
| Running | One row per running app, with its status, Streams to, Stop and, where supported, Live settings. |
Tile tags:
| Tag | Meaning |
|---|---|
| Built-in | Ships with QAROS: StereoKit, CPU Renderer, Test OpenXR. |
| Detected | Found on this PC (see Detected apps). |
| (none) | A preset you saved. |
| Developer | Visible from the Developer UI mode up. |
| Debug | Visible only in the Debug UI mode. |
| N on | N copies of this app are running. |
Built-in and detected apps cannot be edited or removed. To change one, open it and Save as new preset.
Launching an app
- Click a tile. A dialog opens (Built-in app, Detected app or Edit preset).
- Adjust the settings and choose Streams to.
- Press Launch.
Each Launch starts a new, independent copy with its own copy of the settings. Launch failures appear as error notifications (<app name>: <error>).
Preset dialogs also offer Save, Save as new preset and Remove. Removing a preset does not stop the apps started from it, and stopping an app does not remove its preset.
Adding your own app
- Click + Add source app.
- In the Developer or Debug UI mode, pick the type first: OpenXR app or QAROS API app. In Basic mode only OpenXR apps can be added.
- Set Executable (type a path or Browse). Name defaults to the executable name.
- Press Add app. This saves a preset; it does not launch. Click the new tile and press Launch.
| App type | Settings | Processes |
|---|---|---|
| OpenXR app | Executable, Arguments (one per line) | One process per target app |
| QAROS API app | Executable, Arguments (one per line) | One process for all targets |
| StereoKit | Model, Scale, Orientation, Show gesture points | One process per target app |
| CPU Renderer | Points, Sphere radius | One process per target app |
To test your own QAROS API app: switch to Developer mode (Settings, no password), add it as above with type QAROS API app, then launch its tile. Check Running for its status and the Hub's log folder for its stdout/stderr.
A QAROS API app is an application built on the QAROS C or C# API (for example the Vulkan cube example). QAROS starts it, hands it a one-time launch code of its own (the code on the onboarding screen stays as it is) and its GPU, and restarts it with backoff if it exits within 10 s. What the app has to do is in Developer Guide: Launching from QAROS.
OpenXR apps
An OpenXR app runs unchanged on the QAROS OpenXR runtime, which the Hub starts once per target app. The runtime renders on the target's GPU (otherwise the first discrete GPU).
- The app's
LOCALreference space has its origin at the centre of the app volume. Place content relative toLOCALand it appears inside the volume. - Test OpenXR (built-in, Debug mode) draws a test scene filling its app volume, with a blue box at the centre. Use it to check the OpenXR path end to end.
Streams to
Selects which target applications receive the app's stream:
- All target applications (default), or
- one checkbox per connected target application.
Changing it re-routes a running app without a restart. A QAROS API app always streams to all target applications that request it.
Live settings
Live settings (CPU Renderer and StereoKit only) change a running app without a restart:
| App | Live |
|---|---|
| CPU Renderer | Points, Sphere radius |
| StereoKit | Model, Scale, Orientation, Draw a cube on each click |
Everything else (Show gesture points, executable, arguments) applies at launch: stop the app and launch it again. Live changes affect only the running app and are not written back to its preset.
Detected apps
On start, and when you press refresh, the visualizer looks in its own folder for known applications:
| File | Tile |
|---|---|
qar-vulkan-source.exe | Vulkan cube (QAROS API app, Developer mode and up) |
UI modes and mode-gated apps
The visualizer has three UI modes: Basic, Developer and Debug (Debug needs the debug password in Settings).
| Apps | Shown from |
|---|---|
| StereoKit, your OpenXR presets | Basic |
| QAROS API apps (yours and the Vulkan cube) | Developer |
| CPU Renderer, Test OpenXR | Debug |
In a lower mode their tiles and running rows are hidden, but apps already running keep running.
Persistence
Presets and the list of running apps are kept by the Hub on this PC, not by the visualizer. They survive visualizer and Hub restarts; when the Hub starts, it relaunches the apps that were running. Model and executable paths must stay reachable.
If a source app is killed and relaunched with the same identity, the new instance takes over its streams within about 2-3 s; see Running the Hub.