Skip to main content
Ctrl+K

Genesis World

  • User Guide
  • API Reference
  • GitHub
  • PyPI
  • User Guide
  • API Reference
  • GitHub
  • PyPI

Section Navigation

  • Options
  • Engine
    • Scene
    • Simulator
    • Solvers
      • RigidSolver
      • MPMSolver
      • FEMSolver
      • PBDSolver
      • SPHSolver
      • SFSolver
      • ToolSolver
      • KinematicSolver
    • Couplers
      • LegacyCoupler
      • SAPCoupler
      • IPCCoupler
    • Entity
      • Rigid entity
        • RigidEntity
        • RigidLink
        • RigidJoint
        • RigidGeom
        • RigidVisGeom
      • MPMEntity
      • FEMEntity
      • PBD entities
        • PBDParticleEntity
        • PBDFreeParticleEntity
        • PBD2DEntity
        • PBD3DEntity
        • PBDTetEntity
      • SPHEntity
      • SFParticleEntity
      • DroneEntity
      • HybridEntity
      • ToolEntity
      • Emitter
      • Morph
        • Morph
        • Primitive
        • FileMorph
        • Nowhere
      • Surface
        • Surface
        • Plastic
        • Metal
        • Emission
        • Glass
        • FoamOptions
      • Texture
        • Texture
        • ColorTexture
        • ImageTexture
        • BatchTexture
    • Material
      • Rigid
      • MPM
        • Elastic
        • ElastoPlastic
        • Liquid
        • Muscle
        • Sand
        • Snow
      • FEM
        • Cloth
        • Elastic
        • Muscle
      • PBD
        • Elastic
        • Cloth
        • Liquid
        • Particle
      • Liquid
      • Smoke
      • Hybrid
      • Tool
      • Kinematic
    • States
    • Sensors
      • Camera sensor
      • Contact sensors
      • IMU sensor
      • Raycaster sensor
      • Tactile sensors
      • Other sensors
    • Mesh
    • ForceField
  • Visualization and rendering
    • Visualizer
    • Viewer
    • Camera
    • Renderers
      • Rasterizer
      • RayTracer
      • BatchRenderer
    • Lights
  • Recording and playback
    • Recorder
    • RecorderManager
    • File writers
    • Plotters
  • Differentiable simulation
    • Tensor
    • Creation operations
  • Utilities and helpers
    • Device and platform utilities
    • Tensor utilities
    • Geometry utilities
    • Mesh utilities
    • File I/O utilities
    • Timing and media tools
  • API Reference
  • Engine
  • Entity
  • Rigid entity
  • RigidLink

RigidLink#

class genesis.engine.entities.rigid_entity.rigid_link.RigidLink(entity: RigidEntity, name: str, idx: int, joint_start: int, n_joints: int, geom_start: int, cell_start: int, vert_start: int, face_start: int, edge_start: int, free_verts_state_start: int, fixed_verts_state_start: int, vgeom_start: int, vvert_start: int, vface_start: int, pos: np.typing.ArrayLike, quat: np.typing.ArrayLike, inertial_pos: np.typing.ArrayLike | None, inertial_quat: np.typing.ArrayLike | None, inertial_i: np.typing.ArrayLike | None, inertial_mass: float | None, parent_idx: int, root_idx: int | None, invweight: float | None, visualize_contact: bool, is_robot: bool, aligned: bool = False)[source]#

Bases: KinematicLink

RigidLink class. One RigidEntity consists of multiple RigidLinks, each of which is a rigid body and could consist of multiple RigidGeoms (link.geoms, for collision) and RigidVisGeoms (link.vgeoms for visualization).

get_verts()[source]#

Get the vertices of the link’s collision body (concatenation of all link.geoms) in the world frame.

get_AABB()[source]#

Get the vertex-based axis-aligned bounding box (AABB) of the link’s collision body in the world frame by aggregating all the collision geometries associated with this link (link.geoms).

apply_external_wrench(force=None, torque=None, envs_idx=None, *, pos=None, ref: link_ref_frame = link_ref_frame.link_origin, local: bool = False)[source]#

Apply an external wrench over one simulation step on the link.

