Archived - Intel® RealSense™ SDK Changes for User-Facing Cameras

The Intel® RealSense™ SDK has been discontinued. No ongoing support or updates will be available.

Below  please find a high level list of changes between releases of the Intel® RealSense™ SDK for the front facing (user facing, short range) Intel RealSense cameras F200 and SR300.

Note: Version numbers and release numbers are unfortunately not the same. This article will refer to the version number which until 2016 is equal to the release number + 2 (so R5 is v7),  and 2016 R1 is version 8.

Also for ease of use, the information is summarized by middleware.

All versions up through v6 only knew about the Intel RealSense F200. But the SR300 DCM includes automatic recognition of those apps and puts the SR300 into compatibility mode. So apps built with these SDKs will  (almost always) run on an SR300 camera. But if you rebuild on v8 or later, the app will run on an SR300 camera in native mode, providing access to all the improvements. See this article for a comparison of the two models.

So whether rebuilding an app or creating a new app, be sure to neutralize code, use Best Practices. And, if upgrading from an earlier version, be sure to check through the list below of APIs that changed between versions. Pre-gold APIs may continue to incur major changes.

Java*/Processing* - Still in Preview mode in 2016. Number of modules supported is limited.

Javascript/WebRTC - Has had multiple major changes, only supports blob/hand/face tracking, speech command, and Unity C# (web player platform). See also the .scratch.github release.

Speech - No major changes, but from v6 on, requires separate speech redistributables (not in SDK), provided from the Intel RealSense download website. You must specify the language during installation, or the feature will not get installed. See the site for a list of available language modules. (Note for most consumer uses, voice navigation is not the best usage.) 

Universal Apps - Some API changes expected from Microsoft in their RedStone R1 and R2 releases, so support for these are holding at beta.

Emotient* Emotion Detection was deprecated, starting in v6. Use Facial landmarks and gaze detection (added in v6) instead. 

Person Tracking (still in preview mode) & Cursor Mode (in beta) are not supported on the F200. If you include these, you should branch code and provide alternate support or messaging for the F200. Additional SR300 features will be available later in the year.

Background Segmentation (BGS) - With more changes coming later in 2016, BGS is in beta for F200, and alpha for SR300 in v8..Changes coming will involve an HDR option. Previously v5 added: usage cues, optional callback, improved hair and finger/hand segmentation and lessened power consumption.

3D Scanning - Face/head scanning are at gold on F200, but at alpha on SR300. Small object scanning is at beta and alpha. Ideal distance from camera to front of object is 30cm. v8 added information on how to use Sketchfab* to post a 3D scan to Facebook. v7 added texture mapping, landmark capture and output, a QueryBoundingBox(), and more output mesh controls (max. triangles, max. vertices) As of v5  output formats supported are OBJ, PLY, and  STL and options for hole filling (solidification) or texture generation (helps color) were added.

Unity* - Default was 32 bit for Unity 4, and 64 bit for Unity 5 with personal edition adding specific RealSense support. v7 added XML in Plugins, and fixed PXCMImage RefineMask. In v7  the default of AcquireFrame changed from (true,100)  to (true,0), removing all wait time and speeding up FPS.  The facial animation sample was removed in v6. 

HANDS: Cursor  - While added in v7, v8 introduced major changes as cursor was separated from the hands module.  Both Cursor & Full Hand modes require depth/IR streams with 640x480x60fps, but until mid 2016 cannot be used simultaneously. Blob can run on any stream resolution and its default is 640x480x30fps.   
Hand tracking - Faster calibration (average time of less than 0.75 seconds) and fixed crash from calling UnsubscribeAlert during OnFiredAlert. Cursor mode can be used for SR300 for less latency and faster motion but in v8 there is an issue if you try to use both Hand and Cursor middleware at the same time (instead, branch code).

Blob/Contour/Mask:  Major changes and improvements in v6 and v7. 
Contour/Mask smoothing consolidated. Blob speed improved significantly. Note: 
PXCDataSmoothing became the PXCSmoothing utility.

Face Tracking  - changed default resolution, added 3D scan support, fixed issues, Each version improved alignment and added features. Note for SR300 face tracking and recognition are available both in the face tracking module and the body tracking module.

Face Recognition /  PXCFaceConfiguration - must comment out CreateStorage(), SetStorageDesc(), UseStorage() and DeleteStorage() - deprecated as of R4. Multiple releases improved accuracy, robustness and there were multiple changes to the database. 

Object Recognition : 34 objects with object tracking mode and localization.  Object Tracking brings marker-less tracking RGB+Depth for 2D objects. and Edge-based 3D object tracking. Instant 3D tracking (SLAM) to create a map and auto-start tracking with extensible learning mode for 2D/3D tracking. 

ToolBox: Camera Calibration, creation of object model and configuration files for 3D feature based and edge based tracking . 
Calibration moved to pxccalibration.h.

Utilities: Fixed Euler angle conversion in a non-default Euler order.

Touchless Controller changed to a new viewer

For all modules, it is strongly advised you read the most recent documentation online and in the documentation/PDF directory of the SDK

Additional Resources:

https://software.intel.com/en-us/articles/whats-new-in-the-intel-realsense-sdk-r4-v60
https://software.intel.com/en-us/articles/new-in-realsense-r3(v5)

For more complete information about compiler optimizations, see our Optimization Notice.