CpuArticulationView#

Fully qualified name: isaacsim::physics::newton::tensors::CpuArticulationView

class CpuArticulationView : public isaacsim::physics::newton::tensors::BaseArticulationView#

CPU articulation view. Implements getters/setters using host-side gather/scatter loops. Reusable scratch vectors (m_scratchSourceOffset, m_scratchDestinationIndex) avoid per-call heap allocation.

Public Functions

CpuArticulationView(
py::object newtonStage,
const std::vector<pxr::SdfPath> &articulationPaths,
)#

Constructs a CpuArticulationView.

Parameters:
  • newtonStage – [in] Newton stage object backing the view.

  • articulationPaths – [in] USD prim paths of the articulations.

~CpuArticulationView() override = default#
bool getDofPositions(const TensorDesc *dstTensor) const override#

Gets the DOF positions.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofVelocities(const TensorDesc *dstTensor) const override#

Gets the DOF velocities.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setDofPositions(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF positions.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofVelocities(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF velocities.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool getDofLimits(const TensorDesc *dstTensor) const override#

Gets the DOF limits.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofStiffnesses(const TensorDesc *dstTensor) const override#

Gets the DOF stiffnesses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofDampings(const TensorDesc *dstTensor) const override#

Gets the DOF dampings.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofArmatures(const TensorDesc *dstTensor) const override#

Gets the DOF armatures.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofMaxForces(const TensorDesc *dstTensor) const override#

Gets the DOF maximum forces.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofMaxVelocities(const TensorDesc *dstTensor) const override#

Gets the DOF maximum velocities.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofPositionTargets(
const TensorDesc *dstTensor,
) const override#

Gets the DOF position targets.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofVelocityTargets(
const TensorDesc *dstTensor,
) const override#

Gets the DOF velocity targets.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofActuationForces(
const TensorDesc *dstTensor,
) const override#

Gets the DOF actuation forces.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofTypes(const TensorDesc *dstTensor) const override#

Gets the DOF types.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setDofLimits(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF limits.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofStiffnesses(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF stiffnesses.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofDampings(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF dampings.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofMaxForces(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF maximum forces.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofMaxVelocities(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF maximum velocities.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofArmatures(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF armatures.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofActuationForces(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF actuation forces.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofPositionTargets(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF position targets.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofVelocityTargets(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF velocity targets.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool getRootTransforms(const TensorDesc *dstTensor) const override#

Gets the root transforms.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getRootVelocities(const TensorDesc *dstTensor) const override#

Gets the root velocities.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setRootTransforms(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the root transforms.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setRootVelocities(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the root velocities.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool getLinkTransforms(const TensorDesc *dstTensor) const override#

Gets the link transforms.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getLinkVelocities(const TensorDesc *dstTensor) const override#

Gets the link velocities.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getLinkIncomingJointForce(
const TensorDesc *dstTensor,
) const override#

Gets incoming joint forces in each child joint frame.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofProjectedJointForces(
const TensorDesc *dstTensor,
) const override#

Gets incoming joint wrenches projected onto each DOF motion direction.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getMasses(const TensorDesc *dstTensor) const override#

Gets the masses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getInvMasses(const TensorDesc *dstTensor) const override#

Gets the inverse masses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setMasses(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the masses.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool getCOMs(const TensorDesc *dstTensor) const override#

Gets the COMs.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setCOMs(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the COMs.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool getInertias(const TensorDesc *dstTensor) const override#

Gets the inertias.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getInvInertias(const TensorDesc *dstTensor) const override#

Gets the inverse inertias.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setInertias(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the inertias.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofFrictionProperties(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF friction properties.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool getDofFrictionProperties(
const TensorDesc *dstTensor,
) const override#

Gets the DOF friction properties.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool applyForcesAndTorquesAtPosition(
const TensorDesc *srcForceTensor,
const TensorDesc *srcTorqueTensor,
const TensorDesc *srcPositionTensor,
const TensorDesc *indexTensor,
bool isGlobal,
) override#

Applies the forces and torques at position.

Parameters:
  • srcForceTensor – [in] Source tensor of forces to apply.

  • srcTorqueTensor – [in] Source tensor of torques to apply.

  • srcPositionTensor – [in] Source tensor of positions at which the forces are applied.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

  • isGlobal – [in] If true, the inputs are expressed in the world frame; otherwise in the local frame.

Returns:

True on success; false otherwise.

uint32_t getCount() const override#

Returns the number of elements in the view.

Returns:

The requested value.

uint32_t getMaxLinks() const override#

Returns the maximum link count across all articulations in the view.

Returns:

The requested value.

uint32_t getMaxDofs() const override#

Returns the maximum DOF count across all articulations in the view.

Returns:

The requested value.

uint32_t getMaxShapes() const override#

Returns the maximum shape count across all elements in the view.

Returns:

The requested value.

uint32_t getMaxFixedTendons() const override#

Returns the maximum fixed-tendon count across all articulations in the view.

Returns:

The requested value.

uint32_t getMaxSpatialTendons() const override#

Returns the maximum spatial-tendon count across all articulations in the view.

Returns:

The requested value.

bool isHomogeneous() const override#

Returns whether all elements in the view share the same metatype.

Returns:

True on success; false otherwise.

const IArticulationMetatype *getSharedMetatype() const override#

Returns the metatype shared by all elements when the view is homogeneous.

Returns:

Pointer to the requested object, or nullptr if unavailable.

const IArticulationMetatype *getMetatype(
uint32_t artiIdx,
) const override#

Gets the metatype.

Parameters:

artiIdx – [in] Zero-based articulation index within the view.

Returns:

Pointer to the requested object, or nullptr if unavailable.

const char *getUsdPrimPath(uint32_t artiIdx) const override#

Gets the USD prim path.

Parameters:

artiIdx – [in] Zero-based articulation index within the view.

Returns:

Pointer to the requested null-terminated string, or nullptr if unavailable.

const char *getUsdDofPath(
uint32_t artiIdx,
uint32_t dofIdx,
) const override#

Gets the USD DOF path.

Parameters:
  • artiIdx – [in] Zero-based articulation index within the view.

  • dofIdx – [in] Zero-based DOF index within the articulation.

Returns:

Pointer to the requested null-terminated string, or nullptr if unavailable.

const char *getUsdLinkPath(
uint32_t artiIdx,
uint32_t linkIdx,
) const override#

Gets the USD link path.

Parameters:
  • artiIdx – [in] Zero-based articulation index within the view.

  • linkIdx – [in] Zero-based link index within the articulation.

Returns:

Pointer to the requested null-terminated string, or nullptr if unavailable.

bool getLinkAccelerations(const TensorDesc *dstTensor) const override#

Gets the link accelerations.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofMotions(const TensorDesc *dstTensor) const override#

Gets the DOF motions.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDriveTypes(const TensorDesc *dstTensor) const override#

Gets the drive types.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofDriveModelProperties(
const TensorDesc *dstTensor,
) const override#

Gets the DOF drive model properties.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDofFrictionCoefficients(
const TensorDesc *dstTensor,
) const override#

Gets the DOF friction coefficients.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getDisableGravities(const TensorDesc *dstTensor) const override#

Gets the disable gravities.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setDisableGravities(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the disable gravities.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDisableGravitiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the disable gravities for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool getArticulationMassCenter(
const TensorDesc *dstTensor,
bool localFrame,
) const override#

Gets the articulation mass center.

Parameters:
  • dstTensor – [out] Destination tensor that receives the requested values.

  • localFrame – [in] If true, the result is expressed in the local frame; otherwise in the world frame.

Returns:

True on success; false otherwise.

bool getArticulationCentroidalMomentum(
const TensorDesc *dstTensor,
) const override#

Gets the articulation centroidal momentum.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getJacobianShape(
uint32_t *numRows,
uint32_t *numCols,
) const override#

Computes the row and column counts of the articulation Jacobians.

Parameters:
  • numRows – [out] Receives the number of rows.

  • numCols – [out] Receives the number of columns.

Returns:

True on success; false otherwise.

bool getJacobians(const TensorDesc *dstTensor) const override#

Gets the jacobians.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getGeneralizedMassMatrixShape(
uint32_t *numRows,
uint32_t *numCols,
) const override#

Computes the row and column counts of the generalized mass matrices.

Parameters:
  • numRows – [out] Receives the number of rows.

  • numCols – [out] Receives the number of columns.

Returns:

True on success; false otherwise.

bool getGeneralizedMassMatrices(
const TensorDesc *dstTensor,
) const override#

Gets the generalized mass matrices.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getCoriolisAndCentrifugalCompensationForces(
const TensorDesc *dstTensor,
) const override#

Gets the coriolis and centrifugal compensation forces.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getGravityCompensationForces(
const TensorDesc *dstTensor,
) const override#

Gets the gravity compensation forces.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setDofDriveModelProperties(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF drive model properties.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofFrictionCoefficients(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) override#

Sets the DOF friction coefficients.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofLimitsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF limits for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofStiffnessesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF stiffnesses for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofDampingsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF dampings for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofMaxForcesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF maximum forces for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofDriveModelPropertiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF drive model properties for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofFrictionCoefficientsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF friction coefficients for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofFrictionPropertiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF friction properties for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofMaxVelocitiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF maximum velocities for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofArmaturesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF armatures for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofPositionsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF positions for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofVelocitiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF velocities for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofActuationForcesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF actuation forces for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofPositionTargetsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF position targets for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setDofVelocityTargetsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the DOF velocity targets for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setMassesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the masses for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setCOMsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the COMs for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setInertiasMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the inertias for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setRootTransformsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the root transforms for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setRootVelocitiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) override#

Sets the root velocities for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool applyForcesAndTorquesAtPositionMasked(
const TensorDesc *srcForceTensor,
const TensorDesc *srcTorqueTensor,
const TensorDesc *srcPositionTensor,
const TensorDesc *maskTensor,
bool isGlobal,
) override#

Applies the forces and torques at position for the elements selected by a boolean mask.

Parameters:
  • srcForceTensor – [in] Source tensor of forces to apply.

  • srcTorqueTensor – [in] Source tensor of torques to apply.

  • srcPositionTensor – [in] Source tensor of positions at which the forces are applied.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

  • isGlobal – [in] If true, the inputs are expressed in the world frame; otherwise in the local frame.

Returns:

True on success; false otherwise.

bool getMaterialProperties(
const TensorDesc *dstTensor,
) const override#

Gets the material properties.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getCompliantMaterialProperties(
const TensorDesc *dstTensor,
const TensorDesc *dstCombineModeTensor,
) const override#

Gets the compliant material properties.

Parameters:
  • dstTensor – [out] Destination tensor that receives the requested values.

  • dstCombineModeTensor – [out] Destination tensor that receives the material combine modes.

Returns:

True on success; false otherwise.

bool getRestOffsets(const TensorDesc *dstTensor) const override#

Gets the rest offsets.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getContactOffsets(const TensorDesc *dstTensor) const override#

Gets the contact offsets.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setMaterialProperties(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) const override#

Sets the material properties.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setCompliantMaterialProperties(
const TensorDesc *srcTensor,
const TensorDesc *srcCombineTensor,
const TensorDesc *indexTensor,
) const override#

Sets the compliant material properties.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • srcCombineTensor – [in] Source tensor of material combine modes.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setRestOffsets(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) const override#

Sets the rest offsets.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setContactOffsets(
const TensorDesc *srcTensor,
const TensorDesc *indexTensor,
) const override#

Sets the contact offsets.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setMaterialPropertiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) const override#

Sets the material properties for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setCompliantMaterialPropertiesMasked(
const TensorDesc *srcTensor,
const TensorDesc *srcCombineTensor,
const TensorDesc *maskTensor,
) const override#

Sets the compliant material properties for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • srcCombineTensor – [in] Source tensor of material combine modes.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setRestOffsetsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) const override#

Sets the rest offsets for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setContactOffsetsMasked(
const TensorDesc *srcTensor,
const TensorDesc *maskTensor,
) const override#

Sets the contact offsets for the elements selected by a boolean mask.

Parameters:
  • srcTensor – [in] Source tensor providing the values to write.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool getFixedTendonStiffnesses(
const TensorDesc *dstTensor,
) const override#

Gets the fixed tendon stiffnesses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getFixedTendonDampings(
const TensorDesc *dstTensor,
) const override#

Gets the fixed tendon dampings.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getFixedTendonLimitStiffnesses(
const TensorDesc *dstTensor,
) const override#

Gets the fixed tendon limit stiffnesses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getFixedTendonLimits(const TensorDesc *dstTensor) const override#

Gets the fixed tendon limits.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getFixedTendonfixedSpringRestLengths(
const TensorDesc *dstTensor,
) const override#

Gets the fixed tendonfixed spring rest lengths.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getFixedTendonOffsets(
const TensorDesc *dstTensor,
) const override#

Gets the fixed tendon offsets.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getSpatialTendonStiffnesses(
const TensorDesc *dstTensor,
) const override#

Gets the spatial tendon stiffnesses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getSpatialTendonDampings(
const TensorDesc *dstTensor,
) const override#

Gets the spatial tendon dampings.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getSpatialTendonLimitStiffnesses(
const TensorDesc *dstTensor,
) const override#

Gets the spatial tendon limit stiffnesses.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool getSpatialTendonOffsets(
const TensorDesc *dstTensor,
) const override#

Gets the spatial tendon offsets.

Parameters:

dstTensor – [out] Destination tensor that receives the requested values.

Returns:

True on success; false otherwise.

bool setFixedTendonProperties(
const TensorDesc *stiffnesses,
const TensorDesc *dampings,
const TensorDesc *limitStiffnesses,
const TensorDesc *limits,
const TensorDesc *restLengths,
const TensorDesc *offsets,
const TensorDesc *indexTensor,
) const override#

Sets the fixed tendon properties.

Parameters:
  • stiffnesses – [in] Tensor of tendon stiffness values.

  • dampings – [in] Tensor of tendon damping values.

  • limitStiffnesses – [in] Tensor of tendon limit stiffness values.

  • limits – [in] Tensor of tendon limit values.

  • restLengths – [in] Tensor of tendon rest-length values.

  • offsets – [in] Tensor of tendon offset values.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setSpatialTendonProperties(
const TensorDesc *stiffnesses,
const TensorDesc *dampings,
const TensorDesc *limitStiffnesses,
const TensorDesc *offsets,
const TensorDesc *indexTensor,
) const override#

Sets the spatial tendon properties.

Parameters:
  • stiffnesses – [in] Tensor of tendon stiffness values.

  • dampings – [in] Tensor of tendon damping values.

  • limitStiffnesses – [in] Tensor of tendon limit stiffness values.

  • offsets – [in] Tensor of tendon offset values.

  • indexTensor – [in] Tensor of view indices selecting which elements to write.

Returns:

True on success; false otherwise.

bool setFixedTendonPropertiesMasked(
const TensorDesc *stiffnesses,
const TensorDesc *dampings,
const TensorDesc *limitStiffnesses,
const TensorDesc *limits,
const TensorDesc *restLengths,
const TensorDesc *offsets,
const TensorDesc *maskTensor,
) const override#

Sets the fixed tendon properties for the elements selected by a boolean mask.

Parameters:
  • stiffnesses – [in] Tensor of tendon stiffness values.

  • dampings – [in] Tensor of tendon damping values.

  • limitStiffnesses – [in] Tensor of tendon limit stiffness values.

  • limits – [in] Tensor of tendon limit values.

  • restLengths – [in] Tensor of tendon rest-length values.

  • offsets – [in] Tensor of tendon offset values.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool setSpatialTendonPropertiesMasked(
const TensorDesc *stiffnesses,
const TensorDesc *dampings,
const TensorDesc *limitStiffnesses,
const TensorDesc *offsets,
const TensorDesc *maskTensor,
) const override#

Sets the spatial tendon properties for the elements selected by a boolean mask.

Parameters:
  • stiffnesses – [in] Tensor of tendon stiffness values.

  • dampings – [in] Tensor of tendon damping values.

  • limitStiffnesses – [in] Tensor of tendon limit stiffness values.

  • offsets – [in] Tensor of tendon offset values.

  • maskTensor – [in] Boolean mask tensor selecting which elements to write.

Returns:

True on success; false otherwise.

bool check() const override#

Checks whether the view and its backing data are still valid.

Returns:

True on success; false otherwise.

void release() override#

Releases the view and frees its associated resources.

Protected Functions

inline virtual int *_getDeviceIndexScratch() const#

Returns preallocated device storage for mask-to-index conversion, or null for CPU views.

void _notifyJointDofPropertiesChanged()#

Notifies the Newton model that joint DOF properties have been modified externally.

void _syncCtrlDirectActuatorGains()#

Syncs CTRL_DIRECT actuator gains from the cached stiffness/damping arrays.

void _syncCtrlDirectPositionTargets()#

Syncs CTRL_DIRECT position targets from the cached target array.

void _evalForwardKinematics()#

Runs Newton forward kinematics to propagate joint_q changes to body_q.

void _evalInverseKinematics()#

Runs Newton inverse kinematics to propagate body_q/body_qd changes back to joint_q/joint_qd.

void _updateInverseMasses()#

Recomputes inverse mass array from the forward mass array.

void _updateInverseInertias()#

Recomputes inverse inertia array from the forward inertia array.

bool _hasJointForceOutput() const#

Return whether incoming joint force data was enabled before state creation.

bool _evaluateMotionSubspaces() const#

Evaluate and cache the motion-subspace columns used to project joint wrenches.

inline const std::vector<uint32_t> &_resolveIndices(
const TensorDesc *indexTensor,
) const#

Resolves an index tensor to a list of articulation indices, writing into the pre-allocated m_scratchViewIndices member to avoid per-call allocation.

inline isaacsim::physics::newton::tensors::GpuIndexGuard _resolveGpuIndices(
const TensorDesc *indexTensor,
int *devScratch = nullptr,
) const#

Resolves the GPU indices.

Parameters:
  • indexTensor – [in] Tensor of view indices selecting which elements to write.

  • devScratch – [in] Optional device scratch buffer; allocated internally when null.

Returns:

The requested value.

void _buildDofScatterMappings(
const std::vector<uint32_t> &artiIndices,
const std::vector<int> &dofIndices,
std::vector<int> &srcOffsets,
std::vector<int> &dstIndices,
) const#

Builds the DOF scatter mappings.

Parameters:
  • artiIndices – [in] Articulation indices selected by the operation.

  • dofIndices – [in] DOF indices selected by the operation.

  • srcOffsets – [out] Receives the source offset for each scattered element.

  • dstIndices – [out] Receives the destination index for each scattered element.

void _buildLinkScatterMappings(
const std::vector<uint32_t> &artiIndices,
int elemSize,
std::vector<int> &srcOffsets,
std::vector<int> &dstIndices,
) const#

Builds the link scatter mappings.

Parameters:
  • artiIndices – [in] Articulation indices selected by the operation.

  • elemSize – [in] Number of floats per element.

  • srcOffsets – [out] Receives the source offset for each scattered element.

  • dstIndices – [out] Receives the destination index for each scattered element.

void _buildRootScatterMappings(
const std::vector<uint32_t> &artiIndices,
int elemSize,
std::vector<int> &srcOffsets,
std::vector<int> &dstIndices,
) const#

Builds the root scatter mappings.

Parameters:
  • artiIndices – [in] Articulation indices selected by the operation.

  • elemSize – [in] Number of floats per element.

  • srcOffsets – [out] Receives the source offset for each scattered element.

  • dstIndices – [out] Receives the destination index for each scattered element.

bool _checkBinding() const#

Checks that the cached Warp pointers still address the Newton stage’s current model and state.

The Newton stage rebuilds model, control and state_0 whenever it re-initializes (for example after a USD change). The view is bound to the objects it was created against; once the stage holds different ones the view is invalidated for good and has to be recreated.

Returns:

True while the view is bound to the stage’s current model and state.

bool _getCompensationForces(
const TensorDesc *dstTensor,
bool gravity,
) const#

Computes generalized compensation forces, including the floating-root wrench when present.

void _cacheWarpPointers()#

Extracts and caches raw float*/int* pointers from all relevant Warp arrays in the Newton model and state. Called lazily before the first getter/setter access.

Protected Attributes

py::object m_newtonStage#

Newton stage object backing the view.

mutable py::object m_model#

Newton model object the view is bound to; released once invalidated.

mutable py::object m_boundState#

Newton state_0 object the view is bound to; released once invalidated.

uint32_t m_count#

Number of articulations in the view.

uint32_t m_maxLinks#

Maximum link count across all articulations.

uint32_t m_maxDofs#

Maximum DOF count across all articulations.

uint32_t m_maxShapes#

Maximum shape count across all elements in the view.

std::vector<int> m_articulationIndices#

Root body index for each articulation.

py::object m_articulationIndicesWarp#

warp version of m_articulationIndices

std::vector<int> m_dofPosIndices#

[count * maxDofs] → model.joint_q index, -1 = padding.

std::vector<int> m_dofVelIndices#

[count * maxDofs] → model.joint_qd index, -1 = padding.

std::vector<int> m_dofAxisIndices#

[count * maxDofs] → model.joint_axis index, -1 = padding.

std::vector<int> m_dofBodyIndices#

[count * maxDofs] → child body index, -1 = padding.

std::vector<int> m_rootBodyIndices#

[count] → model body index for each root body.

std::vector<int> m_rootJointIndices#

[count] → model joint index for each root joint.

std::vector<int> m_rootJointQStartIndices#

[count] → joint_q_start offset for root joint.

std::vector<int> m_fixedRootJointMapping#

[count] → rootJointIdx for fixed roots, -1 for free.

std::vector<std::vector<int>> m_linkIndicesPerArticulation#

Model body indices for each link, grouped per articulation.

std::vector<int> m_linkFlatIndices#

[count * maxLinks] → model body index, -1 = padding.

std::vector<int> m_linkJointFlatIndices#

[count * maxLinks] → inbound model joint index, -1 = root/padding.

std::vector<std::string> m_articulationPrimPaths#

USD prim path of each articulation.

std::vector<std::vector<std::string>> m_articulationPaths#

USD prim paths associated with each articulation.

py::object m_articulationMask#

warp array that is used to mask only the selected articulations for newton computation

std::vector<ArticulationMetatype*> m_metatypes#

Per-element articulation metatype objects owned by the view.

std::vector<uint8_t> m_hostDofTypes#

Host-side cache of the DOF type for each DOF.

std::vector<int> m_rootJointTypes#

[count] → joint type for root joint of each articulation.

std::vector<float> m_cachedComOrientation#

[count * maxLinks * 4] cached COM quaternion (xyzw), write-through from setCOMs.

std::vector<std::vector<std::string>> m_dofPaths#

[count][maxDofs] → USD prim path for each DOF.

mutable std::vector<uint32_t> m_scratchViewIndices#

Scratch buffer reused to resolve view indices without per-call allocation.

std::vector<uint32_t> m_scratchMaskIndices#

Scratch buffer reused to resolve masks to view indices.

mutable bool m_cacheValid = false#

True after _cacheWarpPointers() succeeds, until the view is invalidated.

int m_modelDeviceOrdinal = -1#

Device of the Newton model’s Warp arrays.

std::string m_modelDeviceString#

Canonical Warp device string for the Newton model.

size_t m_totalBodyCount = 0#

Total body count in the Newton model.

mutable float *m_cachedJointQ = nullptr#

Cached pointer to the joint q data.

mutable float *m_cachedJointQd = nullptr#

Cached pointer to the joint qd data.

mutable float *m_cachedBodyQ = nullptr#

Cached pointer to the body q data.

mutable float *m_cachedBodyQd = nullptr#

Cached pointer to the body qd data.

mutable float *m_cachedBodyF = nullptr#

Cached pointer to the body f data.

mutable float *m_cachedBodyParentForce = nullptr#

Nullable pointer to optional incoming joint wrenches.

mutable float *m_cachedMotionSubspaces = nullptr#

Cached motion-subspace columns indexed by model DOF.

float *m_cachedJointTargetKe = nullptr#

Cached pointer to the joint target ke data.

float *m_cachedJointTargetKd = nullptr#

Cached pointer to the joint target kd data.

float *m_cachedJointEffortLimit = nullptr#

Cached pointer to the joint effort limit data.

float *m_cachedJointVelocityLimit = nullptr#

Cached pointer to the joint velocity limit data.

float *m_cachedJointArmature = nullptr#

Cached pointer to the joint armature data.

float *m_cachedJointLimitLower = nullptr#

Cached pointer to the joint limit lower data.

float *m_cachedJointLimitUpper = nullptr#

Cached pointer to the joint limit upper data.

mutable float *m_cachedCtrlTargetPos = nullptr#

Cached pointer to the ctrl target pos data.

mutable float *m_cachedCtrlTargetVel = nullptr#

Cached pointer to the ctrl target vel data.

mutable float *m_cachedJointTorques = nullptr#

Cached pointer to the joint torques data.

float *m_cachedBodyMass = nullptr#

Cached pointer to the body mass data.

float *m_cachedBodyInverseMass = nullptr#

Cached pointer to the body inverse mass data.

float *m_cachedBodyInertia = nullptr#

Cached pointer to the body inertia data.

float *m_cachedBodyInverseInertia = nullptr#

Cached pointer to the body inverse inertia data.

float *m_cachedBodyCenterOfMass = nullptr#

Cached pointer to the body center of mass data.

float *m_cachedJointXp = nullptr#

model.joint_X_p — parent transform per joint (7 floats each).

float *m_cachedJointXc = nullptr#

model.joint_X_c — child transform per joint (7 floats each).

float *m_cachedJointFriction = nullptr#

model.joint_friction — dry friction effort per joint.

mutable py::object m_compensationBuffer = py::none()#

Owns inverse-dynamics scratch state and output arrays.

mutable py::object m_jacobianBuffer = py::none()#

python buffers, cached for performance

mutable py::object m_jacobianWarp = py::none()#

Warp array that exposes the cached Jacobian buffer.

mutable py::object m_jacobianTensor = py::none()#

Tensor wrapper that exposes the cached Jacobian buffer.

mutable py::object m_massMatricesBuffer = py::none()#

Python object that owns the cached mass-matrix buffer.

mutable py::object m_massMatricesWarp = py::none()#

Warp array that exposes the cached mass-matrix buffer.

mutable py::object m_massMatricesTensor = py::none()#

Tensor wrapper that exposes the cached mass-matrix buffer.