Digital twins are often demos or notebooks. Production teams need drift detection, reconciliation, ownership, telemetry persistence, and a path to replay incidents — not a one-off visualization that collapses when someone updates a mesh or a kit version.
TwinOps Control Plane
TwinOps treats industrial digital twins as operable infrastructure: OpenUSD composition, GitOps ownership, drift detection, reconciliation, telemetry, and incident replay on Kubernetes.
How it works
From desired state to SYNCED.
TwinOps by Andrey Lesnikov — a GitOps control plane for industrial digital twins: PLM intent, OpenUSD composition, live telemetry, three-way drift, and reconcile on Kubernetes.
-
01
Declare desired twin
PLM mappings and Git twin.yaml define engineering intent — the twin is a versioned artifact, not a one-off scene.
-
02
Compose OpenUSD
The control plane materializes inputs and composes deterministic USD bundles (inline or isolated Job), then publishes immutable revisions.
-
03
Detect three-way drift
Desired, rendered, and observed (MQTT/IoT) planes are compared continuously so factory signal and scene state stay honest.
-
04
Reconcile to SYNCED
Operators apply reconciliation, heal overlays, and return the twin to SYNCED — with timeline evidence instead of a fragile demo reset.
Evidence
From problem to proof.
How the system is framed, operated, and proven — not a slide deck summary.
A GitOps control plane composes OpenUSD scenes, detects drift against desired state, reconciles through Kubernetes operators, persists history, streams kit telemetry, and supports incident replay. Desired twin state lives in Git; runtime state is observed and reconciled like any other platform product.
Industrial and platform teams share ownership boundaries: who can change composition, what drift is actionable, how telemetry is retained, and how an incident is replayed without rebuilding the scene by hand.
Treating twins as platform products adds operator and GitOps complexity. The benefit is reviewable state, recoverable failures, and demonstrable E2E behavior instead of fragile demos.
Useful signals include composition history, drift events, reconcile outcomes, kit telemetry streams, and replay records that reconstruct what the twin saw during an incident window.
PLM REST reliability: ETag / If-None-Match polling, exponential backoff with jitter on 5xx and timeouts, 409 conflicts surfaced as a PlmConflict condition, and idempotent resync — after an outage the next successful poll increments resyncCount exactly once. PLM fetches go through an SSRF guard (operator host allowlist, private-IP blocking on DNS and redirects, 1 MiB response cap). MQTT ingest drops out-of-order and duplicate messages, marks stale sensors STALE / UNKNOWN and quarantines clock-skewed messages without advancing the sequence. All Operator kind jobs, including PLM poll E2E and MQTT smoke, green in CI run 38133823218.
OpenUSD composition, GitOps ownership, Kubernetes operators, telemetry persistence, and one-command E2E demonstration.
Related
Nearby systems.
Architecture Rehearsal
Teams discover architectural blast radius only after a change lands in production
Pre-deploy break risk → verified after change
GitOps: Argo CD & Flux
Teams need a clear delivery model before GitOps becomes another layer of operational confusion
Delivery as explicit platform contracts
Self-Healing Infrastructure
Transient infrastructure failures can become user-facing incidents when recovery depends on manual detection
Common failures recover with guardrails