OpenVR Recorder Retail Downloads

(All files checked against 50+ virus scanners at virustotal.com)

Requirements:

SteamVR must be installed and running

Main installer (64 bit)

v1.56 64bit
v1.55 64bit
v1.54 64bit
v1.53 64bit
v1.52 64bit
v1.51 64bit
v1.50 64bit

 

Documentation

(also included with installer)

 

Changelog

-------
 v1.56
-------
- OSC sender will now skip models that are flagged as not recording
- OSC sender will now skip models with invalid rendermodel or serial number

-------
 v1.55
-------
- added a check in OSC sender to only send valid packets
- updated internal libraries to latest versions

-------
 v1.54
-------
- enlarged font for object names in 3D viewport a bit for better readability
- added a flag to better support printing Unicode characters to the console window

-------
 v1.53
-------
- fixed issue with device table sometimes not initializing at the right moment after startup
- added some additional checks to filter out rare cases of empty device being returned by drivers
- keyboard are now defined globally so it doesn't matter which widget is currently active
- added keyboard shortcut to start/stop recording (CTRL + Space)
- added keyboard shortcuts to hide/show the dockwidgets in the GUI

-------
 v1.52
-------
- device type is now checked earlier in the internal processing
- internally devices are now processed in parallel in multiple threads
- updated to latest OpenVR v2.5.1 SDK

-------
 v1.51
-------
- updated to latest OpenVR v2.2.3 SDK

-------
 v1.50
-------
- optimized internal algorithm a bit to be more memory efficient
    - static devices
    - devices that set internal velocity (Vive)
    - and devices that do not set internal velocity (SlimeVR)
    - are all handled optimally now
- updated code signing certificate

-------
 v1.49
-------
- removed internal check on device's velocity during fetch/update cycle
    - turns out some devices (like SlimeVR) would not set this velocity value
    - causing the app to only receive the first frame and then early out from then on even if the transform of the device had changed
- fixed issue with devices with '/', '\' or ':' characters in their name
    - they would cause issues with saving/loading settings
    - these characters are now substituted for '_' when saving/loading settings

-------
 v1.48
-------
- fixed issue with custom device names not always being read correctly at startup from previous settings
- added device serial number to OSC packets
- added shortcuts  to desktop, documents and home folder to file browser window sidebar
- updated to latest OpenVR v2.0.1.0 SDK

-------
 v1.47
-------
- added option to save quaternions instead of euler angles for TXT & CSV rotational data
- added buttons to change background and floor color in 3D viewport
    - right clicking on the button resets the color to default
- updated internal libraries to latest versions

-------
 v1.46
-------
- fixed issue with some button/axis data not getting saved properly on some devices

-------
 v1.45
-------
- rolled back some of the memory savings from v1.44 since they were a bit too aggressive and caused issues on some setups
- changed to a different data structure that can hold more data, to prevent a crash on very long recordings
- during data export (after recording) 3D viewport will now also report progress
- added feature to playback an audio file during recording (so you can sync your actions to music or audio cues for example)
- fixed issue where device data table would sometimes not be updated
- fixed issue with loading device names
- updated to latest OpenVR v1.23.7

-------
 v1.44 [this version is quite buggy]
-------
- recording now automatically stops if memory usage reaches above 90% to avoid crashing
- exporting after recording reports percentage of object types to GUI and displays in progress bar
  - since export of very long recordings can take a while
  - exact single percentage of everything is hard to determine up front so it's split up per object/section
- improved memory usage during recording by optimizing data structure
- improved memory usage after recording is stopped and raw data is converted to animation curves
- updated internal libraries to latest versions
- updated to FBX 2020.3.1
- updated to FFmpeg 5.0.1
- updated to Visual Studio 2022 with all the latest compiler optimizations

-------
 v1.43
-------
- added MotionBuilder 2023 plugin

-------
 v1.42
-------
- fixed issue with OSC where it could send the same frame multiple times
  - timestamps are now internally checked and data is only sent if there is an timestamp increase
- fixed issue where OSC timestamps could get too high leaving not enough digits of precision left for meaningful data
  - instead of using system clock the time since start of the application is now used to leave more fractional digits for usefull data
  - attempts at sending data as double (instead of float) would result in some OSC readers not being able to handle the data correctly

-------
 v1.41
-------
- "Snap Origin to Device" now:
  - internally uses transform matrix for more accurate result
  - internally uses device ID, in case you have multiple devices with the same name

-------
 v1.40