Parameters:
  • force (None | array_like, optional) – The linear force to apply. None for a pure torque. Defaults to None.

  • torque (None | array_like, optional) – The torque to apply, on top of the moment induced by the linear force. Defaults to None.

  • envs_idx (None | array_like, optional) – The indices of the environments. If None, all environments will be considered. Defaults to None.

  • pos (None | array_like, optional) – Where the linear force is applied, which sets the moment arm of the induced torque. With local=True, an offset from the origin of the ref frame, so the point follows the link as it moves; otherwise a world position. None applies the force at the origin of the ref frame. Defaults to None.

  • ref (gs.link_ref_frame, optional) – The reference frame: the origin of the link (‘link_origin’), or its center of mass (‘link_COM’). It fixes where the linear force acts when pos is None, and the axes of the input coordinates when local=True. Defaults to ‘link_origin’.

  • local (bool, optional) – Whether force, torque and pos are expressed in the coordinates of the ref frame rather than the world frame. Defaults to False.

apply_external_force(force, envs_idx=None, *, pos=None, ref: link_ref_frame = link_ref_frame.link_origin, local: bool = False)[source]#

Apply an external linear force over one simulation step on the link.

Refer to RigidLink.apply_external_wrench for details.

apply_external_torque(torque, envs_idx=None, *, ref: link_ref_frame = link_ref_frame.link_origin, local: bool = False)[source]#

Apply an external torque over one simulation step on the link.

Refer to RigidLink.apply_external_wrench for details.

set_mass(mass: tuple[float, ...])[source]#

Set the mass of the link.

Parameters:

mass (float | array_like, shape (n_envs,)) – The mass to set.

get_mass()[source]#

Get the mass of the link.

set_friction(friction)[source]#

Set the friction of all the link’s geoms.

set_friction_torsional(friction_torsional)[source]#

Set the torsional friction of all the link’s geoms (see ‘gs.materials.Rigid’).

set_friction_rolling(friction_rolling)[source]#

Set the rolling friction of all the link’s geoms (see ‘gs.materials.Rigid’).

property visualize_contact: bool#

Whether to visualize the contact of the link.

property invweight#

The invweight of the link.

property inertial_pos: ArrayLike | None#

The initial position of the link’s inertial frame.

property inertial_quat: ArrayLike | None#

The initial quaternion of the link’s inertial frame.

property inertial_mass: float | None#

The initial mass of the link.

property inertial_i: ArrayLike | None#

The inerial matrix of the link.

property geoms: list[genesis.engine.entities.rigid_entity.rigid_geom.RigidGeom]#

The list of the link’s collision geometries (RigidGeom).

property n_geoms: int#

Number of the link’s collision geometries.

property geom_start: int#

The start index of the link’s collision geometries in the RigidSolver.

property geom_end: int#

The end index of the link’s collision geometries in the RigidSolver.

property n_cells#

Number of sdf cells of all the link’s geoms.

property n_verts: int#

Number of vertices of all the link’s geoms.

property n_faces: int#

Number of faces of all the link’s geoms.

property n_edges: int#

Number of edges of all the link’s geoms.

property is_free#

previous

RigidEntity

next

RigidJoint

On this page
  • RigidLink
    • RigidLink.get_verts()
    • RigidLink.get_AABB()
    • RigidLink.apply_external_wrench()
    • RigidLink.apply_external_force()
    • RigidLink.apply_external_torque()
    • RigidLink.set_mass()
    • RigidLink.get_mass()
    • RigidLink.set_friction()
    • RigidLink.set_friction_torsional()
    • RigidLink.set_friction_rolling()
    • RigidLink.visualize_contact
    • RigidLink.invweight
    • RigidLink.inertial_pos
    • RigidLink.inertial_quat
    • RigidLink.inertial_mass
    • RigidLink.inertial_i
    • RigidLink.geoms
    • RigidLink.n_geoms
    • RigidLink.geom_start
    • RigidLink.geom_end
    • RigidLink.n_cells
    • RigidLink.n_verts
    • RigidLink.n_faces
    • RigidLink.n_edges
    • RigidLink.is_free
Edit on GitHub

This Page

  • Show Source
Genesis AI Genesis AI

© 2026 Genesis AI SAS