PointCloud v3 Changelog
Complete release history of Brekel PointCloud v3, newest first. Converted verbatim from the release notes published with each version.
v3.16
- first official non-Beta release
- installer no longer expires
- your maintenance year starts on the v3.16 release date, also for licenses bought during the beta
- added Help menu item “Kinect v2 Keeps Disconnecting (Windows 11 Fix)” linking to a troubleshooting page
- Kinect v2 sensors now detect that disconnect/reconnect loop and explain it in the message log, pointing at the help page above
- added Help menu item “USB Bandwidth Diagnostics” showing what every USB device on the machine costs and where a multi-sensor setup runs out of room
- added a “USB MB/s” column to the sensor table, with link speed and reserved bandwidth in its tooltip
- USB problems are now reported in the message log, once each, and again if they come back
- fixed a crash in the 3D viewport while playing back or scrubbing clips from the timeline (a clip could hand the viewport a new frame while the graphics driver was still reading the previous one)
- the 3D viewport no longer briefly hitches when a clip delivers a frame in the middle of a redraw
BETA v3.15
- memory usage and thread safety optimization in BPC reader
- fixed a crash with offline alignment due to multi-threaded interplay with new data fusion solvers in some cases
- fixed issue with offline alignment export not saving sensor names to file
- fixed OpenGL drawing issue when a dock is torn of the main window while it’s running
- fixed network sensor recording not working (clients didn’t record a BPC and the live stream froze when starting a recording)
- recording start/stop signals to network clients are now sent on the main thread (cross-thread socket sends were silently failing)
- marker-based sensor alignment now explains why it failed, in plain language, in the log (both live and offline from clips)
- e.g. a sensor never saw the marker, two sensors never saw it at the same moment, marker too small/tilted/fast, low quality, or different markers per sensor
- each reason comes with a suggestion on what to change, plus a metrics line for support
- reduced the per-frame logging noise during live marker alignment so the diagnosis stands out
BETA v3.14
- various small fixes and improvements after code analysis
- added new meshing algorithms
- besides “Quick & Dirty” there’s now also “TSDF Fusion” and “Poisson Fusion”
- these come with new texturing algorithms: “Winner Takes All”, “Multi-View Bake (Fast)”, and “Multi-View Bake”
- mesh fusion parameters are now saved/loaded with settings files and persisted across sessions
BETA v3.13
- improved alignment quality
- marker-based alignment (for both live-sensors as well as offline from clips on the timeline)
- as well as body-based alignment (offline from clips on the timeline)
- improvements use newer more optimized math for the solver
- better outlier rejection and quality selection
- better temporal alignment guards
- fixed rare audio related crash
BETA v3.12
- made gathering some system info like GPU info and usage a bit more robust
- fixed issue where video recorder worked the first time but could fail on subsequent recordings
- fixed visual anomaly where video streams of some network sensors could appear horizontally mirrored (note that this did not affect the pointcloud or skeleton data)
BETA v3.11
- fixed issue with missing file in installer causing (file) alignment using bodies to fail
- fixed race condition in (file) alignment using bodies
- recorders are now started & stopped in parallel threads to avoid potential acummulating delays across sensors (like relatively slow disk access for example)
BETA v3.10
- added transform gizmo to translate/rotate sensors
- select sensor (or clip) in the bottom tab
- CTRL + T in 3D viewport for Translation mode
- CTRL + R in 3D viewport for Rotation mode
- CTRL + E in 3D viewport to toggle between Local and Global coordinates
- CTRL + Z for undo and CTRL + SHIFT + Z (or CTRL + Y) for redo work
- added an option to the GUI to explicitly set the Marker Style from Traditional to Modern or relying on Auto detection
- we previously relied on auto detection but this may sometimes fail and cause alignment using markers to fail
- overhauled how external libraries and drivers are loaded
- sensor dlls and their dependencies are now isolated into their own folders
- opens up some future expandability
- reduced installer size
- improved stability for Microsoft Azure Kinect and Orbbec Femto sensors
- fixed potential race condition when loading BPC frame and copying to GPU for display
- fixed issue with Orbbec Astra sensors not working on some systems
- fixed some small vertical stretching anomalies in the GUI
- optimizations in the timeline code
- updated expired discord link in help menu
- updated to latest ZED SDK v5.07 (with CUDA12 & TensorRT 10)
- updated expired discord link in help menu
BETA v3.09
- added option to crash feedback dialog to opt for never providing feedback
- added “-no_crash_feedback” commandline option to suppress crash feedback dialog at all times
- added additional checks to prevent rare crash when USB communication may have produced invalid data buffer
- improved uninitialize method for ZED sensors
- improved uninitialize method for Orbbec Astra sensors
- improved, streamlined, styled and updated installer
BETA v3.08
- switched to a new crash detection & logging system (crashpad)
- this should be able to detect a wider range of crashes and provide better debugging information
- optimized internal pixel/point loops for Kinect v1 & v2 sensors a bit
- cleaned up some GUI layouts
- improved sensor initialization code for console version
- improved realsense polling for frames to be non-blocking
- when loading an alignment file the code now first checks if it’s a perfect match and only displays the mapping GUI if there is a mismatch
- added -load_alignment_file commandline option
- attempts to load alignment file from the given path after sensors have connected
- add something like load_alignment_file “C:/folder/file.txt” as a commandline argument
- fixed issue with new version being available message would still appear even if user disabled it
- fixed a multi-threaded deadlock that could happen when connecting 2 or more client machines
- fixed a small race condition in one of the math class operations
- fixed potential lock/stall when connecting multiple clients at once
- fixed issue with shortcut “start in” not pointing to the installation folder
- fixed internal memory management for timers
- fixed potential race condition in Azure Kinect / Orbbec Femto class when setting up internal vectors buffer at initialization
- fixed potential deadlock in sensor initialization
- added hardening and more logging for initialization of Body Tracker for Azure Kinect / Orbbec Femto sensors
- added some additional logging surrounding network client discovery and network sensor initialization
- implemented a more robust way to query GPU info to avoid rare case of crash especially in console at startup of deep tracker
- improved FPS calculation to avoid memory copy and fixed very rare potential race condition
- additional hardening in network and sensor classes to prevent race condition expecially in multi-client scenario
- changed the memory managment in the network server class and how it relates clients to ids to be more rubust and thread friendly
- increased number of internal data buffers to be more on the safe side
- suppress network buffer warning during startup as it’s not relevant
- implemented a more robust way to query GPU info to avoid rare case of crash especially in console
- updated to latest Intel RealSense SDK v2.56.5
- updated to latest ZED SDK v5.05 with CUDA12 & TensorRT 10
BETA v3.07
- implemented a new data buffer pool that should be simpler, faster, more robust and more thread-safe in edge cases
- for both the sensor class and networking classes
- implemented a better buffer overflow and buffer flushing mechanism in the network classes to recover from corrupted data and other edge cases
- improved network buffer hardening against corrupted packets
- improved time sync calculation in case there are multiple queued up packets to be handled, especially with multiple client scenarios
- fixed a potential edge case in how console handles sensor IDs in case there are multiple
- fixed issue with one call in the network server class not respecting the use_selected_adapter_for_UDP switch
- fixed minor cleanup leak on server side upon closed connection of a client
- fixed inclusion of old realsense dll file
- various small improvements after static code analysis
BETA v3.06
- fixed link to online shop
- fixed potential crash with network sensors while receiving sensor stream info when things hadn’t fully initialize yet
- fixed potential edge case for a race condition in the network server class
- fixed issue with video stream not being displayed in 2D widget for some network sensors
- optimized network sensor data compression and decompression speed
- optimized several of the pixel loops for Azure Kinect / Orbbec Femto sensors
- added extra checks for sensor validity to prevent potential crash
- added some additional validation checks in the marker alignment to try and catch non valid data to prevent potential crash
- added some extra timeout handling for Orbbec Femto & Azure Kinect sensors
- added some small checks in the console string drawing routine
BETA v3.05
- fixed issue with preferred network adapter state of “Auto” not being correctly saved it would always revert to saving the actual ip
- fixed issue with network sensor id logic especially when using multiple machines and/or the local machine had a sensor attached as well
- added some additional memory safeguards for Azure Kinect / Femto Bolt
- UDP socket is now more expclicitly bound to selected network hostname at startup instead of broadcasting to all
- improved compiler linking optimizations
BETA v3.04
- improved how unique_ids are generated when a network client connects
- implemented a more sophisticated method to synchronize timestamps between networked machines
- improved memory handling for Azure Kinect & Femto Bolt sensors to improve robustness
- added buttons to save/load camera pose presets for the 3D viewport
- added toggle to enable/disable drawing of status text in viewport
- improved crash report handling code
- fixed issue with manually selected network adapter not always being used on app startup
- fixed potential memory leak for Azure Kinect and Orbbec Femto sensors
- fixed issue with console/headless not resetting some timestamp sync defaults on disconnect
- this could result in falling back to a lower accurate timestamp synchronization method after disconnect/reconnect
- updated to Intel RealSense v2.55.1
- updated to ZED 5.x drivers/SDK
- updated to new build environment
- installer and app are now signed by a new EV code certificate
BETA v3.03
- added a few runtime checks against uninitialized sensors that could cause potential but rare crash
- updated various internal libraries to latest versions
BETA v3.02
- on rare cases where user has no GPU drivers supported and OpenGL calls fail we now try to write an error to the message log
- changed internal Orbbec log settings, as it could crash attempting to create a file in “Program Files” folder without having permissions
- reverted back to old way of checking RTX support (by looking at the GPU model string)
- as new method (by looking at windows device specs/stats) sometimes reported RTX not being supported on GPUs that did support it on some client machines (more relevant for Body v3 and not so much for PointCloud v3)
BETA v3.01
- fixed issue where live sensor transform setting was lost when swapping to File tab and back to Live
- fixed issue with sensor DLLs being compiled against NVIDIA CUDA SDK and not working on machines without an NVIDIA GPU
- NVIDIA GPU/CUDA/RTX support is now checked based on what Windows reports on the system’s GPU instead of relying on NVIDIA libraries
- used to detect which deep learning models are supported
- may be a bit less reliable but it should work on all systems, including those without an NVIDIA GPU
- disable Azure Kinect firmware check (since Microsoft isn’t updating it anymore anyway)
BETA v3.00
- fixed issue where app could sometimes lock up when adding clip to timeline due to multi threading mutex deadlock
- changed version numbering scheme to start counting from Beta 3.00
BETA v0.973
- fixed some issues with Azure Kinect sensor startup in some cases
- fixed issue with binary PLY with vertex colors
- fixed race condition crash in timeline code
- added a compiler flag to better support printing Unicode characters to the console window
- updated various internal libraries
- updated internal libraries to latest versions
- updated to OrbbecSDK v1.10.11
- updated to FBX 2020.3.1
- updated to FFmpeg 5.0.1
- updated to Visual Studio 2022 with all the latest compiler optimizations
BETA v0.972
- fixed issue with batch processor not being opened when button was clicked
- fixed issue with camera transform in FBX export not lining up properly
- fixed issue with camera transform in FBX export not respecting “Scale Multiplier”
- fixed issue with sensor state not always being saved
- when headless app version does not match GUI it now displays a message box
- keyboard are now defined globally so it doesn’t matter which widget is currently active
- optimizations based on static code analysis
- added CTRL + F1 keyboard shortcut to show/hide left dockwidget (drawing / selected sensor settings)
- added CTRL + F2 keyboard shortcut to show/hide right dockwidget (settings)
- added CTRL + F3 keyboard shortcut to show/hide right dockwidget (recording)
- added CTRL + F4 keyboard shortcut to show/hide bottom dockwidget (sensors table / message log)
- updated to latest OrbbecSDK v1.9.5
BETA v0.971
- fixed regression that caused a crash when starting a recording with Azure Kinect sensor
- optimizations based on static code analysis
BETA v0.970
- double clicking a clip on the timeline now selects it, double clicking a selected clip deselects it
- compacted console drawing a bit
- added option to the top Settings menu to reset settings
- moved save/load settings from File menu to Settings menu
- fixed issue with some settings not being saved/loaded to/from file (while Windows registry did store/load them)
- extended beta to 1st of August
BETA v0.969
- improved speed of reading frames from BPC file recorded with Azure Kinect by more efficiently multi-threading
- improved speed of mesh normal calculations by more efficiently multi-threading
- improved speed of EXR exporter by more efficiently multi-threading
- fixed alpha of EXR exporter
- pixels with non-valid depth are now black in alpha, pixels with valid depth are white
- moved “Show Advanced Options” from top menu to Settings tab so it’s more visible for users
- fixed issue causing a crash on sensor discovery on some (Win11) systems, depending on other installed programs
- added more logging when discovering sensors to help identify and isolate such crashes in the future
- fixed issue of GUI would sometimes not re-enabling until timeout when no (valid) sensors were selected upon “connect sensors”
- fixed issue where sensors disabled in “advanced sensor settings” remained disabled even when not using advanced settings
- fixed issue with Orbbec drivers not always being detected
- fixed issue where “Custom Marker Length” on Live tab was hidden when “Settings > Show Advanced Options” was disabled
- fixed texture size output to message log being incorrect (export was correct)
- fixed issue with “Advanced Sensor Settings” dialog crashing on subsequent uses
- fixed issue where sensors that a user disabled in the “Advanced Sensor Settings” dialog could still show up in the sensor table
- some efficiency optimizations for Kinect v1 (XBox 360) sensors
- ffmpeg no longer pollutes console with lots of debug messages during video output
- updated to latest compiler
- updated internal libraries to latest versions
- updated to OpenCV 4.8
- updated to latest Orbbec SDK v1.8.1
- updated to latest Intel RealSense SDK v2.54.2
BETA v0.968
- fixed issue with dll file not loading on release version
BETA v0.967
- fixed potential race condition crash that could happen for some image exporters
- fixed issue with Trial version not finding Orbbec Astra+, Gemini and Femto sensors due to missing file
BETA v0.966
- added support for Orbbec Astra+, Gemini and Femto sensors (using new SDK)
- Orbbec Astra and Astra Pro sensors (using older SDK) are still supported as well
- improved marker type detection
- updated to OpenCV 4.8
- updated libraries to latest versions
- extended installer to 1st of February
BETA v0.965
- fixed issue with network sensor not setting texture stream correctly causing pointcloud to be rejected in GUI
- “Display Fused Data” is now automatically enabled during export (and set to it’s original state afterwards)
- updated internal libraries to latest versions
- updated to latest Intel RealSense SDK v2.54.1
BETA v0.964
- fixed occasional issue with Alembic exporter crash on premature file close when frame export hadn’t finished yet
- exporter now logs amount of points, polygons and texture size per frame to help debugging
- various small code optimizations based on static code analysis
- some efficiency optimizations for Kinect v1 (XBox 360) sensors
- ffmpeg no longer pollutes console with lots of debug messages during video output
BETA v0.963
- added option to switch between “Advanced Sensor Settings” and regular setting selections
- when advanced is enabled you can specify per sensor to
- use it or not
- use color or infrared (depending on sensor support)
- which resolution to use (depending on sensor support)
- when advanced is enabled you can specify per sensor to
- fixed some issues with using advanced sensor settings in some cases
- fixed some issues with UI widgets when using advanced sensor settings in some cases
- fixed issue with crash in BPC reader when skiping points section on some file variants
- this could manifest itself when doing an offline alignment using markers and a Kinect v2 file for example
- updated internal libraries to latest versions
- updated to latest compiler
- extended installer to 1st of September
BETA v0.962
- updated internal libraries to latest versions
- extended installer to 1st of August
BETA v0.961
- minor efficienty improvements for internal processing of several sensors
- changed a string conversion routine in record triggering class to be more robust for certain unicode characters
- updated to latest Stereolabs ZED SDK v3.8.0
- updated to latest Intel RealSense SDK v2.53.1
- extended installer to 1st of April
BETA v0.96
- fixed issue with Azure Kinect sensors running on headless client didn’t send data to GUI
- fixed issue with timetamp being displayed as 0.0 if sensor was selected while running infrared instead of color
- this also fixes a warning in the message log about timestamps not matching in multi-sensor setups
- this could potentially fix some issues with alignment too
- added mutex to headless version to avoid (rare) multi-threaded race condition
- when clocks of network clients and GUI are synchronized this is now logged in the GUI
- extended installer to 1st of January
BETA v0.95
- for Azure Kinect multi-sensor sync is now automatically disabled when using Infrared stream (since drivers only support this for color)
- fixed memory leak (eventually causing a crash) for Kinect v2 when using infrared in headless mode
- added color whitebalance controls (for sensors that support it)
BETA v0.94
- added “Advanced Sensor Settings” window
- finds and list all sensor types found on your machine
- allows to enable/disable usage of each sensor
- allows switching between color/infrared when supported/applicable
- allows to switch video/depth resolution when supported/applicable
- added critical warning message when USB2 cable is detected on RealSense sensor
- added Desktop, My Documents and Home shortcut locations to sidebar of file/folder dialog windows
- added option (from File menu at the top) to save/load program settings to/from .ini file
- settings are also still automatically saved/loaded to Windows registry on application close/start
- removed option to switch resolution while sensor is running (as this didn’t work well on all sensor types)
- removed “Edit Sensor Blocklist” since this functionality is now handled by the “Advanced Sensor Selection” window
- removed “Force using Color for video” from top menu since this functionality is now handled by the “Advanced Sensor Selection” window
- fixed a crash that could happen on sensor uninitialize
- preferred network adapter window will now open up with previous setting instead of always reverting to Auto
- updated to latest Intel RealSense SDK v2.51.1
- extended installer to 1st of November
BETA v0.93
- at application start we now inform Windows OS to prefer not to go to sleep (released at application stop)
- small additions and corrections in documentation
- when running an Intel RealSense sensor on USB2 we now print a warning in the message log
- override default depth units for Intel RealSense D4xx sensors to increase depth fidelity
- fixed issue with some of the lens calibration data of Intel RealSense sensors not being read correctly from drivers/SDK
- fixed issue with marker detection on some Intel RealSense sensors
- updated to latest Stereolabs ZED SDK v3.7.6
BETA v0.92
- fixed link to official Microsoft site for Kinect v1/v2 drivers
- added link to Discord in the Help menu
- updated to FBX 2020.3.1
- updated to Aruco 3.1.15
- updated to FFmpeg 5.0.1
- updated to Visual Studio 2022 with all the latest compiler optimizations
- extended installer to 1st of September
BETA v0.91
- fixed issue with Low/Hi resolution mode for Azure Kinect clips
- StereoLabs ZED2i sensor should now be recognized
- refined driver detection
- updated internal libraries to latest versions
- updated to latest Stereolabs ZED SDK v3.7.4
- updated to latest Azure Kinect v1.1.2 SDK
BETA v0.90
- improved visual quality of network sensor data
- especially noticable on lower quality settings
- more aggressive edge filtering on 3D pointcloud and color video streams
- has no effect to tracking/recording quality (since that is all done on the remote machine on uncompressed data)
- extended installer to 1st of July
BETA v0.89
- fixed issue with marker detection points
- updated to latest Azure Kinect v1.1.1 SDK
BETA v0.88
- added option to enable hardware acceleration for video exporter for faster video encoding
- attempts to use NVIDIA, AMD and INTEL acceleration and automatically falls back to CPU mode when not available
- fixed a bug where MJPEG video codec did not work due to unsupported video header setting
- H264/H265 now explicitly use “main profile” making files potentially more compatible with various players
- updated to latest Stereolabs ZED SDK v3.7.0
- extended beta to 1st of May
BETA v0.87
- added option to switch 3D view to fullscreen by double clicking on it
- can be disabled by toggle from the Settings menu at the top of the app
- updated internal libraries
BETA v0.86
- fixed issue with JPEG compression/decompression that could cause a crash on recording and possible at other points on some machines
- updated to latest Intel RealSense v2.50.0
BETA v0.851
- fixed issue with audio files not recording
- fixed issue where color resolution would be hidden (due to overlapping code from webcam integration for Body v3)
- potential fix for issue with exporter crash on fast machines and many outputs (extremely hard to reproduce & test)
- implemented a different strategy to prevent race condition in 3D view
BETA v0.85
- added keyboard shortcuts for working with timeline
- Home: rewind to first frame
- Space: play/pause
- Left arrow: previous frame
- Right arrow: next frame
- Added “Save to File” button for offline alignment
- alignment files are now saved with full transform matrix for added precision when loading them
- fixed issue with Azure Kinect Hirez setting not always loading correctly from timeline file
- fixed issue where Intel RealSense sensors could invoke deep body tracker even when not requested on a frame
- fixed incorrect warning that “timestamps vary too much” when sensors took a while to initialize
- start recording will now switch lower tab to “Sensors Table”
- added some extra info to the documentation regarding USB bandwidth
- updated to latest Stereolabs ZED SDK v3.6.1
- extended beta to 1st of January
BETA v0.84
- timeline clips now have their hold first/last frame toggles enabled by default
- fixed issue where pointclouds would keep disappearing after switching to live tab and then back to file tab
- fixed issue where time range for offline alignment didn’t automatically change when timeline bounds changed
- updated to latest Stereolabs ZED SDK v3.5.5
- extended beta to 1st of November
BETA v0.83
- fixed memory leak in BPC reader when reading high resolution Azure Kinect frames
- various small bug fixes and optimizations
- updated internal libraries to latest versions
- updated to latest Intel RealSense v2.49.0
- extended beta to 1st of October
BETA v0.82
- fixed issue with mesh decimation setting not loading correctly
- improvements regarding GUI update when timeline clips change
- implemented a new internal threading model for handling sensor data
- fixes issue of AMD processors reporting 100% utilization even when many CPU cycles were simply idling
- better compatibility for Intel & AMD CPUs
- slightly more efficient in some cases
- also implemented for network data compression
- updated to latest Stereolabs ZED SDK v3.5.2
BETA v0.81
- small internal change for Azure Kinect on how valid frames are checked and released to prevent chatty SDK messages to appear when computer can’t keep up processing fast enough
- updated CPU body detection deep learning model and platform to latest version
- updated some libraries to latest version
- updated to latest Intel RealSense v2.48.0
- extended beta to 1st of September
BETA v0.80
- fixed issue with OpenEXR output being mirrored compared to 2D/3D views in Brekel app
- fixed issue with OpenEXR Azure Kinect color data being mirrored compared to other streams
- OpenEXR data is now filtered to prevent NaN numbers (just in case)
- OpenEXR depth and position channels are now embedded in layers to adhere to Nuke’s standard
- depth.z
- pos.posX
- pos.posY
- pos.posZ
- fixed issue with Kinect v2 sensor occasionally crashing on unitialize
- fixed issue with printing sensor calibration values
- network server thread now caches incoming UVs where possible
BETA v0.79
- fixed issue where “Cancel Export” button was disabled in GUI during an export
- implemented new OpenEXR texture output with options for saving several channels
- RGB - saves the color information to the OpenEXR “RGB” channels (color conformed to depth)
- Alpha - saves data to the OpenEXR “Alpha” channel, white for pixels that had a valid depth reading from the sensor, black for invalid pixels
- Raw Depth - saves the raw depth information (the distance to the sensor) to the OpenEXR “Depth” channel
- XYZ - saves the global XYZ positions (with sensor transforms baked in) to the OpenEXR “XYZ” channels
- some additional sensor related data (like sensor type, transform and calibration data) is written as custom data in the OpenEXR header
BETA v0.78
- consolidated post-processing and output settings (on export settings tab) into a single tool box (instead of two) for better clarity
- reworked the offline alignment GUI a little bit
- reworked the internal aligner class
- now can do a second pass using an all new algorithm refining all sensors collectively
- implemented a new body-based calibration option that no longer needs a printed marker, just a person
- can use single pass and two pass alignment
- can do an extra refinement method using point data from nearest sensors for tighter fit
- currently only available for offline methods (live/realtime version coming in a next version)
- made camera panning speed proportional to camera distance so when the camera is far away it visually moves a similar distance when panning
- added a depth multiplier for PNG depth output
- fixed issue with OpenEXR depth export (due to bugfix in underlying image handling library no longer needing workaround)
- fixed issue where OpenEXR/PNG depth would only export a single clip
- fixed issue where only selecting PNG depth textures would result in a “no output formats selected” error
- fixed issue where headless/console version would crash when checking GPU support (since OpenGL context was not valid)
- fixed issue with internally selected sensor not being reset on sensor disconnect
- fixed issue where offline marker detector could crash on rare occasions
- updated internal libraries
- extended beta to 1st of August
BETA v0.77
- added chapters to the documentation with some sensor specific information
- updated to latest Intel RealSense v2.45.0
- extended beta to 1st of July
BETA v0.76
- updated to latest Stereolabs ZED SDK v3.5.0
- fixed bug that produced noise on Kinect v1 color stream
- switched to different debayering method for Kinect v1 producing faster and slightly better results
- network pointcloud processing will now drop frames if there are more than one in the queue
- which can potentially happen when a machine cannot keep up with decompressing frames
- this will only affect visuals in the 3D viewport and does not affect pointcloud recording
- if the software detects timestamp mismatches the table will reflect this with colors
- machine and sensor info is now logged to help debugging- added additional check for invalid image buffer size in memory management
- added additional check for invalid image buffer size in memory management
- timestamps are now periodically logged to help debugging
- updated several internal libraries to latest versions
- updated to latest Stereolabs ZED SDK v3.5.0
BETA v0.75
- fixed memory leak in BPC recorder for Azure Kinect sensors
- console now resets clock offset when server disconnects
- timestamp synchronization algorithm for clients will now automatically fallback to using TCP packets when UDP failed somehow
- improved internal body time interpolation algorithm
- added “Select Clip” and “Unselect Clip” option to the context menu when right clicking on a clip
- updated to latest Orbbec SDK
- extended beta to 1st of June
BETA v0.74
- added toggle to sensors table to toggle visibility per sensor (they will still be recorded)
- added a warning message to the log on older CPU’s that do not support AVX2 or AVX instructions
- this may prevent some features to not be supported or work as excepted
- improved accuracy of timestamp synchronization between networked machines using a new and more sophisticated algorithm
- message log now lists selected output file formats when starting export to help with debug reports
- clip offsets are now reset at the start of offline alignment
- new version available window now correctly adjusts number of decimals if needed
- console/headless version now logs the first 10 timestamp offsets to help with debug reports
- fixed issue on export range restriction when internal values were not available
- fixed issue when trying to change the clip color
- fixed a rare issue in the network triggering class by circumventing a possible crash in the underlying string library
- fixed cosmetic issue where selected clip was no longer drawing an outline
- fixed cosmetic issue where not all GUI elements were disabled during export
- fixed cosmetic issue where sensor ID in “Selected Sensor Settings” tab was 0-based, and not 1-based like in “Sensor Table”
- fixed issue where console version may not have read some of the more exotic sensor settings at startup
- fixed potential crash in body segmentation class
- fixed a crash when an Intel T265 was connected as these sensors don’t provide depth/pointcloud data
- a mention in the message log is now added and these sensors will be skipped during initialization
- small speed optimization in normal and vertex color computation
- lots of small bugfixes, prevention measures, optimizations and potential memory leaks based on static code analysis
- driver download progress window is now ‘always on top’
- driver installer now writes to file during download, instead of flushing all data at the end
- updated to latest Azure Kinect v1.1.0 Body Tracker
- updated to latest Stereolabs ZED SDK v3.4.2
- updated Orbbec driver to latest SensorDriver V4.3.0.17
- updated to latest Intel RealSense v2.43.0
- extended beta to 1st of May (working on a big alignment module rewrite/update but not ready yet)
BETA v0.73
- support for MGear’s latest “Point Cloud Viewer and Tools” for Unity and it’s new v3 file format bringing:
- streaming files directly from disk, good for large files
- .bin parsing is now ~2-3x faster (on top of the previous 2x improvement)
- now uses less memory (no more padding or extra array copy/clear)
- marker alignment now automatically uses the 30% best frames instead of always using all frames to help robustness and quality
- marker quality now takes into account how many consecutive frames a marker has been seen
- added a tip to the marker generator window to make sure to stick your printed marker to a rigid surface so it cannot bend
- added marker alignment statistics to the message log after it finishes to help debugging
- fixed issue when marker alignment was stopped an internal thread to check data kept running
- fixed issue in marker rotation time-interpolation code
- fixed potential memory leak with std::deque in various places
- speed optimization for texture upload to GPU for 2D views
- various small memory management speed optimizations in math library, marker tracker & network sensor initialization
- lots of small bugfixes, prevention measures, optimizations and potential memory leaks based on static code analysis
- added warning in GUI that small marker sizes are not recommended (unless the volume is small)
- Some internal changes to hopefully avoid issues with false positives on some anti-virus/malware heuristics
- updated to latest Intel RealSense v2.42.0
- extended beta to 1st of April
BETA v0.72
- audio class now reports warnings/errors to message log (instead of console window only)
- setting audio device now logs what format settings were actually used (since if an invalid format is set in the GUI it will try to select the closest valid settings)
- removed internal behavior of limiting number of network packets to process in one go as it could potentially prevent some crucial communication in rare occasions
- some minor cosmetic cleanup in headless/console mode output
- fixed cosmetic issue where markers in color view of sensor with mirrored color (like Azure Kinect) were drawn without mirroring
- fixed issue with headless/console mode not working and always starting full GUI on trial version
- fixed a potential (but rare) race condition for the GUI when passing bodies/markers to other classes
- fixed issue where network sensor didn’t start sending when GUI also had a local sensor
- fixed issue when running with multiple sensors on a network client
- fixed possible multi threading race condition when running with multiple sensors from a network client
- added additional debug info to the crash uploader to help isolate where exactly it crashed
- different way of compression used in installer, slightly bigger file but potentially better compatibility with anti-virus/malware scanners
- updated to latest Stereolabs ZED SDK v3.4.0
BETA v0.71
- added option to scale fused texture to smaller size
- fixed cosmetic issue where headless version would only display data of the first sensor
- fixed potential race condition crash when receiving markers from network sensor
- fixed issue with network machine with multiple sensors only sending data from the first sensor due to server not receiving all init packets due to max_packets restriction
- viewport text rendering will now be skipped on graphics cards / drivers that don’t support it to avoid a crash
- console/headless version now writes to a separate log file
- cleaned up message log output of connected sensors to be more compact
- updated to latest Intel RealSense v2.41.0
- extended beta to 1st of March
BETA v0.70
- added support to record audio
- using any device supported in windows, not just depth sensors with embedded microphones
- records to a WAV file
- added support to use WAV audio files on the timeline
- can be files recorded along with BPC files or any other source
- audio clips will be mixed during export and trimmed to the timeline export start/end settings
- mixed audio can be exported to a WAV file
- added chapters to documentation on loading data into Unity, UE4 and 3D animation (or other) apps
- added options for different naming schemes for image sequences
- rewrote audio device handling and WAV writer
- rewrote internal handling of mute/solo states
- consolidated timeline / output setting reader so there is no duplicate code between GUI and batch processor
- moved “warn for overwriting” toggle to export panel to make it more easily accessible (instead of top menu)
- this is saved/loaded with the timeline/output settings
- fixed a potential crash in the audio waveform display widget
- fixed issue where track mute/solo states weren’t being respected when number of tracks changed
- fixed issue where time sampling in Alembic files could be wrong resulting in files playing too fast or containing to few frames
- export range is now automatically restricted to range containing BPC frames only
- added additional checks to catch rare crash in marker detector
- start button in batch processor is now greyed out when there are no items in the queue
- updated several internal libraries to latest versions
BETA v0.69
- completely rewrote marker aligner
- now has option to work with a static marker or moving marker
- now comes with a brand new mathmatical solver that uses more data to optimize to the most optimal solution
- ability to run a two pass solve (based on moving marker) for tighter alignment
- ability to detect markers and do alignment based on clips on the timeline
- this can be more flexible and more accurate than doing everything on live sensors
- implemented a new marker pattern/detector
- old markers are still fully supported
- new markers are labeled experimental
- detection is usually a bit faster and more efficient, especially with moving markers
- corner refinement should be a bit more robust
- should be a bit more robust during movement
- still labeled experimental (feedback is welcome)
- improved internals of marker detector to more intelligently use sensor calibration and detect marker type/size/mirroring
- rewrote how paper size and marker length are passed around
- added export preset for Holo CatchLight by Prometheus Vision https://assetstore.unity.com/packages/add-ons/holo-catchlight-plugin-pro-177405
- allows you to use Holo CatchLight’s Unity playback integration
- exports OBJ and JPG/PNG texture sequence
- automatically uses compatible filename structure and settings
- use Holo CatchLight’s ObjSeqConverter to convert the output to an MP4 file that can be used with the Unity integration
- added a LAS pointcloud exporter option
- added global offset
- applies a position/rotation offset to all clips on the timeline
- added tooltip for SenseXR export
- added a Z-tweak multiplier option to BPC clips
- added a warning to the message log if multiple sensors are detected with one sensor not receiving any frames
- suggesting that the computer may not have enough USB bandwidth for all the sensors
- added functionality to drag & drop thesefiles onto 3D viewport
- alignment file, loads them onto live sensors or timeline (depending on what’s currently visible)
- timeline file
- output settings file
- added some missing tooltips
- Batch Processor default now has “Create Timeline Subfolder” enabled
- moved timestamp further to the left in the sensor table
- when Kinect v2 could not be initialized with synchronization it is now retried without synchronization
- fixed potential crash when loading calibration data from an old BPC file
- fixed a regression issue with mute/solo of track would hide the wrong clip in the 3D viewport
- fixed a regression issue where PNG output would save as JPG in last version
- fixed issue where timeline would not always resize correctly when loading new BPC file(s)
- fixed erroneous “Timestamps of sensors seems to vary quite a lot” message when GUI was displaying video or depth view
- fixed cosmetic issue where progress bars in batch processor were scaled 1 frame too large
- fixed cosmetic issue where “Generate Marker PDF” window wasn’t showing preview of the marker in release version
- fixed issue with Batch Processor not exporting SenseXR files
- updated to latest Stereolabs ZED SDK v3.3.3
- extended beta to 1st of February
BETA v0.68
- added export preset for Sense of Space’s SenseXR https://www.senseofspace.io
- allows you to use SenseXR’s Unity playback integration
- exports Alembic mesh and JPG/PNG texture sequence
- automatically uses compatible filename structure and settings
- from SenseXR’s top menu simply use File > Import > Alembic (.abc) to import the asses, it should automatically find the accompanying texture sequence
- fixed issue where triangles meshes had inverted normals
- changed how Alembic UVs are constructed to make it
BETA v0.67
- added an (advanced) option to blocklist sensors
- allows user to specify a list of names
- when initializing sensor names are checked against this list
- if sensor name contains an item from the list it will be skipped and not connected
- these settings are now added to output settings files
- global cropping settings (box & cylinder)
- body segmentation settings
- randomize points settings
- added additional check in image exporter to prevent crash when image data is somehow invalid
- fixed some memory leaks in body segmentation class
- fixed a possible crash in timeline GUI
- fixed issue with a few save dialog boxes stating “open” and not checking for file overwrite
- fixed issue with display of clips with large offsets on different tracks not displaying correctly
- fixed issue with batch processor not respecting time offset for clips
- fixed issue with batch processor not loading bounding box cropping Z values correctly
- internal sensor code & compiler settings now align better for trial/retail version
- changed to a more robust and standard way of handling keyboard shortcuts
- small improvements in memory managment
- updated to latest Stereolabs ZED SDK v3.3.1
BETA v0.66
- fixed issue with installer not copying some files needed for Orbbec sensors
- increased number of internal buffers
- small string conversion optimization in UDP network message creation
- added a Batch Processor
- separate application that can be started from within the main app or Windows Start menu
- reads one or more timeline files and exports to the various output file formats
- options to overrule various things like output path/filename
- allows you to process & export multiple files at once without the need of the base app
BETA v0.65
- fixed issue with initialization of Orbbec Astra sensors
- added functionality to save/load output settings to a file, instead of only saving/loading it with all timeline settings
- added mesh decimation setting to mesh export settings to reduce mesh density
- added option to switch meshing to quads or triangles (used to be quads only)
- quads is faster to generate
- triangles can produce slightly cleaner edges since they can be split in two diagonal ways
- small speed increase for meshing in quads mode
- added functionality to change clip color (used by visualization on the timeline and 3D viewport)
- added a warning at the end of marker alignment if your marker is relatively small in relation to sensor resolution and distance to it
- and a suggestion to print a larger one for better results
- fixed a crash that could occur when exporting with textures enabled and then exporting again without textures
- fixed issue with texture path in OBJ material files being incorrect
- fixed issue with initialization of Orbbec Astra sensors
- fixed issue where exposure settings in GUI could get out of sync
- added a few small memory initialization fixes
- explicitly set heap & stack reserve site in compiler to 4MB now
- updated to latest OpenCV 4.5.0
- updated to latest Intel RealSense v2.39.0
- extended beta to 1st of December
BETA v0.64
- fixed issue in color to depth timestamp correlation used for recording BPC files
- only seemed to occur when recording with video or depth window showing, not with 3D view
- showed itself on Azure Kinect sensors but may have been prominent (to a lesser effect on other sensors too)
- could result in frame stuttering between color & points when playing back in PointCloud v3
- fixed issue with timeline bounds becoming incorrect when removing all clips while playing and then adding new clips to the timeline
BETA v0.63
- added “Settings > Save Marker For Printing” option from the top menu so you can use it without connecting to sensor(s)
- added extra check in raw body data buffer copy
- fixed issue with paper size not switching to “custom size” after setting a custom marker length
- fixed a potential out of bounds error in marker aligner
- small change in internal buffer locking cadence
- “running multiple sensors on laptop” warning now only triggers if there are multiple local sensors (instead of local + network sensors)
- marker data for network sensors is now processed in background thread with double buffering, just like pointcloud data
BETA v0.62
- network classes now uses a new internal buffering method to avoid race conditions especially on slower machines
- similar to what was already implemented for sensors and BPC reader in previous versions
- added feature to use gamepads to remote controll certain features
- works with any gamepad that is supported by Windows (for example XBox controllers)
- works with wired and wireless controllers
- buttons can be configured to start/stop recording and alignment functions
- GUI now shows amount of free disk space
- console version now prints clock offset once connected to a server
- console now shows amount of free disk space (once recording has started and recording folder is known)
- more verbosity when variation of (network) sensor timestamps suspiciously large
- 2D texture views now highlight selected clip
- improved internal available buffer selection mechanism in BPC Reader
- fixed issue with BPC writer where it wouldn’t dump color timestamps in the lookup table when using Azure Kinect JPG stream
- fixed issue where marker length wouldn’t change as it was internally tied to the wrong GUI widget element
- fixed cosmetic issue with fps counters in sensor table weren’t properly colored for network sensors
- removed superfluous warning in BPC color loader
- default setting is to toggle network sensors ON in the GUI now
- message log now automatically switches back to originally selected tab after 5 seconds, if it was brought to the front on an error/warning
BETA v0.61
- implemented a more robust and deeper integrated way to synchronize clocks between network machines
- if clocks are not synchronized this may break alignment and data fusion
- also automatically detects when device vs machine timestamps need to be re-measured
- fixed a possible crash that occur at the end of alignment calibration on some setups
- fixed issue where disconnecting sensors while calibration was running didn’t properly reset the GUI button states
- fixed small cosmetic issue with rotaton and timestamp overlapping at times in console output
- added A1 and A0 paper size presets for markers
- disabled LowDelay and enabled KeepAlive on network sockets to hopefully help with network congestion on some systems
- sensor details are now printed to the log after a few seconds to give network sensors a bit of time to send their stream details to the GUI
- 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
BETA v0.60
- fixed issue with Intel RealSense calibration printing out errors
- fixed a crash that could happen when initializing an Orbbec sensor
- cleaned up Settings menu in the top menu by moving items to Network and Sensors submenus
- fixed cosmetic issue with network bandwidth indicator displaying incorrect numbers
- improved Kinect v1 default calibration (unfortunately SDK for fetching data from device does not exist)
- improved Orbbec Astra default calibration (unfortunately SDK for fetching data from device is still broken and support staff is unresponsive)
BETA v0.59
- fixed regression issue with timestamps on network sensors not being adjusted properly anymore when synchronized with GUI
- this could cause issues with alignment, pointcloud recording and data fusion with network sensors
- fixed some issues with Sensor Transform export
- scale was 100 times too small
- rotation offset was incorrect for default FBX camera pointing along local X axis
- camera name now matches the name of the clip it belonged to
- export no longer hangs after first frame when just exporting sensor transforms (and nothing else)
- fixed an issue with Azure Kinect internal depth frame not being cleared properly before filling
- causing weird trailing on the bottom half of the image when loading a BPC file into PointCloud v3
- fixed issue with Kinect v1 timestamp correlation getting out of whack in some multi-sensor cases
- fixed issue with sensors from BPC file got a double transform in 3D viewport and FBX export (pointcloud was fine)
- added additional error checking for requesting calibration data for RealSense sensors as it could crash in some cases
- message that’s displayed when beta version has expired should be a bit more clear now and suggest downloading latest version
- rolled back to previous version or particle export library as latest version broke PRT export
- added option to top Settings menu to print calibration data for connected sensors
- implemented a completely new way to handle sensor calibration data
- no longer needs lens calibration files
- automatically switches to fetching details from drivers/SDK where possible
- new internal development tools to validate and create default calibration data
- fixed issue with Orbbec driver detection for latest driver versions
- updated to latest Intel RealSense v2.38.1 SDK
- ongoing research & development work on (marker) alignment code and math, not ready for release yet though (upcoming versions may need you to print a new marker btw)
BETA v0.58
- quick fix release since regression in previous version could fail to detect license in some cases
BETA v0.57
- improved internal buffering of BPC reader
- more robust against multi threaded race conditions
- should no longer crash if resolution (or some other things) change between frames (for example when switching Azure Kinect clip between lowrez / hirez)
- fixed issue with color-depth transform not being correct for Azure Kinect BPC clips (for lowrez/hirez switch)
- fixed some missing data in network packets for markers
- fixed issue with marker set origin
- fixed issue where single sensor marker length and paper size weren’t properly connected to internal functions
- moved single sensor marker length to advanced settings (just like multi sensor already was)
- added a mention to the license info window that it will only display v3 license info
- updated to latest ZED SDK v3.2.2
- updated particle export library to latest version
- lots of research & development work on (marker) alignment code and math, not ready for release yet though (upcoming versions may need you to print a new marker btw)
BETA v0.56
- added a scale multiplier on the export tab to adjust the scale for mesh & particle exports
- added a toggle to enable/disable UV export for Alembic files (used to always be enabled in previous versions)
- added option to write vertex colors to Alembic files (this may not be supported by all 3D apps)
- some small memory & speed improvements in Alembic exported
- fixed issue with Licensing > Show License Info not properly working on beta before
BETA v0.55
- made BPC-reader and network classes more robust against trying to decompress buffers with invalid size
- multi-core optimizations in the sensor frame processing (depending on CPU and core count up to several milliseconds per frame)
- multi-core optimizations in the network frame codec (depending on CPU and core count up to several milliseconds per frame)
- fixed issue with the new buffering causing pointcloud/floor alignment/refinement not to be able to fetch the latest buffer at times
- fixed some issues with pointcloud alignment (may still not be optimal, working on improving this for the future)
- fixed issue with floor leveling during pointcloud alignment using an old and much less robust algorithm than “Refine Floor Plane” did
- fixed issue where floor refinement didn’t work properly for multiple sensors anymore
- pointcloud alignment is now more verbose in the message log
- removed “Slow” preset for pointcloud alignment/refinement as it didn’t perform any better than the standard “Fast” one
- 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 to new compiler profiting from new optimizations
- updated a bunch of internal libraries to the latest versions
- updated to latest ZED SDK v3.2.1
BETA v0.54
- added additional check in GPU load measurement to prevent crashes on AMD GPUs where measurement doesn’t work
- optimized internal buffering algorithm
- fixed issue with recording lossless color for Azure Kinect causing a crash at the start of the recording
- fixed issue where internally BPC file didn’t store ZED sensor model correctly
- fixed issue where app could get stuck in a loop re-writing registry settings in certain GUI configurations resulting in slowdown
- 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
BETA v0.53
- new memory buffering algorithm for live sensors & BPC file loader to prevent race conditions
- fixed some potential issues with Intel RealSense sensor model detection and potential initialization crash
- fixed issue where ZED settings would also show up for other sensors on selected sensor tab
- switched to slightly less aggressive compiler optimization regarding instruction set as it could cause a crash with pointcloud alignment
- updated to latest Intel RealSense v2.36.0 SDK
BETA v0.52
- quick fix release since I forgot to enable the StereoLabs ZED GUI buttons, doh
BETA v0.51
- optimized 3D pointcloud rendering speed
- added a new and more accurate, but also slower, body segmentation algorithm
- progress bar now also lists current frame number during export
- message is printed to the log when a new firmware is available for Azure Kinect sensor
- several small bug fixes
- fixed potential bug in network server
- fixed issue with marker detection being unreliable on previous version on Kinect v2
- fixed issue with network sensor FPS readings not updating correctly in sensor table since previous version
- fixed multi-threaded race condition in console/headless version when sending network data
- updated to latest Azure Kinect drivers/SDK v1.4.1
- updated to latest Intel OpenVINO SDK
BETA v0.50
- added support for StereoLabs ZED sensors (v1, v2 and Mini should work)
- fixed an issue with 3D viewport not drawing anything on some AMD graphics cards
- fixed an issue where loading Azure Kinect clips got broken in the last version
- slightly tweaked internal marker detection parameters
- switched to using device lens intrinsics from drivers/SDKs that support it
BETA v0.49
- added support for latest Intel RealSense L515 LiDAR sensor
- added option to top menu to enable/disable playing of beeps at recording/alignment start/stop
- added Remote Triggering option
- all Brekel apps have this option to synchronize recording start/stop/filenames
- changed how internal buffers are handled in BPC loader to prevent race conditions
- when no sensor is selected Selected Sensor Settings - ID now reads “Nothing selected in Sensors Table”
- added option to Sensor Settings tab to allow for setting if current sensor is primary or not
- fixed crash in RealSense color to 3D lookup (could manifest during marker detection for example)
- extended beta license to 1st of August
BETA v0.48
- changed how FPS is calculated for display in the GUI
- used to be based on system clock timestamps in the processing loops
- now is based on the frame timestamps, which (on the SDKs that support it) better reflect the real device fps
- added a GPU usage percentage readout (NVidia only) to the bottom right of the GUI
- the “Install Drivers” options now read “Download & Install Drivers”
- added a warning message if after 15 seconds no data has been received when downloading drivers
- the sensor table and display settings are now greyed out at startup to pursuade new users to look at the “Connect Sensors” button
- increased “Connect Sensors” button a bit to help new users find it
- when the user hasn’t connected sensors in 10+ seconds after startup a friendly reminder hint is displayed in the message log
- small cosmetic tweak for empty lines in the message log
- updated to latest Orbbec SDK v2.1.1
BETA v0.47
- lightened the icon colors a bit
- Hyper-V and Virtual network adapters are now considered when selecting a suitable network adapter
- added some additional compiler optimizations
- prepared licensing system for a wider release
- prepared Trial version
BETA v0.46
- no longer crashes when connecting a sensor on a CPU without AVX2 instruction support
- fixed issue with Azure Kinect pointcloud being cropped in previous version
- Azure Kinect resolution change now takes effect on the next sensor connection to avoid possible crash
- you can now stop a running pointcloud alignment/refinement by clicking the button again
- made the sensor stall detector a little more conservative
- updated to latest Intel RealSense SDK v2.34.0
BETA v0.45
- small improvement on color image debayering on Kinect v1 for both speed and edge quality
- some fixes to help prevent deadlocks
- additional check in BPC loader for invalid packets
- missing sensor drivers are no longer logged as warnings/errors
- this would bring the message log to the front for users that may not be interested in some sensor types
- at startup “connect sensors” button will now slowly blink to attract attention from first time users :)
- console version now also prints CPU & GPU info at startup
- CPU info now also includes AVX/SSE support
- extended beta license to 1st of July
BETA v0.44
- fixed possible crash for Azure Kinect when switching to Video tab
- added a Processing Time readout in the selected sensor tab to help find bottlenecks
- added a warning when running on a laptop not connected to power
- added a warning when running multiple sensors on a laptop
- added a Slow/Fast preset for pointcloud based alignment/refinement (previously was always fast)
- tab in bottom dock now automaticaly switches back to timeline when export finishes
- fixed an issue when muting/soloing a track scrubbing the timeline would show/hide the wrong track data
BETA v0.43
- added option to toggle message log sounds for errors & warnings
- fixed issue where video textures were horizontally flipped (and didn’t map correctly on mesh UV coordinates)
- sensors are now set to manual exposure by default
- improved timestamp accuracy for Kinect v1 / Kinect v2 / Azure Kinect and RealSense sensors
- added a stall detection background thread that checks for stalled sensors/solvers/etc and logs a warning when detected
- fixed an issue with marker detection on Intel RealSense sensors
- updated some internal libraries
- updated to latest Orbbec SDK
- extended beta license to 1st of June
BETA v0.42
- added hint where to find Azure Kinect sync ports when running multiple sensors without sync cables
- added first revision of documentation in PDF form
- added additional internal smoothing for floor detection
- updated to latest Azure Kinect SDK v1.4.0
- updated to Intel RealSense v2.33.1
BETA v0.41
- fixed issue with 3D viewport camera rotation
- text drawing in console is now more efficient
- text drawing in console doesn’t flicker anymore
- text drawing in console now uses warning colors for
- high CPU / memory usage
- low frame rates
- marker tracker now runs on it’s own thread instead of on the sensor thread
- added additional checks in data fuser to prevent invalid numbers
- added additional check in Alembic exporter to prevent invalid UVs
- added additional protection against multi threaded race conditions in drawing classes
- minor multi threading optimization in data fuser
- extended beta license to 1st of May
BETA v0.40
- fixed potential crash when connecting to a Kinect v2 sensor while it couldn’t access one of the requested streams
- fixed potential crash in several exporters by adding a color out of bounds check
- fixed potential crash in texture exporter
- fixed issue where cropping bounding box / cylinder would dissapear when changing some other drawing settings
- fixed issue with video exporter mirroring
- fixed issue where color mapping to pointcloud could be broken on Kinect v1 sensors
- fixed issue where console would state Brekel Body instead of PointCloud
- fixed issue where console’s close button was disabled when running in headless mode
- fixed issue where Kinect v2 sensor would freeze after initialization in headless mode
- fixed issue where video/depth windows would not draw data after the first sensor connect
- speed optimizations for several internal math functions
- speed optimizations for Kinect v1, Kinect v2 & Azure Kinect sensors for multi-core machines
- speed optimizations in BPC reader
- “Fused Data” drawing settings are now only displayed when live sensor data is displayed
- “Live Sensor - Color Exposure Settings” are now only displayed when live sensor data is displayed
- marker based aligner now:
- uses best quality markers that got collected instead of rejecting potentially bad ones at the incoming stage
- quality is determined by the angle to the sensor and velocity (lower is better)
- user can tune the percentage of markers used
- 0.00 is all markers used for alignment regardless of quality
- 0.99 only the 1 percent best quality markers used for alignment
- adjusted the defaults for “Detect Every Nth Frame” and “Align Every Nth Frame” to 5 (was 10)
- added green screen options in clip settings
- allows to crop out pixels of a green screen
- has option for spill correction to help color correct greenish pixels that reflected light from the green screen
- has option to erode the mask a few pixels to clean up the edges
BETA v0.39
- small tweak for non-additive pointcloud drawing
- added option to the GUI for to shrink body segmentation mask
- fixed issue with crash report generation/upload
- fixed issue where Kinect for XBox360 sensors depths were getting clipped
- fixed issue with settings being saved too often
- fixed issue where edge filtering in BPC loader post processing got broken and stopped working
- implemented a new architecture for brand/type specific sensor settings
- dynamically adds controls to GUI
- sends/receives them for network sensors
- added exposure control for Kinect v2, Azure Kinect sensors & RealSense sensors (seems not supported on Kinect v1 & Orbbec)
- added tilt motor control for Kinect v1 sensors
- added near mode control for Kinect for Windows v1 sensors (not supported on Kinect for XBox 360)
- added color offset setting for Kinect v1 & Orbbec sensors
- added color mirror setting for Orbbec sensors
- added emitter and filtering settings for Intel RealSense sensors
- added “custom size” option for marker size
- in case you printed them and the measured size is slightly different
- improved mouse-over tooltip for alignment start/stop buttons for additional clarity
BETA v0.38
- exposed body segmentation to the GUI
- you can now enable this to isolate bodies and remove the background automatically
- based on a sensor agnostic, deep learning detection and segmentation approach
- improved overall body segmentation quality and stability
- CPU/Memory usage indicators now turn orange/red on high usage
- fixed issue with floor detection not being applied to body segmentation internally, which could cause less accurate results for refinement
- fixed memory leak in body segmentation code
- fixed issue where transform offset rotation Y & Z were coupled in the GUI
- fixed a few issues where some of the newer settings didn’t save/load with the timeline settings correctly
- added option to crop using a cylinder shape (beside already existing bounding box)
- added option to limit marker detection to every n-th frame to reduce CPU overhead
- selected sensor’s pointcloud now always draws on top while others are dimmed
- sensor frustums now draw in the same color as the sensor/pointcloud
- markers now draw a line to the sensors that detected them in the 3D viewport
- bodies now draw a line to the sensors that detected them during alignment
- increased internal threshold for marker interpolation time
- alignment now reports to the GUI:
- which sensors were aligned to which
- how many markers were used for the alignment
- also logged when the alignment is finished
- added a popup dialog when loading alignment file which allows to specify per sensor what data to load from the file
- you can specify to not load data for a specific sensor
- you can remap in case current sensor names differ from what is in the file
- if matches are found a one-to-one mapping will be the default (you can hit enter to immediately load)
BETA v0.37
- 2D views now include sensor ID numbers along with their names
- reduced clutter in commandline window during initialization of Azure Kinect sensors
- fixed issue with sensor drivers not being recognized
- fixed issue with sensor driver install options not showing up under settings in top menu
- added cropping to post processing settings (applied to all sensors at once in global space)
- removed per-sensor post-transform cropping from clip settings
- added randomize to post processing settings (applied to all sensors at once in global space)
- removed per-sensor randomize from clip settings
BETA v0.36
- added support for PLY in binary format (as used by Keijiro’s PCX for example)
BETA v0.35
- updated to Intel RealSense SDK v2.32.1
- updated to Alembic v1.7.12
- updated to FreeImage v3.18.0-8
- message are now not only displayed in 3D viewport but also 2D viewports and bottom status bar
- improved internal body segmentation
- helps for pointcloud alignment & refinement, especially for Azure Kinect
- when selecting a sensor the tab on the left now auto switches to “sensor settings”
- when selecting a clip the tab on the left now auto switches to “clip settings”
- fixed issue where tilt settings didn’t show up in the GUI for Kinect v1
- fixed issue where RealSense specific settings didn’t show up in the GUI
- sensor IDs in table now start with 1 instead of 0
- primary and selected sensors are now indicated in the 3D & 2D viewports and sensor table
- fixed a bug where sensor names would dissapear in 2D views after selecting one
- fixed an issue where infrared texture would draw as black in 3D viewport for Kinect v2
- implemented better way to get a unique id/name for Kinect v1 & v2 devices
- updated internal libraries
- started digitally signing executable to help alleviate anti-virus false positives
BETA v0.34
- small efficiency improvements in network encoding/decoding
- investigated GPU (NVidia & Intel) compression/decompression
- leaving things to CPU for the moment as the speed is comparable and it’s compatible with all machines
- created a new algorithm for segmenting humans from pointcloud data without the need of joint data
- implemented a new pointcloud refinement method which is faster than the old one and now multi-threads across sensors
- implemented a new pointcloud alignment method
- does an initial (rough) alignment based purely on pointcloud data (no bodies/markers)
- will ask you to stand in the middle of the volume (an assymetric pose can help)
- this is dependent on pointcloud overlap and may not be as robust as marker-based alignment for all setups
- can automatically perform pointcloud refinement in succession for a tighter fit
- can automatically perform floor leveling
- not fully robust yet (see known issues) but a new version needed to be released due to expiration of the previous beta
- rewrote the floor detection and segmentation algorithm for refinement based on floor to be more robust
- rewrote internal timer so code can be reused more easily
- removed PCL dependency
- now sets OpenMP environment variable to prevent 100% CPU usage on some machines in some cases
- marker alignment now reports how many matches it found in the log
- extended beta license to 1st of April
BETA v0.33
- network communication read buffer is now set to 1MB instead of automatic
- network buffers are now polled and read at set intervals isntead of automatic
- network low latency flag is now enabled
- network keep alive flag is now disabled
- low frequency mode check is now disabled in network sensor
- fixed bug where stream fps wasn’t correctly used from network sensors
- fixed issue where changelog wouldn’t display when new version was available
- small speed improvements in sensor & network processing calculations
BETA v0.32
- fixed cosmetic issue displaying driver download link when downloading from backup URL
- fixed issue when loading calibration files sometimes data was applied to the wrong sensor
- fixed problem where internal ids of multiple Azure Kinect sensors could become incorrect when using sync cables
- updated to Azure Kinect SDK v1.3.0
BETA v0.31
- fixed an issue where Alembic files had a corrupt time sampling setting when the export start frame was 0
- fix for a rare multi-threaded race condition in the BPC loader
- cleaned up some threads on program exit
- added option to select preferred network adapter (Top Menu > Settings)
- this will be used at startup of the GUI or headless version of the app
- updated to latest Orbbec SDK
- extended beta expiration date to 1st of February 2020
BETA v0.30
- changed some of the pointcloud drawing default settings to be better suited for textured pointclouds
- when downloading a driver links no longer display %20 for spaces
- 2D video widgets make a deep copy of incoming data again
- memory managment now drops frame data copy and sending it to GUI if that is still busy processing the previous frame
- updated Orbbec driver link to astra-win32-driver-4.3.0.10
- fixed cosmetic issue with sensor name/resolution text in 2D widgets when selecting a sensor
- fixed issue with network sensor saving it’s resolution to the registry under it’s network name instead of local sensor name
- fixed issue with the marker aligner not sending it’s results to the GUI anymore in release version
- fixed issue with network client timestamps not synchronizing correctly in release version which could cause:
- issues with potential sensor connection loss
- issues with display flicker
- issues with pointcloud recordings
BETA v0.29
- changed how internally frames from the sensor processing threads are shared with the GUI
- to prevent some rare crashes that occur when running the software for 20 minutes on some machines
- web links and changelog pointed to Body v3 pages, fixed now
- increased minimum network packet size for internal processor for better stability
- network sensors with disabled pointcloud streaming now continue to report fps & timestamp to GUI
- made top menu background a little darker for better contrast with rest of the app
- removed “alignment refine” tab (for now) as it relied on body tracking joints (working on some new stuff for that)
- removed the need for some internal memcopies for frames, this should increase speed and efficiency
- removed the need for some internal multithreading mutex waiting, this should increase speed and efficiency
- fixed issue with flickering in 3D & 2D widgets for network sensor data
- fixed issue where depth from network sensors didn’t display in GUI anymore after a previous update
- fixed issue where sensor models were drawn reversed
- fixed issue where cropping values for live sensor had Z values reversed
- fixed issue where deselecting timeline clips didn’t always redraw
- fixed issue where wrong pointcloud would be shown/hidden when clips were offset on timeline
- fixed issue with setting transform on a network sensor did not affect the right sensor if there were multiple sensors on a network client
- fixed cosmetic issue with network bandwidth display in the console
- fixed cosmetic issue with 2D viewers not always displaying sensor name
- fixed cosmetic issue with sensor frustums not drawing for network sensors
- changed sensor initialization sequence for headless/console version
- should now resemble GUI version
- should now respect resolution settings read from registry
- timeline controls:
- CTRL + Left Mouse Click to select clip
- Middle Mouse Click to deselect clip
- SHIFT + Left Mouse Drag to slide clip and adjust in/out points
BETA v0.28
- fixed a bug where marker tracking for Azure Kinect in InfraRed mode stopped working after a previous update
- fixed a bug where some sensors had a marker offset in 3D space
- fixed a bug where transform offset rotation Y & Z were acidentally coupled in the GUI
- fixed a (rare) potential crash in the 3D widget on startup
- fixed issue where sensor frustum’s were inversed
- fixed issue when using network sensors only the first sensor would toggle marker tracking on/off
- fixed issue when using network sensors where tracked marker data wasn’t applied to the correct sensor in the GUI app
- fixed issue with network sensor markers being rejected too quickly due to sensor transform being sent as position/rotation instead of matrix
- network communication now always sends full transform instead of position/rotation
- when typing values into spinbox widgets internal value is only updated when editing has finished
- restricted Azure Kinect messages to critical only
- added a warning when using multiple Azure Kinect devices without using sync cables
- includes link to Microsoft documentation web page on how to install such cables
- https://support.microsoft.com/en-us/help/4494429/sync-multiple-azure-kinect-dk-devices
- added new commandline toggles for enabling/disabling mutex usage to control multi-threading -use_mutex_3d turns mutexes ON for 3D view -no_mutex_3d turns it off ( default = ON) -use_mutex_video turns mutexes ON for video/depth views -no_mutex_video turns it off ( default = ON) -use_mutex_sensor turns mutexes ON for sensors -no_mutex_sensor turns it off ( default = OFF) -use_mutex_network turns mutexes ON for networking -no_mutex_network turns it off ( default = OFF)
- added multi-threading deadlock detector that can hopefully help identify program hangs
- a message will be printed to the black console window
- a message will be added to the log file to your “\Documents\Brekel\Brekel_Body_v3.log” file
- please drop an email to beta@brekel.com with a copy of the warnings as these are very hard to reproduce as it doesn’t always occur on every system/setup/workflow
BETA v0.27
- fixed a bug where mute/solo was hiding/showing the wrong clips in the 3D widget and exporter
- tooltip and statustip descriptions now mention “locally connected sensors” explicitly
- when a certain sensor type was not found after trying to connect the checkbox is now automatically disabled in the GUI
- so sensor discovery will be more efficient the next time only focussing on existing sensor types
- added option under Settings menu to force saving settings
- as usual settings are saved to the Windows registry and automatically loaded at startup and saved when the app exits
- internal changes on how last used resolution is loaded & applied at startup
- consolidated color/IR resolution into video resolution
- app will now ask to upload latest crash report file at startup if it finds one
- improvements to marker tracking accuracy
- updated internal libraries
BETA v0.26
- crash uploaded was mangling description text on some machines
- switched to new way of adding text to the report
- hopefully this helps as I can’t reproduce it on any of my machines
- added exporter for raw depths in PNG file format (uint16 millimeter units)
BETA v0.25
- fixed a crash in the crash uploader tool that could occur on some machines (isn’t that ironic)
- UVs were flipped for geometry output formats, fixed now
- fixed cosmetic bug where changing export start/end frames didn’t update drawing in the timeline
- fixed issue where timeline zoom wouldn’t update correctly at startup until current frame was changed
- video output now automatically scales if frame size changes during the timeline (scaling to the initial size)
- lowrez/hirez toggle for Azure Kinect clips was hidden in public version
- disabled network multi threading mutexes by default as it turned out to be that a previously fixed crash was not in the networking code after all
- can be re-enabled using this commandline flag: -usenetworkmutex
BETA v0.24
- 2D views now draw clip name and resolution
- sensors in 3D view now show clip name
- 2D views now clean up when the number of tracks in the timeline change
- GUI now displays a message in the viewport while opening a BPC file
- especially handy at startup when waiting for a few files to load from the previous session
- fixed a crash that could happen during export
- added option to skip creating a bug report when a crash is detected
- lowrez/hirez mode for Azure Kinect files now actually switches
- added option to directly upload a bug report along
- your name/email so I can contact you (optional)
- a small description on when the bug happened (mandatory)
- a description explaining how to reproduce the bug to help me recreate and debug it (optional)
- added Mute/Solo buttons for timeline tracks
- mute hides all the clips on that track
- solo only shows the clips on that track
- mute/solo applies to both the 3D view as well as export
- updated internal libraries to latest versions
BETA v0.23
- added range slider widgets to the cropping settings
- worked on the range slider widget internals
- now prevents invalid values
- can now be paired with spinboxes
- better integrated painting
- dragging is more intelligent depending on where the user clicked
- Z cropping was inverted in the GUI, fixed now
- added some additional protection against multi-threaded race condition crashes
- app now tries to keep track of which driver/SDK version you installed
- tracks driver/SDK installed from any Brekel v3 app
- compares to latest supported driver/SDK version
- updated to Azure Kinect Body Tracker Preview v0.93 for improved tracking stability
- added compression and binary/ascii options to PCD exporter
- Azure Kinect sensor warning/error messages no longer play sound
- especially during startup when acquiring sync it could produce a cascade of warnings.
- changed the mechanism on how the app checks if sensors have stopped recording
- should prevent a signal not getting across and the GUI not resetting back ready for a new recording, especially on fast machines
- improved quality of “Remove Points Outside Color Lens” filter
BETA v0.22
- Orbbec sensors should now be found and should work, after recreated the build project
- removed “Single-Sensor License” as it is not relevant, beta’s have no restrictions
- added additional protection against invalid packets in BPC reader
- added additional protection against invalid network video packets
- fixed an issue with some sensor network packages not being initialized properly which could cause a crash on first connection
- fixed an issue that could make the GUI crash on recording end in some cases
- fixed an issue when connecting to a headless client that got disconnected before
- small memory & performance improvements for network video compression/decompression by caching some things
- console/headless version now prints the last few messages from the log to the console
- errors/warnings from Azure Kinect drivers/SDK are now passed through to the message log
- cleaned up some leftover debug messages
BETA v0.21
- fixed issue Azure Kinect color in BPC files due to internal memory manager not passing compressed buffer
- fixed an issue where some old BPC files from v2 would not load any points
- fixed small cosmetic issue where Kinect v2 sensor would report an infrared framerate (when it’s actually using the color stream)
- fix to prevent timeline bounds to cross
- hidden a few GUI controls of unfinished features
- cleaned up the message log on sensor initialization a bit
BETA v0.20
- Initial public beta release