Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b978e21
Give Vision a frame role for the flange
marcschier Aug 3, 2026
64858db
Give the AI model its own specification
marcschier Aug 3, 2026
3be156a
Stop restating the learning loop in two places
marcschier Aug 3, 2026
f3b5af5
Let a Server actually use a model, not just describe one
marcschier Aug 3, 2026
9f50ad1
Enforce the new rules, and show what they add up to
marcschier Aug 3, 2026
cce9495
Deepen the clauses that were already there
marcschier Aug 3, 2026
14f37d3
Fix what the review found in the AI split
marcschier Aug 3, 2026
6aa4925
Fix what the review found in the AI expansion
marcschier Aug 3, 2026
fa39a52
Merge branch 'robot-intent-spec' into vision-restructure
marcschier Aug 3, 2026
b862774
Merge branch 'vision-restructure' into ai-expansion
marcschier Aug 3, 2026
77d68ff
Require a Mandatory member to be documented, not just its type
marcschier Aug 3, 2026
96ff766
Let a Server actually use a model, not just describe one (#50)
marcschier Aug 3, 2026
5a65f57
Make the document read as a statement of the model, not its history
marcschier Aug 3, 2026
21a5ab6
Bring forward the two commits stranded by the #50 squash
marcschier Aug 3, 2026
cff48f3
Retitle: AI Model Management and Inference
marcschier Aug 3, 2026
d6842ca
Address PR #49 review feedback
marcschier Aug 3, 2026
34032e0
Address PR #49 review feedback: payload size and scenarios
marcschier Aug 4, 2026
db79897
Show how the AI model maps onto the systems people actually integrate…
marcschier Aug 5, 2026
8ea9950
Merge branch 'robot-intent-spec' into vision-restructure
marcschier Aug 5, 2026
409001a
Say what this repository actually contains
marcschier Aug 7, 2026
1cb8787
Keep the capsule markers inside the table row's outer pipes
marcschier Aug 7, 2026
aa5a0e7
Trim the blank line at the end of the README
marcschier Aug 7, 2026
e54f5b1
Merge branch 'robot-intent-spec' into vision-restructure
marcschier Aug 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions metaverse-specs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,29 +22,33 @@ The two specifications approach the same problem from opposite ends and are deli

Pick Part 1 when you already have an artist-authored USD asset and want to drive it. Pick Part 2 when the scene itself should be the address space — browsable, subscribable, historizable.

## The two standalone models
## The three standalone models

| | [`vision/`](vision/) | [`robot-intent/`](robot-intent/) |
|---|---|---|
| Question | *What does this camera see, what AI reads it, and what did it conclude?* | *How do I tell this robot what to do?* |
| The gap | OPC 40100-1 leaves result content undefined; OPC 40010-1 has no vision types at all | OPC 40010-1 describes robot topology and defines **no motion verbs** |
| Namespace | `http://opcfoundation.org/UA/Vision/` | `http://opcfoundation.org/UA/RobotIntent/` |
| Release | 0.1.0 | 0.1.0 |
| | [`vision/`](vision/) | [`robot-intent/`](robot-intent/) | [`ai-deployment/`](ai-deployment/) |
|---|---|---|---|
| Question | *What does this camera see, and what did it conclude?* | *How do I tell this robot what to do?* | *Which model produced this answer, and can I audit it?* |
| The gap | OPC 40100-1 leaves result content undefined; OPC 40010-1 has no vision types at all | OPC 40010-1 describes robot topology and defines **no motion verbs** | OPC UA has no way to say what an AI model *is*, where it runs, or what it was trained on |
| Namespace | `http://opcfoundation.org/UA/Vision/` | `http://opcfoundation.org/UA/RobotIntent/` | `http://opcfoundation.org/UA/AI/` |
| Release | 0.1.0 | 0.1.0 | 0.1.0 |

All three are self-contained on base OPC UA — none takes a companion specification as a `RequiredModel`.

Both are self-contained on base OPC UA — neither takes a companion specification as a `RequiredModel` — and both express interop with OPC 40010-1 as an optional annex rather than a dependency.
**They compose without coupling.** Vision's `InferencePipelineType.Deployment` is a plain `NodeId`, so a Server can publish cameras and verdicts with no AI model at all; where it does describe one, the chain *result → deployment → model → digest* is available end to end. Vision and Robot Intent share a frame vocabulary with identical literals and numbering. In every case the join is a **facet precondition**, never a `RequiredModel` — which is what lets a domain adopt one model without inheriting the others.

## Layout

- <!-- release-spec-link:YG9wZW51c2QtYmluZGluZy9gIOKAlCBQYXJ0IDEgc3BlY2lmaWNhdGlvbiwgTm9kZVNldCwgQ1NWLCBpbXBsZW1lbnRlciBhZGRlbmRhIGZvciBgcHVtcHMvYCBhbmQgYHJvYm90aWNzL2AsIGFuZCB0aGUgc3RhbmRhbG9uZSAqKnhSZWdpc3RyeSBkb21haW4gc3BlY2lmaWNhdGlvbioqIGZvciB0aGUgYXJ0aWZhY3QgcmVnaXN0cnkgKGB4UmVnaXN0cnktT3BlblVzZC5tZGApLCB3aGljaCBkZWZpbmVzIHRoZSBzYW1lIHJlZ2lzdHJ5IGluZGVwZW5kZW50bHkgb2YgT1BDIFVBIHNvIHRoZSB0d28gcHJvamVjdGlvbnMgZmVkZXJhdGUu -->*Under OPC Foundation review — moved to [OPCF-Members/spec-drafts](https://github.com/OPCF-Members/spec-drafts); OPC Foundation members can [request access](https://github.com/OPCF-Members/Help).*<!-- /release-spec-link -->
- <!-- release-spec-link:YG9wZW51c2Qtc2NlbmUvYCDigJQgUGFydCAyIHNwZWNpZmljYXRpb24sIE5vZGVTZXQsIENTViwgYW5kIG1hdGVyaWFsaXplZCBleGFtcGxlIG92ZXJsYXlzLg== -->*Under OPC Foundation review — moved to [OPCF-Members/spec-drafts](https://github.com/OPCF-Members/spec-drafts); OPC Foundation members can [request access](https://github.com/OPCF-Members/Help).*<!-- /release-spec-link -->
- `vision/` — **OPC UA — Vision**: sensors, the media they emit, the AI that interprets them, the results they produce, and the feedback path back in. Standalone on base OPC UA, with worked addenda for `robotics/` and `machine-vision/`.
- `robot-intent/` — **OPC UA — Robot Intent**: task-level verbs for commanding a robot, with a Part 10 lifecycle. OPC 40010-1 describes robot topology and defines no motion verbs; this supplies the verbs and nothing else. Standalone on base OPC UA.
- `ai-deployment/` — **OPC UA — AI Deployment and Learning**: the model nameplate, the dataset it was trained on, the deployment that executes it and the learning job that produces the next version. Deliberately **domain-neutral** — it names no camera, no robot and no sensor — so any domain can build on it. Aligned member-for-member with IDTA 02058/02059/02060.
- `extras/` — everything secondary to standardization, mirroring the folders above:
- `openusd-binding/tools/` — the model generator and validator; `examples/` — the pumps and robotics USD assets, binding descriptors, writers, renderers and end-to-end guides.
- `openusd-scene/tools/` — the model generator, the `.usd` ↔ NodeSet converters, and the round-trip checker.
- `openusd-artifacts/` — the emitted xRegistry **artifact registry** for the examples (see Part 1 §7.11).
- `vision/tools/` — the model generator, the example builder and the validator.
- `robot-intent/tools/` — the model generator and the validator.
- `ai-deployment/tools/` — the model generator and the validator, including the domain-neutrality check that fails the build if a type name acquires a domain term.
- `validate_all.py` — validates every extension in this tree.

## Validate
Expand Down
Loading
Loading