Skip to main content

newton-usd-schemas

Overview

Newton USD schemas provide extensions to OpenUSD's UsdPhysics specification, allowing USD layers to configure the Newton runtime data model.

These schemas can be deployed into any python runtime with USD support, allowing content creators to author Newton compatible robots, props, and environments in any application of their choice, without requiring the Newton runtime itself.

This project is part of Newton, a Linux Foundation project which is community-built and maintained.

Get Started

These schemas are codeless, in that they contain no compiled code nor any public API of their own. Since codeless schemas do not provide any code, clients do not need to recompile USD to use or update these schemas. They are deployed as a python module via a wheel package for convenience, as all Newton projects use pyproject based dependencies and most USD authoring workflows include a python runtime.

To start using the schemas, install the python wheel into a virtual environment using your favorite package manager:

python -m venv .venv
source .venv/bin/activate
pip install newton-usd-schemas
pip install usd-core  # or any other USD runtime

At runtime, simply import the module to register the schemas with OpenUSD.

Important: Schemas must be registered before the Usd.SchemaRegistry is initialized. Make sure to import the module very early in the process.

import newton_usd_schemas  # this registers the schema
from pxr import Usd, UsdPhysics

stage: Usd.Stage = Usd.Stage.CreateInMemory()

# create a UsdPhysics.Scene and set gravity
scene: UsdPhysics.Scene = UsdPhysics.Scene.Define(stage, "/scene")
scene.GetGravityMagnitudeAttr().Set(9.81)

# apply a Newton schema and set some of its attributes
prim: Usd.Prim = scene.GetPrim()
prim.ApplyAPI("NewtonSceneAPI")
prim.GetAttribute("newton:timeStepsPerSecond").Set(500)  # 2ms

stage.Export("/tmp/my_robot.usda")  # or .usdc or .usd

Once a USD layer is authored to storage, it can be loaded into a Newton runtime using Newton's USD Parsing mechanism.

Experimental Status

The Newton USD Schemas are currently in a v0.x development phase. The schemas are considered experimental and could change in future releases.

If existing schemas need to change in subsequent releases, we will first attempt to provide easy migrations via non-breaking changes and deprecations. However, in some cases a breaking change may be required, and we will provide auto-upgrade scripts or agentic skills to aid content migration.

Please note automated upgrades may not always be possible and content could require manual updates to comply.

Design Principles

Newton schemas follow a minimalist approach to determine which attributes should be included, and are similar to the philosophy that UsdPhysics and the Newton API follow for capturing parameters that generalize across simulators. We view the Newton schemas as a proving and staging ground for physics parameters that should eventually be eligible for promotion into the UsdPhysics standard.

A USD attribute belongs in the Newton schema if it meets one of these criteria:

  1. Clear Physical Meaning: The attribute represents a physically meaningful quantity rather than a modeling or approximation parameter (e.g., simulation time step dt, or gravitational acceleration), and is supported by at least one Newton solver.

  2. Cross-Solver Support: The attribute has a direct (or transformable) correspondence to parameters supported by at least two Newton solvers. This mainly applies to physical modeling parameters (e.g., a viscous joint friction coefficient).

For solver-specific or workflow-specific parameters that are not in UsdPhysics or the Newton schema, Newton supports solver-specific schemas (e.g., mjcPhysics) or custom attributes.

Contribution Guidelines

Contributions from the community are welcome. See CONTRIBUTING.md to learn about contributing via GitHub issues, as well as building the project from source and our development workflow.

General contribution guidelines for Newton repositories are available here.

Community

For questions about these newton-usd-schemas, feel free to join or start a GitHub Discussions.

By participating in this community, you agree to abide by the Linux Foundation Code of Conduct.

References

License

newton-usd-schemas is provided under the Apache License, Version 2.0

Metadata

Release files for newton-usd-schemas 0.6.0

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

Source distribution (sdist)

Source distribution for newton-usd-schemas 0.6.0
File Size Uploaded
newton_usd_schemas-0.6.0.tar.gz 77.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for newton-usd-schemas 0.6.0
File Interpreter ABI Platform
newton_usd_schemas-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.9 kB

Release files / newton_usd_schemas-0.6.0.tar.gz

Download URL newton_usd_schemas-0.6.0.tar.gz
Size 77.2 kB
Tags Source
SHA-256 checksum
How to use checksums
024aac16c00be5857e0cc332b6b1ee454500154225c4094d61db74760e17ae45
BLAKE2b-256 checksum
How to use checksums
d7cdbf5b510998ab765ae907901e88b2fec20ffbd5b82689e651eb1aa36d5fb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / newton_usd_schemas-0.6.0-py3-none-any.whl

Download URL newton_usd_schemas-0.6.0-py3-none-any.whl
Size 22.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05e027d2bd1f1b1ed07909a1efb865a24cbba3fd94716a77cc637ea93859217b
BLAKE2b-256 checksum
How to use checksums
df8de1b41c9cac77a3b8fa945a4f29311516e8b433f0e9d902b4ca872951bc3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log
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