# ZED SDK: what the stereolabs/zed-sdk repository actually contains

> The zed-sdk repository is the sample and tutorial layer for Stereolabs' ZED cameras, not the SDK binary itself. Here is what it covers, how to install the SDK, and where the boundary sits.

**stereolabs/zed-sdk** — ⚡️The spatial perception framework for rapidly building smart robots and spaces

- Repository: https://github.com/stereolabs/zed-sdk
- Website: https://stereolabs.com
- Stars: 1,238 · Forks: 505
- Language: C++
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/stereolabs-zed-sdk

## The repository is the sample layer, not the SDK

The name invites a wrong assumption. stereolabs/zed-sdk is not the library you link against. The README says the project provides "tutorials and code samples to get started using the ZED SDK API", and the top-level layout agrees: every directory is a feature area rather than a source tree. You get `depth sensing/`, `object detection/`, `body tracking/`, `positional tracking/`, `spatial mapping/`, `plane detection/`, `global localization/`, `camera streaming/`, `camera control/`, `recording/`, `sensors_api/`, `virtual stereo/`, `zed one/`, a `fusion/` directory, and a `tutorials/` directory. There is a CMakeLists.txt at the root, but no core library sources.

The practical consequence is that cloning this repository gives you nothing runnable on its own. The camera drivers, the neural depth models, the tracking and mapping implementations all arrive through the SDK installer that Stereolabs distributes from its own release page. The repository is where you look to understand how the API is meant to be called, and to copy a working starting point into your own project.

## What problem it solves and who it is for

Spatial perception on a stereo camera involves a stack of problems that are tedious to assemble: rectifying two views, computing disparity, converting that into a point cloud, tracking the camera through a scene, detecting objects and planes in the result, and keeping all of it inside a real-time budget. The ZED SDK packages that stack behind one API, and this repository exists so you do not start from an empty file.

The intended reader is an engineer with a ZED camera on the desk and a robotics, inspection or spatial-analytics task to finish. The samples map closely onto job types: `depth sensing/` for measurement and point clouds, `positional tracking/` and `global localization/` for a moving platform, `object detection/` and `body tracking/` for perception on top of the geometry, `camera streaming/` for sending video off the device, and `fusion/` for more than one camera. If your work is monocular vision, or you have no ZED hardware, the repository is the wrong entry point.

## Installing the ZED SDK and running a first sample

The README's getting-started path has four steps: get a ZED from the Stereolabs store, download the ZED SDK from the developers release page, install it for Windows, Linux or Jetson, then work through the tutorials. Nothing in the repository replaces that. The install step is where the platform choice matters, because the Linux, Windows and Jetson instructions are separate pages in Stereolabs' documentation.

Once the SDK is installed, the repository samples are built with CMake. The root CMakeLists.txt is the entry point; the per-feature directories carry their own build files. A typical build session looks like this:

```bash
mkdir build && cd build
cmake ..
make
```

What you should see is a set of compiled sample executables, one per tutorial, with the camera connected over USB. If CMake cannot find the SDK, the failure is at configure time rather than at runtime, and it usually means the SDK was installed to a path the find module does not search. The README does not document a fallback for that case, so the SDK installation page is the place to check.

The Python surface is separate from the C++ samples. The related searches include "zed sdk python", and Stereolabs publishes a Python API alongside the C++ one, but this repository is C++ and the README does not give Python install steps. Treat the Python bindings as a different install path with its own documentation.

## Depth modes, custom depth, and the 5.4 pipeline change

The 5.4 release notes describe two things worth separating. First, performance: an optimized inference path is stated to deliver up to 20% quicker depth inference and roughly 15% lower GPU load on Jetson Thor, with the gains carrying to Orin and desktop GPUs and the largest wins on heavier pipelines such as more cameras, NEURAL PLUS, or concurrent recording. The release notes also state that outputs are unchanged, which is the claim that matters if you have already validated a depth configuration.

Second, and more interesting architecturally, `DEPTH_MODE::CUSTOM` is introduced as experimental. An externally computed disparity or depth map can be fed to the SDK each frame, and the rest of the pipeline (point cloud, spatial mapping, object detection, plane detection) then runs on the ingested data. That is a real shift: the SDK stops insisting on being the stereo matcher and becomes a consumer of your matcher's output. A companion `retrieveTensor` overload pre-processes both rectified views in a single fused GPU pass and produces inference-ready tensors that bind to frameworks such as TensorRT.

The experimental label is not decoration. If you build a product around `DEPTH_MODE::CUSTOM`, you are depending on an interface the release notes themselves flag as not settled.

## Recording, streaming and the cost you no longer pay

Earlier pipeline designs made you carry work you did not need. In 5.4, SVO recording and outbound streaming run entirely from `Camera::read()`, and stereo rectification is performed on demand. The release notes state the consequence plainly: pure recording or streaming pipelines no longer pay the CPU and GPU cost of rectification. If your use case is capture for offline processing, that is a direct saving on the device.

Two smaller additions sit in the same area. A polling API retrieves encoded H264/H265 packets directly from incoming, outgoing or recorded streams without opening a second encoding session. New rectified `LEFT_NV12` and `RIGHT_NV12` views feed hardware encoders without an extra color conversion. Both are plumbing changes, and both are the kind that only matter once you have measured where your frame time goes. The README does not document rollback behaviour for these paths, so plan to test them against your existing recording format before switching.

