Important
Welcome to Orbbec's latest open-source Orbbec SDK! Before you begin using this version of the SDK, it's crucial to check the device support list to verify that your device is supported to ensure compatibility.
This is the open source library of the Orbbec SDK v2.x. The Orbbec SDK is a cross-platform library for interfacing with the Orbbec RGB-D cameras. It provides C/C++ APIs and many other languages or frameworks wrappers.
To enhance performance and accommodate the diverse needs of our customers, the Orbbec SDK has been open source since version 2.0.0. For projects currently utilizing version 1.x of the Orbbec SDK that are considering an upgrade to Orbbec SDK v2.x, we advise using the pre-compiled binaries available in the Release page. This ensures a seamless transition and maintains consistency with your existing setup.
We have made every effort to maintain backward compatibility with our APIs. However, in pursuit of enhanced performance and an improved user experience, we have made necessary updates. Some interfaces have been removed or altered due to infrequent use or design imperfections. These changes are intended to be minimally disruptive and should not interfere with the standard functionality of the SDK.
For a detailed list of features not available in the current version, please refer to our documentation: features_not_available_at_v2.x.x.
Additionally, a comprehensive overview of the API changes from Orbbec SDK v1.x to v2.x.x can be found here: api_changes_at_v2.x.x.
If you prefer to continue with Orbbec SDK v1.x, you can still access the pre-compiled binaries on our Orbbec SDK repository. Nonetheless, we encourage you to consider transitioning to Orbbec SDK v2.x. This move will allow you to take advantage of improved and new features and ensure ongoing support. Our dedication to v2.x is part of a broader strategy aimed at delivering robust long-term support, fostering an open-source community, and driving innovation.
- Windows 10 or later: x86 and x64 architectures
- Linux x64: tested on Ubuntu 20.04, 22.04 and 24.04
- Linux ARM64: tested on AGX Orin and AGX Xavier
- Android: coming soon
- macOS: coming soon
- Linux ARM32: coming soon
Products List | Minimal Firmware Version |
---|---|
Gemini 330 | 1.2.20 |
Gemini 330L | 1.2.20 |
Gemini 335 | 1.2.20 |
Gemini 335L | 1.2.20 |
Gemini 336 | 1.2.20 |
Gemini 336L | 1.2.20 |
Gemini 335Lg | 1.3.46 |
Femto Bolt | 1.0.6/1.0.9 |
Femto Mega | 1.1.7/1.2.7 |
Astra 2 | 2.8.20 |
Gemini 2 L | 1.4.32 |
Gemini 2 | 1.4.60 /1.4.76 |
For optimal performance, we strongly recommend updating to the latest firmware version. This ensures that you benefit from the most recent enhancements and bug fixes.
More devices support will be added in the near future. If you can not find your device in the table above currently, try the version v1.x.y at Orbbec SDK
The Orbbec SDK documentation is available on GitHub Pages.
If you do not intend to modify the SDK itself, it is recommended to use a pre-compiled distribution. For a comprehensive guide on installing the SDK, setting up your development environment, and developing applications, please consult the Tutorial section for detailed information.
To explore practical examples and gain insights on utilizing the SDK, please navigate to Examples section for more information.
Orbbec Viewer is an all-in-one graphical user interface (GUI) built on the Orbbec SDK, offering a suite of features including data stream preview, camera configuration, post-processing, and more. To learn how to effectively use the Orbbec Viewer, please refer to the Orbbec Viewer User Guide.
API Reference: Orbbec_SDK_API_Reference.html
For different use cases, the SDK can be tuned to achieve optimal performance. Please refer to the performance tuning guide for more information.
If you would like to modify the SDK itself, you can build the SDK from source. Please refer to the build guide for more information.
Most frequently asked questions can be found in the FAQ file.
More asked and answered questions can be found in the issues channel. Use key words for searching may help you find the answer you are looking for.
// Create a pipeline.
ob::Pipeline pipe;
// Start the pipeline with default config.
pipe.start();
// Create a window for showing the frames, and set the size of the window.
ob_smpl::CVWindow win("QuickStart", 1280, 720, ob_smpl::ARRANGE_ONE_ROW);
while(win.run()) {
// Wait for frameSet from the pipeline, the default timeout is 1000ms.
auto frameSet = pipe.waitForFrameset();
// Push the frames to the window for showing.
win.pushFramesToView(frameSet);
}
// Stop the Pipeline, no frame data will be generated
pipe.stop();
At present, we are focusing our efforts on the internal development of the SDK and are not accepting external contributions for functionality expansion. However, we value your input and are open to reviewing any pull requests or suggestions you might have.
Should you have any questions or concerns, please feel free to reach out to us through the issues channel.
This project is licensed under the MIT License with some other licenses for third-party libraries and extensions - see the LICENSE file for details.