Defining Your System as a USD Scene

Before you can simulate anything, you need to define the system you're simulating. In NVIDIA Omniverse, that system takes shape as a USD stage—a powerful, layered scene graph that holds your geometry, physics settings, and custom attributes.

defining-your-system-as-a-usd-scene
Last updated:
June 4, 2025

Before any simulation can run, you need a digital representation of your system. In NVIDIA Omniverse, that representation is a USD stage—a hierarchical file format that stores geometry, physics properties, and custom metadata. This post explains how to convert your CAD data into USD, set up physics attributes, and attach user-defined tags so that Omniverse understands your system’s state at every step.

CAD → USD: The Essential First Step

Unlike URDF importers, most CAD→USD tools focus on “geometry + basic physics properties” and do not automatically compute a full inertia tensor unless explicitly instructed or unless they have a built-in physics step. In practice:

  • Geometry Only
    • Tools like Champion (our CAD→USD pipeline) or Pixyz primarily convert geometry (meshes, subassemblies) into USD prims. They preserve the assembly tree (e.g., /RobotArm/Elbow/Wrist) and often auto-assign a default mass or density, but they do not by default calculate the full 3×3 inertia tensor for you.
  • Density vs. Inertia
    • You usually assign a physxRigidBodyAPI with either:
      • A fixed mass (e.g., 2.5 kg) plus let Omniverse compute inertia from that mass and geometry at runtime, or
      • A density value (e.g., 7800 kg/m³ for steel) and let PhysX compute both mass and inertia based on the mesh’s volume.
    • In either case, Omniverse’s PhysX integration will calculate the principal moments of inertia (Iₓₓ, Iᵧᵧ, I𝓏𝓏) from the convex approximation of your mesh. However, this only happens once you load the USD stage into an Omniverse physics context—not during the CAD→USD conversion step.
  • Manual Override
    • If you need to supply a custom inertia tensor (e.g., because your CAD part has nonuniform density, or you want “mass at pivot” to match a physical prototype), you can explicitly set the inertiaTensor attribute on the rigid-body prim:
  • def Xform "MyLink"
    {
        float mass = 2.5
        vec3f inertiaTensor = (0.350, 0.450, 0.300)     # principal Iₓₓ, Iᵧᵧ, I𝓏𝓏 in kg·m²
        ...
    }
    
  • Once you supply an explicit tensor, PhysX/Omniverse will not recompute its own inertia; it will trust your values.
  • Why Converters Don’t Auto-Compute

    • CAD formats (STEP, IGES, Parasolid) often lack a consistent density field—they export only geometry and perhaps a “material name” (e.g., “aluminum”), but not an actual numeric density.
    • Converters typically don’t guess density. They leave it to you (the engineer) to either:
      1. Assign a uniform density after import, or
      2. Use a downstream physics tool (e.g., Omniverse PhysX) to compute inertia from assigned mass/density.

    Available Now

    Book a demo and get early access. Free trial!

    Email Address:
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.
    Email Address:
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.
    Join the Champion3D Insider List
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.
    What’s Your Biggest Outdoor Robotics Challenge?
    Which factor causes you the most pain during mobile robot field testing?
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.
    10 Fun Facts About Git That You Didn't Know
    Welcome to a deep dive into Git, a tool that’s critical not just for software development but also for 3D artists and game developers.
    May 7, 2024
    Read more
    Why Git is the Artist's Best Friend
    How Version Control Transforms the Artist's Workflow and Collaboration Experience.
    April 26, 2024
    Read more
    How to Tame Your Data Tsunami!
    Efficient Data Management and Versioning for Large-Scale Projects: An Introduction to LakeFS.
    April 26, 2024
    Read more
    Branching for Dummies
    A Simple Guide to Safe Experimentation in Project Development.
    April 26, 2024
    Read more