Customization Parameters

This section describes all available customization parameters that can be passed to the KinesteX SDK to customize the user experience. Parameters are organized by category, with examples showing which have direct SDK support vs. requiring `customParams`.


Parameter Passing Methods:

  • Direct SDK Support: Pass directly to SDK initialization or view creation methods
  • customParams / customParameters: Additional parameters passed via a custom parameters object
  • HTML/JS postData: All parameters passed as flat object via postMessage API

Required Parameters

These parameters are mandatory for successful SDK initialization.


ParameterTypeDescription
userIdstringUnique identifier for the user. Must be at least 2 characters. Used for tracking progress, analytics, and personalization
companystringCompany name associated with the API key. Determines theme defaults and content access
keystringAPI key for authentication. Required for all API calls and content access

SDK Support: All platforms support these as direct parameters.

Required Parameters Setup
1// Direct SDK support
2let kinestex = KinesteXAIKit(
3    apiKey: "YOUR_API_KEY",
4    companyName: "YOUR_COMPANY",
5    userId: "unique-user-id"
6)

User Profile

Parameters that define user characteristics for personalized content and recommendations.


ParameterTypeDescriptionEffect
agenumberUser's age in yearsAffects workout intensity recommendations and exercise selection
genderstringUser's gender (male, female, other)Affects BMI calculations and content personalization
heightnumberUser's height (in cm or inches based on locale)Used for BMI calculation and exercise calibration
weightnumberUser's weight (in kg or lbs based on locale)Used for BMI calculation and calorie estimations
fitness_levelstringUser's fitness levelDetermines workout difficulty and progression
lifestylestringUser's lifestyle type (e.g., sedentary, active)Affects personalized plan recommendations
body_partsstring[]Target body parts for workoutsFilters and prioritizes exercises targeting specific areas
plan_typestringType of workout planDetermines the structure and focus of generated plans

SDK Support: Most platforms have direct support via UserDetails object or postData fields.

User Profile Configuration
1// Direct SDK support via UserDetails
2let user = UserDetails(
3    age: 30,
4    height: 180,
5    weight: 75,
6    gender: .Male,
7    lifestyle: .Active
8)
9
10kinestex.createView(
11    user: user,
12    // ... other params
13)

Theme & Appearance

Control the visual appearance of the application.


ParameterTypeDefaultDescriptionEffect
style"dark" \"light""dark"Theme modeChanges the entire UI color scheme to dark or light mode
themeNamestringCompany nameCustom theme identifierLoads a specific theme configuration (e.g., branded themes)

Note: Theme can also be set via URL parameter `?style=dark` or `?style=light`


SDK Support: Direct support via style object or customParams depending on platform.

Theme Configuration
1// Via customParams
2kinestex.createView(
3    customParams: ["style": "light", "themeName": "CustomBrand"],
4    // ... other params
5)

Language & Localization

Configure the language for all UI text, voice prompts, and content.


ParameterTypeDefaultDescription
languagestring"en"Language code for localization
voiceActorstring-Specific voice actor for audio feedback
content_genderstring-Gender preference for content/instructors shown

Supported Languages:


CodeLanguageRTL Support
enEnglishNo
esSpanishNo
frFrenchNo
deGermanNo
itItalianNo
ptPortugueseNo
ruRussianNo
arArabicYes
heHebrewYes
hiHindiNo
bnBengaliNo
idIndonesianNo
daDanishNo
elGreekNo

SDK Support: Requires customParams on most platforms.

Language Configuration
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "language": "es",
5        "content_gender": "female"
6    ],
7    // ... other params
8)

Workout Configuration

Parameters for configuring workout behavior and progression.


ParameterTypeDescriptionEffect
planCstringPlan configuration identifierSpecifies which workout plan to load
exercisesstring[]Array of exercise identifiersDefines the specific exercises to include in a session
currentExercisestringCurrent exercise identifierSets the active exercise for camera component
completed_exercisesstring[]Previously completed exercisesAllows resuming a workout from a specific point
start_from_exercisestringExercise to start fromSkips to a specific exercise in the workout
start_from_restbooleanStart from rest periodIf true, begins at rest screen before the specified exercise
resetPlanProgressbooleanReset all plan progressClears all saved progress for the user's plans
on_start_urlstringURL to call on workout startWebhook URL triggered when workout begins

Note: Exercise IDs can be retrieved from the Content API.

Workout Configuration
1// Direct support for some, customParams for others
2kinestex.createCameraView(
3    exercises: ["Squats", "Lunges", "Pushups"], // direct
4    currentExercise: $currentExercise, // direct
5    customParams: [
6        "start_from_exercise": "Lunges",
7        "start_from_rest": true,
8        "resetPlanProgress": false
9    ]
10)

Camera & Pose Detection

Fine-tune the camera and pose detection system.


