Visualize Spatial Tendon

Note: For any Isaac Lab topics, please submit your topic to its GitHub repo ( GitHub - isaac-sim/IsaacLab: Unified framework for robot learning built on NVIDIA Isaac Sim ) following the instructions provided on Isaac Lab’s Contributing Guidelines ( Contribution Guidelines — Isaac Lab Documentation ).

Please provide all relevant details below before submitting your post. This will help the community provide more accurate and timely assistance. After submitting, you can check the appropriate boxes. Remember, you can always edit your post later to include additional information if needed.

Isaac Sim Version

5.1.0
☑ 5.0.0
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 24.04
☑ Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: NVIDIA RTX A4500
  • Driver Version: 535.183.06

Topic Description

Cannot Visualize Spatial Tendon in Isaac Sim and Need to Measure Tension in Isaac Lab

Detailed Description

I have implemented a Spatial Tendon on a bipedal robot built in Isaac Sim.

While it appears the tension is being applied, I cannot visualize the tendon itself in the simulation, which makes it impossible to observe its behavior.

I have two main questions:

  1. Is there a way to visualize the Spatial Tendon within the Isaac Sim environment?

  2. Is it possible to measure and record the tension acting on this Spatial Tendon during training in Isaac Lab?

I attempted to use visualization code through the Script Editor but was unsuccessful.

Please let me know if there are any issues with the description itself.

Screenshots or Videos

Additional Information

What I’ve Tried

Related Issues

Additional Context

Hi, There is currently no built-in scene level “wire/cable” rendering for PhysX Spatial Tendons in Isaac Sim, and tension must be inferred/recorded through physics properties and sensors rather than a dedicated tendon-force API.

Visualizing the spatial tendon

Isaac Sim’s PhysX tendons are constraint objects (PhysxTendon / PhysxTendonAxisRoot/Leaf/Attachment prims) and do not automatically draw a visible cable along the attachment points in the viewport. To visualize them, you have to create your own debug geometry (lines/spheres) linked to the tendon’s attachment poses:

  • Author or inspect your tendon in USD (e.g., via Mujoco/MJCFTendon import or PhysxTendon schemas) to get the list of spatialAttachments and their transforms relative to the links.
  • In a Python extension or Script Editor, on every frame:
    • Read each attachment’s world pose via the corresponding body/link prim.
    • Draw a line strip or small capsules/spheres between successive attachment points with DebugDraw or by driving a separate visual prim hierarchy.
  • Color, thickness, and on/off behavior can be controlled via your own script.

Measuring / recording tendon tension in Isaac Lab

Isaac Lab exposes tendons through the simulation schemas and articulation wrappers, but there is no direct “tendon force sensor” primitive; the usual workflow is to log either: (a) tendon state and reconstruct tension from its spring-damper model, or (b) joint/link forces affected by the tendon.

Typical options:

  • Use tendon properties + length error
    • From USD / sim schemas, obtain: stiffness, damping, rest length, and length offset for each spatial tendon (PhysxTendonAxisRootAPI / spatial tendon schema).
    • At runtime, compute current tendon length from the attachment point world positions, and then estimate tension with your model
  • Use articulation joint force sensors as a proxy
    • Isaac Sim provides Articulation Joint Sensors that report active and passive joint forces, including contributions from tendons and other constraints.
    • In Isaac Lab, you can read joint forces/torques from the articulation interface during each simulation step and log them as observations or extras in the RL loop.
    • By knowing which joints are involved in a given tendon, you can map those joint forces back to approximate tendon tension (possibly with a small calibration experiment).
  • Access tendons via Isaac Lab articulation utilities
    • Isaac Lab articulations expose helpers like find_spatial_tendons to get tendon indices by name, which you can then use with lower-level sim APIs to read or update tendon properties during training (e.g., rest length modulation for control).
    • Use these indices to structure your logging buffers (e.g., one scalar tension estimate per tendon per environment) and write them to disk or to your RL logger in the same way you log joint torques or contact forces.