Dev HUD & Debug Modes

You don't need to edit URLs. Press ` (backtick / tilde ~).

While your game is focused in a dev or standalone session, the backtick key opens the on-screen Dev HUD — a panel of clickable toggles for every debug and dev mode. Flip a switch instead of hand-typing a query string. The HUD is dev/standalone-only: it never appears in a published production session, so you can't accidentally ship it.

The old URL flags still work as a fallback (and they're what reviewers and automation use inside the launcher). Every flag below has a HUD equivalent — the HUD is just the friendly front end to the same switches.


What the Dev HUD gives you

Open it with ` — the panel starts closed, and the header reads Dev HUD (~ to close). On your first standalone boot a one-time dismissible pill appears in the corner that says exactly "press ~ for dev tools" (opening the HUD, or clicking its ×, dismisses it for good).

The panel has exactly five rows, in this order. Each renders as [<key>] <label>: <state> — click a row, or press its digit 1–5 while the panel is open, and use / to move between rows:

Key Row label Kind What it does
1 Input source reloads Cycle the pose source camera → clip → keyboard → camera: camera (live), clip (a recorded video), keyboard (arrow keys + Enter drive a synthetic pointer). Develop the whole game with no camera.
2 Skip camera reloads Toggle skipping the camera step; mouse/touch/keyboard drive input. Shows on/off.
3 Debug overlay live Drive the host's existing F8 tracking-view cycle. Shows the current overlay mode. See Debug Overlay.
4 Performance live/reloads The performance overlay (FPS, inference latency, frame drops). Shows on/off.
5 Console live/reloads An on-screen log panel so you can read diagnostics without opening browser devtools. Shows on/off.

A row marked live ( in the panel) toggles in place; a reloads row () sets a URL flag and reloads. Performance and Console are live when your runner injects a live toggle, otherwise they set a flag and reload.

The HUD is discoverable on purpose. If you forget every flag on this page, you can still turn everything on and off by eye. Press ` and read the labels. (There is no row for FTUE/menu skipping — the panel is exactly the five rows above.)


F8 — the debug overlay cycle

F8 cycles the host's tracking-view overlay, in this order:

off  ->  preview  ->  preview-skeleton  ->  full  ->  off  ->  …
        

It works even when keyboard focus is inside your game iframe — the SDK forwards the keypress to the host for you. preview is the camera crop, preview-skeleton adds the pose wireframe, full adds perf metrics. The overlay is a host surface: it works in every session with no game code. Full details, including the manifest field that sets the starting mode, are in Debug Overlay.


The kill switch: ?developerMode=0

An explicit ?developerMode=0 on the URL turns the entire dev surface inert — no Dev HUD, no F8 cycle, no overlay, no debug DOM at all. It always wins, over every other flag and over any manifest declaration. Use it for demos, recordings, and kiosk installs where you want a guaranteed-clean screen.


Full URL-flag reference

Every switch, its accepted values, its effect, and the HUD control that does the same thing. Append flags to the page URL as a query string, e.g. …/?inputSource=keyboard&skipCamera=1.

Flag Values Effect HUD equivalent
inputSource camera | clip | keyboard Choose the pose source: live camera, a recorded clip, or keyboard-simulated pointer. Default camera. Input source row
skipCamera 1 / 0 Skip the camera step and play with mouse / touch / keyboard. Skip camera row
showDebug 1 / 0 Turn on the debug bootstrap (tracking-lab / debug scaffolding). — (no HUD row; use the Debug overlay row / F8 for the tracking view)
performance 1 / 0 Show the performance overlay (FPS, inference latency, frame drops). Performance row
console 1 / 0 Show the on-screen console/log panel. Console row
autogame <game-id> Auto-launch a specific game on load, e.g. ?autogame=myslug. Combine with skipCamera=1 for a one-URL boot. — (launch shortcut)
catalog staging Reviewer-only. Read the staging catalog instead of production. Requires a reviewer session; a normal visitor is ignored and stays on production.
developerMode 0 Kill switch. Force the entire dev surface off; always wins. — (there is no in-HUD way to disable the HUD)
(F8 key) Cycle the debug overlay: off → preview → preview-skeleton → full. Debug overlay row

Boolean flags accept 1/true for on and 0/false for off.

Hosted-runner-only flags

If you boot your game through a self-hosted runner (an opt-in the scaffold does not wire by default — see Vite Config & Build), two extra flags apply to that runner specifically:

Flag Values Effect
camSim 1 Drive tracking from a bundled camera-fixture clip instead of a real webcam — real pose detection, no camera needed.
calibration ceremony (default) | synthetic | game Choose how the get-ready calibration is produced: the real ceremony, a contract-shaped synthetic answer (badged), or defer to your game's own request.

Which mode when

  • Building gameplay, no camera handy → Dev HUD → input source: keyboard (or ?inputSource=keyboard). Fastest loop.
  • Checking tracking feelinput source: camera or clip, plus F8 to watch the skeleton.
  • Chasing a perf problemPerformance overlay on; watch inference latency and frame drops.
  • Recording a clean demo?developerMode=0. Nothing debug-related renders.

Related pages

  • Debug Overlay — the F8 tracking view in depth, and the coordinate.debugOverlay manifest field.
  • Vite Config & Build — how npm run dev works, and the optional dev:hosted script you can add yourself to preview the game inside the host runner.