Skip to main content
net10.0net8.0net9.0

Optional viewport for the OPC UA - OpenUSD connector. Renders the composed stage with the OpenUSD Avalonia viewer and exposes it as an IUsdSink, so the connector's --view option streams live OPC UA values into the picture on screen. Install alongside Opc.Ua.OpenUsd.Connector; the connector loads it on demand and works without it.

Published
Aug 28, 2026
1mo ago
Total Downloads
199
199

Install

dotnet add package OPCFoundation.NetStandard.Opc.Ua.OpenUsd.Connector.Viewer --version 2.0.0-preview.3
ProductVersions
.NET
net10.0net8.0net9.0

README

OPC UA — OpenUSD connector viewport

Optional viewport for OPCFoundation.NetStandard.Opc.Ua.OpenUsd.Connector.

The connector normally authors a live.usda override layer that some other tool renders. Install this package alongside it and the connector's --view option instead opens a window on the composed stage and streams the same subscribed OPC UA values straight into the stage being rendered, so the digital twin animates live in one process.

dotnet run --project tools/Opc.Ua.OpenUsd.Connector -- \
    --server opc.tcp://localhost:62830/MinimalRobotServer \
    --insecure --view --pick-command

How it fits together

  • The connector discovers the server's Server/OpenUSD/Representations, subscribes, and fetches the served USD asset closure.
  • This package implements IUsdViewHost: it renders the composed stage with the OpenUSD Avalonia viewer and hands the connector an IUsdSink that authors into the scheduler-owned stage the renderer already owns.
  • CompositeUsdSink fans every value into both that sink and the file sink, so the override layer on disk and the picture on screen never diverge.
  • UsdViewOptions.PrimPicked is supported by the OpenUSD viewer's renderer-backed pick callback. UsdViewOptions.PickMode defaults to that path and automatically falls back to the command prim when renderer picking is unavailable or unsupported; the fallback watches /World/IntentCommand by default and raises the callback when its targetPrim relationship or attribute changes.

The connector loads this assembly by name from its own directory and never references it, which is what keeps the connector package free of a UI framework and a native payload. Publish both projects into the same directory so the assembly, its dependencies, and the USD plugin tree end up where the connector looks for them.

Requirements

  • .NET 8 or later.
  • A supported OpenUSD native runtime payload: win-x64, linux-x64, or osx-arm64. A RID-less build or publish on a supported host uses that host's payload; use an explicit RID when publishing for another platform.
  • The OpenUSD packages OpenUsd, OpenUsd.Viewer, and OpenUsd.Runtime.Imaging.

See docs/OpenUsd.md for the full binding guide and the local-feed bootstrap.

License

MIT — see the OPC Foundation MIT license.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.Compatibility metadata lists 3 target frameworks; confirm the exact target used by your application.The published metadata declares 78 direct dependency entries across framework groups. Inspect the resolved dependency graph for your target framework.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.