4E Virtual Design · Runtime Hotkeys · Unity 6

Hotkey Guide

Every panel, diagnostic, and test overlay in the 4E Data Flow System is triggered by a single F-key. All keys are independent and conflict-free — you can have every panel visible simultaneously, or none at all. Every binding is configurable via its component's toggleKeyPath field if you want to rebind.

Companion to BindingGuide.html and SetupGuide.html. Keys only respond in Play mode.

At a glance

F4
DataBus Capture
Record channels to report
F5
Orientation Diag
One-shot coord dump
F6
Frame Source Test
IFrameSource preview
F7
Video Source Test
VideoPlayer + readback
F8
Calibration Tool
Coordinate calibration
F9
Dashboard
Show / hide sample UI
F10
Webcam Preview
Live camera + landmarks
F11
Channel Sliders
Manually fake values
F12
DataBus Monitor
Read-only channel view

Full reference

F4
TOGGLE
DataBus Capture
FourE.DataFlow.DataBusCapture
Toggles recording of DataBus channel values. Press F4 to start recording — a pulsing ● REC badge appears in the Game view. Press F4 again to stop. All active channels are recorded and exported to three formats: CSV, JSON, and an HTML report.

The HTML report includes sparkline graphs per channel (click a sparkline to expand a full channel analyser), an activity heatmap, value histograms, and a screen-space trajectory map. Reports are saved to the project root under the Captures/ folder.
recording diagnostic CSV + JSON + HTML
F5
TAP
Orientation Diagnostic
FourE.DataFlow.OrientationDiagnostic
One-shot diagnostic. Tap F5 while standing with your left hand raised. Dumps raw MediaPipe coordinates + Unity-space coordinates for key joints (nose, shoulders, wrists, hips) to the Console, plus an automatic analysis of camera mirroring and Y orientation. Use this when pose channels look wrong (backwards / upside down / offset) to figure out exactly which flip to toggle on MediaPipeBridge.
diagnostic one-shot console output
F6
TOGGLE
Frame Source Test
FourE.DataFlow.FrameSourceTest
Stage 3 validation overlay. Draggable preview window that shows whatever IFrameSource is configured on the component — webcam or video file. Use it to verify that each source implementation produces valid frames before handing them to MediaPipe.

Install via Window > 4E > Video Test > Install FrameSourceTest (Webcam / Video File). In webcam mode it auto-suspends the main MediaPipePoseRunner so both components don't fight for the same camera, and re-enables it on destroy.
test scaffold draggable window optional install
F7
TOGGLE
Video Source Test
FourE.DataFlow.VideoSourceTest
Stages 1+2 validation overlay. Draggable window with two panes side-by-side:
  • LEFT — the VideoPlayer.targetTexture direct from GPU
  • RIGHT — the CPU-readback Texture2D from AsyncGPUReadback
If both panes show the same frame, same colours, same orientation → the RGBA byte path is valid for MediaPipe. Has transport buttons inside the window: Play / Pause / Stop / Restart. Install via Window > 4E > Video Test > Install VideoSourceTest.
test scaffold draggable window optional install
F8
TOGGLE
Calibration Tool
FourE.DataFlow.CalibrationTool
Camera coordinate calibration. Tap F8 to show the calibration panel. Stand in front of the camera in a known reference pose, then press Space to capture. The tool works out whether body, face, and hand coordinate systems need X/Y/Z flips to match your camera orientation, then writes the corrected flags to MediaPipeBridge.

Run this once after first setting up the project, and again any time you change camera model or camera position.
setup space to capture
F9
TOGGLE
Sample Dashboard — Show / Hide
FourE.DataFlow.DashboardVisibilityToggle
Toggle the 4-tab sample dashboard overlay. The dashboard is the generated [4E_Dashboard] Canvas with 48 widgets spread across ALL / BODY / HANDS / FACE tabs.

The toggle component lives on the Canvas itself (not inside the dashboard root) so its Update() keeps running even when the dashboard is hidden — press F9 again to show it. Click the tab headers in the dashboard to switch between the four panel sets.
UI panel live
F10
TOGGLE
Webcam Preview Panel
FourE.DataFlow.WebcamPreviewPanel
Draggable live camera view with landmark overlay. Shows the raw WebCamTexture with pose / face / hand skeletons drawn on top via IMGUI. Drag the title bar to move, drag the bottom-right corner to resize.

