Defining Your System as a USD Scene

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.
    Thank you! Your submission has been received!
    Oops! Something went wrong while submitting the form.