Configuration
mHumanTrackAI is configured through JSON profiles. This page summarises the profile system and the key configuration files.
Profile system
Profiles are JSON files stored in profiles/ (gitignored; seeded from shared/schema/default_profile.json on first run). The active profile is loaded at engine startup and can be switched live from the Settings view or via the loadProfile control command.
Hot reload
When a setConfig, setCamera, or loadProfile command arrives, the engine marks its config dirty and, on the next main-loop iteration, closes and reopens the camera/source with the new settings — no restart needed.
Profile sections
| Section | What it controls |
|---|---|
mode | "accessibility" or "gaming" — which gesture table is active |
cameras[] | Per-camera: id, resolution, fps, fourcc, backend, mirror, roi, enabled |
bodyParts | Per-joint enable flags (head, neck, torso, arms, hands w/ fingers, legs, feet) |
tracking | Engine (rtm/mediapipe), device (auto/cuda/cpu), model tier, confidence thresholds, targetFps (0 = uncapped) |
smoothing | One-Euro filter parameters (minCutoff, beta, dCutoff) |
prediction | Occlusion prediction enable, visibility threshold, Kalman, IK, maxPredictMs |
gestures[] | Gesture → action mappings (data-driven, hot-reloaded on Apply) |
gestureTuning | Pinch thresholds, debounce, hold, scroll gain |
gaming | Virtual gamepad device (vigem-xbox360), locomotion suppress |
gamingTuning | Lean / head gain, deadzones, crouch ratio |
calibration.tpose | T-pose neutral baseline (captured via the Calibration screen) |
osc | OSC/VMC output host, port, mode, enable flag |
accessibility | Dwell-click enable, dwell duration (ms), sensitivity multiplier |
hotkeys | panicToggle (default Ctrl+Alt+P), pause |
ipc | ZeroMQ host + ports (dataPort 5555, controlPort 5556, previewPort 5557) |
appProfiles | Per-app auto-switch rules (process → profile + mode) |
Other config files
| File | Purpose |
|---|---|
edition.json | {"edition": "gpu"} or {"edition": "cpu"} — written by the installer based on the detected hardware, read at startup |
components.json | Downloadable GPU technology catalog. URLs are placeholders that must be filled in before distributing |
components/<id>.installed.json | Written after a successful install; read by the engine to enable GPU backends |
The canonical schemas live in shared/schema/: profile.schema.json (configuration), ipc.schema.json (wire format), and default_profile.json (seeded defaults).