Your first stop when the dashboard is doing something weird. If F10 shows a healthy camera feed with landmarks tracking your body, the detection pipeline is fine and the problem is downstream (binding, remap, target). If the preview is frozen / blank / garbled, the problem is upstream.
UI panel diagnostic live
F11
TOGGLE
Channel Sliders
FourE.DataFlow.ChannelSliderPanel
Interactive channel override panel. Shows every DataBus channel as a live slider. Drag a slider to manually write a value into that channel — MediaPipe's own writes are overridden while you hold the handle. Use this to test bindings without needing to physically move, or to dress-rehearse Pulse / Latch / Sequence modes by firing channels on demand.

Has filter buttons for Joints / Landmark / Body / Face / Hands / Audio / Time / Input, plus a text search box. Case-insensitive substring match.
UI panel interactive
F12
TOGGLE
DataBus Monitor
FourE.DataFlow.DataFlowMonitor
Read-only view of every DataBus channel. The ground-truth inspector: lists channel names, current values, types, owners, and a mini bar graph for each. Updated live every frame.

Use F12 to confirm what MediaPipe is actually writing. If the dashboard isn't moving, F12 tells you whether the issue is "no input data" (channels empty) or "binding is broken" (channels populated but widget frozen). Same filter buttons as F11.
UI panel diagnostic read-only

Notes on independence

Every panel is a separate MonoBehaviour. You can have all 9 visible simultaneously if you want — each one owns its own window state, position, and visibility. Hiding one doesn't affect any of the others.
Every F-key is configurable. If you want to rebind any of these, select the component in the Hierarchy and change its toggleKeyPath field in the inspector. The format is Unity Input System key names: "f5", "f1", "backquote", "space", etc. The Calibration Tool (F8) is hard-coded; change it in CalibrationTool.cs line 34 if you need to rebind.
F6 and F7 are temporary test scaffolds. VideoSourceTest and FrameSourceTest were built during Stages 1–3 of the video-feed rollout. After Stage 5 ships, the main runner can consume video files directly, so these become redundant. Uninstall via Window > 4E > Video Test > Remove... whenever you want — or leave them, they're harmless and only exist when you explicitly install them.

Cheat sheet

Key Tool Purpose Type
F4 DataBus Capture Record channels to CSV + JSON + HTML report recording / diagnostic
F5 Orientation Diagnostic Dump pose coords to console diagnostic
F6 Frame Source Test IFrameSource abstraction preview test
F7 Video Source Test VideoPlayer + CPU readback preview test
F8 Calibration Tool Camera coordinate calibration setup
F9 Sample Dashboard Show / hide 4-tab widget dashboard panel
F10 Webcam Preview Live camera + landmarks overlay panel / diagnostic
F11 Channel Sliders Override any DataBus channel live panel / interactive
F12 DataBus Monitor Read-only view of every channel panel / diagnostic

Typical workflows

Is MediaPipe actually running?

  1. Press F10 — webcam preview should show a live image with landmarks tracking your body. If not, check the console for errors and verify the webcam is connected.
  2. Press F12 — filter to the channel you care about. Values should be changing as you move.
  3. Press F9 — dashboard widgets should animate from your motion.

A widget isn't moving

  1. Press F12 and search for the channel that should drive the widget.
  2. Value is stuck at zero: MediaPipe isn't writing it. Check F10 for tracking quality.
  3. Value is changing: MediaPipe is fine. The problem is in the binding's remap range or the target wiring. Check the DriverMappingRunner inspector.
  4. Press F11 and manually drag the slider for that channel. Does the widget move now? If yes → your gesture isn't reaching the expected channel range; tighten inputMin/inputMax. If no → the binding target is wrong.

Coordinates look mirrored / upside-down

  1. Stand up with your left hand raised. Press F5.
  2. Read the ANALYSIS section of the console output. It tells you whether the camera is pre-mirrored and whether the Y axis needs flipping.
  3. Press F8 for the interactive calibration tool if you want automatic correction instead of hand-editing the bridge flags.

Testing bindings without moving

  1. Press F11 — Channel Sliders overlay appears.
  2. Filter to the channel you want to fake.
  3. Drag the slider — the widget (or any other binding target) reacts as if MediaPipe had written that value.
  4. Perfect for testing Pulse / Latch / Sequence / Gate modes without needing to physically perform the gesture.