Purpose
Use this exact feature skill when the selected profile, validation report, or user request names FET_003_NEWTON. It repairs or stages rigid body physics (newton) conformance without drifting into another runtime contract.
Default to FET_003_NEWTON@0.1.0 when the user asks for this feature without a version. Use an older integer version only when the profile, validation report, or user explicitly pins it. If the report names a different FET_###_RUNTIME feature, switch to that feature's matching skill before editing.
Source of Truth
Before changing an asset or package, read:
nv_core/tiers/simready_foundation_tier_core/simready/foundation/tier_core/features/FET_003_NEWTON-0.1.0.jsonnv_core/tiers/simready_foundation_tier_core/simready/foundation/tier_core/features/FET_003_NEWTON.md
Treat the selected JSON manifest as authoritative for dependencies and requirement IDs. Use the feature markdown for human-readable contract details, requirement links, samples, benchmarks, and adapters.
Feature Versions
| Version | Dependencies | Requirements |
|---|---|---|
0.1.0 |
None | RB.COL.001, RB.COL.002, RB.COL.003, RB.COL.004, RB.001, RB.003, RB.005, RB.007, RB.009, RB.010, NEWTON.COL.001, NEWTON.COL.002, NEWTON.MAS.001, NEWTON.MAT.001 |
Feature Adapter
When the input already conforms to the neutral base feature, prefer the deterministic feature adapter to author the runtime-specific data first (via the workspace upgrade command; see nv_core/sr_specs/docs/guides/feature_adapters/feature_adapters.md), then repair only the residual requirements below.
| Adapter module | Adapter | Transition | Authors |
|---|---|---|---|
nv_core/cip_specs/asset_handler_modules/neutral_to_newton |
rigid_body_neutral_to_prop_newton |
FET_003_STANDARD@0.1.0 -> FET_003_NEWTON@0.1.0 |
Mesh extents; NewtonCollisionAPI + NewtonMeshCollisionAPI on existing colliders; newton:contactGap = 0; NewtonMaterialAPI + default friction tuning on bound physics materials. Satisfies NEWTON.COL.001/NEWTON.COL.002/NEWTON.MAT.001. |
- The adapter runs on a staged output stage and never creates geometry; it only annotates existing colliders.
- It authors
NewtonMeshCollisionAPI(notNewtonSDFCollisionAPI). If the collider needs SDF-backed collision, or the baseRB.*rigid-body data is missing, repair that manually per the Workflow below. Strict Newton isolation: do not authorMjc*/Physx*data orphysics:approximation = "sdf".
Workflow
- Confirm the input exists and identify the exact selected feature/version from the profile TOML, validation report, or user request.
- Load the selected
FET_003_NEWTONmanifest and the feature markdown before editing. - Load requirement docs linked from the feature markdown for every reported failing requirement.
- Create or use a staged output location unless the user explicitly asks for in-place edits.
- Repair only the requirements listed by the selected
FET_003_NEWTONmanifest and its dependencies. - Rerun the same profile gate or the narrowest available feature/capability validation gate. If runtime evidence is required and unavailable, report that limitation instead of claiming a pass.
- Summarize the selected
FET_003_NEWTONversion, changed files, validation evidence, and the first remaining blocker or next exact feature gate.
Feature Guidance
NewtonCollisionAPIcarries the shared contact tuning:newton:contactMargin(default0, outward surface inflation) andnewton:contactGap(default-inf= engine default; the samples author0). Both must be non-negative when authored.NewtonMeshCollisionAPIis the ordinary mesh path (it inheritsNewtonCollisionAPI). Newton reads the inheritedphysics:approximation; keep it at the intended value (convexHull,convexDecomposition, ...).newton:maxHullVertices(default-1= exact hull, minimum-1) only matters whenphysics:approximation = "convexHull".NewtonSDFCollisionAPIis the SDF/hydroelastic path. It is mutually exclusive withNewtonMeshCollisionAPIon the same prim. When SDF tuning is authored, keep contact distances/padding non-negative,newton:sdfMaxResolutiona positive multiple of 8,newton:sdfTextureFormatone ofuint8/uint16/float32, andnewton:sdfNarrowBandInner < newton:sdfNarrowBandOuter. Do not guess SDF tuning values when source data or policy is missing.- Hydroelastic contact (
newton:hydroelasticEnabled, bool;newton:hydroelasticStiffness, positive) is Newton-only (no PhysX equivalent to port).newton:hydroelasticStiffnessalone does not enable it. Whennewton:hydroelasticEnabled = true, author an SDF source (newton:sdfMaxResolutionornewton:sdfTargetVoxelSize) on the same prim — Newton requires one at parse time unless the mesh carries an attachedmesh.sdf(a missing source is a warning, not a hard failure). NewtonMassAPI(NEWTON.MAS.001) is optional and applies on anXformable(rigid body or collisionGprim), extendingPhysicsMassAPI. Author it only to override neutral mass resolution:newton:inertiamust be empty (no opinion) or exactly 6 finite elements[Ixx, Iyy, Izz, Ixy, Ixz, Iyz]with non-negative diagonal;newton:massModelissolidorshell;newton:shellThickness(default-inf= solver chooses) must be finite and> 0when authored, and only matters under theshellmodel. Do not invent inertia values — derive them from source data or leave the attribute empty.NewtonMaterialAPI(NEWTON.MAT.001) applies on theUsdShade.Materialbound to the collider viamaterial:binding:physics, extendingPhysicsMaterialAPI. Aligned with theUsdPhysicsMaterialAPIconvention (PMT.001), validation checks placement only: the schema must sit on aUsdShade.Materialthat also carriesPhysicsMaterialAPI. The Newton tuning attributes (newton:torsionalFrictiondefault0.005,newton:rollingFrictiondefault0.0001, and thenewton:contact*attributes, default-inf= engine default) are trusted, not value-checked — author them as needed, or leave the contact attributes at the-infsentinel (equivalent to omitting them).- Strict Newton isolation (RV.011): do not author
Mjc*/Physx*schemas or attributes, and do not setphysics:approximation = "sdf"(useNewtonSDFCollisionAPIinstead).
Samples
sample_content/common_assets/props_general/obs_orange_a02/runnables/physics/newton.usd- single-mesh prop collider withNewtonMeshCollisionAPI,physics:approximation = "convexHull",newton:maxHullVertices = -1, andnewton:contactGap = 0; and the bound physics material withNewtonMaterialAPIauthoring all six Newton material attributes at their defaults.
Report Fields
| Field | Meaning |
|---|---|
feature |
Exact feature ID and version, for example FET_003_NEWTON@0.1.0. |
input |
Source asset, package root, or package definition inspected. |
output |
Staged output path, or in-place only when explicitly requested. |
requirements_repaired |
Requirement IDs repaired in this pass. |
validation |
Command or inspection used to verify this exact feature. |
status |
passed, failed, skipped, or blocked. |
next_step |
The next exact feature skill or user/runtime evidence needed. |