isaaclab_newton.sim.schemas#
Sub-module containing Newton schema configuration exports.
Newton-targeted schema configuration classes. Each cfg below extends a
solver-common base in isaaclab.sim.schemas with Newton-namespaced
attributes (newton:*) or solver-specific attributes (mjc:* for
Newton’s MuJoCo solver). MuJoCo cfgs subclass their Newton counterpart
because MuJoCo is one of Newton’s solver options.
See Schema Configuration Classes for the design and when to use each class.
Newton-targeted (family roots)
Newton-specific properties to apply to a deformable body. |
|
Newton-targeted rigid body properties. |
|
Newton-targeted joint drive properties. |
|
Newton-specific collision properties. |
|
Newton-specific mesh collision properties. |
|
Newton-specific rigid body material properties. |
|
Newton-specific articulation root properties. |
MuJoCo-solver-specific
MuJoCo-solver-specific rigid body properties. |
|
MuJoCo-solver-specific joint drive properties. |
Deformable Body#
- class isaaclab_newton.sim.schemas.NewtonDeformableBodyPropertiesCfg[source]#
Bases:
DeformableBodyPropertiesBaseCfgNewton-specific properties to apply to a deformable body.
Currently empty. Backend-specific fields can be added here when Newton exposes a registered deformable body property schema.
The
newton:namespace is reserved here so future Newton-native deformable-body fields can be added without an API change.See
modify_deformable_body_properties()for more information.
Schema define and modify functions remain unified in
isaaclab.sim.schemas.
Rigid Body#
- class isaaclab_newton.sim.schemas.NewtonRigidBodyPropertiesCfg[source]#
Bases:
RigidBodyBaseCfgNewton-targeted rigid body properties.
Base class for cfgs that author rigid-body attributes consumed by any of Newton’s solver options (MuJoCo, XPBD, Featherstone, Semi-implicit, Kamino). Newton has no native
newton:*rigid-body attributes today, so this class is currently empty — solver-specific subclasses (e.g.,MujocoRigidBodyPropertiesCfg) carry the actual fields.The
newton:namespace is reserved here so future Newton-native rigid-body fields can be added without an API change.See
modify_rigid_body_properties()for more information.Attributes:
Whether to enable or disable the rigid body.
Determines whether the body is kinematic or not.
Disable gravity for the body.
- kinematic_enabled: bool | None#
Determines whether the body is kinematic or not.
A kinematic body is a body that is moved through animated poses or through user defined poses. The simulation still derives velocities for the kinematic body based on the external motion.
For more information on kinematic bodies, please refer to the documentation.
- disable_gravity: bool | None#
Disable gravity for the body.
PhysX honors this per-body via
physxRigidBody:disableGravity: setting True excludes the body from world gravity integration.Newton currently consumes the same USD attribute at the scene level – Newton’s importer reads
physxRigidBody:disableGravityon the scene prim and uses it to drive the scene-widebuilder.gravityflag (import_usd.py:1212). Per-body intent is therefore partially honored on Newton: whichever rigid body has the attribute authored ends up controlling scene-wide gravity, and other bodies cannot be selectively excluded.The field is placed on the base because the user-facing intent (per-body gravity exclusion for markers, sensors, kinematic targets) is universal physics and PhysX honors it fully. Closing the Newton gap is a kernel-level fix (introduce
Model.body_disable_gravityboolean array consumed by the integrator) that does not require a cfg-API change.
- class isaaclab_newton.sim.schemas.MujocoRigidBodyPropertiesCfg[source]#
Bases:
NewtonRigidBodyPropertiesCfgMuJoCo-solver-specific rigid body properties.
Extends
NewtonRigidBodyPropertiesCfgwith body-level gravity compensation, consumed only when running Newton’s MuJoCo solver.See
modify_rigid_body_properties()for more information.Note
If the values are None, they are not modified.
Attributes:
Gravity compensation scale for the body [dimensionless].
Whether to enable or disable the rigid body.
Determines whether the body is kinematic or not.
Disable gravity for the body.
- gravcomp: float | None#
Gravity compensation scale for the body [dimensionless].
0.0= no compensation;1.0= full compensation. Written tomjc:gravcompon the rigid-body prim. Body-level gravcomp must be set for joint-level actuatorgravcomp to have any effect.
- kinematic_enabled: bool | None#
Determines whether the body is kinematic or not.
A kinematic body is a body that is moved through animated poses or through user defined poses. The simulation still derives velocities for the kinematic body based on the external motion.
For more information on kinematic bodies, please refer to the documentation.
- disable_gravity: bool | None#
Disable gravity for the body.
PhysX honors this per-body via
physxRigidBody:disableGravity: setting True excludes the body from world gravity integration.Newton currently consumes the same USD attribute at the scene level – Newton’s importer reads
physxRigidBody:disableGravityon the scene prim and uses it to drive the scene-widebuilder.gravityflag (import_usd.py:1212). Per-body intent is therefore partially honored on Newton: whichever rigid body has the attribute authored ends up controlling scene-wide gravity, and other bodies cannot be selectively excluded.The field is placed on the base because the user-facing intent (per-body gravity exclusion for markers, sensors, kinematic targets) is universal physics and PhysX honors it fully. Closing the Newton gap is a kernel-level fix (introduce
Model.body_disable_gravityboolean array consumed by the integrator) that does not require a cfg-API change.
Joint Drive#
- class isaaclab_newton.sim.schemas.NewtonJointDrivePropertiesCfg[source]#
Bases:
JointDriveBaseCfgNewton-targeted joint drive properties.
Base class for cfgs that author joint-drive attributes consumed by any of Newton’s solver options. Newton has no native
newton:*joint-drive attributes today, so this class is currently empty — solver-specific subclasses (e.g.,MujocoJointDrivePropertiesCfg) carry the actual fields.The
newton:namespace is reserved here so future Newton-native joint-drive fields can be added without an API change.See
modify_joint_drive_properties()for more information.Attributes:
Joint drive type to apply.
Maximum force/torque that can be applied to the joint [N for linear joints, N-m for angular joints].
Deprecated alias for
max_force.Stiffness of the joint drive.
Damping of the joint drive.
If True, ensure every joint has a non-zero drive so that physics backends (e.g. Newton) create proper actuators for it.
Maximum velocity of the joint [m/s for linear joints, rad/s for angular joints].
Deprecated alias for
max_joint_velocity.- drive_type: Literal['force', 'acceleration'] | None#
Joint drive type to apply.
If the drive type is “force”, then the joint is driven by a force. If the drive type is “acceleration”, then the joint is driven by an acceleration (usually used for kinematic joints).
- max_force: float | None#
Maximum force/torque that can be applied to the joint [N for linear joints, N-m for angular joints].
Writes
drive:<linear|angular>:physics:maxForceviaUsdPhysics.DriveAPI.
- stiffness: float | None#
Stiffness of the joint drive.
The unit depends on the joint model:
For linear joints, the unit is kg-m/s^2 (N/m).
For angular joints, the unit is kg-m^2/s^2/rad (N-m/rad).
- damping: float | None#
Damping of the joint drive.
The unit depends on the joint model:
For linear joints, the unit is kg-m/s (N-s/m).
For angular joints, the unit is kg-m^2/s/rad (N-m-s/rad).
- ensure_drives_exist: bool#
If True, ensure every joint has a non-zero drive so that physics backends (e.g. Newton) create proper actuators for it.
When a USD asset defines
PhysicsDriveAPIwithstiffness=0anddamping=0, some backends treat the joint as passive (no PD control). Enabling this flag writes a minimal stiffness (1e-3) to any drive whose stiffness and damping are both zero, guaranteeing that the backend recognises the drive as active. The actual gains are expected to be overridden later by the actuator model.
- max_joint_velocity: float | None#
Maximum velocity of the joint [m/s for linear joints, rad/s for angular joints].
Notes
Today this writes
physxJoint:maxJointVelocity(a PhysX add-on schema attribute). Newton’s USD importer consumes the same attribute via its PhysX-bridge resolver and populatesModel.joint_velocity_limit; the PhysX engine consumes it natively. The Kamino solver honors the limit at the simulation step. The XPBD, Featherstone, and Semi-implicit Newton solvers import the value but do not consume it in their kernels; the MuJoCo (MJC) solver explicitly drops it. When Newton shipsnewton:maxJointVelocityas a registered applied API, the writer namespace will switch transparently and this docstring caveat will be removed.
- max_velocity: float | None#
Deprecated alias for
max_joint_velocity.Deprecated since version 4.6.25: Use
max_joint_velocityinstead. The cfg field is renamed so its snake_case name maps identity-style to the USD camelCase attribute (physxJoint:maxJointVelocity). The alias is forwarded tomax_joint_velocityin__post_init__()and will be removed in 4.0.
- class isaaclab_newton.sim.schemas.MujocoJointDrivePropertiesCfg[source]#
Bases:
NewtonJointDrivePropertiesCfgMuJoCo-solver-specific joint drive properties.
Extends
NewtonJointDrivePropertiesCfgwith joint-level gravity compensation routing, consumed only when running Newton’s MuJoCo solver.See
modify_joint_drive_properties()for more information.Note
If the values are None, they are not modified.
Attributes:
Route gravity compensation forces through the actuator channel.
Joint drive type to apply.
Maximum force/torque that can be applied to the joint [N for linear joints, N-m for angular joints].
Deprecated alias for
max_force.Stiffness of the joint drive.
Damping of the joint drive.
If True, ensure every joint has a non-zero drive so that physics backends (e.g. Newton) create proper actuators for it.
Maximum velocity of the joint [m/s for linear joints, rad/s for angular joints].
Deprecated alias for
max_joint_velocity.- actuatorgravcomp: bool | None#
Route gravity compensation forces through the actuator channel.
When
True, compensation forces go toqfrc_actuator(subject to force limits). Requires body-levelMujocoRigidBodyPropertiesCfg.gravcomp. Written tomjc:actuatorgravcompviaMjcJointAPI.
- drive_type: Literal['force', 'acceleration'] | None#
Joint drive type to apply.
If the drive type is “force”, then the joint is driven by a force. If the drive type is “acceleration”, then the joint is driven by an acceleration (usually used for kinematic joints).
- max_force: float | None#
Maximum force/torque that can be applied to the joint [N for linear joints, N-m for angular joints].
Writes
drive:<linear|angular>:physics:maxForceviaUsdPhysics.DriveAPI.
- stiffness: float | None#
Stiffness of the joint drive.
The unit depends on the joint model:
For linear joints, the unit is kg-m/s^2 (N/m).
For angular joints, the unit is kg-m^2/s^2/rad (N-m/rad).
- damping: float | None#
Damping of the joint drive.
The unit depends on the joint model:
For linear joints, the unit is kg-m/s (N-s/m).
For angular joints, the unit is kg-m^2/s/rad (N-m-s/rad).
- ensure_drives_exist: bool#
If True, ensure every joint has a non-zero drive so that physics backends (e.g. Newton) create proper actuators for it.
When a USD asset defines
PhysicsDriveAPIwithstiffness=0anddamping=0, some backends treat the joint as passive (no PD control). Enabling this flag writes a minimal stiffness (1e-3) to any drive whose stiffness and damping are both zero, guaranteeing that the backend recognises the drive as active. The actual gains are expected to be overridden later by the actuator model.
- max_joint_velocity: float | None#
Maximum velocity of the joint [m/s for linear joints, rad/s for angular joints].
Notes
Today this writes
physxJoint:maxJointVelocity(a PhysX add-on schema attribute). Newton’s USD importer consumes the same attribute via its PhysX-bridge resolver and populatesModel.joint_velocity_limit; the PhysX engine consumes it natively. The Kamino solver honors the limit at the simulation step. The XPBD, Featherstone, and Semi-implicit Newton solvers import the value but do not consume it in their kernels; the MuJoCo (MJC) solver explicitly drops it. When Newton shipsnewton:maxJointVelocityas a registered applied API, the writer namespace will switch transparently and this docstring caveat will be removed.
- max_velocity: float | None#
Deprecated alias for
max_joint_velocity.Deprecated since version 4.6.25: Use
max_joint_velocityinstead. The cfg field is renamed so its snake_case name maps identity-style to the USD camelCase attribute (physxJoint:maxJointVelocity). The alias is forwarded tomax_joint_velocityin__post_init__()and will be removed in 4.0.
Collision#
- class isaaclab_newton.sim.schemas.NewtonCollisionPropertiesCfg[source]#
Bases:
CollisionBaseCfgNewton-specific collision properties.
Extends
CollisionBaseCfgwith Newton-native contact geometry attributes.See
modify_collision_properties()for more information.Note
If the values are None, they are not modified.
Attributes:
Outward inflation of the collision surface [m].
Additional contact detection gap [m].
Whether to enable or disable collisions.
Contact offset for the collision shape [m].
Rest offset for the collision shape [m].
- contact_margin: float | None#
Outward inflation of the collision surface [m].
Extends the effective collision surface outward. Sum of both bodies’ margins is used for collision detection. Essential for thin shells and cloth. Written to
newton:contactMarginviaNewtonCollisionAPI. Range: [0, inf).
- contact_gap: float | None#
Additional contact detection gap [m].
AABBs are expanded by this value; contacts detected earlier to avoid tunneling. Written to
newton:contactGapviaNewtonCollisionAPI. Set to-infto use Newton’s builder default. Range: [0, inf).
- collision_enabled: bool | None#
Whether to enable or disable collisions.
Writes
physics:collisionEnabledviaUsdPhysics.CollisionAPI.
- contact_offset: float | None#
Contact offset for the collision shape [m].
The collision detector generates contact points as soon as two shapes get closer than the sum of their contact offsets. This quantity should be non-negative which means that contact generation can potentially start before the shapes actually penetrate.
Writes
physxCollision:contactOffset. Newton’s USD importer consumes the same attribute via its PhysX-bridge resolver.
- rest_offset: float | None#
Rest offset for the collision shape [m].
The rest offset quantifies how close a shape gets to others at rest, At rest, the distance between two vertically stacked objects is the sum of their rest offsets. If a pair of shapes have a positive rest offset, the shapes will be separated at rest by an air gap.
Writes
physxCollision:restOffset. Newton’s USD importer consumes the same attribute via its PhysX-bridge resolver.
- class isaaclab_newton.sim.schemas.NewtonMeshCollisionPropertiesCfg[source]#
Bases:
NewtonCollisionPropertiesCfg,MeshCollisionBaseCfgNewton-specific mesh collision properties.
Extends
NewtonCollisionPropertiesCfgwith convex-hull vertex limit.See
modify_mesh_collision_properties()for more information.Note
If the values are None, they are not modified.
Attributes:
Maximum vertices in the convex hull approximation [dimensionless].
"none".
Whether to enable or disable collisions.
Contact offset for the collision shape [m].
Rest offset for the collision shape [m].
Outward inflation of the collision surface [m].
Additional contact detection gap [m].
- max_hull_vertices: int | None#
Maximum vertices in the convex hull approximation [dimensionless].
Only relevant when
physics:approximation = "convexHull". Written tonewton:maxHullVerticesviaNewtonMeshCollisionAPI. Set to-1to use as many vertices as needed for a perfect hull.
- mesh_approximation_name: str#
“none”.
Writes
physics:approximationviaUsdPhysics.MeshCollisionAPI. Refer toschemas.MESH_APPROXIMATION_TOKENSfor available options.- Type:
Name of mesh collision approximation method. Default
- collision_enabled: bool | None#
Whether to enable or disable collisions.
Writes
physics:collisionEnabledviaUsdPhysics.CollisionAPI.
- contact_offset: float | None#
Contact offset for the collision shape [m].
The collision detector generates contact points as soon as two shapes get closer than the sum of their contact offsets. This quantity should be non-negative which means that contact generation can potentially start before the shapes actually penetrate.
Writes
physxCollision:contactOffset. Newton’s USD importer consumes the same attribute via its PhysX-bridge resolver.
- rest_offset: float | None#
Rest offset for the collision shape [m].
The rest offset quantifies how close a shape gets to others at rest, At rest, the distance between two vertically stacked objects is the sum of their rest offsets. If a pair of shapes have a positive rest offset, the shapes will be separated at rest by an air gap.
Writes
physxCollision:restOffset. Newton’s USD importer consumes the same attribute via its PhysX-bridge resolver.
Material#
- class isaaclab_newton.sim.schemas.NewtonMaterialPropertiesCfg[source]#
Bases:
RigidBodyMaterialBaseCfgNewton-specific rigid body material properties.
Extends
RigidBodyMaterialBaseCfgwith Newton-native friction attributes.See
spawn_rigid_body_material()for more information.Note
If the values are None, they are not modified.
Attributes:
Torsional friction coefficient (resistance to spinning at a contact point) [dimensionless].
Function to use for creating the material.
The static friction coefficient.
The dynamic friction coefficient.
The restitution coefficient.
Rolling friction coefficient (resistance to rolling motion) [dimensionless].
Articulation Root#
- class isaaclab_newton.sim.schemas.NewtonArticulationRootPropertiesCfg[source]#
Bases:
ArticulationRootBaseCfgNewton-specific articulation root properties.
Extends
ArticulationRootBaseCfgwith Newton-native self-collision control.See
modify_articulation_root_properties()for more information.Note
If the values are None, they are not modified.
Attributes:
Whether to enable or disable the articulation.
Whether to fix the root link of the articulation.
Whether self-collisions between bodies in this articulation are enabled.
- articulation_enabled: bool | None#
Whether to enable or disable the articulation.
PhysX honors this per-articulation at sim time via
physxArticulation:articulationEnabled: setting False makes PhysX skip the articulation in its solver passes.On Newton, the field is read by the IsaacLab Newton wrapper at spawn time (
isaaclab_newton/assets/rigid_object/rigid_object.py:1035) as a guard against accidentally spawning aRigidObjectover a prim that still hasArticulationRootAPIapplied; setting False suppresses the guard error. The Newton solver itself does not consult the flag at sim time.Placed on the solver-common class because the user-facing intent is universal and both PhysX (sim-time) and the IL Newton wrapper (spawn-time) honor it.
- fix_root_link: bool | None#
Whether to fix the root link of the articulation.
If set to None, the root link is not modified.
If the articulation already has a fixed root link, this flag will enable or disable the fixed joint.
If the articulation does not have a fixed root link, this flag will create a fixed joint between the world frame and the root link. The joint is created with the name “FixedJoint” under the articulation prim.
Note
This is a non-USD schema property. It is handled by the
modify_articulation_root_properties()function.