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.
| Parameter | Type | Description |
| userId | string | Unique identifier for the user. Must be at least 2 characters. Used for tracking progress, analytics, and personalization |
| company | string | Company name associated with the API key. Determines theme defaults and content access |
| key | string | API key for authentication. Required for all API calls and content access |
SDK Support: All platforms support these as direct parameters.
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.
| Parameter | Type | Description | Effect |
| age | number | User's age in years | Affects workout intensity recommendations and exercise selection |
| gender | string | User's gender (male, female, other) | Affects BMI calculations and content personalization |
| height | number | User's height (in cm or inches based on locale) | Used for BMI calculation and exercise calibration |
| weight | number | User's weight (in kg or lbs based on locale) | Used for BMI calculation and calorie estimations |
| fitness_level | string | User's fitness level | Determines workout difficulty and progression |
| lifestyle | string | User's lifestyle type (e.g., sedentary, active) | Affects personalized plan recommendations |
| body_parts | string[] | Target body parts for workouts | Filters and prioritizes exercises targeting specific areas |
| plan_type | string | Type of workout plan | Determines the structure and focus of generated plans |
SDK Support: Most platforms have direct support via UserDetails object or postData fields.
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.
| Parameter | Type | Default | Description | Effect | |
| style | "dark" \ | "light" | "dark" | Theme mode | Changes the entire UI color scheme to dark or light mode |
| themeName | string | Company name | Custom theme identifier | Loads 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.
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.
| Parameter | Type | Default | Description |
| language | string | "en" | Language code for localization |
| voiceActor | string | - | Specific voice actor for audio feedback |
| content_gender | string | - | Gender preference for content/instructors shown |
Supported Languages:
| Code | Language | RTL Support |
| en | English | No |
| es | Spanish | No |
| fr | French | No |
| de | German | No |
| it | Italian | No |
| pt | Portuguese | No |
| ru | Russian | No |
| ar | Arabic | Yes |
| he | Hebrew | Yes |
| hi | Hindi | No |
| bn | Bengali | No |
| id | Indonesian | No |
| da | Danish | No |
| el | Greek | No |
SDK Support: Requires customParams on most platforms.
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.
| Parameter | Type | Description | Effect |
| planC | string | Plan configuration identifier | Specifies which workout plan to load |
| exercises | string[] | Array of exercise identifiers | Defines the specific exercises to include in a session |
| currentExercise | string | Current exercise identifier | Sets the active exercise for camera component |
| completed_exercises | string[] | Previously completed exercises | Allows resuming a workout from a specific point |
| start_from_exercise | string | Exercise to start from | Skips to a specific exercise in the workout |
| start_from_rest | boolean | Start from rest period | If true, begins at rest screen before the specified exercise |
| resetPlanProgress | boolean | Reset all plan progress | Clears all saved progress for the user's plans |
| on_start_url | string | URL to call on workout start | Webhook URL triggered when workout begins |
Note: Exercise IDs can be retrieved from the Content API.
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.
| Parameter | Type | Default | Description | Effect | ||
| shouldAskCamera | boolean | - | Prompt for camera permission | Shows camera permission dialog before starting | ||
| shouldShowCameraSelector | boolean | - | Show camera selection UI | Allows user to choose between available cameras | ||
| shouldShowOpenCameraSettings | boolean | - | Show settings button | Displays button to open device camera settings | ||
| cameraId | string | - | Specific camera device ID | Forces use of a specific camera | ||
| cameraLabel | string | - | Camera label for display | Shows custom label for the selected camera | ||
| minPoseDetectionConfidence | number | 0.5 | Minimum detection confidence (0-1) | Lower values detect poses more easily but may be less accurate | ||
| minTrackingConfidence | number | 0.5 | Minimum tracking confidence (0-1) | Affects how persistently poses are tracked between frames | ||
| minPosePresenceConfidence | number | 0.5 | Minimum presence confidence (0-1) | Threshold for determining if a person is in frame | ||
| mediapipeModel | "full" \ | "heavy" \ | "light" | "full" | MediaPipe model variant | light: Faster, less accurate. full: Balanced. heavy: Most accurate, slower |
| defaultDelegate | "GPU" \ | "CPU" | Auto | Processing delegate | Forces GPU or CPU processing for pose detection | |
| landmarkColor | string | "#14FF00" | Pose landmark color | Changes the color of skeleton overlay (hex color) | ||
| showSilhouette | boolean | true | Show body silhouette | Displays silhouette guide overlay during exercises | ||
| includePoseData | boolean | - | Include raw pose data | Sends pose landmark data in postMessage events | ||
| includePoseBorders | boolean | true | Show pose boundary guides | Displays borders indicating optimal pose positioning | ||
| includeRealtimeAccuracy | boolean | - | Send real-time accuracy | Broadcasts accuracy scores in real-time via postMessage |
Note: `defaultDelegate` can also be set via URL parameter `?delegate=GPU` or `?delegate=CPU`
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.
| Parameter | Type | Default | Description | Effect |
| isHideHeaderMain | boolean | false | Hide main header | Removes the top navigation header |
| hideFeelingDialog | boolean | false | Hide feeling dialog | Skips the post-workout feeling prompt |
| hideMusicIcon | boolean | - | Hide music control | Removes the music toggle button |
| hideMistakesFeedback | boolean | - | Hide mistake feedback | Disables on-screen form correction prompts |
| showModalWarmUp | boolean | - | Show warm-up modal | Displays warm-up recommendation before workout |
| showSettings | boolean | - | Show settings button | Displays settings access in the UI |
| isDrawingPose | boolean | - | Enable pose drawing | Activates skeleton visualization on camera feed |
| isOnboarding | boolean | true | Enable onboarding flow | Shows/hides the initial onboarding experience |
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.
| Parameter | Type | Description | Effect |
| exercise | string | Challenge exercise identifier | Specifies which exercise to use for the challenge |
| countdown | number | Countdown duration in seconds | Sets the preparation countdown before challenge starts |
| reps | number | Target repetition count | Sets the goal number of reps for the challenge |
| challenges_home | object | Custom challenges configuration | Defines custom challenge options for home screen |
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.
| Parameter | Type | Description | Effect |
| showLeaderboard | boolean | Show leaderboard UI | Enables/disables leaderboard visibility |
| username | string | Display name for leaderboard | Sets the user's name shown on leaderboards |
Note: Username is automatically saved to localStorage for future sessions.
1// Via customParams
2kinestex.createView(
3 customParams: [
4 "showLeaderboard": true,
5 "username": "FitnessPro123"
6 ]
7)Loading Screen
Customize the loading screen appearance.
| Parameter | Type | Default | Description | Effect |
| loadingStickmanColor | string | Theme default | Stickman animation color | Changes the color of the loading animation character |
| loadingBackgroundColor | string | Theme default | Background color | Sets the loading screen background color |
| loadingTextColor | string | Theme default | Text color | Sets the color of loading text and messages |
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.
| Parameter | Type | Description | Effect |
| motionTrackingSettingOn | boolean | Show motion tracking toggle | Displays the AI tracking on/off setting |
| motionTrackingEnabled | boolean | Enable motion tracking | Session-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.
1// Via customParams
2kinestex.createView(
3 customParams: [
4 "motionTrackingSettingOn": true,
5 "motionTrackingEnabled": true
6 ]
7)Debug & Development
Parameters for debugging and development purposes.
| Parameter | Type | Default | Description | Effect |
| showDebugRecording | boolean | false | Show debug recording UI | Displays recording controls for debugging |
| showNetworkDebugTool | boolean | - | Show network debug panel | Displays network request monitoring tool |
| newModelId | string | - | Test model identifier | Loads a specific ML model version for testing |
Note: `showDebugRecording` can also be enabled via URL parameter `?debug=true`
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.
| Parameter | Type | Description | Effect |
| customWorkoutExercises | array | Array of exercise configurations | Defines a custom sequence of exercises with their parameters |
| restSpeeches | string[] | Rest period audio identifiers | Custom audio to play during rest periods |
| currentRestSpeech | string | Current rest speech identifier | Sets the active rest period audio |
| videoURL | string | Custom video URL | URL 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
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.
| Parameter | Type | Default | Description | Effect |
| tugMinRequiredSpace | number | - | Minimum space requirement | Sets 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.
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.
| Parameter | Type | Default | Description | Effect |
| enableM4a | boolean | false | Force M4A audio format | Forces the audio system to use M4A format instead of default |
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 Parameter | Equivalent Config | Example |
| style | style | ?style=light |
| delegate | defaultDelegate | ?delegate=GPU |
| debug | showDebugRecording | ?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:
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.

