iPi Automation Add-on
Overview
iPi Integration Add-on allows to control iPi Recorder and iPi Mocap Studio from external application by sending JSON commands via Windows dll. It can be used for:
- Using iPi Recorder and iPi Mocap Studio as a part of third-party solution
- Automation of repeatable tasks
- Automation of custom workflow

License and Trial
iPi Integration Add-on requires separate license key, which you need to activate in iPi Mocap Studio. You can order your license here, or activate 30-days free trial. Follow the steps below to start working with iPi Integration Add-on
- Switch to Integration tab.
- Press Activate button
- Press Start 30-days Free Trial Period or Enter Integration License Key and follow further on-screen instructions

Using iPi Integration Add-on
Command Syntax
Commands are strings based on JSON syntax. Commands are submitted via JSON requests that include command name and may optionally include command arguments.
The response is also JSON string. The response include success flag. In case of error the response include error message. In case of success the response may optionally include result that is JSON object.
Long actions (recording, background evaluation, etc.) initiated by commands generate asynchroneous events on action completion. Event is described by JSON string that include event name and may include optional arguments, depending on type of event.
SYNOPSIS
// Request for command without arguments { "command": "<command_name_string>" } // Request for command with arguments { "command": "<command_name_string>", "arguments": { <arguments_list_json_string> } } // Simple response in case of success { "success": true } // Response including command result field in case of success { "success": true, "result": { <result_json_string> } } // Response in case of error { "success": false, "error": "<error_message_string>" } // Event without arguments { "event": "<event_name_string>" } // Event including arguments { "event": "<event_name_string>", "arguments": { <arguments_list_json_string> } }
iPi Recorder Commands
General Commands
get-app-info
get-app-info command returns the name of application and its version.
Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
No arguments | ||||
Result | ||||
appName | string | mandatory | iPi Recorder 3 | Application name. |
appVersion | string | mandatory | Version number in the format XX.XXX.XXX.XXX | Application version number. |
EXAMPLE
// Request { "command": "get-app-info" } // Response { "success":true, "result": { "appName": "iPi Recorder 3", "appVersion": "99.876.543.210" } }
open-studio
open-studio command opens iPi Mocap Studio and creates the project from specified .iPiVideo file.
Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
filePath | string | mandatory | Valid file path | Full path of .iPiVideo file. |
Result | ||||
Empty result |
EXAMPLE
// Request { "command": "open-studio", "arguments": { "filePath": "D:\iPiMocap\test_record.iPiVideo" } } // Response { "success": true }
exit
exit command closes iPi Recorder.
Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
No arguments | ||||
Result | ||||
Empty result |
EXAMPLE
// Request { "command": "exit" } // Response { "success": true }
Recording Commands
open-home-screen
open-home-screen opens HOME screen of iPi Recorder.
Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
No arguments | ||||
Result | ||||
Empty result |
EXAMPLE
// Request { "command": "open-home-screen" } // Response { "success": true }
refresh-device-list
refresh-device-list returns the list of available devices.
Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
No arguments | ||||
Result | ||||
Array of JSON objects, each representing recording device. Fields of list items: | ||||
kind | string | mandatory | camera depth-sensor microfon |
Device type. |
model | string | mandatory | Supported device model | Device model. |
id | string | mandatory | Unique string, format depends on device model | Unique string that is used to identify recording devices in open-recorder command. |
selected | boolean | mandatory | true false |
Device selected status. |
failed | boolean | mandatory | true false |
Device filed status. |
error | string | optional | Error message string | Error message if device is in failed status. |
EXAMPLE
// Request { "command": "refresh-device-list" } // Response { "success":true, "result": [ { "kind": "camera", "model":"PlayStation Eye", "id":"\\\\?\\usb#vid_1415&pid_2000&mi_00#7&2ed872d7&0&0000#{4cff9941-d72f-4951-9291-03d8fc97fe30}", "selected":false, "failed":false }, { "kind": "depth-sensor", "model": "Kinect 2 for Windows", "id": "Default Kinect 2", "selected": true, "failed":true, "error": "Is not available" }, { "kind": "microphone", "model": "USB Camera-B4.04.27.1", "id": "Microphone (USB Camera-B4.04.27 [VID=-1; PID=-1; Driver=256; Channels=2; Supports=WAVE_FORMAT_11M08, ...]", "selected": false, "failed": false } ] }
open-recorder
open-recorder selects devices for recording and switches to SETUP stage.
Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
selectedDevices | string array | mandatory | List of device id strings | Selecting devices for recording. Device ids are returned by refresh-device-list command. |
Result | ||||
Empty result |
EXAMPLE
// Request { "command": "open-recorder" "arguments": { "selectedDevices": [ "\\\\?\\usb#vid_1415&pid_2000&mi_00#7&2ed872d7&0&0000#{4cff9941-d72f-4951-9291-03d8fc97fe30}", "\\\\?\\usb#vid_1415&pid_2000&mi_00#7&1c1ec232&0&0000#{4cff9941-d72f-4951-9291-03d8fc97fe30}" ] } } // Response { "success":true }
evaluate-background
evaluate-background runs background evaluation.

Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
duration | number | optional | Integer number of seconds from 2 to 10 |
Setting duration of background evaluation. |
startDelay | number | optional | Integer number of seconds from 0 to 30 |
Setting start delay for background evaluation. |
Result | ||||
Empty result |
EXAMPLE
// Request { "command": "evaluate-backgorund", "arguments": { "duration": 3, "startDelay": 1 } } // Response { "success": true }
set-recorder-props
set-recorder-props command sets properties for setup, background and recording stages.

