VCAM – Desktop Application

Screen Grab of version 0.29 of the desktop application

This application receives live data from the joystick devices, customizes and interprets what each button does and passes the interpreted message on to a 3D application such as Unreal Engine or Motion Builder.

Quick Setup Guide

  1. Plugin the USB dongle to the computer with the VCam Desktop App. When the connection is successful, CONNECTED will appear in the bottom left corner of the application window.
  2. Configure Settings in Options Settings.
    1. Use Revision Dropdown in Joystick section to select the correct VCam controller versions and enter their corresponding Ids.
    2. Add Target value for the corresponding program you want to use. If the programs are on the same machine as this app, use for UE5 and for Motion Builder. More info can be found in Settings.
    3. Select the Button Configuration Options in Button Commands. There are different command options per application, unselect any option you are not using for the current session.
    4. Press OK to confirm settings
  3. Assign the functionality for each button on your controllers from the different binding options. Note that there are different button bindings for the joysticks, buttons, and LEDs.
  4. Select Camera from Sensor dropdown.
  5. Save current configuration with File Save As.
  6. Optional Steps:
    1. Create Button Presets
    2. Create Lens Presets

Button Testing

Button to simulate joystick button pressing

The desktop application can be used to simulate the joystick controls for testing. For example the circle representing the joystick can be clicked and dragged to simulate the user operating the joystick and the buttons can be “pressed”.

Joystick Configuration

This image has an empty alt attribute; its file name is Rev1-2.jpg
Revision1 Joysticks
This image has an empty alt attribute; its file name is rev1_bindings.png
Bindings for Rev1s in the Desktop Application
This image has an empty alt attribute; its file name is Rev2.jpg
Revision2 Joysticks
This image has an empty alt attribute; its file name is Capture1.jpg
Bindings for Rev2s in the Desktop Application


A/B/C/DButton Assignment
E/F/G/HJoystick Axis Assignment. Setting one side will clear the other, allowing for positive/negative mappings. For example setting E will clear G.
IVisual indicator of current joystick position
TriggerButton on the backside of the joystick
JoystickSimilar to L3/R3 on PlayStation controllers the analog sticks are clickable by pressing down
ScrollScroll wheel on the back of the controller
Mappings – Desktop Application to Joystick Hardware


Binding OptionsDescription
Aperture Up/DownIncrease/Decrease Aperture Value.
ButtonsChange current button preset.
[^]ButtonsTemporarily change the button assignments to a different preset while button is held down.
Debug FocusTurns on the Debug Focus Plane in UE
FocusAdjusts focus distance (only supported for UE).
Frame Beginning/ Prev/NextGo to beginning, previous, or next frame in the current timeline.
Key AddAdd keyframe to the timeline.
Key Prev/NextGo to the prev/next key in timeline.
Landmark Set/ Prev/NextSet new landmark in Unreal or go to prev/next preset landmark.
LensAssign lens presets to a button.
OnlineVisual indicator that the joysticks are online.
Play Start/Stop/ ToggleTrigger Play on all devices added to your PeelCapture session(see here for more details).
PossessPossess Object in Scene
Prime Up/DownJump up/down to the next/prev focal length on the “Primes” list.
Record Start/Stop/ ToggleTrigger record on all devices added to your PeelCapture session(see here for more details).
Rotate X/Y/ZRotates Camera along the corresponding axis.
Snap Rotate -90/180/90Snap rotate the camera by -90/180/90 degrees
Translate X/Y/ZTranslates Camera along the corresponding axis.
TransportVisual indicator of the recording status.
Zero Magic CarpetMove camera back to origin.
Zoom In/OutAdjusts focal length.


Desktop Application Settings Menu

The settings can be customized via Options -> Settings.

Joystick: Select with joystick version and input the corresponding Id – A single one, a pair, or three devices.

Revision: Dropdown controls which joystick revision is available in each panel. Use “Rev1” for the joystick that has a flat analog slider and 4 buttons. Use “Rev2” for the larger controller with a gamepad joystick, 4 buttons, 2 leds, a scroll wheel, and a trigger buttons.

Targets: Add IP address and port numbers for the programs that will interface with our VCam application. Use for any programs on the same computer, by default the Unreal port is 9158 and the Motion Builder is 6123. For a program on a different computer use the destination computer’s IP address such as If you are having issues make sure the first three digits of the IP addresses (such as 172.30.1) are the same on your computer and the destination computer.

Sensor: Add or delete different sensor options to be available for the sensor options dropdown.

Button Commands: Select which button functionality options you need based on which program you are using. Deselect any options you are not using.

Listen: Port number is where the software listens for messages, specifically from PeelCapture. Set this to a unique port.

Connecting to Peel Capture

Desktop Application Settings
This image has an empty alt attribute; its file name is image-2.png
PeelCapture – add device panel

To trigger Record/Stop/Playback from VCAM follow these steps:

  1. In the Desktop application, add a target by navigating to Options -> Settings -> Targets -> Click the ‘+’ button.
  2. In the ‘Host’ field, enter the IP address of the machine running PeelCapture.
  3. In the ‘Port’ field, enter a port number that is currently unused.
  4. Click ‘OK’ to confirm.
  5. In PeelCapture, add a new device in the Devices Panel.
  6. Select ‘peelvcam’ from the dropdown menu.
  7. In the ‘Address’ field, enter the IP address of the machine running the Desktop Application.
  8. In the ‘Port’ field, enter the ‘Listen Port’ value found in the Desktop Application’s settings.
  9. For the ‘Listen IP,’ select the IP address you mentioned in step 2.
  10. In the ‘Listen Port’ field, enter the port number you entered in step 3.