ParameterTypeDefaultDescriptionEffect
shouldAskCameraboolean-Prompt for camera permissionShows camera permission dialog before starting
shouldShowCameraSelectorboolean-Show camera selection UIAllows user to choose between available cameras
shouldShowOpenCameraSettingsboolean-Show settings buttonDisplays button to open device camera settings
cameraIdstring-Specific camera device IDForces use of a specific camera
cameraLabelstring-Camera label for displayShows custom label for the selected camera
minPoseDetectionConfidencenumber0.5Minimum detection confidence (0-1)Lower values detect poses more easily but may be less accurate
minTrackingConfidencenumber0.5Minimum tracking confidence (0-1)Affects how persistently poses are tracked between frames
minPosePresenceConfidencenumber0.5Minimum presence confidence (0-1)Threshold for determining if a person is in frame
mediapipeModel"full" \"heavy" \"light""full"MediaPipe model variantlight: Faster, less accurate. full: Balanced. heavy: Most accurate, slower
defaultDelegate"GPU" \"CPU"AutoProcessing delegateForces GPU or CPU processing for pose detection
landmarkColorstring"#14FF00"Pose landmark colorChanges the color of skeleton overlay (hex color)
showSilhouettebooleantrueShow body silhouetteDisplays silhouette guide overlay during exercises
includePoseDataboolean-Include raw pose dataSends pose landmark data in postMessage events
includePoseBordersbooleantrueShow pose boundary guidesDisplays borders indicating optimal pose positioning
includeRealtimeAccuracyboolean-Send real-time accuracyBroadcasts accuracy scores in real-time via postMessage

Note: `defaultDelegate` can also be set via URL parameter `?delegate=GPU` or `?delegate=CPU`

Camera & Pose Detection Settings
1// Via customParams
2kinestex.createCameraView(
3    exercises: exerciseList,
4    currentExercise: $currentExercise,
5    customParams: [
6        "landmarkColor": "#FF5500",
7        "showSilhouette": true,
8        "mediapipeModel": "heavy",
9        "defaultDelegate": "GPU",
10        "includePoseData": true,
11        "includeRealtimeAccuracy": true,
12        "shouldShowCameraSelector": true
13    ]
14)

UI Controls

Control visibility and behavior of UI elements.


ParameterTypeDefaultDescriptionEffect
isHideHeaderMainbooleanfalseHide main headerRemoves the top navigation header
hideFeelingDialogbooleanfalseHide feeling dialogSkips the post-workout feeling prompt
hideMusicIconboolean-Hide music controlRemoves the music toggle button
hideMistakesFeedbackboolean-Hide mistake feedbackDisables on-screen form correction prompts
showModalWarmUpboolean-Show warm-up modalDisplays warm-up recommendation before workout
showSettingsboolean-Show settings buttonDisplays settings access in the UI
isDrawingPoseboolean-Enable pose drawingActivates skeleton visualization on camera feed
isOnboardingbooleantrueEnable onboarding flowShows/hides the initial onboarding experience
UI Controls Configuration
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "isHideHeaderMain": true,
5        "hideFeelingDialog": true,
6        "hideMusicIcon": true,
7        "hideMistakesFeedback": false,
8        "isOnboarding": false
9    ]
10)

Challenge Mode

Configure challenge-specific parameters.


ParameterTypeDescriptionEffect
exercisestringChallenge exercise identifierSpecifies which exercise to use for the challenge
countdownnumberCountdown duration in secondsSets the preparation countdown before challenge starts
repsnumberTarget repetition countSets the goal number of reps for the challenge
challenges_homeobjectCustom challenges configurationDefines custom challenge options for home screen
Challenge Mode Configuration
1// Via customParams for challenge integration
2kinestex.createChallengeView(
3    exercise: "Squats", // direct
4    customParams: [
5        "countdown": 5,
6        "reps": 20,
7        "challenges_home": ["featured": ["squats_30", "pushups_20"]]
8    ]
9)

Leaderboard

Configure leaderboard functionality.


ParameterTypeDescriptionEffect
showLeaderboardbooleanShow leaderboard UIEnables/disables leaderboard visibility
usernamestringDisplay name for leaderboardSets the user's name shown on leaderboards

Note: Username is automatically saved to localStorage for future sessions.

Leaderboard Configuration
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "showLeaderboard": true,
5        "username": "FitnessPro123"
6    ]
7)

Loading Screen

Customize the loading screen appearance.


ParameterTypeDefaultDescriptionEffect
loadingStickmanColorstringTheme defaultStickman animation colorChanges the color of the loading animation character
loadingBackgroundColorstringTheme defaultBackground colorSets the loading screen background color
loadingTextColorstringTheme defaultText colorSets the color of loading text and messages
Loading Screen Customization
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "loadingStickmanColor": "#FF6B00",
5        "loadingBackgroundColor": "#1A1A2E",
6        "loadingTextColor": "#FFFFFF"
7    ]
8)

Motion Tracking Settings

Control AI-powered motion tracking behavior.


ParameterTypeDescriptionEffect
motionTrackingSettingOnbooleanShow motion tracking toggleDisplays the AI tracking on/off setting
motionTrackingEnabledbooleanEnable motion trackingSession-level override for AI tracking (clears localStorage preference)

