Skip to main content

usd2msd

This project is an offline converter for Omniverse-specific USD files to MSD.

This project is a sub-project. Unless explicitly specified, all paths in this README are relative to the project root, and all commands are assumed to run from that directory.

Setup Environment

This project uses pyproject.toml to manage dependencies. You can use any Python package manager that supports PEP 518. With uv, run:

uv sync

to install runtime dependencies and the default dev dependency group.

This project requires Python >=3.10, <3.14.

Hello World USD

Run the Python script using:

uv run examples/hello_world_usd.py

This converts hello_world.usda and loads it directly into MotrixSim via the PyO3 MSD binding. No intermediate file is written.

Usage

Converter.convert() returns an msd.World object (a PyO3 Rust object) directly:

from pathlib import Path
from usd2msd import Converter

converter = Converter()
world = converter.convert(Path("scene.usda"))
# world is a motrixsim.msd.World object, ready for use in MotrixSim

To use the world in MotrixSim:

import motrixsim as mx

model = mx.load_usd("scene.usda")  # internally calls Converter and builds the scene

Developer Guide

Update MSD Python Stubs

MSD types are exposed directly via PyO3 bindings from motrixsim.msd. When MSD structure in the main project changes, regenerate the Python stubs:

cd motrixsim-python/motrixsim-core
cargo run --bin stub_gen

Inspect Binary USD Files

To convert or flatten a binary USD file to readable USDA for inspection or debugging, edit and run:

uv run scripts/flatten_to_usda.py

Metadata

Release files for usd2msd 0.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for usd2msd 0.10.1
File Interpreter ABI Platform
usd2msd-0.10.1-py3-none-any.whl Python 3 none any Details

Release files / usd2msd-0.10.1-py3-none-any.whl

Download URL usd2msd-0.10.1-py3-none-any.whl
Size 57.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99281ecb0ce899b888fc9afb35eb4507729602e45ea960199364285c13138285
BLAKE2b-256 checksum
How to use checksums
7241ce22141df6166269c5d263869dedde66e4d144e850c993000988af815bb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.28.0 CPython/3.11.2 Linux/6.12.57+deb13-amd64

Release history Release notifications | RSS feed

This release

0.10.1 This release

1 release file

0.10.0

1 release file

0.9.0

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page