## Where the SDK is the wrong tool

The dependency on Stereolabs hardware is the first boundary, and it is absolute for the camera-driven modules. No ZED camera means no depth, no tracking, no mapping. If you need depth from a phone camera, a webcam, or a pre-recorded video file, this is not the library.

The second boundary is platform. The README lists Windows, Linux and Jetson installation paths. The 5.4 release notes add experimental support for ARM desktop systems under SBSA (NVIDIA DGX Spark, GH200, and ARM CUDA servers). Experimental is the operative word: if your deployment target is an ARM server, you are on a path the release notes do not present as production-ready.

The third boundary is the repository itself. If you came here expecting to read the depth estimation implementation, you will not find it. The algorithms ship as binaries through the SDK installer. That is a legitimate commercial arrangement, but it means you cannot audit or patch the core, and bug reports go to Stereolabs rather than to a pull request. The MIT licence on this repository covers the samples and tutorials; it does not tell you the terms of the SDK binary, which the README does not state.

## Compared with building on OpenCV stereo

OpenCV gives you `StereoBM` and `StereoSGBM`, calibration routines, and `reprojectImageTo3D`. The difference is not accuracy so much as scope. With OpenCV you assemble the pipeline yourself: calibration, rectification, matching, filtering, point cloud generation, and then separately whatever tracking or detection you need. You control every stage, you can swap the matcher, and you can run on any camera you have calibrated. You also own the real-time engineering, and a stereo matcher tuned for a specific sensor pair is a project in itself.

The ZED SDK takes the opposite position. It assumes the camera, it supplies the calibration, and it gives you depth, tracking, mapping, detection and streaming behind one API with a real-time budget already accounted for. The trade is control and portability for time. If you have a ZED and a deadline, the SDK path is shorter. If you need to support three sensor vendors, or you need to modify the matcher, OpenCV is the more honest starting point, and the ZED samples will not help you there.

## Maintenance, licensing and upgrade cost

The repository is not archived, and the last push was on 2026-06-18. Releases track the SDK: 5.4.0 and 5.3.1 both landed on 2026-06-18, with 5.3.0 on 2026-04-29. The cadence across those three releases is roughly two months, which tells you that sample updates arrive with SDK updates rather than on an independent schedule.

Upgrade cost is dominated by the SDK, not the repository. Because the samples call the SDK API directly, an SDK upgrade that changes a signature propagates into your code, and the 5.4 notes show the project is still adding surface area (`DEPTH_MODE::CUSTOM`, `retrieveTensor`, `MONOTONIC_RAW_CLOCK`, `LENS_DISTORTION_MODEL`, per-pose confidence in SLAM GEN_3). Each addition is optional, but each is also a place where a future release could shift behaviour.

On licensing: the repository is MIT. The SDK binary you download from Stereolabs is a separate artifact with its own terms, and the README does not state them. Check the SDK's own licence before shipping. This is not legal advice.

## Conclusion

Adopt it if you already own a ZED camera and want the official sample set for depth sensing, tracking, detection or streaming, and if you accept that the runtime comes from Stereolabs' installer rather than from GitHub. Do not adopt it as a software-only depth solution: without the hardware, none of the samples can run, and there is no CPU fallback documented for the camera-dependent modules. Before committing, verify three things: that the SDK release matching your camera exists for your platform (Windows, Linux or Jetson), that the DEPTH_MODE::CUSTOM and ARM SBSA paths are acceptable as experimental, and that the MIT licence on the repository does not lead you to assume the same terms cover the SDK binary you download from Stereolabs.

## FAQ

### What is the ZED SDK?

It is a cross-platform library designed to get the best out of ZED cameras, distributed by Stereolabs. The zed-sdk repository provides tutorials and code samples for using its API.

### Is the ZED SDK open source?

The zed-sdk repository carries an MIT licence, but it contains samples and tutorials rather than the SDK implementation. The SDK itself is downloaded from Stereolabs' release page, and the README does not state the terms of that binary.

### How to install the ZED SDK on Linux?

The README points to Stereolabs' installation documentation, which has separate pages for Windows, Linux and Jetson. The repository does not contain install steps of its own.

### How to install the ZED SDK on Jetson?

Stereolabs documents a dedicated Jetson installation page, linked from the README's getting-started section alongside the Windows and Linux pages. The 5.4 release notes describe GPU load reductions on Jetson Thor with gains carrying to Orin.

### How to use the ZED SDK?

Clone the repository, build the samples with the root CMakeLists.txt, and run the tutorial that matches your task, such as depth sensing or positional tracking. The SDK itself must be installed first from Stereolabs.

## Sources

- [License: MIT](https://github.com/stereolabs/zed-sdk/blob/master/LICENSE)
- [Project website](https://stereolabs.com)
- [README](https://github.com/stereolabs/zed-sdk/blob/master/README.md)
- [Releases](https://github.com/stereolabs/zed-sdk/releases)
- [stereolabs/zed-sdk on GitHub](https://github.com/stereolabs/zed-sdk)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/stereolabs-zed-sdk