Note: When `motionTrackingEnabled` is explicitly set, it clears any saved user preference and uses the provided value for the session.

Motion Tracking Settings
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "motionTrackingSettingOn": true,
5        "motionTrackingEnabled": true
6    ]
7)

Debug & Development

Parameters for debugging and development purposes.


ParameterTypeDefaultDescriptionEffect
showDebugRecordingbooleanfalseShow debug recording UIDisplays recording controls for debugging
showNetworkDebugToolboolean-Show network debug panelDisplays network request monitoring tool
newModelIdstring-Test model identifierLoads a specific ML model version for testing

Note: `showDebugRecording` can also be enabled via URL parameter `?debug=true`

Debug & Development Settings
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "showDebugRecording": true,
5        "showNetworkDebugTool": true,
6        "newModelId": "pose_model_v2_beta"
7    ]
8)

Custom Workout

Configure custom workout sequences. For complete custom workout implementation, see Custom Integration.


ParameterTypeDescriptionEffect
customWorkoutExercisesarrayArray of exercise configurationsDefines a custom sequence of exercises with their parameters
restSpeechesstring[]Rest period audio identifiersCustom audio to play during rest periods
currentRestSpeechstringCurrent rest speech identifierSets the active rest period audio
videoURLstringCustom video URLURL for custom exercise demonstration video

Custom Workout Flow:

1. Pass `customWorkoutExercises` during initial verification

2. Send `workout_activity_action: "start"` message to begin the workout

3. The system will navigate to the workout flow automatically

Custom Workout Parameters
1// Via customParams for additional settings
2let customExercises = [
3    WorkoutSequenceExercise(
4        exerciseId: "exercise-id-1",
5        reps: 15,
6        duration: nil,
7        includeRestPeriod: true,
8        restDuration: 20
9    )
10]
11
12kinestex.createCustomWorkoutView(
13    customWorkouts: customExercises, // direct
14    customParams: [
15        "restSpeeches": ["rest_speech_1", "rest_speech_2"],
16        "videoURL": "https://example.com/demo.mp4"
17    ]
18)

Assessment Configuration

Parameters specific to assessment modes (TUG test, balance tests, etc.). For complete assessment data structures, see Data Points.


ParameterTypeDefaultDescriptionEffect
tugMinRequiredSpacenumber-Minimum space requirementSets the required distance (in meters) for TUG assessment

Note: For balance assessments (semitandemstand, fulltandem, sidebysidestand), the system automatically uses the "heavy" MediaPipe model for better accuracy.

Assessment Configuration
1// Via customParams for TUG assessment
2kinestex.createAssessmentView(
3    exercise: "tugtest", // direct
4    customParams: [
5        "tugMinRequiredSpace": 3
6    ]
7)

Audio Configuration

Control audio playback settings.


ParameterTypeDefaultDescriptionEffect
enableM4abooleanfalseForce M4A audio formatForces the audio system to use M4A format instead of default
Audio Configuration
1// Via customParams
2kinestex.createView(
3    customParams: [
4        "enableM4a": true
5    ]
6)

URL Parameters

Some parameters can also be passed via URL query string for HTML/JS integrations:


URL ParameterEquivalent ConfigExample
stylestyle?style=light
delegatedefaultDelegate?delegate=GPU
debugshowDebugRecording?debug=true

URL parameters serve as defaults and can be overridden by parameters passed in the postMessage data.

Complete Example

Here's a comprehensive example combining multiple parameter categories:

Complete Configuration Example
1// Complete configuration example
2let kinestex = KinesteXAIKit(
3    apiKey: "YOUR_API_KEY",
4    companyName: "MyFitnessApp",
5    userId: "user_12345"
6)
7
8let user = UserDetails(
9    age: 28,
10    height: 165,
11    weight: 60,
12    gender: .Female,
13    lifestyle: .Active
14)
15
16kinestex.createView(
17    user: user,
18    customParams: [
19        // Theme
20        "style": "dark",
21
22        // Language
23        "language": "es",
24
25        // UI Controls
26        "isOnboarding": false,
27        "hideFeelingDialog": true,
28
29        // Camera
30        "landmarkColor": "#00FF88",
31        "showSilhouette": true,
32        "shouldShowCameraSelector": true,
33
34        // Leaderboard
35        "showLeaderboard": true,
36        "username": "FitUser28",
37
38        // Loading
39        "loadingBackgroundColor": "#1A1A2E",
40        "loadingTextColor": "#FFFFFF"
41    ]
42)

Need Help?

Our team is ready to assist with your integration.

Contact Support
KinesteX

Personal AI Fitness Trainer & Motion Analysis SDK for Health & Fitness Apps

Contacts

hello@kinestex.com

Supported by

AMKM Investments supporting KinesteXin5 Tech
© 2024. All rights reserved. KinesteX
KinesteX TwitterKinesteX Inst