SDK-free depth capture in Isaac™ Sim
SDK-free depth capture in Isaac™ Sim
The ZED Camera extension can capture RGB and depth from a simulated ZED directly inside NVIDIA® Isaac™ Sim, using the simulator’s renderer, with no ZED SDK and no streaming. This is useful for quick frame/depth capture, generating datasets, or working on a machine where the ZED SDK is not installed.
For how this compares to the streaming and Isaac Lab tensor paths, see Choosing a data path.
The depth captured here is Isaac™ Sim’s ground-truth renderer depth (distance_to_image_plane), not the ZED SDK’s stereo-matched depth. For genuine ZED SDK depth, use the streaming path.
ZED Depth OmniGraph node
The extension provides a ZED Depth node that captures RGB + depth each simulation tick. Add it to an Action Graph, connect an On Playback Tick node to its ExecIn, set its properties, and press Play. The ZED Depth node supports stereo camera models only; mono ZED X One cameras are not supported.
Standalone scripts
The extension also ships two capture scripts under exts/sl.sensor.camera/examples/isaac_sim/, both driven by the sl.sensor.camera.zed_depth.ZEDDepthCamera helper.
Standalone / headless (zed_depth_standalone.py)
Captures left RGB + depth for N frames, prints per-frame stats, and optionally saves PNG/EXR. It runs with no arguments: when no scene or camera is given, it builds a minimal ground + dome-light scene and spawns a ZED camera at a small default pose, so you get a usable depth capture out of the box.
The script is launched with the Python interpreter shipped with Isaac™ Sim (python.sh / python.bat, in the _build/linux-x86_64/release folder of your Isaac™ Sim build). That interpreter and the example live in two different repositories, so run python.sh from the Isaac™ Sim build directory and give the script an absolute path into your zed-isaac-sim clone:
Arguments (all optional): --usd_path (environment USD; omit to build a minimal scene), --camera_prim (an existing ZED camera prim; omit to spawn one), --camera_model, --resolution, --num_frames, --output_dir, --headless.
Saving depth needs the OpenEXR codec, which is disabled by default in the OpenCV build shipped with Isaac™ Sim. Whenever you pass --output_dir (or enable Enable Save on the ZED Depth node), set OPENCV_IO_ENABLE_OPENEXR=1 before launching, or the run aborts on the first frame with:
Capturing without --output_dir is unaffected: the depth arrays are produced normally and only the EXR write needs the codec.
GUI Script Editor (zed_depth_example.py)
For interactive use inside the Isaac™ Sim GUI (extension enabled): load a scene with a ZED camera, paste the script into the Script Editor, edit the CONFIG block (CAMERA_PRIM_PATH, CAMERA_MODEL, RESOLUTION, CAPTURE_INTERVAL, SAVE_DIR), execute it, then press Play. RGB + depth are captured every CAPTURE_INTERVAL physics steps; press Stop to clean up.
Output
- Console: per-capture shape and depth-range stats.
- Files (when a save path is set):
rgb_left_NNNNNN.png(left RGB) anddepth_NNNNNN.exr(float32 depth in meters,0= invalid). For stereo models,rgb_right_NNNNNN.png(right RGB) is saved too; depth stays left-referenced.
See also
- Setting up the ZED in Isaac™ Sim: stream the simulated camera to the ZED SDK.
- Using the ZED in Isaac™ Lab: read stereo RGB + depth as in-process tensors for learning.
- Examples on GitHub: the full capture scripts.

