Skip to content

OpenUSD VRM Avatar Plugins

CI OpenUSD 26.08 License: Apache-2.0

VRM / VRMA-specific integration with OpenUSD.

VRM animation retargeting preview in usdview with Hydra Storm

A VRM scene loaded directly through the file-format plugin, with a VRMA motion file retargeted onto the avatar, previewed in usdview with Hydra Storm.

Scope

This repository owns what needs the VRM specification:

  • .vrm import — VRM 0.x and 1.0, normalized into one canonical model and authored as a deterministic OpenUSD stage;
  • .vrma import — VRM Animation clips as avatar-independent semantic motion;
  • the VRM schemas, and resolution of resources embedded in a .vrm;
  • VRM humanoid semantics on a rig — the humanoid binding, VRM 1.0's required bones, expressions and look-at;
  • execVrm, VRM semantics as OpenExec computations.

It does not own:

Subject Owner
Generic motion: values, sampling, filtering, recording, retargeting, the OpenUSD motion mapping usd-motion-plugins
Live input: devices, protocols, source profiles, trackers motion-connectors
Runtime composition and the update loop usd-avatar-runtime

The importers author data and never evaluate or simulate it. Evaluation belongs to execVrm or to a runtime outside this repository.

Architecture

avatar.vrm ─▶ usdVrmFileFormat ─▶ /Asset  (skeleton, humanoid, expressions, look-at)
walk.vrma  ─▶ usdVrmaFileFormat ─▶ /Animation  (semantic humanoid clip)
                                        │
                       usd-motion-plugins: MotionClip, retarget
                                        │
             vrmRig: VRM binding, expressions, look-at
                                        │
            motion_retarget (bake)  ·  execVrm (OpenExec)
                                        ▼
                            UsdSkelAnimation on the avatar

.vrm and .vrma are separate plugins and compose by reference, never by subLayer (VRM motion policy).

Components

Component Responsibility
vrmSchema VRM typed API schemas and the schema contract
usdVrmFileFormat .vrm parsing, canonicalization and USD authoring
usdVrmPackageResolver Resolution of resources embedded in a .vrm
usdVrmaFileFormat .vrma clips → a UsdSkelAnimation on a canonical semantic skeleton
execVrm VRM retarget computations for OpenExec over the applied VrmHumanoidAPI
vrmImaging The canonical material schemas as Hydra data on the material prim, for any Hydra renderer
vrmContainer GLB parsing and byte-range validation, shared by the importer and the resolver
vrmRig What a VRM rig adds to the generic retarget: required bones, expression resolve, look-at
motion_retarget CLI: bakes a semantic clip onto a VRM rig as UsdSkelAnimation
vrm_export CLI: writes an imported .vrm as native .usda / .usdc / .usdz that opens with no VRM plugin
usdVrm The aggregate product name — never a bundle id

Identities and dependency directions: docs/architecture/WORKSPACE.md.

Documentation

What is implemented Per-feature status, for the importer and for motion on a VRM rig
Supported configurations Platforms, OpenUSD, build requirements
Incomplete work The next release's open conditions
Release history The changelog, and the per-version release records
docs/ Which document owns which subject

Build

Install a released product with docs/guides/INSTALL.md. To build from source, with OpenStrata:

ost runtime pull cy2026 --profile usd --from-usd /path/to/openusd-install
ost plugin test --workspace

or with plain CMake against an OpenUSD 26.08 install and installed usd-motion-plugins packages. Both paths, the test labels, CI and the release lane are in docs/guides/BUILDING.md.

License

Original source and documentation: Apache-2.0 (see LICENSE). Third-party components keep their own licenses; see THIRD_PARTY_NOTICES.md. cgltf v1.15 is vendored under third_party/cgltf with its MIT license. Contributions: CONTRIBUTING.md · Code of Conduct · Security Policy.

Local test VRM avatars used during development are not part of this repository and are not redistributed here; mind their individual licenses.

About

OpenUSD integration for VRM and VRM Animation: file-format plugins, typed schemas, humanoid semantics, materials, and OpenExec.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages