OPCFoundation.NetStandard.Opc.Ua.Vision.Server
2.0.0-preview.4
Prefix Reserved
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Vision.Server --version 2.0.0-preview.4
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Vision.Server -Version 2.0.0-preview.4
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Vision.Server" Version="2.0.0-preview.4" />
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Vision.Server" Version="2.0.0-preview.4" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Vision.Server" />
paket add OPCFoundation.NetStandard.Opc.Ua.Vision.Server --version 2.0.0-preview.4
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Vision.Server, 2.0.0-preview.4"
#:package OPCFoundation.NetStandard.Opc.Ua.Vision.Server@2.0.0-preview.4
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Vision.Server&version=2.0.0-preview.4&prerelease
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Vision.Server&version=2.0.0-preview.4&prerelease
Opc.Ua.Vision.Server
Server hosting for the draft OPC UA — Vision companion model.
The package materialises the well-known Vision object under the Server
object (i=2253), exposes fluent APIs to describe sensors, coordinate frames,
calibrations, media endpoints and inference pipelines, and wires host-supplied
providers behind the model's methods so a Server never hard-codes a
particular camera, scene or model.
What it gives you
AddVision()— registers the stockVisionNodeManagerand factory in the Generic Host pipeline. Requires no DI, Machinery or Robotics dependency: the Vision NodeSet only requires the base UA namespace.ConfigureVision(...)/ConfigureVisionFor<TNodeManager>(...)— fluent configurator that runs on server start.VisionNodeManager/VisionNodeManagerFactory— standalone node manager for direct construction and for hosting extensions.IVisionModelProvider— deterministic composition of additional compiled Vision-namespace providers.IVisionMediaProvider,IVisionInferenceProvider,IVisionFeedbackSink— the provider abstractions a host implements to supply media (streams, clips), run inference, and receive off-server feedback.IVisionBuildContextand itsIVisionNodeBuilder— the fluent surface for adding coordinate frames, calibrations, sensors, media endpoints, inference pipelines and feedback objects to the address space.- Facet derivation from the materialised address space, published in
Server.ServerCapabilities.ServerProfileArray(VIS-Base, VIS-Media-, VIS-Calibration, VIS-Result-, VIS-Feedback, VIS-Inference-OnServer / VIS-Inference-OffServer, VIS-Simulation, VIS-Learning).
Example
using Microsoft.Extensions.Hosting;
using Opc.Ua;
using Opc.Ua.Server;
using Opc.Ua.Vision;
using Opc.Ua.Vision.Server;
using Opc.Ua.Vision.Server.Builders;
builder.Services
.AddOpcUa()
.AddServer(options => options.EndpointUrls.Add("opc.tcp://localhost:62855/VisionServer"))
.AddVision(options => options.InstanceNamespaceUri = "urn:example:vision:instances")
.AddVisionMediaProvider<MyMediaProvider>(sensorBrowseName: "Camera01")
.AddVisionInferenceProvider<MyGroundTruthProvider>(
pipelineBrowseName: "Detector",
onServer: true)
.ConfigureVision((context, ct) =>
{
IVisionNodeBuilder nodes = context.Nodes;
nodes.AddFrame("World", f => f
.WithFrameId("world")
.WithRole(VisionFrameRoleEnum.World));
nodes.AddFrame("Flange", f => f
.WithFrameId("flange")
.WithRole(VisionFrameRoleEnum.MechanicalInterface)
.WithParent("world"));
nodes.AddImageSensor("Camera01", s => s
.WithSensorId("cam-01")
.WithModality(VisionSensorModalityEnum.Area2D)
.WithFrameId("flange")
.WithResolution(1920u, 1080u)
.WithPixelFormat("Mono8")
.AddClipEndpoint("Clips", ep => ep
.WithEndpointId("clip-01")
.WithClipFormat(VisionClipFormatEnum.Png)
.WithResolution(1920u, 1080u)
.WithInlineDelivery(enabled: true, maxInlineClipSize: 8_388_608u)));
nodes.AddPipeline("Detector", pipe => pipe
.WithPipelineId("pipe-01")
.WithSensor(NodeId.Null));
return ValueTask.CompletedTask;
});
Provider abstractions
- Implement
IVisionMediaProvideron the host to serve media without putting pixels on OPC UA.GetStreamAsyncreturns a leased URI;GetClipAsyncreturns aVisionImageReferenceDataTypeand, when the caller asks for inline delivery and the encoded bytes fit the effective limit, an inlineByteString. The §6.4Bad_NotSupported/Bad_NoDataAvailable/Bad_EncodingLimitsExceededstates are all observable by a client throughLatestClipwhileLatestClipMetadatakeeps returning the URI. - Implement
IVisionInferenceProviderto bind a pipeline to whatever actually computes results — on the Server, on an edge GPU, in the cloud, or in a simulator. The Server publishes the result nodes and applies the spec's method conventions regardless of where inference runs. - Implement
IVisionFeedbackSinkto receiveSubmitDetections,SubmitInspectionResult,SubmitCorrectionandSubmitImageReference. Off-server VLM agents publish through this path, and the Server records what it did not compute.
Related packages
| Package | Adds |
|---|---|
OPCFoundation.NetStandard.Opc.Ua.Vision |
Source-generated Vision model (required) |
OPCFoundation.NetStandard.Opc.Ua.Vision.Client |
High-level client for the same model |
OPCFoundation.NetStandard.Opc.Ua.Vision.OpenUsd |
A reference ISceneCameraCaptureProvider that renders a UsdGeomCamera offscreen and reports NoRenderingBackend gracefully on CI |
OPCFoundation.NetStandard.Opc.Ua.Mcp.Vision |
MCP tools that let a language-model agent drive a Vision server |
See the Vision developer guide
for the hosting-API table, the full topology-builder surface, the two
perception paths (OnServer vs EdgeOffServer), facet derivation and the
bin-picking sample.
The namespace
http://opcfoundation.org/UA/Vision/and every NodeId in it are provisional. The model is a working-group draft.
License
OPC Foundation MIT License 1.00 — http://opcfoundation.org/License/MIT/1.00/
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net472 is compatible. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- BitFaster.Caching (>= 2.6.1)
- BouncyCastle.Cryptography (>= 2.7.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.11)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- OPCFoundation.NetStandard.Opc.Ua.Server (>= 2.0.0-preview.4)
- OPCFoundation.NetStandard.Opc.Ua.Vision (>= 2.0.0-preview.4)
- System.Buffers (>= 4.6.1)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.11)
- System.Formats.Asn1 (>= 10.0.11)
- System.Memory (>= 4.6.3)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Text.Json (>= 10.0.11)
- System.Threading.Channels (>= 10.0.11)
- System.Threading.RateLimiting (>= 10.0.11)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETFramework 4.8
- BitFaster.Caching (>= 2.6.1)
- BouncyCastle.Cryptography (>= 2.7.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.11)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- OPCFoundation.NetStandard.Opc.Ua.Server (>= 2.0.0-preview.4)
- OPCFoundation.NetStandard.Opc.Ua.Vision (>= 2.0.0-preview.4)
- System.Buffers (>= 4.6.1)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.11)
- System.Formats.Asn1 (>= 10.0.11)
- System.Memory (>= 4.6.3)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Text.Json (>= 10.0.11)
- System.Threading.Channels (>= 10.0.11)
- System.Threading.RateLimiting (>= 10.0.11)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETStandard 2.1
- BitFaster.Caching (>= 2.6.1)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.TimeProvider (>= 10.0.11)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- OPCFoundation.NetStandard.Opc.Ua.Server (>= 2.0.0-preview.4)
- OPCFoundation.NetStandard.Opc.Ua.Vision (>= 2.0.0-preview.4)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.11)
- System.Formats.Asn1 (>= 10.0.11)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Text.Json (>= 10.0.11)
- System.Threading.Channels (>= 10.0.11)
- System.Threading.RateLimiting (>= 10.0.11)
-
net10.0
- BitFaster.Caching (>= 2.6.1)
- Microsoft.Bcl.TimeProvider (>= 10.0.11)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- OPCFoundation.NetStandard.Opc.Ua.Server (>= 2.0.0-preview.4)
- OPCFoundation.NetStandard.Opc.Ua.Vision (>= 2.0.0-preview.4)
- System.Threading.RateLimiting (>= 10.0.11)
-
net8.0
- BitFaster.Caching (>= 2.6.1)
- Microsoft.Bcl.TimeProvider (>= 10.0.11)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- OPCFoundation.NetStandard.Opc.Ua.Server (>= 2.0.0-preview.4)
- OPCFoundation.NetStandard.Opc.Ua.Vision (>= 2.0.0-preview.4)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.11)
- System.Formats.Asn1 (>= 10.0.11)
- System.Text.Json (>= 10.0.11)
- System.Threading.Channels (>= 10.0.11)
- System.Threading.RateLimiting (>= 10.0.11)
-
net9.0
- BitFaster.Caching (>= 2.6.1)
- Microsoft.Bcl.TimeProvider (>= 10.0.11)
- Microsoft.Extensions.Configuration (>= 10.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Diagnostics (>= 10.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Http (>= 10.0.11)
- Microsoft.Extensions.Logging (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- OPCFoundation.NetStandard.Opc.Ua.Server (>= 2.0.0-preview.4)
- OPCFoundation.NetStandard.Opc.Ua.Vision (>= 2.0.0-preview.4)
- System.Diagnostics.DiagnosticSource (>= 10.0.11)
- System.Formats.Asn1 (>= 10.0.11)
- System.Text.Json (>= 10.0.11)
- System.Threading.Channels (>= 10.0.11)
- System.Threading.RateLimiting (>= 10.0.11)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-preview.4 | 56 | 9/2/2026 |