Parameter Name | Type | Mandatory / Optional | Allowed Values | Description |
---|---|---|---|---|
Arguments | ||||
Properties for SETUP Stage: | ||||
videoMode | string | optional |
Available modes depend on camera model. |
Setting RGB video mode. You can see available modes in "Video Mode" combobox at SETUP stage, or get it in the result of get-recorder-props command. |
audioMode | string | optional |
Available modes depend on microphone model. |
Setting audio mode. You can see available modes in "Audio Mode" combobox at SETUP stage, or get it in the result of get-recorder-props command. |
globalDeviceProps | JSON object |
Device-specific list of properties visible in “SHARED SETTINGS” section of SETUP stage. | ||
PlayStation Eye: Darkening for Calibration | string | optional | "None" "Darkening" "Extra Darkening" |
Darkening mode for Sony PS3 Eye cameras |
screensInRow | number | optional | Integer from 1 to number of cameras |
Setting number of screens in a row for multiple camera video view. |
screenLayout | string | optional |
For RGB cameras: |
Setting screen layout. |
Properties for BACKGROUND Stage: | ||||
backgroundEvaluationDuration | number | optional | Integer number of seconds from 2 to 10 |
Setting duration of background evaluation. |
backgroundEvaluationStartDelay | number | optional | Integer number of seconds from 0 to 30 |
Setting start delay for background evaluation. |
showEvaluatedBackground | boolean | optional | true false |
Show background mode on / off. |
Properties for RECORD Stage: | ||||
recordingStartDelay | number | optional | Integer number of seconds from 0 to 60 |
Setting start delay for recording. |
hideBackgroundWhenRecording | boolean | optional | true false |
Show hide background mode on / off. |
destinationFilePath | string | optional |
Valid file path |
Full path to destination file for recording. |
colorCompression | string | optional |
"None" |
Setting RGB video compression mode. |
jpegQuality | number | optional | integer from 0 to 100 |
JPEG quality for JPEG compression. |
depthCompression | string | optional | "None" "Background subtraction" |
Setting depth compression mode. |
Result | ||||
Empty result |
EXAMPLE
// Request { "command": "set-recorder-props", "arguments": { "colorCompression": "jpeg", "globalDeviceProps": { "PlayStation Eye: Darkening for calibration":"None" }, "hideBackgroundWhenRecording": true, "recordingStartDelay": 0, "videoMode": "640x480 color @ 50Hz" } } // Response { "success": true }