-------
- updated "Require HMD"
  - will now set value for "requireHmd", "forcedDriver" and "activateMultipleDrivers"
  - added additional info in the mouse over tooltip
  - as outlined here: https://github.com/n1ckfg/ViveTrackerExample
- added button to reset Global Offset (effectibely putting it back to SteamVR's room setup)
- added option to snap Global Offset to device
  - automatically adjusts Global Offset position/rotation so selected device is at the origin
  - option to enable/disable position/rotation individually
- fixed display glitch where "Virtual Camera" tab would always display "none" even when virtual cameras existed

-------
 v1.39
-------
- some additional checks to prevent a crash when OpenVR does not return a rendermodel for a device
- fixed a bug with crash on recording stop that could happen on some machines when outputting meshes to FBX file
- device details are now added to the message log to help for (crash) debugging
- added MotionBuilder 2022 plugin

-------
 v1.38
-------
- lots of small bugfixes, prevention measures, optimizations and potential memory leaks based on static code analysis
- fixed potential crash on devices with invalid render model

-------
 v1.37
-------
- various small speed/memory optimizations
- updated to latest OpenVR v1.16.8

-------
 v1.36
-------
- fixed possible crash in recorder
- added some additional debug info to the crash uploader to help isolate where exactly it crashed

-------
 v1.35
-------
- fixed issue with buttons/axis not being recorded even though they did show up in the GUI
- added option to add a global offset to all devices

-------
 v1.34
-------
- improved compatibility with more audio devices
- updated internal libraries
- updated code signing certificate

-------
 v1.33
-------
- added more precision to virtual camera position offset widgets
- internally now forces the use of desktop OpenGL drivers (which was the default on almost all machines anyway)
  - overruling a QT_OPENGL environment setting that a user or other program may have set
  - a QT_OpenGL setting of "angle" could prevent some GUI widgets from being drawn
- small cosmetic fix to virtual camera display widgets list
- updated internal libraries
- updated to latest OpenVR 1.14.15
- updated to latest OpenCV 4.5.0

-------
 v1.32
-------
- added support for multiple virtual cameras

-------
 v1.31
-------
- added option to attach a virtual camera to any device
  - visualized in the 3D viewport
  - exported to the 3D output file formats

-------
 v1.30
-------
- added the option to choose between sending Euler angles or Quaternions for OSC data packets
  - euler angles are in XYZ format (this used to be the default)
  - quaternions are in XYZW format
  - positions have not changed and are still sent as XYZ position vectors

-------
 v1.29
-------
- added description of hand OSC data structure to documentation
- last message log file is now moved to a _old folder at startup so we always keep the current and previous log for debugging / crash reporting purposes
- updated 2D & 3D OpenGL windows and drawing internals to a more modern widget class
- updated to new compiler profiting from new optimizations
- updated a bunch of internal libraries to the latest versions

-------
 v1.28
-------
- fixed an issue with "opencv_world430.dll" not loading on some machines in previous version

-------
 v1.27
-------
- small update to Remote Triggering
- updated to OpenVR 1.12.5

-------
 v1.26
-------
- fixed an issue where starting a recording could cause a crash on some occasions

-------
 v1.25
-------
- custom device names are now saved/loaded referencing device serial numbers
  - hopefully this is more deterministic than using device ids as used in previous versions

-------
 v1.24
-------
- fixed some issues when a new device connected or one would disconnect while the app is running
  - possible crash in GUI
  - device table not updating correctly
- fixed issue where formatting in the default.vrsettings file changed between SteamVR versions for the require HMD setting
  - used to be: "requireHmd" : true,
  - now is:     "requireHmd": true,

-------
 v1.23
-------
- updated internal libraries
- added some extra checks for invalid devices in drawing methods

-------
 v1.22
-------
- trigger, grip & touchpad button data is now fetched in a different way
  (seems axis data is always returned as 0 in current OpenVR version when using skeleton data)
- updated to OpenVR 1.10.30

-------
 v1.21
-------
- fixed issue with crash report generation/upload

-------
 v1.20
-------
- moved all licensing options to their own menu in the top menu bar
- added functionality to the top menu to remove license file (so you can install it on a different machine)

-------
 v1.19
-------
- added MotionBuilder 2020 plugin
- consolidated some cross application code
- added option to directly upload a crash report to the Brekel server
- added toggle option to Settings menu at the top for turning High DPI Scaling On/Off on next application start
- started digitally signing executable to help alleviate anti-virus false positives

-------
 v1.18
-------
- added error message popup window when a file cannot be written to alert the user more vigorously
- updated internal libraries to latest versions

-------
 v1.17
 -------
- updated the GUI stylesheet
- added option to set custom names for devices (double click the name in the table to change it)
- added option to enable/disable recording for each device (toggle the checkbox in the table)
  - disabled devices will draw as semi transparent in the 3D viewport
- finger skeletons are no longer written if there is no data on them (for example when recording without controllers)
- fixed finger drawing in 3D viewport if they don't exist (for example when recording without controllers)
- fixed trial version TXT & CSV being incorrectly trimmed to a maximum 4 seconds instead of 10
- updated to latest OpenVR v1.9.16

-------
 v1.16
-------
- fixed potential multi-threading race condition
- changed application type during initialization so SteamVR will now automatically be started if it's not running already

-------
 v1.15
-------
- added support for fingers
  - Vive/Valve Knuckle/Index controllers support quite accurate finger poses
  - other controllers still solve fingers but can only produce rough finger poses
- fixed an issue with v1.14 missing a few DLL files
- MotionBuilder plugins update
  - devices no longer create animation nodes for channels it doesn't have (for example buttons on a HMD)
  - added support for fingers

-------
 v1.14
-------
- internally switched to a different library packaging system
- updated a bunch of libraries to latest versions
- cleaned up dll files
- updated to latest OpenVR 1.8.19

-------
 v1.13
-------
- added video codec selection
- added MotionBuilder 2019 plugin
- rearranged MotionBuilder plugins page in the installer
- moved log and all other user settings file to Brekel folder in Documents folder
  - to avoid clutter when using multiple Brekel apps on a machine
- updated to latest Qt and OpenCV libraries
- updated to OpenVR 1.1.3b

-------
 v1.12
-------
- added "-noVRpanel" commandline option to disable VR panel (in case you don't want it or it produces a problem on your setup)
- updated to OpenVR 1.0.15
- switched to latest FBX SDK
- added extra options for writing older FBX formats
- changed FBX file type naming to 2006-2018 naming convention, with internal file format (v6.1 - v7.5) in parentheses

-------
 v1.11
-------
- added CSV export option
- added functionality to render preview to a movie file

-------
 v1.10
-------
- fixed bug where "Require HMD" setting wasn't being saved
- fixed bug where "Universe Origin" setting wasn't being saved
- fixed bug where "Remote Triggering" setting wasn't being saved
- added toggle to switch adding machinename & PID to the record triggering filename
  - having this enabled (which was the default) can help file overwriting when multiple Brekel apps are writing to the same folder

-------
 v1.09
-------
- maintenance release
- upgraded internal libraries for latest security and performance updates
- now compiled with visual studio 2017

-------
 v1.08
-------
- fixed an issue where the MotionBuilder plugins stopped working due to a recent change in OpenVR

-------
 v1.07
-------
- updated to the latest OpenVR version
- fixed crash log files as some filetypes were giving issues with the new mail server
- added extra digit for position/rotation in the table so it's easier to spot small differences
- in TXT files:
  - added resampling framerate to header (for non-raw TXT files)
  - changed "Export date/time" to a more accurate "Recording start year, month, day, hour minute, second, millisecond
  - when resampling device ID and timestamps are now correct
- when using "Record Triggering" the "Append Date/Time" is now respected when it's enabled on the Master 

-------
 v1.06
-------
- Toggle & path for audio recording wasn't saved/loaded, fixed now
- Fixed a regression in the internal recorder code causing audio files to be corrupt

-------
 v1.05
-------
- Text file output now respects keyframe resampling and filtering by default
- Added toggle to export raw data to text files (as was the case before)

-------
 v1.04
-------
- timestamps in TXT text files now always start at 0.0 on the first frame
- timestamps in TXT text files now have more digits of precision
- updated to the latest OpenVR version

-------
 v1.03
-------
- now includes a MotionBuilder plugin for live streaming (and recording)

-------
 v1.02
-------
- added logger class
  - the info from the black console window is now displayed in a logging window in the GUI of the app
  - logging info is also saved to a log file (in your My Documents folder)
- Added crash reporting feature
  - when a crash is detected log files and debugging info is collected
  - a zip file will be placed on your desktop
  - and a dialog box will ask you to send this file by email so the cause can be debugged

-------
 v1.01
-------
- "Auto Filename" is now renamed to "Append Data/Time"
  - it will now always respect the manually set filename
  - and when turned ON simply append the date/time to it
- selected audio device should now be saved/loaded
- canceling a recording after a file overwrite warning should behave more as expected now
- fixed a bug where the program would crash when running SteamVR without a Vive headset and only trackers
- added option to change SteamVR setting to be able to run without a headset
  - usefull in case you want to only track Vive controllers/trackers without a headset
  - note that this is a bit experimental and can cause SteamVR to give you some warning/error popup messages
- added some visualization options for lighthouse basestations and tracking cameras
  - these are mainly visual aids to help align things for optimal coverage during setup and calibration
- made VR Overlay text bigger and checkboxes easier to interact with

-------
 v1.00
-------
- added chapter to documentation describing how to control the app from within VR
  - for changing basic output settings
  - for starting/stopping recording
- Resample FPS controls in VR Overlay should now disable/enable according to Resample toggle
- added option to top menu to extend the right docking area to the bottom or not
  can be helpfull to fit the GUI more efficiently on smaller screens
- when camera is in follow mode you can now still dolly in/out
- camera follow mode now applies some smoothing
- adjusted axis sizes slightly
- stopping a recording while countdown is running not correctly stops
- fixed video of Vive camera being horizontally flipped in GUI (recording was correct)

--------------
 v0.56 (Beta)
--------------
- implemented preview mode tab to playback the last recorded take
  - toggle to automatically switch to preview window after recording
  - button to delete or keep the take and switch back to live mode
- moved audio recording path from Audio tab to Output Formats tab
  - only enabled when audio device is selected in Audio tab
- Video output now displays message when
  - camera is disabled (in camera dock)
  - camera is not supported (only HTC Vive has an onboard camera)
- fixed some issues where some object names in FBX files weren't correct
- added option to select texture file format
- Display-Redirect devices are now exported (whatever they may be)
- removed unnecessary dll file from the installer

--------------
 v0.55 (Beta)
--------------
- included documentation in PDF form (shortcut in start menu)
- removed FBX embed media from GUI (as it wasn't working anyway)

--------------
 v0.54 (Beta)
--------------
- implemented audio recording functionality
- added audio waveform widget just below the 3D viewport
- implemented OSC network streaming
- cleaned up the tooltip rendering
- when camera presence is detected but no frames can be fetched
  print warning that the user may need to enable it in SteamVR settings
- fixed a bug where sometimes a recording wouldn't stop correctly
- fixed a bug where camera could get too close to it's target
- fixed a bug where a device that would connect while running would not fetch its name/serialnumber

--------------
 v0.53 (Beta)
--------------
- added device serial numbers to spreadsheet in GUI
- trackers that are connected to a periphiral with buttons should now (in theory) also record that button data
- added VR Overlay functionality
  - you can now start/stop recordings while in VR
  - you can now control most settings while in VR
  - settings in desktop app and VR panel are mirrored both ways
  - to use this on Vive
    - click the System button (below the trackpad)
    - click (Trigger button) the "Brekel" circlular item that appears at the bottom
      (next to Steam, Desktop and Settings)
    - a familiar panel with controls should now appear in front of you
  (not tested on Rift yet, not sure where/if this overlay panel shows up)

--------------
 v0.52 (Beta)
--------------
- added tooltips (mouse over) to all elemets in the GUI
- tooltips sizes should now better conform their contents
- added Drawing FPS text to 3D view
- added memory / cpu usage text to 3D view
- "Draw FPS" toggle (from Settings menu) now works
- "Warn for File Overwriting" toggle (from Settings menu) now works
- cosmetic changes to about window
- added a "Frame" button to frame the 3D viewport camera on the devices in the scene (also CTRL+A or CTRL+F)
- added a "Follow" button to follow the devices in the scene
- added a "Framing Mode" selector to select to frame only the devices (HMD/controllers/trackers) or everything
- Universe Origin should now actually work (not sure how usefull it really is though)
- implemented "Record Triggering" to synch start/stop/filenames across multiple Brekel apps
- implemented video recording

--------------
 v0.51 (Beta)
--------------
- file export process now runs in a separate thread so the GUI remains responsive
- fixed link to downloads page in Help menu
- opened up a new category in the forums, accesible through the Help menu
- added switch for Universe Origin (Seated, Standing, Raw and Uncalibrated)
- changed "Resample Frame Rate" default to 30 (for new installs)
- added OpenVR version numbers to the About window
- when exporting texture a pre-existing texture will now be skipped (to save time)
- camera framerate should now be more accurate
- when no camera is available (on Oculus Rift) the camera/video widget should display a message now
- implemented TXT exporter


--------------
 v0.50 (Beta)
--------------
- initial public beta release