Experimental Features
Some features in the Zivid SDK are marked as experimental. This page explains what that label means and how to work with experimental features in your application.
What "experimental" means
Zivid releases features as experimental to make them available to you sooner and to gather feedback from real-world use. This lets us refine the design before it becomes a permanent part of the API.
In practice, an experimental feature is one where Zivid may change the API or behavior.
How to recognize an experimental feature
You cannot use an experimental feature without explicitly referencing the word Experimental. Depending on the feature, this appears in:
the namespace, for example
Zivid::Experimental,the settings path, for example
Settings::Experimental::..., orthe name of the tool, for example
ZividExperimentalHandEyeCalibration
This is intentional: it ensures you always know when your code depends on an experimental feature.
What to expect
警告
Experimental features are subject to change or removal. The interface may change between SDK releases, which means you may need to update your code when you upgrade. Review the changelog before upgrading, and pin to a specific SDK version in production if you need a stable interface.
Quality
Experimental features are generally held to the same quality bar as the rest of the SDK at the time they ship, with no known instabilities and reasonable test coverage. Where this is not the case, the limitation is stated in the documentation for that specific feature.
Wrapper availability
An experimental feature may not be available in every language wrapper. For example, it might exist in the C++ API but not yet in the Python or .NET wrappers.
Using experimental features safely
Check the documentation for the specific feature for any stated limitations.
Pin your SDK version and review the changelog when upgrading, since the interface may change.
If you plan to deploy an experimental feature in production, or you have questions about its maturity, contact Customer Success at customersuccess@zivid.com.
Availability by SDK and Wrapper
The table below shows which wrappers each experimental feature is available in today.
A Yes means the feature is available in that wrapper, and a No means it is not.
C++ - the C++ SDK (
Zivid::Experimental)..NET - the .NET SDK (
Zivid.NET.Experimental).Python - the zivid-python wrapper (
zivid.experimental).ROS - the zivid-ros ROS 2 driver.
HALCON - the GenICam (GenTL) producer used from HALCON and other GenICam consumers.
Experimental feature |
C++ |
.NET |
Python |
ROS |
HALCON |
|---|---|---|---|---|---|
Camera intrinsics |
Yes |
Yes |
Yes |
Yes |
No |
Pixel mapping |
Yes |
No |
Yes |
No |
No |
Hand-eye calibration for low-DOF robots |
Yes |
Yes |
Yes |
Yes |
No |
Point cloud export (ZDF, PLY, XYZ, PCD) |
Yes |
Yes |
Yes |
Yes |
No |
Point cloud registration (stitching) |
Yes |
Yes |
Yes |
No |
No |
Barcode detection |
Yes |
No |
Yes |
No |
No |
Reprocessing |
Yes |
No |
No |
No |
No |
Settings info |
Yes |
Partial |
No |
No |
No |
Experimental settings nodes |
Yes |
Yes |
Yes |
Yes |
Yes |
备注
Settings info in the .NET SDK exposes
Resolutiononly; thedefaultValue/validValues/validRangequeries are not wrapped.ROS and HALCON consume a full settings object, so the experimental settings nodes work even though the experimental APIs are not individually wrapped. The ROS driver additionally wraps camera intrinsics, hand-eye low-DOF calibration, and point cloud export through dedicated services.
The GenICam / HALCON wrapper
The GenICam GenTL producer, used to operate Zivid cameras from HALCON and other GenICam consumers, is itself experimental. The installer presents it as GenICam GenTL Producer (Experimental), and the same expectations as above apply: the interface and feature set may change between releases.