KinesteX

URL Parameters

Almost every customization parameter can also be passed via the URL query string — useful for standalone links and web embeds where postMessage isn't convenient. Applies to: All integrations.


Two URL modes:


1. Single encoded payload (recommended for complex configs): ?data=<base64-encoded JSON> — the entire parameter object, base64-encoded. When present, it replaces all other individual query params.

2. Individual plain parameters: ?age=25&gender=male&style=dark&showSilhouette=false — each parameter as a plain key/value. Values are automatically type-converted: known boolean parameters accept true/false/1/0, known numeric parameters are parsed as numbers, and values that look like JSON (starting with [ or {) are JSON-parsed.


Precedence: values sent via postMessage override URL values (URL acts as defaults) — with two exceptions that work the other way around:


URL ParameterEquivalent ConfigExamplePrecedence
stylestyle?style=lightURL wins over postMessage
delegatedefaultDelegate?delegate=GPUURL wins over postMessage
debugshowDebugRecording?debug=trueCombined with postMessage value (either enables)

Type-converted parameter names (when passed individually in the URL):

  • Booleans: isHideHeaderMain, isDrawingPose, resetPlanProgress, hideFeelingDialog, hideOtherGender, includeRealtimeAccuracy, showSilhouette, showDebugRecording, showFormGuidance, streamFormGuidance, includePoseBorders, showLeaderboard, shouldAskCamera, shouldShowCameraSelector, showSettings, motionTrackingSettingOn, motionTrackingEnabled, start_from_rest, enableM4a, nativeParentScroll, isHorizontalMode
  • Numbers: age, height, weight, countdown, reps, minPoseDetectionConfidence, minTrackingConfidence, minPosePresenceConfidence, tugMinRequiredSpace

Parameters not in these lists arrive as strings (or JSON-parsed objects/arrays) — the same scoping rules from their sections apply.


Exception — `includePoseData`: this parameter is a string array and cannot be passed as an individual URL query param (the value would not survive URL type conversion). Pass it via postMessage or inside the ?data=<base64 JSON> payload instead.